What's in a language? How can it help us express our intent better? Based on his last talk, Cheng will explore some concrete, daily patterns in our codebase that Reason elegantly solves through a few simple yet rich concepts.
Teach your kids how to program with Python and the Raspberry PiJuan Gomez
RaspberryPis are the new frontier in enabling kids (and curious adults) to get access to an affordable and easy-to-program platform to build cool things. Over a million of these nifty little devices have been sold in less than a year and part of their popularity has been due to how easy it is to start programming on them.
In this session you'll learn how to get started with the Raspberry PI, initial set-up, configuration and some tips and tricks. Then we'll have a brief introduction to basic Python and we'll write a few simple programs that run on the RaspberryPI. The last section of the session will be dedicated to PyGame, we'll learn about surfaces, events, inputs, sprites, etc and demonstrate how to build very simple games that are as much fun for kids to write, than to play!
Slides for the presentation that I made for LambdaConf 2015 in Boulder
Codebase available at http://www.slideshare.net/paulszulc/monads-asking-the-right-question
Leveraging the Power of Graph Databases in PHPJeremy Kendall
The document discusses leveraging graph databases in PHP applications. It provides an overview of graph databases, their data model consisting of nodes, properties and relationships. It then demonstrates connecting to Neo4j from PHP using the Neo4jPHP wrapper, querying the graph database with Cypher, and modeling a news feed content structure as a graph of connected content nodes. Sample code is shown for adding new content nodes to a user's news feed graph through a LASTPOST relationship.
This document discusses relationships in Django ORM, including many-to-one and many-to-many relationships. It explains how to define relationships using ForeignKeys and ManyToManyField, and how to query, create, update, and delete related objects. Specifically, it shows how to define a Comment model with a ForeignKey to Post to create a many-to-one relationship, and a Tag model connected to Post through a ManyToManyField to represent many-to-many tags. It demonstrates traversing the relationships in both directions and performing CRUD operations on related objects.
Php 102: Out with the Bad, In with the GoodJeremy Kendall
In this session, we'll look at a typical PHP application, review a few of the horrible mistakes the fictional developer made, and then refactor the app according to some best practices. Along the way you might even learn a thing or two about PHP you don't already know.
Leveraging the Power of Graph Databases in PHPJeremy Kendall
This document provides an overview of leveraging graph databases in PHP. It begins with an introduction to graph databases and their data model. It then discusses Neo4j, a popular graph database, and its query language Cypher. The document demonstrates connecting to Neo4j from PHP, creating and querying nodes and relationships, and provides an example of modeling content like a news feed as a graph using the LASTPOST and NEXTPOST relationships to link content in order.
A talk given at the Wix Ukraine R&D meetup in Dnipropetrovsk, Ukraine on May 22, 2014.
So you've heard of this newfangled "Scala" thing and think it might be worth checking out. Good for you! Unfortunately, it's also daunting. Your first search for Scala is likely to pitch it as a "statically-typed hybrid object-oriented and functional language", which is technically true but doesn't really help much.
Instead, this talk will provide an overview of the language, focusing on five highly practical advantages Scala has over Java without a brain hemorrhage-inducing paradigm shift, followed by some tips and recommendations on Scala adoption in the real world and (as time allows) open-ended Q&A.
Teach your kids how to program with Python and the Raspberry PiJuan Gomez
RaspberryPis are the new frontier in enabling kids (and curious adults) to get access to an affordable and easy-to-program platform to build cool things. Over a million of these nifty little devices have been sold in less than a year and part of their popularity has been due to how easy it is to start programming on them.
In this session you'll learn how to get started with the Raspberry PI, initial set-up, configuration and some tips and tricks. Then we'll have a brief introduction to basic Python and we'll write a few simple programs that run on the RaspberryPI. The last section of the session will be dedicated to PyGame, we'll learn about surfaces, events, inputs, sprites, etc and demonstrate how to build very simple games that are as much fun for kids to write, than to play!
Slides for the presentation that I made for LambdaConf 2015 in Boulder
Codebase available at http://www.slideshare.net/paulszulc/monads-asking-the-right-question
Leveraging the Power of Graph Databases in PHPJeremy Kendall
The document discusses leveraging graph databases in PHP applications. It provides an overview of graph databases, their data model consisting of nodes, properties and relationships. It then demonstrates connecting to Neo4j from PHP using the Neo4jPHP wrapper, querying the graph database with Cypher, and modeling a news feed content structure as a graph of connected content nodes. Sample code is shown for adding new content nodes to a user's news feed graph through a LASTPOST relationship.
This document discusses relationships in Django ORM, including many-to-one and many-to-many relationships. It explains how to define relationships using ForeignKeys and ManyToManyField, and how to query, create, update, and delete related objects. Specifically, it shows how to define a Comment model with a ForeignKey to Post to create a many-to-one relationship, and a Tag model connected to Post through a ManyToManyField to represent many-to-many tags. It demonstrates traversing the relationships in both directions and performing CRUD operations on related objects.
Php 102: Out with the Bad, In with the GoodJeremy Kendall
In this session, we'll look at a typical PHP application, review a few of the horrible mistakes the fictional developer made, and then refactor the app according to some best practices. Along the way you might even learn a thing or two about PHP you don't already know.
Leveraging the Power of Graph Databases in PHPJeremy Kendall
This document provides an overview of leveraging graph databases in PHP. It begins with an introduction to graph databases and their data model. It then discusses Neo4j, a popular graph database, and its query language Cypher. The document demonstrates connecting to Neo4j from PHP, creating and querying nodes and relationships, and provides an example of modeling content like a news feed as a graph using the LASTPOST and NEXTPOST relationships to link content in order.
A talk given at the Wix Ukraine R&D meetup in Dnipropetrovsk, Ukraine on May 22, 2014.
So you've heard of this newfangled "Scala" thing and think it might be worth checking out. Good for you! Unfortunately, it's also daunting. Your first search for Scala is likely to pitch it as a "statically-typed hybrid object-oriented and functional language", which is technically true but doesn't really help much.
Instead, this talk will provide an overview of the language, focusing on five highly practical advantages Scala has over Java without a brain hemorrhage-inducing paradigm shift, followed by some tips and recommendations on Scala adoption in the real world and (as time allows) open-ended Q&A.
The document discusses three different inheritance mapping strategies in Hibernate:
1) Table per hierarchy - uses a single table with a discriminator column to distinguish entity types.
2) Table per class - uses separate tables for the parent and child entity classes.
3) Table per subclass - stores the shared parent class properties in each subclass table. Code examples and SQL DDL for each strategy are provided.
This document provides an introduction and overview of Moose, a modern object framework for Perl 5. It begins with background on the author and a brief history of object oriented programming in Perl 5. It then explains what Moose is, including that it handles object overhead, allows for introspection, and is used in production software. Examples are provided of basic class creation and usage with Moose as well as more advanced features like attributes, types, subclassing, roles, method modifiers, and introspection. The benefits of Moose are summarized as writing less code and avoiding implementation details to have a better object model.
Random And Dynamic Images Using Python CgiAkramWaseem
This document discusses using Python to generate random and dynamic images through CGI scripts. It begins with an overview and introduction to Python CGI programming and the Python Imaging Library (PIL). It then demonstrates a simple Python CGI script that serves a static image file. Next, it shows a random image script that selects a random image file from a directory. The document also covers using PIL to dynamically generate images and build a script that generates a random gradient image. It concludes by discussing building more advanced dynamic image scripts that accept arguments and graph log files.
The document provides examples of new Java 8 features including lambda expressions, streams, date/time API improvements, and parallel arrays. Key examples include using forEach() to iterate through a list, sorting arrays in parallel, and peeking into a stream to print file names without interrupting the stream processing. The date/time API changes are also summarized, including parsing date strings and getting the current time in a specific time zone.
Python Tricks That You Can't Live WithoutAudrey Roy
Audrey Roy gave a presentation on Python tricks for code readability and reuse at PyCon Philippines 2012. She discussed writing clean, understandable code by following PEP8 style guidelines and using linters. She also explained how to find and install reusable Python libraries from the standard library and PyPI, and how to write packages and modules to create reusable code.
Go for Object Oriented Programmers or Object Oriented Programming without Obj...Steven Francia
- Go provides object-oriented capabilities through struct types and interfaces without classes or inheritance. Structs can have methods defined on them to provide behaviors.
- Go uses composition over inheritance by allowing structs to be embedded within other structs to reuse their fields and methods. This is how interfaces are implemented in Go through embedding.
- Interfaces in Go provide polymorphism by defining a set of common methods. Any type that implements those methods can be used as that interface. This allows for broad interoperability between different types.
- While Go does not have subtyping, embedded fields and methods can be "promoted" to outer structs to reuse functionality, providing some object-oriented capabilities without classes or inheritance.
Nothing Hard Baked: Designing the Inclusive Webcolinbdclark
We've all experienced the frustration and exclusion of using an application that is awkwardly designed or poorly suited to our preferred device. In this talk, I redefine accessibility as a usability problem, exploring some of the limitations we've inherited from traditional, desktop-centric approaches to accessibility and user interface design. I also show a few of the techniques used in Fluid Infusion to support open web user interfaces that can more readily adapt to the needs of both developers and end-users alike.
User Interface Development with jQuerycolinbdclark
A half-day workshop covering all aspects of user interface development with jQuery. Starts with a JavaScript refresher, followed by coverage of each major feature of jQuery. Real world code samples are included throughout.
Presented by Colin Clark and Justin Obara at the 2010 Jasig Conference in San Diego.
The document discusses techniques for adding dynamic features to a library catalog built with the Sierra ILS. It describes how to extract data from HTML elements using JavaScript, add tooltips to indicate item statuses, and create dynamic maps to locations in the library by parsing call numbers. Key tips include using hidden elements to access non-displayed data, ensuring class selectors are unique, and passing 'this' to identify clicked elements. Code examples demonstrate status tooltips, location maps, and other enhancements.
The document discusses principles for designing JavaScript libraries and APIs, including predictability, simplicity, and flexibility. It emphasizes making APIs easy to use with conventions people already know, creating intuitive method names, providing sensible defaults, and masking complexity when possible.
[E-Dev-Day 2014][4/16] Review of Eolian, Eo, Bindings, Interfaces and What's ...EnlightenmentProject
[E-Dev-Day 2014][4/16] Review of Eolian, Eo, Bindings, Interfaces and What's to Come
at Enlightenment Developers Day 2014
https://phab.enlightenment.org/w/events/enlightenment_developer_day_2014/
7 Common mistakes in Go and when to avoid themSteven Francia
I've spent the past two years developing some of the most popular libraries and applications written in Go. I've also made a lot of mistakes along the way. Recognizing that "The only real mistake is the one from which we learn nothing. -John Powell", I would like to share with you the mistakes that I have made over my journey with Go and how you can avoid them.
The document discusses the goals and core concepts of the Freebase schema. It explains that Freebase is a labeled graph containing nodes and links, with the schema defining the types of nodes and properties that connect them. The schema allows structured queries over the graph. Core concepts discussed include instances, types, properties, and expected types that constrain property values. Different schema patterns like compound values, mediators, phylogenies, and enumerated values are also covered.
- The document discusses performance problems that can arise from ORM use and how to identify them. It recommends examining database logs to see queries being executed. Different types of scans like sequential, index, and bitmap scans are explained. Techniques like select_related, prefetch_related, and using indexes are suggested to reduce queries. The EXPLAIN command is demonstrated to analyze query plans and identify optimizations.
Apresentação criada para o Intervalo Técnico do CESAR realizado em 07/03/2012.
Grails é um framework web de alta produtividade para a plataforma Java.
Para isso ele utiliza tecnologias maduras do mundo Java, como os frameworks Hibernate e Spring, através de uma interface simples e consistente. Com pouca codificação e configuração, graças a linguagem Groovy, é possível criar aplicações web de forma fácil e ágil.
Anonymous classes in PHP 7 allow for the definition of classes without specifying a name. This document discusses what anonymous classes are, how to use them, and some limitations. Key points include: anonymous classes can implement interfaces and extend classes, inherit traits, and be used for test mocking and one-off objects due to their dynamic nature. However, they cannot be serialized, have limited scoping, and lack documentation.
Given at GopherFest 2015. This is an updated version of the talk I gave in NYC Nov 14 at GothamGo.
“We need to think about failure differently. Most people think mistakes are a necessary evil. Mistakes aren't a necessary evil, they aren't evil at all. They are an inevitable consequence of doing something new and as such should be seen as valuable. “ - Ed Catmull
As Go is a "new" programming language we are all experimenting and learning how to write better Go. While most presentations focus on the destination, this presentation focuses on the journey of learning Go and the mistakes I personally made while developing Hugo, Cobra, Viper, Afero & Docker.
(Video and more at fsharpforfunandprofit.com/csharp)
Curious about F# and want to understand how is it different from C#?
In this talk, we'll look at the basics of coding in F#, and how functional programming differs from object-oriented programming. Along the way, there will be many examples showing the same code written in C# and F# so that you can see for yourself how the two languages differ in style and approach.
Declarative Development Using Annotations In PHPStephan Schmidt
The document discusses the use of annotations in PHP development. It provides an overview of annotations in Java and how they differ in PHP. It then describes how the Stubbles PHP framework implements generic annotation support and uses annotations for serialization, persistence, security and other tasks. Examples are given of defining custom annotations and accessing annotation metadata via reflection.
The document discusses three different inheritance mapping strategies in Hibernate:
1) Table per hierarchy - uses a single table with a discriminator column to distinguish entity types.
2) Table per class - uses separate tables for the parent and child entity classes.
3) Table per subclass - stores the shared parent class properties in each subclass table. Code examples and SQL DDL for each strategy are provided.
This document provides an introduction and overview of Moose, a modern object framework for Perl 5. It begins with background on the author and a brief history of object oriented programming in Perl 5. It then explains what Moose is, including that it handles object overhead, allows for introspection, and is used in production software. Examples are provided of basic class creation and usage with Moose as well as more advanced features like attributes, types, subclassing, roles, method modifiers, and introspection. The benefits of Moose are summarized as writing less code and avoiding implementation details to have a better object model.
Random And Dynamic Images Using Python CgiAkramWaseem
This document discusses using Python to generate random and dynamic images through CGI scripts. It begins with an overview and introduction to Python CGI programming and the Python Imaging Library (PIL). It then demonstrates a simple Python CGI script that serves a static image file. Next, it shows a random image script that selects a random image file from a directory. The document also covers using PIL to dynamically generate images and build a script that generates a random gradient image. It concludes by discussing building more advanced dynamic image scripts that accept arguments and graph log files.
The document provides examples of new Java 8 features including lambda expressions, streams, date/time API improvements, and parallel arrays. Key examples include using forEach() to iterate through a list, sorting arrays in parallel, and peeking into a stream to print file names without interrupting the stream processing. The date/time API changes are also summarized, including parsing date strings and getting the current time in a specific time zone.
Python Tricks That You Can't Live WithoutAudrey Roy
Audrey Roy gave a presentation on Python tricks for code readability and reuse at PyCon Philippines 2012. She discussed writing clean, understandable code by following PEP8 style guidelines and using linters. She also explained how to find and install reusable Python libraries from the standard library and PyPI, and how to write packages and modules to create reusable code.
Go for Object Oriented Programmers or Object Oriented Programming without Obj...Steven Francia
- Go provides object-oriented capabilities through struct types and interfaces without classes or inheritance. Structs can have methods defined on them to provide behaviors.
- Go uses composition over inheritance by allowing structs to be embedded within other structs to reuse their fields and methods. This is how interfaces are implemented in Go through embedding.
- Interfaces in Go provide polymorphism by defining a set of common methods. Any type that implements those methods can be used as that interface. This allows for broad interoperability between different types.
- While Go does not have subtyping, embedded fields and methods can be "promoted" to outer structs to reuse functionality, providing some object-oriented capabilities without classes or inheritance.
Nothing Hard Baked: Designing the Inclusive Webcolinbdclark
We've all experienced the frustration and exclusion of using an application that is awkwardly designed or poorly suited to our preferred device. In this talk, I redefine accessibility as a usability problem, exploring some of the limitations we've inherited from traditional, desktop-centric approaches to accessibility and user interface design. I also show a few of the techniques used in Fluid Infusion to support open web user interfaces that can more readily adapt to the needs of both developers and end-users alike.
User Interface Development with jQuerycolinbdclark
A half-day workshop covering all aspects of user interface development with jQuery. Starts with a JavaScript refresher, followed by coverage of each major feature of jQuery. Real world code samples are included throughout.
Presented by Colin Clark and Justin Obara at the 2010 Jasig Conference in San Diego.
The document discusses techniques for adding dynamic features to a library catalog built with the Sierra ILS. It describes how to extract data from HTML elements using JavaScript, add tooltips to indicate item statuses, and create dynamic maps to locations in the library by parsing call numbers. Key tips include using hidden elements to access non-displayed data, ensuring class selectors are unique, and passing 'this' to identify clicked elements. Code examples demonstrate status tooltips, location maps, and other enhancements.
The document discusses principles for designing JavaScript libraries and APIs, including predictability, simplicity, and flexibility. It emphasizes making APIs easy to use with conventions people already know, creating intuitive method names, providing sensible defaults, and masking complexity when possible.
[E-Dev-Day 2014][4/16] Review of Eolian, Eo, Bindings, Interfaces and What's ...EnlightenmentProject
[E-Dev-Day 2014][4/16] Review of Eolian, Eo, Bindings, Interfaces and What's to Come
at Enlightenment Developers Day 2014
https://phab.enlightenment.org/w/events/enlightenment_developer_day_2014/
7 Common mistakes in Go and when to avoid themSteven Francia
I've spent the past two years developing some of the most popular libraries and applications written in Go. I've also made a lot of mistakes along the way. Recognizing that "The only real mistake is the one from which we learn nothing. -John Powell", I would like to share with you the mistakes that I have made over my journey with Go and how you can avoid them.
The document discusses the goals and core concepts of the Freebase schema. It explains that Freebase is a labeled graph containing nodes and links, with the schema defining the types of nodes and properties that connect them. The schema allows structured queries over the graph. Core concepts discussed include instances, types, properties, and expected types that constrain property values. Different schema patterns like compound values, mediators, phylogenies, and enumerated values are also covered.
- The document discusses performance problems that can arise from ORM use and how to identify them. It recommends examining database logs to see queries being executed. Different types of scans like sequential, index, and bitmap scans are explained. Techniques like select_related, prefetch_related, and using indexes are suggested to reduce queries. The EXPLAIN command is demonstrated to analyze query plans and identify optimizations.
Apresentação criada para o Intervalo Técnico do CESAR realizado em 07/03/2012.
Grails é um framework web de alta produtividade para a plataforma Java.
Para isso ele utiliza tecnologias maduras do mundo Java, como os frameworks Hibernate e Spring, através de uma interface simples e consistente. Com pouca codificação e configuração, graças a linguagem Groovy, é possível criar aplicações web de forma fácil e ágil.
Anonymous classes in PHP 7 allow for the definition of classes without specifying a name. This document discusses what anonymous classes are, how to use them, and some limitations. Key points include: anonymous classes can implement interfaces and extend classes, inherit traits, and be used for test mocking and one-off objects due to their dynamic nature. However, they cannot be serialized, have limited scoping, and lack documentation.
Given at GopherFest 2015. This is an updated version of the talk I gave in NYC Nov 14 at GothamGo.
“We need to think about failure differently. Most people think mistakes are a necessary evil. Mistakes aren't a necessary evil, they aren't evil at all. They are an inevitable consequence of doing something new and as such should be seen as valuable. “ - Ed Catmull
As Go is a "new" programming language we are all experimenting and learning how to write better Go. While most presentations focus on the destination, this presentation focuses on the journey of learning Go and the mistakes I personally made while developing Hugo, Cobra, Viper, Afero & Docker.
(Video and more at fsharpforfunandprofit.com/csharp)
Curious about F# and want to understand how is it different from C#?
In this talk, we'll look at the basics of coding in F#, and how functional programming differs from object-oriented programming. Along the way, there will be many examples showing the same code written in C# and F# so that you can see for yourself how the two languages differ in style and approach.
Declarative Development Using Annotations In PHPStephan Schmidt
The document discusses the use of annotations in PHP development. It provides an overview of annotations in Java and how they differ in PHP. It then describes how the Stubbles PHP framework implements generic annotation support and uses annotations for serialization, persistence, security and other tasks. Examples are given of defining custom annotations and accessing annotation metadata via reflection.
Declarative Development Using Annotations In PHPstubbles
The document summarizes a presentation about using annotations in PHP for declarative development. It discusses how annotations are used in Java and frameworks like PHPUnit, and how the Stubbles PHP framework implements a generic annotation system to handle tasks like serialization, persistence, and CSV export by annotating classes and methods. Key capabilities of the Stubbles annotation system include defining and accessing custom annotations via reflection, and using annotations to configure how classes and properties are handled for different use cases.
This document describes a student information system project done by a student named Arjun N.M. It includes an acknowledgment, descriptions of object-oriented programming concepts and the project details. The project uses C++ to create a student class with functions for getting, putting, modifying and deleting student data from a binary file. The main function provides a menu to add, delete, display and search student records.
Desarrollando aplicaciones web en minutosEdgar Suarez
This document provides an overview of the Ruby programming language, including:
- Its creation by Yukihiro Matsumoto in 1993 and key influences like Perl, Smalltalk, and Lisp.
- Its main features like dynamic typing, duck typing, readable syntax, metaprogramming capabilities, blocks, exceptions, and object orientation.
- How Ruby on Rails was created by David Heinemeier Hansson in 2004 to build web applications using Ruby.
- Common tasks when using Ruby like installing Ruby and Rails, generating models and migrations, associations, validations, and using the MVC framework.
This document summarizes Hamlet D'Arcy's presentation on AST transformations using tools like Lombok, Groovy, CodeNarc, and Mirah. It discusses how these tools allow manipulating abstract syntax trees to add functionality like automatic property generation, static analysis, and embedded domain-specific languages. Local AST transformations are performed without changing bytecode or requiring new semantics. Type checking can also be added through transformations. Mirah compiles to pure Java classes without additional syntax.
The document provides information about an introduction to Python programming presented by Kiattisak Anoochitarom. It begins with welcoming messages and details about the presenter. It then discusses various Python topics like data types, operators, control flow statements, functions, built-in functions, and string and list methods. Examples are provided throughout to demonstrate different Python concepts and syntax. The goal is to teach the basics of the Python language.
Swift - Modern & Expressive, or Magical Unicorn?Mike Jones
Presentation on Swift 1.0 to give those coming from other languages a brief overview of the language. Presented first at Reasons to Be Creative, Brighton. 2015
Abstraction, Encapsulation, Polymorphism, and Interfaces: whether you've been programming in PHP for years or are just starting your journey, these terms can be overwhelming even on a good day. Variables, conditionals, those all make sense. But this whole Object-Oriented thing is WAY more complicated. Not only that, people that already understand it act like it's so easy and they talk right over the simple questions and never explain the basic concepts in a way that actually makes sense. In this session we'll take you through real life examples of Object-Oriented terminology in a way that will make sense of all the mumbo jumbo and allow you to utilizing OOP immediately.
The document proposes design changes and a new framework called Fantom that aims to create a simpler and more modern Java-like language by removing unnecessary syntax like semicolons, adding features like string interpolation and type inference, and providing a framework called Tales that embraces HTML, JavaScript, and SQL for building web applications in a simpler way compared to other frameworks. Fantom also focuses on better modularity, APIs, concurrency model with actors, and integration of static and dynamic typing features to achieve a very boring but productive language and framework for application development.
This document provides an overview of the Python programming language, including its history, key features, syntax examples, and common uses. It also discusses how Python can be used under Linux and some potential issues.
Introduction to the Kotlin statically typed programming language, a concise and elegant language targeting the Java Virtual Machine (JVM) and Javascript which has good support for functional programming and also object-oriented programming.
Includes examples of key features.
The document discusses object-oriented programming in Ruby. It introduces some key concepts in OOP like classes, objects, identity, state, and behavior. It also covers Ruby-specific paradigms like modules and mixins. Some common design patterns are mentioned like singleton, iterator, and decorator. The document provides examples to illustrate concepts like inheritance, polymorphism, and visibility in modules.
The document discusses object-oriented programming concepts in C#, including defining classes, constructors, properties, static members, interfaces, inheritance, and polymorphism. It provides examples of defining a simple Cat class with fields, a constructor, properties, and methods. It also demonstrates using the Dog class by creating dog objects, setting their properties, and calling their bark method.
BioPerl is an open source collection of Perl modules for bioinformatics. It contains over 550 modules covering tasks like sequence analysis, multiple sequence alignment, and working with common file formats. The modules provide reusable subroutines and methods to parse data, access databases, and perform other common bioinformatics operations. BioPerl code is portable and can be easily incorporated into scripts and programs. The modules are organized into groups and adhere to object-oriented principles in Perl, with classes, methods, and object blessed references.
Meetup di GDG Italia - Leonardo Pirro - Codemotion Rome 2018 Codemotion
I Google Developer Group (GDG) sono una community internazionale di appassionati delle tecnologie: sviluppatori, designer e startupper. Sono suddivisi per città, e GDG Italia è la famiglia che rappresenta tutti i gruppi presenti sul territorio locale. Mike Trizio e Carmelo Ventimiglia introdurranno i GDG, le loro attività e perchè è utile e divertente farne parte. Leonardo Pirro invece ci introdurrà Kotlin, un linguaggio di programmazione che ha avuto un crescente successo negli ultimi anni. Analizzeremo le caratteristiche principali del linguaggio e i suoi vantaggi/benefici rispetto a Java.
Python programming computer science and engineeringIRAH34
Python supports object-oriented programming (OOP) through classes and objects. A class defines the attributes and behaviors of an object, while an object is an instance of a class. Inheritance allows classes to inherit attributes and methods from parent classes. Polymorphism enables classes to define common methods that can behave differently depending on the type of object. Operator overloading allows classes to define how operators like + work on class objects.
This document discusses various data types and data structures in Perl, including scalars, arrays, hashes, references, and object-oriented programming. It provides examples of creating sequences and sequence objects using BioPerl, parsing multi-line sequence data, and accessing GenBank sequence data through the Bio::DB::GenBank module.
The document discusses advanced input/output (I/O) streams in Java, including character and byte streams, input/output streams, node and filter streams, serialization, and common stream classes like File, Reader, Writer, InputStream, and OutputStream. Key methods for reading, writing, serialization, and deserialization are also summarized.
Similar to What's in a language? By Cheng Lou (20)
React is capable of rendering to more environments than the browser. React is really two separate pieces: core and renderers. ReactDOM, ReactNative, ReactVR are but a few renderers in existence. With the Fiber reconciler rewrite comes an official renderer API. Dustan will look at a number of renderers that already exist and implement a React renderer of his own!
Facebook introduced snapshot testing in Jest last year and it has already picked up a huge interest. Why is snapshot testing so popular? How and when should you use it? Can you use it even if you’re not using Jest? Anna will explain all this and more in only 10 minutes
Next.js has generated a lot of hype in the short time that it’s been out (rightly so). It’s unveiling coincided with an initiative to rebuild Deliveroo's web application as a standalone app. Jasdeep will share his experiences using it so far, including some of the benefits & trade-offs.
The road to <> styled-components: CSS in component-based systems by Max S...React London 2017
There's been a revolution; welcome the Component Age! Now what about styles? Max sat down with Glen Maddern (CSS modules) to think about how styles fit into our post-revolution world. They took the best of CSS and the web to create a fantastic new way to style component-based systems.
Logux, a new approach to client-server communication by Andrey SitnikReact London 2017
Combining ideas from both Redux and CRDT, Logux is a new tool which replaces AJAX with real-time data in applications, synchronising action logs between the client and server while also providing an offline mode. This approach could significantly simplify application code and bring plug&play support for live updates and offline editing.
This document describes the building of an Arduino-powered robotic crossbow controlled by a React Native mobile application. Key details include:
- The crossbow is powered by an Arduino microcontroller and can shoot projectiles up to 150 feet per second. It is remotely controlled via Bluetooth using a mobile app.
- The mobile app was created with React Native and features a joystick to control the crossbow's pan and tilt servos as well as a button to fire the crossbow.
- Communication between the app and Arduino is done through serial Bluetooth to trigger functions like firing the crossbow or moving its position. The crossbow's movement and firing are implemented through code on the Arduino.
This year, half of world’s population will be connected to the internet; most of them in the developing world, on mobile, over poor network. For them offline support is not a luxury: it is basic accessibility. Jani will walk us through how to architect React Native and progressive React web apps for the offline era.
Realtime Webpack - Pushing on-demand bundling to the limits by Oliver Woodings React London 2017
Bundling JavaScript nowadays is trivial. But what if you need to do it 10,000 times a day to thousands of users, with sourcemaps, served directly to the browser in under 2 seconds? Oliver will show us how they did this at Qubit
JavaScript Code Formatting With Prettier by Christopher ChedeauReact London 2017
JavaScript developers are spending soooo much time formatting their code and even more in back and forth in code review fixing small nits. It turns out that machines are really good at doing this kind of tasks. Christopher will walk us through the technical and people challenges of bringing a JavaScript code formatter to reality.
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.
In the rapidly evolving landscape of technologies, XML continues to play a vital role in structuring, storing, and transporting data across diverse systems. The recent advancements in artificial intelligence (AI) present new methodologies for enhancing XML development workflows, introducing efficiency, automation, and intelligent capabilities. This presentation will outline the scope and perspective of utilizing AI in XML development. The potential benefits and the possible pitfalls will be highlighted, providing a balanced view of the subject.
We will explore the capabilities of AI in understanding XML markup languages and autonomously creating structured XML content. Additionally, we will examine the capacity of AI to enrich plain text with appropriate XML markup. Practical examples and methodological guidelines will be provided to elucidate how AI can be effectively prompted to interpret and generate accurate XML markup.
Further emphasis will be placed on the role of AI in developing XSLT, or schemas such as XSD and Schematron. We will address the techniques and strategies adopted to create prompts for generating code, explaining code, or refactoring the code, and the results achieved.
The discussion will extend to how AI can be used to transform XML content. In particular, the focus will be on the use of AI XPath extension functions in XSLT, Schematron, Schematron Quick Fixes, or for XML content refactoring.
The presentation aims to deliver a comprehensive overview of AI usage in XML development, providing attendees with the necessary knowledge to make informed decisions. Whether you’re at the early stages of adopting AI or considering integrating it in advanced XML development, this presentation will cover all levels of expertise.
By highlighting the potential advantages and challenges of integrating AI with XML development tools and languages, the presentation seeks to inspire thoughtful conversation around the future of XML development. We’ll not only delve into the technical aspects of AI-powered XML development but also discuss practical implications and possible future directions.
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
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.
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.
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofsAlex Pruden
This paper presents Reef, a system for generating publicly verifiable succinct non-interactive zero-knowledge proofs that a committed document matches or does not match a regular expression. We describe applications such as proving the strength of passwords, the provenance of email despite redactions, the validity of oblivious DNS queries, and the existence of mutations in DNA. Reef supports the Perl Compatible Regular Expression syntax, including wildcards, alternation, ranges, capture groups, Kleene star, negations, and lookarounds. Reef introduces a new type of automata, Skipping Alternating Finite Automata (SAFA), that skips irrelevant parts of a document when producing proofs without undermining soundness, and instantiates SAFA with a lookup argument. Our experimental evaluation confirms that Reef can generate proofs for documents with 32M characters; the proofs are small and cheap to verify (under a second).
Paper: https://eprint.iacr.org/2023/1886
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Maruthi Prithivirajan, Head of ASEAN & IN Solution Architecture, Neo4j
Get an inside look at the latest Neo4j innovations that enable relationship-driven intelligence at scale. Learn more about the newest cloud integrations and product enhancements that make Neo4j an essential choice for developers building apps with interconnected data and generative AI.
3. A long long time ago...
// this prints 5 times
print(1)
print(2)
print(3)
print(4)
print(5)
4. A long long time ago...
// this prints 11 times
print(1)
print(2)
print(3)
print(4)
print(5)
print(6)
print(7)
print(8)
print(9)
print(10)
print(11)
5. A long long time ago...
// @pragma 2-10
print(2)
print(3)
print(4)
print(5)
print(6)
print(7)
print(8)
print(9)
print(10)
// @end pragma 2-10
17. type profession = ... /* type */
let person1 = ... /* binding */
let getProfession person => ... /* function */
18. type profession = ...
let person1 = ...
let getProfession person => ...
19. module School = { /* <-- module */
type profession = ...
let person1 = ...
let getProfession person => ...
};
20. module School = { /* <-- module */
type profession = ...
let person1 = ...
let getProfession person => ...
module GPA = {...} /* <-- nested module */
};
21. module School = { /* <-- module */
type profession = ...
let person1 = ...
let getProfession person => ...
module GPA = {...} /* <-- nested module */
};
let anotherPerson: School.profession = ...
22. module BaseComponent = {
let greeting = "Hello from base component";
let count = 10;
};
module ActualComponent = {
include BaseComponent; /* <-- JS object spread! */
let greeting = "Hello from actual component";
};
23. // Generated by BUCKLESCRIPT VERSION 1.2.1,
// PLEASE EDIT WITH CARE
var BaseComponent = /* module */[
/* greeting */"Hello from base component",
/* count */10
];
var ActualComponent = /* module */[
/* count */10,
/* greeting */"Hello from actual component"
];
module BaseComponent = {
let greeting = "Hello from base component";
let count = 10;
};
module ActualComponent = {
include BaseComponent; /* <-- JS object spread! */
let greeting = "Hello from actual component";
};
25. What Did We Push Down?
• Disciplined "mixins"
module BaseComponent = {
let greeting = "Hello from base component";
let count = 10;
};
module ActualComponent = {
include BaseComponent; /* <-- JS object spread! */
let greeting = "Hello from actual component";
};
26. What Did We Push Down?
• Disciplined "mixins"
module BaseComponent = {
let greeting = "Hello from base component";
let count = 10;
};
module ActualComponent = {
include BaseComponent; /* <-- JS object spread! */
let greeting = "Hello from actual component";
};
29. Every File Is a Module
type profession = ... /* type */
let person1 = ... /* binding */
let getProfession person => ... /* function */
30. Every File Is a Module
module School = {
type profession = ...
let person1 = ...
let getProfession person => ...
};
31. Every File Is a Module
/* school.re */
module School = {
type profession = ...
let person1 = ...
let getProfession person => ...
};
32. Every File Is a Module
/* school.re */
type profession = ...
let person1 = ...
let getProfession person => ...
33. Every File Is a Module
/* school.re */
type profession = ...
let person1 = ...
let getProfession person => ...
/* agenda.re */
let p = School.person 1;
34. Every File Is a Module
/* school.re */
type profession = ...
let person1 = ...
let getProfession person => ...
module GPA = {...} /* <-- nested module */
/* agenda.re */
let p = School.person 1;
35. Every File Is a Module
/* school.re */
module GPA = {...};
module Records = {...};
module Rooms = {...};
36. Every File Is a Module
/* a.re */
let a = 1;
let b = 2;
let c = 3;
/* b.re */
include A;
39. Module Type (Signature)
module School = {
type person = string;
type people = list person;
let peopleDatabase: people = ["Mary", "John", "joe"];
let addPerson (p: person) (database: people) => [p, ...database];
let sortPeopleAlphabetically (database: people) => ...
};
40. Module Type (Signature)
module School = {
type person = string;
type people = list person;
let peopleDatabase: people = ["Mary", "John", "joe"];
let addPerson (p: person) (database: people) => [p, ...database];
let sortPeopleAlphabetically (database: people) => ...
};
41. Module Type (Signature)
module School = {
type person = string;
type people = list person;
let peopleDatabase: people = ["Mary", "John", "joe"];
let addPerson (p: person) (database: people) => [p, ...database];
let sortPeopleAlphabetically (database: people) => ...
};
42. Module Type (Signature)
module School = {
type person = string;
type people = list person;
let peopleDatabase: people = ["Mary", "John", "joe"];
let addPerson (p: person) (database: people) => [p, ...database];
let sortPeopleAlphabetically (database: people) => ...
};
43. Module Type (Signature)
module School = {
type person = string;
type people = list person;
let peopleDatabase: people = ["Mary", "John", "joe"];
let addPerson (p: person) (database: people) => [p, ...database];
let sortPeopleAlphabetically (database: people) => ...
};
44. module School = {
type person = string;
type people = list person;
let peopleDatabase: people = ["Mary", "John", "joe"];
let addPerson (p: person) (database: people) => [p, ...database];
let sortPeopleAlphabetically (database: people) => ...
};
45. module School = {
type person = string;
type people = list person;
let peopleDatabase: people = ["Mary", "John", "joe"];
let addPerson (p: person) (database: people) => [p, ...database];
let sortPeopleAlphabetically (database: people) => ...
};
{
type person = string;
type people = list person;
let peopleDatabase: people;
let addPerson: person => people => people;
let sortPeopleAlphabetically: people => people;
};
46. module School: SchoolType = {
type person = string;
type people = list person;
let peopleDatabase: people = ["Mary", "John", "joe"];
let addPerson (p: person) (database: people) => [p, ...database];
let sortPeopleAlphabetically (database: people) => ...
};
module type SchoolType = {
type person = string;
type people = list person;
let peopleDatabase: people;
let addPerson: person => people => people;
let sortPeopleAlphabetically: people => people;
};
47. • Module (Foo) -> normal file (foo.re)
• Module type (Foo) -> ???
48. • Module (Foo) -> normal file (foo.re)
• Module type (Foo) -> interface file (foo.rei)
49. What Did We Push Down?
• formalized documentation
50.
51.
52.
53.
54.
55. module School: SchoolType = {
type person = string;
type people = list person;
let peopleDatabase: people = ["Mary", "John", "joe"];
let addPerson (p: person) (database: people) => [p, ...database];
let sortPeopleAlphabetically (database: people) => ...
};
module type SchoolType = {
type person = string;
type people = list person;
let peopleDatabase: people;
let addPerson: person => people => people;
let sortPeopleAlphabetically: people => people;
};
56. module School: SchoolType = {
type person = string;
type people = list person;
let peopleDatabase: people = ["Mary", "John", "joe"];
let addPerson (p: person) (database: people) => [p, ...database];
let sortPeopleAlphabetically (database: people) => ...
};
module type SchoolType = {
type person = string;
type people = list person;
let peopleDatabase: people;
let addPerson: person => people => people;
/* let sortPeopleAlphabetically: people => people; */
};
57. module School: SchoolType = {
type person = string;
type people = list person;
let peopleDatabase: people = ["Mary", "John", "joe"];
let addPerson (p: person) (database: people) => [p, ...database];
let sortPeopleAlphabetically (database: people) => ...
};
module type SchoolType = {
type person = string;
type people = list person;
let peopleDatabase: people;
let addPerson: person => people => people;
/* let sortPeopleAlphabetically: people => people; */
};
59. Last Trick: abstract type
• "Lots of languages have facilities for encapsulation, but not
abstraction"
60. Last Trick: abstract type
module type SchoolType = {
type person = string;
type people = list person;
let peopleDatabase: people;
let addPerson: person => people => people;
let sortPeopleAlphabetically: people => people;
};
61. Last Trick: abstract type
module type SchoolType = {
type person = string;
type people = list person;
let peopleDatabase: people;
let addPerson: person => people => people;
/* let sortPeopleAlphabetically: people => people; */
};
62. Last Trick: abstract type
module type SchoolType = {
type person = string;
type people = list person;
let peopleDatabase: people;
let addPerson: person => people => people;
let sortPeopleAlphabetically: people => people;
};
63. Last Trick: abstract type
module type SchoolType = {
type person /* = string */;
type people /* = list person */;
let peopleDatabase: people;
let addPerson: person => people => people;
let sortPeopleAlphabetically: people => people;
};
64. Last Trick: abstract type
module type SchoolType = {
type person;
type people;
let peopleDatabase: people;
let addPerson: person => people => people;
let sortPeopleAlphabetically: people => people;
};
65. Last Trick: abstract type
module type SchoolType = {
type person;
type people;
let peopleDatabase: people;
let addPerson: person => people => people;
let sortPeopleAlphabetically: people => people;
};
66.
67.
68. What Did We Push Down?
• Encapsulation: The implementation details stay implementation
details
React.__SECRET_DOM_DO_NOT_USE_OR_YOU_WILL_BE_FIRED
• Abstraction: nuance of breaking change migration paths
69. What Did We Push Down?
• Encapsulation: The implementation details stay implementation
details
React.__SECRET_DOM_DO_NOT_USE_OR_YOU_WILL_BE_FIRED
• Abstraction: nuance of breaking change migration paths