Как-то утро не очень получилось, в смысле, зарядку не делал, даже сурьянамаскару. Зато сходили погуляли по холмам; в связи с нерабочим днем там полно народу на тропе. Ну и олешки тоже шныряют.
Делать сегодня как бы нечего; лепота; так что я сидел разбирался с 12-й главой; писать ее в каких-нибудь доксах нет смысла, в ворде тоже; стал писать прямо в эчтиэмэле со вставками latex и диаграмм. Диаграммы у меня скриптом все рендерятся и вставляются; ну и еще нарисовал заодно что-то вроде макроса для markdown, чтобы всю мою хренопень писать компактно и читабельно в сорсах, а в эчтиэмль и в последующий пидиэф там уже софт преобразует. Блин, вот. На скале все, конечно.
Ну а шевелиться-то надо. И вот выдвинули холодильник, и я вскрыл стенку, и убедился, что дверь здесь поставить можно. Будем перестраивать кухню следующим. Как книжку закончу, и как слайды к кодекампу да к урокам да, запасные, к стрейнджлупу (вдруг там в анконференс прорвусь) заготовлю. Т.е. к зиме.
На улице жарища, 101 градус по фаренгейту; в доме же постоянные 73, так что кондиционер нам нафиг не нужен.
Поработал над главой (и над скриптом), потом подсыпал песка на патио, щели забить песком, а то муравьи все повытаскивали за весну. Вот им, на зиму укупорка.
Как солнце зашло за дом, вышел на дек, валяюсь тут на диване да работаю - да еще посматриваю видео про Эрланг; Максим Лапшин славно гонит.
Все на сегодня. К сожалению, нарисовал только полглавы; надо подумать, как программистам подать сопряженные функторы, чтобы не падали в обморок и не возмущались в духе "нас и так хорошо кормят".
Here's the related code I was writing a while ago:
private boolean factorsOnRight(final Cone factored) {
return new Predicate<YArrows>() {
public boolean eval(final YArrows h) {
return new Predicate<XObjects>() {
public boolean eval(XObjects x) {
return codomain().m(h, arrowTo(x)).equals(factored.arrowTo(x));
}
}.forall(domain().objects());
}
}.exists(codomain().arrows(factored.apex(), apex()));
}