Skip to Content

Октябрь 2011

Душераздирающее зрелище

Не могу молчать, хочу писать.

Случившийся давеча бунт гаджетов (и сервисов) наводит на меня тоску:

  1. Сюрпризом для меня оказалось количество мест, дублирующих TZ database: операционная система (про которую было известно заранее), PHP, PostgreSQL (в ветке 8.x база TZ старая), Java - это только то, про что я сам знаю. А реально мест - существенно больше.
  2. Таким же сюрпризом оказалось то, что сервисы надо перестартовывать, просто апдейта TZdb и /etc/localtime - недостаточно.
  3. Владельцам продвинутых гаджетов веселухи добавила продвинутая автоматика, вроде установки времени "от GSM-сети" (а сети все проэтосамое, а может просто побоялись свитчи обновлять ради такой мелочи) или, еще веселее, установки таймзоны по GPS-координатам, как это во многих навигаторах сделано (проверил, в моем Garmin 62s просто нельзя поставить offset в часах, только по имени города).
  4. На этом фоне сообщение РЖД о том, что в ж/д сообщении с Украиной будет бардак до 3 декабря, а дальше будет видно - уже не вызывает удивления, хоть и вызвано это не IT-бардаком, а законодательными инициативами у братского народа: сначала отменой перехода на зимнее время (в сентябре, по мне так безумно поздно), а затем отменой отмены (в октябре, еще веселее).

Про перевод часов, таймзону, PHP и Drupal

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

PHP:

  1. У PHP база данных таймзон вшита в пузо и, конечно, не обновляется регулярно.
  2. Но есть pecl-timezonedb, который ее оверрайдит, со свежей базой (последняя имеет номер версии 2011.13), с этим расширением с таймзонами все станет отлично и любимая всеми Europe/Moscow будет работать как полагается по новым правилам.
  3. Но если вы живете под FreeBSD, то там /usr/ports/misc/pecl-timezonedb не обновлялся очень давно, посему:
    • Меняем там в Makefile 2010.9 на 2011.13
    • удаляем distinfo
    • make && make install
  4. Добавляем timezonedb.so в список extensions.ini (на FreeBSD это сделает make install)
  5. Перестартовываем PHP-fastcgi или Apache или что у вас там работает процесс-сервером для PHP
  6. Ура, можно накатить первый стакан.

Drupal 6:

  1. Сам по себе сразу начинает жить правильно (ну, насколько мне показалось). Т.е. таймзона меняется после апдейта PHP-timezonedb с +0300 на +0400 сама.
  2. Но! В Administer-Date-and-time есть настройка про User Configurable time-zone. Если она включена, то пользователю будут показываться даты-времена в его таймзоне. И весь созданный им контент будет иметь время создания рассчитанное из юзерской таймзоны.
  3. Но. Юзерская таймзона специфицирована в секундах смещения от UTC.
  4. Выходов два: или для всех российских пользователей взять и поправить скриптом (по хорошему, с учетом даты регистрации), или просто отменить настройку пользовательских таймзон. Я пошел по второму пути.

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

Update: первое место на конкурсе известно кого занимает PHP, где таблица таймзон - вшитая, а не системная. Всех бы убил, да. pecl-timezonedb спасает.

Приз зрительских симпатий за перевод часов получает Яндекс-почта.

Рассказываю:

  • На часах 11:26 (правильного времени), вхожу в Я-почту, вижу там внизу "последний вход в 10:54"
  • Действительно, в 10:54 я туда заходил, написать сам себе письмо и посмотреть на даты в заголовках (и все было прилично).
  • Выхожу (на часах 11:26), вхожу, выхожу, вхожу.
  • Надпись внизу остается все та же, про 10:54.
  • Повторяю еще и еще раз, наконец в 11:55 добиваюсь, надпись меняется на 11:26 (время начала экспериментов). Хотя с 11:26 я входил и выходил раз 10 минимум (а в промежутке 10:54-11:26 - нет).
  • Подозреваю, что в следующий раз "время последнего входа" сменится в 12:26 MSK, через полчасика проверю. Yes! Теперь оно залипло на 11:56

О время-время, темпо-темпо

Ну что, сколько у кого серверов перевело время сегодня с утра?

О линейности RAW и ETTR

Рядовой Иванов, о чем вы думаете, глядя на эту кучу кирпича?

На картинке - кривая, которая применяется к RAW-данным камеры Sony NEX-C3 при их распаковке. NEX-C3 просто первая попалась под руку, в компрессированных RAW A77 или A900 совершенно такая же по смыслу кривая, немножно отличается в деталях.

После наложения этой кривой, RAW-данные становятся линейными. Соответственно, при упаковке используется обратная кривая, линейная в тенях и полутонах и загибающаяся в светах (последних 3 стопах диапазона). По сути, три верхних стопа диапазона сжали в 1 стоп сигнала.

Где именно происходит процесс сжатия светов из формы кривой (и процедуры распаковки) выяснить нельзя, это может быть и цифровой процесс над линейными данными обычного АЦП и сжатие в нелинейном АЦП или нелинейном предусилителе.

Собственно, ничего плохого в такой компрессии светов нет. От того, что в верхнем стопе будет не 2048 градаций (предполагая 12-битный АЦП), а "всего" около 600 - становится только хорошо, потому что поэкономленные 1400 градаций переезжают на второй и третий стопы сверху (полутона и следующий стоп за ними).

О китайском литии

Докладываю: тестирование хлопушек тестирование китайского лития прошло успешно, насколько это возможно в условиях эксперимента:

  • Методика: разряд током 500mA в Maha-C9000, девайс считает миллиампер-часы, разряд прекращается, когда запрошенный ток отдать уже не получается.
  • Протестировано 8 батарей, все они безусловно хорошие:
    • У всех емкость больше 2900 mA*h
    • у 6 из 8 - больше 3000 mA*h
    • у 3 из 8 - больше 3100mA*h
    Energizer заявляет емкость чуть ниже 3000 при разряде током 250mA, у меня ток вдвое выше, другими словами емкость соответствует ожиданию.
  • Какой-либо зависимости емкости от веса батарейки (а он в диапазоне от 14.39 до 14.82, разница заметная) или от напряжения неразряженной (1.797-1.831) не обнаружено. Тестировались и самые легкие и самые тяжелые и так далее.
  • Напряжение в процессе разряда держится в районе 1.35-1.2 В (о чем ниже).
Короче, конкретная партия у конкретного продавца хорошая, буду у него брать еще. Собственно, продавца я выбирал исходя из цены и отсутствия отрицательных отзывов на качество продукта (а не на долгую доставку и т.п.).

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

Об академической науке

Читаю на Роеме эпический тред про РОМИП и хочу рассказать следующую историю уже про обработку фото и академическую науку.

Существует огромное количество алгоритмов демозаики. Вот несколько устаревший список. Сайт куда-то подевался, поэтому из архива, но с 2009-го появилось еще немало публикаций, поверьте (или почитайте IEEE Image Processing и подобную литературу).

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

Так я о чем, собственно? А, вот: если алгоритм получился не совсем позорным, то в разделе "сравнение", ближе к хвосту статьи, как правило публикуют сравнение: вот маяк, обработанный нашим алгоритмом, а вот маяк, обработанный стандартным AHD, LMMSE, VCD, наш найкращий!. Так парадокс в том, что "стандартный AHD" в каждой статье - свой, особенный. И "стандартный маяк обработанный стандартным алгоритмом" - соответственно, заметно отличается от статьи к статье.

При этом производители коммерческих конверторов, которые за деньги их продают, на эту тему и вовсе не парятся и используют кто AHD, а кто и вовсе bilinear interpolation для скорости. И, собственно, я согласен: типичным на сегодня 16-18Mpix демозаика нафиг не нужна при печати до A4 (а может и крупнее), не говоря о показе на 2-мегапиксельном мониторе.

О бульдозерах

Я редко анонсирую читаемые ссылки с веба (как бы, блин, автоматизировать выкладку закладок из Evernote в твиттыр, с удобным редактированием?), но тут - тот самый случай.

Читаю Арстехнику: Can AMD survive Bulldozer's disappointing debut?, много думаю:

  • Один FPU на два ALU мне изначально казались какой-то фиговой идеей, ибо аккуратно программируя этот самый SSE зачастую удается порядок прироста в хотспотах получить (раза три на SSE и еще столько же на 4x ядрах), не делая всю программу многопоточной. А тут выясняется еще, что старый FPU имел 3 одинаковых юнита и формально умел 3 операции на такт (ограничений я точно не знаю, но подозреваю что как у Интела - 1 load/store, 2 математики, во всяком случае всякие тесты вроде GEMM давали ~1.8 op/clock что похоже на 2 теоретических операции). А у нового - 4 юнита, но два из них целочисленные, а два - плавучка. Это что, 1 op/clock будет? Ну ладно, для GEMM спасемся FMA, а для всего остального?
  • Идея AMD в том, что вместо SSE-операций надо переползать на APU. Идея отличная, APU умеет scatter-gather, в отличие от SSE, но беспокоят такие вот мелочи:
    • Где, собственно, бульзозер с APU?
    • APU - это же OpenCL, со всеми прелестями двойной буферизации, прямо in-place не поработаешь.
    • Ну и переносимость тоже тревожит. Старый код будет работать плохо, да?
  • Порадовала мысль о том, что в "несколько-поточном" (threads меньше чем cores) приложении планировщик должен их раскидать так, чтобы часть модулей освободить от нагрузки, тогда можно у загруженных частоту поднять.
  • Вместе с тем, планировщик потоков должен еще знать, какие из threads жрут много FPU - чтобы раскидать по одному такому потоку на модуль. А откуда планировщику это знать? Должен быть какой-то API, позволяющий это сказать....
Короче, бардак какой-то с этими бульдозерами, августовские анонсы оставляли лучшее впечатление.

О теории вероятностей

Приехали два десятка китайских литиевых батареек, смотрю вот на них и думаю про теорию вероятностей.

Задача: оценить их failure rate и решить, покупать такие еще или покупать "фирму" (про которую, впрочем, failure rate я тоже не знаю).

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

  • Если в прибор идет три батарейки, то вероятность что все три будут рабочие 0.93=0.73
  • Но вероятность, что из 20 все будут рабочие 0.920=0.12.
То есть даже разрядив все, я с вероятностью 0.88 эти 10% брака не поймаю и буду считать, что доля брака не 10%, а ноль.

А 20% брака дадут только половину работающих сборок по три (0.83=0.512), но чтобы поймать их с вероятностью 95% нужно спалить 13 батареек (0.813=0.055).

Наука, ети ее растак! Спалю пока пяток, дальше будет видно. Если бракованые/разряженые удастся затем отсеивать какими-то полевыми измерениями (напряжения, тока КЗ), то это решает задачу.

О юзабилити

Передайте пожалуйста аффторам нового интерфейса Сбербанк-Онлайн, чтобы убились ап стену:

  • Старые сохраненные шаблоны - не работают. С диагностикой "попробуйте позже". Ахуеть.
  • Новые шаблоны - работают, но хуже прошлых. В частности, старые шаблоны из номера счета получателя могли вытащить название (если счет в сбере же), новые - не могут, надо руками вбивать. Шагов по оплате стало как-то заметно больше, раньше я просто нажимал "подтвердить", если сумма не изменилась, а сейчас - обнажимался.
  • Отчего квитанцию ("чек") можно распечатать из списка операций по Сбербанк-онлайну, но нельзя - из списка операций по карте? Это же контринтуитивно?

В-общем, старая версия (которая еще в сентябре работала) была приемлемой, новая же - ужоснах.

Hackintosh 10.7: восстановление с Time Machine

[Оглавление раздела Hackinthosh]

С восстановлением OS X целиком с Time Machine backup на родных Маках никаких проблем нет: Time Machine должна быть видна через mDNS (Bonjour), грузимся с инсталляционного диска/флэшки (можно даже с того, с которого на данном маке поставиться нельзя) и все восстанавливаем.

С Хакинтошами все выглядит сложнее:

  • Загружаемый на PC инсталляционный диск с OS X Lion - на сегодня не существует.
  • Кроме восстановления системы, нужно еще восстанавливать загрузчик.
В результате экспериментов, родился и проверен следующий метод:

Time Machine server на FreeBSD: backup, restore, полный restore...

[Оглавление раздела Hackinthosh]

Как многие знают, Time Machine на Mac OS X 10.7 не поддерживает SMB

Пришлось осилить AFP и к нему mDNSResponder. И если с AFP все тривиально, то с mDNSResponder пришлось помудохавозиться, ибо документации к нему в сети сыскать не удалось, исключительно методом тыка разбирался.

Идеальное решение должно уметь:

  • Бэкап TimeMachine на FreeBSD-сервер.
  • Пофайловое восстановление с TimeMachine за нужную дату.
  • Накатка целого бэкапа из инсталлятора Lion/Snow Leopard

Нижеприведенный текст - для FreeBSD, для Linux/Solaris будет отличаться процедура установки пакетов, а настройка должна быть примерно такая же.

Mac OS X 10.7 Lion: Hackintosh

[Оглавление раздела Hackinthosh]

Поапгрейдить штатными средствами Хакинтош на OS X 10.7 нельзя, сделать инсталляционный диск/флэшку для 10.7 и обычного PC вроде бы тоже пока нельзя (? я не нашел).

Чтение форумов дает кучу весьма противоречивой информации, из которой скомпилировалось следущее (за основу взято вот это: xMove + MultiBeast: Install OS X 10.7 Lion on any Supported Intel Core 2 or Core i based PC).

У меня (но на вполне mainstream-железе) оно сработало.

Про iOS 5

Вкратце:

  • Stanza - не работает. Неудобно. Есть мнение, что и не будет работать, для iOS5 они так и не почесались за полгода.
  • Попробовал iBooks, читать удобно (и лучше чем Stanza, две колонки в landscape-режиме лучше чем одна), хотя поля великоваты, сувать книжки туда-сюда не так удобно. Ну хорошо хоть по клику в Safari оно предлагает открыть в iBooks.
  • Новая Safari с табами - удобная. Интересно, на телефоне оно тоже с табами?
  • AppStore, в отличие от десктопного, продолжает спрашивать пароль на каждый чих (а нафига я тот же пароль скормил iCloud-у?), апдейтить apps продолжим с десктопа.
  • Пожалел разработчиков aNote и 2Do (коих я честно купил), вполне возможно что лично я бы удовлетворился системными Notes/Reminders, если бы они были раньше.
  • Автоматический download Books/Apps без кнопки Sync - порадовал.
  • Из Newsstand полезли free apps с журналами. Журналы там внутри покупаются прямо вот одним кликом, что прикольно. Аппы обещают уведомлять о новых выпусках сами. Еще бы, за бабки то!
Общее впечатление скорее приятное, если не будет косяков, то ради Safari и auto-downloads есть смысл апдейтиться.

Трекинг почты (и таможни)

К радости всех людей доброй воли, статус "Передано таможне" (пропавший в прошлом году) вернулся в трекинг.

А дальше все как раньше: если три дня висит в "Передано таможне", то надо звонить в EMS или даже просто ехать на Варшавку.

А трекать все (и EMS и нет) теперь лучше прямо на сайте почты России: с трекинга на emspost.ru пропало время (осталась только дата), а любимый всеми трекинг на info.russianpost.ru для простых смертных тоже закрылся с сентября.

К сожалению, на сайте ПР невозможно сделать букмарку с URL отдельной посылки....



.