С 256-м днём в году — днём программиста! Сейчас расскажу, как мы отмечаем. Сегодня в офис разработки в Екатеринбурге грузовик привёз 280 коробок с пиццей. Так получилось отвлечь всех от игры в Pac-Man и от однокнопочной мыши древнего iMac, потому что до грузовика с пиццей приехал грузовик из Антимузея компьютеров и игр (https://vk.com/retro_ekb).
На самом деле мы начали отмечать ещё в понедельник. Устроили в компании коллективное онлайновое рисование на холсте 256×256 пикселей. Утянули эту идею на Reddit, где 1 апреля все желающие рисовали на холсте 1000×1000. Это интересно потому, что есть суровое ограничение — каждый участник может раскрасить не больше одного пикселя каждые N секунд. Поэтому участники должны собрать команды, чтобы получилось что-нибудь годное. А интервал N у нас не постоянный, а меняется от 2:56 до 0:32 и адаптируется к количеству участников.
В понедельник все начинали осторожно:
На самом деле мы начали отмечать ещё в понедельник. Устроили в компании коллективное онлайновое рисование на холсте 256×256 пикселей. Утянули эту идею на Reddit, где 1 апреля все желающие рисовали на холсте 1000×1000. Это интересно потому, что есть суровое ограничение — каждый участник может раскрасить не больше одного пикселя каждые N секунд. Поэтому участники должны собрать команды, чтобы получилось что-нибудь годное. А интервал N у нас не постоянный, а меняется от 2:56 до 0:32 и адаптируется к количеству участников.
В понедельник все начинали осторожно:
Кто-то попробовал обойтись без команды и героически закрасил несколько пикселей. А кто-то нашёл дыру в безопасности и закрасил несколько тысяч пикселей за несколько минут. Правда, разработчикам сервиса хватило этих минут, чтобы выкатить фикс и остановить зелёную волну. Потом появились команды и стало веселее:
А во вторник все узнали, что есть API для рисования, и стало совсем весело. Появилось два вида ботов. Одни защищали части картинки, стирая вражеские интервенции. Другие боты рисовали то, что не могли (то есть не хотели) рисовать белковые формы жизни. К полудню 256-го дня холст стал таким:
Мой бот нарисовал Скотта Пилигрима с Рамоной, ещё один бот загнул радугу, что сделали другие боты — до сих пор непонятно. Самый загадочный бот уже почти сутки ведёт обратный отсчёт. И никто не знает, что произойдёт через 16 часов 08 минут.
Понятно, что самое интересное — это не итоговая статичная картинка, а видео того, как она менялась. Пока сделали такой таймлапс:
Понятно, что самое интересное — это не итоговая статичная картинка, а видео того, как она менялась. Пока сделали такой таймлапс:
Сегодня в Екатеринбурге второй день конференции FrontTalks (https://goo.gl/83Yxj1). Наш разработчик Валерий Кузьмин рассказывает о работе с WebAssembly: как интегрировать WASM в обычный фронтовый код, как сделать interop между JS и C++, как использовать WASM в продакшне. (Выложу ссылку на слайды и демо после окончания доклада.)
Слайды: http://slides.com/malcoriel/wasm2-at-ft#/
Демо с даунсемплингом JPEG-картинок с помощью библиотеки libjpeg: https://malcoriel.github.io/wasm2-at-ft/
Демо с браузерной игрой, использующей физический движок на Си: http://malcoriel.us.to:3000/
Открывайте в браузерах, которые поддерживают WebAssembly: http://caniuse.com/#feat=wasm
Демо с даунсемплингом JPEG-картинок с помощью библиотеки libjpeg: https://malcoriel.github.io/wasm2-at-ft/
Демо с браузерной игрой, использующей физический движок на Си: http://malcoriel.us.to:3000/
Открывайте в браузерах, которые поддерживают WebAssembly: http://caniuse.com/#feat=wasm
Если вы интересуетесь WebAssembly, и у вас есть вопросы, можете задать их Валере — @malcoriel
Всем привет! Мы собрались с духом и наконец дописали пост на Хабр о том, как рисовали пиксели через API на День программиста. Там есть не только таймлапс всех изменений на холсте, но и рассказ о граблях, на которые мы наступили на фронтенде и бакенде. Но самая интересная часть — это эссе Паши @xoposhiy о том, как он пропатчил ракету-носитель во время полёта в стратосфере: https://habrahabr.ru/company/skbkontur/blog/338716/
Хабр
Как мы отмечали 256 день года и рисовали пиксели через API
13 сентября в Контуре отмечали День программиста. В самом большом офисе разработки играли в Pac-Man и пытались съесть 280 коробок с пиццей. Одновременно полторы...
Две недели назад мы рассказывали на митапе Perm Tech Talks о .NET, CIL, TypeScript, NetJS, метриках и борьбе с легаси-кодом. Давно готовы записи докладов, можете посмотреть в выходные: https://www.youtube.com/playlist?list=PLc82OEDeni8TyujauVY7DBM_dA1hZl2tK
Я люблю красивые графики и не люблю, когда лежат сервера на боевой. Буду смотреть доклад про метрики :)
Я люблю красивые графики и не люблю, когда лежат сервера на боевой. Буду смотреть доклад про метрики :)
YouTube
Perm Tech Talks - YouTube
Владимир Колобаев написал статью, как в Avito обновляли систему мониторинга (https://goo.gl/kamRhZ). За два года получился «мониторинг как сервис». Разработчики могут подключать новые микросервисы, добавлять метрики и оповещения самостоятельно, без участия DevOps-инженеров. Система полностью построена из компонентов с открытым исходным кодом: Graphite, Carbon-c-relay, Brubeck, Collectd, Grafana, Heapster и Moira.
Мойру написали разработчики из Контура на Python и Go. Мы выложили код на Github (https://github.com/moira-alert) и отвечаем на все вопросы в Gitter-чате (https://gitter.im/moira-alert/moira). Мойра получает метрики из сервисов и уведомляет о проблемах, если срабатывают настроенные триггеры. Она отказоустойчива и полностью независима от хранилища метрик и системы для их визуализации — если Graphite или Grafana сломаются, Мойра всё равно пришлёт оповещения. А ещё она легко справляется с нагрузкой — например, сейчас в Avito собирают 2 миллиона метрик в минуту, а в Контуре — 15 миллионов. Для Мойры это не предел.
Скоро будет релиз Мойры 2.0, целиком написанной на Go. А ещё мы готовим новый быстрый веб-интерфейс для Мойры, сделанный на JS с Flow и React. Сейчас веб-интерфейс Мойры выглядит так:
Мойру написали разработчики из Контура на Python и Go. Мы выложили код на Github (https://github.com/moira-alert) и отвечаем на все вопросы в Gitter-чате (https://gitter.im/moira-alert/moira). Мойра получает метрики из сервисов и уведомляет о проблемах, если срабатывают настроенные триггеры. Она отказоустойчива и полностью независима от хранилища метрик и системы для их визуализации — если Graphite или Grafana сломаются, Мойра всё равно пришлёт оповещения. А ещё она легко справляется с нагрузкой — например, сейчас в Avito собирают 2 миллиона метрик в минуту, а в Контуре — 15 миллионов. Для Мойры это не предел.
Скоро будет релиз Мойры 2.0, целиком написанной на Go. А ещё мы готовим новый быстрый веб-интерфейс для Мойры, сделанный на JS с Flow и React. Сейчас веб-интерфейс Мойры выглядит так:
OLX Group Engineering
Monitoring as a Service: a Modular System for Microservice Architecture
In addition to the all-in-one code, our project is supported by dozens of microservices. Each of them needs to be monitored. Having all…
У нас есть сайт с интерактивными курсами по программированию: ulearn.me. Недавно там появился короткий курс по оценке сложности алгоритмов. Вам будет неинтересно, если вы знаете, чем o(n) и O(n) отличаются от Θ(n), и помните доказательство основной теоремы о рекуррентных соотношениях из книжки Томаса Кормена. Иначе рекомендую потратить два часа — столько займут задания курса у самых неторопливых. Взамен вы научитесь быстро считать асимптотическую оценку вычислительной сложности алгоритмов. Опытные разработчики используют этот навык, чтобы случайно не написать удивительно неэффективный код.
Когда пройдёте курс, получите в награду пару советов, как ещё лучше разобраться в теории сложности алгоритмов. А наши разработчики получают медальку в корпоративной соцсети :)
Когда пройдёте курс, получите в награду пару советов, как ещё лучше разобраться в теории сложности алгоритмов. А наши разработчики получают медальку в корпоративной соцсети :)