Стандартная интерактивная оболочка tclsh обладает крайне неприятной особенностью по работе с пользовательским вводом.
На данный момент нашёл такой пакет:
tclreadline
Для пользователей ArchLinux в AUR лежит
пакет, но он вряд ли соберётся на x86_64 архитектуре, да и другие недочёты есть. В общем, откорректировал немного:
http://dl.dropbox.com/u/14324405/tclsh/tclreadline-2.1.0-6.src.tar.gz
Теперь собираем, ставим, прописываем в ~/.tclshrc
примерно следующее:
if {$tcl_interactive} {
package require tclreadline
::tclreadline::Loop
}
За подробностями в man’ы и на сайта разработчика, к примеру, более увесистый конфиг:
http://tclreadline.sourceforge.net/sample.tclshrc
Так же следует не забывать пользоваться командой man:
man tclreadline
Примерно так будет выглядеть tclsh после установки:

Пользуясь случаем, хочу так же упомянуть и графическую tcl-консоль:
tkcon, для неё же есть и рабочий PKGBUILD в AUR:
https://aur.archlinux.org/packages.php?ID=6881
Потребовалось использовать в одном проекте данный планировщик (
http://quartz-scheduler.org/). Запускается на ура в виде бина в JBoss… Но вот тут с размаху врезался лбом в косяк:
- планировщик регистрируется в JNDI
- я успешно получаю инстанс планировщика
- добавляю свои задачу со своим воркером
- …
И кряк вам с хреном, а не профит:
ClassNotFoundException…
Столкнулся с непонятной проблемой в JBoss и RESTEasy:
Когда сервис принимает или отдаёт данные в JSON формате Jackson (сериализатор/десериализатор JSON) игнорирует JAXB аннотации @XmlElement(name = "bla_bla")
вместо указанного имя поля всегда используется имя поля в классе, т.е. такое:
@XmlRootElement
class SimpleJson
{
@XmlElement(name = "my_name")
public String megaName;
}
сериализуется в это:
а не, как ожидается, в это:
А так же игнорируется @XmlJavaTypeAdapter
, что есть пичалька.
Тут по ходу сочинения заметки пришло в голову, что Джексон не настроен использовать JaxbAnnotationIntrospector
- повод рассмотреть.
Пока же использую work-around, в виде дополнительного навешивания Jackson-аннотаций вроде:
@XmlRootElement
class SimpleJson
{
@XmlElement(name = "my_name")
@XmlJavaTypeAdapter(Iso8601DateAdapter.class)
@JsonProperty(value = "my_name")
@JsonSerialize(using = JsonIso8601DateSeializer.class)
@JsonDeserialize(using = JsonIso8601DateDeserializer.class)
public Date megaName;
}
Подкатом, бонусом, классы Iso8601DateAdapter
, JsonIso8601DateSeializer
, JsonIso8601DateDeserializer
.
Комбинация |
Действие |
ctrl+w ctrl+w |
Переключиться на другое окно. |
ctrl+w Up/Down/Left/Right |
Переключиться на другое окно. |
do |
Получить изменения из другого окна в текущее. |
dp |
Вставить изменения из текущего окна в другое. |
]c |
Перейти к следующему изменению. |
[c |
Перейти к предыдущему изменению. |
:diffupdate |
diff update |
:syntax off |
выключить подсветку синтаксиса |
zo |
раскрыть свернутый кусок текста |
zc |
свернуть кусок текста |
На правах заметки:
В эти выходные на базе школы №53 г.Владивостока прошли зальные соревнования по технике спортивного туризма. Был в составе судейского корпуса, гудят ноги, но вцелом понравилось, особенно наведенение дистанции :)
Фотографии можно поглядеть тут:
http://gfst-vl.ru/v12/v_photo2012.html
Информация по соревнованиям:
http://gfst-vl.ru/v12/v12.html
Потребовалось сделать окружение для отстройки приложений для системы Linux, запущенной на платформе с процессором ARM.
Внутри есть eglibc, поэтому решено было попробовать сделать окружение с этой библиотекой Си, а не повсеместно используемой newlib.
Процесс чтения манов, проб, нервов занял около двух дней. Помогли разобраться следующие документы:
Особо поразило мозг решение проблемы “кто первый: курица или яйцо?”
В результате получился набор правил для сборки окружение под ArchLinux (пакеты идут в порядке сборки):
Ну и несколько библиотек сразу в придачу:
Набор HTTP API для управления камерами Axis:
http://www.axis.com/techsup/cam_servers/dev/cam_http_api_index.php
Изначально задача была: извлечь из изображения область ограниченную полигоном, при этом оставшаяся часть изображения должна залиться “прозрачным” цветом (сиречь размер в пикселях не поменяется). Но как оказалось, можно ещё более обобщить эту задачу - вытаскивать произвольные области изображения.
Рассматриваемый инструмент - ImageMagick или GraphicsMagick.
Решение нашлось тут:
http://studio.imagemagick.org/pipermail/magick-users/2006-March/017281.html
Коротко суть: на основе исходного изображения (по сути используется только, что бы задать размеры) создаётся временное изображение-маска и нарисованной фигурой/фигурами которые образуются, если их обрисовать полигоном. Остальные пиксели на маске - прозрачные. Далее маска накладывается на исходное изображение и извлекается только нужная его часть…
Теперь на примере.
Есть изображение:

Нужно вырезать область, заданную полигоном (для простоты - треугольник) с координатами: (10,10)-(400,200)-(100,200)
Шаг 1. Делаем маску:
convert screenshot.png -matte -fill none -draw 'color 0,0 reset' -fill white -draw 'polygon 10,10,400,200,100,200' polygon.png
Получаем следующее (картинка белая :simple_smile: ):

Шаг 2. Вырезаем область:
convert screenshot.png -matte polygon.png -compose DstIn -composite out.png
Получаем чего желаем:

Команды рисования можно посмотреть тут:
http://www.imagemagick.org/Usage/draw/
Библиотеки/рекомендации для работы с JSON.
C
C++
BOOST
Qt4