Search
Write a publication
Pull to refresh
17
0
Айван @AivanF

Программный Инженер, Разработчик, Аналитик

Send message

Я сделал API для скриншотов сайтов, а какой-то парень начал майнить через него криптовалюту

Reading time2 min
Views67K
Просто хотел поделиться этой историей. Знаю, я мог бы лучше подготовиться к этому инциденту, но так уж получилось. :)

Сегодня утром я открыл почтовый ящик и обнаружил около 150 предупреждений из программы мониторинга лога. Я подумал, что случайно запушил какой-то баг в продакшн — и быстро начал расследование. Но вскоре стало понятно, что некий парень очень быстро создаёт новые учетные записи на нашем сервисе API скриншотов ApiLeap и быстро расходует весь кредит бесплатного плана на каждом аккаунте.



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

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

Yargy-парсер и библиотека Natasha. Извлечения структурированной информации из текстов на русском языке

Reading time12 min
Views90K
В 2020 году библиотека Natasha значительно обновилась, на Хабре опубликована статья про актуальную версию. Чтобы использовать инструменты, описанные в этом тексте, установите старую версию библиотеки pip install natasha<1 yargy<0.13.

Раздел про Yargy-парсер актуален и сейчас.


Есть стандартная задача извлечения именованных сущностей из текста (NER). На входе текст, на выходе структурированные, нормализованные объекты, например, с именами, адресами, датами:



Задача старая и хорошо изученная, для английского языка существует масса коммерческих и открытых решений: Spacy, Stanford NER, OpenNLP, NLTK, MITIE, Google Natural Language API, ParallelDots, Aylien, Rosette, TextRazor. Для русского тоже есть хорошие решения, но они в основном закрытые: DaData, Pullenti, Abbyy Infoextractor, Dictum, Eureka, Promt, RCO, AOT, Ahunter. Из открытого мне известен только Томита-парсер и свежий Deepmipt NER.

Я занимаюсь анализом данных, задача обработки текстов одна из самых частых. На практике оказывается, что, например, извлечь имена из русского текста совсем непросто. Есть готовое решение в Томита-парсере, но там неудобная интеграция с Python. Недавно появилось решение от ребят из iPavlov, но там имена не приводятся к нормальной форме. Для извлечения, например, адресов («ул. 8 Марта, д.4», «Ленинский проезд, 15») открытых решений мне не известно, есть pypostal, но он чтобы парсить адреса, а не искать их в тексте. C нестандартными задачами типа извлечения ссылок на нормативные акты («ст. 11 ГК РФ», «п. 1 ст. 6 Закона № 122-ФЗ») вообще непонятно, что делать.

Год назад Дима Веселов начал проект Natasha. С тех пор код был значительно доработан. Natasha была использована в нескольких крупных проектах. Сейчас мы готовы рассказать о ней пользователям Хабра.
Natasha — это аналог Томита-парсера для Python (Yargy-парсер) плюс набор готовых правил для извлечения имён, адресов, дат, сумм денег и других сущностей.
В статье показано, как использовать готовые правила из Natasha и, самое главное, как добавлять свои с помощью Yargy-парсера.
Читать дальше →

Массивы, указатели и другие квантовые явления вокруг нас

Reading time6 min
Views30K
Не хочу говорить, что мы все живем в матрице, но для имитации соседей подозрительно используется один и тот же звук катающегося шара.



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

Алиса, Google Assistant, Siri, Alexa. Как писать приложения для голосовых ассистентов

Reading time12 min
Views32K
image

Рынок голосовых ассистентов расширяется, особенно для русскоязычных пользователей. 2 недели назад Яндекс рассказала впервые про платформу Яндекс.Диалоги, 2 месяца назад Google представила возможность писать диалоги для Google Assistant на русском языке, 2 года назад со сцены Bill Graham Civic Auditorium Apple выпустила в открытое плавание SiriKit. Фактически, появляется новая отрасль разработки, где должны быть свои проектировщики, архитекторы и разработчики. Идеальный момент, чтобы поговорить про голосовые помощники и api для них.

В этой статье не будет подробных туториалов. Это статья об идеях и интересных технических деталях, на которых построены инструменты для сторонних разработчиков основных игроков рынка: Apple Siri, Google Assistant и Алисы от Яндекса.
Читать дальше →

NoSQL базы данных: понимаем суть

Reading time9 min
Views595K
В последнее время термин “NoSQL” стал очень модным и популярным, активно развиваются и продвигаются всевозможные программные решения под этой вывеской. Синонимом NoSQL стали огромные объемы данных, линейная масштабируемость, кластеры, отказоустойчивость, нереляционность. Однако, мало у кого есть четкое понимание, что же такое NoSQL хранилища, как появился этот термин и какими общими характеристиками они обладают. Попробуем устранить этот пробел.


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

Почему не нужно подражать Биллу Гейтсу, если вы хотите разбогатеть

Reading time4 min
Views29K

Самые успешные люди могли добиться всего по большей части из-за попадания в правильный момент, а не благодаря своему таланту




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

Мы часто поддаёмся впечатлению, что наиболее успешные люди являются наиболее опытными и талантливыми. Но это ошибка. Исключительные люди появляются в исключительных обстоятельствах. Самым успешным часто просто очень везло оказаться в нужном месте в нужное время. Они представляют собой исключения из правил, и их достижения – это примеры, не вписывающиеся в систему, в которой работают все остальные.
Читать дальше →

Приватность: рождение и смерть. 3000 лет истории приватности в картинках

Reading time16 min
Views37K


В эпоху ИТ и быстрого развития технологий понятие «приватности» превратилось в фикцию. Глобальные информационные сети и множество сервисов незаметно собирают о пользователях терабайты данных, да и сами пользователи постоянно выкладывают свою жизнь на всеобщее обозрение в соцсетях. Но всё же многие из нас считают свои компьютеры, смартфоны и поведение в сети «приватными», или хотя бы стремятся к этому. А как вообще появилось понятие «приватности» в человеческой культуре?

Добываем Wi-Fi соседа стандартными средствами MacOS

Reading time5 min
Views378K
Я всегда был фанатом багов и уязвимостей «на поверхности», всегда завидовал чувакам, которые пишут эксплойты для самых защищённых ОС, а сам умел только скрипткиддить (термин из нулевых). Однако мой пост про уязвимости в системах контроля версий набрал более 1000 лайков на Хабре и остаётся топ1 постом за всю историю Хабра, несмотря на то, что был написан 9(!) лет назад.

И сегодня я хотел бы на пальцах показать и рассказать про такую штуку, как вардрайвинг. А точнее, как стандартными средствами MacOS можно добыть пароли от Wi-Fi соседей. Нелёгкая забросила меня на очередную квартиру. Как-то исторически сложилось, что я ленивый. Пару лет назад я уже писал, что моя лень, новая квартира и провод Beeline (бывшая Corbina) помогли мне найти багу у Билайна и иметь бесплатно интернет в их сети. «Сегодня» происходит «подобное», я на новой квартире, нет даже провода, но есть много сетей у соседей.


Заколебавшись расходовать мобильный трафик, я решил, что «соседям надо помогать», и под «соседями» я имел введу себя…
Читать дальше →

Принцип экономии мыслетоплива

Reading time15 min
Views85K


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

Как я ускорил работу отдела продаж более чем в 20 раз

Reading time7 min
Views72K
Если вам знакома ситуация, когда нужно обработать заявку от клиента размером 150 или больше позиций, подобрав для каждой самую лучшую по цене из 20 прайс-листов по 10 000 + позиций в каждом, но вы не готовы тратить на это больше 30 минут, то добро пожаловать под кат.
Читать дальше →

Создаем CSS кейлоггер

Reading time4 min
Views34K

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


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

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

Выпуск#9: ITренировка — актуальные вопросы и задачи от ведущих компаний

Reading time6 min
Views16K
Мы подготовили для вас новый сет задач и вопросов, задаваемых на собеседованиях в ведущих IT-компаниях.

КДПВ

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

Четыре способа обмануть нейросеть глубокого обучения

Reading time6 min
Views38K

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

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

Чеклист фронтенд-разработчика

Reading time12 min
Views71K
Глеб Летушов, редактор-фрилансер, адаптировал для блога Нетологии чеклист с Github от David Dias. Этот чеклист уже переводили, но так как на Хабре его нет, мы решили, что он пригодится. В чеклисте собран полный список элементов, которые необходимо проверить перед запуском и публикацией сайта.



Список основан на многолетнем опыте фронтенд-разработчиков, а дополнения собраны из общедоступных источников.
Читать дальше →

Введение в процедурную анимацию: инверсная кинематика

Reading time16 min
Views34K

Часть 4. Введение в градиентный спуск


Эта часть представляет собой теоретическое введение в инверсную кинематику и содержит программное решение, основанное на градиентном спуске (gradient descent). Эта статья не будет всеобъемлющим руководством по этой теме, это всего лишь общее введение. В следующей части мы покажем настоящую реализацию этого алгоритма на C# в Unity.

Серия состоит из следующих частей (части 1-3 представлены в предыдущем посте):

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

Применение процедурных генераторов в создании контента для real-time 3D приложений: Часть 1. Oil Rush

Reading time18 min
Views109K
Игра Oil Rush


В данной статье, состоящей из двух частей, речь пойдёт об использовании возможностей процедурных генераторов при создании контента для компьютерной игры Oil Rush и бенчмарка Valley (выйдет в феврале), разработанных на нашем собственном движке Unigine.
Читать дальше →

Как мы разработали технологию обнаружения устройств поблизости

Reading time7 min
Views44K


Эта история началась с функции “Рядом” в одном из наших мобильных приложений. Мы хотели, чтобы пользователи могли быстро создать групповой чат или добавить находящихся рядом пользователей в друзья. Мы попробовали решить эту задачу при помощи геолокации, Bluetooth, Wi-Fi и ультразвука, но у каждого из способов мы обнаружили критичные в нашем случае недостатки.

В итоге мы придумали новый способ. Он основан на поиске совпадения окружающего шума: если устройства слышат одно и то же, то, скорее всего, они находятся рядом.

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

В 20 раз дешевле, в 2,5 раза точнее и вдвое удобнее

Reading time7 min
Views32K
Приветствую, уважаемое сообщество!

Сегодня ровно год, как я написал первый пост на Хабре. Второй и до этого момента крайний пост, я написал примерно через неделю и…

Этот год я активно занимался освоению новой профессии — Трабл-Шутер. Тех, кто не знает такой специальности (но хотел бы узнать), милости прошу в мой профиль. Если кратко, то Трабл-Шутер — это человек решающий чужие бизнес-проблемы, не традиционными способами.

Так вот, в честь юбилея моего присутствия на Хабре, я решил написать серию статей, в которой расскажу о некоторых проектах и разработках, сделанных в ходе работы над этими проектами. Конечно, я буду рассказывать только о разработках, которые по тем или иным причинам не принял заказчик (соответственно все права на интеллектуальную собственность принадлежат мне) или которые я делал вне проектов, для себя. И естественно, все проекты будут технической направленности, это около 40% всех проектов (остальные относятся к области маркетинга, HR, экономики).

Долго думать с какого проекта начать, не пришлось, логично начать с самого первого проекта. Тем более решение, которое я опишу, получилось действительно эффективное и простое (у Трабл-шутеров часто решения на столько простые, что заказчик хватается за голову: «Как же я сам не догадался?»). В теме поста нет никакого обмана, действительно разработанное оборудование получилось минимум в 20 раз дешевле аналогов (для некоторых брендов конкурентов, этот показатель достигает и 40х), в 2,5 раза точнее и значительно удобнее.

И так, как вы уже поняли разрабатывали мы в этом проекте не ПО, не процессы, а оборудование (железку). Под катом вы узнаете все подробности о проекте.
Читать дальше →

VKFS — Файловая система для VKontakte на основе Fuse

Reading time1 min
Views48K
Не так давно на хабре (и на лепре, и еще где-то) появилась такая гифка:
image
Я посидел и подумал: «А почему бы и нет?»
Прошло некоторое время и, как я и обещал
Встречайте! VKFS — файловая система vkontakte, основаная на fuse.
Это не релиз — пока что реализована только возможность чтения собственной стены, но уже готов весь «каркас» для этого всего.
Читать дальше →

Information

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