Search
Write a publication
Pull to refresh
4
0
xRay @xRay

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

Send message

Новостной агрегатор за две недели

Reading time8 min
Views19K

18 ноября Telegram запустил соревнование по кластеризации данных: Data Clustering Contest. Нужно было за две недели сделать свой новостной агрегатор. Ограничения, которые были установлены в этом соревновании отпугнули кучу людей, но не меня и моих коллег. Я расскажу от том, каким путём мы прошли, какие выборы сделали и с какими сложностями столкнулись. Решение, которое мы заслали в соревнование обрабатывало 1000 документов за 3,5 секунды, занимало 150 Мб, заняло 6 место на публичном голосовании и 3 место в итоговых результатах. Мы допустили много ошибок, из-за которых не заняли место повыше, большинство из них сейчас исправлены. Весь код и все модели можно найти в репозитории. Все скрипты для обучения моделек перенесены на Colab.


Топ из публичного голосования
Топ из публичного голосования

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

DPI: Deep Packet INJECTION, или конспирологическая теория о заговоре между RTK и MRG

Reading time6 min
Views27K

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


Это снова я, тот, кто отвечает за IT-составляющую РосКомСвободы! Ты, наверное, меня помнишь по посту о самопроизвольной активации камеры при открытии страницы с embedded-youtube-видео.


На этот раз у меня история из личной жизни и, на мой взгляд, расследование немного поинтереснее.


Возможно, оно даже имеет запах теории заговора (между Ростелеком'ом (CC: Rostelecom ROSTELECOM-CENTER) и Mail.Ru Group).


КДПВ

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

Скрытая активация камеры браузерами: Большой Брат или технологический просчёт?

Reading time5 min
Views97K

image


Всем привет!


Меня зовут Вадим, и я один из технических консультантов и, по совместительству, системный администратор "РосКомСвободы".


Но данный пост будет не обо мне. Он будет историей о подозрительной (с точки зрения приватности в контексте мобильных телефонов) ситуации, с которой мы недавно столкнулись.
Он мог бы быть в стиле "А-а-а-а-а-а! Смотрите, Большой брат (Google) следит за нами", но я, всё же, попробую провести какой-никакой анализ и выдвинуть правдоподобные гипотезы о том, почему может происходить то, что произошло.


Заранее прошу прощения, если кому-то не нравится формат а-ля "журнал }{akep в нулевые". Пишите — исправлюсь.

Избавляемся от рутины со своим плагином для PhpStorm

Reading time10 min
Views13K
Привет, Хабр! Я тружусь в команде Антиспама, и, как и у большинства бэкенд-разработчиков Badoo, большая часть времени у меня уходит на работу с PHP-кодом.

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

Так появился плагин Badoo для PhpStorm, который мы сегодня активно используем. За несколько лет его возможности серьёзно расширились, мы его развиваем, и в этой статье я расскажу на примере наших кейсов, как адаптировать IDE под свои задачи и инструменты, и докажу, что это не так сложно, как кажется.


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

Полная домашняя автоматизация в новостройке

Reading time8 min
Views224K
Три года назад стал претворять свою давнюю мечту в реальность — максимальная домашняя автоматизация квартиры, купленной в новостройке с нуля. При этом «отделку от застройщика» пришлось принести в жертву умному дому image и полностью переделать, а вся электрика, не связанная с автоматикой приехала с известного китайского сайта. Паяльник не потребовался, но знающих мастеров, электриков и плотников пришлось искать долго.


Панель управления квартирой в феврале 2020 года (Home Assistant)

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


Строительство нашего дома в процессе — ноябрь 2016 года
Умный дом в самом соку...

Ресайз изображений на лету с помощью Nginx и LuaJIT (OpenResty)

Reading time3 min
Views7.3K

Уже довольно давно, вдохновившись статьей Ресайз изображений на лету был настроен ресайз изображений с помощью ngx_http_image_filter_module и все работало как надо. Но появилась одна проблема, когда менеджеру понадобилось получать изображения с точными размерами для заливки на некоторые сервисы, т.к. это были их технические требования. К примеру, если мы имеем оригинал изображения размером 1200x1200, и при ресайзе мы пишем что-то вроде ?resize=600x400, то получим пропорционально уменьшенное изображение по наименьшему краю, размером 400x400. Так же невозможно получить изображение с бОльшим разрешением (upscale). Т.е. ?resize=1500x1500 вернет все тоже изображение 1200x1200


На помощь пришла статья OpenResty: превращаем NGINX в полноценный сервер приложений для понимания как работает Nginx с Lua и сама библиотека для Lua isage/lua-imagick — Lua pure-c bindings to ImageMagick. Почему было выбрано такое решение, а не, скажем, что-нибудь на python — потому что это быстро и удобно. Вам даже не понадобится создавать никаких файлов, все прямо в конфиге Nginx (не обязательно).

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

Как восстановить светодиодную лампу за 2 минуты при минимальных навыках работы с паяльником и знаниях об электронике

Reading time4 min
Views489K

image


Исторически так сложилось, что в моем загородном доме все освещение сделано с помощью светодиодных ламп мощностью 10-11, а в последнее время и 12-13 вт с цоколем Е27. Лампы накаливания на площадь 200 м2 тратили бы слишком много электроэнергии, что не вписывалось бы в концепцию моего энергоэффективного дома с приличным утеплением, твердотопливным дровяным котлом, бесперебойником на автомобильных аккумуляторах и рекуператором. Люминесцентные "энергосберегайки" я невзлюбил с первого взгляда — они часто перегорают, не имеют той энергоэффективности что светодиодные, хрупкие, токсичные при случайном разбивании, мерцают и имеют неприятный спектр.

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

Яндекс.Диск запретил использование open source утилиты rclone. UPD — снова работает

Reading time6 min
Views110K

Предыстория


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


К написанию этого поста привела довольно странная ошибка, которую вчера вечером на ноутбуке с Linux (да, я из тех странных людей, кто использует GNU/Linux на ноутбуке) я получил вместо содержимого своего Яндекс.Диска:


$ ls -l /mnt/yadisk
ls: reading directory '.': Input/output error
total 0
Читать дальше →

Попытка решить проблему выбора авиабилетов перед отпуском #2

Reading time2 min
Views7.3K
Всем привет! Настали длинные выходные, а это значит, что пришло время поделиться новыми фичами, которые были сделаны с момента предыдущего поста:

  1. Комбинатор сложных маршрутов
  2. Сложные билеты (треугольники)
  3. История цен на билеты

Скриншот одной из новых фичей:

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

Изучаем переменные в CSS на практическом примере

Reading time15 min
Views6.6K


Доброго времени суток, друзья!

Однажды веб серфинг привел меня к этому замечательному коду.

«Замечательность» его (то бишь кода) состоит в практическом использовании переменных в CSS, что сильно облегчает написание стилей (использование переменных также обуславливает необычную структуру CSS). И, конечно, тема импонирует весьма — планеты Солнечной системы.

Оригинальный проект написан на Pug и Sass, мы же разберем его на HTML/CSS.

Итак, поехали.
Читать дальше →

Разработка плагинов для Zabbix Agent 2

Reading time18 min
Views17K

На последнем Zabbix Summit 2019 вместе с выходом Zabbix 4.4 был анонсирован новый Zabbix Agent 2, ключевая фишка которого — возможность написания плагинов к нему на языке Go. И многие сразу стали спрашивать: а как же, собственно, эти плагины писать, как они устроены? Где взять документацию и примеры?


В этой статье я хочу дать ответы на эти и некоторые другие вопросы. Обо всём по порядку, но если вы из тех, кто сразу рвётся в бой, смело пропускайте вступительную часть и переходите к практике ⎝◔◞ ◔⎠


Итак...


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

Как проверить навыки программирования на Python? Задачи от Яндекса

Reading time9 min
Views66K

Хакатон в Школе бэкенд-разработки

В 2019 году нам потребовалось автоматизированно проверить умение писать Python-код у сотен разработчиков. Так мы отбирали будущих студентов для Школы бэкенд-разработки. Это не то же самое, что предложить решить задачу на листе бумаги, как на собеседовании. С другой стороны, мы также не могли переиспользовать условия задач, уже подготовленные для наших соревнований по программированию. Дело в том, что соревнования с целью определить лучших из лучших — это одно, а отбор специалистов с небольшим опытом в школу — совсем другое. Нам требовались задачи, по решению которых было бы видно, обладает ли разработчик базовыми навыками написания кода и умением грамотно использовать память и время. Вот какие условия мы составили.
Читать дальше →

Как организовать скины в Symfony

Reading time4 min
Views2.8K

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


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

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

Быстрое создание чиптюн-музыки на открытом ПО

Reading time12 min
Views14K
image

Итак, вы делаете свою игру, добавляете новые функции и тестируете их. Да, получается совсем неплохо. Но чего-то не хватает — игра слишком тихая. Вам нужна музыка. Разумеется, можно найти и скачать бесплатную музыку из Интернета, но это не геймдев, это использование чужой работы. Так что давайте напишем собственную музыку. Вот как будет звучать написанная вами музыка [прим. пер.: перед прослушиванием уменьшите громкость]:


Это то, что у меня получилось к концу туториала

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

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

Web Scraping

Reading time4 min
Views47K

Введение


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


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


print('Part 1. Get started')

Инструменты


  • Язык программирования и соответствующие библиотеки
    Конечно, без него никуда. В нашем случае будет использован Python. Данный язык является довольно сильным инструментом для написания скраперов, если уметь правильно пользоваться им и его библиотеками: requests, bs4, json, lxml, re.
  • Инструменты разработчика
    Каждый современный браузер имеет данную утилиту. Лично мне удобно пользоваться Google Chrome или Firefox. Если вы пользуетесь другим браузерами, рекомендую попробовать один из вышеперечисленных. Здесь нам понадобятся практически все инструменты: elements, console, network, application, debuger.
  • Современная IDE
    Здесь выбор остаётся за вами, единственное, что хотелось бы посоветовать — наличие компилятора, debuger'a и статического анализатора в вашей среде разработке. Я отдаю своё предпочтение PyCharm от JetBrains.
Читать дальше →

Google разработал алгоритм автоматического кадрирования видео по важным объектам в кадре

Reading time3 min
Views4.6K


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

Ну а ПО все делает самостоятельно, отслеживая важные объекты на видео и обрезая кадры таким образом, что все важное оставалось в финальном варианте видео.
Читать дальше →

Оффер в Лондон за один день: как его получить и чем заняться после переезда

Reading time13 min
Views55K
Привет, Хабр!

На 2020 год у нас большие планы. Мы намерены активно развивать Badoo и Bumble, поэтому серьёзно расширяем техническую команду. И сегодня мы объявляем о масштабном найме PHP-разработчиков в наш лондонский офис. 

В 2017 году мы попробовали новый формат поиска — hiring event: привозим в Москву крутых разработчиков, за один день проводим собеседования и сразу же делаем оффер подходящим кандидатам. Все расходы на поездку в столицу, разумеется, берём на себя.

Формат хорошо себя зарекомендовал, и у нас снова открыто много позиций, поэтому мы объявляем новый PHP Hiring Event. 

Правила те же: покажи высокий результат в тесте до 1 марта, успешно пройди интервью 21 или 22 марта в Москве — и в тот же день получи оффер в лондонский офис Badoo. 

UPD: тест завершён, спасибо всем участникам! Мы уже известили финалистов и предупредили о том, что даты собеседования переносим на неопределенный срок ради комфорта и безопасности кандидатов.

UPD2: Несмотря на коронавирус, нам удалось провести интервью с участниками и пригласить четырех человек к нам в команду. Большое спасибо всем, кто прошел тест и участвовал в интервью! Этот hiring event не последний: следите за нашим блогом и вакансиями на нашем сайте.



Под катом я расскажу:

  • подробнее про тест;
  • какими проектами мы занимаемся: оптимизация фотографий, видеостриминг, machine learning для писем, переход на новые версии PHP и многое другое.

Если ты PHP-шник и хочешь переехать в Лондон, добро пожаловать под кат!

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

Самодельный рекуператор для загородного дома с КПД 80%

Reading time2 min
Views119K

image


Наступила зима, и я решил усовершенствовать систему вентиляции в моем загородном доме. До этого момента ее практически не было, все вентилирование осуществлялось за счет открывания окон, выбрасывания теплого отработанного воздуха и впускания холодного свежего с улицы. Я что-то слышал о системах рекуперации (recuperatio — обратное получение, возвращение), позволяющих не просто выбрасывать тепло вместе с воздухом, а использовать его для нагревания входящего свежего воздуха с заметной экономией энергии на отоплении. Подумав — а почему бы и нет, я решил попробовать сделать такую систему самостоятельно.

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

Как обойти капчу: нейросеть на Tensorflow,Keras,python v числовая зашумленная капча

Reading time7 min
Views49K
Тема капч не нова, в том числе для Хабра. Тем не менее, алгоритмы капч меняются, как и алгоритмы их решения. Поэтому, предлагается помянуть старое и прооперировать следующий вариант капчи:



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

PHP-Дайджест № 173 (27 января – 10 февраля 2020)

Reading time5 min
Views15K

Свежая подборка со ссылками на новости и материалы. В выпуске: PHPUnit 9 и другие релизы, 3 свежих RFC предложения из PHP Internals, порция полезных инструментов, видео, подкасты и многое другое.

Приятного чтения!


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

Information

Rating
Does not participate
Registered
Activity