четверг, 23 декабря 2010 г.

ffmpeg (ffserver) for windows

Собрал ffmpeg (включая ffserver) под cygwin.
Был использован ключ --disable-yasm.
Версия, согласно git log

commit 390071f52d1b4a768a0083dc55f3d3e361afc06c
Author: mstorsjo
Date:   Wed Dec 22 20:00:42 2010 +0000

 
Кому надо забирайте: страница загрузки или файл.

вторник, 30 ноября 2010 г.

Как передать правильный путь Windows-приложению из Cygwin

Рассмотрим такую ситуацию, для конкретики, возьму Git.
Запущенный под Cygwin, он понимает пути только в Unix-формате, например, "/cygdrive/c/home/projects".
Приложения, вроде KDiff3, P4Merge ждут этот путь в формате "c:\home\projects".

Необходимо как-то сконвертировать.
И такая утилита уже есть в комплекте Cygwin - называется cygpath.
Она имеет много полезных параметров, но, в контексте решаемой задачи, нас интересуют только два:
"-w" конвертирует путь в формат Windows.
"-a" Выдаёт абсолютный путь.


Дополнительно требуется обернуть строки в кавычки, на случай, если в путях попадутся знаки пробелов.
Сейчас разделы инструментов сравнения в моём ~/.gitconfig выглядят так (прочие параметры убрал для наглядности).
[mergetool "kdiff"]
        path = /here_your_path/kdiff3.exe -b \"`cygpath -w -a $BASE`\" \"`cygpath -w -a $LOCAL`\" \"`cygpath -w -a $REMOTE`\" -o \"`cygpath -w -a $MERGED`\"

[mergetool "p4m"]
        cmd = /here_your_path/p4merge \"`cygpath -w -a $BASE`\" \"`cygpath -w -a $LOCAL`\" \"`cygpath -w -a $REMOTE`\" \"`cygpath -w -a $MERGED`\"

[difftool "p4m"]
        cmd = /here_your_path/p4merge \"`cygpath -w -a $LOCAL`\" \"`cygpath -w -a $REMOTE`\"

[difftool "kdiff"]
        cmd = /here_your_path/kdiff3.exe \"`cygpath -w -a $LOCAL`\" \"`cygpath -w -a $REMOTE`\"

пятница, 2 июля 2010 г.

Синий экран смерти при подключении iPad к VMWare Player

Имеется: VMWare Player 2.5.2, Windows XP в качестве гостя, iTunes 9.2.
При подключении iPad к этой виртуальной машине, происходит BSOD.
BUGCODE_USB_DRIVER
STOP: 0x000000FE (0x00000005, 0x8228F0E0, 0x80867112, 0x822FFF70)
В моём случае, помогло включение поддержки режима USB 2.0.
Как это сделать описано в предыдущей заметке.

Как включить поддержку USB 2.0 в VMWare Player



По умолчанию, в VMWare Player включена поддержка 1.0.
Поэтому часто при подключении флэшек, фотокамер или других устройств, винда внутри виртуалки предупреждает, что устройство работает не так быстро как может.
Попробуем это исправить.
Необходимо выключить виртуальную машину и подредактировать конфигурационный vmx-файл.

Скорее всего в нём уже есть строка:
scsi0.present = "TRUE"
К ней необходимо дописать ещё три, чтобы конфигурация приняла вид:
scsi0.present = "TRUE"
scsi0.pciSlotNumber = "-1"
ehci.present = "TRUE"
ehci.pciSlotNumber = "-1"
Теперь, после загрузки виртуалки, USB-устройство должно работать на максимальной скорости.

среда, 30 июня 2010 г.

Про нашу судебную систему

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

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

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

Заседания суда.
Разобрались куда подавать правильно, передали дело в нужный участок, назначили дату заседания. Но заседание перенесли из-за неявки ответчика.
Следующее заседание перенесли из-за невозможности дозвониться в Москву до ответчика с 13-00 до 14-00 по Читинскому времени.
Наконец заседание состоялось без ответчика, где судья уже склонялась вынести решение, но ответчик написал в письме какую-то белиберду в качестве отзыва на последнее заседание, её рассмотрели и назначили новое заседание, где всё таки вынесли решение в пользу истцов.
Затем ответчик подал апелляцию.
Но тут судью лишили права проводить данные дела.
Посчитали что передавать дело другому судье это будет ещё дольше, и решили подождать.
Судье всё-таки разрешили проводить дела и на последнем заседании решение вынесли в пользу братишки.
Обязали работодателя выплатить всё до копейки. Но судье было некогда выносить решение в письменном виде и месяц просто ждали письменного решения.

Судебные приставы.
На следующий день, после вынесения письменного решения по делу, оно было отправлено в центральный офис приставов по Москве, откуда должно ещё попасть в районный.
Сейчас посылка из Америки или Гон-Конга может дойти за несколько дней.
А здесь в пределах одного города, дело передавали неделю.
Точнее даже не так. В центральном офисе неделю думали в какой район города отдать это дело.
Наконец, придумали и сообщили об этом районному приставу.
Как все знают, дороги в стране очень плохие.
Поэтому районный пристав две недели ехал в центральный офис.

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

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

К этому моменту события длятся уже три года и три месяца. Серьезно, а не как в сказке для красного словца, началось в 2007, сейчас 2010.

Теперь, выясняется что приставы не могут получить данные из налоговой об ответчике, поэтому не могут ничего сделать.
Пришлось эти данные искать брату, он их нашёл. Но они говорят, что не могут их принять, так как, внимание, у них в Москве нет интернета.
Документы необходимо отправлять только по факсу.
Я откопал недавно рабочий модем (предания старины глубокой, на 58 Килобит), но так сложилось, что в эру сотовых телефонов, городским телефоном обзаводиться не видели необходимости и модем оказался без дела.
Пришлось проходить квест по поиску факса среди знакомых. Вроде нашли.

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

воскресенье, 18 апреля 2010 г.

Необычный китайский велосипед

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

Скорее всего привезли велосипед с собой, т.к. в прокате на ВДНХ я таких не обнаружил.

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

суббота, 10 апреля 2010 г.

Анроид на аксимах! Теперь на DVD и для MacOs! Кряк не нужен!

Решил промониторить сдвинулось ли портирование андроида на аксимчики.
Вбил в гугл "dell axim x51v android".

Нашёл такое:
http://fil*****asury.com/?route=search&s=4&query=android+on+dell+axim+x51v&wmid=10&hl=RU

Где предлагают скачать:

ANDROID-ON-DELL-AXIM-X51V.RU-[Mac Version].Build-1434.zip
updated 10/04/2010

[MAC]-android_on_dell_axim_x51v.RU-Deluxe.Edition.zip
updated 10/04/2010

android_on_dell_axim_x51v.RU.S01E09.WS.PDTV.XviD.avi
updated 11/04/2010

ANDROID-ON-DELL-AXIM-X51V.RU.2010-Edition+Patch.zip
updated 10/04/2010

[android.on.dell.axim.x51v].2009.MD.DVDscr.XviD.avi
updated 10/04/2010

ANDROID_ON_DELL_AXIM_X51V_RU BY LASTSTAYER
updated 10/04/2010




Естественно, не бесплатно.
Что вы хотели? Раритет )

понедельник, 8 марта 2010 г.

Корзина товаров в CodeIgniter и русские буквы

При вызове $this->cart->insert() фреймворк проверяет поля регэкспом.
Если в product_id или product_name будет что-то отличное от латинских букв и цифр, то запрос успешно проигнорируется без каких-либо ошибок.
И такие баги я ненавижу больше всего.
Итак, чтобы починить, открываем /system/libraries/Cart.php.

В самом начале видим:
class CI_Cart {

// These are the regular expression rules that we use to validate the product ID and product name
var $product_id_rules = '\.a-z0-9_-'; // alpha-numeric, dashes, underscores, or periods
var $product_name_rules = '\.\:\-_ a-z0-9'; // alpha-numeric, dashes, underscores, colons or periods

Добавляем "а-я" в регэксп, должно получиться так:
var $product_id_rules    = '\.a-z0-9_-а-яА-Я'; 
var $product_name_rules    = '\.\:\-_ a-z0-9а-яА-Я';
Теперь переходим к методу function _insert($items = array())

Добавляем к проверке правило для уникода (буква u, после $/i).
Должно получиться так:
if ( ! preg_match("/^[".$this->product_id_rules."]+$/iu", $items['id']))
if ( ! preg_match("/^[".$this->product_name_rules."]+$/iu", $items['name']))
Теперь товары с русскими буквами должны сохраняться нормально.

вторник, 23 февраля 2010 г.

Как заставить сотрудничать Smarty и Form Helper из CodeIgniter

Так как, при использовании шаблонизатора Smarty, ограничивается использование PHP-тегов, необходимо искать другие пути.

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

Поэтому я допилил до следующего вида:



  1. <?php


  2. /*


  3.  Author: Svetoslav Marinov; svetoslavm [] gmail.com


  4.  Inspired by: http://codeigniter.com/wiki/Use_URL_helper_from_Smarty/


  5.  Modified: Dmitriy S. Aleshkowsky; to.wwarlock [] gmail.com


  6.  */




  7. function smarty_function_form($params, &$smarty)


  8. {


  9.     //check if the needed function exists


  10.     //otherwise try to load it


  11.     if (!function_exists('form_open')) {


  12.         //return error message in case we can't get CI instance


  13.         if (!function_exists('get_instance')) return "Can't get CI instance";


  14.         $CI =& get_instance();


  15.         $CI->load->helper('form');


  16.     }




  17.     // Making it more complex


  18.     if (isset($params['url'])) {


  19.         $url = $params['url'];


  20.         unset ($params['url']);


  21.         if ($params['type'] == 'upload')


  22.         {


  23.             unset ($params['type']);


  24.             return form_open_multipart($url, $params);


  25.         } else {


  26.             return form_open($url, $params);


  27.         }


  28.     } elseif (empty($params)) {


  29.         return form_close();


  30.     }


  31. }


  32. ?>

Согласно API можно ещё добавить параметры для скрытых полей, однако у меня не было в них необходимости, поэтому я намеренно не стал их реализовывать.

понедельник, 8 февраля 2010 г.

Грядёт DirectX 10/11 поверх Gallium3D.

Gallium3D - это драйверная архитектура для ускорения различного спектра API, от OpenGL ES и OpenVG, и до OpenGL и OpenCL.

Со слов Майкла Ларабэля (Michael Larabel) стало известно, что с помощью данной прослойки через какое-то время будет возможно поддерживать и Microsoft's DirectX API.

Ходят слухи, что Tungsten Graphics, создатель Gallium3D, уже имеет работающий DirectX среди своих наработок.
VMware, которая является владельцем Tungsten Graphics в настоящее время, использует открытую драйверную архитектуру в своей платформе виртуализации для аппаратного ускорения гостевых операционных систем с помощью GPU, и для них такая поддержка чертовски важна.

Зак Расин (Zack Rusin) подтвердил, что среди новых возможностей Gallium3D, над которыми сейчас работают это OpenCL 1.0, DirectX 10.0/10.1, и DirectX 11.0.
Много работы уже сделано, и ещё больше предстоит сделать, до завершении работ пока далеко.
Хотя поддержка DirectX в Gallium3D безусловна интересна, но мы больше ждём поддержки OpenGL 3.x.

Технические подробности о новых трекерах состояний ищите в блоге Зака.

Myst Online:URU Live стала вновь доступна для игроков

Игра Myst Online:URU Live стала вновь доступна для игроков. Были открыты все эпохи.
Цена доступная: Бесплатно. Однако не отказываются от пожертвований через PayPal.
Так же, компания Cyan Worlds планирует в скором времени открыть исходные коды и надеется на помощь сообщества.
Все любители закадок Welcome.
P.S. К сожалению, клиент игры доступен только для подоконников, но уверен, что с открытием сырцов, версии для других платформ не заставят себя ждать.

пятница, 22 января 2010 г.

Mini-USB и HTC Hero

Вероятно, тема совместимости HTC Hero с обычными Mini-USB кабелями как-то плохо раскрыта в сети.
Меня уже несколько раз спрашивали на эту тему.
Отвечаю: Несмотря на немного нестандартный разъём, никаких проблем при использовании проводков Mini-USB от, например, фотоаппарата или устройств чтения на электронных чернилах, не наблюдается.
Всё работает безупречно.

суббота, 16 января 2010 г.

Вышел релиз Wicd 1.7

С прошлого релиза прошло около полугода и за это время добавились следующие фишки:
- Отображение информации о соединении по правому клику по иконке в трее;
- Установка имени хоста раздельно для кажой сети и независимо от используемого DHCP-клиента;
- Поддержка urwid версии 0.99 (библиотека для консольных пользовательских интерфейсов);
- Добавлен wicd-cli, интерфейс командной строки для скриптов;
- Поддержка только цифровых ESSID;
- Представлена wicd-gtk, как предпочитаемый способ запуска графических оболочек, основанных на GTK;
- Использование dhcpcd-bin в Debian системах.

И куча мелких изменений. Подробности на сайте Wicd.

среда, 13 января 2010 г.

Android и трояны

В тему, недавно обнаруженного, трояна, ворующего банковские данные.

В отличие от Apple, Google не проверяет приложения перед размещением в Android Market.
В результате, около 1-го процента приложений содержит malware или другим образом нарушает соглашения Google.
Но сами приложения не удаляются до тех пор, пока пользователи не начнут жаловаться.

В обращении к Федеральной комиссии по связи (FCC), Google разъясняет: "Как только приложение было загружено в Android Market кем-либо из разработчиков и стало доступно пользователям Android-устройств, то общество должно полагаться на флаги, которыми отмечают несоблюдение наших (компании Google) соглашений".

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