Fork me on GitHub
#clojure-russia
<
2016-03-11
>
savelichalex05:03:53

@larhat: как это нет) все там есть) другое дело что в таком стиле там писать не так удобно как в clojure)

artemyarulin06:03:17

народ - а можно как-нить подгрузить функцию во все сессии репла? Чтоб глобально было доступно везде, хочется наклипать с десяток функция для дебага, но неймспес импортировать не охота да и не канонично

niquola06:03:06

Можно инжектить через lein

artemyarulin06:03:44

это которые profile, туда смотреть да?

niquola06:03:29

Вроде через vinyasa

larhat07:03:56

@savelichalex: в книге про лямбда исчисление ничего нету

artemyarulin07:03:42

@nicola: Спасибо, посмотрю

andfadeev07:03:40

@artemyarulin: а в user.clj не вариант?

rmuslimov07:03:20

подскажите, а есть такая функция из стандартной либы что делает (fn [f] (f))

rmuslimov07:03:33

что то типа identity

oxgrouby07:03:47

как вариант может apply с nil'ом во втором аргументе, но вот зачем это нужно... Интересно

artemyarulin07:03:56

@andfadeev: user.clj подгружается всегда в репл? Хм, позырю тоже, спасибо

rmuslimov07:03:21

@oxgrouby: (cp/pmap utils/net-pool #(update % :source (fn [f] (f))) item))))

rmuslimov07:03:07

в :source лежит функция которую стоит рассчитать

rmuslimov07:03:41

ну с apply получается только если (apply f nil) а просто apply нельзя

niquola07:03:42

Это баг apply - можно контрибьютить ;)

rmuslimov07:03:01

мой пример сверху наверное проще читать так: (map #(update % :source (fn [f] (f))) pool)

rmuslimov07:03:13

@nicola видимо да simple_smile

andfadeev08:03:51

(map #(update % :source #(%)) pool) может так?)

andfadeev08:03:56

жесть конечно

andfadeev08:03:29

user> (map #(%) [(fn [] :qwe) (fn [] :asd)]) (:qwe :asd)

rmuslimov08:03:48

@andfadeev: там надо в именно атрибут :source подменить конечно что-то вроде (map #(update % :source apply) pool) было лучше

rmuslimov08:03:22

а ну и вложенные #(#(%))

rmuslimov08:03:24

нельзя

dottedmag08:03:40

Первым заданием оказалось попатчить и собрать тестилку, чтобы она игнорировала файлы вида .#foobar.java, которые создаёт Emacs :)

niquola10:03:13

Всеж для java наверно идею лучше использовать. Я пытался emacs интегрировать с eclipse - так себе ;(

andmed10:03:40

плюс за идею

andmed11:03:55

"Or very weak"
18   (= __ (filter (fn [x] true) '(:anything :goes :here)))
не очень понятно с символами. в лиспе лист он и есть лист. а здесь если опустить single quote перед перечислением, лист возвращает только :here

andmed11:03:00

ага, correction все понятно - мы исключаем evaluation

fxposter11:03:21

'(:anything :goes :here) == (list ':anything ':goes ':here) == (list :anything :goes :here)

petr.myain12:03:55

Пробовал распарсить html на Clojure - я новичёк и по ходу своих попыток написал заметку: https://pqr7.wordpress.com/2016/03/11/parse-html-clojure/ - посмотрите, может что добавите, посоветуете?

artemyarulin12:03:25

@petr.myain: Посмотрел по диагонали, все пучком. Я после знакомства с зипперами эту бы задачу решил именно ими - перегнать HTML -> xml tree любым парсером в not-strict режиме (html жеш), далее http://clojure.github.io/data.zip/ и пошло поехало. Потребует чутка больше времени по началу, но зипперы это мега мощная штука и можно подстроить под именно свои нужды как тебе нужно. Не уверен, но может даже одна из этих либ так и работает (enlive вроде), хотя мож и нет

petr.myain12:03:43

да, видел зипперы между делом, но пока не углублялся

artemyarulin12:03:20

я сначала парсил как обычно c xpath, но как зипперы нашел - все дропнул и переписал на них. Крутая штука в них еще что по сути зиппер это абстракция - почти тривиально поддержать любой другой источник

andmed13:03:17

Можно где увидеть случаи изспользования zippers для парсинга? Иногда надо. Я использовал Jsoup для этого. Селениум с его xpath никогда не нравился. JS не критичен

andmed14:03:05

Jsoup просто прелесть

artemyarulin14:03:19

хм, про парсинг хтмл непосредственно не знаю, но вот тут отлично описываются все прелести зипперов http://blog.korny.info/2014/03/08/xml-for-fun-and-profit.html по сути для HTML все тоже самое - разве что распарсить его надо любым xml парсером в not-strict режиме

andmed14:03:26

ну нее... там весь сок в (готовых) селекторах для Дом-модели

potapenko14:03:10

Jsoap ага, супер. можно еще подковырять сырцы. Я например добавил айдишники каждой ноде, чтобы диффы сделать для html.

andmed14:03:36

все-таки суп, не соп (мыло) они обижаются))

potapenko14:03:38

Все html-diff тулы были бледны в сравнении с этим.

mike_ananev14:03:22

@artemyarulin: уже не впервый раз слышу про рекламу зипперов. ни разу еще не использовал их. можешь привести идиоматичный пример их использования? (ссылку на пример). никак не могу понять в чем их прелесть

artemyarulin14:03:01

@mike1452: зипперы гибче, я могу использовать всю мощь кложуры в этом деле. Тот же xpath поддерживает с пару десятков функций, что конечно сильно ограничивает. Пример.. хм.. сек, сча позырю у себя

oxgrouby14:03:25

ну и, к слову, зипперами в разы медленее, если важно

artemyarulin14:03:39

дада, скорость там не ах - перебор хренли

oxgrouby14:03:26

я помню тоже тестил всякое, когда типа-краулер пилил

oxgrouby14:03:29

остановаился на jsoup

oxgrouby14:03:36

самое быстрое и всё что надо есть

andmed14:03:32

... и если очень надо js то рендерится в селениуме, и передается опять же jsoup

andmed14:03:59

интерактива только нет

oxgrouby14:03:29

а что ты имеешь в виду под интерактивом?

andmed14:03:35

где богатый js ajax, и нужно свайпнуть/пролистасть/кликнуть и тп лично мне было лень запросы на сервер вручную выковыривать

oxgrouby14:03:49

а, понял

oxgrouby14:03:31

ну да, тут селениуем наверное. Хотя мы мыслякали на тему фантом-жс'ов, но дальше идей не пошло

artemyarulin14:03:47

https://gist.github.com/artemyarulin/a162906fb2de6c9f62a1 накопипастил с коментами про зипперов чтоб было представление что они могут

andmed14:03:06

phantomjs один из движков для селениума, headless впрочем мы кудато в оффтоп

mike_ananev15:03:45

@artemyarulin: посмотрел, спасибо!

mike_ananev15:03:52

буду думать как применить

rm18:03:56

фантом хорош, и почти в любом случае лучше использовать его, чем html-краулер (потому что почти везде js в неожиданных местах)

andre20:03:31

не знаю, может было уже, но решил все-таки посмотреть - Марсианин, а там наши любимые скобочки показывают https://twitter.com/puppybits/status/689072517886177280

andre20:03:12

и да, муть страшная, чуть больше половины осилил, и откуда только берутся эти рейтинги

andre20:03:48

и зачем только они столько nil передают, может apply у них тоже с багом simple_smile

andmed21:03:48

смотрел. Риддли опустился. Куда там до Чужого

andmed21:03:44

выращивать картофель закрывшись от марсианской атмосферы полиэтиленом, учиться надо)) в целом ощущение что оскар без патриотизма сейчас выиграть трудно. У Hateful eight Тарантино тоже, в кровосмесительном вестерне, ах-ах вдоль всего сценария, письмо от Линкольна.... Но Тарантино-то прикалывается -- только в конце письмо читается вслух. Мол, хотели -- получайте)

potapenko21:03:01

@andre: это настоящий код из библиотеки NASA. Ссылку лень искать. На гидхабе есть. И это не clojure. Библиотека для тестирования аппаратуры кажется.

andmed22:03:01

@potapenko: ого. все-равно разгильдяи. У Тарантино в кадре разнесли в щепки подлинную гитару 19 века. Подменить забыли. Теперь музей гитар киношникам гитары не дает https://en.wikipedia.org/wiki/The_Hateful_Eight#Guitar_incident

potapenko22:03:27

А по мне норм кино. Шедеврами вообще не радуют в последнее время. Тарантино хоть гитару сломал 19 века, а косяков в фильме вагон. Как они ворота в конюшню в метель закрывают - это же спектакль-утренник детского сада.

andmed22:03:00

Ага. Еще мне нравится, когда с метра стреляют в пояс, а брызжет из груди. А так да, я его в фоне раза три уже того

rmuslimov22:03:06

коллеги, что то вы не о том уже 😉