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

Не туда, часть 4

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

Коллега по имени, допустим, Петя, задолбался. Говорит -- Ладно, я попозже зайду... и начал уходить. Уже полкомнаты прошёл!

Я решил над ним приколоться. Кричу ему -- Петя, Петя! Иди сюда скорее! (хотя смотреть было пока не на что)

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

У нас в отделе есть ещё один Петя.

Он как услышал, сразу прибежал: "Где, где?"

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

23:58 

Untitled [461]

Подумал, что сглаживание и сглаз -- однокоренные.

@темы: Восприятие, Мысли, Тухлые идеи

23:59 

Untitled [460]

Коллега сделал схему для подключения к микроконтроллеру. Со светодиодом. Подключаю -- светодиод сгорает.

Несу ему -- говорю -- в твоей схеме горит светодиод. И тут я понимаю, что из моей фразы непонятно, в каком смысле он горит.

Я поясняю: "горит" в смысле "burn", а не "light".


***

С мультиметром творятся удивительные чудеса. Он меряет напряжение в диапазоне от -3 до 3 вольт, а если подать 5 вольт (проверяется другим мультиметром), показывает ноль.

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

23:59 

Кто все эти люди?

В Pixel Dungeon Remix добавили новый свиток -- свиток проклятья. Он проклинает все надетые на игрока вещи, так что тот не может их снять (зачарование, слава богу, с них не слетает).

В связи с этим я стал снимать с себя все вещи, прежде чем читать незнакомый свиток. Но об'ём инвентаря в Pixel Dungeon ограничен 24 предметами. 20 на обычные предметы и 4 -- на надетые. Если предмет снять, он попадает в обычные, а слот для надетого становится пустым.

У меня не было места в инвентаре, куда можно было снять предметы. Поэтому я снял с себя оружие, броню, кольца и выложил их на пол. Так они не пострадают. И прочитал незнакомый свиток.

Это оказался свиток телепортации!

И я оказался на другом конце уровня без брони и оружия...

@темы: NetHack

23:30 

Ну что, как поплавали?

Видел в метро на эскалаторе мужика в водолазной маске. Ехал вверх.

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

23:58 

О лицензиях

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

Или не использовать библиотеки, которые под ней распространяются.

По-настоящему свободная лиценизя только одна. Public Domain.

@темы: Мысли, Программирование

23:52 

Life is Strange (2015)

Вчера я видела оленя...
(С) ГлаДОС из Портал 2

Our reports showed a massive anomaly
in the timespace continuum.
Timelines jumping left and right,
stopping and starting...
(C) Sans из Undertale


Это -- интерактивное кино. Детектив. С возможностью отмотки времени назад. Ничего особенного в этой возможности бы не было, если бы не два дополнения:
1) Положение главной героини в пространстве остаётся неизменным при перемотке,
2) Предметы, которые она добыла, остаются при ней.

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

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

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

"Вы полили цветы"
"У ваших действий будут последствия"

Вот тут я испугалась...

Данная игра вызвала у меня ассоциацию с целым рядом игр. Обычно ассоциации у меня возникают только с парой-тройкой, а тут целая куча: Farenheit, Silent Hill, Master Reboot, The Path, Ib (которую я прошла, но отзыв ещё не написала), Ever17 (!), To the Moon, Max Payne.

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

Авторам перед созданием игры следовало ознакомиться с таким жанром, как визуальные новеллы. Тогда бы игра могла получиться гораздо, гораздо круче. И уж что точно следовало им взять от визуальных новелл -- так это возможность проматывать ВСЕ кат-сцены, а не только уже виденные. Или сделать глобальное сохранение просмотренных кат-сцен, чтобы если начать новую игру, можно сразу было проматывать то, что видел в других играх.

А теперь о таком явлении, как фотография. Эта игра хорошо показывает, что надо ловить момент и ракурс, чтобы снять что-нибудь интересненькое, хотя фотографии Макс, в основном, меня не впечатляют. Я не фотограф. Но иногда я всё же вижу какие-то вещи, которые можно снять и будет круто. Но вижу я их очень редко и плохо. А даже если вижу, могу не сфоткать по каким-либо причинам (лень, холодно руки из карманов доставать). И тут, мне кажется, действительно надо ориентироваться на мистера Джефферсона, который сказал -- always take the shot.

(спойлеры)

@темы: Игры

23:58 

Езжай за этой машиной

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

Я сел на него. Через 3 остановки он обогнал тот, на который я опоздал. Я вышел и пересел! Очень классное ощущение.

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

23:51 

Untitled [459]

Самый надёжный способ сохранить пароль в тайне -- это забыть его.

@темы: Мысли

23:59 

Тупоконечники

Ошибка в документации. Написано, что устройство должно в качестве конца сообщения присылать сигнатуру 0xA5A4A3A2. И особо указано, что менять порядок байт запрещается!

Хорошо, что приведён пример пакета. В пакете указано:
байт 60: 0xA5
байт 61: 0xA4
байт 62: 0xA3
байт 63: 0xA2

Однако и устройство и контроллер используют обратный порядок байт (это известно по описанию некоторых команд). То есть, с обоих точек зрения это число 0xA2A3A4A5. А я думаю, почему это оно не реагирует.

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

23:59 

Ещё про упаковку

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

Сначала несколько важных замечаний:
  • Встретил я указанную проблему в компиляторе GCC под ARM.
  • По документации результат #pragma pack распространяется на упаковку полей структуры, описание которой идёт сразу после директивы. То есть, по идее, значение упаковки не должно было переноситься на дальнейшие структуры. Однако оно переносилось.
  • #pragma pack -- микрософтовская штучка и была добавлена в GCC для совместимости. В компиляторах от микрософт она может работать несколько иначе. В GCC есть более мощный аналог -- __attribute__((packed(...)))


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

#pragma pack(push)
#pragma pack()
//#pragma pack(N)
struct A
{
//...
};
#pragma pack(pop)


pack(push) в начале сохранит, а pack(pop) в конце восстановит старое значение упаковки (вдруг оно будет кому-то нужно?).

pack() без параметров установит значение упаковки по-умолчанию, которое можно настроить перед началом компиляции (подробнее тут), что позволит гибко настраивать упаковку для различных архитектур. Если же нужна конкретная упаковка для данной структуры, можно написать #pragma pack (N), где вместо N должно стоять число 1, 2 или 4 (компиляторы микрософт для 64-битных систем также поддерживают 8 и 16). Идентификатор, сделанный через #define, вместо N подставить нельзя.

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

22:57 

Untitled [458]

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

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

23:56 

Пилат и Иешуа

Постоянно иду с обеда -- навстречу мне ходит женщина с ребёнком (ведёт его из школы?). В очках. Ребёнку лет 7-8. Женщина всегда идёт уткнувшись носом в землю, а иногда у неё в руках телефон, и тогда она идёт уткнувшись носом в него.

А ребёнок идёт в 10 шагах сзади и немного сбоку. Обычно тоже уткнувшись носом в землю.

А сегодня она вела его за ручку и разговаривала с ним!

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

23:44 

Untitled [457]

...у него был чёрный пояс по радиоэлектронной борьбе.

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

22:37 

Untitled [456]

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

@темы: Лайфхак, Тухлые идеи

23:58 

Первый -- шаг вперёд, и в рай

Удивительную вещь встретил. Передаю в функцию указатель на экземпляр структуры, а приходит вместо исходных значений -- мусор.

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

Значит, они по-разному интерпретируются! Но структура одна же. Я включил её определение в .h файле в два .c файла -- в главный файл и в файл с определением функции, которую я вызываю.

Я попробовал поменять типы данных с однобайтных на двухбайтные. И оказалось, что теперь половина значений доходит правильно, но располагается в других переменных!

Короче говоря, дело было в выравнивании данных в памяти. В главном файле где-то в начале (или в одном из заголовков) было установлено #pragma pack(2), а во втором файле -- #pragma pack(4). И уже ПОСЛЕ этого был включен мой заголовочный файл и описанием структуры. В итоге главный файл думал, что выравнивать поля надо по 2 байта на переменную, а второй файл, что по четыре! Т.е. структуры имели одинаковое имя, но были несовместимы двоично! Я непосредственно перед описанием структуры в заголовочном файле поставил #pragma pack(4) и всё стало зашибись.

(пример, иллюстрирующий #pragma pack для тех, кто не в курсе)

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

23:29 

Как убить Владыку Теней в Remixed Pixel Dungeon

(развернуть список моих статей по Pixel Dungeon и форкам)

Надо было сделать одну статью по новому Ремиксу и описать в нём трёх боссов -- этого, Королеву Пауков и Лича, но этот босс достоин отдельной статьи.

(как убить Владыку Теней)

@темы: Статьи, NetHack

23:59 

Коктейль

Еду с челом на машине.

Он: О, -10. Как раз незамерзайка на -10 замёрзла.
Я: А зачем же ты налил на -10?
Он: Да я купил на -20, вот понемногу доливаю в эту...

Я:
.
.
.

@темы: Автомобили, Случай из жизни

23:54 

? // Эпос о Гильгамеше

Чем-то привлекают произведения из глубины веков. Данное произведение -- не самое древнее сохранившееся, но одно из самых древних. Глубже почти некуда. Написано клинописью на глиняных табличках. И бесполезно представлять себе на месте Гильгамеша одноимённого гражданина из, скажем, Fate/Stay Night, одетого в средневековый доспех. Потому что в те ещё годы даже с простыми шлемами была напряжёнка. А было это в районе 3 тысячелетия до н.э.

Основная проблема данного произведения в том, что оно плохо сохранилось. И тут я пою хвалебную песню т.н. "эпическим повторам", когда одни и те же отрывки повторяются в тексте многократно, поэтому когда на табличке невозможно прочитать слово -- или кусок таблички вообще отвалился -- по дублированным местам можно восстановить, что там было. В том числе, отрывок жалобы Гильгамеша на страх смерти в 10 табличке повторяется трижды (или даже больше), но ни разу не сохранился целиком. Однако сопоставление позволяет восстановить текст почти целиком. Несмотря на это, на текущий момент учёные "собрали" где-то 2/3 текста (это страниц 80 стихами в одну колонку). Но сборка продолжается. Некоторые места известны только в пересказе.

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

Главная трудность при чтении -- непонятность некоторых моментов без пояснения переводчика. Когда их прочитаешь -- становится понятно, что, к примеру, в 12 таблице Энкиду спустился в преисподнию за барабанными палочками, будучи живым ещё. А пока не прочитал, думал, что его Гильгамеш наставляет перед смертью (12 таблица вообще выбивается из основного повествования). И хотя в данном эпизоде вариантов нет, в некоторых других я думал, а не ДОДУМАЛ ли переводчик СМЫСЛ? Например, одна из самых главных мыслей произведения, это то, что Гильгамеш в конце отступился от своей цели. Но в тексте она помечена курсивом (т.е. является интерполяцией). И если почти все остальные интерполяции либо неважны с точки зрения смысла, либо восстанавливаются по повторениям/контексту, то откуда взялось именно такое восстановление, непонятно.

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

Иштар: Гильгамеш, давай жениться!
Гильгамеш: Неее. Ты всех своих предыдущих любовников кого сгубила, кого что, а теперь ещё и за меня возьмёшься?
Иштар: Папа, он меня обижает! Сделай мне быка, который бы его убил!
Ану: От тебе бык и отстань от меня уже.
Иштар: Теперь ты у меня попляшешь, Гильгамеш!
Гильгамеш: Энкиду, пошли мочить быка.
Энкиду: ок.
*мочат быка*
Энкиду: Эй, Иштар, мы твоего быка замочили! Я бы с тобой то же самое сделал, если бы мог добраться...
Иштар: Папа, папа!


Иштар -- девка ещё та.

@темы: Книги

23:56 

Untitled [455]

Романтические углеводороды.

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

Untitled

главная