Posts

Showing posts from June, 2010

Книга по fossil

Книгу можно скачать из fossil-репозитория: Fossil User Manual

Краеугольные камни HTML5: сайт HTML5ROCKS

Документация, рекомендации, примеры и место для тестирования HTML5: HTML5ROCKS

Книга jQuery Fundamentals

jQuery Fundamentals

Tcl/Tk widget demo

Давно демки не смотрел, а там появились новые и старые обновились, стоит взглянуть. И заодно стоит сделать wish алиасом для версии 8.5: sudo aptitude install tk8.5 sudo update-alternatives --set wish /usr/bin/wish8.5 wish /usr/share/tcltk/tk8.5/demos/widget Давненько же я Tk не использовал - когда-то написанные в дебиане под целевую платформу Windows XP утилиты успешно и без каких-либо усилий с моей стороны сначала "переехали" в висту, а теперь их уже пользователи в Windows 7 ставят и все работает. Вероятно, через год-другой работа с activesync и web camera будет нативно поддерживаться в популярных браузерах и эти утилиты станут вовсе не нужны. Хотя вот интересно, что получится из гуглового Native Client - кто знает, может, от веб-приложений снова перейдем к Tcl/Tk, только исполняемым в браузере или даже на сервере?.. Напоминает дежавю, не зря говорится, что развитие идет по спирали.

Статья: оптимизация взаимодействия клиента и сервера

Перенесено по адресу Оптимизация взаимодействия веб-клиента и сервера

Unicode в linux и tcl

Дело было относительно давно, 18-го апреля сего года: (19:53:33) anton: Привет! привязка для collate - http://www.siftsoft.com/inprogress/tclcoll.c компилировать в collate.so, команда "сравнения строк в текущей локали" - collate s1 s2. Makefile и прочей обвязки ещё нет, пока исследую, не поломается ли там чего (в норме tclsh не ставит LC_COLLATE по текущей локали вообще). (19:54:23) anton: возвращает команда -1,0,1. сортировать списки так: lsort -command collate (19:56:10) anton: чтобы тебе меньше трудиццо и больше копипастить, вот команда сборки: gcc -DUSE_TCL_STUBS -O3 -I/usr/include/tcl8.5 \ -shared -fPIC -o collate.so tclcoll.c -ltclstub8.5 Вышеописанное расширение в апстрим пока не принято, так что подгружаем и пользуемся самостоятельно. А вот сегодня при обновлении debian testing+sid ко мне приехала следующая зависимость: libunistring0 Глядишь, наконец-то в линуксе появится стандартный путь для оперирования юникодными строками.

Управление временными зонами в веб-приложениях

Задача заключается в том, что каждый пользователь может работать в своей собственной временной зоне, более того, эта зона может изменяться. Широко распространенным вариантом решения проблемы является установка временной зоны непосредственно в настройках каждого пользователя. Минусы этого решения очевидны - эту настройку большинство пользователей никогда не найдет и не выставит в нужное значение, а при перемещении в другой город/страну и тем более никто об этом не вспомнит и не сменит свою временную зону. Другой вариант - использовать настройки ОС. Но увы, в стандартных HTTP-заголовках параметры временной зоны не передаются. Получить временную зону из яваскрипта напрямую тоже не удастся - можно узнать лишь временное смещение, которым могут соответствовать много зон. Что же делать? "Остается одно - только лечь помереть" (с). Или использовать смещение для локального времени, полученное на яваскрипт, в пределах одной сессии, а на стороне сервера применять соответствующее смещени

Просмотр сертификата с помощью openssl

Страничка вики: OpenSSL Скрипт для разбора данных сертификата и отображения в нужном нам формате: #!/usr/bin/tclsh8.5 set titles {Страна Регион Город Организация {Общее имя (СЦ)} {E-mail адрес}} set cert [exec openssl x509 -text -in test.pem] proc parse_sec {cert sec} { set regexp {: C=(.*), ST=(.*), L=(.*), O=(.*), CN=(.*)/emailAddress=(.*)} set regexp $sec$regexp set res [regexp -line -inline $regexp $cert] if {$res ne {}} { return [lrange $res 1 end] } return } proc parse_date {cert sec} { set regexp "Not $sec\\s*: (.*)" if { [regexp -line $regexp $cert res date] == 1 } { return $date } return } puts {Кто выдал} foreach title $titles value [parse_sec $cert Issuer] { puts "$title: $value" } puts {Кому выдан} foreach title $titles value [parse_sec $cert Subject] { puts "$title: $value" } puts [parse_date $cert Before] puts [parse_date $cert After]

Системы очередей - легковесные реализации

В продолжение темы посмотрим на "легкие" реализации. Поиск я начал с упомянутой в рассылке sqlite-users библиотеки libjlog , а в итоге пришел к вот такой презентации: Playing Nice with Others , где рассказывается, в том числе, про сервер очередей beanstalkd с простым протоколом (есть клиентские библиотеки для кучи языков, только вот для тикля клиент отсуствует... пока) и, к тому же, он обнаружился в дебиане. Еще из перечисленных в презентации в дебиане нашелся пакет zeromq-bin , см. ZeroMQ Погуглив на тему Tcl-интерфейса к последнему, нашел вот это сообщение в рассылке: [zeromq-dev] TCL binding

HTML5 browser checker

Воспользовавшись нижеуказанным сервисом, можно быстро получить нужную информацию: The HTML5 test - How well does your browser support HTML5? Вполне функционально и удобно - можно послать ссылочку пользователю, который отправит полученный отчет по почте. Согласно этому сервису, уже сейчас можно использовать укороченный doctype , все равно браузеры наплевательски относятся к дополнительным атрибутам, требуемым текущим стандартом. Даже в ИЕ6 достаточно указания !DOCTYPE HTML . Соответственно, внес необходимые изменения в пакет mbgserver-html .

Памяти академика Арнольда

Владимир Арнольд Пара особенно интересных (для меня) статей из перечисленных по ссылке выше: Нужна ли в школе математика? Новый обскурантизм и Российское просвещение И еще: Математическая безграмотность губительнее костров инквизиции АНТИНАУЧНАЯ РЕВОЛЮЦИЯ И МАТЕМАТИКА АКАДЕМИК В. И. АРНОЛЬД:ПУТЕШЕСТВИЕ В ХАОСЕ И задачка для 5-го класса от Арнольда: Из города А в город Б и из города Б в город А на рассвете одновременно вышли две старушки. В 12 часов они встретились. Потом продолжили свой путь. Одна пришла в конечный пункт в 4 часа дня, а другая — в 9 вечера. Вопрос: в каком часу рассвело в этот день?.. Красивая задача, не правда ли? Конечно, обычная пропорция, но в решении есть изюминка, поскольку получаем квадратное уравнение, причем в каноническом виде, так что для решения знания таблицы умножения достаточно. Из класса задач "из пункта А в пункт Б" эта задача выделяется явной оригинальностью.

HTML5 video player

Очередная приятность HTML5: Video JS - Open Source HTML5 Video Playe

Перетаскивание файлов в веб

Все мы привыкли к устройству под названием "манипулятор типа мышь" - хотя во многих случаях польза от него бывает сомнительной. Вот, например, в браузере на современных сайтах без мышки никак, такой уж интерфейс большинства веб-проектов. Забавно - действия, которые можно и без мышки выполнить, с клавиатуры, создатели интерфейсов (не только веб) заставляют нас выполнять мышью, а вот то, что очень даже удобно делать мышью - перетаскивание группы файлов - сделать нельзя вовсе! Прекрасной новостью будет то, что теперь все-таки можно. Работает в браузерах файрфоксе 3.6 и гугл хром, хотя с последним не очень понятно, в каких именно версиях поддерживается данная возможность - в линуксе с версией хром 6 все ок, а в винде в одной и той же версии у кого-то работает, а у кого-то нет (вариант с кривыми руками не озвучиваем, ибо эти некоторые мой блог читают, лучше спишем на некие астральные проблемы). Работающий пример и описание реализации: Перетаскивание файлов в браузер (Drag and D

О символах

В наше время веб-приложений с растущими возможностями много говорят и пишут об оптимизации на стороне клиента, для быстрого и красивого отображения содержимого веб-страниц. И вот мы вновь и вновь слышим про оптимизацию изображений, создание спрайтов... В то время как самый true way остается нехоженным! О чем это я? Все просто - вспомним про стандарт Unicode. В этом стандарте есть символы многих и многих алфавитов, а плюс к тому, математические символы, значки для отображения шахмат, карт и много чего еще. Так вот вместо картинок в качестве мелких иконок замечательно подходят именно стандартные символы. Посмотреть их можно, например, здесь - в виде набора pdf-файлов, где приведены и код и картинка соответствующих символов. Вот, скажем, такой набор Dingbats может заменить многие иконки для ajax-приложений. Для перевода кода символов в десятичную систему счисления можно воспользоваться таким сервисом: Онлайн калькулятор: Перевод из одной системы счисления в другую. Определяя в css-файл