This document summarizes Eta, a compiler that allows writing Haskell code to run on the Java Virtual Machine. Eta works by compiling Haskell to the STG intermediate representation and then generating JVM bytecode from STG. This allows Haskell code using GHC language extensions to run on the JVM without modifications. Performance is improved through optimizations like TCO. Eta supports packages from the Haskell Hackage repository by patching native C calls to equivalent JVM calls. This allows most Haskell libraries to work on Eta.
This document discusses Java 8 Streams. It explains that Streams support functional-style operations on elements and provide internal iteration rather than external iteration. It covers Stream sources, intermediate operations like filter and map, terminal operations like forEach and collect, and how Streams are lazy and support parallel processing. Examples are provided for common tasks like filtering, mapping, reducing and collecting Stream elements.
This document discusses Eta, a compiler that allows writing Haskell code and running it on the Java Virtual Machine (JVM). Eta works by compiling Haskell to the STG intermediate language like GHC, and then compiling STG to JVM bytecode. This allows Haskell code to interoperate with Java code via foreign function interfaces. Performance benchmarks show Eta achieves performance comparable to equivalent Java code for algorithms like quicksort. Eta supports many Haskell language extensions and libraries from Hackage. This enables Haskell code to run on the JVM while maintaining high-level functional programming abilities.
This document discusses various techniques for optimizing Python code, including:
1. Using the right algorithms and data structures to minimize time complexity, such as choosing lists, sets or dictionaries based on needed functionality.
2. Leveraging Python-specific optimizations like string concatenation, lookups, loops and imports.
3. Profiling code with tools like timeit, cProfile and visualizers to identify bottlenecks before optimizing.
4. Optimizing only after validating a performance need and starting with general strategies before rewriting hotspots in Python or other languages. Premature optimization can complicate code.
Presented by Stephen Murtagh, Etsy.com, Inc.
TF-IDF (term frequency, inverse document frequency) is a standard method of weighting query terms for scoring documents, and is the method that is used by default in Solr/Lucene. Unfortunately, TF-IDF is really only a measure of rarity, not quality or usefulness. This means it would give more weight to a useless, rare term, such as a misspelling, than to a more useful, but more common, term.
In this presentation, we will discuss our experiences replacing Lucene's TF-IDF based scoring function with a more useful one using information gain, a standard machine-learning measure that combines frequency and specificity. Information gain is much more expensive to compute, however, so this requires periodically computing the term weights outside of Solr/Lucene and making the results accessible within Solr/Lucene.
The document discusses programming with futures in Java and Scala. It introduces futures in Java 8 using CompletableFuture and shows how they allow composing asynchronous operations without blocking threads. It then discusses how streams and futures in Java 8 share similar composition concepts using thenApply and thenCompose. The talk moves on to introduce more abstract concepts from category theory - monads, foldables and monoids. It shows how these concepts can be implemented for futures and lists to provide generic sequencing and folding of asynchronous and synchronous operations in a precise way.
The document discusses various Python interpreters:
- CPython is the default interpreter but has a Global Interpreter Lock (GIL) limiting performance on multi-core systems.
- Jython and IronPython run Python on the JVM and CLR respectively, allowing true concurrency but can be slower than CPython.
- PyPy uses a just-in-time (JIT) compiler which can provide huge performance gains compared to CPython as shown on speed.pypy.org.
- Unladen Swallow aimed to add JIT compilation to CPython but was merged into Python 3.
The document discusses how to rewrite Java code in Scala by taking advantage of Scala's functional programming features like case classes, pattern matching, filters, maps, folds, and generators to make the code more concise and readable. It provides examples of rewriting common Java constructs like filtering lists, mapping over lists, and reducing lists using these Scala features.
Slideshare hasn't imported my notes, so here's the link to the Google Presentation: https://goo.gl/Gl4Vhm
Haskell is a statically typed, non strict, pure functional programming language. It is often talked and blogged about, but rarely used commercially. This talk starts with a brief overview of the language, then explains how Haskell is evaluated and how it deals with non-determinism and side effects using only pure functions. The suitability of Haskell for real world data science is then discussed, along with some examples of its users, a small Haskell-powered visualization, and an overview of useful packages for data science. Finally, Accelerate is introduced, an embedded DSL for array computations on the GPU, and an ongoing attempt to use it as the basis for a deep learning package.
Rainer Grimm, “Functional Programming in C++11”Platonov Sergey
C++ это мультипарадигменный язык, поэтому программист сам может выбирать и совмещать структурный, объектно-ориентированный, обобщенный и функциональный подходы. Функциональный аспект C++ особенно расширился стандартом C++11: лямбда-функции, variadic templates, std::function, std::bind. (язык доклада: английский).
The Design of the Scalaz 8 Effect SystemJohn De Goes
Purely functional Scala code needs something like Haskell's IO monad—a construct that allows functional programs to interact with external, effectful systems in a referentially transparent way. To date, most effect systems for Scala have fallen into one of two categories: pure, but slow or inexpressive; or fast and expressive, but impure and unprincipled. In this talk, John A. De Goes, the architect of Scalaz 8’s new effect system, introduces a novel solution that’s up to 100x faster than Future and Cats Effect, in a principled, modular design that ships with all the powerful primitives necessary for building complex, real-world, high-performance, concurrent functional programs.
Thanks to built-in concurrency, high performance, lawful semantics, and rich expressivity, Scalaz 8's effect system may just be the effect system to attract the mainstream Scala developers who aren't familiar with functional programming.
Euro python2011 High Performance PythonIan Ozsvald
I ran this as a 4 hour tutorial at EuroPython 2011 to teach High Performance Python coding.
Techniques covered include bottleneck analysis by profiling, bytecode analysis, converting to C using Cython and ShedSkin, use of the numerical numpy library and numexpr, multi-core and multi-machine parallelisation and using CUDA GPUs.
Write-up with 49 page PDF report: http://ianozsvald.com/2011/06/29/high-performance-python-tutorial-v0-1-from-my-4-hour-tutorial-at-europython-2011/
Introduction to functional programming using Ocamlpramode_ce
The document provides an introduction to functional programming concepts using Ocaml as the teaching language. It outlines the workshop plan which will cover Ocaml syntax, important functional programming concepts, and understanding the functional paradigm through Ocaml. It then discusses Ocaml background, where Ocaml is used, the Ocaml REPL, function definition, type inference, recursion, tail calls and TCO, higher order functions, algebraic data types, pattern matching, immutability, and more.
Kotlin is a statically-typed programming language for the JVM and the browser, built by a team at JetBrains and designed as a pragmatic and easy-to-use Java alternative. In this presentation we'll explore the most notable Kotlin features, such as:
- Extension functions
- Null-safety
- Smart casts
- and many more
Check out and see that programming in Kotlin is fun!
Python 101 language features and functional programmingLukasz Dynowski
1. The document provides examples of using various programming languages like JavaScript, Java, PHP, Python to perform common operations like reversing a string, finding an element in an array, and using data structures like lists, dictionaries, tuples, and sets.
2. It also discusses functional programming concepts like iterators, generators, map, filter and reduce functions, and using lambda expressions.
3. Examples are given for file handling, pickling, list and generator comprehensions in Python.
GECon2017_Cpp a monster that no one likes but that will outlast them all _Ya...GECon_Org Team
1. A bit of C++ evolution history.
2. Why C++ became popular and why C++ started to lose its popularity.
3. Why C++ is a Monster? If C ++ is a monster, then why does 4. someone need C++?
5. How to use C++ safely and efficiently?
6. Where and when C++ can be used. If it can...
7. Pressure to C++ from competitors. Real and imaginary.
GECon 2017: C++ - a Monster that no one likes but that will outlast them allYauheni Akhotnikau
Slides from my presentation from GECon-2017 conference: https://events.epam.com/events/gecon-2017
It covers the following topics:
A bit of C++ evolution history.
Why C++ became popular and why C++ started to lose its popularity.
Why C++ is a Monster? If C ++ is a monster, then why does someone need C++?
How to use C++ safely and efficiently?
Where and when C++ can be used. If it can...
Pressure to C++ from competitors. Real and imaginary.
A tour of Python: slides from presentation given in 2012.
[Some slides are not properly rendered in SlideShare: the original is still available at http://www.aleksa.org/2015/04/python-presentation_7.html.]
This talk is a look into some of the surprising performance cases in Java -- with the goal of illustrating a few simple truths about the nature of compilers.
Well-architected libraries for functional programming are at once immensely beautiful and practical. They are simple but extraordinarily powerful, helping users solve their problems by snapping together Lego-like building blocks, each of which has just one purpose. Yet, there is a surprising dearth of material on how developers can construct their own well-architected functional code. Many functional programming tutorials talk discuss type safety and making illegal states unrepresentable, but few speak on the subject of good functional interface design.
In this presentation, John A. De Goes takes to the stage to discuss a nebulous and underrated tool in the arsenal of every functional programmer. Called *orthogonality*, this tool allows programmers to craft the building blocks of their functional code at "right angles", so so they can be reasoned about simply and composed predictably to solve complex problems. John introduces the concept of orthogonality, looking at its geometric and algebraic origins, presents a way to measure orthogonality, and then walks through a number of interface examples, comparing non-orthogonal designs with orthogonal ones.
By the end of the session, attendees should have a newfound appreciation for how important orthogonality is to constructing good functional interfaces, and they should develop the early stages of an intuition about how to slice up a complex problem into core, single-purpose, composable building blocks.
Procedural Programming: It’s Back? It Never Went AwayKevlin Henney
This document discusses procedural programming and the iterative process of designing systems through modularization and testing. It provides examples of early programming languages like Fortran that used procedural approaches with GOTOs and examples of refining algorithms through iterative testing against specifications. The document emphasizes writing modular, testable code and iterating the design process through refinement based on tests and specifications.
Halogen is a popular choice for building front-end user-interfaces with PureScript. Often described as a purely functional version of React, Halogen allows building user-interfaces by composing declarative, self-contained components, including effectful components those built from third-party Javascript libraries.
In this presentation, John presents a high-level summary of where Halogen has come from, how it works right now, and what are the main drawbacks to both FRP and React. John then suggests that incremental computation should be the foundation for the next major version of Halogen, and sketches out a possible way of achieving that in a declarative fashion.
Quark: A Purely-Functional Scala DSL for Data Processing & AnalyticsJohn De Goes
Quark is a new Scala DSL for data processing and analytics that runs on top of the Quasar Analytics compiler. Quark is adept at processing semi-structured data and compiles query plans to operations that run entirely inside a target data source. In this presentation, John A. De Goes provides an overview of the open source library, showing several use cases in data processing and analytics. John also demonstrates a powerful technique that every developer can use to create their own purely-functional, type-safe DSLs in the Scala programming language.
"Немного о функциональном программирование в JavaScript" Алексей КоваленкоFwdays
This document discusses functional programming concepts in JavaScript including imperative vs declarative programming, currying, composition, functors, and the Ramda library. It provides examples of implementing curried functions, function composition, and functors in JavaScript. Functors are discussed in the context of arrays and the Maybe datatype. The Ramda library is presented as an alternative to Underscore/Lodash that follows a more functional programming style with its use of currying and function composition.
Kotlin provides a lot of features out of the box even though those are not supported by JVM. Have you ever wondered how Kotlin does it? If yes, then this presentation is for you.
Kotlin compiler tweaks our code in such a way that, JVM can execute it. this deck goes through lots of Kotlin features and explains how it looks at runtime for JVM compatibility. Of course we are not going to look into bytecode, instead we will look into the decompiled version of the bytecode generated by Kotlin compiler.
NOTE: This was presented at DevFest Kolkata 2019.
The Functional Programming Triad of Folding, Scanning and Iteration - a first...Philip Schwarz
The document discusses implementing various functional programming concepts like folding, scanning, and iteration to solve problems involving converting between digit sequences and integers. It provides examples in Scala and Haskell of using fold left to implement a digits-to-integer function and the iterate function to implement an integer-to-digits function. It also discusses using techniques like pipes in Scala and the $ operator in Haskell to improve readability by ordering function applications in the sequence they will be executed.
The document discusses Java 8 lambda expressions and functional interfaces. Key points include:
- Lambda expressions allow for anonymous methods that can access local variables and don't require a class file.
- Functional interfaces define a single abstract method, representing a function contract.
- Default methods allow interfaces to provide default implementations of methods.
- Method references provide a way to refer to a method without invoking it.
TomTom reported its Q1 2014 results, with total revenue of €205 million. Key highlights included the launch of new GPS sports watches and an expansion of traffic services to new countries in Asia. Going forward, the company aims to maximize value from PNDs and establish a multi-product consumer business, while offering leading navigation software and services to automotive customers. Webfleet subscriptions increased 38% to 348,000 vehicles. For 2014, TomTom expects revenue of at least €900 million and adjusted EPS of around €0.25.
Allan Rasmussen TomTom Maps June 16th 2014 - INSPIRE ConferenceLudovic Privat
TomTom uses a hybrid map-making process that combines multiple data sources including GPS probes from over 400 million connected devices, mobile mapping vans, authoritative sources, and community maps edits. This approach allows TomTom to detect road changes through passive community feedback and update maps in real-time, ensuring maps are as up-to-date as possible. Real-time maps that continuously update based on the latest data are important for maximizing customer satisfaction by providing an always accurate map experience on any device.
Slideshare hasn't imported my notes, so here's the link to the Google Presentation: https://goo.gl/Gl4Vhm
Haskell is a statically typed, non strict, pure functional programming language. It is often talked and blogged about, but rarely used commercially. This talk starts with a brief overview of the language, then explains how Haskell is evaluated and how it deals with non-determinism and side effects using only pure functions. The suitability of Haskell for real world data science is then discussed, along with some examples of its users, a small Haskell-powered visualization, and an overview of useful packages for data science. Finally, Accelerate is introduced, an embedded DSL for array computations on the GPU, and an ongoing attempt to use it as the basis for a deep learning package.
Rainer Grimm, “Functional Programming in C++11”Platonov Sergey
C++ это мультипарадигменный язык, поэтому программист сам может выбирать и совмещать структурный, объектно-ориентированный, обобщенный и функциональный подходы. Функциональный аспект C++ особенно расширился стандартом C++11: лямбда-функции, variadic templates, std::function, std::bind. (язык доклада: английский).
The Design of the Scalaz 8 Effect SystemJohn De Goes
Purely functional Scala code needs something like Haskell's IO monad—a construct that allows functional programs to interact with external, effectful systems in a referentially transparent way. To date, most effect systems for Scala have fallen into one of two categories: pure, but slow or inexpressive; or fast and expressive, but impure and unprincipled. In this talk, John A. De Goes, the architect of Scalaz 8’s new effect system, introduces a novel solution that’s up to 100x faster than Future and Cats Effect, in a principled, modular design that ships with all the powerful primitives necessary for building complex, real-world, high-performance, concurrent functional programs.
Thanks to built-in concurrency, high performance, lawful semantics, and rich expressivity, Scalaz 8's effect system may just be the effect system to attract the mainstream Scala developers who aren't familiar with functional programming.
Euro python2011 High Performance PythonIan Ozsvald
I ran this as a 4 hour tutorial at EuroPython 2011 to teach High Performance Python coding.
Techniques covered include bottleneck analysis by profiling, bytecode analysis, converting to C using Cython and ShedSkin, use of the numerical numpy library and numexpr, multi-core and multi-machine parallelisation and using CUDA GPUs.
Write-up with 49 page PDF report: http://ianozsvald.com/2011/06/29/high-performance-python-tutorial-v0-1-from-my-4-hour-tutorial-at-europython-2011/
Introduction to functional programming using Ocamlpramode_ce
The document provides an introduction to functional programming concepts using Ocaml as the teaching language. It outlines the workshop plan which will cover Ocaml syntax, important functional programming concepts, and understanding the functional paradigm through Ocaml. It then discusses Ocaml background, where Ocaml is used, the Ocaml REPL, function definition, type inference, recursion, tail calls and TCO, higher order functions, algebraic data types, pattern matching, immutability, and more.
Kotlin is a statically-typed programming language for the JVM and the browser, built by a team at JetBrains and designed as a pragmatic and easy-to-use Java alternative. In this presentation we'll explore the most notable Kotlin features, such as:
- Extension functions
- Null-safety
- Smart casts
- and many more
Check out and see that programming in Kotlin is fun!
Python 101 language features and functional programmingLukasz Dynowski
1. The document provides examples of using various programming languages like JavaScript, Java, PHP, Python to perform common operations like reversing a string, finding an element in an array, and using data structures like lists, dictionaries, tuples, and sets.
2. It also discusses functional programming concepts like iterators, generators, map, filter and reduce functions, and using lambda expressions.
3. Examples are given for file handling, pickling, list and generator comprehensions in Python.
GECon2017_Cpp a monster that no one likes but that will outlast them all _Ya...GECon_Org Team
1. A bit of C++ evolution history.
2. Why C++ became popular and why C++ started to lose its popularity.
3. Why C++ is a Monster? If C ++ is a monster, then why does 4. someone need C++?
5. How to use C++ safely and efficiently?
6. Where and when C++ can be used. If it can...
7. Pressure to C++ from competitors. Real and imaginary.
GECon 2017: C++ - a Monster that no one likes but that will outlast them allYauheni Akhotnikau
Slides from my presentation from GECon-2017 conference: https://events.epam.com/events/gecon-2017
It covers the following topics:
A bit of C++ evolution history.
Why C++ became popular and why C++ started to lose its popularity.
Why C++ is a Monster? If C ++ is a monster, then why does someone need C++?
How to use C++ safely and efficiently?
Where and when C++ can be used. If it can...
Pressure to C++ from competitors. Real and imaginary.
A tour of Python: slides from presentation given in 2012.
[Some slides are not properly rendered in SlideShare: the original is still available at http://www.aleksa.org/2015/04/python-presentation_7.html.]
This talk is a look into some of the surprising performance cases in Java -- with the goal of illustrating a few simple truths about the nature of compilers.
Well-architected libraries for functional programming are at once immensely beautiful and practical. They are simple but extraordinarily powerful, helping users solve their problems by snapping together Lego-like building blocks, each of which has just one purpose. Yet, there is a surprising dearth of material on how developers can construct their own well-architected functional code. Many functional programming tutorials talk discuss type safety and making illegal states unrepresentable, but few speak on the subject of good functional interface design.
In this presentation, John A. De Goes takes to the stage to discuss a nebulous and underrated tool in the arsenal of every functional programmer. Called *orthogonality*, this tool allows programmers to craft the building blocks of their functional code at "right angles", so so they can be reasoned about simply and composed predictably to solve complex problems. John introduces the concept of orthogonality, looking at its geometric and algebraic origins, presents a way to measure orthogonality, and then walks through a number of interface examples, comparing non-orthogonal designs with orthogonal ones.
By the end of the session, attendees should have a newfound appreciation for how important orthogonality is to constructing good functional interfaces, and they should develop the early stages of an intuition about how to slice up a complex problem into core, single-purpose, composable building blocks.
Procedural Programming: It’s Back? It Never Went AwayKevlin Henney
This document discusses procedural programming and the iterative process of designing systems through modularization and testing. It provides examples of early programming languages like Fortran that used procedural approaches with GOTOs and examples of refining algorithms through iterative testing against specifications. The document emphasizes writing modular, testable code and iterating the design process through refinement based on tests and specifications.
Halogen is a popular choice for building front-end user-interfaces with PureScript. Often described as a purely functional version of React, Halogen allows building user-interfaces by composing declarative, self-contained components, including effectful components those built from third-party Javascript libraries.
In this presentation, John presents a high-level summary of where Halogen has come from, how it works right now, and what are the main drawbacks to both FRP and React. John then suggests that incremental computation should be the foundation for the next major version of Halogen, and sketches out a possible way of achieving that in a declarative fashion.
Quark: A Purely-Functional Scala DSL for Data Processing & AnalyticsJohn De Goes
Quark is a new Scala DSL for data processing and analytics that runs on top of the Quasar Analytics compiler. Quark is adept at processing semi-structured data and compiles query plans to operations that run entirely inside a target data source. In this presentation, John A. De Goes provides an overview of the open source library, showing several use cases in data processing and analytics. John also demonstrates a powerful technique that every developer can use to create their own purely-functional, type-safe DSLs in the Scala programming language.
"Немного о функциональном программирование в JavaScript" Алексей КоваленкоFwdays
This document discusses functional programming concepts in JavaScript including imperative vs declarative programming, currying, composition, functors, and the Ramda library. It provides examples of implementing curried functions, function composition, and functors in JavaScript. Functors are discussed in the context of arrays and the Maybe datatype. The Ramda library is presented as an alternative to Underscore/Lodash that follows a more functional programming style with its use of currying and function composition.
Kotlin provides a lot of features out of the box even though those are not supported by JVM. Have you ever wondered how Kotlin does it? If yes, then this presentation is for you.
Kotlin compiler tweaks our code in such a way that, JVM can execute it. this deck goes through lots of Kotlin features and explains how it looks at runtime for JVM compatibility. Of course we are not going to look into bytecode, instead we will look into the decompiled version of the bytecode generated by Kotlin compiler.
NOTE: This was presented at DevFest Kolkata 2019.
The Functional Programming Triad of Folding, Scanning and Iteration - a first...Philip Schwarz
The document discusses implementing various functional programming concepts like folding, scanning, and iteration to solve problems involving converting between digit sequences and integers. It provides examples in Scala and Haskell of using fold left to implement a digits-to-integer function and the iterate function to implement an integer-to-digits function. It also discusses using techniques like pipes in Scala and the $ operator in Haskell to improve readability by ordering function applications in the sequence they will be executed.
The document discusses Java 8 lambda expressions and functional interfaces. Key points include:
- Lambda expressions allow for anonymous methods that can access local variables and don't require a class file.
- Functional interfaces define a single abstract method, representing a function contract.
- Default methods allow interfaces to provide default implementations of methods.
- Method references provide a way to refer to a method without invoking it.
TomTom reported its Q1 2014 results, with total revenue of €205 million. Key highlights included the launch of new GPS sports watches and an expansion of traffic services to new countries in Asia. Going forward, the company aims to maximize value from PNDs and establish a multi-product consumer business, while offering leading navigation software and services to automotive customers. Webfleet subscriptions increased 38% to 348,000 vehicles. For 2014, TomTom expects revenue of at least €900 million and adjusted EPS of around €0.25.
Allan Rasmussen TomTom Maps June 16th 2014 - INSPIRE ConferenceLudovic Privat
TomTom uses a hybrid map-making process that combines multiple data sources including GPS probes from over 400 million connected devices, mobile mapping vans, authoritative sources, and community maps edits. This approach allows TomTom to detect road changes through passive community feedback and update maps in real-time, ensuring maps are as up-to-date as possible. Real-time maps that continuously update based on the latest data are important for maximizing customer satisfaction by providing an always accurate map experience on any device.
TomTom is a navigation technology company founded in 1991 that created the first standalone GPS navigation device (PND) for consumers. It has since expanded into automotive, licensing, and telematics business units. It has over 4,000 employees worldwide and products that have reached hundreds of millions of users. However, declining PND sales and increasing competition from smartphones pose threats. The presentation analyzes TomTom's strengths, weaknesses, opportunities, competitive environment, financial performance, marketing strategy, and provides a recommendation to target new demographics through traditional advertising over six months to a year.
This document provides an agenda and analysis for TOMTOM®. It includes an external analysis using PESTEL and Porter's Five Forces models. An internal analysis examines TOMTOM's profile, core competencies, strengths, and weaknesses. Recommendations are provided, including product diversification, market development through geographical expansion, strategic alliances, and continued product development. An implementation plan outlines actions in consumers, automotive, licensing, and telematics markets.
1) TomTom is a market leader in portable navigation devices and vehicle navigation systems with over 1.9 billion euros in turnover in 2007 and over 1500 employees.
2) The document discusses TomTom's connected navigation solutions which combine navigation with two-way communication and fleet management tools to track vehicles and communicate with drivers.
3) Key benefits of TomTom's solutions include smart fleet tracking, comprehensive reporting, navigation capabilities, and two-way communication between drivers and managers.
TomTom is a navigation solutions provider based in Amsterdam. It produces portable navigation devices and software. According to financial forecasts, TomTom's sales are expected to increase by 27% annually through 2012. Its balance sheet shows large retained earnings and cash reserves, with equity growing each year. Investors may want TomTom to have a strategy for its retained earnings, as simply holding large sums in cash provides no value to shareholders.
The document describes TomTom's dynamic routing technology which uses identical software both on-board in vehicles and off-board to continuously calculate and update the fastest routes based on real-time traffic conditions, finding better routes than traditional methods and saving users time on their journeys. It allows for fast replanning of routes, dynamic routing that searches for better options, and previewing the best route in advance using a "routing time machine".
The document discusses real-time big data management and Apache Flink. It provides an overview of Apache Flink, including its architecture, components, and APIs for batch and streaming data processing. It also provides examples of word count programs in Java, Scala, and Java 8 that demonstrate how to write Flink programs for batch and streaming data.
The document discusses Scala as a potential replacement for Java on the JVM. It provides quotes from several influential Java developers who express their view that Scala is the most capable replacement for Java currently available on the JVM, and the momentum behind Scala is growing. The document also briefly outlines an agenda for introducing Scala, covering basic syntax, patterns, functions, classes and traits.
The document contains code examples demonstrating various Scala programming concepts such as functions, pattern matching, traits, actors and more. It also includes links to online resources for learning Scala.
This document discusses refactoring Java code to Clojure using macros. It provides examples of refactoring Java code that uses method chaining to equivalent Clojure code using the threading macros (->> and -<>). It also discusses other Clojure features like type hints, the doto macro, and polyglot projects using Leiningen.
Groovy is a dynamic language for the Java Virtual Machine that aims to provide a concise, readable syntax with features like closures, metaprogramming and domain-specific language support. Some key features include dynamic typing, operator overloading, builders for generating XML/Swing code and the ability to extend any class or category of objects with additional methods. Groovy aims to be fully interoperable with Java while allowing more compact representations of common patterns.
Introduction to Lisp. A survey of lisp's history, current incarnations and advanced features such as list comprehensions, macros and domain-specific-language [DSL] support.
Design Patterns - Compiler Case Study - Hands-on ExamplesGanesh Samarthyam
This presentation takes a case-study based approach to design patterns. A purposefully simplified example of expression trees is used to explain how different design patterns can be used in practice. Examples are in C#, but is relevant for anyone who is from object oriented background.
The document discusses the benefits of declarative programming using Scala. It provides examples of implementing algorithms and data structures declaratively in Scala. It also discusses the history and future of Scala, as well as how Scala encourages thinking about programs as transformations rather than changes to memory.
This document summarizes a talk given about Nokia's migration to Scala for its Places API. The key points are:
1) Nokia migrated its Places API codebase to Scala to take advantage of Scala's features like its powerful type system, immutable data structures, and functional programming capabilities.
2) The migration was done gradually over time while continuing to develop new features. They discovered many benefits of Scala along the way like improved test readability and JSON parsing capabilities.
3) Nokia uses Scala features like case classes, options, and functions to model data and add type safety to its codebase. This uncovered bugs that would have been hard to find in Java.
The document introduces Scala and provides an overview of Scala basics including variables, functions, objects, classes, traits, pattern matching, for-comprehensions and more. It also discusses Scala's capabilities for generic programming, lazy evaluation, and integration with Java. Examples are provided throughout to demonstrate Scala concepts.
Scala presentation by Aleksandar ProkopecLoïc Descotte
This document provides an introduction to the Scala programming language. It discusses how Scala runs on the Java Virtual Machine, supports both object-oriented and functional programming paradigms, and provides features like pattern matching, immutable data structures, lazy evaluation, and parallel collections. Scala aims to be concise, expressive, and extensible.
This document discusses monads and continuations in functional programming. It provides examples of using monads like Option and List to handle failure in sequences of operations. It also discusses delimited continuations as a low-level control flow primitive that can implement exceptions, concurrency, and suspensions. The document proposes using monads to pass implicit state through programs by wrapping computations in a state transformer (ST) monad.
Short (45 min) version of my 'Pragmatic Real-World Scala' talk. Discussing patterns and idioms discovered during 1.5 years of building a production system for finance; portfolio management and simulation.
This document summarizes a presentation on Scala given by Jonas Boner. It shows how to build a simple chat application in 30 lines of code using Lift framework. It then discusses Scala as a scalable, pragmatic language that blends object-oriented and functional programming. Traits allow for rich and extensible abstractions. Pattern matching, immutable data structures, and functions as first-class values enable a functional style. Tools like SBT and frameworks like Lift make Scala productive for real-world use.
Scala is a general purpose programming language designed to express common programming patterns in a concise, elegant, and type-safe way. It smoothly integrates features of object-oriented and functional languages, enabling Java and other programmers to be more productive." This session is an introduction of Scala for Java developers.
Presentation & Fetured Video Included.
This is an quick introduction to Scalding and Monoids. Scalding is a Scala library that makes writing MapReduce jobs very easy. Monoids on the other hand promise parallelism and quality and they make some more challenging algorithms look very easy.
The talk was held at the Helsinki Data Science meetup on January 9th 2014.
This is my attempt at a look at some of the features of C++11, and more importantly, describing some of the style changes in C++11 that will make programmers more productive and programs more efficient.
The document provides an introduction to the Clojure programming language. It discusses that Clojure is a functional Lisp dialect that runs on the Java Virtual Machine. It extends the principle of code-as-data to include maps and vectors in addition to lists. The document also provides an overview of Clojure's core data structures, functions, concurrency features like atoms and agents, and how to get started with Clojure.
This document provides an agenda and overview for a Spark workshop covering Spark basics and streaming. The agenda includes sections on Scala, Spark, Spark SQL, and Spark Streaming. It discusses Scala concepts like vals, vars, defs, classes, objects, and pattern matching. It also covers Spark RDDs, transformations, actions, sources, and the spark-shell. Finally, it briefly introduces Spark concepts like broadcast variables, accumulators, and spark-submit.
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell
With expertise in data architecture, performance tracking, and revenue forecasting, Andrew Marnell plays a vital role in aligning business strategies with data insights. Andrew Marnell’s ability to lead cross-functional teams ensures businesses achieve sustainable growth and operational excellence.
TrsLabs - Fintech Product & Business ConsultingTrs Labs
Hybrid Growth Mandate Model with TrsLabs
Strategic Investments, Inorganic Growth, Business Model Pivoting are critical activities that business don't do/change everyday. In cases like this, it may benefit your business to choose a temporary external consultant.
An unbiased plan driven by clearcut deliverables, market dynamics and without the influence of your internal office equations empower business leaders to make right choices.
Getting things done within a budget within a timeframe is key to Growing Business - No matter whether you are a start-up or a big company
Talk to us & Unlock the competitive advantage
Artificial Intelligence is providing benefits in many areas of work within the heritage sector, from image analysis, to ideas generation, and new research tools. However, it is more critical than ever for people, with analogue intelligence, to ensure the integrity and ethical use of AI. Including real people can improve the use of AI by identifying potential biases, cross-checking results, refining workflows, and providing contextual relevance to AI-driven results.
News about the impact of AI often paints a rosy picture. In practice, there are many potential pitfalls. This presentation discusses these issues and looks at the role of analogue intelligence and analogue interfaces in providing the best results to our audiences. How do we deal with factually incorrect results? How do we get content generated that better reflects the diversity of our communities? What roles are there for physical, in-person experiences in the digital world?
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul
Artificial intelligence is changing how businesses operate. Companies are using AI agents to automate tasks, reduce time spent on repetitive work, and focus more on high-value activities. Noah Loul, an AI strategist and entrepreneur, has helped dozens of companies streamline their operations using smart automation. He believes AI agents aren't just tools—they're workers that take on repeatable tasks so your human team can focus on what matters. If you want to reduce time waste and increase output, AI agents are the next move.
Technology Trends in 2025: AI and Big Data AnalyticsInData Labs
At InData Labs, we have been keeping an ear to the ground, looking out for AI-enabled digital transformation trends coming our way in 2025. Our report will provide a look into the technology landscape of the future, including:
-Artificial Intelligence Market Overview
-Strategies for AI Adoption in 2025
-Anticipated drivers of AI adoption and transformative technologies
-Benefits of AI and Big data for your business
-Tips on how to prepare your business for innovation
-AI and data privacy: Strategies for securing data privacy in AI models, etc.
Download your free copy nowand implement the key findings to improve your business.
Semantic Cultivators : The Critical Future Role to Enable AIartmondano
By 2026, AI agents will consume 10x more enterprise data than humans, but with none of the contextual understanding that prevents catastrophic misinterpretations.
Quantum Computing Quick Research Guide by Arthur MorganArthur Morgan
This is a Quick Research Guide (QRG).
QRGs include the following:
- A brief, high-level overview of the QRG topic.
- A milestone timeline for the QRG topic.
- Links to various free online resource materials to provide a deeper dive into the QRG topic.
- Conclusion and a recommendation for at least two books available in the SJPL system on the QRG topic.
QRGs planned for the series:
- Artificial Intelligence QRG
- Quantum Computing QRG
- Big Data Analytics QRG
- Spacecraft Guidance, Navigation & Control QRG (coming 2026)
- UK Home Computing & The Birth of ARM QRG (coming 2027)
Any questions or comments?
- Please contact Arthur Morgan at [email protected].
100% human made.
Book industry standards are evolving rapidly. In the first part of this session, we’ll share an overview of key developments from 2024 and the early months of 2025. Then, BookNet’s resident standards expert, Tom Richardson, and CEO, Lauren Stewart, have a forward-looking conversation about what’s next.
Link to recording, presentation slides, and accompanying resource: https://bnctechforum.ca/sessions/standardsgoals-for-2025-standards-certification-roundup/
Presented by BookNet Canada on May 6, 2025 with support from the Department of Canadian Heritage.
Mobile App Development Company in Saudi ArabiaSteve Jonas
EmizenTech is a globally recognized software development company, proudly serving businesses since 2013. With over 11+ years of industry experience and a team of 200+ skilled professionals, we have successfully delivered 1200+ projects across various sectors. As a leading Mobile App Development Company In Saudi Arabia we offer end-to-end solutions for iOS, Android, and cross-platform applications. Our apps are known for their user-friendly interfaces, scalability, high performance, and strong security features. We tailor each mobile application to meet the unique needs of different industries, ensuring a seamless user experience. EmizenTech is committed to turning your vision into a powerful digital product that drives growth, innovation, and long-term success in the competitive mobile landscape of Saudi Arabia.
AI and Data Privacy in 2025: Global TrendsInData Labs
In this infographic, we explore how businesses can implement effective governance frameworks to address AI data privacy. Understanding it is crucial for developing effective strategies that ensure compliance, safeguard customer trust, and leverage AI responsibly. Equip yourself with insights that can drive informed decision-making and position your organization for success in the future of data privacy.
This infographic contains:
-AI and data privacy: Key findings
-Statistics on AI data privacy in the today’s world
-Tips on how to overcome data privacy challenges
-Benefits of AI data security investments.
Keep up-to-date on how AI is reshaping privacy standards and what this entails for both individuals and organizations.
Role of Data Annotation Services in AI-Powered ManufacturingAndrew Leo
From predictive maintenance to robotic automation, AI is driving the future of manufacturing. But without high-quality annotated data, even the smartest models fall short.
Discover how data annotation services are powering accuracy, safety, and efficiency in AI-driven manufacturing systems.
Precision in data labeling = Precision on the production floor.
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfSoftware Company
Explore the benefits and features of advanced logistics management software for businesses in Riyadh. This guide delves into the latest technologies, from real-time tracking and route optimization to warehouse management and inventory control, helping businesses streamline their logistics operations and reduce costs. Learn how implementing the right software solution can enhance efficiency, improve customer satisfaction, and provide a competitive edge in the growing logistics sector of Riyadh.
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxshyamraj55
We’re bringing the TDX energy to our community with 2 power-packed sessions:
🛠️ Workshop: MuleSoft for Agentforce
Explore the new version of our hands-on workshop featuring the latest Topic Center and API Catalog updates.
📄 Talk: Power Up Document Processing
Dive into smart automation with MuleSoft IDP, NLP, and Einstein AI for intelligent document workflows.
This is the keynote of the Into the Box conference, highlighting the release of the BoxLang JVM language, its key enhancements, and its vision for the future.
2. What’s He Building In There?Not just PNDsTraffic ServicesLocation ServicesAddress & Local SearchTons of Data -> Tons of AnalysisDeep Commitment to Server-Side Java2
21. Usually efficient” From Peter Norvig’sTutorial on Good Lisp Programming Style, 1993 (http://www.norvig.com/luv-slides.ps)
22. But...“Lisp is good for:Exploratory programmingRapid prototypingMinimizing time-to-marketSingle-programmer (or single-digit team) projectsSource-to-source or data-to-data transformation” (ibid.)9
25. Scala Is...An escaped research language from EPFL targeting JVM and CLRObject-oriented and functionalStatically typedLisp, ML, Haskell, Erlang, etc.DSL-friendly12
27. Functional Programming?Functions as first class objectsImmutabilityClosuresBinding free variables to enclosing lexical scope Higher-order Functionsfunctions as input and/or outputA different set of idioms...14
31. Java Idioms++C++No more 0xDEADBEEFLeads to lots of loops and copies, if you’re doing it rightHard programs get complex doing common thingsNested loops begin to look Harmful...18
33. For Comprehensionsfor(inti=0; i<100; i++) { ... }for (i <- 0 until 100) { ... /* do something with i */ }(0.until(100)).foreach(i => /* something with i */)20
35. The Easy Onesfor (i <- 1 to 6) yield i * 2(1 to 6).map(_ * 2) (2,4,6,8,10,12)for (i <- 1 to 6 if i % 2 == 0) yield i(1 to 6).filter(_ % 2 == 0) (2,4,6)for (i <- 1 to 6) { println(i + “ “) }(1 to 6).foreach { i => print(i + “ “) } 1 2 3 4 5 622
36. A Harder One...List<Integer> array = new ArrayList<Integer>();for (i = 1; i <= 3; i++) { for (j = i; j <= 3; j++) {array.add(j); }}System.out.println(array);[1, 2, 3, 2, 3, 3]for (i <- 1 to 3; j <- i to 3) yield j(1, 2, 3, 2, 3, 3)(1 to 3).flatMap(i => (i to 3).map(j => j)) 23
37. flatMapSubtle thing...“Applies the given function f to each element, then concatenates the results”Turns a list of lists into a listList(List(1,2,3), List(4,5,6)).flatMap(x => x)List(1, 2, 3, 4, 5, 6)List(“tom”, “tom”).flatMap(_.capitalize).mkStringTomTom“Special sauce” for nested looping constructs(Equivalent to Haskell’s monadic “bind”)24
38. IteratorIteratorpackage org.hyperic.sigar.util; public static class IteratorIteratorimplements java.util.Iterator { private java.util.ArrayListiterators; public IteratorIterator() {} public void add(java.util.Iteratoriterator) {} public booleanhasNext() {} public java.lang.Object next() {} public void remove() {} }25
45. Yeah yeahyeah but“Perl Whitespace Law” “Each line of perl should be surrounded by whitespace equivalent to what it would take to achieve the same functionality in a normal programming language.” -- Don HopkinsIf it compiles, it nearly works. Really.Visual Plane-Oriented ProgrammingI ♥ Idioms“But in Java, each little part is so very simple...”32
48. “Weak developers will move heaven and earth to do the wrong thing. You can’t limit the damage they do by locking up the sharp tools. They’ll just swing the blunt tools harder.” – Glenn Vandenburg35
50. How To Sneak It InStart with TestingScalaCheckIS AWESOME.Specs, ScalaTest testing DSLsStart with something low riskOk, well, we didn’t do thatPrepare for steep learning curve...followed by a productivity hockey stick37
51. Another Example8000 lines of broken Java -> 400 lines of broken Scala ->hyp.take(1).flatMap(_.dropDistricts) match { case Nil => hyp case head => {hyp.tail.foldLeft(head) {case (run: List[Hypothesis], h: Hypothesis) => { run.flatMap(_.merge(h)) match { case Nil => run case newRun => newRun.removeDuplicates} } } }}*Includes suggested improvements by Martin Odersky, I hope38
52. TestingFunctional architect wrote a bunch of test cases, like:Requirement R.17:D1 -> N1, L1 -> N1, N1, D2 -> L2, L3, N3, D3 should cluster as (L1,N1,D1), (L2,D2), (L3), (N3), (D3)Vim-macro’d into:it should “satisfy R.17” in { cluster(D1 -> N1,L1 -> N1,N1,D2 -> L2,L3,N3,D3) should equal {groups(group(L1,N1,D1),group(L2,D2),group(L3),group(N3),group(D3)))}39