Play Framework: локализация Date.since()

Play framework позволяет в шаблонах groovy использовать extension functions – т.е прицеплять методы на ходу к объектам.

В частности в play имеет расширение экземпляров класса Date – since(), который возвращает сколько времени прошло от указанной даты. Например “13 minutes ago”

С since() все хорошо, пока не требуется интернационализация. Если переопределить соответствующие ключи в файлах перевода, то для русского он возвращает нечто вроде 3 дняs назад. Другими словами этот метод не может отображать количество пройденного времени на любом языке, кроме английского.

Read more

Android: запуск дефолтного ланчера

Есть неочевидная ситуация: вы пишете лаунчер лончер или что-то его заменяющее, отдебажили, всё работало. Конечно же, вы поставили его как програму по умолчанию и теперь он стартует вместо дефолтого. И вдруг, вылезает некая бага, которая начинает крушить, бомбить ронять телефон, перезапуская приложение. Перезапустится, конечно же, то, что упало, а упал лончер. И он снова падает. Development mode в продакшене отключён. Ну вы поняли.

На самом деле бывают ситуации ещё хуже, например, для vendor lock-in приложений, которые вообще скрывают, что они работают под андроид.

Предвкушая первую мысль как вернуть дефолтный лончер: вызвать в приложении finish(). Чёрт, это же домашний экран %)

Read more

Android: background 2.0

Для одного из наших приложений “Говорящие вещи” потребовалось сделать яркий, жизнерадостный, но не отвлекающий фон. Мы перебирали несколько разных вариантов с deviantart (где средний фон – 500кб, OMG), но почему-то смотрелось не очень внушающе(растяжки, отвлекающие цвета).

В интернетах наткнулся на пост товарища @gobozov: Android. Tiled background with diagonal lines, как говорится, inspired by .. :). В котором был пример стильного фона (stripes + полупрозрачный градиент). Выглядит – круто.

В его варианте используется tile background как фон Layout + ImageView с градиентом. Я попытался чуть-чуть упростить и уменьшить количество файлов.

Read more

HTC Desire: прошивка моей мечты

“Ребята, прошивка здоровенная!! Здоровеннная!”

UPD: самая здоровенная прошивка моей мечты тут

Полтора года мой HTC Desire радовал буквально всем, кроме батарейки(что свойственно всем андроидам) и объёмом внутренней памяти.

Сначала я терпел, стараясь выбирать только самые нужные мне программы, чистил кеш приложений по утрам, а субботними вечерами удалял приложения, которыми не часто пользуюсь. Время шло, потребности в количестве установленных приложений стали увеличиваться(во многом из за андроид-разработки), а уже установленные приложения даже не думали худеть, напротив – разбухали с каждым апдейтом. К слову, максимально откладывал приходящие обновления.

Хватит это терпеть! (ц)

Read more

Netbeans: включить нативный L&F

После установки Netbeans по умолчанию включается l&f(look-and-feel, стиль, цвета отрисовки элементов управления, поведенческие черты интерфейса) от Gnome – что меня невыносимо раздражает, ибо:

  • Оформление гнома кушает ресурсы процессора больше, чем нативное джавовское. На нетбуке это особенно актуально
  • Шрифты – слишком большие, отступы paddings тоже. Для экрана нетбука это раздражающие факторы – маленькое разрешение.
  • Key bindings гнома слишком не привычны для разработки

И поэтому…

Read more

Воспоминания: самодельная сеть

Этим постом начну цикл воспоминаний о том, что когда-то было, что уже исчезает из памяти, но не хочется забывать.

Предисловие

В далёком 7ом классе(примерно в 2003 году), когда я только начал интересоваться комьютерами и во всю занимался радиотехникой у меня появилась задача – обеспечить связь дома с дачей(порядка 500м).

Для полноты картины: мобильников не было, вообще. Сейчас наверное сложно представить) В то время у меня была IBM 80386 в 640Кб оперативы(с DOS’ом разумеется) и Ericsson 8086(эта такая машинка с 512Кб оперативы и чб экраном). Про какой-то “виндоус” и сетевые карты “для интернета” я слышал лишь по телевизору – была такая передача “компьютерный мир”. Интернет? Слышал что есть такое. Сейчас наверное сложно представить разработчика без интернета. Вся документация – на тот момент времени в IDE. Ну а ещё много энтузиазма и куча деталей 80х годов. КТ315, МП41 кто нить помнит?))

Read more

Debian: php-fpm в Squeeze

Ах эти мейнтейнеры Дебиана! Обещали оставить в сквизе php-fpm, но опять появились баги тараканы в голове – вэб разработчики и сисадмины как и прежде используют глючные сборки от dotdeb, если вообще не пересобирают руками весь php.

Read more

php trick: вариант обхда open_basedir restriction

Задача: нужно перечислить файлы не в директории сайта

Проблема: действуют ограничения, например:

Warning: dir() [function.dir]: open_basedir restriction in effect.
     File(/etc/awstats) is not within the allowed path(s): (.) in /var/www/site/path/index.php on line 22
Warning: dir(/etc/awstats/) [function.dir]: failed to open dir: Operation not permitted
     in /var/www/site/path/index.php on line 22

Есть вариант обойти это, при условии что разрешенно выполнять приложения через exec() и это unix-система

Read more