clojure-italy

🇮🇹
richiardiandrea 2019-12-17T04:31:34.002300Z

Lol

helios 2019-12-17T07:42:02.002500Z

lol

Lu 2019-12-17T08:20:15.002900Z

☺️

reborg 2019-12-17T08:26:13.003300Z

Buon Lisp!

Andrea Imparato 2019-12-17T12:39:15.003500Z

buon lisp a tutti!

alan 2019-12-17T14:42:59.003700Z

Hoa!

alan 2019-12-17T14:44:37.005100Z

Non riesco a capire come fare per fare l'override del pretty-print di cider. In sostanza se faccio println di un ->DATASET tutto abbastanza ok.

(defrecord DATASET [id cols data])

(defmethod print-method DATASET [v ^<http://java.io|java.io>.Writer w]
  (let [id (:id v)
        cols (:cols v)
        data (conj (vec (take 5 (:data v))) \u2026)]
    (pr {:id id :cols cols :data data})))
; {:id RangeIndex(start=0, stop=20, step=1), :cols unnamed, :data [0 1 2 3 4 …]}
Ma se semplicemente valuto lo stesso record nella REPL di cider mi torna a risolvere tutta la lazyseq in :data

2019-12-17T15:23:09.005800Z

eh mi sa che e' u problema conosciuto

2019-12-17T15:27:23.006800Z

anche se a me sembra funzionare al momento

2019-12-17T15:27:33.007300Z

ma magari non ho capito bene cosa fai, screenshot?

2019-12-17T15:27:47.007800Z

ah cmq abbiamo un applicazione fullstack clojure che sta diventando un pachiderma

2019-12-17T15:28:15.009Z

si comincia a far fatica a lavorarci, qualche truccone per vedere cosa si mangia tutte le risorse?

2019-12-17T15:28:54.009800Z

-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
ClojureScript                  142           3505            529          18433
Sass                            62           3379            288          11320
Clojure                         87           1413            194          10304
ClojureC                       121            895             74           5168

2019-12-17T15:29:04.010100Z

e' grossetta in effetti pero' ce la dovremmo fare ancora

alan 2019-12-17T15:33:00.010300Z

Ho un record tipo {:id 1 :cols 3 :data (range 50)} dove in :data ci possono essere potenzialmente anche milioni di valori. Siccome è una lazy-seq vorrei evitare di realizzarla completamente se non richiesto e soprattutto di scassare REPL a destra e a manca. L'unica soluzione che mi è venuta in mente è cambiare il metodo di print del record

alan 2019-12-17T15:33:40.010600Z

Provato con http://clojure-goes-fast.com/blog/profiling-tool-jvisualvm/?

2019-12-17T15:37:10.011Z

eh si stavo giusto provando con quello

2019-12-17T15:37:27.011300Z

ahh ok

2019-12-17T15:37:59.011500Z

se usi pprint invece di pr aiuta?

alan 2019-12-17T15:41:07.011700Z

Nope, cioé cambia (println (myrecord)), ma se faccio myrecord nella REPL cider mi becco la solita rappresentazione

2019-12-17T16:32:18.012200Z

ci sta mettendo 60 anni a aprire la clojure application

2019-12-17T16:32:21.012600Z

con visualvm

2019-12-17T16:32:48.013300Z

mbp con 16GB di ram e sembra che sto usando un pentium 3 con 512 MB

2019-12-17T16:35:38.013900Z

in questi momenti mi viene voglia di provare Rust 😄