-
Density independent pixel (dp) в Android
Вопрос про единицу измерения длины “dp” постоянно появляется на различных форумах и сайтах посвященных разработке приложений под ОС Android. В большинстве случаев, в качестве ответа более опытные программисты приводят цитату с официального сайта: Density-independent pixel (dp) A virtual pixel unit that you should use when defining UI layout, to express layout dimensions or position in…
-
SOAP. Посмотреть конверты.
Пару простых хинтов для тех, кто начинает изучать работу с SOAP. Java 6 С тех пор как вышел JDK 6 (декабрь 2006г) веб-сервисы стали доступны из “коробки”. В итоге начинать изучение работы с ними стало намного легче, без томкатов, жбоссов, глассфишей и других больших серверов. Учебных материалов по работе с веб-сервисами существует огромное количество. В…
-
Про JavaScript (не для JavaScript программистов).
Последние полтора месяца пишу для одного своего заказчика графический движок на JavaScript (HTML5/Canvas), который будет рисовать в браузере некоторые их инженерные схемы. Параллельно консультирую штатных программистов, у которых не очень большой опыт работы с JavaScript-ом. При кажущейся простоте JavaScript не создан для легкого написания надежного кода. Для самопроверки пользуюсь jsLint-ом и периодически запускаю google closure…
-
Про интерфейс: Map<K,V>
Недавно от товарища пришел вопрос на засыпку: “Почему в интерфейсe java.util.Map метод get в качестве ключа принимает Object, а метод put использует женерики?” V get(Object key); V put(K key, V value); Сходу ответить не смог, пришлось разбираться.
-
Java Zip + русские буквы в названиях файлов
Баг №4244499 Этот баг был зарегистрирован еще в 1999г. Проблема была не только с русскими файлами, а например с французскими (как в примере). Корни довольно глубокие и существовали серьезные (надеюсь) причины, по которым эту ошибку долгое время не исправляли. В итоге, много-много лет в Java нельзя было сделать простыми штатными средствами zip-архив, который бы содержал…
-
Немного об OAuth, Android и Facebook
OAuth авторизация OAuth – по определению означает Open Authorization. Поскольку в английском языке слова аутентификация (authentication) и авторизация (authorization) имеют одинаковое начало auth, то сокращение oauth очень неоднозначное. Эти понятия (авторизацию и аутентифакцию) очень часто путают друг с другом. Например OpenID – это система для аутентификации. Очень кратко про аутентификацию и авторизацию (т.к. это простые…
-
Кофе и программисты
Мой небольшой обзор разных кофеен. Уже больше года веду образ жизни свободного разработчика. Время от времени встречаюсь с такими же как я (программистами, стартаперами). На таких встречах мы, как правило, обсуждаем текущие задачи, пьём кофе, строим планы на будущее, а иногда устраиваем “полевые испытания” – вместе проверяем как работает веб-сервер, тестируем приложения под андроид в…
-
do while false
“Делать пока ложно”. Пару дней назад пытался кратко рассказать товарищу через аську про использование do { } while(false); для переписывания длинных ветвящихся if-ов. Кратко объяснить не получилось, в итоге решил написать в блоге. Метод довольно спорный, хотя и встречается в некоторых авторитетных источниках (например в “Совершенном Коде” С. Макконела). Идея довольно простая. 0. Код помещаем…
-
Scala и пустота
В Scala есть несколько разных сущностей для обозначения несуществующих, пустых или неопределенных объектов. Начнем с самого привычного для Java-программистов случая. Null Null – это trait. Объект null (с маленькой буквы) — это как раз и есть объект типа Null. Он находится внизу иерархии типов в Scala, в противовес AnyRef. Благодаря этому вы всегда можете как-бы…
-
EncryptableProperties и защита от дурака
Все знают, что не следует хранить в конфигурационных файлах (например properties) критически важную информацию в открытом виде. Например логины и пароли от базы данных, почты и т.д. Не стоит этого делать, т.к. “случайный” сисадмин или пользователь сможет открыть этот ваш файлик и увидеть пароль. С учетом того, что довольно часто пароли придумывают люди, то запомнить…