Pull to refresh
0
Алим @Gexon

Кликатель

Send message

Типичные уязвимости на сайтах, со статистикой

Reading time3 min
Views66K
Этот топик будет посвящен:

  • статистике встречаемости уязвимостей
  • реакции администрации(скорости и адекватности)
  • опасности

и всяческим другим факторам. Будут приведены примеры.

Разберемся?
Total votes 132: ↑103 and ↓29+74
Comments35

Экономическая симуляция как игра для программистов

Reading time6 min
Views28K
Хотелось бы создать некую игру экономической симуляции и рассказать какого рода она может быть и почему она представляет интерес. Причем интерес не только игровой, но и научный в рамках искусственного интеллекта. Т.е. так чтобы программисты могли писать ботов, задачей которых было бы управлять предприятием/игровым агентом автоматически. Поэтому хотелось бы найти единомышленников.

Наибольший интерес представляет тут то, что 1000 реальных игроков играющих по сети могут создать достаточно интересную среду. Пример этого я нашел в игре «Виртономика» (о которой вкратце расскажу). Ни какой идеальный симулятор розничных продаж не будет так интересен. А игроки делают ошибки или выбирают те или иные акценты при развитии. Отсюда поведение которое потребуется от автомата управляющим таким предприятием будет не банальным в рамках известных методов, и тут есть что изучать.

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

Читать дальше →
Total votes 44: ↑29 and ↓15+14
Comments75

12 принципов производительности Эмерсона для фрилансера

Reading time4 min
Views49K

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

Читать дальше →
Total votes 60: ↑48 and ↓12+36
Comments27

Склад бесплатных иконок

Reading time1 min
Views164K
Прошелся по закладкам и образовалась такая толстенькая подборочка ресурсов с бесплатными и качественными иконками, с которой спешу поделиться с тобой %username%!

Iconfinder


image


Читать дальше →
Total votes 168: ↑151 and ↓17+134
Comments39

Погружение в скрипты игрового движка Unity3d, ч.2

Reading time4 min
Views130K
Доброго времени суток всем читателям! Не так давно мною была опубликована статья, охватывающая некоторые часто используемые скриптовые возможности движка Unity3d. В этой части я хотел бы написать о скриптовых событиях, вызываемых при различных условиях. Все, указанные в данной части справочника, функции доступны в любом скрипте, который «повешен» на игровой объект.

Читать дальше →
Total votes 32: ↑28 and ↓4+24
Comments12

Бизнес-план «Создание игры»

Reading time17 min
Views100K
Некоторое время назад мною был написан Бизнес-план, Дизайн документ и Концепт документ по созданию игры.
К сожалению информация 2011 года, но думаю полезна коллегам.
Система показателей оценки геймплея придумана собственно мной, так что этот бизнес-план, целиком моё субъективное видение.

1. Введение


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

2. Возможности рынка


Для начала надо просто делать бизнес в русском интернете — это один из самых быстрорастущих рынков. Если говорить о конкретных бизнес-направлениях, большой потенциал — у проектов электронной коммерции и сервисов, основанных на социальных связях. И конечно, игры, игры, игры. Играть начинают люди, которые раньше играми не интересовались — например, на мобильном телефоне. Игры привлекают все новых и новых пользователей, и это продолжится. Просто оказалось, что среди огромного разнообразия контента наибольшей популярностью пользуются игры. Комбинация общения и развлекательных сервисов (особенно игр) очень хорошо работает.(1)
Российский интернет-рынок — один из немногих рынков, не переставших расти в кризис, по всем показателям: реклама, домены, хостинг, объем аудитории. Сегмент веб-разработки — не исключение.
Сегодня в 2011 году Интернет населяют 43 млн. россиян (39% населения). Из них активной аудиторией Рунета является 35 млн. человек, а 25 млн. посещают русскую сеть ежедневно. При этом 92% пользователей зарегистрированы хотя бы одной социальной сети, где ежемесячно бывает 25 млн. человек и 16 млн. — ежедневно. Доля пользователей Интернета в стране в среднем составляет: 92% в категории 12-24 года, 76% в населении 25-44 лет, 25% в населении от 45 лет и более.(2)
image
Рисунок 1 Пользуются интернетом хотя бы один раз.

1 Глава Mail.ru Group Дмитрий Гришин в интервью для Forbes Russia.
2 По данным TNS Russia – лидера в предоставлении комплексной медиа- и маркетинговой информации.

Читать дальше →
Total votes 41: ↑23 and ↓18+5
Comments38

Способы передвижения компьютерных персонажей (Часть 1)

Reading time6 min
Views63K
Все, кто начинал заниматься реализацией игрового искусственного интеллекта, наверняка сталкивались с проблемой реализации движений своих персонажей. Дело в том, что поведение и в реальном мире в большей степени определяет интеллектуальность того или иного существа. Даже люди друг друга зачастую оценивают по поведению (что немного неверно). Эта статья рассчитана на тех, кто только приступает к реализации своего первого игрового ИИ. Я расскажу о видах перемещений, их преимуществах и недостатках, а также покажу на примере как можно реализовать тот или иной способ на языке C++. Замечания и критика, а так же свои точки зрения приветствуются.
Читать дальше →
Total votes 77: ↑67 and ↓10+57
Comments14

Отказоустойчивый кластер для Java приложений

Reading time5 min
Views20K
Со времени запуска проекта прошло некоторое время и настало время наращивать вычислительные мощности для работы приложения. Было принято решение построить для этого кластер, который в дальнейшем можно будет легко масштабировать. Таким образом нам надо настроить кластер для распределения запросов между серверами.

Для этого мы будем использовать 4 сервера на Linux CentOS 5.5, а так же Apache, Tomcat6, mod_jk, Heartbeat.
web1, web2 сервера — для распределения запросов средствами Apache и отказоустойчивости средствами Heartbeat. tomcat1, tomcat2 сервера — Tomcat сервера для Java-приложения.
Читать дальше →
Total votes 11: ↑6 and ↓5+1
Comments12

Миллион загрузок в месяц или как сделать хороший старт на Google Play

Reading time5 min
Views33K
Всем привет,



Сначала хотел озаглавить топик «Миллион загрузок в месяц или как сделать хороший старт на Google Play на примере одной игры», но потом решил, что это слишком длинно. Тем не менее, сегодня я буду говорить о своей последней игре. Не только потому, что мне хочется немного ее прорекламировать (хотя и это тоже, чего скрывать), но и потому что каждый запуск новой игры индивидуален и без «привязки к местности» рассказывать, наверное, было бы не совсем правильно.
Читать дальше →
Total votes 110: ↑99 and ↓11+88
Comments45

Пьеса «Разработка многопользовательской сетевой игры.» Часть 1: Архитектура

Reading time3 min
Views21K
image

Часть 2: Протокол
Часть 3: Клиент-серверное взаимодействие
Часть 4: Переходим в 3D

В общем, как и обещал, публикую серию статей по разработке многопользовательской сетевой игры. Изначально я хотел просто накатать статейку по разработке серверной части на интересном языке Scala. Но понял, что одной статейкой для развертывания темы не получится обойтись. А писать очередной топик обо всем и ни очем, не хотелось изначально. Поэтому встречайте пьесу в трех действиях. В течении которой мы разработаем архитектуру проекта, реализуем серверную и клиентскую части…
Все помнят прикольные танчики на денди?
Ну вот на примере этих танчиков и будем разрабатывать сервер и клиент.

Добро пожаловать в зрительный зал.
Total votes 109: ↑100 and ↓9+91
Comments44

Reddwarf на примере онлайн-игры «Камень-ножницы-бумага»: Клиент

Reading time6 min
Views6.1K
В статье Reddwarf для создания Java-сервера на примере онлайн-игры «Камень-ножницы-бумага»: Сервер было описано, как сделать сервер. Но поиграть на таком сервере без клиента невозможно. Поэтому в этой статье попробуем написать простейший клиент и поэкспериментировать с сервером.

Читать дальше →
Total votes 22: ↑19 and ↓3+16
Comments5

Сбор и анализ статистики во free-to-play играх

Reading time9 min
Views50K
Если вы разрабатываете free-to-play игры, то вам наверняка интересны вопросы, связанные со сбором и анализом статистики. Почему? Потому что статистика – это важная составляющая успеха free-to-play игр.
Цель моего цикла статей – структурировать разношерстную информацию по данному вопросу, пропустить ее через призму нашего опыта и выдать рекомендации по тому,

  • какие показатели стоит отслеживать в играх;
  • какие инструменты анализа могут помочь в работе со статистикой;
  • какие сервисы сбора и анализа статистики существуют с их достоинствами и недостатками.
Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments6

Признаки плохого программиста

Reading time18 min
Views67K

Неспособность рассуждать о коде


«Рассуждать о коде» значит понимать порядок исполнения инструкций («исполнять программу в голове»), зная, каково предназначение кода.

Симптомы

  • Наличие «волшебного», «вуду» кода или кода, который не имеет никакого отношения к целям программы, но всё равно тщательно поддерживается (например, инициализация переменных, которые никогда не используются, вызов функций, не имеющих отношения к цели, создание выходных данных, которые не используются, и т.д.).
  • Многократные вызовы идемпотентных функций (например, вызов save() по нескольку раз, «чтобы уж точно»).
  • Исправление ошибок написанием избыточного кода, который замещает данные, полученные при исполнении неисправного кода.
  • «Йо-йо код», который конвертирует значения в различные представления, а потом конвертирует их обратно ровно в то же представление, с которого начинали (например, преобразование десятичного числа в строку, а потом обратно в десятичное число, или padding строчки с последующим trim'ом).
  • «Бульдозерный код», который создает впечатление рефакторинга посредством разбития кусков кода на процедуры, которые, правда, затем невозможно использовать где-либо еще (высокая когезия).

Читать дальше →
Total votes 374: ↑297 and ↓77+220
Comments260

Маленькие хитрости Java. Часть 2

Reading time5 min
Views108K
В продолжение первой статьи я добавлю еще несколько штрихов о наиболее часто встречающихся ошибках и просто плохом коде, с которым часто приходится иметь дело при работе с уже написанными проектами. Я не выносил это в первую часть, так как эти ситуации встречаются гораздо реже, но поскольку первая часть вызвала много позитивных отзывов, решил продолжить. Спасибо всем комментаторам, отзывам и замечаниям. Я постараюсь избежать допущенных ошибок. Итак, продолжим:

Buffered Streams

//медленно
InputStream is = new FileInputStream(file);
int val;
while ((val = is.read()) != -1) {
}
//быстро
InputStream is = new BufferedInputStream(new FileInputStream(file));
int val;
while ((val = is.read()) != -1) {
}

Казалось бы — очевидная истина, неправда ли? Но как показал чужой код и опыт собеседования кандидатов, часть разработчиков определенно не понимает в чем преимущество буферизованных стримов. Кто до сих пор не разобрался — метод read() класса FileInputStream:
public native int read() throws IOException;

Согласитесь, каждый раз делать системный вызов, чтобы считать один байт несколько расточительно. Собственно для того, чтобы избежать этой проблемы и были созданы оболочки-буферы. Все что они делают — при первом вызове системного read() считывают несколько больше (в зависимости от указанного размера буфера, котрый по умолчанию равен 8 кб) и при следующем вызове read() считывают данные уже из буфера. Прирост производительности — на порядок. Системные вызовы, на самом деле, это не всегда плохо, например:
System.arraycopy(src, srcPos, dest, destPos, length);

В случае копированния массива — системный метод будет гораздо быстрей реализованного на java. И еще — считывайте данные порциями, а не по байтам, это тоже позволит прилично сэкономить.
Читать дальше →
Total votes 93: ↑84 and ↓9+75
Comments91

RedDwarf — cерверная платформа для разработки онлайн-игр на Java

Reading time4 min
Views9.4K
Добрый день!
RedDwarf logo Последние два года я занимаюсь разработкой сервера игр на платформе RedDwarf – свободной (GPLv2) серверной платформе для создания онлайн-игр на Java. На Хабре очень мало информации об этой платформе, поэтому я решил исправить этот недостаток.

История


Разработка данного движка изначально велась компанией Sun, сама платформа называлась Sun Game Server (аббревиатура sgs до сих пор используется в наименованиях пакетов). В 2005 году сервер был представлен миру под названием Project Darkstar. После того, как Oracle купила Sun, от поддержки проекта сановцы отказались, платформа была переименована в RedDwarf Server и сейчас существует только при поддержке сообщества. Проект развивается сейчас гораздо медленней, но всё же развивается – в прошлом году вышла версия 0.10.2. Всех планируемых фишек (прозрачного масштабирования) в ней ещё нет, но как основа для игрового сервера используется во многих проектах.

Основные принципы


Игровой сервер на платформе RedDwarf состоит из следующих частей.
  • Игровое приложение
  • Расширения
  • Ядро
  • Внутренняя БД
Читать дальше →
Total votes 48: ↑46 and ↓2+44
Comments19

Reddwarf для создания Java-сервера на примере онлайн-игры «Камень-ножницы-бумага»: Сервер

Reading time11 min
Views23K
В статье RedDwarf — cерверная платформа для разработки онлайн-игр на Java я рассказал об особенностях этой платформы для создания игровых серверов. В данной статье я попробую показать на примере, как написать сервер и использованием RedDwarf.
В качестве примера решено было написать онлайн-реализацию игры «Камень-Ножницы-Бумага».
В этой статье мы напишем сервер и попробуем его запустить. В следующей статье напишем для этого сервера небольшой клиент и проверим их работоспособность.
Читать дальше →
Total votes 34: ↑33 and ↓1+32
Comments4

Flash + IntelliJ IDEA

Reading time8 min
Views23K
Всем привет. Если вы сталкивались с разработкой Flash-приложений, то скорее всего стандартные инструменты, предоставляемые Flash IDE для написания кода не вызвали у вас особого восторга. Существует несколько популярных сред для Flash/Flex-разработки: FlashDevelop, FlashBuilder, FDT, еще может быть парочка. В сети полно холиваров насчет того, какая из них лучше, но в данной статье я буду исходить из того, что вам приглянулась IntelliJ IDEA (или просто — «Идея»), но вы с ней совсем не знакомы и не знаете, с какой стороны к ней подступиться. Что же, попробуем разобраться вместе!

Flash + IntelliJ IDEA

Что Вы найдете в этой статье:
  • Краткое описание: где скачать, как установить, настроить IDE'ю
  • Как создать проект, начать работу
  • Как связать IDE'ю с Flash-проектом
  • Как компилировать, запускать проект, подключать библиотеки
  • Описание некоторых приятных мелочей, которые я регулярно использую
Чего Вы в этой статье не найдете:
  • Каких-то чисто Flex-специфик вещей
  • Описания сборки проекта ANT'ом (хотя вскользь мы этого коснемся), использования Maven и т.д.
  • Описания преимуществ IDE'и перед аналогами, её главных фич
Вроде бы здесь считается хорошим тоном предупреждать о трафике — под катом небольшая кучка скриншотов, весит ~500кб.
Читать дальше →
Total votes 38: ↑31 and ↓7+24
Comments36

Information

Rating
Does not participate
Location
Уфа, Башкортостан(Башкирия), Россия
Date of birth
Registered
Activity