Программирование → Генерация списка IPv4 адресов на TCL и немного систем счисления
Не так давно потребовалось решать задачу массового обновления конфигурации устройств. Стандартная задача системного администрирования, если у вас в обслуживании больше одного устройства выполняющего однотипные функции. Для решения существуют как универсальные продукты, например из доступных redmine.nocproject.org, так и множество скриптов широко представленных на тематических форумах и порталах. Как раз на этот случай под рукой и должен был оказаться собственный написанный скрипт, но не оказался, поэтому учитывая что время для манёвров было, скрипт был написан заново, выполнен и положен на полочку, чтобы там в очередной раз затеряться.
Для написания был использован expect — expect.sourceforge.net, надстройка над TCL позволяющая обрабатывать и реагировать на ответы различных интерактивных консольных утилит, в частности, telnet. Учитывая что для TCL раньше писать не приходилось, код нуждался в повторном осмыслении. Ключевой момент скрипта это генератор списка IPv4 адресов для обработки, после внимательной оценки данный кусок программы удалось значительно, на мой взгляд, оптимизировать, по крайней мере сократить количество строк на треть и безболезненно добавить новый функционал. Причём все эти сокращения мало относились к специфики TCL, а касались принципиальных подходов к построению алгоритма в целом.
Я выделил этот код в отдельную утилиту, которую попытаюсь очень подробно разобрать далее по тексту — как было «до» и что стало «после», и почему не получилось написать сразу так как «после». Мне не всё в ней нравится до сих пор: смущают как алгоритмические проблемы так и проблемы TCL, например использование списков вместо массивов (что быстрее?, безопаснее?, идеологически вернее?), все сомнения тоже присутствуют в тексте, с надеждой на конструктивные комментарии.
Для написания был использован expect — expect.sourceforge.net, надстройка над TCL позволяющая обрабатывать и реагировать на ответы различных интерактивных консольных утилит, в частности, telnet. Учитывая что для TCL раньше писать не приходилось, код нуждался в повторном осмыслении. Ключевой момент скрипта это генератор списка IPv4 адресов для обработки, после внимательной оценки данный кусок программы удалось значительно, на мой взгляд, оптимизировать, по крайней мере сократить количество строк на треть и безболезненно добавить новый функционал. Причём все эти сокращения мало относились к специфики TCL, а касались принципиальных подходов к построению алгоритма в целом.
Я выделил этот код в отдельную утилиту, которую попытаюсь очень подробно разобрать далее по тексту — как было «до» и что стало «после», и почему не получилось написать сразу так как «после». Мне не всё в ней нравится до сих пор: смущают как алгоритмические проблемы так и проблемы TCL, например использование списков вместо массивов (что быстрее?, безопаснее?, идеологически вернее?), все сомнения тоже присутствуют в тексте, с надеждой на конструктивные комментарии.
Open source → UNIX-way и генератор заданий по архитектуре компьютерных сетей
Прошлой зимой на нашей любимой кафедре произошло одно замечательное событие — курс проектирования компьютерных сетей был переформирован, в результате чего вместо одного семестра практических занятий образовались два семестра занятий лабораторных. С одной стороны, оба изменения — и качественное, и количественное — означали, что студенты получат больше времени на освоение предмета, а также занятия будут индивидуальными, а не групповыми — думать, вполне вероятно, придётся всем, а не «ядру» группы в четыре-пять человек. С другой стороны, это означало, что придётся разрабатывать эти самые индивидуальные задания, да так, чтобы они были все отличались друг от друга.
Именно тогда-то и появилась мысль написать автоматический генератор заданий. Про генератор одного из заданий я и расскажу ниже.
Именно тогда-то и появилась мысль написать автоматический генератор заданий. Про генератор одного из заданий я и расскажу ниже.
Железо → О китайских телефонах замолвите слово
По долгу службы теперь я смогу быть в курсе событий последних произведений китайских инженеров. Знаю, что на такую тему последнее время присутствует стабильный постоянно повышающийся интерес, решил не держать в себе то, что может быть интересно и полезно другим. Сразу отмечу, что я отношусь к тем, кто считает — интерес к китайским телефонам растет заслуженно.
Ненормальное программирование → Реверси на TCL в 64 строки
На хабре уже есть топики про написание игры Реверси (Отелло) на Python, Silverlight.
Изобретем велосипед на Tcl/Tk. Кроссплатформенно (работает даже на Windows Mobile при небольшой модификации), всего в 64 строки.

Код, небольшое описание и скрин с WinMobile под хабракатом.
Изобретем велосипед на Tcl/Tk. Кроссплатформенно (работает даже на Windows Mobile при небольшой модификации), всего в 64 строки.

Код, небольшое описание и скрин с WinMobile под хабракатом.
Яндекс → Tcl/Tk: Загрузчик на Яндекс.Фотки из контекстного меню (preβ)
На относительно скорую руку сделал аплоадер картинок. Выкладываю его в таком состоянии, чтобы узнать, куда и как следует дорабатывать скрипт.


Perl → Perl и GUI. Взаимодействие приложений
Иногда возникает необходимость сделать обмен данными между приложениями (например выполнить какую-либо команду в Internet Explorer, Excel).
Платформа Microsoft Windows предоставляет нам несколько механизмов, это и OLE, COM и… DDE.
DDE был введен в 1987 году, позже была сетевая реализация NetDDE, и используется до сих пор.
Работать с DDE очень просто, не требуется подключать с CPAN дополнительные модули, все есть в tkkit.
Рассмотрим на примере двух приложений приёмника и отправителя.

Описание и код под хабракатом.
Платформа Microsoft Windows предоставляет нам несколько механизмов, это и OLE, COM и… DDE.
DDE был введен в 1987 году, позже была сетевая реализация NetDDE, и используется до сих пор.
Работать с DDE очень просто, не требуется подключать с CPAN дополнительные модули, все есть в tkkit.
Рассмотрим на примере двух приложений приёмника и отправителя.

Описание и код под хабракатом.
Perl → Perl и GUI. Виджеты
Эта статья будет продолжением обзора виджетов графической библиотеки Tk (tkx).

Мы рассмотрим:
Label
Button
Entry
CheckButton
RadioButton
ComboBox
Frame

Мы рассмотрим:
Label
Button
Entry
CheckButton
RadioButton
ComboBox
Frame
Персональные блоги → Unclesoсky podcast — Выпуск #26
— ТУшные лабораторки
— Жёлтый снова в игре
— Кружки и футболки «it-братва»
— Про «ничего не успеваю»
— Сайт строительной компании
— Качественно про TCL
— Неправильная ЭВМщица
— Приход СПОшника
— Лень крутить Debian 5.0
— Работа: отдел кадров остался
— ЛФК «Феникс» — FestliNe и «Файер» — ЛФК «Кодиак»
— Переигровка 2-ого тура
Podsafe: Christian DALMONT — MICROCOSME (jamendo.com)
unclesocky podcast26 / 21.1 Мб
Download
Офф. сайт подкаста
RSS подкаста
— Жёлтый снова в игре
— Кружки и футболки «it-братва»
— Про «ничего не успеваю»
— Сайт строительной компании
— Качественно про TCL
— Неправильная ЭВМщица
— Приход СПОшника
— Лень крутить Debian 5.0
— Работа: отдел кадров остался
— ЛФК «Феникс» — FestliNe и «Файер» — ЛФК «Кодиак»
— Переигровка 2-ого тура
Podsafe: Christian DALMONT — MICROCOSME (jamendo.com)
unclesocky podcast26 / 21.1 Мб
Download
Офф. сайт подкаста
RSS подкаста
прослушан 22 раза
Mobile Development → Введение в mobile xotcl
#!/bin/sh
# \
exec tclsh "$0" ${1+"$@"}
package require XOTcl ; namespace import -force xotcl::*
# За последние два дня на хабре появилась пара статей про программирование КПК на C# и C++. Это побудило меня написать цикл статей про тоже самое, а заодно познакомить читателей хабра, да и себя самого с такими технологиями, о которых мало кто слышал, но которые почти не имеют аналогов. Итак, резултатом статей будет программа для КПК, которая помогает что-либо учить. Работать она будет по методике карточек: одна сторона слово неизвестное, другая его значение. По дороге куда-либо просматриваем карточки, если слово неизвестное уже стало известно, то переходим к следующей карточке, иначе смотрим его значение и пытаемся запомнить.
# Язык, на которым будет написано приложение, — TCL. Этот великолепный язык, возможно, не имеет аналогов. Благодаря его примитивному синтаксису, идея метапрограммирования и DSL в нем реализована по максимому. Например, существует расширение TCL, написанное как библиотека к нему, которое превращает его в язык похожий на smalltalk и ruby: вызов методов через посылку сообщений, интроспекция объектов и классов, возможность динамически изменять классы и отделные объекты, возможность менять класс объекта (!) и, конечно же, мета-классы и method_missing. Именно на этом расширении я и буду писать. Имя ему xotcl.
# \
exec tclsh "$0" ${1+"$@"}
package require XOTcl ; namespace import -force xotcl::*
# За последние два дня на хабре появилась пара статей про программирование КПК на C# и C++. Это побудило меня написать цикл статей про тоже самое, а заодно познакомить читателей хабра, да и себя самого с такими технологиями, о которых мало кто слышал, но которые почти не имеют аналогов. Итак, резултатом статей будет программа для КПК, которая помогает что-либо учить. Работать она будет по методике карточек: одна сторона слово неизвестное, другая его значение. По дороге куда-либо просматриваем карточки, если слово неизвестное уже стало известно, то переходим к следующей карточке, иначе смотрим его значение и пытаемся запомнить.
# Язык, на которым будет написано приложение, — TCL. Этот великолепный язык, возможно, не имеет аналогов. Благодаря его примитивному синтаксису, идея метапрограммирования и DSL в нем реализована по максимому. Например, существует расширение TCL, написанное как библиотека к нему, которое превращает его в язык похожий на smalltalk и ruby: вызов методов через посылку сообщений, интроспекция объектов и классов, возможность динамически изменять классы и отделные объекты, возможность менять класс объекта (!) и, конечно же, мета-классы и method_missing. Именно на этом расширении я и буду писать. Имя ему xotcl.
