Actor based programming is an alternative way to write your code in a way it is by design asynchronous-friendly to write and test. Proposed in 70's, recently receives more and more popularity in many different programming areas.
If you ever heard about actors but wasn't sure about benefit of using it in iOS apps, this presentation is for you! I will guide you through main concepts and demonstrate practical approach to implement it in Swift.
Modern Programming in Java 8 - Lambdas, Streams and Date Time APIGanesh Samarthyam
This presentation provides a comprehensive overview of modern programming in Java. It focuses only on Java 8 features: Lambdas, Streams and Date Time API. It also briefly covers refactoring legacy Java code to Java 8.
Productive Programming in Java 8 - with Lambdas and Streams Ganesh Samarthyam
The document provides an overview of lambda expressions and functional interfaces in Java 8. It discusses key concepts like lambda functions, built-in functional interfaces like Predicate and Consumer, and how they can be used with streams. Examples are provided to demonstrate using lambdas with built-in interfaces like Predicate to filter a stream and Consumer to forEach over a stream. The document aims to help readers get hands-on experience coding with lambdas and streams in Java 8.
eMan Dev Meetup: Kotlin For Android (part 03/03) 18.5.2017eMan s.r.o.
KotlinPref is a library that provides delegation functionality for Android's SharedPreferences in Kotlin. It allows accessing SharedPreferences values via synthetic properties rather than directly calling getString, getInt etc. This reduces boilerplate and makes the code more readable. The document provides examples of how to use KotlinPref to store and retrieve values from SharedPreferences in a simpler way compared to the traditional Android approach.
Kotlin is a statically typed programming language that runs on the Java Virtual Machine and is fully interoperable with Java. It was developed by JetBrains as an alternative to Java for Android development, with improvements like null safety, lambdas, and concise syntax. Kotlin aims to be a safer language than Java by eliminating NullPointerExceptions and adding features like data classes, extensions, and higher-order functions. These features allow for more readable, concise code compared to Java.
Start programming in a more functional style in Java. This is the second in a two part series on lambdas and streams in Java 8 presented at the JoziJug.
Qcon2011 functions rockpresentation_f_sharpMichael Stal
This document provides an overview of functional programming concepts and introduces the F# programming language. It discusses core FP topics like immutable values, recursion, and higher-order functions. It then presents an introduction to F#, explaining that it combines object-oriented and functional programming. The document provides examples of basic F# syntax like functions, pattern matching, and the type system. It also illustrates concepts like currying, lazy evaluation, and the pipeline operator.
Modern Programming in Java 8 - Lambdas, Streams and Date Time APIGanesh Samarthyam
This presentation provides a comprehensive overview of modern programming in Java. It focuses only on Java 8 features: Lambdas, Streams and Date Time API. It also briefly covers refactoring legacy Java code to Java 8.
Productive Programming in Java 8 - with Lambdas and Streams Ganesh Samarthyam
The document provides an overview of lambda expressions and functional interfaces in Java 8. It discusses key concepts like lambda functions, built-in functional interfaces like Predicate and Consumer, and how they can be used with streams. Examples are provided to demonstrate using lambdas with built-in interfaces like Predicate to filter a stream and Consumer to forEach over a stream. The document aims to help readers get hands-on experience coding with lambdas and streams in Java 8.
eMan Dev Meetup: Kotlin For Android (part 03/03) 18.5.2017eMan s.r.o.
KotlinPref is a library that provides delegation functionality for Android's SharedPreferences in Kotlin. It allows accessing SharedPreferences values via synthetic properties rather than directly calling getString, getInt etc. This reduces boilerplate and makes the code more readable. The document provides examples of how to use KotlinPref to store and retrieve values from SharedPreferences in a simpler way compared to the traditional Android approach.
Kotlin is a statically typed programming language that runs on the Java Virtual Machine and is fully interoperable with Java. It was developed by JetBrains as an alternative to Java for Android development, with improvements like null safety, lambdas, and concise syntax. Kotlin aims to be a safer language than Java by eliminating NullPointerExceptions and adding features like data classes, extensions, and higher-order functions. These features allow for more readable, concise code compared to Java.
Start programming in a more functional style in Java. This is the second in a two part series on lambdas and streams in Java 8 presented at the JoziJug.
Qcon2011 functions rockpresentation_f_sharpMichael Stal
This document provides an overview of functional programming concepts and introduces the F# programming language. It discusses core FP topics like immutable values, recursion, and higher-order functions. It then presents an introduction to F#, explaining that it combines object-oriented and functional programming. The document provides examples of basic F# syntax like functions, pattern matching, and the type system. It also illustrates concepts like currying, lazy evaluation, and the pipeline operator.
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.
Functional Thinking - Programming with Lambdas in Java 8Ganesh Samarthyam
Functional programming is on the rise. Almost all major and mainstream languages support functional programming features, including C++, Java, Swift, and Python, and Visual Basic. With Java 8’s lambda functions, Java now supports functional programming. Moving to functional programming can result in significantly better code and productivity gains. However, it requires a paradigm shift: you need to move away from imperative and object-oriented thinking to start thinking functionally. That’s what this workshop will help you achieve: it will help you make your shift towards functional programming. The workshop will introduce lambda functions in Java with examples from Java library itself. Presented in OSI Days 2015 workshop - http://osidays.com/osidays/shifting-to-functional-programming-lambdas-for-java-developers/
Let us explore Java 8 features and start using it in your day to day work. You will be surprised how Java has evolved to become so different yet easy & powerful. In this presentation, we discuss Java 8 Stream API.
Java 8 will include many new features including lambdas, default methods on interfaces, and a date/time API. Lambdas allow implementing functional interfaces with expression syntax rather than anonymous classes, and method references allow referring to methods without invoking them. Default methods allow adding new functionality to interfaces without breaking existing implementations. The new date/time API in JSR-310 provides improved date/time handling functionality.
Apache Velocity is a Java-based template engine that allows separation of design and code through templates. It defines its own template language (VTL) and processes templates at runtime rather than compiling them. Velocity has been an Apache project since 2006, is 100% Java-based, and is used widely in projects like Struts, Turbine, and Maven for code generation, documentation, and more.
The document provides information on functions in C++. It defines a function as a self-contained block of code that performs a specific task. The key points made include:
1. Functions have a name, return type, arguments, and body of code. They may be library functions or user-defined.
2. Functions are declared with a prototype and defined with a body. They are called by passing arguments.
3. Functions return a value using the return statement. Default return type is int.
4. Functions can have default arguments, be inline to reduce overhead, or be overloaded based on parameters. Recursion and passing objects are also discussed.
Qcon2011 functions rockpresentation_scalaMichael Stal
Scala functions provide powerful ways to decompose problems and harness the benefits of functional programming. The presentation introduces core concepts of functional programming using Scala as an example language, highlighting how Scala combines object-oriented and functional programming. It presents benefits like immutability, higher-order functions, and improved concurrency while avoiding past performance issues through modern virtual machines and libraries.
Fullstack Conference - Proxies before proxies: The hidden gems of Javascript...Tim Chaplin
Tired of console.logging your way through applications? Want a way to slice through your application without adding complexity? AOP has been the answer to these questions for object oriented languages, such as Java and C#, but is not available in Javascript. ScarletJS(https://github.com/scarletjs/scarlet) is a project that tackles AOP using a clean, fluent, performant interface.
The ScarletJS project provides Javascript developers a different way of thinking about traditional javascript problems. The project is still growing and looking into the future of what ES6 proxies will open up to the Javascript community.
The talk will highlight the problems that javascript developers face with logging application behavior, security, and more. It will discuss the benefits of identifying a cross cutting concern, and programming using aspects. The talk will highlight how thinking about a project and cross cutting concerns can lead to cleaner more SOLID code. It will also discuss the future of ES6 proxies and the benefits that they will bring.
The document outlines Java 8's Stream API. It discusses stream building blocks like default methods, functional interfaces, lambda expressions, and method references. It describes characteristics of streams like laziness and parallelization. It covers creating streams from collections, common functional interfaces, and the anatomy of a stream pipeline including intermediate and terminal operations. It provides examples of common stream API methods like forEach, map, filter, findFirst, toArray, collect, and reduce.
This document discusses Akka futures and remote actors. It covers how to use futures to retrieve results asynchronously from actors or directly. It also describes how to enable remote capabilities in an Akka project, how to create remote actors, and how to look up remote actors. Functional composition of futures using map, filter, and for comprehensions is also covered.
Lambda expressions allow implementing functional interfaces using anonymous functions. Method references provide a shorthand syntax for referring to existing methods as lambda expressions. The Stream API allows functional-style operations on streams of values, including intermediate and terminal operations. The new Date/Time API provides a safer and more comprehensive replacement for the previous date/time classes in Java.
Java 8 introduced several new features including lambda expressions, which allow functional-style programming in Java through functional interfaces containing a single abstract method, streams, which provide a way to process collections of objects in a declarative way, and default and static methods in interfaces to enable multiple inheritance. The document provides examples of using these new Java 8 features such as lambda expressions, functional interfaces, streams, and default and static methods in interfaces.
The document describes the steps to develop a simple remote method invocation (RMI) application in Java. It includes:
1. Defining a remote interface with methods like addition, subtraction etc.
2. Implementing the interface in a class that defines the method bodies.
3. Creating a server class that binds the remote object to the registry.
4. Making a client class that looks up the remote object and calls methods.
5. Compiling the classes, running the registry, then server and client separately to test the application.
Kotlin is a statically typed language for the JVM, Android, and browser that was created by JetBrains in response to limitations in Java. It focuses on interoperability with Java code and libraries. Kotlin allows avoiding null pointer exceptions, supports functional and procedural programming, and concise code. It is the official language for Android app development. The document discusses Kotlin basics like variables, strings, functions, classes, data classes, and control flows and how to configure Kotlin in Android Studio projects.
Play framework training by Neelkanth Sachdeva @ Scala traits event , New Delh...Knoldus Inc.
This document provides an introduction and overview of the Play web application framework. It discusses key components of Play like Actions, Controllers, Results, routing, templates, and forms. It also covers how to develop a basic application using Play including setting up a new project, defining routes and controllers, rendering templates, and submitting forms. Finally, it demonstrates persisting application data in a database.
The document discusses Alteryx SDKs and APIs. It describes how Alteryx is based on a separation of the Designer GUI and Engine. This allows for various SDKs to create custom tools and functions. The SDKs include ones for custom functions, custom tools with different frontend (HTML, WinForms) and backend (C++, C#, Python) options. It provides examples of XML and C++ based custom functions. It also outlines the processes for creating custom tools, including the interfaces for GUI plugins and engine plugins.
Back to the futures, actors and pipes: using Akka for large-scale data migrationManuel Bernhardt
- The document discusses data migration from an old platform to a new Scala/Play implementation using Akka actors, futures, and pipes.
- Futures are used to handle asynchronous operations, actors are used to organize complex asynchronous flows and deal with failures, and pipes are used to deal with asynchronous computation results inside actors.
- Several lessons are discussed, including designing the system around the data structure, knowing the limits of the source system to avoid overloading it, and being aware of rate limits for cloud APIs.
Recipes to build Code Generators for Non-Xtext Models with XtendKarsten Thoms
This document discusses code generators for non-Xtext models using Xtend. It provides an overview of creating minimal generators using JSON and Xtend templates, and more full-featured generators using the Xtext framework and EMF models. Key aspects covered include model navigation in Xtend templates, extensions, dynamic dispatch, IDE support, modularization, dependency injection, and incremental generation.
In this presentation, John A. De Goes looks at several concurrency and scalability problems similar to the ones all programmers have to face, and shows how purely functional solutions written using Scalaz 8 are shorter, faster, easier to test, and easier to understand than competing solutions written using Akka actors. Discover how functional programming can be your secret superpower when it comes to quickly building bullet-proof business applications!
Improving Correctness with Types Kats ConfIain Hull
A talk I gave at Functional Kats in September 2015
http://workday.github.io/scala/2015/03/17/scala-days-improving-correctness-with-types/
This talk is aimed at Scala developers with a background in object oriented programming who want to learn new ways to use types to improve the correctness of their code. It introduces the topic in a practical fashion, concentrating on the “easy wins” developers can apply to their code today.
http://functionalkats.com/#nav-speakers
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.
Functional Thinking - Programming with Lambdas in Java 8Ganesh Samarthyam
Functional programming is on the rise. Almost all major and mainstream languages support functional programming features, including C++, Java, Swift, and Python, and Visual Basic. With Java 8’s lambda functions, Java now supports functional programming. Moving to functional programming can result in significantly better code and productivity gains. However, it requires a paradigm shift: you need to move away from imperative and object-oriented thinking to start thinking functionally. That’s what this workshop will help you achieve: it will help you make your shift towards functional programming. The workshop will introduce lambda functions in Java with examples from Java library itself. Presented in OSI Days 2015 workshop - http://osidays.com/osidays/shifting-to-functional-programming-lambdas-for-java-developers/
Let us explore Java 8 features and start using it in your day to day work. You will be surprised how Java has evolved to become so different yet easy & powerful. In this presentation, we discuss Java 8 Stream API.
Java 8 will include many new features including lambdas, default methods on interfaces, and a date/time API. Lambdas allow implementing functional interfaces with expression syntax rather than anonymous classes, and method references allow referring to methods without invoking them. Default methods allow adding new functionality to interfaces without breaking existing implementations. The new date/time API in JSR-310 provides improved date/time handling functionality.
Apache Velocity is a Java-based template engine that allows separation of design and code through templates. It defines its own template language (VTL) and processes templates at runtime rather than compiling them. Velocity has been an Apache project since 2006, is 100% Java-based, and is used widely in projects like Struts, Turbine, and Maven for code generation, documentation, and more.
The document provides information on functions in C++. It defines a function as a self-contained block of code that performs a specific task. The key points made include:
1. Functions have a name, return type, arguments, and body of code. They may be library functions or user-defined.
2. Functions are declared with a prototype and defined with a body. They are called by passing arguments.
3. Functions return a value using the return statement. Default return type is int.
4. Functions can have default arguments, be inline to reduce overhead, or be overloaded based on parameters. Recursion and passing objects are also discussed.
Qcon2011 functions rockpresentation_scalaMichael Stal
Scala functions provide powerful ways to decompose problems and harness the benefits of functional programming. The presentation introduces core concepts of functional programming using Scala as an example language, highlighting how Scala combines object-oriented and functional programming. It presents benefits like immutability, higher-order functions, and improved concurrency while avoiding past performance issues through modern virtual machines and libraries.
Fullstack Conference - Proxies before proxies: The hidden gems of Javascript...Tim Chaplin
Tired of console.logging your way through applications? Want a way to slice through your application without adding complexity? AOP has been the answer to these questions for object oriented languages, such as Java and C#, but is not available in Javascript. ScarletJS(https://github.com/scarletjs/scarlet) is a project that tackles AOP using a clean, fluent, performant interface.
The ScarletJS project provides Javascript developers a different way of thinking about traditional javascript problems. The project is still growing and looking into the future of what ES6 proxies will open up to the Javascript community.
The talk will highlight the problems that javascript developers face with logging application behavior, security, and more. It will discuss the benefits of identifying a cross cutting concern, and programming using aspects. The talk will highlight how thinking about a project and cross cutting concerns can lead to cleaner more SOLID code. It will also discuss the future of ES6 proxies and the benefits that they will bring.
The document outlines Java 8's Stream API. It discusses stream building blocks like default methods, functional interfaces, lambda expressions, and method references. It describes characteristics of streams like laziness and parallelization. It covers creating streams from collections, common functional interfaces, and the anatomy of a stream pipeline including intermediate and terminal operations. It provides examples of common stream API methods like forEach, map, filter, findFirst, toArray, collect, and reduce.
This document discusses Akka futures and remote actors. It covers how to use futures to retrieve results asynchronously from actors or directly. It also describes how to enable remote capabilities in an Akka project, how to create remote actors, and how to look up remote actors. Functional composition of futures using map, filter, and for comprehensions is also covered.
Lambda expressions allow implementing functional interfaces using anonymous functions. Method references provide a shorthand syntax for referring to existing methods as lambda expressions. The Stream API allows functional-style operations on streams of values, including intermediate and terminal operations. The new Date/Time API provides a safer and more comprehensive replacement for the previous date/time classes in Java.
Java 8 introduced several new features including lambda expressions, which allow functional-style programming in Java through functional interfaces containing a single abstract method, streams, which provide a way to process collections of objects in a declarative way, and default and static methods in interfaces to enable multiple inheritance. The document provides examples of using these new Java 8 features such as lambda expressions, functional interfaces, streams, and default and static methods in interfaces.
The document describes the steps to develop a simple remote method invocation (RMI) application in Java. It includes:
1. Defining a remote interface with methods like addition, subtraction etc.
2. Implementing the interface in a class that defines the method bodies.
3. Creating a server class that binds the remote object to the registry.
4. Making a client class that looks up the remote object and calls methods.
5. Compiling the classes, running the registry, then server and client separately to test the application.
Kotlin is a statically typed language for the JVM, Android, and browser that was created by JetBrains in response to limitations in Java. It focuses on interoperability with Java code and libraries. Kotlin allows avoiding null pointer exceptions, supports functional and procedural programming, and concise code. It is the official language for Android app development. The document discusses Kotlin basics like variables, strings, functions, classes, data classes, and control flows and how to configure Kotlin in Android Studio projects.
Play framework training by Neelkanth Sachdeva @ Scala traits event , New Delh...Knoldus Inc.
This document provides an introduction and overview of the Play web application framework. It discusses key components of Play like Actions, Controllers, Results, routing, templates, and forms. It also covers how to develop a basic application using Play including setting up a new project, defining routes and controllers, rendering templates, and submitting forms. Finally, it demonstrates persisting application data in a database.
The document discusses Alteryx SDKs and APIs. It describes how Alteryx is based on a separation of the Designer GUI and Engine. This allows for various SDKs to create custom tools and functions. The SDKs include ones for custom functions, custom tools with different frontend (HTML, WinForms) and backend (C++, C#, Python) options. It provides examples of XML and C++ based custom functions. It also outlines the processes for creating custom tools, including the interfaces for GUI plugins and engine plugins.
Back to the futures, actors and pipes: using Akka for large-scale data migrationManuel Bernhardt
- The document discusses data migration from an old platform to a new Scala/Play implementation using Akka actors, futures, and pipes.
- Futures are used to handle asynchronous operations, actors are used to organize complex asynchronous flows and deal with failures, and pipes are used to deal with asynchronous computation results inside actors.
- Several lessons are discussed, including designing the system around the data structure, knowing the limits of the source system to avoid overloading it, and being aware of rate limits for cloud APIs.
Recipes to build Code Generators for Non-Xtext Models with XtendKarsten Thoms
This document discusses code generators for non-Xtext models using Xtend. It provides an overview of creating minimal generators using JSON and Xtend templates, and more full-featured generators using the Xtext framework and EMF models. Key aspects covered include model navigation in Xtend templates, extensions, dynamic dispatch, IDE support, modularization, dependency injection, and incremental generation.
In this presentation, John A. De Goes looks at several concurrency and scalability problems similar to the ones all programmers have to face, and shows how purely functional solutions written using Scalaz 8 are shorter, faster, easier to test, and easier to understand than competing solutions written using Akka actors. Discover how functional programming can be your secret superpower when it comes to quickly building bullet-proof business applications!
Improving Correctness with Types Kats ConfIain Hull
A talk I gave at Functional Kats in September 2015
http://workday.github.io/scala/2015/03/17/scala-days-improving-correctness-with-types/
This talk is aimed at Scala developers with a background in object oriented programming who want to learn new ways to use types to improve the correctness of their code. It introduces the topic in a practical fashion, concentrating on the “easy wins” developers can apply to their code today.
http://functionalkats.com/#nav-speakers
Actors provide a model for building concurrent and distributed applications using message passing between isolated computing entities called actors. Akka is an implementation of the actor model that allows building scalable and fault-tolerant applications on the JVM. Akka provides features like remote deployment of actors, asynchronous message passing, supervision strategies, and dispatchers for configuring how messages are processed.
The document discusses various approaches for leveraging parallelism and concurrency including multithreading, fork/join, actors, dataflow, and software transactional memory. It notes that while multithreading is challenging, other approaches like actors, dataflow, and STM can allow for writing concurrency-agnostic code. It promotes the GPars library for its implementations of various parallel and concurrent programming abstractions in Java and Groovy.
Introduction to Akka slide was presented to HyScala - Dec 2016 meet-up. Just prepared for the impatient and not goes too deep in to various aspects of Akka.
The document summarizes Software Transactional Memory (STM) and the Multiverse framework. STM provides an alternative to classic locking-based concurrency control using transactions on memory. Multiverse is an STM framework for Java that uses transactions to provide atomic, isolated and consistent access to shared memory without exposing locking details. It supports various programming models including POJO and managed reference based approaches.
The document discusses improving program correctness through the use of types in Scala. It covers techniques like defensive programming, failing fast, design by contract, and using wrapper types to control values and operations. Specific examples include creating algebraic data types to model application data, using tagged types to enforce constraints, and defining wrapper types for currencies and amounts to prevent bugs. The overall message is that types can help catch errors earlier and design programs in a way that is less error-prone.
Kotlin Developer Starter in Android - STX Next Lightning Talks - Feb 12, 2016STX Next
Kotlin - one of the popular programming languages built on top of Java that runs on JVM. Thanks to JetBrains support and excellent IDE integration, it’s an ideal choice for Android development. 100% Java compatibility, interoperability and no runtime overhead is just the beginning of a long list of strengths. Kotlin is supposed to be a subset of SCALA, on one hand covering major advantages for developers and keeping short compile times on the other.
This presentation is a Developer Starter - a set of hand-picked information allowing a person with no knowledge of Kotlin to start writing basic Android activities and set up a kotlin-based Android project. It starts with language background, reasons for its creation and advantages. Then presents basic use cases, syntax, structures and patterns. Later on Kotlin is presented in Android context. Simple project structure, imports and Kotlin usage with Android SDK is explained. In the end cost of Kotlin compilation is presented and the language is compared to SCALA and SWIFT.
StxNext Lightning Talks - Feb 12, 2016
Kotlin - one of the popular programming languages built on top of Java that runs on JVM. Thanks to JetBrains support and excellent IDE integration, it’s an ideal choice when it comes to Android development. 100% Java compatibility, interoperability and no runtime overhead is just the beginning of a long list of strengths. Kotlin is supposed to be a subset of SCALA, on one hand covering major advantages for developers and on the other - keeping short compile times.
This presentation is a Developer Starter - a set of hand-picked information allowing a person with no knowledge of Kotlin to start writing basic Android activities and set up an Android-kotlin project. It starts with language background, reasons for its creation and advantages. Then presents basic use cases, syntax, structures and patterns. Later on Kotlin is presented in Android context. Simple project structure, imports and Kotlin usage with Android SDK is explained. In the end cost of Kotlin usage is presented and the language is compared to SCALA and SWIFT.
This document summarizes a presentation about scaling web applications with Akka. It discusses how Akka uses an actor model of computation with message passing between lightweight processes to enable safe concurrency. Key features of Akka that help with scaling include fault tolerance through supervision, flexible dispatch strategies to leverage multiple cores, and support for NoSQL databases through pluggable storage backends. The presentation provides code examples of implementing actors in Akka and other frameworks and concludes by taking questions about Akka.
During the talk, we will build a simple web app using Lift and then introduce Akka ( http://akkasource.org) to help scale it. Specifically, we will demonstrate Remote Actors, "Let it crash" fail over, and Dispatcher. Other Scala oriented tools we will use include sbt and ENSIME mode for emacs.
Akka is a toolkit for building highly concurrent, distributed, and fault-tolerant applications on the JVM. It provides actors as the core abstraction for developing such applications, with actors encapsulating state and behavior and communicating asynchronously by message passing. Akka applications are built around message-driven actors that can send and receive messages, and whose state changes are confined within the actor model. This makes Akka applications inherently scalable, fault-tolerant and self-healing.
This document discusses Express.js, a popular Node.js web application framework. It begins by explaining that Express makes developing websites, web apps, and APIs easier by providing route support and templating engine integration. It then demonstrates how to install Express and a templating engine like Jade. Several code examples are provided, including creating a simple REST API with routes, using Express to serve multiple pages with query parameters, and building a RESTful API for a resource like dogs. Resources for further learning about Express and Node.js are listed at the end.
This document provides a summary of an introduction to the Clojure programming language. It discusses what Clojure is, its timeline and adoption, functional programming concepts, concurrency features using Software Transactional Memory, the Lisp ideology it is based on including homoiconicity and its macro system. It also provides an overview of getting started with Clojure including using the REPL, basic syntax like symbols and keywords, data types, sequences, functions, and Java interoperability. Resources for learning more about Clojure are also listed.
Speech in Let'Swift conference on 23, Sep 2017.
This is about various concurrency APIs in swift and async/await, actor model and debugging option.
2017년 9월 23일에 Let'Swift에서 발표한 스위프트에서 동시성에 대한 자료입니다.
현재 사용할 수 있는 다양한 API에 대해 정리해보고 앞으로 나아갈길 그리고 디버깅에 대한 이야기를 했습니다.
This document discusses concurrency, scalability, and fault tolerance using actors and software transactional memory (STM) in Akka. It describes how actors provide message-passing concurrency by isolating processes and avoiding shared state. Actors allow easy reasoning about concurrency by preventing issues like race conditions and deadlocks. The document also covers how Akka implements actors, typed actors, remote actors, supervisor hierarchies for fault tolerance, and STM for coordinating concurrent changes to shared state transactionally. Combining actors with STM results in "transactors" that allow building distributed, concurrent, and fault-tolerant applications.
The document provides an overview of concurrency constructs and models. It discusses threads and locks, and some of the problems with locks like manually locking/unlocking and lock ordering issues. It then covers theoretical models like actors, CSP, and dataflow. Implementation details and problems with different models are discussed. Finally, it highlights some open problems and areas for further work.
Message-based communication patterns in distributed Akka applicationsAndrii Lashchenko
The document discusses various message-based communication patterns in Akka distributed applications, including tell, ask, pipeTo, and composing futures. It provides code examples of actor implementations demonstrating these patterns and how to handle responses, failures, timeouts, and combining multiple futures. The tell pattern is fire-and-forget messaging. The ask pattern uses a future to represent a possible response. PipeTo pipes a future to the original sender. Examples show how to handle successful, failed, and delayed futures through composing and combining them.
Pick up the low-hanging concurrency fruitVaclav Pech
The document discusses various approaches for dealing with concurrency and parallelism in programming. It highlights that while threads and locks make concurrency difficult, there are better solutions like fork/join pools, dataflow programming, and actors. These approaches allow programmers to write code without worrying about threads and synchronization, making parallelism easier to implement. The key milestone approaches mentioned are asynchronous calculations, parallel collection processing using fork/join, dataflow programming using variables and streams, and using actors to isolate concurrent operations.
Similar to Actor based approach in practice for Swift developers (20)
Driving Business Innovation: Latest Generative AI Advancements & Success StorySafe Software
Are you ready to revolutionize how you handle data? Join us for a webinar where we’ll bring you up to speed with the latest advancements in Generative AI technology and discover how leveraging FME with tools from giants like Google Gemini, Amazon, and Microsoft OpenAI can supercharge your workflow efficiency.
During the hour, we’ll take you through:
Guest Speaker Segment with Hannah Barrington: Dive into the world of dynamic real estate marketing with Hannah, the Marketing Manager at Workspace Group. Hear firsthand how their team generates engaging descriptions for thousands of office units by integrating diverse data sources—from PDF floorplans to web pages—using FME transformers, like OpenAIVisionConnector and AnthropicVisionConnector. This use case will show you how GenAI can streamline content creation for marketing across the board.
Ollama Use Case: Learn how Scenario Specialist Dmitri Bagh has utilized Ollama within FME to input data, create custom models, and enhance security protocols. This segment will include demos to illustrate the full capabilities of FME in AI-driven processes.
Custom AI Models: Discover how to leverage FME to build personalized AI models using your data. Whether it’s populating a model with local data for added security or integrating public AI tools, find out how FME facilitates a versatile and secure approach to AI.
We’ll wrap up with a live Q&A session where you can engage with our experts on your specific use cases, and learn more about optimizing your data workflows with AI.
This webinar is ideal for professionals seeking to harness the power of AI within their data management systems while ensuring high levels of customization and security. Whether you're a novice or an expert, gain actionable insights and strategies to elevate your data processes. Join us to see how FME and AI can revolutionize how you work with data!
Introduction of Cybersecurity with OSS at Code Europe 2024Hiroshi SHIBATA
I develop the Ruby programming language, RubyGems, and Bundler, which are package managers for Ruby. Today, I will introduce how to enhance the security of your application using open-source software (OSS) examples from Ruby and RubyGems.
The first topic is CVE (Common Vulnerabilities and Exposures). I have published CVEs many times. But what exactly is a CVE? I'll provide a basic understanding of CVEs and explain how to detect and handle vulnerabilities in OSS.
Next, let's discuss package managers. Package managers play a critical role in the OSS ecosystem. I'll explain how to manage library dependencies in your application.
I'll share insights into how the Ruby and RubyGems core team works to keep our ecosystem safe. By the end of this talk, you'll have a better understanding of how to safeguard your code.
Digital Marketing Trends in 2024 | Guide for Staying AheadWask
https://www.wask.co/ebooks/digital-marketing-trends-in-2024
Feeling lost in the digital marketing whirlwind of 2024? Technology is changing, consumer habits are evolving, and staying ahead of the curve feels like a never-ending pursuit. This e-book is your compass. Dive into actionable insights to handle the complexities of modern marketing. From hyper-personalization to the power of user-generated content, learn how to build long-term relationships with your audience and unlock the secrets to success in the ever-shifting digital landscape.
Taking AI to the Next Level in Manufacturing.pdfssuserfac0301
Read Taking AI to the Next Level in Manufacturing to gain insights on AI adoption in the manufacturing industry, such as:
1. How quickly AI is being implemented in manufacturing.
2. Which barriers stand in the way of AI adoption.
3. How data quality and governance form the backbone of AI.
4. Organizational processes and structures that may inhibit effective AI adoption.
6. Ideas and approaches to help build your organization's AI strategy.
Monitoring and Managing Anomaly Detection on OpenShift.pdfTosin Akinosho
Monitoring and Managing Anomaly Detection on OpenShift
Overview
Dive into the world of anomaly detection on edge devices with our comprehensive hands-on tutorial. This SlideShare presentation will guide you through the entire process, from data collection and model training to edge deployment and real-time monitoring. Perfect for those looking to implement robust anomaly detection systems on resource-constrained IoT/edge devices.
Key Topics Covered
1. Introduction to Anomaly Detection
- Understand the fundamentals of anomaly detection and its importance in identifying unusual behavior or failures in systems.
2. Understanding Edge (IoT)
- Learn about edge computing and IoT, and how they enable real-time data processing and decision-making at the source.
3. What is ArgoCD?
- Discover ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes, and its role in deploying applications on edge devices.
4. Deployment Using ArgoCD for Edge Devices
- Step-by-step guide on deploying anomaly detection models on edge devices using ArgoCD.
5. Introduction to Apache Kafka and S3
- Explore Apache Kafka for real-time data streaming and Amazon S3 for scalable storage solutions.
6. Viewing Kafka Messages in the Data Lake
- Learn how to view and analyze Kafka messages stored in a data lake for better insights.
7. What is Prometheus?
- Get to know Prometheus, an open-source monitoring and alerting toolkit, and its application in monitoring edge devices.
8. Monitoring Application Metrics with Prometheus
- Detailed instructions on setting up Prometheus to monitor the performance and health of your anomaly detection system.
9. What is Camel K?
- Introduction to Camel K, a lightweight integration framework built on Apache Camel, designed for Kubernetes.
10. Configuring Camel K Integrations for Data Pipelines
- Learn how to configure Camel K for seamless data pipeline integrations in your anomaly detection workflow.
11. What is a Jupyter Notebook?
- Overview of Jupyter Notebooks, an open-source web application for creating and sharing documents with live code, equations, visualizations, and narrative text.
12. Jupyter Notebooks with Code Examples
- Hands-on examples and code snippets in Jupyter Notebooks to help you implement and test anomaly detection models.
Trusted Execution Environment for Decentralized Process MiningLucaBarbaro3
Presentation of the paper "Trusted Execution Environment for Decentralized Process Mining" given during the CAiSE 2024 Conference in Cyprus on June 7, 2024.
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-und-domino-lizenzkostenreduzierung-in-der-welt-von-dlau/
DLAU und die Lizenzen nach dem CCB- und CCX-Modell sind für viele in der HCL-Community seit letztem Jahr ein heißes Thema. Als Notes- oder Domino-Kunde haben Sie vielleicht mit unerwartet hohen Benutzerzahlen und Lizenzgebühren zu kämpfen. Sie fragen sich vielleicht, wie diese neue Art der Lizenzierung funktioniert und welchen Nutzen sie Ihnen bringt. Vor allem wollen Sie sicherlich Ihr Budget einhalten und Kosten sparen, wo immer möglich. Das verstehen wir und wir möchten Ihnen dabei helfen!
Wir erklären Ihnen, wie Sie häufige Konfigurationsprobleme lösen können, die dazu führen können, dass mehr Benutzer gezählt werden als nötig, und wie Sie überflüssige oder ungenutzte Konten identifizieren und entfernen können, um Geld zu sparen. Es gibt auch einige Ansätze, die zu unnötigen Ausgaben führen können, z. B. wenn ein Personendokument anstelle eines Mail-Ins für geteilte Mailboxen verwendet wird. Wir zeigen Ihnen solche Fälle und deren Lösungen. Und natürlich erklären wir Ihnen das neue Lizenzmodell.
Nehmen Sie an diesem Webinar teil, bei dem HCL-Ambassador Marc Thomas und Gastredner Franz Walder Ihnen diese neue Welt näherbringen. Es vermittelt Ihnen die Tools und das Know-how, um den Überblick zu bewahren. Sie werden in der Lage sein, Ihre Kosten durch eine optimierte Domino-Konfiguration zu reduzieren und auch in Zukunft gering zu halten.
Diese Themen werden behandelt
- Reduzierung der Lizenzkosten durch Auffinden und Beheben von Fehlkonfigurationen und überflüssigen Konten
- Wie funktionieren CCB- und CCX-Lizenzen wirklich?
- Verstehen des DLAU-Tools und wie man es am besten nutzt
- Tipps für häufige Problembereiche, wie z. B. Team-Postfächer, Funktions-/Testbenutzer usw.
- Praxisbeispiele und Best Practices zum sofortigen Umsetzen
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slackshyamraj55
Discover the seamless integration of RPA (Robotic Process Automation), COMPOSER, and APM with AWS IDP enhanced with Slack notifications. Explore how these technologies converge to streamline workflows, optimize performance, and ensure secure access, all while leveraging the power of AWS IDP and real-time communication via Slack notifications.
Generating privacy-protected synthetic data using Secludy and MilvusZilliz
During this demo, the founders of Secludy will demonstrate how their system utilizes Milvus to store and manipulate embeddings for generating privacy-protected synthetic data. Their approach not only maintains the confidentiality of the original data but also enhances the utility and scalability of LLMs under privacy constraints. Attendees, including machine learning engineers, data scientists, and data managers, will witness first-hand how Secludy's integration with Milvus empowers organizations to harness the power of LLMs securely and efficiently.
GraphRAG for Life Science to increase LLM accuracyTomaz Bratanic
GraphRAG for life science domain, where you retriever information from biomedical knowledge graphs using LLMs to increase the accuracy and performance of generated answers
Ivanti’s Patch Tuesday breakdown goes beyond patching your applications and brings you the intelligence and guidance needed to prioritize where to focus your attention first. Catch early analysis on our Ivanti blog, then join industry expert Chris Goettl for the Patch Tuesday Webinar Event. There we’ll do a deep dive into each of the bulletins and give guidance on the risks associated with the newly-identified vulnerabilities.
A Comprehensive Guide to DeFi Development Services in 2024Intelisync
DeFi represents a paradigm shift in the financial industry. Instead of relying on traditional, centralized institutions like banks, DeFi leverages blockchain technology to create a decentralized network of financial services. This means that financial transactions can occur directly between parties, without intermediaries, using smart contracts on platforms like Ethereum.
In 2024, we are witnessing an explosion of new DeFi projects and protocols, each pushing the boundaries of what’s possible in finance.
In summary, DeFi in 2024 is not just a trend; it’s a revolution that democratizes finance, enhances security and transparency, and fosters continuous innovation. As we proceed through this presentation, we'll explore the various components and services of DeFi in detail, shedding light on how they are transforming the financial landscape.
At Intelisync, we specialize in providing comprehensive DeFi development services tailored to meet the unique needs of our clients. From smart contract development to dApp creation and security audits, we ensure that your DeFi project is built with innovation, security, and scalability in mind. Trust Intelisync to guide you through the intricate landscape of decentralized finance and unlock the full potential of blockchain technology.
Ready to take your DeFi project to the next level? Partner with Intelisync for expert DeFi development services today!
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Tatiana Kojar
Skybuffer AI, built on the robust SAP Business Technology Platform (SAP BTP), is the latest and most advanced version of our AI development, reaffirming our commitment to delivering top-tier AI solutions. Skybuffer AI harnesses all the innovative capabilities of the SAP BTP in the AI domain, from Conversational AI to cutting-edge Generative AI and Retrieval-Augmented Generation (RAG). It also helps SAP customers safeguard their investments into SAP Conversational AI and ensure a seamless, one-click transition to SAP Business AI.
With Skybuffer AI, various AI models can be integrated into a single communication channel such as Microsoft Teams. This integration empowers business users with insights drawn from SAP backend systems, enterprise documents, and the expansive knowledge of Generative AI. And the best part of it is that it is all managed through our intuitive no-code Action Server interface, requiring no extensive coding knowledge and making the advanced AI accessible to more users.
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on integration of Salesforce with Bonterra Impact Management.
Interested in deploying an integration with Salesforce for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc
How does your privacy program stack up against your peers? What challenges are privacy teams tackling and prioritizing in 2024?
In the fifth annual Global Privacy Benchmarks Survey, we asked over 1,800 global privacy professionals and business executives to share their perspectives on the current state of privacy inside and outside of their organizations. This year’s report focused on emerging areas of importance for privacy and compliance professionals, including considerations and implications of Artificial Intelligence (AI) technologies, building brand trust, and different approaches for achieving higher privacy competence scores.
See how organizational priorities and strategic approaches to data security and privacy are evolving around the globe.
This webinar will review:
- The top 10 privacy insights from the fifth annual Global Privacy Benchmarks Survey
- The top challenges for privacy leaders, practitioners, and organizations in 2024
- Key themes to consider in developing and maintaining your privacy program
Skybuffer SAM4U tool for SAP license adoptionTatiana Kojar
Manage and optimize your license adoption and consumption with SAM4U, an SAP free customer software asset management tool.
SAM4U, an SAP complimentary software asset management tool for customers, delivers a detailed and well-structured overview of license inventory and usage with a user-friendly interface. We offer a hosted, cost-effective, and performance-optimized SAM4U setup in the Skybuffer Cloud environment. You retain ownership of the system and data, while we manage the ABAP 7.58 infrastructure, ensuring fixed Total Cost of Ownership (TCO) and exceptional services through the SAP Fiori interface.
2. Bartosz Polaczyk
Senior iOS Developer
Grand Parade part of William Hill
norapsi
polac24
bartosz@polaczyk.com@
3. Theory
What actor is
Benefits
iOS Actors
Use cases
Solution
Benefits
Future
Swift language
support
Implementation
Mini framework
Actor sample
Unit tests
Challenges
4. Proposed in 1973 by Carl Hewitt
Used in distributed, high reliability systems,
telecommunication industry
Successful in Scala (framework Akka)
and C#/F# (Akka.NET)
Intro
Actor
5. Actor
principles
Has unique address
Receives messages from different sources
Processes one message a time
Reacts by:
Reading/writing local state (memory)
Creating new actor(s)
Sending message(s) to other actors
6. Actor
limits
Unidirectional - fire and forget
No global state manipulation
No concurrency within Actor
Messages carry only information
Order of messages is indeterministic
20. class Counter{
private var value = 0
public func add(){
value += 1
}
...
}
class Counter{
private var value = 0
private let queue = DispatchQueue()
public func add(){
queue.async{
value += 1
}
}
...
}
class Counter{
private var value = 0
private let queue = DispatchQueue()
public func add(){
queue.async{
value += 1
}
}
public func addTwice() {
queue.async{
value += 2
}
}
public func add(from:TimesProvider){
queue.async{
value += from.value
}
}
Traditional thread-safety API
21. Developer’s responsibility for
exclusive critical sections calls
#1 Manual queuing
class Counter{
private var value = 0
private let queue = DispatchQueue()
public func add(){
queue.async{
value += 1
}
}
public func addTwice() {
queue.async{
value += 2
}
}
public func add(from:TimesProvider){
queue.async{
value += from.value
}
}
}
External dependencies (e.g.
arguments) may be thread-unsafe
#2 Dependencies thread-safety
Pitfalls
Traditional way // nonatomic
27. class Counter{
func add(_ value:Int){…}
func subtract(_ value:Int){…}
}
counter.add(1)
class CounterActor {
func send(_ message:CounterMessage){…}
}
enum CounterMessage {
case add(Int)
case subtract(Int)
}
counterActor.send(.add(1))
ActorSwift
28. • Message may not contain any shared state
• Serialization/deserialization possible
Full value semantics
Actor message
“Codable”
“Codable”
#2 Dependencies thread-safety
Actor
65. Chris Lattner Concurrency in Swift: One approach
https://gist.github.com/lattner/31ed37682ef1576b16bca1432ea9f782
66. Concurrency in Swift:
One approach
actor keyword
reference type
actor Counter{
private var value = 0
private let otherActor:OtherActor
actor func add(){
// queue.async{
value += 1
//}
}
actor func addTwice() {
// queue.async{
value += 2
//}
}
public func add(from:TimesProvider){
value += 2
}
}
Compiler’s addition
67. // Swift
actor MainActor{
actor private init() {}
}
// App
Extension MainActor{
// App logic
}
Concurrency in Swift:
One approach
support for MainActor
ValueSemantical
protocol
protocol ValueSemantical{
...
}
struct State: ValueSemantical{
let some: SomeType
}