Обновить
38
0.1

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

Отправить сообщение

Сам себе Linux смартфон: Как я выкинул Android и написал свою прошивку с нуля

Уровень сложностиСредний
Время на прочтение17 мин
Количество просмотров88K
image

К огромному сожалению, старые смартфоны всё чаще и чаще находят своё пристанище в мусорном баке. К прошлым, надежным «друзьям» действует исключительно потребительское отношение — чуть устарел и сразу выкинули, словно это ненужный мусор. И ведь люди даже не хотят попытаться придумать какое-либо применение гаджетам прошлых лет! Отчасти, это вина корпораций — Google намеренно тормозит и добивает довольно шустрые девайсы. Отчасти — вина программистов, которые преследуют исключительно бизнес-задачи и не думают об оптимизации приложений совсем. В один день я почувствовал себя Тайлером Дёрденом от мира IT и решил бросить вызов проприетарщине: написать свою прошивку для уже существующего смартфона с нуля. А дабы задачка была ещё интереснее, я выбрал очень распространенную и дешевую модель из 2012 года — Fly IQ245 (цена на барахолках — 200-300 рублей). Кроме того, у этого телефона есть сразу несколько внешних шин, к которым можно подключить компьютер или микроконтроллер, что даёт возможность использовать его в качестве ультрадешевого одноплатника для DIY-проектов. Получилось ли у меня реализовать свои хотелки? Читайте в статье!
Читать дальше →

Зализняк: основа русской прикладной лингвистики

Время на прочтение8 мин
Количество просмотров10K

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

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

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

Для решения задачи отождествления разных форм существует некоторое количество реализаций морфологических анализаторов русского. Но почти все они — во всяком случае, заслуживающие внимания — растут из одного корня...

(По материалам внутреннего семинара компании МойОфис)

Читать далее

2 года, 7 попыток, 0 распознанных бордюров: как мы учились детектить ДТП в реалтайм без датасета

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров7.4K

Привет, Хабр! Это команда дата-сайентистов Magnus Tech. В этом посте мы расскажем, как работали над одним общественно полезным проектом — алгоритмом, который распознает ДТП по видео с дорожных камер. Кейс будет интересен широкому кругу разработчиков, которые занимаются технологиями машинного зрения и обучения. В нем — наш долгий путь из множества попыток сделать точный алгоритм, несмотря на его настойчивые попытки быть неточным.

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

Читать далее

Как подготовить PreLabeled-датасет при помощи CVAT, YOLO и FiftyOne

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров6.9K

Представьте ситуацию: подходит к концу спринт, во время которого вы с командой планировали разметить десятки тысяч картинок для обучения новой нейросети (допустим, детектора). Откладывать задачи — не про вас! И вы обязались придумать способ как успеть в срок!

Сегодня я подробно расскажу:

как развернуть CVAT — популярный сервис для разметки данных;

как быстро и удобно предразметить датасет с помощью YOLO и FiftyOne;

как загрузить полученный датасет на CVAT для переразметки;

как выгрузить предразмеченный датасет обратно.

Читать далее

EvoJ — удобный фреймворк для генетических алгоритмов

Время на прочтение7 мин
Количество просмотров5.7K
Здравствуйте, коллеги!

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

Вот уже пару лет я виде хобби разрабатываю Java-фреймворк EvoJ посвященный ГА. Когда я только начинал работу с ГА самое большое неудобство представляла необходимость векторизации переменных составляющих решение, поэтому в своем фреймворке я постарался сделать векторизацию переменных прозрачной для программиста, возложив всю грязную работу на плечи фреймворка. Кроме того, так как ГА очень хорошо поддается распараллеливанию, я постарался сделать переход к многопоточности не менее легким.
Читать дальше →

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

Время на прочтение4 мин
Количество просмотров40K
Я долгое время думал, что написать сортировку массива слиянием так, чтобы она не использовала дополнительной памяти, но чтобы время работы оставалось равным O(N*log(N)), невозможно. Поэтому, когда karlicos поделился ссылкой на описание такого алгоритма, меня это заинтересовало. Поиск по сети показал, что про алгоритм люди знают, но никто им особо не интересуется, его считают сложным и малоэффективным. Хотя, может быть, они имеют в виду какую-то «стабильную» версию этого алгоритма, но нестабильная при этом все равно никому не нужна.

Но я все-таки решил попробовать.

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

Как айтишники построили пивоварню, чтобы варить лагер для коллег по цеху

Время на прочтение7 мин
Количество просмотров7.4K

Группа компаний ITGLOBAL.COM развивает различные ИТ‑проекты, и недавно к ним прибавился еще один. Два года назад мы научились варить пиво и открыли собственную пивоварню — ITCOLON.

Идея ее создания принадлежит Дмитрию Гачко, ИТ‑предпринимателю, основателю ГК ITGLOBAL.COM и Технопарка «ИТ Крым». Одной из первичных задач Технопарка является создание комфортного пространства для айтишников: хорошие офисы, коворкинг, насыщенная образовательная околоайтишная повестка, места для отдыха и занятий спортом, короче, все, что нужно ИТ‑компании, будь то стартап или серьезный, зрелый проект. Но это, конечно, полдела: у Технопарка должна быть изюминка, преобразующая офисное пространство в место для общения, коммуникаций и генераций идей. Именно поэтому мы решили создать в Технопарке пивоварню. Традиционно пиво считается айтишным напитком, и связано это в первую очередь с тем, что пиво пить можно долго, без потери сути разговора, а в процессе даже самые безнадежные интроверты раскрываются и готовы поспорить по делу.

Читать далее

Хочешь вкусного пива, Arduino в помощь

Время на прочтение12 мин
Количество просмотров40K
Данная публикация навеяна другой. Она называется «Контроллер для домашней пивоварни Mega Brewery. Part I» и опубликована за авторством megadenis.

С чего все началось?


Я студент технического ВУЗа. Однажды, сидя в кафе с другом, который тогда учился в медицинском университете, решили открыть бар. Было много идей, которые, в принципе, заслуживали некоторого внимания. Например, танц-пол, который изменяет угол наклона в зависимости от стиля музыки… Но, наряду со всем многообразием идей, так же была еще одна —

… а не сварить ли нам свое пиво?


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

Через несколько лет решил повторить процесс, немного автоматизировав его с помощью Arduino UNO. И вот, что получилось.
Читать дальше →

Варим пиво с помощью модуля MP8036multi

Время на прочтение5 мин
Количество просмотров13K


Один из клиентов обратился к нам с просьбой подобрать подходящий модуль для решения своей задачи.

Модуль планируется применять в составе небольшой собственной пивоварни. В задачу модуля входило строгое поддержание определённого температурно-временного режима сусла в одном из циклов. В качестве нагревателя применяется ТЭН мощностью 3 кВт.

Задача выглядит следующим образом:

— нагрев и поддержание сусла до 60С в течение 30 минут;
— нагрев и выдержка при 70С в течение 20 минут;
— нагрев и выдержка до 80С в течение 10 минут;
— индикация о завершении цикла и выключение нагревателя;
— индикация прохождения цикла;
— сигнализация неисправности термодатчика или превышения максимально допустимой температуры.

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

Анализировать данные — это как варить пиво. Почему дата-анализ и пивоварение — одно и то же с техноизнанки

Время на прочтение10 мин
Количество просмотров17K

Три года я был эстонским пивоваром: придумывал рецепты и сам варил. Когда начал изучать Python, SQL и анализ данных, понял, что между подготовкой данных и подготовкой сусла много общего: оказывается, в цеху я занимался DS, но не подозревал об этом. Меня зовут Алексей Гаврилов, я сеньор дата-аналитик в ретейле. В этой статье расскажу, чем пивоварение и аналитика данных похожи изнутри.

Читать далее

Python и пиво — взболтать, но не смешивать

Время на прочтение3 мин
Количество просмотров5.9K


Привет, Habr! Решил описать небольшую систему автоматизации для создания чудесного напитка. Для того, чтобы пиво было вкусным важны время и температура, температура и время. Причём они настолько же необходимы, как и ингридиенты, составляющие сусло. Чтобы пройти путь до готового продукта требуется от 14 до 20 шагов с различной температурой и временем пивоварения. Для всех заинтересовавшихся этим загадочным процессом, прошу под кат.
Читать дальше →

Контроллер для домашней пивоварни Mega Brewery. Part II

Время на прочтение3 мин
Количество просмотров43K
Всем привет!
С момента, когда я решил построить свою автоматизированную пивоварню прошло много времени.  Вот первый пост.
Сегодня контроллер полностью готов, осталось сделать само варочно-фильтровальное устройство. Все делалось моими собственными руками. Прошу не судить строго, у меня нет инженерного образования, я простой гуманитарий! Расскажу по-порядку, как и из чего это делалось. Внимание, траффик, много фоток!
Читать дальше →

Контроллер для домашней пивоварни Mega Brewery. Part I

Время на прочтение3 мин
Количество просмотров75K
image Я домашний пивовар.
Начинаю «разработку» контроллера для своего минипивзавода.

Т.к. я нифига не программист, обратился к русскому Arduino сообществу.
С момента желания сделать умный термометр для пивоварения, прошло много времени и возникло новое желание — построить автоматизированную домашнюю пивоварню. Для ее автоматизации необходим блок управления. Решено было отказаться от использования покупных PID контроллеров, для управления ТЭНом, т.к. имеется Arduino, к ней SSR реле — 2шт., дисплей 4 на 20 строк и к нему Serial Board для передачи инфы по одному проводу, не считая землю и питание.
Читать дальше →

И снова про сортировки: выбираем лучший алгоритм

Время на прочтение9 мин
Количество просмотров146K
Недавно на хабре в очередной подняли тему алгоритмов сортировки, а именно был хорошо описан метод Timsort.

Он, имея сложность не более O(n log n), ускоряется в случае сортировки частично упорядоченных данных и имеет сложность O(n), если данные изначально отсортированны. Но это не единственный алгоритм с такими заявленными свойствами. Существует еще как минимум два более-менее известных метода с похожей сложностью — это Smoothsort и сортировка Шелла.

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

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

Распознавание лиц человеческим мозгом: 19 фактов, о которых должны знать исследователи компьютерного зрения

Время на прочтение13 мин
Количество просмотров63K
Важной целью исследователей в области компьютерного зрения является создание автоматизированной системы, способной сравняться или превзойти способности человеческого мозга по распознаванию лиц. Результаты психофизических исследований процесса распознавания лиц предоставляют специалистам по компьютерному зрению ценнейшие факты, которые помогут улучшить системы искусственного интеллекта.

Как обычно, предлагаю сокращенный перевод, полный текст доступен в оригинале.

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

Проектирование алгоритма под рекомендательную систему

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров3.9K

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

Читать далее

Камера, нейронки и дымящийся микро-ПК: дешевая и практичная альтернатива радару

Время на прочтение9 мин
Количество просмотров5.5K

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

Читать далее

Как задачи на LeetCode прокачали меня как разработчика, или по-честному про алгоритмы

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров65K

Однажды я зашла на LeetCode, одну из популярных платформ для решения алгоритмических задач. Сразу уточню: мне не нужно было готовиться к собеседованию, и моя работа не требовала продвинутого знания алгоритмов. Тем не менее я заметила, что у меня стали заполняться пробелы в знаниях, и я продолжила решать задачи — каждый день понемногу.

С тех пор у меня накопилось более 400 решённых задач на LeetCode. Теперь я уверена, что такие платформы как LeetCode, HackerRank или CodeWars, при правильном подходе, способны поднять профессиональные навыки любого разработчика на новый уровень.

Читать далее

Синтез обучения с подкреплением и классического планирования: как выиграть соревнование CVPR Habitat Challenge 2023

Уровень сложностиСложный
Время на прочтение16 мин
Количество просмотров2.9K

Всем привет! Меня зовут Алексей Староверов, работаю научным сотрудником в AIRI и в составе нашей команды (вместе с Кириллом Муравьевым, Татьяной Земсковой, Дмитрием Юдиным и Александром Пановым) мы выиграли соревнование Habitat Challenge, которое проводилось в рамках крупнейшей конференции по компьютерному зрению CVPR 2023. Мы смогли эффективнее других команд научить робота навигироваться до целевых объектов в новых помещениях с использованием только RGB-D камеры, датчика GPS и компаса. Сейчас это является очень важной задачей при создании роботов-помощников, выполняющих задачи по инструкциям на естественном языке. В этой заметке я расскажу, как это у нас получилось.

Читать далее

Работа в офисе? Нет пути

Время на прочтение9 мин
Количество просмотров57K


Я - фрилансер

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

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

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

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

Однако, было поставлено условие — работа только в офисе. Никакой удалёнки.

В итоге я вышел оттуда с наказом подумать до понедельника. Думать, на самом деле, не о чем. Работа в офисе — не вариант. Припарковав автомобиль около своего дома, я раздумывал о том, как сформулировать письмо с отказом. Товарищ, с которым я общался, произвёл на меня хорошее впечатление и не хотелось просто писать «я не хочу с вами работать» в ответном письме. Решил, что подробно распишу причины своего отказа и важность для меня именно удаленной работы. В процессе ответ стал таким масштабным, что из письма превратился в эту статью.

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

Информация

В рейтинге
3 206-й
Откуда
Россия
Зарегистрирован
Активность