Python: полное разочарование, нет, ну абсолютно полное …

Придумал тут я себе задачку, ну как задачку, так небольшой time killer. Написать клиента Google Drive для моей NAS станции. Как и все порядочные NAS моя «зверушка» работает под управлением Linux, а по сему клиента буду писать на Python. Небольшие пасы руками и ipkg (менеджер пакетов), а вместе с ним и python 2.7 установлены.

Далее следует заход на страницу с описанием Google Drive API for Python скачивание и запуск примеров. Оооопс а вот и оно первое разочарование: название файла в хранилище Google Drive возвращается как unicode строка, а вот с подобными строками Python версии 2.7 работает очень плохо, в log файлах и в консоли строки выглядят как набор шестнадцетеричных чисел, что, скажем честно, не придает читабельности.

Еще смешнее выглядят книги по Python 2.7, в которых авторы пишут: » Сложно представить себе ситуацию, когда разработчику Python понадобиться работа со строками unicode»

Ладно, фиг с вами, ставлю Python 3.4 и снова оооопс: google-api-python-client работает только под Python 2.7.

Кстати, про то, что google-api-python-client работает только под Python 2.7 компания Google предупреждает сразу, а вот некоторые торопыги вроде меня подобные «мелочи» не считают нужным замечать.

То есть ситуация обратная: нормальная работа с unicode строками появляется (хвала разработчикам Python версии 3.4), но вот работа с Google Drive пропала напрочь …. На часах 00:22 — пойду-ка я спать …

MariaDB — неожиданное открытие

В праздничные дни копаясь в репозитории Linux (а что еще можно делать в новогодние праздники, как ни копаться в репозитариях  Linux)  я обнаружил странный, доселе мне неизвестный пакет MariaDB. Естесвенно призвав на помощь Гугль я узнал, что MariaDB — это fork MySQL, который, по заверению авторов проекта, помимо полной (ой ли?) совместимости с прародителем обладает кучей полезных фишек.

Естественно, что вся эта красота распространяется под лицензиями GPL, LGPL и BSD. Вкушайте !

PuTTY Connection Manager: удобная работа c SSH

При работе с протоколом ssh cамым распространенным клиентом является PUTTY

Лично я предпочитаю GitBash или CygWin. У меня вызывает искреннее удивление люди, которые пользуются чем-то иным для работы с командной строкой под Windows.

PuTTY Connection Manager несомненно сделает вашу работу с PUTTY в разы комфортнее. По сути это графическая оболочка позволяющая в одном окне открывать несколько PUTTY сессий в виде закладок. Сессии (точнее настройки сессий) можно сохранить в структурированном виде, что несомненно облегчит повторное открытие сессии.

Приложение еще сыровато, «глюк» открытия приложения из иконки в трее меня просто бесит, но это все меркнет, когда наступает момент «а что нам пишут серверные логи» …

Детальный обзор можно прочитать здесь.

GitBush и «VirtualAlloc pointer is null, Win32 error 487″

Сегодня любимый GitBash расстроил меня следующей ошибкой при старте:


0 [main] us 0 init_cheap: VirtualAlloc pointer is null, Win32 error 487
AllocationBase 0x0, BaseAddress 0x68560000, RegionSize 0x390000, State 0x10000
C:\Program Files\Git\bin\sh.exe: *** Couldn't reserve space for cygwin's heap, Win32 error 0

В детали ошибки я вдаваться не стал, а по-google-ив нашел следующее решение:

C:\Program Files (x86)\Git\bin>rebase.exe -b 0x50000000 msys-1.0.dll

Мне помогло, надеюсь поможет и вам.

Отмечено ,

Работаем с Google Drive в Linux

Все мы знаем насколько удобно работать с DropBox в Linux, особенно если это Ubuntu — знай себе, перетаскивай себе файлы в папку $HOME/DropBox да попивай чаёк, или что даже покрепче. В случае с Google Drive ситуация не столь радужная, насколько я знаю Google Drive клиент под Windows существует, а вот под Linux … Корпорация добра нас всё кормит завтраками.
Но как всегда находятся добрые люди, стремящиеся сделать нашу жизнь проще-и-краше. На этот раз огромное спасибо создателям Insync, они создали клиент, который без всяких нареканий синхронизирует ваши данные с облачным хранилищем от Google. От вас требуется всего-то установить приложение из репозитария или с сайта компании и запустить, да и не забываем выбрать Google account (пункт меню «Account Information»). К сожалению выбрать-или-задать папку синхронизации на вашем локальном диске не удасться, она (папка) задается по умолчанию как $HOME/Insync или даже точнее $HOME/Insync/ на тот случай, если вы синхронизируете несколько аккаунтов.

А как же DropBox малыш, он же лучше собаки ?! (c). Настоятельно рекомендую вам не покидать DropBox насовсем, все мы знаем страсть Google открывать и затем закрывать проекты, лучше подстраховаться. В моем случае я сделал симулинк $HOME/Dropbox на папку $HOME/Intersync/ и заставил DropBox и Google Drive работать синхронно и не пихаться локтями :-)

Windows Phone 8 за 249 долларов: Nokia Lumia 620

Как пишет Habrahabr «Windows Phone 8 за 249 долларов: Nokia Lumia 620″:

На конференции LeWeb 2012 Nokia неожиданно представила бюджетный смартфон под управлением Windows Phone 8. Встречайте Nokia Lumia 620.
Размеры: 115.4х61.1х11.0 мм.
Вес: 127 г.
Экран: 3,8″, LCD, ClearBlack, 800х480
Процессор: Двухъядерный Snapdragon™ S4 1Ггц
Оперативная память: 512Мбайт
Хранилище: 8Гбайт встроенное + MicroSD до 64 Гбайт
Беспроводные соединения: Bluetooth 3.0, NFC, Wi-Fi 802.11 a/b/g/n
Сотовая связь: GSM 850, GSM 900, GSM 1800, GSM 1900, WCDMA Band V (850), WCDMA Band VIII (900), WCDMA Band II (1900), WCDMA Band I (2100)
Камера основная: 5.0 мегапикселей со вспышкой и автофокусом, съемка видео 720р
Камера фронтальная: 640×480 пикселей
Аккумулятор: 1300 мАч 14,6/9,9 часов разговора в режиме 2G/3G
 

Ну что я могу сказать? «Рыба моя, я тебя так ждал!». Nokia 920, Nokia 820, Samsung Ativ S и прочие HTC 8x очень громоздки для меня, HTC 8S вроде бы «самое то», но без фронтальной камеры (и как Microsoft только пропустило такое), а вот Nokia 620 — «мой любимый размер, мой люимый цвет».

Отмечено ,

Meizu: этапы большого пути

Интересный экскурс «Упрямый Маверик Хуан Чжан и его смартфоны Meizu»  опубликовал ресурс Habrhabr:

Вероятно, в связи с тем, что мы никогда не зависели от инвестиций, Meizu не испытывала ни глобального провала, ни глобального успеха. Идти дальше гораздо важнее, чем просто идти быстрее!» – считает СЕО компании Meizu Бай Юнсян (Bai Yongxiang). У нас отсутствует внешнее финансирование, мы не занимаемся наклейкой логотипа «Meizu» на готовые типовые устройства, благодаря творческой, эстетической составляющей, компания Meizu является уникальным производителем привлекательных телефонов, которые может оценить любой, независимо от своих пристрастий.

Не статья, а прямо таки путь самурая, этакий азиатский Стив Джобс …

QIWI.Кошелек и русский iTunes Store. Платим без карты и комиссии

Real_Apple_Logo_1024x768_by_jawnx108Как пишет Habrahabr:

Apple по-настоящему удивила нас низкими ценами на музыку и фильмы. Скептицизм оказался ни к чему. Нам впервые позавидовали американские пользователи. Остался только один нерешённый вопрос — как можно заплатить за контент магазина? Хорошо, если у вас есть своя карта российского банка. А если такой нет?

На помощь придёт QIWI.Кошелёк — ныне единственный сервис в России, официально осуществляющий продажу виртуальных подарочных карт для оплаты в русском iTunes Store. Без комиссии и задержек.

Далеко идти не надо. Если у вас до сих пор нет аккаунта в QIWI.Кошельке — пора исправлять это недоразумение. Если вы уже являетесь зарегистрированным пользователем сервиса, пора пополнить баланс в русском iTunes Store через QIWI.Кошелек. Аналогичное меню появилось в соответствующих стационарных терминалах по всей стране, а также в фирменном приложении для iOS

Отмечено

Java: о позор на мои седины !

javaУвяз в изучении Python’a и как всегда моё восхищение вызвали slice’ы. Несколько дней ходил и цокал языком, какая красивая вещь ну и почему же ее нет в Java, пока не столкнулся с методом


List subList(int fromIndex, int toIndex);

интерфейса List.

Это же классический slice, возможно семантически не такой удобный как в Python или GoLang, но все же slice. Примеры реализации (кстати тривиальной реализации) можно увидеть здесь ArrayList

О позор мне, ухожу в дворники …

Отмечено

Java: удивительный трюк с Generic

javaНесколько раз встречался со следущей проблемой: есть вот такая с позволения сказать коллекция:

public class Foo {
private T[] data;
}

Как выделить память для массива data ?! Ну не вызывать же в самом деле new T[size] ?! Оказывается решение есть:

public class Foo {
private T[] data;
public Foo(){
data = (T[]) new Object[2];
}
}

Замечу, что (T[]) new Object[2] не должно выкинуть type cast exception так как компилятор «удаляет» тип Generic’a (т.н. type erasure) и оперирует данными только типа Object.

Отмечено
Отслеживать

Get every new post delivered to your Inbox.

Join 228 other followers