Обои без резких цветовых переходов с удачно подобранной палитрой делают иконки и виджеты на экране разборчивей, облегчая работу с устройством. Я решил написать утилитку, позволяющую установить однотонные обои заданного цвета, а также обои в виде некого «гладкого» рисунка на основе нескольких выбранных цветов. Если по первому пункту вопросов нет, то с генерацией рисунка пришлось немного повозиться.
WPGen - палитра WPGen - одноцветные обои
Read more

Перевод статьи «Google’s iron grip on Android: Controlling open source by any means necessary».

Железная хватка Google: контроль над открытым кодом Android всеми доступными способами

Код Android открыт (за исключением самых лакомых его кусочков).
Рон Амадео, 21.11.2013
t_android-lockup1
Aurich Lawson
Шесть лет назад, в ноябре 2007-го, было объявлено о запуске проекта «открытый код Android» (Android Open Source Project, AOSP). Самый первый iPhone вышел всего несколько месяцев назад, взбудоражив воображение публики и провозгласив эру современных смартфонов. И хотя Google были партнёром Apple по части производства приложений, они уже представляли себе, как могло бы выглядеть будущее, не будь у iPhone конкурентов. Вик Гундотра (Vic Gundotra), вспоминая взгляд Энди Рубина на судьбу Android, рассказывает:

Он утверждал, что если бы Google бездействовали, нас ждало драконовское будущее, будущее, в котором один человек, одна компания, одно устройство, один оператор стали бы нашим единственным возможным выбором.

Google ужасала перспектива того, что Apple будет контролировать нишу мобильных устройств. Поэтому для борьбы с iPhone в условиях отсутствия какого-либо надёжного плацдарма в мобильном мире был запущен Android — проект с открытым исходным кодом.
Read more

Уже достаточно давно я выяснил, что оптимальным методом фильтрации SMS-спама для меня является отсев сообщений с номеров, которых нет в моей адресной книге. С этой задачей справляются многие программы, например, No Spam Sms или Simplest spam sms filter. Однако, ни одна из них не свободна. Решил исправить этот недостаток, попутно собрав в одной программе все необходимые мне функции:

  • Беззвучное уведомление о сообщениях с незнакомых номеров с занесением их в отдельный список;
  • возможность добавления отправителя в адресную книгу;
  • удаление или отправка сообщения во входящие.

Программа не работает в фоне, а запускается только при поступлении новых SMS (разумеется, список заблокированных сообщений можно открыть когда вздумается).
Read more

Со времён старого доброго Delphi 7 ни разу не кодил ничего GUI’ёвого, а тут чёрт дёрнул скачать ADT Bundle. И как-то сама собой написалась простая утилитка, функционала которой хотелось уже давно.
Задача её состоит в том, чтобы выводить настраиваемое напоминание при попадании в зону действия выбранной сети. Таким образом, можно напомнить себе о чём-то, когда попадёшь в указанное место. Определение места по имени беспроводной сети позволяет отказаться от GPS и сэкономить заряд аккумулятора. С этой же целью программа не «будит» устройство периодически, а активируется только когда устройство «проснётся». Поэтому если вы прибыли в нужное место, но ни разу не «разбудили» там аппарат, программа не сработает.
Read more

Утомившись ежедневно просеивать тонны шлака в поисках одной-двух действительно интересных новостей, решил натравить на новостную ленту наивный байесовский классификатор (широко используемый, например, для автоматической фильтрации спама). Для его тренировки добавлял к каждой новости две ссылки: “отстой” и “не отстой”, на которые тыкал в течение несколько дней. Там же выводил результат применения классификатора к этой новости.
Под конец обучения абсолютно все новости стали валиться в категорию “отстой”.
Конечно, в используемой библиотеке могли быть проблемы с кириллицей, или в мой код ошибка вкралась, но подопытный сайт из закладок я все-таки удалил.

Долгое время пользовался файрфоксовым расширением Dictionary Tooltip в связке с Яндекс.Словарями для перевода слов во всплывающем окне, без необходимости покидать страницу. Когда оно сломалось, я решил, как водится, модифицировать что-нибудь из имеющегося. Выбор пал на расширение English 2 Bangla Dictionary, не требующее, к тому же, перезагрузки браузера.
Изменил название, поменял адрес запроса на m.slovari.yandex.ru, добавил яндексовскую иконку в контекстное меню и получилось вот это:
 yandex-dictionary.xpi (v1.1.0)

Для перевода слова нужно его выделить и либо нажать Ctrl+G, либо выбрать пункт “Яндекс.Словари” в контекстном меню.
UPD: На сайте Dictionary Tooltip появилась рабочая версия расширения. Кстати, оттуда же я узнал про версию для Chrome.
UPD2: Похоже, с выходом Firefox 22 что-то поломалось. Расширение не работает. 🙁
UPD3: Поступила информация, что на некоторых конфигурациях в Firefox 23 расширение все-таки работает.
UPD4: Переписал всё с нуля, теперь должно работать везде.

Наконец-то нашел плагин для Пиджина, размещающий список контактов и разговоры в одном окне: Window Merge. Оценив удобство такого подхода, долгое время использовал Гаджим, но хотелось чего-то побыстрее и менее питонистого. Вот как выглядит Пиджин после компиляции и установки плагина:

UPD: Собрал RPM-пакет версии 0.3 для Fedora 18 64-bit:
pidgin-window_merge-0.3-1.fc18.x86_64.rpm

Не выдержал и написал скрипт, превращающий графические смайлики в текст. Использую его на паре-тройке регулярно посещаемых мной форумов, но при желании код нетрудно адаптировать для практически любого произвольного ресурса.
Было:

Гыыы лол lol hello flower blob appl

Стало:

Гыыы лол 😀 [hello2.gif] [flower.gif] [blob8.gif] [appl.gif]

Скачать скрипт:
 smileys_must_die.user.js
В начале скрипта находится список правил в формате [‘фильтр’, ‘замена’]. Скрипт ищет все картинки на странице, и для каждой из них проходит по списку правил. Если в адресе картинки содержится строка “фильтр”, то картинка замещается текстом из “замены”. Если “замена” при этом пустая, то отображается просто имя файла, например [sad_smiley.gif].
Чтобы добавить произвольный сайт, можно забить в таблицу адреса всех встречающихся смайлов и/или составить один общий фильтр (как правило все смайлы лежат в одной специальной папке на сервере). Также надо включить выполнение скрипта по нужному адресу в настройках Greasemonkey.

Под Linux существует несметное количество программ, уведомляющих о новых письмах, но можно организовать их проверку с помощью скрипта, периодически вызываемого через cron. При этом в памяти ничего сидеть не будет, а действие на прибытие почты можно назначить практически любое. Вот, например, скрипт для Gmail:
Read more

Гугль тут снова все улучшил, приходится улучшать его обратно.
Убрать предпросмотр страниц: Google preview killer.
Отключить анимацию кнопки “+1”: remove the plus one mouseover.
Убрать эту кнопку совсем можно добавлением фильтра ##button.esw в Adblock Plus.
UPD: Скрипт, убирающий предпросмотр страниц и возвращающий назад ссылки “Cached” и “Similar”.