Электричество

Какая-то фигня в доме. За неделю уже 5 или 6 раз пропадает электричество!

Ни поработать, ни Олимпиаду посмотреть…

Как делать Google Chrome Extension

Пока не забыл всех особенностей секса с Google Chrome Extension запишу все грабли на которые я наступил. Надеюсь, кому-то пригодится 🙂

Прочитать http://code.google.com/chrome/extensions/docs.html конечно же полезно. Но дьявол таки в деталях. Вот моменты, которые неясны даже после прочтения доков, факов и рассматривания готовых примеров:

Chrome Extension — это набор .html, .js, .css файлов, главный из которых manifest.json. В манифесте описывается приложение, его тип, необходимые пермишены (например, загружать внешние скрипты), поведение и т.д. Все файлы можно держать в отельной папке, а можно «скомпилировать» в .crx файл (на самом деле ZIP архив).

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

Добавляются экстеншены в Chrome через menu->tools->extensions, либо кликом по ссылке/файлу с .crx расширением.

Для тестирования и отладки приложений локально, надо нажать галку Developers Mode вверху страницы этих самых Экстеншенов. После этого можно загружать не запакованные приложения (из папки), а так же создавать готовые .crx файлы для распространения самостоятельно.

Кнопка в тулбаре обычно находится сразу, а вот что бы запустить приложение типа аппликейшен — надо открыть новый таб и снизу перейти в Apps страничку. Вам смешно, а я минут 5 не мог найти, где же запускать свое приложение без тулбара 🙂

Background page — это не страница/скрипт которые отображаются в Chrome! Это невидимая страница, которая запускается в одном экземпляре и позволяет взаимодействовать со всеми частями (страницами, скриптами, стилями) экстеншена.

Никакого JavaScript в HTML! Будут работать только подключаемые файлы, это типа защита от инжекшена скриптов. Файлы .js надо класть рядом с .html и просто подключать srs=»abc.js». Это важный момент, а он описан мелким текстом в дебрях документации…

Стандартный .crx файл это ZIP архив, но для паблишинга в Chrome Web Store .crx не подойдет 🙂 Google требует заливать именно .zip файл со всеми файлами приложения. Более того в manifest.json не должно быть комментариев и лишних строк! Иначе при публикации буду непонятные ошибки типа: «An error occurred. Your error has been reported to Google.» 🙂 Так же для публичного экстеншена не должно быть пункта «update_url» в манифесте (офигенная логика!)

Если будете хостить .crx файл на своем сайте, то обязательно пропишите MIME для .crx файлов. Иначе хром будет скачивать приложение, а на установке ругаться. Для апача в .htaccess файле надо прописать:
AddType application/x-chrome-extension .crx

Для автоматического апедейта приложения надо заполнить «update_url» поле в манифесте. По URL должен открываться udate.xml файл, в котором надо не забыть прописать верный appid=’xxxxxyyyyyzzzz’. ID найти не так уже и просто 🙂 Надо установить .crx в Chrome, зайти на страницу приложений, и включить Developers mode. Тогда в списке приложений так же появятся и их ID (случайно нашел!)

Если дойдете до паблишина в Chrome Web Store, то будьте готовы заплатить 5 баксов (разово) за открытие аккаунта.

Developers Dashbord глючная и не совсем понятная штука, так что готовьтесь внимательно читать мелкий тест и следить за ошибками. Особенно бесит, что опубликованное в Tester Account приложение нельзя скопировать в публичный доступ. Приходится вводить все описания и загружать медиа файлы по новой…

Для добавления Экстеншена в Chrome Web Store потребуется иконка размером 128×128, но при этом картинка должна влезть в размер 96х96! Исключение для «круглых иконок», там рабочее поле посередине и 112×112 пикселей. Короче очередная шизиловка от Google 🙂

Так же для Chrome Web Store понадобится скриншот (640×400 или 1280×800) и как минимум один промо материал (440×280).

После паблишинга Экстеншена не спешите всем сообщать новость о том, какой вы крутой. Скорее всего приложение опубликуется в тестовый аккаунт и будет работать только у пары-тройки ваших друзей (там есть списочек). Проверьте работоспособность ссылок на разных компьютерах и под разными операционными системами (Win, Mac, nix) ну а уже потом рассылайте новость о своей «поделке» 🙂

Ну вроде все. Будут и другие грабли, но на самом деле все не так уж страшно. Желаю успехов в написании приложений для Google Chrome!

P.S. Моим первым экстеншеном было вот это: Bad Pixel Test for Google Chrome

Секс с отправкой почты через SMTP.GMAIL.COM

Если вдруг захотите слать почту через SMTP.GMAIL.COM, из почтового клиента или из своей программы, запомните следующие важные моменты:

Все адреса, в том числе СС, BCC и т.д. должны предаваться обернутыми в , и неважно указано имя или нет! То есть, работать будут только такие адреса:

Баба Катя

Любые другие варианты будут приводить ошибкам типа «RCPT first», «Syntax error» или вообще что-то не вменяемое типа «Error 555»

В любой момент Gmail может решить, что вы рассылает слишком много писем через SMTP. И тут уже почтовый клиент не поможет! Надо будет ручками открывать браузер, легироваться в Gmail аккаунт и потом топать по вот такой ссылке: https://accounts.google.com/DisplayUnlockCaptchaV2 и нажимать там кнопочку «Continue». Но и такая фигня поможать всего минут на 10, у Google реально паранойя 😦

Ну и информация для программистов:

Для SMTP.GMAIL.COM по 587 порту требует Explicit SSL и команды «STARTTLS» сразу после соединения.

SMTP.GMAIL.COM по 465 порту работает как Implicit SSL, немного медленнее, и по-моему чаще приводит к срабатыванию защиты от mass mail.

Если вы программите на Delphi и используете библиотеку Indy. Особенно комбинацию Delphi7 + Indy9 то я вам соболезную 🙂 Я 2 дня убил на то, чтобы подобрать рабочие версии нестандартных OpenSSL библиотек для корректной работы с SMTP.GMAIL.COM

Так же будьте внимательны с TidMessage.Recepients — это коллекция объектов и в случаи появления там элемента с пустым email или кривым name — начнется секс с «RCPT first», «Syntax error»

Отака хуйня малята © Дид Панас

Twitter за весь день

  • 03:52 Вот такой ацкий ноутбук мне принесли t.co/6ZyjQbdV Абсолютно новый ценой $320 за 15.6" Попросили поставить MS Office 😉 #
  • 04:42 Да уж, крутые нотеги у ow.ly/6J6S6 На стартует с флешки! Более того, даже BIOS самопальные, в Setup стрелочки не работают 🙂 #
  • 12:02 Покращення все глубже! Никому не нужны талоны на бензин? ЛукОйл на 10 литров, по 100грн, есть ~50шт. Бартер вернулся… #ukriane #zhopa #
  • 13:58 Поехал на #SCTest #
  • 15:09 Всем привет на #SCTest #
  • 15:17 Сумка-трансформер прикольно, но рюкзак привычнее. А идея хороша. #SCTest #
  • 15:33 Полный булшит по цифрам #SCTest #
  • 15:45 Посмотрим какие у вас оценки будут летом следующего года 🙂 #SCTest #
  • 15:52 Без откате нет Каена 🙂 #SCTest #
  • 15:54 Если компания не дает откатов, то откат делает аккаунт менеджер в тихаря. #SCTest #
  • 15:56 Откат — это плата за транзит 🙂 #SCTest #
  • 16:04 Точка зарабатывает, но тратит больше 🙂 #SCTest #
  • 17:11 А на сцене #sctest @dennydov Все вроде бы обычно, но он не ведущий, а представляет проект! 🙂 #
  • 17:30 Презентация нейронов на #SCTest #
  • 20:52 Краны починил, ща разбираюсь с билетом на самолет. #
  • 21:56 Мля, 2й раз заказываю билет на Москву, опять что-то зависло. У Хромого Пола уже все ржут с меня 🙂 #isdef #
  • 22:24 Млять! Где мой Етикет?! #isdef #
  • 22:27 Все еду, домой, буду от туда разбираться с билетами… Блин, как же достал бетатестинг жизни 😦 #
  • 23:16 Блин, это пипец. Деньги с карточки сняло, а никакого етикита не пришло. Ща буду будить сотрудников авиакомпании… #isdef #
  • 23:32 Пиздец а не #Aerosvit! Поговорил с оператором "Оплата прошла, но билет выпустить не можем". Пишите письмо чтобы вам вернули деньги… #zhopa #

Twitter за весь день

  • 01:03 День в гавно, а все потому что начал глючить комп ;( #
  • 01:05 Вот будет ржака если проблема не в железе, а в какой-то из прог которые апдейтиться автоматом и в тихаря. #
  • 01:07 Ладно, завалюсь с горя спать. День тупой был ;( #
  • 09:00 У кого из киевских друзей на нотегах есть сканер отпечатка пальца? Давайте пересечемся, надо одну прогу протестировать. Можно У Хромого Пола #
  • 09:05 Всем доброе утро. А я возращаюсь к тестингу компа. Сдается мне зависает в Punto Switcher. #
  • 09:12 Нашел после чего комп стабильно зависает: ручная перекодировка текста с помошью Punto Switcher Версия 3.2.0 сборка 27 #
  • 09:34 Снес нафик Punto, поработаю немного без него и проверю… Ниужели что-то в очереди хуков развалилось после анинстола какой-то программы? #
  • 11:15 Для теста скачал новый #Punto Switcher. После нажатия хоткея ровно через 3 секунды компьютер Win 7 x64 завис! В общем прогу в топку 😦 #
  • 11:19 Кто на SEARCH ENGINE MARKETING CAMP, KIEV идет? t.co/nyqocdz #
  • 12:13 Тоесь #PayPal в Украине так и не появиться? ow.ly/6ghNn Мля… #
  • 12:19 Подобрал комбинацию софта, комп вроде работает. Пойду на радостях позавтракаю 🙂 #
  • 15:59 Зашел на кухню, а там такое! t.co/pFPk79H #
  • 16:01 Ладно, смертельный номер. Еще раз ставлю новую память в ноутбук. Если меня не будет долго онлайн — считайте меня бухим с горя 😉 #
  • 16:03 Повторяю: У кого из киевских друзей на нотегах есть сканер отпечатка пальца? Давайте пересечемся, надо одну прогу протестировать. 5 минут. #
  • 16:30 Раз лето скоро закончиться то включил в одной комнате кондиционер, ну и что что не жарко 🙂 #
  • 17:40 Ну так что, никто мне так и не подскажет как копировать виджеты с настройками в #Wordpress? Ниужели все по 2-3-5 раз одо и тоже настраивают? #
  • 18:24 3й час пошел. Полет на новой памяти нормальный. Тяжело все-таки быть бетатестером… #
  • 21:00 Пошел ужинать. Нет, еще не какал 🙂 #
  • 21:48 Че-то я и сегодня устал. Лягу спать наверное… #
  • 21:50 Прикольный страртап запустился: Vizualize.Me t.co/8V35gJO #

Twitter за весь день

  • 07:23 Типа поспал… Доброе утро! #
  • 08:44 Завис комп, видно после замены памяти что-то начало конфликтовать. Я правда вчера еще кучу софта разинстолил. Поставил на полную проверку. #
  • 10:26 Кстати, а где в Windows 7 находиться лог проверки диска? Чекдиск на старте ща работает, а я потом хочу результаты посмотреть… #
  • 10:46 Вот для чего небюук на #Atom не подходит, так это для монтажа и выкладывания видео на YouTube. Хотя если пойти погулять немного 🙂 #
  • 11:42 Такс, чекдиск закончил первый винчестер, пойду пересяду за основоной ноутбук. #
  • 11:50 Мля, комп опять повис. Память обратно вернуть что ли? #
  • 12:13 Тулза диагностики памяти Win7 проблем не нашла. Что же сломалось? #
  • 21:30 Вот чего в селе выросло, даже вкусный 🙂 t.co/xo6RCkU #
  • 21:33 Опять прогоняю тест памяти t.co/gM6td1K Но здается мне трабла в другом месте 😦 #

Twitter за весь день

  • 18:25 Капец, этих Samsung #Galaxy S целый зоопарк по всему миру… И конечно же @sasha_paleeva достался такой что не апгрейтит #Android вообще 😦 #
  • 19:49 У @sasha_paleeva Samsung Galaxy S даже не заходит в Download или Recovery моду по нажатию 3х кнопок, пришлось хачить через SDK Debug Tool 😦 #
  • 21:46 Сделал таки кирпич из Galaxy S ;( Пошел за паяльником. #
  • 22:18 Усрал целый день на ровном месте. У техники самсунг под одним и тем же названием может быть такой зоопарк разных устройств — что ужОс! #
  • 22:21 Если у вас Galaxy S с отключенным Download mode по комбинации 3х кнопок — лучше продайте его врагу. Перепрошить его почти невозможно 😦 #
  • 22:33 Посоветуйте где купить крестик для ребенка, в воскресенье крестить буду 🙂 #
  • 22:48 Но все-таки я расстроен… Блин, кучу дел лучше бы сделал, вместо этого чуда Самсунговской техники 😦 #
  • 23:40 Сделал Auto Mute 0.7 для Android. Публичной версии пока нет 🙂 #
  • 23:41 Все, на сегодня работы ака мучений хватить! Пошел смотреть кино… #