Pull to refresh

Technotext

Я — айтишник, я не хочу много знать

Reading time6 min
Views110K

За последнее время мне довелось провести немало технических собеседований на позицию DevOps инженера, в связи с чем появилась идея формализовать полученные выводы в этой статье. Хочу поделиться своими наблюдениями, субъективным мнением, и задать самому себе вопросы, ответы на которые, возможно, мне помогут получить читатели данной статьи.

Читать далее

Ожерелье OwlEye — помощь слабовидящим

Level of difficultyEasy
Reading time5 min
Views4.3K

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

И решил пробовать сделать совиное ожерелье, предупреждающее о препятствиях перед человеком. 

Конечно, как и с железячной точки зрения, так и со стороны кода проект достаточно прост (с щепоткой художественной составляющей в виде ожерелья\подвески), но с другой стороны это и упрощает повторение устройства, создание своих версий, их улучшение да и вообще все что угодно. 

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

Читать далее

Классификация авторства текстов. Обзор Kaggle соревнования «H2O Predict the LLM»

Level of difficultyEasy
Reading time4 min
Views2.1K

В день, когда Сэм Альтман в темной одежде на темном фоне рассказывал миру о запуске GPT-4-Turbo, в те же самые минуты на Kaggle завершалось небольшое, но любопытное соревнование “Predict the LLM”. Цель – узнать автора по тексту. Авторами текстов выступили 7 анонимных больших языковых моделей…  

Читать далее

Уязвимость XXE в .NET 6 SDK: с чем боролись…

Level of difficultyMedium
Reading time10 min
Views6.7K


Современный .NET даёт разработчикам защиту от XXE из коробки: парсишь себе XML и не забиваешь голову всякими DTD, сущностями и связанной с ними безопасностью. Разве не прекрасно? Однако жизнь — штука с иронией...


Под катом — разбор по кусочкам XXE из .NET 6 SDK: код, причины дефекта безопасности, фикс.

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

Все что ты хотел знать о AWS Spot Instances, но боялся спросить

Level of difficultyMedium
Reading time16 min
Views5K


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

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

Визуализация общественного транспорта

Level of difficultyMedium
Reading time6 min
Views6.6K

TL;DR

Я написал тул для генерации постеров с маршрутами общественного транспорта, разные цвета для разных видов транспорта, толщина и прозрачность линий соответствуют количество поездок на сегменте маршрута. Репозитарий тут: https://github.com/dragoon/cityliner

Около 10 лет назад, Майкл Мюллер сделал проект gtfs-visualizations на смеси JavaScript/Node.js для обработки GTFS данных и Processing для отображения в PDF. Мне понравились эти постеры, и я доработал его код, добавив возможность создания постера, ограничения изображения по радиусу, и переделал обработку данных так чтобы файлы читались последовательно а не загружались полностью в память (это было проблематично для городов даже среднего размера).

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

Подробнее

Как ChatGPT за меня тестовое задание для собеседования писал

Reading time6 min
Views66K

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

И мне вдруг подумалось, а как хайповый chatGPT мог бы справиться с таким полуреальным, но вполне полезным для меня, заданием?

Читать далее

Как использовать html-элемент <dialog>?

Level of difficultyMedium
Reading time11 min
Views30K

Привет, Хабр! Меня зовут Александр Григоренко, я фронтенд-разработчик. В основном, занимаюсь разработкой приложений на React, но также постоянно экспериментирую с различными технологиями.

В своей работе я часто создаю собственные или использую уже готовые UI-компоненты. Проблема с такими компонентами заключается в том, что они часто ограничены определённым фреймворком, и их реализация требует написания сложной нестандартизированной логики. В течение долгого времени для базовых UI-компонентов, таких как диалоговые окна, использовались самописные решения, а в тяжёлых случаях и встроенные в JavaScript методы alert(), prompt() и confirm().

Отличная новость в том, что такой компонент можно реализовать с использованием нативного HTML-элемента <dialog>, который встроен в стандарт HTML5 и работает одинаково во всех современных браузерах.

Давайте познакомимся с возможностями <dialog> поближе.

Читать далее

Исследуем саундбар Yamaha YAS-109

Level of difficultyHard
Reading time9 min
Views32K

Всем привет!

Краткое предисловие: я счастливый обладатель замечательного саундбара YAS-109 от Yamaha, на момент написания пользуюсь им уже целый год, и всё в целом хорошо. Но однажды я решил узнать: не подслушивает ли меня мой музыкальный друг? Ведь у него есть встроенная поддержка Alexa, а ещё Bluetooth, WiFi, Ethernet и другие прелести… Так и начинается история моего ресёрча.

Читать далее

Vue.js. Создание динамических пользовательских интерфейсов с помощью компонентов и реактивных свойств

Level of difficultyMedium
Reading time11 min
Views6.2K

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

Меня зовут Сергей Журавлев, я участник профессионального сообщества NTA.

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

Но прежде чем перейти к основной теме публикации, сделаю короткое отступление на причины выбора именно Vue.js в конкуренции с самым популярным на текущий момент React. Если не углубляться в технологии, то главное преимущество Vue.js — его простая и понятная структура, упрощающая использование данного фреймворка при так называемой фулл‑стек разработке. Разделение логики и функционала компонентов от основной html‑разметки, позволяют быстрее и в наиболее полной мере погружаться в разработку специалистам разного профиля, что, в конечном итоге, позволяет экономить трудовые и временные ресурсы при разработке небольших приложений, не требующих вовлечение большой команды с узким разделением ролей.

В этом отношении, React, например, имеет несколько иной подход, при котором синтаксис html «растворяется» в JavaScript коде, расширяясь в вариацию языка JSX. Что, в конечном итоге, требует более узкой специализации от разработчиков и более сложного взаимодействия между участниками.

Читать далее

Упрощаем себе жизнь при разработке интерфейса взаимодействия приложения и БД

Reading time8 min
Views6.3K

Привет, %username%! Меня зовут Антон Жеронкин, я Data Scientist в Сбере, участник профессионального сообщества NTA. Сегодня поговорим о том, как можно сделать лучше жизнь разработчиков, которые часто сталкиваются с базами данных. Дело в том, что, когда разработчики вручную пишут функциональные модули, ответственные за связь с БД, они проделывают следующую работу:

● описывают таблицы в виде классов;

● описывают отдельные атрибуты таблиц в виде атрибутов классов. При этом требуется следить за тем, чтобы типы и форматы данных совпадали;

● на CRUD-операции пишут много SQL-кода, который зашивается в методы языка программирования и помогает остальным модулям при необходимости использовать связь с БД.

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

Читать далее

Выбираем формат хранения данных в экосистеме Hadoop

Reading time5 min
Views7.5K

Привет, %username%! Меня зовут Кирилл Фурзанов, я Data Scientist в Сбере, участник профессионального сообщества NTA. При формировании витрин данных и датасетов в экосистеме Hadoop одним из важных вопросов является выбор оптимального способа хранения данных в hdfs. Рассмотрим один из важных вопросов при создании витрины – выбор соответствующего формата файла для хранения.

Читать далее

Как не попасть в яму с помощью нейронных сетей: технологии приходят на помощь коммунальщикам

Reading time8 min
Views2.2K

Привет, Хабр! Меня зовут Андрей Соловьёв, я DS в Сбере. Вероятно, практически каждый читатель этой статьи сталкивался с проблемными дорогами, если вы автомобилист, или тротуарами, если вы пешеход. Плохие дороги — одна из актуальнейших проблем любой страны. Сегодня поговорим о том, как технологии могут помочь решить эту проблему.

Задача состоит в распознавании повреждений дорожного покрытия. Общая дорожная сеть Российской Федерации — 1,5 млн км, из которых примерно 75% — дороги общего пользования. При этом около 65% таких дорог имеют твёрдое покрытие, однако 55% из них не соответствуют нормативным требованиям. Иными словами, большинство национальных дорог содержит различные дефекты, и это становится серьёзной опасностью как для владельцев транспортных средств, так и для самого транспорта, а также для пешеходов. Что делать? Конечно же, привлечь нейросети. Как — рассказываю под катом.

Читать далее

Поиск ошибок в логике работы чат-бота с помощью TF-IDF и DBSCAN

Reading time6 min
Views2.1K

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

Меня зовут Котов Илья, я Data Scientist и участник профессионального сообщества NTA.

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

Читать далее

ML-подходы по поиску похожих изображений

Level of difficultyMedium
Reading time16 min
Views13K

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

Меня зовут Паймеров Владимир, я Data Scientist и участник профессионального сообщества NTA.

Компьютерное зрение (computer vision, CV) — активно развивающаяся научная область,
связанная с анализом изображений и видео. В последнее время данному направлению
уделяется большое внимание, так как CV позволяет решать множество задач, таких как
детекцию объектов, классификацию изображений, распознавание лиц и т. д., которые
в свою очередь применяются в разных сферах жизни от мобильных приложений для
наложения масок на лицо во время звонка до построения систем безопасности,
поиска преступников и мошенников. Сейчас есть инструменты, позволяющие
хранить большой объем данных и обрабатывать изображения, поэтому появилось
множество инструментов для решения различных задач. Об одной из таких задач
будет рассказано в данном посте.

Читать далее

Снижаем размерность эмбеддингов предложений для задачи определения семантического сходства

Level of difficultyMedium
Reading time10 min
Views3.8K

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

Меня зовут Николай Шукан, я Data Scientist и участник профессионального сообщества NTA. Сегодня речь пойдет о методах снижения размерности эмбеддингов для задач определения семантического сходства предложений.

С каждым годом растет сложность моделей, решающих вопросы семантически- и контекстно-ориентированной обработки естественного языка (NLP). Также нельзя забывать и про проблемы мультиязычности моделей. Все это сильно сказывается на увеличении их размеров и системных требований к железу для их обучения, дообучения, да и просто запуска.

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

Узнать подробности

Как научить Наивного Байеса давать персональные рекомендации

Level of difficultyHard
Reading time15 min
Views2.8K

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

С вами Дворников Дмитрий — Data Scientist и участник профессионального сообщества NTA.

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

С помощью разработанной ML‑модели можно улучшить качество классификации текстов при использовании обучающей выборки небольшого объёма (всего 30 объектов) и сократить время обучения модели.

Задача решалась в рамках разработки системы рекомендаций научных статей. Наработки могут быть использованы в любых задачах NLP и Text Mining.

Узнать решение

Нечеткое сравнение строк с помощью rapidfuzz

Reading time9 min
Views9.7K

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

Меня зовут Антон Черниговский, я участник профессионального сообщества NTA.

В публикации расскажу, как при решении задачи нечеткого сравнения строк, среди разных инструментов сравнения (по косинусному сходству, по сходству Левенштейна, по сходству Джаро‑Винклера) был выбран лучший вариант нечеткого сопоставления. Сравнение инструментов производилось исходя из скорости выполнения, правильности сравнения и простоты реализации, с помощью библиотек rapidfuzz и sklearn.

Узнать какой инструмент лучше

DeepPavlov «из коробки» для задачи NLP на Python

Level of difficultyEasy
Reading time5 min
Views6.7K

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

Сегодня с вами участник профессионального сообщества NTA Пётр Гончаров.

В этом посте я разобрал последовательность действий, выполненных при решении задачи автоматизированного анализа текстовой информации в публикациях на Хабре для составления отчётов: парсинга сайта и использования «из коробки» инструментов библиотеки DeepPavlov для поиска ответов на вопросы в заданном контексте.

Погрузиться глубже

Контроль за дрейфами предсказательных моделей и Popmon

Level of difficultyEasy
Reading time8 min
Views8.6K

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

На связи участник профессионального сообщества NTA Иван Попов.

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

Как держать дрейф модели под контролем?