Как стать автором
Обновить
581
0
Александр Гончаров @kesn

Какой-то чувак

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

Босяцкий кластер высокой доступности

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

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

Читать далее
Всего голосов 39: ↑34 и ↓5+40
Комментарии41

Радикальная удалёнка… налоговый рай архипелаг Свальбард

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

Почему норвежский архипелаг Свальбард (также известный как Шпицберген) может быть очень интересной и выгодной локацией для многих удалёнщиков и онлайн предпринимателей. Я говорю об этом совершенно серьёзно, приготовьтесь к захватывающему открытию этого места!

Lat oss gå (поехали)!!
Всего голосов 53: ↑48 и ↓5+56
Комментарии164

Что такое «асинхронная событийная модель», и почему сейчас она «в моде»

Время на прочтение15 мин
Количество просмотров54K
Сейчас в тематических интернетах модно слово «Node.js». В этой небольшой статье мы попробуем понять («на пальцах»), откуда всё это взялось, и чем такая архитектура отличается от привычной нам архитектуры с «синхронным» и «блокирующим» вводом/выводом в коде приложения (обычный сайт на PHP + MySQL), запущенного на сервере приложений, работающем по схеме «по потоку (или процессу) на запрос» (классический Apache Web Server).
Читать дальше →
Всего голосов 163: ↑153 и ↓10+143
Комментарии130

DIY автономный дрон с управлением через интернет. Часть 2 про ПО

Время на прочтение10 мин
Количество просмотров44K
Это продолжение повествования об автономном дроне. В первой части говорилось про hardware, в этой речь пойдет про software. Для начала небольшой ликбез про взаимодействие оператора с коптером. Вот типичная схема у большинства самосборных дронов:

image

А вот схема у продвинутых дронов:

image
Всего голосов 25: ↑24 и ↓1+23
Комментарии18

Как мы отказались от JPEG, JSON, TCP и ускорили ВКонтакте в два раза

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

На протяжении всей жизни мне приходится экономить вычислительные и сетевые ресурсы: сначала были компьютеры с 300 кГц (кило — не гига!) и 32 Кбайт RAM, интернет по dial-up. Потом я решал олимпиадные задачки. Теперь имею дело с терабайтами трафика и 50 млрд событий в сутки. И хотя современные телефоны в 1 000 раз мощнее любого оборудования двадцатилетней давности, я до сих пор оптимизирую. Думал даже, что это со мной что-то не так. Но потом понял, что все постоянно что-нибудь оптимизируют. 

Эта статья в меньшей степени о том, почему нужно бороться за производительность, и в большей о том, на что сейчас стоит заменить устаревший стек из JPEG, JSON, gzip и TCP — и как это сделать. 

Спойлер: у нас есть решение и мы его не только показываем — ссылки на open source в конце статьи.

Читать далее
Всего голосов 336: ↑324 и ↓12+411
Комментарии300

PostgreSQL Antipatterns: «слишком много золота»

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

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

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

Читать далее
Всего голосов 23: ↑22 и ↓1+27
Комментарии6

Бесплатные сервисы для разработчиков — огромный список

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

Бесплатное хранилище артефактов PackageCloud

Удивительно, но в интернете сотни сервисов, которыми разработчик может пользоваться совершенно бесплатно. «Бесконечное» время (пока компания не обанкротится или не изменит условия), без рекламы, пробного периода и других подводных камней.

Недавно мы обсуждали эту тему в статье «Боль разработчика: “Никогда не давайте пользователям бесплатный тариф”». Речь шла о том, что на самом деле бесплатный план вовсе не бесплатен — приходится тратить массу времени и усилий на поддержку этих тарифов.

Но для некоторых бесплатный тариф — единственный способ завлечь новых клиентов. Это просто замечательно с точки зрения самих пользователей. Ведь перед нами десятки бесплатных хостингов, API, CMS, CDN, сервисов обработки данных, поисковых движков, репозиториев, инструментов проверки кода и других. Бесплатный тариф идеален для опенсорс-разработчиков, любительских и некоммерческих проектов, маленьких стартапов. Ни за что не надо платить.
Читать дальше →
Всего голосов 65: ↑59 и ↓6+71
Комментарии15

3 года программирования вслепую. Часть 2

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

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

Читать дальше →
Всего голосов 77: ↑76 и ↓1+94
Комментарии33

Как я учу детей Питону

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

Моя основная работа связана с данными и программированием на R, но в этой статье я хочу рассказать про своё увлечение, которое даже приносит некий доход. Мне всегда было интересно рассказывать и объяснять что-то друзьям, одноклассникам и однокурсникам. Ещё мне всегда просто было находить общий язык с детьми, не знаю, почему. Вообще, я считаю, что воспитание и обучение детей это одно из важнейших занятий из всех, да и жена у меня педагог. В общем, примерно год назад я дал объявление в местной группе на фейсбуке, набрал группу и стал преподавать скратч и питон раз в неделю. Сейчас у меня пять групп, свой класс в доме и индивидуальные занятия. Как я дошёл до жизни такой и как именно я учу детей, я раскажу в этой статье.
Читать дальше →
Всего голосов 66: ↑65 и ↓1+84
Комментарии91

Дизайн низкополигональных персонажей

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

Персонаж — это личность. Без истории нет индивидуальности. Каждый хороший персонаж начинается с истории, а дизайн персонажа должен рассказать эту историю.

В своей предыдущей статье How To Make Low Poly Look Good я говорил, что главная цель низкополигонального (low poly) дизайна — донести сообщение через наименьшее количество форм.

Это особенно справедливо, когда вы создаёте низкополигонального персонажа. Нужно рассказать историю, использовав как можно меньше форм.

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



Я буду работать в Blender. В Maya, Max и других 3D-редакторах есть похожие инструменты, так что не беспокойтесь об этом.
Читать дальше →
Всего голосов 56: ↑56 и ↓0+56
Комментарии14

В коре вашего мозга 17 млрд компьютеров

Время на прочтение7 мин
Количество просмотров30K
Нейросеть нейросетей


Изображение brentsview под лицензией CC BY-NC 2.0

В мозг поступает информация из внешнего мира, его нейроны получают данные на входе, производят обработку и выдают некий результат. Это может быть мысль (хочу карри на ужин), действие (сделать карри), изменение настроения (ура, карри!). Что бы ни получилось на выходе, это «что-то» является преобразованием данных со входа (меню) в результат на выходе («куриный дхансак, пожалуйста»). И если представлять мозг как преобразователь с входом в выходом, то неизбежна аналогия с компьютером.

Для одних это просто полезный риторический приём, для других — серьёзная идея. Но мозг — это не компьютер. Компьютером является каждый нейрон. В коре головного мозга 17 миллиардов компьютеров.
Читать дальше →
Всего голосов 61: ↑57 и ↓4+53
Комментарии198

«Домашние локалки» возрождаются в виде mesh-сетей. LibreRouter и другие свободные маршрутизаторы

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


На Земле немало удалённых регионов, куда практически невозможно провести интернет. Что делать жителям? Не всякий позволит себе спутниковый канал, Для связи между членами общины можно организовать собственную сеть без всяких коммерческих провайдеров (community network). Именно для таких проектов предназначен новый свободный маршрутизатор LibreRouter. Конечно, это довольно специфическое и специализированное железо. Но люди живут не только в мегаполисах, а для самоорганизации групп, удалённых от цивилизации, такое устройство может стать незаменимым.

Ну и подобные сети, словно «домашние локалки» в пост-СССР, будут дешёвой или бесплатной альтернативой интернету в бедных районах стран третьего мира.
Читать дальше →
Всего голосов 37: ↑36 и ↓1+35
Комментарии49

Формула фана или почему мы играем в игры

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


Предупреждение: возможно уменьшение удовольствия от игр и фильмов, так как появится осознание и понимание как они устроены.

Как-то захотелось мне сделать игру и у меня возникли вопросы.
Почему мы играем? Из-за каких элементов игры мы получаем фан?

Далее, под словом «фан», имеется ввиду положительные эмоции.

Поиск в интернете точного ответа не дал. Кто-то пишет, что игрокам нравится делать то, что в реальном мире они не могут. Другие пишут, что важен сюжет. По таким описаниям хорошую игру не сделать.

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

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

Проделав этот эксперимент с играми в которые я играл, получился такой набор базовых элементов:
Читать дальше →
Всего голосов 56: ↑49 и ↓7+42
Комментарии83

Транс-ФРК: один из эталонов коррекции зрения

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

Сегодня опять буду рассказывать вам про лазеры, роговицу и коррекцию зрения. Но на этот раз будем говорить не о разных вариантах LASIK и ReLEx SMILE, а о последних модификациях ТрансФРК. Метод все незаслуженно пинают, называя устаревшим и уступающим во всем другим технологиям. Плюс, его постоянно путают с обычным ФРК, при том, что между ними реально лежит технологическая пропасть. Я попробую показать почему это не так, а заодно расскажу, почему к нам выстраиваются очереди перед началом набора в летные училища и учебные заведения МВД.
Всего голосов 29: ↑28 и ↓1+27
Комментарии114

Создание разрушаемых мешей

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

Часть 1. Знакомство с Marching cubes


Как создать меш из любого хаоса
В Minecraft мы можем копать в любом направлении, убирая за раз по одному блоку с чётко заданными краями. Но в других играх разработчикам удаётся разрушать рельеф плавно, без кубичности Minecraft.

Вот пример из No Man’s Sky: видео.

Аналогичная техника применяется для отображения изображений с МРТ, metaball-ов и для вокселизации рельефа.

В этой части я расскажу о технике создания разрушаемого рельефа Marching Cubes, а в более общем применении — для создания плавного граничного меша твёрдого объекта. В этой статье мы начнём с рассмотрения двухмерной техники, затем трёхмерной, а в третьей части рассмотрим Dual Contouring. Dual Contouring — это более совершенная техника, создающая тот же эффект.
Всего голосов 30: ↑30 и ↓0+30
Комментарии3

Откровения аварийного инженера

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

Или как сэкономить 15% и более от бюджета на разработку


Я профессионально работаю с Unreal Engine уже более 9 лет. За это время я освоил множество специальностей и занимал разные должности в разработке игр: от разработчика-«пехотинца» до менеджера больших команд разработчиков игр и даже консультировал инвесторов игровых компаний.

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

Если у игровой компании в Лос-Анджелесе появляется проблема с Unreal Engine 4, которую никто не может решить, в конце концов звонят мне. Я пишу эту статью, чтобы объяснить, почему мне звонят, как избежать необходимости таких звонков, и что я обычно делаю, получив такой звонок.

Большинство проблем разработки игр хорошо понятно тем, кто находится «в траншеях», но эти проблемы пролетают над головами менеджеров и руководства. Кроме того, похоже, подобные статьи читают только люди из траншей на передовой, а не те, кому они действительно необходимы.
Читать дальше →
Всего голосов 63: ↑60 и ↓3+57
Комментарии16

TON: Telegram Open Network. Часть 1: Вступление, сетевой уровень, ADNL, DHT, оверлейные сети

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

TON: Telegram Open Network


Уже две недели Рунет шумит про Telegram и ситуацию с его бессмысленной и беспощадной блокировкой Роскомнадзором. Рикошетом задело многих, но всё это — темы для постов на Geektimes. Меня же удивило другое — я до сих пор не видел на Хабре ни одного разбора запланированной к выходу на базе Telegram сети TON — Telegram Open Network. Мне захотелось восполнить этот недостаток, ибо поизучать там есть что — даже несмотря на отсутствие официальных заявлений о нём.


Напомню — ходят слухи о том, что Telegram запустил очень масштабное закрытое ICO, уже собрав в нём невероятные суммы. Предполагается, что уже в этом году будет запущена собственная криптовалюта Gram — и у каждого пользователя Телеграма автоматически появится кошелёк, что само по себе создает немалое преимущество перед остальными криптовалютами.


К сожалению, так как официальных заявлений нет, дальше я могу отталкиваться только от документа неизвестного происхождения, о чём я сразу вас предупреждаю. Конечно, он может оказаться очень искусной подделкой, но не исключено и то, что это — реальный whitepaper будущей системы, написанный Николаем Дуровым (и слитый, вероятно, кем-то из инвесторов). Но даже если это фейк, никто нам не запретит его поизучать и обсудить, верно?


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

Итак, приступим
Всего голосов 84: ↑83 и ↓1+82
Комментарии129

Как стреляет шутер

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

[Статья Armin Ronacher о принципах вычисления коллизий в сетевых шутерах. Носит скорее обзорный и исследовательский, нежели технический характер. Здесь и далее в квадратных скобках примечание переводчика]

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

И еще – несмотря на все мои изыскания, я не выяснил достаточно для того, чтобы ясно представлять себе механику очень динамичных игр, вроде баттлфилда, так что я не выражаю претензий на бытие истиной в последней инстанции. И еще, очень многое из этого было действительно трудно раскопать.
Читать дальше →
Всего голосов 124: ↑115 и ↓9+106
Комментарии47

Сетевая оптимизация для Unreal Engine 4

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


Не так давно в официальной группе UE4 в vk я спрашивал, какие темы были бы интересны сообществу, чтобы о них рассказать :) Одним из популярных запросов стала работа с сетью на движке.


В начале я не планировал как-то раскрывать или упоминать эту тему, но потом подумал, что оформить "Best Practices" было бы неплохо даже для себя и своей команды.


Так что, если вам интересно, как мы делали сеть для нашей Armored Warfare: Assault, добро пожаловать под кат.

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

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

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

image

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

КДПВ: текущее распределение проектов в геймдеве, одна Белоснежка и семь гномов.
Читать дальше →
Всего голосов 133: ↑127 и ↓6+121
Комментарии34
1
23 ...

Информация

В рейтинге
4 747-й
Зарегистрирован
Активность

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

Backend Developer
От 750 000 ₽
Python