Pull to refresh
0
0
Alexey @Weron2

АСУТП

Send message

Рисуем рабочий процессор в Paint и запускаем на нём ОС | Ритуал по призыву демона Тьюринга

Level of difficultyEasy
Reading time28 min
Views15K


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

Термос этот он нашёл на улице и хотел перепрошить его маленький и беззащитный Cortex-M0+.
Человек бредил. Раз в пару минут его глаза загорались и он издавал душераздирающий крик: «Если что-то существует, то на этом можно запустить Doom!».

Но действительно ли это так? И что вообще значит «запустить»?

Почему нельзя просто вывести изображение логотипа или распиновать VGA для вывода изображения на дисплей абсолютно любого устройства?
Ведь все так и делают)


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

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

Ну а если вы всё ещё здесь — добро пожаловать под кат.
Читать дальше →
Total votes 78: ↑76 and ↓2+103
Comments16

16-битная операционная система на коленках

Level of difficultyMedium
Reading time15 min
Views19K

В мире компьютерных наук мало что может сравниться с созданием собственной операционной системы. В этой статье мы погрузимся в увлекательный мир разработки операционных систем, создав 16-битную ОС с помощью языка ассемблера NASM под архитектуру процессоров Intel x86-64. Мы рассмотрим каждый этап разработки, начиная с основ и заканчивая реализацией ключевых компонентов.

Заменит Windows?
Total votes 47: ↑47 and ↓0+54
Comments34

Разбираемся с Bluetooth Low Energy на примере превращения USB-клавиатуры в беспроводную

Level of difficultyMedium
Reading time16 min
Views17K


Меня давно интересовало, как работают беспроводные клавиатуры, но как-то не сильно вдавался в подробности, пока не возникла идея превратить свою механическую клавиатуру в беспроводную. Честно говоря, не думал, что узнаю так много нового и интересного.

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

Не имея навыков пайки, вы сможете создать полезное Bluetooth-устройство, а ваше понимание Bluetooth и Linux уже не будет прежним, если вы, конечно, не являетесь экспертом в этих областях.

Данная статья ставит целью на примере разработки собственной Bluetooth-клавиатуры помочь разобраться в базовых понятиях Bluetooth, так как чтение скучных спецификаций и статей с введением в технологию даёт мало пользы.
Читать дальше →
Total votes 55: ↑53 and ↓2+72
Comments76

Публикация локального сервера из дома в интернет

Level of difficultyEasy
Reading time10 min
Views48K

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

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

Мы рассмотрим здесь несколько сценариев - статический белый айпи, динамический белый айпи, и серый. Для серого рассмотрим варианты с готовыми сервисами, с помощью Keenetic и с помощью ssh туннеля. Погнали!

Читать далее
Total votes 57: ↑55 and ↓2+62
Comments97

Собираем автономную игру на C# в 2 килобайтах

Level of difficultyMedium
Reading time11 min
Views21K

Моё детство пришлось на эпоху 1,44-мегабайтных дискет и 56-килобитных модемов, поэтому я всегда любил маленькие программы. Раньше можно было записать на дискету кучу мелких игр и таскать её с собой. Если программа не помещалась на дискету, я задумывался, почему — в ней много графики? Есть музыка? Возможно, она выполняет много сложных операций? Или она просто раздута?

В наши дни дисковое пространство стало настолько дешёвым, что люди отказались от оптимизации по размеру.

Размер важен только при передаче: если вы передаёте программу по проводам, мегабайты равны секундам. По быстрому соединению на 100 Мбит в лучшем случае можно передать 12 МБ в секунду. Если на другом конце провода находится человек, ожидающий завершения скачивания, то разница между пятью и одной секундой может существенно повлиять на его ощущения.

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

Люди обычно воспринимают всё, что длится меньше 0,1 секунды, как мгновенное, 3 секунды — это примерно тот предел, после которого прерывается состояние потока пользователя; а уж 10 секунд удержать внимание пользователя очень сложно.

Хотя уменьшение сегодня уже необязательно, оно всё равно лучше.

Эта статья задумывалась как эксперимент, позволяющий выяснить, каким может быть минимальный размер полезного автономного исполняемого файла C#. Могут ли приложения на C# достичь размеров, при которых пользователи будут ощущать их скачивание как мгновенное? Позволит ли это использовать C# там, где он не используется сейчас?
Читать дальше →
Total votes 98: ↑97 and ↓1+126
Comments34

Пример исследовательского реверс-инжиниринга приложения Zone Launcher

Level of difficultyMedium
Reading time6 min
Views7.6K

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

Читать далее
Total votes 27: ↑27 and ↓0+27
Comments12

Fooocus v2 — бесплатный Midjourney у вас на компьютере. Подробная инструкция по установке и использованию нейросети

Level of difficultyEasy
Reading time10 min
Views260K

Друзья, всем привет! Сегодня я хочу рассказать вам про самую простую и доступную для понимания нейросеть, которая создает изображения по вашему текстовому описанию. Она называется Fooocus и основана на знаменитой Stable Diffusion XL. Это идеальное решение в качестве вашей первой нейросети, и необходимый инструмент для любого дизайнера или контент мейкера.

Внутри много тяжелых изображений.

Читать далее
Total votes 90: ↑87 and ↓3+114
Comments216

Делаем HMI-панель из планшета для системы автоматизации на контроллере Wiren Board

Level of difficultyEasy
Reading time10 min
Views21K

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

В комплекте с контроллером Wiren Board идёт программное обеспечение, которое позволяет закрыть большинство задач построения и эксплуатации системы автоматизации: графические и текстовые панели, архив данных с графиками, драйверы для устройств, скрипты wb-rules.

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

Читать далее
Total votes 29: ↑29 and ↓0+29
Comments14

Удивительная лампочка из Ашана

Level of difficultyEasy
Reading time2 min
Views46K
На прошлой неделе я протестировал 23 модели светодиодных ламп Ашан и среди них обнаружилась одна, «не такая, как все», причём отличается она в лучшую сторону.


Читать дальше →
Total votes 100: ↑100 and ↓0+100
Comments45

Гугл таблица как БД для телеграм бота

Level of difficultyEasy
Reading time6 min
Views23K

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

Читать далее
Total votes 7: ↑7 and ↓0+7
Comments12

Пишем микро-shellcode в формате ELF вручную

Level of difficultyMedium
Reading time9 min
Views3.5K

На Хабре уже не раз публиковались статьи про устройство формата ELF и написание файлов в таком формате вручную, но я не считаю лишним опубликовать и свой вариант решения задачи написания ELF-файла вручную. В результате получился файл, вызывающий /bin/sh и занимающий всего 76 байт (что на 8 байт меньше, чем сумма длин необходимых для запуска заголовков ELF).

Читать далее
Total votes 20: ↑20 and ↓0+20
Comments4

Движок для игры от первого лица в 265 строках Javascript

Level of difficultyHard
Reading time6 min
Views26K
image

Сегодня окунёмся в мир, который можно потрогать. В этой статье мы исследуем, как с нуля, быстро и без особо сложной математики написать движок для игры от первого лица. Для этого мы воспользуемся приёмом под названием «бросание лучей» (raycasting). Возможно, вы видели примеры такой техники в играх Daggerfall и Duke Nukem 3D, а из более свежего – в статьях из «ludum dare» от Нотча Перссона. Что ж, для Нотча это неплохо, но не для меня! Вот демка (управление стрелками и тачпадом) [источник].
Читать дальше →
Total votes 61: ↑60 and ↓1+76
Comments36

Реверс инжиниринг для самых маленьких на практике

Reading time11 min
Views39K

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

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

Читать далее
Total votes 47: ↑47 and ↓0+47
Comments19

Разбираем bluetooth протокол RGB лампы

Level of difficultyEasy
Reading time8 min
Views8.5K

В данной статье рассмотрим опыт реверс-инжиниринга bluetooth протокола, при помощи которого android приложение управляет цветами и эффектами работы закатной лампы. В результате будет написан небольшой генератор шфированных AES'ом сообщений на C#.

Читать далее
Total votes 62: ↑62 and ↓0+62
Comments8

Javascript: базовые вопросы и понятия для самых маленьких

Level of difficultyEasy
Reading time15 min
Views49K

Javascript ― язык весьма оригинальный. Его можно любить, ненавидеть и даже бояться, но равнодушным он вас вряд ли оставит. Не знать или не понимать, с чем ты работаешь ― самая частая ошибка, допускаемая современными фронтенд‑разработчиками. Вам бы понравилось, если бы дантист, к которому вы пришли, не понимал, какой он инструмент использует и какие у него особенности работы? Очевидно, что нет. И рано или поздно, если вы действительно хотите стать профессионалами, вы разберётесь во всём, но как сделать так, чтоб это случилось раньше?

В этой статье в блоге ЛАНИТ хотелось бы показать, что о сложных вещах можно и нужно говорить просто.

Читать далее
Total votes 94: ↑93 and ↓1+115
Comments43

TVGuardian. Задача: заменить ругательства в реальном времени

Reading time12 min
Views7.5K

«Он похож на зануду?» Реплика также может быть оценена, будто Уоллеса сравнивают с клячей, старой лошадью. Видеоролик Джерри Ноулза

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

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

Даже сегодня умные колонки не транскрибируют речь пользователя, а отсылают её в облако. Очевидно, что четверь века назад точное машинное распознавание речи было в лучшем случае мечтой. Принцип работы приставки куда проще, но также он поражает остроумием и скромностью задействованных ресурсов: вся логика занимает меньше 4 КиБ.
Читать дальше →
Total votes 35: ↑34 and ↓1+47
Comments26

SQLite-песочница в браузере

Reading time4 min
Views27K

Чего мне всегда не хватало, так это аналога JSFiddle для SQLite. Онлайн-песочницы, в которой можно быстро проверить SQL-запрос и поделиться с другими.

Вот чего хотелось:

— Возможность загрузить готовую базу, а не писать SQL для создания таблиц.
— Подключать как локальные базы, так и удаленные (по url).
— Сохранять базу и запросы в облаке.
— Бесплатно и без регистрации.
— Свежайшая версия SQLite.
— Минимализм.

В итоге сделал сам
Total votes 70: ↑70 and ↓0+70
Comments9

Умный дом на минималках

Reading time10 min
Views19K

В последнее время я всё чаще задумывался на тему реализации простых сценариев умного дома. Хотелось сделать просто, без голосового управления, минимальными вложениями для начала. Мои мечты почти разбились о суровую реальность протоколов взаимодействия умных устройств. И, о чудо, я сумел сформулировать запрос для себя правильно, Google помог мне найти «умную розетку с открытым HTTP API».

Что получилось из связки: умная розетка, китайский планшет на Android 11, роутер - можно прочитать под катом.

Читать далее
Total votes 11: ↑9 and ↓2+12
Comments29

Абсолютно бесплатный VPN с бесплатного VPS

Reading time3 min
Views172K

Думаю про VPN слышали все, и многим приходилось им пользоваться. При этом использование готового VPN, которым руководит какой - то неизвестный человек, не является хорошей идей. Тем более в России на данный момент пытаются блокировать, как сами VPN провайдеры (Windscribe, Proton и другие известные сервисы), так и сами протоколы.

Читать далее
Total votes 86: ↑82 and ↓4+88
Comments112

Как хостить телеграм-бота (и другие скрипты на Python) на Repl.it бесплатно 24/7

Reading time3 min
Views133K

Очень часто возникающий вопрос: где можно разместить скрипты на Python, Flask-приложение, телеграм или дискорд ботов?

Один из вариантов — на своем компьютере при наличии внешнего IP-адреса и опыта в настройке проброса портов на роутере.

Цель этот статьи - подробная инструкция, как сделать хостинг Python-скриптов бесплатно и доступным 24/7 на примере телеграм-бота

Читать далее
Total votes 18: ↑17 and ↓1+17
Comments45

Information

Rating
Does not participate
Registered
Activity