to post messages and comments.

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

Думалось, что категории Objective-C аналогичны помощникам классов (class helpers). Но нет. Помощники классов изменяют субъективное восприятие класса, а категории объективно изменяют класс. Не знаю, как относиться к такой возможности. Переменных объекту они всё равно добавить не могут. Но при этом методами категорий можно заставить класс реализовать протокол. Лучше ли это обычных помощников классов и обёрток, реализующих интерфейс?

Получил профиль в РИНЦ наконец
Что-то там перестраивалось долго, раньше письмо даже не приходило на подтверждение, а вот неделю назад ещё раз попробовал зарегистрироваться, и пришло, и сейчас захожу, а у меня снежинки появились (e — значок просто eLibrary, как у читателя, а * — значок РИНЦ, для авторов). Но не сильно много я могу подредактировать.

Вот, допустим, публиковал я недавно статью. Она ссылается на другую мою статью. И эта ссылка не засчиталась. Понятно, что с точки зрения наукометрии мне это никакие индексы не накрутит, но а почему бы в eLibrary не оформить это как нормальную внутреннюю ссылку? PDF — тоже неплохо, но в подборки не добавишь. И обратная ссылка не появилась! Буду в следующий раз знать, что если писать URL, то лучше на eLibrary. Может, так лучше распарсится.

Далее, ссылаюсь я на не свою статью. Думал, и ей цитируемость увеличу, а то чего это там трёшка стоит, и в обратные ссылки попаду, потеснив публицистику. Фиг там! Оформлено тупо как текст, ну разве что фамилии автоматом распарсились и ведут в поиск.

Ну ладно, это так опубликовано издательством было. Хотя я заплатил и за обработку списка литературы тоже. Текст-то подправили под ГОСТ, а в РИНЦ загнали без сопоставления. Я думал, теперь, как признанный автор, получу права на свои статьи и заполню пустоты. Нет! Не могу список литературы подредактировать. Всё, так оно и останется теперь, похоже.

Ещё одна проблема. Вот тут не засчитан нормальным образом текст статьи. Универ его не залил в eLibrary, а то, что я без профиля автора ссылку добавлял, отобразилось в «Ссылки на полный текст этой публикации, добавленные читателями». Это видно, если открыть страницу статьи, но в общем списке видно только значки. Зелёный — значит, текст в свободном доступе на eLibrary. Жёлтый — надо заплатить на eLibrary. Серый — значит, можно скачать с внешнего ресурса. Ссылку, добавленную «читателем», в общем списке не видно. Там пустота, как будто текст вообще недоступен. Я ожидал, что теперь как признанный автор я либо залью в eLibrary, либо ссылку так переделаю, чтоб хотя бы серый значок был. Тоже нет! Не могу. Ещё раз добавить ссылку не помогает.

E-mail со сдохшего bluebottle.com никак не выправить. Рядом с моим именем стоит значок письма, и система берёт e-mail не из моего профиля автора, а из статьи. В одной статье он есть, в другой — нет, и я никак не могу настроить так, чтобы он был везде и правильный.

Вообще всё, что я смог — это рубрику ГРНТИ подредактировать. Если нажать Ctrl+F и написать «изменить», это единственное совпадение на странице.

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

До чего же это сложнее, чем в вики ссылки ставить. Как будто из гаубицы по воробью целишься.

Закончил обрабатывать сканы: #2891873 То, что я загружал, — это Generic raw book zip

Практически все страницы повёрнуты и спозиционированы автоматически в МатКАДе, кроме трёх в начале и одной в конце, где нет нумерации, по которой как по самому выступающему элементу можно позиционировать страницу. Позиционирование заключалось в том, чтобы найти, где на повёрнутом скане полезная часть страницы, откадрировать скан и обратно добавить поля абсолютно белого цвета, чтоб без теней или неправильного кадрирования, которое сделал тот, кто сканировал.

Линейкой мерил отступы на реальной книге и добивался, чтоб в обработанных сканах были примерно такие же расстояния. Вообще ширина книги 190мм, но если взять 180мм, то левые и правые страницы, расположенные друг по другом, получается, будут иметь отступы в одних и тех же местах. Так что сделал 180мм. Обложку пришлось немного аффинно сжать, ведь она-то напечатана на все честные 190мм. Но в остальном удалось воспроизвести достаточно достоверно. Правда, вот смотрю я PDF и вижу, что он считается 90мм в ширину, хотя я в PNG проставлял 300dpi pnmtopng'ом при конвертации из BMP от МатКАДа. То есть, Интернет Архив в любом случае ждёт 600 dpi.

Думал, в Swift будут утилиты на Swift, а оказалось, что нет (см. #2891656). Ладно, посмотрим, какие есть ещё варианты. У нас же мостов для Java есть целых три штуки. А как там парсинг сделан?

Первым в голову приходит Rococoa. И там парсинг не сделан никак. Согласно документации, надо писать привязки вручную.

Про Apple Cocoa-Java известно мало, потому что он с закрытым кодом, но оттуда можно взять ручные коррекции, написанные прямо в Apple. Похоже, полновесного парсера типа GCC там нет. clang в те времена не было.

Порадовал GNUStep JIGS. Там есть и парсер, и ручные коррекции.

ВП СССР О физкультуре и спорте
Каким целям служит Олимпиада. Михаил Величко

Жуйк, а у тебя тоже бомбит от того, сколько людей болеют не за то, сколько Эльбрусов произведено, не за то, сколько документооборота переведено на свободные форматы, не за то, насколько российское шифрование внедрено в браузеры, не за то, сколько сейчас стало абсолютных трезвенников, не за что угодно, что имеет значение, а за вот это вот. За так называемый спорт высоких достижений. Каких достижений. Потеряет спортсмен форму — и по-новой всё начинай. Что это за «достижение» такое интересное? И как эти достижения связаны с реальной жизнью. Тяжелоатлеты что, развивают услуги грузчиков, а легкоатлеты — курьеров? Вот ГОСТы, технологии, изобретения, научные методы — это да, это нередко на века.

Теперь пришло время, чтоб бомбило у квасных патриотов. Лично я удовлетворён. И такой хороший повод МОК нашей стране даёт, не потеряв лицо, покинуть это зазеркалье.

Думаю, что бы лучше взять для парсинга Objective-C API? То ли Рагель, то ли парсер комбинатор, то ли Виссером вдохновиться.

Решил подсмотреть, как сделано в Swift. А там — по-чёрному работа с clang идёт. Опыт BridgeSupport по переходу на clang был не самым удачным. С одной стороны, больше стало распознаваться, с другой стороны — стало фиг собрать. Moving target, понимаешь. А уж из-под винды это пытаться запустить я б не стал особенно сильно пытаться. Зря не пошли по пути аналогично COM TLB, SOMobjects IR, GObject IR и WinRT WinMD, в общем, как у всех остальных. BridgeSupport прямо-таки прокладывал дорогу в направлении здравомыслия. Но нет, теперь надо как-то по особенному подпрыгивать, чтоб всего лишь парсить API.

cilabs.org с 2000х принадлежит сквоттерам. У нормальных-то владельцев руки не из того места поддерживать работу. Это же ой как сложно лет десять хотя бы запарковать домен (как openlina.org), я уж не говорю про хостинг сайта, не сильно отличающегося от статического. А то вдруг в России за два года не успели подключить Интернет, пошариться по нему, узнать об этом сайте, оценить важность, додуматься до мысли, что надо бы всё скачать, и-таки скачать всё важное.

Ну как вот так пару лет подержать сайт и грохнуть? Взялся за гуж, не говори что не дюж. Полудурки какие-то, у которых всё из рук валится. Включая проект, под который был сайт, что характерно.

Чтоб сквоттеры по 17 лет домен держали, это шок. Нефиговые деньги у домейнеров должны крутиться.

Давно не проверял, ну что там с Частным пионерским 3. Оказывается, была премьера. Но не в моём городе.

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

Катакомбы — это из терминологии С.Г. Кара-Мурзы, если что.

Ещё заметил, что конвертация из чисел с плавающей точкой в 0…255 делается не всегда верно. Если брать Floor (X 255.0), то, чтобы получить 255, Х должен быть строго 1.0, а 0.999 — это уже 254. Если брать Round (X 255.0), то, чтобы получить 255, X должен быть в интервале от 509/510 до 510/510 в то время как, чтобы получить 254, X может быть во вдвое более широком интервале от 507/510 до 509/510. Чтобы сделать честную конвертацию, надо взять Min (255, Floor (X * 256.0)). Но так мало, кто делает.

Вообще говоря, остаются нечестно поделённые инфинитезимали. Они, конечно, инфинитезимали, но получить их вручную как коэффициент в формуле проще простого.

Для них можно написать такое:
if X <= 0.5 then
return Floor (X * 256.0);
else
return Ceiling (X * 256.0) — 1;
end if;

3/4, например. Для честности ему бы следовало быть 191, а не 192. Только 1/2 нельзя сконвертировать честно.

Неправильная и правильная обработка изображений
До вчерашнего дня не знал, что RGB, который на мониторе, в CSS веба и вообще везде — официально нелинейный. Думал, что подстройка гаммы — это не более, чем настройка на мониторе. Но нет, у стандартного RGB (sRGB) приблизительно степенной закон 2.2. И половина между 0 и 255 — это 187. Так что без конвертации в/из линейный RGB ничего почти нельзя корректно сделать. Даже в градации серого нельзя корректно свести. И нас таких, не в курсе про нелинейность, похоже, очень много.

Альфа-канал такой конвертации не подлежит, во всяком случае, в PNG. Но тогда стандартных 8 бит не хватит по разрядности, чтобы иметь возможность получать при наложении полупрозрачного белого на чёрный или наоборот все оттенки серого в sRGB. По крайней мере, для альфа-канала высокая разрядность — это не блажь, а необходимость.

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

По сравнению с sRGB, диапазон расширен в восемь раз, от -0,5sRGB до 7,5sRGB, что позволяет представить в этом формате весь диапазон доступных восприятию цветов типа суперзелёного. И, начиная с Windows Seven, эти цвета по HDMI с соотвествующими HDMI мониторами и видеокартами можно даже отобразить на оверлее или на полном экране средствами DirectX.

Как-то странно ведёт себя система служб Windows. Стоит у Squid на первый сбой перезапуск, на второй сбой — перезапуск, на последующие сбои — перезапуск. Перезапуск службы через 1 минуту. Проверяю, почему все сайты упали, а там Squid ничтоже сумняшеся не работает. И не поднимается через минуту. Вручную поднял — всё заработало. Мне что, как на Линуксе, надо net start в планировщик поставить?

Поворачиваю в МатКАДе сканы страниц оптимальным способом. Оптимальность определил так: если взять горизонтальные линии и наклонить под выбранным углом, а потом усреднить пикселы на каждой линии, то такие усреднения вдоль вертикального направления должны образовать картину, как можно более похожую на прямоугольный импульс. Похожесть на прямоугольный импульс определяется как сумма квадратов разности усреднённых значений на соседних линиях. Чтоб из-за разного кадрирования не возникали добавки, на всех углах берутся только такие линии, которые проходят через общий для всех вертикальный отрезок, расположенный посередине скана и отстоящий от верхнего и нижнего краёв так, чтобы в заданном диапазоне углов через него всегда можно было провести семейство наклонных линий, не выходящих за край. Поворот линий, вообще говоря, не используется, а вместо него аффинный сдвиг. Искать максимум начинаю с 0° и ±0,6°, потом рядом с максимальным из них проверяю ±0,25°, потом ±0,1°, потом ±0,5°. Дельты углов подобраны так, чтобы быть чуть внахлёст, больше, чем треть от предъидущего, но меньше половины, кроме последнего, который строго половина. Максимальный угол по модулю, таким образом, 1°, но такого реально не было, попадался максимум 0,8°. Результаты удивительно хорошо совпадают с тем, что можно циркулем намерить в ГИМПе.

Обнаружил, что в GIMP, если увеличить изображение сильно, под 64x, когда водишь по одному и тому же пикселу мышкой, координаты в статусе меняются. Они там координаты ближайшей границы между пикселами показывают. А я понавыписывал, и поди пойми теперь, в левой или правой половине пиксела был курсор, когда я записывал. Эх, теперь полсотни картинок ещё раз промерить надо перед тем, как забить обрабатываться в МатКАД.