Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение

Законы драматургии в ММО: когда же они заработают?

Время на прочтение7 мин
Количество просмотров8.4K
Драматургия – мощнейший инструмент, который позволяет сценаристам держать зрителя в напряжении на протяжении всей истории, заставлять его испытывать самые разные эмоции, а в кульминационные моменты – широко распахивать глаза от изумления и с головой уходить в действие. К этому же стремятся и сценаристы онлайн-игр, поэтому нам совершенно необходимо применять общие законы драматургии к ММО. Однако делать это «в лоб» не стоит: ведь в ММО есть своя проблематика, которая заставляет нас подходить к этим законам выборочно, отсеивая неподходящие, выбирая лучшие и трансформируя их.

Читать дальше →
Всего голосов 59: ↑50 и ↓9+41
Комментарии139

jQuery UI Datepicker: добавляем нестандартные элементы навигации по годам

Время на прочтение2 мин
Количество просмотров8.7K
Однажды столкнулся с проблемой, когда заказчик руками и ногами упирался, отказывался от стандартного способа навигации по годам, т.е. от выпадающего списка. Выдал мне изображение желаемого результата и установил сроки.

image

На изображении элементы навигации в виде одинарных стрелок «ходят» по месяцам, а двойные предназначены для перехода на предыдущий/следующий год. В этом посте я расскажу как добиться такого результата.
Читать дальше →
Всего голосов 16: ↑8 и ↓80
Комментарии7

Noty — необычайно гибкий плагин jQuery для вывода уведомлений

Время на прочтение1 мин
Количество просмотров31K

Почти месяц назад вышла вторая версия прекрасного и замечательного jQuery Notification plugin для вывода самых разнообразных уведомлений на сайте, странно что Хабр вообще обошёл его стороной, исправлю ситуацию.
Читать дальше →
Всего голосов 113: ↑110 и ↓3+107
Комментарии27

Continuous Integration для Android

Время на прочтение7 мин
Количество просмотров18K
После реализации пары проектов под Android, стало понятно, что, несмотря на их небольшие размеры и кажущуюся простоту, без автоматизированных сборок и тестирования не обойтись. Родилось желание получить следующие возможности:
  • unit тестирование,
  • интеграционное тестирование,
  • тестирование интерфейса,
  • тестирование этих типов тестов на различных версиях Android и конфигурациях девайсов,
  • рассылка по email в случае сломанного билда;
  • таже не помешает автоматическая сборка релизов.
Читать дальше
Всего голосов 34: ↑33 и ↓1+32
Комментарии18

Symfony 2 Internals на практике

Время на прочтение9 мин
Количество просмотров5.6K
Пост навеян вот этим вопросом. Будем использовать стандартные эвенты Symfony для переопределения вывода контроллера. Итак, как, в общем, всё это будет работать:
  1. Создадим аннотацию Ajax для обработки типа контента контроллера
  2. Будем обрабатывать эту аннотацию через эвенты
  3. Будем переопределять тип контента в соответствии с выбранным типом в аннотации

Сразу предупрежу, код не претендует на идеальный, не используется кэширование (позднее скажу об этом), но главная идея, думаю, будет понятной. Также, более подробно почитать о Symfony2 Internals вы можете в официальной документации.
Читать дальше →
Всего голосов 8: ↑7 и ↓1+6
Комментарии6

Реализация REST API на Symfony2: правильный путь

Время на прочтение18 мин
Количество просмотров57K
REST
Создание REST API это нелегкая задача. Нет, серьезно! Если вы хотите написать API правильно, вам придется о многом подумать, решить, быть прагматиком, или API маньяком. REST это не только GET, POST, PUT и Delete. На практике, у вас могут быть взаимодействия между ресурсами, нужно перемещать ресурсы куда-то еще (к примеру внутри дерева), или вы захотите получить конкретное значение ресурса.

В данной статье собрано все, чему я научился реализуя различные API сервисы, используя для этих целей Symfony2, FOSRestBundle, NelmioApiDocBundle и Propel. К примеру сделаем API для работы с пользователями.
Читать дальше →
Всего голосов 32: ↑29 и ↓3+26
Комментарии25

Улучшаем релевантность поиска в sphinxsearch

Время на прочтение4 мин
Количество просмотров58K
Sphinxsearch является поисковым движком для быстрого fulltextsearch, может получать данные из mysql, oracle и mssql, может выступать сам хранилищем(realtime индексы). Также sphinx имеет режим работы через api и через sphinxql — аналог протокола sql(с некоторыми ограничениями), что позволяет подключить поиск через sphinx на сайте с минимальным изменением кода. Это один из немногих великих, крупных и открытых проектов разработанный в России. На моей жизни я видел как sphinx обрабатывает порядка 100-200 поисковых запросов на 2 миллиона записей из mysql и при этом сервер свободно дышал и его не тошнило, mysql начинает умирать уже на 10 запросах в секунду на аналогичном конфиге.

Основная проблема документации sphinx на мой взгляд малое количество примеров для большинства интересных настроек, сегодня постараюсь рассказать в примерах о них. Опции которые я затрону касаются в основном алгоритмов и вариаций поиска. Все кто плотно работает со sphinx не узнают ничего нового, а новички надеюсь смогут улучшить качество поиска на своих сайтах.

Sphinx содержит две независимые программы indexer и searchd. Первый строит индексы по данным взятым из базы данных, второй производит поиск по построенном индексу. А теперь перейдем к настройкам поиска в sphinx.

morphology

Позволяет задать морфологию слов, я использую только стемминг. Алгоритм стемминга с помощью набора правил для языка обрезает окончания и суффиксы. Стемминг не использует готовые базы слов, а основан на определенных правилах обрезания для языка, что делает его маленьким и быстрым, но это же и добавляет ему минусы так как он может совершать ошибки.

Пример нормализации слова стеммингом на русском.
Слова “яблоко”, “яблока”, “яблоку” будут обрезаны в “яблок” и любой поисковый запрос с вариацией слова “яблока” будет тоже нормализован и найдет записи со словами которые были описаны выше.
Читать дальше →
Всего голосов 33: ↑32 и ↓1+31
Комментарии17

Кастомный ExpandableListView в Android

Время на прочтение5 мин
Количество просмотров64K
В данной статье хочу привести небольшой пример работы с кастомизацией ExpandableListView — двухуровневого списка.

То, что должно получиться в итоге

image

Читать дальше →
Всего голосов 31: ↑25 и ↓6+19
Комментарии10

Универсальный ImageLoader для Android

Время на прочтение4 мин
Количество просмотров31K
В этой статье Я расскажу о разработанном мной (и не только) инструменте для асинхронной подгрузки изображений, их кэширования и отображения. На данном этапе развития его можно использовать повсеместно, где надо загрузить картинку в ImageView из интернета или из файловой системы. Все, что нужно, это URL картинки (для файловой системы он будет начинаться на «file://») и собственно ImageView, в который загруженную картинку надо будет положить. Более подробно о возможностях универсального разработанного ImageLoader'а читайте ниже.
Читать дальше →
Всего голосов 31: ↑30 и ↓1+29
Комментарии28

Конкурс ВК: Мессенджер для Android. Как это было!?

Время на прочтение3 мин
Количество просмотров35K
Приятного времени суток!

Сколько человек хочет заняться разработкой под Android, но в силу определенных обстоятельств все никак не может начать (у кого-то нет времени, кому-то скучно просто прорешивать примеры, лень, неопределенность)? Сколько человек добавляет каждую, кажущуюся интересной и полезной, статью на хабре в избранное и забивает? До конкурса ВКонтакте на разработку мессенджера под Android, я был среди числа вышеописанных пользователей. Но в один роковой момент все изменилось…
Читать дальше →
Всего голосов 164: ↑153 и ↓11+142
Комментарии64

Как сделать swipe-to-dismiss на Андроид

Время на прочтение1 мин
Количество просмотров5.2K
Привет,

Вот может кому пригодится… Roman Nurik разработчик из Google выложил пример кода как можно сделать swipe-to-dismiss на Андроид.

Не совсем уверен как это перевести на русский… Что-то вроде — «Удаление сдвигом». Т.е. когда вы удаляете элемент из списка сдвигая его в сторону. Вот как это выглядит на экране:

Читать дальше →
Всего голосов 13: ↑6 и ↓7-1
Комментарии6

Использование паттерна mediator для переключения между activity

Время на прочтение3 мин
Количество просмотров7.7K


В простейшем случае для запуска Activity в Android нужно создать Intent c указанием класса вызываемого activity и Bundle из параметров. И всё хорошо, пока у нас в приложении пара экранов. Сложности начинаются тогда, когда количество экранов в нашем приложении будет исчисляться десятками. В данной статье я бы хотел предложить относительно несложный способ организации работы с большим количеством Activity.
Читать дальше →
Всего голосов 43: ↑40 и ↓3+37
Комментарии29

Некоторые “подводные камни” разработки под Android

Время на прочтение9 мин
Количество просмотров69K
Недавно наша команда завершила разработку приложения под Android. В процессе разработки и затем поддержки мы столкнулись с некоторыми проблемами технического характера. Часть из них — это наши баги, которых мы могли бы избежать, другая часть — это совсем неочевидные особенности Android, которые либо плохо описаны в документации, либо не описаны вообще.

В этой статье я бы хотел рассмотреть несколько реальных багов, которые возникли у наших пользователей и рассказать о путях их решения.

Статья не претендует на подробный анализ потенциальных проблем, это просто рассказ из жизни одно реального Android приложения.

Читать дальше →
Всего голосов 57: ↑44 и ↓13+31
Комментарии46

Google выпустила приложение Google I/O 2012

Время на прочтение1 мин
Количество просмотров1.4K
image

На официальном магазине приложений от Google, Play Маркет, появилось приложение Google I/O. Данное приложение приурочено к скорому началу ежегодной конференции от Google, которая ориентируется, в основном, на веб-разработчиков.

Приложение позволяет просматривать план мероприятий и отмечать понравившиеся, просматривать подробную информацию о выступлении (например, биографию спикера, фотографии и профиль в Google+), получать напоминания о предстоящих выступлениях, синхронизировать календарь с датами выступлений, стримить видео выступлений для Android Honeycomb+ и многое другое.
Читать дальше →
Всего голосов 29: ↑24 и ↓5+19
Комментарии20

Как разогнать эмулятор Android

Время на прочтение3 мин
Количество просмотров143K
Intel HAXM
Каждый, кто хоть раз работал с эмулятором для разработки приложений под Android, знает, что даже на современном железе эмулятор тормозит так, что для его использования нужно нечеловеческое терпение. То есть, наверное, надо самому стать андроидом-киборгом.

Но есть и еще один метод – попроще.

Intel Hardware Accelerated Execution Manager (Intel HAXM) — это решение, использующее аппаратные возможности виртуализации (Intel VT) и позволяющее значительно ускорить работу эмулятора Android.

Данное решение работает в паре с эмулятором Android для х86 устройств. При этом, эмулятор будет работать со скоростью, приближенной к скорости работы реального устройства, что поможет сократить время на запуск и отладку приложения.
Читать дальше →
Всего голосов 90: ↑84 и ↓6+78
Комментарии50

Класс для реализации UNIX-демонов на PHP

Время на прочтение5 мин
Количество просмотров2.4K
Ну начнем с того, что довольно часто приходится сталкиваться с тем, что необходимо реализовывать какую-либо серверную часть для обработки каких-то данных и т.д. Естественно, что сервеную часть удобней всего было бы реализовать в виде демона. В свое время я наткнулся на подобный класс реализации демонов написанного на Python. И вот на прошлой неделе решил написать такое же творение на PHP, вроде получилось не плохо, оценивать Вам.
Читать дальше →
Всего голосов 56: ↑46 и ↓10+36
Комментарии102

DroidParts — библиотека для Android 8-in-1

Время на прочтение3 мин
Количество просмотров5.1K
Этой статьёй я открываю цикл, посвящённый разработке Android-приложений. Но не типичных для Google Play, написанных, очевидно, задней левой mНогой, а приложений корректных и элегантных. В этом деле нам поможет DroidParts — швейцарский нож Android-библиотек с 8 лезвиями:

  1. Dependency Injection: инициализация системных и собственных зависимостей;
  2. Object-Relational Mapping для SQLite: CRUD-операции «из коробки»;
  3. Поддержка Fragments, ActionBarSherlock;
  4. Простая (де-)сериализация JSON;
  5. AsyncTasks, IntentService с обработкой Exсeptions;
  6. RESTful HTTP client с поддержкой JSON;
  7. L.og без указания тега, конфигурируемый через AndroidManifest;
  8. Утилиты типа асинхронного http-загрузчика с кешированием, View- и Intent-помощников.


Буквально час назад* увидела свет первая версия библиотеки, но сначала…
Читать дальше →
Всего голосов 56: ↑47 и ↓9+38
Комментарии45

Использование делегата для получения данных из AsyncTask

Время на прочтение2 мин
Количество просмотров1.7K
Всем привет!

Хочу поделится одним маленьким трюком для начинающих андроидописателей. Этот трюк стар как мир и сам я раньше многократно им пользовался, но поскольку основная моя работа с андроидом никак не связана, то за давностью лет я его подзабыл и вот на днях был вынужден его срочно вспоминать.
Читать дальше →
Всего голосов 16: ↑13 и ↓3+10
Комментарии17

Возьми от Firefox все для веб-разработки

Время на прочтение4 мин
Количество просмотров37K
=========

Обновление от 24.03.13
Neatbeans 5.3 бесплатная IDE подходящая для верстки умеет на лету отображать набранный html в хроме через свой плагин.
Тоже самое умеет webstorm.
Куча костылей описанных ниже уже не нужны!

=========
Я хочу подвести итог инструментов-расширений Firefox для веб-разработки, благодаря которым у нас есть время на что-то более важное, чем верстка. Я поделюсь своими инструментами, а вы предлагайте свои.

Я считаю, что предложенные мною плагины жизненно необходимы почти любому веб-разработчику и веб-дизайнеру. Посадите дизайнера и версталу рядом, пусть они выпьют друг из друга все соки, а потом снимите с них скриншот общие наручники и попросите рассказать чего им так не хватает.

Со многими вы знакомы, а что есть еще, или вы твердо убеждены, что у вас всего пара рук?

Начнем с самого известного:

1.

Говорят, если бы капитан мочевидность был веб-разработчиком, он бы всем советовал ставить Firebug. Это Джастин Бибер в мире попсы, это почти половина самого firefox.
В представлениях не нуждается, самая дописанная и навороченная панель разработчика FireBug есть только в Firefox.


Ошалеть от увиденного...
Всего голосов 142: ↑127 и ↓15+112
Комментарии105

Техническое задание на сайт

Время на прочтение11 мин
Количество просмотров698K
UPD: Продолжение статьи с примером техзадания

Не так давно на хабре были две статьи (Согласно техническому заданию и А зачем мне ТЗ? Я и так знаю!) посвященные техническим заданиям. У меня обе статьи вызвали, мягко говоря, недоумение, в особенности статья «Согласно техническому заданию». На мой взгляд, это вообще вредная статья, которая приводит к неверному понимаю сути ТЗ. В связи с этим хочу выразить свой взгляд на этот вопрос. Не буду говорить обо всех тех. заданиях, слишком широка тема, но думаю смогу рассказать о ТЗ на сайт.

То описание технического задания, о котором речь пойдет ниже, не является пересказом ГОСТа, но скорее является его творческой переработкой, хорошо сдобренной горьким опытом. Описанный ниже подход к ТЗ не охватывает все аспекты сайтостроения, но задает общее направление.

Большинство сайтов можно отнести к маленьким и очень маленьким проектам, масштаба единиц человеко-месяцев. В силу малости размеров такие проекты спокойно поддаются хорошему продумыванию и легко реализуются с помощью водопадной модели, достаточно просто не лениться на каждом этапе разработки (от написания ТЗ до сдачи проекта). Применять к этим проектам гибкие методологии разработки нет смысла, а как раз есть смысл применять хорошее ТЗ. К тем сайтам, которые не попадают под водопадную модель не стоит применять описанный ниже подход.

1. Обоснование необходимости ТЗ


А зачем вообще нужно ТЗ на сайт? Заказчик говорит: «Нужен следующий сайт: каталог товаров, корзина, форма заказа, доставка, мы на карте, о нас, обратная связь». Что не ясно? Ничего необычного, всё обыденно и рутинно.

Разработчик отчетливо представляет, что нужно сделать, а сделать, в его понимании нужно вот так:



Далее много букв
Всего голосов 212: ↑209 и ↓3+206
Комментарии141

Информация

В рейтинге
Не участвует
Откуда
Украина
Зарегистрирован
Активность