Category: it

Category was added automatically. Read all entries about "it".

main

креаторскобэкапное

Как всегда при выходе очередного крупного обновления десятки, решил накатить Creators Update заранее — чтоб контролировать процесс, а не обнаружить в какой-то момент при включении машины, что она собралась полчаса обновляться. На двух рабочих машинах обновление прошло без проблем, а на домашней совершенно с ума сошло Start menu, слегка прихватив с собой таскбар. Вместо старых прикрепленных приложений пришли пустые иконки со странными именами, начинающимися с W~, которые исчезли после перезагрузки, в списке приложений остались тольк метрошные приложения, для остальных перестал работать и Pin to Start. Pin to taskbar работал, но с нюансами, некоторые иконки пропадали после перезагрузки, некоторые жили нормально, некоторые при запуске приложения дублировались.

Жить без Start еще можно (хоть и начал к нему привыкать), а вот непредсказуемый таскбар очень напрягал. Но я ж уже ученый, как раз для таких случаев каждое воскресенье на NAS сваливается бэкап системного диска. Слил его на всякий случай на локальный диск, перед уходом на работу запустил восстановление. Бэкап родной, что может пойти не так? А вот Error: The parameter incorrect. Code: 0x80070057 и слова про отсутствующую ОС при перезагрузке. Сделал загрузочную флешку, запустил восстановление еще раз, пошел тем временем гуглить. Восстановление еще раз принесло ту же ошибку в самом конце, гугль принес рекомендацию вынуть флешку перед самым началом восстановления - мол, родной бэкап сходит с ума от возможно сбитого порядка дисков и никак не может понять, что активным нужно делать именно тот, который только что восстановил. Комментарии счастливцев, у которых этот совет прокатил, идею подтверждали.

Третья попытка восстановления с выдергиванием флешки все равно не помогла, но на правильную дорогу эта идея вывела — судя по вылету в самом конце, проблема действительно была в неумении выставить активный/загрузочный раздел. Diskpart и bootrec с /fixmbr и /fixboot довели ситуацию до сообщения о битом \Boot\BCD, а вот /rebuildbcd, как и bcdboot стали отваливаться с криками о битом каталоге. Чекдиск нашел несколько битых ссылок, ситуацию исправил, BCD реанимировался, воскресная система загрузилась. Вот как так можно писать системный бэкап, чтоб его реанимация требовала таких танцев с бубном?

Понадеялся, что и с обновлением косяки вылезли из-за битой файловой системы. Сделал еще раз честный бэкап на локальный диск, накатил Creators Update, убедился, что проблема осталась. Восстановление с локального бэкапа на этот раз прошло без шаманства, ну и все, что после этого осталось сделать — впервые в жизни поставить галочку Defer feature updated в надежде, что в каком-нибудь следующем апдейте косяк рассосется.
main

студийнораздутое

С 2017 студией в MS не стали мелочиться, полный офлайновый дистрибутив весит 25 гигабайт, причем образы пока даже не раздают, нужного эффекта можно добиться с помощью vs_Enterprise.exe --layout <путь до свалки>. Если включать всякие кросс-платформенные и мобильные фишки, разворачивается в полсотни с лишним гигабайт (на борту будут, правда, сразу всякие Android SDK и Java SDK, которые раньше нужно было докачивать самостоятельно). В связанном с C++ изменения минимальные, ну вот включили IncrediBuild, позволяющий разнести сборку проекта по нескольким машинам. Как обычно, встает рядом с предыдущей, которую все равно можно снести, тулсет 2015.3 просто включен до кучи в поставку, как и тулсет с поддержкой XP (с выпиливанием которой они так обожглись на 2013 студии, что теперь перестраховываются). Что забавно, все красивые варианты выбора не ставят HelpViewer, так что по умолчанию гонят за помощью на веб. Если покопаться в IndividualComponents, HelpViewer таки можно вернуть, но внутри скучновато, по 2017 вообще еще ничего не добавлено.
main

фрибдсмное

Сделал очередной подход к pkgng, получил массу эмоций. Да, FreeBSD 8.4 уже давно не поддерживается, но в случае моего vds особых вариантов нет. Через порты он (pkgng) уже давно не собирается, забрал собранный вариант с pkg.freebsd.org, обновил базу, как-то оно взлетело и поначалу даже понравилось. Делать полный апгрейд не позволило чувство осторожности, начал со второстепенных пакетов, все отработало на первый взгляд как положено.

Дальше стало веселей. Апгрейд subversion обещал снести апач, апгрейд апача обещал обновить 2.2, поставить 2.4 и снести nginx, апгрейд nginx тоже сносил что-то из соседей. Совместный апгрейд вроде ничего важного не сносил, кроме модперла под 2.2, хоть и обновлял кучу всего, так что все-таки решил пока притормозить. Напоследок глянул в логи - а там вопли от скриптов, использующих ImageMagick, который поломался из-за того, что среди тех пакетов, которые вроде не тянули за собой никакие зависимости, был и libpng, от старой версии которого ImageMagick таки зависел, хоть никому об этом и не говорил.

Вечер перестал быть томным. Стал искать пути отката. Попробовал portdowngrade и получил в лоб слова о том, что svn не может работать из-за потерявшейся libsqlite (которую тоже обновлял, и которая тоже ничего не знала о зависимостях от себя). Старые пакеты отказывались собираться, вопя, что тут pkg версии 1.5.5 (более свежего под 8.4 нет), а нужен хотя бы 1.6.0. Плюнул, нашел образ виртуалки с 8.3 (ставить с нуля было очень лениво), с помощью напильника и какой-то матери собрал там по старинке нужные библиотеки и залил на сервер. Вишенкой на торте стало то, что sqlite в виртуалке смог использовать posix_fallocate, а в vds нет (так что библиотека, собранная в виртуалке, в vds уже не работала). Пришлось подправить порт, вырвав из него с мясом работу с posix_fallocate, и distinfo, нахально вписав в него новый размер и sha256.

В общем, есть большие сомнения, что следующий (когда он случится, правда, неизвестно) переезд/апгрейд сервера будет на фрю. Ностальгия ностальгией, но надоело на ровном месте ловить проблемы, связанные исключительно с наплевательским отношением к обратной совместимости.
main

айфоннобрутфорсное

У ребенки что-то пошло не так при обновлении прошивки на айфоне, решили восстановиться из бэкапа. Тут-то и выяснилось, что он запаролен, причем она утверждала, что отродясь пароля на него не ставила. Поиск выдал несколько веток со стонами аналогичных страдальцев, разбавленных радостными воплями о том, что удалось вспомнить/восстановить, причем паролями оказывались самые разные вещи - от первого пин-кода до пароля администратора на компе. Многие из пострадавших были уверены, что iTunes сам каким-то коварным образом решил взять первый попавшийся пароль из использованных. Лично мне больше понравилась версия, что люди принимали запрос о пароле на бэкап за что-то еще и вводили то, что считали нужным в тех условиях. Что и объясняет столь большой разброс.

Пробовать привычные пароли, привычные составные части паролей и их комбинации быстро надоело, поэтому набросал скрипт, формирующий все возможные размещения из N по 1..M, где N - число этих самых возможных составных частей, а М решил ограничить тремя. На выходе получался приятный словарик из нескольких десятков тысяч слов, обрабатываемый взломщиком бэкапов за несколько минут. И тут, как выяснилось позже, допустил ключевую ошибку - всякие очевидные хитрости типа "напишем слово в другой раскладке" воспроизводились вручную, хотя и это было бы легко автоматизировать. Исчерпав все возможные комбинации, уже совсем от безысходности запустил на рабочей машине брутфорс на семисимвольные пароли из латиницы в нижнем регистре и цифр. Смешной вариант, но и он на скорости 10-15 тысяч вариантов в секунду обещал работать 11 недель.

Совершенно не рассчитывал на успех, но результат получился на удивление быстро, всего за несколько дней (и было бы еще быстрей, не выпендривайся я с цифрами). Разумеется, паролем оказалась едва ли не единственная пропущенная комбинация из английского слова, транслитерированного кириллицей и набранного в английской раскладке. К счастью, всего из 6 букв.
main

бетодевятое

Во вчерашнем показе Split View на айпадах как-то забыли упомянуть, что работает это пока только для родных приложений, остальным еще нужно приобщиться к новому api. От Slideover (где второе приложение занимает только полоску) пользы чуть больше, в этом случае основным может быть любое приложение, боковым опять же лишь родное. В первую очередь, видимо, подтянутся всякие мессенджеры, для них это самое то, уже сейчас очень удобно - слева сафари, справа facetime, календарь, контакты, им этой полоски за глаза хватает. Управление удобное, но еще неизвестно, что будет, когда желающих влезть в правую панель станет на порядок больше.
main

турнирнокурсовое

Давно уже игрался с идеей превращения курсовой по системному программированию в турнир боевых человекоподобных роботов, и вот наконец все сложилось вместе - и техническая часть устаканилась (сдача через GitHub была успешно обкатана осенью на магистрах), и окончательно встали на свои места все смутные прикидки, то же разделение на два ключевых этапа с сохранением соревновательности на каждом. Приятно, что желающих на первый этап нашлось даже больше, чем ожидал. Let the Fight Begin!
main

гуглеаппнощедрое

Унес кафедральный домен в Google Apps for Education. Пока настраивал, увидел в настройках аккаунта строчку "Общий объем хранилища: Без ограничений". Сначала удивился, поскольку точно помнил про 30 Gb в описании, что, конечно, лучше стандартных 25, но не бесконечно. Однако в другом описании уже слова про "unlimited number of any type of files, up to 5TB each". Ну и в настройках всего домена такая приятная строчка: "Объем хранилища для пользователей Asugubkin.ru не ограничен!". Так что все-таки счет 3:1 в пользу аттракциона невиданной щедрости. Даже возникло желание сделать его основным - в отличие от урезанной и прикрытой для подключения базовой версии Google Apps, тут все как для взрослых, включая штатную синхронизацию с аутлуком и штатное же отсутствие рекламы.
main

бсдшноапгрейдное

До чего ж я люблю фрибсдшную борьбу за светлое будущее. В очередной раз запущенный portupgrade радостно сообщил, что 1 сентября поддержка pkg_tools прикрывается и за оставшиеся полгода нужно мигрировать на pkg, получив в обмен всякие плюшки, включая бинарные обновления. Для желающих по старой памяти собирать из портов вроде ничего фатального, добавить строчку в конфиг и использовать почти такой же синтаксис.

Ну ладно, пошел собирать ports-mgmt/pkg. Получил облом в недрах sqlite3.c:23598: error: 'posix_fallocate' undeclared here (not in a function). Гугление показало, что posix_fallocate появился в FreeBSD 8.4, так что установленная 8.3 (которую нет особого желания удаленно апгрейдить) пролетает. Что характерно, отдельный свежеобновленный sqlite3 прекрасно собирается, и только зачем-то принесенный в комплекте с pkg обламывается. Ну вот кто так пишет? Да, понятно, версия не самая свежая, но вышла всего-то в прошлом году, и уж точно это не повод отдавать в порты заведомо не собирающийся пакет, причем столь критичный.