
Earcut - базовый, почти учебный алгоритм триангуляции, но при некоторых раскладах он обгоняет более "продвинутые" решения.
User
Earcut - базовый, почти учебный алгоритм триангуляции, но при некоторых раскладах он обгоняет более "продвинутые" решения.
Около полутора лет назад я решил начать свое путешествие в область реверс-инжиниринга IoT-устройств. Сегодня я хотел бы рассказать о своем опыте и результатах исследования уязвимостей в китайской IP-камере Tenda CP3.
Что я подразумеваю под реверс-инжинирингом IoT-устройств?
TinyML сам по себе означает внедрение ml в маломощные микроконтроллеры и встроенные системы. Это устройствам IoT выполнять задачи обработки данных и машинного обучения непосредственно на самом устройстве, минимизируя таким образом необходимость в постоянном подключении к интернету или внешним вычислительным ресурсам. Основная цель TinyML - сделать ии или простые модельки доступным для самых маленьких устройств
Возможно я был недостаточно внимателен, но мне попалось на Хабре буквально одно, очень краткое упоминание крайне интересного исследования от команды из Университета Цинхуа и партнерских институтов нескольких стран: Absolute Zero Reasoner (AZR) — новую систему машинного обучения, которая развивает принципы self-play и способна обучаться без каких-либо внешних данных. В отличие от традиционных подходов, требующих тысячи размеченных примеров, AZR использует принцип самообучения через создание и решение собственных задач программирования. Система играет две роли одновременно: составителя задач (Proposer) и решателя (Solver), используя исполнитель кода как объективного судью для получения обратной связи. AZR продемонстрировал state-of-the-art результаты в программировании и математических рассуждениях, превзошедший модели, обученные на десятках тысяч человеческих примеров, при этом показав впечатляющий кросс-доменный перенос знаний между различными областями знаний.
PyTorch — современная библиотека глубокого обучения, развивающаяся под крылом Facebook. Она не похожа на другие популярные библиотеки, такие как Caffe, Theano и TensorFlow. Она позволяет исследователям воплощать в жизнь свои самые смелые фантазии, а инженерам с лёгкостью эти фантазии имплементировать.
Данная статья представляет собой лаконичное введение в PyTorch и предназначена для быстрого ознакомления с библиотекой и формирования понимания её основных особенностей и её местоположения среди остальных библиотек глубокого обучения.
TensorFlow — один из самых мощных и популярных фреймворков для машинного обучения, разработанный компанией Google Brain в 2015 году.
Пока старички-студенты активно практикуются в самых сложных задачах машинного обучения, новички еще практикуются с освоением практики обучения на TF.
Поэтому мы подготовили гайд с основными концептами этого незаменимого для ML-инженера фреймворка.
В данной статье речь пойдет про использование очень маленькой Luckfox Pico Mini. Я расскажу про особенности платы, её настройку, а также о том как запускать на ней нейронные сети для детекции объектов с камеры.
Мне удалось добиться скорости детекции в 15 FPS (или даже 50!), результат, который по силам далеко не каждому одноплатнику.
Мало что настолько меня угнетает, как невозможность что‑либо понять так, чтобы потом объяснить это самому себе:) И хоть я уже давно не девятиклассник, этот период запомнился мне внезапным переходом от заучивания материала «чтобы не схватить парашу» к некоторой степени осознания «а как оно там устроено и почему именно так». Сложнее всего было с математикой и я постоянно изобретал для себя «объяснялки». Этот навык, к счастью, прижился и стал привычкой.
Пишут, что в греческом и арабском ещё больше, но там столько оговорок (что считать словом) и опровержений, что я в них запутался. Киньте ссылку, плиз, если где-то есть внятное авторитетное объяснение.
1. В 1066-м году Вильгельм Завоеватель захватил британские земли и получилась такая ситуация: всё начальство – французы, говорят на французском; местные – на своих языках. Французов ассимилировали, связь с Францией у них фактически оборвалась. Но английский впитал в себя огромную часть французского языка. Эти слова стали литературными синонимами, их до сих пор используют в образованных кругах + в школах и вузах французский учат как иностранный – это тоже не даёт французским словам устаревать.
2. Со времён римских завоеваний латинский язык из Англии особо и не уходил. А когда над Британской империей перестало заходить солнце, он всё ещё был международным языком науки. Для руководства колониями и обслуживания финансовых потоков нужно было много образованных людей. Они и ввели тонны латинской лексики и даже фразеологии в обиход. Все эти слова до сих пор формально существуют в английском, но используются всё реже, и некоторые уже смело можно считать устаревшими. Но многие прижились. Например, в юриспруденции и в языке церкви – сплошная латынь.
3. США, Канада, Австралия и Великобритания – уже очень давно самостоятельные цивилизации, к тому же удалённые друг от друга географически.
Причём речь в этих странах различается и от региона к региону. Нам кажется естественным говорить на совершенно одном языке в Питере, Владивостоке и уральских деревнях, а жители других стран удивляются. И дело тут не в них, а в нас.
В СССР проводилась сознательная политика унификации речи. Абсолютно одинаковая школьная программа по всей стране, одни учебники. Одинаковый язык всех СМИ – от местной газеты до центрального радио и телевидения. Одни и те же фильмы, их мало, все пересмотрены по сто раз и растасканы на цитаты. До 30-40-х местные диалекты ещё абсолютно господствовали в деревнях, а потом подросло первое советское поколение. На самом деле, у нас до сих пор почти в каждом поселении есть старики, которые эти диалекты помнят, просто говорить на них уже не с кем.
Современные процессоры - как сверхдержавы: у каждой архитектуры есть своя сфера влияния, которую они не готовы уступать никому другому. x86 давно закрепился на серверах и рабочих станциях, а ARM занял все мобильные и IoT-территории. Время от времени они сталкиваются на территориях друг друга, но глобально расклад сил не меняется вот уже многие годы. Всё так бы и оставалось, если бы на сцену не вышел RISC-V, который незаметно перерос из разряда хобби для гиков в настоящую альтернативу существующим архитектурам.
«We have a phrase inside Intel. We are supposed to be a data driven company and the phrase is, "Don't argue with the emotions, argue with the data."»
Andrew S. Grove, Chairman of the Board, Intel Corporation, August 9, 1998
В июле 2023-го года в «Байкал Электроникс» стартовал проект по разработке собственного AI-процессора. В данной публикации мы хотим рассказать, почему мы выбрали именно архитектуру GPGPU, какими данными при решении мы руководствовались, а во второй части немного рассказать о ходе разработки и поделиться полученным опытом.
Как вы уже знаете из прошлых постов, у нас в компании есть DIY-движение. В свободное от работы время коллеги занимаются фрезеровкой печатных плат в домашних условиях, делают тепловизор на FLIR Lepton, а также решают семейные разногласия с помощью 4 контроллеров и 2 умных часов. Продолжим серию увлекательный историй! Сегодня я расскажу, как сделать контроллер к трехфазному двигателю электровелосипеда своими руками. Целью создания такого контроллера было:
В тоже время на рынке представлены европейские качественные контроллеры для электробайков. Они оснащаются расширенными функциями, работают на разных напряжениях и токах и их можно программировать. Устанавливаются они на сверхмощные электровелосипеды. Но цена у них кусается — 10-20 тыс. рублей.
В итоге я решил пойти своим путем: разобраться в устройстве контроллера, сделать его прототип, а затем попытаться сделать контроллер качественнее китайского контроллера. На текущий момент проект у меня в разработке только и на уровне прототипа, готового варианта пока нет. Буду рад услышать ваши комментарии и советы.
В конце октября мы анонсировали продление программы грантов от Yandex Open Source для поддержки проектов независимых разработчиков. Пришло время подвести итоги и рассказать о победителях.
За прошедшие месяцы мы изучили 120 проектов в трёх категориях: обработка и хранение данных, машинное обучение и разработка. Кстати, одну из заявок мы получили 15 марта в 23:59 — в последнюю минуту подачи. Этот проект тоже есть среди победителей.
Так мы выбрали 12 проектов, которые показались нам самыми интересными, полезными и перспективными. Мы попросили победителей рассказать про свои проекты чуть подробнее. Кто знает, возможно, в этой статье вы найдёте для себя новые инструменты, которые будут полезны в вашем проекте.
Вторая часть уже здесь.
В первой части мы:
• посмотрим, как работать с памятью и регистрами 8086
• узнаем, как написать простую программу на ассемблере прямо в отладчике
• изучим работу механизма прерываний и сделаем демонстрационный пример
Статья рассчитана на тех, кто имеет начальный опыт программирования, но хочет понять основы низкоуровневого программирования и многозадачности.
В этой части нас ждёт погружение в один из способов организации мультипоточности на базе единственного ядра процессора. Мы научимся принудительно переключать выполнение между полностью зацикленными участками кода, ничего не "знающими" о каком-то другом коде, конкурирующем за процессорное внимание. По ходу повествования будут даны все необходимые пояснения и читателю не придётся обращаться к другим источникам, кроме первой части статьи.
Всё началось невинно. Шёл 2009 год, и я просто хотел портировать Earcut на Flash - для своей мини-игры. Тогда это сработало, но с годами стало понятно: простые решения перестают работать, как только хочешь выжать из них максимум.
Человек сегодня вышел к морю пораньше. Встретить восход и насладиться утренним дуновением ветра, чтобы окончательно пробудиться и начать свой день. Это было его ежедневным ритуалом, встречать Рассвет.
Здравствуй, читатель. С моих прошлых статей про NVRAM прошло некоторое количество времени (за эти почти 10 лет мало что изменилось, и все эти форматы до сих пор с нами практически без модификаций), а моя работа на одну фруктовую компанию не позволяла мне писать статьи, тесты и посты без одобрения кучей непонятных людей, но теперь эта работа осталась в прошлом, а желание писать так и не пропало.
Эта статья - практическая реализация этого желания, а поговорим мы в ней о формате Dell DVAR, и немного о декларативном языке для написания парсеров Kaitai Struct, на котором я недавно переписал парсеры всех известных UEFITool NE форматов NVRAM.
Nuklear — это библиотека для создания immediate mode пользовательских интерфейсов. Библиотека не имеет никаких зависимостей (только C89! только хардкор!), но и не умеет создавать окна операционной системы или выполнять реальный рендеринг. Nuklear — встраиваемая библиотека, которая предоставляет удобные интерфейсы для отрисовки средствами реализованного приложения. Есть примеры на WinAPI, X11, SDL, Allegro, GLFW, OpenGL, DirectX. Родителем концепции была библиотека ImGUI.
Чем прекрасна именно Nuklear? Она имеет небольшой размер (порядка 15 тысяч строк кода), полностью содержится в одном заголовочном файле, создавалась с упором на портативность и простоту использования. Лицензия Public Domain.