Как стать автором
Обновить
6
0

Пользователь

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

Moby/Docker в продакшене. История провала

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

Обновление: у этой статьи появилось продолжение, переведённое @achekalin. В каком порядке читать — на ваше усмотрение: в этой статье можно получить удовольствие от обширной попоболи автора, а в продолжении — от сделанных им выводов.


Примечание переводчика: в предыдущей статье о подготовке к девопс-конференциям, Gryphon88 задал резонный вопрос: как отличить cutting-edge и хайп? Нижеследующая статья наполнена сочной незамутненной истерикой, которую так приятно читать с утра, попивая чашечку кофе. Минус в том, что она написана в ноябре 2016, но нетленка не стареет. Если после прочтения захочется добавки, есть комментарии на Hacker News. А у тебя, юзернейм, такой же ад? Пиши в комментариях. Итак, начнем.


В первый раз я встретился с Докером в начале 2015. Мы экспериментировали с ним, чтобы понять, для чего бы его можно употребить. В то время нельзя было запустить контейнер в фоне, не было команд чтобы посмотреть что запущено, зайти под дебагом или SSH внутрь контейнера. Эксперимент оказался быстрым, Докер был признан бесполезным и более похожим на альфу или прототип, чем на релиз.


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


У нас 12 докеризованных приложений, бегающих на проде прямо в момент написания этой заметки, размазанные на 31 хост на AWS (по одному приложению на хост, дальше объясню — почему).


Эта заметка рассказывает, как мы путешествовали вместе с Докером — путешествие полное опасностей и неожиданных поворотов.

Читать дальше →
Всего голосов 141: ↑132 и ↓9+123
Комментарии175

Как повторить сервис anyroom.io в несколько строк JS и без бэкенда

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


Месяц назад на Hacker News в топ вышел пост про сервис AnyRoom: простенький бэкенд на Go, который позволяет создавать телефонные конференции. Рейтинг больше ста, обсуждения в комментах, Исходный код на github, подписки по 50 долларов в месяц — в общем, всё как у взрослых. После первого удивления «неужели это кому-то нужно?!?» я немного погуглил «голосовая конференция без регистраций и sms недорого», подивился дороговизне приложений и понял что таки да, нужно. А на Voximplant такую штуку можно собрать за полчаса и десяток строк JavaScript-кода. Кто хочет создать стартап и попиариться на Hacker News? Под катом рассказываю, как.
Всего голосов 43: ↑40 и ↓3+37
Комментарии5

Пора завязывать использовать пробелы вместо табуляции в коде

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

Этот топик — ответ на топик "Пора завязывать использовать символы табуляции в коде".
Я хотел было ответить к комментариях, но в силу объема и желания независимости от исходного топика решил создать новый топик.

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

Читать дальше →
Всего голосов 513: ↑389.5 и ↓123.5+266
Комментарии407

Внутренняя структура игры Contra

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

Как и многие из тех, кто программирует видеоигры, в детстве я часто играл в игры для NES. Меня всегда поражало, как разработчики смогли добиться столь многого минимальными усилиями, поэтому я потратил кучу времени на анализ внутренней работы некоторых игр. Сегодня я начинаю серию постов, в котором буду документировать то, чему научился, с точки зрения программиста игр. Я постараюсь сосредоточиться на работе систем игры на уровне движка, а не на аппаратном уровне (то есть буду говорить о том, как игра решает, что нужно отрисовать в текущем кадре, а не о том, как работают спрайты на NES). Также я постараюсь добавить любые крупицы информации об играх, которые мне покажутся интересными, например, неочевидное с точки зрения игрока поведение или примеры багов в логике игры.
Читать дальше →
Всего голосов 113: ↑112 и ↓1+111
Комментарии32

Реализация псевдо-3D в гоночных играх

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

Введение


Почему псевдо-3d?

Зачем кому-то захочется создавать дороги в олдскульном стиле сегодня, когда каждый компьютер может на лету отрисовывать графику, состоящую из миллионов полигонов? Разве полигоны — не то же самое, только лучше? На самом деле нет. Полигоны действительно создают меньше искажений, но именно деформации в старых игровых движках дают такое сюрреалистическое, головокружительное чувство скорости, ощущаемое во многих дополигональных играх. Представьте, что область видимости управляется камерой. При движении по кривой в игре, использующей один из таких движков, похоже, что она заглядывает на кривую. Затем, когда дорога становится прямой, вид тоже выпрямляется. При движении в повороте с плохим обзором камера как будто заглядывает за выступ. И поскольку в таких играх не используется традиционный формат трасс с точными пространственными соотношениями, то можно без проблем создавать трассы, на которых игрок будет ездить с захватывающей дух скоростью. При этом не нужно беспокоиться о том, что объекты появляются на трассе быстрее, чем может среагировать игрок, потому что физическую реальность игры можно легко изменять в соответствии со стилем геймплея.

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

Стоит заметить, что не в каждой старой гоночной игре используются эти техники. В действительности описываемый в статье метод — это только один из способов создания псевдотрёхмерной дороги. В других случаях используются спроецированные и отмасштабированные спрайты или различные способы реального проецирования дороги. Степень смешения реальной математики с трюками зависит от создателей. Надеюсь, вам понравится изучение предложенного мной спецэффекта.
Всего голосов 92: ↑91 и ↓1+90
Комментарии18

Узкие места в облаках: истории Pokemon Go и Trivia Crack

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

Урок: «Система, работающая с двумя миллионами пользователей, не обязательно сможет справиться с десятью миллионами».

После выпуска Pokémon Go в США в июле 2016 года она стала самой популярной на тот момент игрой в дополненной реальности. Этот продукт многолетнего сотрудничества игрового разработчика Niantic и Google (пока Niantic не встала на ноги, она была внутренним стартапом Google). Поэтому инфраструктура Pokémon Go сильно зависела от облачной платформы и служб приложений Google. (Компании Nintendo и Pokémon тоже приняли участие в создании захватывающего игрового процесса выращивания маленьких монстриков для мобильных платформ.)

Это была не первая игра Niantic в дополненной реальности. Ранее компания создала Ingress, игру о вторжении инопланетян, выпущенную в 2013 году для устройств Android. Но Pokémon Go стала игрой совершенно другого уровня — покемоны уже давно были культурным феноменом. Игра заинтересовала аудиторию, долгие годы ожидавшую мобильную игру. Поэтому количество установок росло стремительно. За полдня игра заняла первую позицию по доходам на iPhone. В какой-то степени это был самый масштабный в мире выпуск мобильной игры.
Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Комментарии3

Так когда же умрет электронная почта?

Время на прочтение5 мин
Количество просмотров17K
История email началась еще в 1972 году, когда Рэй Томлинсон (Ray Tomlinson) предложил использовать символ «@» (at-sign) для обозначения сообщений, которые нужно передать с одного компьютера на другой.

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

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

Читать дальше →
Всего голосов 38: ↑23 и ↓15+8
Комментарии100

TDD все еще сравнивают с TLD — мнения экспертов

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


Специалисты из нескольких ВУЗов Европы – Давиде Фуччи, Джузеппе Сканиелло, Симоне Романе, Мартин Шеппэрд, Бойсе Сигвени, Фернандо Уйагуари, Бурак Туран, Наталья Юристо и Марку Ойиво – провели очередное исследование на тему эффективности тестирования ПО. Они рассмотрели методологии Test Driven Development (TDD) и Test Last Development (TLD).



Исследователи сравнивали их по двум показателям – суммарная скорость разработки продукта и качество исходного кода. Первая методология (разработка через тестирование – TDD) вновь не оправдала возложенных надежд: популярная ранее схема тестирования после разработки (TLD) оказалась не менее эффективной. Так что по указанным выше показателям существенных отличий они не обнаружили.

В таком случае чем же объясняется вспышка интереса к TDD, когда она только появилась? Эта методология возникла в 2000-х, так что теперь элемент новизны можно смело сбросить со счетов. Тем не менее, предметом споров она остается до сих пор.
Читать дальше →
Всего голосов 58: ↑52 и ↓6+46
Комментарии136

“Зонтичный” мониторинг: перископ для бизнеса

Время на прочтение7 мин
Количество просмотров5.8K
Решение HPE Operations Bridge в представлении не нуждается. Множество компаний используют его в качестве эффективного инструмента для обработки событийной информации, которая поступает от отдельных компонентов ИТ-инфраструктуры. Однако это решение может быть масштабировано для инфраструктуры в целом — подобно «зонтику», собирающему и анализирующему данные со всех систем, находящихся в пределах его охвата.  


Читать дальше →
Всего голосов 17: ↑14 и ↓3+11
Комментарии0

Метод Super Mario World: серии препятствий

Время на прочтение6 мин
Количество просмотров6.3K
Это третий урок из цикла о том, как применять метод Super Mario World при построении собственных уровней в Super Mario Maker. В предыдущих статьях мы рассмотрели способы упорядочить элементы геймплея в Mario Maker на таких уровнях сложности организации контента, как испытание (низкий) и модуляция (средний). Если вы еще не успели прочесть их, вам стоит это сделать, потому что данная статья основывается на пройденном ранее материале.


Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Комментарии0

Создание пакета Debian с нуля

Время на прочтение10 мин
Количество просмотров38K
Создание пакета Debian с нуля является своего рода волшебным процессом. Вы могли бы начать гуглить с запросом “Создание пакета Debian с нуля” и получить множество результатов, ни один из которых не стал бы тем, который Вам необходим. Несомненно, Вы найдете большой обзор команд, которые используются в Debian и, если Вы роете достаточно глубоко, Вы сможете все же найти пару команд, которые помогут создать базовый пакет Debian, но не смогут объяснить, что происходит. Более подробную информацию о том, что все же «происходит» Вы можете получить, в данном посте мы попробуем это частично затронуть.

Читать дальше →
Всего голосов 51: ↑34 и ↓17+17
Комментарии27

Обзор физики в играх Sonic. Части 5 и 6: потеря колец и нахождение под водой

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


Продолжение цикла статей о физике в играх про Соника. В этом посте рассматриваются потеря колец и нахождение под водой.
Читать дальше →
Всего голосов 43: ↑42 и ↓1+41
Комментарии4

Как мы рассылали SMS со старой Nokia и телефона на Android

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

Примерно год назад мы запустили свой маленький проект с оповещениями о поломках Московского метро.

Самой главной проблемой в нем оказалась рассылка смс. Мы не ожидали, что проект понравится и у нас будет 1500+ регистраций. В самом лучшем случае мы расчитывали человек на 300. Этим мы были приятно удивлены.
Читать дальше →
Всего голосов 24: ↑22 и ↓2+20
Комментарии83

Поэтапное руководство по созданию иконок

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

Статья была опубликована на smashingmagazine автор статьи Scott Lewis.

Найти недорогие качественно сделанные иконки и векторные изображения не составляет труда – именно для этого есть такие веб-сайты, как Iconfinder (где работает автор настоящей статьи). В распоряжении дизайнеров тысячи наборов иконок премиум класса, и сотни наборов доступны для бесплатного скачивания.

В данной статье приводится руководство по дизайну векторных иконок, которое включает в себя шесть этапов. Мы рассмотрим эти этапы после того, как разберем основные принципы успешного дизайна иконок. Эти принципы хорошо известны и подробно рассмотрены в таких работах, как Руководство по дизайну иконок Джона Хикса, а также в руководстве от Google Материальный дизайн в разработке системных иконок. Шесть этапов, которые мы будем рассматривать в данной статье, должны восприниматься, как рекомендации, а не как догмы. Способность чувствовать, где нужно следовать правилам, а когда их лучше нарушить – это важное качество, которое должен развить в себе каждый хороший дизайнер, и мы наглядно это продемонстрируем.
Читать дальше →
Всего голосов 27: ↑25 и ↓2+23
Комментарии32

Хардкор-стартап. Часть 2: Как собрать команду мечты

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

Оглянувшись назад, я понимаю, что за 5 лет 3 раза собирал команду…
В предыдущей статье я рассказал сколько было “НЕТ” и “ДА” на пути к осуществлению мечты, сколько раз мне приходилось собирать и распускать команду, с какими сложностями я столкнулся, сколько ошибок совершил. Эту часть хроники я хочу посвятить моей команде. Для тех, кто не читал первую часть хардкор-стартапа: я — бизнесмен с идеей и небольшим опытом работы с программистами за плечами, который захотел попытать свое счастье в тех-стартапе.
Читать дальше →
Всего голосов 16: ↑7 и ↓9-2
Комментарии24

Хардкор-стартап. Часть 1: Как воплотить свою мечту

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

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

Сегодня можно подвести первые итоги. На пути у меня было много НЕТ, несколько ДА, и три выбора, которые, впрочем, нужно делать практически каждый день.

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

Big Data головного мозга

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

Наверно, в мире данных нет подобного феномена настолько неоднозначного понимания того, что же такое Hadoop. Ни один подобный продукт не окутан таким большим количеством мифов, легенд, а главное непонимания со стороны пользователей. Не менее загадочным и противоречивым является термин "Big Data", который иногда хочется писать желтым шрифтом(спасибо маркетологам), а произносить с особым пафосом. Об этих двух понятиях — Hadoop и Big Data я бы хотел поделиться с сообществом, а возможно и развести небольшой холивар.
Возможно статья кого-то обидит, кого-то улыбнет, но я надеюсь, что не оставит никого равнодушным.


image
Демонстрация Hadoop пользователям

Читать дальше →
Всего голосов 41: ↑38 и ↓3+35
Комментарии75

High-Density WiFi. Часть 3: О технологиях. Часть 4: о деньгах

Время на прочтение16 мин
Количество просмотров8.5K
«Переходи в мою команду и никогда не будешь вторым»
Жозе Моуриньо




Теперь поговорим о каждом блоке, из которого строятся правильные HD WiFi сети Аруба. Начнем с самого важного блока HD WiFi инфраструктуры – блока оптимизации радиосреды, без которого работа HD сети невозможна в принципе. Еще раз, кратко напомню основные сложности построения HD WiFi сетей:

  • WiFi работает в нелицензируемом спектре – огромное количество источников интерференции
  • Часто WiFi сети пересекаются между собой, конкурируя за радиоресурс
  • Множество не-WiFi устройств могут влиять на WiFi сеть, снижая ее производительность (Bluetooth, AV Systems, и т.д.)
  • Радиосреда в HD сетях очень динамична, меняется крайне быстро и наплывами
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии0

High-Density WiFi. Часть 1: пропуск в премьер-лигу. Часть 2: о подходах

Время на прочтение7 мин
Количество просмотров14K
«По делам их узнаете их»
Матфей 7:20




Сегодня на рынке беспроводных технологий сложилась ситуация, когда WiFi решения не делает только ленивый. Китайские вендоры, американские вендоры, европейские вендоры, израильские вендоры, российские вендоры… все выпускают «беспроводные решения для корпоративных сетей». Но, как в футболе, есть Реал Мадрид, Челси и Бавария, а есть Пахтакор и Дижон, при всем уважении. И те и другие бегают по полю 68 на 105 метров и бьют ногами по мячу, пытаясь попасть в рамку 7 на 2,5. Но тут весь вопрос не в том «ЧТО ОНИ ДЕЛАЮТ», а в том «КАК ОНИ ЭТО ДЕЛАЮТ».
Читать дальше →
Всего голосов 17: ↑15 и ↓2+13
Комментарии13

Мультиплеер в быстрых играх (Часть III: появление врага)

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


  1. Части I, II (синглплеер с авторитарным сервером)
  2. Часть III (Появление врага)
  3. Часть IV (Хэдшот!)

Введение


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

В этой статье мы рассмотрим последствия одновременного подключения нескольких игроков к одному серверу.
Читать дальше →
Всего голосов 67: ↑66 и ↓1+65
Комментарии54
1
23 ...

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность