Всем привет. В этой статье я расскажу, почему мы в Авито девять месяцев назад выбрали Kafka, и что она из себя представляет. Поделюсь одним из кейсов использования — брокер сообщений. И напоследок поговорим о том, какие плюсы мы получили от применения подхода Kafka as a Service.
Глеб Аверчук @41terMann
Пользователь
Искуственный интеллект с нечеткой логикой в аркадной игре
10 мин
16KВведение или как я писал свой первый ИИ
Доброго времени суток. Я написал свой первый искуственный интеллект много лет назад, когда учился в колледже. Тогда это был ИИ для змейки в необычной для змеек игре — Serpent's Madness (ссылка ведет на мой сайт игры), в которой последние могут двигаться в любом направлении. Скриншот ниже демонстрирует это:
Тогда это был детерминированный алгоритм, т.е. алгоритм с четкой последовательностью действий, когда на каждом шаге можно точно сказать, что будет на следующем. Выглядел он приблизительно так
+45
Тайм-менеджмент для разгильдяев
3 мин
23K«Провести время?! Ишь чего захотела! Время не проведешь!» /Л.Кэролл. «Алиса в стране чудес». Пер. Б.Заходера/
Недавно посетил лекцию Глеба Архангельского о тайм-менеджменте и решил поделиться своими мыслями на эту тему. Я нисколько не ставлю под сомнения классическую теорию тайм-менеджмента и ее достижения. Однако, мне показалось, что она может не подойти многим людям. В частности, я точно не хотел бы по ней жить — моя жизнь стала бы предсказуема, как железная дорога в Германии, а потому скучна и неинтересна. Мне кажется, муза к человеку, пользующемуся тайм-менеджментом не придет (или придет, немного посидит и уйдет), т.к. в любой момент времени такой человек будет корпеть над заранее запланированным списком дел.
Муза — музой, а дела делать надо даже тем, кто не любит расписаний. Для таких людей могут быть небезынтересны мои принципы тайм-менеджмента, которые я вывел для себя эмпирическим путем. Отчасти, следование этим правилам способствовало тому, что я в течение последних 2-х лет развивал, и, кажется, небезуспешно, свой собственный бизнес.
Недавно посетил лекцию Глеба Архангельского о тайм-менеджменте и решил поделиться своими мыслями на эту тему. Я нисколько не ставлю под сомнения классическую теорию тайм-менеджмента и ее достижения. Однако, мне показалось, что она может не подойти многим людям. В частности, я точно не хотел бы по ней жить — моя жизнь стала бы предсказуема, как железная дорога в Германии, а потому скучна и неинтересна. Мне кажется, муза к человеку, пользующемуся тайм-менеджментом не придет (или придет, немного посидит и уйдет), т.к. в любой момент времени такой человек будет корпеть над заранее запланированным списком дел.
Муза — музой, а дела делать надо даже тем, кто не любит расписаний. Для таких людей могут быть небезынтересны мои принципы тайм-менеджмента, которые я вывел для себя эмпирическим путем. Отчасти, следование этим правилам способствовало тому, что я в течение последних 2-х лет развивал, и, кажется, небезуспешно, свой собственный бизнес.
+81
+53
Летающие роботы строят башню
1 мин
8.7KЧетыре небольших квадрокоптера строят из
Данный проект — плод совместной работы Раффаэлло Д’Андреа (Raffaello D'Andrea), специалиста по робототехнике из Швейцарской высшей технической школы Цюриха, а также архитекторов Фабио Грамацио (Fabio Gramazio) и Маттиаса Колера (Matthias Kohler). Ранее они научили летающих роботов жонглировать мячом для пинг-понга.
Извиняюсь, если уже было, напишите мне об этом, пожалуйста. Поиском по Хабру не нашел.
+80
Как нанять лучших инженеров не убив при этом себя
6 мин
2.1KПеревод
Garena, в которой я сейчас работаю, находится в процессе роста и я занимаюсь наймом инженеров, сисадминов и подобного персонала, чтобы удовлетворить аппетиты растущей платформы и выдержать планы и сроки выпуска продуктов. Проблема, с которой я постоянно сталкиваюсь, заключается в том, что не только одна наша компании занимается поиском и наймом инженеров. Это особенно актуально сейчас, когда многие компании опубликовали свои ежегодные бонусы (или отсутствие оных) и неудовлетворённые рядовые сотрудники компаний пополняют ряды соискателей. Иными словами, собираются в кучу музыкальные стулья с компаниями и инженерами.
«музыкальные стулья» (детская игра; под музыку дети ходят вокруг ряда стульев; когда музыка прекращается, играющие бросаются занимать стулья, которых на один меньше, чем играющих)
Нечего и говорить, что это является причиной определенных сложностей с наймом. Отрадно, что есть много кандидатов. Однако обратной стороной данного факта является проблема сохранения высоко квалифицированного инженера с адекватным складом ума в рамках растущего cтартапа. В то же время подбор и утверждение кандидата должны быть быстрыми, так как промедление, даже с частично подходящим кандидатом, чревато его потерей в течение одного-двух дней.
Это заставляет меня задаться вопросом — каким путем лучше пойти при наличии большого списка кандидатов и, в итоге, выбрать лучшего инженера или, во всяком случае, того, кто входит в число лучших этого списка.
«музыкальные стулья» (детская игра; под музыку дети ходят вокруг ряда стульев; когда музыка прекращается, играющие бросаются занимать стулья, которых на один меньше, чем играющих)
Нечего и говорить, что это является причиной определенных сложностей с наймом. Отрадно, что есть много кандидатов. Однако обратной стороной данного факта является проблема сохранения высоко квалифицированного инженера с адекватным складом ума в рамках растущего cтартапа. В то же время подбор и утверждение кандидата должны быть быстрыми, так как промедление, даже с частично подходящим кандидатом, чревато его потерей в течение одного-двух дней.
Это заставляет меня задаться вопросом — каким путем лучше пойти при наличии большого списка кандидатов и, в итоге, выбрать лучшего инженера или, во всяком случае, того, кто входит в число лучших этого списка.
+1
Вы и ваша работа *
40 мин
817KПеревод
Длинный материал. Время чтения – около 40 минут.
Доктор Ричард Хэмминг, профессор морской школы Монтерея в штате Калифорния и отставной учёный Bell Labs, прочёл 7 марта 1986 года очень интересную и стимулирующую лекцию «Вы и ваши исследования» переполненной аудитории примерно из 200 сотрудников и гостей Bellcore на семинаре в серии коллоквиумов в Bell Communications Research. Эта лекция описывает наблюдения Хэмминга в части вопроса «Почему так мало учёных делают значительный вклад в науку и так многие оказываются в долгосрочной перспективе забыты?». В течение своей более чем сорокалетней карьеры, тридцать лет которой прошли в Bell Laboratories, он сделал ряд прямых наблюдений, задавал учёным очень острые вопросы о том, что, как, откуда, почему они делали и что они делали, изучал жизни великих учёных и великие достижения, и вёл интроспекцию и изучал теории креативности. Эта лекция о том, что он узнал о свойствах отдельных учёных, их способностях, чертах, привычках работы, мироощущении и философии.
Доктор Ричард Хэмминг, профессор морской школы Монтерея в штате Калифорния и отставной учёный Bell Labs, прочёл 7 марта 1986 года очень интересную и стимулирующую лекцию «Вы и ваши исследования» переполненной аудитории примерно из 200 сотрудников и гостей Bellcore на семинаре в серии коллоквиумов в Bell Communications Research. Эта лекция описывает наблюдения Хэмминга в части вопроса «Почему так мало учёных делают значительный вклад в науку и так многие оказываются в долгосрочной перспективе забыты?». В течение своей более чем сорокалетней карьеры, тридцать лет которой прошли в Bell Laboratories, он сделал ряд прямых наблюдений, задавал учёным очень острые вопросы о том, что, как, откуда, почему они делали и что они делали, изучал жизни великих учёных и великие достижения, и вёл интроспекцию и изучал теории креативности. Эта лекция о том, что он узнал о свойствах отдельных учёных, их способностях, чертах, привычках работы, мироощущении и философии.
+219
SFINAE — это просто
7 мин
97KTLDR: как определять, есть ли в типе метод с данным именем и сигнатурой, а также узнавать другие свойства типов, не сойдя при этом с ума.
Здравствуйте, коллеги.
Хочу рассказать о SFINAE, интересном и очень полезном (к сожалению*) механизме языка C++, который, однако, может представляться неподготовленному человеку весьма мозгоразрывающим. В действительности принцип его использования достаточно прост и ясен, будучи сформулирован в виде нескольких чётких положений. Эта заметка рассчитана на читателей, обладающих базовыми знаниями о шаблонах в C++ и знакомых, хотя бы шапочно, с C++11.
* Почему к сожалению? Хотя использование SFINAE — интересный и красивый приём, переросший в широко используемую идиому языка, гораздо лучше было бы иметь средства, явно описывающие работу с типами.
Здравствуйте, коллеги.
Хочу рассказать о SFINAE, интересном и очень полезном (к сожалению*) механизме языка C++, который, однако, может представляться неподготовленному человеку весьма мозгоразрывающим. В действительности принцип его использования достаточно прост и ясен, будучи сформулирован в виде нескольких чётких положений. Эта заметка рассчитана на читателей, обладающих базовыми знаниями о шаблонах в C++ и знакомых, хотя бы шапочно, с C++11.
* Почему к сожалению? Хотя использование SFINAE — интересный и красивый приём, переросший в широко используемую идиому языка, гораздо лучше было бы иметь средства, явно описывающие работу с типами.
+33
Многочлены от нескольких переменных и алгоритм Бухбергера на Haskell
11 мин
30KВ этой статье я хочу рассказать о том, как реализовывал алгоритмы, связанные с базисами Грёбнера, на языке Haskell. Надеюсь, кому-нибудь мои идеи и объяснения окажутся полезными. Я не собираюсь вдаваться в теорию, так что читателю стоит быть знакомым с понятиями полиномиального кольца, идеала кольца и базиса идеала. Советую прочитать вот эту книгу МЦНМО, в ней подробно расписана вся необходимая теория.
Основной предмет статьи — базисы Грёбнера идеалов колец многочленов от нескольких переменных. Это понятие возникает при изучении систем полиномиальных уравнений. В конце статьи я на примере покажу, как можно применять эти идеи.
Самый главный результат, который даёт эта теория — хороший способ решать полиномиальные системы уравнений от нескольких переменных. Даже если вы не знакомы с высшей алгеброй или с Haskell, я советую вам прочитать эту статью, так как эти самые методы решения объяснены на уровне, доступном школьнику, а вся теория нужна только для обоснования. Можно спокойно пропустить всё, что связано с высшей алгеброй, и просто научиться решать системы уравнений.
Если вас заинтересовало, прошу под кат.
Основной предмет статьи — базисы Грёбнера идеалов колец многочленов от нескольких переменных. Это понятие возникает при изучении систем полиномиальных уравнений. В конце статьи я на примере покажу, как можно применять эти идеи.
Самый главный результат, который даёт эта теория — хороший способ решать полиномиальные системы уравнений от нескольких переменных. Даже если вы не знакомы с высшей алгеброй или с Haskell, я советую вам прочитать эту статью, так как эти самые методы решения объяснены на уровне, доступном школьнику, а вся теория нужна только для обоснования. Можно спокойно пропустить всё, что связано с высшей алгеброй, и просто научиться решать системы уравнений.
Если вас заинтересовало, прошу под кат.
+41
Равномерное выравнивание блоков по ширине
4 мин
19KПродолжая свои «css-раскопки» возникла новая идея, разобрать по косточкам ещё одну актуальную тему, которая касается равномерного выравнивания блоков по ширине. В принципе мои доскональные исследования я уже запостил у себя в блоге, но так как прошлая моя работа очень понравились Хабра-сообществу, то я решил сделать здесь небольшой краткий обзорчик этой статьи, чтобы ни одна хабра-душа не пропустили её наверняка. Так что, как говорил Гагарин: «Поехали».
В общем в задачах вёрстки периодически возникают моменты, когда появляется необходимость выровнять какой-нибудь список по ширине экрана. При этом пункты этого списка должны выравниваться равномерно, прижимаясь своими крайними элементами к границам контейнера, а расстояние между ними должно быть одинаковым.
В общем в задачах вёрстки периодически возникают моменты, когда появляется необходимость выровнять какой-нибудь список по ширине экрана. При этом пункты этого списка должны выравниваться равномерно, прижимаясь своими крайними элементами к границам контейнера, а расстояние между ними должно быть одинаковым.
+154
Подборка инструментов для эффективной frontend разработки
3 мин
101KВ эту прекрасную пятницу осмелюсь предложить хабрасообществую небольшую подборку приложений, предназначенных для увеличения продуктивности во время работы с фронтэндом. Если ваш любимый апп здесь не представлен — добро пожаловать в комментарии!
Form Builder
Этот прекрасный генератор форм поможет вам в создании красивейших CSS логин-боксов и прочих input вещей, при минимальных временных затратах. Помимо форм на сайте этого проекта можно создавать и другие не менее красивые CSS элементы, в том числе кнопки и ленты.
Form Builder
Этот прекрасный генератор форм поможет вам в создании красивейших CSS логин-боксов и прочих input вещей, при минимальных временных затратах. Помимо форм на сайте этого проекта можно создавать и другие не менее красивые CSS элементы, в том числе кнопки и ленты.
+190
Ещё семь фич HTML5, о которых вы могли не знать
3 мин
89KТуториал
Доброго времени суток!
Все мы достаточно наслышаны об HTML5 и его возможностях. Например, элементы audio и video, которые у всех на слуху. Но несмотря на это, существует парочка тегов, о которых знают далеко не все, и о которых не знал я до недавнего времени. Итак, вот чем я хочу с вами поделиться.
Все мы достаточно наслышаны об HTML5 и его возможностях. Например, элементы audio и video, которые у всех на слуху. Но несмотря на это, существует парочка тегов, о которых знают далеко не все, и о которых не знал я до недавнего времени. Итак, вот чем я хочу с вами поделиться.
+139
Piecon — динамическая круговая диаграмма в фавиконе
1 мин
5.3KКрошечная (2 килобайта в минифицированном виде) JavaScript-библиотека Piecon генерирует круговую диаграмму на месте фавикона. API предельно прост и состоит из трёх методов объекта Piecon.
+72
Два гиганта в одной программе — Nvidia CUDA и MPI
4 мин
15KRecovery Mode
Здравствуйте хабровчане, в этой статье я хочу рассказать о взаимодействии двух технологий MPI(mpich2) и NVIDIA CUDA. Упор я хочу сделать именно на саму структуру программы и настройку вышеописанных технологий для работы в одной программе. И так поехали…
+25
UICloud: Самая большая база пользовательских интерфейсов
1 мин
34KUICloud — это база бесплатных пользовательских интерфейсов с поисковой системой, рейтингом и каталогизатором в которой собрано все от исходников в формате PSD, до готовых решений на HTML, CSS или jQuery: формы, слайдеры, кнопки, календари, элементы и полноценные интерфейсы для мобильных и веб приложений. В проекте уже сейчас можно найти практически все что нужно для облегчения процесса разработки дизайнерам и разработчикам.
На данный момент в базе 23586 элементов и почти тысяча UI-сэтов включающие в себя готовые решения в едином стиле. Проект создан Британской студией Double-J Design целью проекта является создание самой обширной UI базы.
+159
Speakker — музыкальный плеер на jQuery
2 мин
15KИща на просторах сети музыкальный плеер для сайта, я наткнулся на интересный плеер под названием Speakker, написанный на jQuery.
+36
Автоматизируем работу с проектами Xcode средствами Ruby
3 мин
3.9KТуториал
Привет, хабр. Существует ряд задач, для реализации которых нет необходимости в использовании графического интерфейса Xcode. Время исполнения таких задач может сократиться как минимум на время запуска Xcode. Экономия времени может показаться незначительной при работе с одним проектом, но если проектов много, процесс их редактирования может оказаться очень утомительным. Но самое главное, что такой подход открывает возможности для автоматизации работы с проектами.
Я хочу рассказать о новом инструменте, целью которого является решение описанной проблемы. XcodeProject — это библиотека на языке Ruby которая может быть использована для чтения данных проекта Xcode и их изменения, а так же для сборки проектов, архивирования и выполнения ряда задач по автоматизации работы с ними.
Я хочу рассказать о новом инструменте, целью которого является решение описанной проблемы. XcodeProject — это библиотека на языке Ruby которая может быть использована для чтения данных проекта Xcode и их изменения, а так же для сборки проектов, архивирования и выполнения ряда задач по автоматизации работы с ними.
+17
Пять интересных эффектов при наведении с использованием нескольких фоновых изображений
6 мин
22KТуториал
Перевод
Сегодня мы рассмотрим все преимущества использования множественных фонов. Изучим базовые основы и создадим крутые эффекты при наведении с помощью CSS свойств
Ниже приведены пять различных примеров, которыми вы можете воспользоваться для создания собственных удивительных эффектов.
Посмотрим на то, что должно получиться в итоге. Подумайте, как можно реализовать эти эффекты чисто на одном CSS.
Демонстрация
hover
и transition
.Ниже приведены пять различных примеров, которыми вы можете воспользоваться для создания собственных удивительных эффектов.
Что должно получиться
Посмотрим на то, что должно получиться в итоге. Подумайте, как можно реализовать эти эффекты чисто на одном CSS.
Демонстрация
+69
Памятка пользователям ssh
13 мин
1.5Mabstract: В статье описаны продвинутые функций OpenSSH, которые позволяют сильно упростить жизнь системным администраторам и программистам, которые не боятся шелла. В отличие от большинства руководств, которые кроме ключей и -L/D/R опций ничего не описывают, я попытался собрать все интересные фичи и удобства, которые с собой несёт ssh.
Предупреждение: пост очень объёмный, но для удобства использования я решил не резать его на части.
Оглавление:
Предупреждение: пост очень объёмный, но для удобства использования я решил не резать его на части.
Оглавление:
- управление ключами
- копирование файлов через ssh
- Проброс потоков ввода/вывода
- Монтирование удалённой FS через ssh
- Удалённое исполнение кода
- Алиасы и опции для подключений в .ssh/config
- Опции по-умолчанию
- Проброс X-сервера
- ssh в качестве socks-proxy
- Проброс портов — прямой и обратный
- Реверс-сокс-прокси
- туннелирование L2/L3 трафика
- Проброс агента авторизации
- Туннелирование ssh через ssh сквозь недоверенный сервер (с большой вероятностью вы этого не знаете)
+344
Пример Makefile
7 мин
75KНаписание makefile иногда становится головной болью. Однако, если разобраться, все становится на свои места, и написать мощнейший makefile длиной в 40 строк для сколь угодно большого проекта получается быстро и элегантно.
Внимание! Предполагаются базовые знания утилиты GNU make.
Внимание! Предполагаются базовые знания утилиты GNU make.
+110
Информация
- В рейтинге
- Не участвует
- Зарегистрирован
- Активность