Спрос на Android-разработчиков весьма велик сейчас. Я решил подготовить список того, что нужно знать каждому разработчику под эту платформу. Это не только то, что вас могут спросить на собседовании, а весь спектр знаний, который скорее всего пригодится в работе. Бонусом идет пара интерсных вопросов про платформу.
Максим @SabMakc
User
csync2 или как облегчить работу с кластером
6 min
28KНе так давно мне пришлось поднимать Linux кластер для одного довольно нагруженного проекта. Вернее сказать более важным был вопрос отказоустойчивости, чем нагрузки, но обычно кластер призван решить обе эти проблемы единовременно.
В данном случае я не собираюсь рассматривать архитектуру кластера или нюансы отладки, а рассказать о весьма удобном способе управления кластером, ускорении его настройки и отладки.
Согласитесь, удобно иметь набор файлов (например конфигов), которые всегда буду одинаково выглядеть на серверах с одинаковой ролью? Под катом я расскажу, как этого добиться за максимально короткий срок.
В данном случае я не собираюсь рассматривать архитектуру кластера или нюансы отладки, а рассказать о весьма удобном способе управления кластером, ускорении его настройки и отладки.
Согласитесь, удобно иметь набор файлов (например конфигов), которые всегда буду одинаково выглядеть на серверах с одинаковой ролью? Под катом я расскажу, как этого добиться за максимально короткий срок.
+30
Основы email маркетинга
3 min
5.4K
В недрах хабрахабра не раз упоминались статьи о верстке почтовых рассылок (за что отдельное спасибо авторам), но вот об email-маркетинге сказано было не столь много, и поэтому я бы хотела рассказать о некоторых моментах психологии пользователя и о том, что (не-)стоит делать и почему это так.
+25
Простейший блог на Symfony 2
10 min
50KПривет, %username%!
symfony — популярный PHP-фреймворк, на котором создано не мало серьезных проектов. Но в русскоязычном сообществе он распространен гораздо меньше. То ли это связано с более высоким порогом входа, то ли с отсутствием русскоязычной документации.
В этом статье я хочу рассказать о создании простейшего блога на symfony2.
symfony — популярный PHP-фреймворк, на котором создано не мало серьезных проектов. Но в русскоязычном сообществе он распространен гораздо меньше. То ли это связано с более высоким порогом входа, то ли с отсутствием русскоязычной документации.
В этом статье я хочу рассказать о создании простейшего блога на symfony2.
+41
Создание частной ленты пакетов NuGet с помощью онлайн-сервиса
3 min
2KNuGet привнес в мир .NET-разработки поддержку установки компонентов разработки с помощью пакетов. С момента запуска NuGet в начале года в его репозитории создано уже свыше 4000 пакетов, а количество загрузок пакетов приближается к миллиону.
Возможности NuGet не ограничиваются официальным хранилищем пакетов. Любая компания или индивидуальный разработчик могу создать свой собственную ленту пакетов, с ограниченным в рамках организации доступом. Благодаря тому, что средства интеграции NuGet со средой разработки Visual Studio поддерживает частные ленты пакетов, любой желающий может использовать свои ленты точно так же как и официальную. Таким образом, пользу и удобство NuGet можно использовать и тогда, когда вы не можете или не хотите распространять компоненты публично.
Вместе с возможность самостоятельного создания ленты пакетов на собственной инфраструктуре существует еще одна возможность. Недавно был запущен сервис MyGet, который предлагает быстрое создание частных лент пакетов NuGet как сервис. Как шутят на сайте MyGet – это NuGet as a Service (NaaS).

В этой статье дается описание сервиса и рассматривается порядок его использования.
Возможности NuGet не ограничиваются официальным хранилищем пакетов. Любая компания или индивидуальный разработчик могу создать свой собственную ленту пакетов, с ограниченным в рамках организации доступом. Благодаря тому, что средства интеграции NuGet со средой разработки Visual Studio поддерживает частные ленты пакетов, любой желающий может использовать свои ленты точно так же как и официальную. Таким образом, пользу и удобство NuGet можно использовать и тогда, когда вы не можете или не хотите распространять компоненты публично.
Вместе с возможность самостоятельного создания ленты пакетов на собственной инфраструктуре существует еще одна возможность. Недавно был запущен сервис MyGet, который предлагает быстрое создание частных лент пакетов NuGet как сервис. Как шутят на сайте MyGet – это NuGet as a Service (NaaS).

В этой статье дается описание сервиса и рассматривается порядок его использования.
+28
Android Emulator и локальный веб-сервер (Denwer)
2 min
20K
+34
Lamport hash chain – страховка от кражи базы паролей клиентов
7 min
4.3KВесьма интересный пост, опубликованный недавно на Хабре, и особенно комментарии к нему подтолкнули меня к описанию, пожалуй, единственной симметричной схемы, действительно обеспечивающей страховку от кражи базы паролей с сервера – схемы Лэмпорта («Lamport hash chain»). Алгоритм на самом деле чрезвычайно прост и предложен автором (L.Lamport) еще в 1981 году. Более того, схема в большинстве учебников уже упоминается как «устаревшая», т.к. целью ее разработки была в первую очередь защита от перехвата пароля на этапе передачи, а появившиеся позднее схемы семейства «challenge-handshake» (CHAP, CRAM) решают эту задачу гораздо более эффективно. А вот о втором интересном свойстве схемы Лэмпорта уже потихоньку забыли – она не требует конфиденциальности аутентификационных данных пользователей, хранимых на серверной стороне (свойство, обычно присущее только асимметричным схемам с сертификатам клиентов). Посмотрим, как можно достичь этого свойства с помощью одной только криптостойкой хеш-функции.
+72
Apache 2.x под наблюдением или как узнать еще больше
9 min
9.5KВступление
Продолжу цикл статей на тему «Apache 2.x под наблюдением. Мониторинг загрузки системы веб-сервером». Опять же под рассмотрением остается известный ранее[2] модуль Apache — mod_performance. На время написания этой статьи на сайте модуля[1] была выложена для доступа новая версия модуля — 0.2. Дальнейшее повествование в статье будет по принципу «Вопрос-Ответ».
+33
Экономика ИТ-проектов или сколько стоит бизнес-модель
6 min
19KЭтот пост навеян двумя топиками, содержание одного (5 причин отказаться от оценок) мне хотелось бы оспорить, а со вторым (Как веб-проект может зарабатывать деньги) — согласиться.
Я полагаю, что у ИТ-проектов такая же экономика, как и у любых других инвестиционных проектов, а поступления и затраты от этих проектов определяются выбранной бизнес-моделью.
Этот пост больше про подсчет финансовой эффективности проектов (бизнес-планирование) на примерах из ИТ, поэтому если кому интересно — прошу под кат.
Я полагаю, что у ИТ-проектов такая же экономика, как и у любых других инвестиционных проектов, а поступления и затраты от этих проектов определяются выбранной бизнес-моделью.
Этот пост больше про подсчет финансовой эффективности проектов (бизнес-планирование) на примерах из ИТ, поэтому если кому интересно — прошу под кат.
+28
Оптимизация сайта. Технологический фундамент. Часть 2
9 min
11K
Сегодня хочу обратить Ваше внимание на технологические особенности, которые необходимо соблюдать при разработке сайта. Проверьте свои ресурсы на соответствие им. Это поможет Вам, как сегодня помогает и нам. Мы постарались свести все к набору советов, что бы было легко и удобно с этим работать.
Итак, помимо внешних факторов вашего сайта, видимых, что называется, невооруженным глазом (структура, тексты, дизайн) существует целый ряд технических мероприятий, которые нужно проделать с сайтом для его правильной настройки для лучшей индексации поисковиками. Перечислим наиболее важные из них.
+26
Dropbox — продолжаем меряться
3 min
13KСкучно работается… Ну что же. попытаемся ещё больше автоматизировать то что предлагалось тут и здесь =)
На этот раз у нас остаётся лишь basy-скрипт. который позволяет довольно просто и вполне интерактивно нащёлкать себе рефералов. Да, MAC адрес автоматически обновляется, поэтому необходимость в виртуальной машине по сути отпадает… Хотя я бы всё же рекомендовал производить манипуляции со скриптом на ней. Ну просто потому что в процессе своей работы скриптик периодически затирает конфиг дроп-бокса.
Смотрим чего вышло и что с этим делать…
На этот раз у нас остаётся лишь basy-скрипт. который позволяет довольно просто и вполне интерактивно нащёлкать себе рефералов. Да, MAC адрес автоматически обновляется, поэтому необходимость в виртуальной машине по сути отпадает… Хотя я бы всё же рекомендовал производить манипуляции со скриптом на ней. Ну просто потому что в процессе своей работы скриптик периодически затирает конфиг дроп-бокса.
Смотрим чего вышло и что с этим делать…
+84
Стартапомания: как перестать искать богатых лохов и сменить галстук на шлепанцы
5 min
1.7KКак ни странно, значение слова «стартап» за последние годы получило множество различных толкований, не смотря на то, что изначально, в классическом понимании этого слова, стартап – это всего лишь компания-новичок, фирма с короткой жизнью, недавно начавшая вести свою операционную деятельность. Будем придерживаться этого толкования и в данной статье.
+176
Упрощаем регистрацию и вход на сайт
7 min
35KTutorial
Представляю вашему вниманию перевод статьи под названием "Innovative Techniques To Simplify Sign-Ups and Log-Ins" от Anthony T. Перевели в компании UXDepot специально для пользователей Хабрахабра с одобрением издания Smashing Magazine.
Существует множество различных способов создания форм регистрации и авторизации. Большинство дизайнеров знакомы с традиционными способами.
Однако, зная и используя некоторые инновационные техники, можно сделать формы понятнее и легче для заполнения.

Форма авторизации на сайте Basecamp
В этой статье мы представляем несколько идей, которые могли бы оказаться полезными для ваших проектов. Но, собираясь использовать их, пожалуйста убедитесь в том, что правильно понимаете контекст, в котором их следует применять. А еще мы будем рады увидеть результаты юзабилити-тестирований, подтверждающие или опровеграющие советы, изложенные ниже.
+227
Введение в Gestures
4 min
17Kили толкование жестов :)

Сейчас мы на боевом примере поработаем с жестами в среде Android. Приложение будет клиентом сайта Astronomy Picture of the Day by NASA. На этом сайте ребята каждый день выкладывают какую-нибудь замечательную картинку, связанную с астрономией. Жестами мы будем ходить вперед/назад и вызывать диалог выбора даты. А чтобы было еще интересней — напишем его для Honeycomb.
Статья состоит из двух частей: первая — покажет, как создавать жесты с помощью приложения Gestures Builder и выгружать их из эмулятора в отдельный бинарный файл. Во второй части, мы загрузим его в наше приложение и начнем использовать.

Сейчас мы на боевом примере поработаем с жестами в среде Android. Приложение будет клиентом сайта Astronomy Picture of the Day by NASA. На этом сайте ребята каждый день выкладывают какую-нибудь замечательную картинку, связанную с астрономией. Жестами мы будем ходить вперед/назад и вызывать диалог выбора даты. А чтобы было еще интересней — напишем его для Honeycomb.
Статья состоит из двух частей: первая — покажет, как создавать жесты с помощью приложения Gestures Builder и выгружать их из эмулятора в отдельный бинарный файл. Во второй части, мы загрузим его в наше приложение и начнем использовать.
+29
Как привлечь пользователей в ваш стартап
6 min
1.4KTranslation
Наиболее частый вопрос, который я слышу от молодых предпринимателей — «Как я заполучил пользователей?»
И вот как я это делаю.
Я сделал блог с 5 миллионами читателей, рекламную биржу которая охватывает больше людей чем Facebook, написал книгу которая была 12-ой на Amazon и сделал еще кучу всяких разных странных вещей, которые популярны и приносят деньги. Я создал новую растущую компанию социальных покупок. Я ангел-инвестор и советник в дюжине разных компаний и одном университете. Я присутствую на нескольких журнальных обложках и тут (оцените количество просмотров и комментарии людей, которые желали бы чтобы их «папочка был так же крут» как я).
И вот как я это делаю.
Обо мне
(испытываешь странное чувство от описания себя, но в случае если вы читаете это и удивляетесь, кто же этот парень… на самом деле я всего лишь пытаюсь помочь).Я сделал блог с 5 миллионами читателей, рекламную биржу которая охватывает больше людей чем Facebook, написал книгу которая была 12-ой на Amazon и сделал еще кучу всяких разных странных вещей, которые популярны и приносят деньги. Я создал новую растущую компанию социальных покупок. Я ангел-инвестор и советник в дюжине разных компаний и одном университете. Я присутствую на нескольких журнальных обложках и тут (оцените количество просмотров и комментарии людей, которые желали бы чтобы их «папочка был так же крут» как я).
+77
Книга «Работа с Postgresql: настройка, масштабирование», версия 2
1 min
9.6K
Я решил не затягивать выход обновления справочника и выпустил 2 версию «Работа с Postgresql: настройка, масштабирование».
Как и раньше, в книге иследуются вопросы по настройке производительности Postgresql, репликации и кластеризации.
Добавил пару слов о расширениях PostgreSQL, методики решения проблем, сниплеты(пока в процессе). Произвел коррекцию ошибок в манах настроек. Пока что только сконвертирован pdf. Все правки и замечания прошу на этой странице github.com/le0pard/postgresql_book/issues или в комментариях.
Страница книги: postgresql.leopard.in.ua
Исходники: github.com/le0pard/postgresql_book
+78
+155
Вы НЕ инженер-программист!
3 min
36KTranslation
От перев.: Думаю, практически каждый разработчик читал произведение искусства под названием «Если бы программисты строили дома». В этом юмористическом рассказе проводится параллель между строительством и разработкой ПО. Неожиданно! Понятно, что в каждой шутке есть доля правды. И вот спустя годы я наткнулся на другое сравнение. Мне оно показалось более точным, поэтому я решил перевести его на русский и поделиться с сообществом.
+173
Особенности синхронизации в Android-приложении
5 min
12KTutorial

При разработке многих Android-приложений требуется организовать процесс синхронизации данных с данными на сервере. Есть два основных способа как данную синхронизацию можно реализовать.
Первый способ — классический (наиболее популярный и наиболее простой) — с помощью AlarmManager и Service. Например, как описано в этой статье.
Второй способ — «правильный» (но пока что, видимо, редко кем используемый) — с помощью SyncAdapter.
Разрабатывая своё приложение, изначально я попытался реализовать «правильный» (т.е. второй способ).

При разработке многих Android-приложений требуется организовать процесс синхронизации данных с данными на сервере. Есть два основных способа как данную синхронизацию можно реализовать.
Первый способ — классический (наиболее популярный и наиболее простой) — с помощью AlarmManager и Service. Например, как описано в этой статье.
Второй способ — «правильный» (но пока что, видимо, редко кем используемый) — с помощью SyncAdapter.
Разрабатывая своё приложение, изначально я попытался реализовать «правильный» (т.е. второй способ).
+44
.phar — исполняемые PHP-архивы
4 min
54KДанную статью я хочу посвятить одному интересному нововведению в PHP 5.2 (с версии 5.3 входит в стандартную поставку PHP) — PHAR.

PHAR — это утилита для создания исполняемых архивов в PHP, аналог JAR в Java.
PHAR ползволяет упаковать много файлов в один, в результате чего Ваше приложение может работать с целой библиотекой, как с одним файлом.
PHAR умеет создавать, читать, записывать и конвертировать такие форматы, как TAR, ZIP и, собственно, PHAR.
Доступ к файлам в архиве осуществляется напрямую, без необходимости распаковки архива, через PHP Stream Wrapper, тоесть с файлами из архива работают все функции, которые поддерживают PHP Stream Wrapper.

PHAR — это утилита для создания исполняемых архивов в PHP, аналог JAR в Java.
PHAR ползволяет упаковать много файлов в один, в результате чего Ваше приложение может работать с целой библиотекой, как с одним файлом.
PHAR умеет создавать, читать, записывать и конвертировать такие форматы, как TAR, ZIP и, собственно, PHAR.
Доступ к файлам в архиве осуществляется напрямую, без необходимости распаковки архива, через PHP Stream Wrapper, тоесть с файлами из архива работают все функции, которые поддерживают PHP Stream Wrapper.
+119
Information
- Rating
- 3,485-th
- Location
- Россия
- Registered
- Activity