Cuby, Mirrormagic

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



Сайт: http://cuby.sourceforge.net/
Скачать: http://sourceforge.net/projects/cuby/files/




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



Сайт: http://www.artsoft.org/mirrormagic/

SmartQ 7

Привёз себе из командировки в Китай эту дивную игрушку:


Внутри ARM11 и Ubuntu. Или что-то типа того. Пока что играюсь и осваиваюсь.
Вокруг устройства уже образовалась группа энтузиастов, исправляющая огрехи китайских разработчиков и вносящая улучшения в прошивку. Возможно, я к ним присоединюсь :)

Подборка ссылок:
Сайт производителя - http://en.smartdevices.com.cn/index.html
Англоязычный форум - http://www.smartqmid.com/phpBB3/index.php
Русскоязычный форум - http://smartqmid.ru/index.php?act=idx
Обзор на Хабре - http://habrahabr.ru/blogs/gadgets/72642/

Отправка e-mail из консоли

Появилась необходимость отправить простейшее электронное письмо из консоли роутера. Никаких встроенных средств работы с почтой у него нет, да и не нужны они. Делов-то - подключился к smtp-серверу, отправил 4 команды и готово. Оказалось, всё не так просто...

ssmtp - перловый скрипт. Перла в роутере нет.

busybox sendmail никак не хотел работать. Пришлось немного поправить код и отучить его от EHLO. Тогда он завалился на MAIL FROM. Бросил.

tcpconnect мог бы стать хорошим решением, но подружить его с chat я так и не смог. Похоже, что в линуксе можно перенаправить вывод первого скрипта на ввод второго, но одновременно с этим нельзя перенаправить вывод второго на ввод первого. Интерактивного решения не получилось.

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


#!/bin/sh
SERVER="mailserver 25"
USER="user"
HOSTNAME="hostname"
EMAIL_TO="address@server"
EMAIL_SUBJECT="subject"
EMAIL_DATA="this
is
test."

(sleep 5
echo HELO $HOSTNAME
sleep 5
echo MAIL FROM: $USER@$HOSTNAME
sleep 5
echo RCPT TO: $EMAIL_TO
sleep 5
echo DATA
sleep 5
echo From: $USER@$HOSTNAME
sleep 1
echo To: $EMAIL_TO
sleep 1
echo Subject: $EMAIL_SUBJECT
sleep 1
echo $EMAIL_DATA
sleep 1
echo '.'
sleep 5
echo QUIT) | busybox nc $SERVER

Gondola и другие

Есть интересная кроссплатформенная игра Gondola. Хорошая логическая штука. Вот только работать как следует она не хотела - чёрный экран и музыка. Оказалось, надо удалить файлы libGL.so.1 и libGLU.so.1 в папке игры и графика появится!

А еще есть сайт, набитый интересными флэшовыми играми: Physics Games. Мне особенно понравилась Nitrohaul. Рекомендую :)

Linux Mobile: Введение

Хорошая статья о мобильном Линуксе. Есть небольшой исторический экскурс и рассмотрены разнообразные современные проекты. Некоторые из них я уже использую (busybox), некоторые только собираюсь посмотреть (buildroot).

Ссылка: http://www.ibm.com/developerworks/ru/library/l-linuxMobile_1/index.html?S_TACT=105AGX99&S_CMP=GR01

Заметки

Настройка Grub2

Недавно обновил grub до второй версии. По-началу никак не мог понять, как же его настраивать. Оказалось, довольно просто.

1. Чтобы подправить параметры, передаваемые ядру при загрузке, правим файл 10_linux:
linux ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro vga=791 $2

2. Чтобы добавить запуск Windows, дописываем такой блок в файл 40_custom:
menuentry "Microsoft Windows XP Professional RU" {
set root=(hd0,1)
chainloader +1
}

После чего запускаем update-grub от рута.


Автозапуск с плеера

В какой-то момент мне надоело, что при подключении mp3 плеера к компьютеру автоматически запускается vlc и начинает проигрывать музыку. Я-то плеер подключаю только чтоб что-то новое туда записать. Стал рыть gconf. Нашёл ключ:
/apps/nautilus/preferences/media_autorun_x_content_start_app

Вырезал оттуда текст x-content/audio-pleer и вставил его в ключ:
/apps/nautilus/preferences/media_autorun_x_content_open_folder

Теперь при подключении плеера просто открывается окно с его содержимым.

Полёт 02.08.2009

Я таки осилил Kdenlive и сделал видео!

Видеоредакторы в Linux

Пытаюсь слепить приличное видео о воскресном полёте из имеющейся нарезки. Выбираю видеоредактор. Пока что расклад такой:

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

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

* LiVES - интерфейс совершенно неадекватный. Есть два режима - редактирование отдельного клипа и мультидорожечный. Загрузил клипы, перешёл в мультидорожный интерфейс, разложил. Чтобы сделать экспорт, надо вернуться в режим клипа. После этого раскладка клипов теряется и всё нужно начинать сначала. Бред. Но хоть какой-то результат я от него получил, в отличие от других программ.

* PiTiVi - дорожек несколько, но в итоге активная только одна и никаких наложений или переходов. Сгодится только склеить несколько фрагментов без изысков. Иногда падает.

* Open Movie Editor - опять никакой кириллицы. Хочет jack, без него стабильно падает по каждому чиху.

* Kdenlive - Всё просто замечательно кроме одного момента - нет звука при просмотре. Ну и зависимостей много тянет, если DE не KDE.

Вот так, продолжаю поиск если не идеала, то хотя бы нормально работающей программы...

+++
UPD: проблема со звуком в kdenlive решилась заменой библиотеки libsdl1.2debian-esd на libsdl1.2debian-alsa. Далее, программа стала падать при добавлении одного из mp3 файлов. Решил проблему конвертированием трека в ogg.

И вдогонку - avidemux стал ругаться на то, что не может открыть аудио устройство. Оказалось, надо выбрать ALSA в настройках и указать устройство default.

Снова в небе!

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

Заметки

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

Немножко теории: http://wiki.debian.org/Suspend

В принципе, всё просто. Всеми этими делами ведают pm-utils. Нужно только положить нужный скрипт в /etc/pm/sleep.d чтобы он выполнялся при пробуждении или засыпании. Скрипту передаются параметр, сообщающий о том, какое именно действие выполняется: suspend, hibernate, resume или thaw.

Далее, синхронизация. Решил использовать rsync. Для этого на сервере запускаем демон - в файле /etc/default/rsync разрешаем запуск:
RSYNC_ENABLE=true

Теперь нам нужен конфигурационный файл. Скопируем его из примера:
sudo cp /usr/share/doc/rsync/examples/rsyncd.conf /etc/

и отредактируем. Я добавил вот такой блок:
[mnt]
path = /mnt
uid = root
gid = root
chroot = yes
read only = true
comment = backup service
max connections = 2

Запускаем демон командой sudo /etc/init.d/rsync start

На локальном компьютере синхронизация делается командой:
rsync -aq server::mnt/source_dir /dest_dir/


Обратите внимание, mnt - это имя модуля из файла конфигурации сервера.

Отпуск. Итоги

Фотки: http://picasaweb.google.ru/dimka.rs/Finike#

Видео: http://www.youtube.com/user/dimkars

Цена: Примерно 18 тысяч за билеты Петербург-Анталия туда и обратно (ГТК Россия). Около 6 тысяч расходов на проживание за две недели.

Отпуск. День 15

Спал я недолго - очень уж неудобная скамейка. Кое-как дотерпев до начала регистрации, отправился к стойке. Как оказалось, несмотря на то, что на дворе 21-й век, интернету уже 30 лет и электронный билеты на самолёты существуют уже лет 10 в Турции (как, впрочем, и в России) не все работники аэропорта знают об этом чуде прогресса. В результате, когда я протянул свою замусоленую распечатку, служащий спросил, почему у меня нет билета? Когда я ему объяснил, что это и есть билет, он подпрыгнул на стуле, повернулся на нём кругом, прокричал что-то соседям слева и справа, два раза куда-то позвонил, что-то спросил по рации, оббежал вокруг стула, снова сел на него, что-то потыкал в компьютере и повторил: "You don't have ticket". Я уже испугался, что по какой-то причине моего билета нет у него в базе и стал прикидывать, чем это мне грозит. Спустя несколько минут необъяснимых неадекватных поступков на товарища снизошло озарение и он выдал мне посадочный талон на место 12С. Очень мило, я-то хотел у окна сидеть, но из-за непоняток с билетом не успел выразить это желание словами. Расстроенный, я пошёл к паспортному контролю.

Поглазев на дьютики в зале ожидания и не найдя ничего интересного я отправился изучать кафешки. Результат печальный - от 200 до 400 рублей за гамбургер - это слишком. Зато в кафе на верхнем этаже был хороший вид на ВПП. Сидел, смотрел, фотографировал. Объявили посадку. Пройдя контроль безопасности, попал в зал ожидания, из которого было видно обе полосы и перрон. Класс!

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

Спасибо всем за всё, было здорово! :)



Отпуск. День 14

Утром я отправился в город - нужно было узнать когда уходит последний автобус в Анталию и объесться напоследок черешней :) Обе задачи были выполнены успешно - мне предложили за 50 лир доехать напрямую до аэропорта (дорога сюда обошлась мне в 50 лир за такси от аэропорта до автовокзала Анталии и еще 10 лир за автобус до Финике), а на рынке я купил кило счерешни и кило винограда (8 лир за всё). На обратном пути решил чуть прогуляться по городу, а то за две недели видел только пару главных улиц с магазинами. Народу на верхних улицах поменьше и дома попроще, некоторые даже совсем развалились.





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

В аэропорт приехал около 23 часов. Перекусил в кафе за чудовищную сумму в 30 лир и завалился спать на скамейку в углу - вылет только в 9 утра.

Отпуск. День 13

Снова свежий ветер - 20 узлов! Вышли покататься. Шли под одной генуей, но скорость была весьма приличной и яхта заметно кренилась. Хорошо попрыгали по волнам :) Фоток мало, фотками не передать свист ветра, крен яхты и шум волн. Попозже выложу видео.

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



Отпуск. День 12

День отдыха. Весь день дружно сидели в интернете, благо сильный ветер хорошо продувал яхту. В обед сходил на рынок за жареной курицей:






Отпуск. День 11

Снова в море!
Погода хорошая, волн почти нет, только ветер слабоват, потому и скорость небольшая. Прогулка вышла часа на три. По возвращении отправились в город за продуктами и запчастями. Столкнулись с трудностями взаимопонимания - не так то просто объяснить турку, не говорящему по-английски, что нам нужна медная пластинка. В одном магазине мне предложили словарь и, когда я наконец нашёл нужные слова, сказали что такого у них нет.
Неудачу заели в кафешке курицей с рисом и свежими овощами - по 5 лир за порцию. Оставшимся на борту членам экипажа взяли две булки с такой же начинкой по 2.50.
Далее - продукты. Т.к. базарный день только в субботу, фрукты-овощи пришлось покупать на рынке, где они не так дёшевы. Кило крупной черешни + кило слив = 8 лир.
Вечером решили запустить воздушного змея. В полный штиль :) В общем, не долго он летал. Далее - купаться, отдыхать и спать.



Отпуск. День 10

День прошёл без приключений, а вечером нас зацепило краешком грозы.



Отпуск. День 9

Еще один бездарный день. Даже не купались. Зато вечером попробовал шиш-кебаб - мне его принесли за то, что с детьми сидел :) Две пенопластовых тарелки, закрытые полиэтиленом. В одной лежат копчёные кусочки мяса и нарезанная длинными полосками лепёшка. В другой - нарезанные свежий помидор и сладкий печёный лук. Вкусно! А ещё во всём городе отключили электричество. Ненадолго, но видеть тёмный город было необычно.

Фоток нет...

Отпуск. День 8

Днём Люда решила надуть тузик и покататься по марине. С собой взяла Лёшку. Он сначала боялся и вопил, но потом успокоился. А вечером отправились на базар. Довольно интересное место. От нашего базара отличается не сильно - те же толпы людей и море вещей и продуктов. Цены потрясающие - пол-лиры за кило огурцов и помидоров, лира за килограмм черешни. Накупили всего и побольше. Дыни дороговаты - 7 лир за среднюю недоспелую дыньку. Но это потому что не сезон. А фоток базара нет, потому что я фотоаппарат забыл :(

Отпуск. День 7

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

Отпуск. День 6

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

Из примечательного - Лёшка свалился в открытый носовой люк, затянутый шторкой от солнца. Под его весом пластмассовый крючок шторки сломался, сама шторка свернулась, а он плюхнулся на кровать в носовой каюте. Отделался испугом, благо в спасжилете был. А мы хорошо посмеялись :) Вот только крючок теперь чинить надо.

Отпуск. День 5

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

У входа в марину ждала заранее предупреждённая лодка сотрудников марины. Они проводили нас до места стоянки и помогли пришвартоваться. Первый выход, хоть и не был продолжительным, принёс массу новых впечатлений, фотографий и спасённый кранец :) Далее, как обычно - купание, душ, ужин.




Отпуск. День 4

Сегодня проверили масло в двигателе - в норме. Хотели выйти на небольшую прогулку, но вдруг набежали тучи и пошёл дождь, где-то вдалеке послышались раскаты грома. Спустя час дождь прошёл, но ветер стих и прогулку пришлось отложить. Оставшуюся часть дня бездельничали, вечером пошли купаться. Я окончательно подружился с маской и трубкой и воду теперь почти не пью :)
Так как купаться пришли поздно, вода на поверхности уже остыла, да и гроза не дала солнцу прогреть воду. Зато уже на метровой глубине температура как в ванне :) Много нырял и разглядывал рыб.

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




Отпуск. День 3

Сегодня сделали два важных дела: во-первых, добавили в транзит-лог двух новых членов экипажа - меня и маленькую Соню (родилась меньше двух месяцев назад). Теперь можно выходить в море не рискуя получить по голове от таможни и береговой охраны. Во-вторых, сходили в город и накупили кучу нужных вещей, включая кое-какие запчасти для яхты. Заодно закупили еды, кстати в Турции она весьма недорогая. Одна турецкая лира эквивалентна примерно 20 рублям. Толстенные пучки петрушки и лука и 5 больших морковин стоили 3 лиры. Далее, нашли пекарню: свежие горячие батон и лепёшка - одна лира. Черешню пока не брал, но цена в 2-3 лиры (а то и одну, в базарный день) подкупает.

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

Население марины (Finike Setur Marina) ведёт преимущественно вампирский образ жизни - спит допоздна и практически не высовывает нос на солнце. Днём поднимается устойчивый и достаточно сильный бриз (10-15 узлов) и можно позавтракать в кокпите под тентом. К вечеру бриз затихает, но жара еще держится. К шести часам солнце успокаивается и можно идти купаться. Вода в море очень солёная и хорошо прочищает нос :) Нырять с маской просто здорово - вода чистая и можно разглядывать рыб и водоросли, облепившие валуны на дне.

Жизнь начинает кипеть после захода солнца: народ занимает рестораны и кафе, отовсюду звучит музыка. А мы ужинаем и смотрим кино. Сегодня была уха в исполнении Ярослава. Просто великолепно! И очень символично, учитывая просмотр Рататуя :)



Отпуск. День 2

Небо над Турцией было чистым, внизу угадывались огни городов. Заход в Анталию фантастически красив: сначала самолёт проходит над береговой линиией и разворачивается над морем. Луна прокладывает дорожку по океану и оставляет отблеск на крыле. Далее - проход над городом на минимальной высоте и посадка. Уже в телетрапе встречает турецкий воздух: плотный, жаркий, липкий. Прилетели в час ночи по местному времени. Поболтавшись по аэропорту и не найдя ничего интересного я взял такси до автовокзала. Далеко не все турки говорят по-английски и бывает трудно объяснить, что тебе нужно или понять, что от тебя хотят. На автовокзале кое-как выяснил, где найи автобус и коротал ночь в разных позах на скамейке.
Утренний микроавтобус с кондиционером довёз меня до Финике. Погуляв по набережной я нашёл марину и приступил к поискам нужной мне яхты. Разумеется, она оказалась на самом дальнем пирсе и совсем не на том месте, где я ожидал её найти :)
Поднявшись на борт я наконец-то познакомился с Ярославом, Людой, Лёшкой и Соней. Задача была выполнена и уставший от бессонной ночи мозг расслабился, поэтому дальнейшее помню смутно. Днём сидели в лодке, т.к. солнце жарит неимоверно. Вечером сходили искупаться. Море очень чистое и очень солёное. На дне лежат поросшие мхом камни, а между ними плавают рыбы. Красота!
После купания сходили в город, купили курицу и пиво, отметили встречу. И я упал спать.

Отпуск. День 1

В Пулково я приехал в 19.10. Пофотографировал самолётики на перроне и пошёл на регистрацию.
Народу было просто немеряно - помимо моего рейса шла повторная регистрация на предыдущий задержанный рейс в Анталию. Отстояв в очередях почти 2 часа до накопителя я добрался в 21.10 - за 10 минут до вылета. Впрочем, можно было и не торопиться - мой рейс был задержан на час. Чтобы снять напряжение, я пофотографировал перрон и снял видео взлёта. Взлетали с 10Л и я смог разглядеть свой дом. В наборе рассматривал облака - красота! На эшелоне подали ужин. Где-то вдали гремела гроза - отблески молнии были хорошо видны на крыле. Примерно в то же время нас слегка потрясло турбулентностью. Как раз подавали чай :)

Производительность Java-машин на архитектуре ARM

Нужно было по работе проверить скорость Java-машины на процессорах Atmel AT91SAM9260 и NXP LPC3250. Нашёл тест SciMark2:
SciMark 2.0 is a Java benchmark for scientific and numerical computing. It measures several computational kernels and reports a composite score in approximate Mflops (Millions of floating point operations per second)

Вот результаты:











ПараметрSAM9260LPC3250Desktop PC
Composite Score1.03017197177867441.0984537756134158383.63055489697274
FFT (1024)0.67889996014347950.744475524873108310.58414983972807
SOR (100x100)1.61804987102320051.6861935478017183475.0875552239084
Monte Carlo0.49507837582625230.517049310394127274.48264405685634
Sparse matmult (N=1000, nz=5000)0.9846153846153761.1015490529042518421.18252082906537
LU (100x100)1.37421626728506371.443001442093874636.8159045353053
java.vendorSun Microsystems Inc.Sun Microsystems Inc.Sun Microsystems Inc.
java.version1.4.2_16-eval1.4.2_16-eval1.6.0_12
os.archarmarmi386
os.nameLinuxLinuxLinux
os.version2.6.27.62.6.27.82.6.26-1-686


Как видно, SAM9260 немного уступает LPC3250, что логично, так как у последнего частота немного выше. А вот разрыв между АРМами и настольным компьютером просто поражает! Аппаратный FPU - это сила.

PS: Гугл зачем-то впихнул дюжину br'ов перед таблицей. Нафига?

Phytec LPC3250 board

Новая игрушка!

Процессор:
  • ARM926EJS processor, running at CPU clock speeds up to 266 MHz
  • Vector Floating Point (VFP) coprocessor.
  • 32 kB instruction cache and a 32 kB data cache.
  • Up to 256 kB of Internal SRAM (IRAM).
  • Selectable boot-up from various external devices: NAND flash, SPI memory, USB, UART, or static memory
  • ...
Модуль:

  • 64 Мб ОЗУ
  • 64 МБ NAND Flash
  • 10/100 Mbit PHY
  • ...


Общий вид

Процессорный модуль

ЖКИ и пингвин :)

Разбираем IP-камеру L1 FCS-0010

Back

Front

Sensor

Процессор: SC1100. По маркировке похож на Geode, но даташит геода на эту штуку не похож :)
Память: 2x PSC A2V28S40CTP-745AFA14. Не нашёл даташит.
Флэш: Macronix MX 29LV320CBTC-70G. 32Mbit, 3V, 70ns
Ethernet: Davicom DM9102DEP. 10/100Mbps, PCI
RTC: Intersil ISL1209. Low Power RTC with Battery Backed SRAM and Event Detection
Audio: Realtec ALC203. TWO CHANNEL AC’97 2.3 AUDIO CODEC

Разбираем факс-модем Lanbit 56K

Долгое время служил мне верой и правдой. Хороший внешний модем на чипах Conexant.

Внешний вид:


Плата:


Чипсет:

Разбираем кабельный модем Motorola SURFboard SB5101E



Процессор: Broadcom BCM3349KPBG
ОЗУ: MT 48LC4M16A2-75
Флэш: Intel JS28F160
Тюнер: Broadcom BCM3419KML

Разъём J304 - отладочная консоль. Распиновка: 1-TX, 2-RX, 3-GND, 4-3.3V.

Разбираем ADSL-модем D-Link DSL-200

Довольно популярная железка - многие провайдеры дают её в подарок при подключении.

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

Mental Repairs

Недавно прошёл игру Mental Repairs - небольшой, но хорошо сделанный квест под Windows. Сюжет повествует о работе сервис-инженера в далёком будущем, когда с любой машиной можно построить диалог в виртуальном пространстве. Примерить на себя шкуру машинного психиатра можно совсем бесплатно - игра распространяется как freeware. Озвучки нет, только текст. Зато графическое оформление радует. Построена игра на движке Wintermute Engine, который, как оказалось, весьма популярен и служит основой многих проектов, как открытых и бесплатных, так и коммерческих.

Другие игры на движке Wintermute: http://dead-code.org/home/index.php/games

Новые возможности Canon PowerShot

Оказывается, и для фотоаппаратов существуют сторонние прошивки с расширенными возможностями. Для линейки Canon PowerShot есть прошивка CHDK: http://chdk.wikia.com/wiki/CHDK. Хотя слово "прошивка" здесь не совсем уместно - программа не заменяет содержимое флэш-памяти, а запускается с SD карты. Таким образом, нет риска убить фотоаппарат и нет потери гарантии. CHDK обладает огромным списком функций. Приведу лишь несколько самых интересных:
* Возможность сохранять снимки в формате RAW
* Значительно расширенный диапазон выдержек и полный контроль над параметрами съёмки
* Поддержка скриптов, позволяющих выполнять различные сложные действия автоматически
* Определение движения, достаточно быстрое, чтоб сфотографировать молнию
* Живые гистограммы
* Отображение недо- и переэкспонированных областей в реальном времени
* Поддержка 22 языков
* Настройка OSD под ваши нужды
* Управление файлами
* Чтение текстов
* USB пульт дистанционного управления

Я уже экспериментирую со своим Canon A710 IS :)

Фанатский значок

Вот этот пост: http://ubuntero.blogspot.com/2009/04/ubuntu.html
сподвиг меня на следующее:



Одного не могу понять: на компе png у меня прозрачный, а в блоге - на белом фоне :(
UPD: прозрачность пропала при вставке изображения в блог. Если залить картинку в пикасу, а в блог вставить ссылку, то всё нормально :)

Заметки

Если у вас есть принтер, работающий через cups, а GQview не хочет печатать, удалите пакет lpr и установите cups-bsd.

Чтобы ходить по ssh без пароля, нужно:
- ssh-keygen
- скопировать публичный ключ на удалённую машину и добавить в ~.ssh/authorized_keys
- разрешить в конфиге сервера авторизацию без пароля
Хорошая статья: http://www.nixp.ru/articles/ssh

Разбираем ZTE ZXDSL831 ADSL Router



Виден не распаянный разъём USB-B. Левее, предположительно, последовательный порт.
Через эту железку ко мне приходит интернет. Во время фотосета девайс продолжал работать :)

Актаком: АСК-2203 и АСК-2205

АСК-2203 и АСК-2205 - недорогие цифровые осциллографы с хорошими возможностями (отличаются только монохромным/цветныи экраном). Приборы не внесены в Госреестр, но для дома вполне сгодятся. Советую посмотреть всю линейку.

Файловая система для встраиваемого устройства

Что нужно иметь в виду, создавая файловую систему для встраиваемого устройства?
1. Тип накопителя. У меня флэш, разбитый на блоки по 64К. Размер ФС должен быть кратен размеру блока.
2. Размер блоков файловой системы и количество inode. Для ФС малого размера (несколько мегабайт) mke2fs создаёт мало inode, что ограничивает количество файлов до непригодных значений в пару сотен.
3. Нет необходимости резервировать место для рута.

Итак, учитывая вышесказанное, получаем примерно следующее:

Создаём файл с размером, кратным размеру блока устройства:
dd if=/dev/zero of=~/initrd.ext2 bs=64k count=160
160+0 записей считано
160+0 записей написано
скопировано 10485760 байт (10 MB), 0,0280014 c, 374 MB/c


Создаём в этом файле систему ext2:
/sbin/mke2fs -b 1024 -I 128 -L "router" -m 0 -N 1024 -t ext2 ./initrd.ext2
mke2fs 1.41.3 (12-Oct-2008)
./initrd.ext2 is not a block special device.
Proceed anyway? (y,n) y
Filesystem label=router
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
1024 inodes, 10240 blocks
0 blocks (0.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=10485760
2 block groups
8192 blocks per group, 8192 fragments per group
512 inodes per group
Superblock backups stored on blocks:
8193

Writing inode tables: done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 38 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.


Монтируем получившуюся ФС:
sudo mount ~/initrd.ext2 /mnt/tmp/ -t ext2 -o loop


Далее, нужно будет создать системные катологи, уделив особое внимание каталогу /dev, но это уже отдельная история.