П.

Пишем мобильный клиент для Google Translate на C++

В этот раз я хочу рассказать о том как работать с еще одним online-сервисом, а именно с сервисом online-переводов Google Translate.

Для работы с этим сервисом у Google есть свой программный интерфейс, а именно AJAX Language API for Translation And Detection. Именно его мы и будем использовать.

Для того чтобы осуществить online-перевод текста необходимо сделать http-запрос к сервису переводов, доступному по адресу:

http://ajax.googleapis.com/ajax/services/language/translate

Параметры, которые необходимо передать сервису:

  • v=1.0 – версия сервиса
  • q=<sometext> – URL-encoded текст для перевода.
  • langpair=<source_language>%7C<result_language> – пара названий языков: исходного и результирующего

Read more

w.

wxYahooMaps – Библиотека для работы с Yahoo! Maps Image API

Странная вещь получается. А ведь нету нормальных библиотек для С++, работающих с online-сервисами карт. Все популярные сервисы предоставляют API для .NET, а С++, как мне кажется, незаслуженно обделяют своим вниманием.
И вот пару дней назад решил восполнить этот пробел. Выбор пал на сервис Yahoo! Maps, а если быть точным, то Yahoo! Map Image API, которое позволяет получить изображение карты, сформировав определенным образом REST (Representational State Transfer) запрос.
Read more

С.

Сравнение нетбуков. Все устройства в одной таблице.

В продолжение предыдущих постов (этого и этого) о нетбуках: нашел на википедии сравнительную таблицу устройств этого класса с указанием характеристик и цен. Вот сделал одностраничный PDF-постер из этой таблицы:

Сам PDF-файл можно загрузить здесь.

О.

О сверхдешевых ноутбуках и о том как не надо делать бизнес – Часть II

Ага, а вот и продолжение истории о ноутбуках “для всех”. Первую часть можно почитать здесь.

Итак, покупка. Как это было? Было это мм.. довольно странно. Договаривался я с братьсями-китайцами две недели, письма писать они умеют, пишут вежливо: “Dear Sir, …” и все такое. В общем-то две недели общения посредством e-mail даром не прошли, информации я узнал об устройствах достаточно и это только укрепило мое желание сделать покупку. Сказали стоимость доставки: $224 если отправлять с помощью EMS (Express Mail Service). Почему именно EMS? Потому что они доставляют посылки каким-то чудесным образом и за них не надо платить таможенный сбор, который у нас может составоять до 30% от стоимости посылки. Именно из-за таможенных сборов мне пришлось отказаться от отправки с помощью DHL, хотя, конечно, я им как-то больше верю, сколько раз с ними работал, всегда все получалось, а FedEx не рассматривался по той причине что качество предоставляемых услуг у них ээ.. как бы это сказать, ниже плинтуса.

Да, в общем сошлись на EMS. Посчитаю-ка я общую стоимость, что у нас получается $162 * 5 + 224 итого $1034. Это получается почти по $207 за устройство. Фигасе!, – подумал я, а как же ж “для всех”? А как же ж “сверхдешевый да еще и на Linux’е”? Это ж 2/3 стоимости EEE PC! Но делать нечего, “Двадцать тыщ уже уплочено” (с) Масяня.

Прислали инвойс. Перевод сделал ПриватБанком. На удивление довольно шустро все произошло, за 40 минут мне открыли лицевой счет (по-моему 30 гривен это стоило, около $6) и $12 взяли за перевод международный. Я даже удивился, в ПриватБанке обычно все ооочень медленно, а тут вот так получилось шустро. Хоть что-то приятное. Итого $1034 + 6 + 12 получается $1052. Это по $210 за штучку. М-да.. почти в два раза стоимость увеличилась от заявленной.

Итак, денежка ушла в Китай. В тот же день отправил братьям-китайцам скан квитанции об оплате и получил от них “большое спасибо, технологические образцы будут готовы в течении 2х недель”.

Ну OK, две так две, можно и подождать, до нового года еще далеко 🙂

Прошло две недели, отписываю им, мол “как там дела с железками”, на что получаю, что-то типа “мы тут как бы пытаемся выпустить новую версию устройства со встроенным Wi-FI модулем, давайте мы вам новые пришлем образцы, но чуть позже”. Слово “Фигасе!” почему-то оять посетило мою голову, при чем тут встроенный вайфай? Я ж проплатил внешний. Ну, говорю, смотрите, я вам за внешний заплатил, дайте мне чего я хочу, просто вышлите и все. В ответ тишина…

Прошла неделя, опять им пишу, мол чего там с железом-то? Я тут заждался уже! На что получаю ответ “ну вот мы тут еще и экранчик улучшили, стало больше цветов и разрешение улучшилось и там еще помните, встроенный вайфай… но этот время, мы это все готовим… но если чего, можем вернуть вам деньги”. Ооо, отлично, экранчик.. но как же $60 за внешние вайфай модули? В общем, решил подождать, обещали разрешение 800х480 (оказывается раньше было меньше!).

Подождал до начал аоктября, опять тишина. Отписываю, мол, ну как там? Уже сделали? Опять тишина. Но я настойчивый, каждые три дня писал им письма 🙂 Наконец-то вот три дня назад получил ответ что мы отправили DHL’ом. Трекинг намбер бла-бла-бла.

Оооо! Отправили! Но DHL! Это получается что за все это добро мне прийдется платить таможенный сбор! Ну ёкарныбабай, мы же договаривались! С таким раскладом мне эти устройства выйдут по стоимости как EEE PC! Решил было успокоиться, но не ту-то было. На сайте DHL указанный tracking number оказался невалидным. Для пущей уверенности пошел проверить на сайте EMS, может в письме ошиблись с названием компании-курьера… Попробовал, то же самое, невалидный номер.

Сегодня отписал им по этому поводу, жду ответа, нервничаю…

Продолжение этой истории напишу как появятся новые сведения.

ЗЫ: У кого-нибудь еще есть опыт покупки оборудования в Китае? Как это было?

О.

О сверхдешевых ноутбуках и о том как не надо делать бизнес – Часть I

Вот я вам сейчас расскажу такую историю, вернее начну рассказывать, т.к. она не закончилась еще…

Еще два месяца назад, в августе, попалась на глаза новость о том что вот, браться-китайцы выпустили в свет самый дешевый-предешевый в мире ноутбук, стоимостью $99 и что счастлив тот компьютерный гик, у которого этот ноутбук есть. Я заинтересовался, штука интересная, на Windows CE, пошел искать где же это добро можно приобрести, нашел в единственном месте, на Alibaba.com. Найти-то я нашел, но… в общем, ресурс это для оптовых покупателей и оптовых продавцов и по поводу покупки чего бы там ни было в розницу договориться почти невозможно. По крайней мере компания, которая эти вот самый субноутбуки производит, со мной общаться не захотела (то ли они английского не знают, то ли им было лень мне отказ написать, но они даже не ответили мне на письмо, но ладно, это уже не важно). Ну не захотели они и ладно, порыскал в сети еще, нашел модель чуть подороже, Impulse NPX-9000 за $129. На вид неплохо, X-Scale’овский процессор, на борту Linux кастомной сборки. Да, собственно, вот они, характеристики-то:

  • 400 MHz Intel / Marvell X-Scale CPU
  • Super Slim and Light – 21.3 cm x 14.2 cm x 3.3 cm and only 725 g
  • 7″ TFT LCD ( analog )
  • 128 MB SDRAM
  • MSystems MDOC 1GB NAND Fast Flash
  • 80 Key Keyboard with Touch Pad
  • Optional 10/100 Mbps LAN Dongle and WiFi
  • Interfaces: 1 x VGA, 3 x USB 2.0, 1 x Mic
  • 1 x Headphone Jack, 1 x Line-in
  • SD / MMC Memory Card Reader / Writer Slot
  • Battery: 2100 mA/h Li-Polymer Battery
  • Power: AC 110~24- V, 3.0 A, 10.0 V DC

Ну ладно, это хоть и не $99, а на целых 30% дороже от того что я планировал изначально, но и на вид лучше, вон Wi-Fi модуль есть внешний и сеть (тоже внешняя, но это, в принципе, не страшно).

Написал компании-производителю, ответили, оказалось что у них можно заказать мм.. ну, скажем, мелким оптом (минимальный размер партии на портале Alibaba 100 единиц, я договорился на 5… это что-то  типа “технологического образца” получилось).

Тут мне пришлось огорчиться еще раз, если покупать мелким оптом, то стоимость каждого устройства возрастает до $150 да еще и $12 стоит USB Wi-Fi модуль и LAN модуль, за них прийдется платить отдельно. Подумав немного решил остановиться на Wi-Fi, т.к. мобильность, хотелось бы не привязываться к шнуркам чтобы в сети посидеть. Итого получается $162 за каждое устройство, а это на 60% больше чем я ожидал вначале… как-то это.. странно что ли, где же обещанная “доступность ну просто для всех”?

Подумав денек, решил что покупать я их все же буду, 5 устройств: одно себе, куда определить остальные 4, думаю, найду.

О том как проходила покупка расскажу в следующем посте, прям эпопея какая-то.

A.

Android Maps API теперь требует ключик

Сегодня Дэн Моррилл (Dan Morrill) в блоге Android Developers анонсировал нововведения в процессе разработки приложений для Android. Нововведения касаются Maps API, которое теперь требует ключ (API key). Как отмечено в анонсе, до этого API key не использовался, т.к. правила пользования (Terms of Service) Maps API не були завершены. Ознакомиться с новыми правилами пользования Maps API для Android можно здесь.

Особенностью использования API key является тот факт, что для подписи своего приложения, работающего под эмулятором и на реальном устройстве, разработчику будут нужны два отдельных ключа. Пока не очень понятно, нужно ли будет подписывать каждое приложение отдельным ключем или же достаточно одного ключа для всех приложений под эмулятором и еще одного для финальных версий, работающих на устройствах.

Радует, конечно, что процесс получения ключей бесплатен. Также радует что API key нужен только в том случае если приложение использует MapView. Получить API key можно здесь.

PS: Интересно, это только у меня паранойя, или, все же, для платформы Android Google выступает в роли Большого Брата?

A.

Android OS – Реальный OpenSource! (теперь в новой упаковке) ;)

Сегодня Джейсон Чен (Jason Chen) в блоге Android Developers Blog анонсировал что Open Handset Alliance опубликовали исходный код платформы Android. Загрузить исходный код, а также ознакомиться с инструкцией по сборке под управлением различных ОС, можно вот по этому адресу (специальный сайт завели для этого, надо же ;)).

Ура, товарищи!

О.

Осваиваем платформу Google Android. Обзор литературы.

Пока платформа Android набирает популярность, самое время обзавестись литературой по программированию Android-устройств.

Jerome DiMarzio – “Android. A Programmer’s Guide”

В книге расскажет о том, как начать разработку для платформы Android с нуля: как скачать и установить все необходимые средства разработки, как создавать, настраивать и отлаживать приложения для Android. В книге освещены вопросы использования API для работы с интернетом, для взаимодействия с GPS-приемником, для работы с базами данных SQLite и функциями телефона.

Содержание книги:

  • Установка и настройка Java, Eclipse и Android-плагина.
  • Создание Android-проектов из Eclipse UI или командной строки.
  • Работа с функциями телефона.
  • Интеграция веб-контента: картинки, галереи и звуки.
  • Выпадающее меню, прогресс-бары и функции авто-заполнения полей.
  • Интеграция GPS, Google Maps, Google Earth и GTalk.
  • Создание интерактивных баз данных SQLite.
  • Тестирование приложений с помощью Android Emulator и Debug Bridge.

Книгу уже сейчас можно заказать на Amazon’е.

Chris Haseman – “Android Essentials”

Чем может быть полезен сей труд? Он может помочь:

  • Понять как функционирует приложение для Android и как оно взаимодействует с устройством.
  • Понять работу таймеров, сервисов, а также функции обработки медиа-контента.
  • Научиться создавать собственные компоненты (widget’ы).
  • Понять почему геопозиционирование становится все более популярным в мобильном мире.
  • Разобраться как пользоваться API для работы с Google Maps на Android-устройствах.
  • Научитсья организовывать сетевое взаимодействие мобильных приложений для Android.

Книгу уже сейчас можно заказать на Amazon’е.

Reto Meier – Professional Android Application Development

В книге описано:

  • Введение в разработку для Android.
  • Углубленный взгляд на Android-приложения, их жизненный цикл, использование манифестов, Intents, а также на использование внешних ресурсов.
  • Подробности по созданию сложных пользовательских интерфейсов с помощью улучшения существующих и создания ваших собственных компонентов.
  • Подробный взглянуть на способы хранения данных, получения и совместного использования настроек, файлов, баз данных и контент-провайдеров.
  • Инструкции для работы с картами, location-based сервисами и геокодером.
  • Разработка фоновых сервисов, работа с потоками и уведомлениями.
  • Комуникационные возможности: работа с SMS, телефонией, сетевое взаимодействие.
  • Работа с аппаратными устройствами, включая камеру, акселерометры, компас.
  • Межпроцессовое взаимодействие, 2D/3D графика, взаимодействие с пользовательскими устройствами.

Чем хороша эта книга? Прежде всего тем… что ее еще нет 🙂 Что это значит? Это значит что когда она будет (а, по плану, она должна появиться в декабре этого года), в ней будет описано самое последнее API для Android, а значит информация будет максимально актуальной.

Книга доступна для предзаказа на Amazon’е.

По поводу литературы на русском… Это больная тема. Даже если она будет, то скорее всего не скоро и, скорее всего, качество перевода, как это часто бывает, будет не самое лучшее… Поэтому пока довольствуемся тем что есть.

PS: И немного о приятном. В сети есть чудесная книжеца – AndBook, которая может помочь начать разрабатывать приложения для Android. Книжеца на английском, зато бесплатная, доступна для заргузки в PDF-формате.

G.

Google меня пугает! Они обещают что смогут сами удалять ПО, установленное на телефонах пользователей

Сегодня ComputerWorld опубликовал такую штуку, от которой лично у меня до сих пор волосы дыбом!

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

Google may discover a product that violates the developer distribution agreement … in such an instance, Google retains the right to remotely remove those applications from your device at its sole discretion

Ну ничего себе они мне такое рассказывают! Как пользователь я бы очень не хотел чтобы “Большой Брат” сидел в моем телефоне и следил за тем как, когда и зачем я использую установленное ПО. И к тому же все это на “открытой платформе Android“. Ну надо же было так испоганить идею.

Напомню что подобная возможность, называемая “Remote Kill Switch”, ранее была обнаружена в телефонах Apple iPhone, что вызвало недовольство со стороны пользователей, обеспокоенных ущемлением их прав.

Вместе с тем, Google обещает что будет стараться вернуть деньги пользователю за удаленное ПО:

In addition, Google says that if it does remotely remove an application, it will try to get users their money back

Классно! Всю жизнь мечтал. Google именно “будет стараться”, никаких гарантий. Описание подобных “стараний” найти не удалось.

Как разработчика меня, возможно, устроил бы вариант с удалением пиратских копий моего ПО, но возврат денежек за пиратскую копию как-то… не радует.

Вот так из хорошего получается странное… А в том, как же это работает, нужно будет еще разобраться.

В.

В сети появились первые скриншоты Firefox Mobile (Fennec)

В сети появилась информация о том что Mozilla CEO Джон Лилли (John Lilly) в интервью Mercury News заявил о том что мобильная версия браузера Firefox (Fennec) должна появиться в течении месяца. Также он представил первые скриншоты Fennec.

Веб-разработчикам, наверное, будет интересен тем факт что Fennec получил 88 баллов из ста в тесте Acid3.

На данный момент в списке официально заявленных мобильных платформ, для которых будет доступен Fennec, указана только UME (Ubuntu Mobile and Embedded)  для Nokia 8×0, но планируются также версии и для остальных популярных мобильных платформ.

Официальную информацию по этому поводу можно узнать здесь.

PS: Меня как разработчика ПО для мобильных устройств очень интересует, на сколько удобным будет процесс встраивания браузера в приложения на С++. Если в дистрибутиве Fennec, как и в дистрибутиве Firefox для десктонов, разработчики предусмотрят наличие примеров, то вполне возможно что этот браузер станет довольно удобным инструментом разработки ПО для Ubuntu Mobile and Embedded ибо на данный момент более-менее комфорстно можно пользоваться только WebKit’ом, и то, для этого требуются длительные танцы с бубном %)