Изначально задача звучала так - сохранять и читать список опций (любого типа).
Для ее решения потребовался динамический тип, который умеет show и read, и при этом выглядеть результат show должен являться обычным кодом на хаскелле.
Короче хочется чтобы show (Foo 5) давал "(5::Int)", show (Foo 2.4) - "(2.4::Double)", show (Foo "abc") - "(\"abc\"::[Char]), а read это читал. первый я реализовал так
data VDyn = forall a. (Read a, Show a, Typeable a)
=> VDyn a
instance Show VDyn
where
showsPrec _ (VDyn a) = showString $
"("
++ (show a)
++ "::"
++ (show $ typeOf a)
++ ")"
А вот с read'ом напряг, тк тип записан после данных :( Если кто поможет буду очень признателен ;) (желательно парсить стандартными средствами как в GHC.Read)
По просьбам трудящихся выходит первая альфа-недоверсия пособия начинающего (и не только) ионщика на русском (пока не полностью) языке. Ес-но написано пока мало... Заранее извиняюсь за незнание Латеха, написал как получилось, так что пожелания и диффы просьба постить сюда ;) Идеи, дополнения и т.д. - аналогично ;) Разумная критика приветствуется.
Исходник - ftp://85.192.25.40/pub/ion/ion.tex
DVI - ftp://85.192.25.40/pub/ion/ion.dvi
Разная ерунда в той же папке.
Программки.
Удобная софтинка для рисования двумерных фракталов (систем Линденмаера) типа кривой Коха (на gtk/cairo) http://haskell.galois.com/~paolo/nymphaea/ Аналогичная программка для трехмерных L-Систем (opengl) - http://www.elis.ugent.be/~kehoste/Haskell/HaskLS/ Моя поделка для рисования 3d фракталов (glut) (немного кривая т.к. писал на скорую руку вчера вечером) - ftp://85.192.25.40/pub/frac3d.hs
Поменял уже множество прог с гуем на консольные, чем очень доволен ;)
Теперь дело дошло до mail клиента. Сейчас у меня Thunderbird с хорошо настроенным спам-фильтром (признаки спама подбирал сам по разным полям сообщения). В нем мне не нравятся разве что тормозной и кривой (не понимает хоткеи в русской раскладке) гуй, и примитивные настройки фильтров.
Попробовал поставить Mutt, слил чьи-то конфиги цветов и офигел - там было почти 2400 строк ;)
Вот думаю, стоит ли переходить и какие у Mutt основные преимущества?..
PS Если у кого есть _светлые_ темы для сабжа - поделитесь плиз ;)
Еще давно слышал про сабж, связано было с фракталами... Годов мне тогда было мало, так что ниасилил (отложил изучение на потом) =) Далее кто-то сказал про существование теории, в которой наше пространство Pi-мерное о_О
Пытался сам понять что есть 2.5-мерное пространство ;) Препод в универе сказал что в таких теориях определение размерности дается подругому (если кто помнит приведите плиз ;)) Может кто-нибудь знает хорошую литературу по предмету (неплохо бы на русском)?
Хотелось бы также узнать ваше мнение по поводу применимости этих теорий в физике (только спокойно, без упоминания устройства для получения CH4 ;))
Поставил xorg 7 из sid'а, udev и ядро 15-е ради интереса... Все вроде бы нормально, но вот при вертикальном скролле в галеоне Xorg начал жрать 99% cpu и конкретно подвисать, думал что проблема gecko, но нет - в dillo все то же самое, хотя обычные списки (например в synaptic'е) прокручиваются вообще без тормозов. С 14-м ядром все было нормально, я бы может и вернулся, но новый udev требует >=2.6.15, менять на старый не охота ;)
Набралось уже несколько примеров кода, компилируемых/интерпретируемых по разному - к примеру hugs будет пытаться найти last [1..] итеративно практически не расходуя память, а ghc с любой оптимизацией или без нее - рекурсивно, съедая 1 гб памяти секунд за 5. Другой пример ghc переделывал в итерацию с -O0, но оставлял рекурсию с -O1 и -O2 (если надо могу выложить код).
Хотелось бы узнать, из каких соображений ghc оставляет рекурсию, и какие опции на это влияют (копание по документации успехом не окончилось), т.к. я подумываю, стоит ли реализовывать BSP деревья сложных моделей на нем.
Проблема переключения раскладок в Ion3 до сегодняшнего дня у меня решалась запуском монструозного gnome-settings-daemon, отвалившегося после обновления иксов до 7.0 =)
Повторно перепробовав xxkb и прочее, понял что готовое решение найти вряд ли возможно - с любыми опциями глюки были недецкие ;)... Залил исходники xkbind, повозился с отладкой и решил проблему (иного выхода в общем-то и небыло ;)).
Пропатченный xkbind.c тут - ftp://85.192.25.40/incoming/xkbind.c
Сам xkbind можно залить с sf или ftp://85.192.25.40/incoming/xkbind-2005.01.04.tar.gz
Детали. На самом деле всё оказалось элементарно - вызов функции XkbLockGroup происходил только при NotifyNonlinear, а теперь стал еще при NotifyAncestor.
P.S. Под иксы никогда не писал так что что означают эти Ancestor'ы - хз ;)
За семестр не записал ни одной лекции по матану (скучно там было ;)). В прошлом тоже особо ничего не слушал, учил всё по Никольскому - имхо хорошая книжка, только дифуров нету... В общем, интересно узнать, какая книжка вам понравилась по сабжу.
Есть ли возможность заставить mod_ext_filter прогонять через фильтр (мою программу на хаскелле) вообще все (включая и бинарные) файлы? Пробовал к примеру выставить intype в image/jpeg - вообще ничего не фильтрует... Может это какой-нибудь еще мод умеет?
Вопрос родился после неудачных попыток поритровать http://sizeof.livejournal.com/23169.html ;) Пробовал и в utf и в кои. Кстати gnat эту самую кои отлично переваривал.
Погуглив минут 20 ответа не нашел, в манах ничего нету...
Как привести скроллбары от Xaw3d в номальный вид? Какие параметры отвечают за них в Xresources? Нужно что-то наподобие shadowThickness чтобы в единицу выставить.
Или может отрубить их вообще?.. Но тогда неудобно работать мышой в ecb т.к. фокус за ней не следует... Кстати модель фокуса как изменить? ;)
Наконец-то выкинул gnome-settings-daemon из .xsession . Тут же возникла проблема с раскладкой, которая частично решилась через настройку xkb в xorg.conf, однако осталось много чего неясного - (1) как сделать раскладку зависящей от текущего окна? xrus -perwindow в ion'е глючит и переключает ее когда как причем рандомом (2) как добавить временный переключатель раскладки (переключает пока держишь) (очень удобен в техе)? (3) повесил индикацию раскладки на scroll lock, переключение - на caps, но при нажатии последнего загораются оба индикатора - и скрол и капс...
Кто-нибудь знает по каким принципам эта штука [WPaneWS] работает (напр. как определяет какое окно куда засунуть), и где достать мануал? Или все-таки придется самому сорцы ковырять?..