Pull to refresh
46
Exey @Exeyread⁠-⁠only

User

Send message

Создание простейшего сервера с помощью Apache MINA

Reading time4 min
Views10K
Apache MINAApache MINA — библиотека с открытым исходным кодом для написания клиент-серверных приложений на Java. Последняя на текущий момент версия — 2.0.4 — вышла 14 июня 2011 г.

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

Читать дальше →

17 простых советов для повышения продуктивности

Reading time3 min
Views33K
Эти советы — не очередная компиляция из книг и блогов, посвященных продуктивности. Каждый совет основан на моём личном опыте. На каждый совет я мог бы дать гарантию, если бы гарантия на советы была возможна в принципе.

Вступление окончено, переходим к советам!
Читать дальше →

Разработка мобильных приложений на Adobe Flash + AIR: обзор возможностей

Reading time14 min
Views26K
Недавно замечательная flash-игра Machinarium заняла 1 место в рейтинге платных игр для iPad. Тем не менее много талантливых разработчиков flash-игр с опаской смотрят в сторону мобильных платформ. На русском языке информации по теме крайне мало. Надеюсь эта статья немного улучшит положение вещей. Желаю приятного прочтения.


Читать дальше →

Реалистичный пейзаж в Ogre 3D

Reading time25 min
Views18K
Привет.
Прочитав на хабре несколько интересных статей об одном из самых мощных рендер-движков Ogre3D, я решил поделиться своим опытом в деле моделирования с помощью него реалистичного пейзажа с атмосферными эффектами, водной поверхностью и буйной растительностью. Под катом — рецепт прикручивания к Ogre всех необходимых для этого библиотек.
Читать дальше →

Полезные инструменты, туториалы и ресурсы

Reading time4 min
Views16K
Созданый Райаном Далем в 2009 году, Node.js — относительно новая технология, завоевавшая в последнее время большую популярность среди веб-разработчиков. Однако, до сих пор не каждый знает, что на самом деле Node.js это серверная JavaScript среда, использующая асинхронную событийную модель. Что это означает? Все просто: это среда, которая предназначена для написания масштабируемых, высокопроизводительных приложений. Почти как Ruby’s Event Machine или Python’s Twisted, но гораздо глубже — JavaScript реализовывает цикл событий, на уровне самого языка, а не как отдельная библиотека.



И это еще не все: то, что действительно круто в Node.js — это тысячи модулей, доступных для любых целей, а также активниешее сообщество этого молодого проекта. В этом обзоре вы найдете самые полезные ресурсы по Node.js, от просто удобных инструментов и подробных руководств, до углубленных статей и ресурсов о этой перспективной технологии. Используете ли вы Node.js? Поделитесь опытом в комментариях к этотому посту!

Читать дальше →

Разработка игры с использованием Box2D на ActionScript 3

Reading time6 min
Views9.1K
Доброго времени суток, дорогой читатель!
Недавно была опубликована статья, где описывалась работа с движком Box2D.
Однако, движок на сайте был версии 2.1a работа с которым, к сожалению, отличалась от работы предоставленной в статье. К сожалению скудная иностранная документация по этой версии движка заставила во многом разбираться самому. Частью своих изысканий я бы хотел поделиться с тобой, дорогой читатель.
Читать дальше →

Защита от DDOS атаки подручными средствами. Получение доступа к своему серверу

Reading time4 min
Views77K
За последнее время, наш сайт часто подвергается достаточно мощным DDOS атакам, к слову последняя атака была самой крупной за последнее время, размер ботнета по нашим оценкам — около 10 тысяч машин, мощность — 100 Mbits/s.

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

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

Атака была типа HTTP Flood. Система на которой у нас работает сайт — Apache под Linux. Мы написали несколько скриптов, которые будут приведены в тексте статьи. В принципе аналогичный подход можно применять и для Windows/IIS.

Попытаюсь рассказать, какие основные шаги мы сделали для отражения атаки, и какие проблемы возникали по ходу:
Читать дальше →

Пьеса «Разработка многопользовательской сетевой игры.» Часть 3: Клиент-серверное взаимодействие

Reading time7 min
Views16K


Часть 1: Архитектура
Часть 2: Протокол
Часть 4: Переходим в 3D

С третьей частью я немного задержался. Но как говорится лучше поздно чем никогда…

Итак, продолжаем разговор.

В третьей части нашей постановки мы реализуем протокол, напишем сервер и клиент которые будут взаимодействрвать по сети. И (ОМГ!) танки будут ездить!
Под катом то, что вы давно хотели, но боялись спросить…

Добро пожаловать в зрительный зал.

Свой инструмент нужно знать в лицо: обзор наиболее часто используемых структур данных

Reading time8 min
Views65K
image
Некоторое время назад я сходил на собеседование в одну довольно большую и уважаемую компанию. Собеседование прошло хорошо и понравилось как мне, так и, надеюсь, людям его проводившим. Но на следующий день, в процессе разбора полетов, я обнаружил, что в ходе собеседования ответ на как минимум один вопрос был неверен.

Вопрос: Почему поиск в python dict на больших объемах данных быстрее чем итерация по индексированному массиву?

Ответ: В dict хранятся хэши от ключей. Каждый раз, когда мы ищем в dict значение по ключу, мы сначала вычисляем его хэш, а потом (внезапно), выполняем бинарный поиск. Таким образом, сложность составляет O(lg(N))!

На самом деле никакого бинарного поиска тут нет. И сложность алгоритма не O(lg(N)), а Amort. O(1) — так как в основе dict питона лежит структура под названием Hash Table.

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

Как я делал игру

Reading time10 min
Views17K
Всем привет, меня зовут Марк, я — Flash-разработчик. Я доволен своей работой, с помощью которой я могу сейчас зарабатывать достаточно для достойного существования в городе на букву М, да чтобы ещё и была возможность потихоньку копить сбережения на будущее. Даже несмотря на то, что в этой стране само слово «будущее» является каким-то очень странным и непонятным термином.

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

И вот, на фоне всеобщего помешательства инди-играми, бешеной популярности App Store и девайсов на базе Android, а так же нескольких шумных историй о том, как несколько разработчиков стали безумно богатыми за невероятно короткий срок, меня не покидают мысли о том, что я тоже могу, да что-там, я просто обязан заниматься разработкой игр в свободное от работы время.
Читать дальше →

JavaScript Gaming: Часть 1. Box2d и основы Физики

Reading time28 min
Views23K


Вместо предисловия.


Я всегда любил и буду любить компьютерные игры. Есть в них какая-то своя внутренняя магия, которая всегда привлекает и завораживает одновременно. За всю свою жизнь я переиграл в десятки игр, начиная с ветеранов Wolfenstein и Dune 2 и заканчивая современными блокбастерами. И теперь, добивая очередной хит и наблюдая за финальным роликом и титрами, в голове все чаще и чаще мелькает мысть «А что, если?..»

А ведь действительно, что если взять и написать собственную игру? Конечно же понятно, что ААА-тайтл сделать в одиночку не получится, и это годы работы и прочая и прочая, но ведь осилит дорогу идущий? Так уж получилось, что в Desktop-программироании я откровенно слаб, и вариантов для практикующего веб-разработчика не так уж много. Но за последние годы все кардинально изменилось, и теперь уже у браузера много общего с кофеваркой, а javascript может спокойно удовлетворять даже нужды военных ведомств, не то что мои собственные.

Вот как раз во время очередных раздумий и достаточно серьезной простуды мне попалась на глаза статья о Box2d в игрологе Ant.Karlov'а. Зачитавшись и замечтавшись я очень быстро нашел JS-порт этой библиотеки, и старая шальная идея сделать что-то маленькое и, главное — свое, начала донимать меня с новыми силами.

В общем, меньше патетики, больше дела. Надеюсь, вам будет интересно. Да простят меня суровые боги за использование Angry Birds в КПДВ ^_^
Читать дальше →

NodObjC — мост между Objective-C и Node.JS

Reading time2 min
Views1.9K
Я просто хотел бы шокировать вас моими последними достижениями в области хакинга: я создал двунаправленный мост к библиотекам выполнения Objective-C из среды Node. Эта сумасшедшая штука позволяет делать замечательные вещи, например, писать родные приложения для MacOS X и iOS полностью на Node и JavaScript!

Я создал высокоуровневую библиотеку, которую назвал NodObjC, и она предлагает лёгкий для использования API, непосредственно формируемый из API библиотек Objective-C. Вот пример из README:
var $ = require('NodObjC');

// First you need to "import" the Framework
$.import('Foundation');

// Setup the recommended NSAutoreleasePool instance
var pool = $.NSAutoreleasePool('alloc')('init');

// NSStrings and JavaScript Strings are distinct objects, you must create an
// NSString from a JS String when an Objective-C class method requires one.
var string = $.NSString('stringWithUTF8String', 'Hello Objective-C World!');

// Print out the contents (calling [string description])
console.log('%s', string);
//   → Prints "Hello Objective-C World!"
pool('drain');
Читать дальше →

Поговорим о словарном запасе иностранного языка

Reading time4 min
Views264K
Сколько слов в английском языке? Oxford English Dictionary содержит около 500 000 словарных статей, не учитывая специфические научные слова и выражения (которых насчитывается еще порядка 500 000). А как вы думаете, какой средний словарный запас иностранного языка дает вам средняя школа за время обучения? Правильный ответ – около 2500 слов. Мало ли этого набора? Тут уже надо исходить из ваших целей. Для общения с иностранцами на деловые темы – однозначно мало. Для чтения несложных текстов в интернете – более чем достаточно. Если быть точнее:

400–500 слов – активный словарный запас для владения языком на базовом (пороговом) уровне.
800–1000 слов – активный словарный запас для того, чтобы объясниться; или пассивный словарный запас для чтения на базовом уровне.
1500–2000 слов – активный словарный запас, которого вполне хватит для того, чтобы обеспечить повседневное общение в течение всего дня: или пассивный словарный запас, достаточный для уверенного чтения.
3000–4000 слов – в общем, достаточно для практически свободного чтения газет или литературы по специальности.
Около 8000 слов – обеспечивают полноценное общение для среднего европейца. Практически не нужно знать больше слов для того, чтобы свободно общаться как устно, так и письменно, а также читать литературу любого рода.

К этим данным пришел известный шведский полиглот Эрик Гуннемарк, основатель Международной ассоциации `Amici Linguarum` (`Друзья языков`). Более того, он составил набор минимального количества слов и выражений, которые необходимо знать, для порогового уровня владения языком, назвав их Минилекс и Минифраз.

Интересно, а какой средний уровень словарного запаса у рядового пользователя сети и у вас лично? Об этом расскажу дальше.
image

Читать дальше →

TOP 7 – за 7 дней. Маркетинг iPad приложений на Apple Store

Reading time3 min
Views9.5K
Начну не с самих методов раскрутки, а с подготовки, что является не менее важным, чем сама раскрутка и продвижение приложения. Сразу оговорюсь, что привожу в пример только платные приложения и российский Apple Store.

image
Читать дальше →

Асинхронная загрузка в iOS

Reading time3 min
Views8.4K
Наверное на эту тему есть достаточно материалов, в том числе и у Apple, но я опишу свой опыт и приведу свой код.

Задача следующая: для некоторого View, имеющего определенное количество subview в которые можно грузить изображения (UIImageView к примеру), нужно асинхронно загрузить некоторое количество изображений без блокировки основного UI.
Читать дальше →

Поиск пути в гексагональной сетке (AS3)

Reading time2 min
Views14K
imageЭта статья представляет собой описание компонента HexaPath, реализующего поиск пути по алгоритму А* в гексагональной сетке. В сети мной было найдено большое количество описаний алгоритма на примере квадратной сетки и некоторое количество реализаций, но ни одного упоминания о шестиугольной сетке. И я написал свою реализацию. Выкладываю исходники. Вдруг кому-нибудь понадобится это, а писать самому будет лень.

Читать дальше →

Принцип цикады и почему он важен для веб-дизайнеров

Reading time6 min
Views236K
Пару лет назад я прочитал интересные факты о жизненном цикле периодических цикад. Обычно мы не видим вокруг себя много этих насекомых, потому что бóльшую часть своей жизни они проводят под землёй и тихо сосут корни растений.

Однако, в зависимости от вида, каждые 7, 11, 13 или 17 лет периодические цикады одновременно массово вылезают на свет и превращаются в шумных летающих тварей, спариваются и вскоре умирают.

Хотя наши странные цикады весело уходят в иной мир, возникает очевидный вопрос: это просто случайность, или числа 7, 11, 13 и 17 какие-то особенные?
Читать дальше →

Путь новичков-оптимистов в лабиринте iOs разработки. Дорогу осилит идущий

Reading time10 min
Views17K
image
15 июля 2010 года. За утренним чаем весь коллектив нашей конторы с восторгом рассматривал интерактивную книгу “Alice in Wonderland” от Atomic Antelope на iPad'е.

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

  • детский писатель;
  • художник;
  • программист;
  • переводчики (мы сразу решили делать английскую и испанскую версии нашей книги).


Техническая база у нас на работе и дома уже была — техника Apple в наличии имелась.

Надо сразу сказать, что по роду деятельности к разработке приложений мы не имели ни малейшего отношения, поэтому весь процесс создания книги представляли себе крайне смутно.
Читать дальше →

6 советов для мотивации команды

Reading time2 min
Views27K
От себя: Советы из статьи, перевод которой я представлю, подходит скорее для начинающих руководителей, так как опытные, скорее всего, большую часть этих советов уже используют в своей практике.

Если вы управляете группой людей, вы должны научиться мотивировать других. Если вы сконцентрируетесь на понимании того, что мотивирует других людей и как удовлетворить их потребности, вы будете на правильном пути к позитивному и поучительному опыту.
Когда основные потребности человека удовлетворены, он начинает работать для самоудовлетворения. К примеру, если человек голодный, у него не получится сконцентрироваться на критическом задании, в котором надо думать. В этом случае вам стоит убедиться, что человек пообедал до того, как давать ему задание.
Для того, чтобы мотивировать кого-то, попробуйте следующие варианты:
Читать дальше →

Information

Rating
Does not participate
Works in
Registered
Activity