Pull to refresh
-20
0
Send message

Micro Pocket SSB приемник на базе ESP32 и SI4732. Что за девайс и для чего?

Reading time6 min
Views12K

Что-то, а китайцы впереди планеты всей по части удешевления техники. Я до сих помню тот шок, который испытал, приобретя свой первый USB-брелок RTL-SDR за 3 $. Чувствительностью и селективностью он не особо отличался. Тем не менее это был девайс, позволявший видеть, что происходит в эфире на соседних частотах. А еще он отлично работал с любыми антеннами.

Совсем недавно на многих маркетплейсах Поднебесной появился еще один любопытный приемник, который чем-то напомнил знаменитую Belka-DX. Я не смог удержаться и протестил его, тем более, что базируется он на чипе Si4732-A10. Сегодня опишу свой опыт работы с ним и расскажу, какие у него подводные камни.

Читать далее

Как malloc() и free() управляют памятью в C

Level of difficultyEasy
Reading time8 min
Views13K

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

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

Читать далее

Postgres как поисковый движок

Reading time12 min
Views7.9K

Поиск — это сложно. Важная часть многих приложений, которую нелегко реализовать правильно. Особенно в случае с RAG-пайплайнами, где на качество поиска завязан весь процесс.

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

Эрик Закариассон, разработчик и автор блога Anyblockers, рассмотрел в своей статье, как использовать Postgres для создания надёжной поисковой системы. В рамках задачи автор объединил три техники:

1. Полнотекстовый поиск с tsvector

2. Семантический поиск с pgvector

3. Нечёткое сопоставление с pg_trgm

4. Бонус: BM25

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

Читать далее

Устройство «музыкалки» AY-3-8910 и эмулятор на Arduino

Level of difficultyMedium
Reading time25 min
Views11K

Астрологи объявили месяц статей про ZX Spectrum, звук и Arduino. Количество публикаций увеличилось вдвое!

В прошлый раз я показывал, как можно перенести однобитные, они же «биперные», музыкальные «движки» с ZX Spectrum на Arduino. Но всё-таки это была максимально нишевая тема внутри нишевой темы, весьма узкоспециализированный проект.

Сегодня сделаю шаг ближе к народу. Расскажу, как работает легендарный звуковой чип AY-3-8910, как написать его простой эмулятор полностью с нуля, и как проиграть им музыкальный файл формата PT3 на обычной Arduino Nano.
Читать дальше →

Толкаем байты, или Простейший эмулятор своими руками

Level of difficultyEasy
Reading time11 min
Views11K

Есть хороший способ начать свой путь в системное программирование: написать эмулятор и ассемблер для какого-нибудь простого процессора. Сегодня популярностью в узких кругах пользуются fantasy consoles: виртуальные игровые приставки в ретродухе. Я расскажу, как создать свой вариант виртуальной приставки BytePusher с процессором, имеющим всего одну команду. Если вы интересуетесь системным программированием, любите изучать необычные архитектуры процессоров или цените произведения из области демосцены, то эта статья для вас.

Читать далее

Регулярные выражения простыми словами. Часть 2

Level of difficultyEasy
Reading time10 min
Views24K

Разработчики делятся на три типа: те, кто уже понимает регулярные выражения и порой решает сложные задачи одной строкой; те, кто все еще боится их и всячески избегает; и те, кто уже прочитал первую часть этой серии статей и полон оптимизма разобраться с этими магическими письменами. Эта статья специально для третьих, чтобы им было проще стать первыми.
Читать дальше →

Inertia 2.0: Новые возможности для разработчиков

Level of difficultyMedium
Reading time4 min
Views5.6K

На конференции Laracon Тэйлор Отвел, создатель популярного PHP-фреймворка Laravel, представил Inertia.js версии 2.0 — самое крупное обновление с момента запуска этого пакета. Новая версия приносит множество полезных функций, которые значительно упростят разработку приложений на Laravel и Inertia.js.

Читать далее

Бесплатный курс по созданию сайтов для детей: 7 уроков по HTML и CSS с нуля

Level of difficultyEasy
Reading time5 min
Views4.4K

Если ребенок интересуется веб‑разработкой, его увлечение нужно поддержать. В этом помогут обучающие ролики или курсы HTML, CSS и JavaScript. Направление перспективно: оно знакомит даже неопытных школьников с IT, а также приближает их к пониманию основ написания кода. Если появится желание, можно пройти дополнительное обучение и освоить создание сайтов и программирование на продвинутом уровне.

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

Планомерное знакомство с роликами и понимание содержания каждого из них поможет построить эффективный маршрут дополнительного IT‑образования для ребенка, увлекающегося веб‑разработкой. Уроки подойдут подросткам от 12 лет и старше.

Читать далее

Self-hosted удаленные рабочие окружения или как с помощью одного сервиса сократить время онбординга разработчиков на 90%

Level of difficultyEasy
Reading time6 min
Views6.5K

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

А рассказать я хочу про Coder – OpenSource инструмент для поднятия готовых разработческих окружений по запросу. То есть готовых сред, к которым можно подключиться по ssh или с помощью вашей любимой IDE, в которых уже установлены нужные утилиты, произведены нужные настройки, сконфигурирован проект и остается только писать код и запускать тестирование одной кнопкой.

Читать далее

Как получить радиолюбительский позывной в 2024 году

Level of difficultyEasy
Reading time7 min
Views34K

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

Читать далее

Как писать музыку на linux. Rosegarden без танцев с бубнами

Level of difficultyEasy
Reading time5 min
Views4.1K

Расскажу, как минимальными усилиями заставить пингвина играть ваши ноты. Да, эта статья не о записи звука, сведении, мастеринге, а о таком замечательном инструменте как rosegarden – midi-секвенсоре, нотном редакторе.

Ключ на стан

Создание пользовательского интерфейса на дисплее Guition с ESPHome и библиотекой LVGL

Level of difficultyMedium
Reading time4 min
Views7.5K

Недавно вышла обновленная версия ESPHome 2024.8.0, в которой появилась библиотека LVGL версии 8.4 для создания графических интерфейсов TFT-экранов. У меня был в наличии такой дисплей, и я решил воспользоваться новыми возможностями для создания интерфейса по управлению умным домом. Моя задача заключалась в том, чтобы наполнить недорогой дисплей необходимой функциональностью.

Читать далее

YRGB 2024 — конкурс по созданию игр для ZX Spectrum

Reading time6 min
Views5.8K

Жизнь отечественных геймеров в конце 80-х — начале 90-х годов была очень непростой. Из советских электронных развлечений были разве что клоны Pong вроде «Видеоспорта», карманные электронные игры типа «Ну, погоди!» (тоже клоны, но уже серии Game & Watch от Nintendo), несколько десятков советских компьютеров с довольно ограниченным набором софта да несколько сотен (!) клонов британского компьютера ZX Spectrum.

И сегодня я хочу рассказать вам о YRGB — международном конкурсе по разработке ретро‑игр, который Яндекс проводит с 2019 года. Участникам необходимо разработать самостоятельную игру, свободную от авторских прав, для платформ ZX Spectrum 48K/128K. Так что если вы когда‑нибудь делали игры или хотите попробовать, но опасаетесь масштаба современных платформ, этот пост для вас.

> START

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

Level of difficultyEasy
Reading time6 min
Views2.2K

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

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

А потом я заставляю себя шагнуть на сцену и говорю заученное “всем привет, меня зовут Олег Федоткин”. Примерно после этих слов я попадаю в поток и прихожу в себя только после фразы “спасибо за внимание, буду рад ответить на ваши вопросы”.

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

Но когда я предлагаю выступать своим сотрудникам или знакомым, в девяти из десяти случаев коллеги отказываются. Причин для отказа две:

Читать далее

Горутины в Go: Базовые примеры

Level of difficultyMedium
Reading time2 min
Views6.8K

Горутины — это функции или методы, выполняемые конкурентно с другими горутинами в одном и том же адресном пространстве. Они легковеснее традиционных потоков, занимают меньше памяти и позволяют эффективно использовать ядра процессора.

Читать далее

Наше расследование: Блогеры и все все все… Часть 2

Reading time7 min
Views29K

Прошлая наша статья, где мы задали несколько вопросов блогеру IMAXAI (он же Максим Горшенин) почему-то была им оставлена без должного внимания. Мы предположили, что Максима опять все обманули, и его лучшие друзья, которые "все разработали сами", на самом деле не такие уж и "все сами", а всего лишь в шелкографии китайской платы нарисовали свой бренд. Так как Максим почему-то не захотел во имя "импортозамещения" задать наши неудобные вопросы своим друзьям, то у нас появились теперь вопросы к самому Максиму. Является ли целью его деятельности действительное импортозамещение, или же просто из меркантильных целей, на волне хайпа и эпатажа, он продвигает тех кто с ним сотрудничает и топит других, кто отказался от его предложений? И что будет если те кого он так истово возносит на пьедестал импортозамещения окажутся обычными продвинутыми "переклейщиками шильдиков"? Интересно? Ну что же, сегодня мы поближе рассмотрим очередного друга блогера - компанию GS Group, чьей продукцией наш подопечный, кстати, приторговывает на своем сайте.

Читать далее

Всё, что вам нужно — это линейное внимание

Level of difficultyHard
Reading time9 min
Views11K

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

Говорят, что механизм внимания плохо переносит работу с последовательностями большой длины. Это — идея, которая встречалась любому, кто потратил достаточно много времени, занимаясь трансформерами и механизмом внутреннего внимания. Это, одновременно, и так, и не так. С одной стороны — с этим сталкивался каждый, кто пытался увеличить размеры контекста своей модели, натыкаясь при этом на то, что модель начинала работать с сильным скрипом. С другой стороны — возникает такое ощущение, что практически каждую неделю выходит новая эталонная модель, которая характеризуется новыми размерами контекста, бьющими все рекорды. (Контекстное окно Gemini составляет 2 миллиона токенов!)

Есть много хитроумных методов, вроде RingAttention, которые позволяют обучать модели с очень большими размерами контекста на мощных распределённых системах. Но сегодня меня интересует всего один простой вопрос: «Как далеко можно зайти, применяя лишь механизм линейного внимания?».

Читать далее

Как сделать дашборд в FineBI за 15 минут? Инструкция по созданию визуализаций

Reading time4 min
Views4.4K

FineBI – флагманская self-service платформа для бизнес-аналитики от китайского разработчика FanRuan, которая предлагает функциональность, удобство использования, широкие возможности масштабирования и легкую интеграцию с различными источниками данных.

Рассказываем, как создать простой дашборд в BI-платформе FineBI.

Читать далее

Яндекс выпустил DivKit. Я – Nui

Level of difficultyMedium
Reading time25 min
Views5K

Привет! Сегодня я поведаю вам историю создания супер-пупер движка для Server Driven UI во Flutter, являющегося составной частью супер-пупер CMS (именно так её создатель, то есть я, её позиционирует). У вас, конечно же, может быть другое мнение и я с удовольствием обсужу его в комментариях.

Эта статья - первая из двух в цикле. В ней мы рассмотрим непосредственно Nui, а в следующей - саму Nanc CMS.

В конце данной статьи вы не найдете никаких ссылок на Telegram-каналы, но будет много интересного про Server Driven UI, возможности Nui (Nanc Server Driven UI) историю проекта, шкурные интересы, Доктора Стренджа и даже немного го**а на вентиляторе.

Поехали!

Как создать аудиоплеер. Часть 1. Что под капотом

Level of difficultyMedium
Reading time6 min
Views7.9K

Всем привет! Меня зовут Дмитрий Булгаков, я Android-разработчик в HiFi-стриминге Звук, и я расскажу, как можно создать аудиоплеер в приложении. Поговорим об инструментах разработки и устройстве плеера —  разберем его «анатомию», компоненты и их применение, а также способы улучшения звука с помощью эквалайзера.

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

Поехали!

Читать далее

Information

Rating
4,222-nd
Registered
Activity

Specialization

Fullstack Developer, Embedded Software Engineer
From 150,000 ₽
JavaScript
TypeScript
HTML
CSS
Node.js
PHP
C
SQL
PostgreSQL
Linux