← на главную

Лайвлупинг, медиапродакшн и все эти ваши компьютеры

Алексей Батищев. Заметки обо всём, что происходит со мной и окружающим миром

МОРЭ&РЭЛЬСЫ в Джао Да

Сходил в пятницу на долгожданное шоу группы МОРЭ&РЭЛЬСЫ в московском Джао Да, и снял всё добродушное двухчасовое безумие на камеру. Золотые хиты, неожиданные импровизации, стейдждайвинг, весна, радость, счастье, Лёлик в олимпийке и любимые сопливые песни.

Алексей Зверьков — голос, бас.
Михаил Шульгин — гитара, голос.
Виталий Васяев — ударные, голос.
Дмитрий Горяйнов — гитара, голос.

МОРЭ&РЭЛЬСЫ в сети:
https://vk.com/more_relsy
https://www.instagram.com/more_relsy/
https://t.me/more_relsy
https://www.facebook.com/morerelsy
https://www.youtube.com/user/MoreAndR...
https://band.link/hP6YH

#морээндрэльсы​

Снято на GoPro Session
Фото на обложке https://unsplash.com/@jorikkleen
#васяходитнаконцерты

КЭНК: тихое удаление обновления Windows по номеру KB

Задача: тихо удалить с хоста обновление Windows по номеру KB.

Какое-то время проблема легко решалась через wusa.exe /uninstall /kb:XXXXXX /quiet, но теперь в Windows 10 команда с ключом quiet просто игнорируется, а без ключа — задает много вопросов пользователю, что ожидаемо, но не подходит для решения задачи.

В интернетах быстро гуглится способ, который хорош, но не универсален. Способ рассчитывает на то что KB будет упомянута в имени пакета для DISM, а это бывает не всегда — в примере ниже у двух последних обновлений номера KB в имени пакета нет.

Ситуацию усложняет то, что в разных локалях ОС команда dism выдает информацию на разных языках, да к тому же не структурированным объектом — а строкой. К счастью, из строки все же можно выцепить имя пакета, а по нему — запросить подробную информацию (тоже строкой), где номер KB есть (судя по моим тестам) всегда:

Итоговое решение задачи такое:

  • смотрим список всех установленных обновлений и выдергиваем имена пакетов
  • по каждому пакету смотрим расширенное описание и ищем в нём искомый номер KB
  • если в описании найден нужный номер KB — пакет по его имени отправляется на деинсталляцию через DISM.exe /Online /Remove-Package /PackageName:$sFoundPackageName /quiet /norestart

Короткий сниппет, иллюстрирующий подход:

$sKBNumber = "4578968"
$aUpdts = dism /online /get-packages | ? {$_.Contains("Package_for")} | %{($_.Split(":"))[1].Trim()}
foreach ($sUpdate in $aUpdts) {
	$sInfo = (dism /online /get-packageinfo /packagename:$sUpdate) -join(", ")
	if ($sInfo.Contains($sKBNumber)) {
		write-host "Found package $sUpdate for KB number $sKBNumber"
		# uncomment below to uninstall package
		# DISM.exe /Online /Remove-Package /PackageName:$sUpdate /quiet /norestart
	}
}

КЭНК! Слава роботам!

Cекреты старца Всасиуса — 2021

Краткий дайджест открытий и новинок в области обновлений Windows за прошедшее десятилетие

  • Отличный способ обнаруживать клиентов с дублированным SusClientIds через логи на сервере (хорошо применимо в сетях и инфраструктурах, где сбор данных скриптами и удалёнными запросами перекрыт бикоз оф эта ваша сесурити) https://ms07.de/blog/?p=277
  • Windows Update MiniTool и PSWindowsUpdate — гуевый и консольный способы принудительно ставить обновления, в том числе из интернетов в обход WSUS
  • Современные политики уведомлений в Windows 10 — можно мягко но настойчиво задалбывать пользователя просьбами о ребуте, и принудительно перезапускаться через N дней. Вебдванольно и градиентно, как в лучших домах.

Вроде прогресс, а вроде те же грабли что и в 2010-м.

КЭНК: выгрузка фото из iCloud на Яндекс диск — 2

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

Пара вечеров была потрачена на анализ и сравнение *.heic файлов, импортированных яндексом с телефона самостоятельно, и обработанных мной вручную. К сожалению, никакого способа поправить теги даты так, чтобы яндекс их воспринял, не нашлось: изменения внесенные exiftool или гуевыми программами типа XnView или FastStone результата не давали. Я заморочился, сравнил файлы преобразованные яндексом и свои, добился полного совпадения полей в выгрузке exiftool — и всё равно роботы яндекса делать красоту отказывались. Поэтому с *.heic файлами придуман обходной путь — конвертировать их в jpeg (те же теги, пробитые в jpeg, срабатывали отлично)

Заодно кстати выяснилось, что яндексу важны метаданные в поле DateTimeOriginal: файлы с корректно заполненными DateCreated но не заполненными DateTimeOriginal он также датировал неправильно.

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

Вот что выходит с разными конвертациями и (что важно) при разных программах просмотра:

оригинальный heic в Preview macOS, конверченный ImageMagick jpeg без коррекции цвета в Preview macOS, он же в XnView, jpeg с коррекцией цвета в Preview macOS и в XnView

Хорош рассусоливать, что вышло-то?

Итоговая на текущий момент процедура конвертации такова:

  • перегнать все heic в jpeg при помощи ImageMagick, заменяя цветовой профиль на sRGB.icc и цветовое пространство на sRGB и корректируя гамму, стереть оригиналы
  • пробить во все экспортированные файлы (и в том числе в джипеги, конвертированные из heic) метаданные из *.xmp
  • видосикам пробить FileModifyDate из TrackCreateDate и переименовать
  • там где у картинок DateTimeOriginal задан — переименовать файлы в соответствии с датой
  • там где у картинок DateTimeOriginal не задан — пробить его из DateCreated и переименовать файлы в соответствии с датой

Обработанные таким образом медиаматериалы корректно раскладываются яндекс диском в альбомы по времени и геолокации. Косяки и нюансы

  • не раскладываются по датам PNG (у меня это на 100% скриншоты) — ну да от них участия в генерации памятных сторис и прочей красоты не требуется.
  • heic с Live Photos внутри конвертируются в два файла: картинка с дефолтным кадром и микро-mp4 с полной анимацией. Не парит опять же.

В полном соответствии с методологией КЭНК и принципами Hobby-as-Code процедура собрана в shell скрипт, ознакомиться с которым можно на github (уберите от консоли беременных детей и женщин): https://github.com/alexbatishchev/kenk-yadisk-photomaster

КЭНК!
Слава роботам!

Новый комплюктер и домашние облака

На новый год сделал себе подарок одновременно приятный и полезный — впервые за почти 10 лет обновил основной домашний компьютер. Много лет в корпусе Asus Ascot от собранного еще в середине 2000-x компа на базе Prescott трудился i5-2400. Сначала мне его хватало с лихвой, потом я стал упираться в троттлинг при сборке видео, купил башенный чудо-кулер, и при замене обнаружил что во время первой сборки забыл убрать защитную плёнку с оригинального кулера. Так, обретя полноценное охлаждение он и проработал до недавнего времени, закрывая большинство задач. Претензий было две — недостаточно быстрое кодирование видео в современные форматы, и откровенные тормоза при файловых операциях и включенном антивирусе, которые стали бесить.

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

Самое непривычное — я почитал обзоры, пособирал конструкторы, и впервые в жизни купил полностью готовый брендовый комп на i7-10700: оказалось что подходящая мне по параметрам и размерам модель ещё и стоит дешевле, чем собрать такой же конфиг самому.

Ощущения от скорости удивительные, а ещё удивительней полностью новая современная платформа, без механических дисков, тихая и производительная, размером с треть моего прошлого системника — ощущаю себя Робинзоном, вернувшимся в цивилизацию. Недостатки тоже есть — на материнке не распаян PCI слот, SATA не поддерживает эмуляцию eSATA, так что комп придётся дополнить новым кредлом для дисков и, может быть, контроллером IEEE1394.

Перенося софт и данные на новый комп, решил протестировать что там в домашних облаках в варианте Hyper-V (которого не касался почти 8 лет). Сверхъестественного ничего, всё работает, с конвертацией виртуалок между форматами успешно справляется StarWind V2V Converter — собственно, для фиксирования этой информации в первую очередь пишется пост. Кстати, для основных учебных проектов я наверное вернусь к Oracle VM VirtualBox, так как его образы могу крутить без преобразований и на Win10 и на macOS.

Забрать своё из облаков: жж и гуглоплюс

На каникулах перенёс в блог архив своего ЖЖ и гуглоплюса

ЖЖ

ЖЖ я завёл (судя по записи «хэхэ, жэжэ») в 2009 году, и активно писал в него несколько лет. Журнал сохранился в неизменном виде до декабря 2020, когда я провёл перенос его в этот блог. В журнале никогда не было особых обсуждений, да и сам я почти никогда ничего не комментировал в других журналах, так как чужие жж читал и читаю через RSS. Но как дневник, прото-инстаграмм и заметки использовал его плотно. К слову о комментариях — уже закончив перенос я вспомнил про те немногие комменты, что в моем жж были — и решил ими не заморачиваться. Такой вот чукча читатель и он же чукча-писатель без потребности в обратной связи.

Google+

Несколько лет в 2011-2014 я активно пользовался гуглоплюсом. Люблю тестить новые технологии, плюс идея с геолокацией оказать удивительно ёмкой на применение. Например, было интересно в новом месте посмотреть, кто постит что-то рядом (а вот на этом полустанке между Москвой и Киевом, есть пользователи гуглоплюса?). Ещё я нашел несколько интересных людей просто потому, что они постили из того же утреннего экспресса из Перди в Нерезиновую, что и я (и кстати, которых я благополучно потерял вместе с закрытием гуглоплюса). В московском метро на кольцевой клиент гуглоплюса меня постоянно определял как в Питере — это был забавный телепорт внутри сервиса.

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

В общем, в плане переноса мне повезло, что после перехода в гуглоплюс я настроил экспорт заметок из него в ЖЖ, поэтому тексты постов сохранились. А картинки, которые погибли вместе с G+, остались в бэкапах на домашнем хранилище (фотки со смартфонов я предусмотрительно синхронизировал на NAS уже в те года).

Таким образом, перед началом переноса у меня был выгруженный из жж архив, заполненный оригинальными записями вперемешку с полуистлевшими репостами из G+, а также архив оригинальных фотографий, павершелл и стойкое нежелание делать много ручной работы — в реальности, совсем без неё не обошлось, и в итоге я фактически открыл и в той или иной мере отредактировал каждый из постов, но основной объем работы по переносу, включая создание записей, правку форматирования, генерацию заголовков постов, выдерг тегов и местоположений, создание URL постов для эгеи, и кучу ещё всего сделали за меня роботы.

Процедура переноса.

Сначала я взял выгрузку актуальной базы из Эгеи и разобрался в её устройстве. Посмотрел как работает с базой Евгений Степанищев. В несколько итераций написал на павершелле парсер, который выдёргивает из поста жж данные — заголовок, тело, дату и теги (настроениями я не пользовался обычно), складывает и переименовывает картинки. Для импортированных из G+ постов сделал парсер отметок геолокации из тела поста. Ну и по мелочи множество всяких замен ссылок на формат эгеи, убирания форматирования и тому подобное. На выходе парсера были команды SQL, которые я копипастил большими кусками (набором постов за месяц сразу) в phpMyAdmin прямо на хостинге, и файлы картинок, которые я вгрузил пачкой по ftp.

В целом работа заняла почти все праздники. Я правил скрипт под менявшиеся несколько раз форматы постов, вгонял их в блог, открывал и редактировал где это было необходимо. Заодно я местами добавил фоток к постам или заменил фотки из жж на оригиналы из архива в бОльших разрешениях, местами добавил комментарии «из 2020», или поменял ссылки наружу на работающие. В целом данные переехали как есть примерно на 70-80%

Изменения в технологиях и головах

По ходу работы подметил много интересного:

  • с одной стороны правильно говорят, что информацию из интернета удалить невозможно — разыскивая хоть какие-то дополнительные следы своей страницы в гуглоплюсе я находил репосты, сайты-индексаторы и каталоги, хоть и не нашел в итоге ничего удобоваримого (а в archive.org гуглоплюс не сохранился). С другой стороны, примерно половина ссылок из постов жж на внешние ресурсы, ролики с ютуба и тому подобное не открылись. Какие-то сайты и СМИ просто перестали существовать, какие-то поменяли структуру ресурса (например, мне удалось по не изменившемуся тексту найти новость на сайте мчс от 2012 года, на которую ссылался мой пост). В целом, здесь делаю вывод, что действительно важные вещи стоит либо цитировать в тексте поста полностью, либо выгружать и прикладывать к постам например в pdf (как я и сделал несколько раз в итоге). Что делать с ютубом и прочими большими медиа-штуками пока непонятно.
  • технологии развиваются стремительно. В жж в начале 2010-х я часто встраивал в заметки плееры музыки и видео со сторонних сайтов — все эти фреймы и жабаскрипты уже не работают вообще, сервисы переделаны или уничтожены. Собственно, встройку ютуба удалось победить только выпарсив из кода начала десятилетия id роликов и сформировав актуальный линк вручную.
  • при этом какие-то вещи остаются на удивление незыблемыми. Живы сайты, куда я 10 лет назад выгружал треки покатушек, живы вручную забитые маршруты на Яндекс картах и на гугле, живы картинки на хостингах, куда не заглядывал 7-8 лет, живы примерно половина роликов ютуба (и некоторые набрали за это время миллионы просмотров)
  • я 10 лет назад был значительно резче, злей, радикальней, нетерпимей в мыслях и высказываниях. Удивительно насколько было мне тогда важно, что «в интернете кто-то неправ», или что какая-то технология крива или не работает. Мудрость это или равнодушие сейчас — не знаю. Какие-то тогдашние свои позиции я больше не разделяю, за какие-то высказывания сейчас стыдно, но я решил перенести все посты как есть.
  • интересна повторяемость сюжетов и каких-то идей в мыслях, которые забывались и изобретались заново — встретил несколько таких, уже не помня эти их первые (?) инкарнации

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

Теги для импортированных постов:
посты из гуглоплюса
посты из жж

Забрать своё из облаков: начало

Давным-давно, на заре интернета (модемы, первые порталы, фтп с музыкой и скоростью в 10 мегабайт в час), мы ржали над шуткой

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

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

Я какое-то время работаю над идеей забрать свои данные из соцсетей-облаков, чтобы хранить у себя (ну ок, не забрать — но хотя бы получить копию). Оказывается, сделать это непросто, и помогать юзерам никто не горит. Одно время у Яндекс Диска в интерфейсе была кнопка, выгружающая на него фото из других соцсетей, но её давно выпилили. В 2016-17 годах Касперский анонсировали похожий сервис ffforget.me, но так его и не выкатили. А значит, придётся делать всё вручную (максимально автоматизируя, как я это люблю)

Пока результаты исследований о возможности экспорта данных такие:

  • вконтакте. Позволяет запросить выгрузку всех данных. Выгрузка представляет собой небольшой архив, внутри набор html страниц со ссылками на оригинальные медиафайлы — то есть все альбомы, вставленные в переписку фото-видео и тому подобное открываются из интернета, полноценной локальной копией это не является. Чтобы перенести инфу в полный оффлайн или на свой ресурс, придётся писать парсеры и выкачивать картинки и видео, от музыки думаю максимум что выйдет — утащить названия треков.
  • инстаграм. Позволяет запросить выгрузку всех данных. На выходе страница со ссылками на архивы по 2 ГБ, которые по одному нужно прокликать и скачать за ограниченные несколько дней. Внутри каждого архива — индивидуальный набор данных за определенное время: медиаматериалы, разложенные в папки по месяцам (фото и видео с очищенными метаданными и служебными именами файлов) и отдельные json с текстами постов, временем публикации, локацией в виде текста (без координат). Файлы с метаданными лежат в корне каждого архива и поэтому все архивы в одну папку развернуть нельзя — метаданные затрутся.
  • гуглефото. Позволяет запросить выгрузку всех фоток и видео. На выходе страница со ссылками на архивы по 2 ГБ, которые по одному нужно прокликать и скачать за ограниченные несколько дней. Внутри архивов материалы разложены по альбомам как в сервисе (те что вне альбомов — разложены по годам). В файлах сохранены метаданные, плюс к каждому выгружается json. Имена файлов оригинальные как были в устройстве. Можно всё развернуть в одну папку.
  • жж. Сервис полумёртвый, все программы-выгружальщики данных устарели и работают через пень колоду. Лучший результат по моему опыту — у https://github.com/ati/ljsm. На выходе набор связанных html страниц с картинками которые можно смотреть оффлайн
  • яндекс диск — данные доступны для скачивания через родное приложение, метаданные на месте, имена файлов поменяны на сгенеренные приложением (в формате даты) при начальной загрузке с телефона, например.
  • одноклассники, фейсбук — мне неактуально, не изучал

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

Такие дела

старые карты на retromap.ru

Не устаю уже 10 лет как радоваться крутейшему проекту, позволяющему смотреть в привязке параллельно актуальные и старинные карты местности — retromap.ru

Один из любимейших объектов — родная Пердь. Вот например Троицкое-Кайнарджи на карте 150-летней давности

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

Из недавних открытий по району, который теперь интересует меня больше -вот этот кусок

Сейчас это неприметная аллея в парке, асфальтированная но пешеходная, перекрытая столбиками от машин. Но исторически — это отрезок Носовихинского шоссе (тракта), который, как и остальные радиальные дороги столицы, вел из центра Москвы в область. Носовиха отвечала за путь на Павловский Посад. В 1864—66 годах началось строительство Московско-Курской железной дороги, которая перерезала Носовиху в нескольких местах, и с тех пор дорога перестала идти непрерывно от центра в область, в современном виде стартуя вообще от МКАД (да и шоссе, на фоне соседок, назвать его сложно).

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

Опыт в айти — секретное оружие или якорь

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

Куда деваются старые программисты (не всем же уходить в менеджмент)?

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

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

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

Кстати, на эти размышления меня навёл произошедший только что чуднОй случай: отлаживая скрипт в окне павершелла я нечаянно крутанул скроллик мыши с зажатым ctrl — и о чудо, шрифт увеличился и окно терминала отмасштабировалось!!! Во-первых, я не знал что так можно. Во-вторых, со своим ультрамега опытом начиная от всех этих ваших дос 622, я прекрасно представлял как настраивается через параметры шрифт и размер окна терминала в винде, и никогда бы даже не попробовал менять его таким вебдванольным способом — хотя молодой спец бы так сделал инстинктивно в первую очередь. Получается, опыт тут сыграл как якорь? Но, с другой стороны, я хак вроде запомнил, не брюзжу «вот до чего билгейтсы страну довели», и если что помню, в отличие от всяких сопляков, и дедовский способ. Наверное, всё же интегрально я тут в плюсе. По крайней мере, хочется надеяться.

Ранее Ctrl + ↓