καλήμερα, ναι το είχα δει και εγώ πριν καιρό
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 τα εχει αυτο
https://github.com/apache/beam/blob/master/examples/java/src/main/java/org/apache/beam/examples/MinimalWordCount.java δες αυτο για παραδειγμα
που ειναι το πιο απλο 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?
oxi
alla to kanei to cursive
(opws diapistwsa prosfata)
pantws to Ceveats section tou datasplash einai arketa agxwtiko
fainetai misospasmeno
ναι
τολμησες να δεις κωδικα;
ειναι τρομαχτικο
https://github.com/ngrunwald/datasplash/blob/master/src/datasplash/core.clj
ΤΙΓΚΑ σε 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)
nice
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
να τους στειλω;
να μας βαλουν στη λιστα;
yep why not!
ξυλο με 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
xmm
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
μετα ειδα το υπολοιπο αρθρο, ακριβως για αυτα μιλαει (παραθυρα και τυποι τους)
Για μας ειναι ταμαμ
Τραβάμε από Κάφκα, ξαναστέλνουμε κλπ
εγω με 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