• ↓
  • ↑
  • ⇑
 
23:59 

И прочие ингредиенты

Есть древняя-древняя функция puts. Она выводит на экран строку. И переводит каретку на новую.

У меня был список чисел, надо было записать в файл. При работе с текстовыми файлами я и в Си и в пхп предпочитаю олдскульный способ -- fopen/fcolse, fprintf/fscanf и прочее.

И вот я зачем-то решил воспользоваться fputs. Не знаю, зачем.

Короче говоря совершенно неожиданно я выяснил, что fputs символ новой строки в конец не добавляет. А обнаружил я это узрев сплошную строку цифр в выходном файле.

Это одна из плохих вещей в Си: что функции разных семейств, делающие по сути одно и то же, различаются в существенной особенности.

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

22:42 

О турникетах

На всех новых станциях ставят новые же турникеты -- со створками. На многих старых планомерно меняют старые на новые. И новые хуже. Вот почему:

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

Обе причины ведут к уменьшению скорости прохождения людского потока. Это критично, в первую очередь, на станциях, имеющих пересадки на электрички.

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

23:55 

Критическая уязвимость CloudFlare: diary.ru тоже в опасности

CloudFlare -- это такая фирма, которая предоставляет миллионам сайтов услуги по перераспределению нагрузки к ним, защиты от ддос-атак и прочее. Многие, наверное, видели страницу "КлаудФлейр проверяет ваш браузер" или "КлаудФлейр не смог достучаться до сайта (ошибка 522)".

Так вот:
github.com/pirate/sites-using-cloudflare
Официальное сообщение:
blog.cloudflare.com/incident-report-on-memory-l...

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

На практике это означает, что надо поменять пароли на всех сайтах, которые используют эту систему. Их список в запакованном виде занимает 22 мегабайта. Вот он, упорядоченный по алфавиту:
github.com/pirate/sites-using-cloudflare/archiv...

Обращаю внимание, что надо смотреть на точное совпадение доменов. То есть, gmai-l.com, yandex.info -- это всё левые домены, не имеющие отношения к жмейлу и яндексу.

Что важно -- так это что сайт diary.ru использует CloudFlare. С учётом написанного выше, мне кажется, очевидно, что надо сделать в связи с этим. Интересно, что администрация сайта про это ничего не сообщила.

Кроме того, это означает, что ВСЕ сведения, передаваемые вами через эти сайты в течение последнего полугода, могут оказаться в руках неопределённого круга лиц, помимо адресата, провайдера и ФСБ.

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

22:43 

Луч света в тёмном царстве

У нас дома всегда было много книг. И некоторые из них издало издательство "Наука". Одно из немногих издательств, переживших распад СССР. До сих пор издаёт качественные книги. Вот его логотип:


Что на нём изображено? С детства я видел на логотипе очень простую картинку. Снизу книга -- а сверху солнце, её освещающее. И лучики такие. Очень символично. Наука проливает свет, все дела.

А сегодня я увидел логотип несколько модернизированный. И крупным планом. Я его не просто увидел, а осознал заново. Вот он:



И тут я понял, что я всё время воспринимал логотип неправильно. На самом деле на нём был изображён Спутник-1! В новом логотипе "лучи"-антенны нарисованы грамотно, а в старом более дальняя антенна выглядела более длинной, что и вызывало ощущение лучиков.

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

@темы: Книги, Восприятие

23:59 

Кратчайшее руководство по отладке при помощи дампов памяти

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

Сегодня я научился использовать дампы памяти в целях отладки. In a nutshell:

0. Отладка с помощью дампа используется, когда возможностей отладочной печати и удалённой отладки недостаточно (у меня удалённая отладка вообще не работала).
1. Не используйте команду "создать дамп" в диспетчере задач (или как там он сейчас называется). Дамп будет только частичный.
2. Качайте программу ProcDump.exe от Sysinternals и печально известного Марка Руссиновича.
3. В командной строке пишите ProcDump.exe -pa image.exe, где image.exe -- имя программы, дамп которой создаёте (желательно запускать отладочную версию). Есть ещё много параметров -- можно делать дампы при зависании, при превышении использования памяти/процессора, при падении программы и пр. Данная выше команда сделает дамп при её (команды) исполнении.
4. Перекачайте дамп на комп, где стоит вижуал студия. Дамп может занимать больше 100 мегабайт.
5. Откройте его. Для полноценной работы надо подгрузить символы (symbol, PDB-file). Для этого есть пункт в меню либо гиперссылка (зависит от версии).
6. Жмёте "запуск" (гиперссылка или пункт меню с зелёной стрелкой).
7. ???
8. ВУАЛЯ! Вы видите текущую точку работы на время создания дампа. Можно посмотреть все переменные. В окошечке "потоки" можно посмотреть точки выполнения всех потоков. Также доступны все стеки вызовов и все переменные в функциях более высоких уровней. Исполнять программу дальше, к сожалению, нельзя.

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

00:15 

Движение

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

Сообщают, что на Калининской линии запустят четвёртый уже по счёту состав с автоматическим управлением (но под присмотром машиниста). А я против автоматизации такого рода по двум разным причинам:
1. Машинисту, не осуществляющему управление поездом, а только надсмотр, будет очень скучно. На свои дела отвлекаться естественно нельзя. При этом это высококвалифицированная работа. Но заключается она в ничегонеделании. А работа скучной быть не должна, я считаю. Тут стоит вспомнить пример товарища Быкова из "Стажёров". Он как раз из тех, кто должен быть начеку и ничего не делать до момента ИКС. Он смог сделать себе работу нескучной, т.к. основная активность по подготовке космических экспедиций проводилась на Земле и занимала всё свободное время. Поэтому большую часть полёта он мог читать те газеты, которые не успел прочитать во время подготовки. Но, очевидно, ему можно было отвлекаться на свои дела.
2. Роботизируя рабочие места, мы в конечном счёте уменьшаем число мест для живых людей (конкретно машинистов в данном случае это не касается, однако в Японии, к примеру, существуют линии с полностью автоматическим управлением). Но где будут работать освободившиеся люди? Обычно в утопических описаниях подобного, типа как в Кино но Таби, говорится о том, что люди смогут заниматься творчеством и жить в своё удовольствие. Но на творчество способны единицы, а деньги тоже надо откуда-то брать. Даже если проблема с удовлетворением первичных нужд будет решена, останется проблема структурирования освободившегося времени.

Понятно, что роботизация -- это прогресс, но не ведёт ли технический прогресс к личностной деградации? Готовы ли мы к такому прогрессу?

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

23:59 

Дурак со справкой

Мдаа. Сегодня узнал потрясающую вещь про военные билеты (РФ). Мне это, правда, уже не пригодится.

Чел на работе защитил диссертацию и пошёл за военным билетом в военкомат. А ему вместо военного билета дали документ. "Справка вместо военного билета". Так и озаглавлена, это не шутка. Что самое интересное, там не указано воинское звание. Говорили, что такое давали раньше, когда кончались бланки для военных билетов. Но это было раньше.

Поверхностное гугление показало, что с 2014 года военные билет могут получить только те, кто откосил от армии на законных основаниях (ну, или отслужил). А те, которые бегали до 27 лет (или, внимание! те, кого забыли призвать по каким-либо причинам) -- получают справки. Якобы, с этими справками вместо ВБ не берут на работу в органы государственной власти и почему-то нельзя баллотироваться в депутаты (в т.ч. мунициальные). Сделано для того, чтобы люди а) не бегали от военкомата б) бегали В военкомат, если тот их забыл призвать. Потому что виноватым окажется не он.

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

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

23:58 

Три слепые мышки

Меня задрало, когда при показе видео с телефонов (смартфонов) по телевизору или по ю-тьюбу по бокам добавляют то же изображение, но размытое. Естественно, это делают только в тех случаях, когда соотношение сторон (aspect ratio) не совпадает с необходимым.

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

Чем это меня задрало: размытое изображение вызывает желание надеть очки, которые на мне и так надеты. Хотя и так понятно, что размывают продублированные части исходного изображения, интуитивно хочется увидеть, что же там изображено. Кроме того, это излишнее мельтешение, только мешающее воспринимать центральную чёткую часть. Мне кажется, чёрные полосы вместо размытия гораздо лучше. Кроме того, если снимающий снял вертикально не по об'ективным причинам, а по привычке (как держу телефон, так и снимаю), то часть изображения сверху и снизу будет неинформативна. Тогда можно вместо добавления полос обрезать изображение сверху и снизу. Или совместить оба способа, компенсируя чудовищный размер боковых чёрных полос при показе изображения 9:16 на экране 16:9.

@темы: Крик души, Мысли

22:40 

Курт Воннегут // Колыбель для кошки

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

Забил в гугл "боконизм". Открываю вики, а там написано: "боконизм -- религия, придуманная Куртом Воннегутом и описанная им в романе "Колыбель для кошки".

Ага!

И, собственно говоря, описание боконизма является самой важной частью данного романа (хотя тут можно поспорить). Боконизм близок к даосизму, но если даосизм у меня вызывает симпатию, то против боконизма у меня какое-то сопротивление непонятное. Не знаю, почему. Может, потому что боконизм -- религия, имеющая конкретного автора (я про Боконона, а не про Воннегута)? Знаю, что одна из (неосновных) идей боконизма мне глубоко противна -- что любить всех надо одинаково, то есть, не выделяя кого-либо.

Боконон же, автор боконизма, тролль. В том числе, потому что первую священную книгу боконизма он начинает с фразы "всё, что дальше написано -- ложь".

Но не боконизмом известен этот роман, а льдом-девять. Это такое вещество (модификация льда), которое обращает всю коснувшуюся его воду в лёд-девять же. А тает он при +50 градусах Цельсия или около того. Понятно, что выход льда-девять за пределы резервации неизбежно приведёт к "заражению" им всей Земли. И хотя в повествовании сам лёд-девять почти не появлялся на арене, я остро чувствовал с самого начала, что для Земли всё кончено. Потому что даже если соблюдать все предосторожности, рано или поздно случится какой-нибудь несчастный случай (или даже преднамеренный теракт). И лёд-девять окажется на свободе. Не важно, сегодня или через миллион лет. И эта угроза хуже ядерной, потому что а) разрушительнее б) от неё сложно избавиться в) о ней никто не знает, поэтому не готовится.

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

Книга мне понравилась, но что-то особо её никому советовать мне не хочется.

Отдельный нереспект издательству АСТ за издание. Серия называется "эксклюзивная классика". Да, действительно эксклюзивная: так много опечаток в одной книжке я не видел со времён "длинной серебряной ложки". И большая часть опечаток стандартная. Во-первых, больше чем в половине-мест вместо "лёд-девять" написано "лёд-девятъ". А во-вторых, во многих местах "карасс" (боконистический термин) написан как "карасе". Что любопытно, всюду опечатки допущены в курсивном тексте.

@темы: Книги

23:57 

Untitled [469]

Мужик в штатском в переходе мерил расстояние между стенкой и ларьком при помощи дальномера. Лазерного. Хорошо, что я это видел. Потому что потом я прошёл мимо -- а он стал мерить другие габариты. Ненормально яркий лазерный зайчик скакал передо мной на торцевой стене перехода.

И тут я вспомнил, как в фильмах показывают стрельбу из снайперской винтовки с лазерным целеуказателем (или как это называется). Если бы я не знал про дальномер -- было бы стрёмно.

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

23:58 

Untitled [468]

Приложение Яндекс.Транспорт я когда-то удалил со смартфона, потому что оно отказывалось показывать едущий транспорт, пока я не разрешу передавать Яндексу свою координату.

И я как бы смирился, что бегающих автобусиков мне не видать. Однако! Недавно я заметил (возможно, довольно поздно), что Яндекс.Карты на компе (в браузере) теперь интегрированы с Яндекс.Транспортом. Да, посмотреть все автобуски бегающими сразу нельзя, но выбрав какую-либо остановку и номер маршрута, можно увидеть, во-первых, схема маршрута, а во-вторых, все автобусы на маршруте в данном направлении!

Работает это, правда, не для всех маршрутов. А надпись типа "каждый час" -- вообще дезинформация, т.к. происходит усреднение по непонятному принципу.

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

23:58 

Что посеешь, то и пожмёшь

Одним проектом я не занимался год. Потом открыл. Ох, как всё запущенно.

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

1. У переменных должны быть понятные имена. Это касается не только переменных типа _, asdbsd и Burrrrp (хотя игроку в НетХак последняя будет весьма понятна) -- тут всё ясно. Название может иметь отношение к реальной ситуации, но имеет шанс быть воспринятым неправильно. Так, у меня в программе была переменная по имени need_count. Я долго думал, что это число раз, которые надо (need) посчитать (count) что-то. Однако на самом деле эта переменна обозначало то, НАДО считать (1) или НЕ НАДО (0).

2. Отсюда вытекает второе правило -- тип переменной должен соответствовать её назначению. Переменная из п.1 имела тип int. Хотя гораздо понятнее всё было бы, если бы я сделал её типа _Bool (это было в той части проекта, которая работала на микроконтроллере, а она написана на голом Си-99, поэтому именно _Bool, а не bool). Для МК, это, правда, простительно, т.к. int будет быстрее обрабатываться в ряде случаев.
Примечание. Беззнаковые типы при совместном использовании со знаковыми таят в себе гремучую бомбу: zhz00.diary.ru/p211118163.htm

3. А третье правило -- не следует повторно использовать ту же переменную для других целей. Хотя для переменных типа x, y, i особой разницы нету, сколько раз их использовать. Но повторное использование более специальных переменных часто ведёт к нарушению п.1. То, на чём конкретно напоролся я -- WriteFile возвращает через указатель число записанных байтов. Для этого я использовал переменную с подходящим именем written. Но потом мне надо было читать данные при помощи ReadFile. Как не трудно догадаться, он тоже через указатель возвращает число байтов, но уже прочтённых. Видимо тогда я решил сэкономить четыре байта. Ну вот нафига? Да-да, именно так. Я написал --

ReadFile(hFile,size,&written,NULL);

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

Это я тогда был не в своём уме или так вырос за год, что считаю дикостью то, что сделал своими же руками?

Но кое-от-чего чего я пока избавиться не смог -- так это от применения операции ?: . Очень её люблю, хотя она сильно усложняет чтение текста.

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

23:56 

Untitled [467]

Наконец нашёл применение для зубочистки в Victorinox. Ей можно нажимать на ресет в разных электронных устройствах.

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

@темы: Лайфхак, Очевидное-невероятное

23:59 

Об экстрасенсорике

Часто пишут, что при гадании на Таро из колоды всегда выпадает правильная карта. Об'ясняют это по-разному. Одна из версий -- что подсознательно человек знает, что достать -- и где оно лежит. То есть, у него где-то записано, в каком порядке карты расположены. Сознательно это для него случайная колода, но на самом деле это якобы не так. А если знаешь, где лежит "нужная" карта, легко вытянуть именно её.

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

В определённый период своей жизни я ждал получения смс-ок от некоторого абонента. Боялся и ждал. Так боялся, что даже прятал телефон подальше, чтобы не видеть, пришла смс-ка или нет. Проверял только иногда.

И тогда я заметил удивительную вещь -- нажав кнопку включения подсветки (я нажимал для этого "завершение вызова"), я всегда знал, пришла смс-ка или нет, хотя на экране до разблокировки показывалось только текущее время!

Как же это могло работать? Я же не экстрасенс.

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

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

23:37 

Assemble Insert OVA 01-02 END

Аниме 1989 года выпуска. Первое, что удивляет -- исполнение анимации. Даже есть 5 секунд тотальной.

Далее, крайне странная изначальная идея -- для борьбы с бандитами полиция устроила прослушивание, чтобы выбрать ПЕВИЦУ, которая будет достаточно сильна, чтобы этих бандитов уделать (а бандиты в ОБЧР, а у полиции ОБЧР нету). Также удивили необычные сюжетные ходы -- во второй серии.

Но потом всё находит своё об'яснение -- и даже идея с певицей уже не кажется глупой. Несмотря на явную пародийность данного произведения, оно не производит впечатления вторичного. Смотреть его интересно. А некоторые поднятые проблемы об'единяют его с One Punch Man'ом.

Цитата:
-- Профессор, почему вы перед тем, как войти, закинули к нам в комнату гранату?
-- Потому что так было в оригинальной манге, смотрите! Я просто хочу точную экранизацию!

@темы: Аниме

22:30 

Импровизация

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

Видимо, она издевалась. Я был в седьмом классе. Я не знал, как писать расписки. Поэтому она мне всё же подсказала.

А сегодня я получил в почтовый ящик извещение о посылке. Нет, там была не та медицинская карта. У извещения была любопытная особенность -- у него не было текста на обратной стороне. Хотя по опыту я знаю, что там должна быть форма получения посылки -- где надо указать свои данные и расписаться в том, что посылка получена.

Я пошёл на почту, где мне сказали, заполнять обратную сторону, протягивая пустую сторону. Я знал, что там надо писать, но всё же стормозил. Мне тётка стала подсказывать -- пишите паспортные данные... Я написал. А когда уже отдал квиток, я спросил, а где, собственно говоря, форма? Она ответила, что если сотрудник работает в одиночку, то им некогда (!) печатать оборотные стороны, потому что очередь стоит. Что ж, окей.

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

23:59 

Бур пронзит небеса

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

Тогда решили следить за координатой, когда движущаяся честь неподвижна.

ОКАЗАЛОСЬ, что координата меняется! А потом мы поняли, что рядом -- открытое окно.

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

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

23:37 

1000 червонных

Анастейша и Кристиан решили назвать своего первенца Дориан.

@темы: Викторика

23:59 

Выставка Roma Aeterna: шедевры пинакотеки Ватикана

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

UPD. Выставку продлили до 1 марта, без выходных, с утра до вечера. Выброс дополнительных билетов назначен на 17 февраля. Посмотрим, улучшили они что-нибудь или нет.

(как мы на неё попали)
(о выставке)

@темы: Наблюдения, Выставки

23:58 

Театр одного актёра

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

А дежурный свет таков, что он светит только над площадками между дверьми.

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

Я продолжил читать.

@темы: Случай из жизни, Общественный транспорт

Untitled

главная