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

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

Send message

Разворачиваем этикетки нейронной сетью

Reading time9 min
Views6.1K
В предыдущей статье был описан шеститочечный метод разворачивания этикеток, поиск шести ключевых точек выполнялся при помощи преобразования Хафа. Это давало неплохие результаты для хороших этикеток, но для многих реальных случаев он работал нестабильно, несмотря на попытки его подхачить. В какой-то момент стало очевидно, что на этом зыбком фундаменте хорошую архитектуру не построить, следующая попытка — нейронные сети.

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


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

Я есть root. Повышение привилегий в ОС Linux через SUID/SGID

Reading time4 min
Views41K
В прошлом посте я провел «обзорную экскурсию» по методам повышения привилегий в ОС Linux. Сегодня разбираю вектор повышения привилегий через небезопасные разрешения SUID/SGID. Поэтому больше консоли и меньше слов.

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

Лайфхак для битов

Reading time2 min
Views3.6K
Дзень добрый, комрады.

Решил я как-то упростить себе часть музыкальной жизни, а именно автоматизировать выбор сэмплов для музыки (или, скорее, для «битов»).

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


Чтобы быстрее получить результат, упростим наши требования к музыке.

Будем строить наш трэк из трёх компонентов:

  • Перкуссия
  • Бас
  • Мелодия

И будем сравнивать компоненты по двум параметрам:

  • Тональность
  • Темп

В целом, с этими «правилами» музыка уже будет достаточно гармоничной.

Самые надежные HDD по версии Backblaze Q1 2020

Reading time3 min
Views97K

Несмотря на все карантинные перипетии, дата-центры продолжают работать. Причем с большей нагрузкой, чем раньше, ведь объем интернет-трафика значительно вырос. Какие жесткие диски справятся с работой лучше всего, в очередной раз выяснила компания Backblaze. Известный облачный сервис хранения данных выпустил отчет о надежности HDD — за I квартал 2020 года.

Количество HDD у Backblaze постоянно увеличивается. На момент формирования отчета в распоряжении компании 132 339 дисков. Из них 2 380 — загрузочные, 129 959 — диски для хранения данных. В отчете отображается статистика по отказам дисков разных компаний и разной емкости.
Читать дальше →

Катар: центр мира для пересадок и ночной город

Reading time11 min
Views33K
Мало кто в мире авиации сделал столько же в текущем кризисе, сколько Qatar Airways. Поэтому я хочу рассказать немного про их базу и то, как вообще так получилось, что Доха стала воротами в мир.


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

Катарцы в 2018 оказались самыми богатыми людьми мира. Считали по доле ВВП на гражданина, то есть можно сделать вывод, что граждан в стране мало. Точнее, очень мало. Дело в том, что на небольшом автономном полуострове газа и нефти прямо много. И в шельфе рядом тоже. При том, что страна размером меньше Калиниградской области (и в 4 раза меньше МО). Поскольку коренных катарцев всего около четверти миллиона, дальше выиграть звание самой богатой страны мира было довольно просто.

Наш борт шёл через орографическую облачность, и стюардесса сказала нежным голосом: «Сейчас немного потрясёт, поэтому молитесь, пожалуйста, сидя в кресле». Это напомнило вторую удивительную особенность Катара — пожалуй, это самая открытая мусульманская страна в плане терпимости к иностранцам. То есть можно лететь спокойно, не боясь накосячить из-за разницы культур.

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

Задержитесь на секунду и попробуйте перечислить: что бы вы сделали и в каком порядке?

Переезд в Иннополис

Reading time18 min
Views200K


В 2017 году мы с семьёй переехали в Иннополис.

За 3 года жизни эйфория прошла и сформировалось какое-то устойчивое мнение об этом городе.

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

Меня никто не просил писать эту статью и тем более не платил за неё. В общем, это не заказная «приезжайте к нам, у нас тут классно». Пишу всё так, как вижу своими глазами.
Читать дальше →

Настройка нейронной сети для детекции необходимых объектов

Reading time6 min
Views14K

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

В качестве примера для детекции объектов будем использовать алгоритм YOLOv3. Дополнительные материалы по статье вы сможете найти на github странице. Пример установки и настройки осуществляется на ОС Windows 10.

В первую очередь нам необходимо скачать или клонировать необходимые материалы для переобучения нейронной сети под определенный тип объекта с данной github страницы. Для того чтобы не возникало проблем с доступом или разрешениями, материалы лучше разместить в директории своей учетной записи, например: C:\Users\user_name\Documents\NN\.

1. Переходим в папку yolov3-master, вызываем терминал (командную строку) и выполняем команду pip install -U -r requirements.txt. При запуске команды некоторые из пакетов не установились, т.к в репозитории pip для windows, пакетов с таким названием не существует. Чтобы установка прошла успешно, в requirements.txt мы должны закомментировать несколько пакетов («torch >= 1.5» и «pycocotools»). Затем установить pytorch с помощью следующей команды:
Читать дальше →

Мегафон продолжает вмешиваться в мой HTTP-трафик в 2020 году, отправлять рекламу, даже после получения запретов на это

Reading time7 min
Views83K
Недавний пост «Вы видели людей, которые пользуются мобильными контент-подписками?» опять всколыхнул внутреннее недовольство отношением Мегафона ко мне и я решил рассказать про свою «войну» с зелёно-фиолетовым оператором и попытками оградиться от рекламы и вмешивания в мой HTTP-трафик.

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

Мотивация от оператора:
При заключении между нами договора, в нём был пункт, что Вы согласны на получение рекламы при использовании наших услуг.
Вместо выполнения Федерального Закона «О Рекламе», статья 18, п. 1, при обращениях к оператору с требованием прекратить распространять рекламу в мой адрес:
Рекламораспространитель обязан немедленно прекратить распространение рекламы в адрес лица, обратившегося к нему с таким требованием.
Мегафон подключает дополнительные услуги «отказа от рекламы» (у меня их с десяток), которые иногда не работают, и реклама продолжает приходить.



Например, после скриншота выше, сегодня получил очередную зелёно-фиолетовую рекламу.
Считаю что такого рода вещи должны предаваться гласности, так как дело не в том, что «проблема» решится (хотя до сих пор не решилась) для одного абонента, а в том что этот опыт поможет многим. Ведь по всем проблемным запросам смм Мегафона уводит клиента в личное общение и решений проблем не остаётся в паблике. Попробую это исправить.
С подписками, как оказалось, разобраться проще всего. Расскажу под катом про свой опыт и с ними, и с вмешательством в HTTP-трафик:

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

Проекции карт: о чём на самом деле шутит xkcd

Reading time12 min
Views47K
Xkcd — один из самых культовых веб-комиксов, и минималистичный стиль зарисовок будто из учебника механики стал его визитной карточкой. Автор комикса Рэндел Манро признавался, что старательно ищет вдохновение для новых выпусков: он пробует новые программы и игры, работает над математическими задачами, следит за новостями науки и технологий. Если бы он этого не делал, то комикс рассказывал бы о том, как художник сидит дома за компьютером.

Иногда выпуск комикса xkcd — это поверхностная шутка в узкой области знаний. Понять такой юмор сможет специалист или хотя бы слабо знакомый с затрагиваемой областью, а остальные будут лишь недоумевать. Пример такого выпуска — xkcd.com/977 Map Projections 2011 года. Для полного понимания выпуска нужно лишь примерно представлять историю и функцию различных проекций карт мира, иначе комикс останется чёрно-белым рисунком.



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

Не все мы смотрим на карту для навигации в открытом море. Часто выбор метода преобразования формы Земли — это не вопрос жизни и смерти, это художественная иллюстрация. В этих случаях проекцию выбирают из устоявшихся вкусов и предпочтений — точно так же, как выбирают одежду или автомобиль. Можно смешно шутить про моду на дорогие кроссовки среди директоров крупных компаний Кремниевой долины или про популярность заниженных автомобилей. Точно так же шуткам поддаются предпочтения картографической проекции, как это и было сделано в Map Projections.

Выбор VR шлема

Reading time2 min
Views47K
Продолжение темы «Часто задаваемые вопросы о VR шлемах и играх».

Таблица сравнения разных шлемов с реддит, некоторые цифры спорные, но примерное представление дают о разнице тех. характеристик:


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

Тёмная сторона работы в Яндекс.Маркете

Reading time7 min
Views236K

Я уволился из Яндекс.Маркета, отработав там почти 15 месяцев. Сегодня я хочу поделиться своим взглядом на работу в Яндекс.Маркете и рассказать о причинах ухода.


Disclaimer: эта статья бесполезна для тех, кто работает или работал в Маркете; она предназначена в первую очередь для тех, кто лишь планирует туда пойти. А ещё Яндекс.Маркет – это не Яндекс, но очень близко. Поэтому всё, о чём я буду говорить, в первую очередь относится к Маркету, но значительная часть из этого точно так же может быть применена к большому Яндексу.


Я ни в коем случае не претендую на объективность, это моё личное мнение.


Я никого не отговариваю от трудоустройства в Яндекс. Наоборот, это отличный вызов для любого разработчика и, если вы в состоянии попасть в Компанию, то вам однозначно стоит попробовать.


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


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

Выводим первый транш с Upwork

Reading time6 min
Views19K

UW
Как человеку с образованием программиста и без юридического разобраться в тонкостях работы банков и валютного контроля и, конечно, как вывести свои деньги с Upwork на примере банка Тинькофф бизнес.

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

Смертные грехи безопасности сайта: что мы узнали из статистики сканера уязвимостей за год

Reading time10 min
Views14K
Примерно год назад мы в DataLine запустили сервис для поиска и анализа уязвимостей в ИТ-приложениях. В основе сервиса – облачное решение Qualys, про работу которого мы уже рассказывали. За год работы с решением мы провели 291 сканирование для разных сайтов и накопили статистику по распространенным уязвимостям в веб-приложениях. 

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


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

Видеозаписи всех докладов с PHP Russia 2020 Online

Reading time6 min
Views7.7K
Онтико, благодаря поддержке Badoo, опубликовали видеозаписи всех докладов PHP Russia 2020 Online в открытый доступ.

Конференция прошла 13 мая, в ней приняло участие более 5 000 PHP-разработчиков. Каждый из семи докладов и трех включений со специалистами из компаний-партнёров одновременно смотрели сотни человек. К закрытию количество участников не снизилось, и в среднем каждый участник посмотрел хотя бы один доклад. Для нас как для программного комитета конференции это значит, что мы собрали правильную программу.

Причём, поскольку доклады были англоязычные, среди зрителей было достаточно много иностранных коллег. А с другой стороны у нас был синхронный перевод на русский, поэтому получить полезную информацию можно было с любым уровнем владения языком — английским (в знании PHP у участников PHP-конференции мы не сомневаемся).

И вот теперь эти доклады доступны всем желающим, так же как и на конференции с оригинальной дорожкой и с синхронным переводом от Skyeng. Бонусом, полученным от онлайн-формата, ко всем видео прилагается запись Q&A-сессии. Можно сказать, что впервые можно переслушать то, что обсуждали в кулуарах, или вообще узнать, о чем говорили, когда ты убежал на следующий доклад.


Чуть подробнее о каждом докладе

Magento 2: Critical CSS

Reading time2 min
Views4.6K


В этой статье мы рассмотрим, как настроить и включить critical css в Magento 2.

Что ты такое, critical css?


И HTML, и CSS замедляют вывод страницы. HTML-документ нужно обработать для создания модели DOM, без которой на странице не будет контента. CSS-документ необходимо сначала загрузить, а далее обработать (CSS Object Model).

Чтобы ускорить процесс, необходимо упрощать CSS и использовать media-запросы. Так же увеличению производительности способствует critical css.

Как мы уже говорили выше, все стили CSS, загруженные из внешних файлов, рассматриваются как блокирование рендеринга. Это означает, что веб-страница не будет отображаться, пока эти файлы не будут загружены. Используя critical css, мы предоставляем «критический CSS», встроенный в, и делаем загрузку всех остальных стилей асинхронной.

Асинхронная загрузка достигается путем добавления новой директивы preload в атрибут rel

Для поддержки кроссбраузерности rel=«preload» в Magento используется полифилл.

Важная особенность, в «критический css» входит только видимая часть страницы.
Читать дальше →

Анализируем шедевры живописи с помощью классического ML

Reading time11 min
Views8.2K


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

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

PyTrace — Time Travel Debugger для Python

Reading time2 min
Views7K
Мне часто приходится сталкиваться с отладкой.

Иногда я ставлю точку останова, но понимаю что уже слишком поздно, и надо начинать все сначала.

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

Усложняется все тем, что приходится работать с унаследованным кодом, который иногда сложно понять.

Возможно ли лучше понимать запутанный код? А что, если мы сможем понимать такой код, быстрее чем тот, кто его написал?

Встречайте,

PyTrace — это трейсер с возможностями Time-Travel Debugging-а

image

Программируем прямо в Nginx

Reading time13 min
Views42K


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

В статье мы разберем примеры написания простых программ в конфиге nginx.
Читать дальше →

Колхозим метеостанцию на STM32 (Bluepill, STM32IDE, HAL)

Reading time3 min
Views14K
Привет, Хабр!

В этой статье я хочу рассказать о своей небольшой поделке во время карантина – метеостанция на основе STM32 (плата bluepill).



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

Сколько нужно программистов и прописей, чтобы распознать рукописный паспорт?

Reading time4 min
Views8.2K
Как думаете, часто ли встречаются рукописные паспорта в нашей стране? Когда мы в Smart Engines начинали проектировать систему распознавания паспортов, казалось, что достаточно научить систему качественно распознавать машинописные документы. На тот момент наличие рукописных паспортов, которые не поддавались автоматическому распознаванию, не представлялось важной проблемой: нерешенных задач хватало и без этого. Год назад, анализируя качество работы Smart IDReader, мы поняли, что добрались до того уровня, когда рукописные паспорта составляют значимый класс ошибок. В соответствии с научным подходом, изучили проблему и принялись за решение. Сегодня будет рассказ о том, как мы сделали распознавание рукописного общегражданского паспорта РФ, успешно решив тем самым последнюю задачу на пути полной автоматизации ввода паспортных данных.

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

Information

Rating
Does not participate
Registered
Activity