31 дек. 2010 г.

За прошедший год в блоге произошло много всего...
Менялось многое - от тем оформления, до общей направленности статей блога. Был пройден путь от статей о различных странных штуках с линуксом, до постов "железячной" и оружейной направленности.
Поздравляю всех читателей моего блога с Новым Годом! И помните:
Как встретишь Новый Год, так его и проведешь!

25 дек. 2010 г.

Разрабатываем ядро для компонентов исполнительного уровня "умного дома"

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

22 дек. 2010 г.

Делаем раскрашенный исходный код для блога при помощи Vim'а

Как я уже писал, я вынужденно попрощался с SyntaxHighlighter'ом и перешел на свое решение для раскраски исходного кода в блоге, которое основано на Vim'е.

Изменения в блоге

За прошедший месяц в блоге произошли некоторые изменения.
Во-первых, подсветка исходного кода при помощи JavaScript'ового SyntaxHighlighter'а отслужила свое. Хостинг, на котором были файлы, необходимые для работы скрипта, лег под ддос атакой. Как следствие, блог от этого ну ооочень долго грузился, пытаясь достучаться до нужных ему js-файлов.
Я решил, что подобное решение ненадежно и лучше всего раскрашивать исходные тексты непосредственно при помощи самого HTML или еще чего-нибудь подобного, не требующего каких-то дополнительных файлов или скриптов.
Решение было найдено, сейчас все исходные коды раскрашенные при помощи SourceHiglighter'а перекрашены при помощи этого решения. Естественно оно на базе vim'а. О том, как я это сделал, я расскажу в одном из ближайших постов.
Выглядит все это примерно вот так:
#include <stdio.h>

int main(int argc, char * argv[]) {
    printf("Hello world\n");

    return 0;
}

Ну а во-вторых, я прикрутил к блогу систему комментирования DISQUS, по наводке отсюда. Теперь есть древовидные комментарии, подписка по e-mail на сообщение и тому подобное. Все старые комментарии сохранились и были без проблем импортированы в DISQUS.

8 дек. 2010 г.

Техническое задание на создание системы "Умный дом"

Наконец, я закончил написание техзадания... Предлагаю посмотреть его; разумная критика, замечания и предложения приветствуются.
При написании техзадания использовались следующие ГОСТы:
  • ГОСТ-34.602-89 - "Техническое задание на создание автоматизированной системы"
  • ГОСТ 34.201-89 - "Виды, комплектность и обозначение документов при создании автоматизированных систем"
  • ГОСТ 24.601-86 - "Стадии создания автоматизированных систем"
Внимание! Оформление техзадания не соответствует ГОСТу.

Посмотреть PDF-файл с техзаданием (TR.pdf, 204 Кб)
Скачать исходный LaTeX-файл с техзаданием (TR.tex, 45 Кб)

1 дек. 2010 г.

Использование сенсорных сетей при построении систем "умный дом".

При создании системы "умный дом" рано или поздно придется решать проблему обеспечения устойчивой, надежной и главное недорогой связи между всеми устройствами, входящими в "умный дом". Конечно, можно использовать "по старинке" проводную связь, но даже в случае какого-нибудь 1-Wire, объем прокладываемых проводов может быть значительным. А если какой-нибудь из проводов будет перебит, порван или прокушен домашним животным, то смерть если не всей системы, то хотя бы какой-то ее части будет гарантирована (а если все дублировать, то дом будет напоминать логово паука).
Решение данной проблемы лежит на поверхности - нужно использовать беспроводную связь! Но тут сразу появляется ряд вопросов, требующих разрешения...

23 нояб. 2010 г.

Плагин code_complete для Vim'a - автодополнение и сниппеты

Практически во всех современных средах разработки есть пара удобных возможностей - есть возможность видеть список параметров функции, введя имя этой функции и открывающую скобку, и автодополнение стандартных блоков кода, наподобие if () {} else {} и других.
Естественно, подобная функциональность не могла обойти стороной и текстовый редактор Vim (который, стоит отметить, являет собой нечто большее, чем просто текстовый редактор). Сниппеты и автодополнение параметров функций можно найти во множестве плагинов, лежащих на vim.org.
В своей статье, я хочу рассмотреть один плагин, в котором уже реализованы и сниппеты и автодополнение. Плагин называется code_complete (new update).

21 нояб. 2010 г.

Пишем драйвер ЖКИ для стенда SDK1.1

В стенде SDK1.1 есть жидкокристаллический индикатор (ЖКИ), который можно использовать в качестве устройства вывода информации в своих программах. Вот только производитель не поставляет драйверов к SDK1.1 для этого устройства - нужно самим разбираться во внутреннем устройстве ЖКИ и самим писать для него драйвер.
Я уже успел сделать это и в данной статье будет рассмотрен мой драйвер ЖКИ, а также основные принципы работы с ЖКИ, знание которых позволит заинтересованным людям написать свой драйвер.
В статье не будет рассматриваться программная генерация символов - для вывода информации на экран я буду использовать только те символы, что уже "зашиты" в ПЗУ ЖКИ.

18 нояб. 2010 г.

Shell в отдельном буфере vim'а

Лично мне, кажется весьма удобной возможность работать в консоли (например в том же bash'е) не отвлекаясь от любимого vim'а. Можно одновременно коммитить код или изменять структуру каталогов проекта или делать прочие подобные вещи не выходя из vim'а и не отвлекаясь на другие окна.
Раньше (пару лет назад), я искал плагин, который позволил бы открывать отдельный буфер с каким-нибудь shell'ом, но натыкался на предложения перекомпилировать vim, предварительно применив к его исходникам набор патчей. Естественно, меня не устраивало подобное положение вещей - мне хотелось простого плагина, а не плясок с бубном.
Оказывается, выход есть! Подобный плагин существует и называется Conque Shell.

31 окт. 2010 г.

Литературное программирование в Vim

Недавно, я наткнулся на описание и действующий пример концепции программирования, которая называется литературным или грамотным программированием (literate programming).
Согласно этой концепции программист больше не вынужден мучительно писать код и комментарии к нему. Достаточно написать подробную статью о своей программе, наподобие той, что на IBM developerWorks. После, при помощи специальной утилиты можно получить как готовый файл со статьей, так и исходный код.

2 окт. 2010 г.

Отчет о конференции Russian OpenSource Hardware

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

26 сент. 2010 г.

Boker Magnum 01MB277

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

10 сент. 2010 г.

26 авг. 2010 г.

Завершено портирование TNKernel на SDK2.0 (основан на чипе LPC2292)

За основу был взят уже имеющийся порт на LPC2106. А учитывая то, что TNKernel изначально разрабатывалась для процессоров архитектуры ARM, работа по портированию была не особо затруднительной.
Вот список изменений:

19 авг. 2010 г.

Пишем Hello-world для микроконтроллера архитектуры ARM7.

В этом посте я опишу как написать и скомпилировать Hello-world для микроконтроллера, входящего в состав SDK2.0 - LPC2292 от NXP Semiconductors. Естественно "Hello world!" будет аппаратный - мы подадим высокий уровень напряжения на одну из ног микроконтроллера.
Мое описание не будет изобиловать сложными техническими подробностями - за ними лучше всего обратиться к полезным ссылкам в конце статьи. Пост подойдет для людей, которые хотят просто взять и написать свою первую программу для ARM7 и, в дальнейшем, радоваться этому событию.

29 июл. 2010 г.

Оптический прицел Gamo MD 4x12-44 AO

В качестве оптического прицела для моей винтовки был выбран Gamo MD 4x12-44 AO. Прицел приглянулся мне в первую очередь тем, что я ясно различал цель, несмотря на очки и -7 - -9 у "прицельного" глаза.

25 июл. 2010 г.

Обзор пневматической винтовки Norica Titan

Недавно я наконец-то обзавелся первой в своей жизни винтовкой, не считая игрушек в детстве :-). Изначально, роль первой винтовки была уготована Noric'e Dragon'у, но меня съела жаба - хотелось и винтовку и оптический прицел и все в пределах 10 тысяч. Поэтому был выбран Titan.
Пробегав пару дней по городу, я таки нашел эту винтовку в магазине "Охотничий домик" (ст. метро Академическая). И всего за 4800 рублей я стал счастливым обладателем своей винтовки.

19 июл. 2010 г.

osd-slider - ползунок состояния для tiling WM и box'ов.

В "больших" DE, таких как KDE или GNOME, при изменении уровня яркости или громкости рисуется красивый ползунок, отображающий текущий уровень изменяемой величины:
К сожалению, подобного ползунка, но для какого-нибудь легковесного WM, как правило не предусмотрено. Например, появление в dwm подобного ползунка противоречит всей философии этого оконного менеджера. Но выход все же есть:


1 июл. 2010 г.

Скрипт для расшаривания интернета с одного компьютера на другой

Суть работы скрипта:
Есть компьютер-шлюз, у которого две сетевые карты - одна смотрит в интернет, а вторая в "сеть", состоящую из двух компьютеров - хоста и шлюза. Задача - раздавать интернет с шлюза компьютеру-хосту.

28 июн. 2010 г.

Виджет, отображающий расписание студенческой группы (ИТМО) на текущий день

Иногда (особенно когда плохая память на незначительные мелочи :-) ) бывает полезно постоянно иметь перед глазами расписание своей группы в универе. Ради этого, я написал набор из пары скриптов и конфига к conky, которые выводят на рабочий стол расписание группы на текущий день.

23 июн. 2010 г.

Boker Magnum Knight

Не вытерпела душа найфомана^Wпоэта и зайдя в магазинчик "Ножи, Сувениры" (в IKEA, м. проспект Просвещения) я приобрел Magnum Knight (01 MB 380). Красивый и удобный, а главное черный :-), нож, к тому же с весьма демократичной ценой, впрочем как и все Boker Magnum'ы - сказывается китайское производство. К счастью, качество ножа не вызывает нареканий, но на ганзе пишут, что попадаются и бракованные образцы.
Как вы уже заметили, данная запись имеет метку "оружейная". Теперь, в этом блоге я буду писать не только о программировании и электронных железяках, но и о различных режущих и стреляющих штуках, до которых я доберусь.

27 мая 2010 г.

Собираем свой кросскомпилятор для ARM.

Для задачи портирования маленькой RT оси на SDK2.0, внутри которого какой-то ARM7, нужно собрать компилятор, который будет собирать исполняемые файлы под архитектуру ARM, работая при этом на машине с x86_64 процессором. К сожалению, в интернете практически отсутствуют руководства по сборке своего кросскомпилятора - в основном, рекомендуется использовать какие-то монстры наподобие Buildroot или crosstool-ng, которые помимо кросскомпилятора собирают еще кучу софта, мне ненужного.
Методом "научного тыка" я похоже набрел на последовательность действий, которая позволила мне наконец-то собрать для себя кросскомпилятор.

21 мая 2010 г.

Использование VIm, как IDE для языка C.

Несмотря на утверждение, что Vim это всего лишь текстовый редактор и использовать его как IDE глупо, я довольно продолжительное время успешно использую Vim как IDE для языка C. В этом мне помогает набор удобных плагинов и периодически улучшаемый мною .vimrc.
К сожалению, я не встречал в Интернете статей, посвященных превращению Vim в IDE для C. Поэтому я решил написать свою :-).

17 апр. 2010 г.

Принципиальная схема стенда SDK1.1

Как и было обещано, в этом посте я рассмотрю принципиальную схему стенда. Желающие ознакомиться с ней прямо сейчас могут найти схему здесь.
В подобных принципиальных схемах в принципе нет ничего сложного - достаточно знать схемотехнику на уровне регистров, триггеров и иметь базовую информацию о том, что такое ПЛИС. Ничего страшного...

13 апр. 2010 г.

Чемоданчик для разработок в области сенсорных сетей - CC2530ZDK

Буквально вчера, в мои когтистые лапы попал весьма интересный набор железок - СС2530 ZigBee Development Kit. Этот набор можно применять для разработки приложений, которые используют возможности сенсорных сетей.
Также, Texas Instruments предоставляет на бесплатной основе стек протоколов Z-Stack, который совместим с ZigBee и который используется в CC2530.
Вначале, я вкратце объясню что такое сенсорные сети, ZigBee и прочие непонятные вещи.

26 мар. 2010 г.

Об атеизме, вере и научном познании.

Те, кто надел шоры, должны помнить, что в комплект также входят узда и кнут
Станислав Ежи Лец


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

21 мар. 2010 г.

Архитектура стенда SDK1.1

Как и было обещано, в этой статье я опишу архитектуру стенда SDK1.1. Начну со структурного описания, затем приведу характеристики стенда и информацию по отдельным узлам SDK1.1. Также будет дано описание используемой модели памяти и регистров ПЛИС.

16 мар. 2010 г.

Введение в SDK1.1

Я решил начать цикл статей, посвященных стенду SDK-1.1. Думаю, мои записи помогут тем, кому необходимо освоить данный стенд.
Все статьи будут отмечаться тегом sdk, для быстрого доступа ко всем статьям цикла.

14 мар. 2010 г.

Скрипт для быстрой активации двухмониторной конфигурации

Нижеприведенный скрипт предлагает пользователю выбрать какую конфигурацию использовать если будет обнаружено, что к системе подключено два монитора; если же подключен только один монитор, то выводится предупреждающее сообщение и скрипт завершается. Скрипт предназначен для использования в составе acpid'а - он должен вызываться при нажатии на определенную Fn кнопку, в соответствии с правилами acpid'а.
Зависимости: bash, xrandr, Xdialog, xosd.

13 мар. 2010 г.

Hello world!

Это реинкарнация недавно почившего h0rr0rr-drag0n.spb.ru, вследствие смерти хостинга plox.tor.hu
Тематика данного блога ровно такая же - IT и размышления об окружающем.