clojure-poland

greg 2021-06-29T11:51:38.000700Z

Czy w PL są jakieś meetupy offline/online Clojurowe?

fenoloftaleina 2021-06-29T11:52:51.001300Z

Offline w Krakowie był i może znowu będzie się dział w najbliższej przyszłości.

greg 2021-06-29T11:53:32.001400Z

Kto je organizuje? Nagrywane są?

fenoloftaleina 2021-06-29T11:55:40.001600Z

https://www.meetup.com/Krakow-Clojurians/

fenoloftaleina 2021-06-29T11:55:49.001900Z

Był jeden online. Nie nagrywamy.

pwojnowski 2021-06-29T12:31:59.006300Z

A probowal ktos z was implementowac rozne algorytmy w Clojure? Ja mam z tym problem taki, ze rozne algo opieraja sie na tym, ze lokalnie zmieniaja dane (np. tablice/liste itp.) i dlatego maja swoje wlasciwosci O(x), a w Clojure praktycznie wszystko jest na wektorach, mapach i listach, ktore maja swoj narzut czasowy (niby wiele operacji jest near-constant O(log32 n), ale to nie to samo co O(1)) - pamieciowy pewnie tez, ale nie wiem jaki dokladnie. Ale to moze byc tylko moj problem. 😉

pwojnowski 2021-06-30T07:46:34.011Z

Uzycie Transients na pewno pomaga, bo zapisy sa szybsze. Kiedys zaimplementowalem Insertion Sort w ten sposob: https://farenda.com/clojure/insertion-sort-in-clojure/ Chodzi mi wlasnie o takie algo jak sortowanie, grafy itp. Np. w sortowaniu jest duzo odczytow (i czasami zapisow), co zmienia zlozonosc obliczeniowa i jak sie o tym mysli, to nie jest standardowo O(n log_n) tylko dochodzi np. to, ze odczyty w wektorach sa log32 albo cos takiego. Moze to nie jest wielki problem i tylko ja to tak rozdmuchuje, a w praktyce, jak ktos potrzebuje super-wydajnosc, to uzywa np. tablicy albo struktur javy. Tak tylko pisze, bo moze cos zle rozumiem i moze ktos mnie poprawi. :thinking-face:

pithyless 2021-06-30T12:21:07.011300Z

Jak ktoś jest zainteresowany tematem, to klasyka literatury jest "Purely Functional Data Structures" Chris Okasaki. Za to w "History of Clojure" (3.4.1 - Persistence and Immutability), Rich piszę czemu właśnie nie korzysta z tych struktur tylko z HAMTs. Jak ktoś nie czytał paper, to gorąco polecam; dobra lektura dla inżynierów w dokonywaniu odpowiednich kompromisów. https://download.clojure.org/papers/clojure-hopl-iv-final.pdf

1👍
Piotr Roterski 2021-06-29T13:08:07.006600Z

nie robiłem tego, ale możesz w implementacji spróbować użyć Transient Data Structures https://clojure.org/reference/transients które są mutowalnymi odpowiednikami clojurowych struktur danych - ciekawym ćwiczeniem byłoby później porównanie różnicy wydajności pomiędzy implementacjami z użyciem transients i bez

pithyless 2021-06-29T15:44:27.007200Z

O jakich algorytmach mówimy? Ponieważ jak number-crunching to problem może nie jest O(1) tylko CPU vs GPU? https://neanderthal.uncomplicate.org/articles/benchmarks.html https://neanderthal.uncomplicate.org/articles/tutorial_opencl

2021-06-29T19:27:25.007800Z

nie ma problemu by użyć struktur javy, jeśli tylko chcesz

2021-06-29T19:27:47.008Z

nawet więcej, java w clojure jest o wiele bardziej używalna niż java w javie

2021-06-29T19:27:57.008200Z

na ratunek przychodzi doto

2021-06-29T19:29:31.008800Z

jak tylko coś się będzie święcić to piszę się w ciemno @pithyless

1👍
2021-06-29T19:36:37.009900Z

jakby nie było chętnych do pogadania o czymś, to mogę poopowiadać np o meanderze, choć w życiu o niczym nie opowiadałem

3👍
2021-06-30T13:47:54.011700Z

A coś większego z nim robiłeś?

2021-06-30T16:55:16.011900Z

meanderem? nie wiem kiedy zaczyna się coś większego

greg 2021-07-01T18:50:42.012400Z

danzig wygląda zachęcająco. Podoba mi się to podejście z meanderem w makrach 👍

2021-07-01T18:55:59.012600Z

To proof of concept bardziej, choć sam używam I poprawiam na bieżąco

2021-07-01T18:57:11.012800Z

Jestem za słaby i absolutnie nie potrafię prowadzić projektów open source ale wierzę i liczę na to że ktoś mądrzejszy np podłapie koncept

greg 2021-06-29T19:41:56.010400Z

Ja bym posłuchał

1👍
2021-06-29T19:45:20.010600Z

właśnie CI odpowiadam w innym wątku ; )