July 5th, 2016

404

монадическое

Монада - это такое хитрое программисткое проклятие "чтобы тебе maybe мучаться до бесконечного колена".

или, другими словами, каждый раз, когда мы пишем что-то такого вида:

def foo(x):
    if not_good(x):
        return None
    else:
        return do_good(x)


Это метод потребовать у всех, кто вызывает foo, обязательно обрабатывать None. Проклятье сработает, если хоть один из вызывающих выше по стеку не обработает None, причём сработает в compile time.

Этакий forward type checking - метод проверить (и заставить), что твои предположения и утверждения уважают и уважать будут.
404

ceph blog

Потратил ещё один день, разбираясь в typecode'ах, guid'ах, и прочих потрошках GPT. Выяснил как именно ceph всё делает в этой области, и это было очень интересно (консистентная обработка транзакции в 6Тб размером за одну операцию записи - это круто!). Заодно добровольно-принудительно познакомился с sgdisk, про существование которого знал, но в мануалы не вчитывался.

Меж тем, Мой Баг признали багом и пофиксили (https://github.com/ceph/ceph/pull/10093), теперь жду бэкпорта в jewel, чтобы продеплоить на поломанной лаборатории посмотреть, что оно реально прошло.

Плюс: баги фиксят
Минус: всего три недели интенсивного размахивания кувалдой и я нашёл место, куда если стукнуть, то всё разваливается.
404

sgdisk

Отзываю своё мнение о нём. Оно невообразимо ужасно. Чуть лучше, чем fdisk, более человечно, чем parted, но всё равно - безумно далеко от нормальной командной строки с автоматизацией.

Условно говоря: невозможно спросить "какой номер раздела следующий", да и сам вывод списков разделов - душераздирающий.

Большая админская революция должна таки сделать из всего этого Простые, Ясные и Логичные вещи. Появление GPT решило первую половину проблемы - ад и содомию в pt. Теперь надо нормальный cli к нему.

Чтобы можно было сказать "partition add", "partition list", "partition delete", "partition show" да ещё и с опциями вывода в json.