2017-09-12

Файлы с фото: упорядочиваем имена

Недавно вернулся из поездки, притащил оттуда фотки аж на трёх фотоаппаратах. Так уж получилось: Honor 8 Pro хорошо умеет делать фотографии в условиях низкой освещенности и на него можно сделать селфи, Note 4 поражает четкостью и насыщенностью в нормальных условиях, но на него селфи не сделаешь (попала пыль в переднюю камеру), а Canon EOS 1100D и вовсе не телефон, а полноценная камера, хоть и старенькая, но как минимум с оптическим зумом.

Иногда в процессе съемки я делаю один и тот же снимок различными камерами, надеясь потом отобрать наиболее удачный. 

В итоге, скачанные c одной камеры файлы называются датой-временем, типа 20170830_121103.jpg, на другой - тоже самое, но с неотключаемым префиксом IMG_20170830_121103.jpg, а Canon и вовсе лепит снимки с номерами по возрастанию: IMG_5678.JPG. Как их теперь объединить в один упорядоченный по имени файловый массив, да еще и соблюсти хронологию?!... Ах да, дополнительая беда: перед съемкой я совершенно позабыл выставить на них одинаковое время... 

Ругать кроме себя некого, но можно все-таки попробовать разобраться. Мне помогла замечательная утилита exiftool из пакета libimage-exiftool-perl. Она умеет читать EXIF-информацию из файла (не только из картинок, кстати) и производить над ней несложные, но чертовски востребованные мной операции. Используем её, чтобы получить все файлы с именами типа 20170830_121103.jpg.

Итак, среди двух страниц разнообразных тегов нам нужен только CreateDate, его можно получить так:

$ exiftool -CreateDate IMG_5555.JPG
Create Date                     : 2017:09:03 15:20:01

Воспользуемся специальной опцией -d, чтобы преобразовать время как можно ближе к будущему имени файла:

$ exiftool -CreateDate -d "%Y%m%d_%H%M%S.jpg" IMG_5555.JPG 
Create Date                     : 20170903_152001.jpg

Разобьем строку на два поля по двоеточию, возьмем второе и срежем первый символ:

$ exiftool -CreateDate -d "%Y%m%d_%H%M%S.jpg" IMG_5555.JPG | awk -F':' '{print substr($2,2)}'
20170903_152001.jpg


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

Не отчаиваемся! Выбираем одну из камер, которая будет "эталоном". Берем вторую, наблюдаем разницу во времени, хоть с точностью до секунды (но обычно это минуты или даже часы, из-за разных таймзон). Пусть это будет 24 минуты, например. 

Используем опцию exiftool -globalTimeShift, указывая аргументом ей это самое смещение (знак впереди указывает в каком направлении надо сдвинуть временную метку). И натравливаем нижеприводимый скрипт на файлы этой камеры:

#!/bin/bash

for fname in *.JPG; do
  newname=$(exiftool -CreateDate -globalTimeShift "+0:0:0 0:24:0" -d "%Y%m%d_%H%M%S.jpg" $fname | awk -F':' '{print substr($2,2)}')
  mv "$fname" "$newname"
done

Если камер несколько, вычисляем для каждой из них свое смещение от "эталонной", меняем в скрипте зачение аргумента -globalTimeShift и натравливаем на файлы с фотографиями.

Ура, готово! Теперь все файлы называются единообразно, упорядочены по времени, и только внутри у них в EXIF по-прежнему сохранено исходное значение.

В моем случае это не важно, но если нужно, то всемогущий exiftool может и это исправить тоже. 

man exiftool ;)


2017-03-27

Мастерхост и Почта(4)

Хочу наконец-то закончить начатое почти шесть лет назад повествование о суперпочте от masterhost.

Где-то в прошлом году я вдруг заметил, что одна из пересылок, созданная в этой чудо-почте, работать перестала. Полез проверять и понял, что часть настроек была просто... удалена. Никогда такого в masterhost у меня не случалось - но, как говорится, всё бывает в первый раз.

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

Тот самый простой и понятный веб-интерфейс юниксовой почты, абсолютно "легкий" и лаконичный, без всяких выхухолей типа "почтовый ящик Места". И, по всей видимости, снова бесплатный (включенный в основной тариф).

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

Очнулся я где-то месяца через три, получив от мастерхоста письмо примерно такого содержания: 

Уважаемый клиент!

Сообщаем Вам о том, что в связи с изменениями ценовой политики Microsoft, стоимость
тарифного плана "МХ-1" для электронной почты на базе MS Exchange, которым Вы сейчас
пользуетесь, с 1 апреля 2017 года будет составлять 100 рублей в месяц.

Мы приносим извинения за неудобства, которые может принести Вам эта вынужденная мера.


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

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

Меж тем, мне стали приходить письма из тех пересылок, к которым в "новой" почте не было создано почтовых ящиков. И не спам какой-то, а от "живых" людей, вполне себе требующие ответа.

Жизнь-то налаживается!

А, да! И запомните, Microsoft до добра не доведет! 

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

2012-04-18

Случайно зашел в новостной раздел debian.org и узнал, что 15 апреля лидером снова выбрали Stefano Zacchiroli, и он поставил своеобразный рекорд, став первым лидером с непрерывным трехлетним стажем. Правда, он тут же оговорился, что этот год - последний, и, в частности, добавил:

I'm flattered by the trust that Debian members have put in me in the past, and now renewed with this election. I've a lot of admiration for democratic processes, and I couldn't be happier to have been chosen to serve as DPL for another year. I suspect my agenda for the year will be quite packed and, in parallel, I'll do my best to make myself replaceable.

В моем вольном переводе:

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

По-моему, слова по-настоящему мудрого лидера, особенно про заменимость...

Отсюда

2011-10-04

tail -F

Кто бы мог подумать, что у меня будут претензии к coreutils: а именно, к небезызвестной tail.

Суть проблемы в следующем - в процессе перемещения нашей системы с etch на squeeze (или, с 4 на 6 версию Debian), был получен непонятный глюк, связанный с потерей данных при ротейте файлов. Оказалось, что дело в tail! Схема использования выглядит так:

1. Есть основная программа, которая непрерывно пишет в некий file, в ней есть обработчик сигнала (допустим, USR1).
2. Есть tail, который запущен в режиме следования за именем файла:
tail --follow=name --retry file.

И есть простейший скрипт ротейта, который работает в два приема:

1. Переименовывает файл (допустим, в file.прошло_секунд_с_1970-01-01). Сам файл, естественно, продолжает увеличиваться и после переименовывания.
2. Посылает основной программе сигнал USR1, который заставляет ее закрыть текущий дескриптор и открыть по-новой файл file.

При таких обстоятельствах, tail в режиме следования за именем файла бросает следить за старым и пересаживается на новый. Таким образом, по идее, обеспечивается непрерывность потока данных во время ротейтов.

Так вот - поведение "старого" tail-а 5.95 из etch однозначно - он будет "сосать" данные из  переименованного файла до тех пор, пока снова не появится файл со старым именем - и лишь тогда переключится на него. А вот "новый" tail 8.5 (а по факту, его поведение изменилось уже в версиях 6.x), как только файл переименован, бросает его и тупо ждет появления файла со старым именем. В итоге, данные, которые успели записаться в "старый" файл до момента обработки основной программой сигнала USR1, игнорируются tail-ом, образуя некую "дыру" в потоке - обычно пара секунд данных таким образом безвозвратно теряется.

Первым делом хочется увеличить время сна tail-а, чтобы переоткрывание все-таки успело произойти. Но потом понимаешь, что это обычный sleep, и вероятность, что tail проснется в неподходящий момент, сохраняется. 

Именно поэтому пришлось делать специальный пакет со "старым" tail-ом - бы было чуть больше времени, сделал бы значение ключа --follow=descritpor_than_name или что-то в этом духе. 

2011-03-13

Как перекодировать видео для Caanoo?

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

Надо сказать, что ответ пришел довольно быстро - скрипт tablet-encode из статьи про mediaserv. Напомню, это - обычный скрипт на старом добром Perl, который вычисляет правильную командную строку для утилиты mencoder, входящей в состав MPlayer. Получившийся в итоге файл можно проиграть на устройстве Nokia/Maemo, но весь фокус в том, что и для Caanoo это вполне приемлемо.

Проверьте, что необходимые пакеты установлены в вашем Debian/Ubuntu:

apt-get install perl mplayer mencoder

Скачайте скрипт tablet-encoder и откройте его любимым текстовым редактором. В самом начале вы увидите определения переменных, исправьте следующее:

my $idealRatio    = 320/240; 
my $defaultPreset = 'caanoo';

А также добавьте одну строчку в конец хэш-массива %PRESET, получится примерно так:


%PRESET = (
    smallest => { abitrate => 32, vbitrate => 80, width => 240, fps => 15 },
    small    => { abitrate => 96, vbitrate => 150, width => 240, fps => 15 },
    average  => { abitrate => 128, vbitrate => 350, width => 320 },
    good     => { abitrate => 160, vbitrate => 600, width => 352 },
    best     => { abitrate => 192, vbitrate => 768, width => 400, height => 240 },
    mplayer  => { abitrate => 192, vbitrate => 1200, width => 400, height => 240 },
    n900     => { abitrate => 192, vbitrate => 2000, width => 800, height => 480 },
    caanoo   => { abitrate => 128, vbitrate => 350, width => 600, height => 375 },
);

Если по каким-то причинам боитесь редактировать скрипт, можно скачать уже исправленный.

Ну а дальше, можно использовать его так:

./tablet-encode -7 --original-aspect --hq --preset=caanoo source.avi destination.avi

Всегда указывайте "-7" - пусть вас не смущает, что это опция для Nokia n770 - у них с Caanoo общая проблема, которая решается подстановкой нужного FOURCC. 

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

Upd: теперь Caanoo можно купить и в России... 



2011-03-03

Caanoo приехал

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

Итак, смотрим на содержимое коробки. Вот минимальный комплект:
  • собственно, сам девайс с абсолютно незаряженным аккумулятором;
  • запасной стилус;
  • петелька для ношения на руке;
  • шнурок для связи с PC и одновременной зарядки от USB (специального сетевого адаптера в комплекте нет);
  • книжечка "быстрый старт" с абсолютным минимумом полезной информации (не ищите русский язык, скажите спасибо за english ;)
  • диск с руководством пользователя - он содержит только два файла (на английском и на корейском, ни байтом больше).
Устройство представляет собой маленькую машинку, работающую под управлению Linux (о технических характеристиках я писал в предыдущем посте). Но для обычного человека - это просто игровая консоль, сделанная, кстати вполне добротно.

Самое время заметить, что в устройстве нет ни одной встроенной игры - их придется скачать в интернете и установить на SD-карту. Самой карты в комплекте, кстати, тоже нет. Подойдет любая полноразмерная - поддерживаются SD и SHDC до 32Gb включительно. 

Карту перед использованием форматировать необязательно (поддерживается только FAT и FAT32), но желательно. Как только вы установите карточку в Caanoo и включите ее, она запишет в корень служебные файлы NED_LIC.SYS и NED_SID.SYS, а также, по мере того, как вы будете перебирать пункты основного меню, создаст там каталоги apps, game, music, photo, movie и ebook.

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



Если соединение установилось, на экране будет отображаться такая картинка:     



Логично предположить, что вы купили эту консоль для того, чтобы играть. Что ж, по обилию игр Caanoo далеко не самая первая - но не спешите огорчаться! Уж где-где, а в области эмуляторов она может похвастаться довольно внушительным набором: а это, в свою очередь, значит, что на ней можно играть в игры, написанные для других игровых консолей и приставок - от старого доброго ZX Spectrum до SEGA Mega Drive. 

Итак, я обнаружил два основных абсолютно легальных источника приложений:
  1. Родной сайт Caanoo и Wiz - fungp.com. Только там можно скачивать платные приложения, зарегистрировать свою консоль и общаться в форуме с техподдержкой;
  2. Сайт openhandhelds.com - там можно скачать исключительно бесплатные игры и  программы - в том числе и для Caanoo. Может показаться странным, но там их гораздо больше, чем на официальном сайте.
Куда же податься?

Я считаю, что без FunGP вполне можно обойтись. Тем более, что сайт этот поистине уникален своим подходом к интерфейсу с пользователем. Перед его посещением усвойте простую истину: представления сотрудников GPH об эргономике в целом и здравом смысле в частности не совпадают с общепринятыми.

Итак, идем на fungp.com и создаем свой аккаунт. Это сравнительно легко, но имейте ввиду - на страницу с регистрацией мы попадаем по протоколу https через порт 442, а не через общепринятый 443 (будьте внимательны, если используете proxy). Ищите "SIGN UP" и смело нажимайте - должно появиться Membership Agreement, которое положено внимательно прочитать и согласиться при при помощи чекбокса "I accept the membership policy". На следующем экране вводим свою информацию, включая логин (нет различия между прописными и строчными буквами) и мыло. Последнее надо вводить аккуратно, потому что на него приходит письмо с активацией и если промахнуться - придется регистрироваться по-новой и выбирать другой логин - возможности изменить мыло до его подтверждения, увы, не предусмотрено.

Допустим, вы успешно зарегистрировали пользовательский аккаунт. Теперь можно скачать и установить программу PC Manager  на вашу Windows - поищите квадратный баннер на заглавной странице сайте, приблизительно такой:



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


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

Можно ли воспользоваться гарантией в России и как это делается - понятия не имею, но если (тьфу-тьфу-тьфу) появится опыт - обязательно поделюсь им ;)

Вернемся к программе PC Manager. К счастью, она не пытается управлять вашим компьютером (как это может показаться из названия), напротив - она управляет приложениями для Caanoo. Под приложением понимается исключительно целый подкаталог (он же фолдер, папка - как вам привычнее).

Для работы с программой в настройках потребуется жестко задать каталог, куда вы будете помещать распакованные (готовые для перемещению на Caanoo) программы:



Тут мы видим первую крупную логическую несостыковку: по каким бы каталогам вы не перемещались в дереве файловой системы (слева вверху), файлов вы не увидите. На панели справа можно увидеть хоть какую-то информацию только если будут соблюдены два условия 1) вы зайдете в этот самый "Downloaded contents folder" из настроек выше 2) в этом каталоге будут существовать подкаталоги с программами для Caanoo. Вот пример - скачанные с сайта FunGP программы успешно распакованы в папку C:\GP2X, и именно она выбрана слева:


Далее, надо подключить консоль в режиме USB-накопителя и нажать на кнопку "Search device". В случае успеха, окно расширится еще одной секцией, где можно увидеть - опять-таки, не файлы, а подкаталоги! - на вашем Caanoo. Установите курсор на нужный каталог внизу (например, games), выберите каталоги для закачки при помощи чекбоксов вверху и нажмите на красивую полупрозрачную оранжевую кнопку "Apps transfer":



Начнется пофайловое копирование, будьте терпеливы! ;)


Вот, собственно, и всё - дальше обращаться с консолью надо также, как и с любой флешкой или иным USB-MassStorage  устройством - сначала "безопасно извлечь" и только потом отключать кабель USB.

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

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

Но вернемся к сайту FunGP - а точнее к тому, как с него качать игры и программы. Для этого надо ткнуть в линк App Store:



Попробуем разобраться, что к чему. Звездочки - народный рейтинг голосования, причем они отражают действительно реальное положение вещей. Далее - надпись Free - означает, что программу можно получить бесплатно, в противном случае что-то типа 5000G или 3000G - это так называемые G-поинты, которые можно купить за деньги, из расчета приблизительно 1000G = 1 USD. Правда, покупать их надо на сайтах-партнерах, а на FunGP - исключительно регистрировать.

И, наконец, самое главное - если название игры заканичается на _C - например, JumpToTheMoon_C, то это игра для Caanoo! Но если на конце мы видим _W, то это - игра для Wiz - консоль-предшественница Caanoo. И поскольку прямой совместимости нет, не тратьте время зря - скачанные игры для Wiz не будут запускаться на Caanoo.

Самое время выбрать игру и нажать на кнопку Purcashe. Можно, конечно, для начала аккуратно собрать их в корзинку (Add to cart), но программ на самом деле не настолько много - запутаться сложно. Да и удалить из этой корзины ничего нельзя, так что при неумелом использовании она через некоторое время превратится к копию каталога приложений ;)

Откроется новое окно:



Смело нажимайте "Buy now" - никаких уловок, платить не придется. После появления этого окна:


...игра считается купленной. Осталось дело за малым - скачать ее на наш PC.

Вот тут опять мы сталкиваемся с экзотикой. Дело в том, что скачиванием занимается не непосредственно браузер, а специальный Java-апплет, поэтому браузер должен уметь запускать Java - это непременное условие.

Теперь надо найти ссылку для скачивания. Для этого идем в список скачанного. Это можно сделать через пункт Game Purcashe history, или через бокс "My Apps", если он показывается слева - жмите на плюсик или на слово "In Box" (судя по всему, они еще не скоро что-то изменят в своем веб-интерфейсе ;)



Нажимайте кнопку Download - откроется всплывающее окно и запустится апплет (а если не запустится - будет, по крайней мере, линк - откуда можно скачать Java для вашего браузера).  Далее надо последовательно выполнить следующее:

1. Разрешить апплету хозяйничать на вашем HDD. Я это сделал и вроде бы ничего страшного не случилось:



2. Дожидаемся полной загрузки апплета (курсор ожидания во всплывшем окне заменяется на стандартный).


3. Жмем "Change folder", указываем каталог на жестком диске для скачивания (как правило, все тот же C:\GP2X), нажимаем ОК - диалог выбора каталога закрывается.

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

После скачивания, игру можно установить при помощи PC Manager, как это было описано выше.  

продолжение обязательно следует

2011-02-11

Мастерхост и Почта(3)

Сегодня прочел в твиттере мастерхоста:

Ван нужна "бесплатная" почта? Вам в Gmail или к другим любопытствующим перлюстраторам. У нас другая бизнес-модель, мы честно продаем услуги.

Я уже представил себе, как офигенный штат специально нанятых сотрудников Gmail с живым интересом читает мои письма. Точно так же ясно я вижу сотрудника ФСБ, приходящего в Masterhost с требованием обеспечить рабочее место для выборочного анализа почтовых сообщений.

А резюме такое: если кто-то кричит, что он честный, возникает вопрос: а зачем он это делает? Его что, кто-то обвиняет в нечестности? Или проблема в другом?...

2011-01-26

Мастерхост и Почта(2)

Итак, неотвратимо приближался день окончания авансовой оплаты моей площадки по тарифному плану "Эффективный". Воспользовавшись ценными советами читателей к моему предыдущему посту на эту тему, выяснил следующее:

Во-первых, Google Apps - это хорошо, но у меня много пересылок, а маршрутизировать почту на основе имени получателя бесплатная версия не умеет. Надо быть как минимум учебным заведением ;)

Во-вторых, действительно - можно сидеть на "старой" почте и устаревшем тарифе "Эффективный" до посинения. Правда, с нового года на него подняли ценник - 360 рублей в месяц, о чем радостно поведали в панели сообщений.

Тогда я решил попробовать эту самую новую "Почту"... результаты превзошли самые смелые ожидания. 

Охарактеризовать это можно одним емким словом - убожество

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

Итак, вы перешли по ссылке https://m.mastermail.ru/, и радостно наблюдаете экран логина. В подвальчике этого экрана сразу бросается в глаза упоминание о Microsoft:



Дурное предзнаменование не обмануло: меня ждала смена браузера (Chrome почему-то этому интерфейсу не понравился, пришлось туда идти через Firefox). Заходим и видим псевдоокошечный интерфейс внутри страницы (честно говоря, бывает и покруче, да и побыстрее), долго тупим - где же администрирование почтовых ящиков... После чтения документации, выясняется - надо справа тыкнуть в drop-down box "параметры", там будет "показать все параметры". После выбора загружается визуально совершенно другой экран, где я вижу потрясающую статистику:



(кто разъяснит мне фразу про то, что "в 49.5Гб нельзя отправлять почту" - а куда ее можно отправлять?!)

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

И вот, наконец, можно конфигурить почтовые ящики и правила пересылок. 

Тут надо вспомнить, что перенос информации со "старой" почты на "новую" - осуществляется либо платно компанией Мастерхост и бесплатно вами самими. При этом компания не позаботилась ни о каких примитивных средствах импорта - если у вас есть 100-200 почтовых ящиков - закатывайте рукава и в бой! Надо 100-200 раз нажать "Создать", заполнить информацию, и далее - ОК. И все это, увы, происходит не так быстро, как хотелось бы.

Но мне немного повезло - у меня ящиков-то было штук 10 от силы, но зато пересылок - 35. Я аккуратно создал 35 правил пересылки (как это было в старой почте) и полез проверять. Увы, при попытке отослать почту на этот адрес, письмо возвращается с вердиктом "такого mailbox-а не существует". Ура, теперь надо тупо создать 35 мэйлбоксов, исключительно затем, чтобы почта все-таки добиралась до правил пересылки. Да, и пароль при создании тоже надо вводить - два раза.

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

Меня постигла в процессе еще одно удивительное открытие. Ящики бывают "Домашние" и "Рабочие"- названия весьма условные, можно было бы сразу "Халявные" и "Платные" - так хоть понятно, в чем разница. Так вот, по умолчанию система подсовывает при создании ящика именно "Рабочий", и... короче, не углядел я - при создании ящиков наплодил парочку "Рабочих" (просто ошибся). При этом мудрый GUI от Mirosoft никак и нигде не сообщает, сколько "Домашних" и "Рабочих" ящиков числится в услуге. И уведомление не приходит "внимание, вы только что увеличили стоимость услуги на XXX рублей".  Об этом можно узнать только через контрольную панель - если зайти в "Древо услуг" и дальше в "Почту". Но если мы этого не сделаем - то всё, со счета будет минусоваться столько, сколько задумано "Мастерхостом". Узнаете, когда средства на счету будут подходить к концу.

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

Ну и под финал перешел таки на новый тариф, полюбуйтесь, как это выглядит:



Ну и резюмируя все вышесказанное - я в тихом ужасе. 

2011-01-25

Caanoo

Перелистывал на досуге первый в 2011 году номер LXF и наткнулся на описание игровой консоли на Linux, называется Caanoo:

Технические характеристики следующие:

  • SoC (система на чипе): MagicEyes Pollux VR3520F
  • CPU: ARM926EJ 533 MHz, встроен в SoC (тег архитектуры - ARMv5TEJ)
  • GPU: аппаратный 3D engine, тоже встроен в SoC (поддерживается OpenGL ES 1.1)
  • производительность 3D: 133M треугольников/с и 1,33M полигонов в сек.
  • основная RAM: 128 МБайт DDR SDRAM 133 MHz (пиковая пропускная способность: 533 Мбайт/с)
  • видео буфер: около 16 Mbytes от основной RAM резервируется на видео и текстуры
  • ОС:GNU/Linux 
  • Flash-память: отсутствует (128 Мбайт зарезервировано для OS)
  • Подключение к PC: USB 2.0 High Speed через EXT порт
  • USB Host: USB 1.1 стандартный разъем
  • Поддерживает карты памяти SD / SDHC (до 32 Гигабайт)
  • G-сенсор/монитор вибрации
  • Аналоговый джойстик с высоким разрешением
  • Дисплей: 3.5" LCD 320×240 пикселов (резистивный тачскрин)
  • Встроенные микрофон и стерео-динамики
  • Питание: литий-полимерный аккумулятор 1850mAh (около 5-6 часов просмотра видео/игр)
  • Размеры : 146 × 70 × 18.5 мм
  • Вес : 136г
  • WiFi через адаптер (USB донгл - покупается дополнительно)
  • Цвета: Черный/Голубой/Белый

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

Привлекло меня в этой железке два фактора: невысокая цена (около 5000 руб) и полная открытость. До такой степени, что можно на ней резвиться практически как угодно - например, модифицировать в рутовую файловую систему. Ну и писать программы, конечно же - существует полноценный SDK и toolchain, которые можно свободно скачать и установить.

Что потребуется для программирования под Ubuntu? Попросите apt-get установить следующее:
  • codeblocks ( весьма симпатичная IDE с плагинами );
  • g++
  • libgl1-mesa-glx
  • libfreetype6-devlibgl1-mesa-devlibglu1-mesa-dev, etc
Итак, скачайте и распакуйте в домашний каталог SDK (я для примера буду использовать /var/caanoo).  В зависимости от того, что у нас выступает в качестве хоста - Windows или Linux, делать надо немного разные вещи, но суть едина, поэтому я буду рассматривать только Linux. 

Обязательный пункт программы: скопируйте файлы для wizard-а из распакованного SDK в  Code::blocks:

sudo cp -r /var/caanoo/GPH_SDK/tools/codeblocks/wizard/* /usr/share/codeblocks/templates/wizard

После этого команда New|Project будет показывать возможность создать GP2X-проект:



Далее, надо зайти в настройки Settings|Compiler and debugger и выставить там на закладке Toolchain следующее:

Чтобы проверить правильность настройки, можно открыть любой из примеров, входящих в SDK и попробовать скомпилировать. Компиляция возможна либо в host, либо в target (выбирайте через Select|Build target) - в первом случае в каталоге проекта создается файл target.out, во втором - target.gpe, для запуска на вашем компьютере и на консоли соответственно. Во всех каталогах с примерами есть Makefile, они достаточно простые и помогут сориентироваться тем, кто с недоверием относится к GUI и предпочитает командную строку.

Если в процессе компиляции вы наблюдаете сообщения о ненайденных библиотеках, например GL или GLU - надо установить соответствующие пакеты, только с -dev на конце. Именно там находятся статические библиотеки типа libGL.a, которые требуются для линковки в проектах.

Продолжение обязательно следует