LINUX.ORG.RU

Сообщения yoghurt

 

Обработка изображений на AWK

AWK внезапно оказался неплохим языком для обработки изображений — весь код уложился где-то в 180 строчек, можно посмотреть здесь.

Реализован алгоритм определения границ Дж. Кэнни, который, как известно, состоит из нескольких этапов. Каждый этап был вынесен в отдельный скрипт awk, и затем всё вместе собрано пайпами. Получаем труЪ потоковую обработку — эдакий OpenCL «за 40 лет до».

На скриншоте в терминале показан сам конвеер и как с ним справляются разные реализации awk. Моя в конкурсе пока не участвует - сыровата ещё :-) Собственно, для сравнения всё и задумывалось (бенчмаркаться на простых текстах поднадоело).

В остальном — дефолт, дебиан, гном3, ещё и вейленд, как выяснилось.

>>> Просмотр (1366x768, 671 Kb)

 

yoghurt ()

PharoVX

Есть такой стандарт - OpenVX, который определяет набор аппаратно-ускоренных функций компьютерного зрения, и теперь вот у моего любимого Smalltalk есть к нему биндинг.

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

Написано в основном во время пребывания на конференции ESUG 2015, вот как-то так.

Страничка проекта

>>> Просмотр (1366x768, 565 Kb)

 , ,

yoghurt ()

Дела давно минувших дней

Май 2011-го. Собираю NetBSD-current (вроде бы) на своём первом ноутбуке для работы над проектом GSoC'11. После неудачного обновления, или чего-то в этом роде, ноут стал сильно греться на компиляциях, и в самые интересные моменты просто выключался.

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

Да, это была моя единственная машинка на AMD. Приказала долго жить в сентябре того же года, уже во второй раз, и, судя по всему, навсегда. Так и не донёс до ремонта.

Всё происходило на кухне, поэтому в качестве костылей и подпорок (куда ж без них) используются прихватки и банка из-под кофе.

>>> Просмотр (2048x1363, 1364 Kb)

 

yoghurt ()

Emacs + Smalltalk

Где-то в 2010м году, во время очередного витка бурных всплесков интереса к Лиспу на ЛОРе, я решил ознакомиться-таки с этим зверем, установил SLIME, начал читать Practical Common Lisp. Хоть к тому времени я уже был знаком с т.н. инкрементальной разработкой, SLIME поразил моё сознание. Это было так чертовски удобно! И примерно в то же время я задумался, что неплохо было бы иметь нечто подобное для моего любимого Smalltalk.

Конечно, каждая современная реализация Smalltalk предоставляет свои собственные инструменты для разработки - браузеры классов, редакторы, инспекторы, рабочие пространства есть и у Pharo, и в GNU Smalltalk, и в VisualWorks. Хоть они и выполняют одни и те же задачи, они разные. И, да, самое главное - они не Emacs!

Так я и решил сделать своё некое подобие SLIME, учитывая классический подход к разработке на Smalltalk - браузер классов с пометодным редактированием. Естественно, для работы этой вещи нужен был сервер на стороне образа, который по запросам отдает браузеру нужную информацию/применяет присланные правки/выполняет команды/и т.д. Сейчас такой сервер доступен для GNU Smalltalk и Pharo.

На скриншоте можно увидеть, что в итоге получилось. Браузер классов занимает левую часть экрана, он подключен к образу GNU Smalltalk, запущенному на соседнем нетбуке. Списки в верхней половине браузера образуют иерархию: пространства имен, классы, категории методов и сами методы. В нижней половине браузера - область редактирования кода соответсвующего метода (или объявления класса).

В правой части экрана расположены Workspace (аналог REPL, для выполнения произвольного кода и просмотра результатов исполнения) и Transcript (заменяет стандартный вывод). В примере на скриншоте код в Workspace был выполнен однажды, потом в классы ClientConnection и ShampooServer были добавлены методы печати объектов (один из них открыт в браузере), и потом код был выполнен повторно. Разница в выводе и отображена в Transcript.

У проекта так же есть своя страничка, код на гитхабе, все желающие могут присоединиться.

В остальном - всё тот же FVWM, Emacs 23.4.1, NetBSD/amd64 (current).

>>> Просмотр (1680x1050, 70 Kb)

 , , ,

yoghurt ()

Отладка ядра NetBSD

Не смог заставить работать сокеты в моём любимом GNU Smalltalk на NetBSD, начал копать и обнаружил багу в ядре :)

Сижу как обычно в Emacs & FVWM. Пробовал разные мордочки к gdb, но они все поголовно кривые (включая емаксовую), так и юзаю старый добрый CLI.

>>> Просмотр (1280x800, 56 Kb)

 , , , ,

yoghurt ()

Pharo & AIDA/Web

Не спалось, решил немного поиграться с AIDA/Web.

Для тех, кто в танке - AIDA/Web - это свободный веб-фреймворк для языка Smalltalk, а Pharo - свободная кроссплатформенная реализация этого языка.

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

Дизайнер из меня нулевой, поэтому всё выглядит так, как выглядит =)

Чтобы разбавить экран снизу, вытащил на него окно Сонаты - в ней виднеется альбом. наиболее впечатливший меня из всего недавно прослушанного

Собственно, всё

>>> Просмотр (1024x1536, 280 Kb)

 , , , , ,

yoghurt ()

Домашний FVWM

Впервые поставил себе FVWM где-то в январе - и во время сессии развлекал себя чтением чужих конфигов и написанием своего.

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

Верхняя панелька сделана через FvwmButtons - я видел что то подобное в Awesome и мне понравилась сама идея - [пейджер|таксбар|чтонибудьеще]

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

Подсознательно чувствуя мощь данного WM и осознавая, что мне так и не удалось задействовать наибольшее количество его возможностей, я сделал rm -r .fvwm - и сейчас сижу в полностью дефолтном - в надежде когда нибудь написать идеальный конфиг =)

JPG вроде ничего не испортил, но вот только логотип Debian пострадал, поэтому ссылка на PNG - http://img195.imageshack.us/img195/4905/screenshot5o.png

Ругайте

>>> Просмотр (1024x768, 411 Kb)

yoghurt ()

Ion 3 on laptop

Ion 3, Emacs, Unplugged in New York

Допиливаю одну свою маленькую ненужную сетевую тулзу. На что то другое с иона переходить не хочу =)

>>> Просмотр (1280x800, 346 Kb)

yoghurt ()

Linux на работе

Примерно так сегодня проходил акустический тест хардварного VoIP-телефона.

Debian Lenny, Ion3, Audacity, Wireshark, gnome-terminal, etc.

>>> Просмотр (1280x800, 128 Kb)

yoghurt ()

RSS подписка на новые темы