Elixir and Erlang share the same VM called BEAM. In this very practical demo, we discover some secrets of BEAM and OTP. This a refreshed version of an old presentations.
These are slides of talk made at https://www.agilemovement.it/workingsoftware/schedule.html. In this talks I'll show how the concepts of DDD like aggregate, domains events, read model, command, CQRS and so on love the idea of Actor Model and how a languages like Elixir that is built on a real Actor Model VM like the BEAM, is very powerful to build software that take care of DDD/CQRS/ES.
This presentation deals with the general description of Domain Specific Languages and the features and building blocks of Eclipse Xtext as a framework for building DSLs. Moreover, it contains a summary of the new features in the latest version of Xtext.
This presentation by Tomasz Kleszczyński (Software Engineer) was delivered at GlobalLogic Java Conference #2 in Krakow on April 23, 2016.
Concurrent Applications with F# AgentsRachel Reese
To build today's responsive and scalable applications, developers need to start leveraging asynchronous programming methods. During this talk, we'll explore how developers can easily use the F# agent-based programming model, which is based upon the actor concurrency model first made popular in Erlang, to simply and quickly build concurrent applications.
ISS Art. How to do IT. Kotlin MultiplatformISS Art, LLC
As soon as Kotlin-Multiplatform technology appeared, we saw in it the opportunity to optimize and accelerate the development of mobile applications.
What were the results? Nikolai Baklanov, our senior iOS Developer will tell you in his presentation “Experience in the use of Kotlin-Multiplatform technology, attempts to reduce everything to one language.”
These are slides of talk made at https://www.agilemovement.it/workingsoftware/schedule.html. In this talks I'll show how the concepts of DDD like aggregate, domains events, read model, command, CQRS and so on love the idea of Actor Model and how a languages like Elixir that is built on a real Actor Model VM like the BEAM, is very powerful to build software that take care of DDD/CQRS/ES.
This presentation deals with the general description of Domain Specific Languages and the features and building blocks of Eclipse Xtext as a framework for building DSLs. Moreover, it contains a summary of the new features in the latest version of Xtext.
This presentation by Tomasz Kleszczyński (Software Engineer) was delivered at GlobalLogic Java Conference #2 in Krakow on April 23, 2016.
Concurrent Applications with F# AgentsRachel Reese
To build today's responsive and scalable applications, developers need to start leveraging asynchronous programming methods. During this talk, we'll explore how developers can easily use the F# agent-based programming model, which is based upon the actor concurrency model first made popular in Erlang, to simply and quickly build concurrent applications.
ISS Art. How to do IT. Kotlin MultiplatformISS Art, LLC
As soon as Kotlin-Multiplatform technology appeared, we saw in it the opportunity to optimize and accelerate the development of mobile applications.
What were the results? Nikolai Baklanov, our senior iOS Developer will tell you in his presentation “Experience in the use of Kotlin-Multiplatform technology, attempts to reduce everything to one language.”
Voice Interfaces Usergroup Berlin - 05-10-2016 : Kay Lerch on Morse-Coder skillKay Lerch
This was an introduction of the Morse-Coder skill for Amazon Alexa given to the audience of Berlin's Usergroup for Voice interfaces at Kajak. This skill covers most of the features of ASK - from Appcards to Audio-SSML. It also is a good source to understand working with two new Java SDKs dedicated to Alexa skill development - Tellask SDK and States SDK.
"Code Generation in Perl" presented to Silicon Valley Perl in Santa Clara CA by Ian Kluft on September 7, 2017. The presentation surveys the landscape of code generation tools and techniques including preprocessers, compliers and model languages, as well as CPAN modules to help with those tasks. Code generation has always been useful for automation of tedious tasks. There is also some debunking of myths from science fiction about what is currently possible with code generation. No matter how much processing is involved, at some level someone still has to write the programs.
Functional Browser Automation Testing for NewbsBryan Arendt
Functional programming is reemerging in popularity but can be difficult for you to use at your day job. At the same time automated browser testing is very practical and has become something that every developer can at least dip their toe in. Canopy, a simple framework in F# on top of Selenium for writing UI automation and tests, can be a great way to start learning a functional language. This talk will explore some of the basic functional concepts targeting those are new to functional programming and show how they can be practically used to automate your browser testing.
We introduce Haskell. Why is it interesting. Where did it come from. What is it like. How to get started.
We show a GHCi session. We introduce simple recursive function and data. And we demo QuickCheck for testing properties of automatically generated data.
Functional Programming is on the rise and many programmers fall in love with the idea that they can build well-behaved programs from small, well-understood, functions.
However our community is still wondering how to best build large applications and services.
Many techniques co-exist nowadays: functions-only, MTL, effects, Tagless-final, ReaderT pattern, dependency injection... This can be so confusing for newcomers.
This talk will take a "zoom out" approach and come back to what we are really after: modularity.
We will embark on a "modularity tour":
- why is it so important to have modular programs?
- vhy is it so hard to achieve modularity?
- what can we expect from today's techniques?
- what can we hope from the ongoing research?
Refactoring @ Mindvalley: Smells, Techniques and PatternsTristan Gomez
Every week my team commits really good, clean code. I decided to get the best of the commits and showcase what makes them good, what smells they address, and what techniques they used.
During the workshop of CommitUniversity, Gianluca Padovani introduced Elixir, the Erlang based innovative functional and scalable language with no speed compromise that rocks!
Voice Interfaces Usergroup Berlin - 05-10-2016 : Kay Lerch on Morse-Coder skillKay Lerch
This was an introduction of the Morse-Coder skill for Amazon Alexa given to the audience of Berlin's Usergroup for Voice interfaces at Kajak. This skill covers most of the features of ASK - from Appcards to Audio-SSML. It also is a good source to understand working with two new Java SDKs dedicated to Alexa skill development - Tellask SDK and States SDK.
"Code Generation in Perl" presented to Silicon Valley Perl in Santa Clara CA by Ian Kluft on September 7, 2017. The presentation surveys the landscape of code generation tools and techniques including preprocessers, compliers and model languages, as well as CPAN modules to help with those tasks. Code generation has always been useful for automation of tedious tasks. There is also some debunking of myths from science fiction about what is currently possible with code generation. No matter how much processing is involved, at some level someone still has to write the programs.
Functional Browser Automation Testing for NewbsBryan Arendt
Functional programming is reemerging in popularity but can be difficult for you to use at your day job. At the same time automated browser testing is very practical and has become something that every developer can at least dip their toe in. Canopy, a simple framework in F# on top of Selenium for writing UI automation and tests, can be a great way to start learning a functional language. This talk will explore some of the basic functional concepts targeting those are new to functional programming and show how they can be practically used to automate your browser testing.
We introduce Haskell. Why is it interesting. Where did it come from. What is it like. How to get started.
We show a GHCi session. We introduce simple recursive function and data. And we demo QuickCheck for testing properties of automatically generated data.
Functional Programming is on the rise and many programmers fall in love with the idea that they can build well-behaved programs from small, well-understood, functions.
However our community is still wondering how to best build large applications and services.
Many techniques co-exist nowadays: functions-only, MTL, effects, Tagless-final, ReaderT pattern, dependency injection... This can be so confusing for newcomers.
This talk will take a "zoom out" approach and come back to what we are really after: modularity.
We will embark on a "modularity tour":
- why is it so important to have modular programs?
- vhy is it so hard to achieve modularity?
- what can we expect from today's techniques?
- what can we hope from the ongoing research?
Refactoring @ Mindvalley: Smells, Techniques and PatternsTristan Gomez
Every week my team commits really good, clean code. I decided to get the best of the commits and showcase what makes them good, what smells they address, and what techniques they used.
During the workshop of CommitUniversity, Gianluca Padovani introduced Elixir, the Erlang based innovative functional and scalable language with no speed compromise that rocks!
Introduction to Erlang/(Elixir) at a Webilea Hands-On SessionAndré Graf
Slides used for introducing and training Erlang/Elixir at the Webilea Hands-On event (http://www.meetup.com/webilea/events/170710572/).
Following topics are more or less covered:
1. very short introduction to the language
2. people try some Erlang over at http://tryerlang.org
3. 'Let it crash'
4. Playing with spawn/link/monitor
5. quick intro to gen_sever and supervisor behaviour
Introduction to Java Programming, Basic Structure, variables Data type, input...Mr. Akaash
This is First Lecture of java Programming which cover all basic points (ie. History and feature of java, Introduction to java, about variables data type and compilation....
Using Erlang in an Embedded and Cross-Compiled WorldFrank Hunleth
This presentation gives an overview of turning Erlang/OTP releases into Flash images that are ready to copy to an SDCard and run on a BeagleBone Black. It was presented at the ErlangDC conference on 12/7/2013.
Development environments are a necessary part of every developer's workflow. They can also be a great source of friction. What may begin as simply running python my_app.py eventually bloats as you add more apps, more databases, more testing frameworks, and more developers. We'll talk about the evolution of a typical development environment, how it lets us down, and how we try to make it better. We'll end with an introduction to Dusty, a new tool which uses Docker containers to take our development environments to the next level.
Originally presented at PyGotham 2015.
Introduction to java programming. fundamentas. basic programming. java is easy to learn. following this presentation , you can get more knowledge of Java . Elementary level presentation.
Introduction to Java : Feature to Java, Java Virtual Machine, Differences between C++ and Java,
Part of Java, API Document, Starting a Java Program. Important Classes, Formatting the Output
Cosa sono i microservizi? Perché li devo usare? Sono una moda? In alcuni dicono che siano una soluzione "standard", altri dicono che non si dovrebbero usare, altri ne negano l'esistenza... Ma chi sviluppa software e deve portare a casa un po' di software che funziona... cosa deve fare?
Proviamo a vedere e a capire da dove arrivano, cosa sono e quali caratteristiche hanno, in modo da fare in ogni contesto una scelta una consapevole.
TDD is now mainstream but a lot people don't know or don't remember what is its purpose. TDD is about software design not testing or catching bug. TDD helps developers to shape and create software with "good" design, what is a "good" design is something that we will discuss in the topic.
TDD is now mainstream but a lot people don't know or don't remember what is its purpose. TDD is about software design not testing or catching bug. TDD helps developers to shape and create software with "good" design, what is a "good" design is something that we will discuss in the topic.
Why should we use TDD to develop in Elixir? When we are applying it correctly? What are the differences that we can find in a code developed with TDD and in code not developed with it? Is it TDD about testing? Really? In this talk, I'll show what is TDD and how can be used it in functional programming like Elixir to design the small and the big parts of your system, showing what are the difference and the similarities between an OOP and FP environment. Showing what is the values of applying a technique like TDD in Elixir and what we should obtain applying it.
In this talk, I'll explain how the current web applications are no more simple DB projections but more complex and distributed applications that require technologies and architectures different from the past. We start with a simple & classic application to move to a more complex and feature-rich application that need a more advanced architecture.
Workshop on how, using RabbitMQ and Elixir, we can integrate a lot of different application written in different languages (Java, .NET, js, ruby, python and C++) with different protocols AMQP and MQTT.
Docker & GitLab as a Continuous Integration platform. In this talk we describe how we use gitlab and docker as a platform to implement Continuous Integration in a simple and effective weay.
In questo talk farò vedere il primo approccio ad Elixir in un semplice caso reale. Vedremo cosa significa sviluppare un piccolo servizio in Elixir e quanto l'ecosistema sia pronto per andare in produzione.
Can we move beyond threads and locks to manage concurrency? Are there more advanced models than threads and locks? How do other languages manage the concurrency?
We see some examples in others languages and a possible solution in C++.
Example code: https://github.com/italiancpp/meetup-milano-2014/tree/master/cpp_actor_model
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
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.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfPeter Spielvogel
Building better applications for business users with SAP Fiori.
• What is SAP Fiori and why it matters to you
• How a better user experience drives measurable business benefits
• How to get started with SAP Fiori today
• How SAP Fiori elements accelerates application development
• How SAP Build Code includes SAP Fiori tools and other generative artificial intelligence capabilities
• How SAP Fiori paves the way for using AI in SAP apps
The Metaverse and AI: how can decision-makers harness the Metaverse for their...Jen Stirrup
The Metaverse is popularized in science fiction, and now it is becoming closer to being a part of our daily lives through the use of social media and shopping companies. How can businesses survive in a world where Artificial Intelligence is becoming the present as well as the future of technology, and how does the Metaverse fit into business strategy when futurist ideas are developing into reality at accelerated rates? How do we do this when our data isn't up to scratch? How can we move towards success with our data so we are set up for the Metaverse when it arrives?
How can you help your company evolve, adapt, and succeed using Artificial Intelligence and the Metaverse to stay ahead of the competition? What are the potential issues, complications, and benefits that these technologies could bring to us and our organizations? In this session, Jen Stirrup will explain how to start thinking about these technologies as an organisation.
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
Beam me up, scotty (PUG Roma)
1. BEAM me up, Scotty
Prepare ship...prepare ship...for LUDICROUS SPEED!!!!
2. GPad
Born to be a developer with an interest in distributed system.
I have developed with many languages like C++, C#, js and ruby. I had fallen in love
with functional programming, especially with Elixir and Erlang.
● Twitter: https://twitter.com/gpad619
● Github: https://github.com/gpad/
● Medium: https://medium.com/@gpad
CTO & founder of coders51
5. BEAM
From wikipedia:
BEAM is the virtual machine at the core of the Erlang Open Telecom Platform (OTP).
BEAM is part of the Erlang Run-Time System (ERTS), which compiles Erlang and
Elixir source code into bytecode, which is then executed on the BEAM. BEAM
bytecode files have the .beam file extension.
6. BEAM
From wikipedia:
Originally BEAM was short for Bogdan's Erlang Abstract Machine, named after
Bogumil "Bogdan" Hausman, who wrote the original version, but the name may also be
referred to as Björn's Erlang Abstract Machine, after Björn Gustavsson, who wrote and
maintains the current version. Both developers worked on the system while at Ericsson.
The predecessor of the BEAM was JAM (Joe's Abstract Machine), which was the first
virtual machine for the Erlang language and was written by Joe Armstrong.
7. History
From http://www.erlang.org/course/history
● 1982 -1985 - First experiment with 20 different languages.
● 1985 - 1986 - Experiments with Lisp,Prolog, Parlog etc. Conclusion: The language
must contain primitives for concurrency and error recovery.
● 1987 - First experiment with Erlang.
8. History
From http://www.erlang.org/course/history
● ...
● 1990 - Erlang is presented at ISS'90, which results in several new users.
● 1992 - Erlang is ported to VxWorks, PC, Macintosh etc. Three applications using
Erlang are presented at ISS'92.
● 1993 - Distribution is added to Erlang, which makes it possible to run a
homogeneous Erlang system on a heterogeneous hardware.
9.
10.
11.
12.
13.
14.
15. History
From https://en.wikipedia.org/wiki/Java_version_history#JDK_Alpha_and_Beta
The first alpha and beta Java public releases in 1995 had highly unstable APIs and
ABIs. The supplied Java web browser was named WebRunner.
From https://en.wikipedia.org/wiki/Java_version_history#JDK_1.0
The first version was released on January 23, 1996 and called Oak.[3][4] The first
stable version, JDK 1.0.2, is called Java 1.
18. Why BEAM
From http://www.erlang.org/
Erlang is a programming language used to build massively scalable soft real-time
systems with requirements on high availability. Some of its uses are in telecoms,
banking, e-commerce, computer telephony and instant messaging. Erlang's
runtime system has built-in support for concurrency, distribution and fault
tolerance.
20. Why BEAM
From http://stackoverflow.com/questions/16779162/what-kind-of-virtual-machine-is-beam-the-erlang-vm
Erlang processes are implemented entirely by the Erlang VM and have no
connection to either OS processes or OS threads. So even if you are running an
Erlang system of over one million processes it is still only one OS processes and
one thread per core. So in this sense the Erlang VM is a "process virtual machine"
while the Erlang system itself very much behaves like an OS and Erlang process
have very similar properties to OS processes, for example isolation. There is
actually an Erlang VM, based on the BEAM, which runs on the bare metal and is
in fact an OS in its own right, see Erlang on Xen.
23. GenServer/Supervisor
GenServer reacts to message it receives. Executes some
actions and return to itself the new state.
Supervisor monitors and is linked to its children and
when detect their death it restart (using different
policies).
25. OTP
From http://www.erlang.org/
OTP is set of Erlang libraries and design principles providing
middle-ware to develop these systems. It includes its own
distributed database, applications to interface towards other
languages, debugging and release handling tools.
26. Why OTP
● GenServer
● Supervisor
● A lot of other patterns ...
● Always think in async and distributed way (timeout)
● The community think about to increase (CRDT, GenStage, Broadway, etc…)
37. Batteries Included
Erlang and all OTP (gen_server, logger, mnesia, distribution, etc …)
Tool to build and deploy your application (mix, eunit, etc …)
Some libraries supported by “core team” (ecto, phoenix, telemetry, etc …)