Not sure if you should order a burrito or a monad for lunch? Get a quick overview of Object Oriented, Functional and Protocol Oriented programming and learn what all that fuss is about.
The document discusses different programming paradigms including imperative, object-oriented, functional, protocol-oriented, and functional reactive programming. It provides examples of code using each paradigm and how to recognize them. It notes that the paradigms often mix together and provides some additional resources on concepts like monads, signals, and bridging between paradigms in Swift.
Functional Reactive Programming without Black Magic (UIKonf 2015)Jens Ravens
While there are a lot of talks how ReactiveCocoa is kind of a silver bullet that solves almost every problem you throw at it, most people still think of it as a magic black box. This talk is about the basic concepts how write your own ReactiveCocoa in Swift. It also features an in-depth look into Results, Promises and Signals. And I promise not to use the scary M-word.
See by example how to implement a small app featuring networking, json parsing and table views using signals. Without black magic and by using great new language features like pattern matching, generics and the nice new closure syntax.
All content of this talk is from the perspective of an object oriented developer, therefore no prerequisites are necessary. In the end you will be able to judge yourself if you want to go reactive by using ReactiveCocoa, your own framework or no reactivity at all.
Hooray, open source Swift finally arrived on Linux in December. Let’s see how easy it is to use Swift for your backend and why Swift is a good choice for safe and fast development.
Functional Reactive Programming in ClojurescriptLeonardo Borges
The document discusses functional reactive programming (FRP) and how it can be used to handle asynchronous workflows and time-varying values. It introduces reactive extensions (Rx) as an implementation of FRP and shows examples of using Rx to turn server results into an observable event stream. This allows processing the stream without explicitly managing state, including accessing the previous and current results with no local variables by zipping a stream with itself while skipping one element. Code examples are provided to demonstrate polling an API continuously to update displayed results reactively as the questions or results change over time.
This document provides lessons learned about developing Internet of Things (IoT) applications. It discusses using unit tests to debug IoT applications, implementing a data transformation layer to convert between data formats, and unit testing models. It also recommends simulating Bluetooth Low Energy (BLE) functionality on iOS simulators using wrappers and protocols. The document emphasizes simulating functionality as much as possible and applying server-side development principles to IoT apps.
Asynchronous API in Java8, how to use CompletableFutureJosé Paumard
Slides of my talk as Devoxx 2015. How to set up asynchronous data processing pipelines using the CompletionStage / CompletableFuture API, including how to control threads and how to handle exceptions.
This talk was given at JSSummit 2013. Entitled "Avoiding Callback Hell with Async.js", my talk focused on common pitfalls with asynchronous functions and callbacks in JavaScript, and using the async.js library and its advanced control flows to create cleaner, more manageable code.
Introduction to reactive programming & ReactiveCocoaFlorent Pillet
Reactive programming models asynchronous data streams as signals that produce events over time. ReactiveCocoa is a framework that implements reactive programming in Objective-C. It uses signals to represent asynchronous data streams and operators to transform and combine signals. ReactiveCocoa code separates the logic to produce and consume data, making it more modular, reusable, testable and by reducing state and mutability. While the syntax is different, learning to think reactively can improve code quality and stability.
The document discusses different programming paradigms including imperative, object-oriented, functional, protocol-oriented, and functional reactive programming. It provides examples of code using each paradigm and how to recognize them. It notes that the paradigms often mix together and provides some additional resources on concepts like monads, signals, and bridging between paradigms in Swift.
Functional Reactive Programming without Black Magic (UIKonf 2015)Jens Ravens
While there are a lot of talks how ReactiveCocoa is kind of a silver bullet that solves almost every problem you throw at it, most people still think of it as a magic black box. This talk is about the basic concepts how write your own ReactiveCocoa in Swift. It also features an in-depth look into Results, Promises and Signals. And I promise not to use the scary M-word.
See by example how to implement a small app featuring networking, json parsing and table views using signals. Without black magic and by using great new language features like pattern matching, generics and the nice new closure syntax.
All content of this talk is from the perspective of an object oriented developer, therefore no prerequisites are necessary. In the end you will be able to judge yourself if you want to go reactive by using ReactiveCocoa, your own framework or no reactivity at all.
Hooray, open source Swift finally arrived on Linux in December. Let’s see how easy it is to use Swift for your backend and why Swift is a good choice for safe and fast development.
Functional Reactive Programming in ClojurescriptLeonardo Borges
The document discusses functional reactive programming (FRP) and how it can be used to handle asynchronous workflows and time-varying values. It introduces reactive extensions (Rx) as an implementation of FRP and shows examples of using Rx to turn server results into an observable event stream. This allows processing the stream without explicitly managing state, including accessing the previous and current results with no local variables by zipping a stream with itself while skipping one element. Code examples are provided to demonstrate polling an API continuously to update displayed results reactively as the questions or results change over time.
This document provides lessons learned about developing Internet of Things (IoT) applications. It discusses using unit tests to debug IoT applications, implementing a data transformation layer to convert between data formats, and unit testing models. It also recommends simulating Bluetooth Low Energy (BLE) functionality on iOS simulators using wrappers and protocols. The document emphasizes simulating functionality as much as possible and applying server-side development principles to IoT apps.
Asynchronous API in Java8, how to use CompletableFutureJosé Paumard
Slides of my talk as Devoxx 2015. How to set up asynchronous data processing pipelines using the CompletionStage / CompletableFuture API, including how to control threads and how to handle exceptions.
This talk was given at JSSummit 2013. Entitled "Avoiding Callback Hell with Async.js", my talk focused on common pitfalls with asynchronous functions and callbacks in JavaScript, and using the async.js library and its advanced control flows to create cleaner, more manageable code.
Introduction to reactive programming & ReactiveCocoaFlorent Pillet
Reactive programming models asynchronous data streams as signals that produce events over time. ReactiveCocoa is a framework that implements reactive programming in Objective-C. It uses signals to represent asynchronous data streams and operators to transform and combine signals. ReactiveCocoa code separates the logic to produce and consume data, making it more modular, reusable, testable and by reducing state and mutability. While the syntax is different, learning to think reactively can improve code quality and stability.
JS Fest 2018. Сергей Пузанков. E2E-тестирование фронтенда c HermioneJSFestUA
The document discusses end-to-end testing frameworks and strategies. It recommends Hermione as an end-to-end testing framework that allows running tests in parallel across browsers, is easy to set up and use, and includes features like test retries and flexible skipping. It provides examples of writing tests using Hermione, including setting up page objects and fixtures, debugging tools, and best practices for continuous integration.
This document introduces Elm, a functional programming language for building front-end web applications. It discusses that Elm is 4 years old, compiles to JavaScript, and focuses on simplicity and functional reactive programming. It notes Elm's characteristics like being functional, using ML syntax, immutability, and pure functions. It then compares using just JavaScript to using Elm and other options. It describes tools like the Elm compiler, package manager, and development environment. It also provides examples of Elm code for a counter app and discusses testing, effects, and JavaScript interoperability in Elm.
There are several JavaScript libraries available in the world of web programming. And, as the usage and complexity is increasing day by day, sometimes it becomes very difficult and confusing to understand and create modules using those libraries, especially for those having strong background of Object Oriented Languages.
So this one hour session will make an effort to go into the very basics of JavaScript and put a base for writing modular JavaScript code.
The document discusses recursive functions in programming. A recursive function is one that calls itself during execution. The key aspects are that recursive functions must have a condition to control how many times the function calls itself to avoid infinite recursion, similar to a loop condition. The document provides examples of a simple recursive message printing function that calls itself a specified number of times determined by a parameter passed to the function.
How much performance can you get out of Javascript? - Massimiliano Mantione -...Codemotion
JavaScript started as a slow, interpreted language, but in more than two decades things have changed completely and now we have even game engines running in the browser. What is its maximum theoretical performance, and how can you write code that exploits its full potential? We'll see everything a developer must know to write regular Javascript code that literally rivals C++ code, and learn what WebAssembly adds to this.
From Java to Kotlin - The first month in practiceStefanTomm
The document discusses converting a Spring Boot application from Java to Kotlin. It highlights several benefits of Kotlin, such as null safety, data classes, higher-order functions, and concise APIs. It then demonstrates converting a sample Spring Boot app to Kotlin through a live coding demo. The demo shows reductions in lines of code and other optimizations in the Kotlin version. Overall, the document introduces Kotlin and illustrates how it can be used to build Spring Boot applications in a more expressive and concise way compared to Java.
"What To Expect From PHP7" by Lorna Mitchell
We have a new major release of PHP! But what does this mean for PHP developers in the Real World (TM)? This talk has everything you need to know to be the expert. Find out how the remarkable performance improvements could look on your own system, and see the shiny new features in this major release of the web's favourite scripting language. Get advice on how to upgrade your application, making use of the new features and avoiding the backwards compatibility traps. Developers and technical leaders everywhere who want to use better PHP will benefit from this session.
This document introduces Reactive Cocoa, a framework for Functional Reactive Programming in Objective-C. It describes Reactive Programming as a paradigm oriented around data flows and propagation of change. It explains the key concepts in Reactive Cocoa including streams (signals and sequences), how they allow declarative data transformations, and examples of using signals to react to user interface changes.
You do not need automation engineer - Sqa Days - 2015 - ENIakiv Kramarenko
English Version of presentation for the "You don't need automation engineer" talk, given (in russian) at SQA Days 2015.
You can watch the "screencast" try-out cut at https://youtu.be/TZhbI-JPdG0
The document provides an overview of JavaScript, covering what it is, its basics, functions, objects, prototypes, scope, asynchronous JavaScript, JSON, debugging tools, performance, events, error handling, and the future of JavaScript. It discusses that JavaScript is an object-oriented scripting language used in web pages that is not tied to specific browsers but makes use of the DOM, BOM, and ECMAScript standards. It also summarizes some of JavaScript's core features like functions, objects, prototypes, and more.
Voxxed Days Vilnius 2015 - Having fun with JavassistAnton Arhipov
The document discusses using Javassist, a Java bytecode engineering library, to dynamically generate Java proxies at runtime. It provides examples of using Javassist with a Java agent to transform class files and generate proxies within a ClassFileTransformer. It also summarizes how Javassist is used within the JRebel application reload agent to refresh configurations and notify plugins of class reloading.
"JavaScript in 2016" by Eduard Tomàs
Some years ago in a far far away company, Brendan Eich created JavaScript. A lot of things happened since then. Times changed, the web grown, the language itself was updated, and we as a developers need to adapt too. Last year the last standard of the language arose: ECMAScript 2015 is here, and has some new and interesting features. In this talk we will show the most relevant ones, and also we will introduce some interesting patterns that you can use in JavaScript: you'll learn how to master the language and made JavaScript your best ally to conquest the world!
Lambda Chops - Recipes for Simpler, More Expressive CodeIan Robertson
While the new Streams API has been a great showcase for lambda methods, there are many other ways this new language feature can be used to make friendlier APIs and more expressive code. Lambdas can be used for a number of tasks which historically required significant boilerplate, type-unsafe constructs, or both. From new ways to express metedata, to emulating Groovy's null-safe navigation operator, we'll take a look at a myriad of ways, big and small, that you can use lambdas to improve APIs and streamline your code. We'll also look at some of the limitations of lambdas, and some techniques for overcoming them.
The document introduces Elm, a functional programming language that compiles to JavaScript. It has a focus on simplicity, robustness, and helping developers avoid bugs. Some key points about Elm include its functional, immutable, and statically typed nature; built-in support for functional reactive programming; use for building rich user interfaces; and emphasis on easy refactoring and adding new features. The document also discusses Elm's syntax, type system, record handling, approach to avoiding runtime exceptions, architecture for user interface apps, and ecosystem of tools.
This document discusses callbacks, promises, and generators for handling asynchronous code in JavaScript. It begins by explaining callbacks and the issues they can cause like "callback hell". It then introduces promises as an alternative using libraries like Q that allow chaining asynchronous operations together. Generators are also covered as a way to write asynchronous code that looks synchronous when combined with promises through libraries like CO. Overall, it recommends using an asynchronous pattern supported by a library to manage complex asynchronous code.
This document contains a quiz on Java programming concepts like NullPointerException, floating point numbers, StringBuffer, inheritance, and stacks. It includes 10 multiple choice questions related to code snippets that demonstrate these concepts, along with explanations of some answers.
This document provides an overview and introduction to LINQ (Language Integrated Query). It discusses key LINQ concepts like LINQ to SQL, LINQ providers, extension methods, lambda expressions, and expression trees. It explains that LINQ allows querying over various data sources using a consistent SQL-like syntax. The document also previews upcoming sections on LINQ usage, performance, advanced topics, and references additional learning resources.
The document discusses Javascript Promises and the Q library for handling asynchronous code. It explains what Promises are, how they avoid callback pyramids or "Pyramids of Doom", and how the Q library can be used to generate and control Promises. The Q library allows wrapping asynchronous functions in Promises and provides methods for chaining Promises together and handling errors across asynchronous operations.
The document discusses protocol-oriented programming in Swift. It begins by comparing protocols in Swift vs Objective-C, noting key differences like protocol inheritance, extensions, default implementations, and associated types in Swift. It then defines protocol-oriented programming as separating public interfaces from implementations using protocols that components communicate through. Examples are provided of using protocols for data types, dependency injection, testing, and real-world UIKit views. Protocol-oriented programming is said to improve reusability, extensibility, and maintainability over inheritance-based approaches.
React Native allows developers to build mobile apps using React with native platform capabilities. It uses native components instead of web views, making apps feel and perform like native ones. The document discusses what React Native is, how to set up a development environment, build a basic app, add libraries, handle common errors, and React Native fundamentals like components, styles, layout, events, and touch handling.
The document discusses React Native and how it can be used with Swift. It provides an overview of React Native, explaining what it is and how it allows building native mobile apps using React. It then demonstrates how to create a basic React Native app, integrate it with Swift code to call Swift functions from React Native and pass data from Swift to React Native. This is shown through examples of a registration view app and a contacts list app that retrieves contact data from Swift.
JS Fest 2018. Сергей Пузанков. E2E-тестирование фронтенда c HermioneJSFestUA
The document discusses end-to-end testing frameworks and strategies. It recommends Hermione as an end-to-end testing framework that allows running tests in parallel across browsers, is easy to set up and use, and includes features like test retries and flexible skipping. It provides examples of writing tests using Hermione, including setting up page objects and fixtures, debugging tools, and best practices for continuous integration.
This document introduces Elm, a functional programming language for building front-end web applications. It discusses that Elm is 4 years old, compiles to JavaScript, and focuses on simplicity and functional reactive programming. It notes Elm's characteristics like being functional, using ML syntax, immutability, and pure functions. It then compares using just JavaScript to using Elm and other options. It describes tools like the Elm compiler, package manager, and development environment. It also provides examples of Elm code for a counter app and discusses testing, effects, and JavaScript interoperability in Elm.
There are several JavaScript libraries available in the world of web programming. And, as the usage and complexity is increasing day by day, sometimes it becomes very difficult and confusing to understand and create modules using those libraries, especially for those having strong background of Object Oriented Languages.
So this one hour session will make an effort to go into the very basics of JavaScript and put a base for writing modular JavaScript code.
The document discusses recursive functions in programming. A recursive function is one that calls itself during execution. The key aspects are that recursive functions must have a condition to control how many times the function calls itself to avoid infinite recursion, similar to a loop condition. The document provides examples of a simple recursive message printing function that calls itself a specified number of times determined by a parameter passed to the function.
How much performance can you get out of Javascript? - Massimiliano Mantione -...Codemotion
JavaScript started as a slow, interpreted language, but in more than two decades things have changed completely and now we have even game engines running in the browser. What is its maximum theoretical performance, and how can you write code that exploits its full potential? We'll see everything a developer must know to write regular Javascript code that literally rivals C++ code, and learn what WebAssembly adds to this.
From Java to Kotlin - The first month in practiceStefanTomm
The document discusses converting a Spring Boot application from Java to Kotlin. It highlights several benefits of Kotlin, such as null safety, data classes, higher-order functions, and concise APIs. It then demonstrates converting a sample Spring Boot app to Kotlin through a live coding demo. The demo shows reductions in lines of code and other optimizations in the Kotlin version. Overall, the document introduces Kotlin and illustrates how it can be used to build Spring Boot applications in a more expressive and concise way compared to Java.
"What To Expect From PHP7" by Lorna Mitchell
We have a new major release of PHP! But what does this mean for PHP developers in the Real World (TM)? This talk has everything you need to know to be the expert. Find out how the remarkable performance improvements could look on your own system, and see the shiny new features in this major release of the web's favourite scripting language. Get advice on how to upgrade your application, making use of the new features and avoiding the backwards compatibility traps. Developers and technical leaders everywhere who want to use better PHP will benefit from this session.
This document introduces Reactive Cocoa, a framework for Functional Reactive Programming in Objective-C. It describes Reactive Programming as a paradigm oriented around data flows and propagation of change. It explains the key concepts in Reactive Cocoa including streams (signals and sequences), how they allow declarative data transformations, and examples of using signals to react to user interface changes.
You do not need automation engineer - Sqa Days - 2015 - ENIakiv Kramarenko
English Version of presentation for the "You don't need automation engineer" talk, given (in russian) at SQA Days 2015.
You can watch the "screencast" try-out cut at https://youtu.be/TZhbI-JPdG0
The document provides an overview of JavaScript, covering what it is, its basics, functions, objects, prototypes, scope, asynchronous JavaScript, JSON, debugging tools, performance, events, error handling, and the future of JavaScript. It discusses that JavaScript is an object-oriented scripting language used in web pages that is not tied to specific browsers but makes use of the DOM, BOM, and ECMAScript standards. It also summarizes some of JavaScript's core features like functions, objects, prototypes, and more.
Voxxed Days Vilnius 2015 - Having fun with JavassistAnton Arhipov
The document discusses using Javassist, a Java bytecode engineering library, to dynamically generate Java proxies at runtime. It provides examples of using Javassist with a Java agent to transform class files and generate proxies within a ClassFileTransformer. It also summarizes how Javassist is used within the JRebel application reload agent to refresh configurations and notify plugins of class reloading.
"JavaScript in 2016" by Eduard Tomàs
Some years ago in a far far away company, Brendan Eich created JavaScript. A lot of things happened since then. Times changed, the web grown, the language itself was updated, and we as a developers need to adapt too. Last year the last standard of the language arose: ECMAScript 2015 is here, and has some new and interesting features. In this talk we will show the most relevant ones, and also we will introduce some interesting patterns that you can use in JavaScript: you'll learn how to master the language and made JavaScript your best ally to conquest the world!
Lambda Chops - Recipes for Simpler, More Expressive CodeIan Robertson
While the new Streams API has been a great showcase for lambda methods, there are many other ways this new language feature can be used to make friendlier APIs and more expressive code. Lambdas can be used for a number of tasks which historically required significant boilerplate, type-unsafe constructs, or both. From new ways to express metedata, to emulating Groovy's null-safe navigation operator, we'll take a look at a myriad of ways, big and small, that you can use lambdas to improve APIs and streamline your code. We'll also look at some of the limitations of lambdas, and some techniques for overcoming them.
The document introduces Elm, a functional programming language that compiles to JavaScript. It has a focus on simplicity, robustness, and helping developers avoid bugs. Some key points about Elm include its functional, immutable, and statically typed nature; built-in support for functional reactive programming; use for building rich user interfaces; and emphasis on easy refactoring and adding new features. The document also discusses Elm's syntax, type system, record handling, approach to avoiding runtime exceptions, architecture for user interface apps, and ecosystem of tools.
This document discusses callbacks, promises, and generators for handling asynchronous code in JavaScript. It begins by explaining callbacks and the issues they can cause like "callback hell". It then introduces promises as an alternative using libraries like Q that allow chaining asynchronous operations together. Generators are also covered as a way to write asynchronous code that looks synchronous when combined with promises through libraries like CO. Overall, it recommends using an asynchronous pattern supported by a library to manage complex asynchronous code.
This document contains a quiz on Java programming concepts like NullPointerException, floating point numbers, StringBuffer, inheritance, and stacks. It includes 10 multiple choice questions related to code snippets that demonstrate these concepts, along with explanations of some answers.
This document provides an overview and introduction to LINQ (Language Integrated Query). It discusses key LINQ concepts like LINQ to SQL, LINQ providers, extension methods, lambda expressions, and expression trees. It explains that LINQ allows querying over various data sources using a consistent SQL-like syntax. The document also previews upcoming sections on LINQ usage, performance, advanced topics, and references additional learning resources.
The document discusses Javascript Promises and the Q library for handling asynchronous code. It explains what Promises are, how they avoid callback pyramids or "Pyramids of Doom", and how the Q library can be used to generate and control Promises. The Q library allows wrapping asynchronous functions in Promises and provides methods for chaining Promises together and handling errors across asynchronous operations.
The document discusses protocol-oriented programming in Swift. It begins by comparing protocols in Swift vs Objective-C, noting key differences like protocol inheritance, extensions, default implementations, and associated types in Swift. It then defines protocol-oriented programming as separating public interfaces from implementations using protocols that components communicate through. Examples are provided of using protocols for data types, dependency injection, testing, and real-world UIKit views. Protocol-oriented programming is said to improve reusability, extensibility, and maintainability over inheritance-based approaches.
React Native allows developers to build mobile apps using React with native platform capabilities. It uses native components instead of web views, making apps feel and perform like native ones. The document discusses what React Native is, how to set up a development environment, build a basic app, add libraries, handle common errors, and React Native fundamentals like components, styles, layout, events, and touch handling.
The document discusses React Native and how it can be used with Swift. It provides an overview of React Native, explaining what it is and how it allows building native mobile apps using React. It then demonstrates how to create a basic React Native app, integrate it with Swift code to call Swift functions from React Native and pass data from Swift to React Native. This is shown through examples of a registration view app and a contacts list app that retrieves contact data from Swift.
ClojureScript - Making Front-End development Fun again - John Stevenson - Cod...Codemotion
Front-end development has an amazing assortment of libraries and tools, yet it can seem very complex and doest seem much fun. So we'll live code a ClojureScript application (with a bit of help from Git) and show how development doesn't have to be complex or slow. Through live evaluation, we can build a reactive, functional application. Why not take a look at a well designed language that uses modern functional & reactive concepts for building Front-End apps. You are going to have to trans-pile anyway, so why not use a language, libraries and tooling that is bursting with fun to use.
1. The document discusses using Scala and SBT for Android development. SBT is introduced as the de-facto build tool for Scala projects.
2. Scala language features like the Option type and lazy values help address issues like null pointers and control value calculation.
3. Several third-party libraries are described, including Scaloid and Macroid, which aim to simplify working with the Android platform in a type-safe way.
Slides from "Polyglot Automation" talk given at QA Fest conference.
There are many good programming languages. But test automation is preety simple so the power of language will not matter. But choosing language does matter for effective automation. How to choose the language for Web UI automation? Why Web UI automation is easy? How to choose easyy tools for your automation? How to learn new language and why? We will try to answer all these questions in this talk.
Есть множество замечательных и удобных языков программирования. Но автоматизация тестирования обычно достаточно проста, чтобы мощность языка не играла роли для ее построения. Но сам выбор языка автоматизации под проект значение имеет. Почему автоматизация веб приложений это просто, и что нужно чтобы она такой была? Какой язык выбрать и почему? Как быстро выучить новый язык? Как выбрать простой инструмент автоматизации или как и построить его самому? На эти вопросы мы и попробуем ответить.
The Evolution of Async-Programming on .NET Platform (.Net China, C#)jeffz
This document discusses the evolution of asynchronous programming on the .NET platform. It covers early approaches using Begin/End methods and event-based patterns in .NET 1.0. It then discusses improvements with yield in .NET 2.0/C# 2.0 and async workflows in F# for .NET 3.0. It also covers the Reactive Framework for .NET 4.0 which treats asynchronous computations as push-based collections. Finally, it discusses potential future improvements in C# vNext.
This document provides an introduction and overview of the Java programming language. It discusses Java's history and key features such as being object-oriented, platform independent, and designed for robustness and security. It also covers Java variables, operators, decision-making structures like if/else statements, and loops like for and while.
The document discusses Node.js, which is a server-side JavaScript environment that uses an asynchronous event-driven model. Some key points:
- Node.js uses the V8 JavaScript engine and allows handling requests via JavaScript on the server-side rather than a separate language like PHP, Java, etc.
- It has non-blocking I/O to avoid blocking the entire process when waiting for slow resources like files or databases. Callbacks are used to handle asynchronous operations.
- The document discusses how Node.js could provide access to MUMPS databases to take advantage of the benefits of global storage while using the popular JavaScript language.
This document discusses asynchronous I/O in NodeJS. It begins by covering traditional control flow models like single-threaded and multi-threaded processes. It then introduces emerging models like coroutines, fibers, and event-driven non-blocking I/O. The rest of the document focuses on how NodeJS implements an asynchronous event-driven model using libev, libeio, and callbacks. It notes some issues with callbacks and introduces flow control libraries like Steps that help address these issues.
This document provides an overview of best practices for Android development. It discusses topics such as UI design, including layouts and styles; using the action bar for search and progress indicators; accessibility; network connections; asynchronous tasks and services; fragments and navigation patterns; geolocation and performance; dependency injection; and recommended tools and libraries. The document provides code snippets and links to the Android developer documentation for further information on these topics.
Taming Core Data by Arek Holko, MacoscopeMacoscope
The document discusses best practices for working with Core Data in iOS applications. It covers 9 steps: 1) setting up Core Data, 2) accessing the managed object context, 3) creating NSManagedObject subclasses, 4) creating fetch requests, 5) integrating networking, 6) using NSFetchedResultsController, 7) protocolizing models, 8) using immutable models, and 9) modularizing the code. The overall message is that Core Data code should be organized cleanly using small, single-purpose classes and protocols to improve testability, separation of concerns, and code reuse.
This document introduces ClojureScript and building applications with it. It discusses how ClojureScript compiles Clojure to JavaScript and can run anywhere JavaScript runs. It covers the basics of the ClojureScript language like syntax, data structures, and functions. It also discusses tools for ClojureScript development like Leiningen, Figwheel, Shadow CLJS, and Cursive. Additionally, it covers building web applications with ClojureScript using templates like Hiccup and libraries like Reagent and Reframe.
Since these presentations were spare time hobby - I've decided to share them :)
Hopefully someone will find them useful.
This part continues 1. part with more design patterns like Command, State, NullObject.
Intro to Reactive Thinking and RxJava 2JollyRogers5
Reactive Extensions (Rx) was first introduced by Microsoft in 2009 and has since been ported to most platforms and languages. It provides a way to model asynchronous data streams and events using Observables in a way that makes it easier to compose asynchronous and event-based programs. Some key advantages include simplifying asynchronous operations, surfacing errors sooner, and reducing bugs from state variables. However, the API is large so there is a steep learning curve. RxJava is an implementation of Rx for the JVM that allows pushing data instead of pulling it without worrying about threads. Common operators like map, filter, and flatMap allow transforming and combining Observable streams.
Java is an object-oriented programming language created by James Gosling at Sun Microsystems in 1995. It is platform independent, meaning programs written in Java can run on any system that supports Java without needing to be recompiled. The document provides an overview of Java, including its history and development, basic concepts like classes and objects, and how to write simple Java programs. It also discusses Java's advantages like being simple, object-oriented, portable, multithreaded, and secure.
The document introduces the Play Framework version 2.1 and highlights its key features. It demonstrates building a sample application in Scala using Play's reactive, non-blocking architecture. Key features discussed include Play's built-in support for Scala, reactive programming, JSON APIs, routing, templates, and testing.
Reactive Extensions (Rx) is a library for composing asynchronous and event-based programs using Observable sequences. RxJava implements Rx for the Java VM. Key advantages include simplifying async operations, surfacing errors sooner, and reducing state bugs. The API has a large surface area, so the learning curve is steep. RxJava 2 is recommended over 1 due to better performance, lower memory usage, and other improvements. Observables push data to Observers via onNext, onError, onCompleted calls. Common operators like map, flatMap, filter transform and combine Observable streams. Multithreading uses Schedulers. Unit testing uses TestSubscriber to make assertions.
Programming Sideways: Asynchronous Techniques for AndroidEmanuele Di Saverio
Android apps need to respond fast, support highly parallel execution and multi component architecture.
Learn some tricks of the trade for these problems!
as presented at www.mobileconference.it (2013 edition)
A short introduction (with many examples) to the Scala programming language and also an introduction to using the Play! Framework for modern, safe, efffcient and reactive web applications.
Similar to Hipster oriented programming (Mobilization Lodz 2015) (20)
Turning it up to 11 - Scaling Ruby on Rails to 100k rpsJens Ravens
We've all heard the "Rails can't scale" myth, but how far can we scale Rails? This is a story about a one year project scaling a REST API for concert ticketing and e-commerce to huge presale events and the lessons learned on the way.
Topics include
HTTP Caching on a Budget
Redis is Your Friend
Waiting Queue Architectures
How not to Blow up Your Database
How to Test Scale
Tips and Tricks for Concurrent Writing
Hooray, open source Swift finally arrived on Linux in December. Let’s see how easy it is to use Swift for your backend and why Swift is a good choice for safe and fast development.
This document summarizes new features in Swift 2 including guard/defer statements for flow control, protocol extensions for default implementations, and error handling improvements like throwing and catching errors. It also mentions Swift becoming open source with its source code released under a permissive license and contributions accepted from the community, including ports for Linux. Nest is provided as an example open source Swift web framework project on GitHub.
This document discusses application architecture using Swift language features. It promotes principles like single responsibility and communication patterns. It also discusses common architectural patterns like MVC and dividing problems into layers. Specific topics covered include using table views, facades for dependencies, defining application layers, and how layers can communicate. The document also contrasts mutable and immutable models and how to handle changes when using immutable structs.
Artificia Intellicence and XPath Extension FunctionsOctavian Nadolu
The purpose of this presentation is to provide an overview of how you can use AI from XSLT, XQuery, Schematron, or XML Refactoring operations, the potential benefits of using AI, and some of the challenges we face.
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesQuickdice ERP
Explore the seamless transition to e-invoicing with this comprehensive guide tailored for Saudi Arabian businesses. Navigate the process effortlessly with step-by-step instructions designed to streamline implementation and enhance efficiency.
SOCRadar's Aviation Industry Q1 Incident Report is out now!
The aviation industry has always been a prime target for cybercriminals due to its critical infrastructure and high stakes. In the first quarter of 2024, the sector faced an alarming surge in cybersecurity threats, revealing its vulnerabilities and the relentless sophistication of cyber attackers.
SOCRadar’s Aviation Industry, Quarterly Incident Report, provides an in-depth analysis of these threats, detected and examined through our extensive monitoring of hacker forums, Telegram channels, and dark web platforms.
Flutter is a popular open source, cross-platform framework developed by Google. In this webinar we'll explore Flutter and its architecture, delve into the Flutter Embedder and Flutter’s Dart language, discover how to leverage Flutter for embedded device development, learn about Automotive Grade Linux (AGL) and its consortium and understand the rationale behind AGL's choice of Flutter for next-gen IVI systems. Don’t miss this opportunity to discover whether Flutter is right for your project.
Mobile App Development Company In Noida | Drona InfotechDrona Infotech
Drona Infotech is a premier mobile app development company in Noida, providing cutting-edge solutions for businesses.
Visit Us For : https://www.dronainfotech.com/mobile-application-development/
Top 9 Trends in Cybersecurity for 2024.pptxdevvsandy
Security and risk management (SRM) leaders face disruptions on technological, organizational, and human fronts. Preparation and pragmatic execution are key for dealing with these disruptions and providing the right cybersecurity program.
Microservice Teams - How the cloud changes the way we workSven Peters
A lot of technical challenges and complexity come with building a cloud-native and distributed architecture. The way we develop backend software has fundamentally changed in the last ten years. Managing a microservices architecture demands a lot of us to ensure observability and operational resiliency. But did you also change the way you run your development teams?
Sven will talk about Atlassian’s journey from a monolith to a multi-tenanted architecture and how it affected the way the engineering teams work. You will learn how we shifted to service ownership, moved to more autonomous teams (and its challenges), and established platform and enablement teams.
When it is all about ERP solutions, companies typically meet their needs with common ERP solutions like SAP, Oracle, and Microsoft Dynamics. These big players have demonstrated that ERP systems can be either simple or highly comprehensive. This remains true today, but there are new factors to consider, including a promising new contender in the market that’s Odoo. This blog compares Odoo ERP with traditional ERP systems and explains why many companies now see Odoo ERP as the best choice.
What are ERP Systems?
An ERP, or Enterprise Resource Planning, system provides your company with valuable information to help you make better decisions and boost your ROI. You should choose an ERP system based on your company’s specific needs. For instance, if you run a manufacturing or retail business, you will need an ERP system that efficiently manages inventory. A consulting firm, on the other hand, would benefit from an ERP system that enhances daily operations. Similarly, eCommerce stores would select an ERP system tailored to their needs.
Because different businesses have different requirements, ERP system functionalities can vary. Among the various ERP systems available, Odoo ERP is considered one of the best in the ERp market with more than 12 million global users today.
Odoo is an open-source ERP system initially designed for small to medium-sized businesses but now suitable for a wide range of companies. Odoo offers a scalable and configurable point-of-sale management solution and allows you to create customised modules for specific industries. Odoo is gaining more popularity because it is built in a way that allows easy customisation, has a user-friendly interface, and is affordable. Here, you will cover the main differences and get to know why Odoo is gaining attention despite the many other ERP systems available in the market.
Measures in SQL (SIGMOD 2024, Santiago, Chile)Julian Hyde
SQL has attained widespread adoption, but Business Intelligence tools still use their own higher level languages based upon a multidimensional paradigm. Composable calculations are what is missing from SQL, and we propose a new kind of column, called a measure, that attaches a calculation to a table. Like regular tables, tables with measures are composable and closed when used in queries.
SQL-with-measures has the power, conciseness and reusability of multidimensional languages but retains SQL semantics. Measure invocations can be expanded in place to simple, clear SQL.
To define the evaluation semantics for measures, we introduce context-sensitive expressions (a way to evaluate multidimensional expressions that is consistent with existing SQL semantics), a concept called evaluation context, and several operations for setting and modifying the evaluation context.
A talk at SIGMOD, June 9–15, 2024, Santiago, Chile
Authors: Julian Hyde (Google) and John Fremlin (Google)
https://doi.org/10.1145/3626246.3653374
E-commerce Development Services- Hornet DynamicsHornet Dynamics
For any business hoping to succeed in the digital age, having a strong online presence is crucial. We offer Ecommerce Development Services that are customized according to your business requirements and client preferences, enabling you to create a dynamic, safe, and user-friendly online store.
2. Jens Ravens
Developer at nerdgeschoss
iOS/ OS X (Swift)
Server / Backend (Ruby)
@JensRavens
jensravens.de
nerdgeschoss.de
3. I hate monads already. Even if it’s
the most useful, elegant thing - it’s
all what’s wrong about hype based
hipster-programming in one word.
- tweet after UIKonf
4. Is it really functional
programming if you don't give a
talk about it?
- @alejandrocrosa
9. Imperative
Do this 5 times!
func nullToNil(dict: [String: AnyObject])->[String: AnyObject]{
var cleaned = [String: AnyObject]()
for (key, value) in dict {
if !(value is NSNull) {
cleaned[key] = value
}
}
return cleaned
}
14. What is state anyway?
class ViewController: UIViewController, UITableViewDelegate {
var selectedItem: Item?
func updateView() {
// do something to update the display
}
func tableView(tableView: UITableView,
didSelectRowAtIndexPath indexPath: NSIndexPath) {
selectedItem = findItemAtIndex(indexPath)
}
}
15. Question State How to recognise?
IP
imperative
How? a lot of nested loops and assignments
OOP
object oriented
How?
(but encapsulated)
encapsulated
state
seperation of concerns
“unix principle”
POP
protocol oriented
What? encapsulated
objects implementing hundreds
of protocols.
FP
functional
What? no state.
you have no idea what it’s doing,
but it’s short and beautiful.
FRP
functional reactive
When?
over my dead
lambda.
you’re constantly flatMapping
30. user interface
Recipe
Recipe
Recipe
Recipe
Recipe
func downloadStuff(term: String, completion: Result<[Recipe]>->Void){
// networking and error handling
}
class UserSelection: UIViewController, User {
static func selectRecipe(presentingViewController: UIViewController)
(recipies: [Recipe], completion: Result<Recipe> -> Void) {
// present your view controller here and save the completion block
}
}
let searchVC = // your current vc
let textField = // the textfield used for typing
textField
.textSignal
.flatMap(downloadStuff)
.flatMap(UserSelection.selectRecipe(searchVC))
.next { recipe in
// do whatever you like
}
.error { error in
// something went wrong on the way
}
49. The Introduction to RP
you’ve been missing.
https://gist.github.com/staltz/868e7e9bc2a7b8c1f754
50. Imperative Programming In Swift (Graham Lee)
sicpers.info/2015/07/imperative-programming-in-swift/
Protocol-Oriented Programming in Objective-C
sicpers.info/2015/06/protocol-oriented-programming-in-
objective-c/
Mutable objects in immutable objects in object-oriented
programming in functional programming in Swift
sicpers.info/2015/06/mutable-objects-in-immutable-
objects-in-object-oriented-programming-in-functional-
programming-in-swift/