You are viewing [info]h8_self's journal

Previous 10

May. 10th, 2011

Lift: простой пример AJAX-загрузки данных

 Моя заметка на Хабре - http://habrahabr.ru/blogs/scala/118932/

Apr. 13th, 2011

Обзор Qumo Go!

Написал для Хабра небольшой обзор андроид-планшета Qumo Go! Читать здесь. Решил его вернуть обратно в магазин, ибо... Попытаюсь сегодня это сделать. Если не выйдет - будет на кухне интернет-радио :)

UPD: Успешно поменял на PocketBook IQ 701, осваиваю.
Tags:

Mar. 29th, 2011

Scala/Lift - автоматическая компиляция и hot deploy

Как сделать разработку на Scala/Lift комфортнее? Наверное, самое главное - это иметь возможность не отвлекаться на рутинные операции, такие как компиляция и развертывание (deploy) приложения. В мире классической Java-разработки эти операции уже давно автоматизированы: тот же Eclipse c плагином Sysdeo и Apache Tomcat. Но в мире Scala пока не все так хорошо отшлифовано.

Я использую Maven в качестве средства управления сборкой, зависимостями, развертыванием приложения. Да, я знаю о sbt, но пока что не было возможности по-настоящему опробовать этот инструмент.

Итак, для непрерывной компиляции нам доступна maven-цель (goal) scala:cc - сервис, который будет отслеживать изменения в коде и автоматически пересобирать его. Отличительной особенностью является использование fsc (Fast Scala Compiler), что значительно ускоряет повторную компиляцию: для проекта в 1000 строк scala-кода первоначальная сборка занимает около 50-60 сек, последующие - 5-11 сек.

Теперь о том, что касается т.н. hot deploy, когда измененный код автоматически подгружается контейнером. Для разработки я использую легкий веб-сервер Jetty, и maven-цель jetty:run. Для того, чтобы Jetty автоматически делал этот самый hot deploy, нужно установить значение параметра scanIntervalSeconds в значение, отличное от 0. Теоретически, теперь нам просто надо запустить обе цели - scala:cc и jetty:run и наслаждаться, а практически - Jetty будет зависать и вываливаться через каждые 2-3 раза этого самого hot deploy. Опытным путем было установлено, что если запускать Jetty со следующим набором параметров - -Xmx1024m -Xms512m -XX:MaxPermSize=1024m, то ситуация исправляется, и Jetty отлично переносит 15-20 автоматических перезапусков (больше просто не пробовал, не нужно было). Если вы пользуетесь Maven'ом из консоли, то перед запуском jetty:run можно просто добавить export MAVEN_OPTS="-Xmx1024m -Xms512m -XX:MaxPermSize=1024m". Либо же отредактировать pom.xml, или создать соответствующую Run Configuration в используемой IDE.

Feb. 8th, 2011

Обновление Technology Radar

 ThoughtWorks выдали новый выпуск своего "Technology Radar". В ThoughtWorks работает некто Мартин Фаулер, а сам отчет (наверное, его все же можно так назвать) представляет собой взгляд на тренды в мире разработки ПО. Конечно же - это видение всего лишь отдельно взятой компании, но ознакомиться стоит. Отчет здесь.

Feb. 7th, 2011

Отправка почты в html-формате из консоли

Отправка почты из консоли - распространенная задача. В данном случае возникла проблема формирования некоего отчета в html-формате с последующей отправкой адресатам. Все бы было хорошо и просто, будь у меня на сервере настроенный sendmail или хотя бы mutt  с версией > 1.5 или что-то еще, в которых можно задать ContentType, а у меня из всех способов отправки почты был древний mutt (чего его не обновляют в CentOS'e?) да mail c mailx'ом. Вобщем, куча убитого времени на гугление и выгугленивание и работающий хак, пользуйтесь и не теряйте времени:

mail -s "Simple subject
MIME-Version: 1.0
Content-Type: text/html" some@email.com < your_content.html

Nov. 4th, 2010

Marble Mouse, Win и прокрутка

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

Read more... )

Aug. 20th, 2010

OpenID в ЖЖ — бизнес по-русски

После того, как я два раз не смог войти на некоторые сайты под своим ЖЖ-аккаунтом (тот самый OpenID) — начали закрадываться смутные сомнения, которые и подтвердились вот этим и этим. Копание в своей памяти привело к тому, что да — прямо после регистрации я переименовал блог, и было это несколько лет назад, а теперь привело к тому, что СУП мне отключил OpenID, потому что им деньги надо зарабатывать. Для тех, кто не знает — грубо говоря, OpenID позволяет вам авторизироваться на внешних (по отношению к LJ) ресурсах под своим ЖЖ-аккаунтом, и выглядело это примерно вот так (это мой коммент в одном блоге):


Ну и вдруг, если кому-то стало интересно — по этому "нику" можно было попасть в мой блог. Удобно? — удобно; не надо регистрироваться на каждом ресурсе, чтобы оставить комментарий (но ресурс должен поддерживать авторизацию по OpenID). Что теперь делать — неизвестно. Авторизоваться под свои именем я уже не могу — вместо «меня» комментировать уже будет другой OpenID-ник. Вот такой выходит бизнес по-русски — на пользователей нам плевать, ведь процент таких как я невелик и уж точно ни на что не может повлиять. 

С другой стороны — с появлением социальных сетей, твитера и прочего численность людей, желающих (а главное — могущих) писать в блог сокращается — видео, музычкой и прочим можно обмениваться вконтакте, фразы «купила себе нямочку!» отлично влезают в 140 символов твиттера. Итого: количество пользователей, записей, комментариев как минимум не растет; вместо быстрого, красивого, вебдванольного сервиса имеем то, что и было 5-7 лет назад с тормозами от диалапа; вместо френдленты в RSS имеем «успешную» монетизацию в виде отключения бесплатных аккаунтов без рекламы, никому не нужный внутренний jabber и теперь вот отключенный OpenID. Ok.

Aug. 16th, 2010

Цифровая дистрибуция книг отечественная

http://blogs.computerra.ru/643

May. 16th, 2010

Сложный несложный css-layout

Понадобилось сверстать простенький макет (так мне в начале казалось) следующего вида:

layout_0

т.е. принудительное 100% заполнение по высоте в случае, если контенту хватает и меньшей высоты окна. Найденные решения либо не работали, либо работали не полностью:

layout_1

А работающих решений нагуглилось всего ничего – Кросс-браузерное решение для резинового макета с одинаковой высотой колонок и стопроцентной высотой. Советую посмотреть сам CSS, и количество хаков для разных браузеров. Проверял в FF 3.6, Chrome 4.1, Opera 10.53 и IE8.

Tags: ,

Apr. 4th, 2010

Перечисления в python

Сделано по-мотивам вот этого рецепта.

Read more... )
Tags:

Previous 10