• Кассеты

    Как-то раз мы с сыном шли по чужому двору. На помойке выставили вещи из старой квартиры: допотопную плитку, ковры, холодильник а-ля “Зил”, советский магнитофон и кассеты. Выглядело так, словно какой-то старый человек наконец-то умер и родственники, едва закончив похороны, вытряхнули весь хлам, чтобы занять квартиру.

    Сын заинтересовался ящиком с кассетами, и мы взяли его домой. Рассматривая их, я убедился, что покойный был мужчиной: ДДТ, Король и Шут, Сектор Газа. Встречается лирика: Земфира, Братья Гримм, группы позднего СССР. У человека был довольно широкий вкус: слушал и рок, и попсу, и нашу, и западную. Нашелся даже Слипкнот и какие-то дэд-метал-клоуны.

    Как это часто бывает, ковыряние в старых вещах вызвало флешбеки. В детстве у нас с сестрой тоже были полки кассет и дисков — разумеется, обычных, DVD тогда не было. Слушание музыки было сопряжено с физическим действием: нужно достать кассету, поставить, смотать, перевернуть и прочее. Сейчас этого нет, вся музыка в интернете, и порой я по этому скучаю. Хочется сделать что-то аналоговое, оффлайновое, например, вставить кассету в магнитофон — без облачных учеток, подписок, вай-фая и синхронизаций.

    К слову, современные дети не понимают мем, где рядом с кассетным плеером лежит карандаш. Серьезно.

    На наше с сестрой меломанство повлиял один человек, муж маминой подруги, дядя Витя. У них была хорошая семья, в доме было много книг. Мы ходили к ним в гости как в библиотеку. У них всегда были новые романы Стивена Кинга и мультики Диснея на видике. Они ездили в Маньчжурию (город на границе с Китаем — дело происходило в Чите) и привозили всякие штуки, которые по тем временам казались небесной манной. В том числе они привезли две приставки Денди и одну подарили нам. Мои родители были в ту пору бюджетниками, им давали зарплату продуктовыми карточками, и ни о каких приставках не могло быть и речи.

    У дяди Вити была крутая коллекция западного рока и рок-н-ролла. Куин, Дип Перпл, Дорз, Пинк Флойд, Металлика и многое другое. Дядя Витя не признавал российских исполнителей: это был советский западно-ориентированный меломан. Может быть, это повлияло на мое отношение к русской музыке. Мы с сестрой даже не обсуждали, какую музыку слушать — очевидно, иностранную. Это было ясно как то, что по воскресеньям идет Дисней. И сегодня при слове “русский рок” мне хочется смеяться и плакать одновременно.

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

    Сколько дисков, кассет и книг мы брали у этой семьи — я не могу вспомнить. Некоторые книги они подарили нам, некоторые мы “забыли” отдать. Уезжая из Читы, я взял пару из них на память, и они до сих пор на моей полке.

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

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

  • Старье (3)

    Рубрика “Старье”, выпуск третий. В этот раз кое-что полнометражное: триллер “Психо” 1960 года, черно-белая пленка, режиссер Хичхок. В свободном доступе в ВК, но легко гуглится на других платформах.

    Здесь должен быть плеер, но embedded сломан, поэтому ссылка.

    На что обратить внимание: да на все! На старые вещи, автомобили и интерьер. На манеры общества: фамильярное отношение к женщине, курение где только можно, клерки, прокат авто, дорожные отели и многое другое.

    Фильм, снятый 64 года назад, хорошо смотрится и сегодня. В его основе лежит не такой уж банальный сюжет — сегодня скопилось много его вариаций, но на тот момент это было нечто. В фильме интересные повороты, и предсказать, что будет дальше, не всегда получается.

    В фильме есть сцена в душе, которую позже пародировали, наверное, тысячи раз. Отсылка к ней есть даже в Смешариках в серии “Бутерброд”.

  • Подготовка к интервью

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

    Кажется, я не говорил о своем решении – больше я не готов рвать зад, чтобы поступить в условные Гугл или Яндекс. Моя тактика проста: я собираю предложения о работе в особую папочку и когда дело швах, пишу – актуально еще? И порой оказывается актуальным.

    Надо понимать, что найм по приглашению и холодный найм – это как день и ночь. Если тебе написал CTO компании, считай, дело в шляпе. Нужно только раз созвониться и показать, что ты адекватен и договориться о деньгах. Собесы с руководителями, которые приглашали сами, были самыми приятными.

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

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

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

    Еще я понял, что алгоритмы и дизайн систем не раскрывают главного – умеет ли человек доводить дело до конца. Про себя я понял, что умею: я могу заниматься скучными вещами и доводить их релиза. Я могу чинить косяки месяцами. Могу два дня сидеть в отладчике. Как это качество связано с обходом графа – я не знаю. Зато много раз я видел, как обходчики графов сливались с задач.

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

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

    Старая заметка на эту же тему: FAANG не предлагать

  • Сбой времени (1)

    Короткая заметка самому себе.

    На одном из макбуков стало отваливаться время. В настройках указан стандартный сервер Эпла, зона правильная. И тем не менее у меня март. Не работает ни один сайт из-за протухания сертификатов, вызовы AWS и так далее.

    В интернете пишут, что лечится командой:

    sudo sntp -sS time.apple.com
    

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

    PS: пока набирал текст, время опять отвалилось. Но не пропадать же заметке.

  • Zettelkasten

    В интернете популярен термин Zettelkasten — система накопления и сортировки знаний.

    Если коротко, был немецкий профессор, который вел систему карточек со ссылками друг на друга. Карточки хранились в выдвижных ящиках. Все было пронумеровано; зная номер карточки, можно было определить нужный ящик и достать ее.

    Профессор популяризировал этот метод в эссе «Kommunikation mit Zettelkästen». Слово Zettelkästen означает “чемодан заметок”. Профессор известен тем, что написал несколько десятков книг — надо полагать, пользуясь своей системой.

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

    Ни в коем случае не бросая тень на метод карточек, призываю подумать вот о чем. Zettelkasten — это всего лишь техника. Метод, прием. Сам по себе он не важен, потому что важен только результат. У профессора результат известен — он написал то ли 30, то ли 50 книг.

    В то же время есть люди, которые написали столько же книг, не пользуясь Zettelkasten. Это Стивен Кинг, Агата Кристи, Ленин. Безусловно, у них была своя система заметок. Не знаю, что было у Ленина, но Стивен Кинг пользовался простым блокнотом. Агата Кристи любила думать, моя посуду.

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

    Из этого вывод: скорее всего, профессор написал десятки книг не благодаря Zettelkasten, а просто потому, что много знал и был усердным. “Чемодан заметок” сопутствовал, но не определял его работу. И чтобы писать книги, нужно сесть за их написание, а инструмент придет сам собой.

  • Вставка текста

    Не помню, писал этом или нет, не важно. Я не могу понять: почему, когда вставляешь текст в офисные документы, они сохраняют форматирование оригинала?

    На картинке выше пример: я пишу текст и вставляю фразу из другой вкладки. У фразы другой шрифт и цвет, а некоторые слова выделены моноширинным.

    Это поведение везде: в офисе Майкрософта, в офисе Гугла, в Slack, в Teams, в Джире, в Confluence, в почтовых клиентах. Там, где эта фича не поддерживается на системном уровне, вступает в дело Javascript.

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

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

    У меня вопрос: какую проблему мы решаем? Чтобы что? Кто может объяснить, зачем сохранять оформление текста при вставке в другой документ? Оно же ни хрена не совпадает с моим текстом!

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

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

    И пожалуйста, не пишите про Ctrl + Shift + V и аналоги, я в курсе. Оказалось, даже в Teams это есть, нужно всего-то нажать Shift + Option + Command + V, то есть три (!) системные клавиши с одной обычной. Тьфу, пустяки.

    Интересно, кто эти клоуны, которые задали такое сочетание клавиш? Прямо сейчас нажмите на клавиатуре Shift + Option + Command + V — это, блин, что такое? Большой палец и мизинец близко, а указательный тянется к V — сущее издевательство. Теперь проделайте это десять раз, копируя текст из Википедии. Как оно?

    Как же мы оказались в такой ситуации? Базовая вставка задана на Shift + Option + Command + V, а расширенная — на Command + V. Ни у кого не осталось крупицы мозга, чтобы сделать наоборот?

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

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

  • Старье (2)

    Рубрика “Старье”, выпуск второй. В этот раз предлагаю вам мультфильм “Здесь могут водиться тигры” по мотивам рассказа Рея Бредбери:

    На что обратить внимание: во-первых, уникальный стиль рисования а-ля шариковая ручка. Необычно, приятно глазу. Далее контекст: 89 год – время упадка СССР, уже был Чернобыль, идеология не та. Тем не менее страна выпускает мульт на филосовскую тему. Ну и сам мульт относится к категории “для взрослых”. Это когда прочувствовать его можно только в тридцать-сорок лет. Вот такая в нем закваска.

  • Золушка по-немецки

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

    Венцом моего прогресса стало то, что я прочел на немецком сказку “Золушка”. И так вышло, что сказка была оригиналом, то есть без каких-либо сглаживаний. Перечислю детали, которых вы не найдете ни в одном современном изложении и тем более (мульт)фильме.

    Во-первых, не было никакой феи-крестной. Ее роль выполняли три голубки на могиле матери.

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

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

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

    Вот такой трешачок на последних минутах. Как у Тарантино.

    Вообще, надо учесть, что все современные сказки в той или иной степени адаптированы. Если открыть форзац какой-либо иностранной сказки, то вместо “в переводе” будет указано “в пересказе”. Межу переводом и пересказом большая разница, потому что второе подразумевает удаление занудных мест и трешака.

    Поэтому Мери Поппинс, Карлсон и многое другое из Астрид Линдгрен — это именно пересказы.

  • Проблема XY (2)

    Продолжение недавнего поста о проблеме XY. На этот раз — с конкретным примером.

    В сообществе Кложи кто-то спрашивает: подскажите профайлер, чтобы отладить код. Выкидывает OufOfMemoryException (OOM), потому что утекает память.

    Ему накидали вариантов, я тоже добавил свой. Но меня не покидала мысль, что никакого профайлера не нужно. OOM — довольно специфичная ошибка, и случается она по двум причинам: либо ты пишешь что-то незаурядное вроде интерпретатора, либо полный говнокод.

    Слово за слово, и человека уговорили показать упрощенную версию кода, в котором течет память. А там… как бы вам описать? Идея очень простая: нужно пройтись по строкам файла, сжатого GZIP-ом. В каждой строке лежит джейсончик. Его нужно минимально обработать и записать в базу, а сломанные записи собрать для будущей починки.

    Каждый писал такой код сто раз: это банальный цикл с try/catch. Что же было у автора? Ощущение, что он собрал все выкрутасы, какие только знал. Своя ленивая коллекция через lazy-seq, замкнутая на открытом Reader-e. Глобальный атом, накопление ошибок в иммутальный вектор вместо логов. Функция, которая возвращает функцию. И это только сокращенная версия! Настоящая химера: тело льва, крылья орла, хвост змеи. И где-то здесь течет память. Счастливой отладки!

    Я написал ему, что код переусложнен и нужен не профайлер, а рефакторинг. Выслал черновик с простой версией кода. А у него включились обижульки: я не просил критиковтаь мой код, это плод моих трудов, я задал конкретный вопрос, ты токсичный. Я ответил, пусть токсичный, но проблемы это не решает: код переусложнен, профайлер не нужен, а нужно радикальное упрощение. Чем закончилось, не знаю. Судя по последнему сообщению, он ждал установки профайлера на сервере.

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

    Чем это отличается от примера с профайлером? На мой взгляд, ничем. Это чистый, незамутненный пример проблемы XY. Автор написал говнокод и надеется, что профайлер каким-то образом его исправит. Нет, не исправит, а только займет лишние пару дней на установку и чтение документации. И пусть даже найдется место, где память течет — как это повлияет на код в целом? Говнокод останется говнокодом.

    Вроде бы автор не офисный работник или таксист, а программист, но не понимает этого.

  • PostgreSQL в браузере

    Пишут, что появился Постгрес для браузера, скомпилированный из сишных исходников в WASM. Размер 3 (три) мегабайта. Работают встроенные расширения, включая триграммы, ts-вектор и прочее. Открыл REPL на сайте и поигрался с командами – работает! Это настолько хорошо, что напоминает сон из детства.

Страница 7 из 87