Episode #9 – Onyx with Mike and Lucas

Summary:

A fun, loooong episode to discuss the awesome Onyx with Mike Drogalis and Lucas Bradstreet

@Mike on Twitter

@Lucas on Twitter

and the new chap, Gardner Vickers, is @Gardner on Twitter

Show Notes:

Follow up

  • Thanks for keeping on listening and for the positive feedback, especially our latest confirmed listener, a certain Mr Rich Hickey.

News & Events

  • Defn will be at Euroclojure – October 25/26
    • EuroClojure talks  – David Nolen, Carin Meier etc.
  • http://clojutre.org/2016/ < September 10th Tampere, Finland (pronounced Tampe Ray according to Ray)

Main discussion – Onyx

  • Michael and Lucas background
    • What is Onyx?
    • What are the typical use cases of onyx?
    • Compare to Spark/Flink/Storm/Heron .. etc.
    • Challenges of Distributed Computing and what Clojure brings to the table
    • Building Onyx Apps
    • Deployment – cluster support
    • Tooling – monitoring
    • Interop with other techs in the same space: Kafka/Datomic/S3 etc.
    • Jepsen testing …
    • Who is using Onyx and how …
    • Future Plans for Onyx

Links:

Credits:

Music: Thanks to the very talented ptzery for the permitting us to use his music on the opening and closing of the podcast. This track is Melon Hamburger. You can give his work some ❤️ and hear more on his SoundCloud.

Episode #8 – Discussion: Scaling with Clojure

Summary:

Another village idiot special where we discuss  what it means to scale with Clojure.

Show Notes:

Follow up

  • Thanks for keeping on listening and for the positive feedback.

News & Events

Main discussion – Scaling with Clojure

  • Discussion
    • OOP has design patterns UML etc. OOAD
    • Scaling – two thingies: Static vs. Dynamic
    • Functional Programming without OOP Paradigms
    • component/mount
    • “Modules” or namespaces /
    • Distribution – fund the clojars! (https://salt.bountysource.com/teams/clojars)
    • Functions as first class (high-order fns, fns as return types)
    • Code testing/schema/spec
    • Team – Sizes
    • Micro-services / Serverless

Links:

Credits:

Music: Thanks to the very talented ptzery for the permitting us to use his music on the opening and closing of the podcast. This track is Melon Hamburger. You can give his work some ❤️ and hear more on his SoundCloud.

Episode #7 – Datomic with Robert Stuttaford

Summary:

A tour of Datomic and a field report from Robert – a leading edge production pioneer.

Show Notes:

Follow up

  • Hopefully the sound quality is much better on this episode after Ray’s microphone SNAFU last week.

News & Events

Main discussion – Datomic with Robert Stuttaford

  • Background of Robert
  • Discusssion
    • Why Clojure at Cognician?
    • Why Datomic?
    • Wow – the Cognician Stack though
    • Datomic production readiness
    • Datomic Architecture
    • Querying with Datomic
    • Database queries across time (past, present and future)
    • Datomic schemas – pros and cons
    • Production scale at Cognician
    • Tooling – the REPL and Clojure
    • Scaling Datomic (esp caching)
    • Transactor (incl serialisation)
    • Storage backends (and interchangeability!)
    • What is the Pro support like?
    • Options for Licensing Datomic
    • The awesome POWER of Temporal data
      • ANSI SQL2011 https://en.wikipedia.org/wiki/SQL:2011
    • Excision – can Datomic forget me?
    • Annotated transactions – auditing and troubleshooting
    • Ctrl-Z in a database!!
    • Database functions
    • Licensing model, planning and the cloud
    • Drivers for JVM / Non-JVM clients (REST API)
    • Datascript (Nikita Prokopov)
    • Thanks!

Credits:

Guest: Thanks to Robert for being such an engaging conversationalist on the podcast.

Music: Thanks to the very talented ptzery for the permitting us to use his music on the opening and closing of the podcast. This track is Melon Hamburger. You can give his work some ❤️ and hear more on his SoundCloud.

Episode #6 – Concurrency and Parallelism

Summary:

A rambling discussion with two village idiots struggling to come to terms with concurrency and parallelism

Show Notes:

Follow up

  • Thanks again for Micha and his nukes doing a great job on the last episode.
  • A small diversion into the delights of Java 8 interop wherein we mention the nice little library by Mr Andrew Oberstar called ike:

News & Events

Main discussion – Concurrency and Parallelism

  • Things can happen at the same time – shocker! 😉
  • Concurrency – systems can be composed up from asynchronous actions – event driven!!
    • increases the amount of work that can be done on single threaded environments or single core machines
  • callbacks traditionally makes programming awkward … there is a loss of comprehension, error handling is a big problem since callbacks do not retain the original context
  • Parallelism – problems are decomposed into discrete tasks or actions to fulfil a defined goal
    • usually only worth doing if the underlying hardware can run tasks in parallel
    • this increases the amount of work that can be done on multi-threaded environments or multi-core / CPU / GPU machines
  • Major innovations in Clojure
    • Handling shared state – Dynamic Vars / Atoms / Refs / Agents
    • Concurrency … core.async
      • Manifold and Aleph – Mr Zach Tellman – Lingua franca for asynchron
    • Parallelism … reducers

Credits:

Music: Thanks to the very talented ptzery for the permitting us to use his music on the opening and closing of the podcast. This track is Melon Hamburger. You can give his work some ❤️ and hear more on his SoundCloud.

Episode #5 – Hoplon Special with Micha Niskin

Summary:

A Hoplon special with Micha Niskin.

Show Notes:

Follow up

  • We retain our status as the top vegetarian Clojure podcast. Phew.
  • Maria Geller’s video – in which she did a great job of explaining how the CLJS compiler works and provides some interface to the contribution process:

News

  • Euro Clojure – Bratislava tickets are on sale
  • Defn will be there

Main discussion – ClojureScript UI – Hoplon Special

  • Welcome to Micha Niskin – missile expert and co-author of the awesome Hoplon library collection
  • Potted history of Micha and the main goals of Hoplon
  • Hoplon
    • LISP based DOM manipulation

  • Javelin
    • Spreadsheet data flow model
  • Castra
    • CQRS
    • RPC
  • Comparison to React / Rum / Reagent

Credits:

Special Guest: Micha Niskin. Thanks Micha and please look after those nukes.

Music: Thanks to the very talented ptzery for the permitting us to use his music on the opening and closing of the podcast. This track is Melon Hamburger. You can give his work some ❤️ and hear more on his SoundCloud.

 

Episode #4 – Collections

Summary:

An overview of core and contributed collections and their use.

Show Notes:

Overview of Persistent Collections

Intro | Follow-up | News

  • Discussion on community relations

Immutable Persistent Collections

  • List vs Vector
    – Linked list vs tree implementation
  • Map vs Set
    – Key can be anything
    – KV | Unique KV
    – Relational operations on set are outside of core
  • Seq library
    – ISeq (first, rest, cons)
    – Interop with Java utterable
    – Functions are written to work against the Seq interface
    – Seq in, Seq out
  • Immutability and Persistence
    – What is it?
    – Why is it important?
    – Implementation
    http://hypirion.com/musings/understanding-persistent-vector-pt-1
    http://hypirion.com/musings/understanding-persistent-vector-pt-2
  • Lazy collections
    – What does it mean to be lazy?
    – What does it mean to hold on the head?
  • Eager operations
    – Sometimes you need side effects so you cannot be lazy
    – Doall, doseq
  • Persistent vs. Transient
    – Performance
  • Specter – Nathan Marz
    – Ensure output format of collection operations is controlled
    – Editing operations
    Clojure West 2016 presentation: https://www.youtube.com/watch?v=VTCy_DkAJGk
  • Community contributed collections – shout out to
    – Chris Houser – Data.zip
    – Michał Marczyk – Ctries and AVL
    – Mark Engelberg – Priority maps
    – Peter Schuck – Lean Hash Maps
    Clojure West 2016 presentation: https://www.youtube.com/watch?v=GibNOQVelFY

Credits:

Music: Thanks to the very talented ptzery for the permitting us to use his music on the opening and closing of the podcast. This track is Melon Hamburger. You can give his work some ❤️ and hear more on his SoundCloud.

Episode #3 – Tour of the REPLs with Mike Fikes

Summary:

An episode where we go on a tour of the Clojure and ClojureScript REPLs with a special guest Mr Mike Fikes.

Show Notes:

Mike helps us on our tour of the many forms of REPL as we look at

  • The technology needed to create a REPL for the web, for a specific OS
  • REPLs in editors and IDEs
  • File listening REPLs for live coding
  • REPLs that can be used in web pages to provide executable documentation
  • Fun ways to use REPLs for music, graphics and even 3D games

We start with Mike’S interview to be a REPL Author

[ Spoiler alert – he got the job and an amazing salary! ]

IDE REPLs
Cider | Cursive

File listener REPLs
figwheel | hoplon & boot | ring-refresh | test-refresh

Web REPLs
Klipse | Gorilla | instaREPL | Hymera | tryClojure | Dev Cards

Fun REPLs
Overtone | Sonic Pi | Repl electric

Credits:

Special Guest: Thanks again to Mike for his contribution to the podcast and for his stellar contributions to the ClojureScript ecosystem. Follow his work on Twitter at https://twitter.com/mfikes

Music: Thanks to the very talented ptzery for the permitting us to use his music on the opening and closing of the podcast. This track is Melon Hamburger. You can give his work some ❤️ and hear more on his SoundCloud.

Web sites mentioned:

  • Lots … working on these

Episode #2 – The Reader

Summary:

An episode where we review the news regarding the spec announcement and perform a deep dive into the Clojure Reader.

Show Notes:

[ a little news: spec ]

The wonders of the Reader
– Compare to the C pre-processor
– How it underpins the language
– Reader forms
– EDN / Transit
– Tagged literals
– Reader Conditionals
– clojure.tools.reader
– Finally, why no user defined reader macros (as in Common Lisp and Scheme)?

Credits:

Music: Thanks to the very talented ptzery for the permitting us to use his music on the opening and closing of the podcast. This track is Melon Hamburger. You can give his work some ❤️ and hear more on his SoundCloud.

Web sites mentioned:

Episode #1 – Hello World

Summary:

Launch episode explaining our motivations for being Clojure and ClojureScipt enthusiasts.

Show Notes:

Credits:

Music: Thanks to the very talented ptzery for the permitting us to use his music on the opening and closing of the podcast. This track is Melon Hamburger. You can hear more on his SoundCloud.

Audio: Thanks to the audio wizard and general tech hero, Mr Wouter Dullaert for mixing the show and helping us to overcome some serious technical issues.

Web sites mentioned:

Twitter accounts to follow:

  • @cognitect – info from the mother ship
  • @richhickey – low volume account from the creator of Clojure / ClojureScript
  • @swannodette – David Nolen, Mr ClojureScript
  • @puredanger : Alex Miller -core language committer, organises interesting events
  • @mfikes – builds ClojureScript tools for iOS and OS/X