Search
Write a publication
Pull to refresh
79
0
Алексей Лавренюк @Direvius

Технический менеджер продукта

Send message

Изучаем Latency: теория массового обслуживания

Reading time27 min
Views52K
Тема latency со временем становится интересной в разных системах в Яндексе и не только. Происходит это по мере того, как в этих системах появляются какие-либо гарантии по обслуживанию. Очевидно, дело в том, что важно не только пообещать какую-то возможность пользователям, но и гарантировать её получение с разумным временем отклика. «Разумность» времени отклика, конечно, сильно различается для разных систем, но базовые принципы, по которым во всех системах проявляется латентность, — общие, и их вполне можно рассматривать в отрыве от конкретики.

Меня зовут Сергей Трифонов, я работаю в команде Real-Time Map Reduce в Яндексе. Мы разрабатываем платформу для обработки потока данных в реальном времени с секундным и субсекундным временем отклика. Платформа доступна для внутренних пользователей и позволяет им выполнять прикладной код над постоянно поступающими потоками данных. Я попытаюсь сделать краткий обзор основных концепций человечества на тему анализа latency за последние сто десять лет, и сейчас мы попробуем понять, что именно про latency можно узнать, применяя теорию массового обслуживания.
Читать дальше →

Школьный класс и маленький этюд социнжиниринга

Reading time5 min
Views51K


В каждом классе есть 3-4 ребёнка, которые орут и ломают весь сюжет, когда остальные пытаются что-то целенаправленно делать. Точнее, как — они просто гиперактивные, и их темп событий не даёт покоя остальным. Они не злонамеренные, а просто хотят причинить добро и радость в особо крупных размерах.

В Тюмени Мосигрой руководит Денис. Он часто и много работает со школами, и собаку съел на том, как играть с детьми. Смысл в том, что в третьем классе дети вообще не умеют слушать друг друга, а игры дают им возможность лучше договариваться — и неожиданно привносят дисциплину. Потому что в играх есть правила, и их надо соблюдать, а это уже навык.

И вот, значит, он приходит на игротеку, а там не 3-4 гиперактивных ребёнка, а сразу примерно от четверти до трети класса. И игротека превращается в ад.

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

Отладочная плата STM32F4 в форм-факторе Raspberry Pi

Reading time20 min
Views28K

image Добрый день, уважаемые хабровчане! Хочу представить общественности мой проект — небольшая отладочная плата на базе STM32, но в форм-факторе Raspberry Pi. От других отладочных плат она отличается тем, что имеет совместимую с корпусами от Raspberry Pi геометрию и наличие ESP8266-модуля в качестве беспроводного модема. А также приятные дополнения в виде разъёма для micro-SD карты и стерео-усилителя. Для использования всего этого богатства я разработал высокоуровневую библиотеку и демонстрационную программу (на C++11). В статье я хочу подробно описать как аппаратную, так и программную части этого проекта.

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

Путеводитель по инструментам автотестирования мобильных приложений

Reading time15 min
Views49K


…несмотря на то, что он кое в чём неполон, содержит много сомнительного или,
во всяком случае, вопиюще неточного, он имеет два важных преимущества:
во-первых, он немного дешевле, [...], а во-вторых, на его обложке большими
и приятными для глаз буквами написаны два слова «Без паники!»
— The Hitchhiker's Guide to the Galaxy

Привет, Хабр!

Меня зовут Арсений Батыров, я работаю в отделе QA Badoo и занимаюсь в основном ручным тестированием веб-приложений. А ещё я веду курсы по ручному и автоматическому тестированию мобильных приложений.

Перед запуском нового курса я задумался, о каких инструментах стоит рассказать ученикам. Прошерстил Рунет и англоязычный Интернет в поисках сравнительных статей, но, как ни странно, не нашёл подходящего источника информации. И тогда я решил создать его сам.

Я преследовал три цели:

  1. Классифицировать инструменты в стеке автотестирования, чтобы стали понятны их иерархия и сочетаемость.
  2. Показать, какие инструменты популярны сегодня на рынке.
  3. Рассказать про самые популярные инструменты каждого типа и сравнить их по нескольким параметрам.

Результатом моих трудов стал этот путеводитель по наиболее популярным и простым в освоении инструментам автотестирования мобильных приложений.

Пользуйтесь!

  • Выбираете инструмент — посмотрите сравнение.
  • Хотите узнать, как устроена автоматизация на мобильных устройствах — загляните в классификацию.
  • Хотите добиться повышения зарплаты — освойте популярный инструмент.
Читать дальше →

37 причин, почему ваша нейросеть не работает

Reading time9 min
Views44K
Сеть обучалась последние 12 часов. Всё выглядело хорошо: градиенты стабильные, функция потерь уменьшалась. Но потом пришёл результат: все нули, один фон, ничего не распознано. «Что я сделал не так?», — спросил я у компьютера, который промолчал в ответ.

Почему нейросеть выдаёт мусор (например, среднее всех результатов или у неё реально слабая точность)? С чего начать проверку?

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

STM32 и FreeRTOS. 4. Шаг в сторону HAL

Reading time5 min
Views86K
HAL 9000: I'm completely operational, and all my circuits are functioning perfectly.
или это должно быть первой статьей, но я почему-то всегда пишу подобное ближе к концу

Раньше было про потоки, про семафоры и очереди

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

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

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

Как я создал SaaS-сервис, который приносит мне 1000 долларов в месяц

Reading time6 min
Views63K
Примечание: здесь рассказано о создании с нуля небольшого, прибыльного SaaS-сервиса и о доведении его до состояния, когда он стал приносить 1 000 долларов в месяц. Это не имеет никакого отношения к многомиллиардным стартапам единорогов; я просто описываю мой опыт такой работы. Речь идёт о простом, надёжном и прибыльном инструменте, который может сделать для себя любой человек. И последнее — этот веб-сервис был сделан для внутреннего рынка России, поэтому я перевёл всё на английский и в доллары для удобства. Но, с другой стороны, этот опыт является довольно универсальным и может быть применён везде (ссылка на сервис).

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

Потом вдруг Postio начал получать относительно большой трафик от Google и Яндекс (русская поисковая система) с ключевыми словами, которые не имели ничего общего с самим Postio.

image

Аналитическая статистика Гугл по суточному трафику

Здесь-то и начинается фактическая история.
Читать дальше →

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

Reading time9 min
Views14K

Никогда мне не быть Milfgard'ом
Мои строки не так понятны
Но я тоже делаю игры
И это довольно приятно

К.В.Давыденко 2016 г.


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



Как некоторые из хаброжителей знают, по предыдущей статье я в свободное время работаю в детских лагерях. Я занимаюсь в них много чем, но специализируюсь я (если это можно так сказать) на создании игр в реальном мире. Это не такая уж и простая задача. Перед создателем игры встаёт много трудностей. В этой статье я хочу рассказать о них на примере большой игры-симуляторе города, под названием Big City Jail Detective RPGame. Но прежде чем переходить к чему-то настолько глобальному, рассмотрим ситуацию выше.


Что же делать, если вы человек-леденец запертый с детьми?


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

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

«Больше чем Аудиомания»: Как научиться играть на барабанах?

Reading time12 min
Views60K


Фото rskspyder man / CC

Бывают в жизни такие моменты, когда одна навязчивая идея прочно врезается в голову, не отпуская ни на минуту. Иногда это следствие осознанного и планомерного движения к цели, иногда – импульсивное желание осуществить детскую мечту.

Наш сегодняшний материал для тех, чья цель (или мечта) – научиться играть на барабанах. Мы в Аудиомании собрали интересные и полезные советы начинающим барабанщикам и узнали у Дмитрия Полтинина – менеджера по международной логистике Аудиомании и барабанщика и бэк-вокалиста группы †B†C†B† – о его опыте игры на ударных.
Читать дальше →

Deep Learning, NLP, and Representations

Reading time13 min
Views63K
Предлагаю читателям «Хабрахабра» перевод поста «Deep Learning, NLP, and Representations» крутого Кристофера Олаха. Иллюстрации оттуда же.

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

Результаты результатами, но почему они так круто решают задачи?



В посте освещено несколько впечатляющих результатов применения глубоких нейронных сетей в обработке естественного языка (Natural Language Processing; NLP). Таким образом я надеюсь доходчиво изложить один из ответов на вопрос, почему глубокие нейросети работают.
Вглубь по кроличьей норе

Архитектура open source-приложений: Как работает nginx

Reading time18 min
Views76K


Мы в «Латере» занимаемся созданием биллинга для операторов связи и рассказываем на Хабре о разработке своего продукта, а также публикуем интересные технические переводные материалы. И сегодня мы представляем вашему вниманию адаптированный перевод одной из глав книги «Архитектура open-source-приложений», в которой описываются предпосылки появления, архитектура и организация работы популярного веб-сервера nginx.
Читать дальше →

NextCastle Party 2015: как я свою игру показывал

Reading time19 min
Views20K
Месяц назад я принял участие в инди-шоукейсе на питерском фестивале NextCastle Party 2015, и хотел бы поделиться с вами полученным опытом и впечатлениями. Я игродел-любитель, попасть на такое относительно крупное мероприятие — серьёзное достижение для меня. Давайте посмотрим, смог ли я правильно распорядиться предоставленными мне шансами и показать свою игру так, как следовало бы.


Фото — Михаил Евстратов
Читать дальше →

Пример решения типичной ООП задачи на языке Go

Reading time9 min
Views38K
Недавно попалась на глаза занимательная статья с аналогичным названием о языке Haskell. Автор предлагал читателю проследить за мыслью программиста, решающего типичную ООП задачу но в Хаскеле. Помимо очевидной пользы расширения представлений читателей о том, что ООП — это отнюдь не «классы» и «наследование», подобные статьи полезны для понимания того, как правильно пользоваться языком. Предлагаю читателю решить ту же самую задачу, но на языке Go, в котором ООП тоже реализован непривычно.
Читать дальше →

Немного о развитии технологий и Интернет

Reading time3 min
Views20K
Иногда полезно окинуть взглядом историю развития технологий, чтобы переосмыслить некоторые подходы к собственным разработкам. Сегодня мы решили взглянуть на то, что ждет Интеренет с точки зрения развития в ближайшем будущем.

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

15 тривиальных фактов о правильной работе с протоколом HTTP

Reading time7 min
Views241K
Внимание! Реклама! Пост оплачен Капитаном Очевидность!

Ниже под катом вы найдёте 15 пунктов, описывающих правильную организацию ресурсов, доступных по протоколу HTTP — веб-сайтов, «ручек» бэкенда, API и прочая. «Правильный» здесь означает «соответствующий рекомендациям и спецификациям». Большая часть ниженаписанного почти дословно переведена из официальных стандартов, рекомендаций и best practices от IETF и W3C.



Вы не найдёте здесь абсолютно ничего неочевидного. Нет, серьёзно, каждый веб-разработчик теоретически эти 15 пунктов должен освоить где-то в районе junior developer-а и/или второго-третьего курса университета.

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

Радиоуправляемый катер на Arduino и радио модуле NRF24L01 из потолочной плитки

Reading time2 min
Views59K
Хочу рассказать о моем увлечении радио моделями, в частности катерами.

Для управления моторами решил использовать ардуину и готовый пульт для квадрокоптеров. Данный пульт собран с использованием радио модуля NRF24L01, и к тому же один добрый человек раскодировал протокол.
Читать дальше →

9 бесплатных тестов для профориентации

Reading time2 min
Views70K
Итак, сегодня мы собрали для вас бесплатные тесты, которые позволят вам лучше узнать себя, понять, чего вам на самом деле хочется, и в профессиональных своих интересах разобраться. В самопознании все средства хороши.


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

Вы неправильно пишете животных

Reading time5 min
Views388K
Животные – это платформы с очень ограниченной памятью, вычислительными способностями и возможностями модификаций. Разработчикам энимал-сцены приходится выдавать практически гениальные низкоуровневые алгоритмы. Правда, большое количество хардкода вызывает характерные проблемы с отсутствием проверки в экзотических условиях. Та же фильтрация входных данных делается очень и очень криво.


Уязвимость рекурсивных алгоритмов навигации муравья: спираль смерти

Не знаю, кто писал большую часть птиц, но я хочу обратить внимание на особенность, позволяющую провести инъекцию произвольного яйца в гнездо. Дело в том, что птица проверяет только расположение и количество яиц, но не их хэши. В 20% случаев кукушка, эксплуатирующая этот баг, может внести яйцо с сохранением контрольной суммы, чего вполне достаточно для повышения прав в гнезде.

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

Плохо документированные особенности Linux

Reading time8 min
Views67K
Привздохнув, произнесла:
«Как же долго я спала!»
image Когда-то, впервые встретив Unix, я был очарован логической стройностью и завершенностью системы. Несколько лет после этого я яростно изучал устройство ядра и системные вызовы, читая все что удавалось достать. Понемногу мое увлечение сошло на нет, нашлись более насущные дела и вот, начиная с какого-то времени, я стал обнаруживать то одну то другую фичу про которые я раньше не знал. Процесс естественный, однако слишком часто такие казусы обьединяет одно — отсутствие авторитетного источника документации. Часто ответ находится в виде третьего сверху комментария на stackoverflow, часто приходится сводить вместе два-три источника чтобы получить ответ на именно тот вопрос который задавал. Я хочу привести здесь небольшую коллекцию таких плохо документированных особенностей. Ни одна из них не нова, некоторые даже очень не новы, но на каждую я убил в свое время несколько часов и часто до сих пор не знаю систематического описания.

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

Обратите внимание, в заголовке я написал «плохо документированные» а не «малоизвестные», поэтому тех кто в курсе прошу выкладывать в комментариях ссылки на членораздельную документацию, я с удовольствием добавлю в конце список.
Читать дальше →

Прототип. От идеи до опытной партии. Литье в силикон

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


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

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity