войти зарегистрироваться

ПрограммированиеГенерация списка IPv4 адресов на TCL и немного систем счисления

Не так давно потребовалось решать задачу массового обновления конфигурации устройств. Стандартная задача системного администрирования, если у вас в обслуживании больше одного устройства выполняющего однотипные функции. Для решения существуют как универсальные продукты, например из доступных redmine.nocproject.org, так и множество скриптов широко представленных на тематических форумах и порталах. Как раз на этот случай под рукой и должен был оказаться собственный написанный скрипт, но не оказался, поэтому учитывая что время для манёвров было, скрипт был написан заново, выполнен и положен на полочку, чтобы там в очередной раз затеряться.
Для написания был использован expect — expect.sourceforge.net, надстройка над TCL позволяющая обрабатывать и реагировать на ответы различных интерактивных консольных утилит, в частности, telnet. Учитывая что для TCL раньше писать не приходилось, код нуждался в повторном осмыслении. Ключевой момент скрипта это генератор списка IPv4 адресов для обработки, после внимательной оценки данный кусок программы удалось значительно, на мой взгляд, оптимизировать, по крайней мере сократить количество строк на треть и безболезненно добавить новый функционал. Причём все эти сокращения мало относились к специфики TCL, а касались принципиальных подходов к построению алгоритма в целом.
Я выделил этот код в отдельную утилиту, которую попытаюсь очень подробно разобрать далее по тексту — как было «до» и что стало «после», и почему не получилось написать сразу так как «после». Мне не всё в ней нравится до сих пор: смущают как алгоритмические проблемы так и проблемы TCL, например использование списков вместо массивов (что быстрее?, безопаснее?, идеологически вернее?), все сомнения тоже присутствуют в тексте, с надеждой на конструктивные комментарии.

Open sourceUNIX-way и генератор заданий по архитектуре компьютерных сетей

Прошлой зимой на нашей любимой кафедре произошло одно замечательное событие — курс проектирования компьютерных сетей был переформирован, в результате чего вместо одного семестра практических занятий образовались два семестра занятий лабораторных. С одной стороны, оба изменения — и качественное, и количественное — означали, что студенты получат больше времени на освоение предмета, а также занятия будут индивидуальными, а не групповыми — думать, вполне вероятно, придётся всем, а не «ядру» группы в четыре-пять человек. С другой стороны, это означало, что придётся разрабатывать эти самые индивидуальные задания, да так, чтобы они были все отличались друг от друга.

Именно тогда-то и появилась мысль написать автоматический генератор заданий. Про генератор одного из заданий я и расскажу ниже.

ЖелезоО китайских телефонах замолвите слово

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

Ненормальное программированиеПятнашки на TCL в 10 строк

Реверси в 64 строки уже есть. Теперь напишем пятнашки.
image

Ненормальное программированиеРеверси на TCL в 64 строки

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

image

Код, небольшое описание и скрин с WinMobile под хабракатом.

ЯндексTcl/Tk: Загрузчик на Яндекс.Фотки из контекстного меню (preβ)

На относительно скорую руку сделал аплоадер картинок. Выкладываю его в таком состоянии, чтобы узнать, куда и как следует дорабатывать скрипт.
SendTo

PerlPerl и GUI. Взаимодействие приложений

Иногда возникает необходимость сделать обмен данными между приложениями (например выполнить какую-либо команду в Internet Explorer, Excel).
Платформа Microsoft Windows предоставляет нам несколько механизмов, это и OLE, COM и… DDE.

DDE был введен в 1987 году, позже была сетевая реализация NetDDE, и используется до сих пор.
Работать с DDE очень просто, не требуется подключать с CPAN дополнительные модули, все есть в tkkit.

Рассмотрим на примере двух приложений приёмника и отправителя.

image

Описание и код под хабракатом.

PerlPerl и GUI. Виджеты

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

image

Мы рассмотрим:
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 подкаста
прослушан 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.