воскресенье, 6 апреля 2008 г.

Авиабилет Москва-Амстердам-Москва.

Сегодняшняя заметка носит запоминательный характер для меня и, возможно, пригодится кому-то из читателей.

В свете того, что мне понадобилось слетать в Амстердам =) я начал искать самую бюджетную возможность добраться до города...тюльпанов. Самолетом. В одном вменяемом агентстве мне поведали, что в Амстер летает много авиакомпаний. Просто многие из них с пересадкой в каком-нибудь европейском городе. Вот список тех, кого пробивал я:

  • Аэрофлот (без пересадки)
  • KLM (различные варианты)
  • AlItalia (с пересадкой)
  • SAS (с пересадкой)
  • LOT (с пересадкой)
  • SwissAir (с пересадкой)

Далее я аккуратно просчитал билет на одинаковые даты во всех авиакомпаниях. К сожалению, цены я тогда не переписал, а сейчас билет на те же даты стоит уже по-другому. Но в итоге я отправился за билетами в SAS, т.к. их вариант (14 т.р.) оказался самым выгодным с точки зрения времени вылета/времени полета/цены. Такой же, но беспересадочный рейс у KLM стоил на 2 т.р. дороже.

Надеюсь, что качество сервиса будет на сколько-нибудь приличном уровне и я не подпаду под статью "скупой платит дважды" =)

пятница, 4 апреля 2008 г.

Ubuntu 8.04 beta. Шаг вперед, два шага назад.

Зачем обновляться до beta?..

Угораздило меня попасть на сайт убунты, и увидеть там "25 дней до релиза". Потом угораздило прочитать в каком-то блоге об успешном обновлении до бетаВерсии. До этого читал, что человек обновился до альфы, и ему всё нравится.

Вечер был свободный ;) Поэтому и я набрал update-manager -d и смело нажал "Обновить". Убунта честно предупредила, что обновляться будет до беты, что качать придется метров 900 и что вообще всё опасно. Пути назад не было =)

Я думал, что процесс пойдет автоматически, поэтому пошёл пить чай, однако, вернувшись, я обнаружил диалоговое окошко с вопросом "Какой из конфигов использовать для ..." И таких вопросов мне задали много. Т.е. не уходите пить чай, а вдумчиво следите за обновлением. К тому же это процесс поинтереснее дефрагментации диска ;)

И что в итоге?..

В принципе, все изменения отражены в changelog'ах, поэтому я приведу лишь субъективные впечатления.

  • Пропал звук. Устройств, на которые можно подавать звук в системе обнаружено не было. Проблема была в ядре, оно обновилось спустя 4 дня. Звук появился. Ура.
  • В системе поселился Tracker, который активно за мной следит. И всё время всё индексирует. Пока я с ним не общался на предмет индекса, но лишний значок в трее заметил ;)
  • FireFox обновился до 3b4, следовательно, половина add-on'ов стала неработоспособной. Особенно мне не хватает FireBug и Del.icio.us-плагина. Ставить "check for version compatibility" в "none" мне не хочется. В прошлый раз плохо закончилось =) Подождем...
  • Слетела тема MacOsX (надеюсь, не палюсь ;) Правда не целиком, а только частично. Оччень весилит
  • Есть ощущение, что система дольше грузится. Надеюсь, после релиза ей полегчает

Вообщем, это хороший такой LTS-релиз, т.е. без наворотов и революций. Обновление прошло почти успешно, полет нормальный. Ждем релиза.

среда, 26 марта 2008 г.

Как я подСел на подКасты.

Сегодняшняя микрозаметка будет посвящена подкастам, кои я открыл для себя совершенно недавно. Дело, кажется началось с Хабра, на котором подКастам отведен отдельный тег, где они кучкуются. Вообщем, в очередной раз увидев на главной странице новость о выходе очередного подкаста, я решил послушать о чем же говорят люди. Послушав, кажется, об ИнтернетМаркетинге, я жОсктко вдохновился и понял, что подКасты являются идеальным заполнителем рыхлого времени, которое, обычно, забивается музыкой. Или, если совсем всё плохо, радио

Но не удобно же, блин качать их по ссылкам и заливать в телефон руками. Поэтому, пошерстив безнадежный рунет, нашел на забугорном сайте более или менее приличную таблицу сравнения. Прошерстив и её, выбрал самое банальное - gPodder, который в Убунте ставиться apt'ом.

GPodder умеет уже многое. Конечно с багами и прочим, но это джедаям опенСорса не помехи. Например, он может синхронизировать подкасты с плеером или iPod'ом. Мой телефон он принял за плеер и удачно залил на флешку то, что скачал. Правда с русскими кодировками у него плохо. И файлики называются _____.__C___.mp3. Но это тоже не пугает джЕдаев =)

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

четверг, 13 марта 2008 г.

Ubuntu. Проблема с кодировкой CD/DVD дисков.

Давно возникал вопрос, почему на вставленных cd/dvd дисках папочки с русскими названиями были представлены знаками вопроса. В связи с тем, что дисками я не часто пользовался, я на это забивал =) Ну а если не забивал, то пробирался по диску вслепую =)

Ответ был подсмотрен в убунтарии на хабре. Вся (грустная) правда в том, что диски монтируются в неизвестной кодировке. Чтобы ситуацию поправить раз и навсегда, стоит открыть на редактирование /etc/fstab и дописать там в опциях монтирования оптоДисков iocharset=utf8

П.С. Больше трех месяцев в Ubuntu. Полет нормальный =)

четверг, 28 февраля 2008 г.

Обо всем по-немногу. Firefox, AMR, ExtJS.

Прошу прощения у читателей/подписчиков за продолжительное отсутствие. Проекты съедают много времени. Что не съедает работа, догрызает свое дело. Свет в конце тоннеля пока не виден, поэтому учимся жить в условиях ограниченного времени.

Сегодняшняя заметка будет очень короткой, но информативной. Посмотрим на пару улучшений, которые я давно хотел описать

Конвертация AMR и 3gp.

Я часто пользуюсь диктофоном на мобильном телефон. Во-первых, потому что не всегда есть возможность достать бумагу и ручку, а во-вторых для того, чтобы хранились логи встреч, которые потом можно послушать, если забыл что же было решено по итогам встречи ;)

Я не помню уже, чем конвертировал из amr в mp3 под Windows, но под *nix искать программу долго не пришлось. Попробовав несколько самопальных скриптов, некоторые из которых опасны для жизни файлов ;) я остановился на программе Mobile Media Converter (ссылка внизу страницы, между гуглоРекламой, долго искал =). Программа с самым банальным интерфейсом и тем очень удобна. Умеет работать с amr и 3gp, а большего мне и не нужно.

Знаменитый баг Firefox

С этим багом я столкнулся сразу же после установки Ubuntu. Это тот самый знаменитый баг, из-за которого хоткеи не работают в русской раскладке. Его уже поправили (за деньги), но исправления будут только в Firefox 3. А пока, необходимо установить маленький add-on, который всё вам поправит. И будет шастье =)

Небольшой багФикс для ExtJS

Замешивая полный винегрет из тем, упомяну ещё одну вещь. Все знают, что ExtJS можно заставить говорить по-русски в окошках/менюшках, просто подключив файл с русской локалью. Но в нем есть один неприятный и редкий баг. При работе с DateField, когда выставляется формат содержащий месяц прописью (янв, фев и пр.), мы получаем январь 1970 года и ничего кроме.

Вся проблема кроется в массиве Date.monthNumbers, в котором содержатся неверные короткие имена. Надо просто заменить его на следующий:

Date.monthNumbers = {
  Янв : 0,
  Фев : 1,
  Мар : 2,
  Апр : 3,
  Май : 4,
  Июн : 5,
  Июл : 6,
  Авг : 7,
  Сен : 8,
  Окт : 9,
  Ноя : 10,
  Дек : 11
};

На сегодня — всё. Надеюсь, что скоро станет посвободнее и я допишу туториал по ExtJS и гридам с фильтром и поиском =)

понедельник, 28 января 2008 г.

Управление сторонними библиотеками в Subversion.

В этом блоге я ни разу не постил переводы. Повода не было. Но вот в RSS пробежала статья, описывающая правильное управление внешними библиотеками в Subversion. Она мне настолько понравилась, что я решил опубликовать её вольный перевод. К сожалению, времени потестировать рецепт у меня не было, поэтому буду переводить "as is". Если заметите какие-нибудь неточности, отпишите в комментах, исправлю.

Subversion Externals

В Subversion существует удобный механизм управления внешними библиотеками, который позволяет автоматически экспортировать код из других репозиториев в рабочий проект. Это svn:externals. Этот пост создан в качестве напоминания самому себе, о том, как это реализовать. Потому что каждый раз забывая, я вынужден гуглить. А решение, к которому я прихожу каждый раз одно и то же.

Для начала, предположим, что у нас в репозитории есть папка lib/, и мы хотим положить в неё код из папок library/ и incubator/library/ проекта Zend Framework. Конечная структура папок выглядит следующим образом:


myApplication/
    lib/
        incubator/Zend/
        Zend/

Для этого необходимы следующие заклинания:


$ cd lib/
$ export SVN_EDITOR=vim
$ svn propedit svn:externals .

(Разумеется, стоит заменить vim на редактор, привычный Вам)

В запустившемся Vim'е (emacs'е, nano) необходимы следующие строки:


incubator http://framework.zend.com/svn/framework/branch/release-1.0/incubator/library
Zend http://framework.zend.com/svn/framework/branch/release-1.0/library/Zend

Стоит отметить, отметить, что release-1.0 это текущий релиз ZF, а следующий будет release-1.5. Если вам необходима текущая версия ZF 1.5, то это будет release-1.5PR

Сохраняемся, выходим из редактора и видим следующее сообщение:

Set new value for property 'svn:externals' on '.'

Вот и всё! Не забываем закоммититься и теперь для поддержания ZF в состоянии актуальности не забываем запускать svn up.

среда, 23 января 2008 г.

ExtJs. Многостраничный грид с фильтром и поиском. Часть 1.

Просматривая статистику поискового трафика, любезно предоставленную мне feedburner'ом, я замечаю, что основная масса трафика идет на тему ExtJS. Мне не совсем понятен этот момент ;) Обычно, когда мне что-то надо узнать по ExtJs, я двигаю на их форум. Потому что именно там собрана вся информация, которая вообще может пригодиться (после документации, конечно). В гугле я ищу только конкретные ошибки, которые выдает мне FireBug. Потому что поисковая система форума далека от идеала.

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

Работая с ещё с ExtJS 1.1, я нашел замечательный топик, в котором рассказывалось о подобном гриде. И приводился замечательный пример. В этом примере всё отлично. Но он написан на первой версии и использует в качестве бэк-энда python. В этой серии туториалов я опишу создание такого же грида, с использованием ExtJS 2.0, php5 и Oracle (для MySQL будут приведены примеры запросов, не сильно отличающиеся от ораклинских).

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

Итак. Наш грид будет состоять из:

  • grid.html - html-файл, содержащий разметку страницы
  • grid_data.php - файл, обслуживающий запросы к БД со стороны грида
  • grid.js - js-файл, содержащий основной код приложения

Архитектура будет банальной. Наш грид посредством AJAX-запросов, будет обращаться к php-файлику и тот будет передавать ему данные в формате JSON. Запросы к БД будут всего двух типов:

  • Запрос очередной страницы с данными
  • Поисковый запрос

Для простоты демонстрации, не будем сильно усложнять поиск и обойдемся LIKE. Но никто не мешает реализовать сложную поисковую логику. Просто это выходит за рамки этой серии статей. Ну а постраничная разбивка - это совсем просто (хотя на Oracle - чуть сложнее)

На сегодня всё. Stay on line.