2009-12-24

Linux на Лаптопе

Linux в качестве серверной ОС - весьма привычное решение, зато на ноутбуках подавляющее большинство людей по-прежнему подразумевают Windows. Эту ситуацию немного подломили нетбуки, стартовавшие в лице Asus EEE именно с linux. Купив два года назад Asus F7Sr, я решил оставить там "родную" Windows Vista Home Premium, дабы насладиться щедрым даром Microsoft, типа ТВ-тюнера или интеграцией с домашним кинотеатром. Реальность оказалась ужасна, но, к счастью, недавно сдох винчестер, и мне предоставился шанс начать все с чистого листа винта. Займет ли его снова лицензионная Vista?

2009-10-21

Linux Mint

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

Раздумывая, как бы мне выцарапать с полудохлого винта драгоценные незабекапленные файлы, я обратился к своему рабочему столу (я имею ввиду обычный аппаратный стол из древесины - с виртуальным его роднит только чрезмерная захламленность).

Первое же, что мне попалось под руку - диски-приложения от LinuxFormat. С твердой уверенностью, что сверхъестественные силы меня не оставили, я загрузился с первого, что подвернулось под руку в режиме liveCD (без установки на жесткий диск).

И - о чудо! Linux Mint 7 правильно разобрался со звуком, видео, кард-ридером, тачпадом, проводной и беспроводной сеткой, а самое главное - оказался способен читать и писать диски NTFS. Специально потом посмотрел - этот диск был в приложении к номеру за август 2009 года. Лаптопу около двух лет, неудивительно, что с оборудованием не возникло проблем.

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

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

2009-10-05

Продолжение следует

Давно не писал в этот блог, потому что почти целиком переключился на "железную" тематику.

Тем не менее, должен сказать пару слов про семинар FRUCT: я туда все-таки вписался и даже сходил на первый день.

Прежде всего, мои комплименты организаторам. Петрозаводчане - вы просто молодцы! Мне особенно хочется благодарить Александра Бородина - такого простого и ясного изложения основных принципов работы по разработке по Maemo я никак не ожидал. На все стандартные вопросы были заготовлены ответы.

Уровень и возраст тренирующихся был довольно разным, но, по моим субъективным ощущением, с заданиями справились все. Организаторы принесли с собой лаптоп, на котором и был установлен Scratchbox, а слушатели ходили на него через Putty и VNCViewer через установленные в аудитории терминалы с WinXP, выполняя задания.

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

В перерыве мы побеседовали с Александром о жизни. Точнее, он подошел и сочувственно поинтересовался, почему я ничего не спрашиваю - наверное, я все знаю? Мы поговорили о Nokia, Maemo и Free Software, обнаружив довольно сходные точки зрения.

Короче, я понял, что я занял чье-то место (вроде бы, приходили желающие, а им говорили, что надо было записываться заранее). Поэтому, после окончания первого дня курса я решительно случайно потерял пропуск на семинар и преспокойно пошел на работу с мыслями "может так оно и к лучшему?".

По поводу усовершенствований курса, я бы порекомендовал более конкретные задания, просто под конец Александр предлагал написать более сложные программы "на свой вкус": мне кажется, надо что-то типа "красный квадрат в черном круге" или "диалог выбора файла, а затем его отправка по bluetooth". Иначе спортивный азарт теряется ;)

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

2009-04-24

FRUCT и Maemo Hands-On

Я зарегистрировался на семинаре, проводимом FRUCT. Вот подробная программа.

Самая интересная часть - это тренинг по программированию для Maemo. Конечно, я в общих чертах знаю и умею, но никогда не мешает освежить память, тем более, что семинар проходит в родном городе, а участие бесплатное. Постараюсь осветить в своем блоге подробности происходившего, в меру своих скромных возможностей ;)

Когда внимательно читал программу семинара, увидел знакомую фамилию. Оказалось, там будет докладывать коллега, в аспирантской секции. Вот он, сидит через перегородку ;)

Что характерно, меня даже отпустили с работы на четыре дня ;) Получился как бы небольшой отпуск ;)

2009-03-14

Edelweiss сдулся

Только что прочел в LXF116:

Анонсированный в октябре 2008 года коммуникатор Edelweiss на платформе ACCESS Linux так и не будет выпущен - вместо него компания Emblaze Mobile сфокусируется на новой модели под кодовым именем Monolith.

Честно говоря, вся эта шумиха вокруг Edelweiss с самого начала казалась мне подозрительной. И отсутствие комментариев по некоторым техническим вопросам на пресс-конференции, и слишком навернутая аппаратная начинка, и укзания на Россию, как стартовый рынок...

2009-03-12

NTP для Arduino

Недавно наткнулся на упоминание о протоколе SNTP в контексте его использования для Arduino - проект аналоговых часов 3MeterClock.

В описании говорится, что часы используют для получения времени Simple NTP. Сначала я прочел это как SNMP, затем SMTP. Потом прочел по буквам и понял, что требуется man, а именно: как поднять сервер SNTP, потому что ну очень хочется написать скетч для Arduino для синхронизации по сети.

Из RFC2030 выяснилось, что никакого отдельного сервера SNTP не надо. Для NTP или SNTP сервера клиенты NTP и SNTP неразличимы, также как и для NTP или SNTP клиента неразличимы NTP и SNTP сервера. Алилуйя!

Все отличия заключаются в том, что значительно упрощены вычисления, с целью максимально упростить жизнь клиенту и добиться точности не хуже микросекунд.

Каково же было мое удивление, когда в исходниках все того же 3MeterClock-а я обнаружил... обращение к порту 13! Опять внимательно покопавшись в RFC, пришел к выводу, что у Arduino есть как минимум ТРИ разных варианта получения информации о времени по сети:
  1. SNTP/NTP - при помощи UDP по порту 123. Клиенту надо послать пакет запроса, в ответ сервер его заполнит различными временными метками, и, если клиент озаботился засечь время отсылки запроса, можно относительно просто получить время с учетом RTT (RFC2030, RFC1305). Время в метке NTP отсчитывается в секундах с 01.01.1900 (еще есть fraction part в 1/65535-х долях секунды, но такая точность лично мне пока не нужна).
  2. Time protocol - при помощи TCP или UDP на порт 37. Клиенту надо послать пустой пакет, в ответ вернется 32-битное время, формат тот же (RFC868).
  3. DayTime protocol - при помощи TCP или UDP на порт 13. Клиенту надо послать также пустой пакет, но в ответ вернется дата и время в виде ASCII-строки (RFC867).
Забавно, но уже после копания в RFC нашел это же в тексте книги К. Джамса, К. Коуп. Программирование для Internet в среде Windows, которую издательство Питер-пресс опубликовало на своем сайте.

Получается, реально в 3MeterClock используется вовсе не SNTP, а DayTime. Логично, ведь не нужно корпеть над переводом мегачисла секунд, натикавших с 01.01.1900, в текстовую дату и время. Одна беда: стандарт протокола не заставляет строго форматировать возвращаемую строку. Неудивительно, поскольку протокол предназначен в основном для дебаговых целей, в отличие от NTP/SNTP.

То есть, можно увидеть как Tuesday, February 22, 1982 17:37:43-PST, так и 02 FEB 82 07:59:01 PST. Ясно дело, что если "заточиться" под определенный сервер, то будет вам счастье (однозначный парсинг текстовой строки). Вот авторы и "прибили гвоздем" свой sketch к серверу time.nist.gov, который отвечает 54901 09-03-11 10:44:51 50 0 0 831.6 UTC(NIST).

Следовательно, авторы проекта немного схалявили, что вполне простительно :) Однако, можно было бы не путать DayTime и SNTP, вводя читателей в заблуждение. Впрочем, пытливый читатель все равно разберется :)

Мысль про SNTP изначально правильная, потому что шансов получить время по NTP гораздо больше, чем через Time или DayTime. И даже если заранее неизвестен сервер времени, то можно попробовать спросить спросить время в режиме anycast (если не страшно, что вас обманут). Однако, как же быть с вычислениями?

Для начала, надо преобразовать время NTP в эпоху UNIX, т.е. получить число секунд, натикавших не с 01.01.1900, а с 01.01.1970. По счастью, эта разница уже подсчитана: надо вычесть из NTP 2208988800UL. Во многих случаях, одного этого уже достаточно, чтобы Arduino мог правильно общаться с внешним миром. Но что, если хочется немного больше - например, поддерживать время в МК или индицировать его на дисплее?...

Была бы под руками <time.h>, можно было бы ей воспользоваться. Но, увы, её нет среди библиотек avr, и придется обратиться к GNUтым исходникам glibc. Выдирается с мясом процедура __offtime, выносится пара структур и... готово:

2009-03-06

Linux Format в PDF

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

Ради интереса скачал, подтверждаю: да, это работает! Правда, на каждой странице этого PDF мелким красным шрифтом ненавязчиво указывается, что это подписка такого-то (ФИО), адрес, телефон, мыло ;)

Ну да ничего: я никому и не собираюсь раздавать, я - законопослушный ;)

Кстати, вроде как предложение на халявный выпуск в электронном формате при подписке на бумажный еще действует (специально посмотрел - до 31.03.2009), так что не упустите свой шанс! ;)

2009-02-27

Realnet и Arduino

Вчера сидел дома, ждал монтажников из Realnet, чтобы они вернули сигнал в мой сетевой кабель (неожиданно пропавший 21.02.2009 в 15:51 MSK).

Для демонстративного тестирования сигнала в кабеле я использовал Arduino+Ethernet Shield, чем полностью поразил воображение одного из болтливых монтажников (цитирвал мне Марка Аврелия).

А что? Все сетевые сигналы видны - 6 светодиодов для этого есть... Удобно. Если не считать философских объяснений о том, "что это за штуковина такая - первый раз вижу".

2009-02-17

Debian 5.0

Вышел новый Debian 5.0.

Теперь бинарные пакеты размещаются уже на 5-ти DVD.... Растем!

2009-02-04

Перелистывая LXF 112



Сегодня мне на стол лег январский LinuxFormat и я неожиданно спохватился, что так и не дочитал декабрьский! Кстати, там было много интересного.



  • обзор презентации платформы Edelweiss - в принципе, ничего особенно нового, за исключением того, что на оригинальном устройстве будет "специальное покрытие, препятствующее загрязнению";

  • две колонки про старт продаж Google G1 - первое официальное тело для Android-а, а также про обнаруженные дыры и факт портирования открытых исходников на FreeRunner;

  • довольно подробный обзор LBook eReader V3;

  • стандартная заметка про новый VirtualBox - 2.0.6.

Но самый хит, конечно же, это статья из цикла заметок Криса Брауна "Радости RWX". Очень понятно и доходчиво объясняются особенности назначения прав на каталоги и файлы, причем самое главное и обычно непонятное сосредоточено на одной странице. Я даже решил скопировать и размножить эту самую страницу (жаль вырывать и калечить журнал), чтобы использовать для обучения молодого Linux-персонала.

Если вы еще не подписались на LinuxFormat - настоятельно рекомендую. Я начал выписывать год назад на контору, и жалею, что не сделал этого раньше. Кстати, можно на пробу подписаться на полгода.

2009-02-03

ICQ опять упало

Сегодня, да. Не поленился поставить последний QiP 2005, билд 8081. Запустил, там сообщение от волшебного пользователя с UIN 1:

=============================
Системное сообщение
=============================
ICQ не поддерживает используемую вами версию. Скачайте бесплатную авторизованную версию ICQ с официального web-сайта ICQ.

=============================
System Message
=============================
The version you are using is not supported by ICQ. Download a free authorized ICQ version from ICQ's official website.



Ну сколько можно уже, а?

2009-01-23

ICQ заработало

Надо же, ICQ опять заработало, точнее мой QiP 2005, билд 8080.

Чем-то мне это напоминает газовый конфликт Украины и России...

2009-01-22

Долой ICQ!

Давно хотел это сделать, но все как-то не было случая.

Теперь, всвязи с очередной сменой закрытого протокола Oscar, мой QiP 2005 перестал работать. Да и не только у меня, как я понимаю. Недолго думая, поставил Google Talk, чтобы была возможность общаться с коллегами.

Теперь я понимаю смысл фразы "кризис - это масса новых возможностей".

Оригинальный клиент не поставлю никогда: не хочу смотреть рекламу.

2009-01-19

TEW-624UB

Меня тут спросили, насколько хорошо мой 3COM 3CRWDR101A-75 работает, не было ли сбоев?

Хороший вопрос, ничего не скажешь! Исходя из моего опыта, наличие сбоев сильно зависит от совместимости двух оконечных устройств - коммутатора и сетевой карты. Я наивно полагал, что выбрав экземпляры одного и того же производителя этих устройств, можно добиться наилучшей работы. Но, увы, в настоящей реальности это не всегда оказывается правдой.

Правда - живет у меня дома в виде коммутатора TEW-632BRP, с ним великолепно работают ноутбук с внутренней картой Intel 3945ABG и ноутбук с внешней картой Asus WL-167g. Я решил апгрейднуть второй до TEW-624UB (это USB-адаптер 802.11n - захотелось 300 Мбит).

Поначалу вроде как все было быстрее и радужнее. Потом я начал замечать, что приложение-менеджер точки доступа, шедшее в комплекте с TEW-624UB, жрет ресурсы в виде дескрипторов ОС, дерется с той же ОС за право настроить беспроводную сеть. Но в довершении всего прочего, модуль стал периодически затыкаться таким образом, что приходилось его вставлять-вынимать, чтобы реанимировать. Кстати, он довольно сильно греется и некоторые порты USB его "не берут" на подключение - что-то мне подсказывает, что именно из-за питания (типа подключается, и тут же отваливается).

Вероятно, мне просто попался бракованный экземпляр. Или я сам его погубил неряшливой эксплуатацией. Но нести в ремонт его лень, тем более, непонятно, как описать проблему: скорее всего, как обычно, посоветуют переставить Windows. Поэтому я положил его на полочку и снова подключил Asus - сетка опять работает как часы, хоть и не на скорости n.

2009-01-15

HTTP для Arduino

В середине рабочего дня решил попробовать "в деле" Ethernet Shield:





Написал несложный sketch и предложил пообщаться с ним через браузер:



Общественность восприняла с интересом ;) Более подробно - в моем блоге mk90.blogspot.com.

2009-01-13

webOS

Palm представил на всеобщее обозрение устройство Palm Pre, на котором работает так называемая webOS.

Устройство для покупки пока недоступно; среда программирования Palm Mojo™ Application Framework тоже coming soon. Что же такое Palm Pre? Preview, что ли?...



Технические характеристики:
  • ОС: Palm® webOS™
  • Сотовая сеть: 3G EVDO Rev A
  • Дисплей: тач-скрин 3.1" с отдачей, 320 x 480 HVGA, 24-битный цвет
  • Клавиатура: есть, физическая (реальная), QUWERTY
  • Email: Microsoft Outlook® email с Microsoft® Direct Push TechnologyPOP3/IMAP (Yahoo, Gmail, AOL, etc).
  • Обмен сообщениями: интегрированный IM, SMS и MMS
  • GPS: есть, встроенный
  • Камера: есть, 3 мегапикселя со светодиодной вспышкой и расширенной глубиной резкости
  • Сенсоры: свет, акселерометр, близость
  • Звуковые форматы: MP3, AAC, AAC+, AMR, QCELP, WAV
  • Видеоформаты: MPEG-4, H.263, H.264
  • Форматы картинок: GIF, анимированный GIF, JPEG, PNG, BMP
  • Беспроводные коммуникации: Wi-Fi 802.11b/g с WPA, WPA2, авторизация 801.1x, Bluetooth® 2.1 + EDR с поддержкой стерео-профиля A2DP
  • Память: 8GB (~7.4GB доступно пользователю), USB mass storage
  • Модем: да, через Bluetooth-соединение
  • Коннектор: MicroUSB connector, а там USB 2.0 Hi-Speed
  • Разъем для наушников: стерео 3.5 мм
  • Palm® Touchstone™charging dock: совместим
  • Размеры: 59,5 х 100,5 х 16,95 мм
  • Вес: 135 гр.
Что такое webOS? Изначально разработана под тач-скрин, держится на технологиях XHTML, JavaScript и CSS до такой степени, что существуют расширения JS для доступа к аппаратным возможностям устройства (!). Приложения от PalmOS пока не поддерживаются, браузер (на основе WebKIT) пока не поддерживает Flash.

Все "пока" да "пока"... Я тоже "пока" подожду. Ждал же 4 года, пока они выпустят что-то достойное, подожду еще...

2009-01-11

Посылка из Smart Projects

Получил на праздниках посылку из SmartProjects (был очень удивлен, что итальянский интернет-магазин отправил мне посылку не из Италии, а из Испании):



В посылке было некоторое количество печатных плат Arduino Serial (уже начал раздавать желающим через Молоток.Ру):



А также Ethernet Shield, который управляется при помощи Ethernet library. Первый раз держу в руках Shield, который сделан на т.н. pin-extender-ах, т.е. штырьки и розетки в одном флаконе. Это позволяет "навешивать" на этот Shield еще один Shield и при желании создать многослойный бутерброд ;)







Пока что я усвоил, что на этом Shield-е установлен Wiznet W5100 с поддержкой IP (TCP и UDP), может обслуживать целых два (!) соединения одновременно ;) Бросается в глаза незапянный SD-слот, джамперы WP, PROG и INT, последний, как и SD-слот, не поддерживается Arduino, хотя, как я понимаю, могут быть использованы, если написать собственную библиотеку.

Надо нести на работу и подключать к локалке: получится бюджетный сервер ;)

2009-01-08

Чип и Дип: ну точно издеваются

Свою первую покупку в Чип и Дип я совершал с некоторыми приключениями. И даже дал себе зарок туда больше не обращаться.

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

Увы.

Итак, сначала я сформировал заказ, в котором была одна позиция под грифом "требует уточнения у менеджера". На следующие сутки я увидел, что мой персональный менеджер, Владимирова Екатерина Михайловна, его успешно уточнила. Позиция обозначилась с ценой в 35 рублей вместо 22 изначальных (специально порылся в интернет-магазине, но даже намека на такую цену не нашел).

Я немного расстроился, но потом увидел кнопку "отменить заказ", радостно отменил его и создал новый, исключив ненавистную позицию (которую, к слову сказать, и ждать-то надо было 1-2 недели). На следующий день Екатерина Михайловна подтвердила мой новый заказ, но цена снова увеличилась. Я бы не обратил внимания, если бы не предыдущая попытка, поэтому полез внимательно изучать, что же подорожало.

А ничего не подорожало! В счете все позиции были с прежней ценой, я даже пересчитал на калькуляторе, но предлагалось уплатить на ~5 рублей больше, или на 0,8%. Я рассердился и полез звонить, как всегда вежливо, но без подобострастия пытаясь выяснить, почему так.

В ответ я узнал много нового.
  1. Покупатель всегда не прав;
  2. У них все в счете правильно, это я забыл про НДС;
  3. Завис сервер, поэтому надо подождать пару минут;
  4. "Что вы от меня хотите, молодой человек?!";
  5. У них так считается НДС, и все тут. Надо платить больше, чем написано на сайте, потому что у них такое программное обеспечение;
  6. Я могу просить расформировать заказ, но она ничего делать не будет, потому что "он и так сам расформируется" (видимо, с течением времени).
Поговорил, повесил трубку и был в легком шоке. Основная суть объяснения: сеть магазинов Чип и Дип (видимо, все 9 магазинов в 4-х городах) не смогла закупить программное обеспечение, которое правильно делает расчеты НДС при формировании документов на оплату. Поэтому покупатель должен оплатить эту ошибку (глупость?) руководства/владельцев/менеджеров/IT-отдела этой компании - и заплатить больше, чем написано на их сайте. Эдакий "эффект салями" получается.

Долго думал: может они таким образом копят на апгрейд этого самого ПО? С каждого покупателя по 5-10 рублей... Глядишь - за год сумму и соберут. Полез в свой первый счет (а я все бумаги храню - я мало того, что жмот, я еще формалист и зануда). И с удивлением увидел - а там тоже сумма расходится, только на копейки, а не на рубли, а потому - разница почти незаметна.

Короче, не быть мне клиентом Чип и Дипа. Может быть, какой-нибудь несчастный радиолюбитель из с. Демидовка, где нет такого богатого выбора комплектухи, махнет рукой на такие мелочи. Если бы Екатерина Михайловна была чуть вежливее, например, начала бы фразу с "извините", я тоже, может быть, остался бы их клиентом: не в деньгах счастье. Но терпеть обман и хамство в одном флаконе довольно унизительно для человеческого достоинства, увольте.

Москвичи, скажите, а у вас так же работает Чип и Дип? Или это только у нас в Питерском офисе такая ерунда?

2009-01-04

Электронный градусник

Довел до ума свой первый проект на Arduino: семисегментный дисплей. Получилось вполне работоспособно, хотя и немного стремно:



(подробнее о том, как я все это собирал)

Первым делом прицепил к нему цифровой датчик температуры и понес на работу (благо, умеет питаться от "кроны"). Измерил температуру на рабочем месте, построил график зависимости от времени суток ;) сунул в холодильник, попугал в курилке тетенек из соседнего предприятия громкими высказываниями "а это - датчик концентрации никотина в воздухе". Вообщем, повеселился от души.