Pull to refresh
9
0.3
Send message

К чему можно подключить MIPI DSI экран?

Level of difficultyMedium
Reading time6 min
Views5.3K


Как-то мне захотелось поэкспериментировать с MIPI DSI экранами. Встал вопрос: к чему их подключить? Позже я выбрал решение и спроектировал плату, о чём начал писать статью. Но есть и множество других вариантов. Решил вынести эти данные в отдельную часть.

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

Какие решения доступны? Как рассчитать скорость передачи данных?
Читать дальше →

Разгоняем Go TLS до 100 Gbps с сервера: опыт Kinescope

Reading time18 min
Views5.2K

Современные пользователи ожидают, что видео загрузится мгновенно, не зависнет на 47-й секунде и будет защищено от посторонних глаз. При этом большинство из них не догадывается, кто именно доставляет этот контент, и где начинается «магия» — а где инженерия.

Мы в Kinescope — те, кто эту магию делает. Видео, которое вы смотрите в интернете, вполне может идти через нашу инфраструктуру — пусть даже вы об этом не знаете. Под капотом у нас: высоконагруженные сервисы, сотни тысяч RPS, терабиты трафика и собственные технологии, написанные на Go.

О том, как мы проектируем и поддерживаем всё это, какие технические вызовы нам приходится решать, и почему HTTPS — это не просто галочка в чеклисте безопасности, — рассказываем в статье по мотивам доклада для GolangConf.

Привет, Хабр! Меня зовут Кирилл Шваков. В Kinescope мы разрабатываем B2B-решение для хранения, обработки, защиты и доставки видео через CDN. Среди наших клиентов — как небольшие стартапы, так и крупные компании. Помимо CDN, у нас, само собой, есть и собственный DNS. А главное, множество инфраструктурных самописных компонентов на Go, которые мы развиваем и поддерживаем внутри команды.

Читать далее

Самодельный SDR приемник на Zynq

Level of difficultyMedium
Reading time31 min
Views13K

В этой статье я расскажу о том, как я делал предельно дешевый КВ Web-SDR приемник на SoC Zynq.
Основа приемника - Б/У плата Antminer S9. Фактически этот проект является форком уже существующего приемника WEB-888, который, в свою очередь, является продолжением приемника KiwiSDR.

Читать далее

Обзорная экскурсия в мир сетевых контейнеров

Level of difficultyEasy
Reading time4 min
Views4.4K

Приветствую профессиональное сообщество. Здравствуй, Хабр! Это первая обзорная статья из серии, посвящённой ContainerLab.

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

Читать далее

Бесполезная статья. SimpleProtocol vs BinaryParameters

Level of difficultyMedium
Reading time7 min
Views1.3K

Я думаю, что многие, кто занимается разработкой в стеке Go + PgBouncer + PostgreSQL, уже примерно поняли, о чём будет статья — о проблеме выполнения prepared statements и сравнении работы двух популярных драйверов для PostgreSQL: lib/pq и jackc/pgx.

Если интересно — добро пожаловать под кат.

Читать далее

История развития языковых моделей: ч. 2, от ChatGPT до рассуждающего режима

Level of difficultyEasy
Reading time18 min
Views2.4K

Доброго времени суток, «Хабр»!

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

Пристегните токены — вход в зону трансформаций!

Читать далее

Триангуляция по косточкам

Level of difficultyMedium
Reading time5 min
Views9.4K

Всё началось невинно. Шёл 2009 год, и я просто хотел портировать Earcut на Flash - для своей мини-игры. Тогда это сработало, но с годами стало понятно: простые решения перестают работать, как только хочешь выжать из них максимум.

Триангулировать

Быстрое приближённое умножение и деление чисел с плавающей точкой

Level of difficultyHard
Reading time27 min
Views7K

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

Читать далее

Как бессерверные gpu делают AI доступным. Введение в платформу PrimeWay

Level of difficultyMedium
Reading time10 min
Views2.7K

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

Читать далее

Как сделать компьютерную память из ржавых гвоздей и нейросети — из медных проволок?

Level of difficultyMedium
Reading time13 min
Views10K
Картинка — Kaboompics, Flatart, Freepik

Сегодня мы поговорим о таком интересном классе электронных компонентов, который носит название «мемристоры» и позволяет даже строить на их основе нейросети.

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

В последнее время мы привыкли, что под понятием нейросетей подразумеваются определённые программные структуры. Однако мемристоры позволяют строить нейросети на физической основе! О_о

Аппаратные физические нейросети… Как вам такое? :-) Весьма близко к тому, что мы видим в природе, кстати говоря…
Читать дальше →

Zip-файлы: история, объяснение и реализация

Reading time76 min
Views105K


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

В статье очень подробно объясняется, как работают Zip-файлы и схема сжатия: LZ77-сжатие, алгоритм Хаффмана, алгоритм Deflate и прочее. Вы узнаете историю развития технологии и посмотрите довольно эффективные примеры реализации, написанные с нуля на С. Исходный код лежит тут: hwzip-1.0.zip.
Читать дальше →

Пишем игру на LUA для часов Xiaomi Redmi Watch 4.Часть 1. Знакомство с экосистемой Xiaomi

Level of difficultyEasy
Reading time7 min
Views3K

Всем привет, меня зовут Алексей Ляховский, я на протяжение последних 10 лет занимаюсь изучением, разработкой и развитием экосистемы часов Xiaomi для глобального сообщества.

Я разобрал формат циферблатов Xiaomi последних поколений, сделал распаковщик циферблатов, и компилятор их для оригинального старого редактора циферблатов Xiaomi, сделал мод MiFitness, где активные пользователи сообщества создают и публикуют кастом циферблаты для часов, собрал из китайского IDE отдельный автономный эмулятор часов, для проверки циферблатов и приложений, модифицирую и дорабатываю оригинальные прошивки часов, а так же создаю приложения для данных моделей на JerryScript и LUA, о чем мы познакомимся подробнее чуть позже на примере данной игры.

Читать далее

Kubernetes в изоляции: когда ваш кластер не должен знать о существовании интернета

Level of difficultyMedium
Reading time15 min
Views4.3K

Вы думаете, что развернуть Kubernetes без интернета — это просто kubeadm init плюс пара манифестов? Посмотрим, как скрипты решают проблемы, о которых вы даже не задумывались. Спойлер: здесь есть чему удивиться.

Всем пример, меня зовут Даниил Миронюк, DevOps в команде Polymatica EPM. Сегодняшняя статья для тех, кто считает, что оффлайн‑установка Kubernetes — это скучно.

Читать далее

Создание 3D модели местности по видео с дрона

Reading time3 min
Views9.9K

В данной статье речь пойдет про видеограмметрию-создание 3d моделей объектов на основе видео. Видеограмметрия появилась давно, но до сих пор используется редко из-за необходимости в более мощном "железе", чем при построении 3d моделей местности/объектов с помощью лидаров. В 2024 году производительность ПК настолько выросла, что теперь можно в течении разумного времени строить модели на домашних компьютерах и даже ноутбуках. Сначала покажу, какие модели получились у меня, затем поделюсь лайфхаками, которые помогут сразу строить модели обходя технические сложности, а в конце расскажу чем видеограмметрия может быть полезна.

Читать далее

Небольшие заметки про модель памяти на примере RISC-V

Level of difficultyHard
Reading time17 min
Views4.3K

Идея статьи родилась после прочтения многочисленных источников в интернете по барьерам и моделям памяти.Так же, был просмотрены соответствующие видео с разъяснением. Много где в целом всё достаточно хорошо разжевано. Статья не претендует на исчерпывающий материал. Скорее, это обзорное описание на тему модели памяти в связке с RISC-V. Не рассчитана на entry level, рекомендуется сперва почитать что нибудь вводное.

Навряд ли кому то необходимо детальное знание внутренней архитектуры процессора на уровне RTL (register-transfer level), как и глубокого понимания принципов модели памяти, согласованности. Да и обычно вся эта информация берется из соответствующей литературе от производителя, других книгах по оптимизации. Предполагаю, что авторы в том или ином виде могу знать более глубокие вещи, чем представлены в открытых источниках. Возможно, они работали в компании производителя (Intel, например), общение, конференции, сообщества.

Но может ли быть источник лучший, чем исходники CPU? Навряд ли. Вы не найдете в открытом доступе исходники процессоров Intel, AMD и любых других. ARM за это денежки получает, продавая права на архитектуру и готовые спроектированные блоки. А вот для RISC-V такой источник есть - исходники полноценного суперскалярного out-of-order процессора от Berkley.

Не так давно был разработан язык Chisel на замену Verilog и аналогов. Он на базе Scala. А, так как это Scala, мы можем использовать IDE и внятную навигацию по исходникам. Но в исходники просто так не пойдешь, сперва надо приобрести необходимые фундаментальные знания, чтобы понимать в целом что такое разработка на уровне RTL. Неплохо бы разобраться с Verilog и с базовыми понятиями - всякие там защелки, регистры, мультиплексоры и тп. Это я и решил сделать и начал с книги “Паттерсон, Хеннесси: Архитектура компьютера и проектирование компьютерных систем”. Она безумно крутая и очень понятная. Затем прочитал несколько книг по FPGA и Verilog и даже купил учебную FPGA плату, но руки до неё так и не дошли. Это позволило сформировать для себя какую то необходимую картину того, как функционирует CPU, как происходит проектирование микроконтроллеров. 

Читать далее

Способы создания пользовательских компонентов в QML

Level of difficultyMedium
Reading time24 min
Views1.9K

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

Также одним из условий будет, чтобы внешний вид полученных элементов можно было редактировать в QtCreator.

Все исходники в репозитории.

Читать далее

Пишем свой FDW для PostgreSQL

Level of difficultyEasy
Reading time10 min
Views4K

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

В этой статье быстро разберём, как устроен PostgreSQL – от хранения данных в Heap и работы с FSM/VM до создания своего FDW с компрессией на базе zlib.

Читать далее

Thousand Brains Project — ИИ-фреймворк для сенсомоторного интеллекта с открытым кодом. Часть 1: Введение

Level of difficultyMedium
Reading time16 min
Views1.2K

Последнее десятилетие искусственный интеллект развивался преимущественно за счет методов глубокого обучения. Но создание систем, работающих в сложном трехмерном пространстве (даже несмотря на некоторые успехи VLA-моделей), остается по-прежнему трудной задачей. В статье представлен альтернативный подход к созданию систем искусственного интеллекта, разработанный Джеффом Хокинсом и командой Numenta (с начала этого года — Thousand Brains Project). Описана ранняя версия сенсомоторного агента, способного изучать объекты в пространстве подобно тому, как это происходит в неокортексе. Ключевой особенностью его архитектуры является использование повторяющегося вычислительного (обучающегося) модуля, подобного кортикальной колонке мозга млекопитающих.

Читать далее

Компилятор GO. Добавляем цикл WHILE

Level of difficultyMedium
Reading time13 min
Views7.2K

На одной из конференций я наблюдал, как наши коллеги реализовывали тернарный оператор в Go с помощью комментариев. Доклад длился всего минут 10, и, честно говоря, я не смог уловить ничего внятного, кроме того, что ребята явно хорошо повеселились. Однако это вдохновило меня разобраться, как работает компилятор Go под капотом. А лучший способ разобраться — это попробовать написать что-то своё.

Самым простым и понятным для меня в этом плане показалась реализация цикла while. В этой статье я покажу, что у меня получилось выяснить. Вот примерный результат, к которому мы придём:

Читать далее

Квантовые точки и их получение

Level of difficultyMedium
Reading time11 min
Views10K
Картинка Kjpargeter, Freepik

Одно из интереснейших явлений — открытие «квантовых точек», и многие называют это существенной вехой, которая даёт начало целым направлениям в науке и технике.

Посмотрим поближе, что они представляют собой, и насколько реально их создать самому?
Читать дальше →
1
23 ...

Information

Rating
3,671-st
Registered
Activity