Как стать автором
Обновить
4
0.1

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

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

Как я склеил картон и продал на маркетплейсах на 50 млн в год

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

В 2020-м мой работодатель начал прижимать меня по условиям, я забрал команду, снял склад и запустил свое производство когтеточек. Казалось бы, ничего сложного: закупаешь клей, картон, и находишь людей, которые 5 000 раз в день готовы повторять одни и ту же операцию. Но есть нюансы.

Читать далее
Всего голосов 290: ↑266 и ↓24+242
Комментарии288

Построение распределенной системы очередей сообщений с RabbitMQ и Python

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

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

RabbitMQ — это мощный и гибкий брокер сообщений, который широко используется для создания распределенных систем, поддерживающих обмен данных между различными компонентами приложения. Он был разработан с учетом принципов протокола Advanced Message Queuing Protocol (AMQP), что делает его стандартом в индустрии для обработки сообщений.

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

Производство корпусов «в силикон» на пальцах: поэтапно и с анимацией

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

Это вам не 3D-принтер гонять, тут все по-взрослому. Покажем производство корпусов по очень популярной технологии литья полиуретана в силиконовые формы — как это делается; и расскажем о рисках и ошибках. Зачем? Чтобы цена разработки и производства корпуса неожиданно не стала в несколько раз выше, чем вы планировали. 

Открываем дверь на производство с ноги
Всего голосов 73: ↑73 и ↓0+73
Комментарии26

Подключаем дисплей к любому одноплатнику с SPI: большой мануал о поиске экранчиков для ваших проектов

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

Сейчас появилось достаточно много различных дешевых одноплатников с очень достойными характеристиками, которые вполне можно назвать экономичными и портативными. Однако очень часто встает вопрос вывода изображения на дисплей: к сожалению, в подобные устройства обычно ставят урезанные версии чипсетов без видеовыхода на обычные матрицы. Конечно в них практически всегда есть HDMI, но это совершенно не выход для портативного устройства: прожорливый чип скалера будет очень негативно влиять на время работы от АКБ. Да и сами подобные дисплеи очень дорогие: почти 2.000 рублей за матрицу со скалером — это действительно бьет по карману. Сегодня я расскажу Вам о существующих протоколах для дисплеев, подскажу, как применить экранчики от старых навигаторов/мобильников и мы подключим с вами SPI-дисплей к одноплатнику без видеовыхода. Причем мы реализуем как просто библиотеку, которая позволяет выводить произвольную графику из ваших программ, так
и службу, которая будет напрямую копировать данные из фреймбуфера и преобразовывать в формат для нашего дисплея. Интересно? Тогда жду вас в статье!
Читать дальше →
Всего голосов 69: ↑69 и ↓0+69
Комментарии36

Настраиваем удобную сборку проектов в Visual Studio

Время на прочтение43 мин
Количество просмотров81K
Эта статья является руководством по настройке сборки C++ проектов Visual Studio. Частично она сводилась из материалов разрозненных статей на эту тему, частично является результатом реверс-инжениринга стандартных конфигурационных файлов Студии. Я написал ее в основном потому что полезность документации от самой Microsoft на эту тему стремится к нулю и мне хотелось иметь под рукой удобный референс к которому в дальнейшем можно будет обращаться и отсылать других разработчиков. Visual Studio имеет удобные и широкие возможности для настройки по-настоящему удобной работы со сложными проектами и мне досадно видеть что из-за отвратительной документации эти возможности очень редко сейчас используются.

В качестве примера попробуем сделать так чтобы в Студию можно было добавлять flatbuffer schema, а Студия автоматически вызывала flatc в тех случаях когда это нужно (и не вызывала — когда изменений не было) и позволяла задавать настройки напрямую через File Properties



Укрощаем MSBuild
Всего голосов 42: ↑39 и ↓3+36
Комментарии37

Исходники закрыты, но мы не сдадимся: Пишем полностью нативное GUI-приложение под No-Name смартфон без Android

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

Для многих разработчиков приложений далеко не секрет, что экосистема Android не предполагает написание полностью нативных приложений: в этой платформе очень многое завязано на Java и без ART можно запустить только простые службы без какого-либо интерфейса. Однако, есть один способ писать практически под «голый» Linux, не перекомпилируя ядро и при этом пользоваться самыми интересными фишками устройства без оверхеда в виде тяжелого Android: ускорение 3D-графики (OpenGLES), микшер звука, ввод с различных устройств, OTG, Wi-Fi и если очень постараться — даже 3G. Это открывает множество разных интересных применений старым устройствам: «железо» смартфонов зачастую гораздо мощнее современных недорогих одноплатников. Сегодня я покажу вам, как написать и запустить программу, которая полностью написанное на C без Android, на No-Name Android-смартфоне практически без модификаций. Интересно? Жду вас в статье!
Читать дальше →
Всего голосов 93: ↑92 и ↓1+91
Комментарии38

Сам себе игровая консоль: как я сделал свой «тетрис» с нуля. Что происходит, когда программист встречается с железом?

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

Я, как и многие мои читатели, очень люблю игры. Уже довольно обширное число моих статей было посвящено ремонту и моддингу самых разных игровых консолей — как китайских «нонеймов», так и брендовых PSP и PS Vita! Однако, меня тянет к железу не только желание отремонтировать и поставить в строй «устаревшие» девайсы, но и мания делать и созидать что-то своё! А ещё я очень люблю программировать игры и графику сам. Недавно я загорелся идеей разработать с нуля свой портативный «тетрис»: от схемы и разводки платы, до написания прошивки и игр под нее. Что получается, когда программист, который поставил электронику практически во главе своей жизни, пытается сделать свое устройство? Читайте в статье!
Читать дальше →
Всего голосов 48: ↑46 и ↓2+44
Комментарии84

Сайт на Тильде или на Wordpress: что лучше выбрать?

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

На чем лучше делать сайт на Tilda или WordPress? Чаще всего заказчик не понимает разницу между конструктором Tilda и CMS WordPress. Каждая платформа способна решить определенные задачи. В статье расскажу про плюсы и минусы платформ и как не попасть на х2 по стоимости разработки.

Читать далее
Всего голосов 14: ↑1 и ↓13-12
Комментарии10

Программы-клиенты для протоколов недетектируемого обхода блокировок сайтов: V2Ray/XRay, Clash, Sing-Box, и другие

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

В предыдущей статье “Современные технологии обхода блокировок: V2Ray, XRay, XTLS, Hysteria и все-все-все” я рассказывал про прокси-протоколы. Теперь настало время рассказать про клиенты: консольные, GUI для десктопа и для мобильных платформ. 

Надеюсь, что эта статья вам окажется полезной, потому что, как выяснилось, найти хороший клиент даже для тех же V2Ray/XRay в наше время не так-то просто. Потому что большая часть того, что находится при поиске в интернете “в лоб” и даже в списках типа Awesome V2Ray - или уже неподдерживаемое, или довольно кривое, или не умеющее в актуальные версии и фичи (например, XTLS и uTLS), а самые жемчужины прячутся где-нибудь в глубинах Github’а и сторов.

Читать далее
Всего голосов 58: ↑57 и ↓1+56
Комментарии52

Когда один TCP-порт может быть поделён

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

Вы замечали, как простые вопросы иногда приводят к сложным вопросам? Сегодня мы попытаемся подступиться к одному из таких вопросов. Категория — наша любимая: сетевые аспекты Linux.

Читать далее
Всего голосов 25: ↑21 и ↓4+17
Комментарии6

Как работает Wine

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


Wine — это свободное программное обеспечение для запуска Windows-приложений на нескольких POSIX-совместимых операционных системах, включая Linux, macOS и BSD.

Если вы любите Linux, то наверняка когда-то запускали Wine. Возможно, для какой-то «важной» программы Windows, у которой нет аналога под Линуксом, или поиграться. Забавный факт: даже Steam Deck от Valve запускает игры через оболочку на основе Wine (она называется Proton).

За последний год я намучился с отладчиком, который позволяет одновременно дебажить и Wine, и Windows-приложение в нём. Разобраться во кишочках Wine оказалось очень интересно! Я-то раньше много им пользовался, но никогда не понимал механику целиком. Можно взять файл Windows — и просто запустить его в Linux без каких-либо изменений. Если вы хотите знать, как это сделано, добро пожаловать под кат.
Читать дальше →
Всего голосов 232: ↑231 и ↓1+230
Комментарии48

Физика вращения 3д тел

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

Когда я раньше задумывался о вращении в 3д, мне было неуютно. Оно казалось сложным. Вспомнить, например, эффект Джанибекова с прецессией свободно вращающейся гайки. Настало время разобраться!

В статье Вас ждут математика, физика, а заодно численное моделирование и визуализация в libgdx.

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

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

Что нужно знать, чтобы вдохнуть жизнь в вашу визуализацию

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


Цвет одинаково важен в любом дизайне и визуализации данных. Он не только «задаёт тон», но и меняет восприятие. Цвет воздействует на уровне подпорогового внимания. Визуальные свойства этого уровня воспринимаются моментально и не требуют обдумывания. Они влияют на восприятие незаметно. Этот процесс бессознателен и обусловлен культурой и опытом. У разных людей восприятие различается. К счастью, есть руководства, помогающие внимательно относиться к цвету; я рекомендую посмотреть Color in Culture graph от Дэвида Маккэдлеса. Подробности — к старту нашего флагманского курса по Data Science.

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

О, дивный новый мир

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

Давайте поговорим о будущем мире под призмой самых назойливых проблем.

Проблема 1. Органические отходы и пресная вода

В среднем  человек потребляет 750 кг еды в год, На 7 млрд населения нехилый абсолютный урон экологии.

Пресной воды средний человек потребляет 100 куб метра в год. Объем озера Байкал 23 615,39 млрд кубометров, 7 млрд человек в год потребляют же 700 млрд кубометров.

700 против 23 615? Всего 33 года.

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

Проблема 2. Неуправляемые транспортные потоки, проблема с парковками  и заторы на дорогах.

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

Однако это борьба со следствием , а не с причиной. Так в чем же причина?

Читать далее
Всего голосов 42: ↑3 и ↓39-36
Комментарии86

Изготовление печатных плат ЛУТ'ом от А до Я

Время на прочтение8 мин
Количество просмотров126K
Доброго времени суток! Среди моих знакомых бытует мнение, что самостоятельно изготавливать печатные платы (ПП) бесполезно. Учитывая, что современные компоненты далеко ушли от DIP корпусов, то кустарно травить платы под них даже и не стоит пытаться. Тем не менее необходимость в быстрой оценке того или иного компонента всегда есть, и ждать несколько суток заказанной платы времени нет. И это учитывая, что заказ за «несколько суток» дорог, для одноразовой задачи.

В данной статье я хочу изложить порядок действий, которые позволят быстро изготавливать ПП под компоненты в корпусах подобных TQFP-100, то есть с ногами 0,2мм и таким же зазором, и при этом сводить брак к минимуму.

Конечно это способ изготовления плат только для прототипов, но он снижает риски ошибиться при создании конечного устройства.

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

Под катом подробности и трафик.
Подробности
Всего голосов 88: ↑86 и ↓2+84
Комментарии86

STM32 Modular USB Composite device

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

Проект является логическим продолжением другого проекта на Хабре - CDC+MSC USB Composite Device на STM32 HAL и рассказыват о том, как на STM32 создать проект с несколькими USB устройствами, с читаемой структурой и используя типовые модули. Конкретно в этом проекте рассмотрен пример комбинации HID + CDC UART + CDC, а также рассказано как этот проект возможно расширить другими интерфейсами.

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

Как пропатчить ОС 1996 года с помощью Ghidra

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

Не так давно автор материала работал над сложной головоломкой: как пропатчить операционную систему сэмплового синтезатора 1996 года Kurzweil K2500. О путешествии автора в старый код музыкального инструмента рассказываем к старту курса по разработке на C++.

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

Пишем эмулятор Game Boy на OCaml

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

Введение


Последние несколько месяцев я работал над проектом под названием CAMLBOY — эмулятором Game Boy, написанным на OCaml, который работает в браузере. Протестировать его можно на следующей странице демо:

Страница демо

Я добавил в демо несколько неофициальных ROM, поэтому в них можно поиграть (рекомендую Bouncing ball и Rocket Man Demo). Также можно поиграть в них в мобильном браузере, на современных смартфонах эмулятор работает с частотой 60 FPS.

Репозиторий


Репозиторий находится здесь:

https://github.com/linoscope/CAMLBOY
Читать дальше →
Всего голосов 17: ↑17 и ↓0+17
Комментарии1

Старый канон Звёздных войн: саморазрушение, как смысл существования

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

Страсти вокруг отмены Диснеем старого канона Звёздных войн не утихают до сих пор: кто-то отстаивает святость и непогрешимость Расширенной вселенной, кто-то наоборот считает, что Дисней всё сделал правильно, некоторые пытаются блюсти золотую середину, а я… А я сегодня расскажу вам почему отмена канона была неизбежна, при чём тут дедушка Лукас и почему лучшее враг хорошего. Присаживайтесь поудобнее и заваривайте каф.

Читать далее
Всего голосов 54: ↑49 и ↓5+44
Комментарии36

Моделирование звука гитарных нот с помощью алгоритма Карплуса-Стронга на python

Время на прочтение8 мин
Количество просмотров11K
Знакомьтесь, эталонная нота ля первой октавы (440 Гц):


Звучит больно, не правда ли? Что еще говорить о том, что одна и та же нота звучит по-разному на разных музыкальных инструментах. Почему же так? Все дело тут в наличии дополнительных гармоник, создающих уникальный тембр каждого инструмента.

Но нас интересует другой вопрос: как этот уникальный тембр смоделировать на компьютере?

Примечание
В этой статье не будет разбираться почему это работает. Будут лишь ответы на вопросы: что это и как это работает?

Всего голосов 41: ↑40 и ↓1+39
Комментарии7
1

Информация

В рейтинге
2 813-й
Зарегистрирован
Активность