Как стать автором
Обновить
16
0.2
Илья Агафонов @Tairesh

Веб-программист

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

Как создать Roguelike

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

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

У меня есть довольно большой опыт — в течение последних семи лет я работал только в этом жанре (Cogmind, Cogmind 7DRL, POLYBOT-7, REXPaint, X@COM), и в течение последних пяти эта работа была моей основной. К тому же, все эти годы я помогал превращению r/RoguelikeDev в крупнейшее сетевое сообщество разработчиков roguelike.
Всего голосов 58: ↑58 и ↓0+58
Комментарии24

Парсинг постов из telegram каналов на PHP

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров86K
Привет, Хабр!

Несколько лет назад я начал разрабатывать свой агрегатор контента, что бы упростить свой серфинг в сети. Изначально я парсил только rss, vk и facebook, но в прошлом году решил сделать полный рефакторинг проекта: отказаться от парсинга на клиенте, сделать нормальный back-end, использовать базу данных для хранения данных и расширить список поддерживаемых ресурсов.

Помимо стандартного набора из rss, fb, vk, twitter, instagram, youtube я добавил поддержку произвольных открытых каналов из telegram.

image

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

[UPDATE 2019-03-12]
Мой новый пост про парсинг телеграм каналов: habr.com/ru/post/354000. Более качественный код, микросервисы с открытым исходным кодом и новый публичный сервер для тестов.
[UPDATE 2023-10-08]
Важное напоминание: Телеграмм не разрешает парсить аудиторию каналов. Используя серверный клиент можно получить только те данные, которые видны в обычном, оффициальном приложении.
Читать дальше →
Всего голосов 21: ↑14 и ↓7+7
Комментарии39

Сохранение «многие ко многим» в Yii2 через поведение

Время на прочтение5 мин
Количество просмотров33K
Если вам приходилось работать с Yii2, наверняка возникала ситуация, когда нужно было сохранить связь «многие ко многим».

Когда становилось ясно, что в сети еще нет поведений для работы с этим типом связи, тогда нужный код писался на событии «after save» и с напутствием «ну работает же» отправлялся в репозиторий.

Лично меня не устраивал такой расклад событий. Я решил написать то самое волшебное поведение, которого так не хватает в официальной сборке Yii2.
Читать дальше →
Всего голосов 16: ↑13 и ↓3+10
Комментарии26

Heatmap Painter

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

Heatmap Habr Moscow


Тепловая карта — картограмма, визуально показывающая интенсивность какого-либо точечного показателя в пределах территории на карте. Интенсивность кодируется цветом и прозрачностью. Наверняка вы не раз видели такие картинки. Так вот, что если вам нужно сделать такую картограмму, а данных на руках у вас нет. Heatmap Painter позволит вам в интерактивном режиме накидать данные на карту и сохранить результат для дальнейшего использования. Штука весьма интересная и может пригодится много кому: разработчикам, аналитикам, дизайнерам. О том как это работает и как использовать читайте далее.

Читать дальше →
Всего голосов 9: ↑7 и ↓2+5
Комментарии6

Как рекламировать онлайн-игру

Время на прочтение10 мин
Количество просмотров25K
В позапрошлом году я рассказал о том, сколько стоит сделать браузерную игру. И вот запущена одна из игр, о которых я упоминал в той статье. Это бюджетный инди-проект Звездный Воитель. На его разработку от зарождения идеи до релиза ушло чуть более миллиона рублей. Из них на рекламу потрачено ~170К.

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

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



Читать дальше →
Всего голосов 10: ↑2 и ↓8-6
Комментарии4

Как написать диздок

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


Запрос «как написать диздок», заданный в любой поисковик, даёт немало ответов, представляющих собой как перевод западных статей, так и авторские размышления на эту тему из России, или даже дизайн проекта «Курочка Ряба». В воображении читателя предстает большой единый документ, описывающий идею и геймплей игры с перечислением всех ее фич. Возможно, читатель однажды приходит с такими идеями работать геймдизайнером в крупную российскую или западную компанию, на крупный проект… И обнаруживает, что таких документов больше не существует.
Читать дальше →
Всего голосов 47: ↑43 и ↓4+39
Комментарии11

Как я изобретал гингву

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


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

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

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

История о том, какие проблемы я решал в попытке изобрести гингву (галактический лингво), находится под катом.
Читать дальше →
Всего голосов 21: ↑20 и ↓1+19
Комментарии71

Бесплатная книга «Game Programming Patterns» от программиста Electronic Arts Боба Найстрома

Время на прочтение1 мин
Количество просмотров84K
Боб Найстром, программист, проработавший восемь лет в компании Electronic Arts, закончил работу над книгой «Game Programming Patterns». Она доступна бесплатно на сайте gameprogrammingpatterns.com. Писать книгу Боб Найстром начал четыре года назад. Большинство книг, посвящённых программированию игр, говорит он во введении, либо подробно раскрывают какой-то из аспектов создания игры — физический движок, графику, искусственный интеллект, либо описывают процесс создания игры в определённом жанре от начала до конца. Ему очень не хватало книги, рассказывающей о решении типовых задач, возникающих перед программистом, книги достаточно универсальной, не привязанной к жанрам или конкретным подсистемам игр. И поэтому он решил написать такую книгу сам.
Читать дальше →
Всего голосов 95: ↑94 и ↓1+93
Комментарии30

Перевод отрывков из книги Роберта Хайнлайна «Заберите себе правительство»

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

Предисловие переводчика


С сегодняшнего дня начинаю публикацию переведенных мною с английского языка отрывков из произведения Роберта Хайнлайна «Заберите себе правительство» («Take Back Your Government») – руководства для начинающих политиков, написанного Хайнлайном в конце 40-х годов. Часть этого материала уже опубликована мною в ЖЖ, но, думаю, начинать читать хорошую книгу сразу с середины — неправильно, поэтому начинаю публиковать с начала.

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

И, надеюсь, ее прочитают люди, подобные комментаторам статье Про открытую бухгалтерию в украинском Минобрнауки, считающие, что обычных людей нельзя подпускать к процессу принятия важных решений, ибо, как сказал Уинстон Черчилль,— «Демократия несовершенна, но ничего лучше человечество пока не придумало».
Читать дальше →
Всего голосов 20: ↑20 и ↓0+20
Комментарии41

Собираем грабли Electron.js или десктопные JS-приложения на практике

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

Electron — система позволяющая создавать кроссплатформенные приложения используя одни только веб-технологии, такие как HTML, CSS и конечно, JS.

Нужно отметить, что разработка на Электроне очень во многом отличается от обычного браузерно-серверного приложения на Node. О чем и будет эта статья.
Читать дальше →
Всего голосов 17: ↑15 и ↓2+13
Комментарии25

Традиционный отчет за год

Время на прочтение3 мин
Количество просмотров14K
Для статистики необходима база — набор данных за достаточно длинный период. Время летит незаметно, и я уже в четвертый раз подвожу итоги популяризаторского блогогода. Под катом, как обычно, статистика публикаций на Geektimes и в ЖЖ, размышления о GTD и прочее.


Тут много синих котов Рины Зенюк
Читать дальше →
Всего голосов 44: ↑41 и ↓3+38
Комментарии18

Electron: от мотивации до публикации

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

— Хотел бы я иметь приложение, которое умеет что-то такое, что мне надо. Жаль такого нет.
— А почему бы тебе его самому не написать?
— Это сложно, мне потребуется куча времени, чтобы понять теорию, приступить к практике и, скорее всего, ничего хорошего не выйдет. А вообще я frontend-разработчик и привык к HTML, CSS и JS. Этот стек не позволяет писать десктопные приложения.
— Electron!

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

Удачная модель ветвления для Git

Время на прочтение10 мин
Количество просмотров989K
Перевод статьи Vincent Driessen: A successful Git branching model

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



В качестве инструмента управления версиями всего исходного кода она использует Git.

Читать дальше →
Всего голосов 180: ↑171 и ↓9+162
Комментарии105

Стратегия ветвления ThreeFlow

Время на прочтение15 мин
Количество просмотров22K
Из всех моих разговоров с коллегами о разных аспектах разработки программного обеспечения одна тема всплывает чаще других. Да что там «чаще» — она повторяется снова и снова, как заезженная пластинка — это беседы на тему того, чем плох GitFlow и почему его стоит избегать.

Статья "Удачная модель ветвления для Git" описывающая метод, получивший в последствии название «GitFlow» стала де-факто стандартом того, как нужно начинать использовать Git в вашем проекте. Если поискать в Google что-то типа "git branching strategy" то вот как раз этот метод будет описан по первой ссылке (а скорее всего и по нескольким следующим).

Лично я ненавижу GitFlow и за последние годы убедил много команд разработчиков перестать его использовать, чем, как мне кажется, сохранил им уйму времени и нервов. GitFlow заставляет команды организовывать управление изменениями кода хуже, чем оно может быть реализовано. Но поскольку это такой популярный метод (по крайней мере в результатах поисковика), то команды без достаточного опыта, которые ищут «что-то, хотя бы как-то работающее» находят именно его при быстром поиске, да ещё и видят слово «успешный» прямо в заголовке статьи с его описанием — ну и начинают бездумно использовать. Я хочу хотя бы немного изменить этот паттерн поведения, описав в этой статье более простую и не менее успешную стратегию использования веток Git, которую я внедрил во многих командах. Часто эти команды пробовали использовать GitFlow, но испытывали проблемы, которые, пропали с переходом на ThreeFlow.

Я называю эту стратегию ThreeFlow потому, что в ней есть ровно три ветки. Не четыре. Не две. Три.
Читать дальше →
Всего голосов 57: ↑29 и ↓28+1
Комментарии52

Долой таблички! Как выучить английские времена

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


Времена в английском языке традиционно считаются одной из самых сложных тем в обучении. Они прочно ассоциируются с зазубриванием длинных малопонятных таблиц и запоминанием неочевидных правил. На самом деле, все не так. Рассказываем, как быстро овладеть временами и их аспектами, чтобы начать говорить по-английски, не спотыкаясь.
Читать дальше →
Всего голосов 77: ↑72 и ↓5+67
Комментарии97

Пол Грэм. Все статьи на русском. Два года спустя

Время на прочтение8 мин
Количество просмотров28K
«Лучший способ писать — это переписывать»
— Пол Грэм, «The Age of the Essay»

image

Первую подборку на русском всех статей Пола Грэма (а их 176) меня вдохновили сделать ребята из tceh.com (60 переводов).
Вторую — Edison Software (125 переводов).
ТретьюФилтех-акселератор (134 перевода и еще несколько в процессе).
На четвертую… уже закончатся эссе Грэма, буду переводить его Twitter (там, кстати, много полезного).

Недавно я подключился к проекту, цель которого содействовать «филантропическим стартапам» (это такие, которые «за добро во всем мире», типа GNU/Linux, Wikipedia и WebArchive). Я вношу свои 5 копеек подборкой самых полезных концептуальных/теоретических материалов про стартапы и стартаперское (хакерское) мировоззрение.

А для тех, у кого все же стартап, а не ICO:

До 16 января 2018 идет прием заявок, предакселератор PhilTech.
С 5 по 23 февраля будет акселерация «по-полной».
С 19 по 25 мая — финальный интенсив в Москве.

Есть время подучить матчасть, особенно для CEO.

Кто такой Пол Грэм?
Если вы хоть как-то связаны со стартапами у вас возник такой вопрос, то вам обязательно под кат.

Подборка из серии «добавить в избранное и читать по одному эссе в день».
(хватит на полгода, кстати)
Читать дальше →
Всего голосов 27: ↑25 и ↓2+23
Комментарии8

«Hello, (real) world!» на php в 2017 году

Время на прочтение8 мин
Количество просмотров76K
Вы наверняка думаете, что писать на php — это просто. И «hello, world» выглядит примерно так так:

<?php
echo 'Hello, world!';

Конечно, чего еще ожидать от языка с низким порогом входа. Ну да, именно так и было раньше. Много лет назад. Но теперь, в 2017 году никто так уже не делает. Давайте рассмотрим, почему, и попробуем построить наше более реалистичное hello-world приложение по шагам, а их, скажу сразу, получилось не мало.

Читать дальше →
Всего голосов 347: ↑260 и ↓87+173
Комментарии571

+500 бесплатных инструментов для запуска вашего стартапа в 2017 году

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


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

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

Итак, мы нашли в интернете бесплатные и условно-бесплатные инструменты для роста вашего бизнеса. Когда они дадут вам желаемый результат, вы можете оформить платную подписку.
Читать дальше →
Всего голосов 74: ↑60 и ↓14+46
Комментарии26

Использование потенциальных полей в сценарии стратегии реального времени

Время на прочтение8 мин
Количество просмотров41K
Реализация поведения юнитов в RTS играх может стать серьезной проблемой. Компьютер, зачастую, контролирует огромное количество юнитов, в том числе и принадлежащих игроку, которые должны передвигаться в большом динамическом мире, попутно избегая столкновения друг с другом, выискивая врагов, защищая собственные базы и координируя атаки для истребления противника. Стратегии реального времени работают в реальном времени, что делает довольно сложным слежение за планированием действий и навигацией.

Этот урок описывает метод планирования течения игры и навигации юнитов, который использует многоагентные потенциальные поля. Он основан на работах под номерами [1, 2, 3]. (Смотри в конце статьи ссылки на используемые материалы)



Читать дальше →
Всего голосов 57: ↑56 и ↓1+55
Комментарии17

Определение части речи слов в русском тексте (POS-tagging) на Python 3

Время на прочтение9 мин
Количество просмотров95K
Пусть, дано предложение “Съешьте еще этих мягких французских булок, да выпейте чаю.”, в котором нам нужно определить часть речи для каждого слова:

[('съешьте', 'глаг.'), ('еще', 'нареч.'), ('этих', 'местоим. прил.'), ('мягких', 'прил.'), ('французских', 'прил.'), ('булок', 'сущ.'), ('да', 'союз'), ('выпейте', 'глаг.'), ('чаю', 'сущ.')]

Зачем это нужно? Например, для автоматического определения тегов для блог-поста (для отбора существительных). Морфологическая разметка является одним из первых этапов компьютерного анализа текста.
Узнать, как это реализовать на Python 3
Всего голосов 82: ↑81 и ↓1+80
Комментарии74

Информация

В рейтинге
2 506-й
Дата рождения
Зарегистрирован
Активность

Специализация

Backend Developer
Senior
От 4 000 €
Docker
SQL
Linux
PostgreSQL
Git
MySQL
PHP
Yii framework
Symfony
RabbitMQ