Ознакомьтесь с нашей политикой обработки персональных данных
  • ↓
  • ↑
  • ⇑
 
23:58 

Лакуна

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

Оказалось, я делал вот что: сначала я посылал запрос к устройству, а потом запускал отдельный поток для считывания данных.

Однако поток при старте очищал входной буфер виртуального COM-порта! На всякий случай -- вдруг там мусор какой от предыдущих передач остался?

Если мне везло, то устройство не успевало ответить до очистки буфера, и ошибка не возникала. Поскольку очистка производилась только при старте потока, дальнейшие запросы и ответы воспринимались нормально. Если же мне не везло, то часть ответа (или даже весь ответ) оказывалась стёрта.

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

23:59 

signed char и шестнадцатеричное представление

Допустим, мы хотим увидеть char в шестнадцатеричном виде при помощи printf или аналогичной функции. Это бывает нужно для организации логирования дампов двоичных массивов при приёме/передаче данных, скажем.

Нас ждёт разочарование. char по умолчанию signed. Спецификатор для шестнадцатеричных чисел -- %x. Но он работает с числами размером с int. signed char будет преобразован в unsigned int, и все старшие биты будут забиты единичками из-за дополнительного кода. То есть, вместо 0x2F мы увидим 0xFFFFFF2F (при форматное строке "0x%02x").

Что же делать?
1. Забыть про массивы char. Использовать либо unsigned char, либо новомодный (лет пять-десять как) uint8_t.
2. Использовать двойное преобразование типов. Это лол. Я не ожидал, что это сработает:

printf( "0x%02x ",(unsigned int)(unsigned char)buffer[offset]);

@темы: Программирование

23:59 

Untitled [480]

По-японски "вход воспрещён" это 立ち入り禁止.

立ち入り -- "входить", пишется как "стоять"+"попадать внутрь" (первый и третий иероглифы; второй и четвёртый символы -- "окончания"). Логично.
禁止 -- "запрещено", пишется как "запрет"+"останавливаться". Тоже логично.

То есть получается -- запрещено попадать внутрь стоя!

...значит ли это, что можно проползти?

@темы: Тухлые идеи, Японский язык

23:58 

They Live / Чужие среди нас (1988)

-- Откуда они? Из другой галактики? А мы из Чертаново!

-- ЭТО НАША ЗЕМЛЯ!!!

(С) Притяжение


Это фильм о том, как один гражданин нашёл волшебные очки, в которых видно, что наше общество -- общество потребления.

Фильм притчеподобный. Это анти-люди-в-чёрном.

Во-первых, я давно ищу фильм, из которого я когда-то видел отрывок. Пока не нашёл. Суть фильма и отрывка в следующем. На Земле организованы специальные радиопередатчики, которые заставляют людей видеть вокруг не то, что есть на самом деле. Всё вокруг сделано из картонных коробок, к примеру, а им это кажется красивыми домами (и я не про аниме Fractale). В отрывке один из персонажей приходит на точку, где расположены передатчики. Она вроде как в подвале. И там сидят несколько человек. На картонных коробках. Больше я ничего не помню.

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

Далее, второе. Все антиутопии похожи друг на друга. Поэтому у меня складывается ощущение, что авторы, к примеру, Half-Life, Матрицы и прочего смотрели данный фильм -- и опирались на него. И ещё по атмосфере чем-то на Transistor похоже.

Третье. Данный фильм следует запретить в РФ. Он экстремистский. Что тут содержится?
1) Возбуждение ненависти либо вражды к группе лиц (инопланетянам, угнетающим Землю);
2) Неподчинение законным требования сотрудников полиции, а также нападение на сотрудников полиции;
3) Призывы к свержению существующей власти;
4) Геноцид инопланетного населения.

Четвёртое. Поражает, как негр сопротивляется надеванию очков, позволяющих увидеть правду.

Пятое. Инопланетяне показаны нарочито уродливыми. Видимо, чтобы у зрителей не возникало к ним жалости. Вот:


На самом деле я ждал, что в один момент покажут превращение человека в такого инопланетянина, и ГГ поймёт, что все равны. Но границу между людьми и инопланетянами провели чётко.

Я видел ещё один фильм данного режиссёра (Карпентера) -- "Мешки для трупов". Он мне очень понравился. Данный фильм тоже хорош.

@темы: Кино

21:22 

О принципах

Когда я учился на первом курсе, ко мне подошла одногруппница. Она сказала: "Слушай, можешь сделать за меня задание по учёбе? Я заплачу".

Я был принципиальным. Я сказал: "Нет уж. Я могу тебе сделать бесплатно, если хочешь, а за деньги -- не буду". Но она почему-то отказалась...

Когда я учился на третьем курсе, ко мне подошёл одногруппник. Он сказал: "Слушай, можешь сделать за меня задание по учёбе?"

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

Когда я учился на пятом курсе, ко мне подошёл одногруппник. Тот же. Он сказал: "Слушай, можешь сделать за меня задание по учёбе?"

Я был принципиальным. Я сказал: "Нет уж. Если хочешь, я тебе могу об'яснить, как его делать, но за тебя делать не буду". Он сказал: "Но это же будет дольше, чем сделать целиком!" Я сказал: "Ну и что. Зато тебе это будет полезнее. Мне своего времени не жалко". И тут он меня обосрал страшными словами. Сейчас я думаю, что хорошо, что он не согласился. А то бы я тогда устал ему об'яснять и в процессе этого получил бы говна в свой адрес гораздо больше.

Потом я закончил институт и ко мне однажды обратилась одна гражданка. Она сказала: "Слушай, можешь сделать за меня задание по учёбе?"

Я был принципиальным. Я сказал: "За деньги". Она согласилась. Я сделал задание, получил деньги и купил себе на них две колоды таро.

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

23:59 

Богатым будет

Поставил на ведроид программу DaffMoon, чтобы следить за фазами Луны по своим эзотерическим делам.

А она ещё показывает планеты с расположением на небе.

Таким образом я узнал, что та яркая звезда, которую я постоянно вижу на небе, это не звезда, а Юпитер!

@темы: Наблюдения, Очевидное-невероятное

23:59 

Игра в имитацию

Пора машине проходить техосмотр, а на аптечке дата выцвела -- не примут!

Был как раз в Ашане, там автомобильный отдел. И там были аптечки. Беру. Уже дома смотрю. Написано, что это "Аптечка первой помощи", но не написано, что она автомобильная! (хотя автомобиль и нарисован) Кроме того, на ней не написано ничего о том, что она соответствует требованиям по автомобильным аптечкам. А фирма та же, что и у прошлой, где всё написано правильно.

Пёс его знает, прокатит это на техосмотре или нет. Купил ещё одну, нормальную.

Это такая экономия на сертификации?

UPD. А потом выяснилось, что то ли с этого, то ли с прошлого года аптечка для техосмотра не нужна.

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

23:57 

Дым отечества нам сладок и приятен

Схема, на входе генератор, на выходе -- нагрузка. Пришли ребята из соседнего отдела и попросили осциллограф, чтобы посмотреть сигнал на нагрузке. И меня попросили в комплекте, чтобы я об'яснил, как им пользоваться.

Прихожу, цепляю землю осциллографа на землю (минус) схемы, а плюс (сигнал) осциллографа -- на выход нагрузки. Включаем установку -- запахло палёным. Очень нам повезло, мы подключили осциллограф не напрямую в схему, а через прводок МГТФ 0,2. На нём сгорела изоляция и сам он накалился до красна. Если бы не этот проводок, мы бы заметили неполадку одновременно со сгоранием щупа осциллографа. Там провод толще, поэтому он сгорел бы позже, но без предупреждения. Сжигать щупы осциллографов -- плохо.

Думали, почему начинает накаляться провод ЗЕМЛИ, когда там тока быть не должно -- ничего не придумали. Позвали более опытного специалиста. Он провёл стандартную диагностику и обнаружил причину. Вот блок-схема:


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

Когда я подключил осциллограф, его земля оказалась соединена с минусом питания схемы -- это правильно. Однако ОКАЗАЛОСЬ! что земля осциллографа соединена с защитной землёй евророзетки, и, таким образом, соединена с минусом (землёй) генератора. То есть, через защитную землю накоротко замыкались плюс и минус питания. Плюс питания -- земля генератора -- земля евророзетки -- земля осциллографа -- минус питания.

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

@темы: Борьба с техникой, Электроника

23:59 

Опасность enum

enum -- что может быть лучше?

(для тех кто не в теме)

Чем же это опасно? При любом изменении списка, исключая добавление новых констант в конец, меняется фактическая нумерация! И значение, которое было раньше 2, теперь становится 3. Это совершенно некритично, если доступ к переменным завязан ТОЛЬКО на применении символических значений. Как только происходит выход за пределы данного лягушатника -- начинается беда-печаль. Вот примеры:
1. Бинарное общение с другой программой, у которой список констант немного отличается.
2. Общение самого с собой через файлы. Сохраняем, к примеру, настройки в файл. Обновляем программу, файл считывается, а значение уже не то!
3. Использование символических констант в качестве индексов предопределённых массивов. Например:

enum TypeName {SYMBOLIC_CONSTANT1, SYMBOLIC_CONSTANT2, SYMBOLIC_CONSTANT3};
char SymbolicNames[][80]={"Name1", "Name2", "Name3"};

printf("Name: %s\n",SymbolicNames[SYMBOLIC_CONSTANT2]);

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

Что с этим делать:
1. Не модифицировать список в середине и в начале. Никогда. (иногда может показаться, что это можно сделать безболезненно... переупорядочить константы по группам, к примеру)
2. Присваивать принудительные номера. Всегда. (как это делать, см. под катом в начале)
3. Использовать #define .

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

23:59 

Ясен корень, что апельсин

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

Принесли наши друзья из другой организации плату тестировать. У неё плюс -- с узелком. А минус -- красный.

@темы: Электроника

23:58 

Untitled [479]

Мне позвонили и спросили, интересует ли меня рекламное предложение по поводу провайдера?
Я: Вы из Билайна что ли? (это мой провайдер)
Звонящий: Нет. Но, возможно, вас заинтересует моё рекламное предложение.
Я: От какого провайдера вы звоните?
Звонящий: Я могу вам это сказать, но только в качестве рекламы. Вы согласны?

.
.
.

Ишь, ещё спрашивают! Ну, я согласился.

@темы: Звонки

22:42 

М. и С. Дяченко // Казнь

Close the world? txen eht nepO


Я читал Дяченко только одну книгу -- Vita Nostra. Она была крутая.

Эта книга не такая крутая, хотя читается увлекательно. Немного нестандартная история про попаданцев с социальной фантастикой и философскими элементами.

Что мне не понравилось?
1. В историях про попананцев попаданец, как правило, сразу становится одним из активно действующих лиц. Тут же значительную долю книжки события происходят С главной героиней. Она не только почти не действует, но и лишена возможности действовать. Когда же возможность появляется, оказывается, что присутствует феномен рельс.
2. В книги очень много того, что ощущается патологическим. В первую очередь это патологические человеческие (в т.ч. межполовые) взаимоотношения. И патологический социум в целом.
3. Слово МОДЕЛЬ, встречающееся сто-пицот раз, всё время пишут заглавными буквами. Мне кажется, строчный курсив смотрелся бы лучше.

Самое интересное -- третья четверть книги. Ради неё можно прочесть интересную, но не очень, первую половину.

Ещё интересная последняя страница, но я её не понял, пока мне папа не об'яснил. А оказалось, что там написано то, что я ждал очень давно.

@темы: Книги

23:58 

По статье

Коллега-приколист заходит, показывает, что у него что-то за пазухой куртки спрятано, спрашивает -- что у меня там?
Я -- Пистолет!
Он -- Нет. Знаешь, что у нашего зам. директора сегодня юбилей?
Я -- Да.
Он -- Ну вот.

Он прижимает к себе куртку и становится видно, что у него спрятано что-то цилиндрическое.

Я -- Ааа, понятно.

И тут он достаёт оттуда зонтик.

@темы: Викторика, Случай из жизни

23:45 

...до основанья, а затем...

Я понял! Собянин потренировался на сносе ларьков -- и теперь перешёл к сносу домов!

Но... что будет дальше?

Для будущих поколений. В начале 2017 года мэр Москвы Собянин сообщил, что оставшиеся в Москве пятиэтажки ("хрущёвки") собираются снести в ближайшее время.

@темы: Мысли, Политика

23:58 

Как провести рефакторинг кода и не облажаться?

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

Но раз уж я написал заголовок, я, пожалуй, всё же отвечу на него.

Так как же провести рефакторинг кода и не облажаться? Ответ: никак.

Но кое-от-чего защититься можно.

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

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

Я предлагаю способ, благодаря которому пропустить ни одного употребления просто не выйдет. Об'явление об'екта A надо исключить из программы! Либо удалить A, а вместо него создать массив A0[2], либо переименовать A в определении (и только там!) в A1.

К чему это приведёт? Программа не будет компилироваться из-за употребления несуществующих переменных. Придётся исправлять ошибки...

Хотя и тут есть возможность сфейлиться. В какой-нибудь функции может быть одноимённый локальный об'ект того же класса. Он раньше перекрывался A, а теперь -- нет. В этом случае ошибки не будет.

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

23:31 

Коннэкто вайядо

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

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

@темы: Общественный транспорт, Наблюдения

23:59 

Поезд-галерея и коварный тип гражданской наружности Сергей Андрияка

Понятия не имею, кто это вообще.

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

В первом и последнем вагоне на стенах картины (репродукции). Подписаны -- "Сергей Андрияка". Окей. Ну ничего так рисует, под пивко пойдёт.

А в остальных трёх вагонах (составы Русичей -- пятивагонные) на стенах тоже картины (репродукции). Подписаны -- "Ученики Академии Сергея Андрияки". Вот именно так. Каждая картина.

И вот блин попка у меня пригорела от этого что-то очень сильно. Этих учеников выставили на выставку, фактически. Но отказали им в праве на имя! Блин, даже на детсадовских выставках пишут "Нарисовала Таня Т., 5 лет". А тут -- анонимки.

Интересно, их вообще известили, что их картины где-то висят?

@темы: Общественный транспорт, Наблюдения

23:55 

Untitled [478]

Рассказываю сестре о станции МК МЖД (МЦК).

Я: Это сейчас там наземный переход со светофором, но сейчас строят надземный -- и тогда всё будет гораздо хуже. Если пришёл к станции не с той стороны улицы, придётся сначала пройти 100 метров вправо, там войти в надземный переход, потом развернуться на 180 градусов, перейти дорогу, потом развернуться ещё на 180 градусов, выйти, пройти ещё 100 метров, потом войти на станцию, ещё раз развернуться...
Сестра: Это уже какой-то Пакман!
Я: Нет, Пакман это будет, если на ходу будешь есть пряник...

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

22:43 

Zetsubou Billy

Стою на пешеходном переходе, жду светофора. В первом ряду. За мной толпа не меньше 20 человек. Дорога двухполосная. В одну сторону светофор машинам светит красным. В другую -- зелёным, но из-за пробки машины не едут.

Все стоят. Мне надоедает ждать. Я задумываю совершить административное правонарушение.

Я выхожу на проезжую часть.

И тут замечаю, что вся толпа в тот же момент пошла за мной...

@темы: Случай из жизни, Наблюдения

23:55 

О широкополосном доступе в Интернет

Заметил, что когда хочу послушать какой-нибудь музыкальный трек, всё чаще ищу его не на винчестере или в мп3-плеере, а захожу на ю-тьюб и вбиваю название в поиск. Так проще и быстрее.

@темы: Наблюдения, Музыка

Untitled

главная