Habrahabr лучшее

Лучшие публикации за последние 24 часа
Подписка на Лента Habrahabr лучшее Habrahabr лучшее

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


Введение: найди кота

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



Тот, кто записал баг, точно знает, где кот. Он его уже нашёл. Он уже не может его развидеть.
А я должен сидеть, пыриться в монитор и искать грёбаного кота.

Читать дальше →
Дамы и господа, здравствуйте!

Данную статью я решил написать после прочтения комментария в статье Программирование на JavaScript для токарного станка от QwertyOFF Я слабо представляю как можно держать токарный, даже такой, в квартире, разве что у вас есть комната, которую совсем не жалко.
И конечно же показать как это сделал я.
Речь пойдет о сварной тумбе, изюминкой которой является её мобильность — тумбу вместе со станками можно перемещать по квартире.



Данная тумба была моей первой сварной конструкцией, поэтому в некоторых местах заметны огрехи. Тумба была изготовлена в 2015г. и служит до сих пор.

Читать дальше →
Защита ядра Linux — очень сложная предметная область. Она включает большое количество сложно взаимосвязанных понятий, и было бы полезным иметь ее графическое представление. Поэтому я разработал карту средств защиты ядра Linux. Вот легенда:

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

Данная статья является фрагментом книги Game Engine Black Book: Wolfenstein 3D — подробного исследования, посвящённого истории, коду и разработке оказавшего огромное влияние на игровую отрасль шутер от первого лица про убийство нацистов.

В этой главе раскрываются истоки игры и рассказывается о том, как она была построена на фундаменте успеха и технологий игры Commander Keen, которая сама была построена из останков неудачной попытки продать Nintendo порт Mario 3 для PC.

Созданную писателем и программистом Фабьеном Сангларом полную книга можно приобрести в бумажном или цифровом виде.

В 1990 году небольшая компания Softdisk из Шривпорта (штат Луизиана) успешно вела дела на рынке shareware.

Предоставляя услуги распространения видеоигр по подписке, Softdisk создавала и каждый месяц рассылала по почте своим подписчикам новые игры. Бизнес шёл хорошо, но некоторые из сотрудников фирмы были более амбициозными.

Они думали, что им хватает умений увеличить масштаб и они хотели это доказать. Они создали новый способ программирования сайд-скроллинга и назвали эту технологию адаптивным обновлением тайлов (adaptive tile refresh). Она позволяла выполнять аппаратный скроллинг (прокрутку экрана) на PC, благодаря чему компьютер мог соперничать с NES. В начале 1990 годов они безостановочно работали по выходным над воссозданием Super Mario 3 на PC, чтобы продемонстрировать свои навыки Nintendo.
Читать дальше →

Многие, кто работал с Spark ML, знают, что некоторые вещи там сделаны "не совсем удачно"
или не сделаны вообще. Позиция разработчиков Spark в том, что SparkML — это базовая платформа, а все расширения должны быть отдельными пакетами. Но это не всегда удобно, ведь Data Scientist и аналитики хотят работать с привычными инструментами (Jupter, Zeppelin), где есть большая часть того, что нужно. Они не хотят собирать при помощи maven-assembly JAR-файлы на 500 мегабайт или руками скачивать зависимости и добавлять в параметры запуска Spark. А более тонкая работа с системами сборки JVM-проектов может потребовать от привыкшых к Jupyter/Zeppelin аналитиков и DataScientist-ов много дополнительных усилий. Просить же DevOps-ов и администраторов кластера ставить кучу пакетов на вычислительные ноды — явно плохая идея. Тот, кто писал расширения для SparkML самостоятельно, знает, сколько там скрытых трудностей с важными классами и методами (которые почему-то private[ml]), ограничениями на типы сохраняемых параметров и т.д.


И кажется, что теперь, с библиотекой MMLSpark, жизнь станет немного проще, а порог вхождения в масштабируемое машинное обучение со SparkML и Scala чуть ниже.

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


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

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


Привет!

Собрали видео и слайды с четвёртого Badoo Techleads Meetup. Это традиционная встреча тимлидов, CTO и руководителей разработки в нашем офисе.

Тему подняли непростую: как бороться с профессиональным выгоранием, мотивировать команду и самих себя. Мы намеренно практически не ограничивали число вопросов из зала, чтобы обсуждение получилось максимально полезным для всех, кто сталкивался с выгоранием. «Щекотливые» вопросы принимали анонимно — проблема, как ни крути, очень личная.

Под катом записи докладов Романа Ивлиева (Mos.ru), Ильи Агеева (Badoo) и Вадима Гончарова (Tinkoff.ru). Спасибо спикерам, что откровенно рассказали о своем опыте и поделились советами с сообществом!
Читать дальше →
Всем привет, меня зовут Лера Лисичкина, я руковожу технологическим пиаром Gett в России.

Мы начали рассказывать о нашем московском офисе среди разработчиков не так давно – Gett RnD открылся чуть меньше двух лет назад, в сентябре 2017 года.

С весны 2018 года мы активно принимаем участие в профильных ивентах, часто являемся генеральными спонсорами всей движухи вокруг русского Golang-коммьюнити – начиная от митапов на 200 человек и заканчивая GopherCon Russia 2018 и 2019.



Gett RnD в России сейчас расширяется, т.к. наша компания выходит на мировой корпоративный рынок. Нам постоянно требуются новые сильные разработчики, которые смогут быстро влиться в команду и начать продуктивно трудиться.

Именно поэтому для нас лето – весьма жаркая пора не только температурным режимом воздуха.

Совместно с сообществом GDG Nizhniy Novgorod мы организовываем митап по разработке на Go, на котором будут выступать три моих коллеги:
Читать дальше →
Лазертаг этим летом стал чрезвычайно популярным, и, если верить запросам в «Вордстате» за год чуть ли не удвоил интерес к себе.



Почему бы не иметь свой персональный набор?


Читать дальше →
Чаще всего в наших еженедельных дайджестах мы обсуждаем какие-то новые факты или события, связанные с информационной безопасностью. В некоторых случаях такие открытия представляют чисто теоретический интерес: например, уязвимости типа Spectre в современных процессорах вряд ли удастся эксплуатировать массово в ближайшее время. А вот свежеобнаруженные критические уязвимости в распространенных программах, как правило, требуют немедленных действий, если эти программы используются в вашей рабочей или личной инфраструктуре. Из последних событий к таким относятся zero-day в Windows, уязвимость в почтовом сервере Exim или даже совсем свежая дыра в плеере VLC.


Но есть проблемы, связанные с безопасностью, которые существуют давно, эволюционируют медленно и эксплуатируются массово. В информационном пространстве им уделяется меньше внимания: ну понятно, что есть спам и связанное с ним широкомасштабное мошенничество, и что теперь? Давайте для разнообразия посмотрим на эту скучную тему, тем более, что повод есть. Недавно в блоге «Лаборатории Касперского» был опубликован подробный обзор методик рассылки спама через многочисленные сервисы Google. Если вам не повезло, вы с такими надоедливыми атаками сталкивались сами. Так произошло и с одним из авторов этого дайджеста. В этом посте мы дополним обзор методов рекомендациями и на примере спама поговорим о проблемах приватности. Если конкретнее — о том, как доступ к вашим сервисам по сути ограничен двумя последовательностями букв и цифр, которые известны всем.
Читать дальше →
Привет, Хабр! Меня зовут Саша и я backend разработчик. В свободное от работы время я изучаю ML и развлекаюсь с данными hh.ru.

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

В hh.ru есть внутренняя служба, на которую в Jira создаются задачи (внутри компании их называют HHS), если у кого-то что-то не работает или работает неправильно. Дальше эти задачи вручную обрабатывает руководитель группы QA Алексей и назначает на команду, в чью зону ответственности входит неисправность. Лёша знает, что скучные задачи должны выполнять роботы. Поэтому он обратился ко мне за помощью по части ML.


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

Что такое кросс-компиляция? Какие есть инструменты для сборки бинарных файлов для Windows в Linux? Как настроить docker-контейнер для всего этого? Вот лишь небольшая часть вопросов, которые будут обсуждаться ниже.

Читать дальше →
Недавно был опубликован обзор опенсорсной утилиты, которая помогает проверить cookies сайта на соответствие GDPR.

Прочитав и в который раз озадачившись необходимостью установки на своих проектах cookie-баннера для европейских посетителей, взялся изучить вопрос cookies и GDPR более подробно.

Читать дальше →
Linux поддерживает множество видов туннелей. Это запутывает новичков, которым бывает сложно разобраться в различиях технологий, и понять то, каким туннелем лучше воспользоваться в конкретной ситуации. В материале, перевод которого мы сегодня публикуем, будет дан краткий обзор часто используемых туннельных интерфейсов ядра Linux. Сильно углубляться в эту тему мы не будем, рассмотрев лишь общие особенности туннелей и варианты их использования в Linux.



Автор этого материала полагает, что то, о чём пойдёт здесь речь, может быть интересно всем, кто имеет какое-то отношение к управлению компьютерными сетями. Список туннельных интерфейсов, а также справочные сведения о конкретной конфигурации можно получить с помощью iproute2-команды ip link help.

Здесь будут рассмотрены следующие часто используемые интерфейсы: IPIP, SIT, ip6tnl, VTI и VTI6, GRE и GRETAP, GRE6 и GRE6TAP, FOU, GUE, GENEVE, ERSPAN и IP6ERSPAN.

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


У нас, у фронтендеров, есть такая категория инструментов, которые никак не решают стоящие перед нами задачи, а скорее влияют на сам процесс их решения. Изменяют его. Отношение к таким инструментам самое разное – начиная от мании в духе “давайте эту штуку пихать везде, это же так круто” и заканчивая отговорками вроде “раз не решает задачи бизнеса, значит оно нам не нужно”. Но, так или иначе, сегодня мы поговорим про PostCSS — один из таких инструментов.


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

Читать дальше →
Лето, безусловно, классное время: жара, солнце, лёгкая одежда и обувь, фрукты и приятные вечера. Для большинства сфер бизнеса лето тоже имеет прикольное преимущество: на фоне спада делового сезона и снижения спроса можно немного отдышаться кондиционированным офисным воздухом и привести в порядок инфраструктуру. Например, переехать на новые мощности, пересмотреть политики управления IT в компании, провести ревизию, выбрать точки оптимизации. Мы в RUVDS не поленились приготовили для вас скидки 30%, а также эмоциональный, немного даже ностальгичский, сюрприз. Короткие подробности под катом, — читайте, а мы побежали писать вам очередную интересную статью.


Читать дальше →
Доброе утро! Начинаем понедельник с материала, перевод которого подготовлен специально для студентов курса «Android-разработчик. Продвинутый курс».



Недавно я переносил кодовую базу Android в Kure на AndroidX. Мне показалось, что это прекрасная возможность поработать над скоростью сборки проекта. У Gradle всегда была плохая репутация из-за медлительности и ресурсоемкости, но я был очень удивлен, что незначительные изменения в конфигурации сборки могут так значительно увеличить ее скорость.
Читать дальше →

BPM-разработка — дело непростое. Это обусловлено тем, что процесс должен быть читаемым и понятным заказчику, а не только корректным с технической точки зрения.

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

2018 год принципиально изменил наш подход к разработке бизнес-процессов. Ниже — о том, как эволюционировал этот подход и как менялись мы.
Читать дальше →
Пользователи ClickHouse знают, что его главное преимущество — высокая скорость обработки аналитических запросов. Но как мы можем выдвигать такие утверждения? Это должно подтверждаться тестами производительности, которым можно доверять. О них мы сегодня и поговорим.



Такие тесты мы начали проводить в 2013 году, задолго до того, как продукт стал доступным в опенсорсе. Как и сейчас, тогда нас больше всего интересовала скорость работы данных сервиса Яндекс.Метрика. Мы уже хранили данные в ClickHouse с января 2009 года. Часть данных записывалась в базу с 2012 года, а часть — была переконвертирована из OLAPServer и Metrage — структур данных, которые использовались в Яндекс.Метрике раньше. Поэтому для тестов мы взяли первое попавшееся подмножество из 1 миллиарда данных о просмотрах страниц. Запросов в Метрике ещё не было, и мы придумали запросы, больше всего интересные нам самим (всевозможные виды фильтрации, агрегации и сортировки).

ClickHouse тестировался в сравнении с похожими системами, например, Vertica и MonetDB. Для честности тестирования его проводил сотрудник, который до этого не был разработчиком ClickHouse, а частные случаи в коде не оптимизировались до получения результатов. Похожим образом мы получили набор данных и для функциональных тестов.

После того, как ClickHouse вышел в опенсорс в 2016 году, к тестам стало больше вопросов.

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

Страницы

Последние публикации

Новые комментарии