zHz00 Untitled

пятница, 25 ноября 2011
12:20 "Снова ССЗБ" или "Как сбросить пароль в навигаторе"
Описана процедура снятия известного заранее пароля с устройств Windows CE.

У меня есть навигатор. Prestigio GeoVision 4300. Используется с разными целями. Незадолго до его приобретения мне один знакомый показал одну фишку -- на навигаторах, говорит, стоит обычный Windows CE, это почти что Windows Mobile, и есть Total Commander для него. И показал. Рабочий стол показал, меню пуск. Ярлычки. Почти что обычная винда. Я был немного удивлён. Кстати, разговор этот начался с того, что я спросил его -- что, рынок КПК и Windows Mobile умер? Он сказал -- КПК, да, сейчас сплошь смартфоны, а Windows Mobile -- вот.

И вот решил я посмотреть, можно ли на моём навигаторе так же сделать.
(читать дальше)

@темы: Программы, Борьба с техникой, Статьи

URL
среда, 23 ноября 2011
00:54 Об обратной совместимости
В винде есть баг. Его многие замечали, наверное. Если программа, имеющая иконку в трее, падает, иконка продолжает висеть, пока не наведёшь на неё мышку. Этот баг прошёл красной нитью со времён Windows 95 и сохранился даже в семёрке.

Только что я узнал, что в Windows CE 5.0 он тоже есть.

@темы: Программы

URL
вторник, 22 ноября 2011
23:27 Метромузыка
Сегодня на ст. м. Чертановская в 22:04 в вестибюле станции из динамиков вместо рекламы играли Emmanuelle Song. Я не спорю, песня хорошая, но для метро это слишком.

@темы: Общественный транспорт

URL
01:53 Что такое мэдскиллз?
Несколько раз уже заходили ко мне на дневник через гугл в поисках ответа на этот сакраментальный вопрос. Но, очевидно, не находили на него ответа. Я удивлён, как вообще сюда попадают по этому вопросу.

Отвечу на него таки. Мэдскиллз -- это картинка, нарисованная врукопашную или обработанная при помощи программы уровня MS Paint (раньше она называлась Paintbrush). Как правило, отличается невысокими художественными качествами. В качестве примера продемонстрирую мэдскиллз, нарисованный мной при помощи пэйнта и тачпада джва года назад:


Lurkmore считает немного по-другому.

@темы: Мэдскиллз

URL
воскресенье, 20 ноября 2011
02:56 Рекомендованные видео на я-трубе
Захожу я на я-трубу. А там...

Recommended videos
Машина для сдачи спермы
Because you watched
Люди превращаются в героев аниме

.
.
.

@темы: Аниме

URL
суббота, 19 ноября 2011
17:03 Перекрытие метро
Уж открывать что-то наши люди умеют плохо, а закрывать -- просто замечательно.
После ремонта и открытия Большого Театра внезапно выяснилось, что вибрации в подвале слишком сильны от метро, поэтому решили установить виброзащитные шпалы или что-то в этом роде. Напомню, что ещё виброзащитные шпалы стоят под библиотекой имени Ленина (и там строже скоростной режим), однако будут ставить на зелёной ветке такие же шпалы или что-то ещё -- я не знаю.

В связи с установкой этого безобразия кусок зелёной ветки в середине закрывают ПОЛНОСТЬЮ. На два дня. А потом ещё на два дня. Две недели по выходным -- суббота и воскресенье. Закрыли Маяковскую, Тверскую, Театральную. Поезда ходят до Белорусской и до Новокузнецкой, а потом обратно.

Имел счастье и необходимость ехать сегодня по зелёной ветке и об'езжать этот кусок. Организовали об'езд хорошо. Как можно догадаться, все пассажиры решили объехать через кольцевую линию. Она не предназначена для таких нагрузок, несмотря на субботу (особо не предназначены пересадки). На Павелецкой ситуация была лучше, т.к. переход полностью пешеходный без применения эскалаторов. На Белорусской эскалатора на пересадке три и один включали по очереди то туда, то сюда. Помогало это слабо, толпа была с обоих сторон.

На платформах в ту сторону, куда поезда не ехали, каждые 5 метров стоял милиполиционерейский или сотрудник метро и отвечал на вопросы граждан. Схема метро превратилась в фетиш. Идут люди, держат в руках схемы схемы схемы, на стенах Белорусской и Новокузнецкой каждые 10 метров схемы схемы схемы. На Павелецкой ещё в мегафон об'являли, а по поездному радио и громокоговорителях на остальных станциях -- ещё дополнительно.

Все же знали, что движения не будет, всех ещё за две недели предупредили, почему же никто не знает, как ему ехать? Откуда эти толпы у карт?

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

Далее про систему подачи поездов. Как знают некоторые, оборотный тупик на Белорусской есть, но не в ту сторону. А на Новокузнецкой только соединительная ветка, но тоже не в ту сторону. Что же делать? Применили извращение. Приведу пример для Новокузнецкой, для Белорусской система та же. Поезд приезжает, высаживает пассажиров и сдаёт задом в соединительную ветку (1). Дальше он опять передом выезжает оттуда на соседний путь (2), после чего трогается по второму пути в обратном направлении (3). Итого: 3 раза поменять направление движение, чтобы обернуть состав.

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

Обратно я решил не ехать тупо ко кольцевой. Неинтересно. Я проехал сначала по оранжевой (2 перегона), потом по салатовой (1 перегон), потом по серой (1 перегон), потом по коричневой (1 перегон) и вот я снова на зелёной!

Пойду искать у себя в коробках Densha de GO!

@темы: Общественный транспорт

URL
четверг, 17 ноября 2011
23:04 Загадка
Сделал говнокод. Функционирует так, как мне надо. Попробуйте угадать, что он делает.

sFmt.Format(_T("%%.%de"),nDigits-1);
sBuf.Format(_T(sFmt), fValue);
sscanf(sBuf,"%lf",&fValue);
// шаманим-шаманим
sFmt.Format(
_T("%%.%df\t"),
(int)(fabs(fValue)>=pow((double)10,(int)(nDigits-1))?0:
(FLT_MIN>-1+nDigits-floor(fabs(fValue)?-1+nDigits:
log10(fabs(fValue))))));
sBuf.Format(_T(sFmt),fValue);
sItem += sBuf;


Типы переменных:
sItem, sBuf, sFmt -- CString
fValue -- float
nDigits -- int

В принципе, этот кусок выполняется в цикле и на самом деле nDigits выбираются из массива типа aDigits[ix], а fValue в каждой итерации разный, потому что тоже выбран из массива, но это неважно.

Форматирование такое, потому что не хотел, чтобы за конец строки вылезало. Считайте меня Маяковским.

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

Можно ли было сделать проще?

@темы: Программирование, Говнокод

URL
вторник, 15 ноября 2011
12:31 CEdit 3d-look / Трёхмерный CEdit
How to make 3D-look for dynamically created CEdit?
Как сделать трёхмерный CEdit, когда он создаётся динамически?


Read in English a little below.
В соответствии с тем, что я писал несколько постов назад, стараюсь донести до других частичку своего опыта. То, на что я убил несколько часов. Ввиду особой важности (куча народа ищет ответ по интернетам), привожу опыт сразу на двух языках. Сначала на английском.

EN:
(read in English)
RU:
(читать на русском)

@темы: Программирование, Борьба с техникой, Статьи

URL
понедельник, 14 ноября 2011
01:31 Untitled [010]
Если вам не спится, займитесь рефлексией.
Снимаю с себя ответственность за последствия следования моему совету.

@темы: Мысли

URL
воскресенье, 13 ноября 2011
19:12 Квадратная дата
В этот день джва года назад я получил водительское удостоверение.
Да, я получил его в пятницу, 13-е.

@темы: Автомобили

URL
суббота, 12 ноября 2011
23:47 Untitled [009]
Вытаскивая звуковой усилитель из розетки, поймал себя на мысли, что я его не извлёк перед этим безопасно (Safely Remove Hardware).

@темы: Наблюдения

URL
пятница, 11 ноября 2011
08:36 Робот-зазнайка
Honda обновила своего знаменитого робота: ASIMO научился открывать пиво...

@темы: Другое

URL
четверг, 10 ноября 2011
18:05 Класс-самоубийца и Павлик Морозов
Есть такой антипаттерн -- Паблик Морозов.
Заключается он в том, что вокруг класса с закрытыми членами делается обёртка-наследник, выдающая данные закрытых членов. Юмор в данном случае понятен -- согласно известной истории, Павлик Морозов заложил своего отца. И класс-наследник закладывает своего наследодателя.

А сегодня я имел честь видеть класс-самоубийцу (все названия изменены):


class jisatsu
{
private:
float* m_fData; // тут будет храниться массив с данными
//...
public:
float* GetData() { return m_fData; }
//...
};


Автор: А.

@темы: Программирование, Говнокод

URL
среда, 09 ноября 2011
01:41 Негр и They need more money
Перевод английских реплик появится позже.

Ехал я домой. А мне для того чтобы домой попасть подходят две станции. Ехать надо было с пересадкой и я выбрал некоторую из них. Выхожу на станции (время -- 22:30), чувствую, меня кто-то хватает за рукав и что-то говорит.
Я думаю... кто там... МИЛИЦИЯ?!
Оборачиваюсь -- там стоит НЕГР.
(читать дальше)

@темы: Случай из жизни

URL
вторник, 08 ноября 2011
17:26 О стратегии именования абстрактных об'ектов
Описаны методики и приёмы именования абстрактных объектов на примере файлов.

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

@темы: Тухлые идеи, Мысли, Статьи

URL
понедельник, 07 ноября 2011
07:45 Titled
Поздравляю всех с Днём Великой Октябрьской Социалистической Революции!

@темы: Другое

URL
воскресенье, 06 ноября 2011
17:39 Boku wa Tomodachi ga Sukunai 01-05
Только бы 26, только бы 26...

>>

@темы: Аниме

URL
03:47 Untitled [008]
Только что дошло, что каждый старается рассказать о том, в чём он специалист. И если надо, допустим, сказать общие слова по строению головы, отоларинголог будет в основном рассказывать про уши и носоглотку, а окулист -- почти только про глаза. Пример про медицину, но действует во всех областях человеческой деятельности.

@темы: Мысли

URL
суббота, 05 ноября 2011
21:13 О поиске, часть 1
Полчаса потратил на поиски листочка, потому что он был сложен не в четыре раза, как ожидалось, а в два.

Тяжело искать чёрную кошку в тёмной комнате, особенно если её там нет.
>>

@темы: Другое

URL
пятница, 04 ноября 2011
23:19 XOR-связный список
Описано создание XOR-связного списка и его принципы работы. Описаны принципы работы динамических структур данных -- списков и деревьев (на примере двоичных деревьев).

В этой статье описывается создание так называемого XOR-связного списка, основаня идея которого заключается в том, что в каждом элементе списка хранятся не два адреса соседних элементов, а один псевдо-адрес, что является интересным алгоритмически решением и позволяет немного экономить память. Что такое указатель, объяснять не буду. Те, кто этого не знают, могут дальше не читать, им статья будет неинтересна.

(читать дальше)

@темы: Программы, Программирование, Тухлые идеи, Статьи

URL