вторник, 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']))
Теперь товары с русскими буквами должны сохраняться нормально.