This paper describes BABAR, a knowledge extraction and representation system, completely implemented in CLOS, that is primarily geared towards organizing and reasoning about knowledge extracted from the Wikipedia Website. The system combines natural language processing techniques, knowledge representation paradigms and machine learning algorithms. BABAR is currently an ongoing independent research project that when sufficiently mature, may provide various commercial opportunities.
BABAR uses natural language processing to parse both page name and page contents. It automatically generates Wikipedia topic taxonomies thus providing a model for organizing the approximately 4,000,000 existing Wikipedia pages. It uses similarity metrics to establish concept relevancy and clustering algorithms to group topics based on semantic relevancy. Novel algorithms are presented that combine approaches from the areas of machine learning and recommender systems. The system also generates a knowledge hypergraph which will ultimately be used in conjunction with an automated reasoner to answer questions about particular topics.
This paper describes BABAR, a knowledge extraction and representation system, completely implemented in CLOS, that is primarily geared towards organizing and reasoning about knowledge extracted from the Wikipedia Website. The system combines natural language processing techniques, knowledge representation paradigms and machine learning algorithms. BABAR is currently an ongoing independent research project that when sufficiently mature, may provide various commercial opportunities.
BABAR uses natural language processing to parse both page name and page contents. It automatically generates Wikipedia topic taxonomies thus providing a model for organizing the approximately 4,000,000 existing Wikipedia pages. It uses similarity metrics to establish concept relevancy and clustering algorithms to group topics based on semantic relevancy. Novel algorithms are presented that combine approaches from the areas of machine learning and recommender systems. The system also generates a knowledge hypergraph which will ultimately be used in conjunction with an automated reasoner to answer questions about particular topics.
Python Advanced – Building on the foundationKevlin Henney
This is a two-day course in Python programming aimed at professional programmers. The course material provided here is intended to be used by teachers of the language, but individual learners might find some of this useful as well.
The course assume the students already know Python, to the level taught in the Python Foundation course: http://www.slideshare.net/Kevlin/python-foundation-a-programmers-introduction-to-python-concepts-style)
The course is released under Creative Commons Attribution 4.0. Its primary location (along with the original PowerPoint) is at https://github.com/JonJagger/two-day-courses/tree/master/pa
Python is a great programming language. It is a complete tutorial of using this programming language.
This slides is split into two parts, and it is the second part. Another part is at: http://www.slideshare.net/moskytw/programming-with-python-basic.
Introduction to Python Pandas for Data AnalyticsPhoenix
Pandas is an open-source, BSD-licensed Python library providing high-performance, easy-to-use data structures and data analysis tools for the Python programming language. Python with Pandas is used in a wide range of fields including academic and commercial domains including finance, economics, Statistics, analytics, medical...
“What should I work on next?” Code metrics can help you answer that question. They can single out sections of your code that are likely to contain bugs. They can help you get a toehold on a legacy system that’s poorly covered by tests.
Python is a great programming language. It is a complete tutorial of using this programming language.
This slides is split into two parts, and it is the first part. Another part is at: http://www.slideshare.net/moskytw/programming-with-python-adv.
This presentation is about using Boost.Python library to create modules with С++.
Presentation by Andriy Ohorodnyk (Lead Software Engineer, GlobalLogic, Lviv), delivered GlobalLogic C++ TechTalk in Lviv, September 18, 2014.
More details -
http://www.globallogic.com.ua/press-releases/lviv-cpp-techtalk-coverage
JRuby, Not Just For Hard-Headed Pragmatists AnymoreErin Dees
JRuby bills itself as the pragmatic Ruby, the go-to implementation when you need to fit into the Java universe or support a ton of platforms.
Who knew it was also a tool for having fun exploring the realms of computer science?
Majlis Persaraan Pn.Hjh.Normah bersama guru-guru Sesi PetangImsamad
Perjalanan Pesaraan
Pada usia 56 tahun
guru
engkau berdiri gagah
sebagai tokoh gemilang
anugerah cemerlang
di harimu.
Guru
dengan lagu sendu lagu syahdu engkau diraikan
mengenang jasa mengenang segala
tercerna pada lukisan. waktu
sebagai pendidik tak kenal erti
jerih dan jemu.
Guru
jasamu dalam ingatan.
tingginya menyapu awan
antara terima kasih dan rasa kehilangan
di atas segala pengorbanan.
Guru
kami iringkan doa
di perjalanan. persaraan sebagai
seorang akademik seorang pendidikan formal
dan
sebagai seorang insan kami juga doakan
semoga Yang Esa jua. melimpahkan
segala kurnia.
Ήπειρος Αρχέγονος Ελλάς. Μέρος 1ο : Απέραντη Ελληνική Χώρα. ΠΑΖΛ ΕΠΙΛΟΓΕΣ
Το πάζλ μας αποτελείται από τις παρακάτω ενότητες:
1. Γεωγραφία και πληθυσμός
2. Η ιστορία της Ηπείρου
3. Το Βορειοηπειρώτικο Ζήτημα
4. 10 ερωτήσεις και απαντήσεις για τους Τσάμηδες
5. Οκτώ ελληνικούς νομούς περιλαμβάνει ο χάρτης της Αλβανίας
6. Η Μεγάλη Αλβανία θα μας χορέψει ¨Τσάμικο"¨
7. Χάρτης εννιαίας Ηπείρου
8. Ήπειρος αρχέγονος Ελλάς (βίντεο)
9. Ήπειρος (ψηφιακό αρχείο ΕΡΤ - βίντεο)
Python Advanced – Building on the foundationKevlin Henney
This is a two-day course in Python programming aimed at professional programmers. The course material provided here is intended to be used by teachers of the language, but individual learners might find some of this useful as well.
The course assume the students already know Python, to the level taught in the Python Foundation course: http://www.slideshare.net/Kevlin/python-foundation-a-programmers-introduction-to-python-concepts-style)
The course is released under Creative Commons Attribution 4.0. Its primary location (along with the original PowerPoint) is at https://github.com/JonJagger/two-day-courses/tree/master/pa
Python is a great programming language. It is a complete tutorial of using this programming language.
This slides is split into two parts, and it is the second part. Another part is at: http://www.slideshare.net/moskytw/programming-with-python-basic.
Introduction to Python Pandas for Data AnalyticsPhoenix
Pandas is an open-source, BSD-licensed Python library providing high-performance, easy-to-use data structures and data analysis tools for the Python programming language. Python with Pandas is used in a wide range of fields including academic and commercial domains including finance, economics, Statistics, analytics, medical...
“What should I work on next?” Code metrics can help you answer that question. They can single out sections of your code that are likely to contain bugs. They can help you get a toehold on a legacy system that’s poorly covered by tests.
Python is a great programming language. It is a complete tutorial of using this programming language.
This slides is split into two parts, and it is the first part. Another part is at: http://www.slideshare.net/moskytw/programming-with-python-adv.
This presentation is about using Boost.Python library to create modules with С++.
Presentation by Andriy Ohorodnyk (Lead Software Engineer, GlobalLogic, Lviv), delivered GlobalLogic C++ TechTalk in Lviv, September 18, 2014.
More details -
http://www.globallogic.com.ua/press-releases/lviv-cpp-techtalk-coverage
JRuby, Not Just For Hard-Headed Pragmatists AnymoreErin Dees
JRuby bills itself as the pragmatic Ruby, the go-to implementation when you need to fit into the Java universe or support a ton of platforms.
Who knew it was also a tool for having fun exploring the realms of computer science?
Majlis Persaraan Pn.Hjh.Normah bersama guru-guru Sesi PetangImsamad
Perjalanan Pesaraan
Pada usia 56 tahun
guru
engkau berdiri gagah
sebagai tokoh gemilang
anugerah cemerlang
di harimu.
Guru
dengan lagu sendu lagu syahdu engkau diraikan
mengenang jasa mengenang segala
tercerna pada lukisan. waktu
sebagai pendidik tak kenal erti
jerih dan jemu.
Guru
jasamu dalam ingatan.
tingginya menyapu awan
antara terima kasih dan rasa kehilangan
di atas segala pengorbanan.
Guru
kami iringkan doa
di perjalanan. persaraan sebagai
seorang akademik seorang pendidikan formal
dan
sebagai seorang insan kami juga doakan
semoga Yang Esa jua. melimpahkan
segala kurnia.
Ήπειρος Αρχέγονος Ελλάς. Μέρος 1ο : Απέραντη Ελληνική Χώρα. ΠΑΖΛ ΕΠΙΛΟΓΕΣ
Το πάζλ μας αποτελείται από τις παρακάτω ενότητες:
1. Γεωγραφία και πληθυσμός
2. Η ιστορία της Ηπείρου
3. Το Βορειοηπειρώτικο Ζήτημα
4. 10 ερωτήσεις και απαντήσεις για τους Τσάμηδες
5. Οκτώ ελληνικούς νομούς περιλαμβάνει ο χάρτης της Αλβανίας
6. Η Μεγάλη Αλβανία θα μας χορέψει ¨Τσάμικο"¨
7. Χάρτης εννιαίας Ηπείρου
8. Ήπειρος αρχέγονος Ελλάς (βίντεο)
9. Ήπειρος (ψηφιακό αρχείο ΕΡΤ - βίντεο)
Σχόλιο ΠΑΖΛ: Συνεχίζουμε την σύνθεση του ΠΑΖΛ ¨Ήπειρος Αρχέγονος Ελλάς¨ με το 2ο Μέρος που αναφέρεται στην Βόρεια Ήπειρο.
Ο όρος «Βόρειος Ήπειρος» είναι μεταγενέστερος. Επιβλήθηκε βίαια και αυθαίρετα το 1913, όταν οι Μεγάλες Δυνάμεις (Αγγλία, Γαλλία, Γερμανία, Ρωσία, Ιταλία και Αυστροουγγαρία) διέπραξαν το μεγάλο έγκλημα του διαμελισμού της Ηπείρου και της αποσπάσεως απ’ αυτήν της Βορείου Ηπείρου.
Μέχρι τότε και πριν χιλιάδες χρόνια, η Ήπειρος ήταν ενιαία, μία και αδιαίρετη, που άρχιζε από τον Αμβρακικό Κόλπο (Πρέβεζα) και τελείωνε στον Γενούσο (Σκούμπι) ποταμό, παράλληλα της Εγνατίας οδού, με πρωτεύουσα την Νικόπολη, αρχαία πόλη κοντά στην σημερινή Πρέβεζα.
Σκόπος αυτής της ενέργειας, η δημιουργία του Αλβανικού κράτους, που δεν ήταν αποτέλεσμα αγώνων ενός λαού που ζητούσε την απελευθέρωση του και την ανεξαρτησία του από τον Οθωμανικό ζυγό, αλλά επινόηση της Αυστροουγγαρίας και της Ιταλίας οι οποίες ενεργούσαν η κάθε μία για ίδιο συμφέρον. Το εθνικό συναίσθημα ήταν άγνωστο στους Αλβανούς μέχρι και τις αρχές του 20ού αιώνα.
Τρεις φορές απελευθερώθηκε η Βόρεια Ήπειρος. Μετά την απελευθέρωση των Ιωαννίνων (21 Φεβρουαρίου 1913) από τον τουρκικό ζυγό, ο Ελληνικός στρατός συνεχίζει ελευθερώνοντας μία μία και τις πόλεις της Βορείου Ηπείρου μέχρι έξω από τον Αυλώνα. Μερικές μάλιστα πόλεις της Βορείου Ηπείρου ανέκτησαν νωρίτερα την ελευθερία τους (π.χ. Χειμάρρα με τον Σπ. Σπυρομήλιο 5/10/1912 , Κορυτσά με τον Παν. Δαγκλή 7/12/1912)..
Η έναρξη του Α’ Παγκοσμίου Πολέμου και η έκρυθμη κατάσταση στην Αλβανία αναγκάζει τους Ευρωπαίους να επιτρέψουν την είσοδο του Ελληνικού στρατού για την αποκατάσταση της
Σχόλιο ΠΑΖΛ: Διαβάζοντας το κείμενο νομίζουμε ότι αναφέρεται στο σήμερα. Με έκπληξη όμως διαπιστώνουμε ότι αναφέρεται στους χρόνους πριν από την άλωση της Πόλης.
Τότε η παιδαγωγική ράβδος του Κυρίου επέλεξε τους τούρκους ως τιμωρούς για την αποστασία μας, προς συνετισμό μας.
Τώρα που η αποστασία μας συναγωνίζεται την αντίστοιχη των χρόνων εκείνων, ποία παιδαγωγική ράβδο θα επιλέξει;
Επίσης θα σας παραθέσουμε λίγες πληροφορίες για το Γεννάδιο Β΄Σχολάριο, τον Ιωσήφ Βρυέννιος (1350-1431 περίπου) και τον συγγραφέα του κειμένου μακαριστό Γέροντα π. Φιλόθεο Ζερβάκο.
Οι εννέα πληγές που αναφέρει ο μακαριστός π. Φιλόθεος Ζερβάκος, μάτωσαν την Ελλάδα μας.
Ποιά όμως θα είναι η 10η πληγή που θα είναι φοβερότερη από τις άλλες; Μήπως πλησιάζει;
Είτε έτσι, είτε αλλιώς, αφού και ο χρόνος του θανάτου μας είναι άγνωστος, μία είναι η λύση για όλους και για όλα Η ΜΕΤΑΝΟΙΑ.
(Προτιμήστε την 2η Έκδοση) Η Αυτοκρατορία της Νέας Ρώμης και οι πολίτες της ...ΠΑΖΛ ΕΠΙΛΟΓΕΣ
1. Προλογικά
Είναι γεγονός αναμφισβήτητο, ότι υπάρχουν ακόμη Ορθόδοξοι στη Μέση Ανατολή, που έχουν συνείδηση της ταυτότητας και της ιστορίας τους, σ’ αντίθεση με πολλούς από εμάς τους Νεοέλληνες, που [επηρεασμένοι από την προπαγανδιστική συνθηματολογία των Ευρωπαίων, κυρίως από τον 18/19ο αιώνα], έχουν τελείως αποξενωθεί από τις έννοιες αυτές, [στην ακατανίκητη μανία μας να ταυτισθούμε με την (Δυτική) Ευρώπη (=εξευρωπαϊσμός)]. Αυτά τα έχει αναλύσει με ισχυρή τεκμηρίωση ο αείμνηστος π. Ιωάννης Ρωμανίδης , επιφανής ορθόδοξος δογματολόγος, αλλά και ιστορικός (2001), τα διδάσκω δε και εγώ στις παραδόσεις και διαλέξεις μου) . Διότι μελετώντας τις πηγές, που εξαντλητικά ερεύνησε εκείνος, διεπίστωσα την τερατώδη πλαστογράφηση της μέσης περιόδου της ιστορίας μας, με κορύφωση την καθιέρωση (1562) από τη δυτική επιστήμη του ανύπαρκτου (ως κρατικού) ονόματος ΒΥΖΑΝΤΙΟ [και την δουλοπρεπή εκ μέρους μας αποδοχή και χρήση του]. Η αυτοκρατορία, μέσα στην οποία ζήσαμε και συναντηθήκαμε οι Ορθόδοξοι πολίτες της, είχε άλλο όνομα και η ενότητά της άλλα θεμέλια, από εκείνα, που αναζήτησαν στους τελευταίους αιώνες για τον εαυτό τους οι κρατικοεθνικές ενότητες, που προέκυψαν μέσα από τις νεώτερες ιστορικοπολιτικές εξελίξεις.
..............
Κυριακή της Ορθοδοξίας ( Α΄ Νηστειών) - H Αναστήλωση των Αγίων Εικόνων και η...ΠΑΖΛ ΕΠΙΛΟΓΕΣ
Σχόλιο ΠΑΖΛ : Η Πρώτη Κυριακή των νηστειών της Σαρακοστής, ονομάζεται Κυριακή της Ορθοδοξίας. Αυτήν την ημέρα γιορτάζουμε την αναστύλωση των αγίων και σεμνών εικόνων από την αυτοκράτειρα Θεοδώρα το 843 μ.Χ. της οποίας το σεπτό της σκήνωμα μεταφέρθηκε το 1456 στην Κέρκυρα, όπου φυλάσσεται ακέραιο. Η μνήμη της τιμάται στις 11 Φεβρουαρίου.
Η προσκύνηση των εικόνων κατέχει μία πολύ σημαντική θέση σ’ αυτή τη διατηρηθείσα παράδοση κι αυτό διότι η εικόνα δεν είναι μια απλή απεικόνιση ούτε μια διακόσμηση, ούτε ακόμα μία εικονογράφηση της αγίας Γραφής. Είναι κάτι περισσότερο: Ισότιμη του ευαγγελικού μηνύματος, είναι ένα λατρευτικό σκεύος που συμμετέχει ολόκληρο στην λειτουργική ζωή.
«Ου γαρ ζωγράφων εφεύρεσις η των εικόνων ποίησις, αλλά της Καθολικής Εκκλησίας έγκριτος θεσμοθεσία και παράδοσις» διακηρύττουν οι πατέρες της Ζ΄ Οικουμενικής Συνόδου.
Δεν είναι ξένη αυτή η εορτή με το πνεύμα της Τεσσαρακοστής. Αγιογραφικό εργαστήριο αναστήλωσης είναι η Εκκλησία. Η Τεσσαρακοστή είναι ένα ταξίδι επιστροφής στον Παράδεισο. Αναστηλώνοντας τις Εικόνες, ομολογούμε και δεσμευόμαστε για την αναστήλωση της δικής μας εικόνας, της εικόνας του Θεού. Η Κυριακή της Ορθοδοξίας είναι η Νίκη του Ανθρώπου, είναι ο θρίαμβος της Εκκλησίας πάνω στην φθορά και τον θάνατο, πάνω στην φιλοσοφία και την κοσμική πλάνη.
Η εικόνα και μάλιστα η θρησκευτική απεικόνιση, αποτελεί βασικό στοιχείο του παγκόσμιου πολιτισμού. Η παγκόσμια πολιτιστική κληρονομιά έχει να επιδείξει ανυπολόγιστης καλλιτεχνικής αξίας έργα θρησκευτικής ζωγραφικής. Τα σπουδαιότερα μνημεία – ναοί του κόσμου είναι καταστόλιστοι από εικονογραφίες άφθαστης τεχνοτροπίας.
Αυτά και ά
Object Orientation vs. Functional Programming in PythonPython Ireland
Python is a multi-paradigm language meaning it supports different programming styles, Object Orientation and Functional Programming being the major ones. However choice is not always a good thing, if you are interested in writing modular programs that are easy to maintain and promote code reuse what should you do? This talk discusses modularity in this context looking at Python's support for both paradigms, comparing and contrasting them. We then look at Python techniques and tools that bridge the perceived impedance mismatch between Object Orientation and Functional Programming.
The slides shown here have been used for talks given to scientists in informal contexts.
Python is introduced as a valuable tool for both producing and evaluating data.
The talk is essentially a guided tour of the author's favourite parts of the Python ecosystem. Besides the Python language itself, NumPy and SciPy as well as Matplotlib are mentioned.
A last part of the talk concerns itself with code execution speed. With this problem in sight, Cython and f2py are introduced as means of glueing different languages together and speeding Python up.
The source code for the slides, code snippets and further links are available in a git repository at
https://github.com/aeberspaecher/PythonForScientists
An introduction to the motivation behind the ooc project.
In a nutshell: software sucks, tools sucks, languages sucks - examples of what not to do. How ooc allows you to do pretty much aything with a few building blocks. An overview of the advantages/strong points of ooc.
LESSON 3B. FOCUS: FOR LOOPS, NESTED LOOPS, TASKS AND CHALLENGES.
Introduction to, with examples, For loops. Challenges and tasks included with solutions (predict the output). Compare ‘while’ and ‘for’ loops. Use the break statement and explore how it works in different scenarios. Learn about Nested Loops. Learn about the need for initialisation (set starting value). Create your own for loops. Create the beginnings of an arithmetic quiz using a random function and for loops. Big ideas discussion: Is the universe digital. A program? Introducing Gottfried Leibniz and Konrad Zuse. Includes a suggested videos, ‘Big ideas’ discussion, and HW/research projects section.
Tips And Tricks For Bioinformatics Software Engineeringjtdudley
This is a talk I've given twice at Stanford recently. It's essentially a brain dump of my thoughts on being a Bioinformatician with lots of links to useful tools.
In this PDF you will find the basics of Turbo Prolog 2.0 with some good program and it's output. Also it's second part is coming in next month or week.
For any query ------------------> sohupatel8828@gmail.com
For programs ----------------> https://github.com/UltraHopeful/Turbo-Prolog-2.0
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
GridMate - End to end testing is a critical piece to ensure quality and avoid...ThomasParaiso2
End to end testing is a critical piece to ensure quality and avoid regressions. In this session, we share our journey building an E2E testing pipeline for GridMate components (LWC and Aura) using Cypress, JSForce, FakerJS…
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
9. The path A short story, a book , design patterns, and Djikstra
10. Setting the record straight Let's talk about Design Patterns I did not say that patterns are bad. I did say that using them may be a sign of weakness in a language.
11. A Blog Post Python isn't Java without the compile Design Patterns in Dynamic Programming – Peter Norvig Beyond Java – Bruce Tate
23. Strategy Pattern “ When most of your code does nothing in a pompous way that is a sure sign that you are heading in the wrong direction. Here's a translation into python” - Peter Otten
25. Proof by Wikipedia “ This pattern is invisible in languages with first-class functions.” http://en.wikipedia.org/wiki/Strategy_pattern What other language features are there, and what patterns do they make invisible?
26. Catalog of Language Features First-class functions Meta-programming Iterators Closures
27. Proof by Wikipedia In object-oriented programming, the Iterator pattern is a design pattern in which iterators are used to access the elements of an aggregate object sequentially without exposing its underlying representation. http://en.wikipedia.org/wiki/Iterator_pattern The definition of low-hanging fruit.
28. Iterators for element in [ 1 , 2 , 3 ]: print element for element in ( 1 , 2 , 3 ): print element for key in { 'one' : 1, 'two' : 2 }: print key for char in "123" : print char for line in open( "myfile.txt" ): print line
29. There is a lack of patterns in Python 1. Define 'lack of patterns' 2. Demonstrate that lack 3. Explain why
30. The path A short story, a book , design patterns, and Djikstra
31. Structured Programming "Go to statement considered harmful” Edsger W. Dijkstra,1968 Letter to the editor, Communications of the ACM , Volume 11, Issue 3 (March 1968)
32. Structured Programming We are talking about Routines! (or procedures, or functions, or methods) being controversial. Along with 'if', 'while', and 'switch' statements
33. The controversy went on for a while "GOTO Considered Harmful" Considered Harmful Frank Rubin, 1987 Communications of the ACM, Vol. 30, No. 3. (March 1987), pp. 195-196.
35. What if Structured Programming wasn't built in? You can do Structure Programming with our built in stack and 'call' primitives! def hyp : push(pop()**2 + pop()**2) call math.sqrt return >> push(3) >> push(4) >> call hyp >> pop() 5
37. Some Concurrency Patterns listed on Wikipedia Lock Monitor Object Reactor Thread pool Thread-specific storage These you will see on comp.lang.python
38. Some Concurrency Patterns listed on Wikipedia Lock Monitor Object Reactor Thread pool Thread-specific storage These you will see on comp.lang.python
39. Patterns and Primitives Threadpool (Pattern) Language Feature Threads + queue + lock (Primitives) Concurrency (Model)
40. “ Just” use threads Threading is not a model Threading is a primitive, along with locks, transactional memory, etc.
49. CSP – Stackless – Primes import stackless def generate(ch): for i in range(2, 1000): ch.send(i) def pfilter(chin, chout, p): for i in chin: if i % p != 0: chout.send(i) def primes(chin): while 1: prime = chin.receive() print prime chout = stackless.channel() stackless.tasklet(pfilter)(chin, chout, prime) chin = chout c = stackless.channel() stackless.tasklet(generate)(c) stackless.tasklet(primes)(c) stackless.run()
50. CSP – Stackless – Primes import stackless def generate(ch): for i in range(2, 1000): ch.send(i) def pfilter(chin, chout, p): for i in chin: if i % p != 0: chout.send(i) def primes(chin): while 1: prime = chin.receive() print prime chout = stackless.channel() stackless.tasklet(pfilter)(chin, chout, prime) chin = chout c = stackless.channel() stackless.tasklet(generate)(c) stackless.tasklet(primes)(c) stackless.run() N 2 P n P n+1
51. CSP – Go – Primes func generate(ch chan int) { for i := 2; ; i++ { ch <- i } // Send 'i' to channel 'ch'. } func filter(in, out chan int, prime int) { for { i := <-in // Receive 'i' from 'in'. if i % prime != 0 { out <- i } // Send 'i' to 'out'. } } func main() { ch := make(chan int) // Create a new channel. go generate(ch) // Start generate() as a goroutine. for { prime := <-ch fmt.Println(prime) ch1 := make(chan int) go filter(ch, ch1, prime) ch = ch1 } } N 2 P n P n+1
57. All code is written single threaded Note that the 'channels' are implicit
58. Actors – IO – Primes Filter := Object clone Filter init := method(p, self prime := p self next := nil self ) Filter number := method(n, r := n % prime; if (r != 0, if (self next == nil, n println; next = self clone init(n) ) next @ number(n); yield ) ) Filter init(2) for (i, 2, 1000, Filter number(i); yield ) N 2 P n P n+1
59. The path A short story, a book , design patterns, and Djikstra
63. My Goal Every time you use a concurrency pattern you remember the lack of affordances , and it proves sufficiently irritating . The short story , the book , and design patterns .