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

RubyВведение в Ruby/Tk. Часть первая

Доброго времени суток!

Введение


Заглянув сегодня в свой ToDo лист, я понял, что работы на сегодня у меня нет. Сидеть в интернете и читать новости целыми сутками тоже, знаете ли, ещё то удовольствие. Надо было чем-то заняться, а именно написать какое-либо приложение. На следующих выходных я хотел познакомить вас со связкой Ruby + Qt, но поскольку Qt биндинги я пока не установил мне пришлось искать замену. И я её нашёл. Т.к. вместе с Ruby поставляется Tk, то именно на него и пал мой выбор.

Знакомимся с пациентом


Ф.И.О: Давыденко Михаил Юрьевич
Место рождения:

На самом деле, речь пойдет не обо мне, а о Tk.
Tk (от англ. Toolkit — «набор инструментов», «инструментарий») — кроссплатформенная библиотека базовых элементов графического интерфейса, распространяемая с открытыми исходными текстами.

Врач уже здесь


Ruby (от англ. Ruby — «Рубин») — динамический, рефлективный, интерпретируемый высокоуровневый язык программирования для быстрого и удобного объектно-ориентированного программирования. Язык обладает независимой от операционной системы реализацией многопоточности, строгой динамической типизацией, сборщиком мусора и многими другими возможностями. В общем и целом то, что нам сейчас нужно.

Информационная безопасностьAnonymous запустили HackerLeaks.tk для слива информации о взломах

Несмотря на появление многочисленных клонов WikiLeaks, участники Anonymous решили запустить собственный. В отличие от остальных, сайт HackerLeaks.tk (http://hackerleaks2011.blogspot.com/) специализируется на публикации баз данных, эксплойтов и дыр в безопасности, а также фактов взлома разных ресурсов. То есть эдакий Wikileaks для хакеров.

О запуске HackerLeaks.tk объявил Commander X, который считается лидером подгруппы People's Liberation Front (Фронт народного освобождения) внутри Anonymous.

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

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

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

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

image

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

LispGUI в Common Lisp — еще один миф

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

Linux/Unix


Базовой библиотекой для графики из Common Lisp под Unix является CLX. Это аналог xlib, т.е. низкоуровневый клиент, напрямую общающийся по X-протоколу.

Кроме того, есть обертки для основных графических фреймворков разной степени зрелости: LTK, CL-GTK2, CommonQt, CL-CAIRO2. Лично мне доводилось иметь дело с LTK, и работа с ним тривиальна. Хороший пример приложения, его использующего — простой и удобный Lisp-редактор/REPL ABLE.
ABLE screenshot

Windows


Кроме возможности использовать кросс-платформенные фреймворки из прошлого раздела, есть еще LispWorks CAPI, о котором только положительные отзывы. Единственная особенность заключается в том, что, как и большинство профессиональных сред разработки на любых языках под Windows, LispWorks стоит довольно дорого (ок. 1200 $), а CAPI доступна только в профессиональной версии. (Впрочем, попробовать его можно и в trial версии).

Также есть CL-OPENGL, которая, разумеется, кросс-платформенная.

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

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

RubyЛучший GUI-Тулкит для Ruby приложений

Проголосовало 115 человек. Воздержалось 179 человек.

Персональные блоги Занимательный .tk

Интересная вешь — если ввести в браузере любую абракадабру вида afsdgdfgs.tk то откроется сайт с соответствующим заголовком!
А по адресу my.dot.tk можно сократить любые ссылки до вида chto-to-tam.tk, причем если вы до этого ввели абрукадабру в браузере для проверки то домен окажется занятым =(

Разгадка, как мне кажется кроется что DNS сервер отвечающий за tk автоматически регит соответствующий домен и перекидывает на единый «абракадабра» сервер. Я прав?

OS InfernoГрафика в Inferno.

Если писать распределённые приложения в стиле файловых серверов, то с
графикой в Inferno вы столкнётесь не раньше, чем захотите запустить
графический отладчик для отладки своего многопоточного приложения.
Но если вы пишете приложение с UI, которое должно работать на встроенных
устройствах или как плагин в браузере (кстати, сейчас вроде разрабатывают
аналог существующего Inferno-плагина для IE под Firefox), то сразу возникнет
вопрос «а как в Inferno писать графические приложения?».