stackoverflow.com — какое-то неполное и костыльное решение, к сожалению.
cs405921.vk.me А погодка подвела, и я весь в говне и в тапки накидало до хлюпанья.
Все это лишний раз убедило меня, что фикс таки надо собрать. И еще — задний тормоз говно по определению. Особенно слик по мокрому асфальту на этой глючной торпедо.
Тока шо катанули по харькову, я отмутил сингл на стартшоссе мимикрирующий под фикс (торпедо-втулко) Расчет 52x19. Такое: Все это лишний раз убедило меня, что фикс таки надо собрать. И еще — задний тормоз говно по определению. Особенно слик по мокрому асфальту на этой глючной торпедо.
(defun filtered (&optional (filter-condition t)) (maphash #'(lambda (k v) (if (eval filter-condition) (out-object v))) *list*) я правильно, понял, нет способа передать условие, которое проверяет k или v в эту функцию(так как filter-condition не находится в лексическом окружении k и v). Такое можно сделать только макросом (с подстановкой условия) или функцией вместо условия?
сделал элементарный REPL, и он, зараза, выводил результат формы только после ввода следующей. Говно. Починилось (force-output).
Долго думал чем как можно сделать хранение данных на диске. Вариантов вроде много: можно писать формы print with-standard-io-syntax и читать их. Можно заюзать какой-нибудь интерфейс к СУБД. Можно какую-нибудь object persistence библиотеку. Но:
print не прокатил с объектами;
elephant не работает с sbcl 1.0.55;
sql и база в нагрузку мне не подходят;
либы старые как говно мамонта и мало поддерживаемые;
итого: заюзал пока cl-prevalence, по-крайней мере оно пишет и оно читается. Если что можно будет отловить swizard-а, взять его форк и поспрашивать.
Захотелось проитерировать слоты объекта. Опять какие-то костыли типа closer-mop:compute-slots, причем возвращают они объекты-слоты, типы которых насколько я понял привязаны к реализации. А захотелось мне этого из-за того, что родной format (насколько я понял) не умеет выводить поля объекта итеративно (~{~}).
Я уже молчу, что в aref вначале список, потом индекс, а в nth наоборот. С gethash и slot-value ситуация аналогичная. Многие жалуются на бардак в стандартной библиотеке PHP, но тут я особого порядка тоже не наблюдаю.
Кстати, а есть какие обобщающие функции/макросы/библиотеки, которые сами подставят правильный map/accessor/еще что по типу данных?
github.com Вроде работает, только я незнаю что делать с RUDE-DOM::ELEMENT. Как из него чего выковырять? Гуглеж ничего особо не дал :(
решил я побаловаться с css-selectors Парсер cl-ppcre
Код читает файл, выкуривает оттуда дату/время, процесс, пид, хост и сообщение, записывает в один массив хосты (он у меня один) в один — название процесса ( у меня вышло около 25), в один массив дату, сообщение, индекс хоста, индекс процесса, pid. Потом все это пишется в лиспофайл (with-standard-io-syntax).
Итоги:
размер лога — 158602612 (1250000 записей)
размер итогово лиспофайла — 219861450
Время парсинга — 45 секунд.
Время записи лиспофайла — 45 секунд.
Потребление памяти (RES) — ~1050 mb.
Потом этот файл загружается в sbcl:
Время загрузки — около 55 секунд,
Время сортировки по сообщениям:
(sort a #'string< :key #'(lambda (record) (getf record :message))) — 22 секунды.
Время сортировки по процессу (типа int foreign key): — около 1 секунды.
Время фильтрации: мгновенно (явно меньше секунды).
Железо — core 2 duo t7250 2gHz. Иксы и всякая хрень запущена, единственное что не давал свопить, закрывая всякие браузеры (рамы мало, всего 2gb).
Gentoo amd64-3.2.12.
Теперь вопрос — как бы побороть ограничение в лице памяти? Есть ли какие-то подобные штуки со сбросом данных на диск? Есть интересные статьи о подобных вещах?
В тред кастуются @archimag и @lovesan.
cs9997.userapi.com — ПОРВАЛО
#1806100 сегодня: share.devel.asmer.org.ua
в продолжение к Sorry, response 'noo' not understood. [Yes/No] no
John Doe: Hello Ivan, my name is John
...
John Doe: Hello Ivan, it's me John
так и хочется написать: yeah, Captain.