О хакерском подходе к программированию
Sep. 6th, 2009 02:09 pmПрекрасная иллюстрация к тому, что такое настоящий хакер. В последнем номере TUGboat статья Дениса Рёгеля (Denis Roegel, Spheres, great circles and parallels, TUGboat, 30 (1), 80--87, 2009). Он рисовал параллели и большие круги на сфере в программе METAPOST, и для точного построения ему нужна была трехмерная векторная алгебра. Но в METAPOSTе нет типа данных "трехмерный вектор". Рёгель заметил, что программа умеет раскрашивать рисунки, и цвет точки задается тремя параметрами в пространстве rgb (т.е. смешением красного, зеленого и синего). После чего он спокойно пишет:
let vector=color; let Xp=redpart; let Yp=greenpart; let Zp=bluepart; def dotproduct (expr Vi, Vj)= (Xp(Vi)*Xp(Vj) + Yp(Vi)*Yp(Vj) + Zp(Vi)*Zp(Vj)) enddef; def vecproduct (expr Vi, Vj) = (Yp(Vi)*Zp(Vj)-Zp(Vi)*Yp(Vj), Zp(Vi)*Xp(Vj)-Xp(Vi)*Zp(Vj), Xp(Vi)*Yp(Vj)-Yp(Vi)*Xp(Vj)) enddef; def norm(expr V) = sqrt(dotproduct(V,V)) enddef; def normed(expr V) = (V/norm(V)) enddef;
и дальше строит свои чертежи.
Вот это и есть Настоящее Хакерство(TM).
no subject
Date: 2009-09-06 06:27 pm (UTC)... Страшнее ведьмы только ведьма под рутом ...
no subject
Date: 2009-09-06 06:32 pm (UTC)Ну это хорошо известный [в узких кругах] хак, да.
no subject
Date: 2009-09-06 06:38 pm (UTC)no subject
Date: 2009-09-06 06:56 pm (UTC)no subject
Date: 2009-09-06 07:04 pm (UTC)no subject
Date: 2009-09-06 07:11 pm (UTC)no subject
Date: 2009-09-06 07:16 pm (UTC)no subject
Date: 2009-09-06 07:18 pm (UTC)см. http://en.wikipedia.org/wiki/Color_vision#In_other_animals
no subject
Date: 2009-09-06 07:18 pm (UTC)no subject
Date: 2009-09-06 08:50 pm (UTC)no subject
Date: 2009-09-06 08:56 pm (UTC)Завидую, потому что, наверно, я б не догадался.
no subject
Date: 2009-09-06 08:58 pm (UTC)Впрочем, не только потому.
no subject
Date: 2009-09-06 09:39 pm (UTC)no subject
Date: 2009-09-06 10:00 pm (UTC)http://en.wikipedia.org/wiki/GPGPU
no subject
Date: 2009-09-06 10:47 pm (UTC)если все необходимые векторыные операции всё равно определяются вручную?
т.е. в чём цимес использования rgb?
no subject
Date: 2009-09-06 11:16 pm (UTC)no subject
Date: 2009-09-06 11:17 pm (UTC)no subject
Date: 2009-09-07 01:32 am (UTC)На самом деле количество типов рецепторов и количество базовых цветов в гамме, используемой в производственных целях, совпадать совершенно не обязано. Ну любил Гёте число 3, что поделаешь.
no subject
Date: 2009-09-07 04:04 am (UTC)no subject
Date: 2009-09-07 04:06 am (UTC)no subject
Date: 2009-09-07 06:49 am (UTC)no subject
Date: 2009-09-07 09:30 am (UTC)no subject
Date: 2009-09-07 11:29 am (UTC)no subject
Date: 2009-09-07 12:41 pm (UTC)no subject
Date: 2009-09-07 05:15 pm (UTC)no subject
Date: 2009-09-07 06:18 pm (UTC)no subject
Date: 2009-09-07 06:22 pm (UTC)А Вы угадайте, кто её написал :)
http://www.ctan.org/tex-archive/graphics/metapost/contrib/macros/3d/
no subject
Date: 2009-09-07 06:32 pm (UTC)no subject
Date: 2009-09-07 06:46 pm (UTC)Я правильно понимаю, что, в таком случае, этот "хак" - "языковой", а не алгоритмический?
no subject
Date: 2009-09-07 06:54 pm (UTC)no subject
Date: 2009-09-08 05:32 am (UTC)Вся наша программистская жизнь сплошные такие хаки. Хак как подвиг: затыкание дыр в чьём-то головотяпстве.
no subject
Date: 2009-09-10 08:42 pm (UTC)Меня почему-то радует то, что матрицы в разных дешёвых камерах, например, в мобильниках, устроены по тому же принципу, с четыремя типами рецепторов. Причём тот, который хорошо видит освещённость, не закрыт фильтром и поэтому отлично видит инфракрасный свет, от пультов дистанционного управления или новых оптических мышек. Телефон его интерпретирует как бело-голубой, что характерно, так же как глаз -- свет недостаточной яркости.