Как стать автором
Обновить
2
0
Алексей Жуковский @megazhuk

Предприниматель. Инженер.

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

Linux на esp32s3

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

Вопрос о том, можно ли загрузить линукс на микроконтроллерах Espressif я
впервые услышал в 2015, в период бума esp8266. Тогда мой ответ на него
был: "нет, не это ядро и не на этом железе". Но прошло 8 лет и ответ
изменился на "да, и у меня есть рабочий пример". Дальше рассказ о том,
как это произошло.

Читать далее
Всего голосов 150: ↑149 и ↓1+148
Комментарии21

Адаптация языковой модели vosk

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

Приветствую, Хабр. В данной статье хочу рассмотреть процесс добавления слов в языковую модель vosk'а (vosk - библиотека для распознавания речи, в основе которой kaldi).

Читать далее
Всего голосов 11: ↑11 и ↓0+11
Комментарии11

Математика самонаводящихся ракет из аниме

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

Я создал прототип ракетной атаки! Для этого понадобилась хитрая математика, о которой будет рассказано в этой статье.

Мы поговорим о кубических кривых Безье, шуме Перлина и rotation minimizing frames.
Читать дальше →
Всего голосов 77: ↑76 и ↓1+75
Комментарии11

Зарубежный опыт: как избавиться от 80% кода, увеличить скорость разработки и уменьшить количество ошибок

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

Мы продолжаем знакомить читателей нашего блога с интересными международными публикациями. Ранее мы перевели материал с практическими советами по обучению для ИТ-специалистов, сегодня же коснемся темы абстракций – популярного и эффективного средства разработки.

Под катом тех– и тимлид Йонас Тулструп, один из разработчиков датского сервиса MobilePay, демонстрирует, что отказ от излишних абстракций позволяет писать более чистый код. А именно: существенно уменьшать его сложность, повышать читабельность и удобство поддержки. Обсуждаемые подходы основаны на широко известных принципах KISS («Делай проще») и YAGNI («Вам это не понадобится»), и применимы к большинству видов разработки ПО.

Обращаем ваше внимание, что позиция автора не всегда может совпадать с мнением МойОфис.

Читать далее
Всего голосов 27: ↑23 и ↓4+19
Комментарии6

Где покупать радиодетали и компоненты? Часть I: Россия

Время на прочтение4 мин
Количество просмотров165K
Давайте поговорим о покупке электронных компонентов в интернете. Я собрал список интересных отечественных и зарубежных магазинов:

а) которые заточены под любителей DIY и делают свои собственные крутые продукты: конструкторы, модули, обучающие курсы и т.д.;

б) для профи, с широкой номенклатурой электронных компонентов.

Продолжение: Часть II: зарубежные магазины

Кадр из к/ф «Иван Васильевич меняет профессию»
Продолжение
Всего голосов 130: ↑120 и ↓10+110
Комментарии158

Где покупать радиодетали? Часть II: зарубежные магазины

Время на прочтение5 мин
Количество просмотров86K
Продолжение поста про интернет-магазины электронных компонентов, инструментов и прочих ардуин.


Читать дальше →
Всего голосов 76: ↑75 и ↓1+74
Комментарии63

Рекомендательные системы: идеи, подходы, задачи

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


Многие привыкли ставить оценку фильму на КиноПоиске или imdb после просмотра, а разделы «С этим товаром также покупали» и «Популярные товары» есть в любом интернет- магазине. Но существуют и менее привычные виды рекомендаций. В этой статье я расскажу о том, какие задачи решают рекомендательные системы, куда бежать и что гуглить.
Читать дальше →
Всего голосов 34: ↑33 и ↓1+32
Комментарии7

Введение в глубокое обучение с использованием TensorFlow

Время на прочтение3 мин
Количество просмотров18K
Полный курс на русском языке можно найти по этой ссылке.
Оригинальный курс на английском доступен по этой ссылке.


Всего голосов 25: ↑20 и ↓5+15
Комментарии2

50 оттенков Go: ловушки, подводные камни и распространённые ошибки новичков

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


Go — простой и забавный язык. Но в нём, как и в любых других языках, есть свои подводные камни. И во многих из них сам Go не виноват. Одни — это естественное следствие прихода программистов из других языков, другие возникают из-за ложных представлений и нехватки подробностей. Если вы найдёте время и почитаете официальные спецификации, вики, почтовые рассылки, публикации в блогах и исходный код, то многие из подводных камней станут для вас очевидны. Но далеко не каждый так начинает, и это нормально. Если вы новичок в Go, статья поможет сэкономить немало часов, которые вы бы потратили на отладку кода. Мы будем рассматривать версии Go 1.5 и ниже.
Читать дальше →
Всего голосов 80: ↑76 и ↓4+72
Комментарии270

12 неписаных правил в дизайне

Время на прочтение6 мин
Количество просмотров24K
От теории сеток до Золотого сечения есть набор основных принципов, которые передаются дизайнерами из поколения в поколение. Эти правила знает каждый хороший дизайнер, их описывают в книгах, рассказывают на курсах и в высших учебных заведениях. Но на равне с писанными, у дизайнеров есть еще неписаные правила. И к сожалению, многие из нас узнает об этом лишь из собственного горького опыта. Но вовсе не обязательно учиться на своих ошибках, тем более, когда есть чужие.

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



1. Узнайте, что на самом деле хочет ваш клиент


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

Читать дальше →
Всего голосов 41: ↑17 и ↓24-7
Комментарии6

Как превратить лендинг в прибыль?

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


Один из рычагов создания эффективной рекламной кампании — Ваш лендинг. После нажатия пользователем на рекламное объявление в дело вступает целевая страница, основная задача которой — конвертировать заинтересованную аудиторию в покупателей Вашего товара. Финансовая выгода напрямую зависит от коэффициента конверсии на странице. Но в чем заключаются типичные ошибки маркетологов? Сегодня попробуем в этом разобраться.
Читать дальше →
Всего голосов 15: ↑6 и ↓9-3
Комментарии3

Количество и качество: как развиваются таск-трекеры в условиях конкуренции

Время на прочтение11 мин
Количество просмотров47K
История знает не один десяток таск-менеджеров, которые стремятся захватить умы и завоевать сердца пользователей. Однако у последних есть достаточно аргументов «за» и «против», чтобы мотивировать разработчиков подобных сервисов на дальнейшие подвиги. Более того, кому-то не хватает существующих таск-менеджеров, и как известно, спрос рождает предложение.

Особенности этой ниши таковы, что бесплатные таск-менеджеры вполне могут конкурировать с платными продуктами, крупные корпорации – с небольшими командами энтузиастов.

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

Корпорация Microsoft запускает новый сервис — Planner. Он станет непосредственным конкурентом популярного таск-менеджера Trello. Сравнивая внешний вид и принцип работы двух сервисов, можно найти много общего.
Читать дальше →
Всего голосов 16: ↑12 и ↓4+8
Комментарии18

Драйверы умного или виртуального железа

Время на прочтение5 мин
Количество просмотров11K
Первая статья про драйверы была уж совсем вводной, и мне подумалось, что её нельзя не дополнить рассказом про то, как устроены драйверы более современных устройств.

Для начала введём определение bus master: устройство, способное быть не только ведомым, но и ведущим на шине компьютера. То есть — не только отвечать на транзакции ввода-вывода, инициированные процессором, но и самостоятельно их инициировать — по собственной инициативе «ходить» в память.

История таких устройств уходит корнями в понятие DMA: ещё во времена прародителя микропроцессоров, микропроцессора 8080 (КР5080ИК80), появилось понимание, что процессор хорошо бы разгрузить от рутинной операции перетаскивания байтиков между устройствами в-в и памятью.
Читать дальше →
Всего голосов 15: ↑14 и ↓1+13
Комментарии6

Анатомия драйвера

Время на прочтение5 мин
Количество просмотров26K
Опять вернёмся в традиционную область разработки операционных систем (и приложений для микроконтроллеров) — написание драйверов.

Я попробую выделить некоторые общие правила и каноны в этой области. Как всегда — на примере Фантома.

Драйвер — функциональная компонента ОС, ответственная за отношения с определённым подмножеством аппаратуры компьютера.

С лёгкой руки того же Юникса драйвера делятся на блочные и байт-ориентированные. В былые времена классическими примерами были драйвер диска (операции — записать и прочитать сектор диска) и драйвер дисплея (прочитать и записать символ).

В современной реальности, конечно, всё сложнее. Драйвер — типичный инстанс-объект класса, и классов этих до фига и больше. В принципе, интерфейс драйверов пытаются как-то ужать в прокрустово ложе модели read/write, но это самообман. У драйвера сетевой карты есть метод «прочитать MAC-адрес карты» (который, конечно, можно реализовать через properties), а у драйвера USB — целая пачка USB-специфичных операций. Ещё веселее у графических драйверов — какой-нибудь bitblt( startx, starty, destx, desty, xsize, ysize, operation ) — обычное дело.

Цикл жизни драйвера, в целом, может быть описан так:

  • Инициализация: драйвер получает ресурсы (но не доступ к своей аппаратуре)
  • Поиск аппаратуры: драйвер получает от ядра или находит сам свои аппаратные ресурсы
  • Активация — драйвер начинает работу
  • Появление/пропадание устройств, если это уместно. См. тот же USB.
  • Засыпание/просыпание аппаратуры, если это уместно. В контроллерах часто неиспользуемая аппаратура выключается для экономии.
  • Деактивация драйвера — обслуживание запросов прекращается
  • Выгрузка драйвера — освобождаются все ресурсы ядра, драйвер не существует.


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

Мне известны три модели построения драйвера:

  • Поллинг
  • Прерывания
  • Нити (threads)

Читать дальше →
Всего голосов 27: ↑27 и ↓0+27
Комментарии13

Шум Перлина (Perlin Noise)

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

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

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

Для создания функции шума Перлина, вам нужны две вещи, функции шума и функция интерполяции.
Читать дальше →
Всего голосов 67: ↑52 и ↓15+37
Комментарии22

Census Analyzer 1.0: новый инструмент для анализа данных

Время на прочтение3 мин
Количество просмотров16K
Привет, Хабр!

Мы в компании JetBrains только что выпустили Census Analyzer — новое веб-приложение для визуализации и анализа данных. Попробуйте его и расскажите нам, что вы думаете!

Census Analyzer является прототипом, “preview”-версией, призванной познакомить пользователей с принципами работы более глобального продукта по анализу данных, который пока в разработке. Но уже сейчас с помощью Census Analyzer вы можете в облаке анализировать данные Бюро переписи населения США (US Census Bureau), работать с графиками и сводными таблицами, составлять графические отчеты, публиковать их и делиться ими в сети.

Давайте посмотрим, чем интересен Census Analyzer.

image
Читать дальше →
Всего голосов 28: ↑23 и ↓5+18
Комментарии34

Рекламные сети 3.0: как разработчику перестать раздражать пользователей и при этом заработать больше

Время на прочтение12 мин
Количество просмотров36K
image
Широкий выбор мобильной рекламы: от мешающей до ужасающей. Во всяком случае до 2016 года.
Читать дальше →
Всего голосов 36: ↑30 и ↓6+24
Комментарии16

Способы отладки ПО микроконтроллеров в электроприводе

Время на прочтение14 мин
Количество просмотров51K
image

Как отлаживают программы микроконтроллеров? Берется JTAG, осциллограф – пара дней/недель и программа отлажена. Таким будет типичный ответ, и в большинстве случаев он будет правильным… Но не всегда. Микроконтроллеры решают очень разные задачи, и в этой статье мы рассмотрим, что делать, если нужно разработать громоздкое ПО низкоуровневого управления каким-либо силовым электрооборудованием, например, преобразователями частоты для электродвигателей, DC/DC преобразователями заряда АКБ для поезда, корректорами мощности, сервоприводами и т.п. Оборудованием, где протекают килоамперы и ШИМят киловольты, где на счету каждая коммутация IGBT ключей инвертора, где время реакции микроконтроллера на нештатную ситуацию измеряется в микросекундах, а само оборудование в герметичных корпусах устанавливается и эксплуатируется где-нибудь на заводах Якутии. Если вы хотите узнать, какие особенности это накладывает на способы отладки – добро пожаловать под кат.
Читать дальше →
Всего голосов 34: ↑33 и ↓1+32
Комментарии50

Взгляд изнутри: 13 LED-ламп и бутылка рома. Часть 2

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


Привет, мои маленькие любители гик-харкора!

В первой части обзора светодиодных ламп мы остановились на спектральных характеристиках, настоящие две части – ибо материала накопилось предостаточно – будут посвящены внутреннему убранству ламп и некоторым их интересным конструкционным особенностям.
Скандалы, интриги и расследования под катом
Всего голосов 16: ↑16 и ↓0+16
Комментарии30

Взгляд изнутри: 13 LED-ламп и бутылка рома. Часть 1

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


Спустя 3.5 года после публикации статьи о вскрытии светодиодных ламп мы продолжим заниматься распиливанием LED-ламп и подглядыванием за их внутренним миром. Предполагается несколько частей данного исследования, а пока начнём со спектральных характеристик.
Много подробностей и трафика под катом
Всего голосов 16: ↑16 и ↓0+16
Комментарии31
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность