RSS
 

Archive for the ‘RTFM’ Category

Groovy GSP charset problem resolving

27 Сен

В какой-то момент проявилась одна заметная проблема, мешающая мне осуществить абсолютно 100% замену PHP на Groovy для веба без использования относительно тяжеловесного MVC-фреймворка Grails.

Это касается *.gsp страниц (Groovy Server Pages), представляющих собой html-страницы со вставками вида <% .. %> с произвольным кодом на Groovy или Java, или на языке оригинала: «GSP means GroovyServer Pages, which is similar to JSP (JavaServer Pages).»

Точно такая же функциональность в PHP реализуется вставками <? .. ?> (причем для PHP наличие такого блока является обязательным, даже если он реализует классы или бизнес-логику; если после такого блока будет находиться обычно невидимый пробел или перенос строки, то он попадёт в вывод, что может привести к проблемам).

На сайте груви написано: «GSP are not maintained as a standalone module. But it has been forked and reintegrated in Grails.» Но, тем не менее, как и груви-сервлеты, gsp-страницы работают без Grails, достаточно просто подключить груви к приложению.

Проблема заключалась в том, что в этих gsp-страницах русский текст превращался в «кракозябры». В груви-сервлетах, как в «настоящих», так и скриптового вида, такого не наблюдалось.

Методом научного тыка выяснилось, что если исходник gsp перевести в кодировку по-умолчанию на системе (например, cp1251 для Windows), то проблема решается (при этом вывод страницы идет уже в кодировке UTF-8).

А это чистой воды подсказка: идем в исходники сервлета groovy.servlet.TemplateServlet.java, который отвечает за разбор таких страниц, и находим там строку:

Читать полностью »

 
 

Groovlets

24 Сен

По факту у Groovy есть всё, чтобы вытеснить PHP из веба, например :-)

 

Лямбда-выражения в C++ (стандарт C++0x)

29 Сен

Многие языки программирования позволяют создавать налету локальные не именованные функции внутри выражений. Такие функции обычно относят к лямбда функциям, которые имеют широкое применение.

Лямбда выражения – техника программирования, сочетающая в себе преимущества указателей на функции и функциональных объектов, и при этом позволяет избежать неудобств. Как и функциональные объекты, лямбда выражения позволяют хранить состояния, но их компактный синтаксис в отличие от функциональных объектов не требует объявления класса, т.е. позволяет писать более компактный код и избегать лишних ошибок там, где это возможно.

Читать полностью »

 

Gothic Chess

11 Сен

Gothic Chess

Gothic Chess (произносится как «го́тик че́сс», общепринятого русского названия нет) — коммерческий вариант шахмат на доске 10×8, с двумя дополнительными фигурами. Игра предложена Эдом Трайсом и запатентована в 2002 году.

Читать полностью »

 

iPod-менеджмент импрувмент

14 Июн

Как улучшить механизм добавление/изменение контента на айподе, максимально приблизив это к привычному для русских "флешечному" типу.

Для начала нужно в iTunes включить опции "использовать как внешний диск", чтобы он стал полноценно виден как флешка, и "обрабатывать музыку и видео вручную", чтобы снять зависимость от медиатеки тунца.

Читать полностью »

 
 
 
Rambler's Top100