Осилил defgeneric/defmethod и CLOS. Теперь распознавалки новых типов ссылок и их загрузчики будут добавляться быстрее. Anyway это говно пока всё равно будет в неюзабельном состоянии. А ещё хромает модульность и общее построение кода. Но это будет проще переписать когда таки появится хотя бы наполовину рабочий прототип.
*Common_LISP
Пстач, есть проблема. Существует сферический инсталлятор. Изначально рассчитан на UNIX-like ОС. Инсталлятор должен определить наличие уже установленной версии программы и при необходимости её удалить/обновить (или поставить, при отсутствии некоторой отметки). Как и где лучше всего положить файлик с метаинформацией ... more →
Если запихать настройки в hash-table, то оно смотрится явно лучше. Вот только никак не соображу, как лучше хранить опции для вызова архиваторов. Хочется как-то унифицировать процедуру вызова. Потом надо ещё будет подумать над тем, чтобы работа с временными файлами велась в /tmp, а не где попало. Потом можно будет ... more →
Начал думать над парсером realityLAPSE. Собсно, его написать не сложнее, чем для StopTazmo, но надо грузить много страничек для парсинга. Ессно, на файловой системе будет срач. Пора думать над нормальной организацией рабочих данных для программы. (Да-да, я начала написал парсер ссылок, а потом сообразил, что это ... more →
Сначала для настроек приспособил несколько переменных. Потом сообразил, что их можно организовать в список. Когда дописал инициализацию списка, то сообразил, что можно было бы использовать hash-table. А потом ещё вдруг дошло, что настройки можно хранить в домашнем каталоге. Блеать, ну почему я сразу не учёл таких ... more →
Скачал "Welcome to N. H. K.". Смотрю, WGet рапортует о 40-ка скачанных главах. Думал, что парсер поломался и распознал только 40 ссылок, а на остальных завалился. Посмотрел на страничку — действительно всего 40 глав. Это ок. :3
Алсо читаю "Good LISP programming style" от Peter Norvig и Kent M. Pitman. Они внезапно ... more →
Я знаю проблему лиспа. Дело даже не в том, что там много скобочек. Меня реально напрягает то, что простейшая функция в несколько строчек имеет СЕМЬ уровней вложенности. Ну, или я говно, да.
Внезапно пришёл к той мысли, что неплохо бы осилить макросы дабы шаблонизировать процесс написания грабилок разных сайтов. Как минимум неплохо бы шаблонизировать процесс создания временной рабочей директории, загрузки нужных страниц и записи линков в файл. Но чую, что опять всё сломаю. >_<
Код из кучи грязных хаков и CLISP-специфичных плюшек был короче и читался проще. :(
Куча CL'ных либ содержат такой говнистый недокод, что одно их упоминание вызывает желание или пользовать FFI или реализовать всё своими руками, только бы никогда не притрагиваться к этим поделиям.
Написал грабилку манги с http://www.stoptazmo.com/ на CL с использованием CLISP-специфичных плюшек. На очереди грабилка манги с http://www.realitylapse.com/ и http://ww.fakku.net/ . Хотя, в грабилке StopTazmo столько говна, что для начала я её перепишу слегка. Ну, чтобы народ совсем не обосрался, когда увидит код.
REGEXP в CLISP делает меня плакать. Ояебу почему, но regexp:match выдаёт какое-то говно и мне не удаётся повыдёргивать ссылочки со stoptazmo.com.
Почему-то тянет делать пиздато длинные имена функций. Алсо переписываю свою говнограбилку манги с сайта StopTazmo.com с bash-скрипта на Common LISP. Надеюсь прикрутить новых фич. Алсо работа с Git в Eclipse радует.
*Common_LISP is used by:
NIR
NIR
NIR