Тотальная неудачница и убийца жёстких дисков.
#post-id: 8030-11-36
#original-date: 21.07.2022 Thu
#original-time: 11:36 AM
#original-day: 8030
#original-host: Win7 Ultimate SP1 (Build 7601)

Некоторые программы в гуглоплее не обновляются. Выдаёт в списке подпись «Couldn't install». Думала, что место закончилось или ещё что, а потом заметила, что проблема только с платными приложениями. Ну и вспомнила.

07:18

Анимэ

Тотальная неудачница и убийца жёстких дисков.
#post-id: 8030-03-41
#original-date: 21.07.2022 Thu
#original-time: 3:41 AM
#original-day: 8030
#original-host: WinXP Home SP3 (Build 2600)

Немного позалипать на гроулы из нетфликсовской версии «Aggressive Retsuko».

Aggretsuko - All Metal Scenes :: YouTube

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

Тотальная неудачница и убийца жёстких дисков.
#post-id: 8029-17-46
#original-date: 20.07.2022 Wed
#original-time: 5:46 PM
#original-day: 8029
#original-host: Win7 Ultimate SP1 (Build 7601)

Pokemon: The Disturbing Implications of the White-Washing Nessa Mod

https://www.cbr.com/pokemon-disturbing-implications-white-washing-nessa-mod/

Во у кого РЕАЛЬНЫЕ проблемы.

Тотальная неудачница и убийца жёстких дисков.
#post-id: 8029-15-55
#original-date: 20.07.2022 Wed
#original-time: 3:55 PM
#original-day: 8029
#original-host: Win7 Ultimate SP1 (Build 7601)

Наткнулась на историю, когда водитель автобуса запрещал пассажирам разговаривать по телефону, а сам ехал с наушником. Говны, говны, говны.

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

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

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

Желаю всего плохого этим персонажам.

Тотальная неудачница и убийца жёстких дисков.
#post-id: 8029-14-25
#original-date: 20.07.2022 Wed
#original-time: 2:25 PM
#original-day: 8029
#original-host: Win7 Ultimate SP1 (Build 7601)

Только посмотрите! Европейские запретители заговорили о какой-то «безопасности» и требуют ограничить дизайн американских машин в угоду европейским «нормам»!

The Senseless Ambiguity of North American Turn Signals :: YouTube

Тотальная неудачница и убийца жёстких дисков.
#post-id: 8029-14-10
#original-date: 20.07.2022 Wed
#original-time: 2:10 PM
#original-day: 8029
#original-host: Win7 Ultimate SP1 (Build 7601)

Видела как-то мотоцикл, у которого фара светила красным светом. Не подсвеченным, как в «Андеграунде» каком-нибудь, а вот прямо как стоп-сигнал, только гораздо ярче. Должно быть, мотобрат очень хочет в лобовую с кем-нибудь встретиться, но по-тихому, чтобы оппонент понял, что что-то не так, только когда сам мотобрат воткнётся ему в лобовое стекло.

Тотальная неудачница и убийца жёстких дисков.
#post-id: 8029-10-03
#original-date: 20.07.2022 Wed
#original-time: 10:03 AM
#original-day: 8029
#original-host: WinXP Home SP3 (Build 2600)

Мирай из Джапари Парка, не смотря на то что называется парк гайдом, по факту является егерем.

07:15

Идиоты

Тотальная неудачница и убийца жёстких дисков.
#post-id: 8029-09-45
#original-date: 20.07.2022 Wed
#original-time: 9:45 AM
#original-day: 8029
#original-host: WinXP Home SP3 (Build 2600)

Чем больше наблюдаю за прогрессивной твиттер общественностью, тем больше понимаю, что приватности для них не существует в принципе. Они могут сколько угодно ходить по психотерапевтам, прорабатывать менталочки, экологично (блять) общаться, быть людьми нового поколения, но приватные чяты, смски, фоточки и всё такое вывалить в соцсети – это завсегда пожалуйста. При чём, не всегда важно: плохой, по их мнению, обличается человек или хороший. При этом некоторые понимают, что делают что-то не очень хорошее (и местами лоллируют над реакцией оппонента), но в основном прогрессивная общественность говорит: «А чё такова?» Тем забавнее наблюдать, как эти же люди, оказавшись в подобной ситуации, но по другую, так сказать, сторону, пребывают в полнейшей растерянности: как же так, нас-то за что?

Скриншоты переписок с прогрессивной общественностью на данную тему – в комментариях.

07:11

Слова

Тотальная неудачница и убийца жёстких дисков.
#post-id: 8028-12-37
#original-date: 19.07.2022 Tue
#original-time: 12:37 PM
#original-day: 8028
#original-host: Win7 Ultimate SP1 (Build 7601)

Кринжгендер.

Тотальная неудачница и убийца жёстких дисков.
#post-id: 8028-10-43
#original-date: 19.07.2022 Tue
#original-time: 10:43 AM
#original-day: 8028
#original-host: Win7 Ultimate SP1 (Build 7601)

Съёла плитку германского танкового шоколада. Солнце поискать не захотелось, но Рамштайн почему-то в голове заиграл.

Тотальная неудачница и убийца жёстких дисков.
#post-id: 8027-03-54
#original-date: 18.07.2022 Mon
#original-time: 3:54 AM
#original-day: 8027
#original-host: WinXP Home SP3 (Build 2600)

В конце эвента повис клиффхэнгер. Типа, Кохане начала петь сильно лучше и увереннее, а у Ан какие-то непонятки начались, какое-то неспокойствие на душе.

Но я думаю, что всё очень просто. Это либо переход от опеки к соперничеству, либо просто то самое чувство, когда подопечная больше не нуждается в опеке и может двигаться дальше самостоятельно.

Так думаю.

#upd(18.07.2022 - 3:58 AM):

Завершаю просмотр истории, прохожу песню, дальше начинаются новые диалоги в локациях. Первый же – Кохане рассказывает, что взяла у подруги мангу, почитала, втянулась, ПОВИС КЛИФХЭНГЕР, и пришлось докупать все остальные тома, чтобы узнать, чем всё закончилось ^^'

Они издеваются ^^'

/* Хотя, в принципе, тут в конце почти каждой истории кто-нибудь висит. */

Тотальная неудачница и убийца жёстких дисков.
#post-id: 8027-03-13
#original-date: 18.07.2022 Mon
#original-time: 3:13 AM
#original-day: 8027
#original-host: WinXP Home SP3 (Build 2600)

В текущем эвенте Кохане бин Кохане, а именно – пытается понять, как быть более уверенной в себе.

Ну, тоесть она с самого начала такая, всё время сомневается, не уверена, что хорошо поёт, не может трезво оценивать свои способности. Собственно, что она хорошо поёт, она узнала почти случайно в самом начале основной истории! До этого момента она была показана, как невзрачный персонаж с тёмным прошлым, серым настоящим и туманным будущим. Заблудившись на улицах города, она забрела и заведение к другой героине и внезапно впервые в жизни проявила к чему-то интерес. К музыке. Ну и заверте.

Вот, а теперь другая героиня, Ан, пытается её поддержать, но не знает как. Говорит, типа, никогда в жизни не думала, как стать увереннее.

И тут у меня – опа! Это же как в третьих «Тачках»! Когда инструкторша рассказала главгерою, как впервые не попала на гонки, ну и спрашивает его о его первых гонках:

– Как Вы поняли, что у Вас всё получится?
– Я и не думал, что что-то может не получиться.


Во. А потом её ещё в конце почти что пинками на трэк выгоняли ^^'

Короче, забавно получилось ^^

16:38

Йумор

Тотальная неудачница и убийца жёстких дисков.
#post-id: 8026-23-57
#original-date: 17.07.2022 Sun
#original-time: 11:57 PM
#original-day: 8026
#original-host: WinXP Home SP3 (Build 2600)

Даты не проверяла, но картинка из телеграмки врать не должна.



16:38

Идиоты

Тотальная неудачница и убийца жёстких дисков.
#post-id: 8026-03-33
#original-date: 17.07.2022 Sun
#original-time: 3:33 AM
#original-day: 8026
#original-host: WinXP Home SP3 (Build 2600)

Я не то чтобы фанатка Бэдкомедиана, но читать стоны твиттерских про его «токсичность, ненавсить» и желание кого-то там «унизить»... Нет моих сил.

Тотальная неудачница и убийца жёстких дисков.
#post-id: 8025-19-14
#original-date: 16.07.2022 Sat
#original-time: 7:14 PM
#original-day: 8025
#original-host: WinXP Home SP3 (Build 2600)

Пытаюсь совладать с информацией о версии файла и прихожу во всё большее изумление.

Во-первых, я таки разобралась, что там с парами в «\VarFileInfo\Translation». Там язык и кодировка, как следует из инструкции.

Язык – это типа для того чтобы найти нужный: русский, английский, японский там. Его можно узнать из функций GetUserDefaultLangID() и GetSystemDefaultLangID(), которые вернут язык по улмочанию для пользоваетеля и системы. Либо можно узнать язык для текущего потока через функцию GetThreadLocale(), которая возвращает идентификатор локали, у которого в верхних двух байтах – идентификатор сортировки, а в нижних – как раз идентификатор языка. Думаю, что последний способ предпочитетельнее, поскольку локаль потока может отличаться по той ии иной причине от пользовательской, например, при запуске какой-то программы через AppLocale.

/* В свою очередь идентификатор языка состоит из языка и подязыка, типа как все эти en-us и en-gb, но нам это уже не интересно. */

А кодировка – это актуальная кодировка данных в ресурсах, тоесть, формат, в котором данные записаны. Тоесть вот эти все cp866, windows-1251 и даже 1200 для UTF-16.

Тоесть, каждая пара как бы говорит, что вот есть строки для русского языка, записанные в windows-1251, есть строки для английского языка, записанные в UTF-16, и есть строки для японского, записанные в shift_jis. А программа (тот же Проводник, показывая версию файла в свойствах) уже выбирает нужный ей язык и пускается во все тяжкие.

Хочу отметить, что это я тут использую все эти «windows-1251» и «en-us», но на деле там всё – числовые коды. Тоесть 1251 и 0x409.

Вооот.

Для того чтобы начать работать с версией, нужно сделать GetFileVersionInfoSize(), выделить буфер и передать его в GetFileVersionInfo(), в который будет записан специально отформатированный блок с информацией об искомом файле.

Кстати, обратите внимание на эти милые рудименты от Win16:

lpdwHandle
Pointer to a variable that the function sets to zero.


Потом можно будет сделать VerQueryValue() с данным блоком, чтобы получить интересующие нас значения.

Так, запрос «\» возвращает нам структуру, в которой цифрами, а не ёбаной строкой «1, 12, 866 (спешл билд)», указана версия файла, а так же дополнительные флаги, которые пожелал указать разработчик. И я плюю в лицо всем девелоперам, которые не утруждают себя этой информацией, рассчитывая, что пользователю более чем достаточно посмотреть в абаутбокс. Или в ридми. Или в двочиный дамп файла. Или посмотреть историю на сайте и прикинуть версию по размеру и дате скачки.

Запрос «\VarFileInfo\Translation» возвращает нам все языки, для которых есть строки, как я указала выше. Тоесть, получив массив из этого раздела, мы можем распарсить его и узнать, что строки версии в файле присутствуют в трёх языках, как, скажем, у сетапов моих программ.

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

А теперь – жесть. По по идее, ничто не мешает нам взять все языки и для каждого прочитать строки. Но очень быстро окажется, что функция VerQueryValue() будет сообщать, что нет такого ресурса при запросе всех языков кроме одного. Если сохранить на диск буфер, полученный функцией GetFileVersionInfo(), окажется, что в нём присутствуют строки только для одного языка.

И я не уверена, какой выбирается.

Тоесть, если в версии только один язык, то попадает в блок только он. Если несколько, то попадает тот, который совпадает с языком системы (или потока?). А если совпадений нет? Я пока не проверяла, но, чувствую, дойдёт и до этого.

Более того! Как мы выяснили, для строк можно узнать кодировку данных. Однако в блоке все строки хранятся в – ТАДАМ! – UTF-16. Тоесть, эта информация для нас, по идее, носит чисто факультативный фарактер.

Более того. VerQueryValue() последним параметром возвращает размер данных в буфере. Для «\», например, это размер VS_FIXEDFILEINFO в байтах. Для «\VarFileInfo\Translation» – это размер массива в байтах. А для строк... А хрен его знает :}

Документация говорит, что этот параметр «points to a buffer that receives the length, in characters, of the version-information value». Character в Win32 API, обычно, это байт для ANSI строки и два байта для UNICODE строки. Но в случае этой функции тут возвращается значение, отличное от длины полученной строки.

Например, для русской строки длиной 49 символов в windows-1251 возвращается 50. Для английской строки длиной 22 символа в 1200 (тот самый юникод) взвращается 46. А для английской строки длиной 43 символа с кодировкой 0 (так указывает NSIS) возвращается 44.

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

А теперь неочевидная жесть. По идее, указатель из VerQueryValue() возвращает адрес где-то в блоке, который мы передаём этой функции. Но. В блоке все строки харанятся в UTF-16. Если мы вызываем VerQueryValueA(), то строка возаращается в ANSI. Внимание, вопрос: куда указывает указатель?

В старой документации (времён NT4 и Win95) про это не сказано ни слова. В той, что сейчас на сайте MS, сказано, что:

When this method returns, contains the address of a pointer to the requested version information in the buffer pointed to by pBlock. The memory pointed to by lplpBuffer is freed when the associated pBlock memory is freed.

И это есть пиздёж, поскольку в блоке информация в UTF-16, в нам прилетает ANSI. Тоесть, перед возвратом функции, система конвертирует строки, возаращает указатель на них и дальше неизвесно что с ними делает и неизвестно когда их освобождает.

Ну и на закуску. Старая документация говорит, что эти функции не работают с Win16 бинарниками. Новая говорит, что подделживаются и Win32, и Win16, и даже Win64 екзешники. Я пока не проверяла, но тоже странно.

#upd(16.07.2022 - 8:08 PM):

Провела эксперимент, и выяснила, что, если в версии нет языка потока, то в блок попадает первый язык из массива «\VarFileInfo\Translation». Миленько. Можно сразу выкидывать код, который перебирает языки и ищет нужный нам.

#upd(16.07.2022 - 8:43 PM):

Провела ещё один эксперимент, чтобы посмотреть, куда указывает указатель с ANSI строкой. Неожиданно оказалось, что куда-то в буфер, который мы передаём VerQueryValue().

Чего, блять?

Присмотрелась к дампу буфера. Оказалось, что там после данных идёт жирный кусок с нулями. Ну и, конечно же, при сохранении того же буфера уже после вызова VerQueryValue(), среди этих нулей оказались наши ANSI строки.

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

#upd(17.07.2022 - 1:11 AM):

Провела эксперименты в Windows 98. Что характерно, там проблемы те же самые, только блок данных выглядит немного иначе. Там нет пустоты в конце блока, зато все строки – в ANSI и только часть из них продублирована в конце файла в UTF-16.

#upd(17.07.2022 - 2:57 AM):

Оказалось, что по крайней мере в Windows XP функции вполне себе читают Win16 программы.

#upd(17.07.2022 - 3:05 AM):

В x64 Нанами та же история. Win16 приложения не запускаются, но версия очень даже читается. Хотя, Проводник не показывает версию.

16:37

Идиоты

Тотальная неудачница и убийца жёстких дисков.
#post-id: 8025-18-08
#original-date: 16.07.2022 Sat
#original-time: 6:08 PM
#original-day: 8025
#original-host: WinXP Home SP3 (Build 2600)

Плоскоземщики на связи.

Почему мы не используем технологию магнитных полей?

Новость об изобретении уникального оружия 1932г опубликовал журнал Modern Mechanix.

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

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

Использование таких технологий приведет к краху топливного рынка. Ведь не нужен будет ни порох, ни бензин, ни газ.


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

Тотальная неудачница и убийца жёстких дисков.
#post-id: 8024-14-27
#original-date: 15.07.2022 Fri
#original-time: 2:27 PM
#original-day: 8024
#original-host: Win7 Ultimate SP1 (Build 7601)

Задремала немного, и приснилось мне, что вышла новая серия «Petit Sekai», где Хонами улучшала свои барабанные навыки, прослушивая музыку Slipknot.

Тотальная неудачница и убийца жёстких дисков.
#post-id: 8024-12-09
#original-date: 15.07.2022 Fri
#original-time: 12:09 PM
#original-day: 8024
#original-host: Win7 Ultimate SP1 (Build 7601)

Посмотрела вчера несколько клипов группы «Слева направо».

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

А потом посмотрела пару клипов Гына «Самый сок в его фамилии» Сока.

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

Например, песня «What is your name?» только на первый взгляд кажется обычной песней средненького азиатского пикапера. На самом деле эта песня повествует об актуальных проблемах: о старении, о постепенно исчезающей памяти, о деменции, в конце концов. Очень приятно, что сравнительно молодой, но уже очень популярный певец поднимает такое важные темы в своём творчестве!

16:36

Йумор

Тотальная неудачница и убийца жёстких дисков.
#post-id: 8024-10-15
#original-date: 15.07.2022 Fri
#original-time: 10:15 AM
#original-day: 8024
#original-host: WinXP Home SP3 (Build 2600)

Я уже говорила, но хочу напомнить, что все эти «Опасно для жизни», «Не влезай – убъёт», «380V», «Без спасательного жилета вход воспрещён», «Не заплывайте за буйки» и прочие «нарушения техники безопасности» – это ни что иное как глубоко укоренившийся в культуре всепоглащающий виктимблейминг.

Тотальная неудачница и убийца жёстких дисков.
#post-id: 8024-09-50
#original-date: 15.07.2022 Fri
#original-time: 9:50 AM
#original-day: 8024
#original-host: WinXP Home SP3 (Build 2600)

Пересмотрела «Kill Bill», первую часть. Там в конце звучит энка, когда главгероиня сражается с главной якудзонкой, и эта песня как-то подозрительно похожа на энку из «Lucky Star», которая ещё в одном из эндингов была. Слова другие, темп скачет немного иначе, но в остальном выглядит так, будто там вовсе не по причине одного жанра совпадение.