Pull to refresh
12
0
Алексей Павлов @lexxpavlov

Программист

Send message

Наследственность за пределами генетики

Reading time18 min
Views28K

Вы передаёте своим детям не только содержимое вашего генетического кода




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

Классическая генетика проводит фундаментальное различие между "генотипом" (то есть, совокупностью генов, переносимых индивидуумом, которые он может передать потомкам) и "фенотипом" (временным состоянием тела, несущим отпечаток своего окружения и полученного опыта, чьи особенности не передадутся потомкам). Предполагается, что лишь генетически предопределённые свойства могут наследоваться – то есть, передаваться потомкам – поскольку наследование проходит исключительно через передачу генов. Однако было показано, что, в нарушение дихотомии генотип/фенотип, линии генетически идентичных животных и растений могут испытывать изменчивость наследования и реагировать на естественный отбор.
Читать дальше →

Самая сложная программа

Reading time5 min
Views130K
От переводчика: я нашел на Quora вопрос: Какую программу или код можно назвать самыми сложными из когда-либо написанных? Ответ одного из учасников был настолько хорош, что вполне тянет на статью.

Пристегни ремни.

Самая сложная программа в истории была написана командой людей, имена которых нам неизвестны.

Это программа – компьютерный червь. Червь был написан, судя по всему, между 2005 и 2010 годами. Поскольку этот червь является таким сложным, я могу дать лишь общее описание того, что он делает.
Читать дальше →

Видеозаписи выступлений по геймдеву в Лектории Вышки

Reading time1 min
Views4.1K
В марте этого года в рамках лектория Вышки прошел цикл лекций об игровой индустрии. Лекции читали преподаватели программы «Менеджмент игровых проектов» ВШБИ НИУ ВШЭ. Под катом я собрал для вас видеозаписи, ссылки на конспекты и краткое описание всех докладов.

N+6 полезных книг

Reading time4 min
Views46K


Привет! Это шестой пост про книги: мы их читаем и запоминаем, которые были полезны для развития компании и вообще. Поскольку это уже не первая подборка, в неё попало достаточно много странных вещей — классика управления проектами и бизнеса не сильно меняется.

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

Коллаборация — Мортен Хансен
Это инструкция по совместной работе и взаимодействию между людьми в команде и командами. Она меня здорово успокоила рядом исследований, например, тем, что вообще-то не надо заниматься нетворкингом, если ты занимаешься делом. Не надо знать 200-400 человек, чтобы найти нужного — надо знать 10 человек, каждый из которых знает по 50-100. А это в разы проще и эффективнее. Нетворкинг для интроверта — это прекрасно.
Читать дальше →

Хакатон и гейм-джем в Екатеринбурге

Reading time2 min
Views5.3K
So popular! Much people! Wow! Регистрация закрыта 29 марта.

Мечтаешь сделать игру с собственными правилами и бомбическим сюжетом? Надоело ждать Half-Life 3 и смотреть, как battle royale разрывают гейм-индустрию? Тогда регистрируйся на хакатон Контура и сделай что-то по-настоящему взрывное! Поторопись, 29 марта ровно в полночь (по Мск.) мы закроем превратим в тыкву регистрацию. 7 и 8 апреля тебя ждет 27 часов непрерывной работы над собственным проектом, знакомство с самыми крутыми разработчиками города и командное месилово за призы.




Мы не будем ограничивать ни жанром, ни технологиями. Хочешь Super Mario на Марсе? Вперед! Любишь коллекционные карточные игры? Действуй! Каким бы шерстяным волчарой ты ни был, запилить крутой проект за сутки будет сложно. Даже если ты отличаешь друг от друга Defold, Corona, Unity и Unreal Engine. Поэтому тебе помогут другие разработчики, гейм-аналитики, дизайнеры — хакатон будет командным. Если у тебя есть проверенная команда — бери всех с собой. Не каждый может затусить в нашем офисе разработки на Широкой речке. А ты сможешь!



На нашем предыдущем хакатоне было клёво.

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

Описание прототипа моего игрового мультиплеерного сервера

Reading time6 min
Views6.1K
Привет, Хабр. Рад представить свою первую статью: описание прототипа игрового мультиплеерного сервера.

Исходный код (под лицензией Apache 2.0)

Содержание:

  • Архитектура обработки входящих запросов
  • Краткое описание прочих моментов
    • Модули и взаимодействия основных классов
    • Разные виды тестов
    • Кэширование при работе с БД

Архитектура обработки входящих действий от пользователя


Входной точкой является websocket-контроллер, принимающий всевозможные реквесты от пользователей: начиная от логина и заявок на игру до игровых ходов и написания сообщений в чат. Этот контроллер обслуживает thread-pool (около 20 потоков).

Одной из самых важных вещей в игре — является быстрая обработка игровых действий (приоритетный безнес-кейз). То есть в идеале игра должна мгновенно реагировать на действия пользователя и не «зависать». В то время как для множества других не игровых действий, таких например, как аутентификация, написание сообщений в чат или матчинг игроков (для совместной игры) — большая или меньшая задержка вполне приемлема для пользователя.

Поэтому архитектуру я постарался спроектировать также и в соответствии с этим требованием (см. картинку):
Читать дальше →

Релиз Apache Ignite 2.4 — Distributed Database and Caching Platform

Reading time5 min
Views5K
12 марта 2018 г., спустя 4 месяца после прошлой версии, вышел Apache Ignite 2.4. Этот релиз примечателен целым рядом нововведений: поддержка Java 9, множественные оптимизации и улучшения SQL, поддержка платформой нейронных сетей, новый подход к построению топологии при работе с диском и многое другое.

Apache Ignite Database and Caching Platform — это платформа для распределенного хранения данных (оптимизированная под активное использование RAM), а также для распределенных вычислений в близком к реальному времени.

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

Примеры использования: быстрый распределенный кеш; слой, агрегирующий данные из разрозненных сервисов (например, для Customer 360 View); основное горизонтально масштабируемое хранилище (NoSQL или SQL) оперативных данных; платформа для вычислений и т.д.

Далее рассмотрим основные новшества Ignite 2.4.
Читать дальше →

Развязываем игровой код с помощью паттерна Command, и дебажим, летая на машине времени

Reading time18 min
Views22K

Картинка для привлечения внимания: > Replay bug-10492; going back in time


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


Эта штука сэкономила мне кучу времени в поиске и воспроизведении сложных багов. Она позволяет делать "снапшоты" игрового состояния, историю его изменения, и пошагово их применять.


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


Хотите узнать как это сделать? Прошу под кат.

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

Откуда «мыло» в WPF и как с ним бороться

Reading time21 min
Views83K


Это руководство для WPF-разработчиков, стремящихся добиться максимально чёткой картинки в своих приложениях. Графическая система WPF до мозга костей векторная, но конечным результатом её работы по-прежнему является растр. Если не уделить этому факту должного внимания, можно столкнуться с различными сортами «мыла» — паразитными артефактами растеризации. В такой ситуации важно не терять присутствия духа, причины их возникновения вполне рациональны, а методы борьбы достаточно просты и эффективны.
Читать дальше →

Создание игры на Lua и LÖVE — 1

Reading time37 min
Views42K
image

Введение


В этой серии туториалов мы рассмотрим создание завершённой игры с помощью Lua и LÖVE. Туториал предназначен для программистов, имеющих некоторый опыт, но только начинающих осваивать разработку игр, или для разработчиков игр, уже имевших опыт работы с другими языками или фреймворками, но желающими лучше узнать Lua или LÖVE.

Создаваемая нами игра будет сочетанием Bit Blaster XL и дерева пассивных навыков Path of Exile. Она достаточно проста, чтобы можно было рассмотреть её в нескольких статьях, не очень больших по объёму, но содержащих слишком большой объём знаний для новичка.

GIF

Кроме того, туториал имеет уровень сложности, не раскрываемый в большинстве туториалов по созданию игр. Большинство проблем, возникающих у новичков в разработке игр, связано с масштабом проекта. Обычно советуют начинать с малого и постепенно расширять объём. Хотя это и неплохая идея, но если вас интересуют такие проекты, которые никак нельзя сделать меньше, то в Интернете довольно мало ресурсов, способных вам помочь в решении встречаемых задач.

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

Релиз первой беты кросс-платформенного XAML UI-тулкита Avalonia

Reading time6 min
Views22K

Состоялся релиз первой бета-версии Авалонии.


Avalonia — кроссплатформенный .NET UI-тулкит, вдохновлённый технологиями WPF и распространяемый под лицензией MIT. Он полностью поддерживает .NET Core 2.0, XAML, дата-биндинги, lookless-контролы и многое другое. Avalonia позволяет писать на C# приложения под Windows, Linux и Mac OS X. Возможность запуска на iOS и Android находится в экспериментальном состоянии.



Данная версия стабильна и имеет полное право называться бетой: тулкит не разваливается в руках и имеет приличный базовый набор контролов (см. видео). На нём создано два достаточно больших приложения с открытым исходным кодом: AvalonStudio — кроссплатформенная IDE для разработки на C# и C++ и Core2D — редактор 2D-схем и диаграмм.

Как устроена Алиса. Лекция Яндекса

Reading time8 min
Views92K
В этой лекции впервые рассматриваются технологические решения, на основе которых работает Алиса — голосовой помощник Яндекса. Руководитель группы разработки диалоговых систем Борис Янгель hr0nix рассказывает, как его команда учит Алису понимать желания пользователя, находить ответы на самые неожиданные вопросы и при этом вести себя прилично.


— Я расскажу, что внутри у Алисы. Алиса большая, в ней много компонент, поэтому я немного поверхностно пробегусь.

Почему люди не покупают вашу игру

Reading time10 min
Views21K
image

В постмортемах многих игр часто повторяется одно и то же клише. Оно всплывает и в разговорах с инди-разработчиками. Звучит клише примерно так: «Чёртовы потребители! Они каждый день тратят по пять баксов на один и тот же безвкусный латте из Starbucks, но не могут выделить ту же сумму на покупку моей созданной с любовью, графически красивой инди-игры, которую я, вложив душу, разрабатывал целых три года? Почему, почему люди не могут дать моей игре шанса?»

Да, выбор кажется очевидным: или один и тот же пережаренный кофе или поистине независимое творение мысли.

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

Нежелание покупателя тратить пять долларов на странную инди-игру связано с тем, что он не представляет, какая она. Хорошо ли она сделана? Как долго можно в неё играть? На что похожа эта игра? Но, что более важно — кто её сделал? В конце концов, нам, инди-разработчикам нужно преодолеть огромное препятствие: установить взаимоотношения с нашими игроками, чтобы они доверяли нам и покупали наши игры.

Бухгалтерский учет для программистов

Reading time16 min
Views83K

Введение


Занимаюсь автоматизацией бухгалтерского учета 17 лет. После универа поработал как программист бухгалтерской программы. Выяснилось, что есть спрос на программистов этой программы. Поменял одну работу, вторую. Начал брать заказы на стороне. Выяснилось (или показалось), что выполнять заказы выгоднее, чем получать зарплату. Стал частным предпринимателем. Выяснилось (или опять показалось), что продавать программу выгоднее, чем программировать. Стал дилером. Оказалось, что выгоднее всего – подписка на обновления и обслуживание. Возможно, еще выгоднее сделать веб-сервис для онлайн-бухгалтерии…

В ходе работы приходилось нанимать программистов и обучать основам бухгалтерского учета. Когда обучал программистов бухучету, мне нравилось за час рассказать им всю базовую теорию. Приятно срывать покровы сложности и таинственности. Оказывается, курсы бухгалтеров никому не нужны. Нет такой науки. Разве что набор терминов, в которых путаются сами бухгалтера…
Читать дальше →

Git Rebase: руководство по использованию

Reading time8 min
Views855K
Rebase — один из двух способов объединить изменения, сделанные в одной ветке, с другой веткой. Начинающие и даже опытные пользователи git иногда испытывают нежелание пользоваться ей, так как не видят смысла осваивать еще один способ объединять изменения, когда уже и так прекрасно владеют операцией merge. В этой статье я бы хотел подробно разобрать теорию и практику использования rebase.

Теория


Итак, освежим теоретические знания о том, что же такое rebase. Для начала вкратце — у вас есть две ветки — master и feature, обе локальные, feature была создана от master в состоянии A и содержит в себе коммиты C, D и E. В ветку master после отделения от нее ветки feature был сделан 1 коммит B.


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

Обучение программированию: рисование пальцами и убийство зомби

Reading time14 min
Views8.5K

Zmob, моя первая (и единственная) собственная игра.

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

Образование против исследований


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

Git: советы новичкам – часть 2

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


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

“Cтрашилка” о GDPR

Reading time7 min
Views36K
В мае 2018 года в Европе вступают в силу обновлённые правила обработки персональных данных, установленные Общим регламентом по защите данных (Регламент ЕС 2016/679 от 27 апреля 2016 г. или GDPR — General Data Protection Regulation).

Все компании, которые обрабатывают (как внутри, так и за пределами ЕС) персональные данные граждан европейских стран, обязаны соблюдать требования этого документа. Сфера действия новых правил GDPR распространяется на все 28 стран ЕС. Этот документ заменит существующие законы о защите персональных данных в европейских странах. С учетом того, что новые правила GDPR будут применяться экстерриториально, их соблюдение будет обязательным для российских компаний, имеющих присутствие в ЕС. То есть для любого российского бизнеса, собирающему и обрабатывающему персональные данные хотя бы одного гражданина страны-члена ЕС.
Читать дальше →

Чему инди-разработчики могут научиться у инди-писателей

Reading time15 min
Views15K
image

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

Но представьте рынок, на котором такие рекомендации неприменимы. На нём нет таких вещей, как Steam Launch Visibility Round или рекомендации в App Store. Что, если нет прессы, с радостью пишущей обзоры? И что, если вместо 7667 игр, выпущенных в Steam в 2017 году, в тот же год выпущено больше 100 000 новых книг? А общее количество книг на рынке превышает 4 000 000 наименований?
Читать дальше →

Как писать чистый и красивый код

Reading time7 min
Views36K
Каким должен быть качественный код? Роберт Мартин выразил это невероятно точно, когда сказал: «Единственная адекватная мера качества кода — это количество восклицаний «какого чёрта!» в минуту».

image

Позвольте мне пояснить эту идею.
Читать дальше →

Information

Rating
Does not participate
Location
Саратов, Саратовская обл., Россия
Date of birth
Registered
Activity