Category: экономика

Category was added automatically. Read all entries about "экономика".

Book

Особенности перловодства в 2018

AnyEvent::Gearman содержит ~10 фиксов от разных контрибуторов возрастом около года, мейнтейнерам похуй на мерж и релиз. Я тут предложил организовать комитет контрибуторов: https://github.com/typester/anyevent-gearman-perl/issues/9

AnyEvent::Gearman юзает тулзу ShipIt, которая содержит баги 1год+ на rt.cpan.org и несколько старых ишшуев в гитхабе. Гитхабовская репа отсутствует в метаданных пакаджа (на что есть PR, но снова всем похуй). http://matrix.cpantesters.org/?dist=ShipIt+0.60 красный с 5.24 но снова всем похуй.

AnyEvent::Gearman не поддерживает протокол в полном объеме - например, приоритеты и эксепшены. Но снова всем похуй™

Перловая дока о том, как тревис по дефолту работает с перлом, устарела. Генерируется другой
билдскрипт (что хорошая идея, но не переход не отражен в документации).

Upd: тесты это вообще феерия. Форки, слипы и kill -9, Карл! Причем они тестят себя относительно другой имплементации (которая из говна). Cоответственно в тревисе shit really hits the fan, не говоря об аппвеере (который тупо виснет на тестах Proc::Guard под виндой)

Upd2: Test::TCP Proc::Guard и Danga::Socket тоже вешаются под виндой (они тоже в зависимостях у тестов). Баг в Danga::Socket с 2006 года висит (карл).
Book

Уже не компактифицируется и без снапшотов

Час от часу не легче. 40-гиговый vhdx с ext4 не хочет компактифицироваться до 30 гиг никак - ни через гуй, ни через optimize-vhd, ни через "конвертирование" из vhdx в vhdx.

Вытянул Clonezilla и поставил непосекторно клонировать в пустой тонкий vhdx

Блядский дебиан ливсд с клонезиллой упорно грузит KMS-модуль ядра, так что его бут-настройками якобы отключающими KMS, можно подтереться. А с KMS по дефолту идет 864 по вертикали и говноскроллинг, тьфу. Ахахаха, эти уебки тупо в командлайне ядра передают список вида {foo,bar,baz}.blacklist=1 в котором нет hyperv_fb. Так и представляю себе винду, в которой сейфмод оформлен как блеклист 5 из встроенных драйверов. Closed world головного мозга.

А потом вешается на fsck. Муахаха, там ведро 4.8 в котором нерабочие блочные дрова HyperV, загрузка с диска проходит, но если потом монтировать - то mount тоже вешается.

В-общем, "каждый день сотни компаний переходят с VMware ESXi на Hyper-V". Да щаз.
Book

Баги в ESXi

Этот энтерпрайз на деле то же говно, только со своим неповторимым послевкусием. Напомнило мне времена IBM ClearCase. Тут ещё знакомый образовался, работает эникейщиком в британском кобол-шопе. В феврале приедет развиртуализовываться.

Короче, дефолты в ESXi сделаны таким образом, чтобы после прокликивания визардов всё работало. Но потом приходится делать двойную работу.

Короче, при создании VM:

- создавайте её через веб уй (https://ESXI_IP/ui/)
- выбирайте самую последнюю версию виртуальной хардвари
- выбирайте thin provisioning для дисков
- выбирайте Paravirtualized SCSI в качестве контроллера
- выбирайте VMXNet 3 в качестве сетевухи

Теперь внимание финт ушами и ход конём. Чтобы это сработало - вам нужен ещё и лигаси-клиент ака VMware vSphere Client. Первые шаги нельзя сделать через клиента, а следующий - через веб.

- В лигаси-клиенте добавляете флоп с использованием имиджа из датастора. В отличие от веб-клиента, лигаси-клиент показывает кроме нормальных датасторов ещё и фиктивный, в котором есть флоппи-имидж бут-драйвера для Paravirtualized SCSI for Windows 2008 (годится для всех последующих версий).
- бутитесь, используя одну из многочисленных консолей - веб, vmrc или лигаси. Мне лигаси нравится больше - она позволяет делать отдельно мягкие и жесткие перезагрузки. Блин почему они не сделали вообще отдельный экзешник консоли, не прилепленный ни к веб-уям (как vmrc или веб), ни к лигаси-клиенту (как лигаси-консоль)

Собсно без флопа винда не увидит дисков. Поставили винду - можно похерить dvd и флоповод. Но не стоит - сначала надо проинсталлить Vmware tools (появляется диск в сидюке, с него запускаете сетап). Теперь херите.

На случай, если вы поставили сдуру диск по дефолту на LSI SAS, чтобы переставить на paravirtualized после перестановки винды надо сделать финт ушами, достаточно безумный. Не, монтирование флопа не годится поскольку непонятно, как с него дрова ставить. И процедура даже описана у вмвари в VMKB.

Вместо этого берете лигаси-клиент (я брал лигаси, но может можно и в вебе) и добавляете в него фиктивный диск размером 1 гб. У этого диска надо выбрать scsi id =2:0, после чего добавляется ещё и фиктивный контроллер. Просто так фиктивный контроллер добавить нельзя.

У этого фиктивного контроллера переставляете тип на paravirtualized и грузитесь в винду. В диспетчере устройств убеждаетесь, что есть два разных контроллера (и два одинаковых диска - не перепутайте сдуру диски и контроллеры).

Далее вмварщики говорят перегрузиться в сейф-моде (который ставится через msconfig), но я тупо переставил насильно драйвер в диспетчере устройств с LSI на Vmware Paravirtualized SCSI, после чего отказался от перезагрузки, погасил машину, убил 1гб-диск (благо можно убить сразу и образ с диска, а не просто отдетачить), поменял у основного диска тип на paravirtualized и хуяк всё загрузилось.

Ну и в винде есть волшебная команда sconfig, которая позволяет, два раза не вставая, поменять айпишник и имя, проверить обновления, включить-выключить удаленный десктоп и администрирование и создать невстроенных админов. Правда, юзеров потом все равно отдельно надо создавать, что проще всего через говноклиент администрирования. Там tasks - computer management (очевидно бля!). Ну и далее в mmc как дурак.

А баг заключается в том, что веб-клиент не позволяет добавить флоппи-имидж из виртуального датастора ака файловой системы esxi-хоста.
Book

Паппет

Есть 2 библиотеки для изменения локали. Обе не поддерживают Арч. Написаны в разных стилях, что говорит о том, что одна из них хеллоувордическая поделка и/или написана топорным стилем.

Тьфу.

И да, в одной категории клейсли (честно пустые переменные не генерятся), а в другой - эйленберга-мура (дефолтятся на пустышки).
Book

Бесполезность юнит-тестов - качество бывает лишним

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

Подобно проиборостроению, в софтостроении можно говорить о "гарантийном периоде эксплуатации" и MTBF. Гарантийный период - это период, после которого поломка не будет иметь для покупателя никакого значения. Для IE6 это время оказалось 8 лет, для windows 2000 и Висты - года три. Для моего проекта это где-то полгода - через полгода требования пересматриваются и многое приходится выкидывать и переписывать под новые требования, так что если в каком-то куске за полгода не обнаруживается баг - то достигнут предел качества. Работать над качеством, когда достигнут предел - смысла нет.

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

Соответственно, и подходы к тестированию будут разные для разных комбинаций гарантийных периодов и MTBF.

Ещё надо учитывать экономическую составляющую - соотношение ущерба от бага и стоимости написания теста. Лучше перераспределить бюджет (который обычно фиксирован) с тестирования менее важных фич на более важные. Скажем, если Windows будет крешиться во время установки у 1000 человек - это не так повлияет на продажи, как если она отформатирует не тот раздел у десяти.

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