Web development is hard. Managing asynchronous events and updating the dom directly quickly becomes a mess. Cycle.js uses streams and pure functions to help. You can find the presentation video in https://youtu.be/1yXgFFVVJDw
Managing application state, asynchronous events and manually updating the DOM is hard. Cycle.js is a minimal framework that combines a pure functional programming style, immutability, and state management using Observables and Virtual DOM rendering. In this presentation we take a mild introduction to why that's interesting.
Talk at Amsterdam Scala about Hype in the community after the announcement of the death of Tagless Final, 14/03/2019.
NOTE: exported to powerpoint from keynote, possible layout issues on export :)
cats.effect.IO - Scala Vienna Meetup February 2019Daniel Pfeiffer
These slides were part of my presentation at the February Meetup of the Scala Vienna User Group and give a quick into into cats.effect.IO as an alternative to scala.concurrent.Future.
Web development is hard. Managing asynchronous events and updating the dom directly quickly becomes a mess. Cycle.js uses streams and pure functions to help. You can find the presentation video in https://youtu.be/1yXgFFVVJDw
Managing application state, asynchronous events and manually updating the DOM is hard. Cycle.js is a minimal framework that combines a pure functional programming style, immutability, and state management using Observables and Virtual DOM rendering. In this presentation we take a mild introduction to why that's interesting.
Talk at Amsterdam Scala about Hype in the community after the announcement of the death of Tagless Final, 14/03/2019.
NOTE: exported to powerpoint from keynote, possible layout issues on export :)
cats.effect.IO - Scala Vienna Meetup February 2019Daniel Pfeiffer
These slides were part of my presentation at the February Meetup of the Scala Vienna User Group and give a quick into into cats.effect.IO as an alternative to scala.concurrent.Future.
Swift.berlin, this time kindly hosted by Wooga, invited Crispy's own Christian Weyer to speak about whether Apple's new programming language Swift is ready for primetime use in corporate, production environments. In order to answer that question, Christian ported an existing OS X application to Swift and created a new iOS application from scratch. Watch the video to see his results and the conclusions he drew from these experiences.
Video available at https://vimeo.com/113089291
In this talk we explain the basics of Typed Actors as they are to land in Akka as a stable module in 2018. Typed Actors ("Akka Typed") re-introduce typesafety to concurrency and distributed systems thanks to the abstraction of a typed actor reference.
Flying Futures at the same sky can make the sun rise at midnightWiem Zine Elabidine
Template made by Slidesgo
Implementing responsive and high-performance applications is the most obvious challenge that we face in our programming life. It’s interesting to deeply study concurrency and parallelism on the JVM. In this talk you will learn how to describe parallel tasks and the idea behind Futures and the execution context. I will cover the tricky part of concurrency when the concurrent tasks share and use the same resources and how flying Futures in the same sky can make the sun rise at midnight! At the end I will talk about some possible solutions that you can use to reduce your worries about the pitfalls of concurrency.
Architecture for scalable Angular applicationsPaweł Żurowski
Architecture for applications that scales. It uses redux pattern and ngrx implementation with effects and store.
It's refreshed (but still 2+) presentation from my inner talk for colegues.
Overview
You’ve written your unit tests and your integration tests. And yet, you’re still finding bugs in your code. In this talk we’ll cover advanced types of testing that helps you write higher quality code with less bugs.
Unit and integration tests are great first steps towards improving the quality of your python project. Ever wonder if there’s even more you can do? In this talk we’ll cover additional types of tests that can help improve the quality and robustness of your python projects: stateful property-based testing, generative fuzz testing, long term stability testing and advanced multithreaded testing.
This talk is more than just theory. We’ll look at specific libraries and frameworks that help you write these advanced tests. I’ll also show you real world examples of bugs these tests have found from projects that I maintain.
Crossing the Bridge: Connecting Rails and your Front-end FrameworkDaniel Spector
Presented at Railsconf 2015 by Daniel Spector, @danielspecs.
Crossing the Bridge explores tools, patterns and best practices to connect your Javascript MVC framework to Rails in the most seamless way possible. The talk progresses from demonstrating the standard API request cycle to preloading data to your client-side framework to rendering your javascript on the server. It explores Isomorphic Javascript and ways of implementing it with Rails.
Scala is an alternative JVM language with both object-oriented and functional programming paradigms. Scala development with the Java EE 7 platform is definitely possible and can be a pleasant experience. If you have uncertainty about how Scala can fit around the Java EE 7 platform, then this session aims to illustrate the huge benefit that Scala adoption can bring to the platform. Many other developers are taking advantage and the challenge of the JVM’s capability of being a vessel for multi-language programming. You no longer have to write every single project using Java, even if you like Lambdas experiences. For the developer and engineering terms that feeling a little braver than usual, Scala is attractive as it is strongly typed and lets you set the gauge on how object oriented or how functional you want to be. You will learn how to reuse the annotations and creating Scala plain object safely and concisely. This session will highlight and contrast the experience I had developing Scala solutions with Java EE, and there will be plenty of advice about using the functional programming features against the Java object oriented API.
Scala language overview
Java EE 7 architecture and design
WildFly 8 application server
Using Gradle as a build tool
How to create beans in Scala with dependency injection
JAX-RS endpoints
Servlet Endpoints
JMS Messaging
Scala adoption advice and hints for sustainable team development
JavaCro 2014 Scala and Java EE 7 Development ExperiencesPeter Pilgrim
Scala is an alternative JVM language with both object-oriented and functional programming paradigms. Scala development with the Java EE 7 platform is definitely possible and can be a pleasant experience. If you have uncertainty about how Scala can fit around the Java EE 7 platform, then this session aims to illustrate the huge benefit that Scala adoption can bring to the platform. Many other developers are taking advantage and the challenge of the JVM’s capability of being a vessel for multi-language programming. You no longer have to write every single project using Java, even if you like Lambdas experiences.
For the developer and engineering terms that feeling a little braver than usual, Scala is attractive as it is strongly typed and lets you set the gauge on how object oriented or how functional you want to be. You will learn how to reuse the annotations and creating Scala plain object safely and concisely.
This session will highlight and contrast the experience I had developing Scala solutions with Java EE, and there will be plenty of advice about using the functional programming features against the Java object oriented API.
Scala language overview
Java EE 7 architecture and design
Using Gradle as a build tool
How to create beans in Scala with dependency injection
JAX-RS endpoints
Servlet Endpoints
JMS Messaging
Scala adoption advice and hints for sustainable team development
Reactive Programming ist in der Enterprise-Java-Welt angekommen. Frameworks wie Akka und RxJava waren Vorreiter, mit WebFlux und Project Reactor in Spring 5 ist ein weiteres prominentes Framework dazugekommen. Aber was steckt eigentlich hinter Reactive Programming? Wann ergibt der Einsatz Sinn und wie kann ich es in bestehende Anwendungen integrieren? Die Session gibt eine Einführung in das Programmiermodell, zeigt die Umsetzung in den verschiedenen Projekten, diskutiert, wann Reactive Programming Sinn ergibt, und liefert einen Ausblick, welche Themen im Bereich Reactive Programming in Zukunft kommen.
Swift.berlin, this time kindly hosted by Wooga, invited Crispy's own Christian Weyer to speak about whether Apple's new programming language Swift is ready for primetime use in corporate, production environments. In order to answer that question, Christian ported an existing OS X application to Swift and created a new iOS application from scratch. Watch the video to see his results and the conclusions he drew from these experiences.
Video available at https://vimeo.com/113089291
In this talk we explain the basics of Typed Actors as they are to land in Akka as a stable module in 2018. Typed Actors ("Akka Typed") re-introduce typesafety to concurrency and distributed systems thanks to the abstraction of a typed actor reference.
Flying Futures at the same sky can make the sun rise at midnightWiem Zine Elabidine
Template made by Slidesgo
Implementing responsive and high-performance applications is the most obvious challenge that we face in our programming life. It’s interesting to deeply study concurrency and parallelism on the JVM. In this talk you will learn how to describe parallel tasks and the idea behind Futures and the execution context. I will cover the tricky part of concurrency when the concurrent tasks share and use the same resources and how flying Futures in the same sky can make the sun rise at midnight! At the end I will talk about some possible solutions that you can use to reduce your worries about the pitfalls of concurrency.
Architecture for scalable Angular applicationsPaweł Żurowski
Architecture for applications that scales. It uses redux pattern and ngrx implementation with effects and store.
It's refreshed (but still 2+) presentation from my inner talk for colegues.
Overview
You’ve written your unit tests and your integration tests. And yet, you’re still finding bugs in your code. In this talk we’ll cover advanced types of testing that helps you write higher quality code with less bugs.
Unit and integration tests are great first steps towards improving the quality of your python project. Ever wonder if there’s even more you can do? In this talk we’ll cover additional types of tests that can help improve the quality and robustness of your python projects: stateful property-based testing, generative fuzz testing, long term stability testing and advanced multithreaded testing.
This talk is more than just theory. We’ll look at specific libraries and frameworks that help you write these advanced tests. I’ll also show you real world examples of bugs these tests have found from projects that I maintain.
Crossing the Bridge: Connecting Rails and your Front-end FrameworkDaniel Spector
Presented at Railsconf 2015 by Daniel Spector, @danielspecs.
Crossing the Bridge explores tools, patterns and best practices to connect your Javascript MVC framework to Rails in the most seamless way possible. The talk progresses from demonstrating the standard API request cycle to preloading data to your client-side framework to rendering your javascript on the server. It explores Isomorphic Javascript and ways of implementing it with Rails.
Scala is an alternative JVM language with both object-oriented and functional programming paradigms. Scala development with the Java EE 7 platform is definitely possible and can be a pleasant experience. If you have uncertainty about how Scala can fit around the Java EE 7 platform, then this session aims to illustrate the huge benefit that Scala adoption can bring to the platform. Many other developers are taking advantage and the challenge of the JVM’s capability of being a vessel for multi-language programming. You no longer have to write every single project using Java, even if you like Lambdas experiences. For the developer and engineering terms that feeling a little braver than usual, Scala is attractive as it is strongly typed and lets you set the gauge on how object oriented or how functional you want to be. You will learn how to reuse the annotations and creating Scala plain object safely and concisely. This session will highlight and contrast the experience I had developing Scala solutions with Java EE, and there will be plenty of advice about using the functional programming features against the Java object oriented API.
Scala language overview
Java EE 7 architecture and design
WildFly 8 application server
Using Gradle as a build tool
How to create beans in Scala with dependency injection
JAX-RS endpoints
Servlet Endpoints
JMS Messaging
Scala adoption advice and hints for sustainable team development
JavaCro 2014 Scala and Java EE 7 Development ExperiencesPeter Pilgrim
Scala is an alternative JVM language with both object-oriented and functional programming paradigms. Scala development with the Java EE 7 platform is definitely possible and can be a pleasant experience. If you have uncertainty about how Scala can fit around the Java EE 7 platform, then this session aims to illustrate the huge benefit that Scala adoption can bring to the platform. Many other developers are taking advantage and the challenge of the JVM’s capability of being a vessel for multi-language programming. You no longer have to write every single project using Java, even if you like Lambdas experiences.
For the developer and engineering terms that feeling a little braver than usual, Scala is attractive as it is strongly typed and lets you set the gauge on how object oriented or how functional you want to be. You will learn how to reuse the annotations and creating Scala plain object safely and concisely.
This session will highlight and contrast the experience I had developing Scala solutions with Java EE, and there will be plenty of advice about using the functional programming features against the Java object oriented API.
Scala language overview
Java EE 7 architecture and design
Using Gradle as a build tool
How to create beans in Scala with dependency injection
JAX-RS endpoints
Servlet Endpoints
JMS Messaging
Scala adoption advice and hints for sustainable team development
Reactive Programming ist in der Enterprise-Java-Welt angekommen. Frameworks wie Akka und RxJava waren Vorreiter, mit WebFlux und Project Reactor in Spring 5 ist ein weiteres prominentes Framework dazugekommen. Aber was steckt eigentlich hinter Reactive Programming? Wann ergibt der Einsatz Sinn und wie kann ich es in bestehende Anwendungen integrieren? Die Session gibt eine Einführung in das Programmiermodell, zeigt die Umsetzung in den verschiedenen Projekten, diskutiert, wann Reactive Programming Sinn ergibt, und liefert einen Ausblick, welche Themen im Bereich Reactive Programming in Zukunft kommen.
Don't Be STUPID, Grasp SOLID - ConFoo EditionAnthony Ferrara
When it comes to Object Oriented Programming, there is no shortage of guidelines and principles for how to properly design an OO system. There is also no shortage of acronyms to describe these principles: DRY, SRP, LSP, LoD, ISP, OCP, etc. However, there are two acronyms that really shine through to describe how to, and how not to do OOP well. The two acronyms are SOLID and STUPID (respectively).
Less ismorewithcoffeescript webdirectionsfeb2012Jo Cranford
Slides from my lightning talk at Web Directions in Sydney, 23 February 2012. I wanted to demonstrate some of the ways CoffeeScript makes my life easier as a developer, by making my JavaScript code much faster and easier to read.
Oracle Application Express (APEX) is shipped with several JavaScript libraries, jQuery being the best known one of them. And on top of these libraries the APEX Development Team created their own. You probably used a couple of these API's already, like $s, $v etc.
But there are way more and some of them are extremely useful. But first you have to be aware they exists. And secondly you have to know how to use the properly.
This session will cover the most valuable JavaScript API's with some real world examples.
Most developers stick to the standard $s and $v functions - even without knowing there is also a $v2 and $s can have more parameters.
The focus will be on the namespaced apex API's, like apex.server.process and apex.event.trigger.
Kotlin: forse è la volta buona (Trento)Davide Cerbo
Il codice di esempio e disponibile qui: https://github.com/jesty/kotlin-fossavotabona
La variazione col DAO al posto del repository è disponibile qui:
https://github.com/jesty/kotlin-fossavotabona/tree/dao-companion-object
Reactive Programming ist in der Enterprise-Java-Welt angekommen. Frameworks wie Akka und RxJava waren da Vorreiter, mit WebFlux und Project Reactor in Spring 5 ist ein weiteres prominentes dazugekommen. Aber was steckt eigentlich hinter Reactive Programming? Wann ergibt der Einsatz Sinn und wie kann ich es in bestehende Anwendungen integrieren?
Die Session gibt eine Einführung in das Programmiermodell, zeigt die Umsetzung in den verschiedenen Projekten, diskutiert, wann Reactive Programming Sinn ergibt, und liefert einen Ausblick, welche Themen im Bereich Reactive Programming in Zukunft kommen.
5. Wikipedia
Functional reactive programming (FRP) is a programming
paradigm for reactive programming (asynchronous dataflow
programming) using the building blocks of functional
programming (e.g. map, reduce, filter).
@EliSawic
16. Imperative
let array = [0, 1, 2, 3, 4, 5]
var evenNumbers = [Int]()
for element in array {
if element % 2 == 0 {
evenNumbers.append(element)
}
}
@EliSawic
106. Is name valid?
let isValidNameSignal = nameSignal.map { (name) -> Bool in
return name.characters.count > 2
}
@EliSawic
107. let isValidNameSignal = nameSignal.map { (name) -> Bool in
return name.characters.count > 2
}
nameSignal isValidNameSignal
E false
@EliSawic
108. let isValidNameSignal = nameSignal.map { (name) -> Bool in
return name.characters.count > 2
}
nameSignal isValidNameSignal
E false
El false
@EliSawic
109. let isValidNameSignal = nameSignal.map { (name) -> Bool in
return name.characters.count > 2
}
nameSignal isValidNameSignal
E false
El false
Eli true
@EliSawic
110. let isValidNameSignal = nameSignal.map { (name) -> Bool in
return name.characters.count > 2
}
nameSignal isValidNameSignal
E false
El false
Eli true
Elia true
Elias true
@EliSawic
111. let isValidNameSignal = nameSignal.map { (name) -> Bool in
return name.characters.count > 2
}
nameSignal isValidNameSignal
E false
El false
Eli true
Elia true
Elias true
Eliasz true
@EliSawic
112. Is surname valid?
let isValidSurnameSignal = surnameSignal.map { (surname) -> Bool in
return surname.characters.count > 2
}
@EliSawic
113. Is mail valid?
let isValidMailSignal = mailSignal.map { (mail) -> Bool in
let emailRegEx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,}"
let emailTest = NSPredicate(format:"SELF MATCHES %@", emailRegEx)
return emailTest.evaluateWithObject(mail)
}
@EliSawic
114. let isValidMailSignal = mailSignal.map { (mail) -> Bool in
let emailRegEx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,}"
let emailTest = NSPredicate(format:"SELF MATCHES %@", emailRegEx)
return emailTest.evaluateWithObject(mail)
}
mailSignal isValidMailSignal
a false
@EliSawic
115. let isValidMailSignal = mailSignal.map { (mail) -> Bool in
let emailRegEx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,}"
let emailTest = NSPredicate(format:"SELF MATCHES %@", emailRegEx)
return emailTest.evaluateWithObject(mail)
}
mailSignal isValidMailSignal
a false
a@ false
@EliSawic
116. let isValidMailSignal = mailSignal.map { (mail) -> Bool in
let emailRegEx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,}"
let emailTest = NSPredicate(format:"SELF MATCHES %@", emailRegEx)
return emailTest.evaluateWithObject(mail)
}
mailSignal isValidMailSignal
a false
a@ false
a@b false
@EliSawic
117. let isValidMailSignal = mailSignal.map { (mail) -> Bool in
let emailRegEx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,}"
let emailTest = NSPredicate(format:"SELF MATCHES %@", emailRegEx)
return emailTest.evaluateWithObject(mail)
}
mailSignal isValidMailSignal
a false
a@ false
a@b false
a@b. false
@EliSawic
118. let isValidMailSignal = mailSignal.map { (mail) -> Bool in
let emailRegEx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,}"
let emailTest = NSPredicate(format:"SELF MATCHES %@", emailRegEx)
return emailTest.evaluateWithObject(mail)
}
mailSignal isValidMailSignal
a false
a@ false
a@b false
a@b. false
a@b.c false
@EliSawic
119. let isValidMailSignal = mailSignal.map { (mail) -> Bool in
let emailRegEx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,}"
let emailTest = NSPredicate(format:"SELF MATCHES %@", emailRegEx)
return emailTest.evaluateWithObject(mail)
}
mailSignal isValidMailSignal
a false
a@ false
a@b false
a@b. false
a@b.c false
a@b.cd true
@EliSawic