Elixir is a functional, concurrent, general-purpose programming language that runs on the Erlang virtual machine. It was created by José Valim and is influenced by Erlang. Elixir uses immutable data, isolated processes, and message passing for concurrency. It has a syntax similar to Ruby but with features like pattern matching, pipes, and first-class functions. Elixir's lightweight processes and fault-tolerance make it suitable for building distributed, concurrent systems. Its growing ecosystem includes tools like Phoenix for building web applications.
EcoreTools-Next: Executable DSL made (more) accessibleCédric Brun
Various Eclipse Modeling technologies are trying to empower domain experts in the creation of specific tools. Using EcoreTools and Sirius a domain expert can define languages, graphical modelers and editors without writing a single line of Java code or launching a new Eclipse runtime. However, when come the time to add behaviors to the language structure (e.g., to implement interpreters, compilers, static analysis, refactoring, or generators), the domain expert has to face all the complexity of Eclipse Plugin development, OSGi, Java and much more.
This is a no-go in some contexts and as such there was a sweet spot for a new technology in Eclipse Modeling that support a seamless mechanism to weave behaviors across (Ecore-based) language structure.
This talk will present an integrated approach for weaving behavior of domain specific languages right from the EcoreTools modeler, that can be automatically applied to conforming models while having the following novel characteristics:
Domain experts are able to weave the behaviors across the language structure, seamlessly supporting the definition of a visitors for any kind of purposes.
No need for code generation, any change is instantly reflected and can be tested right away, even on Dynamic Instances
Strong optional validation, fast evaluation
"on demand" extension through Java services
behavior definition which is non-intrusive to the Ecore model
complemented by a first prototype of a dual compiler that seamlessly complement the EMF generation results.
The talk will demo the creation of a DSL and its behavior through the use of these plugins which are extending EcoreTools. The design of the language will also be discussed as it is embeds the Eclipse "aql" query language, leverage union types and type inference and can itself be integrated in other contexts. The audience will leave with a clear understanding of how they could define the behavior of their DSL using this technology, how it compares to approaches like Xcore/Xbase and when it could be part of the Eclipse release.
The technology is currently considered as good enough for experimenting and is being contributed to Eclipse Modeling through the EcoreTool project.
Lock-free algorithms for Kotlin CoroutinesRoman Elizarov
Presentation for SPTCC 2017 - http://neerc.ifmo.ru/sptcc/
Video (part 1): https://www.youtube.com/watch?v=W2dOOBN1OQI
Video (part 2): https://www.youtube.com/watch?v=iQsN_IDUTSc
“Serverless” is the hottest ticket in town right now.
But many serverless platforms restrict your choice of language and / or dictate where your code runs.
In this talk, I’ll describe how we can go to the serverless ball with open source and the Fn project in particular.
“Serverless” aims to improve developer productivity by abstracting, underlying infrastructure layers. The servers are still there, but you just can’t see them.
This abstraction allows the developer to focus solely on the functions that deliver value to the business and not on the plumbing.
The economics of serverless are also interesting since you only consume resources when your functions run, rather than having applications running continually waiting to server requests.
Sadly some leading serverless platforms are not open and restrict choice in terms of: - language - deployment
In this talk, I want to show how you can do serverless development with your choice of language, and deployment location.
Presentation Summary
The evolution of “serverless”
Functions as a Service (FaaS)
open source serverless frameworks
The Fn project (see http://fnproject.io)
Fn functions
building
managing state
logging
FDKs (Function Development Kits)
How we can link individual functions together to create serverless applications
Building an example serverless application with Fn.
EcoreTools-Next: Executable DSL made (more) accessibleCédric Brun
Various Eclipse Modeling technologies are trying to empower domain experts in the creation of specific tools. Using EcoreTools and Sirius a domain expert can define languages, graphical modelers and editors without writing a single line of Java code or launching a new Eclipse runtime. However, when come the time to add behaviors to the language structure (e.g., to implement interpreters, compilers, static analysis, refactoring, or generators), the domain expert has to face all the complexity of Eclipse Plugin development, OSGi, Java and much more.
This is a no-go in some contexts and as such there was a sweet spot for a new technology in Eclipse Modeling that support a seamless mechanism to weave behaviors across (Ecore-based) language structure.
This talk will present an integrated approach for weaving behavior of domain specific languages right from the EcoreTools modeler, that can be automatically applied to conforming models while having the following novel characteristics:
Domain experts are able to weave the behaviors across the language structure, seamlessly supporting the definition of a visitors for any kind of purposes.
No need for code generation, any change is instantly reflected and can be tested right away, even on Dynamic Instances
Strong optional validation, fast evaluation
"on demand" extension through Java services
behavior definition which is non-intrusive to the Ecore model
complemented by a first prototype of a dual compiler that seamlessly complement the EMF generation results.
The talk will demo the creation of a DSL and its behavior through the use of these plugins which are extending EcoreTools. The design of the language will also be discussed as it is embeds the Eclipse "aql" query language, leverage union types and type inference and can itself be integrated in other contexts. The audience will leave with a clear understanding of how they could define the behavior of their DSL using this technology, how it compares to approaches like Xcore/Xbase and when it could be part of the Eclipse release.
The technology is currently considered as good enough for experimenting and is being contributed to Eclipse Modeling through the EcoreTool project.
Lock-free algorithms for Kotlin CoroutinesRoman Elizarov
Presentation for SPTCC 2017 - http://neerc.ifmo.ru/sptcc/
Video (part 1): https://www.youtube.com/watch?v=W2dOOBN1OQI
Video (part 2): https://www.youtube.com/watch?v=iQsN_IDUTSc
“Serverless” is the hottest ticket in town right now.
But many serverless platforms restrict your choice of language and / or dictate where your code runs.
In this talk, I’ll describe how we can go to the serverless ball with open source and the Fn project in particular.
“Serverless” aims to improve developer productivity by abstracting, underlying infrastructure layers. The servers are still there, but you just can’t see them.
This abstraction allows the developer to focus solely on the functions that deliver value to the business and not on the plumbing.
The economics of serverless are also interesting since you only consume resources when your functions run, rather than having applications running continually waiting to server requests.
Sadly some leading serverless platforms are not open and restrict choice in terms of: - language - deployment
In this talk, I want to show how you can do serverless development with your choice of language, and deployment location.
Presentation Summary
The evolution of “serverless”
Functions as a Service (FaaS)
open source serverless frameworks
The Fn project (see http://fnproject.io)
Fn functions
building
managing state
logging
FDKs (Function Development Kits)
How we can link individual functions together to create serverless applications
Building an example serverless application with Fn.
Tagless-Final approach remains a hot topic in a FP community. There are still very few tools and libraries aimed at helping users of TF. Tofu is a library that tries to address this problem by providing convenient abstractions for writing simple, transparent and testable functional code.
All credits for translation: @tvaroh
Go (often referred to as “Golang”) is a fairly new programming language, version 1.0 released in 2012. Its three creators include Ken Thompson, who is the legendary father of UNIX and the inventor of the C language. The motives behind Go are very similar to those behind Java’s origins: much easier to use than C/C++, automatic garbage collection, no pointer arithmetic, built-in concurrency support, rich standard library, strong networking support.
Brief introduction to F# presentation for CAFE user group meeting on 1/22/15. Accompanying code can be found at: https://github.com/mjyeaney/FSharpTalks
Functional Programming for OO Programmers (part 1)Calvin Cheng
The Why and Benefits of Functional Programming paradigm. Part 2 with source code can be found here: http://www.slideshare.net/calvinchengx/functional-programming-for-oo-programmers-part-2
Related source code https://github.com/calvinchengx/learnhaskell
Slides to talk presented on #ngpartycz about the history of APIs, evolution and how to pick the right technology for you. It might not be (and probably will not be) the technically best solution. And of course you will find out why is GraphQL actually REST.
Elixir and Crystal are both descendants of the Ruby programming language, applying Ruby syntax and ideas to extremely different functional and OOP foundations. This talk compares all three languages and suggests appropriate cases for applying them.
Tagless-Final approach remains a hot topic in a FP community. There are still very few tools and libraries aimed at helping users of TF. Tofu is a library that tries to address this problem by providing convenient abstractions for writing simple, transparent and testable functional code.
All credits for translation: @tvaroh
Go (often referred to as “Golang”) is a fairly new programming language, version 1.0 released in 2012. Its three creators include Ken Thompson, who is the legendary father of UNIX and the inventor of the C language. The motives behind Go are very similar to those behind Java’s origins: much easier to use than C/C++, automatic garbage collection, no pointer arithmetic, built-in concurrency support, rich standard library, strong networking support.
Brief introduction to F# presentation for CAFE user group meeting on 1/22/15. Accompanying code can be found at: https://github.com/mjyeaney/FSharpTalks
Functional Programming for OO Programmers (part 1)Calvin Cheng
The Why and Benefits of Functional Programming paradigm. Part 2 with source code can be found here: http://www.slideshare.net/calvinchengx/functional-programming-for-oo-programmers-part-2
Related source code https://github.com/calvinchengx/learnhaskell
Slides to talk presented on #ngpartycz about the history of APIs, evolution and how to pick the right technology for you. It might not be (and probably will not be) the technically best solution. And of course you will find out why is GraphQL actually REST.
Elixir and Crystal are both descendants of the Ruby programming language, applying Ruby syntax and ideas to extremely different functional and OOP foundations. This talk compares all three languages and suggests appropriate cases for applying them.
Introducción a las Enfermedades Raras - 27.03.2015ilsintelligence
Presentación realizada en el ilS Speaker Series(SM), del 27 de marzo 2015 en Madrid (España),que trató de cómo permitir a los pacientes que padecen de Enfermedades Raras el acceso a los Medicamentos Huérfanos.
TeSS: ELIXIR Training Portal (Eubic Winter School 2017)Niall Beard
EuBiC Proteomics winter school. Presentation about ELIXIR training platform and the TeSS training portal for the Training Workflows workshop given on Monday 10th Jan 2017
Introduction to Ruby On Rails Killer wannabe: Elixir - a functional concurrent, distributed language compiled to Erlang VM. Presentation from #wrug on 30th of June.
La Estrategia en Enfermedades Raras del SNS. Francesc Palau Martínez. Jornada de Presentación de la Estrategia en Enfermedades Raras del Sistema Nacional de Salud. (Madrid, Ministerio de Sanidad y Política Social, 2009).
¿Sabes que existen una serie de enfermedades apenas conocidas? Este capítulo habla sobre las Enfermedades Raras y por qué se producen. ¡Descarga aquí la Ficha Docente!
Exposición sobre enfermedades raras y medicamentos huérfanos, analizando el marco legal de los mismos y citando algunos ejemplos de fármacos, como:
- Celecoxib para el tratamiento de la poliposis adenomatosa familiar.
- Levetiracetam como anticonvulsivo para el tratamiento de la epilepsia juvenil mioclónica o síndrome de Janz.
- Clorhidrato de ácido aminolevulínico (5-ALA) para la visualización de ciertos tumores cerebrales (gliomas malignos) durante la cirugía tumoral.
- Somatropina (hormona del crecimiento humana) aplicada al tratamiento del Síndrome de Turner (Genotropin® ) o del Síndrome Prader-Willi (Omnitrope® ).
- Paclitaxel, un antitumoral inhibidor del huso mitótico, como tratamiento del Sarcoma de Kaposi asociado al SIDA.
Do you want to upgrade your GWT application or write a sizable web application? Dart is the efficient choice.
As a brief example, check out http://lightningdart.com
This presentation is updated October 2015 for Silicon Valley Code Camp
Reverse Engineering 101
Michael Pavle on April 28, 2023
Learn the fundamental tools and skills to take a look under the hood of your favourite programs; we'll be covering compilers, assembly language, and software used to disassemble and analyze executables.
https://github.com/utmgdsc/GDSC_Reversing_Workshop
A talk given at PHP Cambridge all about Python
The slides cover Python from any other programmer's prospective - but the talk as given involved comparisons to PHP.
Helidon Nima - Loom based microserfice framework.pptxDmitry Kornilov
For quite a long time we were forced to make a choice - performance vs. simplicity. Either use a complicated and performant reactive code, or use simple, yet limited blocking approach.Thanks to project Loom in JDK, the paradigm can shift once more even for applications that require high concurrency. I will introduce Helidon Nima - new microservices framework which is built on top of a server designed for Loom with fully synchronous routing that can block as needed, yet still provide high performance under heavy concurrent load. I'll also talk about challenges, benefits and impact on application development in such an environment.
Electron JS | Build cross-platform desktop applications with web technologiesBethmi Gunasekara
Electron is an open source library developed by GitHub for building cross-platform desktop applications with HTML, CSS, and JavaScript. Electron accomplishes this by combining Chromium and Node.js into a single runtime. Apps can be packaged for Mac, Windows, and Linux.
Demo: https://github.com/bethmi/electron-mysql-demo
MacGyver loved duct tape. From diffusing bombs to building ultralights, he never left home without it. If MacGyver were a coder today, odds are Spark would be his digital duct tape. From replacing MR batch processing, to Spark SQL, to machine learning, to streaming, Spark covers the gamut. While there are a lot of exotic uses, this presentation focuses on one of Spark's fundamental use cases: ETL.
Whether the final resting place for your data is MongoDB or SQL Server, ETL is a must. This presentation will show just how impactful Spark can be with your existing ETL processes and that you don't have to do a full rewrite of your Stack to start taking advantage of it.
Presentation about facebook's chat architecture which explains how erlang was used to build a high scaling chat. This is an extract from - http://www.erlang-factory.com/upload/presentations/31/EugeneLetuchy-ErlangatFacebook.pdf
Note that facebook moved out of erlang as it was difficult to find the programmers and a few other small problems that forced to reimplement this with C++ on thrift.
This slide introduct about pygame and show some technique that used in demo game Mario of Happycodyng Group.
More info at: http://tech.blog.framgia.com/vn/
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...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 the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
2. Table of Contents
● What is Elixir ?
● Functional Programming
● Why Elixir ?
● Syntax of Elixir
● Elixir’s Ecosystem
● Q & A
2
3. What is Elixir ?
● Functional, Concurrent, General Purpose
● Created by José Valim @ Plataformatec
○ Former Rails Core Team member
○ Author of Crafting Rails 4 Application
● Run on Erlang VM
● Stable release: 1.3.1
● Used by: Pinterest, Dockyard, Bleacher Report, ...
3
4. What is Elixir ? - Erlang
● Developed by Ericsson, ~1986
● Same characteristic as Elixir
● Used in Telephone Applications
● BEAM VM
○ A virtual machine to run Erlang
○ Interfaces to the “outside” world
● Backed of WhatApp, Amazon’s SimpleDB, ...
○ http://highscalability.com/blog/2014/2/26/the-whatsapp-architecture-facebook-bought-for-19
-billion.html
○ https://blog.whatsapp.com/196/1-million-is-so-2011
● Battle-tested !
4
5. Functional vs Imperative Programming
● Modules
● Immutable
● Pure functions
○ No side-effect
● Stateless ?
● Declarative
○ Expressions
● Erlang, Haskell, Clojure, ...
● Objects
● Mutable
● Methods
○ Can have side-effect
● Stateful
● Imperative
○ Statements
● Python, Ruby, Java
5
6. Elixir’s Syntax - Types
Integer 1234 0xcafe 0177 0b100 10_000
Float 1.0 3.1415 6.02e23
Atom :foo :me@home :"with spaces"
Tuple { 1, 2, :ok, "xy" }
List [ 1, 2, 3 ] or [head | tail]
Keyword List [ a: "Foo", b: 123 ]
Map %{ key => value, key => value }
Truth true, false, nil
Range a..b
6
8. Elixir’s Syntax
● First class functions - High order functions
○ Functions that can either take other functions as arguments or return them as results
○ Macro
○ Homoiconicity
● Anonymous functions
Data Function Function Data
transformation
transformation
8
9. Elixir’s Syntax - Pipe operator (1)
● |>
○ passes the result of an expression as the first parameter of another expression.
● First argument: Data to transform
● Function composing
● Normal (bad) code
9
14. Why Elixir ? Processes
● Processes
○ Lightweight, low cost (~1KB)
○ Isolated, concurrent
○ Thousand of processes
● Communication by message-passing
○ Inbox
● Connect to other node in another computer
● -> Distributed
14
15. Why Elixir ? Fast (1)
● Data copying
○ -> inefficient ?
● Garbage Collector
○ Processes have separated
heap
○ No synchronisation
● Robert Virding - Hitchhiker's
Tour of the BEAM
○ https://www.youtube.com
/watch?v=_Pwlvy3zz9M
15
16. Why Elixir ? Fast (2)
● Let’s see some
benchmark
○ https://github.com/mroth/
phoenix-showdown
16
17. Why Elixir ? Fault-tolerant (1)
● Todo Server Example
○ Everyone have a Todo
○ Todo: List of todo items
● Use cache when DB
isn’t reachable
● One user’s todo list do
not affect other’s todo
list
17
18. Why Elixir ? Fault-tolerant (2)
● “Let it crash”
● Link and Monitor
● OTP
● Supervisor Trees -
GenServer
● Restart Strategy
○ one_for_one
○ simple_one_for_one
○ rest_for_one
18
19. Elixir’s Ecosystem
● Hex - The package manager for the Erlang ecosystem
● Mix - Elixir’s build tool
○ = Rake + Bundler + RubyGems
● Call outside program via Ports or NIF
19
20. Elixir’s Ecosystem
● Productive - Reliable - Fast
● MVC model, Plug based
● Live reload coding
● Websocket integrated
○ http://www.phoenixframework.org/blog/the-road-to-2-million-websocket-c
onnections
○ https://dockyard.com/blog/2016/08/09/phoenix-channels-vs-rails-action-
cable
● More and more app migration from
Rails to Phoenix
○ https://speakerdeck.com/bcardarella/fro
m-rails-to-phoenix
20