clojure-greece 2017-03-15

καλήμερα, ναι το είχα δει και εγώ πριν καιρό

btw τελείωσα ένα prototype με onyx αν ψήνεστε μπορούμε να κάνουμε κάτι με αυτό

ίσως μια παρουσίαση κάποια στιγμή

καλό θα ήταν να κανονίζαμε κάτι σύντομα 🙂 🙂

@stathissideris πως τα πας απο Java interop; μπορει να χρειαστω καμια γνωμη/συμβουλη

@greenonion παλιά ήμουν javάς, ρώτησε με ελεύθερα! :)

tl;dr θελω να παιξω με το apache beam το οποιο εχει java sdk και προσπαθω να καταλαβω ποσο feasible ειναι να χρησιμοποιησω interop vs να καταπιω την περηφανια μου και να γραψω java

και βλεπω ενα library που κανει wrap το παλιο sdk και μου φαινεται απειρη δουλεια

αλλα δε μπορω να αξιολογησω αν χρειαζεται

λιγο που το κοιταξα μπερδευομαι γιατι εχει annotations, anonymous classes, generics κλπ και μπλεκομαι 🙂

εννοω το Java SDK τα εχει αυτο

που ειναι το πιο απλο example

χρησης του SDK

no pressure προφανως, ΑΝ βρεις χρονο και ορεξη 🙂

@greenonion ta generics mporeis na ta agnohseis plhrws

a opote to beam einai san to Onyx kapws e?

ειναι Google

βασικα ειναι ενα SDK

και διαλεγεις engine

ενα απ’ τα engines ειναι το Cloud Dataflow που ειναι στο Google cloud

αλλα παιζεις και με αλλα, π.χ. Apache Flink

ο gtsiftsis παιζει με Onyx αλλα θα θελαμε να δουμε και την εναλλακτικη

γιατι φαινεται μεγαλο/σοβαρο project το Beam

@greenonion den vgainei kai poly kako, alla o peirasmos na to kanw pio clojury einai megalos: https://gist.github.com/stathissideris/12f5a65b047b9b5c0636f78e5f145965

γμτ το δουλευω σπιτι και δεν το εχω προχειρο εδω

κατι δεν πηγαινε καλα με το reify

@greenonion to mono gia to opoio exw amfivolia einai to Count.<String>perElement()

και το δοκιμασα και με proxy

εχει καποιο static check

η ParDo/of

me to reify paizei na ksexases to this?

και δεν καταλαβα ποτε αν λειπει το annotation

νομιζω οχι

θα το δω σπιτι 🙂

παιζει το annotation να βγαζει προβλημα;

aaaa nai exei kai annotations

εννοω η ελλειψη του;

mporei na ta koitazei dynamically

μπορεις να τα βαλεις; κατι ειδα για metadata

αλλα μπερδευτηκα

den mou exei xreiastei pote

κατι ειδα οτι σε deftype μπορει να βαλεις

αλλα χαθηκα λιγο

ξερεις ειναι η φαση trial and error

btw το cider δεν εχει access σε java code ε

ennoeis na pathseis na deis to java code definition?

alla to kanei to cursive

(opws diapistwsa prosfata)

pantws to Ceveats section tou datasplash einai arketa agxwtiko

fainetai misospasmeno

τολμησες να δεις κωδικα;

ειναι τρομαχτικο

ΤΙΓΚΑ σε macros, bindings κλπ

δεν ξερω τι πηγαν να κανουν

φαινεται να δουλευει ομως

8 macros mono 🙂

dysthxws to interop kammia fora se sprwxnei pros ta macros

to asteio einai oti twra teleytaia psaxnw to concept twn cells, pou einai kapws sxetiko apo thn apopsh oti exeis kapoio processing pou ekteleitai san pipeline klp

alla ayto pou exw kanei einai poly pio aplo, trexei mesa sto process, den trexei parallhla klp

einai gia allh xrhsh (UI)

stathissideris hoplon?

@gtsiftsis nai, javelin, alla reimplementation se clojure (to javelin einai mono gia cljs)

diavasa arketa ton kwdika tou javelin kai exw mpleksei se extensive kouventa me enan apo tous developers

νομίζω για UI είναι πολύ καλό μοντέλο σκέψης/υλοποίησης και είναι και στην ίδια λογική

με react / components

emena to react mou fainetai aploustero

εννοείς μονο το react ή όλο το flow ?

to react mono

true είναι απλούστερο αλλά η γενική ιδέα που πατάει είναι λιγο πιο σύνθετη

kala mh nomizeis oti to implementation twn cells einai aplo 🙂

σίγουρα δεν θα ειναι

για να ξαναγυρίσουμε στο αρχίκο, ναι είναι σχετικά και τα 2 concepts

στην ουσία έχεις data flows και event triggers

και στις 2 περιπτώσεις

egw ftiaxnw cells giati thelw (an anteksw) na ftiaksw ena mini desktop ETL/excel-like thing

opote ta cells einai to swsto metaphor pisteyw gia kati tetoio

kai tha ta xrhsimopoihsw kai gia na kanw drive to UI kai gia (light) data processing

personal project ή θες να το βγαλεις;

personal alla open source tha einai, apla den nomizw na to kanw idiaitera promote an den kanei mature

hdh einai sto github

isws na exei nohma ta cells na einai ksexwristo library

ωραια

btw @chief ρωτουσαν παλι απο Cognitect στο twitter να πουνε ποιοι δουλευουν σε Clojure

να τους στειλω;

να μας βαλουν στη λιστα;

ξυλο με interop, εχω μπλεξει με gen-class

ωραια που τα μαθαινω, 99% θα γραψω Java τελικα :))

@greenonion πω γιατί gen-class;

τελευταια ελπιδα 😛

αν και

εδω σκαει

νομιζω ολα αυτα τα redirections της Clojure

δε θα πανε καλα

και το exception ειναι

java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType

με proxy

opote heavy reflection e

spastiko

@greenonion ti mageireyete kai kanete evaluate beam kai onyx?

user session analysis

παρεχουν τα primitives που χρειαζομαστε

για να κανουμε ευκολα τη δουλεια μας

a nice

ελπιζω να διαλεξουμε το Onyx, δε θελω να γραψω Java

διαβασα αυτο https://www.oreilly.com/ideas/the-world-beyond-batch-streaming-101 και τη συνεχεια του και πωρωθηκα

δεν ξερω αν εχεις ασχοληθει καθολου

@greenonion den exei tyxei, alla einai ontws porotiko

kai fainetai poly in depth to arthro, thanks!

ναι, ειναι απ’ την πηγη

lead του project στη Google

και η συνεχεια του ειναι επος

anti gia beam tha koitaksete kai spark?

ennow directly

Flink ισως

το Spark δεν υλοποιει ολο το Beam

ενω το Flink συνεργαζεται με Google

για να το υποστηριζει πληρως

το spec

@greenonion opote einai meros tou requirement na paizei me google cloud kai aws?

kala kai apache spark kai apache flink?

POSA tetoia yparxoun pia

opote to beam einai kai standard kai implementation?

οχι οχι

δεν ειναι requirement το cloud

ισα-ισα

τοπικα θα το τρεξουμε

απλα ειναι high-profile Google project

και φαινεται σοβαρη δουλεια γι’ αυτο που θελουμε να κανουμε

πχ το Onyx εχει παρει πολλα concepts απο αυτους, και λογικο

ναι το Beam ειναι specification & SDK

και οριζεις “runner"

εχει εναν δικο του για dev περιβαλλον

κι απο κει και υστερα συνεργαζεται με διαφορους

Google Cloud Dataflow, Apache Flink, Apache Apex, Apache Spark κλπ

τα 2 πρωτα αυτη τη στιγμη ομως υποστηριζουν ολο το SDK

nai eida, ta kanei abstract

(ναι γινεται κολαση με τα Apache projects)

"well-designed streaming systems actually provide a strict superset of batch functionality"

το θεμα ειναι ποσο καλα κανεις expose την ολη ιδεα απο stream -> batch, οταν χρειαζεται

το Flink δεν επιτρεπει μετατροπη DataStream σε DataSet (κατι που το Spark το κανει αλλα για αρχιτεκτονικους λογους)

αλλα σου δινει Windows (Count/Time) και κανεις δουλεια με αυτα (οτι χωραει σε ενα Window ειναι ενα batch)

και μετα τα ξαναμετατρεπεις σε DataStreams

ειναι stream-centered af

μετα ειδα το υπολοιπο αρθρο, ακριβως για αυτα μιλαει (παραθυρα και τυποι τους)

Για μας ειναι ταμαμ

Τραβάμε από Κάφκα, ξαναστέλνουμε κλπ

👍 1

εγω με rabbitmq με βολεψε σε συνδιασμο με apache avro για de/serialization

connector εχει και για τα 2 ετοιμα

https://ci.apache.org/projects/flink/flink-docs-release-1.3/dev/windows.html#session-windows και γενικα ολη η σελιδα, ειναι το αρθρο σχεδον 1-1