Как стать автором
Обновить
31
0
Кучеренко Александр Сергеевич @TiTanium

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

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

Мой опыт разработки игры под Android. Часть вторая

Время на прочтение5 мин
Количество просмотров16K
В этой статье я закончу свой рассказ о разработке моей первой игры под Android. Для тех, кто не видел/не прочел — часть первая.
Читать дальше →
Всего голосов 63: ↑60 и ↓3+57
Комментарии62

Chosen: сделай выпадающие списки более дружественными

Время на прочтение1 мин
Количество просмотров54K
Плагин Chosen создан для оформления красивых и удобных выпадающих списков с помощью jQuery и Prototype. Для установки плагина достаточно просто скачать файлы и прописать одну строчку:

$(".chzn-select").chosen()
(версия для jQuery)

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

Поскольку Chosen заменяет стандартный элемент HTML, то не нужно беспокоиться, как он работает с браузерами без поддержки JavaScript. Также не нужно ничего менять в бэкенде: формы сабмиттятся как обычно, изменения только в пользовательском интерфейсе.

Некоторые форки:
Chosen для MooTools
Модуль Chosen для Drupal 7
Всего голосов 264: ↑250 и ↓14+236
Комментарии57

Синхронные движки RTS и история рассинхронизаций

Время на прочтение7 мин
Количество просмотров9K
Случалось ли Вам играть в игру вроде StarCraft или Supreme Commander и получать сообщение об ошибке вроде “Обнаружена рассинхронизация”, за которым следует закрытие игры? Хотите узнать отчего так происходит? Это наследие архитектуры игрового движка, часто используемой стратегиями в реальном времени.1

Мой опыт в этой области происходит из работы с движком Supreme Commander в студии Gas Powered Games. В период бета тестирования в Starcraft и Warcraft 3 тоже были проблемы с синхронизацией, так что можно сказать что в целом они работают так же. Для простоты я буду говорить именно о движке Supreme Commander. Нахождение сходства с другими играми оставлю как упражнение для читателя :)
Читать дальше →
Всего голосов 118: ↑113 и ↓5+108
Комментарии56

Регулярные выражения для валидации распространенных видов данных

Время на прочтение2 мин
Количество просмотров493K
Для проверки текстовых полей на валидность обычно используют регулярные выражения. Существует несколько наиболе распространенных видов таких даных, как например номер кредитки, дата в определенном формате и т. д. На сайте html5pattern.com собирается коллекция регулярных выражений для таких данных (там это позиционируется, как возможное содержимое html5-атрибута pattern у inpit-элементов, но эти регулярные выражения можно использовать и для привычной валидации с помощью javascript). Актуальные для российской аудитории примеры, вместе с соответствующими регулярными выражениями вы можете посмотреть под катом.
Читать дальше →
Всего голосов 133: ↑97 и ↓36+61
Комментарии66

Выбираем мультиплатформенный движок для разработки мобильных игр (часть 1)

Время на прочтение4 мин
Количество просмотров53K
imageРазработка мобильных приложений это весьма перспективное и выгодное занятие. Одним из самых интересных направлений являются игры. Однако, игры — это довольно сложные приложения, а учитывая, что на рынке существует как минимум две мобильные платформы, на которые стоит ориентироваться, сложность возрастает вдвойне. По этому, нам надо как то облегчить свой и без того нелегкий труд.
Читать дальше →
Всего голосов 63: ↑58 и ↓5+53
Комментарии66

Gearman – фреймворк для распределения задач, введение

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


    В этой статье, мне бы хотелось рассмотреть один из необычных способов оптимизации приложения, а именно использование проекта Gearman для распределения задач. Gearman является фреймворком для построения таких систем. Примеров кода в статье нет, статья больше вводная, хоть и содержит в себе достаточно практической информации.
Читать дальше →
Всего голосов 56: ↑52 и ↓4+48
Комментарии40

Интерактивное прототипирование с GUI Machine

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

В предыдущих сериях...


imageВ предыдущих статьях цикла мы в деталях описали процесс поиска подходящего нам инструмента прототипирования и историю создания собственного инструмента – GUI Machine.

Теперь пришло время рассказать более подробно о том, что у нас получилось. Дабы не тратить драгоценное время читателя, приступлю к описанию инструмента прототипирования GUI Machine, его функциональности и возможностей без замедления и лирических отступлений.

Статья будет интересна не только тем, кто уже знаком с инструментом и хочет узнать о нём больше, но и тем, кто находится в активном поиске инструмента прототипирования и проводит их сравнительный анализ.
Читать дальше →
Всего голосов 29: ↑24 и ↓5+19
Комментарии60

Реализация серверной части в многопользовательских онлайн играх

Время на прочтение3 мин
Количество просмотров16K
За свою недолгую жинь я ни разу не встречал программиста, который бы не любил игры. И уж тем более, программиста, который никогда их не писал.
Кто-то начинает с тетриса, кто-то со змейки. У кого-то это увлечение проходит, а кто-то этим «заболевает» и превращает свою болезнь в любимую работу или занятное хобби.

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

Читать дальше →
Всего голосов 195: ↑174 и ↓21+153
Комментарии76

Безопасная настройка виртуального хостинга Debian + Apache2 + vsftpd

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

1. Постановка задачи


Дано
Debian-сервер «из коробки» (установлен из дистрибутива)

Задача
Организовать работу нескольких проектов на сервере, чтобы люди, которые ими занимаются, не имели доступа к соседним проектам:
  • Ограничить возможность обзора файловой системы определенной папкой для пользователя проекта.
  • Ограничить возможность запуска бинарников пользователями
  • Ограничить возможность открытия портов на сервере (нужно как-то по другому сформулировать)
  • Автоматизировать добавление пользователя в систему: создание папки, конфига apache, пользователей mysql или postgres
Читать дальше →
Всего голосов 34: ↑28 и ↓6+22
Комментарии8

2d на Unity3d

Время на прочтение14 мин
Количество просмотров219K
В свое время, в начале разработки двухмерной игры на Unity3d, мне пришлось перерыть кучу документации, сайтов, проштудировать answers.unity3d.com и forum.unity3d.com на тему: как сделать 2d-игру на этом 3d-движке. Самыми первыми вопросами были: как правильно настроить камеру, как сделать 2d-спрайт так, чтобы он отображал текстуру «пиксель в пиксель». На то время уже существовал SpriteManager (далее – SM) и даже SM2 с его мощной поддержкой редактора. Судьба сложилась так, что я не мог его тогда купить, да и пробной версии не было. В итоге, мне пришлось самому написать несколько полезных скриптов для реализации 2d на Unity3d. О том, как это сделать, пойдет речь в этой статье.

"
Читать дальше →
Всего голосов 67: ↑63 и ↓4+59
Комментарии22

Передача пароля по открытому каналу (часть 2)

Время на прочтение2 мин
Количество просмотров14K
В первой части статьи обсуждалась ситуация, когда для защиты трафика мы по каким-либо причинам не можем использовать https. При этом, передаваемый в открытом виде пароль становится легкой добычей мошенников. Предложенный в статье метод позволял избавится от угрозы перехваты пароля или от кражи БД хэшей паролей, но был бессилен перед злоумышленником, который и БД владеет и контролирует трафик. Предлагаемый ниже метод безопаснее, но сложнее.
Читать дальше →
Всего голосов 31: ↑31 и ↓0+31
Комментарии15

Делаем nginx как front-end к apache

Время на прочтение1 мин
Количество просмотров150K
Эта тема довольно избита, но на просторах интернета не так и просто найти короткий и четкий ответ на этот вопрос. Вот по этому я решил собрать все в виде небольшой инструкции.
Читать дальше →
Всего голосов 84: ↑43 и ↓41+2
Комментарии42

Apache 2.x под наблюдением или как узнать еще больше

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

Вступление



Продолжу цикл статей на тему «Apache 2.x под наблюдением. Мониторинг загрузки системы веб-сервером». Опять же под рассмотрением остается известный ранее[2] модуль Apache — mod_performance. На время написания этой статьи на сайте модуля[1] была выложена для доступа новая версия модуля — 0.2. Дальнейшее повествование в статье будет по принципу «Вопрос-Ответ».
Читать дальше →
Всего голосов 35: ↑34 и ↓1+33
Комментарии27

Lamport hash chain – страховка от кражи базы паролей клиентов

Время на прочтение7 мин
Количество просмотров4.1K
Весьма интересный пост, опубликованный недавно на Хабре, и особенно комментарии к нему подтолкнули меня к описанию, пожалуй, единственной симметричной схемы, действительно обеспечивающей страховку от кражи базы паролей с сервера – схемы Лэмпорта («Lamport hash chain»). Алгоритм на самом деле чрезвычайно прост и предложен автором (L.Lamport) еще в 1981 году. Более того, схема в большинстве учебников уже упоминается как «устаревшая», т.к. целью ее разработки была в первую очередь защита от перехвата пароля на этапе передачи, а появившиеся позднее схемы семейства «challenge-handshake» (CHAP, CRAM) решают эту задачу гораздо более эффективно. А вот о втором интересном свойстве схемы Лэмпорта уже потихоньку забыли – она не требует конфиденциальности аутентификационных данных пользователей, хранимых на серверной стороне (свойство, обычно присущее только асимметричным схемам с сертификатам клиентов). Посмотрим, как можно достичь этого свойства с помощью одной только криптостойкой хеш-функции.
Читать дальше →
Всего голосов 76: ↑74 и ↓2+72
Комментарии19

Android Emulator и локальный веб-сервер (Denwer)

Время на прочтение2 мин
Количество просмотров20K
imageЯ продолжу делиться некоторыми кейсами разработки под Android и теперь хочу рассказать о том, как просто заставить работать приложение, запущенное в эмуляторе, с вашим же серверным API, которое лежит на локальном веб-сервере. Простыми словами — как общаться приложению из эмулятора по http с localhost. Это не советы профессионала, а не более чем пример конкретного рабочего решения.
Читать дальше →
Всего голосов 52: ↑43 и ↓9+34
Комментарии7

Создание приложений реального времени с помощью Server-Sent Events

Время на прочтение7 мин
Количество просмотров53K
Буквально недавно стало известно, что Firefox 6 получит SSE (уже есть в Opera 10.6+, Chrome, WebKit 5+, iOS Safari 4+, Opera Mobile 10+) так, что поддержка более половины всех браузеров (охват аудитории пользователей) уже не за горами. Настало время присмотреться к этой технологии. SSE предложил Ian Hickson более 7 лет назад, но только год назад она стала появляться в браузерах. У нас же есть WebSockets зачем нам ещё один какой-то протокол?! Но во всем есть свои плюсы и минусы, давайте посмотрим чем же SSE может быть полезен.

Идея SSE проста — клиент подписывается на события сервера и как только происходит событие — клиент сразу же получает уведомление и некоторые данные, связанные с этим событием. Чтобы понять полезность протокола SSE необходимо сравнить его с привычными методами получения событий, вкратце объясню их суть:
Читать дальше →
Всего голосов 87: ↑85 и ↓2+83
Комментарии55

Обзор архитектуры сервиса Evernote

Время на прочтение4 мин
Количество просмотров20K
image
Как и обещали, мы начали переводить некоторые посты из англоязычного Техноблога Evernote, в котором наши инженеры и разработчики рассказывают о некоторых подробностях технической реализации сервиса, делятся историями и просто интересными фактами из своей работы.

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

Начнем со схемы, представленной выше. Вся указанная там статистика приведена на 17 мая 2011 года.
Читать дальше →
Всего голосов 71: ↑66 и ↓5+61
Комментарии24

Сверхбыстрая разметка изображений

Время на прочтение9 мин
Количество просмотров7K
В статье расскажу как можно очень быстро перечислить связные объекты на бинарном растре, значительно быстрее, чем я рассказывал в предыдущей статье. Казалось бы, куда такие скорости; теперь мы будем «расправляться» с картинками 4096 на 4096 за десятки миллисекунд. И хоть задача интересна и сама по себе, но в основе ее решения лежит довольно простой и оригинальный метод с достаточно широкой применимостью, основным тезисом которого является «сделаем как проще и посмотрим, что из этого выйдет». В данном случае в качестве основного вычислителя будет использоваться CUDA, но без особой специфики, потому что мы хотим сделать «очень просто».
Читать дальше →
Всего голосов 82: ↑75 и ↓7+68
Комментарии21

Cross-domain «ajax» — простое решение

Время на прочтение7 мин
Количество просмотров200K
В очередном проекте я столкнулся с необходимостью активно работать с кросс доменными запросами на ajax, тема, как я вижу на хабре особо не поднималась и не освещалась, вот и решил поделиться с читателями свои опытом.
Читать статью
Всего голосов 123: ↑107 и ↓16+91
Комментарии73

Моделируем полёт PHP на крыльях Erlang

Время на прочтение10 мин
Количество просмотров9.1K
В данной статье изложены размышления и фантазии на тему «как можно было бы скрестить Erlang и PHP, чтобы случилось вселенское счастье», а не описание готовой технологии или продукта. Впрочем, мы намерены это реализовать, скорее всего, в форме open-source проекта, если, конечно, уважаемая хабра-аудитория не отговорит :) Собственно, одна из главных задач этой статьи — понять, насколько идея интересна и потенциально полезна широкому PHP-сообществу. Кстати, некоторые из проблем, обсуждаемых в статье, справедливы и для других популярных скриптовых языков (тут я подразумеваю Ruby и Python), так что предлагаемое решение, возможно, будет актуально и для них.
Интересно, нафига козе баян?
Всего голосов 95: ↑86 и ↓9+77
Комментарии166

Информация

В рейтинге
Не участвует
Откуда
Херсонская обл., Украина
Дата рождения
Зарегистрирован
Активность