This document is a presentation on functional programming using Clojure on the JVM. The presentation covers an introduction to Clojure including what it is, why it was created, and how it is better than other languages. It then discusses Clojure fundamentals like being a Lisp, being dynamic and functional. The remainder of the presentation covers Clojure syntax, basics like Hello World, sequences, Java interoperability, concurrency, multimethods, tools and resources for Clojure.
java notes, object oriented programming using java, java tutorial, lecture notes, java programming notes, java example programs, java programs with explanation, java source code with output, java programs, java coding, java codes, java slides, java notes,multithreading in java, java multithreading notes, java multithreading notes,different types of multithreading in Java,multithreading with an example, multithreading in Java
There is an increasing interest in functional programming from Java developers and the organisations in which they work. For many companies the challenge now is how to make use of the competitive advantage of functional programming. For developers, how do you adapt your mindset to this newly reimagined paradigm? Through the use of examples and a modular approach to design, Clojure made simple will show how developers can be productive quickly without a major change to their current development life-cycle. We will also cover the Clojure build process, tools and exciting projects out there.
By James Kirk Cropcho
PyData New York City 2017
Want to start learning asynchronous programming techniques, but you’re feeling blocked? In this talk, I will explain asynchronous execution. Then, using assorted asynchronous libraries and frameworks, I’ll display and discuss different implementations of a realistic application.
Deep Learning for NLP (without Magic) - Richard Socher and Christopher ManningBigDataCloud
A tutorial given at NAACL HLT 2013.
Richard Socher and Christopher Manning
http://nlp.stanford.edu/courses/NAACL2013/
Machine learning is everywhere in today's NLP, but by and large machine learning amounts to numerical optimization of weights for human designed representations and features. The goal of deep learning is to explore how computers can take advantage of data to develop features and representations appropriate for complex interpretation tasks. This tutorial aims to cover the basic motivation, ideas, models and learning algorithms in deep learning for natural language processing. Recently, these methods have been shown to perform very well on various NLP tasks such as language modeling, POS tagging, named entity recognition, sentiment analysis and paraphrase detection, among others. The most attractive quality of these techniques is that they can perform well without any external hand-designed resources or time-intensive feature engineering. Despite these advantages, many researchers in NLP are not familiar with these methods. Our focus is on insight and understanding, using graphical illustrations and simple, intuitive derivations. The goal of the tutorial is to make the inner workings of these techniques transparent, intuitive and their results interpretable, rather than black boxes labeled "magic here". The first part of the tutorial presents the basics of neural networks, neural word vectors, several simple models based on local windows and the math and algorithms of training via backpropagation. In this section applications include language modeling and POS tagging. In the second section we present recursive neural networks which can learn structured tree outputs as well as vector representations for phrases and sentences. We cover both equations as well as applications. We show how training can be achieved by a modified version of the backpropagation algorithm introduced before. These modifications allow the algorithm to work on tree structures. Applications include sentiment analysis and paraphrase detection. We also draw connections to recent work in semantic compositionality in vector spaces. The principle goal, again, is to make these methods appear intuitive and interpretable rather than mathematically confusing. By this point in the tutorial, the audience members should have a clear understanding of how to build a deep learning system for word-, sentence- and document-level tasks. The last part of the tutorial gives a general overview of the different applications of deep learning in NLP, including bag of words models. We will provide a discussion of NLP-oriented issues in modeling, interpretation, representational power, and optimization.
java notes, object oriented programming using java, java tutorial, lecture notes, java programming notes, java example programs, java programs with explanation, java source code with output, java programs, java coding, java codes, java slides, java notes,multithreading in java, java multithreading notes, java multithreading notes,different types of multithreading in Java,multithreading with an example, multithreading in Java
There is an increasing interest in functional programming from Java developers and the organisations in which they work. For many companies the challenge now is how to make use of the competitive advantage of functional programming. For developers, how do you adapt your mindset to this newly reimagined paradigm? Through the use of examples and a modular approach to design, Clojure made simple will show how developers can be productive quickly without a major change to their current development life-cycle. We will also cover the Clojure build process, tools and exciting projects out there.
By James Kirk Cropcho
PyData New York City 2017
Want to start learning asynchronous programming techniques, but you’re feeling blocked? In this talk, I will explain asynchronous execution. Then, using assorted asynchronous libraries and frameworks, I’ll display and discuss different implementations of a realistic application.
Deep Learning for NLP (without Magic) - Richard Socher and Christopher ManningBigDataCloud
A tutorial given at NAACL HLT 2013.
Richard Socher and Christopher Manning
http://nlp.stanford.edu/courses/NAACL2013/
Machine learning is everywhere in today's NLP, but by and large machine learning amounts to numerical optimization of weights for human designed representations and features. The goal of deep learning is to explore how computers can take advantage of data to develop features and representations appropriate for complex interpretation tasks. This tutorial aims to cover the basic motivation, ideas, models and learning algorithms in deep learning for natural language processing. Recently, these methods have been shown to perform very well on various NLP tasks such as language modeling, POS tagging, named entity recognition, sentiment analysis and paraphrase detection, among others. The most attractive quality of these techniques is that they can perform well without any external hand-designed resources or time-intensive feature engineering. Despite these advantages, many researchers in NLP are not familiar with these methods. Our focus is on insight and understanding, using graphical illustrations and simple, intuitive derivations. The goal of the tutorial is to make the inner workings of these techniques transparent, intuitive and their results interpretable, rather than black boxes labeled "magic here". The first part of the tutorial presents the basics of neural networks, neural word vectors, several simple models based on local windows and the math and algorithms of training via backpropagation. In this section applications include language modeling and POS tagging. In the second section we present recursive neural networks which can learn structured tree outputs as well as vector representations for phrases and sentences. We cover both equations as well as applications. We show how training can be achieved by a modified version of the backpropagation algorithm introduced before. These modifications allow the algorithm to work on tree structures. Applications include sentiment analysis and paraphrase detection. We also draw connections to recent work in semantic compositionality in vector spaces. The principle goal, again, is to make these methods appear intuitive and interpretable rather than mathematically confusing. By this point in the tutorial, the audience members should have a clear understanding of how to build a deep learning system for word-, sentence- and document-level tasks. The last part of the tutorial gives a general overview of the different applications of deep learning in NLP, including bag of words models. We will provide a discussion of NLP-oriented issues in modeling, interpretation, representational power, and optimization.
Jenny Pawlak, Brian Gracin and myself performed an optional presentation on the language Clojure for our Programming Languages class. This is meant to be an introduction to the language to those who already know about functional languages, particularly Haskell.
Avram Aelony presented this talk in SBJUG on September 27 2012.
To introduce Clojure as a powerful JVM language and look at Clojure from a value-added perspective for those that already know Java.
The recorded talk can be found at - http://www.youtube.com/watch?v=HhMCX8xwjo8
Philipp Von Weitershausen Plone Age Mammoths, Sabers And Caveen Cant The...Vincenzo Barone
It is the last Plone age. The big and strong but lonely mammoth has led the way for eons. But now it is threatened by a pack of saber-tooth tigers who are quick, agile and work together. Can the friendly caveman save the mammoth and make piece with the sabers? Can Grok help making Zope and Plone more agile? Will Zope and the other web frameworks fall in love, and what do WSGI and Paste have to say about that? From the makers of "Zope on a Paste", coming this October, a comedy for the whole family (developers, integrators and newbiews). Rated PG-13.
The functional paradigm has emerged in the 50s of the last century, but the industry has ignored it as the foundation for modern programming languages. Today, distributed applications are the rule and not the exception. Develop them in imperative languages make them complex, difficult to maintain and consequently expensive. Nowadays, the industry is being challenged by lean entrepreneurs, able to create, maintain and evolve extremely high quality functional languages. These entrepreneurs solve in a short time serious scalability, productivity, performance and maintenance issues with solid guarantees offered by the functional paradigm.
In this presentation, we introduce one of these new-generation languages. Clojure is a functional and dynamic language, whose design serves as inspiration for the development of several other modern languages like Java and Scala.
Mario Fusco - Comparing different concurrency models on the JVM | Codemotion ...Codemotion
Per anni i threads sono stati il solo modello di concorrenza sulla JVM. Tuttavia usarli correttamente è difficile, e anche per questo altri modelli di concorrenza stanno guadagnando popolarità. Akka ha reso disponibile sulla JVM gli attori originalmente implementati in Erlang. Clojure ha separato una referenza dalla serie di valori che assume nel tempo introducendo il concetto di STM. Infine anche la programmazione funzionale sta giocando un ruolo importante nel semplificare le tecniche di parallelizzazione. Lo scopo del talk è comparare pro e contro di questi diversi modelli di concorrenza.
An Introduction to Groovy for Java DevelopersKostas Saidis
An introduction to Groovy for Java developers with real-life examples that present how Groovy helped us win the 2nd prize in the Open Public Data Hackathon 2014 (http://www.ydmed.gov.gr/hackathon/)
Cats And Dogs Living Together: Langsec Is Also About UsabilityMeredith Patterson
One premise underlies every argument about usability and security that has ever raged: "Secure software is doomed to be unusable, and usable software is doomed to be insecure." This talk will examine the faulty assumptions behind that belief, using the dual lenses of linguistics and formal language theory. We'll explore what makes software -- particularly software that developers use, e.g., APIs -- easy or difficult to use, how mismatches between what developers expect and what users expect lead to vulnerabilities, and how architects and developers can design and code for improved security and improved usability at the same time.
Apache Groovy: the language and the ecosystemKostas Saidis
An overview of the Groovy language and its awesome ecosystem, advocating Groovy as the language of choice for (a) Java developers that want to dive into dynamic languages or (b) for Javascript, Ruby or Python developers that want to dive into the Java platform.
The presentation was given at the 9th FOSSCOMM (16-17 April 2016) organized by the Software Libre Sociecy of the University of Piraues.
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.
Jenny Pawlak, Brian Gracin and myself performed an optional presentation on the language Clojure for our Programming Languages class. This is meant to be an introduction to the language to those who already know about functional languages, particularly Haskell.
Avram Aelony presented this talk in SBJUG on September 27 2012.
To introduce Clojure as a powerful JVM language and look at Clojure from a value-added perspective for those that already know Java.
The recorded talk can be found at - http://www.youtube.com/watch?v=HhMCX8xwjo8
Philipp Von Weitershausen Plone Age Mammoths, Sabers And Caveen Cant The...Vincenzo Barone
It is the last Plone age. The big and strong but lonely mammoth has led the way for eons. But now it is threatened by a pack of saber-tooth tigers who are quick, agile and work together. Can the friendly caveman save the mammoth and make piece with the sabers? Can Grok help making Zope and Plone more agile? Will Zope and the other web frameworks fall in love, and what do WSGI and Paste have to say about that? From the makers of "Zope on a Paste", coming this October, a comedy for the whole family (developers, integrators and newbiews). Rated PG-13.
The functional paradigm has emerged in the 50s of the last century, but the industry has ignored it as the foundation for modern programming languages. Today, distributed applications are the rule and not the exception. Develop them in imperative languages make them complex, difficult to maintain and consequently expensive. Nowadays, the industry is being challenged by lean entrepreneurs, able to create, maintain and evolve extremely high quality functional languages. These entrepreneurs solve in a short time serious scalability, productivity, performance and maintenance issues with solid guarantees offered by the functional paradigm.
In this presentation, we introduce one of these new-generation languages. Clojure is a functional and dynamic language, whose design serves as inspiration for the development of several other modern languages like Java and Scala.
Mario Fusco - Comparing different concurrency models on the JVM | Codemotion ...Codemotion
Per anni i threads sono stati il solo modello di concorrenza sulla JVM. Tuttavia usarli correttamente è difficile, e anche per questo altri modelli di concorrenza stanno guadagnando popolarità. Akka ha reso disponibile sulla JVM gli attori originalmente implementati in Erlang. Clojure ha separato una referenza dalla serie di valori che assume nel tempo introducendo il concetto di STM. Infine anche la programmazione funzionale sta giocando un ruolo importante nel semplificare le tecniche di parallelizzazione. Lo scopo del talk è comparare pro e contro di questi diversi modelli di concorrenza.
An Introduction to Groovy for Java DevelopersKostas Saidis
An introduction to Groovy for Java developers with real-life examples that present how Groovy helped us win the 2nd prize in the Open Public Data Hackathon 2014 (http://www.ydmed.gov.gr/hackathon/)
Cats And Dogs Living Together: Langsec Is Also About UsabilityMeredith Patterson
One premise underlies every argument about usability and security that has ever raged: "Secure software is doomed to be unusable, and usable software is doomed to be insecure." This talk will examine the faulty assumptions behind that belief, using the dual lenses of linguistics and formal language theory. We'll explore what makes software -- particularly software that developers use, e.g., APIs -- easy or difficult to use, how mismatches between what developers expect and what users expect lead to vulnerabilities, and how architects and developers can design and code for improved security and improved usability at the same time.
Apache Groovy: the language and the ecosystemKostas Saidis
An overview of the Groovy language and its awesome ecosystem, advocating Groovy as the language of choice for (a) Java developers that want to dive into dynamic languages or (b) for Javascript, Ruby or Python developers that want to dive into the Java platform.
The presentation was given at the 9th FOSSCOMM (16-17 April 2016) organized by the Software Libre Sociecy of the University of Piraues.
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.
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/
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
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
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.
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.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
Introduction to Clojure
1. Functional Programming on the JVM
using Clojure
Baishampayan Ghose
Infinitely Beta Technologies
GNUnify 2010
1 / 31
2. Outline
1 Who am I?
2 What, why and how of Clojure
3 Fundamentals
4 Syntax
5 Hello, Clojure!
6 Sequences
7 Java Inter-op
8 Concurrency
9 Multimethods
10 There is more!
11 Tools
12 Resources
13 Q&A
14 Contacting me
2 / 31
3. Who am I?
My name is BG and I am a Computer guy
FP head
Scale nerd
Prog-lang lawyer
Web standards ninja
FOSS geek
Startup-ist
3 / 31
4. Outline
1 Who am I?
2 What, why and how of Clojure
3 Fundamentals
4 Syntax
5 Hello, Clojure!
6 Sequences
7 Java Inter-op
8 Concurrency
9 Multimethods
10 There is more!
11 Tools
12 Resources
13 Q&A
14 Contacting me
4 / 31
5. What, why and how of Clojure
What is Clojure?
Why a new programming language?
How is Clojure any better than X?
5 / 31
6. Outline
1 Who am I?
2 What, why and how of Clojure
3 Fundamentals
4 Syntax
5 Hello, Clojure!
6 Sequences
7 Java Inter-op
8 Concurrency
9 Multimethods
10 There is more!
11 Tools
12 Resources
13 Q&A
14 Contacting me
6 / 31
7. Fundamentals
Clojure is a Lisp
Clojure is dynamic
Clojure is hosted on the JVM
Clojure is functional
Clojure is geared towards concurrency
Free & Open Source
7 / 31
10. Outline
1 Who am I?
2 What, why and how of Clojure
3 Fundamentals
4 Syntax
5 Hello, Clojure!
6 Sequences
7 Java Inter-op
8 Concurrency
9 Multimethods
10 There is more!
11 Tools
12 Resources
13 Q&A
14 Contacting me
10 / 31
11. Syntax
There is no other syntax!
Data structures are the code
No other text based syntax, just different
interpretations
There is a fancy name for this — Homoiconicity
11 / 31
12. Syntax
There is no other syntax!
Data structures are the code
No other text based syntax, just different
interpretations
There is a fancy name for this — Homoiconicity
Everything is an expression
All data literals stand for themselves, except —
Symbols
Lists
11 / 31
13. Outline
1 Who am I?
2 What, why and how of Clojure
3 Fundamentals
4 Syntax
5 Hello, Clojure!
6 Sequences
7 Java Inter-op
8 Concurrency
9 Multimethods
10 There is more!
11 Tools
12 Resources
13 Q&A
14 Contacting me
12 / 31
15. Outline
1 Who am I?
2 What, why and how of Clojure
3 Fundamentals
4 Syntax
5 Hello, Clojure!
6 Sequences
7 Java Inter-op
8 Concurrency
9 Multimethods
10 There is more!
11 Tools
12 Resources
13 Q&A
14 Contacting me
14 / 31
16. Sequences
An abstraction over traditional Lisp lists
Provides an uniform way of walking through data
structures
(seq coll)
If collection is non-empty, return a sequence object
(first s)
Return the first item
(rest s)
Return a seq of the rest of elements
15 / 31
17. Outline
1 Who am I?
2 What, why and how of Clojure
3 Fundamentals
4 Syntax
5 Hello, Clojure!
6 Sequences
7 Java Inter-op
8 Concurrency
9 Multimethods
10 There is more!
11 Tools
12 Resources
13 Q&A
14 Contacting me
16 / 31
18. Java Inter-op
Wrapper free interface to Java
Syntactic sugar to make Java invocation easy
Core Clojure abstractions are Java interfaces
Clojure functions implement Callable & Runnable
Clojure sequence library works on Java iterables
Easy to implement, extend Java interfaces (if
needed)
Almost identical to Java in terms of speed
17 / 31
19. Outline
1 Who am I?
2 What, why and how of Clojure
3 Fundamentals
4 Syntax
5 Hello, Clojure!
6 Sequences
7 Java Inter-op
8 Concurrency
9 Multimethods
10 There is more!
11 Tools
12 Resources
13 Q&A
14 Contacting me
18 / 31
21. Concurrency
Simultaneous execution
Avoid reading,yielding inconsistent data
Synchronous Asynchronous
Coordinated ref
Independent atom agent
Unshared var
Table: Building blocks of Clojure concurrency
19 / 31
22. Outline
1 Who am I?
2 What, why and how of Clojure
3 Fundamentals
4 Syntax
5 Hello, Clojure!
6 Sequences
7 Java Inter-op
8 Concurrency
9 Multimethods
10 There is more!
11 Tools
12 Resources
13 Q&A
14 Contacting me
20 / 31
23. Multimethods
Generalised indirect dispatch
Dispatch on a arbitrary function of the arguments
21 / 31
24. Multimethods
Generalised indirect dispatch
Dispatch on a arbitrary function of the arguments
Call sequence
Call dispatch function on args to get dispatch value
Find method associated with dispatch value
21 / 31
25. Multimethods
Generalised indirect dispatch
Dispatch on a arbitrary function of the arguments
Call sequence
Call dispatch function on args to get dispatch value
Find method associated with dispatch value
Else call default method, else error
21 / 31
26. Outline
1 Who am I?
2 What, why and how of Clojure
3 Fundamentals
4 Syntax
5 Hello, Clojure!
6 Sequences
7 Java Inter-op
8 Concurrency
9 Multimethods
10 There is more!
11 Tools
12 Resources
13 Q&A
14 Contacting me
22 / 31
27. There is more!
Metadata
Destructuring
Transients
Zippers
Futures, Promises
clojure.contrib
Ping me after the talk for details
23 / 31
28. Outline
1 Who am I?
2 What, why and how of Clojure
3 Fundamentals
4 Syntax
5 Hello, Clojure!
6 Sequences
7 Java Inter-op
8 Concurrency
9 Multimethods
10 There is more!
11 Tools
12 Resources
13 Q&A
14 Contacting me
24 / 31
34. Outline
1 Who am I?
2 What, why and how of Clojure
3 Fundamentals
4 Syntax
5 Hello, Clojure!
6 Sequences
7 Java Inter-op
8 Concurrency
9 Multimethods
10 There is more!
11 Tools
12 Resources
13 Q&A
14 Contacting me
30 / 31
35. Contacting me
http://freegeek.in/
bg@infinitelybeta.com
@ghoseb on Twitter
Slides on - http://bit.ly/gnunify-clojure
Infinitely Beta is recruiting smart hackers!
http://infinitelybeta.com/jobs/
CC BY SA
31 / 31