пятница, 14 декабря 2012 г.

Pandora.com. Как запилить прослушивание, если вы таки в России

Все знают о last.fm, но немногие слышали о pandora.com, который в сто раз круче этого самого last.fm. Но вот не задача, pandora - таки не арбайтен автоматом у нас в России, поэтому был найден великолепный плагин для Хрома и Мозиллы - https://mediahint.com/. Ставим, заходим на http://www.pandora.com/, вводим название композиции или имя артиста, приступаем к прослушиванию :)  

воскресенье, 21 октября 2012 г.

О козлах и raspberry pi.

Много воды утекло с того момента, как я заказал сей девайс. Почти каждый день я как полный идиот проверяю почтовый ящик и вижу там... Нифига я там не вижу. Да, примерно полтора месяца назад они мне прислали сообщение с извинениями и все. Больше ничего. Козлы, где моя малинка???
Мораль сей басни такова - не покупайте малинку на официальном сайте. 

Sms самому себе или знай, что у тебя случилось.

Иногда есть вещи, о завершении(или начале) которых знать просто необходимо: упал сервак, завершилась закачка торрента или еще чего произошло. Для этого было бы очень полезно уметь слать смс самому себе, телефон - то всегда рядом с нами.  Тут сразу же вспоминается корпорация добра(google)  с ее google calendar и его смс - оповещениями. Поэтому нет ничего не логичного в том, чтобы взять и состряпать отсылалку сообщений самому себе с помощью данной фичи. Все просто до безобразия - смотрим API календаря(для python), пишем небольшой классик и все, можно оповещаться. 

class GoogleSms:
    def __init__(self, username, password):
        self.username = username
        self.password = password
        service = gdata.calendar.service.CalendarService()
        service.email = username
        service.password = password
        service.source = 'GoogleSms'
        service.ProgrammaticLogin()
        self.calendar_service = service

    def send(self, message):
        event_time = time.strftime(TIME_FORMAT, time.gmtime(time.time() + 3600))
        event = gdata.calendar.CalendarEventEntry()
        event.title = atom.Title(text=message)
        event.content = atom.Content(text=message)
        reminder = gdata.calendar.Reminder(minutes=60)
        reminder.method = 'sms'
        when = gdata.calendar.When(event_time)
        when.reminder.append(reminder)
        event.when.append(when)
        try:
            cal_event = self.calendar_service.InsertEvent(event, CALENDAR_URL)
        except gdata.service.RequestError, request_exception:
            raise


Хочу отметить, что если вы хотите, чтобы сообщение дошло до вас сразу же, то необходимо отправлять его за час(как-то странно выразился, но вроде понятно). Также лимит сообщения около 60 символов. Всего 20 смс в день. Ничего. Нам с вами хватит ;)

суббота, 1 сентября 2012 г.

О приложениях для Android.

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

Практически сразу после покупки устройства я понял, что смартфон просто необходимо рутовать. Объясню почему. Первая причина - экономия траффика, НОРМАЛЬНЫЕ приложения, с помощью которых можно блочить другие приложения, чтобы они не лезли в инет(когда не надо) требуют рута. Вторая причина - реклама, блокировщики рекламы также требуют рута. Третья причина - многие другие приложения, такие как антивирусы, лаунчеры и тд и тп, требуют рута. Поэтому если у Вас прошла гарантия или вы не боитесь ее потерять(я не боюсь, потому что можно потом рут взять и отменить:) ), я НАСТОЯТЕЛЬНО советую его рутануть.

Superuser - программа первой необходимости после получения рута. С помощью нее вы можете контролировать процесс допущения приложений к правам рута. Также superuser ведет журнал, что очень полезно. Ставим сразу.(нужен root)
DroidWall - приложение, с помощью которого можно создать два списка(белый и черный) для контроля доступа других программ к интернету(блочим допуск приложений к 3G). Must have! (нужен root)
CPU tuner - хоть я и пишу про эту программу после записи о двух других, но считаю, что эта программулина стоит на первом месте для любого Android устройства. Она частично решает такую большую проблему, как прожорливость операционки. Вы можете настроить несколько режимов работы смартфона, в зависимости от параметров батареи. Можно делать очень многое, все тут описывать не вижу смысла. Ставить нужно обязательно. (нужен root)
Tasker - лучшая программа для планирования запуска приложений, имеющая огромное количество функций, а также свой собственный язык программирования! Вещь великая, могучая и платная.
Total Commander - ну тут без слов, все знают что такое и для чего надо.
FTPServer - одно из многих приложений, которое делает из вашего смарта server Ftp соединения(что не безопасно, кстати), но с помощью данной функции можно много что творить со смартом(в скором времени напишу что именно). Также необходим в том случае, если вы не можете сделать FtpServer на своем компьютере и присоединиться смартом как клиентом.(нужен root)
Быстрый блокнот -  если что-то нужно быстро записать, не видя при этом кучи рекламы и кнопок управления - это лучшая из программ.
FPse - все мы любим поиграть. А я люблю поиграть в Sony Playstion 1. Это лучший эмулятор приставки для  Android.
EBookDroid - читалка кучи форматов.

Далее напишу приложения так сказать более узкой направленности.
SL4A и Script Launcher - программы для запуска скриптов на Python, Perl, Ruby.
Kivy Launcher - запускаем скрипты, написанные на Python прямо на смарте(я уже об этом писал)
AIDE - пишем полноценные Java приложения прямо на нашем устройстве.
Touchqode - программисткий блокнот

Я не являюсь пиратом, но и не пропагандирую платить за что-то, не испробовав это. Поэтому я просто оставлю ссылки на сайты тут:
http://4pda.ru/    http://rutracker.org/forum/index.php 

воскресенье, 26 августа 2012 г.

Пишем для Android на Python или немного о Sl4A и Kivy.


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

Мне же нужно иногда что-то запустить так, игры ради. Поэтому представляю вам два способа(которые и так многим известны) программирования под Аndroid на Python.

СПОСОБ ПЕРВЫЙ.

SL4A (Android Scripting) — интерпретатор, который запускает под Android скрипты на Python, Perl, JRuby, JS, PHP и др.

После установки мы получаем интерпретатор и несколько самых распространенных библиотек. Легко делается очень многое. Если сравнивать коды простых приложений, написанных на Java и Python(с помощью данной либы), то на Python примерно раза в 3-4 короче. Имеется неплохая документация + возможность программирования непосредственно на девайсе. В общем, must have!

Но все же мне больше понравился именно второй способ :)

СПОСОБ ВТОРОЙ.

Kivy - open source библиотека для быстрой разработки приложений, создания интерфейса для различных тач-девайсов.

Она меня очень обрадовала. Не ну правда, вспоните долгий запуск эмулятора андроида, вспомните, как долго и муторно происходит запуск, вспомните, что много выглядит все равно не так, как это будет смотреться на самом деле. Тут же все очень хорошо, написанное не только работает под linux, windows, android, но и работает быстро + есть доступ к нативным функция устройств.

Мы пишем приложение на Python(т.е. пишем очень быстро :)), ставим эмулятор для андроида с сайта библиотеки и можем просто забрасывать наши исходники на карту памяти в папку kivy - и всё!(каждая программа -  в отдельной папке). Мы получаем рабочую программу:).

А сейчас о грустном. В данной великолепной библиотеке я увидел два недостатка. Первый - при нажатии кнопки "возврат", мы не возвращаемся в предыдущее меню, а полностью выходим из приложения. Второй - портирование программы в .apk файл.(те, кто портировал в .exe наверное уже догадались :)), т.е. при портирование мы получаем огромный apkшный файл(вполне вероятно что больше 30мб, что очень важно, ведь некоторые телефоны не поддерживают больший размер).

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

Чтобы не трындеть тут зазря, в качестве первого примера приложения я написал программку - расписание занятий для моей группы в универе :) Собственно исходники расписания.
Выглядит эта штука в linux примерно таким образом, как оно будет выглядеть в Android можете проверить сами.