Обновить
32
0.1
енотя@lapot2

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

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

Как устроены переменные в Python: глубокое погружение в память и типы данных

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели9.3K

В мире Python существует много мифов о том, как работают переменные. Одни говорят, что "всё передаётся по ссылке", другие утверждают обратное. Правда, как обычно, лежит где-то посередине и гораздо интереснее простых объяснений. В этой статье мы детально разберём механизмы работы с памятью в Python 3.13, изучим различия между mutable и immutable объектами, и поймём, когда Python создаёт новые объекты, а когда переиспользует существующие. Дабы статье пожить подольше - рассмотрю только версию 3.13.

Жми, если не Гей

Векторное управление BLDC. Модель в Ansys Twin Builder

Время на прочтение4 мин
Охват и читатели1.7K

Вместе со студентами направления "Мехатроника и робототехника" сделал математическую модель системы векторного управления синхронным двигателем с постоянными магнитами СДПМ. Симуляция осуществляется в среде Ansys Twin Builder. Выбор в пользу данного программного продукта был сделан в связи с возможностью использования в качестве модели двигателя не только модели с сосредоточенными параметрами (как в этом проекте), но и моделей с распределенными параметрами, расчет которых ведется методом конечных элементов. В любом случае, среда симуляции - это всего лишь инструмент и результат получился бы идентичным и в Simulink и на Python и в других средах - математика везде одинаковая.

Читать далее

Задача о пересечении интервалов (или зачем программисту MК стабильная сортировка)

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

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

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

В этой заметка я представил свой алгоритм определения пересечений интервалов и его разбор.

Читать далее

SOSAL: От теории к практике

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели90K

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

Читать далее

SOSAL: Современный социальный подход к программированию

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели40K

В мире программирования существуют различные идеологии написания кода, которые отвечают за коммуникации (Unix-way), гибкость (Agile), чистоту и читаемость кода (DRY, KISS).

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

Читать далее

Интеграция в проект LVGL графической библиотеки для микроконтроллеров

Время на прочтение4 мин
Охват и читатели52K
LVGL — Light and Versatile Graphics Library также известная как LittleVGL.


Библиотека поддерживает большое количество микроконтроллеров, таких как STM32, ESP32 и другие. Мне пока удалось запустить полноценную демо программу на ESP32 и STM32f429 Discovery. Библиотека открытая, поддерживает большое количество графических элементов с Dark and Light темами. Распространяется под MIT license. Можно свободно использовать даже в коммерческих продуктах. Можно посмотреть интерактивное Online Demo без установки на устройство

Основные команды GIT

Уровень сложностиПростой
Время на прочтение23 мин
Охват и читатели28K

Научись использовать Git как профессионал. Эта статья поможет тебе освоить самые популярные команды Git на реальных примерах. Узнай, как добавлять изменения, создавать коммиты, переключаться между ветками, объединять изменения и синхронизировать проект с удалённым репозиторием.

ОГОГО, что там далее!? ...

Как написать свою ОС: руководства на Rust и C

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели6.3K

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

К слову, Rust набирает обороты: первое место в категории любимых языков программирования по версии Stack Overflow.

Читать далее

Модуль Bluetooth HC-04 на чипе BC417143B компании CSR

Время на прочтение12 мин
Охват и читатели168K
Компания CSR (Cambridge Silicon Radio) выпускает специальные чипы для устройств BlueTooth. Чипы судя по всему довольно недорогие, потому что господа китайцы предлагают миниатюрные (размером несколько больше симкарты) платки Bluetooth HC-04 на основе чипа BC417143B (семейство BlueCore4, см. [1]), которые в России можно купить всего лишь за 6.6 доллара (через dealextreme.com, см. [2] и [3]).

image

По умолчанию в память FLASH платки HC-04 записано ПО, которое позволяет связать по радио Bluetooth любой наладонник (или телефон, ноутбук и т. п.) со встраиваемой системой на основе микроконтроллера (робот, плата Arduino, любое устройство на микроконтроллере, имеющее TTL-порт UART RS-232). С помощью пакета CSR CASIRA BLUELAB SDK (в котором есть рабочие примеры программ Bluetooth) можно самому перепрограммировать модуль HC-04 и создавать свои собственные устройства Bluetooth. Программатор и полноценный аппаратный отладчик для модуля можно легко сделать самому, подключается к компьютеру он через порт LPT (см. [4]). В предлагаемой статье краткое описание инструментария разработки для чипов семейства BlueCore компании CSR, которое можно использовать для быстрого начала написания своих программ для модуля HC-04.
Читать дальше →

Earcut на битах

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели1.7K

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

Ампутировать

Реверс-инжиниринг китайской камеры

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели3.8K

Около полутора лет назад я решил начать свое путешествие в область реверс-инжиниринга IoT-устройств. Сегодня я хотел бы рассказать о своем опыте и результатах исследования уязвимостей в китайской IP-камере Tenda CP3.

Что я подразумеваю под реверс-инжинирингом IoT-устройств?

Читать далее

Краткий обзор TinyML

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

TinyML сам по себе означает внедрение ml в маломощные микроконтроллеры и встроенные системы. Это устройствам IoT выполнять задачи обработки данных и машинного обучения непосредственно на самом устройстве, минимизируя таким образом необходимость в постоянном подключении к интернету или внешним вычислительным ресурсам. Основная цель TinyML - сделать ии или простые модельки доступным для самых маленьких устройств

Читать далее

Absolute Zero Reasoner: ИИ научился программированию без входных данных — и это может поменять всё

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

Возможно я был недостаточно внимателен, но мне попалось на Хабре буквально одно, очень краткое упоминание крайне интересного исследования от команды из Университета Цинхуа и партнерских институтов нескольких стран: Absolute Zero Reasoner (AZR) — новую систему машинного обучения, которая развивает принципы self-play и способна обучаться без каких-либо внешних данных. В отличие от традиционных подходов, требующих тысячи размеченных примеров, AZR использует принцип самообучения через создание и решение собственных задач программирования. Система играет две роли одновременно: составителя задач (Proposer) и решателя (Solver), используя исполнитель кода как объективного судью для получения обратной связи. AZR продемонстрировал state-of-the-art результаты в программировании и математических рассуждениях, превзошедший модели, обученные на десятках тысяч человеческих примеров, при этом показав впечатляющий кросс-доменный перенос знаний между различными областями знаний.

Читать далее

«Ты узнаешь ее из тысячи...» или классифицируем изображения с веб-камеры в реальном времени с помощью PyTorch

Время на прочтение21 мин
Охват и читатели49K
Вот бывает же в жизни такое. Сидишь себе не шалишь, никого не трогаешь, починяешь примус, а тут из этого примуса, из телевизора, да и вообще из каждого утюга, до тебя доносится: «нейронные сети, глубокое обучение, искусственный интеллект, цифровая экономика…».

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

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

Вам интересно сможет ли наш классификатор отличить Arduino-совместимые контроллеры от малины? Тогда милости прошу под кат.


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

PyTorch — ваш новый фреймворк глубокого обучения

Время на прочтение22 мин
Охват и читатели253K

Gotta Torch?


PyTorch — современная библиотека глубокого обучения, развивающаяся под крылом Facebook. Она не похожа на другие популярные библиотеки, такие как Caffe, Theano и TensorFlow. Она позволяет исследователям воплощать в жизнь свои самые смелые фантазии, а инженерам с лёгкостью эти фантазии имплементировать.


Данная статья представляет собой лаконичное введение в PyTorch и предназначена для быстрого ознакомления с библиотекой и формирования понимания её основных особенностей и её местоположения среди остальных библиотек глубокого обучения.

Fire walk with me

Краткий свод концепций Tensor Flow

Уровень сложностиСредний
Время на прочтение21 мин
Охват и читатели9.2K

TensorFlow — один из самых мощных и популярных фреймворков для машинного обучения, разработанный компанией Google Brain в 2015 году. 

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

Поэтому мы подготовили гайд с основными концептами этого незаменимого для ML-инженера фреймворка.

Читать далее

Запускаем Yolo на пятирублёвой монете или Luckfox Pico Mini

Уровень сложностиСредний
Время на прочтение29 мин
Охват и читатели20K

В данной статье речь пойдет про использование очень маленькой Luckfox Pico Mini. Я расскажу про особенности платы, её настройку, а также о том как запускать на ней нейронные сети для детекции объектов с камеры.

Мне удалось добиться скорости детекции в 15 FPS (или даже 50!), результат, который по силам далеко не каждому одноплатнику.

Читать далее

Дискретное преобразование Фурье в живых картинках для девятиклассников

Уровень сложностиСредний
Время на прочтение19 мин
Охват и читатели21K

Мало что настолько меня угнетает, как невозможность что‑либо понять так, чтобы потом объяснить это самому себе:) И хоть я уже давно не девятиклассник, этот период запомнился мне внезапным переходом от заучивания материала «чтобы не схватить парашу» к некоторой степени осознания «а как оно там устроено и почему именно так». Сложнее всего было с математикой и я постоянно изобретал для себя «объяснялки». Этот навык, к счастью, прижился и стал привычкой.

В виртуальную лабораторию!

Почему в английском СТОЛЬКО слов, и как носители с этим справляются

Время на прочтение4 мин
Охват и читатели11K

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

1. В 1066-м году Вильгельм Завоеватель захватил британские земли и получилась такая ситуация: всё начальство – французы, говорят на французском; местные – на своих языках. Французов ассимилировали, связь с Францией у них фактически оборвалась. Но английский впитал в себя огромную часть французского языка. Эти слова стали литературными синонимами, их до сих пор используют в образованных кругах + в школах и вузах французский учат как иностранный – это тоже не даёт французским словам устаревать.

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

3. США, Канада, Австралия и Великобритания – уже очень давно самостоятельные цивилизации, к тому же удалённые друг от друга географически.

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

В СССР проводилась сознательная политика унификации речи. Абсолютно одинаковая школьная программа по всей стране, одни учебники. Одинаковый язык всех СМИ – от местной газеты до центрального радио и телевидения. Одни и те же фильмы, их мало, все пересмотрены по сто раз и растасканы на цитаты. До 30-40-х местные диалекты ещё абсолютно господствовали в деревнях, а потом подросло первое советское поколение. На самом деле, у нас до сих пор почти в каждом поселении есть старики, которые эти диалекты помнят, просто говорить на них уже не с кем.

Читать далее

RISC-V против x86 и ARM: когда открытая архитектура становится новым железным стандартом

Время на прочтение9 мин
Охват и читатели7K

Современные процессоры - как сверхдержавы: у каждой архитектуры есть своя сфера влияния, которую они не готовы уступать никому другому. x86 давно закрепился на серверах и рабочих станциях, а ARM занял все мобильные и IoT-территории. Время от времени они сталкиваются на территориях друг друга, но глобально расклад сил не меняется вот уже многие годы. Всё так бы и оставалось, если бы на сцену не вышел RISC-V, который незаметно перерос из разряда хобби для гиков в настоящую альтернативу существующим архитектурам.

Читать далее

Информация

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