Бортовой журнал Иллюмиума
Декларативное разграничение доступа на основе ролей и привилегий на Haskell
kayo — Пт, 29/08/2014 - 16:03
Моё мнемоническое мышление чуть было не разбилось вдребезги, столкнувшись с литературой по Haskell, написанной, как водится, математиками для математиков. Погрузившись в облако висящих в воздухе абстракций, я тщетно пытался выскрести из них хоть какую-то практическую пользу. Но всё это время меня не покидало ощущение, что причина тщетности моих попыток вовсе не в сложности системы функционального программирования как таковой и не в сложности конкретной реализации её в Haskell, а в том, что я пытаюсь читать книги на языке, которым я не владею в достаточной для понимания мере. Абстрактный язык теории категорий встал между мной и Haskell. Я несколько раз бросал вдумчивое чтение, и несколько раз возвращался к нему снова, пока всё не бросил и не взялся за изучение кода. Конкретные примеры выглядели куда понятнее голой теории и постепенно понимание стало приходить. Изящность дизайна этого языка развернулась передо мной, и я «достиг просветления» ©®™.
Сверлим печатные платы на RepRap Prusa Mendel
kayo — Пнд, 25/08/2014 - 22:31
Собрал я как-то себе 3D-принтер Prusa Mendel из проекта RepRap. Надо сказать, полезная в хозяйстве вещь, напрограммил нужные детальки в OpenSCAD, прогнал в слайсере, включил, напечатал. Платформа Mendel разработана весьма добротно за свою цену и может делать намного больше, нужно только поставить соответствующую оснастку. В прототипировании всякой электроники самый неприятный момент связан с производством печатных плат. Есть, конечно, спецы сборки сложных прототипов на макетках, но я не один из них.
Простой вывод звука для микроконтроллерных устройств
kayo — Ср, 11/06/2014 - 11:17
Нередко бывает необходимо или просто удобно как-то озвучивать немые устройства, делая их более дружественными к человекам. Однако сия задача сопряжена с рядом трудностей. Во-первых, для вывода звука нужен некий выходной аналоговый интерфейс, но далеко не все контроллеры имеют на борту ЦАП (DAC). Во-вторых, сформированный аналоговый сигнал необходимо как-то усиливать, чтобы подать на динамическую головку с низким сопротивлением 4, 8, или 16 Ом.
Моделируем оптику в… FreeCAD
kayo — Сб, 12/04/2014 - 20:37
Давно приглядываюсь к FreeCAD, но каждый раз при попытке серьёзно использовать этот пакет, натыкаюсь на разного рода недостатки и ограничения. Благо проект ещё довольно молод, и рано или поздно будет доведён до промышленного уровня. А пока будем продолжать говнокодить механику в OpenSCAD… или нет? Уже сейчас в FreeCAD есть весьма полезный инструментарий, который не имеет аналогов в лице других FOSS решений.
Как устроена программная начинка 3D принтеров и других CNC машин
kayo — Чт, 30/01/2014 - 14:24
В своё время появление устройств с ЧПУ (CNC) было очередным закономерным шагом качественного развития индустрии в сторону повышения производительности труда. Это стало возможным благодаря достижениям цифровой микроэлектроники. В настоящее время наблюдается интересная тенденция: устройства с ЧПУ становятся всё доступнее рядовому пользователю. Потребность была всегда, однако возможности имели серьёзные ограничения.
Исследуем работу стека нитей в ChibiOS
kayo — Сб, 25/01/2014 - 13:12
Операционные системы реального времени (RTOS) существенно облегчают разработку качественной программной начинки для микроконтроллеров. Делается это введением некоторых абстракций, таких как нити (потоки исполнения) и примитивы синхронизации (семафоры, мютексы, события, сообщения), потоки ввода/вывода, устройства слоя абстракции аппаратуры (HAL) и другие.
Не очень коротко про udev
kayo — Вс, 15/12/2013 - 00:44
Есть такая замудрёная штука в этих наших linux-ах, как udev. Это сервис, который подхватывает и конфигурирует периферию, получая уведомления от ядра. Он гибко настраивается под оборудование и задачи с помощью специальных правил. Стандартные системные правила обычно лежат в директории /lib/udev/rules.d, а наших инвалидов мы можем смело сохранять в /etc/udev/rules.d.
«Печенье с малиновым джемом» или чаепитие с Raspberry Pi
kayo — Втр, 30/04/2013 - 01:23
Raspberry Pi — весьма забавное устройство, с которым можно делать много интересного, прикладывая минимум усилий. У нас в распоряжении вполне зрелое для своего уровня железо со всевозможными интерфейсами (чип armv6t BCM2835), что вкупе с «родной» операционной системой Raspbian (порт Debian на официально не поддерживаемый ABI используемого процессора) делает устройство весьма привлекательным для реализации самых странных хотелок искушенного разработчика. Наибольший интерес представляют низкоуровневые интерфейсы, используемые в индустрии мобильных и встраиваемых систем: I2C, SPI, UART, а также несколько портов GPIO, которые можно использовать по своему усмотрению без всяких ограничений, как для простых операций состоянием сигналов, так и для эмуляции других интерфейсов, не поддерживаемых аппаратно используемым MCU.
Реализация удобной модели наследования на JavaScript
kayo — Сб, 02/02/2013 - 12:42
Чтобы хоть как-то оживить обстановку на борту нашего дирижабля, решил написать таки эту небольшую статью про свою реализацию модели наследования на JavaScript.
Учим GSM модем ZTE «звонить и принимать звонки»
kayo — Сб, 01/12/2012 - 19:26
Завалялся у меня GSM-модем ZTE MF180 что-то из ряда самых дешевых. И вот наконец пришло его время, решил использовать это чудо китайской модемной промышленности для связи с удалённым объектом, вокруг которого никакой иной сетевой инфраструктуры нет и не предвидится в ближайшие 50 лет.
