Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια

Παρουσίαση με Ετικέτες

Όλες οι Ετικέτε... » Events   (RSS)

1st Architecture Days post-event comments

Πριν μερικές ώρες γύρισα από το πολυαναμενόμενο event του dotnetzone.gr, για αρχιτεκτονική λογισμικού [link]. Θα ήθελα να συγχαρώ τους διοργανωτές για την οργάνωση και τη θεματολογία. Δυστυχώς έπρεπε να αποχωρήσω στο τελευταίο μέρος λόγω υποχρεώσεων αλλά θα ήθελα να σας μεταφέρω την εμπειρία από τα τρία πρώτα μέρη.

Locating and addressing performance issues: From software to hardware architecture - Διομήδης Σπινέλλης

22102009103 22102009104

Ο κύριος Διομήδης Σπινέλλης, μέσα σε μία ώρα έθιξε τα κύρια σημεία του code quality, και τρόπους και αρχές για ελέγχο του κώδικά μας, με στόχο την (ποιότητα)=>ταχύτητα, ασφάλεια, εξοικονόμηση. Οι πρακτικές και έννοιες πήγασαν από την δική του εμπειρία και μεθοδολογία, που εύκολα ένας συνειδητοποιημένος ακροατής, αν κρατήσει τις ιδέες και τις υλοποιήσει με τα δικά του εργαλεία και συστήματα, σίγουρα θα κάνει πολλά βήματα εμπρός σε οποιαδήποτε πλατφόρμα και αν εργάζεται. Η παρουσίαση πλούσια σε εικόνες, κώδικα, shell, profiling and more! Αριστούργημα.

Συνοπτικά ο δεκάλογος που μου έμεινε:

  1. Ανάλυση του προβλήματος σε επίπεδο απασχόλησης CPU-> user time vs system time vs idling vs clock time (procmonitor and more)
  2. Ανάλυση κώδικα με γραφήματα εξαρτήσεων στον κώδικα, flags στους compilers για πλήρες reporting μέχρι και σε επίπεδο γραμμής πηγαίου
  3. Βελτιστοποίηση αλγορίθμων με σύνεση. Εντοπισμός lower + upper bounds + reusability καλών βιβλιοθηκών + προσαρμογή στα δεδομένα μας
  4. Γνώση των εσωτερικών μηχανισμών με μετρητές απόδοσης σε επίπεδο cpu, με διαιρέσεις δεικτών με πλούσια σημασιολογία (Διαίρεση δείκτη 1/ δείκτη 2 := π.χ. utilization κάποιου πόρου χ => συμπέρασμα)
  5. Προσοχή στα ΙΟ  (μνήμη, ιεραρχίες, locality of reference)
  6. Αποφυγή ΛΣ και κλήσεων σε αυτό
  7. Background processing + thrashing => πρόβλημα με φυσική μνήμη
  8. Αλγόριθμοι με τοπικότητα αναφορών (εδώ δόθηκε ένα ακόμα οπτικό παράδειγμα με δύο αλγορίθμους για πράξη πινάκων)
  9. Γνωρίστε τα δεδομένα σας, το κόστος τους, το βάρος τους, το “σχήμα τους”
  10. Memory management, εντοπισμός bottlenecks

 

Modeling in the Enterprise with Microsoft "Oslo" – Νατάσα Μανουσοπούλου

22102009108 22102009109

Μία πραγματικά φοβερή τεχνική παρουσίαση από την Νατάσα, για το OSLO, την πλατφόρμα μοντελισμού της Microsoft που βρίσκεται σε εμβρυακό στάδιο ακόμα, επιτρέποντας σε ανθρώπους που προέρχονται από διαφορετικά περιβάλλοντα να επικοινωνούν μεταξύ τους, κατά τη διαδικασία του requirements engineering. Η έμφαση δίνεται κυρίως στους προγραμματιστές, εφοδιάζοντάς τους, με το επίπεδο γενίκευσης εκείνο, που θα τους βοηθήσει στην μετέπειτα διαδικασία. Η πλατφόρμα αποτελείται από τρία πράγματα: το εργαλείο, την “γλώσσα” για να μπορείς να ορίζεις ειδικές γλώσσες για το πρόβλημά σου και ένα κοινό σημείο αποθήκης μοντέλων, ώστε μετά να πέσουν όλοι πάνω για την παρουσίαση των εννοιών που μοντελοποιήθηκαν (είτε μέσω ενός Entity Framework Diagram, είτε μέσω ui και της πανίσχυρης XAML, είτε ακόμα μέσα από Sharepoint). Τρία πράγματα για αρχή, λοιπόν: Διαμοιρασμός πληροφορίας, ευκολία παραμετροποίησης, διαχείριση αλλαγών (στα requirements). Το πρώτο που πρέπει να καταλάβουμε είναι πως αποκτούμε μία formal γλώσσα για να περιγράψουμε την φυσική γλώσσα και μετα-δεδομένα για να περιγράψουμε κώδικα. Τι καλύτερο δηλαδή από το να έχουμε τον προγραμματιστή μας δίπλα, στην συνέντευξη για requirements document, και την ώρα που μαθαίνουμε το domain του πελάτη να γράφουμε δίπλα κάτι τόσο generic που μετά θα το κάνουμε, ui ή business object ή report ή ή ή… Η Νατάσα μας έδειξε ένα πολύ όμορφο παράδειγμα με μοντελοποίηση ερωτηματολογίου το οποίο το δόμησε με MGrammar και το παρουσίασε με Sharepoint. Παραθέτω ένα παράδειγμα μοντελοποίησης του πεδίου “Οικογένεια” που βρήκα εδώ. Interesting huh? :)

module Example {     language Family {         interleave Whitespace = ' '|'\n'|'\r'|'\t';         token Name = ('a'..'z'|'A'..'Z')+;         syntax Persons             = p:Person                 => [p]             | list:Persons "","" p:Person                 => [valuesof(list), p];         syntax Children             = ""{"" p:Persons ""}"" "";""                 => p;         syntax Person             = first:Name last:Name                 => Person {                     First { first },                     Last { last }                 }             | first:Name last:Name c:Children                 => Person {                     First { first },                     Last { last },                     Children { c }                 };         syntax Main             = p:Person*                 => p;     } }

Και έτσι μπορώ να γράψω στον κώδικα, το δεδομένο μου το οποίο μπαίνει σε ένα πολύ όμορφο POCO. Πανέμορφο!

Bob Williams {     Joanie Williams,     Cathy Williams,     Bob Williams     {         Josh Williams,         Jennie Williams,         Julie Williams     }; };

Reliability, Availability, and Scalability - Have your cake and eat it too - Udi Dahan

22102009110 

Πραγματική έμπνευση η παρουσίαση του διάσημου Udi Dahan… Μας παρουσίασε τις έννοιες reliability, availability και scalability στο enterprise service bus. Τι γίνεται όταν έχουμε έναν Application Server και έναν DB Server και κάποιος συνδυασμός τους ή ένας από τους δύο βρεθεί εκτός λειτουργίας προσωρινα; Πώς χτίζουμε υποδομή για να αποφύγουμε προβλήματα όπως μη διαθεσιμότητα, τα οποία θα επηρρεάσουν το business μας; Όμορφες ιδέες και απλές στην υλοποίηση, ξεκαθαρίζουν το τοπίο, όπως one way messaging ( request response / publish subscribe), handling messages, rolling back business operations που αποτελούνται από διάφορες πηγές (π.χ., ανεξάρτητα orchestrated Web Services) με τέτοιο τρόπο που θα είναι σαν πραγματικό πισωγύρισμα στο χρόνο. Ιδέες όπως οι παραπάνω γίνονται encapsulate στο open source project του Udi ονόματι NServicebus.

 

Πολύ δυνατές παρουσίες με πλούσιες ιδέες, πρακτικές, τάσεις και τεχνολογίες, που χτίζουν καλύτερα οικοδομήματα.

Posted: Παρασκευή, 23 Οκτωβρίου 2009 2:14 πμ από George J. Capnias | 0 σχόλια
Δημοσίευση στην κατηγορία: ,

MediaCamp2 Day 1

Πάρα πολύ ωραία, σήμερα, η πρώτη μέρα στο MediaCamp2 (μία φοβερή πρωτοβουλία που φέρνει κοντά και ενώνει όσους ασχολούμαστε με τεχνολογία, από όποια φιλοσοφία και αν έχουμε υιοθετήσει). Ο χώρος είναι ένα από τα πιο ευχάριστα και φωτεινά μέρη που έχω δει (Microsoft Innovation Center), που ευγενικά παραχώρησε η MS Hellas. 14032009011

Μοιραστήκαμε ιδέες και ενδιαφέροντα τόσο μέσω ομιλιών όσο και στα μικρά πηγαδάκια που σχηματίζονταν ανά τους ορόφους. Προσωπικά παρακολούθησα ομιλίες σχετικά με Drupal όπου ακολούθησε και ωραία συζήτηση για διάφορα Web Frameworks, για code conventions, Windows Mobile Development, WPF, Expression Design, Expression Blend, ASP.NET και την εισαγωγή σε αυτή τη νέα στροφή στο development που “ακούει” στον όρο Cloud Computing, μέσω της νέας οικογένειας υπηρεσιών της Microsoft (Windows Azure realm ;) ).

Αναμένω με αγωνία την δεύτερη μέρα, καθώς δεν υπάρχει κάτι καλύτερο από το να γνωρίζεις διαφορετικές τεχνολογίες και ταυτόχρονα έμπειρους εκφραστές τις.

 

Για όσους ενδιαφέρονται να έρθουν αύριο μπορούν να περάσουν ότι ώρα θέλουν ώστε ή να παρακολουθήσουν, ή να συζητήσουν ή ακόμα και να παρουσιάσουν την δουλειά τους και ότι τους τρελλαίνει. Πληροφορίες μπορείτε να βρείτε και μέσω Facebook.

Posted: Σάββατο, 14 Μαρτίου 2009 9:20 μμ από George J. Capnias | 0 σχόλια
Δημοσίευση στην κατηγορία:

1η Πανελλήνια συνάντηση των Game Developers (+παρουσίαση μου στο XNA)

Μόλις γύρισα από την πρώτη συνάντηση Ελλήνων game developers που έγινε στην Microsoft Hellas (ή όπως προτιμούσαν μερικοί, το πρώτο Greek Summit για Game Developers). Θα πω ένα μεγάλο μπράβο στα παιδιά που το οργάνωσαν και στον κόσμο που ήταν παρών! Είδαμε αρκετά έργα εταιριών και ατομικά project παιδιών. Η ημέρα ήταν χωρισμένη σε δύο μέρη, στις παρουσιάσεις και στην συζήτηση για το μέλλον της κοινότητάς μας.

IMG_0736 Στο πρώτο μέρος γνωρίσαμε ανθρώπους που έχουν πολλά χρόνια στον χώρο, μοιραστήκαμε τις εμπειρίες μας, μάθαμε πράγματα για την πραγματικότητα του προγραμματισμού παιχνιδιών στην χώρα μας και συζητήσαμε  πως θα γίνει αυτή η πρώτη προσπάθεια η αρχή για να συγκροτήσουμε έναν πυρήνα και μία ενιαία αντιπροσωπευτική και νομική υπόσταση ως επαγγελματίες προγραμματιστές παιχνιδιών. Ήταν μία πάρα πολύ γεμάτη και έντονη μέρα αλλά αποζημίωσε στο 100% τον χρόνο που επενδύσαμε σήμερα. Δώσανε αρκετές εταιρίες το παρών όπως (icehole, SDS, Epicon, Adventure Destiny, Anima, Games2Gaze, TCF/Ge.Mi, η ομάδα του Λύσις, η adventurine,..). IMG_0753 Η οργάνωση πολύ καλή και από θέμα τεχνικό, νομίζω ξεπεράσαμε τις όποιες δυσκολίες προέκυψαν σε θέματα ήχου, βίντεο κτλ.

Μια δευτερεύουσα  δυναμική, που είχε  η πρώτη συνάντηση που πραγματοποιήθηκε σήμερα, ήταν αυτή που έλαβε μέρος στους διαδρόμους στα breaks, η οποία ήταν εξίσου σημαντική με τις παρουσιάσεις. Εκεί γνωρίσαμε πραγματικά τους συν-εκφραστές του κλάδου αυτού στην Ελλάδα. Στην εικόνα δεξιά βλέπουμε αυτό ακριβώς το θέμα, όπως αποτυπωνόταν έξω από την αίθουσα της συνάντησης.  Τέλος το πρώτο μέρος της παρουσίασης, καθώς μου είχε ζητηθεί από αρκετούς, έκλεισε με μία σύντομη αναφορά που έκανα στο XNA Game Development Framework (link παρουσίασης), από τι αποτελείται, τι θα προσφέρει στον χώρο του IMG_0740 game development, τι σου μαθαίνει και τι προδιαγραφών παιχνίδια μπορεί να φτιάξει κάποιος για Windows και ΧΒΟΧ 360. Ήταν μεγάλη μου χαρά που μου δόθηκε η ευκαιρία να μοιραστώ, τον ενθουσιασμό μου με τους ανθρώπους που ήταν εκεί.

Ανανεώσαμε τον χρόνο συνάντησης για την επόμενη συγκέντρωση και καθορίσαμε τα διάφορα θέματα  που θα συζητήσουμε καθώς και ποιες κινήσεις πρέπει να κάνουμε μέχρι αυτήν την μέρα.

Σας παραθέτω μερικές ακόμα φωτογραφίες για να πάρετε μια γεύση (από αυτές που αποτυπώθηκαν από τον δικό μου φακό :P)  πριν πάρετε το πλήρες footage από σήμερα, όπως και όλο το υλικό (παρουσιάσεις, videos) που θα γίνουν διαθέσιμα από μέρα σε μέρα για να μπορούν να τα δουν όλοι, σε τοποθεσία που θα ανακοινωθεί και από το blog και στο forum μας.

 

IMG_0738 IMG_0750

Happy Coding Joyful Game Developers,

Άγγελος Μπιμπούδης

Posted: Σάββατο, 21 Ιουνίου 2008 8:26 μμ από George J. Capnias | 0 σχόλια
Δημοσίευση στην κατηγορία: ,