ruX’s mind: деньги вместе с ценностью

Слушая 200 выпуск \"Рунетологии\", в котором Максим рассказывал о своих успехах, жизни и проектах, сильно зацепила одна фраза.

В начале появился проект calend.ru - энциклопедия праздников, где просто была идея элементарная охватить максимум поисковых запросов вокруг праздников, которые коммерчески в общем мало окученны, за них мало кто бьётся

Read more

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

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

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

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

Read more

HTC Desire: съел всё место

Внезапно, у меня опять кончилось место в телефоне.

\"\"

Пошёл по известной дорожке:

  • Удалить старые приложения
  • Почистить кэш (твиттера, например)
  • Recorvery -> Wipe dalvik cache

Но в этот раз не помогло. Снёс кучу нечасто используемых приложений: через 30 минут снова стало свободно 0.5Mb.

Место кончилось на столько, что даже телефон не открывался, как и многие приложения.
Стандартная утилита не показывала каких-либо сверх-тяжелого софта (я рассчитывал где-то на 40+мб)

Напомню, что у меня HTC Desire с Runnymede AIO V6.0.4.3, прошивка стоит около 14 месяцев

Read more

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

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

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

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

Read more

Groovy: java слишком проста

Возьмём довольно частую задачку: есть несколько значений первой переменной, нужно сделать присвоить второй переменной какое-то значение, в зависимости от первой переменной, т.е. value mapping.

В джаве это делается примерно так:


String alertClass = "";
switch(code.toUpperCase().charAt(0)) {
case 'U':
alertClass = "alert";
break;
case 'P':
alertClass = "alert-error";
break;
case 'B':
alertClass = "alert-warning";
break;
case 'C':
alertClass = "alert-info";
break;
}
// now alertClass has value

Read more

Мысли: о ведении проектов

\"\"
Последние пол года после заморозки закрытия проекта GeoChat я принимаю участие в других проектах. Причин этому несколько:

  • Отдохнуть от ведения проекта (за это время я уже соскучился по этому делу)
  • Уйти временно в разработку (меня уже воротит от кодинга)
  • Нет идей - и я не знаю что с этим делать, надеюсь коучи на MTE из меня их выпотрашат, а преподы помогут посмотреть вокруг и увидеть пробеммы (а значит и возможности)
  • Поглазеть на то, как другие фаундеры ведут процесс, может чем научится. Ага, наивный чукотский юноша
  • \"Don\'t put all your eggs in one basket\" (ц)
  • Во всех проектах есть определённый share

Но пост совсем не об этом :)

Read more

Новое поколение линуксоидов

Они уже здесь

Филосовские мысли на тему десктопного линукса и его пользователей

\"Бородатый, волосатый и в свиттере\" - такой стериотип о линукоиде сейчас разве что в шутку вспоминают. Сейчас сложно поверить, но раньше так и было :) И это были те самые гики-хакеры, которые делали совершенно непонятные вещи в своих мерцающих зелёных консолях. Это выглядило как \"шаманство с бубном\", не иначе.

Read more

Баним ВКонтакте по IP

Читатель этого поста наверняка знает зачем собирается банить вконтакте на раутере/сервере/etc :)

На просторах интернетов я наткнулся на рабочие диапазоны IP vk.com:

93.186.0.0 / 255.255.0.0
87.240.0.0 / 255.255.0.0

Достаточно закрыть доступ из локальной сети в интернет на маршрутизаторе к этим адресам и вы освободите много часов личного времени для людей.

Творите добро - освобождайте людей :)

Android: альтернативы java


Java - действительно хороший, простой и стабильный язык. Код, написанный десять лет назад будет не только работать на современных JVM, но должен компилироваться.

Выбор разработчиков андроида в качестве языка программирования java вполне понятен: популярная платформа, managed code, множество готовых библиотек, понятный и простой код.

Read more

HTC Desire: почти brick

В один прекрасный момент телефон просто перестал загружаться. Как на зло во время тура. Висит на htc splashscreen.

Девайс: HTC Desire A8181, прошивка: Runnymede AIO V6.0.4.3, HBOOT: 0.93, S-OFF: off

Подцепившись [cci]adb shell[/cci] увдел, что недоступна /data, не распаковывает code.jar, framework.jar и прочие андроид библиотеки. Все отваливалось на попытке извлечь содержимое jar в dex файлы в dalvik-cache. Вытаскивание SD-card ни к чему не привело (да и не должно было бы: часть системы на ней)

Read more