<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~files/feed-premium.xsl"?>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:feedpress="https://feed.press/xmlns" xmlns:media="http://search.yahoo.com/mrss/" xmlns:podcast="https://podcastindex.org/namespace/1.0" version="2.0">
  <channel>
    <feedpress:locale>en</feedpress:locale>
    <atom:link rel="hub" href="https://feedpress.superfeedr.com/"/>
    <title>Newsletters on The REPL</title>
    <link>https://www.therepl.net/newsletters/</link>
    <description>Recent content in Newsletters on The REPL</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Sat, 20 Nov 2021 13:15:42 +1300</lastBuildDate>
    <atom:link href="https://feeds.therepl.net/newsletter" rel="self" type="application/rss+xml"/>
    <item>
      <title>103: Thunks, funding, and a Loom preview</title>
      <link>https://www.therepl.net/103/</link>
      <pubDate>Sat, 20 Nov 2021 13:15:42 +1300</pubDate>
      <guid>https://www.therepl.net/103/</guid>
      <description>Notes. I&amp;rsquo;m happy to be able to say that I joined Whimsical today! Thanks to everybody who helped during my job search. I had some really great conversations with companies using Clojure, and I&amp;rsquo;m excited to be diving back into Clojure programming full-time.
-main re:Clojure has announced their schedule and speakers for the 2021 conference. Lots of great names and talks, I&amp;rsquo;m particularly excited about Christoph Grand&amp;rsquo;s talk on Clojure for Dart.</description>
      <content:encoded><![CDATA[<h2 id="notes">Notes.</h2>
<p>I&rsquo;m happy to be able to say that I joined <a href="https://whimsical.com">Whimsical</a> today! Thanks to everybody who helped during my job search. I had some really great conversations with companies using Clojure, and I&rsquo;m excited to be diving back into Clojure programming full-time.</p>
<h2 id="-main">-main</h2>
<ul>
<li>re:Clojure has <a href="https://www.reclojure.org/#schedule">announced</a> their schedule and speakers for the 2021 conference. Lots of great names and talks, I&rsquo;m particularly excited about Christoph Grand&rsquo;s talk on Clojure for Dart.</li>
<li>Fogus has a new <a href="http://blog.fogus.me/2021/11/19/thunks-a-place-to-think-through-ideas-still-forming/">Thunks</a> repo, a place to think through and discuss ideas. The first set of notes are on <a href="https://github.com/fogus/thunks/blob/main/studies/core-async.txt">core.async</a>.</li>
<li>Erik Assum talks about <a href="https://slipset.github.io/posts/deploying-to-clojars">how he set up deploys to Clojars</a> for clj-commons libraries based on a release tag.</li>
<li><a href="https://github.com/nextjournal/clerk">Clerk</a> has now been released. It lets you turn a Clojure namespace into a notebook, but also lets you use your existing Clojure editor. Jack Rusher has a <a href="https://twitter.com/jackrusher/status/1456203979004776449">Twitter thread</a> with some examples of how he&rsquo;s using it.</li>
<li>I <a href="https://www.therepl.net/episodes/43/">talked with</a> Renzo Borgatti about his book <a href="https://www.manning.com/books/clojure-the-essential-reference?utm_source=podcast&amp;utm_medium=organic&amp;utm_campaign=repl&amp;utm_content=discount">Clojure, The Essential Reference</a>.</li>
<li>Whimsical (my new employer, and a Clojurists Together member) has <a href="https://whimsical.com/blog/funding">raised $30 million in funding</a>.</li>
<li>Nubank (also a Clojurists Together member, notice a pattern?) is <a href="https://www.ft.com/content/3f92fb0b-9c57-4d1a-9682-7910b970e408">targeting a $50 Billion valuation</a> in an upcoming IPO.</li>
<li>Maurício Szabo has a good article on <a href="https://mauricio.szabo.link/blog/2021/11/18/the-magical-wonders-of-programming-with-pure-data/">solving ClojureScript performance problems</a> by taking advantage of Clojure&rsquo;s data orientation by collapsing DOM nodes.</li>
<li>Sean Corfield has <a href="https://corfield.org/blog/2021/11/14/clojure-doc/">rebooted clojure-doc</a> to a static site which can be regenerated from a new commit.</li>
<li>Brian Goetz has a <a href="https://www.youtube.com/watch?v=GedrGWu16_I">minute and a half endorsement</a> of Clojure.</li>
</ul>
<h2 id="libraries--books">Libraries &amp; Books.</h2>
<ul>
<li>Jakub Holy has a new release out of <a href="https://github.com/holyjak/clj-concordion">clj-concordion</a>, a library for writing <a href="https://concordion.org">Concordion tests</a>.</li>
</ul>
<h2 id="foundations">Foundations.</h2>
<ul>
<li><a href="https://medium.com/graalvm/graalvm-21-3-is-here-java-17-native-image-performance-updates-and-more-ac4cbafcfc05">GraalVM 21.3 is out</a> with support for Java 17 and a bunch of improvements to both the Community and Enterprise versions.</li>
<li>Oracle has <a href="https://blogs.oracle.com/java/post/free-java-license">changed</a> <a href="https://www.infoq.com/news/2021/10/oracle-jdk-free-again/">course</a> and again will allow you to use the Oracle JDK for commercial use with no charge, starting with JDK 17 (Oracle&rsquo;s <a href="https://jdk.java.net">OpenJDK builds</a> are not affected by this change). There is a new Oracle No-Fee Terms and Conditions license that goes along with it, I&rsquo;d recommend reading it carefully and understanding the implications if you&rsquo;re going to switch.</li>
<li>Here is an <a href="https://tschatzl.github.io/2021/09/16/jdk17-g1-parallel-gc-changes.html">overview</a> of GC changes in JDK 17, and a preview of a <a href="https://bugs.openjdk.java.net/browse/JDK-8017163">big improvement</a> to G1 remembered set size coming in JDK 18.</li>
<li>Java&rsquo;s Project Loom is nearing a <a href="https://openjdk.java.net/jeps/8277131">preview</a> in the JDK.
<blockquote>
<p>The JDK implements virtual threads by storing their state, including the stack, on the Java heap. Virtual threads are scheduled by a scheduler in the Java class libraries, whose worker threads mount virtual threads on their backs when the virtual threads are executing, thus becoming their carriers.</p>
</blockquote>
</li>
</ul>
<h2 id="tools">Tools.</h2>
<ul>
<li><a href="https://groups.google.com/g/cursive/c/FHVE5Tx67qk/m/08nE63fdBgAJ">Cursive 1.12.0-eap1</a> is out and has support for tools.build, <a href="https://package-search.jetbrains.com">JetBrains Package Search</a>, and better support for <a href="https://code-with-me.jetbrains.com/">IntelliJ’s Code With Me</a> feature.</li>
<li><a href="https://bien.ee/blog/perfectly-perfect-development-environment">Asko Nõmm</a> writes about using a beefy remote server to run a large Calva development environment.</li>
<li><a href="https://lambdaisland.com/blog/2021-11-03-making-nrepl-cider-more-dynamic-1">Making nREPL and CIDER More Dynamic</a> from Lambda Island</li>
<li>Exoscale has <a href="https://github.com/exoscale/deps-modules">another take</a> on multi-module deps.edn projects.</li>
</ul>
<h2 id="recent-developments">Recent Developments.</h2>
<p>Along with the previously mentioned <a href="https://clojure.atlassian.net/browse/CLJ-2664">CLJ-2664</a>, there are a number of nice &ldquo;quality of life&rdquo; interop improvements coming to the next version of Clojure.</p>
<ul>
<li><a href="https://clojurescript.org/news/2021-11-04-release">ClojureScript 1.10.891</a> was released. David Nolen wrote a good explanation of changes around implicit requires of Google Closure Library namespaces. It&rsquo;s definitely worth taking the time to understand this and check your codebase for any uses of <code>goog.object</code> and similar that don&rsquo;t have matching requires. Michiel Borkent has <a href="https://github.com/clj-kondo/clj-kondo/issues/1422">added a check</a> for this in clj-kondo which will be available in the next release.</li>
<li><a href="https://clojure.atlassian.net/browse/CLJ-1925">CLJ-1925</a> is adding a <code>random-uuid</code> function to Clojure to match up with the function in ClojureScript. Rich has marked it as OK so it looks like it will be included in Clojure 1.11.</li>
<li><a href="https://clojure.atlassian.net/browse/CLJ-2667">CLJ-2667</a> adds functions to parse UUIDs, doubles, and longs from strings</li>
<li><a href="https://clojure.atlassian.net/browse/CLJ-2668">CLJ-2668</a> adds predicates for <code>NaN?</code> and <code>infinite?</code> to Clojure.</li>
</ul>
<h2 id="learning">Learning</h2>
<ul>
<li>Clojure Data Science is organising a number of the <a href="https://www.reclojure.org/#workshops">workshops</a> at re:Clojure and a Data Science Special the next day. They&rsquo;re <a href="https://clojureverse.org/t/re-clojure-data-science-special-dec-5th-2021/8375">looking for feedback</a> on the Data Science Special.</li>
<li><a href="https://www.abhinavomprakash.com/posts/macrobrew/">Macrobrew: Clojure macros distilled</a> from Abhinav Omprakash.</li>
<li>Mitchell Szczepanczyk gave a talk <a href="https://www.youtube.com/watch?app=desktop&amp;v=1dCvHH-pr3M&amp;feature=youtu.be">Researching &ldquo;third way&rdquo; democratically-run economies with Clojure(Script)</a> to the Chicago Clojure meetup</li>
</ul>
<p>I&rsquo;m Daniel Compton. I maintain public Maven repositories at <a href="https://clojars.org/">Clojars</a>, private ones at <a href="https://www.deps.co/">Deps</a>, and help fund OSS Clojure projects (along with tons of generous <a href="https://www.clojuriststogether.org/">members</a> like <a href="https://www.latacora.com/">Latacora</a>, <a href="https://roamresearch.com/">Roam</a>, <a href="https://www.whimsical.com/">Whimsical</a>, <a href="https://pitch.io/">Pitch</a>, <a href="https://nubank.com.br/">Nubank</a>, <a href="https://www.cisco.com/">Cisco</a>, <a href="https://appsflyer.com/">AppsFlyer</a>, <a href="https://juxt.pro">JUXT</a>, <a href="https://www.metosin.fi/">Metosin</a>, <a href="http://www.solita.fi/en">Solita</a>, <a href="http://www.adgoji.com/">Adgoji</a>, <a href="https://nextjournal.com/">Nextjournal</a>, <a href="https://flexiana.com/">Flexiana</a>, <a href="https://toyokumo.co.jp/">Toyokumo</a>, <a href="https://www.griffin.sh/">Griffin</a>, and <a href="https://parkside.app">Parkside</a>) at <a href="https://www.clojuriststogether.org">Clojurists Together</a>. If you&rsquo;ve enjoyed reading this, tell your friends to sign up at <a href="https://www.therepl.net/">therepl.net</a>, or post a link in your company chatroom. If you&rsquo;ve seen (or published) a blog post, library, or anything else Clojure/JVM related please reply to this to let me know about it.</p>
<p>If you&rsquo;d like to support the work that I&rsquo;m doing, consider signing up for a trial of <a href="https://www.deps.co">Deps</a>, a private, hosted, Maven Repository service that I run.</p>
<p>Thanks!</p>
]]></content:encoded>
    </item>
    <item>
      <title>102: Transducers, servers, and comments</title>
      <link>https://www.therepl.net/102/</link>
      <pubDate>Sat, 23 Oct 2021 14:51:42 +1300</pubDate>
      <guid>https://www.therepl.net/102/</guid>
      <description>Thanks to everybody who has contacted me about jobs or sent through tips on people that are hiring. I&amp;rsquo;ve had a lot of great conversations with people, one thing that&amp;rsquo;s been neat to see is how widely Clojure is being used across so many different industries.
-main Reactive Clojure: You don&amp;rsquo;t need a web framework, you need a web language Dustin Getz wrote an article describing the Hyperfiddle stack. Being able to seamlessly colocate client and server code will be extremely powerful, I&amp;rsquo;m looking forward to Photon being open sourced.</description>
      <content:encoded><![CDATA[<p>Thanks to everybody who has contacted me about jobs or sent through tips on people that are hiring. I&rsquo;ve had a lot of great conversations with people, one thing that&rsquo;s been neat to see is how widely Clojure is being used across so many different industries.</p>
<h2 id="-main">-main</h2>
<h3 id="reactive-clojure-you-dont-need-a-web-framework-you-need-a-web-languagehttpscuratz9ymaw8mweb"><a href="https://cur.at/Z9YmaW8?m=web">Reactive Clojure: You don&rsquo;t need a web framework, you need a web language</a></h3>
<p>Dustin Getz wrote an article describing the Hyperfiddle stack. Being able to seamlessly colocate client and server code will be extremely powerful, I&rsquo;m looking forward to Photon being open sourced.</p>
<p><a href="https://cur.at/Z9YmaW8?m=web">notion.site</a></p>
<hr>
<h3 id="michiel-borkent-on-the-clojurescript-podcasthttpscuratrujtdalmweb"><a href="https://cur.at/RUjtDAl?m=web">Michiel Borkent on the ClojureScript Podcast</a></h3>
<p>Jacek Schae interviewed Michiel Borkent about his recent move to working full-time on open source development.</p>
<p><a href="https://cur.at/RUjtDAl?m=web">clojurescriptpodcast.com</a></p>
<hr>
<h3 id="fast-and-elegant-clojurehttpscuratcoq6tramweb"><a href="https://cur.at/Coq6tRa?m=web">Fast and Elegant Clojure</a></h3>
<p>Ben Sless refactored a slow Clojure implementation to various versions which are still idiomatic without sacrificing performance, and then finally a loop/recur form for when you need maximum performance. There&rsquo;s also some neat custom transducers.</p>
<p><a href="https://cur.at/Coq6tRa?m=web">github.io</a></p>
<hr>
<h3 id="grokking-clojure-transducershttpscuratfdw3rrymweb"><a href="https://cur.at/FDw3rrY?m=web">Grokking Clojure transducers</a></h3>
<p>If you need a refresher on transducers before reading Ben Sless&rsquo;s versions, this is a good article from Eero Helenius to develop an intuition for them.</p>
<p><a href="https://cur.at/FDw3rrY?m=web">solita.fi</a></p>
<hr>
<h3 id="stressed-servershttpscuratk2kwm3hmweb"><a href="https://cur.at/k2kWm3H?m=web">Stressed Servers</a></h3>
<p>Ben Sless also did some benchmarking on Clojure web servers, JVM garbage collectors, and routing frameworks. It&rsquo;s also a good overview also of how to <em>think</em> about scaling web servers, and building a mental model of how they fail. You can pair it with Zach Tellman&rsquo;s talk <a href="https://cur.at/5jHfNxG?m=web">Everything Must Flow</a> from a few years ago.</p>
<p><a href="https://cur.at/k2kWm3H?m=web">github.io</a></p>
<hr>
<h3 id="speed-up-your-clojurescript-webapphttpscuratairqr2smweb"><a href="https://cur.at/aiRQR2s?m=web">Speed up your ClojureScript Webapp</a></h3>
<p>And on the frontend, Lucio D&rsquo;Alessandro shows how to benchmark ClojureScript webapps and a bunch of optimisations you can use at different levels of your application.</p>
<p><a href="https://cur.at/aiRQR2s?m=web">juxt.pro</a></p>
<hr>
<h3 id="asami-turn-your-json-into-a-graph-in-2-lineshttpscuratns1fcc9mweb"><a href="https://cur.at/nS1FCC9?m=web">Asami: Turn your JSON into a Graph in 2 Lines</a></h3>
<p>Paula Gearon spoke at the recent Strange Loop conference about <a href="https://cur.at/7emhBFv?m=web">Asami</a>, an open source Datomic-like graph database that she&rsquo;s built.</p>
<p><a href="https://cur.at/nS1FCC9?m=web">youtube.com</a></p>
<hr>
<h3 id="clojurists-together-september-2021-monthly-updatehttpscuratpodcrcgmweb"><a href="https://cur.at/pOdCRcg?m=web">Clojurists Together September 2021 Monthly Update</a></h3>
<p>Read the latest updates from a bunch of Clojurists Together funded projects including clojure-lsp, polylith, Holy Lambda, and Typed Clojure.</p>
<p><a href="https://cur.at/pOdCRcg?m=web">clojuriststogether.org</a></p>
<hr>
<h3 id="an-architects-view-depsedn-and-monorepos-vii-polylithhttpscurat5izoa8kmweb"><a href="https://cur.at/5IZoA8K?m=web">An Architect&rsquo;s View: deps.edn and monorepos VII (Polylith)</a></h3>
<p>Sean Corfield continues his series on monorepos, polylith, and developer workflow using <a href="https://cur.at/TnI4HLb?m=web">Portal</a> for VSCode to navigate through data.</p>
<p><a href="https://cur.at/5IZoA8K?m=web">corfield.org</a></p>
<h2 id="libraries--books">Libraries &amp; Books.</h2>
<h3 id="coffihttpscuratlpmuwukmweb"><a href="https://cur.at/lPMUWuk?m=web">coffi</a></h3>
<p>coffi is a new library for doing FFI (Foreign Function Interface) calls from Clojure to native code. Very cool and looks like it should be easier than other existing methods.</p>
<p><a href="https://cur.at/lPMUWuk?m=web">github.com</a></p>
<hr>
<h3 id="rich-comment-formshttpscuratmr07t6umweb"><a href="https://cur.at/MR07t6u?m=web">Rich Comment Forms</a></h3>
<p>Rich Comment Forms are a new tool from the Hyperfiddle team for writing tests inline with your Clojure/ClojureScript source. They&rsquo;ve put a lot of work on the developer experience for the tool, it looks useful for pairing and REPL driven development.</p>
<p><a href="https://cur.at/MR07t6u?m=web">github.com</a></p>
<hr>
<h3 id="lacinia-reaches-10httpscuratx219ahvmweb"><a href="https://cur.at/x219AHv?m=web">Lacinia reaches 1.0</a></h3>
<p>Congratulations to Walmart Lab&rsquo;s Lacinia reaching the 1.0 milestone!</p>
<p><a href="https://cur.at/x219AHv?m=web">github.com</a></p>
<hr>
<h3 id="salutemhttpscuratp2zb1lfmweb"><a href="https://cur.at/P2ZB1lf?m=web">salutem</a></h3>
<p>salutem is a new health check library for sync / async health checks. This has clearly had a lot of thought and documentation put into it. The async health-checking in particular looks very useful.</p>
<p><a href="https://cur.at/P2ZB1lf?m=web">github.com</a></p>
<hr>
<h3 id="clojure-src-test-and-metahttpscuratopooc1umweb"><a href="https://cur.at/OPOOc1u?m=web">Clojure src, test, and meta</a></h3>
<p>Daniel Gregoire makes the case for having a <code>meta</code> folder along with <code>src</code> and <code>test</code>, and introduces <a href="https://cur.at/q70SY52?m=web">metazoa</a>, a library for inspecting and querying metadata. There&rsquo;s also a <a href="https://cur.at/s2npHlR?m=web">video</a> which discusses the motivations and use of the library more.</p>
<p><a href="https://cur.at/OPOOc1u?m=web">danielgregoire.dev</a></p>
<h2 id="foundations">Foundations.</h2>
<h3 id="amazon-corretto-a-journey-into-latency-reductionhttpscurat4tkfyjjmweb"><a href="https://cur.at/4TkFYJj?m=web">Amazon Corretto, A Journey into Latency Reduction</a></h3>
<p>The Amazon Corretto JDK team gave a talk about why they built Corretto and talked more about the Shenandoah GC.</p>
<p><a href="https://cur.at/4TkFYJj?m=web">youtube.com</a></p>
<h2 id="tools">Tools.</h2>
<h3 id="clojure-lsp-releaseshttpscuratscmcec7mweb"><a href="https://cur.at/ScmCeC7?m=web">clojure-lsp releases</a></h3>
<p>clojure-lsp has had a bunch of releases recently with improvements. I&rsquo;m happy to see all the progress, it&rsquo;s going to have a big impact on lots of Clojure users.</p>
<p><a href="https://cur.at/ScmCeC7?m=web">github.com</a></p>
<hr>
<h3 id="babashkaneilhttpscurataqgtfpqmweb"><a href="https://cur.at/aqgTFPq?m=web">babashka/neil</a></h3>
<p>Neil is a new CLI to add common aliases and features to your deps.edn-based projects.</p>
<p><a href="https://cur.at/aqgTFPq?m=web">github.com</a></p>
<hr>
<h3 id="a-preview-of-clerkhttpscuratwqxmgqcmweb"><a href="https://cur.at/WqXmgqC?m=web">A preview of Clerk</a></h3>
<p>Martin Kavalar recently released a preview and <a href="https://cur.at/zgegcym?m=web">rationale</a> for Clerk, a tool for converting a Clojure namespace into a notebook style interface. Avoiding out-of-order execution in particular looks like a very useful feature.</p>
<p><a href="https://cur.at/WqXmgqC?m=web">twitter.com</a></p>
<hr>
<h3 id="clojubyhttpscurataptqhfgmweb"><a href="https://cur.at/aPTqHfg?m=web">clojuby</a></h3>
<p>clojuby is an interesting experimental project letting you use JRuby to talk to Ruby functions in a Clojure syntax, <a href="https://cur.at/7xYlfAO?m=web">for example</a> creating a Sinatra app from Clojure.</p>
<p><a href="https://cur.at/aPTqHfg?m=web">gitlab.com</a></p>
<hr>
<h3 id="hiding-whitespace-is-now-remembered-for-each-pull-request--github-changeloghttpscurat8yuoo9bmweb"><a href="https://cur.at/8yUoO9b?m=web">Hiding whitespace is now remembered for each pull request | GitHub Changelog</a></h3>
<p>GitHub isn&rsquo;t directly a Clojure tool, but I find myself often enabling &ldquo;Hide white space&rdquo; when reviewing Clojure PRs. You can now set this permanently, rather than having to enable it on each PR you viewed. One downside to watch out for is that you might miss unintentional white space diffs.</p>
<p><a href="https://cur.at/8yUoO9b?m=web">github.blog</a></p>
<hr>
<h3 id="clojure-repls-deep-dive---youtubehttpscuratj9rtwqbmweb"><a href="https://cur.at/J9Rtwqb?m=web">Clojure REPLs Deep Dive - YouTube</a></h3>
<p>Nikita Prokopov explored the existing Clojure REPLs and Sublime Plugins for Clojure, how they work, and their pros and cons.</p>
<p><a href="https://cur.at/J9Rtwqb?m=web">youtube.com</a></p>
<hr>
<h3 id="meta-reduce-20212-autumn-beginshttpscuratodk4a0mmweb"><a href="https://cur.at/oDK4a0m?m=web">Meta Reduce 2021.2: Autumn Begins</a></h3>
<p>Bozhidar Batsov has an update on the projects he&rsquo;s been working on lately including the CIDER family.</p>
<p><a href="https://cur.at/oDK4a0m?m=web">metaredux.com</a></p>
<h2 id="recent-developments">Recent Developments.</h2>
<h3 id="clj-2664-provide-fast-idiomatic-access-to-javalangmathhttpscuratvkbucm1mweb"><a href="https://cur.at/VkBUcm1?m=web">[CLJ-2664] Provide fast idiomatic access to java.lang.Math</a></h3>
<p>There&rsquo;s work underway to create a new <code>clojure.java.math</code> namespace which is easier to access from Clojure than java.lang.Math but with the same level of performance. The patch is an interesting read to see heavy use of <a href="https://cur.at/QsgHUVR?m=web">inlining</a>.</p>
<p><a href="https://cur.at/VkBUcm1?m=web">atlassian.net</a></p>
<hr>
<h3 id="cljs-3330-flag-for-legacy-loading-of-googobject--googarrayhttpscuratjiym1svmweb"><a href="https://cur.at/Jiym1Sv?m=web">CLJS-3330: Flag for legacy loading of goog.object &amp; goog.array</a></h3>
<p>Previously you could assume <code>goog.object</code> and <code>goog.array</code> were always available for use in your ClojureScript files without requiring them. However, if I&rsquo;m reading the patch and <a href="https://cur.at/VWRaaek?m=web">discussion</a> correctly, the new approach will be to always require any <code>goog.*</code>namespace that you&rsquo;re using.</p>
<p>No changes needed yet, but I&rsquo;d start to look out for this. It sounds like clj-kondo will be able to lint for it which will make updating your code a lot easier.</p>
<p><a href="https://cur.at/Jiym1Sv?m=web">github.com</a></p>
<h2 id="learning">Learning.</h2>
<h3 id="october-2020-plans--hopes-for-clojure-data-sciencehttpscuratycqcxzkmweb"><a href="https://cur.at/ycQCXZk?m=web">October 2020 Plans &amp; Hopes for Clojure Data Science</a></h3>
<p>Daniel Slutsky has this month&rsquo;s scicloj post where people talk about what they&rsquo;re working on in the Clojure data science community. I&rsquo;ve been impressed by scicloj and their consistent efforts to improve the Clojure data science ecosystem. They&rsquo;re also looking to run <a href="https://cur.at/6PqTtxk?m=web">workshops</a> for the upcoming <a href="https://cur.at/b6R7gph?m=web">re:Clojure</a> conference.</p>
<p><a href="https://cur.at/ycQCXZk?m=web">clojureverse.org</a></p>
<hr>
<h3 id="dmitri-sotnikov---engineering-for-scale-in-clojurehttpscuratzlnbcaqmweb"><a href="https://cur.at/ZlNBcAQ?m=web">Dmitri Sotnikov - Engineering for Scale in Clojure</a></h3>
<p>Dmitri Sotnikov was recently on the RH podcast talking his work introducing Clojure at SIM University Health Network.</p>
<p><a href="https://cur.at/ZlNBcAQ?m=web">anchor.fm</a></p>
<hr>
<h3 id="finding-my-inner-wes-anderson-with-babashkahttpscurathupeme5mweb"><a href="https://cur.at/huPemE5?m=web">Finding my inner Wes Anderson with Babashka</a></h3>
<p>Tim Zöller uses Babashka and AppleScript to query the Apple Photos photo database.</p>
<p><a href="https://cur.at/huPemE5?m=web">javahippie.net</a></p>
<p>I&rsquo;m Daniel Compton. I maintain public Maven repositories at <a href="https://cur.at/quo4GNk?m=web">Clojars</a>, private ones at <a href="https://cur.at/Nlt6RWN?m=web">Deps</a>, and help fund OSS Clojure projects (along with tons of generous <a href="https://cur.at/z7YyqMK?m=web">members</a> like <a href="https://cur.at/mfBIDWL?m=web">Latacora</a>, <a href="https://cur.at/LuA9TbG?m=web">Roam</a>, <a href="https://cur.at/To4FlLI?m=web">Whimsical</a>, <a href="https://cur.at/MoQFnzX?m=web">Stylitics</a> <a href="https://cur.at/QAWG4jC?m=web">Pitch</a>, <a href="https://cur.at/EzIfIuu?m=web">Nubank</a>, <a href="https://cur.at/BV7Z8fo?m=web">Cisco</a>, <a href="https://cur.at/MdGAXYY?m=web">AppsFlyer</a>, <a href="https://cur.at/QUU1o40?m=web">JUXT</a>, <a href="https://cur.at/5RaSRGl?m=web">Metosin</a>, <a href="https://cur.at/KU8w5UH?m=web">Solita</a>, <a href="https://cur.at/oen0wB6?m=web">Adgoji</a>, <a href="https://cur.at/5H0eu6M?m=web">Nextjournal</a>, <a href="https://cur.at/8c669tP?m=web">Flexiana</a>, <a href="https://cur.at/zWEifnq?m=web">Toyokumo</a>, <a href="https://cur.at/WHxCuww?m=web">Griffin</a>, <a href="https://cur.at/CQrJ0vu?m=web">Parkside</a>, and <a href="https://cur.at/myXHBOA?m=web">Doctronic</a>) at <a href="https://cur.at/BImgauN?m=web">Clojurists Together</a>. If you&rsquo;ve enjoyed reading this, tell your friends to sign up at <a href="https://cur.at/Ig4qcA5?m=web">therepl.net</a>, or post a link in your company chatroom. If you&rsquo;ve seen (or published) a blog post, library, or anything else Clojure/JVM related please reply to this to let me know about it.</p>
<p>If you&rsquo;d like to support the work that I&rsquo;m doing, consider signing up for a trial of <a href="https://cur.at/VnCEAk3?m=web">Deps</a>, a private, hosted, Maven Repository service that I run.</p>
<p>Thanks!</p>
]]></content:encoded>
    </item>
    <item>
      <title>101: Brave Clojure job board relaunch, Michiel Borkent quit his job, and I'm looking for work</title>
      <link>https://www.therepl.net/101/</link>
      <pubDate>Fri, 08 Oct 2021 13:00:27 +1300</pubDate>
      <guid>https://www.therepl.net/101/</guid>
      <description>Recently, I&amp;rsquo;ve been working on a new office and have&#xA0;finished painting and flooring. I still have a few things left to do: painting and installing the skirting, getting a heat pump installed, wiring up ethernet, and installing acoustic panels to reduce echo.
I&amp;rsquo;m also looking for my next job. I recently left my job at GitHub as a Technical Program Manager to move back to writing software. I learned a lot of valuable things at GitHub including that my true passion lies in writing software.</description>
      <content:encoded><![CDATA[<p>Recently, I&rsquo;ve been working on a new office and have <a href="https://cur.at/PeNSNsJ?m=web">finished painting and flooring</a>. I still have a few things left to do: painting and installing the skirting, getting a heat pump installed, wiring up ethernet, and installing acoustic panels to reduce echo.</p>
<p>I&rsquo;m also looking for my next job. I recently left my job at GitHub as a Technical Program Manager to move back to writing software. I learned a lot of valuable things at GitHub including that my true passion lies in writing software. If you know of any companies that are hiring and open to New Zealand based employees/contractors, let me know. Thanks!</p>
<p>Lastly, a housekeeping note that there is now an RSS feed available for The REPL newsletter, you can find it at <a href="https://www.therepl.net/subscribe/">https://www.therepl.net/subscribe/</a>.</p>
<h2 id="-main">-main</h2>
<h3 id="adrian-smith-on-membrane-and-ui-frameworkshttpscuratyy9x9exmweb"><a href="https://cur.at/YY9x9EX?m=web">Adrian Smith on Membrane and UI frameworks</a></h3>
<p>Nikita Prokopov talks to Adrian Smith about <a href="https://cur.at/MedeE5L?m=web">Membrane</a> and UI frameworks.</p>
<p><a href="https://cur.at/YY9x9EX?m=web">youtube.com</a></p>
<hr>
<h3 id="a-better-clojure-job-boardhttpscurat2tg01wumweb"><a href="https://cur.at/2TG01Wu?m=web">A Better Clojure Job Board</a></h3>
<p>The Brave Clojure jobs board has been relaunched and now includes free listings, and import from other sites. You can still pay to promote your listing (you should pay though!). I&rsquo;ve found the new site very helpful.</p>
<p><a href="https://cur.at/2TG01Wu?m=web">braveclojure.com</a></p>
<hr>
<h3 id="this-week-i-took-a-hard-decision-i-quit-my-long-time-job-to-work-more-on-clojure-osshttpscuratuoylvh0mweb"><a href="https://cur.at/UOylVH0?m=web">&ldquo;This week I took a hard decision: I quit my long-time job to work more on #clojure OSS.&rdquo;</a></h3>
<p>In more job related news, congratulation to Michiel Borkent for going full time on his open source Clojure projects! He&rsquo;s created an amazing variety of projects already while working a full-time job, I can&rsquo;t wait to see what comes next. I&rsquo;m happy Clojurists Together was able to <a href="https://cur.at/CVjLEoX?m=web">help</a>, along with many other generous companies and developers. If you want to support him, you can do so using <a href="https://cur.at/xM3KaO5?m=web">GitHub Sponsors</a></p>
<p><a href="https://cur.at/UOylVH0?m=web">twitter.com</a></p>
<hr>
<h3 id="shipping-clojure-code-with-paulus-esterhazyhttpscuratwtv2pbzmweb"><a href="https://cur.at/wtv2Pbz?m=web">Shipping Clojure code with Paulus Esterhazy</a></h3>
<p>I talked with Paulus Esterhazy about how Pitch ships code.</p>
<p><a href="https://cur.at/wtv2Pbz?m=web">therepl.net</a></p>
<hr>
<h3 id="clojure-pre-history-with-chris-houserhttpscurathxlygfdmweb"><a href="https://cur.at/hXLYgfd?m=web">Clojure pre-history with Chris Houser</a></h3>
<p>I also talked with Chris Houser about Clojure pre-history, features of Clojure and how Clojure&rsquo;s principles can be applied elsewhere.</p>
<p><a href="https://cur.at/hXLYgfd?m=web">therepl.net</a></p>
<hr>
<h3 id="faster-json-parsing-with-erik-assumhttpswwwthereplnetepisodes42"><a href="https://www.therepl.net/episodes/42/">Faster JSON parsing with Erik Assum</a></h3>
<p>And I also talked with Erik Assum about how he sped up JSON parsing in clojure.data.json, clj-commons, and he interviewed me about what I&rsquo;ve been up to recently.</p>
<p><a href="https://cur.at/hXLYgfd?m=web">therepl.net</a></p>
<hr>
<h3 id="reclojure-2021httpscuratz3pvso0mweb"><a href="https://cur.at/Z3PvsO0?m=web">re:Clojure 2021</a></h3>
<p>The re:Clojure CFP is closing on 10th of October. This is the last Clojure conference of 2021, so if you have a talk idea, now&rsquo;s the time to submit it.</p>
<p><a href="https://cur.at/Z3PvsO0?m=web">reclojure.org</a></p>
<hr>
<h3 id="thoughts-on-clojure-ui-frameworkhttpscurat1nfqpqqmweb"><a href="https://cur.at/1nFQpqq?m=web">Thoughts on Clojure UI framework</a></h3>
<p>Nikita Prokopov outlines ideas for a new Clojure framework for desktop apps. This work is funded by Roam Research and Clojurists Together.</p>
<p><a href="https://cur.at/1nFQpqq?m=web">tonsky.me</a></p>
<h2 id="libraries--books">Libraries &amp; Books.</h2>
<h3 id="it-was-fun-18-months-for-me-as-a-maintainer-of-rumhttpscuratd2x9lulmweb"><a href="https://cur.at/D2X9LuL?m=web">&ldquo;It was fun 18 months for me as a maintainer of Rum.&rdquo;</a></h3>
<p>Roman Liutikov and Nikita Prokopov are looking for a new maintainer for Rum.</p>
<p><a href="https://cur.at/D2X9LuL?m=web">twitter.com</a></p>
<h2 id="foundations">Foundations.</h2>
<h3 id="today-is-openjdk-17-release-dayhttpscuratabmmocumweb"><a href="https://cur.at/AbmmoCu?m=web">&ldquo;Today is OpenJDK 17 release day.&rdquo;</a></h3>
<p>OpenJDK 17 was released recently, and you can download a copy from <a href="https://adoptium.net">https://adoptium.net</a>. I haven&rsquo;t heard of too many issues with upgrading, but let me know if you see any.</p>
<p><a href="https://cur.at/AbmmoCu?m=web">twitter.com</a></p>
<hr>
<h3 id="how-much-faster-is-java-17httpscuratqjgpc7rmweb"><a href="https://cur.at/qJgpC7r?m=web">How much faster is Java 17?</a></h3>
<p>Good analysis comparing JDK 17 to JDK 11 and JDK 16. There&rsquo;s a nice (but small) performance boost on their very CPU heavy code. I wouldn&rsquo;t necessarily expect as big a speed up on most code, but it&rsquo;s still worth upgrading for.</p>
<p><a href="https://cur.at/qJgpC7r?m=web">optaplanner.org</a></p>
<hr>
<h3 id="clj-easygraal-build-time-library-to-initialize-clojure-packages-at-build-time-with-graalvm-native-imagehttpscuratb3syiwsmweb"><a href="https://cur.at/b3syiWs?m=web">clj-easy/graal-build-time: Library to initialize Clojure packages at build time with GraalVM native-image.</a></h3>
<p>Graal&rsquo;s <code>native-image</code> is deprecating the <code>--initialize-at-build-time</code> flag. This was commonly used in Clojure builds, graal-build-time provides an alternative build method so you don&rsquo;t need to list each package manually.</p>
<p><a href="https://cur.at/b3syiWs?m=web">github.com</a></p>
<hr>
<h3 id="jep-410-remove-the-experimental-aot-and-jit-compilerhttpscuratezflhrtmweb"><a href="https://cur.at/EzFLhrT?m=web">JEP 410: Remove the Experimental AOT and JIT Compiler</a></h3>
<p>The AOT compiler was removed from the main JDK distribution due to low usage, but it remains part of GraalVM. Don&rsquo;t miss this <a href="https://cur.at/Nagahqx?m=web">clarification</a> from the GraalVM lead that AOT native image is still going to be developed in Graal, this only affects the hybrid HotSpot/AOT approach which few used.</p>
<p><a href="https://cur.at/EzFLhrT?m=web">java.net</a></p>
<h2 id="tools">Tools.</h2>
<h3 id="api-diffhttpscurat7wkgg10mweb"><a href="https://cur.at/7WKGg10?m=web">api-diff</a></h3>
<p>api-diff can print a list of API diffs between library versions. Another useful tool from Michiel Borkent.</p>
<p><a href="https://cur.at/7WKGg10?m=web">github.com</a></p>
<hr>
<h3 id="why-we-killed-our-end-to-end-test-suitehttpscuratzq3latomweb"><a href="https://cur.at/zq3LATo?m=web">Why We Killed Our End-to-End Test Suite</a></h3>
<p>Nubank switched from End-to-End testing to Contract and Acceptance testing to speed up their CI time. They show how it reduced cycle time and increased their deploys/week metric. Slow/flaky CI is a common problem at larger companies, it was good to see this shown as one possible solution.</p>
<p><a href="https://cur.at/zq3LATo?m=web">nubank.com.br</a></p>
<hr>
<h3 id="native-clojure-with-graalvmhttpscurat9ekooxqmweb"><a href="https://cur.at/9EkOOxQ?m=web">Native Clojure with GraalVM</a></h3>
<p>A good guide to building native-image Clojure apps, especially when you&rsquo;re using Clojure libraries with dynamic class loading. It also shows startup time going from 6 seconds to ~1 millisecond!</p>
<p><a href="https://cur.at/9EkOOxQ?m=web">convexhuman.com</a></p>
<hr>
<h3 id="vlojurehttpscuratzfny4qumweb"><a href="https://cur.at/zFNY4qU?m=web">Vlojure</a></h3>
<p>Ella Hoeppner has <a href="https://cur.at/6zw5WFw?m=web">released</a> Vlojure, a very unique visual programming environment for Clojure. Check out the <a href="https://cur.at/29UfrG7?m=web">demo video</a> too.</p>
<p><a href="https://cur.at/zFNY4qU?m=web">twitter.com</a></p>
<hr>
<h3 id="cursive-1110-is-outhttpscuratc8xwnz4mweb"><a href="https://cur.at/C8XwNZ4?m=web">Cursive 1.11.0 is out!</a></h3>
<p>Cursive 1.11.0 is out with support for Babashka, better support for spellchecking, and some tools.deps fixes.</p>
<p><a href="https://cur.at/C8XwNZ4?m=web">twitter.com</a></p>
<hr>
<h3 id="travis-ci-security-incidenthttpscuratffnh2zbmweb"><a href="https://cur.at/ffnH2zb?m=web">Travis CI security incident</a></h3>
<p>In early September, Travis CI had a security incident which leaked secure env vars. If you&rsquo;re using Travis CI, it&rsquo;s a good idea to cycle all of your credentials.</p>
<p><a href="https://cur.at/ffnH2zb?m=web">twitter.com</a></p>
<hr>
<h3 id="allow-cider-to-load-its-own-middleware-via-the-sideloaderhttpscuratey6clncmweb"><a href="https://cur.at/ey6CLnC?m=web">Allow CIDER to load its own middleware via the sideloader</a></h3>
<p>CIDER can now upgrade an nREPL connection to one with CIDER&rsquo;s middleware. This lets you jack in to a running nREPL session and get all of CIDER&rsquo;s features.</p>
<p><a href="https://cur.at/ey6CLnC?m=web">github.com</a></p>
<h2 id="recent-developments">Recent Developments.</h2>
<h3 id="clj-2350-improve-keyword-aritiy-exception-messagehttpscuratixx9nslmweb"><a href="https://cur.at/Ixx9nsL?m=web">CLJ-2350 Improve keyword aritiy exception message</a></h3>
<p>A nice <a href="https://cur.at/7SqoJoq?m=web">patch</a> from Marc O&rsquo;Morain to improve error messages when you call <code>keyword</code>with the wrong number of arguments.</p>
<p><a href="https://cur.at/Ixx9nsL?m=web">github.com</a></p>
<h2 id="learning">Learning.</h2>
<h3 id="clojure-deftype-with-unsynchronized-mutablehttpscuratvu6afslmweb"><a href="https://cur.at/VU6afsL?m=web">Clojure deftype with unsynchronized-mutable</a></h3>
<p>Dainius Jocas explains when you&rsquo;d want to use <code>unsynchronized-mutable</code> and <code>volatile-mutable</code> in a <code>deftype</code>.</p>
<p><a href="https://cur.at/VU6afsL?m=web">jocas.lt</a></p>
<hr>
<h3 id="setting-up-a-basic-clojure-backendhttpscuratbagf1b7mweb"><a href="https://cur.at/bagf1B7?m=web">Setting up a basic Clojure backend</a></h3>
<p>Let Arne Brasseur take you through setting up a basic Clojure web backend.</p>
<p><a href="https://cur.at/bagf1B7?m=web">youtube.com</a></p>
<p>I&rsquo;m Daniel Compton. I maintain public Maven repositories at <a href="https://cur.at/FpB5nmQ?m=web">Clojars</a>, private ones at <a href="https://cur.at/lj9XIC9?m=web">Deps</a>, and help fund OSS Clojure projects (along with tons of generous <a href="https://cur.at/6zsSHKB?m=web">members</a> like <a href="https://cur.at/3lr41Dl?m=web">Latacora</a>, <a href="https://cur.at/fVpu1y7?m=web">Roam</a>, <a href="https://cur.at/lH9f8vA?m=web">Whimsical</a>, <a href="https://cur.at/hVksJBq?m=web">Pitch</a>, <a href="https://cur.at/FhUWcAk?m=web">Nubank</a>, <a href="https://cur.at/1WzhFJo?m=web">Cisco</a>, <a href="https://cur.at/YaPmzuX?m=web">AppsFlyer</a>, <a href="https://cur.at/wAeMpq2?m=web">JUXT</a>, <a href="https://cur.at/3TNEgOd?m=web">Metosin</a>, <a href="https://cur.at/gUQZDti?m=web">Solita</a>, <a href="https://cur.at/p6eJTwU?m=web">Adgoji</a>, <a href="https://cur.at/n6dFktq?m=web">Nextjournal</a>, <a href="https://cur.at/I2hJ1Om?m=web">Flexiana</a>, <a href="https://cur.at/ijdv2Yb?m=web">Toyokumo</a>, <a href="https://cur.at/uth7xgG?m=web">Griffin</a>, and <a href="https://cur.at/Xh0n9ud?m=web">Parkside</a>) at <a href="https://cur.at/Os0vsFt?m=web">Clojurists Together</a>. If you&rsquo;ve enjoyed reading this, tell your friends to sign up at <a href="https://cur.at/TSTMGtO?m=web">therepl.net</a>, or post a link in your company chatroom. If you&rsquo;ve seen (or published) a blog post, library, or anything else Clojure/JVM related please reply to this to let me know about it.</p>
<p>If you&rsquo;d like to support the work that I&rsquo;m doing, consider signing up for a trial of <a href="https://cur.at/UADRg4w?m=web">Deps</a>, a private, hosted, Maven Repository service that I run.</p>
<p>Thanks!</p>
]]></content:encoded>
    </item>
    <item>
      <title>100: Classloaders, Clojurists Together, and Crux</title>
      <link>https://www.therepl.net/100/</link>
      <pubDate>Mon, 06 Sep 2021 22:00:27 +1200</pubDate>
      <guid>https://www.therepl.net/100/</guid>
      <description>Notes. New Zealand has been under lockdown for the last month to stop the spread of COVID. Our kids have been home from school and kindergarten. They&amp;rsquo;ve been very well behaved, except for the time they flooded the bathroom with a toilet paper/water slurry!
Things are starting to open up on Wednesday for most of the country. I also got my first COVID vaccination which was good. NZ was pretty slow to start rolling out vaccines but things are now moving very quickly.</description>
      <content:encoded><![CDATA[<h2 id="notes">Notes.</h2>
<p>New Zealand has been under lockdown for the last month to stop the spread of COVID. Our kids have been home from school and kindergarten. They&rsquo;ve been very well behaved, except for the time they flooded the bathroom with a toilet paper/water slurry!</p>
<p>Things are starting to open up on Wednesday for most of the country. I also got my first COVID vaccination which was good. NZ was pretty slow to start rolling out vaccines but things are now moving <a href="https://cur.at/JlPyTKH?m=web">very quickly</a>.</p>
<p>This week I&rsquo;m trying a new tool for preparing the newsletter. As a side effect the format is a little different and more expanded. Reply to this email to let me know what you think. Good change? Bad change?</p>
<h2 id="-main">-main</h2>
<h3 id="banking-and-clojure-with-allen-rohnerhttpscuratzq598vxmweb"><a href="https://cur.at/ZQ598vX?m=web">Banking and Clojure with Allen Rohner</a></h3>
<p>I restarted The REPL podcast last week. This episode was with Allen Rohner talking about the bank he&rsquo;s building, building Clojure with Bazel, and type-checking with spec.</p>
<p><a href="https://cur.at/ZQ598vX?m=web">therepl.net</a></p>
<hr>
<h3 id="simple-made-easy---10-year-remasterhttpscuratgyorkyrmweb"><a href="https://cur.at/gYORkyR?m=web">Simple Made Easy - 10 year remaster</a></h3>
<p>Strange Loop has <a href="https://cur.at/HhXAdtk?m=web">released</a> a 10 year HD remaster of Simple Made Easy. An oldie but a goodie, worth a rewatch.</p>
<p><a href="https://cur.at/gYORkyR?m=web">youtube.com</a></p>
<hr>
<h3 id="clojurists-togethers-long-term-funding-selectionshttpscuratmlop2ekmweb"><a href="https://cur.at/mLOp2EK?m=web">Clojurists Together&rsquo;s Long-term funding selections</a></h3>
<p>Clojurists Together members recently voted for six developers to receive $1.5k/month for 12 months to encourage long-term projects. The six recipients were Bozhidar Batsov, Michiel Borkent, Dragan Djuric, Thomas Heller, David Nolen, and Nikita Prokopov.</p>
<p>Special thanks to all the Clojurists Together members who voted and funded these developers, and to <a href="https://cur.at/ijgwcLg?m=web">Whimsical</a> and <a href="https://cur.at/BG7Im1W?m=web">AppsFlyer</a> for joining to help us fund an extra three developers.</p>
<p><a href="https://cur.at/mLOp2EK?m=web">clojuriststogether.org</a></p>
<hr>
<h3 id="clojurists-together-q3-2021-funding-announcementhttpscuratabgcwbrmweb"><a href="https://cur.at/AbGCwbR?m=web">Clojurists Together Q3 2021 Funding Announcement</a></h3>
<p>Clojurists Together is also funding 9 projects for Q3 2021: shadow-cljs, clojure-lsp and Malli with $9,000, clojurians-log-v2, PCP and Holy Lambda with $2,000, and Dependabot Core, Typed Clojure and Polylith with $1,000.</p>
<p><a href="https://cur.at/AbGCwbR?m=web">clojuriststogether.org</a></p>
<hr>
<h3 id="writing-mobile-apps-in-clojurescript-in-2021httpscurattrmrl4amweb"><a href="https://cur.at/TrmRl4a?m=web">Writing Mobile apps in ClojureScript in 2021</a></h3>
<p>Alex Davis writes for the JUXT blog about building mobile apps with ClojureScript in 2021. A good survey of the landscape and some tips which will save you time if you&rsquo;re working in this area.</p>
<p><a href="https://cur.at/TrmRl4a?m=web">juxt.pro</a></p>
<hr>
<h3 id="the-juxt-clojure-radar-2021httpscurat9koqc3wmweb"><a href="https://cur.at/9KoqC3W?m=web">The JUXT Clojure Radar 2021</a></h3>
<p>JUXT has updated their Clojure Radar from 2016. I don&rsquo;t have opinions on everything they mentioned, but I agree with their assessment on all of the tools I have experience with. Well worth a read to look for some promising Clojure technologies that might have slipped by. I was also happy to see that Clojurists Together had funded about 1/3 of the projects listed on the radar.</p>
<p><a href="https://cur.at/9KoqC3W?m=web">juxt.pro</a></p>
<hr>
<h3 id="crux-development-diary-6httpscuratnyvqppumweb"><a href="https://cur.at/NYvQppU?m=web">Crux Development Diary #6</a></h3>
<p>Crux has a development diary with a bunch of updates. Some of the changes are: adding HyperLogLog for better join estimates, new extension points for full text search, support for Google Cloud Storage via a neat <a href="https://cur.at/BsXbRuE?m=web">NIO Filesystem Provider for GCS</a>, support for Datomic style <a href="https://cur.at/VxV8Rza?m=web">return maps</a>, and a <a href="https://cur.at/JCg6pUo?m=web">Learn Crux Datalog Today</a> website.</p>
<p>They&rsquo;re also making some very big upgrades to support even more advanced time based querying, adopting <a href="https://cur.at/viSMao7?m=web">Apache Arrow</a> for column-oriented indexing, and moving the index to object storage. This will let the index scale beyond local disk size.</p>
<p>Crux is also getting a lot of interest from <a href="https://cur.at/zNNZPUl?m=web">Egeria</a>, a Linux Foundation project for handling metadata around enterprise data warehouses.</p>
<p><a href="https://cur.at/NYvQppU?m=web">opencrux.com</a></p>
<h2 id="libraries--books">Libraries &amp; Books.</h2>
<h3 id="split-tokens-in-clojurehttpscuratwjlquenmweb"><a href="https://cur.at/WjlQUEN?m=web">Split tokens in Clojure</a></h3>
<p>Miika Koskinen has created a library for implementing <a href="https://cur.at/BaNwC9A?m=web">split tokens</a> in Clojure. I did this when I was building Deps, but hadn’t thought to publish it as an open source library. It’s an easy pattern to use once you get your head around it, with not much increase in complexity.</p>
<p><a href="https://cur.at/WjlQUEN?m=web">quanttype.net</a></p>
<hr>
<h3 id="honeysql-20httpscuratswdnbnumweb"><a href="https://cur.at/sWdnbNu?m=web">honeysql 2.0</a></h3>
<p>Sean Corfield has released HoneySQL 2.0. It uses different identifiers for artifacts and namespace so you can use HoneySQL 1 and 2 in the same project and gradually migrate. One of the big changes is that HoneySQL will come with support for database specific extensions, previously you needed to use a separate library for this like Nilenso&rsquo;s <a href="https://cur.at/vxTK3Bh?m=web">honeysql-postgres</a> I&rsquo;ve already started using HoneySQL 2 for some Postgres specific logic and it was a very smooth process.</p>
<p><a href="https://cur.at/sWdnbNu?m=web">cljdoc.org</a></p>
<hr>
<h3 id="pathom-3-alphahttpscuratjnyg6h0mweb"><a href="https://cur.at/JNYG6H0?m=web">Pathom 3 Alpha</a></h3>
<p>Wilker Lucio has released an alpha for Pathom 3.</p>
<p><a href="https://cur.at/JNYG6H0?m=web">wsscode.com</a></p>
<h2 id="foundations">Foundations.</h2>
<h3 id="the-classpath-is-a-liehttpscurathokahcwmweb"><a href="https://cur.at/hOkahcw?m=web">The Classpath is a Lie</a></h3>
<p>Arne Brasseur has a post on how &ldquo;the classpath&rdquo; is a lie/abstraction over a hierarchy of classloaders.</p>
<p>Also recommended from the post is Daniel Smulewicz on how <a href="https://cur.at/uVAXNZz?m=web">classes are loaded dynamically</a> in Clojure.</p>
<p><a href="https://cur.at/hOkahcw?m=web">lambdaisland.com</a></p>
<hr>
<h3 id="elastic-metaspace-new-classroom-for-the-java-virtual-machinehttpscurat1dix5tnmweb"><a href="https://cur.at/1DIX5Tn?m=web">“Elastic Metaspace” new classroom for the Java Virtual Machine</a></h3>
<p>SAP has made an enhancement for JDK 16 to improve how the Metaspace allocates memory. The metaspace holds class metadata. As every function in a Clojure program is implemented as a class, improvements here should be help. I&rsquo;m not sure if there will be a big improvement for the typical Clojure app though, as it seems to mostly improve behaviour with lots of classloaders and classes being unloaded.</p>
<p><a href="https://cur.at/1DIX5Tn?m=web">sap.com</a></p>
<hr>
<h3 id="good-bye-adoptopenjdk-hello-adoptiumhttpscuratqe2jxvcmweb"><a href="https://cur.at/qe2jXvC?m=web">Good-bye AdoptOpenJDK. Hello Adoptium!</a></h3>
<p>AdoptOpenJDK has joined the Eclipse Foundation as Eclipse Adoptium and added a bunch of confusing terminology in the process. AdoptOpenJDK 8 is now called Termurin 8. The new JDK&rsquo;s will use the Java Compatibility Kit (JCK) for additional assurance that they are compliant with the Java spec.</p>
<p>Also of note, if you&rsquo;re using GitHub Actions&rsquo; <a href="https://cur.at/foaRyY0?m=web">setup-java</a> action, you&rsquo;ll need to update your distribution to reference <code>termurin</code>.</p>
<p><a href="https://cur.at/qe2jXvC?m=web">adoptopenjdk.net</a></p>
<h2 id="tools">Tools.</h2>
<h3 id="clojure---source-libs-and-buildshttpscuratritexyhmweb"><a href="https://cur.at/RitexyH?m=web">Clojure - Source Libs and Builds</a></h3>
<p>The Clojure core team is working on tools.build, a new library to fill in the missing (first-party) gaps around using tools.deps, deps.edn and the Clojure CLI to build artifacts. The build files are regular Clojure files and look quite similar in spirit to <code>build.boot</code> files. It looks like the build files could be a bit boilerplatey but I imagine that people will create higher-level libraries you can use to handle the most common use-cases.</p>
<p>There&rsquo;s also a new command in the Clojure CLI to add a dependency to your deps.edn file, e.g.</p>
<pre><code>clj -Ttools install io.github.clojure/tools.deps.graph '{:git/tag &quot;v1.0.63&quot;}'
</code></pre>
<p><a href="https://cur.at/RitexyH?m=web">clojure.org</a></p>
<hr>
<h3 id="alekczpcp-pcp-clojure-processorhttpscuratyzdnnmlmweb"><a href="https://cur.at/yZDnnML?m=web">alekcz/pcp: PCP: Clojure Processor</a></h3>
<p>PCP is a Clojure Processor which runs in a similar fashion to PHP. Also of note, Alexander Oloo is being funded by Clojurists Together this quarter.</p>
<p><a href="https://cur.at/yZDnnML?m=web">github.com</a></p>
<hr>
<h3 id="eastwood-changeshttpscuratks9h9xumweb"><a href="https://cur.at/kS9H9xu?m=web">eastwood changes</a></h3>
<p>Eastwood has had a bunch of work done on it recently, including a new <a href="https://cur.at/38OuAUZ?m=web">:performance</a> linter.</p>
<p><a href="https://cur.at/kS9H9xu?m=web">github.com</a></p>
<hr>
<h3 id="helinsmaestrocljhttpscuratzj7b9acmweb"><a href="https://cur.at/ZJ7b9Ac?m=web">helins/maestro.clj</a></h3>
<p>Adam Helinsky has a new pattern for managing a monorepo using deps.edn and Babashka. All dependency data lives in one deps.edn file and external dependencies are broken out into separate aliases. It seems like it might get a little unwieldy, but it would also be a good way to ensure everyone is using the same dependencies.</p>
<p><a href="https://cur.at/ZJ7b9Ac?m=web">github.com</a></p>
<hr>
<h3 id="introducing-incomplete-a-simple-clojure-code-completion-libraryhttpscurathmndk5pmweb"><a href="https://cur.at/HmNdk5P?m=web">Introducing incomplete: A Simple Clojure Code Completion Library</a></h3>
<p>Bozhidar Batsov released incomplete, a new Clojure code completion library extracted from nREPL.</p>
<p><a href="https://cur.at/HmNdk5P?m=web">metaredux.com</a></p>
<hr>
<h3 id="seancorfieldbuild-cljhttpscuratkjmqopxmweb"><a href="https://cur.at/kJMQOPX?m=web">seancorfield/build-clj</a></h3>
<p>Sean Corfield has built a library to abstract common build tasks for tools.build into a library so that your <code>build.clj</code> can stay small.</p>
<p><a href="https://cur.at/kJMQOPX?m=web">github.com</a></p>
<hr>
<h3 id="emacsconf-call-for-proposalshttpscurat92s0c63mweb"><a href="https://cur.at/92S0c63?m=web">EmacsConf Call for Proposals</a></h3>
<p>EmacsConf has a call for talk proposals open until September 30, 2021.</p>
<p><a href="https://cur.at/92S0c63?m=web">emacsconf.org</a></p>
<hr>
<h3 id="depsedn-and-monorepos-vhttpscuratfkmn5lwmweb"><a href="https://cur.at/fkmn5lW?m=web">deps.edn and monorepos V</a></h3>
<p>Sean Corfield continues writing about their monorepo and migrating to polylith.</p>
<p><a href="https://cur.at/fkmn5lW?m=web">corfield.org</a></p>
<h2 id="recent-developments">Recent Developments.</h2>
<h3 id="clj-2123-lighter-weight-aliasing-for-keywordshttpscuratcwqoajsmweb"><a href="https://cur.at/CWQoajS?m=web">CLJ-2123: Lighter-weight aliasing for keywords</a></h3>
<p>It looks like there is going to be a new <code>:as-alias</code> option added to <code>:require</code> in the <code>ns</code> form. This will let you create &ldquo;synthetic&rdquo; namespaces that don&rsquo;t have to exist before the <code>:require</code> is run. This is likely to be most useful for spec to let you use namespace qualified keywords without actually creating the namespace.</p>
<p><a href="https://cur.at/CWQoajS?m=web">atlassian.net</a></p>
<h2 id="learning">Learning.</h2>
<h3 id="learn-datomichttpscuratrdxzfknmweb"><a href="https://cur.at/RdXzFkN?m=web">Learn Datomic</a></h3>
<p>Jacek Schae has a new video course out for learning Datomic, Datalog and Datomic Ions. You can purchase it on it&rsquo;s own, or as part of a subscription to <a href="https://cur.at/9W9d0WZ?m=web">ClojureStream</a> which has all of his courses (re-frame, reagent, reitit, and Datomic) included.</p>
<p>Jacek also donates a portion of sales to Clojurists Together and has raised over $10k to date!</p>
<p><a href="https://cur.at/RdXzFkN?m=web">learndatomic.com</a></p>
<hr>
<h3 id="learning-clojure-interactive-programming-and-deliberate-practicehttpscurat3fcfydzmweb"><a href="https://cur.at/3fcfYdZ?m=web">Learning Clojure, Interactive Programming and Deliberate Practice</a></h3>
<p>Michael Fryar talks about using <a href="https://cur.at/2kuCgqm?m=web">deliberate practice</a> to learn Clojure after the company he worked for was <a href="https://cur.at/gN7nFAb?m=web">acquired</a> by Nubank.</p>
<p><a href="https://cur.at/3fcfYdZ?m=web">github.io</a></p>
<hr>
<h3 id="hey-webpack-hey-clojurescripthttpscuratuobfhqgmweb"><a href="https://cur.at/uobFhqg?m=web">Hey Webpack, Hey ClojureScript</a></h3>
<p>David Vujic explains how to to build AWS Amplify apps with ClojureScript, chaining together shadow-cljs to Webpack.</p>
<p><a href="https://cur.at/uobFhqg?m=web">blogspot.com</a></p>
<h2 id="misc">Misc.</h2>
<h3 id="evidence-of-fraud-in-an-influential-field-experiment-about-dishonestyhttpscurat3ueffwvmweb"><a href="https://cur.at/3uEfFwV?m=web">Evidence of Fraud in an Influential Field Experiment About Dishonesty</a></h3>
<p>I enjoyed reading this analysis of likely fraud in a research study into dishonesty. There was lots of evidence that the data was fabricated, but my favourite was that half the data used the Calibri font and half used Cambria.</p>
<hr>
<p>I&rsquo;m Daniel Compton. I maintain public Maven repositories at <a href="https://clojars.org/">Clojars</a>, private ones at <a href="https://www.deps.co/">Deps</a>, and help fund OSS Clojure projects (along with tons of generous <a href="https://www.clojuriststogether.org/">members</a> like <a href="https://www.latacora.com/">Latacora</a>, <a href="https://roamresearch.com/">Roam</a>, <a href="https://www.whimsical.com/">Whimsical</a>, <a href="https://pitch.io/">Pitch</a>, <a href="https://nubank.com.br/">Nubank</a>, <a href="https://www.cisco.com/">Cisco</a>, <a href="https://appsflyer.com/">AppsFlyer</a> <a href="https://juxt.pro">JUXT</a>, <a href="https://www.metosin.fi/">Metosin</a>, <a href="http://www.solita.fi/en">Solita</a>, <a href="http://www.adgoji.com/">Adgoji</a>, <a href="https://nextjournal.com/">Nextjournal</a>, <a href="https://flexiana.com/">Flexiana</a>, <a href="https://toyokumo.co.jp/">Toyokumo</a>, <a href="https://www.griffin.sh/">Griffin</a>, and <a href="https://parkside.app">Parkside</a>) at <a href="https://www.clojuriststogether.org/">Clojurists Together</a>. If you&rsquo;ve enjoyed reading this, tell your friends to sign up at <a href="https://www.therepl.net/">therepl.net</a>, or post a link in your company chatroom. If you&rsquo;ve seen (or published) a blog post, library, or anything else Clojure/JVM related please reply to this to let me know about it.</p>
<p>If you&rsquo;d like to support the work that I&rsquo;m doing, consider signing up for a trial of <a href="https://www.deps.co">Deps</a>, a private, hosted, Maven Repository service that I run.</p>
<p>Thanks!</p>
]]></content:encoded>
    </item>
    <item>
      <title>99: Zig, comment forms, and threadpools</title>
      <link>https://www.therepl.net/99/</link>
      <pubDate>Tue, 20 Jul 2021 21:30:27 +1200</pubDate>
      <guid>https://www.therepl.net/99/</guid>
      <description>Notes. I&amp;rsquo;ve been a bit sick this week, and the kids have been sick the two weeks prior. I&amp;rsquo;m looking forward to leaving winter behind for this year!
-main Rich Hickey&amp;rsquo;s talk on a history of Clojure is out now. The paper is here. You&amp;rsquo;ll also get to see Rich&amp;rsquo;s office (?) with a bunch of neat musical instruments. How are Clojurians handling control flow in their projects? Clojure Morsels is a new Clojure newsletter, check it out!</description>
      <content:encoded><![CDATA[<h2 id="notes">Notes.</h2>
<p>I&rsquo;ve been a bit sick this week, and the kids have been sick the two weeks prior. I&rsquo;m looking forward to leaving winter behind for this year!</p>
<h2 id="-main">-main</h2>
<ul>
<li>Rich Hickey&rsquo;s talk on a history of Clojure is <a href="https://www.pldi21.org/prerecorded_hopl.11.html">out now</a>. The paper is <a href="https://clojure.org/about/history">here</a>. You&rsquo;ll also get to see Rich&rsquo;s office (?) with a bunch of neat musical instruments.</li>
<li><a href="https://clojureverse.org/t/how-are-clojurians-handling-control-flow-on-their-projects/7868">How are Clojurians handling control flow in their projects?</a></li>
<li><a href="https://www.clojuremorsels.com">Clojure Morsels</a> is a new Clojure newsletter, check it out!</li>
<li>I&rsquo;m really excited about <a href="https://www.clojuriststogether.org/news/the-next-phase-of-clojurists-together/">the next phase of Clojurists Together</a></li>
<li>Nikita Prokopov <a href="https://tonsky.me/blog/icfpc-2021/">wrote about</a> his experience in the International Conference on Functional Programming using Clojure and Zig.</li>
<li>An <a href="https://www.notamonadtutorial.com/clojerl-an-implementation-of-the-clojure-language-that-runs-on-the-beam/">interview</a> with Juan Facorro on <a href="https://github.com/clojerl/clojerl">ClojErl</a></li>
</ul>
<h2 id="libraries--books">Libraries &amp; Books.</h2>
<ul>
<li><a href="https://github.com/hyperfiddle/rcf">rcf</a> (Rich Comment Forms) is a new Clojure/Script library that lets you write usage examples with results and turn them into tests. Similar to <a href="https://docs.python.org/3/library/doctest.html">doctests</a> in Python.</li>
<li>Lambda Island have an <a href="https://lambdaisland.com/blog/2021-06-29-lioss-update-june-2021">open source update</a> with a bunch of changes to their open source projects. I&rsquo;m particularly excited about <a href="https://github.com/lambdaisland/fetch">fetch</a>.</li>
</ul>
<h2 id="foundations">Foundations.</h2>
<ul>
<li>An old <a href="https://gist.github.com/djspiewak/46b543800958cf61af6efa8e072bfd5c">gist</a> on sizing Java threadpools, but one I hadn&rsquo;t seen before. The advice on global thread pools applies to Clojure&rsquo;s pmap and future functions.</li>
<li><a href="https://research.swtch.com/plmm">Programming Language Memory Models</a> by Russ Cox reviews different language memory models including Java&rsquo;s.</li>
<li><a href="https://despairlabs.com/posts/2021-06-16-io-uring-is-not-an-event-system/">io_uring is not an event system</a>.</li>
</ul>
<h2 id="tools">Tools.</h2>
<ul>
<li>Happy birthday to CIDER, it <a href="https://twitter.com/bbatsov/status/1417072603458588674">turned 9</a> last week. What a legacy, Bozhidar and all of the other contributors to CIDER should be proud.</li>
<li><a href="https://tylr.fun">tylr.fun</a> is an interesting take on text editing. I especially like how it handles <a href="https://twitter.com/dm_0ney/status/1414742742530498566">placing parentheses</a>.</li>
<li>Sean Corfield has a <a href="https://corfield.org/blog/2021/06/06/deps-edn-monorepo-3/">nice writeup</a> on their use of the <a href="https://polylith.gitbook.io/polylith/">Polylith</a> application architecture.</li>
<li><a href="https://www.juxt.pro/blog/maven-central">How to publish Clojure libraries on Maven Central</a> from the JUXT team</li>
<li><a href="https://yyhh.org/blog/2021/02/writing-c-code-in-javaclojure-graalvm-specific-programming/">Writing C Code in Clojure/Java</a> using GraalVM</li>
</ul>
<h2 id="learning">Learning</h2>
<ul>
<li><a href="https://www.youtube.com/watch?v=b6LHzZogIbA">State and Concurrency in Clojure</a></li>
<li><a href="https://www.youtube.com/watch?v=wFmsIZMZLNk">ClojureScript re-frame routing tutorial</a></li>
</ul>
<h2 id="misc">Misc.</h2>
<p><a href="https://josephg.com/blog/crdts-are-the-future/">I was wrong. CRDTs are the future</a></p>
<p>I&rsquo;m Daniel Compton. I maintain public Maven repositories at <a href="https://clojars.org/">Clojars</a>, private ones at <a href="https://www.deps.co/">Deps</a>, and help fund OSS Clojure projects (along with tons of generous <a href="https://www.clojuriststogether.org/">members</a> like <a href="https://www.therepl.net/newsletterslatacora-cljtog">Latacora</a>, <a href="https://www.therepl.net/newslettersroam-cljtog">Roam</a>, <a href="https://www.therepl.net/newsletterspitch-cljtog">Pitch</a>, <a href="https://www.therepl.net/newslettersnubank-cljtog">Nubank</a>, <a href="https://www.therepl.net/newsletterscisco-cljtog">Cisco</a>, <a href="https://juxt.pro">JUXT</a>, <a href="https://www.metosin.fi/">Metosin</a>, <a href="https://www.therepl.net/newsletterssolita-cljtog">Solita</a>, <a href="http://www.adgoji.com/">Adgoji</a>, <a href="https://nextjournal.com/">Nextjournal</a>, <a href="https://flexiana.com/">Flexiana</a>, <a href="https://toyokumo.co.jp/">Toyokumo</a>, <a href="https://www.griffin.sh/">Griffin</a>, and [Parkside][parkside]) at <a href="https://www.clojuriststogether.org/">Clojurists Together</a>. If you&rsquo;ve enjoyed reading this, tell your friends to sign up at <a href="https://www.therepl.net/">therepl.net</a>, or post a link in your company chatroom. If you&rsquo;ve seen (or published) a blog post, library, or anything else Clojure/JVM related please reply to this to let me know about it.</p>
<p>If you&rsquo;d like to support the work that I&rsquo;m doing, consider signing up for a trial of <a href="https://www.deps.co">Deps</a>, a private, hosted, Maven Repository service that I run.</p>
<p>Thanks!</p>
]]></content:encoded>
    </item>
    <item>
      <title>98: Automatic lambdas and Lilliput</title>
      <link>https://www.therepl.net/98/</link>
      <pubDate>Mon, 21 Jun 2021 11:39:24 +1200</pubDate>
      <guid>https://www.therepl.net/98/</guid>
      <description>-main A post from Arne Brasseur about some changes for how Lambda Island makes videos. Making changes like this can be tough, but it seems like this is going to be more sustainable. Libraries &amp;amp; Books. re-frame-flow helps you visualise a chain re-frame events. Methodical is a replacement for Clojure&amp;rsquo;s multimethods. It adds some neat features from the Common Lisp Object System, like adding wrapper methods, and the ability to call the next most specific method (kinda like calling a &amp;ldquo;superclass&amp;rdquo; but against the multimethod hierarchy).</description>
      <content:encoded><![CDATA[<h2 id="-main">-main</h2>
<ul>
<li>A post from Arne Brasseur about <a href="https://lambdaisland.com/blog/2021-06-17-lambdaisland-is-changing">some changes</a> for how Lambda Island makes videos. Making changes like this can be tough, but it seems like this is going to be more sustainable.</li>
</ul>
<h2 id="libraries--books">Libraries &amp; Books.</h2>
<ul>
<li><a href="https://github.com/ertugrulcetin/re-frame-flow">re-frame-flow</a> helps you visualise a chain re-frame events.</li>
<li><a href="https://github.com/camsaul/methodical">Methodical</a> is a replacement for Clojure&rsquo;s multimethods. It adds some neat features from the Common Lisp Object System, like adding wrapper methods, and the ability to call the next most specific method (kinda like calling a &ldquo;superclass&rdquo; but against the multimethod hierarchy). <a href="https://github.com/camsaul/methodical/releases/tag/0.12.0">0.12.0</a> is out now.</li>
<li><a href="https://github.com/pfeodrippe/recife">recife</a> is a library for running TLC/TLA+ models for <a href="https://lamport.azurewebsites.net/tla/tla.html">model checking</a>.</li>
</ul>
<h2 id="foundations">Foundations.</h2>
<ul>
<li>OpenJDK has a new project <a href="https://mail.openjdk.java.net/pipermail/announce/2021-March/000296.html">Lilliput</a>. The goal is to explore reducing Java&rsquo;s object header size (in Hotspot) from 128 bits to 64 bits or less. As you can imagine, if succesulf, this would have a substantial impact on Java&rsquo;s memory footprint.</li>
</ul>
<h2 id="tools">Tools.</h2>
<ul>
<li>A <a href="https://lore.kernel.org/git/pull.902.git.1615667191368.gitgitgadget@gmail.com/">patch</a> for adding Clojure language support to Git&rsquo;s diffs. You can <a href="https://gist.github.com/amalloy/ea5eada8a5bffc722b9ba8e44b7d5e2c">add this yourself</a> to your own Git config, but it&rsquo;ll be nice to have it built-in.</li>
<li>A <a href="https://mobile.twitter.com/_wilfredh/status/1404663229389828098">syntactic differ</a> for Scheme. Similar to the excellent but underused <a href="https://fazzone.github.io/autochrome.html">autochrome</a>.</li>
</ul>
<h2 id="recent-developments">Recent Developments.</h2>
<ul>
<li>Tsutomu Yano <a href="https://twitter.com/tsutomuyano/status/1406158157387223045">posted</a> a <a href="https://clojure.atlassian.net/browse/CLJ-2637">new patch</a> to support automatic lambda conversions for <code>IFn</code>s.</li>
<li><a href="https://clojureverse.org/t/modern-js-with-cljs-class-and-template-literals/7450">Modern JS with CLJS: class and template literals</a></li>
</ul>
<h2 id="learning">Learning</h2>
<ul>
<li><a href="https://dawranliou.com/blog/better-performance-with-java-arrays-in-clojure/">Better performance with Java arrays in Clojure</a> - a 125x speedup using <code>areduce</code> over Java arrays.</li>
<li>An <a href="https://kalavox.medium.com/jive-for-artisanal-software-2df0d675c104">interesting proposal</a> for a web app architecture. The server would send DOM updates over a websocket to the client (similar to Phoenix LiveView). See more discussion on <a href="https://clojureverse.org/t/jive-for-artisanal-software/7748/8">ClojureVerse</a>.</li>
</ul>
<h2 id="misc">Misc.</h2>
<p>Colin Fleming <a href="https://www.reddit.com/r/Clojure/comments/o06iai/a_strong_commitment_to_backwards_compatibility/">shared</a> this to the Clojure subreddit - <a href="https://utcc.utoronto.ca/~cks/space/blog/tech/MistakesAndBackwardCompatibility">A strong commitment to backwards compatibility means keeping your mistakes</a></p>
<p>I&rsquo;m Daniel Compton. I maintain public Maven repositories at <a href="https://clojars.org/">Clojars</a>, private ones at <a href="https://www.deps.co/">Deps</a>, and help fund OSS Clojure projects (along with tons of generous <a href="https://www.clojuriststogether.org/">members</a> like <a href="https://www.therepl.net/newsletterslatacora-cljtog">Latacora</a>, <a href="https://www.therepl.net/newslettersroam-cljtog">Roam</a>, <a href="https://www.therepl.net/newsletterspitch-cljtog">Pitch</a>, <a href="https://www.therepl.net/newslettersnubank-cljtog">Nubank</a>, <a href="https://www.therepl.net/newsletterscisco-cljtog">Cisco</a>, <a href="https://juxt.pro">JUXT</a>, <a href="https://www.metosin.fi/">Metosin</a>, <a href="https://www.therepl.net/newsletterssolita-cljtog">Solita</a>, <a href="http://www.adgoji.com/">Adgoji</a>, <a href="https://nextjournal.com/">Nextjournal</a>, <a href="https://flexiana.com/">Flexiana</a>, <a href="https://toyokumo.co.jp/">Toyokumo</a>, <a href="https://www.griffin.sh/">Griffin</a>, and [Parkside][parkside]) at <a href="https://www.clojuriststogether.org/">Clojurists Together</a>. If you&rsquo;ve enjoyed reading this, tell your friends to sign up at <a href="https://www.therepl.net/">therepl.net</a>, or post a link in your company chatroom. If you&rsquo;ve seen (or published) a blog post, library, or anything else Clojure/JVM related please reply to this to let me know about it.</p>
<p>If you&rsquo;d like to support the work that I&rsquo;m doing, consider signing up for a trial of <a href="https://www.deps.co">Deps</a>, a private, hosted, Maven Repository service that I run.</p>
<p>Thanks!</p>
]]></content:encoded>
    </item>
    <item>
      <title>97: 250 KLOC, 400 macros, and $750 million</title>
      <link>https://www.therepl.net/97/</link>
      <pubDate>Mon, 14 Jun 2021 14:57:10 +1200</pubDate>
      <guid>https://www.therepl.net/97/</guid>
      <description>Notes. Lots going on in Clojure this week!
-main :clojureD was recently held online, the talks should be up on YouTube soonish. Nubank raised a staggering $750M last week, on top of a $400M round in January. Nubank plans to use the funding to launch in Mexico and Colombia, launch new products and services, and hire more employees. That still seems like a lot of money, I&amp;rsquo;m excited to see if there&amp;rsquo;s anything else they plan to do with it.</description>
      <content:encoded><![CDATA[<h2 id="notes">Notes.</h2>
<p>Lots going on in Clojure this week!</p>
<h2 id="-main">-main</h2>
<ul>
<li><a href="https://clojured.de">:clojureD</a> was recently held online, the talks should be up on <a href="https://www.youtube.com/c/ClojuredDexposed/videos">YouTube</a> soonish.</li>
<li>Nubank <a href="https://techcrunch.com/2021/06/08/fintech-all-star-nubank-raises-a-750m-mega-round/">raised</a> a staggering $750M last week, on top of a <a href="https://techcrunch.com/2021/01/28/fintech-darling-nubank-raises-blockbuster-400m-series-g-at-25b-valuation/">$400M round</a> in January. Nubank plans to use the funding to launch in Mexico and Colombia, launch new products and services, and hire more employees. That still seems like a lot of money, I&rsquo;m excited to see if there&rsquo;s anything else they plan to do with it.</li>
<li>The <a href="https://stackoverflow.az1.qualtrics.com/jfe/form/SV_7arimtzVFf8ipfM?site=stackoverflow.com">Stack Overflow Developer Survey</a> is on right now. I&rsquo;d encourage all Clojure developers to fill it out to help the Clojure community be represented.</li>
<li>Chris Nuernberger gave a talk on <a href="https://www.youtube.com/watch?v=5mUGu4RlwKE">High Performance Data</a> for the London Clojurians Meetup. Chris (along with others in the <a href="https://scicloj.github.io/">scicloj</a> community) has been pushing Clojure a long way in the data analysis/data processing space.</li>
<li>Alex Miller has started <a href="https://clojure.org/news/2021/06/11/deref">Clojure Deref</a>, a link/news roundup for the Clojure ecosystem. If you like this, you should check out Deref too.</li>
<li>Jordan Miller continues her podcast Lost in Lambduhhs with <a href="https://anchor.fm/lostinlambduhhs/episodes/puredanger-Alex-Miller--Clojures-Cool-dad-e12botj/a-a5qfics">Alex Miller</a>.</li>
<li>Nathan Marz gives us a <a href="https://tech.redplanetlabs.com/2021/06/03/tour-of-our-250k-line-clojure-codebase">tour</a> through their 250k line Clojure codebase. That&rsquo;s a pretty large Clojure codebase, and it sounds especially dense with 400 custom macros (Clojure&rsquo;s source has 127). However, they&rsquo;re building a programming language on top of Clojure so it&rsquo;s perhaps not too surprising. Nathan Marz answered a few followup questions on the <a href="https://groups.google.com/g/clojure/c/Ilgy7e5nhek">Clojure mailing list</a>, including a few more hints on what they&rsquo;re doing with continuations. I&rsquo;m looking forward to seeing more.</li>
</ul>
<h2 id="libraries--books">Libraries &amp; Books.</h2>
<ul>
<li><a href="https://github.com/helins/mprop.cljc">mprop</a> is a nice extension to <code>test.check</code> with two useful extensions: localising test.check failures to the assertion, not just the test; and scaling the number of tests based on environment so you can run 10x more in CI than in local dev.</li>
</ul>
<h2 id="people-are-worried-about-types-httpsdanielcomptonnet20160711people-are-worried-about-types">People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></h2>
<ul>
<li>Jacek Schae <a href="https://clojurescriptpodcast.com">talked to</a> Tommi Reiman about Malli</li>
<li><a href="https://github.com/CrypticButter/snoop">snoop</a> adds some syntactic sugar to define Malli function schemas.</li>
</ul>
<h2 id="foundations">Foundations.</h2>
<ul>
<li>Crux has a <a href="https://opencrux.com/articles/references.html">Bibliography</a> of books and papers that inspired Crux&rsquo;s philosophy and architecture.</li>
</ul>
<h2 id="tools">Tools.</h2>
<ul>
<li><a href="https://github.com/lread/clj-graal-docs">Tips and tricks</a> on how to use Clojure with GraalVM from Lee Read</li>
<li>Michiel Borkent continues churning out useful Clojure tools This time it&rsquo;s <a href="https://borkdude.github.io/scittle/">scittle</a>, a lightweight tool for running ClojureScript directly in the browser with no precompilation. View source on the linked page to see what it looks like, very cool!</li>
<li>An alpha for <a href="https://cljdoc.org/d/com.github.seancorfield/expectations/2.0.0-alpha2/doc/readme">Expectations 2.0.0</a> is out, if you use Expectations, now would be a good time to give your feedback.</li>
<li>Christophe Grand and Baptiste Dupuch continue to do good work on <a href="https://mobile.twitter.com/cgrand/status/1403333180854255620">extending Clojure to Dart</a></li>
<li>A <a href="https://clojurelog.github.io">list</a> of OSS datalog databases (from the Crux team). The comparison looks fair, no one vendor gets all ✔️&rsquo;s.</li>
</ul>
<h2 id="learning">Learning.</h2>
<ul>
<li>An <a href="https://shaunlebron.github.io/t3tr0s-slides/#0">interactive guide</a> on how to build a tetris game in ClojureScript from Shaun Lebron. Even if you don&rsquo;t want to build a game, it&rsquo;s worth reading, just to see an example of how you can make code explanations much more tangible.</li>
</ul>
<h2 id="misc">Misc.</h2>
<p>I&rsquo;ve recently started stretching to end my day. It&rsquo;s a good wind down routine to relax your muscles. There are a <a href="https://www.youtube.com/results?search_query=beginner+stretches+for+flexibility">bunch of videos on YouTube</a> to pick from, depending on how much time you have and how flexible you are to start with.</p>
<hr>
<p>I&rsquo;m Daniel Compton. I maintain public Maven repositories at <a href="https://clojars.org/">Clojars</a>, private ones at <a href="https://www.deps.co/">Deps</a>, and help fund OSS Clojure projects (along with tons of generous <a href="https://www.clojuriststogether.org/">members</a> like <a href="https://www.therepl.net/newsletterslatacora-cljtog">Latacora</a>, <a href="https://www.therepl.net/newslettersroam-cljtog">Roam</a>, <a href="https://www.therepl.net/newsletterspitch-cljtog">Pitch</a>, <a href="https://www.therepl.net/newslettersnubank-cljtog">Nubank</a>, <a href="https://www.therepl.net/newsletterscisco-cljtog">Cisco</a>, <a href="https://juxt.pro">JUXT</a>, <a href="https://www.metosin.fi/">Metosin</a>, <a href="https://www.therepl.net/newsletterssolita-cljtog">Solita</a>, <a href="http://www.adgoji.com/">Adgoji</a>, <a href="https://nextjournal.com/">Nextjournal</a>, <a href="https://www.therepl.net/newslettersflexiana-cljtog">Flexiana</a>, <a href="https://www.therepl.net/newsletterstoyokumo-cljtog">Toyokumo</a>, and <a href="https://www.therepl.net/newslettersgriffin-cljtog">Griffin</a>) at <a href="https://www.clojuriststogether.org/">Clojurists Together</a>. If you&rsquo;ve enjoyed reading this, tell your friends to sign up at <a href="https://www.therepl.net/">therepl.net</a>, or post a link in your company chatroom. If you&rsquo;ve seen (or published) a blog post, library, or anything else Clojure/JVM related please reply to this to let me know about it.</p>
<p>If you&rsquo;d like to support the work that I&rsquo;m doing, consider signing up for a trial of <a href="https://www.deps.co">Deps</a>, a private, hosted, Maven Repository service that I run.</p>
<p>Thanks!</p>
]]></content:encoded>
    </item>
    <item>
      <title>96: A Clojure year in review</title>
      <link>https://www.therepl.net/96/</link>
      <pubDate>Sun, 23 May 2021 21:46:07 +1200</pubDate>
      <guid>https://www.therepl.net/96/</guid>
      <description>Notes. Welcome back to The REPL! This is the first newsletter since April 2020. Lots has changed in the world since then for me and almost certainly for you as well.
When I last wrote in April 2020, I had been laid off due to the startup I was working for shutting down after failing to raise funding. Since then the world went through COVID and lockdowns, I started a new job at GitHub working on GitHub Sponsors, sold our house, bought a new one, had our first child start school, and generally have had an extremely busy 12 months.</description>
      <content:encoded><![CDATA[<h2 id="notes">Notes.</h2>
<p>Welcome back to The REPL! This is the first newsletter since April 2020. Lots has changed in the world since then for me and almost certainly for you as well.</p>
<p>When I last wrote in April 2020, I had been laid off due to the startup I was working for shutting down after failing to raise funding. Since then the world went through COVID and lockdowns, I started a <a href="https://danielcompton.net/2020/05/28/staff">new job at GitHub</a> working on GitHub Sponsors, sold our house, bought a new one, had our first child start school, and generally have had an extremely busy 12 months.</p>
<p>I want to say a big thanks to everyone who helped out with leads on jobs, I really appreciated it.</p>
<p>Here&rsquo;s some of the key developments of the last year in Clojure (as I remember them).</p>
<h2 id="-main">-main</h2>
<ul>
<li>Probably the biggest Clojure news of the year was Cognitect <a href="https://building.nubank.com.br/nubank-acquires-cognitect-press-release">getting acquired</a> by Nubank.</li>
<li>Cognitect is <a href="https://cognitect.com/blog/2020/12/15/sponsoring-open-source-developers">sponsoring</a> dozens of Clojure developers through GitHub Sponsors.</li>
<li>The State of Clojure 2021 survey results were <a href="https://clojure.org/news/2021/04/06/state-of-clojure-2021">published</a>.</li>
<li>Clojure <a href="https://github.com/clojure/clojure/blob/master/changes.md#changes-to-clojure-in-version-1103">1.10.3</a> and <a href="https://github.com/clojure/clojure/blob/master/changes.md#changes-to-clojure-in-version-1102">1.10.2</a> were released, including a <a href="https://clojure.atlassian.net/browse/CLJ-1472">key fix</a> for Graal based projects.</li>
<li>Nubank <a href="https://techcrunch.com/2021/01/28/fintech-darling-nubank-raises-blockbuster-400m-series-g-at-25b-valuation/">raised</a> a $400M Series G round at a $25B valuation (!!)</li>
<li>CircleCI <a href="https://techcrunch.com/2021/05/11/circleci-announces-100m-series-f-on-1-7b-valuation-along-with-vamp-acquisition/">raised</a> a $100M Series F round at a $1.7B valuation and acquired Vamp</li>
<li>Roam Research <a href="http://thein.fo/ea68f6f9de512a8c">raised</a> a $9M seed round at a $200M valuation</li>
<li>Clojurists Together <a href="https://www.clojuriststogether.org/news/announcing-the-clojurists-together-foundation/">formed a foundation</a> and held <a href="https://www.clojuriststogether.org/news/2021-board-election-results/">board elections</a>.</li>
</ul>
<h2 id="libraries--books">Libraries &amp; Books.</h2>
<ul>
<li>re-frame <a href="http://day8.github.io/re-frame/releases/2020/#100-2020-07-20">hit 1.0.0</a> and has a new website, <a href="https://www.clojuriststogether.org/news/q2-2020-funding-announcement/">funded</a> in part by <a href="https://www.clojuriststogether.org/members/">Clojurists Together members</a>.</li>
<li>Metosin <a href="https://www.metosin.fi/blog/malli/">released</a> Malli, data-driven schemas for Clojure and ClojureScript. This was also <a href="https://www.clojuriststogether.org/news/q3-2020-funding-announcement/">funded</a> in part by <a href="https://www.clojuriststogether.org/members/">Clojurists Together members</a>.</li>
<li>Chris Nuernberger (new Clojurists Together board member) <a href="https://www.reddit.com/r/Clojure/comments/mh8eoj/clojure_high_performance_data_processing_system/">released</a> tech.ml.dataset, beating Pandas, dplyr, and Julia in performance.</li>
</ul>
<h2 id="foundations">Foundations.</h2>
<ul>
<li>&ldquo;We should focus on stability in every JDK release, since every JDK release is meant to be ready for production use.&rdquo; - Mark Reinhold on <a href="https://mail.openjdk.java.net/pipermail/jdk-dev/2021-May/005543.html">the meaning, or not, of &ldquo;LTS&rdquo;</a>.</li>
<li>Ultra low pause time Garbage Collectors <a href="https://openjdk.java.net/jeps/379">Shenandoah</a> and <a href="https://openjdk.java.net/jeps/377">Z</a> are no longer experimental in JDK 15</li>
</ul>
<h2 id="tools">Tools.</h2>
<ul>
<li>CIDER <a href="https://metaredux.com/posts/2020/12/28/cider-1-0.html">1.0 (Sofia)</a> was released.</li>
<li>There&rsquo;s a new Clojure podcast Lost in Lambduhhs from Jordan Miller, <a href="https://anchor.fm/lostinlambduhhs">interviewing</a> Michiel Borkent.</li>
<li>Michiel has released far too many great things to list them all here, but <a href="https://babashka.org/">babashka</a>, <a href="https://github.com/clj-kondo/clj-kondo">clj-kondo</a>, and <a href="https://github.com/borkdude/sci">sci</a> are all amazing tools that have improved lots this year (partly funded by Clojurists Together).</li>
<li>If you were having trouble understanding all the different ways GraalVM can run your code then <a href="https://medium.com/graalvm/java-on-truffle-going-fully-metacircular-215531e3f840">Java on Truffle — Going Fully Metacircular</a> isn&rsquo;t going to help matters - &ldquo;GraalVM 21.0 introduces a new installable component, named <code>espresso</code>, which provides a JVM implementation written in Java.&rdquo;</li>
<li>Clojars <a href="https://github.blog/changelog/2020-09-09-our-secret-scanning-program-adds-new-partners/">joined</a> the GitHub secret scanning program.</li>
<li>Alex Miller wrote a <a href="https://clojure.org/guides/dev_startup_time">guide</a> to improving startup time in development.</li>
<li>Aaron Dixon from Red Planet Labs <a href="https://tech.redplanetlabs.com/2020/09/02/clojure-faster/">wrote</a> about micro-optimizing Clojure for optimal performance. <a href="https://tech.redplanetlabs.com/2020/09/02/clojure-faster/">Clojure, Faster</a></li>
<li>A <a href="https://www.reddit.com/r/Clojure/comments/gusqx0/clojurescript_formatting_in_firefox/">possible future</a> for ClojureScript formatting in Firefox DevTools</li>
</ul>
<h2 id="recent-developments">Recent Developments.</h2>
<ul>
<li>There is a <a href="https://clojure.org/about/history">paper</a> from Rich about the History of Clojure as part of the <a href="https://hopl4.sigplan.org">History of Programming Languages IV conference</a>.</li>
<li>Fogus <a href="http://blog.fogus.me/2021/01/15/clojure-core/">joined</a> the Clojure core development team</li>
</ul>
<h2 id="misc">Misc.</h2>
<p>&ldquo;It is not unusual at all to read a 20 year-old paper with a tool empirically shown to make programmers 4x faster at a task, and for the underlying idea to still be locked in academia.&rdquo; - <a href="http://www.pathsensitive.com/2021/03/developer-tools-can-be-magic-instead.html">Developer Tools Can Be Magic. Instead, They Collect Dust</a></p>
<p>I&rsquo;m Daniel Compton. I maintain public Maven repositories at <a href="https://clojars.org/">Clojars</a>, private ones at <a href="https://www.deps.co/">Deps</a>, and help fund OSS Clojure projects (along with tons of generous <a href="https://www.clojuriststogether.org/">members</a> like <a href="https://www.therepl.net/newsletterslatacora-cljtog">Latacora</a>, <a href="https://www.therepl.net/newslettersroam-cljtog">Roam</a>, <a href="https://www.therepl.net/newsletterspitch-cljtog">Pitch</a>, <a href="https://www.therepl.net/newslettersnubank-cljtog">Nubank</a>, <a href="https://www.therepl.net/newsletterscisco-cljtog">Cisco</a>, <a href="https://juxt.pro">JUXT</a>, <a href="https://www.metosin.fi/">Metosin</a>, <a href="https://www.therepl.net/newsletterssolita-cljtog">Solita</a>, <a href="http://www.adgoji.com/">Adgoji</a>, <a href="https://nextjournal.com/">Nextjournal</a>, <a href="https://www.therepl.net/newslettersflexiana-cljtog">Flexiana</a>, <a href="https://www.therepl.net/newsletterstoyokumo-cljtog">Toyokumo</a>, and <a href="https://www.therepl.net/newslettersgriffin-cljtog">Griffin</a>) at <a href="https://www.clojuriststogether.org/">Clojurists Together</a>. If you&rsquo;ve enjoyed reading this, tell your friends to sign up at <a href="https://www.therepl.net/">therepl.net</a>, or post a link in your company chatroom. If you&rsquo;ve seen (or published) a blog post, library, or anything else Clojure/JVM related please reply to this to let me know about it.</p>
<p>If you&rsquo;d like to support the work that I&rsquo;m doing, consider signing up for a trial of <a href="https://www.deps.co">Deps</a>, a private, hosted, Maven Repository service that I run.</p>
<p>Thanks!</p>
]]></content:encoded>
    </item>
    <item>
      <title>95: Cornucopias and COVID</title>
      <link>https://www.therepl.net/95/</link>
      <pubDate>Tue, 14 Apr 2020 20:10:42 +1200</pubDate>
      <guid>https://www.therepl.net/95/</guid>
      <description>Notes. My team and I were laid off today due to the pandemic. If you&amp;rsquo;re looking for senior engineers (Clojure or otherwise), then talk to Angus Fletcher, Ian Bishop, Cody Canning, or myself.
That means I&amp;rsquo;m now looking for a new remote job. I live in New Zealand but work on Pacific Time to sync up with engineering teams in USA and Canada. I have experience using Clojure and ClojureScript, but I&amp;rsquo;m also open to other languages.</description>
      <content:encoded><![CDATA[<h2 id="notes">Notes.</h2>
<p>My team and I were laid off today due to the pandemic. If you&rsquo;re looking for senior engineers (Clojure or otherwise), then talk to <a href="https://github.com/angusiguess">Angus Fletcher</a>, <a href="https://github.com/ianbishop">Ian Bishop</a>, <a href="https://github.com/ccann">Cody Canning</a>, or myself.</p>
<p>That means I&rsquo;m now looking for a new remote job. I live in New Zealand but work on Pacific Time to sync up with engineering teams in USA and Canada. I have experience using Clojure and ClojureScript, but I&rsquo;m also open to other languages. You can see my <a href="https://github.com/danielcompton">GitHub</a> profile, <a href="https://www.linkedin.com/in/danielcomptonnz/">LinkedIn</a>, and <a href="https://danielcompton.net">personal site</a>.</p>
<p>If you think I or one of my colleagues could be a good addition to your team, reply to this email and get in touch!</p>
<h2 id="-main">-main</h2>
<ul>
<li>I talked with Łukasz Korecki about <a href="https://www.therepl.net/episodes/35/">mature Clojure codebases</a></li>
<li>Mike Thompson on <a href="https://clojureverse.org/t/is-re-frame-virtuous/5770/7">whether</a> re-frame is virtuous</li>
</ul>
<h2 id="libraries--books">Libraries &amp; Books.</h2>
<ul>
<li><a href="https://rough-cljs.netlify.com/">Rough</a> for CLJS is a new library that wraps <a href="https://roughjs.com/">Rough.js</a> to give your graphics a hand drawn style.</li>
<li><a href="https://github.com/applied-science/darkstar">Darkstar</a> is a Clojure library for making SVG&rsquo;s from Vega and Vega lite specs. This is particularly cool because it uses GraalJS as the script engine to run Vega.</li>
</ul>
<h2 id="people-are-worried-about-types-httpsdanielcomptonnet20160711people-are-worried-about-types">People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></h2>
<ul>
<li><a href="https://www.executeprogram.com/blog/are-tests-necessary-in-typescript">Are tests necessary in Typescript?</a> from Gary Bernhardt.</li>
</ul>
<h2 id="foundations">Foundations.</h2>
<ul>
<li><a href="http://bad-concurrency.blogspot.com/2020/03/flow-control-in-aeron.html">Flow Control in Aeron</a></li>
</ul>
<h2 id="tools">Tools.</h2>
<ul>
<li>Bozhidar Batsov has a <a href="https://metaredux.com/posts/2020/04/10/a-cornucopia-of-nrepl-updates.html">cornucopia</a> of nREPL updates. What I really like about this post is it shows many Clojure tools are able to benefit from improvements to nREPL.</li>
<li>Mauricio Szabo talks about <a href="https://mauricio.szabo.link/blog/2020/04/01/nrepl-on-chlorine/">nREPL on Chlorine</a> and <a href="https://mauricio.szabo.link/blog/2020/04/04/implementing-a-nrepl-client/">implementing</a> a nREPL Client.</li>
<li><a href="https://github.com/MnRA/nativity">Nativity</a> is a tool for turning Babashka scripts into native-images. I imagine this makes them even more portable and can make startup run faster.</li>
</ul>
<h2 id="recent-developments">Recent Developments.</h2>
<ul>
<li>There&rsquo;s a new <a href="https://github.com/clojure/core.async#changelog">release</a> of core.async out with support for <a href="https://clojurescript.org/guides/promise-interop#using-promises-with-core-async">using JavaScript promises</a> inside a <code>go</code> block.</li>
<li>An interesting <a href="https://twitter.com/eccentric_jay/status/1249116959129645056">stat</a> I hadn&rsquo;t seen before; over the last 12 months, unique IPs downloading Clojure from Maven Central went from ~75,000 to ~135,000. Unique IPs is a much better metric to use than raw download counts, raw download counts can sometimes end up counting uncached CI jobs.</li>
<li><a href="https://clojure.atlassian.net/browse/CLJS-1543">CLJS-1543</a> Support Closure libs using <a href="https://github.com/google/closure-library/wiki/goog.module:-an-ES6-module-like-alternative-to-goog.provide">goog.module</a>.</li>
</ul>
<h2 id="learning">Learning</h2>
<ul>
<li>Between Two Parens (still jealous I didn&rsquo;t think of that name) has a <a href="https://betweentwoparens.com/what-are-the-clojure-tools">good intro</a> on the various parts of the Clojure CLI tooling suite.</li>
<li><a href="https://spin.atomicobject.com/2020/04/08/react-contexts-dynamic-scope/">React Contexts are dynamic scope</a></li>
</ul>
<h2 id="misc">Misc.</h2>
<p>I&rsquo;ve been enjoying this <a href="https://twitter.com/dannolan/status/1246347372503822337">new meme</a> of Ghanan dancing pallbearers.</p>
<p>I&rsquo;m Daniel Compton. I maintain public Maven repositories at <a href="https://clojars.org/">Clojars</a>, private ones at <a href="https://www.deps.co/">Deps</a>, and help fund OSS Clojure projects (along with tons of generous <a href="https://www.clojuriststogether.org/">members</a> like <a href="https://pitch.com/">Pitch</a>, <a href="https://nubank.com.br">Nubank</a>, <a href="https://juxt.pro">JUXT</a>, <a href="https://www.metosin.fi/">Metosin</a>, <a href="http://www.adgoji.com/">Adgoji</a>, and <a href="https://nextjournal.com/">Nextjournal</a>) at <a href="https://www.clojuriststogether.org/">Clojurists Together</a>. If you&rsquo;ve enjoyed reading this, tell your friends to sign up at <a href="https://www.therepl.net/">therepl.net</a>, or post a link in your company chatroom. If you&rsquo;ve seen (or published) a blog post, library, or anything else Clojure/JVM related please reply to this to let me know about it.</p>
<p>If you&rsquo;d like to support the work that I&rsquo;m doing, consider signing up for a trial of <a href="https://www.deps.co">Deps</a>, a private, hosted, Maven Repository service that I run.</p>
<p>Thanks!</p>
]]></content:encoded>
    </item>
    <item>
      <title>94: Data layout and visualisation</title>
      <link>https://www.therepl.net/94/</link>
      <pubDate>Thu, 09 Apr 2020 21:57:07 +1200</pubDate>
      <guid>https://www.therepl.net/94/</guid>
      <description>-main Congratulations to CircleCI for raising a $100M Series E round this week! Clojurists Together surveyed our members to see what they&amp;rsquo;re interested in. There&amp;rsquo;s still time to apply, or to encourage other Clojure developers to apply. I talked with &#x141;ukasz Korecki about building with Clojure in a mature startup. Lambda Island talked about the interceptor pattern, aka coffee grinders, and Jack Rusher added some more thoughts using the very cool Nextjournal.</description>
      <content:encoded><![CDATA[<h2 id="-main">-main</h2>
<ul>
<li>Congratulations to CircleCI for raising a <a href="https://circleci.com/blog/announcing-circleci-s-100m-series-e/">$100M Series E</a> round this week!</li>
<li>Clojurists Together <a href="https://www.clojuriststogether.org/news/q2-2020-survey-results/">surveyed</a> our members to see what they&rsquo;re interested in. There&rsquo;s still time to <a href="https://www.clojuriststogether.org/open-source/">apply</a>, or to encourage other Clojure developers to apply.</li>
<li>I <a href="https://www.therepl.net/episodes/35/">talked with</a> Łukasz Korecki about building with Clojure in a mature startup.</li>
<li>Lambda Island talked about the interceptor pattern, <a href="https://lambdaisland.com/blog/2020-03-29-coffee-grinders-2">aka coffee grinders</a>, and Jack Rusher <a href="https://nextjournal.com/jackrusher/grinding-some-coffee/">added</a> some more thoughts using the very cool Nextjournal.</li>
</ul>
<h2 id="libraries--books">Libraries &amp; Books.</h2>
<ul>
<li>Nubank has published their fork of <a href="https://github.com/nubank/clj-kubernetes-api">clj-kubernetes-api</a>. This is a data-driven Kubernetes client derived from the Swagger specs, similar to <a href="https://github.com/cognitect-labs/aws-api">Cognitect&rsquo;s AWS API</a> library.</li>
<li><a href="https://github.com/ertugrulcetin/patika">Patika</a> is a routing library building on Liberator and Compojure</li>
<li><a href="https://github.com/fulcrologic/fulcro-rad">Fulcro RAD</a> is an experimental new library for Rapid Application Development.</li>
<li>There&rsquo;s been an influx of Clojure state libraries lately. The latest is <a href="https://github.com/redstarssystems/context">context</a> which looks pretty full featured.</li>
</ul>
<h2 id="people-are-worried-about-types-httpsdanielcomptonnet20160711people-are-worried-about-types">People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></h2>
<ul>
<li><a href="https://blog.ambrosebs.com/2020/03/30/what-type-clojure.html">What are types in Clojure?</a></li>
</ul>
<h2 id="foundations">Foundations.</h2>
<ul>
<li>A good Twitter thread on <a href="https://twitter.com/WEREMSOFT/status/1246884854656126984">data layout in memory</a> and its impact on performance, particularly in the browser.</li>
<li>Follow the thread up with a great <a href="http://cr.openjdk.java.net/~briangoetz/valhalla/sov/01-background.html">outline</a> of Java&rsquo;s Project Valhalla</li>
<li><a href="https://blog.frankel.ch/coping-incompatible-code-graalvm-compilation/">Coping with incompatible code in Graal VM AOT compilation</a>, h/t Michiel Borkent for the link.</li>
</ul>
<h2 id="tools">Tools.</h2>
<ul>
<li>Calva <a href="https://clojureverse.org/t/calva-gets-a-debugger/5751">made a new release</a>, the headlining feature is a debugger. I&rsquo;m especially pleased to see this because the work was funded by Clojurists Together.</li>
<li><a href="https://github.com/vlaaad/reveal">Reveal</a> is a REBL style data browser. It&rsquo;s early, but looks very cool. Check it out if this resonates with you: &ldquo;Repl is a great window into a running program, but text representation is too limited for inspection.&rdquo;</li>
<li>How to edit s-expressions in Vim <a href="https://jacobobryant.com/post/2020/editing-sexprs/">without plugins</a> from Jacob O&rsquo;Bryant.</li>
</ul>
<h2 id="learning">Learning</h2>
<ul>
<li>Lambda Island published their <a href="https://nextjournal.com/lambdaisland/clojure-style-guide">Coding Style Guide</a>. It mostly builds on the <a href="https://github.com/bbatsov/clojure-style-guide">Clojure Style Guide</a>. I think I agree with almost everything in there, I&rsquo;ll need to think a bit more about the last suggestion to use a platform namespace. I&rsquo;d generally just use reader conditionals directly in a cljc file.</li>
<li>A recommender system <a href="https://findka.com/blog/rec-sys-in-30-lines/">in 30 lines of Clojure</a></li>
</ul>
<h2 id="misc">Misc.</h2>
<ul>
<li><a href="https://john-millikin.com/sre-school/no-haunted-forests">No Haunted Forests</a></li>
</ul>
<p>I&rsquo;m Daniel Compton. I maintain public Maven repositories at <a href="https://clojars.org/">Clojars</a>, private ones at <a href="https://www.deps.co/">Deps</a>, and help fund OSS Clojure projects (along with tons of generous <a href="https://www.clojuriststogether.org/">members</a> like <a href="https://pitch.com/">Pitch</a>, <a href="https://nubank.com.br">Nubank</a>, <a href="https://juxt.pro">JUXT</a>, <a href="https://www.metosin.fi/">Metosin</a>, <a href="http://www.adgoji.com/">Adgoji</a>, and <a href="https://nextjournal.com/">Nextjournal</a>) at <a href="https://www.clojuriststogether.org/">Clojurists Together</a>. If you&rsquo;ve enjoyed reading this, tell your friends to sign up at <a href="https://www.therepl.net/">therepl.net</a>, or post a link in your company chatroom. If you&rsquo;ve seen (or published) a blog post, library, or anything else Clojure/JVM related please reply to this to let me know about it.</p>
<p>If you&rsquo;d like to support the work that I&rsquo;m doing, consider signing up for a trial of <a href="https://www.deps.co">Deps</a>, a private, hosted, Maven Repository service that I run.</p>
<p>Thanks!</p>
]]></content:encoded>
    </item>
    <item>
      <title>93: The REPL Returns</title>
      <link>https://www.therepl.net/93/</link>
      <pubDate>Sun, 29 Mar 2020 13:29:58 +1300</pubDate>
      <guid>https://www.therepl.net/93/</guid>
      <description>Notes. Welcome back to The REPL, a newsletter about Clojure and ClojureScript. Wolfram Alpha tells me it&amp;rsquo;s been 7 months and 5 days since the last newsletter. In the meantime quite a few things have happened!
I got to go to St. Louis to speak at Strange Loop We tried to sell our house and buy another one, then put it all on hold Clojurists Together has been separating from the SFC into our own 501(c)6 trade association My wife gave birth to our third baby A few other personal things which needed a lot of attention and most recently, the worldwide spread of COVID-19 The REPL newsletter and podcast and my open source contributions all had to take a backseat to these other responsibilities.</description>
      <content:encoded><![CDATA[<h2 id="notes">Notes.</h2>
<p>Welcome back to The REPL, a newsletter about Clojure and ClojureScript. Wolfram Alpha <a href="https://www.wolframalpha.com/input/?i=24+august+2019+to+29+march+2020">tells me</a> it&rsquo;s been 7 months and 5 days since the last newsletter. In the meantime quite a few things have happened!</p>
<ul>
<li>I got to go to St. Louis to speak at Strange Loop</li>
<li>We tried to sell our house and buy another one, then put it all on hold</li>
<li>Clojurists Together has been separating from the SFC into our own 501(c)6 trade association</li>
<li>My wife gave birth to our third baby</li>
<li>A few other personal things which needed a lot of attention</li>
<li>and most recently, the worldwide spread of COVID-19</li>
</ul>
<p>The REPL newsletter and podcast and my open source contributions all had to take a backseat to these other responsibilities.</p>
<p>As I write this, all of New Zealand is in <a href="https://www.rnz.co.nz/news/covid-19/412836/covid-19-three-days-in-lockdown">lockdown</a> to prevent the spread of Coronvairus. I&rsquo;m fortunate to have a job working from home so my days haven&rsquo;t looked a lot different so far. It&rsquo;s not clear yet when New Zealand&rsquo;s borders will be opening up again, so I&rsquo;m glad I got to meet so many of you last year.</p>
<p>Far too much has happened in Clojure in the last seven months, but I&rsquo;ll try and point out some of the key events.</p>
<h2 id="-main">-main</h2>
<ul>
<li>The State of Clojure 2020 results have been <a href="https://clojure.org/news/2020/02/20/state-of-clojure-2020">released</a>. Alex Miller <a href="https://insideclojure.org/2020/02/20/clojure-survey/">wrote up</a> some thoughts on the open feedback section. I hope to finish my write up of this sometime soon.</li>
<li>Since the last newsletter, Clojurists Together <a href="https://www.clojuriststogether.org/news/q4-2019-funding-announcement/">has</a> <a href="https://www.clojuriststogether.org/news/q1-2020-funding-announcement/">funded</a> Expound, Deep Diamond, Oz, Reagent, Ring, Fireplace, and Calva.</li>
<li><a href="https://us19.campaign-archive.com/home/?u=f5dea183eae58baf7428a4425&amp;id=ef5512dc35">Clojure Weekly</a> is a new Clojure newsletter from <a href="https://twitter.com/dotemacs">dotemacs</a>.</li>
<li>Rich Hickey launched a <a href="https://github.com/sponsors/richhickey">GitHub Sponsors profile</a>.</li>
<li>Lambda Island <a href="https://lambdaisland.com/blog/2020-02-03-open-collective-lambda-island-open-source">launched</a> an Open Collective for their open source and community work.</li>
<li><a href="https://jaxenter.com/clojure-alternative-java-169315.html">Clojure: a mature alternative to Java</a> is a good summary of arguments for switching to Clojure.</li>
</ul>
<h2 id="libraries--books">Libraries &amp; Books.</h2>
<ul>
<li>Most (all?) of the Clojure contrib libraries <a href="https://insideclojure.org/2020/02/18/lib-version/">got a bump to 1.0</a> recently to reflect their stability.</li>
<li>James Reeves is working on Ring 2.0 and currently <a href="https://github.com/ring-clojure/ring/issues/393">soliciting feedback</a> on the new <a href="https://github.com/ring-clojure/ring/blob/2.0/doc/adr-spec-2.md">2.0 spec</a>. If you have the time, I&rsquo;d highly recommend reviewing the spec and commenting if you have any questions. We&rsquo;re going to be using Ring 2.0 for the next ten years, so now is the time to talk about it.</li>
<li><a href="https://github.com/weavejester/hashp">Hashp</a> is a neat library with one weird trick for print debugging.</li>
<li>Łukasz Korecki <a href="https://korecki.me/blog/2019/10/8/overthinking-it-and-the-value-of-simple-solutions">wrote about</a> the value of simple solutions, the RFC process at <a href="https://getenjoyhq.com">EnjoyHQ</a>, and the resulting open source libraries <a href="https://github.com/nomnom-insights/nomnom.eternity">eternity</a> and <a href="https://github.com/nomnom-insights/nomnom.lockjaw">lockjaw</a></li>
<li>Red Planet Labs <a href="https://tech.redplanetlabs.com/2020/01/06/serializing-and-deserializing-clojure-fns-with-nippy/">wrote about</a> how they serialize and deserialize functions instances betwen processes(!).</li>
<li><a href="https://github.com/juxt/clip">clip</a> is a new state management library from JUXT. Dominic Monroe also <a href="https://overcast.fm/+TKTiatsIM">discussed it</a> on the JUXT cast.</li>
<li><a href="https://github.com/teknql/systemic">systemic</a> is another new state management solution similar to Component, Mount, and Integrant.</li>
</ul>
<h2 id="foundations">Foundations.</h2>
<ul>
<li><a href="https://medium.com/graalvm/graalvm-19-3-0-dfdb6f4ec8ed">GraalVM 19.3</a> is out with support for Java 11.</li>
</ul>
<h2 id="tools">Tools.</h2>
<ul>
<li>Michiel Borkent has released another great Clojure tool: <a href="https://github.com/borkdude/carve">Carve</a> to remove unused vars from your Clojure program.</li>
<li>Hot off the press is <a href="https://metaredux.com/posts/2020/03/28/nrepl-0-7.html">nREPL 0.7</a></li>
<li>Stuart Sierra wrote about <a href="https://stuartsierra.com/2019/12/21/clojure-start-time-in-2019">Clojure Start Time in 2019</a></li>
<li><a href="https://github.com/clojure/tools.deps.graph">tools.deps.graph</a> shows a graph of your deps.edn dependencies, along with the size of each JAR.</li>
<li>There was a <a href="https://metaredux.com/posts/2019/11/02/state-of-cider.html">state of CIDER</a> survey, and the <a href="https://metaredux.com/posts/2019/12/10/state-of-cider-2019-results.html">results</a> were interesting. Take a read, you might discover some great CIDER features you didn&rsquo;t know about.</li>
<li><a href="https://github.com/day8/lein-git-inject">lein-git-inject</a> is a neat solution for building a version from your git tags.</li>
</ul>
<h2 id="recent-developments">Recent Developments.</h2>
<ul>
<li>Clojure 1.10 introduced changes <a href="https://github.com/lread/clj-graal-docs#clj-1472">which caused issues</a> with GraalVM&rsquo;s <code>native-image</code>. <a href="https://clojure.atlassian.net/browse/CLJ-1472">CLJ-1472</a> tracked the underlying issue (which was first reported in the context of Android). This was recently <a href="https://github.com/clojure/clojure/commit/989a3b98d468e57e489a11e765f256eab90ec417">fixed</a> and is slated for inclusion in an upcoming Clojure 1.10.2 release.</li>
</ul>
<h2 id="misc">Misc.</h2>
<ul>
<li><a href="https://increment.com/teams/the-epistemology-of-software-quality/">The epistemology of software quality</a></li>
</ul>
<p>I&rsquo;m Daniel Compton. I maintain public Maven repositories at <a href="https://clojars.org/">Clojars</a>, private ones at <a href="https://www.deps.co/">Deps</a>, and help fund OSS Clojure projects (along with tons of generous <a href="https://www.clojuriststogether.org/">members</a> like <a href="https://pitch.com/">Pitch</a>, <a href="https://nubank.com.br">Nubank</a>, <a href="https://juxt.pro">JUXT</a>, <a href="https://www.metosin.fi/">Metosin</a>, <a href="http://www.adgoji.com/">Adgoji</a>, and <a href="https://nextjournal.com/">Nextjournal</a>) at <a href="https://www.clojuriststogether.org/">Clojurists Together</a>. If you&rsquo;ve enjoyed reading this, tell your friends to sign up at <a href="https://www.therepl.net/">therepl.net</a>, or post a link in your company chatroom. If you&rsquo;ve seen (or published) a blog post, library, or anything else Clojure/JVM related please reply to this to let me know about it.</p>
<p>If you&rsquo;d like to support the work that I&rsquo;m doing, consider signing up for a trial of <a href="https://www.deps.co">Deps</a>, a private, hosted, Maven Repository service that I run.</p>
<p>Thanks!</p>
]]></content:encoded>
    </item>
    <item>
      <title>92: Reflections</title>
      <link>https://www.therepl.net/92/</link>
      <pubDate>Sat, 24 Aug 2019 19:49:26 +1200</pubDate>
      <guid>https://www.therepl.net/92/</guid>
      <description>Notes. I have to start this newsletter with a correction. Last time, I said that I thought CircleCI was the Clojure company that had raised the most money. I was wrong, Nubank has raised $820 million dollars, and has a valuation over $10 billion dollars. That makes them one of the most highly valued fintech startups. For context Stripe&amp;rsquo;s most recent valuation in 2019 put them at $22.5 billion dollars.</description>
      <content:encoded><![CDATA[<h2 id="notes">Notes.</h2>
<p>I have to start this newsletter with a correction. <a href="https://www.therepl.net/91/">Last time</a>, I said that I thought CircleCI was the Clojure company that had raised the most money. I was wrong, Nubank has <a href="https://techcrunch.com/2019/07/26/fintech-decacorn-nubank-raises-400m-led-by-tcv/">raised</a> $820 million dollars, and has a valuation over $10 billion dollars. That makes them one of the most highly valued fintech startups. For context Stripe&rsquo;s most recent valuation in 2019 put them at $22.5 billion dollars.</p>
<p>Since the last newsletter I&rsquo;ve been to Belgium and back for Heart of Clojure. It was a great event and I&rsquo;m very happy I got to go. I met lots of readers and Clojurists Together members which was a big highlight for me.</p>
<h2 id="-main">-main</h2>
<ul>
<li>The <a href="https://www.youtube.com/playlist?list=PLhYmIiHOMWoEgJEvgkmUe8D0agxy_T2vR">talks</a> from Heart of Clojure have just gone up, including my talk <a href="https://youtu.be/z_q6nVeD_K4?list=PLhYmIiHOMWoEgJEvgkmUe8D0agxy_T2vR">Building Stable Foundations</a></li>
<li>I wrote about why I think <a href="https://danielcompton.net/2019/08/24/heart-of-clojure">Heart of Clojure was so special</a>. See also reflections from <a href="https://lambdaisland.com/blog/2019-08-09-fork-this-conference">Fork This Conference</a>, <a href="http://manuel-uberti.github.io//clojure/2019/08/04/clojure-heart/">The people’s conference</a>, <a href="https://quanttype.net/posts/2019-08-12-hallway-track-conference.html">The hallway track conference</a>, <a href="http://www.saskialindner.com/blog/2019-08-16-community-with-heart/">Community with lots of heart</a>, and <a href="https://mallozup.github.io/posts/heartofclojure/">A courageous conference?</a></li>
<li><a href="https://www.reddit.com/r/Clojure/comments/cufp96/whats_the_state_of_error_messages/">What&rsquo;s the state of error messages?</a></li>
<li><a href="https://mccormick.cx/news/entries/clojurescript-pixel-game-engine-with-blender-live-reloading">ClojureScript Pixel Game Engine With Blender Live-reloading</a></li>
<li><a href="http://www.flyingmachinestudios.com/programming/why-programmers-need-frameworks/">Frameworks and Why (Clojure) Programmers Need Them</a></li>
<li>I <a href="https://www.therepl.net/episodes/28/">talked</a> with Ambrose Bonnaire-Sergeant about his PhD in Typed Clojure.</li>
<li>Clojurists Together is <a href="https://www.clojuriststogether.org/news/q3-2019-funding-announcement/">funding</a> Shadow CLJS with Thomas Heller, Meander with Joel Holdbrooks, Calva with Peter Strömberg, and CIDER with Bozhidar Batsov. This is thanks to the generosity of all of the <a href="https://www.clojuriststogether.org/members/">members</a> of Clojurists Together.</li>
<li><a href="https://circleci.com/blog/ci-cd-meet-cas-continuous-application-security/">How CircleCI processes over 30 million builds per month</a></li>
<li><a href="https://www.clojuriststogether.org/beyond/">Beyond Clojurists Together</a> is a page listing Clojure projects that you can support directly.</li>
</ul>
<h2 id="libraries--books">Libraries &amp; Books.</h2>
<ul>
<li>Metosin continue to push performance boundaries, this time with <a href="https://github.com/metosin/porsas">porsas</a>, an experimental set of tools for doing JDBC queries in idiomatic Clojure but with Java performance.</li>
<li>Erik Norman&rsquo;s new book <a href="https://www.manning.com/books/grokking-simplicity">Grokking Clojure</a> is out in Manning&rsquo;s early access program. You can get a 50% discount with code MLNORMAND.</li>
</ul>
<h2 id="people-are-worried-about-types-httpsdanielcomptonnet20160711people-are-worried-about-types">People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></h2>
<ul>
<li>Functional Works has written a <em>very</em> extensive guide to <a href="https://functional.works-hub.com/learn/a-guide-to-the-clojure-spec-library-606d6">spec</a></li>
<li>Metosin has written about their <a href="https://github.com/metosin/malli#motivation">motivations</a> for Malli, their new data schema tool for Clojure/Script.</li>
</ul>
<h2 id="foundations">Foundations.</h2>
<ul>
<li>&ldquo;Describing all non-copying relocating collectors as &lsquo;Mark Compact&rsquo; is like referring to the bulk of zoology as the study of non-elephant animals.&rdquo; - <a href="https://groups.google.com/forum/#!msg/mechanical-sympathy/Kk0rQij7q8I/1COVmJc_AgAJ">Mechanical Sympathy</a></li>
<li>If you&rsquo;ve been hankering to mix your Rust code with Clojure, <a href="https://github.com/ruestigraben/ruesti-base">Rüstigraben</a> is a work-in-progress to let you run Rust code in GraalVM.</li>
</ul>
<h2 id="tools">Tools.</h2>
<ul>
<li>Speaking on Nubank, they&rsquo;ve open sourced <a href="https://github.com/nubank/workspaces">Workspaces</a>, a devcards-like UI component development library.</li>
<li><a href="https://github.com/Viasat/salt">salt</a> is an experimental tool to convert a subset of Clojure into TLA+ (!)</li>
<li><a href="https://clojureverse.org/t/calva-funding-and-reinforcements-and-more/4712">Calva Funding and Reinforcements and more!</a></li>
<li>clj-kondo now has support for emitting <a href="https://github.com/borkdude/clj-kondo/blob/master/analysis/README.md">analysis data</a></li>
<li>Also from Michiel Borkent, <a href="https://github.com/borkdude/babashka">babashka</a> lets you write a subset of Clojure in shell scripts or other places you need quick startup. <a href="https://github.com/borkdude/sci">sci</a> is the Small Clojure Interpreter that is backing it.</li>
<li><a href="https://github.com/borkdude/jet">jet</a>, again from Michiel Borkent is a CLI tool for transforming between JSON, EDN, and Transit</li>
<li><a href="http://jr0cket.co.uk/2019/08/community-tools-and-templates-for-Clojure-CLI-tools.html">Community Tools and Templates for Clojure CLI Tools</a></li>
<li><a href="http://www.arachnid.co.nz/blog/neanderthalrebl">Setting up</a> Neanderthal with REBL and Cursive from fellow kiwi Nick Jones.</li>
<li>lvh has written <a href="https://github.com/latacora/wernicke">wernicke</a>, a Graal based data redaction tool. This is especially useful for transforming production data into a form safe to use in tests.</li>
</ul>
<h2 id="recent-developments">Recent Developments.</h2>
<ul>
<li><a href="http://insideclojure.org/2019/08/10/journal/">Journal 2019.22 - spec updates, tools.deps</a></li>
</ul>
<h2 id="learning">Learning</h2>
<ul>
<li><a href="http://www.parens-of-the-dead.com">Parens of the Dead</a> is back after a hiatus. These are screencasts building games in Clojure and ClojureScript. You can catch the first three episodes of season 2 on <a href="https://www.twitch.tv/magnars78/videos">Twitch</a>.</li>
<li>A <a href="https://twitter.com/roman01la/status/1162661056147329025">quick summary</a> of how to interop with JS from ClojureScript.</li>
</ul>
<h2 id="misc">Misc.</h2>
<p><a href="https://craigmod.com/essays/fast_software/">Fast Software, the Best Software</a>, and <a href="https://www.hillelwayne.com/post/performance-matters/">Performance Matters</a> are two good reflections on performance.</p>
<p>I&rsquo;m Daniel Compton. I maintain public Maven repositories at <a href="https://clojars.org/">Clojars</a>, private ones at <a href="https://www.deps.co/">Deps</a>, and help fund OSS Clojure projects (along with tons of generous <a href="https://www.clojuriststogether.org/">members</a> like <a href="https://pitch.com/">Pitch</a>, <a href="https://nubank.com.br">Nubank</a>, <a href="https://juxt.pro">JUXT</a>, <a href="https://www.metosin.fi/">Metosin</a>, <a href="http://www.adgoji.com/">Adgoji</a>, and <a href="https://www.fundingcircle.com/">Funding Circle</a>) at <a href="https://www.clojuriststogether.org/">Clojurists Together</a>. If you&rsquo;ve enjoyed reading this, tell your friends to sign up at <a href="https://www.therepl.net/">therepl.net</a>, or post a link in your company chatroom. If you&rsquo;ve seen (or published) a blog post, library, or anything else Clojure/JVM related please reply to this to let me know about it.</p>
<p>If you&rsquo;d like to support the work that I&rsquo;m doing, consider signing up for a trial of <a href="https://www.deps.co">Deps</a>, a private, hosted, Maven Repository service that I run.</p>
<p>Thanks!</p>
]]></content:encoded>
    </item>
    <item>
      <title>91: Off to Belgium</title>
      <link>https://www.therepl.net/91/</link>
      <pubDate>Wed, 31 Jul 2019 17:28:42 +1200</pubDate>
      <guid>https://www.therepl.net/91/</guid>
      <description>Notes. I&amp;rsquo;m writing this in the airport before leaving to go to Heart of Clojure. I&amp;rsquo;m really looking forward to meeting more Clojure people, there&amp;rsquo;s not many of us in New Zealand. I&amp;rsquo;ll be handing out Clojurists Together stickers, so come say hi!
-main ask.clojure.org is a new Q&amp;amp;A site for asking questions about Clojure. It looks like it has a broader scope than questions that would be allowed on StackOverflow, but perhaps has some overlap with Clojureverse.</description>
      <content:encoded><![CDATA[<h2 id="notes">Notes.</h2>
<p>I&rsquo;m writing this in the airport before leaving to go to <a href="https://heartofclojure.eu">Heart of Clojure</a>. I&rsquo;m really looking forward to meeting more Clojure people, there&rsquo;s not many of us in New Zealand. I&rsquo;ll be handing out Clojurists Together stickers, so come say hi!</p>
<h2 id="-main">-main</h2>
<ul>
<li><a href="https://ask.clojure.org">ask.clojure.org</a> is a new Q&amp;A site for asking questions about Clojure. It looks like it has a broader scope than questions that would be allowed on StackOverflow, but perhaps has some overlap with Clojureverse. I&rsquo;m really enjoying seeing the Clojure core team experiment with different ways of communicating and engaging with the community. The <a href="https://clojure.org/news/2019/07/25/clojure-forum">announcement</a> also mentions that this will be the <a href="https://clojure.org/community/ask">new way</a> for starting a problem report for Clojure, triaged issues will then migrate to JIRA.</li>
<li>If you enjoy a good old-fashioned bikeshed, then jump into this discussion about whether we should <a href="https://github.com/bbatsov/clojure-style-guide/issues/182">suffix names of boolean values with a question mark</a>.</li>
<li>The Java Language Summit was on recently, and Ghadi Shayban <a href="https://www.youtube.com/watch?v=UbqNrZMbxBg">spoke</a> there about Clojure and how it interfaces with the JVM.</li>
<li>Jack Rusher <a href="https://futureofcoding.org/episodes/041">talked about</a> <a href="https://www.maria.cloud">maria.cloud</a></li>
<li>Roman Liutikov showed how we can use Project Loom <a href="https://twitter.com/roman01la/status/1153989387211948032?s=20">fibers and continuations</a> in Cloure and <a href="https://mobile.twitter.com/roman01la/status/1155602189311717377">async/await</a> in ClojureScript.</li>
<li>JUXT has released a lot of things recently. If this keeps up I&rsquo;ll need a separate section in this newsletter just for them. A <a href="https://juxt.pro/blog/posts/crux-dev-diary.html">Crux dev diary</a> and new <a href="https://juxt.pro/blog/posts/crux-tutorial-setup.html">Crux tutorials</a> are out. They have also released a <a href="https://juxt.pro/blog/posts/introducing-the-juxt-cast.html">new podcast</a> out, and immediately <a href="https://overcast.fm/+TKTionpDk">touched the third rail</a>, discussing whether a company should mandate a single editor for their developers. If that wasn&rsquo;t enough, they are also putting on another conference: <a href="https://juxt.pro/blog/posts/introducing-xt20.html">XT20</a>.</li>
<li>CircleCI <a href="https://circleci.com/blog/we-raised-a-56m-series-d-what-s-next-for-circleci-customers/">recently announced</a> they raised their series D round, bringing their total investment to $111.5MM. I <em>think</em> this is the most that any Clojure company has raised, Climate Corp raised $107MM.</li>
<li>I <a href="https://www.therepl.net/episodes/27/">talked</a> with Eric Normand about teaching Clojure, and some of his new courses on The REPL podcast.</li>
</ul>
<h2 id="libraries--books">Libraries &amp; Books.</h2>
<ul>
<li>Chris Nuernberger continues his dark magic, this time calling into Python from Clojure with <a href="https://github.com/cnuernber/libpython-clj">libpython-clj</a>. This was discussed on the most recent <a href="https://www.youtube.com/watch?v=ajDiGS73i2o&amp;feature=youtu.be">scicloj meeting</a>.</li>
<li><a href="https://github.com/alanmarazzi/panthera">panthera</a> uses libpython-clj to work with Pandas dataframes from Clojure.</li>
</ul>
<h2 id="foundations">Foundations.</h2>
<ul>
<li><a href="https://jdk.java.net/13/release-notes">JDK 13</a> is in early access, and is scheduled for release in September 17, 2019. A few things I noticed which might affect Clojure users: the Socket API is being <a href="https://openjdk.java.net/jeps/353">reimplemented</a>, and there are some <a href="https://openjdk.java.net/jeps/350">improvements</a> to application class-data-sharing.</li>
<li>Amazon has released <a href="https://aws.amazon.com/blogs/opensource/introducing-amazon-corretto-crypto-provider-accp/">Amazon Corretto Crypto Provider</a> which provides an optimized version of many cryptographic algorithms on the JDK. If you do any cryptography in your Java code (including TLS termination) it seems worth checking out. There are some impressive looking charts on the blog post.</li>
<li>This was a really well written article on the <a href="https://pangin.pro/posts/stack-overflow-handling">stack in Java</a>, how stack overflows are detected, and some recent changes in JDK9 around the stack to make locking code safer.</li>
</ul>
<h2 id="tools">Tools.</h2>
<ul>
<li>Howard Lewis Ship teaches us how to <a href="https://dev.to/hlship/joker-flex-your-scripting-muscles-in-almost-clojure-2ph8">flex our scripting muscles using Joker</a></li>
</ul>
<h2 id="recent-developments">Recent Developments.</h2>
<ul>
<li>Alex Miller <a href="http://insideclojure.org/2019/07/26/journal/">talks more</a> about ask.clojure.org, tools.deps, and spec.</li>
<li>Performance improvements to ClojureScript from Mike Fikes continue to come, this time in <a href="https://github.com/clojure/clojurescript/commit/63cddf1d1cee375e6b3fe0d3c853631731fe15bc">source map creation</a>.</li>
<li><a href="https://clojure.atlassian.net/browse/CLJ-2075">CLJ-2075</a> would add three-arities to a bunch of equality and inequality operators, for a fairly significant speedup.</li>
</ul>
<h2 id="learning">Learning</h2>
<ul>
<li>There are some very deep cuts in this <a href="https://twitter.com/clojuregrams/status/1153319161529012228">Twitter thread</a> about obscure Clojure knowledge. For example: <code>(conj {:a 1} {:b 2}) =&gt; {:a 1, :b 2}</code>.</li>
<li><a href="https://purelyfunctional.tv/mini-guide/json-serialization-api-clojure/">JSON serialization for APIs in Clojure</a></li>
<li>There has been continued <a href="https://github.com/joinr/icfpc2019/blob/opt/README.org">optimisations</a> on Nikita Prokopov&rsquo;s <a href="https://github.com/tonsky/icfpc2019-rust#performance-comparison">Clojure and Rust</a> solutions to a programming competition problem, as well as more <a href="https://twitter.com/ra/status/1153690691760984064">discussions</a>.</li>
</ul>
<h2 id="misc">Misc.</h2>
<p>I&rsquo;m Daniel Compton. I maintain public Maven repositories at <a href="https://clojars.org/">Clojars</a>, private ones at <a href="https://www.deps.co/">Deps</a>, and help fund OSS Clojure projects (along with tons of generous <a href="https://www.clojuriststogether.org/">members</a> like <a href="https://pitch.com/">Pitch</a>, <a href="https://nubank.com.br">Nubank</a>, <a href="https://juxt.pro">JUXT</a>, <a href="https://www.metosin.fi/">Metosin</a>, <a href="http://www.adgoji.com/">Adgoji</a>, and <a href="https://www.fundingcircle.com/">Funding Circle</a>) at <a href="https://www.clojuriststogether.org/">Clojurists Together</a>. If you&rsquo;ve enjoyed reading this, tell your friends to sign up at <a href="https://www.therepl.net/">therepl.net</a>, or post a link in your company chatroom. If you&rsquo;ve seen (or published) a blog post, library, or anything else Clojure/JVM related please reply to this to let me know about it.</p>
<p>If you&rsquo;d like to support the work that I&rsquo;m doing, consider signing up for a trial of <a href="https://www.deps.co">Deps</a>, a private, hosted, Maven Repository service that I run.</p>
<p>Thanks!</p>
]]></content:encoded>
    </item>
    <item>
      <title>90: Tapes, Specters, and a farewell</title>
      <link>https://www.therepl.net/90/</link>
      <pubDate>Thu, 11 Jul 2019 15:45:16 +1200</pubDate>
      <guid>https://www.therepl.net/90/</guid>
      <description>Notes. Falcon (my employer) still has two job openings, a Web Development Engineer (mostly front-end), and a Senior Software Engineer (mostly backend). If you&amp;rsquo;d like to work in an empathetic, inclusive, fast growing team that uses Clojure, please look at applying. We&amp;rsquo;re looking to hire people remotely (or in the Bay Area) who can work with a significant overlap in the Pacific time zone.
If you (or someone you know) haven&#x2019;t done Clojure but are experienced in another language and would like to learn Clojure, we&#x2019;re happy to teach you!</description>
      <content:encoded><![CDATA[<h2 id="notes">Notes.</h2>
<p>Falcon (my employer) still has two job openings, a <a href="https://www.falconproj.com/jobs/2-web-development-engineer/">Web Development Engineer</a> (mostly front-end), and a <a href="https://www.falconproj.com/jobs/3-senior-software-engineer/">Senior Software Engineer</a> (mostly backend). If you&rsquo;d like to work in an empathetic, inclusive, fast growing team that uses Clojure, please look at applying. We&rsquo;re looking to hire people remotely (or in the Bay Area) who can work with a significant overlap in the Pacific time zone.</p>
<p>If you (or someone you know) haven’t done Clojure but are experienced in another language and would like to learn Clojure, we’re happy to teach you!</p>
<h2 id="-main">-main</h2>
<ul>
<li><a href="https://clojure-south.com">Clojure/south</a> is a new Clojure conference in Sao Paul, Brazil. It&rsquo;s hosted by Nubank. Their <a href="https://www.papercall.io/clojure-south">CFP</a> is open until July 21. The <a href="https://clojure-south.com/speakers/">list of speakers</a> already announced looks stellar.</li>
<li>I <a href="https://www.therepl.net/episodes/26/">talked</a> with Nathan Marz about his work at Red Planet Labs, Specter, and continuations.</li>
<li>Clojurists Together is going to be picking projects to fund very soon. If you&rsquo;d like to get paid to work on an open source Clojure project that you maintain, consider <a href="https://www.clojuriststogether.org/open-source/">applying</a>. We also have a <a href="https://www.clojuriststogether.org/news/june-2019-monthly-update/">June update</a> on what&rsquo;s been happening with Fireplace.vim.</li>
<li>This is kind of bananas, Nextjournal are <a href="https://nextjournal.com/kommen/react-server-side-rendering-with-graalvm-for-clojure">using GraalVM</a> to render their Clojure_Script_ app in a GraalJS context. They then serve that rendered HTML from their Clojure app, which is running in the same JVM.</li>
<li>This reflection on <a href="https://ferd.ca/ten-years-of-erlang.html">Ten Years of Erlang</a> isn&rsquo;t directly about Clojure, but I think the Clojure community can learn a lot from it. I really liked the &rsquo;ladder of ideas&rsquo; concept, I&rsquo;d be interested to see a similar ladder for Clojure.</li>
<li>I&rsquo;m going to be speaking at <a href="https://www.therepl.net/newsletters">Strange Loop</a> this year on <a href="https://www.thestrangeloop.com/2019/a-stitch-in-time---the-future-of-oss-sustainability.html">OSS sustainability</a>. If you&rsquo;re thinking of going, you can use code THEREPL for $50 off.</li>
<li>Ben Brinckerhoff on Effect-ive Clojure, managing side effects in Clojure. <a href="https://www.youtube.com/watch?v=IZlt6hH8YiA">YouTube</a>, <a href="https://docs.google.com/presentation/d/1hIb1S_VxvU1fWQ87lGqiwX_NIfxE0ZRFJYsKbiE9uMM/edit#slide=id.p">Slides</a></li>
</ul>
<h2 id="libraries--books">Libraries &amp; Books.</h2>
<ul>
<li>Release 0.5.0 of <a href="https://aiprobook.com/deep-learning-for-programmers/">Deep Learning for Programmers</a> by Dragan Djuric is available now.</li>
<li>test.check <a href="https://github.com/clojure/test.check/blob/master/CHANGELOG.markdown#0100-rc1-2019-06-30">0.10.0-RC1</a> is out now. If you use test.check (and you should), then give it a try to spot any bugs/issues before it gets released.</li>
<li><a href="https://github.com/johnmn3/perc">perc</a> is a Clojure library that adds a lot more features to anonymous functions. Some of the examples look pretty wild, like <code>#%/%(Point. %::x %::nearby/y %:foreign/z)</code>. If my anonymous functions got this complicated, I&rsquo;d probably reach for a standard <code>fn</code> with named and destructured parameters, but this is certainly a very creative use of tagged literals!</li>
<li><a href="https://github.com/mpenet/tape">tape</a> is a library from Max Penet &ldquo;for when Kafka is too much and durable-queue not enough.&rdquo;</li>
</ul>
<h2 id="people-are-worried-about-types-httpsdanielcomptonnet20160711people-are-worried-about-types">People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></h2>
<ul>
<li><a href="http://sulami.github.io/posts/my-thoughts-on-spec/">Thoughts on spec</a></li>
<li>Metosin have released <a href="https://github.com/metosin/malli">malli</a> which is an alternative to both Spec and Schema.</li>
</ul>
<h2 id="tools">Tools.</h2>
<ul>
<li><a href="https://github.com/tonsky/clojure-warrior/releases/tag/0.2.0">clojure-warrior 0.2.0</a>, a VS Code Clojure extension is out.</li>
<li><a href="https://metaredux.com/posts/2019/06/29/farewell-grimoire.html">Farewell, Grimoire</a>. Note that Zachary Kim (ClojureDocs creator) <a href="https://www.reddit.com/r/Clojure/comments/c70cvh/farewell_grimoire/escomp7/">disputes</a> some of Bozhidar&rsquo;s points in the article about ClojureDocs.</li>
<li>A <a href="https://tomekw.com/clojure-deps-edn-a-basic-guide/">basic guide</a> to Clojure + deps.edn.</li>
<li>A guide on <a href="https://metaredux.com/posts/2019/07/10/hard-cider-easy-downgrading.html">downgrading CIDER</a> from the version on MELPA to MELPA Stable. I&rsquo;m quite surprised that there <a href="https://stackoverflow.com/questions/21610968/installing-an-older-version-of-an-emacs-package">still</a> isn&rsquo;t an easy solution for downgrading (or pinning!) Emacs packages to older versions. If I get really stuck, then I will usually restore from a Time Machine backup.</li>
<li>Bozhidar has some more updates on what he&rsquo;s been <a href="https://metaredux.com/posts/2019/07/07/meta-reduce-2019-3-style-guide-docs-updates.html">working on</a>. I&rsquo;m really looking forward to finally meeting at <a href="https://heartofclojure.eu">Heart of Clojure</a> this year.</li>
<li>nREPL now has a <a href="http://metaredux.com/posts/2019/06/21/nrepl-0-7-introducing-a-native-edn-transport.html">native EDN transport</a>. This will be useful for ClojureScript clients that can more easily handle EDN than <a href="https://en.wikipedia.org/wiki/Bencode">bencode</a>, the main nREPL transport format.</li>
</ul>
<h2 id="foundations">Foundations.</h2>
<ul>
<li>Speaking of continuations, they&rsquo;re <a href="https://www.infoq.com/presentations/continuations-java/">coming to Java</a> as part of <a href="https://wiki.openjdk.java.net/display/loom/Main">Loom</a>.</li>
</ul>
<h2 id="learning">Learning.</h2>
<ul>
<li>Nikita Prokopov <a href="https://twitter.com/nikitonsky/status/1148504609213833216">worked on</a> a numerical problem in Clojure and Rust and found the Rust solution was 17x faster. The <a href="https://www.reddit.com/r/Clojure/comments/cb02xs/datascriptrum_author_goodbye_clojure_same_loc_17x/">comments</a> on Reddit are a decent starting point for this, especially Alex Yakushev&rsquo;s comments, or you can read the <a href="https://tonsky.livejournal.com/322450.html">original</a> if you speak Russian.</li>
</ul>
<h2 id="misc">Misc.</h2>
<ul>
<li><a href="https://overreacted.io/name-it-and-they-will-come/">Name It, and They Will Come</a></li>
</ul>
<p>I&rsquo;m Daniel Compton. I maintain public Maven repositories at <a href="https://clojars.org/">Clojars</a>, private ones at <a href="https://www.deps.co/">Deps</a>, and help fund OSS Clojure projects (along with tons of generous <a href="https://www.clojuriststogether.org/">members</a> like <a href="https://pitch.com/">Pitch</a>, <a href="https://nubank.com.br">Nubank</a>, <a href="https://juxt.pro">JUXT</a>, <a href="https://www.metosin.fi/">Metosin</a>, <a href="http://www.adgoji.com/">Adgoji</a>, and <a href="https://www.fundingcircle.com/">Funding Circle</a>) at <a href="https://www.clojuriststogether.org/">Clojurists Together</a>. If you&rsquo;ve enjoyed reading this, tell your friends to sign up at <a href="https://www.therepl.net/">therepl.net</a>, or post a link in your company chatroom. If you&rsquo;ve seen (or published) a blog post, library, or anything else Clojure/JVM related please reply to this to let me know about it.</p>
<p>If you&rsquo;d like to support the work that I&rsquo;m doing, consider signing up for a trial of <a href="https://www.deps.co">Deps</a>, a private, hosted, Maven Repository service that I run.</p>
<p>Thanks!</p>
]]></content:encoded>
    </item>
    <item>
      <title>89: Typed Clojure, type systems, and new Datomic features</title>
      <link>https://www.therepl.net/89/</link>
      <pubDate>Sat, 29 Jun 2019 13:45:00 +1200</pubDate>
      <guid>https://www.therepl.net/89/</guid>
      <description>Notes. Falcon (my employer) still has two job openings, a Web Development Engineer (mostly front-end), and a Senior Software Engineer (mostly backend). If you&amp;rsquo;d like to work in an empathetic, inclusive, fast growing team that uses Clojure, please look at applying. We&amp;rsquo;re looking to hire people remotely (or in the Bay Area) who can work with a significant overlap in the Pacific time zone.
If you (or someone you know) haven&#x2019;t done Clojure but are experienced in another language and would like to learn Clojure, we&#x2019;re happy to teach you!</description>
      <content:encoded><![CDATA[<h2 id="notes">Notes.</h2>
<p>Falcon (my employer) still has two job openings, a <a href="https://www.falconproj.com/jobs/2-web-development-engineer/">Web Development Engineer</a> (mostly front-end), and a <a href="https://www.falconproj.com/jobs/3-senior-software-engineer/">Senior Software Engineer</a> (mostly backend). If you&rsquo;d like to work in an empathetic, inclusive, fast growing team that uses Clojure, please look at applying. We&rsquo;re looking to hire people remotely (or in the Bay Area) who can work with a significant overlap in the Pacific time zone.</p>
<p>If you (or someone you know) haven’t done Clojure but are experienced in another language and would like to learn Clojure, we’re happy to teach you!</p>
<h2 id="-main">-main</h2>
<ul>
<li>I <a href="https://www.therepl.net/episodes/25/">talked with</a> Dragan Djuric about Neanderthal, and his ambitious plans for writing and self-publishing multiple books about deep learning.</li>
<li>The Scicloj organizing team is <a href="https://www.reddit.com/r/Clojure/comments/c5oiew/join_the_scicloj_organizing_team/">looking for</a> new members. Their <a href="https://mobile.twitter.com/scicloj/status/1143555279163969537">next meeting</a> is on July 18 too.</li>
<li>The (unofficial) Clojure Style Guide has a nice new <a href="https://guide.clojure.style">website</a>.</li>
</ul>
<h2 id="libraries--books">Libraries &amp; Books.</h2>
<ul>
<li>A sketch on a new effect for re-frame <a href="https://gist.github.com/mike-thompson-day8/7c2d7e770b7bb6ff9627b08c3903a449"><code>:db-crud</code></a></li>
<li>Mike Fikes <a href="https://twitter.com/mfikes/status/1141423714074091522">has</a> <a href="https://twitter.com/mfikes/status/1140093003652128768">ported</a> Clojure&rsquo;s bean function to <a href="https://github.com/mfikes/cljs-bean">ClojureScript</a>. Why should you care?
<blockquote>
<p>This lets you interoperate with JavaScript objects in an idiomatic fashion, while being <strong>an order of magnitude faster</strong> than equivalent constructs using js-&gt;clj</p>
</blockquote>
</li>
<li>I’m a little late on this, but Sean Corfield has <a href="https://clojureverse.org/t/next-jdbc-1-0-0-the-gold-release/4379">published</a> version 1.0.0 of his new JDBC library <a href="https://github.com/seancorfield/next-jdbc">next.jdbc</a>.</li>
<li>Schema has a new <a href="https://github.com/plumatic/schema/blob/master/CHANGELOG.md#1111-2019-06-12">release</a> 1.1.11 that fixes some bugs.</li>
</ul>
<h2 id="people-are-worried-about-types-httpsdanielcomptonnet20160711people-are-worried-about-types">People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></h2>
<ul>
<li>Ambrose Bonnaire-Sergeant has published his PHD thesis on <a href="https://ambrosebs.com/files/ambrosebs-phd-thesis.pdf">Typed Clojure</a> (PDF). The new work is focused on improving the experience of using Typed Clojure based on industry feedback. I’m looking forward to reading this.</li>
<li>What Tim Baldridge <a href="https://gist.github.com/halgari/f431b2d1094e4ec1e933969969489854">wants from a type system</a>.</li>
<li>Not a Clojure item, but this week Stripe <a href="https://sorbet.org/blog/2019/06/20/open-sourcing-sorbet">open sourced</a> Sorbet, their type checker for Ruby.</li>
</ul>
<h2 id="tools">Tools.</h2>
<ul>
<li>
<p>Brian Marick had a <a href="https://twitter.com/marick/status/1140021311269478405">thread on Twitter</a> about testing frameworks, and some fundamental assumptions that test frameworks make about equality.</p>
</li>
<li>
<p>Workiva has open sourced <a href="https://github.com/Workiva/eva/">eva</a>, a clone (mostly) of Datomic. It sounds like they are not going to be doing a lot of active development on it anymore, and it’s unclear whether they’re using it themselves currently. Very cool nonetheless, and it has great documentation.</p>
</li>
<li>
<p>Speaking of Datomic, there is a new <a href="http://blog.datomic.com/2019/06/tuples-and-database-predicates.html">release</a> which adds a bunch of very useful new data modelling and data validation features.</p>
<p><a href="https://docs.datomic.com/cloud/schema/schema-reference.html#tuples">Tuples</a> solve some thorny data modelling problems that I’ve faced in the past. <a href="https://docs.datomic.com/cloud/schema/schema-reference.html#attribute-predicates">Attribute predicates</a> allow you to validate attributes match particular rules at the database level; previously you had to use transaction functions, or app level code to handle this (I think?). <a href="https://docs.datomic.com/cloud/schema/schema-reference.html#entity-specs">Entity specs</a> let you define validation rules for an entity as whole, e.g. a user has an email address <em>and</em> a password. <a href="https://docs.datomic.com/cloud/query/query-data-reference.html#return-maps">Return maps</a> are a very cool feature that let you get maps back from a datalog query instead of tuples, while also being able to positionally destructure them.</p>
<p>Taken as a whole, these changes significantly improve Datomic’s native data modelling, querying, and data validation capabilities. I expect a lot of Datomic shops are going to be very happy with this update.\</p>
</li>
<li>
<p><a href="https://oli.me.uk/2019-06-28-extending-neovim-with-any-language-mostly-clojure/">Extending Neovim with Clojure</a></p>
</li>
</ul>
<h2 id="learning">Learning</h2>
<ul>
<li>This was a good <a href="https://eccentric-j.com/blog/contributing-to-open-source.html">experience report</a> on a first time contribution to nREPL, with some tips for others looking to start contributing to open source projects.</li>
<li><a href="https://danielsz.github.io/blog/2019-05-08T18_40.html">Ring’s idiosyncracies</a> and the programming model for working with it.</li>
<li>Sean Corfield <a href="https://youtube.com/watch?v=UFY2rd05W2g">demonstrates</a> using REBL to fix a bug in core.memoize.</li>
<li>A <a href="https://github.com/troy-west/apache-kafka-number-stations-clj">project workshop</a> using Clojure and Kafka from the Clojure/Kafka consultancy <a href="https://troywest.com">Troy-West</a> (Disclosure: I’ve worked with the director previously). This looks like a good way to learn Kafka Streams in a self-directed manner (or you could pay the authors to teach it to your company).</li>
</ul>
<h2 id="misc">Misc.</h2>
<p>Now for something completely different, I <a href="https://thereformedbroker.com/2019/06/13/when-everything-that-counts-cant-be-counted/">read</a> and <a href="https://shows.pippa.io/the-compound/episodes/what-if-the-cost-of-capital-never-rises-again-josh-with-ben">listened</a> to a discussion about what happens if the cost of capital never rises again, and what that would mean for businesses and society. I have a tendency to assume that things will revert to the mean, and to the way they are ‘supposed’ to be (see NZ’s housing market bubble). This was a good reminder for me to keep an open mind that sometimes the world fundamentally changes.</p>
<p>I&rsquo;m Daniel Compton. I maintain public Maven repositories at <a href="https://clojars.org/">Clojars</a>, private ones at <a href="https://www.deps.co/">Deps</a>, and help fund OSS Clojure projects (along with tons of generous <a href="https://www.clojuriststogether.org/">members</a> like <a href="https://pitch.com/">Pitch</a>, <a href="https://nubank.com.br">Nubank</a>, <a href="https://juxt.pro">JUXT</a>, <a href="https://www.metosin.fi/">Metosin</a>, <a href="http://www.adgoji.com/">Adgoji</a>, and <a href="https://www.fundingcircle.com/">Funding Circle</a>) at <a href="https://www.clojuriststogether.org/">Clojurists Together</a>. If you&rsquo;ve enjoyed reading this, tell your friends to sign up at <a href="https://www.therepl.net/">therepl.net</a>, or post a link in your company chatroom. If you&rsquo;ve seen (or published) a blog post, library, or anything else Clojure/JVM related please reply to this to let me know about it.</p>
<p>If you&rsquo;d like to support the work that I&rsquo;m doing, consider signing up for a trial of <a href="https://www.deps.co">Deps</a>, a private, hosted, Maven Repository service that I run.</p>
<p>Thanks!</p>
]]></content:encoded>
    </item>
    <item>
      <title>88: Tempting fate, lots of journals, and JIRA!</title>
      <link>https://www.therepl.net/88/</link>
      <pubDate>Sat, 15 Jun 2019 07:37:55 +1200</pubDate>
      <guid>https://www.therepl.net/88/</guid>
      <description>Notes. Since the last newsletter I&amp;rsquo;ve been over to America for work, and back home again. Things have been pretty busy with work, travel, family, e.t.c. but life is finally settling down a little bit. While I was in America I got to see a bunch of Clojure folk in San Francisco, New York, and even Chicago after weather stranded me there overnight. It was really great to meet so many people that I&amp;rsquo;d only interacted with online before, everyone I met was really welcoming and friendly.</description>
      <content:encoded><![CDATA[<h2 id="notes">Notes.</h2>
<p>Since the last newsletter I&rsquo;ve been over to America for work, and back home again. Things have been pretty busy with work, travel, family, e.t.c. but life is finally settling down a little bit. While I was in America I got to see a bunch of Clojure folk in San Francisco, New York, and even Chicago after weather stranded me there overnight. It was really great to meet so many people that I&rsquo;d only interacted with online before, everyone I met was really welcoming and friendly.</p>
<p>Falcon (my employer) has two job openings, a <a href="https://www.falconproj.com/jobs/2-web-development-engineer/">Web Development Engineer</a> (mostly front-end), and a <a href="https://www.falconproj.com/jobs/3-senior-software-engineer/">Senior Software Engineer</a> (mostly backend). If you&rsquo;d like to work in an empathetic, inclusive, fast growing team that uses Clojure, please look at applying. We&rsquo;re looking to hire people remotely (or in the Bay Area) who can work with a significant overlap in the Pacific time zone.</p>
<p>Let me know if you have any questions.</p>
<h2 id="-main">-main</h2>
<ul>
<li>Clojure 1.10.1 was <a href="https://clojure.org/news/2019/06/06/clojure1-10-1">released</a>. It&rsquo;s a pretty small release with a few very targeted fixes. It&rsquo;s great that they were able to get released off-cycle and didn&rsquo;t need to wait for Clojure 1.11. Thanks Alex and everyone else who got it out!</li>
<li>Jacek Schae has a new podcast out about <a href="https://clojurescriptpodcast.com">ClojureScript</a> and he&rsquo;s had a stellar bunch of guests so far.</li>
<li>Bozhidar Batsov <a href="https://metaredux.com/posts/2019/06/10/clojure-heroes.html">talked</a> about Daniel Higginbotham&rsquo;s recent <a href="https://twitter.com/nonrecursive/status/1138095207113744384">tweet</a> about Clojure Heroes. What was most striking to me was how many people I could think of that had contributed greatly to the Clojure community to make it the way it is today.</li>
<li>JUXT have been writing <a href="https://juxt.pro/blog/posts/journal-2019.06.1.html">journal</a> <a href="https://juxt.pro/blog/posts/journal-2019.05.1.html">posts</a> talking about what they&rsquo;ve been up to lately.</li>
<li>Speaking of JUXT, I <a href="https://www.therepl.net/episodes/24/">interviewed</a> Jeremy Taylor and Malcolm Sparks on The REPL podcast about Crux, their new bitemporal database.</li>
<li><a href="https://lambdaisland.com/blog/2019-06-10-goog-log">ClojureScript logging with goog.log</a> from Lambda Island</li>
</ul>
<h2 id="libraries--books">Libraries &amp; Books.</h2>
<ul>
<li>Michiel Borkent helps you tempt fate with <a href="https://github.com/borkdude/finitize">finitize</a>. It&rsquo;s a library that lets you limit and realize possibly infinite sequences.</li>
<li><a href="https://www.getprogrammingwithclojure.com">Get Programming with Clojure</a> is a new Clojure book from Yehonathan Sharvit (creator of Klipse). It&rsquo;s in early access with Manning at the moment.</li>
<li><a href="https://vvvvalvalval.github.io/supdate/">supdate</a> is a new library for transforming nested data structures. It&rsquo;s similar to <a href="https://github.com/nathanmarz/specter">Specter</a>.</li>
</ul>
<h2 id="people-are-worried-about-types-httpsdanielcomptonnet20160711people-are-worried-about-types">People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></h2>
<ul>
<li>Ambrose Bonnaire-Sergeant <a href="https://mobile.twitter.com/ambrosebs/status/1121224592683622400">successfully</a> defended his thesis on Typed Clojure</li>
</ul>
<h2 id="foundations">Foundations.</h2>
<ul>
<li><a href="https://justinblank.com/experiments/howmanytypeparameterscanajavamethodhave.html">How many type parameters can a Java method have?</a></li>
</ul>
<h2 id="tools">Tools.</h2>
<ul>
<li>CIDER has a snazzy new <a href="https://docs.cider.mx/cider/index.html">docs</a> site, Bozhidar talked about the <a href="https://metaredux.com/posts/2019/05/29/cider-mx-reloaded.html">migration process</a>.</li>
<li>He also published an <a href="https://metaredux.com/posts/2019/05/16/meta-reduce-volume-2019-2.html">Meta Reduce, Volume 2019.2</a> with an update on what he&rsquo;s been working on, as well as some tips for CIDER on <a href="https://metaredux.com/posts/2019/05/15/hard-cider-repl-shortcuts.html">REPL shortcuts</a> and <a href="https://metaredux.com/posts/2019/05/11/hard-cider-keeping-your-repl-tidy.html">keeping your REPL tidy</a>.</li>
<li>Datomic Cloud has a <a href="http://blog.datomic.com/2019/05/http-direct-for-datomic-cloud.html">new option</a> for direct HTTP connections to the Datomic VPC. Previously all HTTP connections had to go through a VPC Lambda proxy. This should greatly reduce cold-start times.</li>
</ul>
<h2 id="recent-developments">Recent Developments.</h2>
<ul>
<li>There&rsquo;s a new page on clojure.org about Clojure&rsquo;s <a href="https://clojure.org/dev/dev">development process</a>. It explains the philosophy behind Clojure&rsquo;s development process.</li>
<li>Alex Miller has more journal posts about what he&rsquo;s been working on including a JIRA migration for dev.clojure.org (which must have been a huge amount of work). <a href="http://insideclojure.org/2019/04/28/journal/">17</a> , <a href="http://insideclojure.org/2019/05/08/journal/">18</a>, <a href="http://insideclojure.org/2019/05/18/journal/">19</a>, <a href="http://insideclojure.org/2019/06/07/journal/">20</a>.</li>
<li>I&rsquo;m particularly excited about that the Clojure core team is <a href="http://insideclojure.org/2019/06/07/journal/#jira-migration">talking about</a> having a separate way to create enhancement requests similar to PEP&rsquo;s.</li>
</ul>
<h2 id="learning">Learning</h2>
<ul>
<li><a href="https://betweentwoparens.com/deoploy-clojurescript-to-github-pages">Deploying ClojureScript to GitHub Pages</a>. This is from a new site called Between Two Parens; I&rsquo;m jealous I didn&rsquo;t think of that name first.</li>
<li>Cognitect has a (slightly old by now) blog post talking about <a href="http://blog.cognitect.com/blog/clojure-event-support">the future</a> of the conferences that they put on. They are going to be continue running Clojure/conj, but are discontinuing Clojure/west and EuroClojure. They are also going to be giving more support to community run Clojure conferences, which is awesome.</li>
<li>Building a <a href="https://www.youtube.com/watch?v=Ed7DjWuQdi8">ClojureScript wrapper for React with Hooks</a></li>
<li>Andy Chambers from Funding Circle has a blog post on the Confluent blog about <a href="https://www.confluent.io/blog/testing-event-driven-systems">Testing Event-Driven Systems</a> using Clojure</li>
</ul>
<h2 id="misc">Misc.</h2>
<p>I&rsquo;m Daniel Compton. I maintain public Maven repositories at <a href="https://clojars.org/">Clojars</a>, private ones at <a href="https://www.deps.co/">Deps</a>, and help fund OSS Clojure projects (along with tons of generous <a href="https://www.clojuriststogether.org/">members</a> like <a href="https://pitch.com/">Pitch</a>, <a href="https://juxt.pro">JUXT</a>, <a href="https://www.metosin.fi/">Metosin</a>, <a href="http://www.adgoji.com/">Adgoji</a>, and <a href="https://www.fundingcircle.com/">Funding Circle</a>) at <a href="https://www.clojuriststogether.org/">Clojurists Together</a>. If you&rsquo;ve enjoyed reading this, tell your friends to sign up at <a href="https://www.therepl.net/">therepl.net</a>, or post a link in your company chatroom. If you&rsquo;ve seen (or published) a blog post, library, or anything else Clojure/JVM related please reply to this to let me know about it.</p>
<p>If you&rsquo;d like to support the work that I&rsquo;m doing, consider signing up for a trial of <a href="https://www.deps.co">Deps</a>, a private, hosted, Maven Repository service that I run.</p>
<p>Thanks!</p>
]]></content:encoded>
    </item>
    <item>
      <title>87: Getting to the Crux of the matter</title>
      <link>https://www.therepl.net/87/</link>
      <pubDate>Thu, 25 Apr 2019 06:51:49 +1200</pubDate>
      <guid>https://www.therepl.net/87/</guid>
      <description>Notes. The Falcon Project (my new employer) is looking for a web development engineer with a strong frontend emphasis. We&amp;rsquo;re looking to hire remote in the US/Pacific timezone (and close by is possible too). One of our core focuses is communicating privacy issues to consumers in a way that lets them make informed choices. A key part of that is to get a diverse set of perspectives as we&amp;rsquo;re building the product.</description>
      <content:encoded><![CDATA[<h2 id="notes">Notes.</h2>
<p><strong><a href="https://www.falconproj.com">The Falcon Project</a> (my new employer) is looking for a <a href="https://www.falconproj.com/jobs/2-web-development-engineer/">web development engineer</a> with a strong frontend emphasis.</strong> We&rsquo;re looking to hire remote in the US/Pacific timezone (and close by is possible too). One of our core focuses is communicating privacy issues to consumers in a way that lets them make informed choices. A key part of that is to get a diverse set of perspectives as we&rsquo;re building the product. I&rsquo;m personally really excited about the project and the potential that it has for good.</p>
<p>If you&rsquo;re interested, you can apply at the link above, or reply to this email if you have any questions about the role.</p>
<h2 id="-main">-main</h2>
<ul>
<li>
<p>Bozhidar has written about <a href="https://metaredux.com/posts/2019/04/23/the-curious-case-of-clojure-contrib.html">The Curious case of Clojure Contrib</a>, with his perspective on Clojure Contrib. Alex Miller then wrote a response: <a href="http://insideclojure.org/2019/04/23/contrib/">The Completely Ordinary Case of Clojure Contrib</a>. The <a href="https://www.reddit.com/r/Clojure/comments/bgqrvx/the_completely_ordinary_case_of_clojure_contrib/">comments</a> on Reddit also had some good follow-up.</p>
</li>
<li>
<p>Those two posts were responding to this <a href="https://github.com/clojure/clojure-site/issues/348">discussion</a> around a new doc for clojure.org on <a href="https://clojure.org/community/contrib_libs">Contrib libraries</a></p>
</li>
<li>
<p>I talked with <a href="https://www.therepl.net/episodes/23/">Zach Tellman</a> on The REPL about <a href="https://elementsofclojure.com">Elements of Clojure</a>, his work in the Clojure community, the Clojure contribution process, and what&rsquo;s next for him. I was glad to be able to talk to Zach, though it was a little bittersweet as he&rsquo;s going to be less involved with Clojure in his new work at Microsoft. Alex Miller also made a comment in response on <a href="https://www.reddit.com/r/Clojure/comments/bewj18/the_repl_23_elements_of_clojure_with_zach_tellman/ela4zun/">Reddit</a> to some of the things we discussed.</p>
<p>If I was to re-record the podcast, I would clarify this comment which understated recent changes:</p>
<blockquote>
<p>It doesn&rsquo;t seem clear to me that any course corrections [to the way Clojure is developed] are coming either, that there&rsquo;s going to be any difference, although I should point out Alex Miller&rsquo;s <a href="http://insideclojure.org/archive/">weekly roundup</a> of what he&rsquo;s been working on with Clojure &hellip; I wouldn&rsquo;t say nothing has changed</p>
</blockquote>
<p>We&rsquo;re definitely seeing greater clarity on things like Contrib, more of an insight into Clojure&rsquo;s development process via Alex&rsquo;s Inside Clojure blog, and are <a href="https://github.com/clojure/clojure-site/issues/327">in the process</a> of documenting more clearly the expectations of contributing to Clojure itself.</p>
</li>
<li>
<p>Tickets to <a href="https://heartofclojure.eu">Heart of Clojure</a> are now available. This is shaping up to be a really cool event. I was also pleased to see Saskia Lindner and Bozhidar Batsov will be <a href="https://heartofclojure.eu/#support">hosting</a> it. I&rsquo;d also note a stellar array of companies that are <a href="https://heartofclojure.eu/#sponsors">sponsoring</a> Heart of Clojure. If you appreciate them sponsoring a community conference like this, consider contacting a couple of them to voice your appreciation.</p>
</li>
<li>
<p>Dutch Clojure Days videos are <a href="https://www.youtube.com/playlist?list=PLjzcwcP9P2Lfcz38lDtMF_XupRnecKokz">up now</a>. There were also a few recaps of the event <a href="https://medium.com/@jmglov/thoughts-on-dutch-clojure-days-2019-56f70d12cefc">from</a> <a href="https://spikes.siili.com/2019/04/16/siili-at-dutch-clojure-days/">different</a> <a href="https://metaredux.com/posts/2019/04/21/meta-reduce-volume-2019-1.html">participants</a>. They were a good read if like me, you couldn&rsquo;t make it in person.</p>
</li>
<li>
<p><a href="https://clojurenorth.com">Clojure/north</a> was last weekend. The videos aren&rsquo;t up yet, but the <a href="https://clojurenorth.com/jon-pither.html">keynote</a> was from Jon Pither of JUXT, talking about <a href="https://juxt.pro/crux/index.html">Crux</a>. Crux is a new bi-temporal database that lets you query against a valid time a.k.a business time, as well as the transaction time. They have a blog post  <a href="https://juxt.pro/blog/posts/a-bitemporal-tale.html">talking more</a> about bitemporality and showing how to use Crux. Disclosure: I was part of a private preview of Crux before it was released publicly.</p>
</li>
<li>
<p>Vouch is a &ldquo;breakthrough blockchain-based identity and intelligence platform&rdquo;. I don&rsquo;t fully understand what that means, but they&rsquo;ve got a stellar <a href="https://vouch.io/about.html#about-team">team</a> of Clojurists on board including Ray McDermott, Mike Fikes, and David Nolen and are <a href="https://vouch.io/posts/betting-the-company-on-clojurescript.html">betting on ClojureScript</a> heavily.</p>
</li>
</ul>
<h2 id="libraries--books">Libraries &amp; Books.</h2>
<ul>
<li><a href="https://github.com/28/defns">defns</a> is a library from Дејан Јосифовић, a reader of The REPL. It lets you define functions with inline spec definitions, and use the specs to create pre/post conditions on the function.</li>
<li>Sean Corfield continues to push forward with <a href="http://corfield.org/blog/2019/04/21/next-jdbc/">next.jdbc</a>. If you&rsquo;re a heavy user of clojure.java.jdbc, or write a library that uses it, now is the time to give your feedback on the API.</li>
<li>Of note to Transit users was this <a href="https://github.com/cognitect/transit-format/commit/9466eab97ba6a876757d901a9d340abc247b8716#diff-04c6e90faac2675aa89e2176d2eec7d8">change</a> softening the warnings about persisting Transit.</li>
<li>TechAscent continues to <a href="https://groups.google.com/d/msg/clojure/zNpudG57eNw/qOZG14ayBgAJ">put out</a> high quality libraries in the data science space. In February they announced tech.ml.dataset and tech.ml, but I only got to them recently.</li>
<li>Jacek Schae has <a href="https://medium.freecodecamp.org/a-realworld-comparison-of-front-end-frameworks-with-benchmarks-2019-update-4be0d3c78075?gi=22394c398660">updated</a> his comparison and benchmarks of a bunch of different front-end JS frameworks.</li>
</ul>
<h2 id="foundations">Foundations.</h2>
<ul>
<li>There was a great <a href="https://groups.google.com/forum/#!topic/mechanical-sympathy/yL4Yaedgqg4">discussion</a> at the Mechanical Sympathy mailing list about triggering page faults in one thread ahead of the writing thread. Highly technical, and highly enjoyable.</li>
<li>Hannah Henderson wrote a widely shared <a href="https://circleci.com/blog/micro-promotions-and-mentorship-the-big-impact-of-small-actions-in-an-engineering-culture/">post</a> on her experience of micro-promotions and mentorship at CircleCI.</li>
</ul>
<h2 id="tools">Tools.</h2>
<ul>
<li><a href="https://gitlab.com/eval/ohmyclj/tree/master#ohmyclj">ohmyclj</a> is a Clojure script running tool.</li>
<li>The Clojurians Slack Log is not working at the moment, but <a href="https://www.exoscale.com">Exoscale</a> has <a href="https://clojureverse.org/t/clojurians-log-working-on-a-relaunch-cloud-sponsor-exoscale/4158">sponsored</a> credits to help it run, and there are some new people coming on board to help run it too.</li>
<li>Light Table has some <a href="http://lighttable.com/2019/03/31/New-year-old-plans/">new maintainers</a>, and is working on upgrading from old versions of Electron and ClojureScript.</li>
<li>Bozhidar has an <a href="http://metaredux.com/posts/2019/04/21/meta-reduce-volume-2019-1.html">update</a> on what he&rsquo;s been working on recently.</li>
</ul>
<h2 id="recent-developments">Recent Developments.</h2>
<ul>
<li>Alex Miller <a href="http://insideclojure.org/2019/04/19/journal/">talked</a> more about how closed spec checking will work, and Clojure 1.10.1.</li>
<li>The Defn podcast <a href="http://vijaykiran.com/2019/04/defn-48-david-miller/">talked</a> with David Miller, the maintainer of Clojure CLR.</li>
</ul>
<h2 id="learning">Learning</h2>
<ul>
<li><a href="https://gist.github.com/pjstadig/c27366b1cba7a820d07ffdc957fc86c0">Learn about</a> the secret fourth arity in the map transducer + <a href="https://www.reddit.com/r/Clojure/comments/beogpw/something_i_learned_recently_about_transducers/">Reddit</a>. Reading this felt a little like stumbling into a secret area in a video game.</li>
</ul>
<h2 id="misc">Misc.</h2>
<blockquote>
<p>Around the year 2030, 10 years 252 days and 10 hours away from now, <strong>we will be in a position where we set off an irreversible chain reaction beyond human control, that will most likely lead to the end of our civilisation as we know it.</strong> That is unless in that time, permanent and unprecedented changes in all aspects of society have taken place, including a reduction of CO2 emissions by at least 50%.</p>
</blockquote>
<p><a href="https://www.theguardian.com/environment/2019/apr/23/greta-thunberg-full-speech-to-mps-you-did-not-act-in-time">&ldquo;You did not act in time&rdquo;</a> - Greta Thunberg</p>
<hr>
<p>I&rsquo;m Daniel Compton. I maintain public Maven repositories at <a href="https://clojars.org/">Clojars</a>, private ones at <a href="https://www.deps.co/">Deps</a>, and help fund OSS Clojure projects (along with tons of generous <a href="https://www.clojuriststogether.org/">members</a> like <a href="https://pitch.com/">Pitch</a>, <a href="https://juxt.pro">JUXT</a>, <a href="https://www.metosin.fi/">Metosin</a>, <a href="http://www.adgoji.com/">Adgoji</a>, and <a href="https://www.fundingcircle.com/">Funding Circle</a>) at <a href="https://www.clojuriststogether.org/">Clojurists Together</a>. If you&rsquo;ve enjoyed reading this, tell your friends to sign up at <a href="https://www.therepl.net/">therepl.net</a>, or post a link in your company chatroom. If you&rsquo;ve seen (or published) a blog post, library, or anything else Clojure/JVM related please reply to this to let me know about it.</p>
<p>If you&rsquo;d like to support the work that I&rsquo;m doing, consider signing up for a trial of <a href="https://www.deps.co">Deps</a>, a private, hosted, Maven Repository service that I run.</p>
<p>Thanks!</p>
]]></content:encoded>
    </item>
    <item>
      <title>86: Lots to cover</title>
      <link>https://www.therepl.net/86/</link>
      <pubDate>Mon, 15 Apr 2019 21:30:13 +1300</pubDate>
      <guid>https://www.therepl.net/86/</guid>
      <description>Notes. The last few weeks/months have been pretty busy for me. I&amp;rsquo;ve started a new job, released some libraries and I&amp;rsquo;m going to the USA for work in a few weeks!
I&amp;rsquo;ll be in San Francisco from 5th-11th May, and in New York 12th-17th May. If you&amp;rsquo;re going to be in either of those places at the same time and would like to meet up, reply to this email and we can try and arrange a time.</description>
      <content:encoded><![CDATA[<h2 id="notes">Notes.</h2>
<p>The last few weeks/months have been pretty busy for me. I&rsquo;ve started a new job, released some libraries and I&rsquo;m going to the USA for work in a few weeks!</p>
<p>I&rsquo;ll be in San Francisco from 5th-11th May, and in New York 12th-17th May. If you&rsquo;re going to be in either of those places at the same time and would like to meet up, reply to this email and we can try and arrange a time.</p>
<p>I&rsquo;m looking to hire a part-time contractor to do some work on Deps. If you&rsquo;re a reader of this newsletter, you&rsquo;re clearly have fine taste and are very talented, so please <a href="https://gist.github.com/danielcompton/7913930d7422ab949123cba5310ca435">take a look</a> if you&rsquo;re in the market for flexible, part-time Clojure work.</p>
<p>Lastly, a reader was kind enough to send me an Easter card a few weeks ago. I couldn&rsquo;t make out their name on the postcard, but thanks to the sender!</p>
<h2 id="-main">-main</h2>
<ul>
<li>Dragan Djuric has been on a streak with writing his Deep Learning in Clojure from Scratch, <a href="https://dragan.rocks/articles/19/Deep-Learning-in-Clojure-From-Scratch-to-GPU-0-Why-Bother">part 0</a>, <a href="https://dragan.rocks/articles/19/Deep-Learning-in-Clojure-From-Scratch-to-GPU-1-Representing-Layers-and-Connections">part 1</a>, <a href="https://dragan.rocks/articles/19/Deep-Learning-in-Clojure-From-Scratch-to-GPU-2-Bias-and-Activation-Function">part 2</a>, and so many more parts that you should just go to part 0 for the index of all of the things he&rsquo;s written.</li>
<li>What&rsquo;s the point of Clojure? - <a href="https://medium.com/magnetcoop/so-whats-the-point-of-clojure-a-business-approach-1f16ea1f03c6">a business approach</a> from Magnet.</li>
<li><a href="https://twitter.com/scicloj">@scicloj</a> has an <a href="https://twitter.com/scicloj/status/1114978949380083712">online gathering</a> very soon (&lt; 24 hours from now) talking about Clojure and data science.</li>
<li>JUXT have a <a href="https://juxt.pro/crux/index.html">teaser page</a> up for CRUX, their new bitemporal graph database. The bitemporal part is key here, it lets you separate transaction time (when you recorded it) from domain time (when the event happened). Often when you start an application these are the same thing. However, as you merge data from more sources, or backfill prior data, only having a transaction time can be cumbersome.</li>
<li><a href="http://replete-repl.org">Replete</a> is now available on iOS and Android.</li>
<li><a href="https://github.com/borkdude/clj-kondo">clj-kondo</a> is a new linter from Michiel Borkent that sparks joy. One especially neat thing is the <a href="https://cljdoc.org/d/clj-kondo/clj-kondo/2019.04.07-alpha/doc/editor-integration#intellij-idea">IntelliJ integration</a>, I think this is the first linter I&rsquo;ve seen that has integration with IntelliJ.</li>
</ul>
<h2 id="audio">Audio</h2>
<p>I realised I hadn&rsquo;t mentioned any of my podcast guests for the last few newsletters, so here they all are at once:</p>
<ul>
<li>Clojure at Apple <a href="https://www.therepl.net/episodes/15/">with David Taylor</a></li>
<li>Monorepos and monologues <a href="https://www.therepl.net/episodes/16/">with Alex Engelberg</a></li>
<li><a href="https://www.therepl.net/episodes/17/">Editing</a> and <a href="https://www.therepl.net/episodes/19/">Formatting</a> Clojure code with Shaun Lebron</li>
<li>Testing Clojure and ClojureScript <a href="https://www.therepl.net/episodes/18/">with Arne Brasseur</a></li>
<li>Clojure MXNet <a href="https://www.therepl.net/episodes/20/">with Carin Meier</a></li>
<li>Looking at Clojure with a business mindset <a href="https://www.therepl.net/episodes/21/">with Jonathan Boston</a></li>
<li>Cursive IDE <a href="https://www.therepl.net/episodes/22/">with Colin Fleming</a></li>
</ul>
<h2 id="libraries--books">Libraries &amp; Books.</h2>
<ul>
<li>I put out <a href="https://github.com/Day8/re-frame-10x/releases/tag/0.4.0">re-frame-10x</a> with some new features, especially subscription pinning and searching thanks to Shen Tian.</li>
<li><a href="https://github.com/metosin/tilakone">tilakone</a> is an FSM library from the fine folks at Metosin.</li>
</ul>
<h2 id="people-are-worried-about-types-httpsdanielcomptonnet20160711people-are-worried-about-types">People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></h2>
<ul>
<li>I released <a href="https://github.com/danielcompton/defn-spec">defn-spec</a>, a library for defining <code>fdef</code>&rsquo;s inline with your Clojure functions, and I guess this kinda qualifies as me worrying about types too. I also wrote a bit about my <a href="https://danielcompton.net/2019/03/31/announcing-defn-spec">motivations</a> for building the library.</li>
<li><a href="https://blog.klipse.tech/clojure/2019/03/08/spec-custom-defn.html">How to parse</a> custom defn macros with clojure.spec</li>
<li><a href="https://github.com/clojure/spec-alpha2/wiki/Schema-and-select">Schema and select</a> in spec-alpha2</li>
</ul>
<h2 id="foundations">Foundations.</h2>
<ul>
<li>Depending on your OpenJDK distribution, Java&rsquo;s SecureRandom <a href="https://darakian.github.io/2019/02/17/on-java-securerandom.html">may use</a> <code>/dev/random</code> (blocking) instead of <code>/dev/urandom</code> (non-blocking, and the <a href="https://sockpuppet.org/blog/2014/02/25/safely-generate-random-numbers/">correct device to use</a>).</li>
</ul>
<h2 id="tools">Tools.</h2>
<ul>
<li><a href="https://github.com/mauricioszabo/atom-chlorine">Chlorine</a> is a Clojure plugin for Atom</li>
<li>Thomas Heller on <a href="https://code.thheller.com/blog/shadow-cljs/2019/03/01/what-shadow-cljs-is-and-isnt.html">What shadow-cljs is and isn&rsquo;t</a>. This doubles as a good overview on how the ClojureScript compiler works.</li>
<li>Thomas Heller again on <a href="https://code.thheller.com/blog/shadow-cljs/2019/03/03/code-splitting-clojurescript.html">Code-Splitting ClojureScript</a></li>
<li>Thomas Heller once more for the trifecta, this time with his <a href="https://www.patreon.com/thheller">Patreon</a></li>
<li><a href="https://dev.solita.fi/2019/03/11/code-quality-inspection-for-clojure-with-sonarqube.html#.XIhPlGQO_GA.twitter">How to run</a> Clojure code quality tools with Sonarqube</li>
<li><a href="https://alphapapa.github.io/emacs-package-dev-handbook/">The Emacs Package Developer&rsquo;s Handbook</a></li>
<li><a href="https://metaredux.com/posts/2019/03/29/nrepl-0-6.html">nREPL 0.6</a> is out</li>
</ul>
<h2 id="recent-developments">Recent Developments.</h2>
<p>I&rsquo;ve been enjoying all of Alex&rsquo;s Inside Clojure post&rsquo;s, but espeically interesting was the one on <a href="http://insideclojure.org/2019/03/16/journal/">spec/select</a>. I&rsquo;m also very excited to see that <a href="http://insideclojure.org/2019/04/14/journal/">closed schemas</a> may be on the cards!</p>
<h2 id="misc">Misc.</h2>
<p>I really enjoyed this post on <a href="https://apenwarr.ca/log/20190216">building a robust log collection pipeline</a> for Google Fiber&rsquo;s monitoring of client router&rsquo;s (not their content though) at customer&rsquo;s houses.</p>
<hr>
<p>I&rsquo;m Daniel Compton. I maintain public Maven repositories at <a href="https://clojars.org/">Clojars</a>, private ones at <a href="https://www.deps.co/">Deps</a>, and help fund OSS Clojure projects (along with tons of generous <a href="https://www.clojuriststogether.org/">members</a> like <a href="https://pitch.com/">Pitch</a>, <a href="https://juxt.pro">JUXT</a>, <a href="https://www.metosin.fi/">Metosin</a>, <a href="http://www.adgoji.com/">Adgoji</a>, and <a href="https://www.fundingcircle.com/">Funding Circle</a>) at <a href="https://www.clojuriststogether.org/">Clojurists Together</a>. If you&rsquo;ve enjoyed reading this, tell your friends to sign up at <a href="https://www.therepl.net/">therepl.net</a>, or post a link in your company chatroom. If you&rsquo;ve seen (or published) a blog post, library, or anything else Clojure/JVM related please reply to this to let me know about it.</p>
<p>If you&rsquo;d like to support the work that I&rsquo;m doing, consider signing up for a trial of <a href="https://www.deps.co">Deps</a>, a private, hosted, Maven Repository service that I run.</p>
<p>Thanks!</p>
]]></content:encoded>
    </item>
    <item>
      <title>85: Surveying the landscape</title>
      <link>https://www.therepl.net/85/</link>
      <pubDate>Thu, 21 Feb 2019 21:41:42 +1300</pubDate>
      <guid>https://www.therepl.net/85/</guid>
      <description>-main If you haven&amp;rsquo;t read Bozhidar&amp;rsquo;s post on the future of CIDER I&amp;rsquo;d urge you to do so.
I really think the work I&#x2019;ve done (not to mention the great work others have done) is worth a bit more than this, and I hope that people are going to realize this before I decide to throw in the towel and call it quits.
If you use CIDER in your day job, think about supporting the Open Collective, either individually, or through your company.</description>
      <content:encoded><![CDATA[<h2 id="-main">-main</h2>
<ul>
<li>
<p>If you haven&rsquo;t read Bozhidar&rsquo;s post on <a href="https://metaredux.com/posts/2019/01/14/ciders-orchard-the-future.html">the future of CIDER</a> I&rsquo;d urge you to do so.</p>
<blockquote>
<p>I really think the work I’ve done (not to mention the great work others have done) is worth a bit more than this, and I hope that people are going to realize this before I decide to throw in the towel and call it quits.</p>
</blockquote>
<p>If you use CIDER in your day job, think about supporting the <a href="https://opencollective.com/cider">Open Collective</a>, either individually, or through your company. Since he wrote the post, annual donations have gone from $4k/year to $7k/year. Based on the most recent survey results, 46% of respondents use CIDER, so there is a lot of opportunity for us to grow that number. A few dollars each month is a small price to pay to ensure that CIDER continues to grow and be maintained.</p>
</li>
<li>
<p>The Clojure survey results are <a href="https://clojure.org/news/2019/02/04/state-of-clojure-2019">out</a>. I <a href="https://danielcompton.net/2019/02/06/clojure-survey-2019">analysed</a> the free-form comments, and Alex Miller had a good <a href="http://insideclojure.org/2019/02/07/survey-comments/">follow-up</a> on the comments.</p>
</li>
<li>
<p><a href="http://corfield.org/blog/2019/02/11/clojurians-slack-alternatives/">Alternatives</a> to Clojurians Slack.</p>
</li>
<li>
<p>Clojurists Together is funding <a href="https://www.clojuriststogether.org/news/q1-2019-funding-announcement/">Aleph and Neanderthal</a> for the next three months.</p>
</li>
<li>
<p><a href="https://dragan.rocks/articles/19/Deep-Learning-in-Clojure-From-Scratch-to-GPU-0-Why-Bother">Deep Learning in Clojure from Scratch to GPU - Part 0 - Why Bother?</a></p>
</li>
</ul>
<h2 id="libraries--books">Libraries &amp; Books.</h2>
<ul>
<li><a href="https://github.com/AppsFlyer/aerospike-clj">aerospike-clj</a> is a new Clojure client for the Aerospike database</li>
<li>Sean Corfield has been doing <a href="https://clojureverse.org/t/next-jdbc-early-notes/3480">some work</a> on a new JDBC library.</li>
<li>Datascript has a new <a href="https://github.com/tonsky/datascript/releases/tag/0.18.0">release</a> out with <a href="https://mobile.twitter.com/nikitonsky/status/1095392075414155266">significant performance improvements</a>. Some of this work was funded by Clojurists Together.</li>
<li><a href="https://github.com/appliedsciencestudio/js-interop">js-interop</a> looks like a really nice CLJS library for interoperating with JS objects. Be sure to read the motivation section to see how it compares to your other options.</li>
</ul>
<h2 id="foundations">Foundations.</h2>
<ul>
<li><a href="http://mail.openjdk.java.net/pipermail/amber-spec-experts/2019-January/000945.html">We need more</a> (Java) keywords, captain!</li>
<li><a href="https://shipilev.net/jvm/diy-gc/">DIY Garbage Collector</a></li>
</ul>
<h2 id="tools">Tools.</h2>
<ul>
<li>Bozhidar has written a bunch of other posts lately. <a href="https://metaredux.com/posts/2019/01/01/happy-new-cider.html">Happy New CIDER</a>, <a href="http://metaredux.com/posts/2019/01/12/nrepl-beyond-clojure.html">nREPL: Beyond Clojure</a>, <a href="http://metaredux.com/posts/2019/01/15/cider-oslo.html">CIDER 0.20 (Oslo)</a>, and
<a href="http://metaredux.com/posts/2019/01/15/clojure-style-guide-redux.html">The Clojure Style Guide Redux</a>.</li>
<li>Leiningen 2.9.0 is <a href="https://github.com/technomancy/leiningen/releases/tag/2.9.0">out</a></li>
<li>Writing <a href="https://www.martinklepsch.org/posts/writing-awesome-docstrings.html">awesome</a> docstrings.</li>
<li>The <a href="https://medium.com/degree9/boot-future-boot-e1948562d8d3">future</a> of Boot looks good.</li>
</ul>
<h2 id="recent-developments">Recent Developments.</h2>
<ul>
<li>Alex Miller has some updates on what he&rsquo;s been working on: <a href="http://insideclojure.org/2019/01/11/journal/">survey, spec</a>, <a href="http://insideclojure.org/2019/01/18/journal/">spec, clojure.main errors</a>, <a href="http://insideclojure.org/2019/01/28/journal/">spec, surveys</a>, <a href="http://insideclojure.org/2019/02/02/journal/">spec</a>, <a href="http://insideclojure.org/2019/02/10/journal/">spec</a>, <a href="http://insideclojure.org/2019/02/16/journal/">jdk regression, spec, sets, tools.deps</a>.</li>
<li><a href="https://dev.clojure.org/jira/browse/CLJ-2484">CLJ-2484</a> has more details on the JDK performance regression.</li>
<li>ClojureScript 1.10.516 is <a href="https://clojurescript.org/news/2019-01-31-release">out</a> with a bunch of improvements, including better type inference, better performance, and porting Clojure 1.10&rsquo;s error messages.</li>
</ul>
<h2 id="misc">Misc.</h2>
<ul>
<li><a href="https://en.m.wikipedia.org/wiki/Time_formatting_and_storage_bugs">Time Formatting and Storage Bugs</a> ordered by year. Luckily, after 2019 we don&rsquo;t have any serious classes of bugs coming until 2036.</li>
</ul>
<p>I&rsquo;m Daniel Compton. I maintain public Maven repositories at <a href="https://clojars.org/">Clojars</a>, private ones at <a href="https://www.deps.co/">Deps</a>, and help fund OSS Clojure projects (along with tons of generous <a href="https://www.clojuriststogether.org/">members</a> like <a href="https://pitch.com/">Pitch</a>, <a href="https://juxt.pro">JUXT</a>, <a href="https://www.metosin.fi/">Metosin</a>, <a href="http://www.adgoji.com/">Adgoji</a>, and <a href="https://www.fundingcircle.com/">Funding Circle</a>) at <a href="https://www.clojuriststogether.org/">Clojurists Together</a>. If you&rsquo;ve enjoyed reading this, tell your friends to sign up at <a href="https://www.therepl.net/">therepl.net</a>, or post a link in your company chatroom. If you&rsquo;ve seen (or published) a blog post, library, or anything else Clojure/JVM related please reply to this to let me know about it.</p>
<p>If you&rsquo;d like to support the work that I&rsquo;m doing, consider signing up for a trial of <a href="https://www.deps.co">Deps</a>, a private, hosted, Maven Repository service that I run.</p>
<p>Thanks!</p>
]]></content:encoded>
    </item>
    <item>
      <title>84: surveys, back buttons, and herbs</title>
      <link>https://www.therepl.net/84/</link>
      <pubDate>Wed, 09 Jan 2019 08:11:06 +1300</pubDate>
      <guid>https://www.therepl.net/84/</guid>
      <description>Notes. I&amp;rsquo;ve been on holiday the last few weeks at the beach. It&amp;rsquo;s been nice to feel the sand between my toes and see my kids enjoy swimming in the lagoon. I&amp;rsquo;ve also got some good features on Deps finished, I&amp;rsquo;ll write more about them soon.
Lots of new releases this week, I suspect many people are taking advantage of the holidays to finish off projects.
-main The annual State of Clojure survey is on now until 22 January.</description>
      <content:encoded><![CDATA[<h2 id="notes">Notes.</h2>
<p>I&rsquo;ve been on holiday the last few weeks at the beach. It&rsquo;s been nice to feel the sand between my toes and see my kids enjoy swimming in the lagoon. I&rsquo;ve also got some good features on <a href="https://www.deps.co">Deps</a> finished, I&rsquo;ll write more about them soon.</p>
<p>Lots of new releases this week, I suspect many people are taking advantage of the holidays to finish off projects.</p>
<h2 id="-main">-main</h2>
<ul>
<li>The annual State of Clojure survey is <a href="https://www.surveymonkey.com/r/clojure2019">on now</a> until 22 January. If you&rsquo;re interested enough in Clojure to read this newsletter, you should definitely be filling out the survey.</li>
<li>Jonathan Boston&rsquo;s <a href="http://clojurescriptmadeeasy.com/blog/my-best-and-worst-code-of-2018.html">best and worst</a> Clojure code of 2018.</li>
<li>Jonathan Boston also with a good post on the recent language changes to JS and how CLJS <a href="http://clojurescriptmadeeasy.com/blog/javascript-changes-fast.html">has already solved those problems</a>, in a better way.</li>
<li>And Jonathan Boston once more with how <a href="http://clojurescriptmadeeasy.com/blog/clojurescript-is-not-coffeescript.html">ClojureScript is not CoffeeScript</a>.</li>
<li><a href="https://clojurenorth.com/">Clojure/north 2019</a> is happening on April 19-20th in Toronto. I&rsquo;m looking forward to Mike Fikes, Tommi Reiman, and Rafal Dittwald&rsquo;s talks. The CFP is still open until February 1, so if you&rsquo;d like to speak there, get on to it.</li>
<li><a href="https://lfn3.net/2019/01/07/re-frame-and-the-back-button/">re-frame and the Back Button</a></li>
</ul>
<h2 id="libraries--books">Libraries &amp; Books.</h2>
<ul>
<li>kixi.stats 0.5.0 is out, with a <a href="http://clojuredatascience.com/posts/2019-01-05-boring-data-science-with-kixi-stats.html">discussion</a> of some new functions to help with doing &lsquo;boring data science&rsquo;, and doing everything with transducers.</li>
<li><a href="http://herb.roosta.sh/">Herb</a> is a new CSS library for building UI components in ClojureScript, building on Garden. Top marks for the extensive documentation.</li>
<li><a href="https://github.com/kumarshantanu/calfpath">calfpath</a> is a very flexible, new Ring routing library.</li>
<li><a href="https://github.com/l3nz/cli-matic">CLI-matic</a> is a new CLI parsing tool for Clojure and works well with Graal.</li>
<li><a href="https://github.com/clojure-expectations/clojure-test">expectations for clojure.test</a> gives you expectations style assertions but with clojure.test compatibility.</li>
</ul>
<h2 id="foundations">Foundations.</h2>
<ul>
<li>A more literal foundation this week, the Software Freedom Conservancy is the fiscal sponsor of Clojars and Clojurists Together. They&rsquo;re having their annual <a href="https://sfconservancy.org/supporter/">funding drive</a>, and the next $15k of donations is matched dollar for dollar by a generous group of sponsors, including Elana Hashman. The SFC takes a small percentage of any money that Clojurists Together receives (~10% IIRC), but we are a very demanding project (lots of contracts to review, payments to make, questions to answer, e.t.c.), and require far more resources than we are contributing. We couldn&rsquo;t have got to where we are without their support. I just signed up as a monthly supporter, and I&rsquo;d encourage you to do so as well.</li>
</ul>
<h2 id="tools">Tools.</h2>
<ul>
<li>Speaking of Elana, here is an <a href="https://alioth-lists.debian.net/pipermail/pkg-clojure-maintainers/2019-January/001058.html">update</a> on updating Leiningen and Clojure versions before the next Debian freeze. It&rsquo;s important and often thankless work, but I really appreciate it. I <a href="https://www.therepl.net/episodes/8/">talked</a> with Elana a few months ago about her work, if you&rsquo;re interested in learning more about this.</li>
<li>Cider 0.19 (Raleigh) is out with improvements to the connection management system, and updates for Clojure 1.10&rsquo;s error messages.</li>
<li>New releases of tools.deps and clj are <a href="https://groups.google.com/forum/#!msg/clojure/08lPSUlrrDQ/da4X8VeCCwAJ">out</a>. Notably, the way to specify a classifier on an artifact is now <code>groupId/artifactId$classifier</code>.</li>
<li>How to <a href="https://jakemccrary.com/blog/2019/01/06/notifications-with-tmux-and-lein-test-refresh/">get</a> lein-test-refresh notifications when using Emacs inside a remote tmux session (!).</li>
<li>The <a href="http://edn-query-language.org/">EDN Query Language</a> looks interesting, a bit of a hybrid between GraphQL and Datomic Pull queries.</li>
<li>If you want to give your security and ops teams a scare, talk to them about <a href="https://clojureverse.org/t/repls-on-production-deployments/3476">putting REPLs on your production deployments</a>.</li>
<li><a href="http://www.alysbrooks.com/using-graal-on-a-small-but-real-application.html">Using Graal</a> on a small but real Clojure application</li>
<li>Nikita Prokopov has been <a href="https://www.youtube.com/watch?v=iHi7BOgzTzA">working</a> on Clojure syntax for Sublime Text 3.</li>
<li><a href="https://github.com/mogenslund/liquid">Liquid</a> is a new emacs inspired text editor, written and extensible in Clojure. You can use the editor inside any JVM based program, and use any JVM based library to extend the editor.</li>
<li><a href="https://github.com/denisidoro/floki">Floki</a> is a JSON/EDN browser for the terminal.</li>
</ul>
<h2 id="recent-developments">Recent Developments.</h2>
<ul>
<li>Alex Miller <a href="http://insideclojure.org/2019/01/04/journal/">continues</a> his Inside Clojure journal</li>
</ul>
<h2 id="learning">Learning</h2>
<ul>
<li><a href="http://widdindustries.com/with-redefs-problems/">When to avoid</a> with-redefs. I&rsquo;ve definitely had some headscratching moments with <code>with-redefs</code>. Occasionally I run into situations where the redefed function doesn&rsquo;t get replaced after the <code>with-redefs</code> scope has ended. If you&rsquo;ve ever had this and figured out what the problem is, let me know.</li>
</ul>
<h2 id="misc">Misc.</h2>
<ul>
<li>A <a href="https://twitter.com/garybernhardt/status/1082351942976688129">thread</a> of nice looking failures from test reporters.</li>
</ul>
<p>I&rsquo;m Daniel Compton. I maintain public Maven repositories at <a href="https://clojars.org/">Clojars</a>, private ones at <a href="https://www.deps.co/">Deps</a>, and help fund OSS Clojure projects (along with tons of generous <a href="https://www.clojuriststogether.org/">members</a> like <a href="https://pitch.com/">Pitch</a>, <a href="https://juxt.pro">JUXT</a>, <a href="https://www.metosin.fi/">Metosin</a>, <a href="http://www.adgoji.com/">Adgoji</a>, and <a href="https://www.fundingcircle.com/">Funding Circle</a>) at <a href="https://www.clojuriststogether.org/">Clojurists Together</a>. If you&rsquo;ve enjoyed reading this, tell your friends to sign up at <a href="https://www.therepl.net/">therepl.net</a>, or post a link in your company chatroom. If you&rsquo;ve seen (or published) a blog post, library, or anything else Clojure/JVM related please reply to this to let me know about it.</p>
<p>If you&rsquo;d like to support the work that I&rsquo;m doing, consider signing up for a trial of <a href="https://www.deps.co">Deps</a>, a private, hosted, Maven Repository service that I run.</p>
<p>Thanks!</p>
]]></content:encoded>
    </item>
    <item>
      <title>83: Happy New Year!</title>
      <link>https://www.therepl.net/83/</link>
      <pubDate>Tue, 01 Jan 2019 08:49:36 +1300</pubDate>
      <guid>https://www.therepl.net/83/</guid>
      <description>Notes. Happy New Year! If you celebrated Christmas, I hope you had a great time. If you didn&amp;rsquo;t, I hope you had a nice break away from work.
-main The biggest news of the last few weeks was that Clojure 1.10 was released. Lots of cool stuff here, and as always, a smooth upgrade path. Yehonathan Sharvit welcomes Clojure 1.10 Over the last few weeks I&amp;rsquo;ve put The REPL&amp;rsquo;s entire back catalogue of newsletters online.</description>
      <content:encoded><![CDATA[<h2 id="notes">Notes.</h2>
<p>Happy New Year! If you celebrated Christmas, I hope you had a great time. If you didn&rsquo;t, I hope you had a nice break away from work.</p>
<h2 id="-main">-main</h2>
<ul>
<li>The biggest news of the last few weeks was that Clojure 1.10 was <a href="https://clojure.org/news/2018/12/17/clojure110">released</a>. Lots of cool stuff here, and as always, a smooth upgrade path.</li>
<li>Yehonathan Sharvit <a href="https://blog.klipse.tech//clojure/2018/12/18/welcome-clojure-10.html">welcomes</a> Clojure 1.10</li>
<li>Over the last few weeks I&rsquo;ve put The REPL&rsquo;s entire back catalogue of newsletters <a href="https://www.therepl.net/newsletters/">online</a>. I often found that I wanted to refer back to something I linked a while ago and had trouble finding it in my email. At some point I&rsquo;m going to add some local site search so you can search for keywords, URLs, e.t.c., if you have any good experiences doing this, let me know what you found.</li>
<li>If you use Aleph, chime in on <a href="https://github.com/ztellman/aleph/issues/450">this thread</a> which is compiling a list of users.</li>
<li>Arcadia (Clojure with the Unity game engine) has a <a href="https://twitter.com/ArcadiaTechInc/status/1075447922781798404">beta</a> out.</li>
<li>Steve Klabnik has some <a href="https://words.steveklabnik.com/why-is-clojure-so-stable">thoughts</a> on Clojure&rsquo;s stability</li>
<li>I talked with <a href="https://www.therepl.net/episodes/14/">Antonio Monteiro</a> about Lumo, GraphQL, and OCaml recently. It was a lot of fun and I learnt a lot.</li>
</ul>
<h2 id="libraries--books">Libraries &amp; Books.</h2>
<ul>
<li><a href="https://github.com/johnmn3/dispacio">Dispacio</a> is a predicate stack dispatch system for Clojure and ClojureScript. Think multimethods, but more flexible, and also with a bit more responsibility/risk for the user.</li>
<li>Three related libraries around Hiccupy Reagenty development: <a href="https://bitbucket.org/sonwh98/mr-clean">mr-clean</a> is a Reagent compatible library without a dependency on React, <a href="https://bitbucket.org/sonwh98/ikota">Ikota</a> is a Hiccup implementation for Clojure/ClojureScript, and <a href="https://bitbucket.org/sonwh98/chp/src/master/">Clojure Hiccup Page (CHP)</a> is a PHP inspired Hiccup server-rendered templating library.</li>
<li>When I talked with <a href="https://www.therepl.net/episodes/13/">Chris Nuernberger</a> a few weeks ago about TVM CLJ, a big focus of the conversation was dealing with memory efficiently. He&rsquo;s just published a <a href="http://techascent.com/blog/generalized-resource-management.html">post</a> and <a href="https://github.com/techascent/tech.resource">library</a> about tech.resource, their resource management library. I nearly used the term &ldquo;off-heap&rdquo; here, but the post has a good explanation of why other words might be less confusing. What is especially cool about this library is that you can use it with the JVM GC. You can set a stack based boundary where you know the memory will be deallocated at a certain point in the program, but it can also be deallocated sooner if the GC determines this is safe.</li>
</ul>
<h2 id="people-are-worried-about-types-httpsdanielcomptonnet20160711people-are-worried-about-types">People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></h2>
<ul>
<li><a href="https://github.com/borkdude/respeced">respeced</a> is a library for verifying spec <code>fdefs</code>.</li>
</ul>
<h2 id="tools">Tools.</h2>
<ul>
<li>Dash.app <a href="https://clojureverse.org/t/dash-app-now-supports-cljdoc/3365">now supports cljdoc</a>, an offline documentation app.</li>
<li><a href="https://github.com/cnuernber/depsviz">depsviz</a> can generate a Graphviz visualisation of your <code>deps.edn</code> or <code>project.clj</code> dependencies.</li>
</ul>
<h2 id="recent-developments">Recent Developments.</h2>
<ul>
<li>Alex Miller takes us <a href="http://insideclojure.org/2018/12/21/journal/">Inside Clojure</a> again. I&rsquo;ve been really enjoying these posts. Also of note, longtime Clojure contributor Ghadi Shayban has joined Cognitect recently.</li>
<li>A <a href="https://docs.google.com/spreadsheets/d/17Bt96FXru1uq3tAsastZsLcjgc9rdjDGo_IfFMRHJDM/edit#gid=0">list</a> of all the tickets fixed in Clojure 1.10</li>
</ul>
<h2 id="learning">Learning</h2>
<ul>
<li><a href="http://ahungry.com/blog/2018-12-26-Clojure-is-Capable.html">Clojure is Capable</a> shows how to build a FUSE filesystem in Clojure.</li>
<li>One <a href="https://blog.ona.io//2018/12/17/why-we-are-moving-away-from-om.html">experience report</a> of a team using Om and moving to re-frame instead of Om.Next.</li>
</ul>
<h2 id="misc">Misc.</h2>
<ul>
<li>Russ Olsen on <a href="http://russolsen.com/articles/2012/08/09/the-best-programming-advice-i-ever-got.html">the best programming advice</a> he ever got.</li>
</ul>
<p>I&rsquo;m Daniel Compton. I maintain public Maven repositories at <a href="https://clojars.org/">Clojars</a>, private ones at <a href="https://www.deps.co/">Deps</a>, and help fund OSS Clojure projects (along with tons of generous <a href="https://www.clojuriststogether.org/">members</a> like <a href="https://pitch.com/">Pitch</a>, <a href="https://juxt.pro">JUXT</a>, <a href="https://www.metosin.fi/">Metosin</a>, <a href="http://www.adgoji.com/">Adgoji</a>, and <a href="https://www.fundingcircle.com/">Funding Circle</a>) at <a href="https://www.clojuriststogether.org/">Clojurists Together</a>. If you&rsquo;ve enjoyed reading this, tell your friends to sign up at <a href="https://www.therepl.net/">therepl.net</a>, or post a link in your company chatroom. If you&rsquo;ve seen (or published) a blog post, library, or anything else Clojure/JVM related please reply to this to let me know about it.</p>
<p>If you&rsquo;d like to support the work that I&rsquo;m doing, consider signing up for a trial of <a href="https://www.deps.co">Deps</a>, a private, hosted, Maven Repository service that I run.</p>
<p>Thanks!</p>
]]></content:encoded>
    </item>
    <item>
      <title>82: Formatting, coroutines, REBLs, new Clojure RCs</title>
      <link>https://www.therepl.net/82/</link>
      <pubDate>Sun, 16 Dec 2018 14:48:46 +1300</pubDate>
      <guid>https://www.therepl.net/82/</guid>
      <description>Notes. There&amp;rsquo;s been a lot going on in the Clojure community in the last few weeks. There was another sprawling discussion about community involvement in the development of the Clojure language, and then the Conj came afterwards with a bunch of great talks. I want to give a special mention to Alex Miller and whoever else was involved with getting the talks up on YouTube so quickly. I wasn&amp;rsquo;t there, but I was still able to follow along virtually with not a lot of delay.</description>
      <content:encoded><![CDATA[<h2 id="notes">Notes.</h2>
<p>There&rsquo;s been a lot going on in the Clojure community in the last few weeks. There was another sprawling discussion about community involvement in the development of the Clojure language, and then the Conj came afterwards with a bunch of great talks. I want to give a special mention to Alex Miller and whoever else was involved with getting the talks up on YouTube so quickly. I wasn&rsquo;t there, but I was still able to follow along virtually with not a lot of delay.</p>
<p>If you&rsquo;ve enjoyed The REPL this year, either in podcast or newsletter form, please consider supporting me by signing up for a trial of <a href="https://www.deps.co/">Deps</a>. Deps is a private, hosted, Maven repository service that I run. I enjoy writing and recording The REPL, but it does take me away from other paying work. If you or your company needs to share private Clojure dependencies and don&rsquo;t want to have to run, patch, maintain, and backup your own Maven repository, take a look at signing up for Deps. If Deps isn&rsquo;t a good fit for you, please let me know also, that&rsquo;s really useful information.</p>
<p>Thanks!</p>
<h2 id="-main">-main</h2>
<ul>
<li><a href="https://github.com/cognitect-labs/REBL-distro">REBL</a> is a new tool for exploring the data in Clojure programs from Cognitect. The release of this library and the accompanying <a href="https://www.youtube.com/watch?v=c52QhiXsmyI">talk</a> explain the motivation for several recent additions to Clojure: <a href="http://corfield.org/blog/2018/12/03/datafy-nav/">datafy, nav</a>, and extending protocols via metadata. REBL also has an <a href="https://github.com/cognitect-labs/REBL-distro/blob/040f8055e1251fa35a76f33c3453dd355b54571c/LICENSE#L11-L17">interesting business model</a>. Non-commercial use is free. For commercial use, Datomic customers get it as part of their Datomic license, or you can join the <a href="https://www.patreon.com/cognitect">Cognitect Patreon</a> to get a license to it.</li>
<li>For a long time I&rsquo;ve wished that Clojure had something similar to <code>gofmt</code>, a source code formatter which defines a canonical and fairly strict set of formatting rules for Clojure. I wrote up a <a href="https://clojureverse.org/t/clj-commons-building-a-formatter-like-gofmt-for-clojure/3240">proposal</a> for such a formatting spec and tool on ClojureVerse. Nikita Prokopov came up with a <a href="http://tonsky.me/blog/clojurefmt/">proposal</a> for one possible set of formatting rules. There&rsquo;s also a GitHub <a href="https://github.com/clj-commons/formatter">repo</a> with more detailed discussions on the different possible formatting rules.</li>
<li>I wrote about <a href="https://www.deps.co/blog/how-to-upgrade-clojure-projects-to-use-java-11/">how to upgrade your Clojure projects to Java 11</a> on the Deps blog.</li>
<li>Tim Baldridge on <a href="https://gist.github.com/halgari/c17f378718cbd2fd82324002133ef678">contributing to Clojure</a></li>
<li><a href="https://gist.github.com/richhickey/1563cddea1002958f96e7ba9519972d9">Open Source is Not About You</a> by Rich Hickey.</li>
</ul>
<h2 id="libraries--books">Libraries &amp; Books.</h2>
<ul>
<li><a href="https://github.com/leonoel/cloroutine">cloroutine</a> is a generic, macro-based, stackless coroutine builder for Clojure and ClojureScript. The author also has a great <a href="https://clojureverse.org/t/cloroutine-v1/3300">announcement post</a> on ClojureVerse talking about the motivations and architecture. It&rsquo;s in a similar niche to <a href="https://github.com/divs1210/xodarap">xodarap</a> which I mentioned in my last newsletter. The difference is that where xodarap <em>uses</em> core.async, cloroutine takes inspiration from core.async and rewrites functions in a similar manner to the core.async <code>go</code> macro.</li>
<li><a href="https://www.manning.com/books/get-programming-with-clojure">Get Programming with Clojure</a> is a new book from Yehonathan Sharvit (Creator of <a href="https://github.com/viebel/klipse">Klipse</a>), in pre-release at Manning.</li>
</ul>
<h2 id="people-are-worried-about-types-httpsdanielcomptonnet20160711people-are-worried-about-types">People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></h2>
<ul>
<li>On a recent podcast with <a href="https://www.therepl.net/episodes/12/">Martin Klepsch</a>, we were talking about <a href="https://www.haskell.org/hoogle/">Hoogle</a>, the search engine for Haskell that lets you search by type signature. We wondered whether something similar would be possible for Clojure. Michael Borkient took this idea and created <a href="https://re-find.michielborkent.nl">re-find</a>. You can type input arguments and expected results or predicates and it will show you a list of functions which fit the parameters. It&rsquo;s hard to explain the experience of using it, I recommend trying it out.</li>
<li>Sean Corfield writes about <a href="http://corfield.org/blog/2018/12/06/null-nilable-optionality/">nil, NULL, and optionality</a> in the context of SQL and clojure.java.jdbc.</li>
</ul>
<h2 id="foundations">Foundations.</h2>
<ul>
<li><a href="https://cl4es.github.io/2018/11/29/OpenJDK-Startup-From-8-Through-11.html">Open JDK startup times</a> from 8 through 11.</li>
</ul>
<h2 id="tools">Tools.</h2>
<ul>
<li>Leiningen <a href="https://www.freelists.org/post/leiningen/ANN-Leiningen-282-released">2.8.2</a> and <a href="https://www.freelists.org/post/leiningen/ANN-Leiningen-283-released">2.8.3</a> were recently released. 2.8.3 is a hotfix release for some bugs that were introduced in 2.8.2.</li>
<li><a href="https://github.com/nubank/emidje">emidje</a> is an Emacs test runner for <a href="https://github.com/marick/Midje">Midje</a>.</li>
<li>The recent Day of Datomic Cloud training session was recorded and is <a href="https://www.youtube.com/playlist?list=PLZdCLR02grLoMy4TXE4DZYIuxs3Q9uc4i">available</a> for free on YouTube.</li>
<li>If you can&rsquo;t wait for AWS to add support for Java 11, you can use Ghadi Shayban&rsquo;s new <a href="https://github.com/ghadishayban/lambdaclj-jdk11">AWS Lambda Custom Runtime</a>.</li>
<li><a href="https://gist.github.com/pesterhazy/aac9638f1d22a3bc3339f95d1c607aed">Configuring zprint</a></li>
</ul>
<h2 id="recent-developments">Recent Developments.</h2>
<ul>
<li>Clojure is nearing release, 1.10.0-RC5 is out.</li>
<li>Alex Miller has a great <a href="http://insideclojure.org/2018/12/14/journal/">update</a> on what he&rsquo;s been working on with Clojure in the last week.</li>
</ul>
<h2 id="learning">Learning</h2>
<ul>
<li>Tom McTighe had a great <a href="https://skillsmatter.com/skillscasts/12772-applying-clojure-s-design-principles-to-its-documentation">talk</a> at Clojure eXchange about applying Clojure&rsquo;s design principles to it&rsquo;s documentation. Here&rsquo;s a <a href="http://tommctighe.com/clj/clojure-toc.html">sketch</a> of some of the ideas in the talk.</li>
<li>There&rsquo;s also a <a href="https://dev.solita.fi/2018/12/14/clojurex-2018.html">roundup</a> of all of the Clojure eXchange talks from Solita.</li>
</ul>
<h2 id="misc">Misc.</h2>
<p>One perspective from BloombergNEF about <a href="https://about.bnef.com/blog/liebreich-two-business-cycles-prepare-low-carbon-world/">preparing for a low carbon world</a>. I sometimes avoid looking at climate change related news because it can feel so paralysing. This was a good overview of both the looming challenges, and some bright spots, particularly around solar and wind generation.</p>
<p>I&rsquo;m Daniel Compton. I maintain public Maven repositories at <a href="https://clojars.org/">Clojars</a>, private ones at <a href="https://www.deps.co/">Deps</a>, and help fund OSS Clojure projects (along with tons of generous <a href="https://www.clojuriststogether.org/">members</a> like <a href="https://pitch.com/">Pitch</a>, <a href="https://juxt.pro">JUXT</a>, <a href="https://www.metosin.fi/">Metosin</a>, <a href="http://www.adgoji.com/">Adgoji</a>, and <a href="https://www.fundingcircle.com/">Funding Circle</a>) at <a href="https://www.clojuriststogether.org/">Clojurists Together</a>. If you&rsquo;ve enjoyed reading this, tell your friends to sign up at <a href="https://therepl.net/">therepl.net</a>, or post a link in your company chatroom. If you&rsquo;ve seen (or published) a blog post, library, or anything else Clojure/JVM related please reply to this to let me know about it.</p>
]]></content:encoded>
    </item>
    <item>
      <title>81: Giving thanks</title>
      <link>https://www.therepl.net/81/</link>
      <pubDate>Fri, 23 Nov 2018 10:34:58 +1300</pubDate>
      <guid>https://www.therepl.net/81/</guid>
      <description>Notes.
I&amp;rsquo;m not an American, but I do appreciate the opportunity one day a year (at least!) to spend some time thinking about what I&amp;rsquo;m thankful for. In the sphere of Clojure, this year I&amp;rsquo;m thankful for:
All of the Clojure community and core team continuing to build a great ecosystem and language Day8&#xA0;and&#xA0;Mike Thompson&#xA0;for employing me and&#xA0;funding me to work on the re-frame suite of tools and libraries (along with other internal work).</description>
      <content:encoded><![CDATA[<p><strong>Notes.</strong></p>
<p>I&rsquo;m not an American, but I do appreciate the opportunity one day a year (at least!) to spend some time thinking about what I&rsquo;m thankful for. In the sphere of Clojure, this year I&rsquo;m thankful for:</p>
<ul>
<li>All of the Clojure community and core team continuing to build a great ecosystem and language</li>
<li><a href="https://www.day8.com.au/">Day8</a> and <a href="https://twitter.com/wazound/">Mike Thompson</a> for employing me and funding me to work on the re-frame suite of tools and libraries (along with other internal work).</li>
<li>Clojurists Together <a href="https://www.clojuriststogether.org/members/">members</a>, you&rsquo;re all the reason that Clojurists Together has any money to fund any work.</li>
<li>Everyone who applied for funding from Clojurists Together. We weren&rsquo;t able to fund everyone, but I really appreciate the effort that went into submitting an application.</li>
<li>All of the projects that we were able to fund and the amazing work they did. You can see them on one page <a href="https://www.clojuriststogether.org/projects/">here</a>.</li>
<li>The <a href="https://sfconservancy.org/">Software Freedom Conservancy</a> (SFC), we don&rsquo;t talk about it too much (we should do more), but the SFC have put in a lot of time into Clojurists Together this year helping us get up and running. They do lots of good work for us and other OSS projects, consider becoming a <a href="https://sfconservancy.org/supporter/">supporter</a>.</li>
<li>Everyone who is a customer of <a href="https://www.deps.co/">Deps</a>.</li>
<li>Lastly, all of you for reading this newsletter and listening to The REPL podcast, sending me feedback, and letting me know about cool projects.</li>
</ul>
<p><strong>-main</strong></p>
<ul>
<li>A new Clojure podcast: <a href="https://clojuredesign.club/">Functional Design in Clojure</a>. I just found this as I was preparing the newsletter, but I&rsquo;m looking forward to listening to these.</li>
<li><a href="https://juxt.pro/blog/posts/cljs-apps.html">Writing testable CLJS apps</a> with re-frame and devcards</li>
<li><a href="https://clj-templates.com/">clj-templates</a> is a search tool for Lein and Boot templates</li>
<li>It was my pleasure to talk with <a href="https://www.therepl.net/episodes/8/">Elana Hashman</a>, <a href="https://www.therepl.net/episodes/9/">Hannah Henderson</a>, and <a href="https://www.therepl.net/episodes/10/">Howard Lewis Ship</a> on The REPL. I also wrote a (very late) <a href="https://danielcompton.net/2018/11/20/announcing-the-repl">announcement post</a> about The REPL.</li>
<li>Probably not ideally timed given the Thanksgiving holiday, but there was some more discussion about Clojure and the openness of its development process. It started with the <a href="https://groups.google.com/forum/#!msg/clojure/2GQQpxNcDlM/Btk8Ghd4AAAJ">release</a> of Clojure 1.10.0-beta8 which introduced a new function async-require. This is not an asynchronous require call, but the opposite, a require that is safe to run in an asynchronous context. Some people found this confusing, but Alex Miller wasn&rsquo;t interested in discussing it further. That then spilled <a href="https://twitter.com/timbaldridge/status/1065611838681866240">over</a> <a href="https://twitter.com/kachayev/status/1065351014683947008">onto</a> <a href="https://twitter.com/gsnewmark/status/1065673744507645953">Twitter</a> with more discussion about the Clojure development process.</li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li><a href="https://github.com/divs1210/xodarap">xodarap</a> lets you recurse without worrying about blowing stack boundaries. Under the covers it uses core.async.</li>
<li><a href="https://groups.google.com/forum/?hl=en#!topic/clojure/LecnXFvQMv4">tvm-clj</a> is a new high-performance numerics compiler. This is super interesting and opens up a lot of new areas that Clojure can tackle around high-performance code, dealing with unsigned types, numerics, and machine learning.</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li>Clojure Spec-Alpha2 has a GitHub <a href="https://github.com/clojure/spec-alpha2/blob/master/src/main/clojure/clojure/spec_alpha2.clj">repo</a>, but there&rsquo;s <a href="https://www.reddit.com/r/Clojure/comments/9x4jfg/clojurespecalpha2/e9prft4/">not much news</a> about what will be changing yet.</li>
<li><a href="https://github.com/emacs-elsa/Elsa">Elsa</a> is a new static analysis library for Emacs. This <a href="https://github.com/emacs-elsa/Elsa/issues/74">issue</a> talks about converting the Haskell inspired type annotations into Lispy ones.</li>
<li>The Road to Typed Clojure 1.0</li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li>Amazon has come out with <a href="https://aws.amazon.com/corretto/">Corretto</a>, a new OpenJDK distribution. Notably, Java 8 support will be provided until at least June 2023 (Oracle&rsquo;s JDK is ending free updates for commercial users in January 2019). For <a href="https://docs.aws.amazon.com/corretto/latest/corretto-8-ug/downloads-list.html">Linux </a><a href="https://docs.aws.amazon.com/corretto/latest/corretto-8-ug/downloads-list.html">distributions</a> they only provide RPM&rsquo;s, but hopefully, they will also provide Debian packages.</li>
<li>Bifurcan is a <a href="https://twitter.com/ztellman/status/1059169824725553152">new set</a> of functional data structures for the JVM. They <a href="https://github.com/lacuna/bifurcan/blob/master/doc/comparison.md">compare</a>very favourably to mutable data structures, especially at large collection sizes.</li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li>Reid McKenzie gave a great <a href="https://www.youtube.com/watch?v=ze7OI9iVCiI&amp;__s=3241g594pxbzgsy4azp7">talk</a> on Katamari, a new build tool he&rsquo;s making, along with an excellent survey of build tools in general. I learnt a lot from this talk, it&rsquo;s highly recommended.</li>
<li><a href="https://github.com/pesterhazy/zprint-mode.el">zprint-mode.el</a> is an Emacs minor mode for formatting your code with zprint.</li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li>ClojureScript 1.10.439 is out with a bunch of <a href="https://clojurescript.org/news/2018-11-02-release">improvements</a>. Notably, compiler performance is much better.</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li>A <a href="https://www.marcobehler.com/guides/a-guide-to-logging-in-java">guide to logging in Java</a>, but a lot of this carries over to Clojure too</li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li>Bill Gates plans for <a href="https://www.gatesnotes.com/Energy/My-plan-for-fighting-climate-change">fighting</a> climate change</li>
</ul>
<p>I&rsquo;ve got quite a backlog of interesting links that I wasn&rsquo;t able to include here, sorry if I missed your great project or post.</p>
<p>I&rsquo;m Daniel Compton. I maintain public Maven repositories at <a href="https://clojars.org/">Clojars</a>, private ones at <a href="https://www.deps.co/">Deps</a>, and help fund OSS Clojure projects (along with tons of generous <a href="https://www.clojuriststogether.org/">members</a> like <a href="https://pitch.com/">Pitch</a>, <a href="https://juxt.pro/">JUXT</a>, <a href="http://www.metosin.fi/">Metosin</a>, <a href="http://www.adgoji.com/">Adgoji</a>, and <a href="https://www.fundingcircle.com/">Funding Circle</a>) at <a href="https://www.clojuriststogether.org/">Clojurists Together</a>. If you&rsquo;ve enjoyed reading this, tell your friends to sign up at <a href="https://therepl.net/">therepl.net</a>, or post a link in your company chatroom. If you&rsquo;ve seen (or published) a blog post, library, or anything else Clojure/JVM related please reply to this to let me know about it.</p>
]]></content:encoded>
    </item>
    <item>
      <title>80: Datafy, paren parties, and adopting a neanderthal (function)</title>
      <link>https://www.therepl.net/80/</link>
      <pubDate>Wed, 24 Oct 2018 09:33:37 +1300</pubDate>
      <guid>https://www.therepl.net/80/</guid>
      <description>Notes.
Hoo boy.
There was quite a&#xA0;commotion&#xA0;this&#xA0;weekend&#xA0;after Stu Halloway&amp;rsquo;s&#xA0;appearance&#xA0;on the Apropos podcast. A few years ago there was a similar commotion and I&#xA0;wrote&#xA0;this on HN with my perspective. I think it is still accurate today.
The thing to realise about Clojure is that it isn&amp;rsquo;t an open source language like Python. It is a language controlled very tightly by Rich Hickey and Cognitect.</description>
      <content:encoded><![CDATA[<p><strong>Notes.</strong></p>
<p>Hoo boy.</p>
<p>There was quite a <a href="https://twitter.com/ztellman/status/1053127097667936256">commotion</a> this <a href="https://twitter.com/stuarthalloway/status/1053761436210655232">weekend</a> after Stu Halloway&rsquo;s <a href="https://www.youtube.com/watch?v=6ftW8UwwP_4">appearance</a> on the Apropos podcast. A few years ago there was a similar commotion and I <a href="https://news.ycombinator.com/item?id=11884841">wrote</a> this on HN with my perspective. I think it is still accurate today.</p>
<p><em>The thing to realise about Clojure is that it isn&rsquo;t an open source language like Python. It is a language controlled very tightly by Rich Hickey and Cognitect. Major work is done in secret (transducers, reducers, spec), then announced to the world as a &ldquo;Here it is!&rdquo; and then suggestions are taken. This goes well mostly, though it took a lot of outside <strong>persuasion</strong> that Feature Expressions weren&rsquo;t the best idea, and to come up with Reader Conditionals instead.</em></p>
<p><em>The underlying problem Clojure/Core has is their communication. If they would come out and explain their philosophy then people wouldn&rsquo;t get frustrated and confused when they expect the language development to work like other open source projects. Clojure&rsquo;s development is functioning exactly as planned. It&rsquo;s not a mistake.</em></p>
<p><em>A better way to treat Clojure is closer to a project at Apple (except for Swift). You can submit bugs, and make suggestions for future improvements, and if you really want to provide a patch. But go into it realising that it&rsquo;s not a community project, and you&rsquo;re much less likely to get frustrated.</em></p>
<p><em>With all that said, the proof of the pudding is in the eating, and for the most <strong>part</strong>Clojure has developed pretty well from Rich&rsquo;s tight control. I&rsquo;d love it if there was a Snow Leopard year for Clojure where the focus <strong>was</strong> fixing longstanding bugs and feature requests, and more focus on those in general, but the language is developing well.</em></p>
<p>While I can&rsquo;t claim to <a href="https://clojure.org/community/etiquette">speak for the community</a>, in my experience with the Clojure folk I talk with, the concerns Zach Tellman, Tim Baldridge, Bruce Hauman, and others raised in the resulting Twitter threads are shared by more than a <a href="https://twitter.com/stuarthalloway/status/1053760294693019650">tiny minority</a> of the Clojure community. On the whole, I think Clojure is developing well, but there are opportunities within the Clojure language, and for supporting tools, documentation, and libraries to continue to improve the Clojure experience.</p>
<p><strong>-main</strong></p>
<ul>
<li>
<p>Snyk released very curious <a href="https://snyk.io/blog/jvm-ecosystem-report-2018">results</a> in a survey on the JVM ecosystem last week. The most surprising thing about it was the question about the principal JVM language that people used. Java was first with 90% share, but Clojure was second with 3%, Kotlin at 2.4%, Groovy at 2.4%, and Scala at 1.8%. I was very surprised to see Clojure ahead of Scala, in my experience, Scala has been 4-5x larger than Clojure in terms of jobs, adoption, e.t.c. There were 10k respondents to the survey though, so it seems like a reasonable sample size, and the way the survey was distributed doesn&rsquo;t seem too biased. <a href="https://dzone.com/articles/measuring-up-java-usage-azul-systems-inc?utm_medium=feed&amp;utm_source=feedpress.me&amp;utm_campaign=Feed:%20dzone%2Fjava">Other people</a> also found that surprising.</p>
<p>Another curious thing about the survey was that 60% of respondents used Java EE. I have no experience with Java EE, or that ecosystem, but I was surprised to see it so highly represented. Maybe that is the case though?</p>
</li>
<li>
<p>Clojurists Together is <a href="https://www.clojuriststogether.org/news/q4-2018-funding-announcement/">funding</a> Datascript and Kaocha this quarter</p>
</li>
<li>
<p>Datomic On-Prem has a new <a href="http://blog.datomic.com/2018/10/valcache.html">caching option</a> to use SSD&rsquo;s</p>
</li>
<li>
<p><a href="https://quanttype.net/posts/2018-10-18-how-i-use-tap.html">How Miika Koskinen uses tap&gt;</a>, and the <a href="https://quanttype.net/posts/2018-10-14-clojure-libraries-i-use-and-like.html">libraries he recommends</a></p>
</li>
<li>
<p>I had a timely <a href="https://www.therepl.net/episodes/7/">discussion</a> with Ben Brinckerhoff about spec and error messages</p>
</li>
<li>
<p>It was mentioned above, but the <a href="https://www.youtube.com/watch?v=6ftW8UwwP_4">Apropos discussion</a> with Stu Halloway is a really good insight into how Clojure is developed, and how the Clojure team thinks about problems.</p>
</li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li>Bunnicula is a <a href="https://github.com/nomnom-insights/nomnom.bunnicula">new library</a> for asynchronous messaging with RabbitMQ, with a great <a href="https://blog.nomnominsights.com/bunnicula-asynchronous-messaging-with-rabbitmq-for-clojure/">writeup</a> on the motivations and context.</li>
<li>You can <a href="https://dragan.rocks/articles/18/Patreon-Announcement-Adopt-a-Function">adopt a function</a> from Neanderthal</li>
<li>Giving new life to existing OM legacy SPAs with <a href="http://garajeando.blogspot.com/2018/10/giving-new-life-to-existing-om-legacy.html">re-om</a></li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li>A beginner&rsquo;s <a href="https://blog.taylorwood.io/2018/10/15/clojure-spec-faq.html">FAQ</a> for Clojure.Spec, though I think this is useful for everyone</li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li><a href="https://www.schneems.com/2016/08/16/sharp-tools.html">Sharp Tools</a></li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li>Using <a href="http://clojure-goes-fast.com/blog/using-jmh-with-clojure-part1/">JMH with Clojure</a>. JMH has been on my radar for a while but I didn&rsquo;t have a good understanding of how to set up a JMH benchmark with Clojure. Now I do.</li>
<li><a href="https://metaredux.com/posts/2018/10/21/nrepls-secret-tty-transport.html">nREPL&rsquo;s Secret TTY Transport</a></li>
<li><a href="http://www.dustingetz.com/:hyperfiddle-update-18Q3/">An update on Hyperfiddle</a></li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li>Since my last email, Clojure went to a <a href="https://groups.google.com/forum/#!topic/clojure/sqUFgjDbi3k">release candidate</a>, then back to <a href="https://groups.google.com/forum/#!topic/clojure/uw4_p1sINFo">beta</a> with a brand new <a href="https://github.com/clojure/clojure/commit/93841c0dbf9db2f358474408d5e21530f49ef8b3">datafy</a> namespace.</li>
<li><a href="https://dev.clojure.org/jira/browse/CLJ-2373">CLJ-2373</a> is where work on improvements to exception messages and printing has gone</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li>A good <a href="https://juxt.pro/blog/posts/working-at-juxt.html">write-up</a> of an internship at JUXT. </li>
<li>A <a href="https://lispcast.com/a-model-of-interceptors/">model of interceptors</a></li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li>Enjoy a <a href="http://paren.party/">Paren Party</a><br>
I&rsquo;m Daniel Compton. I maintain public Maven repositories at <a href="https://clojars.org/">Clojars</a>, private ones at <a href="https://www.deps.co/">Deps</a>, and help fund OSS Clojure projects (along with tons of generous <a href="https://www.clojuriststogether.org/">members</a> like <a href="https://pitch.com/">Pitch</a>, <a href="https://juxt.pro/">JUXT</a>, <a href="http://www.metosin.fi/">Metosin</a>, <a href="http://www.adgoji.com/">Adgoji</a>, and <a href="https://www.fundingcircle.com/">Funding Circle</a>) at <a href="https://www.clojuriststogether.org/">Clojurists Together</a>. If you&rsquo;ve enjoyed reading this, tell your friends to sign up at <a href="https://therepl.net/">therepl.net</a>, or post a link in your company chatroom. If you&rsquo;ve seen (or published) a blog post, library, or anything else Clojure/JVM related please reply to this to let me know about it.</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>79: Party REPLs and a new Clojure beta</title>
      <link>https://www.therepl.net/79/</link>
      <pubDate>Tue, 09 Oct 2018 10:19:28 +1300</pubDate>
      <guid>https://www.therepl.net/79/</guid>
      <description>Notes.
I&amp;rsquo;ve been digging up my driveway to turn it into more grass. It&amp;rsquo;s been fun using heavy machinery to move the dirt around and seeing a tangible result of my work. Often in software, we don&amp;rsquo;t get that tangibility, and I definitely don&amp;rsquo;t have sore muscles the next day!
-main
Apache MXNet 1.3 is&#xA0;out&#xA0;with experimental Clojure bindings Clojurists Together has a&#xA0;Call For Proposals&#xA0;open until midnight October 9th PST.</description>
      <content:encoded><![CDATA[<p><strong>Notes.</strong></p>
<p>I&rsquo;ve been digging up my driveway to turn it into more grass. It&rsquo;s been fun using heavy machinery to move the dirt around and seeing a tangible result of my work. Often in software, we don&rsquo;t get that tangibility, and I definitely don&rsquo;t have sore muscles the next day!</p>
<p><strong>-main</strong></p>
<ul>
<li>Apache MXNet 1.3 is <a href="https://medium.com/apache-mxnet/announcing-apache-mxnet-1-3-484ea78c22ad">out</a> with experimental Clojure bindings</li>
<li>Clojurists Together has a <a href="https://www.clojuriststogether.org/open-source/">Call For Proposals</a> open until midnight October 9th PST. I&rsquo;m struggling with the timezone math, but that&rsquo;s in the next day or so.</li>
<li>I <a href="https://www.therepl.net/episodes/5/">talked</a> with Nikita Prokopov on The REPL about Datascript, Rum, Fira Code, and lots more.</li>
<li><a href="https://polylith.gitbook.io/polylith/">Polylith</a> is a new architecture/design pattern. It&rsquo;s demonstrated with Clojure, but isn&rsquo;t really Clojure specific. I haven&rsquo;t fully digested it, but it looks ambitious and is worth a read.</li>
<li><a href="https://blog.taylorwood.io/2017/09/15/year-behind.html">A Year in Clojure</a> is a good experience report of Clojure coming from an F# background.</li>
<li>Martin Klepsch on <a href="https://www.youtube.com/watch?v=mWrvd6SE7Vg">documenting</a> the Clojure ecosystem</li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li><a href="https://github.com/duct-framework/scheduler.simple">Duct scheduler.simple</a> is a&hellip; well you can probably guess.</li>
<li><a href="https://github.com/walmartlabs/cond-let">cond-let</a> merges cond with let</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li>and Stripe is <a href="https://mobile.twitter.com/darkdimius/status/1002049138366730240">building</a> a typechecker for Ruby</li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li>Salvatore Sanfilippo on <a href="http://antirez.com/news/124">software code comments</a>. This goes far deeper than the often simplistic suggestion of &ldquo;code comments should explain why it&rsquo;s doing something, not what it&rsquo;s doing&rdquo;. He categorises the comments in Redis into nine categories with good examples.</li>
<li>Open JDK has <a href="https://blog.adoptopenjdk.net/2018/10/macos-binary-changes">changed</a> the layout of their macOS tarballs to be more compatible with Homebrew.</li>
<li>There is a <a href="http://mail.openjdk.java.net/pipermail/security-dev/2018-October/018385.html">proposal</a> to let people disable the JDK Security Manager. This would let the JVM optimise a bunch of code that currently checks for a security manager at runtime. See Sean Mullan&rsquo;s <a href="https://mobile.twitter.com/seanjmullan/status/1047206078151348224">tweet</a> for a little more detail.</li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li>clojure-party-repl is an Atom <a href="https://atom.io/packages/clojure-party-repl">package</a> for pair programming with a party REPL</li>
<li><a href="http://www.hyperfiddle.net/">Hyperfiddle</a> is a low/no-code development platform that sits on top of Datomic.</li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li>Clojure 1.10.0-beta 1 is <a href="https://groups.google.com/d/msg/clojure/6hJM5q_CC_M/FzolPjm6AgAJ">now</a> available, the first in the beta series.</li>
<li><a href="https://dev.clojure.org/jira/browse/CLJ-2374">CLJ-2374</a> fixes a Clojure build issue with JDK 11. You would be <a href="https://twitter.com/smashthepast/status/1047264772666925056">unlikely</a> to hit this when running Clojure applications normally, as the Clojure JAR is AOT&rsquo;d</li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li>Here&rsquo;s a <a href="https://www.officelovin.com/2018/03/19/tour-reaktors-new-helsinki-office/">tour</a> of Reaktor&rsquo;s Helsinki offices. ClojuTRE conference goers got to go for a tour through here. It looks like a pretty nice place to work, I don&rsquo;t think I&rsquo;ve ever seen an office with a built-in sauna.</li>
</ul>
<p>I&rsquo;m Daniel Compton. I maintain public Maven repositories at <a href="https://clojars.org/">Clojars</a>, private ones at <a href="https://www.deps.co/">Deps</a>, and help fund OSS Clojure projects (along with tons of generous <a href="https://www.clojuriststogether.org/">members</a> like <a href="https://juxt.pro/">JUXT</a>, <a href="http://www.metosin.fi/">Metosin</a>, <a href="http://www.adgoji.com/">Adgoji</a>, and <a href="https://www.fundingcircle.com/">Funding Circle</a>) at <a href="https://www.clojuriststogether.org/">Clojurists Together</a>. If you&rsquo;ve enjoyed reading this, tell your friends to sign up at <a href="https://therepl.net/">therepl.net</a>, or post a link in your company chatroom. If you&rsquo;ve seen (or published) a blog post, library, or anything else Clojure/JVM related please reply to this to let me know about it.</p>
]]></content:encoded>
    </item>
    <item>
      <title>78: Ions, Dhall, new clj-new</title>
      <link>https://www.therepl.net/78/</link>
      <pubDate>Wed, 19 Sep 2018 02:14:26 +1300</pubDate>
      <guid>https://www.therepl.net/78/</guid>
      <description>-main
Rich Hickey on&#xA0;Datomic Ions&#xA0;at Clojure/nyc This week on The REPL I&#xA0;talked&#xA0;with Mike Fikes about ClojureScript type inference, Graal, and his work on&#xA0;Clojurists Together. Libraries &amp;amp; Books.
Kaocha&#xA0;is a new test runner from Lambda Island with a bunch of nice features including test randomization, fail fast, and profiling slow tests. There&amp;rsquo;s also some nice docs on&#xA0;cljdoc. dhall-clj&#xA0;lets you consume&#xA0;Dhall&#xA0;expressions from Clojure.</description>
      <content:encoded><![CDATA[<p><strong>-main</strong></p>
<ul>
<li>Rich Hickey on <a href="https://www.youtube.com/watch?v=thpzXjmYyGk">Datomic Ions</a> at Clojure/nyc</li>
<li>This week on The REPL I <a href="https://therepl.net/episodes/3/">talked</a> with Mike Fikes about ClojureScript type inference, Graal, and his work on <a href="https://www.clojuriststogether.org/">Clojurists Together</a>.</li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li><a href="https://github.com/lambdaisland/kaocha">Kaocha</a> is a new test runner from Lambda Island with a bunch of nice features including test randomization, fail fast, and profiling slow tests. There&rsquo;s also some nice docs on <a href="https://cljdoc.xyz/d/lambdaisland/kaocha/0.0-138/doc/readme">cljdoc</a>.</li>
<li><a href="https://github.com/f-f/dhall-clj">dhall</a><a href="https://github.com/f-f/dhall-clj">-clj</a> lets you consume <a href="https://github.com/dhall-lang/dhall-lang">Dhall</a> expressions from Clojure. Dhall is a very Haskelly looking non-turing complete language, suited for writing config, templates, e.t.c. </li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li>But Ambrose Bonnaire-Sergeant is <a href="http://ambrosebs.com/talks/proposal-slides.pdf">proposing</a> to do a <a href="http://ambrosebs.com/talks/proposal-slides.pdf">thesis</a> on automatically generating Typed Clojure annotations and specs.</li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li><a href="https://heapanalytics.com/blog/engineering/missing-scala-class-noclassdeffounderror">Did you know</a> there are two reasons you can get a NoClassDefFoundError on the JVM? And that one of them can happen when the class is present?</li>
<li>ClojuTRE was last week and Jan Stępień had a talk on building native binaries with Graal. The slides are up <a href="https://janstepien.com/native-clojure-with-graalvm/">here</a>, and the talk is already <a href="https://www.youtube.com/watch?v=kjZP_wBQJ2U">out</a>.</li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li>clj-new has a new version <a href="https://groups.google.com/forum/#!topic/clojure/13VCFT212Hw">out</a>: 21ca1b27f46dc324be084ba839beca555aeda387. Not sure how I feel about SHA&rsquo;s as the new version number.</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li>I&rsquo;ve mentioned Heart of Clojure before here, a new Clojure conference. They&rsquo;re now <a href="https://heartofclojure.eu/Sponsor_Heart_of_Clojure.pdf">looking</a> for sponsors for their first event next year.</li>
<li>Lambda Island has some <a href="http://clojuredatascience.com/posts/2018-09-15-data-science-with-kixi-stats.html">new screencasts</a> on data science using <a href="https://github.com/MastodonC/kixi.stats">kixi</a><a href="https://github.com/MastodonC/kixi.stats">.stats</a> from Mastodon C</li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li>Make sure you&rsquo;re not drinking anything when you read <a href="https://porkostomus.gitlab.io/posts-output/2018-09-17-Just-Juxt-34/">Just JUXT #34</a>. I won&rsquo;t spoil it for you here.</li>
</ul>
<p>I&rsquo;m Daniel Compton. I maintain public Maven repositories at <a href="https://clojars.org/">Clojars</a>, private ones at <a href="https://www.deps.co/">Deps</a>, and help fund OSS Clojure projects (along with tons of generous <a href="https://www.clojuriststogether.org/">members</a> like <a href="https://juxt.pro/">JUXT</a> and <a href="http://www.metosin.fi/">Metosin</a>) at <a href="https://www.clojuriststogether.org/">Clojurists Together</a>. If you&rsquo;ve enjoyed reading this, tell your friends to sign up at <a href="https://therepl.net/">therepl.net</a>, or post a link in your company chatroom. If you&rsquo;ve seen (or published) a blog post, library, or anything else Clojure/JVM related please reply to this to let me know about it.</p>
]]></content:encoded>
    </item>
    <item>
      <title>77: Specmonstah, podcast episode 2, and error messages</title>
      <link>https://www.therepl.net/77/</link>
      <pubDate>Mon, 10 Sep 2018 22:54:25 +1300</pubDate>
      <guid>https://www.therepl.net/77/</guid>
      <description>Notes.
Thanks to everybody who has subscribed to&#xA0;The REPL podcast&#xA0;so far, the first episode with Michael Drogalis was very well received. I&amp;rsquo;ve got a bunch of great guests lined up for the coming weeks.
-main
Next up on The REPL&#xA0;podcast, I&#xA0;talked&#xA0;to Daniel Higginbotham about Specmonstah, Clojure Spec, and his Clojure/Conj talk proposal. People&amp;rsquo;s&#xA0;favourite macros Libraries &amp;amp; Books.
specmonstah&#xA0;(mentioned above also) is a&#xA0;library for automatically generating fixtures with complex domain nREPL 0.</description>
      <content:encoded><![CDATA[<p><strong>Notes.</strong></p>
<p>Thanks to everybody who has subscribed to <a href="http://therepl.net/">The REPL podcast</a> so far, the first episode with Michael Drogalis was very well received. I&rsquo;ve got a bunch of great guests lined up for the coming weeks.</p>
<p><strong>-main</strong></p>
<ul>
<li>Next up on The REPL podcast, I <a href="https://therepl.net/episodes/2/">talked</a> to Daniel Higginbotham about Specmonstah, Clojure Spec, and his Clojure/Conj talk proposal.</li>
<li>People&rsquo;s <a href="https://clojureverse.org/t/favorite-macros/2716">favourite macros</a></li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li><a href="https://github.com/reifyhealth/specmonstah/">specmonstah</a> (mentioned above also) is a library for automatically generating fixtures with complex domain</li>
<li>nREPL 0.4.5 has been <a href="https://groups.google.com/forum/#!topic/clojure/AoUAfE2SyKg">released</a></li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li>Clojure 1.10-alpha7 is <a href="https://www.reddit.com/r/Clojure/comments/9d7p0g/clojure_1100alpha7/">out</a> with some improvements to error messages</li>
<li><a href="https://lispcast.com/is-the-little-typer-the-static-typing-book-ive-been-waiting-for/">Is The Little Typer the static typing book I&rsquo;ve been waiting for?</a></li>
<li><a href="https://twitter.com/richhickey/status/1038065826824441856">&ldquo;Not having a thing is not the same as having an empty maybe-thing&rdquo;</a></li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li>A side-by-side <a href="http://hyperpolyglot.org/lisp">reference</a> to Common Lisp, Racket, Clojure, and Emacs Lisp</li>
<li><a href="https://www.opsian.com/blog/javas-new-zgc-is-very-exciting/">The Z Garbage Collector</a> coming in Java 11 looks very exciting</li>
<li>Java is still <a href="http://blog.joda.org/2018/08/java-is-still-available-at-zero-cost.html">available</a> at zero cost</li>
<li><a href="http://lambda-the-ultimate.org/node/5548">The history of Lisp</a></li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li>Sayid is now <a href="https://github.com/clojure-emacs/sayid">part</a> of the Clojure Emacs GitHub group</li>
<li>CIDER 0.18 is <a href="https://groups.google.com/forum/#!topic/clojure/97HtI-tAzHw">out</a> with a lot of new features and changes. I&rsquo;m really proud that some of this work was able to be sponsored by Clojurists Together members.</li>
<li>A new high level diagram of CIDER&rsquo;s <a href="http://www.cider.mx/en/latest/#overview">architecture</a> from Mikhail Gusarov..</li>
<li>Figwheel Main has some neat new zero-config <a href="https://figwheel.org/docs/testing.html#auto-testing">auto-testing</a> features. I have spent many hours building up a config to test ClojureScript projects with Karma, and it looks like I&rsquo;ll be able to throw it all away and replace it with this.</li>
<li><a href="https://github.com/nubank/workspaces">Workspaces</a> from Nubank is a library/tool to help you develop UI components, similar to devcards.</li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li>Some <a href="https://clojureverse.org/t/java-10-announcement-implications-for-clojure/1583/14">comments</a> from Alex Miller on Java 10+ and Clojure</li>
<li><a href="https://dev.clojure.org/jira/browse/CLJ-1279">CLJ-1279</a> (&ldquo;Wrong number of args (-2) passed to&hellip;&rdquo;) has been fixed in the recent Clojure alpha release</li>
<li>Mike Fikes has been doing some really interesting work on <a href="https://gist.github.com/mfikes/1e2341b48b882587500547f6ba19279d">type inference</a> for the ClojureScript compiler. This can create smaller, faster code. Check out his <a href="https://twitter.com/mfikes">Twitter account</a> for some of the experiments he&rsquo;s been working on, as well as some tickets in JIRA like <a href="https://dev.clojure.org/jira/browse/CLJS-2865">CLJS-2865</a>.</li>
<li>Mike Fikes also has created some CLJS <a href="https://github.com/mfikes/cljs-perf">performance benchmarks</a> showing big speedups (2x) over a large corpus of code. Smaller real-world projects may not quite achieve this speedup.</li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li>I read a blog post from a fellow Kiwi who has been living with a <a href="http://ludwig.nz/zero-waste/">zero-waste life</a>, i.e. avoiding the creation of any waste, not just recycling it. I read it a few weeks ago, and it has been on my mind, and really affected the way that I look at food packaging, consumer culture, and how much waste that I produce.</li>
</ul>
<p>I&rsquo;m Daniel Compton. I maintain public Maven repositories at <a href="https://clojars.org/">Clojars</a>, private ones at <a href="https://www.deps.co/">Deps</a>, and help fund OSS Clojure projects (along with tons of generous <a href="https://www.clojuriststogether.org/">members</a> like <a href="https://juxt.pro/">JUXT</a>, <a href="http://www.metosin.fi/">Metosin</a>, and <a href="https://status.im/">Status</a>) at <a href="https://www.clojuriststogether.org/">Clojurists Together</a>. If you&rsquo;ve enjoyed reading this, tell your friends to sign up at <a href="https://therepl.net/">therepl.net</a>, or post a link in your company chatroom. If you&rsquo;ve seen (or published) a blog post, library, or anything else Clojure/JVM related please reply to this to let me know about it.</p>
]]></content:encoded>
    </item>
    <item>
      <title>76: The REPL podcast, all juxt all the time, and peeking behind the serverless curtain</title>
      <link>https://www.therepl.net/76/</link>
      <pubDate>Thu, 30 Aug 2018 10:37:39 +1300</pubDate>
      <guid>https://www.therepl.net/76/</guid>
      <description>Notes.
The big news this week for me is that I&amp;rsquo;m launching&#xA0;The REPL podcast! The podcast is a companion to this newsletter where we can go in-depth on some of the technical details behind the Clojure programs and libraries you use every day. The first episode is with&#xA0;Michael Drogalis&#xA0;where we talk about Pyrostore&amp;rsquo;s recent acquisition by Confluent, the future of stream processing, the future of Onyx, and data-oriented design.</description>
      <content:encoded><![CDATA[<p><strong>Notes.</strong></p>
<p>The big news this week for me is that I&rsquo;m launching <a href="http://www.therepl.net/episodes/">The REPL podcast</a>! The podcast is a companion to this newsletter where we can go in-depth on some of the technical details behind the Clojure programs and libraries you use every day. The first episode is with <a href="https://therepl.net/episodes/1/">Michael Drogalis</a> where we talk about Pyrostore&rsquo;s recent acquisition by Confluent, the future of stream processing, the future of Onyx, and data-oriented design. It&rsquo;ll be up on iTunes in the next few days, in the meantime, there&rsquo;s a link to the RSS feed on the <a href="https://therepl.net/">website</a>.</p>
<p>**I&rsquo;ve resent this newsletter as I made a mistake in the note below about David Nolen working with Suiteness.</p>
<p>-main**</p>
<ul>
<li>Late breaking news just before I hit send, David Nolen is working with <a href="https://www.suiteness.com/blog/clojurescript-suiteness-welcomes-david-nolen">Suiteness</a> via a consulting position at Cognitect. <strong>In my haste to send the previous version of this <strong><strong>newsletter</strong></strong> I overlooked that this was a consulting position, and said that he had joined Suiteness.</strong> Sorry for the misinformation.</li>
<li>Datomic just announced <a href="http://blog.datomic.com/2018/08/ion-parameters.html">Ion Parameters</a> which lets you pull configuration from AWS Systems Manager Parameter store. You could also read parameters from AWS Secrets Manager with their recent <a href="https://aws.amazon.com/about-aws/whats-new/2018/07/aws-systems-manager-parameter-store-integrates-with-aws-secrets-manager-and-adds-parameter-version-labeling/">integration</a>.</li>
<li><a href="https://porkostomus.gitlab.io/posts-output/2018-08-15-Just-Juxt/">Just Juxt</a> is a new blog series focusing on all of the things you can do with juxt</li>
<li>Mike Fikes on the <a href="http://blog.fikesfarm.com/posts/2018-08-12-two-file-clojurescript-namespace-pattern.html">Two-File ClojureScript Namespace Pattern</a>. I&rsquo;ve used this pattern quite a bit with macro code; it&rsquo;ll be good to be able to point people towards this full explanation of what&rsquo;s going on.</li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li><a href="http://tindaloscode.blogspot.com/2017/03/imitating-scala-futures-with-go.html">Imitating</a> Scala Futures with Go channels (in Go and Clojure core.async)</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li>Some <a href="http://conan.is/blogging/clojure-spec-tips.html">good tips</a> from Conan Cook on using spec, from your REPL sessions, through to ClojureScript, re-frame, and Datomic</li>
<li>Eric Normand <a href="https://lispcast.com/something-i-missed-in-rich-hickeys-last-keynote-clojure-conj-2017/">reflects</a> more on Rich Hickey&rsquo;s most recent keynote on spec</li>
<li>Spec error messages look like they will <a href="https://twitter.com/puredanger/status/1028103654241443840/photo/1">continue to improve</a> in new Clojure releases</li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li>Steve Losh on a <a href="http://stevelosh.com/blog/2018/08/a-road-to-common-lisp/">road to Common Lisp</a></li>
<li>After stagnating for quite a while, recently years Java has been doing well at keeping up with new TLS developments. <a href="http://openjdk.java.net/jeps/332">JEP 332</a> adds support for the recently finalised TLS 1.3 and is <a href="http://mail.openjdk.java.net/pipermail/jdk-dev/2018-June/001460.html">targeted</a> for JDK 11.</li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li><a href="https://andrearichiardi.com/blog/posts/clojurescript-cursive-shadow-setup.html">Setting up</a> ClojureScript, IntelliJ IDEA and Shadow CLJS</li>
<li>clj-refactor has a new <a href="https://github.com/clojure-emacs/clj-refactor.el/blob/master/CHANGELOG.md#240-2018-08-26">release</a> compatible with new versions of CIDER and Java 10</li>
<li><a href="https://github.com/artemyarulin/clojure-kotlin">How to call</a> Kotlin from Clojure</li>
<li>An <a href="http://increasinglyfunctional.com/2018/08/17/i-published-an-ios-app-with-clojurescript-and-react-native.html">experience report</a> on making an iOS app with ClojureScript and React Native</li>
<li>If you can&rsquo;t get enough Emacs on your computer, you can also listen to the <a href="http://emacscast.rakhim.org/">EmacsCast</a></li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li>Mike Fikes has been doing some interesting work on <a href="https://gist.github.com/mfikes/d0f88ae51f8ead862989a5be0caaf623">type inference</a> for the ClojureScript compiler. <a href="https://dev.clojure.org/jira/browse/CLJS-2865">CLJS-2865</a> optimises string concatenation and can give a moderate to large speed-up under string heavy workloads. <a href="https://dev.clojure.org/jira/browse/CLJS-2869">CLJS-2869</a>improves inference for cljs.core/and and cljs.core/or.</li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li>I learnt a lot about different serverless platforms from a paper <a href="http://https//www.usenix.org/system/files/conference/atc18/atc18-wang-liang.pdf">P</a><a href="https://www.usenix.org/system/files/conference/atc18/atc18-wang-liang.pdf">eeking Behind the Curtain</a>; I hadn&rsquo;t realised that AWS Lambda doesn&rsquo;t run functions from different accounts on the same VM. Well worth checking out to see what is going on underneath AWS Lambda, Google Cloud Functions, and Azure Functions.</li>
</ul>
<p>I&rsquo;m Daniel Compton. I maintain public Maven repositories at <a href="https://clojars.org/">Clojars</a>, private ones at <a href="https://www.deps.co/">Deps</a>, and help fund OSS Clojure projects (along with tons of generous <a href="https://www.clojuriststogether.org/">members</a> like <a href="https://juxt.pro/">JUXT</a>, <a href="http://www.metosin.fi/">Metosin</a>, and <a href="https://status.im/">Status</a>) at <a href="https://www.clojuriststogether.org/">Clojurists Together</a>. If you&rsquo;ve enjoyed reading this, tell your friends to sign up at <a href="https://therepl.net/">therepl.net</a>, or post a link in your company chatroom. If you&rsquo;ve seen (or published) a blog post, library, or anything else Clojure/JVM related please reply to this to let me know about it.</p>
]]></content:encoded>
    </item>
    <item>
      <title>75: Superpowers, magnets, and Apples</title>
      <link>https://www.therepl.net/75/</link>
      <pubDate>Thu, 09 Aug 2018 08:55:05 +1300</pubDate>
      <guid>https://www.therepl.net/75/</guid>
      <description>Notes.
It&amp;rsquo;s starting to warm up again in New Zealand. I&amp;rsquo;ve enjoyed not having frozen toes in the morning. Bring on spring.
-main
Congratulations to Michael Drogalis and Lucas Bradstreet, on Distributed Masonry (Onyx) being&#xA0;acquired&#xA0;by Confluent. Pyrostore&amp;rsquo;s&#xA0;infinite Kafka retention&#xA0;was a smart take on a hard problem. Clojurists Together&#xA0;is funding&#xA0;cljdoc and Shadow CLJS for the next three months. I&amp;rsquo;m looking forward to seeing what they come up with.</description>
      <content:encoded><![CDATA[<p><strong>Notes.</strong></p>
<p>It&rsquo;s starting to warm up again in New Zealand. I&rsquo;ve enjoyed not having frozen toes in the morning. Bring on spring.</p>
<p><strong>-main</strong></p>
<ul>
<li>Congratulations to Michael Drogalis and Lucas Bradstreet, on Distributed Masonry (Onyx) being <a href="https://mobile.twitter.com/MichaelDrogalis/status/1025049890064195586">acquired</a> by Confluent. Pyrostore&rsquo;s <a href="http://pyrostore.io/blog/2018/05/10/kafka-potential-past-present.html">infinite Kafka retention</a> was a smart take on a hard problem.</li>
<li>Clojurists Together <a href="https://www.clojuriststogether.org/news/q3-2018-funding-announcement/">is funding</a> cljdoc and Shadow CLJS for the next three months. I&rsquo;m looking forward to seeing what they come up with.</li>
<li>Apple has a <a href="https://jobs.apple.com/nz/search?job=114084463&amp;openJobId=114084463#&amp;openJobId=114084463">job open</a> for a developer to build a new machine learning DSL in Clojure, with a focus on low-level JVM optimisation. It looks like a pretty unique job.</li>
<li>Magnet has <a href="https://bitbucket.org/account/user/magnet-coop/projects/MXNET">published</a> the Docker images they are using for MXNet machine learning with Clojure.</li>
<li>Eric Normand on the <a href="https://lispcast.com/what-is-the-primary-superpower-of-functional-programmers/">primary superpower</a> of functional programmers</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li>But TypeScript continues to work on improving <a href="https://blogs.msdn.microsoft.com/typescript/2018/07/30/announcing-typescript-3-0/#improved-errors-and-ux">error messages</a>.</li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li>See <a href="https://chriswhocodes.com/hotspot_intrinsics_jdk10.html">which JDK10</a> methods have <a href="https://en.wikipedia.org/wiki/Intrinsic_function">intrinsics</a> defined</li>
<li>JDK 11 <a href="http://jdk.java.net/11/">early-access</a> builds are out now</li>
<li><a href="https://www.azul.com/javas-magic-sauce/">Java&rsquo;s Magic Sauce</a> gives a brief history of sun.misc.Unsafe</li>
<li><a href="http://mydailyjava.blogspot.com/2018/08/hands-on-constantdynamic-class-file.html">Hands-on</a> with Java 11&rsquo;s constantdynamic. The post talks about improving lazy idioms as one possible use-case, </li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li>Not Clojure specific (yet), but <a href="https://github.com/Fuco1/Elsa">Elsa</a> is a new Emacs static analyzer</li>
<li>CIDER has a new <a href="http://www.cider.mx/">website</a></li>
<li>Moving to <a href="http://manuel-uberti.github.io/programming/2018/08/03/figwheel-main/">Figwheel Main</a>. Clojurists Together sponsored some of this work, and I&rsquo;m pleased to see people taking advantage of it.</li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li>Clojure has <a href="https://github.com/clojure/clojure/commit/148a0c9aa83b12efaa43c72e5ee39baff0948f9a">bumped</a> it&rsquo;s ASM version</li>
<li><a href="https://dev.clojure.org/jira/browse/CLJS-1997">CLJS-1997</a> adds outward function type hint propagation. This patch should let function type hints flow further and require less manual hinting.</li>
<li>Stuart Halloway is going to be <a href="https://twitter.com/stuarthalloway/status/1025365822343131137">talking</a> about how the Clojure community <a href="https://clojure.org/community/etiquette">etiquette</a> guidelines contribute to Clojure&rsquo;s stability and suitability.</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li><a href="https://clojutre.org/2018/">ClojuTRE</a><a href="https://clojutre.org/2018/"> 2018</a> will be September 13-14th in Helsinki, Finland. Free for students, 50€ for others.</li>
<li><a href="https://heartofclojure.eu/">Heart of Clojure</a> is a new conference coming next year on August 2-3rd <strong>2019</strong>by Arne Brasseur and Martin Klepsch.</li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li>&ldquo;By now, you&rsquo;re touring with Aerosmith and throwing Matisse paintings from hotel room windows, because when you order two Matisse paintings from room service and you get three, that equation is going to be balanced.&rdquo; - James Mickens, <a href="https://scholar.harvard.edu/files/mickens/files/theslowwinter.pdf">The Slow Winter</a></li>
</ul>
<p>I&rsquo;m Daniel Compton. I maintain public Maven repositories at <a href="https://clojars.org/">Clojars</a>, private ones at <a href="https://www.deps.co/">Deps</a>, and help fund OSS Clojure projects (along with tons of generous <a href="https://www.clojuriststogether.org/">members</a> like <a href="https://juxt.pro/">JUXT</a>, <a href="http://www.metosin.fi/">Metosin</a>, and <a href="https://status.im/">Status</a>) at <a href="https://www.clojuriststogether.org/">Clojurists Together</a>. If you&rsquo;ve enjoyed reading this, tell your friends to sign up at <a href="https://therepl.net/">therepl.net</a>, or post a link in your company chatroom. If you&rsquo;ve seen (or published) a blog post, library, or anything else Clojure/JVM related please reply to this to let me know about it.</p>
]]></content:encoded>
    </item>
    <item>
      <title>74: Spec error messages, cronuts, and a boot</title>
      <link>https://www.therepl.net/74/</link>
      <pubDate>Sat, 28 Jul 2018 14:30:00 +1300</pubDate>
      <guid>https://www.therepl.net/74/</guid>
      <description>Notes.
Another long time between newsletters. Things have been quite busy lately in the Compton household with sick children, sick parents, and lots going on with Clojurists Together. Things seem to be settling back into a smoother rhythm though.
-main
Stuart Sierra continues his popular Clojure style guide series with&#xA0;Threading with Style DataScript as a&#xA0;Lingua Franca&#xA0;for domain modelling I wrote about the&#xA0;good, bad, and ugly&#xA0;of Google Cloud Platform, contrasting it with AWS.</description>
      <content:encoded><![CDATA[<p><strong>Notes.</strong></p>
<p>Another long time between newsletters. Things have been quite busy lately in the Compton household with sick children, sick parents, and lots going on with Clojurists Together. Things seem to be settling back into a smoother rhythm though.</p>
<p><strong>-main</strong></p>
<ul>
<li>Stuart Sierra continues his popular Clojure style guide series with <a href="https://stuartsierra.com/2018/07/06/threading-with-style">Threading with Style</a></li>
<li>DataScript as a <a href="http://vvvvalvalval.github.io/posts/2018-07-23-datascript-as-a-lingua-franca-for-domain-modeling.html">Lingua Franca</a> for domain modelling</li>
<li>I wrote about the <a href="https://www.deps.co/blog/google-cloud-platform-good-bad-ugly/">good, bad, and ugly</a> of Google Cloud Platform, contrasting it with AWS.</li>
<li>How King <a href="https://techblog.king.com/how-we-use-clojure-at-king-to-write-a-game-engine-editor/">uses</a> Clojure to build a game editor</li>
<li>Clojurists Together <a href="https://www.clojuriststogether.org/news/june-2018-monthly-update/">June monthly update</a> from CIDER and ClojureScript</li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li>Incanter has a new <a href="https://github.com/incanter/incanter/blob/master/Changes.md#changes-for-193">version</a> out</li>
<li>Cronut is a scheduling library, built around quartz from fellow Kiwi <a href="https://twitter.com/_d_t_w?lang=en">Derek Troy-West</a></li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li><a href="https://github.com/gnl/ghostwheel">Ghostwheel</a> is a spec omnibus library, including inline function specs (which are sorely needed in spec)</li>
<li>Clojure&rsquo;s native error messages seem to be getting a overhaul in <a href="https://dev.clojure.org/jira/browse/CLJ-2373">CLJ-2373</a>, the <a href="https://gist.github.com/stuarthalloway/d3055d1975b464e8949b854e77a746b1">output</a> looks a lot better and much less verbose.</li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li>Boot 2.8.0 and 2.8.1 are <a href="https://github.com/boot-clj/boot/blob/master/CHANGES.md#281">out</a></li>
<li>A good <a href="http://astrecipes.net/blog/2018/07/20/cmd-line-apps-with-clojure-and-graalvm/">dive</a> into compiling Clojure apps with Graal</li>
<li><a href="https://github.com/thunknyc/crntl">C Reader for the Next Thousand Lisps</a> is a Clojure reader in C, designed for you to build your own lisp with Clojure syntax.</li>
<li>Light Table is <a href="https://www.reddit.com/r/Clojure/comments/8wafyt/ann_light_table_seeks_new_maintainers/">seeking</a> new maintainers</li>
<li>Thomas Heller (shadow-cljs creator) on <a href="https://code.thheller.com/blog/shadow-cljs/2018/06/15/why-not-webpack.html">Why not Webpack?</a></li>
<li>I wrote a guide on <a href="https://www.deps.co/guides/travis-ci-latest-java/">testing against multiple JVMs</a> on Travis CI</li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li>Clojure 1.10.0-alpha5 is <a href="https://groups.google.com/forum/#!msg/clojure/ESNrjIr0JUE/BPFrzKfaBwAJ">raising</a> the minimum Java version to 8</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li>Jacek Schae has created a course on <a href="https://learnreagent.com/">Learning Reagent</a></li>
<li><a href="http://2018.clojure-conj.org/">Clojure/conj 2018</a> tickets are now <a href="https://ti.to/cognitect/clojureconj-2018">on sale</a>, and there is an open <a href="http://2018.clojure-conj.org/call-for-proposals/">call for proposals</a>. Durham looks nice!</li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li>and now for something completely different, I really enjoyed <a href="https://www.theatlantic.com/health/archive/2014/06/happily-ever-after/372573/">The Secret to Love is just Kindness</a>.</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>73: Pants, Ions</title>
      <link>https://www.therepl.net/73/</link>
      <pubDate>Thu, 07 Jun 2018 21:38:09 +1300</pubDate>
      <guid>https://www.therepl.net/73/</guid>
      <description>Notes.
It&amp;rsquo;s been a busy month or so with travel to family, but The REPL is back this week.
-main
Datomic has released a new feature:&#xA0;Ions. This is a way to run functions on your Datomic Cloud cluster. I&amp;rsquo;ve been really excited to follow cljdoc, a&#xA0;new Clojure documentation project Libraries &amp;amp; Books.
Zach Tellman&#xA0;talks&#xA0;more about his Elements of Clojure book nREPL has completed its migration to a&#xA0;new project&#xA0;on GitHub People are worried about Types.</description>
      <content:encoded><![CDATA[<p><strong>Notes.</strong></p>
<p>It&rsquo;s been a busy month or so with travel to family, but The REPL is back this week.</p>
<p><strong>-main</strong></p>
<ul>
<li>Datomic has released a new feature: <a href="http://blog.datomic.com/2018/06/datomic-ions.html">Ions</a>. This is a way to run functions on your Datomic Cloud cluster.</li>
<li>I&rsquo;ve been really excited to follow cljdoc, a <a href="https://www.reddit.com/r/Clojure/comments/8ls9j4/a_new_clojure_documentation_effort/">new Clojure documentation project</a></li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li>Zach Tellman <a href="https://leanpub.com/podcasts/frontmatter/zach-tellman-06-06-18">talks</a> more about his Elements of Clojure book</li>
<li>nREPL has completed its migration to a <a href="https://github.com/nrepl/nREPL">new project</a> on GitHub</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li>Robust Clojure: The <a href="https://bsima.me/clog/robust-clojure-nil.html">best way</a> to handle nil, and HN <a href="https://news.ycombinator.com/item?id=17172092">comments</a></li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li>Oracle plans to <a href="https://www.infoworld.com/article/3275924/java/oracle-plans-to-dump-risky-java-serialization.html">disable</a> risky Java object serialisation in the future</li>
<li>Java Mission Control was recently open sourced, but sadly most of the team was <a href="https://mobile.twitter.com/lagergren/status/999911019089559552">laid off</a> last week.</li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li><a href="https://github.com/TristeFigure/lexikon">Lexikon</a> lets you manipulate and replay your lexical environment, similarly to <a href="https://github.com/vvvvalvalval/scope-capture">scope-capture</a></li>
<li><a href="https://crossclj.info/">crossclj</a> is now <a href="https://github.com/fbellomi/crossclj">open source</a></li>
<li>Reid McKenzie <a href="https://groups.google.com/d/msg/clojure/f8ASdKwvk64/LHjNBUUcBAAJ">on</a> Pants, Bazel, and Clojure cross project builds</li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li><a href="https://dev.clojure.org/jira/browse/CLJ-2350">CLJ-2350</a>: Improve error message when calling a keyword with the wrong number of arguments</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li>Zach Tellman&rsquo;s Clojure SYNC talk is <a href="https://clojuresync.com/zach-tellman/">up</a> now</li>
<li>The final Tellman link: <a href="https://clojureverse.org/t/is-fast-in-clojure/2182/5?u=ztellman">Is = fast in Clojure?</a></li>
<li>Building a <a href="https://www.arrdem.com/2018/05/17/shelving_building_a_datalog/">datalog</a></li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li><a href="http://pharr.org/matt/blog/2018/05/31/check-rare.html">CHECK_RARE and making sense of unusual occurences</a>. This was a neat post. I like the idea of using something one step above asserts for things that should be extremely rare, but can occasionally occur.</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>72: varargs, Java 10</title>
      <link>https://www.therepl.net/72/</link>
      <pubDate>Sat, 05 May 2018 14:43:08 +1300</pubDate>
      <guid>https://www.therepl.net/72/</guid>
      <description>-main When to use&#xA0;varargs Clojurists Together April 2018&#xA0;update&#xA0;is out, with the final updates from clj-http and Figwheel. Both projects have done really great work. Rich Hickey was&#xA0;on&#xA0;the CaSE podcast and&#xA0;talked about&#xA0;some updates coming to&#xA0;Codeq. The devil is in the details with Clojure&#xA0;discusses some issues that arise in larger Clojure codebases, and some possible solutions. Libraries &amp;amp; Books. Spy&#xA0;is a spy/stub/mocking library People are worried about Types.</description>
      <content:encoded><![CDATA[<h2 id="-main">-main</h2>
<ul>
<li>When to use varargs</li>
<li>Clojurists Together April 2018 update is out, with the final updates from clj-http and Figwheel. Both projects have done really great work.</li>
<li>Rich Hickey was on the CaSE podcast and talked about some updates coming to Codeq.</li>
<li>The devil is in the details with Clojure discusses some issues that arise in larger Clojure codebases, and some possible solutions.</li>
</ul>
<h2 id="libraries--books">Libraries &amp; Books.</h2>
<ul>
<li>Spy is a spy/stub/mocking library</li>
</ul>
<h2 id="people-are-worried-about-types">People are worried about Types. ?</h2>
<p>But this week they are too excited about Graal to talk about it.</p>
<h2 id="foundations">Foundations.</h2>
<ul>
<li>Why Functional Programming Matters, translated to Clojure in the Maria cloud editor</li>
<li>There&rsquo;s an interesting chart showing Java and Clojure release lifetimes on a discussion of Java 10.</li>
<li>Apropos has a discussion of Graal</li>
<li>A discussion of Python startup time and it&rsquo;s implications on large systems and programs</li>
</ul>
<h2 id="tools">Tools.</h2>
<ul>
<li>cljfmt-graalvm compiles cljfmt to a native binary. This improves startup time dramatically. More discussion on reddit</li>
<li>Top 10 things to do with GraalVM, from the GraalVM team</li>
<li>First impressions of GraalVM</li>
<li>Me on what&rsquo;s new in Leiningen 2.8.0 and 2.8.1</li>
<li>Reid McKenzie has got early support for rendering images and MIME data in a CIDER REPL</li>
<li>lein-tools-deps lets you use a deps.edn file in your Leiningen project. Very cool.</li>
<li>tools.deps also has a new feature coming to add libraries at runtime</li>
<li>Some great Clojure testing links</li>
<li>Java Mission Control is being open sourced.</li>
<li>Stu displays your ClojureScript build size to let you find out where the volume is coming from. It has a bunch of very cool features to let you track changes over time, and see code size pre/post Closure compilation and GZIP compression.</li>
</ul>
<h2 id="learning">Learning.</h2>
<ul>
<li>Robert Stuttaford continues his bridge diary</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>71: Reagent, Clojure over Haskell</title>
      <link>https://www.therepl.net/71/</link>
      <pubDate>Fri, 27 Apr 2018 21:14:07 +1300</pubDate>
      <guid>https://www.therepl.net/71/</guid>
      <description>-main Clojurists Together is&#xA0;going to fund&#xA0;CIDER and ClojureScript from May-July. I&amp;rsquo;m really excited to see the work they can do. clj-http and Figwheel are finishing up at the end of April, and have done really great work. Carin Meier shows&#xA0;how&#xA0;to use Graal with Clojure to be able to call R and Python There&amp;rsquo;s a&#xA0;roadmap&#xA0;for Scala 3 out now. I always find it interesting to see what our JVM brethren are up to.</description>
      <content:encoded><![CDATA[<h2 id="-main">-main</h2>
<ul>
<li>Clojurists Together is going to fund CIDER and ClojureScript from May-July. I&rsquo;m really excited to see the work they can do. clj-http and Figwheel are finishing up at the end of April, and have done really great work.</li>
<li>Carin Meier shows how to use Graal with Clojure to be able to call R and Python</li>
<li>There&rsquo;s a roadmap for Scala 3 out now. I always find it interesting to see what our JVM brethren are up to.</li>
</ul>
<h2 id="libraries--books">Libraries &amp; Books.</h2>
<ul>
<li>Reagent 0.8.0 is out, with support for React 16.</li>
<li>http-kit 2.3.0 is out with a bunch of new stuff.</li>
<li>re-pressed is a clojurescript library that handles keyboard events for re-frame applications.</li>
<li>defn-spec provides a defn for spec</li>
</ul>
<h2 id="people-are-worried-about-types">People are worried about Types. ?</h2>
<ul>
<li>Why do you prefer Clojure over Haskell?</li>
<li>Promenade is a newish Clojure library that lets you do monadish things</li>
<li>How to merge recursive specs</li>
</ul>
<h2 id="foundations">Foundations.</h2>
<ul>
<li>Tim Baldridge has a good explanation of the GraalVM and associated technologies, and the tradeoffs it would bring for a Clojure implementation.</li>
</ul>
<h2 id="tools">Tools.</h2>
<ul>
<li>Clojure friendly mode with rebel-readline and expound.</li>
<li>Easier Clojure releases without commits</li>
</ul>
<h2 id="recent-developments">Recent Developments</h2>
<ul>
<li>CLJS&ndash;1627 jsdoc parsing fails to recognize union types, breaking resolution</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>70: Clojurists Together, defn</title>
      <link>https://www.therepl.net/70/</link>
      <pubDate>Wed, 18 Apr 2018 19:45:05 +1300</pubDate>
      <guid>https://www.therepl.net/70/</guid>
      <description>Notes The first three months of&#xA0;Clojurists Together&#xA0;funding for clj-http and Figwheel are coming to a close, and we&amp;rsquo;re looking for projects to fund for the next three months. We&amp;rsquo;ve published&#xA0;survey results&#xA0;on the kinds of projects our memebers are looking to support and a call for proposals. Applications close on 22 April. Please reach out to the libraries and projects that you rely on and encourage them to apply for funding.</description>
      <content:encoded><![CDATA[<h2 id="notes">Notes</h2>
<p>The first three months of <a href="https://clojuriststogether.org">Clojurists Together</a> funding for clj-http and Figwheel are coming to a close, and we&rsquo;re looking for projects to fund for the next three months. We&rsquo;ve published <a href="https://www.clojuriststogether.org/news/q2-2018-survey-results/">survey results</a> on the kinds of projects our memebers are looking to support and a call for proposals. Applications close on 22 April. Please reach out to the libraries and projects that you rely on and encourage them to apply for funding.</p>
<p>If you&rsquo;re a <a href="https://www.clojuriststogether.org/members/">sponsor</a> of Clojurists Together, thanks heaps for your support!</p>
<p>I&rsquo;m trying out different formats and email providers for this newsletter, let me know if you have any thoughts on the changes.</p>
<h2 id="-main">-main</h2>
<ul>
<li>Mike Thompson at Day8 was <a href="https://soundcloud.com/defn-771544745/34-mike-thompson-aka-wazound">interviewed</a> about re-frame on Defn.</li>
<li><a href="http://clojure-goes-fast.com/blog/java-arrays-and-unchecked-math/">Java arrays and unchecked math</a> from Clojure Goes Fast</li>
<li>More <a href="https://clojureverse.org/t/tricks-to-make-clojure-startup-time-faster/1176/2">discussion</a> of Clojure startup time and making it faster</li>
</ul>
<h2 id="libraries--books">Libraries &amp; Books.</h2>
<ul>
<li>Create your doppelgänger with <a href="https://github.com/GreenPowerMonitor/test-doubles">test-doubles</a>, a spying and stubbing library for Clojure/ClojureScript.</li>
</ul>
<p>People are worried about Types.</p>
<ul>
<li>Ambrose Bonnaire-Sergeant with probably the most perfect title for this section ever: <a href="http://frenchy64.github.io/2018/04/07/unsoundness-in-untyped-types.html">Are unsound type systems wrong?</a></li>
</ul>
<h2 id="foundations">Foundations.</h2>
<ul>
<li>Symbolic Execution: <a href="http://www.usrsb.in/symbolic-execution-intuition-and-implementation.html">Intuition and Implementation</a></li>
<li><a href="http://mail.openjdk.java.net/pipermail/announce/2018-January/000243.html">Detroit</a> is a <a href="http://mail.openjdk.java.net/pipermail/announce/2018-January/000243.html">new</a> OpenJDK project to use the Chrome V8 JavaScript engine within Java.</li>
</ul>
<h2 id="tools">Tools.</h2>
<ul>
<li>Dustin Getz has a Datomic <a href="http://www.dustingetz.com/:datomic-faq">FAQ</a></li>
<li><a href="https://github.com/immoh/lein-nsorg">lein-nsorg</a> is a leiningen plugin for reorganizing ns forms</li>
</ul>
<h2 id="learning">Learning.</h2>
<ul>
<li><a href="https://github.com/Day8/re-frame/blob/master/docs/FAQs/ViewsOnGlobalRegistration.md">How is it functional</a> to side effect globally in re-frame with the reg-* API?</li>
</ul>
<h2 id="misc">Misc.</h2>
<p><a href="https://www.youtube.com/watch?v=aZkoPNFVEkQ">&ldquo;What do you get when you combine a really crappy Mario clone, with an even crappier clone of the Donkey Kong theme song? Well if your answer is lawsuits you might be right but it&rsquo;s for a good cause.&rdquo;</a> (ClojureScript audio in the browser)</p>
]]></content:encoded>
    </item>
    <item>
      <title>69: prepls, flyovers, and tea time</title>
      <link>https://www.therepl.net/69/</link>
      <pubDate>Fri, 06 Apr 2018 09:58:47 +1300</pubDate>
      <guid>https://www.therepl.net/69/</guid>
      <description>Notes
This week&amp;rsquo;s newsletter is a bit late because I&amp;rsquo;ve been working on getting&#xA0;re-frame-10x 0.3.1&#xA0;out the door. It&amp;rsquo;s got some very cool new features, check it out if you use re-frame.
-main
clojure.org has a new&#xA0;guide&#xA0;on higher order functions Fly over&#xA0;Amsterdam with ClojureScript Ethereum&amp;rsquo;s Compact Merkle Trie in Clojure (Part I,&#xA0;Part II) I was&#xA0;interviewed&#xA0;on the Cognicast about&#xA0;Clojurists Together, this newsletter,&#xA0;Deps, and&#xA0;re-frame-10x.</description>
      <content:encoded><![CDATA[<p><strong>Notes</strong></p>
<p>This week&rsquo;s newsletter is a bit late because I&rsquo;ve been working on getting <a href="https://groups.google.com/forum/#!topic/clojurescript/5gqA0glpYls">re-frame-10x 0.3.1</a> out the door. It&rsquo;s got some very cool new features, check it out if you use re-frame.</p>
<p><strong>-main</strong></p>
<ul>
<li>clojure.org has a new <a href="https://clojure.org/guides/higher_order_functions">guide</a> on higher order functions</li>
<li><a href="http://thegeez.net/2018/04/01/flight.html">Fly over</a> Amsterdam with ClojureScript</li>
<li>Ethereum&rsquo;s Compact Merkle Trie in Clojure (<a href="https://nervous.io/clojure/crypto/2018/04/04/clojure-evm-iii/">Part I</a>, <a href="https://nervous.io/clojure/crypto/2017/10/18/clojure-evm-ii/">Part II</a>)</li>
<li>I was <a href="http://blog.cognitect.com/cognicast/140">interviewed</a> on the Cognicast about <a href="https://clojuriststogether.org/">Clojurists Together</a>, this newsletter, <a href="https://www.deps.co/">Deps</a>, and <a href="https://github.com/Day8/re-frame-10x">re-frame-10x</a>.</li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li><a href="https://github.com/walkable-server/walkable">Walkable</a> is a new library that lets you make SQL queries using Datomic pull syntax and define your schema in EDN.</li>
<li><a href="https://medium.com/@hlship/schematic-92b0b6ffdb26">Schematic</a> is a new library for configuring Components. I&rsquo;m loving the open source stuff coming out of Walmart Labs.</li>
<li>Do some <a href="https://github.com/generateme/fastmath">fastmath</a> with Java primitives</li>
<li><a href="https://github.com/aphyr/tea-time">tea-time</a> is a new task scheduler library from Kyle Kingsbury, taken from Riemann</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li>Ambrose Bonnaire-Sergeant on <a href="http://frenchy64.github.io/2018/04/04/automatic-annotations-quals.html">creating Automatic Annotation Tools</a></li>
<li>Gary Bernhardt with a clear discussion of <a href="https://www.destroyallsoftware.com/compendium/types?share_key=baf6b67369843fa2">Types for anyone who knows a programming language</a>.</li>
<li><a href="https://dev.clojure.org/jira/browse/CLJ-2271">CLJ-2271</a> would enable Expound&rsquo;s <a href="https://gist.github.com/bhb/f637ef589ef3ac3d2ca5a883fafc2c12">experimental</a> macro errors to look even better. </li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li>Datomic had a <a href="https://forum.datomic.com/t/important-security-update-0-9-5697/379">remote code execution bug</a> for people running dev or free storage. If you haven&rsquo;t already, you should update ASAP.</li>
<li>Lumo - <a href="http://benzaporzan.me/blog/2018/3/26/lumo_brightening_the_horizons_for_clojurescripting/">Brightening the horizon for ClojureScript</a></li>
<li><a href="https://medium.com/@akiroz/command-line-scripting-with-clojurescript-5e5567367713">Command line scripting with ClojureScript</a></li>
<li><a href="https://github.com/juxt/edge">Edge</a> is a great sample project from JUXT to get you up and running with a full Clojure app without weeks of work. Malcolm Sparks has a <a href="https://www.youtube.com/watch?v=xcVwxpaiwvQ">new talk</a> about Edge and the new generation of Clojure tooling.</li>
<li>Optimized Optimus <a href="https://cjohansen.no/optimized-optimus-asset-paths-clojurescript/">Asset Paths</a> from ClojureScript</li>
<li><a href="https://cambium.consulting/articles/2018/3/22/parallelizing-a-clojurescript-test-suite-part-1-the-guts-of-cljstest">Parallelizing</a> a ClojureScript test suite</li>
<li><a href="https://marketplace.visualstudio.com/items?itemName=cospaia.clojure4vscode#overview">Calva</a>: Clojure for Visual Studio Code</li>
<li>Such a genius idea, <a href="https://github.com/walmartlabs/test-reporting">test-reporting</a> (also from Walmart Labs) lets you see more context about a test failure. I&rsquo;ve come up with various workarounds to get more context when assertions fail, but this looks like a much better option.</li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li><a href="https://www.reddit.com/r/Clojure/comments/89eeiv/what_little_clojure_tricks_did_you_not_realize/dwqsu61/">Hints</a> about prepl keep dropping</li>
<li>The new CLJS <a href="https://clojurescript.org/news/2018-03-28-shared-aot-cache">Shared AOT cache</a> will speed things up compilation times, but before you turn it on, check that your dependencies macro expansions are cachable. This means not reaching out to the environment or ClojureScript build config (other than through Closure defines). </li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li><a href="http://ingesolvoll.github.io/posts/2018-04-01-learning-kee-frame-in-5-minutes/">Learning</a> kee-frame in 5 minutes, and <a href="http://ingesolvoll.github.io/posts/2018-04-01-kee-frame-putting-the-url-in-charge/">putting the URL</a> in charge</li>
<li><a href="http://isaaccambron.com/blog/2014/12/13/transducer-composition.html">Transducer composition</a></li>
<li><a href="https://clojuresync.com/emily-ashley">7 Falsehoods Programmers Believe about Time &amp; Place</a> from Clojure SYNC</li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li>Learn this one <a href="https://clojureverse.org/t/destructuring-trick/1832">weird</a> destructuring trick, and a <a href="https://www.reddit.com/r/Clojure/comments/89eeiv/what_little_clojure_tricks_did_you_not_realize/">bunch more</a></li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>68: Accessible types, depot, and ClojureScript 1.10</title>
      <link>https://www.therepl.net/68/</link>
      <pubDate>Wed, 28 Mar 2018 12:32:49 +1300</pubDate>
      <guid>https://www.therepl.net/68/</guid>
      <description>-main
ClojureScript 1.10.238 is out and the clojurescript.org website has&#xA0;a good&#xA0;rundown&#xA0;of the changes Jacek Schae has started a&#xA0;series&#xA0;on Medium distilling the&#xA0;Clojure style guide A Resilient Git Dependency Algorithm I&amp;rsquo;ve&#xA0;written up&#xA0;a summary of this years Clojure survey comments with some commentary. This is the third year I&amp;rsquo;ve done it, so it&amp;rsquo;s interesting (but a little worrying) to start seeing some of the trends. Renzo Borgatti has also&#xA0;picked out some comments&#xA0;from the Clojure Survey Libraries &amp;amp; Books.</description>
      <content:encoded><![CDATA[<p><strong>-main</strong></p>
<ul>
<li>ClojureScript 1.10.238 is out and the clojurescript.org website has a good <a href="https://clojurescript.org/news/2018-03-26-release">rundown</a> of the changes</li>
<li>Jacek Schae has started a <a href="https://medium.com/series/c4c7e4359da8">series</a> on Medium distilling the <a href="https://github.com/bbatsov/clojure-style-guide">Clojure style guide</a></li>
<li><a href="https://hypirion.com/musings/a-resilient-git-dependency-algorithm">A Resilient Git Dependency Algorithm</a></li>
<li>I&rsquo;ve <a href="https://danielcompton.net/2018/03/28/clojure-survey-2018">written up</a> a summary of this years Clojure survey comments with some commentary. This is the third year I&rsquo;ve done it, so it&rsquo;s interesting (but a little worrying) to start seeing some of the trends.</li>
<li>Renzo Borgatti has also <a href="https://gist.github.com/reborg/a9736c8f6045aa53e6022eb452a93db5">picked out some comments</a> from the Clojure Survey</li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li><a href="https://github.com/JoelSanchez/ventas-bidi-syntax">ventas-bidi-syntax</a> gives you human optimised bidi routes</li>
<li>Cambium structured logging <a href="https://groups.google.com/forum/#!topic/clojure/0I3gY4EW0wY">0.9.2</a> is out</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li>This <a href="https://scala-lang.org/blog/2018/03/19/accessible-scala.html">proposal</a> for improving the text to speech accessibility of Scala types is interesting.</li>
<li><a href="http://danlebrero.com/2018/03/20/production-data-never-lies/">Generating</a> Kafka log schemas using spec-provider</li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li>Java 10 continues to improve behaviour <a href="https://www.opsian.com/blog/java-on-docker/">in Docker containers</a></li>
<li><a href="https://www.reddit.com/r/java/comments/86ce66/java_long_term_support/">Java long term support</a></li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li>I&rsquo;ve been working on <a href="https://github.com/Day8/re-frame-10x">re-frame-10x</a> and we recently released version 0.3.0. This release includes <a href="https://github.com/Day8/re-frame-debux#show-me">form level code tracing</a>. If you use re-frame, I recommend you take a look.</li>
<li>Val Waeselynck has an excellent guide out on <a href="https://clojure.org/guides/repl/introduction">Programming at the REPL</a></li>
<li><a href="https://github.com/Olical/depot">Depot</a> helps you find new versions of your deps.edn dependencies</li>
<li>I wrote about <a href="http://danielcompton.net/2018/03/21/how-to-serve-clojurescript">how to serve</a> ClojureScript files in development without caching bugs</li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li><a href="https://dev.clojure.org/jira/browse/CLJS-2495">CLJS-2495</a>: Closure compilation errors should stop CLJS compilation has been fixed </li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li>Guide to ClojureScript <a href="https://clojurescript.org/guides/ns-forms">namespaces</a></li>
<li>Did you know ClojureScript has a <a href="https://clojurescript.org/reference/javascript-api">JavaScript API</a>? Now you do.</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>67: Clojure survey, macrology, Elements of Clojure</title>
      <link>https://www.therepl.net/67/</link>
      <pubDate>Tue, 20 Mar 2018 20:53:52 +1300</pubDate>
      <guid>https://www.therepl.net/67/</guid>
      <description>-main
The&#xA0;State of Clojure 2018&#xA0;survey results are out now. Worth reading to see where the community is at. Eric Normand on&#xA0;What Clojure Needs to Grow&#xA0;+ Reddit&#xA0;discussion Data mining Clojars&#xA0;for Java 9 compatibility issues The logging&#xA0;bear trap Macros, meta, and logging&#xA0;with some clever macrology from Howard Lewis Ship Libraries &amp;amp; Books.
Zach Tellman has&#xA0;finished a complete draft&#xA0;of his book Elements of Clojure.</description>
      <content:encoded><![CDATA[<p><strong>-main</strong></p>
<ul>
<li>The <a href="http://blog.cognitect.com/blog/2017/1/31/clojure-2018-results">State of Clojure 2018</a> survey results are out now. Worth reading to see where the community is at.</li>
<li>Eric Normand on <a href="https://www.youtube.com/watch?v=VPp0ahoQR3o">What Clojure Needs to Grow</a> + Reddit <a href="https://www.reddit.com/r/Clojure/comments/858g9z/what_clojure_needs_to_grow_a_boring_web_framework/">discussion</a></li>
<li><a href="https://tirkarthi.github.io/clojure/2018/03/18/data-mining-clojars.html">Data mining Clojars</a> for Java 9 compatibility issues</li>
<li>The logging <a href="https://circleci.com/blog/how-a-simple-logging-problem-turned-into-a-bear-trap-lessons-learned/">bear trap</a></li>
<li><a href="https://medium.com/@hlship/macros-meta-and-logging-575d5047924c">Macros, meta, and logging</a> with some clever macrology from Howard Lewis Ship</li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li>Zach Tellman has <a href="https://groups.google.com/forum/#!topic/elements-of-clojure/t_Uqc8F0Ch0">finished a complete draft</a> of his book Elements of Clojure. He&rsquo;s also doing an <a href="https://clojureverse.org/t/ama-with-zach-tellman-author-of-elements-of-clojure-on-wednesday-march-28th/1795">AMA</a> on ClojureVerse next week. Chas Emerick (among many others) has <a href="https://twitter.com/cemerick/status/974482218692247552">high praise</a> for it:<br>
&ldquo;This is a great book that uses Clojure as the medium to explore some of the essential questions in computing, and maybe some ways to find an answer or two.<br>
Zach has one of the sharpest minds I&rsquo;ve ever encountered. You&rsquo;d do well to soak this up.&rdquo;</li>
<li>I&rsquo;m a bit late on this, but Sean Corfield has taken over maintenance of core.cache and core.memoize and both have new releases <a href="https://groups.google.com/forum/#!topic/clojure/i_UiHQr18_U">out</a>.</li>
<li><a href="https://github.com/kapok-lang/kapok">Kapok</a> is a new lisp on the Erlang VM</li>
<li><a href="https://github.com/clojure-emacs/piggieback">Piggieback</a> is seeing some new activity from Bruce Hauman and Bozhidar Batsov</li>
<li><a href="https://medium.com/@kaal_daari/announcing-confuse-a-library-for-classification-metrics-in-clojure-301024097485">Confuse</a> is a library for machine learning classification metrics</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li><a href="https://www.reddit.com/r/Clojure/comments/84wn29/are_there_any_libraries_that_make_clojurespec/">Are there any libraries that make clojure.spec less verbose?</a></li>
<li>I agree with <a href="https://clojureverse.org/t/improving-error-messages-in-clojure-as-a-library/1765/20">Tim Gilbert</a> and <a href="https://www.reddit.com/r/Clojure/comments/858g9z/what_clojure_needs_to_grow_a_boring_web_framework/dvwet9z/">Tim Baldridge</a> that Clojure&rsquo;s error messages have gotten worse with the introduction of spec.</li>
<li>Expound has <a href="https://gist.github.com/bhb/f637ef589ef3ac3d2ca5a883fafc2c12">experimental support</a> for providing suggestions to correct syntactic errors in macros.</li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li><a href="https://groups.google.com/forum/#!topic/clojure-dev/JlO8ZYL-0aQ">Algebra of compatibility</a> in test.check, and how Clojure does deprecations</li>
<li><a href="https://dev.clojure.org/jira/browse/CLJS-1439">CLJS-1439</a> has been fixed, it adds type annotations for goon-define vars</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li>A video from Clojure SYNC is out: <a href="https://clojuresync.com/baishampayan-ghose/">Revenge of the Pragmatists</a></li>
<li><a href="https://www.maria.cloud/gist/9d197b133767cdc7c7a78cdc0208f5a4">Guess My Number</a> with maria.cloud</li>
<li>An <a href="http://techblog.telia.no/blog/experience-report-hiring-for-clojure-script-is-easy">experience report</a> for hiring Clojure developers</li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li><a href="http://rachelbythebay.com/">rachelbythebay</a> is one of my favourite personal blogs, along with <a href="http://prog21.dadgum.com/">Programming in the 21st Century</a> (RIP). Here&rsquo;s a good <a href="http://rachelbythebay.com/w/2018/03/16/slowroad/">war story</a> of troubleshooting IPv6 issues.</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>66: object memory meters, flex box, and scope creep</title>
      <link>https://www.therepl.net/66/</link>
      <pubDate>Wed, 14 Mar 2018 21:36:00 +1300</pubDate>
      <guid>https://www.therepl.net/66/</guid>
      <description>-main
One-box stream processing with CSP Guildsman Scope Creep Stateless transient flags&#xA0;and some notes on CHAMP hash maps from Christopher Grande Libraries &amp;amp; Books.
denisovans&#xA0;is a library that adapts neanderthal to be a core.matrix backend kee-frame&#xA0;- re-frame with batteries included People are worried about Types.&#xA0;?
A&#xA0;new library for&#xA0;coercing from specs Some nice&#xA0;error messages&#xA0;from the Urn lisp Foundations.
Raw string literals&#xA0;proposal&#xA0;for Java.</description>
      <content:encoded><![CDATA[<p><strong>-main</strong></p>
<ul>
<li><a href="https://adambard.com/blog/stream-processing-core-async/">One-box stream processing with CSP</a></li>
<li><a href="https://bpiel.github.io/guildsman/posts/creeping-2018-03-01/">Guildsman Scope Creep</a></li>
<li><a href="http://clj-me.cgrand.net/2018/03/05/datastructures-stateless-transient-flags/">Stateless transient flags</a> and some notes on CHAMP hash maps from Christopher Grande</li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li><a href="https://github.com/cailuno/denisovan">denisovans</a> is a library that adapts neanderthal to be a core.matrix backend</li>
<li><a href="https://github.com/ingesolvoll/kee-frame">kee-frame</a> - re-frame with batteries included</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li>A new library for <a href="https://github.com/wilkerlucio/spec-coerce">coercing from specs</a></li>
<li>Some nice <a href="http://urn-lang.com/tutorial/03-finding-errors.html">error messages</a> from the Urn lisp</li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li>Raw string literals <a href="http://openjdk.java.net/jeps/326">proposal</a> for Java. I&rsquo;ve long wished for something like this in Clojure.</li>
<li>In many ways, React is now a foundation to much of the ClojureScript ecosystem. Here&rsquo;s a sneak peek of <a href="https://reactjs.org/blog/2018/03/01/sneak-peek-beyond-react-16.html">what&rsquo;s coming</a> after React 16 with improvements for slower network connections and slower devices.</li>
<li><a href="https://blogs.oracle.com/java/jdbc-next%3a-a-new-asynchronous-api-for-connecting-to-a-database">JDBC Next</a> is a new API being developed to allow asynchronous access to databases</li>
<li>A very interesting <a href="https://www.reddit.com/r/programming/comments/82wpiw/the_redmonk_programming_language_rankings_january/dvdzvqt/">critique</a> of Scala, worth reading to see where Clojure could also improve</li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li>An <a href="https://juxt.pro/blog/posts/nrepl.html">overview</a> of the nREPL</li>
<li><a href="https://github.com/healthfinch/depstar">depstar</a> is a clj based (clj the tool, not clj the language or clj the file extension) uberjarrer</li>
<li><a href="http://clojure-goes-fast.com/blog/introspection-tool-object-memory-meter/">object memory meter</a> is a very cool tool that lets you find out how much memory an object/data structure is using.</li>
<li>Lightning fast <a href="https://cambium.consulting/articles/2018/3/13/lightning-fast-testing-for-clojurescript-react-components">testing</a> for ClojureScript React components</li>
<li>Content defined <a href="http://clj-me.cgrand.net/2018/03/09/content-defined-dependency-shading/">dependency shading</a></li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li><a href="https://dev.clojure.org/jira/browse/TDEPS-9">TDEPS-9</a> is a ticket for adding authentication to Maven repositories to tools.deps.alpha</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li>Robert Stuttaford&rsquo;s <a href="https://www.stuttaford.me/2018/03/03/bridge-dev-diary--datomic-mode/">dev diary</a> building a Datomic app for ClojureBridge</li>
<li>12 things learned from <a href="https://luchini.nyc/posts/2018-03-07-12-things-i-learned-evangelizing-clojure-at-work/">evangelizing</a> Clojure at work</li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li><a href="https://medium.com/subform/why-not-flexbox-ddbe60396163">Why not Flexbox?</a> by Kevin Lynagh</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>65: Redux, looking graphs, apropos</title>
      <link>https://www.therepl.net/65/</link>
      <pubDate>Tue, 06 Mar 2018 18:30:15 +1300</pubDate>
      <guid>https://www.therepl.net/65/</guid>
      <description>-main
Clojurists Together has the&#xA0;February update&#xA0;out. Bruce Hauman and Lee Hinman have been doing some really great work. We&amp;rsquo;ve also had a bunch of new signups since the post came out which is also great. Mic check&#xA0;from Christophe Grand with what he&amp;rsquo;s been up to. The&#xA0;Lisp Game Jam&#xA0;is on from 20-30 April 2018 Apropos is a weekly live discussion of Clojure/ClojureScript news with some panelists and then some&#xA0;live coding.</description>
      <content:encoded><![CDATA[<p><strong>-main</strong></p>
<ul>
<li>Clojurists Together has the <a href="https://clojuriststogether.org/news/february-2018-monthly-update/">February update</a> out. Bruce Hauman and Lee Hinman have been doing some really great work. We&rsquo;ve also had a bunch of new signups since the post came out which is also great.</li>
<li><a href="http://clj-me.cgrand.net/2018/03/05/mic-check/">Mic check</a> from Christophe Grand with what he&rsquo;s been up to.</li>
<li>The <a href="https://itch.io/jam/lisp-game-jam-2018">Lisp Game Jam</a> is on from 20-30 April 2018</li>
<li>Apropos is a weekly live discussion of Clojure/ClojureScript news with some panelists and then some live coding. Cool idea and format, episode one is out now, give it a <a href="https://www.youtube.com/watch?v=KG9uFtXaqYg&amp;feature=youtu.be">watch</a>.</li>
<li>Redux in <a href="http://200ok.ch/posts/minimal-redux-clojurescript.html">30 lines</a> of ClojureScript</li>
<li>Oliver Hine goes <a href="https://juxt.pro/blog/posts/through-the-looking-graph.html">through the looking graph</a>, exploring GraphQL.</li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li><a href="https://github.com/kennytilton/matrix/tree/master/cljs/matrix">Matrix</a> is a data flow/spreadsheet like/reactive programming library for ClojureScript, and a port of the Common Lisp library <a href="http://smuglispweeny.blogspot.co.nz/2008/02/cells-manifesto.html">Cells</a>.</li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li>Bruce Hauman released <a href="https://github.com/bhauman/rebel-readline">rebel-readline</a>, a terminal readline library for Clojure/ClojureScript, and has integrated it into the most recent release of <a href="https://github.com/bhauman/lein-figwheel/releases/tag/v0.5.15">Figwheel</a>. This work was sponsored by Clojurists Together.</li>
<li>A collection of <a href="https://github.com/narkisr/awesome-clojure-repl">Awesome Clojure REPL</a> resources</li>
<li>While not strictly a Clojure tool, CircleCI has <a href="https://circleci.com/blog/sunsetting-1-0/">announced</a> end of life for v1.0 at the end of August. I was able to move some Clojure projects to 2.0 a few months ago and it wasn&rsquo;t too tricky, especially with their <a href="https://circleci.com/docs/2.0/language-clojure/">Clojure migration guide</a>.</li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li><a href="https://clojureverse.org/t/clojurescript-1-10-x-new-quick-start-feedback-please/1679">Feedback requested</a> on the new ClojureScript 1.10 quick start</li>
</ul>
<p><strong>Misc.</strong></p>
<p><a href="https://www.youtube.com/watch?v=R13BD8qKeTg">The Bayesian Trap</a></p>
]]></content:encoded>
    </item>
    <item>
      <title>64: 10x programmers, structural diffs, and whimsy</title>
      <link>https://www.therepl.net/64/</link>
      <pubDate>Mon, 26 Feb 2018 21:52:17 +1300</pubDate>
      <guid>https://www.therepl.net/64/</guid>
      <description>-main
Autochrome&amp;rsquo;s&#xA0;structural diffs for Clojure source code are very cool. I&amp;rsquo;ve long wished for something like this. Metosin have recently&#xA0;published&#xA0;Retit, a new router for Clojure and ClojureScript. They&amp;rsquo;ve written about their&#xA0;motivations&#xA0;for creating it, and&#xA0;integrating it with Ring Using Clojure macros&#xA0;to clean up error handling Replacing&#xA0;the Clojurians Slack log How we built Whimsical&#xA0;(with Clojure, ClojureScript, Aleph, reagent, and re-frame) Libraries &amp;amp; Books.</description>
      <content:encoded><![CDATA[<p><strong>-main</strong></p>
<ul>
<li><a href="http://fazzone.github.io/autochrome.html">Autochrome&rsquo;s</a> structural diffs for Clojure source code are very cool. I&rsquo;ve long wished for something like this.</li>
<li>Metosin have recently published <a href="https://github.com/metosin/reitit">Retit</a>, a new router for Clojure and ClojureScript. They&rsquo;ve written about their <a href="http://www.metosin.fi/blog/reitit/">motivations</a> for creating it, and <a href="http://www.metosin.fi/blog/reitit-ring/">integrating it with Ring</a></li>
<li><a href="https://jakemccrary.com/blog/2018/02/18/using-clojure-macros-for-nicer-error-handling/">Using Clojure macros</a> to clean up error handling</li>
<li><a href="https://clojureverse.org/t/replacing-the-clojurians-slack-log/1614">Replacing</a> the Clojurians Slack log</li>
<li><a href="https://whimsical.co/tech/how-we-built-whimsical/">How we built Whimsical</a> (with Clojure, ClojureScript, Aleph, reagent, and re-frame)</li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li>Programming Clojure has a <a href="https://pragprog.com/book/shcloj3/programming-clojure-third-edition">3rd edition</a> out with new sections on transducers and spec.</li>
<li><a href="https://github.com/edvorg/configuron">Configuron</a> is similar to <a href="https://github.com/weavejester/environ">environ</a>, but reloads changes when your project.clj changes, and has ClojureScript support.</li>
<li><a href="https://github.com/mpenet/thorn">thorn</a> is a library for detecting homographs (strings that look similar/the same but have different characters). <a href="https://www.b-list.org/weblog/2018/feb/11/usernames/">&lsquo;Let&rsquo;s talk about usernames&rsquo;</a> is a good primer on why you&rsquo;d want to use thorn.</li>
<li><a href="https://github.com/tirkarthi/clj-http-ssrf">clj-http-ssrf</a> helps you prevent server side request forgeries when making requests with clj-http</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li><a href="https://groups.google.com/forum/#!topic/clojure/Tdb3ksDeVnU">s/valid? does not tell me if the data is valid as supplied</a>, the dangers of using conformers for coercion, and Alex Miller&rsquo;s strong warning against it.</li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li>I&rsquo;ve been working for quite a while on <a href="https://github.com/Day8/re-frame-10x">re-frame-10x</a> (née re-frame-trace) a debugging and inspection tool for re-frame-apps. We <a href="https://groups.google.com/forum/#!topic/clojurescript/kma8ltFR8Hg">announced</a> a major new revamp of it this week, if you use re-frame, I&rsquo;d highly recommend checking it out.</li>
<li><a href="https://dev.clojure.org/jira/browse/TNS-48">TNS-48</a>: Ability to track files that are not namespaces </li>
<li><a href="http://blog.datomic.com/2018/02/access-control-in-datomic-cloud.html">Access control</a> in Datomic Cloud</li>
<li>Reid McKenzie&rsquo;s <a href="https://www.arrdem.com/2018/02/26/docs_sketches/">Docs Sketches</a></li>
<li><a href="https://juxt.pro/blog/posts/nrepl.html">Overview of the nREPL</a></li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li><a href="https://groups.google.com/forum/#!topic/clojure/-cjnYvSLmH4">Why doesn&rsquo;t Clojure support raw strings?</a></li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li>A <a href="https://medium.freecodecamp.org/here-is-a-quick-overview-of-the-similarities-and-differences-between-clojurescript-and-javascript-c5bd51c5c007">visual overview</a> of the similarities and differences between ClojureScript and JavaScript</li>
<li>Clojurians, <a href="https://medium.com/@jiyinyiyong/clojurians-please-share-your-knowledges-with-blogs-c674503f54a">please share your knowledge with blogs</a></li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>63: AI fire alarms, Parinfer, Clojure book deals</title>
      <link>https://www.therepl.net/63/</link>
      <pubDate>Mon, 19 Feb 2018 21:35:19 +1300</pubDate>
      <guid>https://www.therepl.net/63/</guid>
      <description>-main
Renzo Borgatti has a&#xA0;list&#xA0;of Rich Hickey&amp;rsquo;s answers to a bunch of commonly asked questions. Reasoning about systems Libraries &amp;amp; Books.
Humble Bundle has a&#xA0;deal&#xA0;on a bunch of O&amp;rsquo;Reilly FP books, including Living Clojure, Clojure Cookbook, and Clojure Programming. People are worried about Types.&#xA0;?
Spec&#xA0;making errors worse&#xA0;in Clojure 1.9 Foundations.
Project Detroit&#xA0;seeks to bring the V8 JavaScript engine to OpenJDK The Java SE&#xA0;roadmap&#xA0;has been updated with support for Java 8 until January 2019.</description>
      <content:encoded><![CDATA[<p><strong>-main</strong></p>
<ul>
<li>Renzo Borgatti has a <a href="https://gist.github.com/reborg/dc8b0c96c397a56668905e2767fd697f">list</a> of Rich Hickey&rsquo;s answers to a bunch of commonly asked questions.</li>
<li><a href="https://www.hillelwayne.com/post/reasoning-about-systems/">Reasoning about systems</a></li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li>Humble Bundle has a <a href="https://www.humblebundle.com/books/functional-programming-books">deal</a> on a bunch of O&rsquo;Reilly FP books, including Living Clojure, Clojure Cookbook, and Clojure Programming.</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li>Spec <a href="https://www.reddit.com/r/Clojure/comments/7wy8l0/defn_podcast_31_bruce_hauman/du4wmr1/">making errors worse</a> in Clojure 1.9</li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li><a href="https://react-etc.net/entry/project-detroit-seeks-to-bring-the-v8-javascript-engine-to-openjdk">Project Detroit</a> seeks to bring the V8 JavaScript engine to OpenJDK</li>
<li>The Java SE <a href="http://www.oracle.com/technetwork/java/eol-135779.html">roadmap</a> has been updated with support for Java 8 until January 2019.</li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li>Cursive <a href="https://groups.google.com/forum/#!topic/cursive/ZJ4fcp3A988">now supports</a> Parinfer v3</li>
<li>Pyro is a <a href="https://github.com/venantius/pyro">new library</a> that looks like it will vastly improve the experience of Clojure stacktraces, by showing the actual code that failed in the stacktrace.</li>
<li>The suite of core Clojure tooling continues to expand with <a href="https://github.com/cognitect-labs/test-runner">test-runner</a>.</li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li>Good note from Alex Miller on what&rsquo;s involved in <a href="https://groups.google.com/d/msg/clojure-dev/EN6c93o17y8/nY7nJElLCQAJ">handling patches</a>.</li>
<li><a href="https://groups.google.com/forum/#!topic/clojure-dev/8YJJM8lJuQs">Allowing</a> custom read-cond features</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li>Robert Stuttaford&rsquo;s <a href="https://www.stuttaford.me/2018/02/18/a-clojure-learning-journey/">Clojure learning journey</a> building a registration system for ClojureBridge</li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li>&ldquo;In 1901, two years before helping build the first heavier-than-air flyer, Wilbur Wright told his brother that powered flight was fifty years away. In 1939, three years before he personally oversaw the first critical chain reaction in a pile of uranium bricks, Enrico Fermi voiced 90% confidence that it was impossible to use uranium to sustain a fission chain reaction.&rdquo; - <a href="https://intelligence.org/2017/10/13/fire-alarm/">There&rsquo;s No Fire Alarm for Artificial General Intelligence</a></li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>62: prepl, Clojurists Together, and readline</title>
      <link>https://www.therepl.net/62/</link>
      <pubDate>Mon, 12 Feb 2018 10:22:21 +1300</pubDate>
      <guid>https://www.therepl.net/62/</guid>
      <description>Notes.
Sorry for the less-than-weekly cadence of The REPL lately. Things have been pretty busy at work and home, plus it&amp;rsquo;s summer in NZ so I&amp;rsquo;ve been spending as much time at the beach as possible. Things are starting to settle down though, and The REPL should be returning to a more regular rhythm.
Thanks for reading!
-main
The thing I&amp;rsquo;m personally most excited about this week is the recent&#xA0;announcement&#xA0;from Clojurists Together that we have funded clj-http and Figwheel in our first funding round.</description>
      <content:encoded><![CDATA[<p><strong>Notes.</strong></p>
<p>Sorry for the less-than-weekly cadence of The REPL lately. Things have been pretty busy at work and home, plus it&rsquo;s summer in NZ so I&rsquo;ve been spending as much time at the beach as possible. Things are starting to settle down though, and The REPL should be returning to a more regular rhythm.</p>
<p>Thanks for reading!</p>
<p><strong>-main</strong></p>
<ul>
<li>The thing I&rsquo;m personally most excited about this week is the recent <a href="https://clojuriststogether.org/news/q1-2018-funding-announcement/">announcement</a> from Clojurists Together that we have funded clj-http and Figwheel in our first funding round. We&rsquo;ve been chipping away at this since January 2016, and it feels really good to finally start funding projects. If you&rsquo;ve signed up as a <a href="https://clojuriststogether.org/members/">member</a>, I really truly appreciate it.</li>
<li>Bruce Hauman has a <a href="https://github.com/bhauman/rebel-readline/blob/master/README.md">very cool demo</a><a href="https://github.com/bhauman/rebel-readline/blob/master/README.md"> and prerelease</a> of a new readline library he is working on for Clojure/ClojureScript.</li>
<li>Nikita Propov on <a href="http://tonsky.me/blog/hiccup/">macros and API design</a>, using the specific case of HTML generation. It added something to the way I think about API design when I read it.</li>
<li>Ramsey Nassar is <a href="https://twitter.com/ra/status/962771241215119360">definitely not working on a post-Clojure lisp</a>.</li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li>Java Concurrency in Practice is <a href="https://www.amazon.com/gp/product/0321349601/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0321349601&amp;linkCode=as2&amp;tag=briangoetz-20&amp;linkId=33acb294ba490e7ce458d5c456bd5817">on sale</a> in paperback and Kindle form</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li><a href="http://narkisr.com/posts/04-02-2018-types-mismatch/">When types are eating away your sanity</a>. With a title like that, how could I not link it?</li>
<li><a href="https://www.youtube.com/watch?v=xLB8Xgt8lpA">Parsing with clojure.spec</a></li>
<li>Twitter poll and discussion on where to <a href="https://twitter.com/arrdem/status/962427552315748352">locate your specs</a></li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li><a href="https://blog.gypsyengineer.com/en/tech/what-is-new-in-java-10-episode-one.html">What&rsquo;s coming in Java 10</a></li>
<li>A <a href="https://www.youtube.com/watch?v=tShc0dyFtgw">talk</a> describing the low-latency Z Garbage Collector from some of the team.</li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li><a href="https://lambdaisland.com/blog/09-02-2018-reloading-woes">C</a><a href="https://lambdaisland.com/blog/09-02-2018-reloading-woes">ode reloading woes</a> (of which I&rsquo;ve had many)</li>
<li>shadow-cljs has a snazzy looking <a href="http://shadow-cljs.org/">docs site</a></li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li>The most intriguing news this week was this <a href="https://github.com/clojure/clojure/commit/86a158d0e0718f5c93f9f2bb71e26bc794e7d58e">commit</a> from Rich Hickey introducing prepl. Alex Miller gives some more context <a href="https://www.reddit.com/r/Clojure/comments/7wdlq4/first_cut_of_prepl_%E8%B7%AF_clojureclojure86a158d/dtzjl3n/">on Reddit</a>.</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li>Purelyfunctional.tv has a <a href="https://purelyfunctional.tv/courses/understanding-re-frame/">new course</a> on understanding re-frame</li>
<li><a href="https://medium.com/@joelsanchezclj/prerendering-a-re-frame-app-with-chrome-headless-bb875de31fd0">Prerendering a re-frame app with headless Chrome</a></li>
<li><a href="http://dragan.rocks/articles/18/Interactive-GPU-Programming-2-Hello-OpenCL">Interactive GPU programming with OpenCL</a></li>
<li><a href="https://cambium.consulting/articles/2018/2/8/the-power-of-clojure-debugging">The Power of Clojure: Debugging</a></li>
<li><a href="https://www.reddit.com/r/Clojure/comments/7w5ceh/machine_learning_with_clojure_in_2018/">Machine learning with Clojure in 2018</a></li>
</ul>
<p><strong>Misc.</strong></p>
<p><a href="https://www.youtube.com/watch?v=7AO4wz6gI3Q">Bryan Cantrill - The Hurricane&rsquo;s Butterfly: Debugging Pathologically Performing Systems</a></p>
]]></content:encoded>
    </item>
    <item>
      <title>61: Datomic Cloud, specs, and Atoms</title>
      <link>https://www.therepl.net/61/</link>
      <pubDate>Wed, 31 Jan 2018 12:43:23 +1300</pubDate>
      <guid>https://www.therepl.net/61/</guid>
      <description>Notes.
Thanks to everyone who sent me info about GraphQL after the last newsletter, it was very helpful!
-main
The annual Clojure survey is&#xA0;now on. It&amp;rsquo;s worth your time to fill it out. I&amp;rsquo;m looking forward to seeing the results this year, and what people are looking for improvements on. Datomic Cloud&#xA0;is now out, and also has a post&#xA0;on&#xA0;HA. The new pricing model opens Datomic up to a much wider audience.</description>
      <content:encoded><![CDATA[<p><strong>Notes.</strong></p>
<p>Thanks to everyone who sent me info about GraphQL after the last newsletter, it was very helpful!</p>
<p><strong>-main</strong></p>
<ul>
<li>The annual Clojure survey is <a href="http://blog.cognitect.com/blog/2018/01/23/2018-clojure-community-survey">now on</a>. It&rsquo;s worth your time to fill it out. I&rsquo;m looking forward to seeing the results this year, and what people are looking for improvements on.</li>
<li><a href="https://www.datomic.com/index.html">Datomic Cloud</a> is now out, and also has a post on <a href="http://blog.datomic.com/2018/01/high-availability-in-datomic-cloud.html">HA</a>. The new pricing model opens Datomic up to a much wider audience. Previously if you wanted to build a small project using Datomic you had to choose between paying for a $5,000 annual license after one year, getting no updates to Datomic after a year, or using Datomic Free which has other limitations. Now your Datomic license scales with your usage, and has a much lower entry point.</li>
<li>I really enjoyed Zach Tellman&rsquo;s <a href="http://vijaykiran.com/2018/01/defn-podcast-30-zach-tellman/">interview</a> on Defn, well worth your time</li>
<li>Clojure Goes Fast - <a href="http://clojure-goes-fast.com/blog/introspection-tools-java-decompilers/">Introsepction tools: Java decompilers</a></li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li>Russ Olsen has a new book coming out called <a href="https://pragprog.com/book/roclojure/getting-clojure">Getting Clojure</a>. It&rsquo;s in beta now.</li>
<li><a href="https://github.com/reborg/parallel">Parallel</a> is a new library for parallel functions</li>
<li><a href="https://github.com/Otann/wrench">wrench</a> is another configuration library</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li><a href="http://conan.is/blogging/a-spec-for-urls-in-clojure.html">A spec for URLs</a></li>
<li><a href="https://juxt.pro/blog/posts/parsing-with-clojure-spec.html">Parsing with Clojure Spec</a></li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li><a href="https://gist.github.com/djspiewak/464c11307cabc80171c90397d4ec34ef">Quick tips for fast code on the JVM</a></li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li>Jacek Schae on <a href="https://medium.com/@jacekschae/slick-clojure-editor-setup-with-atom-a3c1b528b722">setting up Atom</a> for Clojure development</li>
<li><a href="https://sunng.info/blog/custom-jre-for-clojure-app-distribution.html">lein-jlink</a> builds on JDK 9&rsquo;s jlink tool, and lets you build a custom (small) JRE for your Clojure app</li>
<li>shadow-cljs has a new <a href="https://shadow-cljs.github.io/docs/UsersGuide.html">user guide</a></li>
<li>Easily <a href="http://feeds.feedblitz.com/~/518895708/0/atomicspin~Easily-Reloading-your-Clojure-Project-in-Spacemacs/">reloading</a> your Clojure project in Spacemacs</li>
<li>A discussion on <a href="https://groups.google.com/forum/#!topic/clojure/f8ASdKwvk64">Bazel as a Clojure build tool</a>. I&rsquo;d been hoping for </li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li>clojure tools 1.9.0.315 and tools.deps.alpha 0.5.342 are <a href="https://groups.google.com/forum/#!topic/clojure/RlHjnJPpFbU">out</a></li>
<li><a href="https://clojure.org/news/2018/01/05/git-deps">Git Deps for Clojure</a>. I&rsquo;m not convinced that this is going to work very well in practice for public libraries, but I&rsquo;ll acknowledge that I&rsquo;m a bit <a href="https://www.deps.co/">biased</a>. It&rsquo;s definitely interesting, and worth watching.</li>
<li>There&rsquo;s been some recent discussion about <a href="https://groups.google.com/forum/#!topic/clojure/iqB_AAoqXD8">Clojure startup time</a></li>
<li>A post on the Clojure-Dev mailing list about the locking macro being <a href="https://groups.google.com/forum/#!topic/clojure-dev/dJZtRsfikXU">2x slower</a>than a synchronised Java block</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li><a href="http://www.rubygeek.com/2018/01/17/cool-things-in-clojure-1-dot-9">Cool things in Clojure 1.9</a> from Nola Stowe</li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li><a href="http://soveran.com/popularity.html">Popularity</a> - &ldquo;Technical analysis is hard work. Following the crowd is easy, but it&rsquo;s often a shortcut to the wrong place.&rdquo;</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>60: Nitty-gritty details, slow starts, fast profiling</title>
      <link>https://www.therepl.net/60/</link>
      <pubDate>Fri, 12 Jan 2018 19:30:00 +1300</pubDate>
      <guid>https://www.therepl.net/60/</guid>
      <description>Notes.
Welcome back to the first issue of The REPL in 2018. If you took time off, I hope you had a great break away.
I&amp;rsquo;ve got a favour to ask this week. At&#xA0;Day8&#xA0;we&amp;rsquo;re evaluating different backend technologies and are taking a hard look at GraphQL. We&amp;rsquo;re coming from a CQRS mindset, and GraphQL looks like it might be a good fit. I&amp;rsquo;d be really interested to hear about your experience if you&amp;rsquo;ve used it.</description>
      <content:encoded><![CDATA[<p><strong>Notes.</strong></p>
<p>Welcome back to the first issue of The REPL in 2018. If you took time off, I hope you had a great break away.</p>
<p>I&rsquo;ve got a favour to ask this week. At <a href="https://github.com/Day8">Day8</a> we&rsquo;re evaluating different backend technologies and are taking a hard look at GraphQL. We&rsquo;re coming from a CQRS mindset, and GraphQL looks like it might be a good fit. I&rsquo;d be really interested to hear about your experience if you&rsquo;ve used it. There&rsquo;s lots of information about what&rsquo;s good about it, but less so about the problems people have with it. If you used it, what issues did you run into? If you looked at it, but decided not to use it, why?</p>
<p>Thanks!</p>
<p><strong>-main</strong></p>
<ul>
<li>An <a href="https://clojureverse.org/t/ama-with-carin-meier-author-of-living-clojure-on-friday-january-12th/1325">AMA</a> with Carin Meier is on shortly on ClojureVerse</li>
<li><a href="http://clojure-goes-fast.com/blog/clojures-slow-start/">Clojure&rsquo;s slow start - what&rsquo;s inside?</a> - Clojure Goes Fast is one of my favourite new blogs of 2017, I&rsquo;m looking forward to seeing what 2018 brings.</li>
<li>A <a href="https://medium.com/@rauh/a-new-hiccup-compiler-for-clojurescript-8a7b63dc5128">new</a> Hiccup compiler for ClojureScript</li>
<li>People <a href="https://clojureverse.org/t/share-the-nitty-gritty-details-of-your-clojure-workflow/1208?u=dave.liepmann">share</a> the nitty-gritty details of their Clojure workflow</li>
<li>I wrote a <a href="https://www.deps.co/guides/public-maven-repositories/">guide</a> to public Maven repositories you may come across</li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li>A <a href="https://medium.freecodecamp.org/a-real-world-comparison-of-front-end-frameworks-with-benchmarks-e1cb62fd526c">comparison</a> of front-end frameworks with benchmarks. re-frame came out pretty well here.</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li><a href="http://www.toccata.io/2017/12/Typing-Toccata.html">Typing Toccata</a></li>
<li><a href="https://github.com/Azel4231/spec-dependent-types">Spec dependent types</a></li>
<li><a href="https://blog.envoyproxy.io/dynamic-extensibility-and-protocol-buffers-dcd0bf0b8801">Dynamic extensibility and protocol buffers</a></li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li><a href="https://groups.google.com/forum/#!topic/clojure/Xp1MOb5FjVs">Cider 0.16</a> (Riga) is out</li>
<li>A new flame graph profiling tool for Clojure: <a href="http://clojure-goes-fast.com/blog/profiling-tool-async-profiler/">clj-async-profiler</a></li>
<li>Profiling with <a href="https://github.com/jgpc42/jmh-clojure">jmh-clojure</a></li>
<li>Fellow Kiwi Liam Falconer also wrote about <a href="http://lfn3.net/2017/12/14/flamegraphs-and-benchmarks/">flamegraphs and benchmarks</a></li>
<li><a href="https://github.com/arrdem/lein-git-version">Derive</a> your leiningen project version from your Git history</li>
<li>Discussion about <a href="https://clojureverse.org/t/creating-a-central-documentation-repository-website-codox-complications/1287/2">c</a><a href="https://clojureverse.org/t/creating-a-central-documentation-repository-website-codox-complications/1287/2">reating</a> a central documentation repository / website</li>
<li><a href="https://github.com/plexus/autodoc">autodoc</a> helps automate publishing generated documentation</li>
<li>YourKit has their annual personal license sale on for the next few days. Normally licenses start at $499, but for a week or so each year they offer a <a href="https://www.yourkit.com/purchase/">personal license</a> for $99. This is a pretty good deal if you ever need to dig into the guts of your programs.</li>
<li><a href="https://vimeo.com/246805669">Setting up</a> Clojure on macOS in less than 2 minutes</li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li><a href="https://clojure.org/news/2018/01/05/git-deps">Git dependencies</a> for Clojure via tools.deps. See also the <a href="https://www.reddit.com/r/programming/duplicates/7og6or/git_deps_for_clojure/">discussion</a> on Reddit.</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li><a href="https://www.papercall.io/dcd18">Paper call</a> for speaking at Dutch Clojure Day 2018</li>
</ul>
<p><strong>Misc.</strong></p>
<p><a href="https://www.youtube.com/watch?v=9QMGAtxUlAc">Bryan Cantrill on Principles of Technology Leadership</a></p>
]]></content:encoded>
    </item>
    <item>
      <title>59: Local mutable variables, weak memories, faster reduce</title>
      <link>https://www.therepl.net/59/</link>
      <pubDate>Mon, 11 Dec 2017 21:00:32 +1300</pubDate>
      <guid>https://www.therepl.net/59/</guid>
      <description>-main
Clojure 1.9.0 has been released! The Cognitect blog has the&#xA0;announcement, and there are some great&#xA0;release notes&#xA0;on GitHub. Alex Miller has an intriguing&#xA0;comment&#xA0;on HN: &amp;ldquo;There is more to the generative testing story that has not yet surfaced. We&amp;rsquo;ve got another whole project related to this that is still a work in progress. Even without that, I think there is a lot of value to be had in spec right now.</description>
      <content:encoded><![CDATA[<p><strong>-main</strong></p>
<ul>
<li>Clojure 1.9.0 has been released! The Cognitect blog has the <a href="http://blog.cognitect.com/blog/clojure19">announcement</a>, and there are some great <a href="https://github.com/clojure/clojure/blob/master/changes.md#changes-to-clojure-in-version-19">release notes</a> on GitHub.</li>
<li>Alex Miller has an intriguing <a href="https://news.ycombinator.com/item?id=15887514">comment</a> on HN: &ldquo;There is more to the generative testing story that has not yet surfaced. We&rsquo;ve got another whole project related to this that is still a work in progress. Even without that, I think there is a lot of value to be had in spec right now.&rdquo;</li>
<li>Zach Oakes on how <a href="https://gist.github.com/oakes/8db57ac808bf6ec144d627fd83a89da3">Clojure&rsquo;s documentation can leapfrog other languages</a> + <a href="https://www.reddit.com/r/Clojure/comments/7hqlhe/how_clojures_documentation_can_leapfrog_other/">Reddit discussion</a></li>
<li>I wrote a post on <a href="https://www.deps.co/blog/how-to-upgrade-your-clojure-projects-to-use-java-9/?utm_source=therepl&amp;utm_medium=email&amp;utm_campaign=therepl%2359">how to update your Clojure projects to Java 9</a></li>
<li>A great article on <a href="https://medium.com/@rauh/faster-clojure-reduce-57a104448ea4">making a faster Clojure reduce</a> (for specific cases)</li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li><a href="https://github.com/RutledgePaulV/clj-embed">clj-embed</a> is a Clojure library for segmenting multiple Clojure runtimes in a single JVM</li>
<li><a href="https://github.com/suvash/one-time">one-time</a> is a One Time Password generation library. It looks ok, but you should always audit these kinds of libraries, ideally with someone experienced with cryptography.</li>
<li>Fulcro (nee Untangled) has <a href="https://github.com/fulcrologic/fulcro/blob/develop/README-fulcro-2.0.adoc">hit 2.0</a> and has made a fork from om.next.</li>
<li><a href="https://github.com/fulcrologic/fulcro-inspect">fulcro-inspect</a> helps you debug Fulcro applications</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li><a href="https://medium.com/@dave.d.dixon/strong-typing-is-for-people-with-weak-memories-8d002436649e">Strong Typing is for people with Weak Memories</a></li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li>Bozhidar Batsov <a href="https://skillsmatter.com/skillscasts/10935-thrilled-to-have-bozhidar-batsov-with-us-for-a-community-update-on-cider-at-clojurex-2017">talked at ClojureX</a> about the new release of CIDER and nREPL.</li>
<li>Colin Fleming, author of Cursive has an <a href="https://clojureverse.org/t/im-colin-fleming-ask-me-anything/1148">AMA on Clojureverse</a> right now (as I send this).</li>
<li><a href="https://groups.google.com/forum/#!topic/clojure/oaDOjz6PQSI">Immutable names of things?</a></li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li><a href="https://dev.clojure.org/jira/browse/CLJS-2377">CLJS-2377</a> - Moves away from modules deprecated in Java 9. This is fixed on master, but not in a release yet.</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li><a href="https://blog.eventil.com/3-clojure-conferences-to-attend-this-winter-2017-18-2cc55911952">3 Clojure conferences to attend this winter</a></li>
<li><a href="https://github.com/jacekschae/conduit">Conduit</a> is a real-world re-frame app. It&rsquo;s worth checking out if you&rsquo;re looking for idioms of writing larger re-frame applications.</li>
<li><a href="https://skillsmatter.com/conferences/8783-clojure-exchange-2017#skillscasts">ClojureX videos are up</a></li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li>TIL <a href="https://twitter.com/plexus/status/938704032041926656">Clojure has local mutable variables</a> (and they&rsquo;re not dynamic vars or atoms)</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>58: Flares, ideology, and a birthday</title>
      <link>https://www.therepl.net/58/</link>
      <pubDate>Tue, 05 Dec 2017 02:45:09 +1300</pubDate>
      <guid>https://www.therepl.net/58/</guid>
      <description>Notes
I&#xA0;want to open this email by thanking everyone who has signed up for&#xA0;Clojurists Together. We&amp;rsquo;ve had a large number of individual developers get on board, as well as several companies. I wanted to especially highlight&#xA0;new company sponsors&#xA0;Centriq&#xA0;(Transduce Member) and&#xA0;JUXT&#xA0;(Filter Member). We really appreciate their support, along with everyone else who has joined up.&#xA0;Any individuals or companies that sign up before 13 December will be recognised as a founding member, so if you&amp;rsquo;re thinking about joining, now is the time.</description>
      <content:encoded><![CDATA[<p><strong>Notes</strong></p>
<p>I want to open this email by thanking everyone who has signed up for <a href="https://clojuriststogether.org/">Clojurists Together</a>. We&rsquo;ve had a large number of individual developers get on board, as well as several companies. I wanted to especially highlight <a href="https://clojuriststogether.org/members/">new company sponsors</a> <a href="https://centriqhome.com/">Centriq</a> (Transduce Member) and <a href="https://juxt.pro/">JUXT</a> (Filter Member). We really appreciate their support, along with everyone else who has joined up. Any individuals or companies that sign up before 13 December will be recognised as a founding member, so if you&rsquo;re thinking about joining, now is the time.</p>
<p><strong>-main</strong></p>
<ul>
<li>Gary Bernhardt gave a great talk at Strange Loop 2015 - <a href="https://www.destroyallsoftware.com/talks/ideology">Ideology</a>. It talks about the beliefs underlying our claims, the unknown knowns. It&rsquo;s my number one pick for this week.</li>
<li><a href="https://clojureverse.org/t/announcing-clojureverse-2-0/875">ClojureVerse is relaunching</a></li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li>Visualise the results of a Datomic transaction with <a href="https://github.com/mtnygard/datoms-say-what">datoms-say-what</a></li>
<li><a href="https://cambium-clojure.github.io/">Cambium</a> is a new <a href="https://www.elastic.co/blog/structured-logging-filebeat">structured logging</a> library</li>
<li><a href="https://github.com/danielsz/system/wiki/Raamwerk">Raamwerk</a> is a web framework built into the system library</li>
<li><a href="https://aria42.com/blog/2017/11/Flare-Clojure-Neural-Net">Flare</a> is a Clojure dynamic neural net library that looks pretty fast</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li><a href="https://www.reddit.com/r/Clojure/comments/7g4fl0/are_return_types_a_black_eye_for_clojure/dqgeqzf/">Reasons for spec not validating :ret and :fn</a>. I find using <a href="https://github.com/jeaye/orchestra">Orchestra</a> to validate :ret and :fn helps catch bugs early, especially when I&rsquo;m iteratively developing</li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li><a href="https://github.com/oakes/Dynadoc">Dynadoc</a>: not your father&rsquo;s documentation generator</li>
<li>Cursive 1.6.2 has some <a href="https://groups.google.com/forum/#!topic/cursive/vG5Uxm8ip2M">great new features</a> for navigating to specs and re-frame handlers</li>
<li>How to <a href="https://gist.github.com/jamesnyika/77c3e281cdfcb3c2452f6eff751bbb17#file-datomic-hsqldb-storage-md">setup HSQLDB with Datomic</a></li>
<li>I&rsquo;m a bit late to the party on this one, but Smartparens was <a href="https://fuco1.github.io/2017-11-17-Smartparens-is-5-years-old-today.html">5 years old in November</a></li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li>Clojure 1.9.0-RC2 is <a href="https://groups.google.com/forum/#!topic/clojure/Pz_Kzg-k2Ac">out</a></li>
<li><a href="https://dev.clojure.org/jira/browse/CLJ-1458">CLJ-1458</a>: Enhance the performance of map merges. This ticket needs someone to help with setting up a benchmark harness to validate the potential performance gains.</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li><a href="https://purelyfunctional.tv/guide/database-structure-in-re-frame/">Database Structure in Re-frame</a>, I agree with most of these, but would like to write up where I differ sometime.</li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li>Dan Luu has an article on the <a href="https://danluu.com/bad-decisions/">quality of management decisions and sports</a></li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>57: Caves, parsing, and fractals</title>
      <link>https://www.therepl.net/57/</link>
      <pubDate>Tue, 28 Nov 2017 01:13:12 +1300</pubDate>
      <guid>https://www.therepl.net/57/</guid>
      <description>-main
This week I was&#xA0;on&#xA0;the Defn podcast talking about&#xA0;Clojurists Together, this newsletter, and&#xA0;Deps. I had&#xA0;a lot of fun recording it. Clojure Design Patterns&#xA0;shows how to take classic design patterns and implement them, mostly with functions. A good gotcha to watch out for with&#xA0;parsing in clj-time. The same issue exists in cljs-time too. Libraries &amp;amp; Books.
I haven&amp;rsquo;t fully grasped&#xA0;factfold&#xA0;yet, but it looks like a very powerful state machine/interpreter/modeling layer/state container People are worried about Types.</description>
      <content:encoded><![CDATA[<p><strong>-main</strong></p>
<ul>
<li>This week I was <a href="https://defn-podcast.github.io/defn.github.io/episodes/2017/11/26/daniel-compton.html">on</a> the Defn podcast talking about <a href="https://clojuriststogether.org/">Clojurists Together</a>, this newsletter, and <a href="https://www.deps.co/">Deps</a>. I had a lot of fun recording it.</li>
<li><a href="http://mishadoff.com/blog/clojure-design-patterns/">Clojure Design Patterns</a> shows how to take classic design patterns and implement them, mostly with functions.</li>
<li>A good gotcha to watch out for with <a href="http://jakemccrary.com/blog/2017/11/26/parsing-multiple-date-formats/">parsing in clj-time</a>. The same issue exists in cljs-time too.</li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li>I haven&rsquo;t fully grasped <a href="https://github.com/notduncansmith/factfold">factfold</a> yet, but it looks like a very powerful state machine/interpreter/modeling layer/state container</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li><a href="http://blog.veitheller.de/Carp.html">Carp</a> is a new typed, compiled lisp for systems level programming (and up)</li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li><a href="https://www.youtube.com/watch?v=hjpzLXoUu1Y">An Introduction to JVM Performance</a></li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li><a href="https://github.com/oliyh/re-jump.el">re-jump.el</a>, navigation for re-frame</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li>Roman Liutikov is working on <a href="https://medium.com/@roman01la/announcing-functional-cave-6572daf08c35">Functional Cave</a>. It will have ClojureScript tutorials coming from a JavaScript/React perspective.</li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li><a href="https://codeburst.io/software-estimation-in-the-fractal-dimension-914569e2ccb9">Software Estimation in the Fractal Dimension</a> was pinging around the company Slack this week, and I thought it had some good insights</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>56: Clojurists Together, MAGIC, and a dose of Clojure</title>
      <link>https://www.therepl.net/56/</link>
      <pubDate>Thu, 23 Nov 2017 07:50:15 +1300</pubDate>
      <guid>https://www.therepl.net/56/</guid>
      <description>Notes.
The big news for last week, at least from my perspective, was launching&#xA0;Clojurists Together. This is a project designed to support open source Clojure software and keep it sustainable by paying maintainers. We&amp;rsquo;ve already had quite a few&#xA0;individuals&#xA0;sign up, but not too many companies yet. If you work at a company that uses Clojure, please consider signing your company up for a&#xA0;Company Membership.
-main
Ramsey Nasser on the&#xA0;MAGIC compiler&#xA0;for Clojure and the CLR Clojure, EPL 2.</description>
      <content:encoded><![CDATA[<p><strong>Notes.</strong></p>
<p>The big news for last week, at least from my perspective, was launching <a href="https://clojuriststogether.org/news/introducing-clojurists-together/">Clojurists Together</a>. This is a project designed to support open source Clojure software and keep it sustainable by paying maintainers. We&rsquo;ve already had quite a few <a href="https://clojuriststogether.org/members/">individuals</a> sign up, but not too many companies yet. If you work at a company that uses Clojure, please consider signing your company up for a <a href="https://clojuriststogether.org/companies/">Company Membership</a>.</p>
<p><strong>-main</strong></p>
<ul>
<li>Ramsey Nasser on the <a href="http://nas.sr/magic/">MAGIC compiler</a> for Clojure and the CLR</li>
<li><a href="https://groups.google.com/forum/#!topic/clojure/uWAWm0xqrTI">Clojure, EPL 2.0, and GPL compatibility</a></li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li><a href="https://github.com/riverford/compound">Compound</a> is a micro structure for re-frame data</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li>Following up from last weeks worrying on s/keys validations, Greg Mitchell <a href="https://groups.google.com/d/msg/clojure/i8Rz-AnCoa8/rZnK1vOhBwAJ">gives his experience</a> of using <a href="https://developers.google.com/protocol-buffers/">Protocol Buffers</a> at Google</li>
<li><a href="https://clojureverse.org/t/worried-about-types-clojure-elitism/616">Worried about types + Clojure Elitism</a></li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li><a href="https://blog.acolyer.org/2017/11/06/statistically-rigorous-java-performance-evaluation/">Statistically rigorous Java performance evaluation</a></li>
<li><a href="https://medium.com/@tylerneely/fear-and-loathing-in-lock-free-programming-7158b1cdd50c">Fear and Loathing in Lock-Free Programming</a></li>
<li><a href="https://github.com/arximboldi/immer">Immer</a>: persistent data structures for C++</li>
<li><a href="https://dassur.ma/things/120fps/">2018 - 120fps and no jank</a></li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li><a href="https://github.com/seancorfield/boot-tools-deps">boot-tools-deps</a> allows you to read deps.edn files</li>
<li><a href="https://clojureverse.org/t/migrating-from-boot-back-to-leiningen/837">Migrating from Boot and back to Leiningen</a></li>
<li><a href="https://medium.com/@jebberjeb/vim-clojure-tooling-redux-16ce62e4d727">Vim Clojure Tooling Redux</a></li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li><a href="https://dev.clojure.org/jira/browse/ASYNC-119">ASYNC-119</a>: Combines CLJS core.async macros namespace into main core.async namespace. <a href="https://dev.clojure.org/jira/browse/ASYNC-142">ASYNC-142</a>: Rename CLJS core.async namespaces to match Clojure ones. The combination of these two being resolved should make it a lot easier to write cross platform core.async code.</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li><a href="https://tirkarthi.github.io/clojure-dose/">Clojure Dose</a>, a daily dose of Clojure snippets from Clojurians Slack</li>
<li>Get <a href="https://twitter.com/trptcolin/status/933351165194055681">40% off Mastering Clojure Macros</a> from Pragmatic Press this weekend</li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li><a href="https://kentremendousblog.tumblr.com/post/167394588758/tom-and-lin-manuel-an-appreciationjealous-rant">Tom and Lin-Manuel: An Appreciation/Jealous Rant</a></li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>55: More type worrying, cats and dogs, and cache lines</title>
      <link>https://www.therepl.net/55/</link>
      <pubDate>Tue, 14 Nov 2017 08:26:17 +1300</pubDate>
      <guid>https://www.therepl.net/55/</guid>
      <description>-main
A Clojure performance nemesis: reflection. This is a really good overview of reflection in Clojure, how to spot it, and how to fix it. I&amp;rsquo;ve launched&#xA0;a free and open source service&#xA0;Deps Versions&#xA0;for adding a dependency status badge to your open source Clojure projects. I wrote&#xA0;a bit more about it&#xA0;on the Deps blog. State in re-frame Cats and Dogs with Cortex Redux A ClojureScript visual cheatsheet David Nolen was&#xA0;on the CaSE podcast.</description>
      <content:encoded><![CDATA[<p><strong>-main</strong></p>
<ul>
<li><a href="http://clojure-goes-fast.com/blog/performance-nemesis-reflection/">A Clojure performance nemesis: reflection</a>. This is a really good overview of reflection in Clojure, how to spot it, and how to fix it.</li>
<li>I&rsquo;ve launched a free and open source service <a href="https://versions.deps.co/">Deps Versions</a> for adding a dependency status badge to your open source Clojure projects. I wrote <a href="https://www.deps.co/blog/announcing-deps-versions/">a bit more about it</a> on the Deps blog.</li>
<li><a href="https://purelyfunctional.tv/guide/state-in-re-frame/">State in re-frame</a></li>
<li><a href="http://gigasquidsoftware.com/blog/2017/11/07/cats-and-dogs-with-cortex-redux/">Cats and Dogs with Cortex Redux</a></li>
<li><a href="https://s-haensch.github.io/visual-cheatsheet/">A ClojureScript visual cheatsheet</a></li>
<li>David Nolen was <a href="http://www.case-podcast.org/12-clojurescript-with-david-nolen">on the CaSE podcast</a>.</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li><a href="https://groups.google.com/forum/#!topic/clojure/i8Rz-AnCoa8">There is a lengthy thread</a> on the Clojure mailing list about spec&rsquo;s unintuitive (IMO) behaviour for validating keys. The specific part that I&rsquo;m worried about is that no error is thrown at runtime if you specify a keyword in s/keys that hasn&rsquo;t been defined. It seems like the kind of thing that could leak into production, or mask bugs further down the line.</li>
<li><a href="http://www.haskellforall.com/2017/11/semantic-integrity-checks-are-next.html">Semantic integrity checks</a> is a new feature of a configuration language Dhall, which lets you verify that the semantics of your API haven&rsquo;t changed. I could imagine something similar being applied to APIs that have been specced in Clojure, to automatically detect breaking changes.</li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li>Cliff Click talking about <a href="http://cliffc.org/blog/2017/11/05/modern-hardware-performance-cache-lines/">modern hardware performance and cache lines</a></li>
<li>Mark Reinhold and Brian Goetz on <a href="https://www.youtube.com/watch?v=x7pkWlost64&amp;feature=youtu.be">Moving Java forward faster</a>, and Java&rsquo;s new rapid six monthly release cycle. Highly recommended if you want to see the future direction Java is heading.</li>
<li>Here&rsquo;s the release schedule for <a href="http://openjdk.java.net/projects/jdk/10/">JDK 10</a></li>
<li>Intel has released <a href="https://github.com/pmem/pcj">persistent collections for Java</a>. However these are for efficient usage of non-volatile <a href="https://en.wikipedia.org/wiki/Persistent_memory">persistent memory</a>, not <a href="https://en.wikipedia.org/wiki/Persistent_data_structure">persistent data structures</a>.</li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li>Datomic now has a <a href="https://forum.datomic.com/">forum</a></li>
<li>Clojureverse has a poll on <a href="https://clojureverse.org/t/poll-how-do-you-compile-your-clojurescript/674">how you compile your ClojureScript</a></li>
<li>Thomas Heller on the <a href="https://www.reddit.com/r/Clojure/comments/7b5j6o/please_explain_shadowcljs/">background of shadow-cljs</a></li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li>Clojure 1.9.0 RC1 is <a href="https://groups.google.com/forum/#!topic/clojure/tWcLAhnEzIs">out</a></li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li>Mike Fikes on <a href="http://blog.fikesfarm.com/posts/2017-11-09-avoid-converting-javascript-objects.html">avoiding unnecessary conversions of JS objects to CLJS</a>, and the resulting performance boost you can gain.</li>
<li><a href="https://madstap.github.io/posts/dbg/">Clojure debugging</a></li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li>Long time member of the Clojure[Script] community Chas Emerick has a <a href="https://www.patreon.com/cemerick">Patreon</a> up. If you&rsquo;ve benefited from his work, either now or in the past, then consider sponsoring it.</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>54: Christmas cards, type worrying, and sentimental versioning.</title>
      <link>https://www.therepl.net/54/</link>
      <pubDate>Mon, 06 Nov 2017 08:23:19 +1300</pubDate>
      <guid>https://www.therepl.net/54/</guid>
      <description>Notes.
Hi folks, I have two exciting announcements this week.
First, I&amp;rsquo;m sending Christmas cards to readers of The REPL. This is a custom design by my wife, so you can only get it from me, this one time. If you&amp;rsquo;d like one,&#xA0;fill out your details. I&amp;rsquo;m only sending 80 cards, so get in quick if you&amp;rsquo;d like one.
Second, I&amp;rsquo;ve been working on&#xA0;Deps, a private Maven repository service (for storing your companies private JARs)&#xA0;this year.</description>
      <content:encoded><![CDATA[<p><strong>Notes.</strong></p>
<p>Hi folks, I have two exciting announcements this week.</p>
<p>First, I&rsquo;m sending Christmas cards to readers of The REPL. This is a custom design by my wife, so you can only get it from me, this one time. If you&rsquo;d like one, <a href="https://docs.google.com/forms/d/e/1FAIpQLSen_OniEFVfQxCEroZAcu6b9nr0Qxj0CziBIwkmFtNfqLfs4g/viewform">fill out your details</a>. I&rsquo;m only sending 80 cards, so get in quick if you&rsquo;d like one.</p>
<p>Second, I&rsquo;ve been working on <a href="https://www.deps.co/">Deps</a>, a private Maven repository service (for storing your companies private JARs) this year. I have recently got a private beta up and running and already have several companies using it. If you&rsquo;d like to stop running Nexus on that dusty server in the corner of the office, <a href="https://www.deps.co/">sign up</a> and I&rsquo;ll get you on board as soon as possible.</p>
<p>Thanks, and enjoy this weeks newsletter.</p>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<p>There&rsquo;s been lots of type worrying again this week.</p>
<ul>
<li>Alex Miller has a <a href="https://twitter.com/puredanger/status/925818171562561539">good take</a> on Clojure and types</li>
<li><a href="http://tech.frontrowed.com/2017/11/01/rhetoric-of-clojure-and-haskell/">Duelling Rhetoric of Clojure and Haskell</a></li>
<li><a href="http://jawaninja.com/programming/2017/10/29/on-types-and-intent">On Types and Intent</a></li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li>I don&rsquo;t know how much use this would be for Clojurists, but Brian Goetz has a proposal for <a href="http://cr.openjdk.java.net/~briangoetz/amber/datum.html">Data Classes for Java</a>. Like last weeks Java proposals, its worth reading just for a succinct definition of the problem space.</li>
<li>I missed this when it came out, but Mark Reinhold has proposed <a href="https://mreinhold.org/blog/forward-faster">moving Java to having two feature releases/year</a>. There will also be an LTS version supported for at least three years which is roughly equivalent to what we have now.</li>
<li>In conjunction with the new release cycle is a proposal for a <a href="http://mail.openjdk.java.net/pipermail/jdk-dev/2017-November/000089.html">new versioning system</a>.</li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li><a href="https://sekao.net/lightmod/">Lightmod</a> is an all-in-one tool targeted at beginners  for full stack Clojure. From Zach Oakes (of course).</li>
<li>Last week I got the link to <a href="https://github.com/dundalek/closh">Closh, the Clojure shell</a> wrong, so it&rsquo;s back again this week.</li>
<li>Enlighten mode in Cider <a href="https://twitter.com/rofh/status/926396571893112832">looks cool</a></li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li>All quiet on the Clojure front, I&rsquo;m expecting a 1.9 release very soon.</li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li><a href="http://sentimentalversioning.org/">Sentimental Versioning</a></li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>53: Type wars, garbage collectors, and a Clojure shell</title>
      <link>https://www.therepl.net/53/</link>
      <pubDate>Wed, 01 Nov 2017 19:45:21 +1300</pubDate>
      <guid>https://www.therepl.net/53/</guid>
      <description>-main
Clojure&#xA0;1.9.0-beta4 is out. It looks like the full release of Clojure 1.9 is very near. Pyroclast&#xA0;has a snazzy new website out IN/Clojure 2018&#xA0;has opened their&#xA0;CFP Libraries &amp;amp; Books.
Specialist&#xA0;Server&#xA0;is a GraphQL server driven from specs People are worried about Types.&#xA0;?
Clojure vs. The Static Typing World Another Non-Argument in Type Systems Feeding predicates from spec into Shen&amp;rsquo;s type checker? Foundations.
Project Loom&#xA0;is a proposal for Java to gain fibers (lightweight threads).</description>
      <content:encoded><![CDATA[<p><strong>-main</strong></p>
<ul>
<li>Clojure <a href="https://groups.google.com/forum/#!topic/clojure/X_A6B_LiGvQ">1.9.0-beta4 is out</a>. It looks like the full release of Clojure 1.9 is very near.</li>
<li><a href="http://pyroclast.io/">Pyroclast</a> has a snazzy new website out</li>
<li><a href="http://inclojure.org/">IN/Clojure 2018</a> has opened their CFP</li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li><a href="https://github.com/ajk/specialist-server">Specialist Server</a> is a GraphQL server driven from specs</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li><a href="http://www.lispcast.com/clojure-and-types">Clojure vs. The Static Typing World</a></li>
<li><a href="http://tratt.net/laurie/blog/entries/another_non_argument_in_type_systems.html">Another Non-Argument in Type Systems</a></li>
<li><a href="https://groups.google.com/forum/#!topic/clojure/ZbhsnlzzQhk">Feeding predicates from spec into Shen&rsquo;s type checker?</a></li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li><a href="http://cr.openjdk.java.net/~rpressler/loom/Loom-Proposal.html">Project Loom</a> is a proposal for Java to gain fibers (lightweight threads). Worth a read for the background on Java concurrency.</li>
<li>The <a href="http://mail.openjdk.java.net/pipermail/announce/2017-October/000237.html">Z Garbage Collector</a> is another new project for Java, optimising for low latency (&lt; 10ms) pauses and large heaps.</li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li><a href="https://github.com/eggsyntax/datawalk">Datawalk</a> is a new tool for interactively exploring data structures at the REPL</li>
<li><a href="https://github.com/eggsyntax/datawalk">Closh</a> is a bash-like shell based on ClojureScript</li>
<li><a href="https://www.freelists.org/post/leiningen/ANN-Leiningen-281-released">Leiningen 2.8.1</a> is out with a bugfix release</li>
<li><a href="https://groups.google.com/forum/#!topic/clojure/xjNsAUk4EM0">tools.deps.alpha 0.2.167</a> is out</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li><a href="https://labs.uswitch.com/transducers-from-the-ground-up-the-practice/">Transducers from the ground up</a></li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li>Alan Kay on <a href="https://www.quora.com/What-did-Alan-Kay-mean-by-Lisp-is-the-greatest-single-programming-language-ever-designed/answer/Alan-Kay-11">Lisp being the greatest single programming language designed</a></li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>52: Effective programs, Java 9, and Clojure 1.9</title>
      <link>https://www.therepl.net/52/</link>
      <pubDate>Sun, 22 Oct 2017 15:49:22 +1300</pubDate>
      <guid>https://www.therepl.net/52/</guid>
      <description>Notes.
Welcome back to The REPL. I&amp;rsquo;ve been taking a break after our new son was born, but I&amp;rsquo;m ready to get back to it. There was so much good stuff in Clojure over the last few months, and unfortunately I won&amp;rsquo;t have time to highlight it all. Thanks for reading, and enjoy!
-main
Clojure/Conj 2017 has just happened, and the stand-out talk for me was (of course) Rich&amp;rsquo;s talk&#xA0;Effective Programs - 10 Years of Clojure.</description>
      <content:encoded><![CDATA[<p><strong>Notes.</strong></p>
<p>Welcome back to The REPL. I&rsquo;ve been taking a break after our new son was born, but I&rsquo;m ready to get back to it. There was so much good stuff in Clojure over the last few months, and unfortunately I won&rsquo;t have time to highlight it all. Thanks for reading, and enjoy!</p>
<p><strong>-main</strong></p>
<ul>
<li>Clojure/Conj 2017 has just happened, and the stand-out talk for me was (of course) Rich&rsquo;s talk <a href="https://www.youtube.com/watch?v=2V1FtfBDsLU&amp;list=PLZdCLR02grLqCR8EKuil8NrffZuTl0kwL&amp;index=1">Effective Programs - 10 Years of Clojure</a>. I found it helped me understand the philosophy of Clojure even better.</li>
<li>Eric Normand is running a new conference <a href="https://clojuresync.com/">Clojure SYNC</a> in New Orleans in February 2018. There&rsquo;s some good speakers lined up, and it looks like a neat event.</li>
<li><a href="https://groups.google.com/forum/#!topic/clojure/NDRGImf28UQ">Help ship Clojure 1.9!</a></li>
<li>Matthew Gilliard has had a <a href="http://mjg123.github.io/">great series of articles</a> on improving Clojure startup time with some new Java 9 features.</li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li><a href="https://github.com/jfacorro/clojerl">clojerl</a>: Clojure for the Erlang VM</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li>But <a href="https://github.com/bhb/expound">expound</a> makes the error messages better for developers. I&rsquo;ve used this fairly heavily and find it makes a big improvement to understanding spec errors.</li>
<li><a href="https://github.com/alexanderkiel/phrase">Phrase</a> is another tool for error messages, but focusing on presenting the errors to the user. I haven&rsquo;t used it, but it looks neat too.</li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li>Java 9 has been released, with tons of good stuff, including <a href="https://www.javagists.com/compact-strings-java-9">Compact Strings</a> and <a href="https://docs.oracle.com/javase/9/whatsnew/toc.htm#JSNEW-GUID-71A09701-7412-4499-A88D-53FA8BFBD3D0">new security features</a>.</li>
<li>Watch out for the <a href="https://www.azul.com/jdk-9-pitfalls-for-the-unwary/">JDK 9 pitfalls for the unwary</a> though, including the first APIs to be eliminated in the history of Java(!).</li>
<li><a href="https://blogs.oracle.com/theaquarium/opening-up-ee-update">Opening up Java EE</a></li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li><a href="https://www.freelists.org/post/leiningen/ANN-Leiningen-280-released">Leiningen 2.8.0</a> was recently released, and also recently turned 8.</li>
<li>Colin Fleming was on <a href="http://talkingkotlin.com/Writing-A-Clojure-IDE-in-Kotlin-with-colin-fleming/">Talking Kotlin</a>, talking about how he uses Kotlin with Cursive</li>
<li><a href="https://github.com/jgpc42/jmh-clojure">jmh-clojure</a> looks like a great way to use the very accurate JMH benchmarking tool</li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li><a href="https://dev.clojure.org/jira/browse/CLJ-2194">CLJ-2194</a>: Spec metadata support</li>
<li><a href="https://dev.clojure.org/jira/browse/CLJ-1074?focusedCommentId=46884&amp;page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-46884">CLJ-1074</a>: Added new literals for Infinity and NaN</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li>Alex Miller was on the CaSE podcast <a href="http://www.case-podcast.org/8-clojure-with-alex-miller">talking about Clojure</a></li>
<li><a href="https://clojurecademy.com/">Clojurecademy</a> is a new site for learning Clojure</li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li>New Zealand just formed our next government this week. An Australian journalist wasn&rsquo;t sure how to pronounce our Prime Ministers last name, <a href="http://www.radionz.co.nz/news/political/342082/new-pm-tells-aussie-journo-how-to-say-her-last-name">so he called her office and was put through to ask her directly</a>.</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>51: Orchestras, explorers, and nothing?</title>
      <link>https://www.therepl.net/51/</link>
      <pubDate>Sun, 13 Aug 2017 10:30:25 +1300</pubDate>
      <guid>https://www.therepl.net/51/</guid>
      <description>Notes.
Hi folks. It&amp;rsquo;s been a busy few weeks for me. I&amp;rsquo;ve been building an office in my garage, and am doing the plastering/painting/flooring for it. I&amp;rsquo;ve got lots to learn there, but I&amp;rsquo;m really enjoying it. This&#xA0;will be the last edition of The REPL I&amp;rsquo;ll be sending for a month or so. My wife is having a baby sometime soon, and then I&amp;rsquo;ll be on paternity leave. -main</description>
      <content:encoded><![CDATA[<p><strong>Notes.</strong></p>
<ul>
<li>Hi folks. It&rsquo;s been a busy few weeks for me. I&rsquo;ve been building an office in my garage, and am doing the plastering/painting/flooring for it. I&rsquo;ve got lots to learn there, but I&rsquo;m really enjoying it. This will be the last edition of The REPL I&rsquo;ll be sending for a month or so. My wife is having a baby sometime soon, and then I&rsquo;ll be on paternity leave.</li>
</ul>
<p><strong>-main</strong></p>
<ul>
<li>ClojureScript has a bunch of <a href="https://clojurescript.org/news/2017-07-07-sneak-preview">sneak previews</a> of new features coming: <a href="https://clojurescript.org/news/2017-07-10-code-splitting">Enhanced Code Splitting and Loading</a>, and <a href="https://clojurescript.org/news/2017-07-12-clojurescript-is-not-an-island-integrating-node-modules">Integrating Node Modules</a></li>
<li>The Onyx/Pyroclast team have a new project for processing event streams in development: <a href="http://pyroclast.io/blog/2017/07/03/pyroclast-roaming.html">Roaming</a>, and they have a <a href="http://pyroclast.io/blog/2017/07/11/roaming-clojure.html">Clojure SDK</a> for it.</li>
<li>Brad Cypert on why he <a href="http://www.bradcypert.com/why-i-switched-from-python-to-clojure/">switched from Python to Clojure</a></li>
<li>A massive <a href="https://purelyfunctional.tv/guide/re-frame-building-blocks/">guide to re-frame</a> from Eric Normand</li>
<li>Speaking of re-frame, <a href="https://railsgirlssummerofcode.org/">Rails Girls Summer of Code</a> has sponsored two people to work on re-frame for the summer. Here&rsquo;s their <a href="https://railsgirlssummerofcode.org/blog/2017-07-06-introducing-team-clojurians">first progress report</a>. I&rsquo;m mentoring this project, and really looking forward to seeing what they come up with.</li>
<li>Clojure design decisions: <a href="https://gist.github.com/reborg/dc8b0c96c397a56668905e2767fd697f">Rich already answered that!</a></li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li>Tony Kay is now working full-time on <a href="https://github.com/awkay/untangled">F</a><a href="https://github.com/fulcrologic/fulcro">ulcro</a>, a web framework for Clojure. This is a fork of <a href="http://untangled-web.github.io/untangled/">Untangled</a>. If you&rsquo;re using it professionally, there&rsquo;s a <a href="https://www.patreon.com/fulcro">Patreon</a>, and other ways you can <a href="https://fulcrologic.github.io/fulcro/fund.html">support it&rsquo;s development</a>.</li>
<li><a href="https://github.com/gfZeng/time.clj">time.clj</a> is a cross platform time utilities library</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li><a href="http://abhirag.in/articles/spec_oracle.html">Spec Oracle</a></li>
<li>Orchestra <a href="https://groups.google.com/forum/#!topic/clojure/VU6engFguHk">now supports ClojureScript</a></li>
<li>Schpec has a <a href="https://github.com/gfredericks/schpec#comgfredericksschpecdefnspecdefn">defn macro</a> for pattern matching on specs (I think that&rsquo;s what it&rsquo;s doing?)</li>
<li><a href="https://dev.clojure.org/jira/browse/CLJ-2194">CLJS-2194</a>: Spec metadata support</li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li>As far as I can tell there were <a href="https://www.selikoff.net/2017/06/26/jvm-death-match-live-blogging-from-qcon/">no injuries</a> at the JVM Deathmatch</li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li><a href="https://groups.google.com/forum/#!topic/cursive/0Sckw3jgNk4">Cursive 1.6.0 is out</a> with some big improvements for test navigation</li>
<li><a href="https://github.com/philoskim/debux">Debux</a> is a debugging/tracing library for Clojure and ClojureScript</li>
<li>Christophe Grand has also a released a lower level tracing library <a href="https://github.com/cgrand/poucet">poucet</a></li>
<li><a href="https://github.com/danvk/source-map-explorer">Source Map Explorer</a> looks great for analysing your CLJS build size</li>
<li>Martin Klepsch with good advice on <a href="https://www.martinklepsch.org/posts/maven-snapshots.html">pinning Maven Snapshots</a></li>
<li>Lumo has hit <a href="https://github.com/anmonteiro/lumo/releases/tag/1.6.0">1.6.0</a></li>
<li>Stuart Halloway on <a href="https://vimeo.com/223309989">REPL driven development</a></li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li><a href="https://groups.google.com/forum/#!topic/clojure/R_dw_o7on9o">Clojure Android activity</a></li>
<li><a href="https://groups.google.com/forum/#!topic/clojure-dev/tnf_hCpJtHU">nothing?</a> predicate in Clojure</li>
<li><a href="https://dev.clojure.org/jira/browse/CLJS-2148">CLJS-2148</a>: adds warnings for doing aget on non-arrays. This has been warned about for a long time, so it&rsquo;s not a big surprise. It&rsquo;s going to turn up a lot of problems for people, so library maintainers should start running this now so they can start fixing the warnings.</li>
<li>A related ticket <a href="https://dev.clojure.org/jira/browse/CLJS-2198">CLJS-2198</a> adds safe array operations</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li>Notes <a href="http://orchestra%20now%20runs%20in%20clojurescript%20too/">porting Orchestra to ClojureScript</a></li>
<li><a href="http://grishaev.me/en/pg-to-datomic">Migrating Postgres to Datomic</a></li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li><a href="https://muzzleapp.com/">Muzzle</a> turns on Do Not Disturb on your Mac when you&rsquo;re screen-sharing, so that no (potentially embarrassing) notifications show up.</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>50: Efficient matrices, and lisp editing</title>
      <link>https://www.therepl.net/50/</link>
      <pubDate>Thu, 29 Jun 2017 08:47:27 +1300</pubDate>
      <guid>https://www.therepl.net/50/</guid>
      <description>Notes.
The REPL turns one this week. Thanks to everyone who has read it, shared it with friends and colleagues, and sent me links. -main
Clojure concurrency and blocking with core.async Clojure Numerics,&#xA0;Use Matrices Efficiently Libraries &amp;amp; Books.
Larch&#xA0;is an Elm like ClojureScript SPA framework Ring-SSE&#xA0;from Bobby Calderwood Haslett&#xA0;is a websocket library for ClojureScript People are worried about Types.&#xA0;?
Reify Health are&#xA0;using spec to generate sample data&#xA0;to get user feedback Tools.</description>
      <content:encoded><![CDATA[<p><strong>Notes.</strong></p>
<ul>
<li>The REPL turns one this week. Thanks to everyone who has read it, shared it with friends and colleagues, and sent me links.</li>
</ul>
<p><strong>-main</strong></p>
<ul>
<li><a href="http://eli.thegreenplace.net/2017/clojure-concurrency-and-blocking-with-coreasync/">Clojure concurrency and blocking with core.async</a></li>
<li>Clojure Numerics, <a href="http://dragan.rocks/articles/17/Clojure-Numerics-1-Use-Matrices-Efficiently">Use Matrices Efficiently</a></li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li><a href="https://github.com/DaveWM/larch">Larch</a> is an Elm like ClojureScript SPA framework</li>
<li><a href="https://github.com/bobby/ring-sse">Ring-SSE</a> from Bobby Calderwood</li>
<li><a href="https://github.com/weavejester/haslett">Haslett</a> is a websocket library for ClojureScript</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li>Reify Health are <a href="http://blog.cognitect.com/blog/2017/6/22/streamlining-clinical-trials-a-case-study-with-reify-health">using spec to generate sample data</a> to get user feedback</li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li>Shaun Lebron with a <a href="https://github.com/shaunlebron/history-of-lisp-editing">history of lisp editing</a></li>
<li><a href="http://www.bradcypert.com/clojure-kibit-eastwood/">Clojure + Kibit and Eastwood</a></li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li>ClojureScript 1.9.660 is out, with a new news section on ClojureScript.org <a href="https://clojurescript.org/news/2017-06-27-faster-compilation-runtime-and-spec-caching-fixes">describing the changes</a></li>
<li>Mike Fikes on <a href="http://blog.fikesfarm.com/posts/2017-06-28-clojurescript-const-var-inlining.html">ClojureScript const var inlining</a> and <a href="http://blog.fikesfarm.com/posts/2017-06-27-clojurescript-method-head-recur-in-defrecord.html">method head recurs in defrecords</a></li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li><a href="https://purelyfunctional.tv/guide/reagent/">Guide to Reagent</a> from PurelyFunctional.tv</li>
<li>I&rsquo;m not sure if there&rsquo;s an online link for this, but I got an email recently saying that Clojure/conj and Clojure/west are merging next year for one larger conference.</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>49: Datomic, a mirage, and deathmatches</title>
      <link>https://www.therepl.net/49/</link>
      <pubDate>Wed, 21 Jun 2017 12:30:30 +1300</pubDate>
      <guid>https://www.therepl.net/49/</guid>
      <description>-main
Stuart Halloway was on&#xA0;the defn podcast&#xA0;(audio at&#xA0;SoundCloud) talking about Cognitect, Spec, more from Datomic in the cloud (I&amp;rsquo;m excited for this), and the Clojure community. Stuart Halloway again on&#xA0;why contains?&#xA0;is&#xA0;great design&#xA0;(I&amp;rsquo;m still not convinced), plus thoughts&#xA0;on docs. Why transducers are not (yet) fundamental? What Datomic brings to businesses A new guide on&#xA0;reading Clojure characters&#xA0;that are hard to&#xA0;Google Tim Baldridge talking about his thoughts on&#xA0;developer happiness, and learning an instrument.</description>
      <content:encoded><![CDATA[<p><strong>-main</strong></p>
<ul>
<li>Stuart Halloway was on <a href="https://defn.audio/">the defn podcast</a> (audio at <a href="https://soundcloud.com/defn-771544745/23-the-right-honourable-stuart-halloway#t=0:00">SoundCloud</a>) talking about Cognitect, Spec, more from Datomic in the cloud (I&rsquo;m excited for this), and the Clojure community.</li>
<li>Stuart Halloway again on <a href="https://twitter.com/stuarthalloway/status/876087016219451392">why contains?</a> is <a href="https://twitter.com/stuarthalloway/status/876499658910179328">great design</a> (I&rsquo;m still not convinced), plus thoughts <a href="https://twitter.com/stuarthalloway/status/876500140940546048">on docs</a>.</li>
<li><a href="https://groups.google.com/forum/#!topic/clojure/KlIYHAMfvVQ">Why transducers are not (yet) fundamental?</a></li>
<li><a href="https://medium.com/@val.vvalval/what-datomic-brings-to-businesses-e2238a568e1c">What Datomic brings to businesses</a></li>
<li>A new guide on <a href="https://clojure.org/guides/weird_characters">reading Clojure characters</a> that are hard to Google</li>
<li>Tim Baldridge talking about his thoughts on <a href="https://youtu.be/6Oi8_eCaBGY?t=561">developer happiness</a>, and learning an instrument.</li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li><a href="https://miraj-project.github.io/">Miraj</a> is a new web framework for Clojure</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li><a href="https://groups.google.com/forum/#!topic/clojure/4jhSCZaFQFY">Spec without global registry?</a></li>
<li><a href="https://groups.google.com/forum/#!topic/clojure/y4PIRRX8UBE">defn with inline specs?</a></li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li>If you&rsquo;re in New York, you should head along to the <a href="https://www.eventbrite.com/e/java-community-meeting-qcon-ny-jvm-death-match-tickets-35158981460">JVM Death Match</a>, between the different JVM vendors.</li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li><a href="https://pavelfatin.com/scrolling-with-pleasure/">Scrolling with pleasure</a>, a masterwork on smooth scrolling.</li>
<li><a href="https://www.reddit.com/r/Clojure/comments/6h6u3n/which_lein_plugins_do_you_find_really_useful/">Which lein plugins do you find useful?</a></li>
<li><a href="https://www.youtube.com/watch?v=CiDtmPKVskk">Parinfer: why v2 is different</a></li>
<li><a href="https://medium.com/@chrisdaviesgeek/publishing-a-clojurescript-library-toclojars-in-2017-5dcfa2fbe41f">Publishing to Clojars in 2017</a></li>
</ul>
<p><strong>Learning</strong></p>
<ul>
<li><a href="http://konradkuehne.com/2017/06/19/prototyping-with-cljs.html">Rapid Web App Prototyping with ClojureScript</a></li>
<li>LispCast on the <a href="http://www.lispcast.com/why-web-frameworks">pros</a> and <a href="http://www.lispcast.com/arguments-against-frameworks">cons</a> of web frameworks</li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li>ClojureScript is <a href="https://dev.clojure.org/jira/browse/CLJS-2098">setting up</a> TravisCI for running tests</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>48: Delays, reuse, and ducklings</title>
      <link>https://www.therepl.net/48/</link>
      <pubDate>Wed, 14 Jun 2017 09:27:35 +1300</pubDate>
      <guid>https://www.therepl.net/48/</guid>
      <description>-main
I missed this when it came out, but I really enjoyed James Reeves&amp;rsquo; keynote on&#xA0;Transparency through data. It helped me put into words some thoughts I had lingering on&#xA0;hard to understand code. Delay: Clojure&amp;rsquo;s forgotten concurrency primitive REPL Debugging without stack traces&#xA0;by Stuart Halloway Reuse comes in Pints Clojure use at Signal&#xA0;(but not the messaging app&#xA0;Signal) Comparing Java&amp;rsquo;s verbosity with Clojure Libraries &amp;amp; Books.</description>
      <content:encoded><![CDATA[<p><strong>-main</strong></p>
<ul>
<li>I missed this when it came out, but I really enjoyed James Reeves&rsquo; keynote on <a href="https://www.youtube.com/watch?v=zznwKCifC1A">Transparency through data</a>. It helped me put into words some thoughts I had lingering on hard to understand code.</li>
<li><a href="http://danlebrero.com/2017/06/12/delay-clojure-forgotten-concurrency-primitive/">Delay: Clojure&rsquo;s forgotten concurrency primitive</a></li>
<li><a href="http://blog.cognitect.com/blog/2017/6/5/repl-debugging-no-stacktrace-required">REPL Debugging without stack traces</a> by Stuart Halloway</li>
<li><a href="https://feierabendprojekte.wordpress.com/2017/06/04/reuse-comes-in-pints/">Reuse comes in Pints</a></li>
<li><a href="https://clojure.org/stories/signal">Clojure use at Signal</a> (but not the messaging app Signal)</li>
<li><a href="https://dev.to/danlebrero/java-maybe-verbose-but-who-cares">Comparing Java&rsquo;s verbosity with Clojure</a></li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li><a href="https://groups.google.com/forum/#!topic/clojure/Fp4ADrpugzY">clj-duckling</a> is a library for parsing text into structured data, e.g. dates, currency, distances</li>
<li><a href="https://github.com/denistakeda/data-frame">data-frame</a> lets you use re-frame with Datascript as data storage</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li><a href="https://mortoray.com/2017/06/13/do-we-need-3-or-just-2-error-types/">Do we need 3, or just 2 error types?</a></li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li><a href="https://groups.google.com/forum/#!topic/mechanical-sympathy/Zc1UMDhOWxM">Why does the G1 GC shrink number of regions?</a> is a good look at how garbage collection handles changing workload types.</li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li><a href="https://groups.google.com/forum/#!topic/clojure/6dNy6caCSiY">What&rsquo;s the simplest way to publish to Clojars?</a></li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li>Alex Miller has a <a href="https://groups.google.com/forum/#!topic/clojure/n-k_PrCoFQI">Welcome to Clojure</a> post on the mailing list</li>
<li><a href="http://blog.fikesfarm.com/posts/2017-06-07-generative-testing-for-self-hosted-clojurescript.html">Generative Testing for Self-Hosted ClojureScript</a></li>
<li><a href="https://dev.clojure.org/jira/browse/CLJS-1977">CLJS-1977</a>: defrecord should use murmur hashing like Clojure</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li>More <a href="http://dragan.rocks/articles/17/Clojure-Linear-Algebra-Refresher-3-Matrix-Transformations">linear algebra</a> from Dragan Djuric </li>
<li><a href="https://lambdaisland.com/blog/12-06-2017-clojure-gotchas-surrogate-pairs">Clojure Gotchas with Unicode surrogate pairs</a></li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li>I meant to put this in last weeks letter, but forgot about it when I was writing. <a href="http://worrydream.com/ClimateChange/">What can a technologist do about climate change?</a> from Bret Victor.</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>47: Duct, macro confessions, and getting a Clojure job</title>
      <link>https://www.therepl.net/47/</link>
      <pubDate>Wed, 07 Jun 2017 21:04:34 +1300</pubDate>
      <guid>https://www.therepl.net/47/</guid>
      <description>-main
Building Web Services&#xA0;with Duct Derek Troy-West gave a talk&#xA0;&amp;ldquo;Scaling the Event Stream&amp;rdquo;&#xA0;about a Clojure/Cassandra distributed&#xA0;system that he built&#xA0;with an NZ company&#xA0;SMX. I worked&#xA0;with them on part of this system a few years ago, and it was a great team and project (talk starts at 6:30). Confessions&#xA0;of a threading macro addict The&#xA0;ultimate guide&#xA0;on Clojure concurrency from PurelyFunctional.tv Authentication&#xA0;with Yada Libraries &amp;amp; Books.</description>
      <content:encoded><![CDATA[<p><strong>-main</strong></p>
<ul>
<li>Building Web Services <a href="https://www.booleanknot.com/blog/2017/05/29/building-web-services-with-duct.html">with Duct</a></li>
<li>Derek Troy-West gave a talk <a href="https://www.troywest.com/blog/2017/5/16/scaling-the-event-stream">&ldquo;Scaling the Event Stream&rdquo;</a> about a Clojure/Cassandra distributed system that he built with an NZ company <a href="https://smxemail.com/">SMX</a>. I worked with them on part of this system a few years ago, and it was a great team and project (talk starts at 6:30).</li>
<li><a href="https://medium.com/@hlship/confessions-of-a-threading-macro-addict-5a026dae4af7?source=rss-858d614db402------2">Confessions</a> of a threading macro addict</li>
<li>The <a href="https://purelyfunctional.tv/guide/clojure-concurrency-the-ultimate-guide/">ultimate guide</a> on Clojure concurrency from PurelyFunctional.tv</li>
<li><a href="https://juxt.pro/blog/posts/yada-authentication.html">Authentication</a> with Yada</li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li>I&rsquo;m still chewing over <a href="https://github.com/CoNarrative/precept">precept</a>, a declarative programming framework, but it looks really interesting</li>
<li>Yesql is looking for a <a href="https://github.com/krisajenkins/yesql#status">maintainer</a></li>
<li><a href="https://github.com/danielsz/certificaat">Certificaat</a> is a Let&rsquo;s Encrypt client</li>
<li><a href="https://github.com/JoelSanchez/fqcss">fqcss</a> is an interesting approach to CSS and ClojureScript</li>
<li>Programming Clojure, <a href="https://pragprog.com/book/shcloj3/programming-clojure">Third Edition</a> is in beta with new material on clojure.spec</li>
<li><a href="https://github.com/rauhs/klang">klang</a> is a ClojureScript logging library</li>
<li><a href="https://keechma.com/news/introducing-keechma-toolbox-part-1-pipelines/">Introducing</a> the Keechma Toolbox library</li>
<li>Chestnut 0.15.0 is <a href="https://groups.google.com/forum/#!topic/clojure/DzU0Wf4EvgE">out</a></li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li>The <a href="https://dev.to/danlebrero/the-broken-promise-of-static-typing">broken promise</a> of static typing</li>
<li><a href="https://medium.com/degree9/data-validation-schema-spec-5547e33596bd">Data Validation</a> with spec</li>
<li>Jeaye Wilkerson implores developers to <a href="http://jeaye%20wilkerson/">use spec</a>. I&rsquo;ve been developing using <a href="https://github.com/jeaye/orchestra">Orchestra</a> like he recommends, and have found it hugely helpful in checking return values</li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li><a href="http://mail.openjdk.java.net/pipermail/jdk9-dev/2017-May/005864.html">Proposed schedule change for JDK 9</a></li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li>inlein 0.2.0 (Leiningen for scripts) is <a href="https://groups.google.com/forum/#!topic/clojure/o_1QynOoeao">out</a></li>
<li><a href="https://github.com/LiaisonTechnologies/lein-protoc">lein-protoc</a> is a lein plugin for compiling protocol buffers</li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li>ClojureScript 1.9.562 is <a href="https://groups.google.com/forum/#!topic/clojurescript/moj4RqYLe0s">out</a>, with Clojure 1.9.0-alpha17 parity</li>
<li>Mike Files on <a href="http://blog.fikesfarm.com/posts/2017-06-02-clojurescript-compiler-perf.html">ClojureScript compiler performance</a></li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li><a href="https://www.opensourcery.co.za/2017/05/29/two-datoms-in-the-same-transaction-conflict/">Demystifying a Datomic error</a> (I love the Discworld theme in this)</li>
<li>Video interview on <a href="https://www.youtube.com/watch?v=-JltREBehVI">how to get a Clojure job</a></li>
<li><a href="http://www.bradcypert.com/k-nearest-neighbors/">K Nearest Neighbours</a> in Clojure</li>
<li>Dragan Djuric with a linear algebra refresher on <a href="http://dragan.rocks/articles/17/Clojure-Linear-Algebra-Refresher-Vector-Spaces">Vector Spaces</a>, and <a href="http://dragan.rocks/articles/17/Clojure-Linear-Algebra-Refresher-Eigenvalues-and-Eigenvectors">Eigenvalues and Eigenvectors</a></li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>46: Readable Clojure, debugging, and UI state machines</title>
      <link>https://www.therepl.net/46/</link>
      <pubDate>Sat, 27 May 2017 22:00:37 +1300</pubDate>
      <guid>https://www.therepl.net/46/</guid>
      <description>-main
Clojure/Conj 2017&#xA0;info is&#xA0;out and it has an open CFP Nikita Tonsky has some recommendations on&#xA0;Readable Clojure. I agree with most&#xA0;of them,&#xA0;it&amp;rsquo;s well worth a read and discussion&#xA0;with your team. Filling gaps in TensorFlow&amp;rsquo;s Java API Jeb Beach on&#xA0;State Machines in the UI Libraries &amp;amp; Books.
re-mote&#xA0;is a REPL driven environment for remote operations on other machines People are worried about Clojure.&#xA0;?</description>
      <content:encoded><![CDATA[<p><strong>-main</strong></p>
<ul>
<li><a href="http://2017.clojure-conj.org/">Clojure/Conj 2017</a> info is out and it has an open CFP</li>
<li>Nikita Tonsky has some recommendations on <a href="http://tonsky.me/blog/readable-clojure/">Readable Clojure</a>. I agree with most of them, it&rsquo;s well worth a read and discussion with your team.</li>
<li><a href="http://kieranbrowne.com/research/filling-gaps-in-tensorflow/">Filling gaps in TensorFlow&rsquo;s Java API</a></li>
<li>Jeb Beach on <a href="http://blog.cognitect.com/blog/2017/5/22/restate-your-ui-using-state-machines-to-simplify-user-interface-development">State Machines in the UI</a></li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li><a href="https://github.com/re-ops/re-mote">re-mote</a> is a REPL driven environment for remote operations on other machines</li>
</ul>
<p><strong>People are worried about Clojure. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong><br>
The last few weeks have had a lot of discussion about Clojure, its problems, and its future.</p>
<ul>
<li><a href="https://blog.appcanary.com/2017/hard-isnt-simple-ruby-clojure.html">Leaving Clojure for Ruby</a></li>
<li><a href="http://www.lispcast.com/cognitect-clojure">Should Cognitect do more for Clojure?</a></li>
<li><a href="https://lambdaisland.com/blog/25-05-2017-simple-and-happy-is-clojure-dying-and-what-has-ruby-got-to-do-with-it">Is Clojure dying, and what has Ruby got to do with it?</a></li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li><a href="https://github.com/circleci/circleci.test">circleci.test</a> is a new test runner that replaces the lein test runner. It has some very cool features like checking for IO in your tests and failing if you haven&rsquo;t marked the test as doing IO.</li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li><a href="https://groups.google.com/forum/#!topic/clojure-dev/423-7r9w2F0">tools.reader</a> is nearing 1.0.0</li>
<li>0.0 and -0.0 <a href="https://github.com/clojure/clojure/commit/90ad4d6aa7ec0677916525633837dded55576af7?w=1">now hash equally</a></li>
<li><a href="https://dev.clojure.org/jira/browse/CLJ-2141">CLJ-2141</a> has <a href="https://github.com/clojure/clojure/commit/e9e57e4808b7700ccee2ea32e17051ba1063112e">been fixed</a>, qualified-* predicates now return true/false.</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li><a href="https://deque.blog/2017/05/20/a-clojure-spec-for-generic-binary-trees/">Specing binary trees</a></li>
<li><a href="https://dzone.com/articles/notes-on-debugging-clojure-code">Debugging Clojure code</a></li>
<li><a href="http://blog.michielborkent.nl/blog/2017/05/25/inline-def-debugging/">Debugging with inline def&rsquo;s</a></li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li>Kyle Kingsbury presents a Scala Days 2017 keynote: <a href="https://aphyr.com/posts/343-scala-days-2017-jepsen-keynote">Anna Concurrenina</a></li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>45: Integrity, Kotlin love, and Frankenstein</title>
      <link>https://www.therepl.net/45/</link>
      <pubDate>Tue, 23 May 2017 10:37:39 +1300</pubDate>
      <guid>https://www.therepl.net/45/</guid>
      <description>-main
James Reeves continues&#xA0;Advancing Duct Robert Herrmann has created a directory of&#xA0;Clojure consultants. He&amp;rsquo;s also available for hire himself. The videos from clojureD 2017&#xA0;are up. David Nolan -&#xA0;Id&#xE9;e Fixe&#xA0;at GOTO Chicago 2017. A big discussion on&#xA0;Reddit&#xA0;about Clojure&amp;rsquo;s future growth Libraries &amp;amp; Books.
re-frankenstein&#xA0;is a deviant fork (their words!) of re-frame. It allows you to run re-frame without global state. I&amp;rsquo;ve been thinking about this&#xA0;a lot, so it&amp;rsquo;s helpful to see some other ideas.</description>
      <content:encoded><![CDATA[<p><strong>-main</strong></p>
<ul>
<li>James Reeves continues <a href="https://www.booleanknot.com/blog/2017/05/09/advancing-duct.html">Advancing Duct</a></li>
<li>Robert Herrmann has created a directory of <a href="http://clojureconsultants.org/">Clojure consultants</a>. He&rsquo;s also available for hire himself.</li>
<li>The videos from clojureD 2017 <a href="https://www.youtube.com/playlist?list=PLaSn8eiZ631kZfUdLuWGBRP-jAbPxWrDi">are up</a>.</li>
<li>David Nolan - <a href="https://www.youtube.com/watch?v=lzXHMy4ewtM">Idée Fixe</a> at GOTO Chicago 2017.</li>
<li>A big discussion on <a href="https://www.reddit.com/r/Clojure/comments/6brhsq/interesting_discussion_on_clojure_growth_and/">Reddit</a> about Clojure&rsquo;s future growth</li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li><a href="https://github.com/chpill/re-frankenstein">re-frankenstein</a> is a deviant fork (their words!) of re-frame. It allows you to run re-frame without global state. I&rsquo;ve been thinking about this a lot, so it&rsquo;s helpful to see some other ideas.</li>
<li><a href="http://thinktopic.com/blog/toward-cortex-1-dot-0">Towards Cortex 1.0</a> (a machine learning toolkit in Clojure)</li>
<li>You can now use Specter paths with EDN via <a href="https://github.com/maitria/specter-edn">specter-edn</a></li>
<li><a href="http://dragan.rocks/articles/17/CUDA-and-cuBLAS-GPU-matrices-in-Clojure">CUDA matrices</a> in Clojure with Neanderthal</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<p>But they&rsquo;re staying quiet this week.</p>
<p><strong>Foundations.</strong></p>
<ul>
<li>JVM Anatomy Park: <a href="https://shipilev.net/jvm-anatomy-park/10-string-intern/">String.intern()</a></li>
<li><a href="https://groups.google.com/d/msg/golang-nuts/KJiyv2mV2pU/wdBUH1mHCAAJ">Why does Go not implement a compacting, generational GC</a>?</li>
<li>Java SE 8u131 <a href="https://blogs.oracle.com/java-platform-group/java-se-support-for-docker-cpu-and-memory-limits">brings support</a> for cgroup CPU and memory limits, allowing their use with Docker containers.</li>
<li>Steve Yegge on his <a href="https://steve-yegge.blogspot.co.nz/2017/05/why-kotlin-is-better-than-whatever-dumb.html">newfound love</a> of Kotlin.</li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li><a href="https://manuel-uberti.github.io/programming/2017/04/29/clojureenv/">Daily Clojure workflow</a> with CIDER</li>
<li><a href="https://www.youtube.com/watch?v=O6g5C4jUCUc&amp;feature=youtu.be">Lambda Island</a> on Emacs and Clojure tooling</li>
<li>The always entertaining Bozhidar Batsov with <a href="https://www.youtube.com/watch?v=RU4537TUmdM&amp;feature=youtu.be&amp;t=1100">another sip of CIDER</a> at :clojureD 2017</li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li>Alex Miller has <a href="https://groups.google.com/forum/#!topic/clojure-dev/xfFmrVudD98">requested comments</a> for var printing, relating to serialisation support for vars in EDN.</li>
<li>Thomas Heller has a <a href="https://groups.google.com/forum/#!topic/clojurescript/EZDkE8dUL0k">new take</a> on ClojureScript and npm</li>
<li><a href="https://dev.clojure.org/jira/browse/CLJ-2075">CLJ-2075</a>: unroll comparisons to include three arity versions</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li>Cognitect have a bunch of useful articles about Datomic usage on their <a href="https://support.cognitect.com/hc/en-us">support site</a>.</li>
<li><a href="http://clojutre.org/2017/">ClojuTRE 2017</a> is open for ticket sales and an RFP</li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li>I <a href="https://danielcompton.net/2017/05/23/bryan-cantrill-on-integrity">transcribed</a> Bryan Cantrill talking about integrity at GOTO. I&rsquo;d strongly encourage you to read it and listen to the whole discussion.</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>44: Molecular gastronomy, an Arachne update, and ziggurats of transducers</title>
      <link>https://www.therepl.net/44/</link>
      <pubDate>Tue, 16 May 2017 18:00:40 +1300</pubDate>
      <guid>https://www.therepl.net/44/</guid>
      <description>-main
Arne Brasseur on Lambda Island&#xA0;turning one, and the rocky journey so far. &amp;ldquo;I could see the eduction, presumably still wrapping the reified IReduceInit, perched atop a ziggurat of lesser transducers. I looked, and at the very bottom lay a blasphemous side-effectful invocation of map.&#xA0;I did not belong in this place.&amp;rdquo; Onyx now has a&#xA0;Java API. At work we were building a new system and looked very seriously at Onyx.</description>
      <content:encoded><![CDATA[<p><strong>-main</strong></p>
<ul>
<li>Arne Brasseur on Lambda Island <a href="https://lambdaisland.com/blog/13-05-2017-lambda-island-turns-one">turning one</a>, and the rocky journey so far.</li>
<li>&ldquo;I could see the <code>eduction</code>, presumably still wrapping the reified IReduceInit, perched atop a ziggurat of lesser transducers. I looked, and at the very bottom lay a blasphemous side-effectful invocation of map. <a href="https://groups.google.com/d/msg/clojure/s7_8_0lE3To/8x1V_wakAgAJ">I did not belong in this place.</a>&rdquo;</li>
<li>Onyx now has a <a href="http://www.onyxplatform.org/jekyll/update/2017/05/15/Onyx-Java.html">Java API</a>. At work we were building a new system and looked very seriously at Onyx. We talked with Michael Drogalis and Lucas Bradstreet and found them to be very knowledgable and professional to work with. I&rsquo;d highly recommend putting Onyx on your shortlist if you need to do analytics, CQRS, or anything that works with streaming data.</li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li><a href="https://github.com/weavejester/ataraxy">Ataraxy</a> is an experimental data-driven Ring routing library from James Reeves. Think Compojure, but with data instead of macros.</li>
<li>test2junit 1.3.0 <a href="https://ruedigergad.com/2017/05/06/test2junit-version-1-3-0-released/">is out</a></li>
<li><a href="https://github.com/edouardklein/huffman-keybindings/">huffman-keybindings</a> is a neat way to generate short keybindings to commonly used UI components. Note that it&rsquo;s licensed under AGPL-3.0 which makes it <a href="https://groups.google.com/d/topic/clojure/TfPK-ljC46I/discussion">difficult</a> to use with Clojure.</li>
<li>Luke Vanderhart has an update on Arachne in a <a href="https://www.reddit.com/r/Clojure/comments/6axfn4/whats_the_status_of_arachne/dhkz5al/">Reddit comment</a></li>
<li>Process jobs with Redis and <a href="https://github.com/b-ryan/farmhand">Farmhand</a></li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li><a href="http://latkin.org/blog/2017/05/02/when-the-scala-compiler-doesnt-help/">When the Scala compiler doesn&rsquo;t help</a></li>
<li><a href="http://www.bradcypert.com/an-informal-guide-to-clojure-spec/">An Informal &amp; Practical Guide to clojure.spec</a></li>
<li>Clojure.spec, <a href="https://groups.google.com/forum/#!topic/clojure/OBbq-jInyqI">need function equivalents of library macros?</a></li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li><a href="https://dzone.com/articles/java-9-besides-modules">What&rsquo;s new in Java 9? (Besides Modules)</a></li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li>Cursive 1.5.0 <a href="https://groups.google.com/forum/#!topic/cursive/glDdYSUupEM">is out</a> with a bunch of improvements. I wrote a post about the improvements <a href="https://www.deps.co/blog/whats-new-in-cursive-1.5.0/">relating to dependencies</a>.</li>
<li>The last post had a bullet <a href="https://anmonteiro.com/2017/05/on-lumos-growth-and-sustainability/">On Lumo&rsquo;s Growth and Sustainability</a> but was missing the hyperlink.</li>
<li><a href="https://prepack.io/">Prepack</a> looks like it could <a href="https://twitter.com/roman01la/status/859849179149021184">really improve ClojureScript startup time</a>. Combining <a href="http://www.syntaxsuccess.com/viewarticle/combining-prepack-and-closure-compiler">prepack and the Closure compiler</a> seems fruitful too</li>
<li>ClojureScript REPLs <a href="http://blog.fikesfarm.com/posts/2017-05-12-multi-form-clojurescript-repl.html">now support</a> evaluating multiple forms on a single line.</li>
<li>Lambda Island again, this time on <a href="https://lambdaisland.com/blog/02-05-2017-nodejs-scripts-clojurescript">writing Node.js scripts with ClojureScript</a></li>
<li>Using lein to <a href="http://david-mcneil.com/post/160191443293/using-lein-to-produce-multiple-artifacts-from-a">produce multiple artifacts</a> from a Clojure monorepo. There&rsquo;s been a slow trend of companies moving towards monorepos in the last few years. We&rsquo;ve looked at it for work too, but decided against it for now.</li>
<li><a href="https://plugins.jetbrains.com/plugin/9696-java-stream-debugger">Java Stream Debugger</a> for IntelliJ looks very very cool</li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li><a href="https://dev.clojure.org/jira/browse/CLJS-2020">CLJS-2020</a> defmulti &ldquo;miss&rdquo; performance is poor</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li><a href="https://medium.com/@vemv/the-status-antipattern-479c26c7ddf7">The status antipattern</a> describes an alternative to having a single &ldquo;status&rdquo; field to describe an entity.</li>
<li><a href="http://thegeez.net/2017/04/28/data_transducers_machine_learning_clojure.html">Data wrangling with transducers for a machine learning problem</a></li>
<li><a href="https://groups.google.com/forum/#!topic/clojure/TwsDsvVDcu4">Dealing with lazy data in a with-open</a></li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li>I watched this <a href="https://www.youtube.com/watch?v=SLPUGIftRq4">video</a> about Allen Hemberger making every recipe in the <a href="http://www.seriouseats.com/2008/10/grant-achatz-alinea-cookbook-chamomile-puddin-1.html">Alinea</a>cookbook and documenting it in their own <a href="https://www.allenhemberger.com/alinea/">beautiful book</a>. I&rsquo;m still thinking about it a few days later. The teamwork that Allen and his wife Sarah for the project was inspiring to watch. They&rsquo;re now working with the Alinea Group on a <a href="https://www.kickstarter.com/projects/thealineagroup/the-aviary-cocktail-book/">Kickstarter</a> to produce a molecular gastronomy cocktail book.</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>43: Putting the Jigsaw back together</title>
      <link>https://www.therepl.net/43/</link>
      <pubDate>Wed, 10 May 2017 10:23:42 +1300</pubDate>
      <guid>https://www.therepl.net/43/</guid>
      <description>-main
Alexander Yakushev going deep on&#xA0;transducers and ETL pipelines Bill Piel has a Kickstarter project for&#xA0;Sayid Pro, a tool for tracing your production Clojure code execution with minimal runtime impact. I&amp;rsquo;ve backed it, I&amp;rsquo;d encourage you to take a look at it too. ClojureScript Ejecta&#xA0;by Mike Fikes People are worried about module systems.&#xA0;?
The Component v Mount debates have nothing on the current controversy over Java 9&amp;rsquo;s inclusion of a module system (Jigsaw).</description>
      <content:encoded><![CDATA[<p><strong>-main</strong></p>
<ul>
<li>Alexander Yakushev going deep on <a href="https://tech.grammarly.com/blog/building-etl-pipelines-with-clojure">transducers and ETL pipelines</a></li>
<li>Bill Piel has a Kickstarter project for <a href="https://www.kickstarter.com/projects/1269641244/sayid-pro-transparency-for-clojure-production-envi">Sayid Pro</a>, a tool for tracing your production Clojure code execution with minimal runtime impact. I&rsquo;ve backed it, I&rsquo;d encourage you to take a look at it too.</li>
<li><a href="http://blog.fikesfarm.com/posts/2017-04-29-clojurescript-ejecta.html">ClojureScript Ejecta</a> by Mike Fikes</li>
</ul>
<p><strong>People are worried about module systems. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<p>The Component v Mount debates have nothing on the current controversy over Java 9&rsquo;s inclusion of a module system (Jigsaw). If you&rsquo;re unfamiliar with Jigsaw, Toby Crawley has a good overview of it in his talk on <a href="https://youtu.be/4fevIDAxQAM?t=569">Clojure, Java 9, and You</a>.</p>
<ul>
<li>It started with IBM and Red Hat <a href="https://www.infoq.com/news/2017/05/no-jigsaw">publicly announcing</a> they would vote no on the current version of Jigsaw</li>
<li>They also authored an <a href="https://developer.jboss.org/blogs/scott.stark/2017/04/14/critical-deficiencies-in-jigsawjsr-376-java-platform-module-system-ec-member-concerns?_sscc=t">extensive document</a> about their concerns with the spec</li>
<li>Mike Hearn had a <a href="https://blog.plan99.net/is-jigsaw-good-or-is-it-wack-ec634d36dd6f">good </a><a href="https://blog.plan99.net/is-jigsaw-good-or-is-it-wack-ec634d36dd6f">post</a> about the IBM and Red Hat&rsquo;s documents taking the opposing stance (that Jigsaw was good).</li>
<li>Mark Reinhold wrote an <a href="http://mreinhold.org/blog/to-the-jcp-ec">open letter</a> to the JCP Executive Committee (who would be voting on Jigsaw) asking them to vote for it.</li>
<li>In the last day or so, the JCP Executive Committee <a href="https://www.infoq.com/news/2017/05/jpms-rejected">voted 10:13 against</a>adopting Jigsaw.</li>
<li>There are now another 30 days where Jigsaw can be revised and resubmitted <a href="https://www.infoq.com/news/2017/05/jpms-rejected?utm_source=twitter&amp;utm_medium=link&amp;utm_campaign=calendar">for another vote</a>.</li>
</ul>
<p>It&rsquo;s not clear yet what is going to happen to the release date of Java 9 now that Jigsaw has been rejected, but it seems likely that it will be delayed further.</p>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li><a href="https://tatut.github.io/specql/">Specql</a> is a Postgres database library that makes use of spec and name</li>
<li>Ring <a href="https://github.com/ring-clojure/ring/blob/master/CHANGELOG.md#160-2017-05-02">1.6.0</a> is out after a substantial gestation and feedback period. The major feature of this release is support for <a href="https://github.com/ring-clojure/ring/blob/1.6.0/SPEC#L13-L16">asynchronous handlers</a>.</li>
</ul>
<p><strong>People are worried about types</strong></p>
<ul>
<li>But Metosin have a <a href="http://www.metosin.fi/blog/clojure-spec-as-a-runtime-transformation-engine/">solution</a> to help</li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li><a href="https://www.azul.com/">Azul</a> has a new JIT compiler for their JVM. Gil Tene  (Azul CTO) has a post about the <a href="https://stuff-gil-says.blogspot.co.nz/2017/05/zing-hits-trifecta.html?m=1">features of the compiler</a>.</li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li>On Lumo&rsquo;s Growth and Sustainability</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li>Clojure Exchange 2017 has an open <a href="https://skillsmatter.com/conferences/8783-clojure-exchange-2017#get_involved">call for papers</a>.</li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li>Continuing my love of all things Joyent: <a href="https://illumos.topicbox.com/groups/developer/discussions/T1c9b33b1b2535ea4-Mb227a811b9961ca7dbe4d3ca">Empathy is a core engineering value</a>, on empathy and the idealised super-engineer. Highly highly recommended.</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>42: The REPL returns with a spec split.</title>
      <link>https://www.therepl.net/42/</link>
      <pubDate>Fri, 28 Apr 2017 19:28:44 +1300</pubDate>
      <guid>https://www.therepl.net/42/</guid>
      <description>Notes.
Long time between drinks for The REPL. There&amp;rsquo;s been family illness + work stuff that delayed me writing, but it&amp;rsquo;s back now.
-main
Performance improvements&#xA0;to CLJS hash-maps from Promptworks Developing the language of the domain Libraries &amp;amp; Books.
Matthew Jaoudi mixes up some&#xA0;baking-soda&#xA0;for combining Reagent and Reactstrap spec-provider&#xA0;infers a spec based on sample data restpect&#xA0;does integration tests for HTTP APIs datofu&#xA0;provides common utilities for Datomic People are worried about Types.</description>
      <content:encoded><![CDATA[<p><strong>Notes.</strong></p>
<p>Long time between drinks for The REPL. There&rsquo;s been family illness + work stuff that delayed me writing, but it&rsquo;s back now.</p>
<p><strong>-main</strong></p>
<ul>
<li><a href="https://www.promptworks.com/blog/clojure-hash-maps">Performance improvements</a> to CLJS hash-maps from Promptworks</li>
<li><a href="http://blog.cognitect.com/blog/2017/4/6/developing-the-language-of-the-domain">Developing the language of the domain</a></li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li>Matthew Jaoudi mixes up some <a href="https://github.com/gadfly361/baking-soda">baking-soda</a> for combining Reagent and Reactstrap</li>
<li><a href="https://github.com/stathissideris/spec-provider">spec-provider</a> infers a spec based on sample data</li>
<li><a href="https://github.com/facundoolano/restpect">restpect</a> does integration tests for HTTP APIs</li>
<li><a href="https://github.com/vvvvalvalval/datofu">datofu</a> provides common utilities for Datomic</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li><a href="https://aphyr.com/posts/342-typing-the-technical-interview">Criss seems a bit worried</a> about Haskell&rsquo;s runtime type errors</li>
<li>Martin Trojer <a href="https://juxt.pro/blog/posts/XT16-martin-trojer-looking-beyond-clojure.html">thinks</a> &ldquo;All roads lead to Haskell&rdquo;</li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li>Truffle Ruby <a href="http://nirvdrum.com/2017/02/15/truffleruby-on-the-substrate-vm.html">on the substrate VM</a></li>
<li><a href="http://perspectives.mvdirona.com/2017/04/how-many-data-centers-needed-world-wide/">How many Cloud data centre regions are needed world-wide?</a> James Hamilton (Distinguished Engineer at AWS) thinks 10^3.</li>
<li>The <a href="http://www.computerworld.com.au/article/617715/true-impact-modular-java">true impact</a> of modular Java</li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li><a href="https://blog.gradle.org/introducing-gradle-build-cache">Introducing</a> Gradle build cache</li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li>The big Clojure news this week was Clojure 1.9 <a href="https://groups.google.com/forum/#!msg/clojure/10dbF7w2IQo/ec37TzP5AQAJ">split spec</a> out into its own library to help Clojure 1.9 move towards production while keeping spec in alpha.</li>
<li>Much (all?) of Clojure&rsquo;s infrastructure is <a href="https://groups.google.com/forum/#!topic/clojure/hMR5u2Y0igI">now served over HTTPS</a></li>
<li><a href="https://github.com/clojure/clojure/commit/a26dfc1390c53ca10dba750b8d5e6b93e846c067">Var serialisation</a> serialises identity, not value</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li><a href="http://www.flyingmachinestudios.com/programming/learn-programming-languages-efficiently/">Techniques</a> for Efficiently Learning Programming Languages</li>
<li>Making software testing <a href="http://dev.solita.fi/2017/04/10/making-software-testing-easier-with-clojure.html">easier</a> with Clojure</li>
<li>On the <a href="http://realworldclojure.com/on-the-judicious-use-of-core.async/">judicious</a> use of core.async</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>41: A joker, a neanderthal, and a javanisse walk into a bar</title>
      <link>https://www.therepl.net/41/</link>
      <pubDate>Tue, 11 Apr 2017 08:36:46 +1300</pubDate>
      <guid>https://www.therepl.net/41/</guid>
      <description>Notes.
Just a short newsletter this week as I&amp;rsquo;m short on time, preparing for an upcoming talk, and starting a new project at work. -main
I haven&amp;rsquo;t had a chance to watch too many of the conference talks yet, but I really enjoyed Toby Crawley&amp;rsquo;s&#xA0;Clojure, Java 9, and You, Paul De Grandis&amp;rsquo;&#xA0;Faster Delivery with Pedestal and Vase, and Tim Baldridge&amp;rsquo;s&#xA0;Core.Async in Use. Which Clojure testing library is most used?</description>
      <content:encoded><![CDATA[<p><strong>Notes.</strong></p>
<ul>
<li>Just a short newsletter this week as I&rsquo;m short on time, preparing for an upcoming talk, and starting a new project at work.</li>
</ul>
<p><strong>-main</strong></p>
<ul>
<li>I haven&rsquo;t had a chance to watch too many of the conference talks yet, but I really enjoyed Toby Crawley&rsquo;s <a href="https://www.youtube.com/watch?v=4fevIDAxQAM&amp;list=PLZdCLR02grLp4W4ySd1sHPOsK83gvqBQp&amp;index=15">Clojure, Java 9, and You</a>, Paul De Grandis&rsquo; <a href="https://www.youtube.com/watch?v=_Cf-STRvFy8&amp;list=PLZdCLR02grLp4W4ySd1sHPOsK83gvqBQp&amp;index=9">Faster Delivery with Pedestal and Vase</a>, and Tim Baldridge&rsquo;s <a href="https://www.youtube.com/watch?v=096pIlA3GDo">Core.Async in Use</a>.</li>
<li><a href="http://jakemccrary.com/blog/2017/03/31/what-clojure-testing-library-is-most-used/">Which Clojure testing library is most used?</a></li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li>Neanderthal 0.9.0 has a <a href="http://dragan.rocks/articles/17/Neanderthal-090-released-Clojure-high-performance-computing">release post out</a></li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li><a href="http://www.java9countdown.xyz/">Java 9 Countdown</a></li>
<li><a href="https://www.infoq.com/news/2017/03/java-epsilon-gc">Java Epsilon GC</a> - a new GC that doesn&rsquo;t do any garbage collection(!).</li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li><a href="https://github.com/pesterhazy/unravel">Unravel</a> is a new Socket REPL with some nice features.</li>
<li><a href="https://github.com/candid82/joker">Joker</a> is a Clojure linter and interpreter written in Go</li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li>After my <a href="https://danielcompton.net/2017/03/31/clojure-nil-predicates">post</a> last week about predicates returning nil, Alex Miller <a href="https://www.reddit.com/r/Clojure/comments/62i9fz/the_case_for_and_against_clojure_predicates/dfnjwdw/">suggested</a> opening an issue.</li>
<li>I opened <a href="http://dev.clojure.org/jira/browse/CLJ-2141">CLJ-2141</a> which has become the <a href="http://jafingerhut.github.io/clj-ticket-status/CLJ-top-tickets-by-weighted-vote.html">most voted issue</a> on the Clojure tracker in short time. Alex Miller has done a bunch of good work benchmarking the different options, and come up with an approach.</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li><a href="https://lispchronicles.wordpress.com/2017/04/04/bits-of-things/">Bit handling</a> in Clojure</li>
<li><a href="http://reborg.tumblr.com/post/159202207913/exploring-the-memoize-function">Exploring the memoize function</a></li>
<li><a href="http://www.bradcypert.com/clojure-protocols-and-records/">Clojure Protocols &amp; Records</a></li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li>Make sure to <a href="https://aphyr.com/posts/341-hexing-the-technical-interview">keep the javanisse happy</a> in your next interview.</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>40: predicates returning nil, functions returning functions, pirates of the JVM</title>
      <link>https://www.therepl.net/40/</link>
      <pubDate>Fri, 31 Mar 2017 19:51:48 +1300</pubDate>
      <guid>https://www.therepl.net/40/</guid>
      <description>Notes.
Clojure/west is on as I type, and the videos have already started coming out. I haven&amp;rsquo;t had a chance to watch many yet, but I enjoyed Michael Drogalis&amp;rsquo;&#xA0;talk on Pyroclast. I wish I could be there, perhaps next year there can be a Clojure/south in Australia or NZ?
-main
I&amp;rsquo;d seen&#xA0;Skyliner&#xA0;when they launched, but didn&amp;rsquo;t realise they were using Clojure. Here&amp;rsquo;s a good 14 month&#xA0;experience report.</description>
      <content:encoded><![CDATA[<p><strong>Notes.</strong></p>
<p>Clojure/west is on as I type, and the videos have already started coming out. I haven&rsquo;t had a chance to watch many yet, but I enjoyed Michael Drogalis&rsquo; <a href="https://www.youtube.com/watch?v=iH5Mon8IG0g">talk on Pyroclast</a>. I wish I could be there, perhaps next year there can be a Clojure/south in Australia or NZ?</p>
<p><strong>-main</strong></p>
<ul>
<li>I&rsquo;d seen <a href="https://www.skyliner.io/">Skyliner</a> when they launched, but didn&rsquo;t realise they were using Clojure. Here&rsquo;s a good 14 month <a href="https://blog.skyliner.io/fourteen-months-with-clojure-beb8b3e4bf00">experience report</a>.</li>
<li>Mark Engelberg was <a href="https://jaxenter.com/clojure-pirates-jvm-132649.html">interviewed</a> as a pirate of the JVM</li>
<li><a href="http://yogthos.net/posts/2017-03-26-ReagentReactView.html">Comparing</a> Reagent to React.js and Vue.js</li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li>The incredibly prolific Daniel Higginbotham <a href="https://twitter.com/nonrecursive/status/846893709413306368">is working</a> on another book about parallel programming. You can <a href="http://www.braveclojure.com/quests/reducers/intro/">buy</a> the book in beta now.</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li>Carin Meier&rsquo;s &ldquo;<a href="http://blog.cognitect.com/blog/2017/3/24/3xeif9bxaom78qyzwssgwz1leuorh4">Living the lean startup with Clojure.spec</a>&rdquo; was great, and gave me some ideas for a new system we&rsquo;re working on at Day8.</li>
<li><a href="https://groups.google.com/forum/#!topic/clojure/GoQStV2zbCA">Protocol support with spec?</a></li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li>There is a <a href="https://keechma.com/news/keechma-dev-tools-preview/">preview</a> out for Keechma&rsquo;s new devtools</li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li>Last week there was a <a href="https://groups.google.com/forum/#!topic/clojure-dev/JlJxy2-w3_Q">thread</a> on the clojure-dev mailing list about new predicates returning true, nil, or false, rather than the traditional true/false.</li>
<li>I wrote an <a href="https://danielcompton.net/2017/03/31/clojure-nil-predicates">article</a> outlining the pros and cons of that decision today.</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li>Onyx released a <a href="https://github.com/onyx-platform/onyx-commander-example">sample application</a> showing the <a href="https://www.youtube.com/watch?v=B1-gS0oEtYc">Commander pattern</a> in action with Kafka, Onyx, and Datomic.</li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li>Ben Evans on self-driving cars and their <a href="http://ben-evans.com/benedictevans/2017/3/20/cars-and-second-order-consequences">second order consequences</a></li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>39: Graphql, Darkleaf, conflict resolution</title>
      <link>https://www.therepl.net/39/</link>
      <pubDate>Mon, 27 Mar 2017 19:32:51 +1300</pubDate>
      <guid>https://www.therepl.net/39/</guid>
      <description>Notes.
Welcome to another week of The REPL. Please feel free to send me any links for interesting Clojure stuff, as I don&amp;rsquo;t always catch everything.
-main
Datomic has a&#xA0;new set&#xA0;of training videos Of Routes and Resources&#xA0;(and Yada)&#xA0;Configuring&#xA0;Clojure Apps Libraries &amp;amp; Books.
Walmart Labs has open sourced&#xA0;Lacinia, a GraphQL library. They also have a good writeup on their&#xA0;motivations&#xA0;for creating it. Codependence&#xA0;is an extension to Integrant Fixpoint&#xA0;provides clojure.</description>
      <content:encoded><![CDATA[<p><strong>Notes.</strong></p>
<p>Welcome to another week of The REPL. Please feel free to send me any links for interesting Clojure stuff, as I don&rsquo;t always catch everything.</p>
<p><strong>-main</strong></p>
<ul>
<li>Datomic has a <a href="http://blog.datomic.com/2017/03/new-datomic-training-videos-and-getting.html">new set</a> of training videos</li>
<li><a href="https://juxt.pro/blog/posts/yada-routes.html">Of Routes and Resources</a> (and Yada) </li>
<li><a href="http://metosin.fi/blog/configuring-clojure-apps/">Configuring</a> Clojure Apps</li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li>Walmart Labs has open sourced <a href="https://github.com/walmartlabs/lacinia">Lacinia</a>, a GraphQL library. They also have a good writeup on their <a href="https://medium.com/walmartlabs/open-sourcing-lacinia-our-graphql-library-for-clojure-96a4ce5fc7b8#.68po6uwl6">motivations</a> for creating it.</li>
<li><a href="https://groups.google.com/forum/#!topic/clojure/0y9KNzBkGkc">Codependence</a> is an extension to Integrant</li>
<li><a href="https://github.com/stylefruits/fixpoint">Fixpoint</a> provides clojure.test fixtures and datasources</li>
<li>Neanderthal 0.9.0 looks like it is going to be <a href="http://dragan.rocks/articles/17/Neanderthal-090-is-around-the-corner">blazingly fast</a>, the release is just around the corner.</li>
<li><a href="https://github.com/darkleaf/router">Darkleaf</a> is a bidirectional ring router. Great name.</li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li><a href="http://distill.pub/2017/research-debt/">Research Debt</a></li>
<li><a href="http://www.codersnotes.com/notes/a-constructive-look-at-templeos/">A Constructive Look at TempleOS</a> - TempleOS has some really interesting features if you look at it closely.</li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li>IntelliJ 2017.1 is <a href="https://blog.jetbrains.com/idea/2017/03/intellij-idea-2017-1-java-9-kotlin-1-1-spring-gradle-javascript-go-and-more/">out</a></li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li><a href="http://dev.clojure.org/jira/browse/CLJ-2133">CLJ-2133</a>: Clarify documentation for the satisfies? function</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li><a href="https://lambdaisland.com/episodes/resolving-clojure-dependency-conflicts">Resolving</a> Clojure dependency conflicts</li>
<li><a href="https://github.com/ftravers/datomic-tutorial">Datomic Tutorial</a></li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li>My favourite schadenfreude is still <a href="https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/eUAKwjihhBs/rpxMXjZHCQAJ">CA</a> schadenfreude.</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>38: The truth about nothing, integrant, shadows</title>
      <link>https://www.therepl.net/38/</link>
      <pubDate>Mon, 20 Mar 2017 21:32:53 +1300</pubDate>
      <guid>https://www.therepl.net/38/</guid>
      <description>Notes.
This week I wrote an article&#xA0;speculating&#xA0;about the subtext of Alphabet&amp;rsquo;s lawsuit against Uber.
-main
James Reeve&amp;rsquo;s&#xA0;Integrant&#xA0;was definitely the standout link&#xA0;for me this week. It is an alternative to Component and Mount, and I really like it. I highly recommend it, just to hear his thoughts on libraries and frameworks. The prolific Daniel Higginbotham has a new site&#xA0;Community Picks&#xA0;up which aggregates book recommendations for subreddits, and he has a new book/quest out:&#xA0;Deploying Your First Clojure App&amp;hellip;&#xA0;From The Shadows.</description>
      <content:encoded><![CDATA[<p><strong>Notes.</strong></p>
<p>This week I wrote an article <a href="https://danielcompton.net/2017/03/14/uber-bombshell">speculating</a> about the subtext of Alphabet&rsquo;s lawsuit against Uber.</p>
<p><strong>-main</strong></p>
<ul>
<li>James Reeve&rsquo;s <a href="https://skillsmatter.com/skillscasts/9820-enter-integrant-a-micro-framework-for-data-driven-architecture-with-james-reeves">Integrant</a> was definitely the standout link for me this week. It is an alternative to Component and Mount, and I really like it. I highly recommend it, just to hear his thoughts on libraries and frameworks.</li>
<li>The prolific Daniel Higginbotham has a new site <a href="http://www.communitypicks.com/r/clojure">Community Picks</a> up which aggregates book recommendations for subreddits, and he has a new book/quest out: <a href="http://www.braveclojure.com/quests/deploy/">Deploying Your First Clojure App&hellip; From The Shadows</a>.</li>
<li><a href="https://8thlight.com/blog/colin-jones/2017/03/17/everybody-ooms.html">Everybody OOMs</a></li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li><a href="http://reborg.tumblr.com/post/158313176768/march-2017-book-updates">Clojure Standard Library March 2017 update</a></li>
<li><a href="https://groups.google.com/forum/#!topic/clojure/m75_1BloWxU">Postagga</a>, a natural language processing library</li>
<li><a href="https://github.com/EwenG/muance">muance</a>, a virtual dom library for ClojureScript</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li>Stuart Halloway <a href="https://gist.github.com/stuarthalloway/c2a38f3741b5d0661d4debf77f2f48bb">provides</a> Clojure spec&rsquo;s missing piece</li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li><a href="http://codecapsule.com/2014/02/12/coding-for-ssds-part-1-introduction-and-table-of-contents/">Coding for SSD&rsquo;s</a></li>
<li>Decreasing 99%ile file system latency <a href="https://blog.acolyer.org/2017/03/13/enlightening-the-io-path-a-holistic-approach-for-application-performance/">by 42x</a></li>
<li><a href="http://15721.courses.cs.cmu.edu/spring2017/papers/02-inmemory/hstore-lookingglass.pdf">OLTP through the looking glass</a>, this paper explores speeding up a database 20x by removing components that were needed 20 years ago when RAM was much smaller than database sizes.</li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li>Cursive <a href="https://groups.google.com/forum/#!topic/cursive/i7DLIfi5sxA">1.5.0-eap3</a> is out</li>
<li><a href="https://groups.google.com/forum/#!topic/clojure/Z0qRJNTYkqg">Virgil</a> recompiles your Java files inside your lein repl</li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li>Clojure 1.9.0-alpha15 is <a href="https://groups.google.com/forum/#!topic/clojure/7ZqGTjJoQEQ">out</a></li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li><a href="https://lispchronicles.wordpress.com/2017/03/16/the-truth-about-nothing/">The truth about nothing</a></li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li>Good advice from aphyr on <a href="https://aphyr.com/posts/340-acing-the-technical-interview">h</a><a href="https://aphyr.com/posts/340-acing-the-technical-interview">ow to do well</a> at your next technical interview</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>37: Lenses, hashing, and Metrics that Matter</title>
      <link>https://www.therepl.net/37/</link>
      <pubDate>Sun, 12 Mar 2017 09:40:57 +1300</pubDate>
      <guid>https://www.therepl.net/37/</guid>
      <description>Notes.
It&amp;rsquo;s been a pretty&#xA0;wet week&#xA0;here in New Zealand. I&amp;rsquo;ve been working on&#xA0;Deps&#xA0;and experimenting with Google&amp;rsquo;s new&#xA0;Cloud Spanner. I&amp;rsquo;m liking what I&amp;rsquo;m seeing so far, I&amp;rsquo;ll put together an article with my experience in a few weeks.
-main
Bill Piel&#xA0;is looking for feedback on&#xA0;Sayid PRO, a tool to debug and profile Clojure in production A (somewhat heated but still valuable) discussion on&#xA0;Navigators,&#xA0;Lenses, and Specter.</description>
      <content:encoded><![CDATA[<p><strong>Notes.</strong></p>
<p>It&rsquo;s been a pretty <a href="http://www.radionz.co.nz/news/national/326358/rain-floods-northern-regions,-with-more-on-its-way">wet week</a> here in New Zealand. I&rsquo;ve been working on <a href="https://www.deps.co/">Deps</a> and experimenting with Google&rsquo;s new <a href="https://cloud.google.com/spanner/">Cloud Spanner</a>. I&rsquo;m liking what I&rsquo;m seeing so far, I&rsquo;ll put together an article with my experience in a few weeks.</p>
<p><strong>-main</strong></p>
<ul>
<li><a href="http://billpiel.com/">Bill Piel</a> is looking for feedback on <a href="http://sayidpro.com/">Sayid PRO</a>, a tool to debug and profile Clojure in production</li>
<li>A (somewhat heated but still valuable) discussion on <a href="https://groups.google.com/forum/#!topic/clojure/iw5a94BQQa4">Navigators, Lenses, and Specter.</a></li>
<li><a href="https://hackernoon.com/counting-lines-60-faster-than-wc-with-clojure-core-async-1af4ce058884#.i5bqmnxlm">Counting lines 60x faster than wc with core.async</a></li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li><a href="https://www.reddit.com/r/Clojure/comments/5xsb1l/is_someone_writing_datomic_book/">Is someone writing a Datomic book?</a></li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li>A <a href="https://blog.acolyer.org/2017/03/08/redundancy-does-not-imply-fault-tolerance-analysis-of-distributed-storage-reactions-to-single-errors-and-corruptions/">scary study</a> showing how distributed storage systems (Cassandra, Zookeeper, Kafka, e.t.c.) handle file system bugs (or don&rsquo;t handle them).</li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li><a href="http://dev.clojure.org/jira/browse/CLJ-1860">CLJ-1860</a>: 0.0 and -0.0 compare equally, but hash differently</li>
<li><a href="http://dev.clojure.org/jira/browse/CLJ-2123">CLJ-2123</a>: Lighter-weight aliasing for keywords</li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li><a href="https://www.youtube.com/watch?v=iF9NoqYBb4U">Metrics That Matter</a></li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>36: Nihilists, quadratics, and great expectations</title>
      <link>https://www.therepl.net/36/</link>
      <pubDate>Mon, 06 Mar 2017 21:14:03 +1300</pubDate>
      <guid>https://www.therepl.net/36/</guid>
      <description>-main
Nathan Marz on&#xA0;Clojure&amp;rsquo;s missing piece&#xA0;- Specter From&#xA0;Ruby to Clojure What makes Clojure Clojure? Libraries &amp;amp; Books.
lambdaisland/uri&#xA0;is a clj/cljs library for handling URIs, including RFC compatible joining of relative URIs (./foo, ../bar). Foundations.
Rust&amp;rsquo;s language ergonomics initiative&#xA0;+&#xA0;HN comments. Something like this for Clojure would be amazing. Accidentally Quadratic -&#xA0;Capistrano server definition Java 9 Enters&#xA0;First Bug Fixing Round JVM Options&#xA0;cheat sheet Tools.</description>
      <content:encoded><![CDATA[<p><strong>-main</strong></p>
<ul>
<li>Nathan Marz on <a href="http://nathanmarz.com/blog/clojures-missing-piece.html">Clojure&rsquo;s missing piece</a> - Specter</li>
<li>From <a href="https://medium.com/intercom-developers/from-ruby-to-clojure-an-intercom-integration-story-e6042806a152#.fl00lau1y">Ruby to Clojure</a></li>
<li><a href="https://groups.google.com/forum/#!topic/clojure/_I3Tn9RZ8H8">What makes Clojure Clojure?</a></li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li><a href="https://lambdaisland.com/blog/27-02-2017-announcing-lambdaisland-uri">lambdaisland/uri</a> is a clj/cljs library for handling URIs, including RFC compatible joining of relative URIs (./foo, ../bar).</li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li><a href="https://blog.rust-lang.org/2017/03/02/lang-ergonomics.html">Rust&rsquo;s language ergonomics initiative</a> + <a href="https://news.ycombinator.com/item?id=13785277">HN comments</a>. Something like this for Clojure would be amazing.</li>
<li>Accidentally Quadratic - <a href="https://accidentallyquadratic.tumblr.com/post/157780750486/capistrano-server-definition">Capistrano server definition</a></li>
<li>Java 9 Enters <a href="https://www.infoq.com/news/2017/01/java9-rampdown-phase-start">First Bug Fixing Round</a></li>
<li><a href="https://zeroturnaround.com/rebellabs/jvm-options-cheat-sheet/">JVM Options</a> cheat sheet</li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li>Gradle&rsquo;s new <a href="https://blog.gradle.org/incremental-compiler-avoidance">compile avoidance and incremental compilation</a> look really good. Perhaps some of the same techniques could be used for ClojureScript compilation? There are also features to help prevent library consumers depend on transitive dependencies.</li>
<li><a href="http://jakemccrary.com/blog/2017/02/27/using-lein-test-refresh-with-expectations/">Using</a> lein-test-refresh with expectations</li>
<li>repl.it now supports <a href="https://repl.it/site/blog/clojure">Clojure</a></li>
<li><a href="https://www.reddit.com/r/Clojure/comments/5xesfl/clojure_oriented_ergodox_ez_layout/">Clojure oriented Ergodox layout</a></li>
<li><a href="https://github.com/technomancy/lein-blacklist">lein-blacklist</a> is a plugin to stop certain namespaces from being required.</li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li><a href="http://dev.clojure.org/jira/browse/CLJS-1954">CLJS-1954</a>: ClojureScript 1.9.493 and up break usage of core.async, due to an updated Google Closure dependency</li>
<li><a href="https://groups.google.com/forum/#!topic/clojure/i7ipoze2jos">Release date for 1.9</a> (spoiler: there isn&rsquo;t one yet)</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li><a href="https://lispchronicles.wordpress.com/2017/02/10/functional-abstractions/">Functional</a> and <a href="https://lispchronicles.wordpress.com/2017/02/22/syntactic-abstractions/">syntactic</a> abstractions in Lisp</li>
<li>ClojureX 2017 <a href="http://jr0cket.co.uk/2017/02/clojureX-2017-sneak-peak.html">sneak peek</a></li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li><a href="https://www.arrdem.com/2017/03/03/reviewboard/">Nihilist Reviewboard</a></li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>35: The Cantrillogy, Write Behind Logging, "With change comes risk"</title>
      <link>https://www.therepl.net/35/</link>
      <pubDate>Sun, 26 Feb 2017 21:13:24 +1300</pubDate>
      <guid>https://www.therepl.net/35/</guid>
      <description>-main
Clojars is now&#xA0;officially a&#xA0;member&#xA0;of the Software Freedom Conservancy &amp;ldquo;In this day and age of raging debates about type systems, &amp;hellip; it&amp;rsquo;s refreshing to hear Sam prioritise&#xA0;the lowering of cognitive load&amp;rdquo; &amp;ldquo;We&amp;rsquo;re reassured when we see lots of recent change, lots of contributors, and lots of new stuff&#xA0;appearing.&#xA0;In reality I think that&amp;rsquo;s almost exactly the opposite of what should reassure us.&#xA0;With change comes risk.</description>
      <content:encoded><![CDATA[<p><strong>-main</strong></p>
<ul>
<li>Clojars is now <a href="https://sfconservancy.org/news/2017/feb/23/clojars-announcement/">officially a </a><a href="https://sfconservancy.org/news/2017/feb/23/clojars-announcement/">member</a> of the Software Freedom Conservancy</li>
<li>&ldquo;In this day and age of raging debates about type systems, &hellip; it&rsquo;s refreshing to hear Sam prioritise <a href="https://juxt.pro/blog/posts/XT16-sam-aaron-communicative-programming.html">the lowering of cognitive load</a>&rdquo;</li>
<li>&ldquo;We&rsquo;re reassured when we see lots of recent change, lots of contributors, and lots of new stuff appearing. In reality I think that&rsquo;s almost exactly the opposite of what should reassure us. <a href="https://www.reddit.com/r/Clojure/comments/5vjq54/whats_the_reason_of_clojure_having_lots_of/de2w8vx/">With change comes risk</a>.&rdquo;</li>
<li><a href="https://medium.com/@swlkr/a-majestic-monolith-api-in-clojure-8c16d5ba18c8#.rau7yg8g4">A Majestic Monolith</a> in Clojure</li>
<li>Dragan Djuric has <a href="http://dragan.rocks/articles/17/Bayadera-Bayes-Clojure-GPU-slides-Bobkonferenz">slides</a> up for his talk on Clojure on the GPU</li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li><a href="http://langintro.com/cljsbook">Transforming Data with ClojureScript</a> is a new interactive beginners book on ClojureScript and Functional Programming</li>
<li>core.async <a href="https://groups.google.com/forum/#!topic/clojure/ernPNtfVTng">0.3.441</a>, and <a href="https://groups.google.com/forum/#!topic/clojure/9JDdDnWI4O0">0.3.426</a> are out with some fixes for handling exceptions in go blocks</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li><a href="https://groups.google.com/forum/#!topic/clojure/TL-9qDa057Y">Soft failures with Spec</a></li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li>Non Volatile Memory (NVM) bridges the gap between the throughput and latency of flash, and the durability and capacity of flash. This changes a lot of the assumptions and constraints in storage systems and databases. This article on <a href="http://paulcavallaro.com/blog/write-behind-logging/">Write Behind Logging</a> shows how taking advantage of NVM&rsquo;s unique properties sped up throughput by 1.2x-1.3x, and failure recovery time by 100x. The paper was co-authored by Andy Pavlo who showed up here a few weeks ago with his <a href="https://www.youtube.com/watch?v=mzMnyYdO8jk&amp;t=3s">talk about Peloton</a>.</li>
<li>Eric Normand has written a bunch of articles this week about <a href="https://purelyfunctional.tv/article/">th</a><a href="https://purelyfunctional.tv/article/">e JVM</a><a href="https://purelyfunctional.tv/article/"> and Clojure</a></li>
<li><a href="https://www.infoq.com/articles/enterprise-java-opinion">The Future of Java in the Enterprise</a> (including InfoQ&rsquo;s thoughts on Clojure adoption)</li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li>Howard Lewis Ship has released <a href="https://github.com/walmartlabs/vizdeps">vizdeps</a>, a lein plugin to visualise your dependency tree</li>
<li><a href="https://blog.jetbrains.com/blog/2017/02/24/jetbrains-2016-in-review/">JetBrains 2016 in Review</a></li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li>A mailing list thread on <a href="https://groups.google.com/forum/#!topic/clojure/qN1UPMVQmaM">contributing Specter to Clojure core</a></li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li>A <a href="http://blog.opengrail.com/clojure/clojurescript/functional/2017/02/21/interactive.html">deep dive</a> into Clojure&rsquo;s next and rest functions</li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li>If you also enjoy mainlining Bryan Cantrill, BSDNow has released <a href="http://www.jupiterbroadcasting.com/106911/the-cantrillogy-bsd-now-181/">The Cantrillogy</a>, three back to back Bryan Cantrill interviews.</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>34: Magic, wisdom of the ancients, and fire for everyone</title>
      <link>https://www.therepl.net/34/</link>
      <pubDate>Fri, 17 Feb 2017 17:08:25 +1300</pubDate>
      <guid>https://www.therepl.net/34/</guid>
      <description>Notes.
I&amp;rsquo;ve started a Facebook page for The REPL. If you&amp;rsquo;re into that kind of thing, you can&#xA0;check it out. I won&amp;rsquo;t be offended if you don&amp;rsquo;t though.
-main
The Clojure/West 2017&#xA0;speakers list has been&#xA0;announced Ramsey Nasser&#xA0;on Magic&#xA0;+ Reddit&#xA0;comments. He&amp;rsquo;ll also be&#xA0;speaking about it&#xA0;at Clojure/West Eric Normand runs a weekly&#xA0;FP/Clojure newsletter&#xA0;at&#xA0;PurelyFunctional.tv re-frame subscriptions got even better The future of Clojure vs Go (on Reddit) Libraries &amp;amp; Books.</description>
      <content:encoded><![CDATA[<p><strong>Notes.</strong></p>
<p>I&rsquo;ve started a Facebook page for The REPL. If you&rsquo;re into that kind of thing, you can <a href="https://www.facebook.com/therepl/">check it out</a>. I won&rsquo;t be offended if you don&rsquo;t though.</p>
<p><strong>-main</strong></p>
<ul>
<li>The Clojure/West 2017 speakers list has been <a href="http://2017.clojurewest.org/speakers/">announced</a></li>
<li>Ramsey Nasser <a href="https://vimeo.com/203271192">on Magic</a> + Reddit <a href="https://www.reddit.com/r/Clojure/comments/5tcrt5/ramsey_nasser_on_magic/">comments</a>. He&rsquo;ll also be <a href="http://2017.clojurewest.org/meta-program-bytecode/">speaking about it</a> at Clojure/West</li>
<li>Eric Normand runs a weekly <a href="https://purelyfunctional.tv/newsletter/">FP/Clojure newsletter</a> at <a href="https://purelyfunctional.tv/">PurelyFunctional.tv</a></li>
<li><a href="https://lambdaisland.com/blog/11-02-2017-re-frame-form-1-subscriptions">re-frame subscriptions got even better</a></li>
<li>The future of Clojure vs Go (<a href="https://www.reddit.com/r/Clojure/comments/5uftns/how_do_you_see_future_of_clojure_compared_to/">on Reddit</a>)</li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li>I&rsquo;ve mentioned these in previous newsletters, but the author of <a href="https://www.manning.com/books/clojure-standard-library">&ldquo;Clojure Standard Library&rdquo;</a> has been publishing related screencasts weekly on different Clojure functions: <a href="http://reborg.tumblr.com/post/157268554578/new-clojure-pills-screencast">Clojure Pills</a>.</li>
<li><a href="https://github.com/SimpleValue/sv.system">sv.system</a>: leverage conventions to structure your component-based Clojure systems</li>
<li>or you could try <a href="https://github.com/petrglad/compost">compost</a>, a variation on Component (but still compatible with Component)</li>
<li><a href="https://github.com/retro/graphql-builder">graphql-builder</a>: a GraphQL client library for Clojure and ClojureScript. A good example of using cljc to make a highly portable library.</li>
<li><a href="https://github.com/roman01la/scrum">scrum</a>: State Coordination for Rum</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li>Fogus on clojure.spec: <a href="http://blog.fogus.me/2017/02/10/clojure-spec-data-design-01-sketching-a-struct/">Data Design 01 - Sketching a Struct</a></li>
<li><a href="http://bytecode%20and%20performance%20of%20optionals%20vs%20null%20in%20java/">Bytecode and performance</a> of optionals vs if-null in Java</li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li><a href="https://shipilev.net/blog/2016/arrays-wisdom-ancients/">Arrays of Wisdom of the Ancients</a></li>
<li>Java Flame Graphs: <a href="http://psy-lob-saw.blogspot.co.nz/2017/02/flamegraphs-intro-fire-for-everyone.html">Fire for everyone</a></li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li>sudo <a href="http://blog.fikesfarm.com/posts/2017-02-11-apt-get-install-planck.html">apt-get install planck</a></li>
<li>crepl can <a href="http://thegeez.net/2017/02/11/crepl_atom_sync.html">sync atoms across time and space</a></li>
<li><a href="https://owensd.io/2017/02/14/electron-figwheel-support/">Electron + Figwheel</a>, and <a href="https://owensd.io/2017/02/10/clojurescript-electron-clean-up-time/">CLJS + Electron Cleanup</a>, both from David Owens II</li>
<li>use-package.el <a href="https://www.reddit.com/r/emacs/comments/5udtw1/usepackageel_about_to_be_moved_to_emacs_core/">moving into emacs core</a></li>
<li>Pyroclast has a snazzy <a href="http://pyroclast.io/">website</a> and logo</li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li>ClojureScript had a bugfix release: <a href="https://groups.google.com/forum/#!msg/clojurescript/rK2pnUwvTkI/th7Wh0L6CgAJ">1.9.473</a></li>
<li><a href="http://dev.clojure.org/jira/browse/CLJ-2108">CLJ-2108</a>: Loading core specs affects startup time</li>
<li><a href="http://dev.clojure.org/jira/browse/CLJ-1138">CLJ-1138</a>: data-reader returning nil causes exception</li>
<li><a href="http://dev.clojure.org/jira/browse/CLJ-2066">CLJ-2066</a>: Reflection on internal classes fails under Java 9</li>
<li><a href="http://dev.clojure.org/jira/browse/CLJ-2103">CLJ-2103</a>: s/coll-of and s/every take a long time to generate if :into is not provided</li>
<li>There&rsquo;s too many core.async tickets with recent movement to list, but it sounds like there will be a release soon, so take a look at the <a href="http://dev.clojure.org/jira/secure/IssueNavigator!executeAdvanced.jspa">list</a> if you have any pet bugs you&rsquo;re tracking.</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li><a href="https://whilo.github.io/articles/17/replicating-datomic">Storing Tweets with Replikativ with Datomic</a></li>
<li><a href="https://cb.codes/how-to-read-and-debug-clojure-stack-traces/">How to understand Clojure stacktraces and error messages</a></li>
<li><a href="https://purelyfunctional.tv/article/clojures-hosted-legacy/">Clojure&rsquo;s hosted legacy and the JVM</a></li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li><a href="https://pspdfkit.com/blog/2017/how-to-fix-a-bug-blindfolded/">How to Fix a Bug, Blindfolded</a></li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>33: Data dramatics, and an "intrinsically unsafe" database (guess which)</title>
      <link>https://www.therepl.net/33/</link>
      <pubDate>Fri, 10 Feb 2017 16:05:27 +1300</pubDate>
      <guid>https://www.therepl.net/33/</guid>
      <description>-main
The biggest &amp;lsquo;wow&amp;rsquo; article for me this week was&#xA0;Pyroclast, an in browser simulation tool for an Onyx cluster. It looks like it could speed up iteration by a factor of 10-1000x. The 2016 State of Clojure survey has been&#xA0;released I wrote an&#xA0;analysis&#xA0;of the free text survey question Building&#xA0;a Chrome extension with ClojureScript - Hacker News&#xA0;Lookup Clojure&#xA0;memory leaks&#xA0;in production (spoiler, it was memoize) There are some cool&#xA0;project ideas&#xA0;for the Clojure Google Summer of Code 2017 program (Clojure hasn&amp;rsquo;t been accepted yet).</description>
      <content:encoded><![CDATA[<p><strong>-main</strong></p>
<ul>
<li>The biggest &lsquo;wow&rsquo; article for me this week was <a href="http://www.onyxplatform.org/jekyll/update/2017/02/08/Pyroclast-Preview-Simulation.html">Pyroclast</a>, an in browser simulation tool for an Onyx cluster. It looks like it could speed up iteration by a factor of 10-1000x.</li>
<li>The 2016 State of Clojure survey has been <a href="http://blog.cognitect.com/blog/2017/1/31/state-of-clojure-2016-results">released</a></li>
<li>I wrote an <a href="https://danielcompton.net/2017/02/08/clojure-survey-2016">analysis</a> of the free text survey question</li>
<li><a href="http://jazzytomato.com/hnlookup-chrome-extension-clojurescript/">Building</a> a Chrome extension with ClojureScript - Hacker News Lookup</li>
<li>Clojure <a href="https://techblog.roomkey.com/posts/memory-leak.html">memory leaks</a> in production (spoiler, it was memoize)</li>
<li>There are some cool <a href="https://github.com/clojars/clojure-gsoc-2017/blob/master/project-ideas.md">project ideas</a> for the Clojure Google Summer of Code 2017 program (Clojure hasn&rsquo;t been accepted yet).</li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li><a href="https://nervous.io/clojurescript/lambda/2017/02/06/serverless-cljs/">serverless-cljs</a></li>
<li>Mozilla has renamed datomish, their Datomic inspired store to <a href="https://github.com/mozilla/mentat">mentat</a></li>
<li><a href="https://github.com/metabase/toucan/">toucan</a>: A (classy) Clojure ORM from Metabase</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li>There was plenty of type worrying (but maybe less than last year?) in the <a href="https://danielcompton.net/2017/02/08/clojure-survey-2016">Clojure Survey responses</a>.</li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li>The always excellent Dan Luu on <a href="https://danluu.com/web-bloat/">web bloat</a></li>
<li><a href="https://jepsen.io/analyses/mongodb-3-4-0-rc3">A Jepsen test of MongoDB</a> by Kyle Kingsbury. I award no points for guessing that Mongo&rsquo;s first  (and still in use) replication protocol turned out to be &ldquo;intrinsically unsafe&rdquo;</li>
<li>Java 9 will <a href="http://blog.takipi.com/java-9-will-change-the-way-you-traverse-stack-traces/">change the way</a> you traverse stack traces. Maybe it will change the way we traverse Clojure ones too?</li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li><a href="https://github.com/eginez/calvin">calvin</a>: A minimalistic CLJS build tool which doesn&rsquo;t require a JVM (!)</li>
<li><a href="https://adzerk.com/blog/2017/02/faster-clojure-metadevelopment-with-boot/">Faster Meta-development</a> with Boot by Alan Dipert with a demonstration of how to avoid needing to restart Clojure programs in development.</li>
<li><a href="https://lwn.net/Articles/713114/">Vim turns 25 and releases Vim 8</a></li>
<li><a href="https://juxt.pro/blog/posts/datomic-packer-terraform.html">Provisioning</a> Datomic using Packer and Terraform</li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li><a href="http://dev.clojure.org/jira/browse/CLJ-1496">CLJ-1496</a>: Add a new arity to ex-info that only accepts a message</li>
<li><a href="http://dev.clojure.org/jira/browse/CLJ-1776">CLJ-1776</a>: Test that collections are valid statements</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li><a href="http://blog.josephwilk.net/clojure/functions-explained-through-patterns.html">Functions Explained Through Patterns</a></li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li><a href="http://brutalism.rs/post/process-aesthetic-engine-2/">Aesthetic Engine</a><a href="http://brutalism.rs/post/process-aesthetic-engine-2/"> 2</a> provides an abstract visualisation of webpages. I learnt a new-to-me term &ldquo;Data Dramatisation&rdquo; too.</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>32: Planck, clear thinking, collaborative REPLs, neanderthals</title>
      <link>https://www.therepl.net/32/</link>
      <pubDate>Mon, 06 Feb 2017 21:05:29 +1300</pubDate>
      <guid>https://www.therepl.net/32/</guid>
      <description>Notes.
A big thanks to everyone who shared The REPL last week, I had the biggest bump in subscribers since it was launched. Welcome to the new subscribers!
-main
Programmatically accessing&#xA0;ClojureScripts Externs Inference It&amp;rsquo;s time to get Clojure ready for Google Summer of Code What&amp;rsquo;s next&#xA0;for Clojars in 2017? Who is using Clojure in production, and would you do it again? Why React &amp;amp; re-frame are fast in 7 performance hacks Know your keywords Libraries &amp;amp; Books.</description>
      <content:encoded><![CDATA[<p><strong>Notes.</strong></p>
<p>A big thanks to everyone who shared The REPL last week, I had the biggest bump in subscribers since it was launched. Welcome to the new subscribers!</p>
<p><strong>-main</strong></p>
<ul>
<li><a href="http://bendyworks.com/blog/externs-clojurescript">Programmatically accessing</a> ClojureScripts Externs Inference</li>
<li><a href="https://groups.google.com/forum/?pli=1#!topic/clojure/KsDZ8QKOeoc">It&rsquo;s time to get Clojure ready for Google Summer of Code</a></li>
<li><a href="https://groups.google.com/forum/?pli=1#!topic/clojure/-AIn1QlWyFs">What&rsquo;s next</a> for Clojars in 2017?</li>
<li><a href="https://news.ycombinator.com/item?id=13526553">Who is using Clojure in production, and would you do it again?</a></li>
<li><a href="https://lambdaisland.com/blog/02-02-2017-why-react-reagent-fast-7-performance-hacks">Why React &amp; re-frame are fast in 7 performance hacks</a></li>
<li><a href="http://www.deepbluelambda.org/programming/clojure/know-your-keywords">Know your keywords</a></li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li><a href="https://groups.google.com/forum/#!topic/clojurescript/W54X7Zmg7dY">kabel 0.2.0</a>: a bidirectional wire to pass Clojure values between peers</li>
<li><a href="https://github.com/cognitect-labs/vase">vase</a>: data driven microservices from Cognitect, and a <a href="http://blog.cognitect.com/blog/2017/1/30/unlocking-hidden-value-in-your-data-1">blog post</a> about it.</li>
<li><a href="https://groups.google.com/forum/?pli=1#!topic/clojure/KzVcnncPIpg">system 0.4.0</a> is out with some neat changes for abstracting middleware like social sign-on libraries</li>
<li><a href="https://github.com/gixxi/lambdaroyal-memory">lambdaroyal-memory 0.8.3</a>: STM-based in-memory database storing persistent data structures</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li><a href="https://groups.google.com/forum/#!topic/clojure/i770QaIFiF0">Documentation for namespace aliased keywords</a></li>
<li><a href="https://groups.google.com/forum/#!topic/clojure/rNUgnUII1Io">Restricting keywords in maps with clojure.spec</a></li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li><a href="https://leanpub.com/readevalprintlove004/read">Read-Eval-Print-λove 004</a> is out</li>
<li>An extremely well reasoned <a href="https://github.com/golang/proposal/blob/master/design/12914-monotonic.md">design document</a> for Go&rsquo;s proposal to make time measurements monotonic. It&rsquo;s well worth reading for the clear thinking and technical writing.</li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li><a href="http://blog.fikesfarm.com/posts/2017-02-04-planck-2.html">Planck 2</a> is out with Linux support</li>
<li>Light Table <a href="http://lighttable.com/2017/01/27/light-table-roadmap-2017/">2017 Roadmap</a>. I&rsquo;m very happy to see continued development on it, it&rsquo;s an especially great tool for beginners.</li>
<li><a href="http://thegeez.net/2017/02/05/crepl_run_continuously.html">crepl</a>: a collaborative (!) ClojureScript REPL</li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li>If you use core.async, it&rsquo;s worth being aware of <a href="http://dev.clojure.org/jira/secure/IssueNavigator.jspa?reset=true&amp;jqlQuery=labels+%3D+try-catch">some bugs</a> around throwing and catching exceptions</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li><a href="http://2017.euroclojure.org/">EuroClojure 2017</a> is going to be in Berlin on July 20-21</li>
<li><a href="https://blog.clubhouse.io/using-datomic-heres-how-to-move-from-postgresql-to-dynamodb-local-79ad32dae97f#.js3ka53up">Moving Datomic storage</a> from PostgreSQL to DynamoDB</li>
<li><a href="https://bigsolutions.io/2017/02/01/how-to-run-neanderthal-with-atlas-blas-from-ubuntu-repositories/">How to run Neanderthal with Atlas BLAS from Ubuntu Repositories</a></li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li>Continuing my nerd crush on Joyent/Bryan Cantrill (whose name I embarassingly misspelled as Brian last week): <a href="https://www.joyent.com/blog/hitting-the-moon">Hitting the moon on the first shot</a>. It&rsquo;s about the rigorous engineering culture at Joyent. It sounds like a good way to build reliable software.</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>31: Snowmobiles, spiders, type B personalities</title>
      <link>https://www.therepl.net/31/</link>
      <pubDate>Sun, 29 Jan 2017 01:49:30 +1300</pubDate>
      <guid>https://www.therepl.net/31/</guid>
      <description>Notes.
I was talking with some Clojure developer friends and they mentioned they&amp;rsquo;d only recently&#xA0;discovered&#xA0;this newsletter. It was a reminder that not everyone knows about it.&#xA0;If you&#xA0;enjoy&#xA0;The REPL, would you consider&#xA0;sharing&#xA0;it with one of your friends/coworkers/bystanders? Thanks for reading!
-main
There&amp;rsquo;s Immutable&#xA0;and then there&amp;rsquo;s Immutable The Ten Rules of [Datomic]&#xA0;Schema Growth Clojure is for type B personalities JavaScript modules in ClojureScript, and&#xA0;Externs Inference,&#xA0;which both tie&#xA0;into&#xA0;the&#xA0;release of&#xA0;ClojureScript 1.</description>
      <content:encoded><![CDATA[<p><strong>Notes.</strong></p>
<p>I was talking with some Clojure developer friends and they mentioned they&rsquo;d only recently discovered this newsletter. It was a reminder that not everyone knows about it. If you enjoy The REPL, would you consider sharing it with one of your friends/coworkers/bystanders? Thanks for reading!</p>
<p><strong>-main</strong></p>
<ul>
<li><a href="http://blog.jenkster.com/2017/01/theres-immutable-and-then-theres-immutable.html">There&rsquo;s Immutable and then there&rsquo;s Immutable</a></li>
<li><a href="http://blog.datomic.com/2017/01/the-ten-rules-of-schema-growth.html">The Ten Rules of [Datomic] Schema Growth</a></li>
<li><a href="https://gist.github.com/oakes/c82cd08821ce444be6bf">Clojure is for type B personalities</a></li>
<li><a href="https://clojurescript.org/guides/javascript-modules">JavaScript modules in ClojureScript</a>, and <a href="https://clojurescript.org/guides/externs">Externs Inference</a>, which both tie into the <a href="https://groups.google.com/forum/#!topic/clojure/3YxkqjyAr28">release of ClojureScript 1.9.456</a></li>
<li>Arachne has an <a href="http://arachne-framework.org/posts/2017/alpha-release/">alpha release out</a></li>
<li><a href="https://juxt.pro/blog/posts/live-programming-websites.html">&lsquo;Live&rsquo; programming, server-side</a></li>
<li><a href="https://sekao.net/blog/industry.html">ClojureScript: The industry&rsquo;s favourite functional frontend language</a> </li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li><a href="https://github.com/boot-clj/boot-new">boot-new</a> generates new projects based on boot/leiningen templates</li>
<li><a href="https://github.com/Cognician/datomic-doc">Datomic Doc</a> manages :db/doc strings in your Datomic database</li>
<li><a href="https://github.com/juxt/skip">Skippy McSkipface</a> tracks resource dependencies</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li><a href="http://ashtonkemerling.com/blog/2017/01/26/java-without-if/">Java Without If</a></li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li><a href="https://www.infoq.com/presentations/java-past-future-openjdk">Java SE State of the Union</a></li>
<li><a href="https://webkit.org/blog/7122/introducing-riptide-webkits-retreating-wavefront-concurrent-garbage-collector/">Introducing Riptide</a>: WebKit&rsquo;s Retreating Wavefront Concurrent Garbage Collector</li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li><a href="http://blog.fikesfarm.com/posts/2017-01-22-planck-road-ahead.html">Planck road ahead</a></li>
<li><a href="https://quanttype.net/posts/2017-01-26-clojure-test-runner-of-my-dreams.html">Clojure test runner of my dreams</a></li>
<li><a href="https://www.reddit.com/r/Clojure/comments/5py384/whats_the_best_way_to_setup_a_development/">What&rsquo;s the best way to setup a development environment with Clojure?</a></li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li><a href="https://github.com/clojure/clojurescript/blob/master/changes.md#19456">Release notes</a> for ClojureScript 1.9.456</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li><a href="http://timothypratley.blogspot.co.nz/2017/01/reagent-deep-dive-part-4-application.html">Reagent Deep Dive part 4</a></li>
<li><a href="http://fgiasson.com/blog/index.php/2017/01/24/disambiguating-kbpedia-knowledge-graph-concepts/">Disambiguating</a> KBpedia Knowledge Graph Concepts</li>
<li><a href="http://yilazius.github.io/clojure/macro/readability/threading/2017/01/21/thread-first-makro-clojure.html">Grokking</a> Clojure&rsquo;s thread-first and thread-last macros</li>
</ul>
<p><strong>Misc.</strong></p>
<p><em>&ldquo;I feel that we&rsquo;ve entered a new phase here where the extant infrastructure providers &mdash; hardware providers &mdash; are now going to enter a new and much steeper phase of demise. &hellip; If I were those companies, I would seriously start carjacking [AWS] Snowmobiles. I mean, turn them around, right? I&rsquo;d do something.&rdquo;</em></p>
<p>Brian Cantrill - <a href="https://architecht.io/the-economics-of-private-clouds-the-rise-of-serverless-and-the-business-case-for-carjacking-79c65fdd4999#.ay8tdik4g">The economics of private clouds</a></p>
]]></content:encoded>
    </item>
    <item>
      <title>30: Clojure pills, knowing your tools, spandex</title>
      <link>https://www.therepl.net/30/</link>
      <pubDate>Fri, 20 Jan 2017 14:41:33 +1300</pubDate>
      <guid>https://www.therepl.net/30/</guid>
      <description>-main
Knowing your tools Zach Tellman on&#xA0;the appropriate use of nil Clojars is&#xA0;joining&#xA0;the&#xA0;Software Freedom Conservancy. If you have any issues or questions, you can raise them on the linked email thread. Reagent deep dive&#xA0;part 2&#xA0;and&#xA0;part 3 Clojure in Berlin Libraries &amp;amp; Books.
aws-arn: parse AWS ARNs in Clojure Max Penet dons some&#xA0;spandex&#xA0;to query Elasticsearch net: the Clojure netty companion dom-top&#xA0;from Aphyr (SFW) People are worried about Types.</description>
      <content:encoded><![CDATA[<p><strong>-main</strong></p>
<ul>
<li><a href="http://reborg.tumblr.com/post/155991536643/knowing-your-tools">Knowing your tools</a></li>
<li>Zach Tellman on <a href="https://twitter.com/ztellman/status/803094324866990080">the appropriate use of nil</a></li>
<li>Clojars is <a href="https://groups.google.com/forum/#!topic/clojars-maintainers/Zdglsqn1cgA">joining</a> the <a href="https://sfconservancy.org/">Software Freedom Conservancy</a>. If you have any issues or questions, you can raise them on the linked email thread.</li>
<li>Reagent deep dive <a href="https://timothypratley.blogspot.co.nz/2017/01/reagent-deep-dive-part-2-lifecycle-of.html">part 2</a> and <a href="http://timothypratley.blogspot.co.nz/2017/01/reagent-deep-dive-part-3-sequences.html">part 3</a></li>
<li><a href="https://juxt.pro/blog/posts/clojure-in-red-pineapple-media.html">Clojure in Berlin</a></li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li><a href="https://olslash.github.io/blog/Running-Clojure-code-on-AWS-Lambda/">aws-arn</a>: parse AWS ARNs in Clojure</li>
<li>Max Penet dons some <a href="https://github.com/mpenet/spandex">spandex</a> to query Elasticsearch</li>
<li><a href="https://github.com/pyr/net">net</a>: the Clojure netty companion</li>
<li><a href="https://github.com/aphyr/dom-top">dom-top</a> from Aphyr (SFW)</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li>Uncle Bob <a href="http://blog.cleancoder.com/uncle-bob/2017/01/11/TheDarkPath.html">sure</a> is <a href="http://blog.cleancoder.com/uncle-bob/2017/01/13/TypesAndTests.html">worried</a></li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li><a href="https://groups.google.com/d/msg/clojure/DFBNCuYpICE/oe2Iug4PUAsJ">Rich Hickey on hierarchies</a> (2009)</li>
<li><a href="http://canonical.org/~kragen/memory-models/">The memory models that underly programming languages</a></li>
<li>Shenandoah GC in a <a href="https://twitter.com/shipilev/status/820010017294262273/photo/1">Tweet</a></li>
<li><a href="http://lists.ruby-lang.org/pipermail/jruby/2017-January/000511.html">TruffleRuby Status</a> (Truffle is a language implementation framework for the JVM)</li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li><a href="https://github.com/boot-clj/boot-figreload">boot-figreload</a> - first class figwheel support for Boot</li>
<li>IntelliJ IDEA 2017.1 EAP is <a href="https://blog.jetbrains.com/idea/2017/01/intellij-idea-2017-1-is-out/">out</a></li>
<li><a href="http://bpiel.github.io/sayid/">Sayid</a> - a tool for debugging and profiling Clojure</li>
<li><a href="https://marketplace.visualstudio.com/items?itemName=avli.clojure">Clojure on</a><a href="https://marketplace.visualstudio.com/items?itemName=avli.clojure"> Visual Studio Code</a></li>
<li><a href="http://ccann.github.io/2017/01/15/structural-editing-lisp.html">Lispy and clj-refactor worship</a></li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li>Ryan Kneufeld has announced <a href="https://gumroad.com/l/cr-cljs">ClojureScript Days</a>, a series of four half-day conferences focused on ClojureScript</li>
<li><a href="https://www.youtube.com/watch?v=uDOvBAcApC4">Clojure Pills</a> - a weekly screencast on the functions in the Clojure standard library</li>
<li><a href="https://olslash.github.io/blog/Running-Clojure-code-on-AWS-Lambda/">Running Clojure code on AWS Lambda</a></li>
<li><a href="http://numergent.com/2017-01/Reading-Clojure.html">Reading Clojure</a></li>
<li><a href="https://gist.github.com/hswick/83f338107a9fb72082a0131e147b35ed">Principal Component Analysis in pure Clojure</a></li>
</ul>
<p><strong>Misc.</strong></p>
<p>I really, really enjoyed this discussion on <a href="https://peter.bourgon.org/ok-log/">the design and implementation of OK Log</a>, a log management service.</p>
]]></content:encoded>
    </item>
    <item>
      <title>29: Playing chess without the board</title>
      <link>https://www.therepl.net/29/</link>
      <pubDate>Fri, 13 Jan 2017 14:40:36 +1300</pubDate>
      <guid>https://www.therepl.net/29/</guid>
      <description>Notes.
It&amp;rsquo;s a lovely sunny day here in Auckland. I hope you&amp;rsquo;re enjoying summer if you&amp;rsquo;re in the southern hemisphere, and keeping warm if you&amp;rsquo;re in the north.
-main
Evolving user interfaces&#xA0;with re-learn Libraries &amp;amp; Books.
Mach&#xA0;is a remake of make in ClojureScript Tire-iron&#xA0;brings the reloaded workflow to ClojureScript Dirac has&#xA0;reached 1.0.0&#xA0;and one year old. I use Dirac&#xA0;heavily for the inline REPL in Chrome devtools and debugging at breakpoints.</description>
      <content:encoded><![CDATA[<p><strong>Notes.</strong></p>
<p>It&rsquo;s a lovely sunny day here in Auckland. I hope you&rsquo;re enjoying summer if you&rsquo;re in the southern hemisphere, and keeping warm if you&rsquo;re in the north.</p>
<p><strong>-main</strong></p>
<ul>
<li>Evolving user interfaces <a href="https://juxt.pro/blog/posts/re-learn.html">with re-learn</a></li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li><a href="https://github.com/juxt/mach">Mach</a> is a remake of make in ClojureScript</li>
<li><a href="https://github.com/potetm/tire-iron">Tire-iron</a> brings the reloaded workflow to ClojureScript</li>
<li>Dirac has <a href="https://github.com/binaryage/dirac/releases/tag/v1.0.0">reached 1.0.0</a> and one year old. I use Dirac heavily for the inline REPL in Chrome devtools and debugging at breakpoints. I highly recommend looking at if if you do ClojureScript development.</li>
<li>Ring 1.5.1 <a href="https://groups.google.com/forum/#!topic/clojure/YDrKBV26rnA">released</a> to fix a path traversal vulnerability</li>
<li>Pedestal <a href="https://github.com/pedestal/pedestal/releases/tag/0.5.2">0.5.2</a> has some bug fixes and security updates for the path traversal vulnerability too</li>
<li>Immutant 2.1.6 was <a href="http://immutant.org/news/2017/01/12/announcing-2-1-6/">also released</a></li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li><a href="http://blog.fogus.me/2017/01/10/clojure-spec-introduction/">Fogus on clojure.spec</a> and why s/or exists</li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li><a href="http://stackoverflow.com/questions/32503669/why-does-the-jvm-have-a-maximum-inline-depth">Why does the JVM have a maximum inline depth?</a></li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li>crop: <a href="https://www.dotkam.com/2017/01/09/cprop-internal-tools-worth-opening/">internal tools worth opening</a></li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li>Clojure/West <a href="http://2017.clojurewest.org/cfp/">cfp</a> and <a href="http://2017.clojurewest.org/">ticket sales</a> are now open</li>
<li><a href="http://timothypratley.blogspot.co.nz/2017/01/reagent-deep-dive-part-1.html">Reagent deep-dive, part 1</a></li>
</ul>
<p><strong>Misc.</strong></p>
<p>&ldquo;I want you to imagine you live in a world where everyone plays Chess against everyone else. &hellip; The oddest part of this however is that no-one in this world has actually seen a Chessboard. &hellip; Unbeknownst to either player, there is actually a board and when they press a piece then a piece of that type is randomly selected. &hellip; But all of this is hidden from the players, they don&rsquo;t know any of this exists, they have no concept there is a board &hellip; all they see is the control panel and the sequence of presses.&rdquo;</p>
<p>- <a href="https://hackernoon.com/why-big-data-and-algorithms-wont-improve-business-strategy-54e4ebe2398#.1pjevoshm">Why big data and algorithms won&rsquo;t improve business strategy</a></p>
]]></content:encoded>
    </item>
    <item>
      <title>28: being stateful, reagent mysteries</title>
      <link>https://www.therepl.net/28/</link>
      <pubDate>Mon, 09 Jan 2017 17:28:38 +1300</pubDate>
      <guid>https://www.therepl.net/28/</guid>
      <description>main
Reagent Mysteries - Part 3: Manipulating the DOM Making code fast: measure what you intend to measure&#xA0;- Jake McCrary is not the first or last person that will run into laziness issues when performance testing. People are worried about Types.&#xA0;?
Creating a spec for destructuring&#xA0;by Alex Miller Kotlin null-safety in Clojure Foundations.
Joe Duffy&#xA0;on being stateful Tools.
Cider is taking donations on&#xA0;The Open Collective. If you use Cider, I encourage you to donate to keep it going strong.</description>
      <content:encoded><![CDATA[<p><strong>main</strong></p>
<ul>
<li><a href="https://presumably.de/reagent-mysteries-part-3-manipulating-the-dom.html">Reagent Mysteries - Part 3: Manipulating the DOM</a></li>
<li><a href="http://jakemccrary.com/blog/2016/12/31/measure-what-you-intended-to-measure/">Making code fast: measure what you intend to measure</a> - Jake McCrary is not the first or last person that will run into laziness issues when performance testing.</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li><a href="http://blog.cognitect.com/blog/2017/1/3/spec-destructuring">Creating a spec for destructuring</a> by Alex Miller</li>
<li><a href="https://groups.google.com/forum/#!topic/clojure/T0irUMa6QVY/discussion">Kotlin null-safety in Clojure</a></li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li>Joe Duffy <a href="http://joeduffyblog.com/2008/09/13/on-being-stateful/">on being stateful</a></li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li>Cider is taking donations on <a href="https://opencollective.com/cider">The Open Collective</a>. If you use Cider, I encourage you to donate to keep it going strong.</li>
<li>Zach Oakes has <a href="https://groups.google.com/forum/#!topic/clojure/rX6mGgLaS_k">released</a> a hosted version of his IDE Nightcode: <a href="http://nightcoders.net/">nightcoders.net</a></li>
<li>Clojars has <a href="https://groups.google.com/forum/#!topic/clojure/Vy8p6J8gJUA">a new policy</a> for deployments</li>
<li>A recent thread on <a href="https://cursive-ide.com/archive/2265.html">Cursive REPL completion suggestions</a></li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li>JUXT are running <a href="https://juxt.pro/blog/posts/training-launch.html">one-day training courses</a> in the UK</li>
<li><a href="http://www.upgradingdave.com/blog/posts/2017-01-08-cljsjs.html">Packaging JS libraries</a> for CLJS with CLJSJS</li>
<li><a href="http://ingesolvoll.github.io//2017/01/01/how-to-use-a-charting-library-in-reagent.html">How to use a charting library in Reagent</a></li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li>I was sad to hear that James Hague is <a href="http://prog21.dadgum.com/229.html">finishing his blog</a> &ldquo;Programming in the 21st Century&rdquo;. It was and still is one of my favourite blogs.</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>27: Code is Data, Reagent mysteries, omnivorous config</title>
      <link>https://www.therepl.net/27/</link>
      <pubDate>Sat, 31 Dec 2016 11:28:41 +1300</pubDate>
      <guid>https://www.therepl.net/27/</guid>
      <description>Notes.
If you took a break over the holidays, I hope it was a good one. I&amp;rsquo;ve been at the beach with my wife and one year old son, so it&amp;rsquo;s been a mix of relaxing and defending the baby from a&#xA0;bach&#xA0;that hasn&amp;rsquo;t been childproofed. Best wishes for 2017!
-main
A great article &amp;ldquo;Code is Data&amp;rdquo; from James Reeves responding to an earlier&#xA0;disillusionment with Clojure&#xA0;article. An&#xA0;interview&#xA0;with James Reeves around his work on Ring, Compojure, and his many other open source projects.</description>
      <content:encoded><![CDATA[<p><strong>Notes.</strong></p>
<p>If you took a break over the holidays, I hope it was a good one. I&rsquo;ve been at the beach with my wife and one year old son, so it&rsquo;s been a mix of relaxing and defending the baby from a <a href="http://www.urbandictionary.com/define.php?term=Bach&amp;defid=1470355">bach</a> that hasn&rsquo;t been childproofed. Best wishes for 2017!</p>
<p><strong>-main</strong></p>
<ul>
<li>A great article &ldquo;<a href="https://www.booleanknot.com/blog/2016/12/20/code-is-data.html">Code is Data</a>&rdquo; from James Reeves responding to an earlier <a href="https://medium.com/@boxed/my-disillusionment-with-clojure-and-lisps-9eca38ab7f0c#.1cxer9lbt">disillusionment with Clojure</a> article.</li>
<li>An <a href="https://theinitialcommit.com/2016/12/20/james-reeves/">interview</a> with James Reeves around his work on Ring, Compojure, and his many other open source projects.</li>
<li><a href="http://gigasquid.github.io/blog/2016/12/27/deep-learning-in-clojure-with-cortex/">Deep Learning in Clojure with Cortex</a> from Carin Meier</li>
<li>Paulus Esterhazy on Reagent mysteries - <a href="https://presumably.de/reagent.html">part 1: vectors and sequences</a>, and <a href="https://presumably.de/reagent-2.html">part 2: reloading?</a></li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li><a href="https://github.com/binaryage/chromex">chromex</a> from the indomitable Darwin: write Chrome extensions with ClojureScript</li>
<li><a href="https://github.com/threatgrid/naga">naga</a>, a Datalog based rules engine</li>
<li><a href="https://github.com/grammarly/omniconf">omniconf</a> is an omnivorous (my description) configuration library that verifies your config on startup</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<p>But not this week.</p>
<p><strong>Foundations.</strong></p>
<ul>
<li>Accidentally Quadratic - <a href="http://accidentallyquadratic.tumblr.com/post/154996874112/chrome-server-sent-event-parsing#_=_">Chrome SSE parsing</a></li>
<li><a href="https://medium.com/@octskyward/modern-garbage-collection-911ef4f8bd8e#.69e3h994h">Modern garbage collection</a></li>
<li><a href="http://ithare.com/infographics-operation-costs-in-cpu-clock-cycles/">Operation Costs in CPU Clock Cycles</a></li>
<li><a href="http://engineering.skymind.io/interview-with-adam-gibson-creator-of-dl4j-why-aeron-matters">Why Aeron Matters</a></li>
<li><a href="http://www.oracle.com/technetwork/java/jvmls2014manson-2265206.pdf">JVM at Google</a></li>
<li>Java Champions <a href="https://docs.google.com/document/u/1/d/17OF811wWjjCnmDPJDD6v2c_nMO93e5evjravdCOkXMQ/mobilebasic">respond</a> to the FUD article from The Register about Java SE usage.</li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li><a href="http://ingesolvoll.github.io/2016/12/26/how-boot-solved-our-ftp-upload-problem.html">How boot solved our FTP problem</a></li>
<li>Code indexing with <a href="http://acidwords.com/posts/2016-12-29-code-indexing-with-lein-codeindex.html">lein-codeindex</a> for vim and emacs</li>
<li><a href="https://medium.com/project-tofino/introducing-datomish-a-flexible-embedded-knowledge-store-1d7976bff344#.sv5cutvmf">More</a> on Datomish from Mozilla, their database inspired by Datomic and Datascript.</li>
<li><a href="https://www.gnu.org/software/emacs/manual/html_node/emacs/Saving-Customizations.html">Saving</a> your Emacs customisations somewhere else</li>
<li><a href="http://youdebug.kohsuke.org/">YouDebug</a> sounds like an incredibly useful debugger for remote sites where you don&rsquo;t have access to customer infrastructure. I wonder if it can work with Clojure?</li>
<li>I&rsquo;ve been working on <a href="https://www.deps.co/">deps.co</a> - private hosted Maven repos. You can sign up for the launch list if that sounds useful for you and your team. </li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li>There is a <a href="http://jugs.de/va2017/01-14.html">Clojure workshop</a> in Stuttgart, Germany</li>
<li><a href="http://www.bradcypert.com/threading-pipelines-in-clojure/">Threading Pipelines in Clojure</a></li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li><a href="https://medium.com/@ztellman/standing-in-the-shadow-of-giants-9ac52f8b4051#.kdosx85g6">Standing in the Shadow of Giants</a> - Zach Tellman on open source culture and migration.</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>26: Christmas REPLs, deps, and a hot macchiato</title>
      <link>https://www.therepl.net/26/</link>
      <pubDate>Sat, 24 Dec 2016 23:32:43 +1300</pubDate>
      <guid>https://www.therepl.net/26/</guid>
      <description>Notes.
I&amp;rsquo;ve just launched the site for an app I&amp;rsquo;m working on:&#xA0;deps. It&amp;rsquo;s a private, hosted Maven repository service. If you were wondering what to get me for Christmas, take a look at the site and if you&amp;rsquo;d like to never manage Maven or Archiva again,&#xA0;sign up for early access.
Thanks for reading The REPL this year and have a great Christmas!
-main
Yogthos on&#xA0;Macchiato and using Ring as it&amp;rsquo;s foundation, and&#xA0;Macchiato Modules.</description>
      <content:encoded><![CDATA[<p><strong>Notes.</strong></p>
<p>I&rsquo;ve just launched the site for an app I&rsquo;m working on: <a href="https://www.deps.co/">deps</a>. It&rsquo;s a private, hosted Maven repository service. If you were wondering what to get me for Christmas, take a look at the site and if you&rsquo;d like to never manage Maven or Archiva again, <a href="https://www.deps.co/">sign up for early access</a>.</p>
<p>Thanks for reading The REPL this year and have a great Christmas!</p>
<p><strong>-main</strong></p>
<ul>
<li>Yogthos on <a href="http://yogthos.net/posts/2016-12-17-MacchiatoProgress.html">Macchiato and using Ring as it&rsquo;s foundation</a>, and <a href="http://yogthos.net/posts/2016-12-20-MacchiatoModules.html">Macchiato Modules</a>. </li>
<li><a href="https://mooistudios.com/2016/12/19/choosing-functional-programming-game/">Choosing Functional Programming for Our Game</a>, seems quite ambitious to me, but the proof is in the pudding.</li>
<li><a href="https://medium.com/@mohitthatte/the-state-of-clojure-in-india-and-other-takeaways-from-in-clojure-2016-400a61ce2db4#.iksiv3nxs">The State of Clojure in India</a></li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li><a href="https://github.com/mozilla/datomish">Datomish</a>: A persistent relational store inspired by Datomic and DataScript, from Mozilla</li>
<li>Christophe Grand takes us deeper into macroception with <a href="https://github.com/cgrand/macrovich">macrovich</a></li>
<li><a href="https://medium.com/adstage-engineering/contextual-debugging-with-om-next-and-untangled-8c168900dba5?source=rss----b4e2fd62f213---4">Contextual debugging</a> with Om Next and Untangled</li>
<li>Arachne <a href="http://arachne-framework.org/posts/2016/community-update-5/">community update 5</a></li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li><a href="https://github.com/reifyhealth/specmonstah">specmonstah</a> is a new library from Reify Health for setting up testing data. But you should add it to your dependencies just for the name alone.</li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li><a href="http://psy-lob-saw.blogspot.co.nz/2016/12/what-is-lazyset-putordered.html">lazySet and putOrdered and the JMM</a></li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li><a href="http://bytopia.org/2016/12/17/autocollapse-namespace-definitions-in/">Autocollapse ns definitions in emacs</a></li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li>Lambda Island on <a href="https://lambdaisland.com/episodes/clojure-seq-seqable">seq and seqable</a></li>
<li><a href="http://darrennewton.com/2016/12/17/identicons-with-clojurescript/">Identicons with ClojureScript</a></li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li><a href="http://hack.systems/2016/12/13/hello-consus/">Consus</a><a href="http://hack.systems/2016/12/13/hello-consus/"> puts Paxos in your Paxos so you can replicate while you replicate.</a> (This and the linked paper are a really good read).</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>25: Shingles, splinters, and smash bros.</title>
      <link>https://www.therepl.net/25/</link>
      <pubDate>Fri, 16 Dec 2016 21:13:45 +1300</pubDate>
      <guid>https://www.therepl.net/25/</guid>
      <description>Notes.
There&amp;rsquo;s lots of good stuff every week, but the last few weeks, in particular, have been a bumper crop, and I&amp;rsquo;ve had to leave a lot out. A good problem to have.
-main
Clojars has a new (low volume)&#xA0;mailing list&#xA0;for people who run Clojars mirrors. Reminder that the&#xA0;State of Clojure survey&#xA0;is still running until December 23rd Zach Tellman is&#xA0;hanging out&#xA0;his shingle My disillusionment with Clojure and&#xA0;lisps&#xA0;(but not mine) Goodhertz -&#xA0;config to code Libraries &amp;amp; Books.</description>
      <content:encoded><![CDATA[<p><strong>Notes.</strong></p>
<p>There&rsquo;s lots of good stuff every week, but the last few weeks, in particular, have been a bumper crop, and I&rsquo;ve had to leave a lot out. A good problem to have.</p>
<p><strong>-main</strong></p>
<ul>
<li>Clojars has a new (low volume) <a href="https://groups.google.com/forum/#!forum/clojars-mirrors">mailing list</a> for people who run Clojars mirrors.</li>
<li>Reminder that the <a href="http://blog.cognitect.com/blog/2016/12/8/2016-clojure-community-survey">State of Clojure survey</a> is still running until December 23rd</li>
<li>Zach Tellman is <a href="http://ideolalia.com/consulting.html">hanging out</a> his shingle</li>
<li><a href="https://medium.com/@boxed/my-disillusionment-with-clojure-and-lisps-9eca38ab7f0c#.pnbrepqql">My disillusionment with Clojure and </a><a href="https://medium.com/@boxed/my-disillusionment-with-clojure-and-lisps-9eca38ab7f0c#.pnbrepqql">lisps</a> (but not mine)</li>
<li>Goodhertz - <a href="http://tonal.goodhertz.co/config-to-code/">config to code</a></li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li>re-frame 0.9.0 is <a href="https://github.com/Day8/re-frame/releases/tag/v0.9.0">released</a></li>
<li><a href="https://github.com/honzabrecka/karma-reporter">karma-reporter</a> has a new release for pretty printing CLJS tests</li>
<li>The mount vs. component wars have a splinter faction: <a href="http://www.functionalbytes.nl//clojure/mount/mount-lite/2016/12/10/mount-lite-2.html">mount-lite</a></li>
<li><a href="https://github.com/halgari/odin">Odin</a> is an extensible logic DSL from Timothy Baldridge</li>
<li><a href="https://github.com/clojureman/special">Special</a>, a condition system for Clojure</li>
<li><a href="https://github.com/candid82/joker">Joker</a> is a small interpreted dialect of Clojure written in Go</li>
<li>edn-java 0.5.0 was <a href="https://groups.google.com/forum/#!topic/clojure/uW8lsdp6xbM">released</a></li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li><a href="http://blog.cognitect.com/blog/2016/12/9/works-on-my-machine-self-healing-code-with-clojurespec-1">Self Healing Code with </a>clojure.spec</li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li><a href="https://groups.google.com/forum/#!topic/mechanical-sympathy/HzcRI2eAqqU">Minimum realistic GC time</a> for G1 collector on a 10GB heap, with stellar comments (as usual) <a href="https://groups.google.com/d/msg/mechanical-sympathy/HzcRI2eAqqU/gOOFcAmJCAAJ">from Gil Tene</a></li>
<li><a href="https://eev.ee/blog/2016/12/01/lets-stop-copying-c/">Let&rsquo;s stop copying C</a></li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li>Even if you don&rsquo;t use Nightlight, you need to read the release notes just for the humour value alone. <a href="https://groups.google.com/forum/#!topic/clojure/6fjRKqgnF30">1.3.0 is out</a>.</li>
<li>I&rsquo;m still not sure what to think about <a href="https://bigsolutions.io/2016/12/14/run-maven-plugins-in-boot-or-leiningen-builds/">running Maven plugins in Boot or Leiningen builds</a></li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li><a href="http://dev.clojure.org/jira/browse/CLJ-308">CLJ-308</a>: protocol-ize with-open</li>
<li>A discussion on <a href="https://groups.google.com/forum/#!topic/clojure/ANKq6XD1nW8">error messages</a></li>
<li>A <a href="https://groups.google.com/forum/#!topic/clojure/P2AIgeUUzk0">rationale</a> for using the s/def pattern</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li>Spend a few minutes <a href="https://gist.github.com/cgrand/c1a83d8bb5fc0b5a6c53e5a6deece213">reading</a> Christophe Grand&rsquo;s code mixing macros and code in cljc to support clj, cljs and self-hosted cljs.</li>
<li><a href="https://engineering.helpshift.com/2016/timezones-FP/">Tale of Timezones and how FP is the Easy Way</a></li>
<li><a href="https://medium.com/@hlship/tips-and-tricks-for-component-d00832abcdfa#.i6hkmw4nk">Tips and Tricks</a> for Component</li>
<li>PurelyFunction.tv is <a href="https://purelyfunctional.tv/giveaways/year-end-clojure-book-giveaway/">giving away</a> some Clojure books</li>
</ul>
<p><strong>Misc.</strong></p>
<p>And now for something completely different that I really enjoyed this week: <a href="https://www.youtube.com/watch?v=8qxVDOc-oV8">Things of Beauty: Super Smash Bros. as Spectator Sport</a>. N.B. the video has some salty language.</p>
]]></content:encoded>
    </item>
    <item>
      <title>24: Clojure Surveys, Pimp my REPL, Checkmate</title>
      <link>https://www.therepl.net/24/</link>
      <pubDate>Tue, 13 Dec 2016 09:40:47 +1300</pubDate>
      <guid>https://www.therepl.net/24/</guid>
      <description>Notes.
The newsletter is a bit late this week, life&amp;rsquo;s been full of weddings and Christmas preparations. I hope your holiday preparations are going well too.
-main
RIP Anthony Grimes. I didn&amp;rsquo;t know Anthony personally, but he had a big influence in the Clojure community. There is a fundraiser for his family at&#xA0;GoFundMe. The annual&#xA0;Clojure Survey&#xA0;is out. It closes on December 23rd. If the future of Clojure is important to you (and if it&amp;rsquo;s not, why are you reading this newsletter?</description>
      <content:encoded><![CDATA[<p><strong>Notes.</strong></p>
<p>The newsletter is a bit late this week, life&rsquo;s been full of weddings and Christmas preparations. I hope your holiday preparations are going well too.</p>
<p><strong>-main</strong></p>
<ul>
<li><a href="https://cemerick.com/2016/12/07/rip-anthony-grimes/">RIP Anthony Grimes</a>. I didn&rsquo;t know Anthony personally, but he had a big influence in the Clojure community. There is a fundraiser for his family at <a href="https://www.gofundme.com/32m55h4">GoFundMe</a>.</li>
<li>The annual <a href="https://www.surveymonkey.com/r/clojure2016">Clojure Survey</a> is out. It closes on December 23rd. If the future of Clojure is important to you (and if it&rsquo;s not, why are you reading this newsletter?), you should take a few minutes to fill it out.</li>
<li>Timothy Pratley writes about the <a href="http://timothypratley.blogspot.co.nz/2016/12/the-hallway-track-of-clojure-conj-2016.html">hallway track at Clojure Conj </a><a href="http://timothypratley.blogspot.co.nz/2016/12/the-hallway-track-of-clojure-conj-2016.html">2016</a>, and gives a survey of what people are using Clojure for.</li>
<li>I&rsquo;m really excited for ClojureScript <a href="https://gist.github.com/swannodette/4fc9ccc13f62c66456daf19c47692799">Externs Inference</a>. This builds on the work Maria Geller did last summer in her <a href="http://mneise.github.io/posts/2015-09-05-gsoc-recap.html">Google Summer of Code</a> work</li>
<li><a href="http://realworldclojure.com/one-weird-trick/">One Weird Trick to Become a Clojure Expert</a></li>
<li><a href="https://www.infoq.com/articles/data-science-abstraction">Data Science up and down the Ladder of Abstraction</a> which references one of my all time favourite articles: <a href="http://worrydream.com/LadderOfAbstraction/">Up and Down the Ladder of Abstraction</a> by Bret Victor.</li>
<li>The <a href="https://skillsmatter.com/conferences/7430-clojure-exchange-2016#skillscasts">ClojureX videos are out</a></li>
<li>A good talk on <a href="https://www.youtube.com/watch?v=Lf-M1ZH6KME">C, Crypto and Clojure</a> by lvh</li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li>The <a href="https://www.manning.com/books/clojure-standard-library">Clojure Standard Library</a> is a new book by Renzo Borgatti and published by Manning. It&rsquo;s in early access now, and expected to come out in Spring 2018. It looks like a massive but valuable undertaking.</li>
<li>Continuing this year&rsquo;s trend of failure/retry handling libraries, comes an entry from Max Penet: <a href="https://github.com/mpenet/checkmate">Checkmate</a>. </li>
<li><a href="https://github.com/vvvvalvalval/datalog-rules">datalog-rules</a>: Utilities for managing Datalog rulesets from Clojure.</li>
<li><a href="https://github.com/brabster/docker-fixture">docker-fixture</a>: Docker containers as clojure.test fixtures [Ed: 😱]</li>
<li>Martin Klepsch has a <a href="https://github.com/martinklepsch/derivatives/releases/tag/0.2.0">new release</a> of Derivatives out. It creates trees of derived values (similar to re-frame), but without a global db state.</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li>Allen Rohner <a href="https://www.youtube.com/watch?v=hzV7dFYmbAs">gave a talk</a> on Spectrum, a static &rsquo;typing&rsquo; library for Clojure.Spec at ClojureConj</li>
<li><a href="https://thegeez.github.com/2016/12/09/parsing_clojure_spec_advent_of_code.html">Parsing with </a><a href="https://thegeez.github.com/2016/12/09/parsing_clojure_spec_advent_of_code.html">clojure</a><a href="https://thegeez.github.com/2016/12/09/parsing_clojure_spec_advent_of_code.html">.spec</a> for the Advent of Code</li>
<li>Brandon Bloom and Gary Fredericks <a href="https://clojurians-log.clojureverse.org/clojure-spec/2016-12-08.html#inst-2016-12-08T20:23:09.000857Z">had a good discussion</a> on Spec and versioning on Clojurians Slack.</li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li><a href="https://www.sitepoint.com/what-java-might-one-day-look-like/">What Future Java Might Look Like</a></li>
<li><a href="https://www.sitepoint.com/what-java-might-one-day-look-like/">Java 9, OSGi, and the Future of Modularity</a></li>
<li>A JSR to <a href="https://java.net/projects/jcpnext4/pages/Home">broaden the membership of the Java Community Process</a></li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li>A Challenger Approaches! <a href="https://github.com/gregsh/Clojure-Kit">Clojure-Kit</a> is a new Clojure <a href="https://plugins.jetbrains.com/plugin/8636">plugin</a> for IntelliJ. It&rsquo;s still quite new, but looks like it has a lot of features already (structural editing, lein/boot support, REPLs, dataflow).</li>
<li><a href="https://www.contentreich.de/pimping-gorilla-repl-with-react-clojurescript-and-beyond">Pimping Gorilla REPL with React and ClojureScript</a></li>
<li><a href="https://purelyfunctional.tv/resources/clojure-jobs-resources/">Clojure Jobs Resources</a></li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li><a href="https://lambdaisland.com/blog/08-12-2016-game-development-with-clojure-clojurescript">Game development with Clojure/ClojureScript</a></li>
<li><a href="http://adereth.github.io/blog/2016/12/06/writing-a-halite-bot-in-clojure/">Writing a Halite Bot in Clojure</a></li>
<li>An <a href="http://charsequence.blogspot.co.nz/2016/12/mocking-with-var-redefinition.html">alternative</a> to mocking with var redefinition</li>
</ul>
<p><strong>Misc.</strong></p>
<p>Juxt XT16 <a href="https://www.youtube.com/watch?v=7MWEawzrGuQ">looks like</a> it was a lot of fun.</p>
]]></content:encoded>
    </item>
    <item>
      <title>23: spec-tacular, macchiato, and deep learning</title>
      <link>https://www.therepl.net/23/</link>
      <pubDate>Sat, 03 Dec 2016 09:08:48 +1300</pubDate>
      <guid>https://www.therepl.net/23/</guid>
      <description>Notes.
There were several big pieces of Clojure news this week. First, Datomic&#xA0;announceda change in license to allow unlimited processes and a new client API suited for microservices. I wrote a&#xA0;guide&#xA0;to the licensing changes. Second, Clojure Conj is on as I write this, and has been getting&#xA0;all the videos&#xA0;out in record time. I&amp;rsquo;ll put some of my favourites in the next letter. Finally, Clojars has joined the Software Freedom Conservancy, and announced the Clojars Community Committee to support diversity and open source development in the Clojure and ClojureScript communities.</description>
      <content:encoded><![CDATA[<p><strong>Notes.</strong></p>
<p>There were several big pieces of Clojure news this week. First, Datomic <a href="http://blog.datomic.com/2016/11/datomic-update-client-api-unlimited.html">announced</a>a change in license to allow unlimited processes and a new client API suited for microservices. I wrote a <a href="https://danielcompton.net/2016/11/29/guide-to-datomic-licensing-changes">guide</a> to the licensing changes. Second, Clojure Conj is on as I write this, and has been getting <a href="https://www.youtube.com/playlist?list=PLZdCLR02grLofiMKo0bCeLHZC0_2rpqsz">all the videos</a> out in record time. I&rsquo;ll put some of my favourites in the next letter. Finally, Clojars has joined the Software Freedom Conservancy, and announced the Clojars Community Committee to support diversity and open source development in the Clojure and ClojureScript communities.</p>
<p><strong>-main</strong></p>
<ul>
<li><a href="https://www.youtube.com/watch?v=oyLBGkS5ICk&amp;list=PLZdCLR02grLofiMKo0bCeLHZC0_2rpqsz&amp;index=1&amp;t=108s">spec-ulation</a> by Rich Hickey</li>
<li><a href="http://yogthos.net/posts/2016-11-30-Macchiato.html">Macchiato</a>, ClojureScript for the server from Yogthos</li>
<li><a href="https://timgilbert.wordpress.com/2016/11/27/adventures-in-client-side-routing-with-reframe-and-oauth/">Adventures</a> in client-side routing with re-frame and OAuth</li>
<li><a href="http://adzerk.com/blog/2016/11/bringing-bookmarklets-back-with-clojure-and-boot/">Bringing bookmarklets back</a> with ClojureScript and boot</li>
<li>Writing <a href="https://groups.google.com/forum/#!topic/clojurescript/HsWTuhMP7yc">Clojure and ClojureScript macros</a> in a cljc file. I&rsquo;ve run into this issue myself too.</li>
<li>ClojureScript <a href="https://www.youtube.com/watch?v=LopU-kMpe8I">almost as fast</a> as optimised C by Mike Fikes</li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li><a href="https://github.com/riverford/durable-ref">durable-ref</a>: Durable reference types for Clojure, with some excellent docs.</li>
<li>alia, a Cassandra client has released <a href="https://github.com/mpenet/alia/blob/master/CHANGELOG.md#400-beta1">4.0.0-beta1</a></li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li><a href="https://github.com/prayerslayer/js.spec">js.spec</a>: clojure.spec for JavaScript</li>
<li>Spectrum, static analysis for spec has a new release with a <a href="https://github.com/arohner/spectrum#changelog">bunch of fixes</a></li>
<li><a href="http://www.metosin.fi/blog/schema-spec-web-devs/">Schema &amp; Clojure Spec for the Web Developer</a></li>
<li><a href="https://www.reddit.com/r/Clojure/comments/5ewv8f/spec_and_code_organization/">Spec and code organisation</a></li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li><a href="http://joeduffyblog.com/2016/11/30/15-years-of-concurrency/">15 Years of Concurrency</a> by Joe Duffy</li>
<li><a href="https://groups.google.com/forum/#!topic/mechanical-sympathy/xSHC5Tjoku0">How to select the most free core?</a></li>
<li><a href="https://groups.google.com/forum/#!topic/mechanical-sympathy/-XHui4n6bYk">JVM heap size</a> and its effect on throughput vs maximum response times</li>
<li><a href="https://blog.acolyer.org/2016/11/25/building-machines-that-learn-and-think-like-people/">Building machines that learn and think like people</a></li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li><a href="https://github.com/EwenG/replique">Replique</a> and <a href="https://github.com/EwenG/replique.el">reqlique.el</a>, a new Clojure and ClojureScript development environment.</li>
<li>Kibit 0.1.3 is <a href="https://github.com/jonase/kibit/releases/tag/0.1.3">out</a></li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li><a href="http://dev.clojure.org/jira/browse/CLJ-1912">CLJ-1912</a>: Optimised versions of the &lsquo;&lt;&rsquo; and &lsquo;&gt;&rsquo; functions for arities larger than 2.</li>
<li><a href="http://dev.clojure.org/jira/browse/CLJ-1952">CLJ-1952</a>: include var-&gt;sym in clojure.core</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li><a href="https://purelyfunctional.tv/reduce-mini/">Reduce Mini-Course</a> from PurelyFunctional.tv</li>
<li><a href="http://benkampha.us/2016-11-29.html">Deep learning with Cortex and Clojure</a></li>
<li><a href="http://garajeando.blogspot.co.nz/2016/11/creating-custom-effects-in-re-frame.html">Creating custom effects in re-frame</a></li>
<li>A <a href="http://garajeando.blogspot.co.nz/2016/12/recorded-talk-about-destructuring-in.html">talk</a> about destructuring</li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li>The always excellent Julia Evans with &ldquo;<a href="https://drawings.jvns.ca/packet/">Anatomy of a packet</a>&rdquo;, with more available at <a href="https://drawings.jvns.ca/">drawings.jvns.ca</a>.</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>22: Thanks for Clojure, Underscores, and Java 9</title>
      <link>https://www.therepl.net/22/</link>
      <pubDate>Sat, 26 Nov 2016 10:23:50 +1300</pubDate>
      <guid>https://www.therepl.net/22/</guid>
      <description>-main
Arachne Community Update 4 Component vs. Mount was shaping up to be the great Clojure debate of 2016, but things have been quiet recently. Here is the creator of Mount with&#xA0;No Ceremony. I didn&amp;rsquo;t personally find the arguments very convincing but I liked thinking critically about it. Running Investor Metrics on Mattermark company scores Is it always safe to read a string and convert it back to a string?</description>
      <content:encoded><![CDATA[<p><strong>-main</strong></p>
<ul>
<li><a href="http://arachne-framework.org/posts/2016/community-update-4/">Arachne Community Update 4</a></li>
<li>Component vs. Mount was shaping up to be the great Clojure debate of 2016, but things have been quiet recently. Here is the creator of Mount with <a href="https://www.dotkam.com/2016/11/21/no-ceremony/">No Ceremony</a>. I didn&rsquo;t personally find the arguments very convincing but I liked thinking critically about it.</li>
<li>Running Investor Metrics on Mattermark company scores</li>
<li><a href="https://groups.google.com/forum/#!topic/clojure/_qzaqqkMHHw">Is it always safe to read a string and convert it back to a string?</a> (nope), with a follow-up <a href="http://blog.klipse.tech//clojure/2016/11/24/stringify-clojure.html">Klipse </a>demonstration</li>
<li>Alex Miller says <a href="https://www.reddit.com/r/Clojure/comments/5enpm8/thanks/">thanks for using Clojure</a></li>
<li><a href="https://groups.google.com/forum/#!topic/clojure/FB5NudMmdYk">Clojure, Java 9, and you</a></li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li><a href="https://groups.google.com/forum/#!msg/clojure/7u9ht55pSjo/jTmJBLRkCAAJ">psq.clj 0.0.2</a> - Persistent Priority Search Queues</li>
<li><a href="https://groups.google.com/forum/#!topic/clojure/TanZUuyIkzk">maxiphobe</a><a href="https://groups.google.com/forum/#!topic/clojure/TanZUuyIkzk"> 0.0.1</a> - Persistent Meldable Priority Queues</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li><a href="https://www.reddit.com/r/Clojure/comments/5e1qcr/clojurespec_humane_error_messages_for_clientside/">clojure.spec </a>humane error messages</li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li><a href="http://accidentallyquadratic.tumblr.com/post/153545455987/rust-hash-iteration-reinsertion">Quadratic performance of Rust hash iteration + reinsertion</a></li>
<li><a href="https://blogs.oracle.com/sundararajan/entry/underscore_is_a_keyword_in">Underscore is a keyword in Java 9</a></li>
<li><a href="http://www.oracle.com/technetwork/java/javase/8u111-relnotes-3124969.html">Java SE 8u111 released</a> with some crypto changes</li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li>IntelliJ 2016.3 is <a href="https://blog.jetbrains.com/idea/2016/11/intellij-idea-2016-3-ga-java-8-and-es6-debugger-and-ui-improvements-and-a-ton-more/">out</a>. The <a href="https://www.youtube.com/watch?v=ZfYOddEmaRw">parameter hints</a> look useful, hopefully Cursive can take advantage of them.</li>
<li>Productive Emacs: <a href="https://www.youtube.com/watch?v=pKzIxtR0ElU&amp;feature=youtu.be">refactoring Clojure code with clj-refactor</a></li>
<li>Lumo hits <a href="https://github.com/anmonteiro/lumo/releases/tag/1.0.0">1.0.0</a>.</li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li><a href="https://groups.google.com/forum/#!topic/clojure/MhtUx2yEFZ4">Clojure infrastructure update</a> from Alex Miller</li>
<li><a href="http://dev.clojure.org/jira/browse/ASYNC-40">ASYNC-40</a> Do not transform forms that have :no-transform metadata attached (not so new, but I came across it recently)</li>
<li><a href="http://dev.clojure.org/jira/browse/CLJS-1816">CLJS-1816</a> <a href="https://github.com/clojure/clojurescript/commit/6602f769ed4d52fd67577aacaf9cfe6db05b8ef3">adds</a> compiler timing info</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li>Clojure Israel is <a href="https://www.meetup.com/Clojure-Israel/events/235753646/">hosting an event</a> with the co-author of &ldquo;<a href="https://mitpress.mit.edu/books/art-prolog">The Art of Prolog</a>&rdquo;, Dr Ehud Shapiro. If you&rsquo;re interested in making the trip or want more info, feel free to contact <a href="https://www.therepl.net/newslettersmailto:daniel.szmulewicz@gmail.com">Daniel Szmulewicz</a>. It sounds like it would be worth the trip if you&rsquo;re in the area.</li>
<li><a href="http://dev.solita.fi/2016/11/21/euroclojure2016.html">EuroClojure 2016 Review</a></li>
<li>Clojure Remote is introducing <a href="https://clojureremote.com/2016/11/introducing-speaker-profit-sharing/">speaker profit sharing</a></li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li><a href="https://pragprog.com/">Pragmatic Press</a> has 40% off books this weekend, including some great Clojure ones</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>21: Hello Clojure, Now What?</title>
      <link>https://www.therepl.net/21/</link>
      <pubDate>Fri, 18 Nov 2016 21:22:52 +1300</pubDate>
      <guid>https://www.therepl.net/21/</guid>
      <description>-main
A post on&#xA0;logging&#xA0;by Juxt Pro ClojureScript saved me 100 hours David Nolen: Now what?&#xA0;&#x200B;along with the rest of the&#xA0;videos&#xA0;from EuroClojure Libraries &amp;amp; Books.
Clojure Programming Cookbook was&#xA0;released Perseverance: flexible retries for Clojure Pegasus: A Clojure DSL for Web-Crawling hara.security&#xA0;- making sense of the Java Cryptography Architecture Invariant 0.1.0&#xA0;- Invariants on Clojure Data Structures lucidity 1.2.8&#xA0;deployed Tools.
Hello&#xA0;Clojure. Hello Cursive. FWIW, Cursive has also been rock solid for me.</description>
      <content:encoded><![CDATA[<p><strong>-main</strong></p>
<ul>
<li>A post on <a href="https://juxt.pro/blog/posts/logging.html">logging</a> by Juxt Pro</li>
<li><a href="https://dev.to/buntine/clojurescript-saved-me-100-hours">ClojureScript saved me 100 hours</a></li>
<li><a href="https://www.youtube.com/watch?v=cH4ZJAKZHjQ">David Nolen: Now what?</a> ​along with the rest of the <a href="https://www.youtube.com/playlist?list=PLZdCLR02grLowQLPjuZ7k3pl2ScEyW7A7">videos</a> from EuroClojure</li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li>Clojure Programming Cookbook was <a href="https://groups.google.com/forum/#!topic/clojure/c9X8-OWE5h4">released</a></li>
<li><a href="http://bytopia.org/2016/11/13/perseverance-flexible-retries-clojure/">Perseverance</a>: flexible retries for Clojure</li>
<li><a href="http://blog.shriphani.com/2016/11/16/a-clojure-dsl-for-web-crawling/">Pegasus</a>: A Clojure DSL for Web-Crawling</li>
<li><a href="http://z.caudate.me/hara-security-making-sense-of-the-jca/">hara</a><a href="http://z.caudate.me/hara-security-making-sense-of-the-jca/">.security</a> - making sense of the Java Cryptography Architecture</li>
<li><a href="https://groups.google.com/forum/#!topic/clojure/x09ZQtZBIDU">Invariant 0.1.0</a> - Invariants on Clojure Data Structures</li>
<li>lucidity 1.2.8 <a href="http://z.caudate.me/lucidity-1-2-8/">deployed</a></li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li><a href="http://owenrh.me.uk/blog/2016/11/14">Hello</a><a href="http://owenrh.me.uk/blog/2016/11/14"> Clojure. Hello Cursive</a>. FWIW, Cursive has also been rock solid for me. Upgrades are easy and I haven&rsquo;t spent any time thinking about or maintaining my Cursive config.</li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li><a href="http://dev.clojure.org/jira/browse/CLJ-1107">CLJ-1107</a> &lsquo;get&rsquo; should throw exception on non-Associative argument</li>
<li><a href="http://dev.clojure.org/jira/browse/CLJ-1860">CLJ-1860</a> 0.0 and -0.0 compare equal but have different hash values</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li><a href="http://exupero.org/hazard/post/islands/">Island generation</a></li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li>code.nasa.gov <a href="https://github.com/perfs/audits/issues/7">performance audit</a></li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>20: Vote for Clojure, Martians, and Puppets</title>
      <link>https://www.therepl.net/20/</link>
      <pubDate>Mon, 14 Nov 2016 09:55:55 +1300</pubDate>
      <guid>https://www.therepl.net/20/</guid>
      <description>-main
Lumo -&#xA0;The fastest Clojure REPL in the world&#xA0;by Antonio Monteiro (who is getting to be a regular feature in this newsletter) Alex Miller talks about the&#xA0;Clojure ticket voting process. Advanced Martian&#xA0;by Juxt&#xA0;explores&#xA0;their open source Swagger HTTP API client Clojure at Puppet. This was&#xA0;interesting to me as I&amp;rsquo;d known Puppet were Clojure users for a while but had never heard their backstory. What AppCanary will miss&#xA0;after leaving Clojure.</description>
      <content:encoded><![CDATA[<p><strong>-main</strong></p>
<ul>
<li>Lumo - <a href="https://anmonteiro.com/2016/11/the-fastest-clojure-repl-in-the-world/">The fastest Clojure REPL in the world</a> by Antonio Monteiro (who is getting to be a regular feature in this newsletter)</li>
<li>Alex Miller talks about the <a href="https://groups.google.com/forum/#!topic/clojure/KkyjTNLnGjs">Clojure ticket voting process</a>.</li>
<li><a href="https://juxt.pro/blog/posts/advanced-martian.html">Advanced Martian</a> by Juxt explores their open source Swagger HTTP API client</li>
<li><a href="https://juxt.pro/blog/posts/clojure-in-puppet.html">Clojure at Puppet</a>. This was interesting to me as I&rsquo;d known Puppet were Clojure users for a while but had never heard their backstory.</li>
<li><a href="https://blog.appcanary.com/2016/missing-clojure.html">What AppCanary will miss</a> after leaving Clojure. I&rsquo;ll be interested to hear the <a href="http://rubyconf.org/program#prop_19">talk</a> they gave about why they chose Ruby.</li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li><a href="https://medium.com/@tiensonqin/why-exponent-on-react-native-especially-for-clojurescript-9bb1417c0c65#.uisnkwqaf">Why</a> Exponent on React Native is a good fit for ClojureScript</li>
<li><a href="http://yogthos.net/posts/2016-11-05-LuminusPostgresNotifications.html">Postgres notifications with Luminus</a></li>
<li><a href="http://garajeando.blogspot.co.nz/2016/11/using-effects-in-re-frame.html">Using effects in re-frame</a></li>
<li><a href="https://whilo.github.io/articles/16/unified-storage-io">Unified storage IO</a> in Replikativ</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li>No type worrying this week from the Clojure community, but our neighbours in <a href="https://elmtown.github.io/">Elm Town</a> have been <a href="http://reasonablypolymorphic.com/blog/elm-is-wrong">having</a> some <a href="http://blog.jenkster.com/2016/11/type-bombs-in-elm.html">discussions</a>.</li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li>Timothy Pratley is looking for people to join his <a href="http://timothypratley.blogspot.co.nz/2016/11/my-research-group-needs-you.html">research group</a>. They cover many different interesting topics.</li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li><a href="https://github.com/mogenslund/liquid">Liquid</a> is a new text editor written in Clojure</li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li><a href="https://groups.google.com/forum/#!topic/clojure/2l2f1jKExUc">Discussion</a> about the naming of the any? function in Clojure 1.9</li>
<li><a href="https://groups.google.com/forum/#!topic/clojure/CwZHu1Eszbk">Clarification</a> on # as a valid symbol character, and the related ticket <a href="http://dev.clojure.org/jira/browse/CLJ-1527">CLJ-1527</a></li>
<li><a href="http://dev.clojure.org/jira/browse/CLJS-1128">CLJS-1128</a> &ldquo;Describe internationalization strategies via Google Closure on the wiki&rdquo; would be a good opportunity for someone looking to start contributing to ClojureScript.</li>
<li><a href="http://dev.clojure.org/jira/browse/CLJS-1194">CLJS-1194</a> adds support for data_readers.cljc</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li><a href="https://www.meetup.com/brno-clojure/">(:</a><a href="https://www.meetup.com/brno-clojure/">brno</a><a href="https://www.meetup.com/brno-clojure/"> </a><a href="https://www.meetup.com/brno-clojure/">clojure</a><a href="https://www.meetup.com/brno-clojure/">)</a> is a new Clojure Meetup in Brno, Czech Republic</li>
<li>A <a href="http://corgibytes.com/blog/2016/11/08/bratislava-conferences/">recap</a> of EuroClojure 2016</li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li>Bryan Cantrill gave a <a href="https://vimeo.com/190937358">talk</a> at Structure 2016 the day after the US election about how technology is disrupting other industries, and the current and future job losses that are going to take place.</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>19: Dungeons, buttery smooth emacs, and volatile reads</title>
      <link>https://www.therepl.net/19/</link>
      <pubDate>Sun, 06 Nov 2016 21:26:29 +1300</pubDate>
      <guid>https://www.therepl.net/19/</guid>
      <description>-main
Waste&#xA0;in IT Procedural Dungeon Generation in ClojureScript Assimilating with Clojure&#xA0;by Sarah Sunday Libraries &amp;amp; Books.
Learn Onyx in the&#xA0;browser People are worried about Types.&#xA0;?
Clojure 1.9.0-alpha14 is&#xA0;out Deconstructing Haskell&amp;rsquo;s Haxl&#xA0;in Clojure Foundations.
How expensive is a volatile read? Tools.
Darwin keeps up his blistering pace of development with&#xA0;dirac 0.8.0 Howard Lewis Ship on&#xA0;Scripting in Clojure using Boot Buttery Smooth Emacs Recent Developments.</description>
      <content:encoded><![CDATA[<p><strong>-main</strong></p>
<ul>
<li><a href="https://juxt.pro/blog/posts/waste.html">Waste</a> in IT</li>
<li><a href="http://blog.jrheard.com/procedural-dungeon-generation-drunkards-walk-in-clojurescript">Procedural Dungeon Generation in ClojureScript</a></li>
<li><a href="https://8thlight.com/blog/sarah-sunday/2016/10/27/assimilating-with-clojure.html">Assimilating with Clojure</a> by Sarah Sunday</li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li>Learn Onyx in the <a href="https://colinhicks.github.io/onyx-blueprint/resources/public/tutorial.html">browser</a></li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li>Clojure 1.9.0-alpha14 is <a href="https://groups.google.com/forum/#!topic/clojure/w-1h7_xO2R0">out</a></li>
<li><a href="http://blog.podsnap.com/qaxl.html">Deconstructing Haskell&rsquo;s Haxl</a> in Clojure</li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li><a href="https://groups.google.com/forum/#!topic/mechanical-sympathy/miyAIHYzQj0">How expensive is a volatile read?</a></li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li>Darwin keeps up his blistering pace of development with <a href="https://github.com/binaryage/dirac/releases/tag/v0.8.0">dirac 0.8.0</a></li>
<li>Howard Lewis Ship on <a href="https://medium.com/@hlship/boot-9ff7deda78a5#.25ylp5wwj">S</a><a href="https://medium.com/@hlship/boot-9ff7deda78a5#.n15lti5ii">cripting in Clojure using Boot</a></li>
<li><a href="https://www.facebook.com/notes/daniel-colascione/buttery-smooth-emacs/10155313440066102/">Buttery Smooth Emacs</a></li>
</ul>
<p><strong>Recent Developments.</strong></p>
<ul>
<li><a href="https://www.reddit.com/r/Clojure/comments/5aprn3/in_coreasync_using_timeout_with_0_delay_causes_a/">core.async behaviour with timeout 0</a> and <a href="http://dev.clojure.org/jira/browse/ASYNC-137">ASYNC-137</a></li>
<li><a href="http://dev.clojure.org/jira/browse/CLJ-1435">CLJ-1435</a>: numerator and denominator fail to handle integral values</li>
<li><a href="http://dev.clojure.org/jira/browse/CLJ-2041">CLJ-2041</a>: clojure.spec/keys requires input collections conform to clojure.core/map?</li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li><a href="https://al3x.net/2016/10/31/pro-computing.html">Alex Payne - What Pro Computing Could Be</a> and Reid McKenzie&rsquo;s <a href="https://www.arrdem.com/2016/11/02/of_inertia_and_computing/">Of Inertia and Computing</a>, both touch on similar themes.</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>18: re-frame coeffects, nice error messages, and broken software</title>
      <link>https://www.therepl.net/18/</link>
      <pubDate>Fri, 28 Oct 2016 22:09:30 +1300</pubDate>
      <guid>https://www.therepl.net/18/</guid>
      <description>-main
Clojure in Greece New Orleans Clojure Workshop Retrospective&#xA0;- I really enjoyed how open Eric Normand was about running the workshop, what went right, and what went wrong. A good explanation of&#xA0;coeffects in re-frame, and why you might want them Libraries &amp;amp; Books.
superv.async 0.2.1 is&#xA0;out. There&amp;rsquo;s also a good&#xA0;rationale&#xA0;on its Erlang inspired error handling model. People are worried about Types.&#xA0;?
Arachne Community Update 3&#xA0;showcases&#xA0;some really nice looking error messages using&#xA0;spec.</description>
      <content:encoded><![CDATA[<p><strong>-main</strong></p>
<ul>
<li><a href="https://juxt.pro/blog/posts/clojure-in-baresquare.html">Clojure in Greece</a></li>
<li><a href="http://www.lispcast.com/new-orleans-clojure-workshop-oct-2016">New Orleans Clojure Workshop Retrospective</a> - I really enjoyed how open Eric Normand was about running the workshop, what went right, and what went wrong.</li>
<li>A good explanation of <a href="http://garajeando.blogspot.co.nz/2016/10/coeffects-in-re-frame.html">coeffects in re-frame</a>, and why you might want them</li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li>superv.async 0.2.1 is <a href="https://github.com/replikativ/superv.async">out</a>. There&rsquo;s also a good <a href="https://whilo.github.io/org/2016/03/10/error-handling1.html">rationale</a> on its Erlang inspired error handling model.</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li><a href="http://arachne-framework.org/posts/2016/community-update-3/">Arachne Community Update 3</a> showcases some really nice looking error messages using spec.</li>
<li><a href="http://www.drmaciver.com/2016/10/static-typing-will-not-save-us-from-broken-software/">Static typing will not save us from broken software</a></li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li><a href="https://christopherdbui.com/clojure-repl-workflow/">A Clojure REPL workflow for beginners</a></li>
<li>Modified Gorilla REPL 0.4.0 (a fork?) has been <a href="https://groups.google.com/forum/#!topic/clojure/Rqsc8j3rJS8">released</a></li>
</ul>
<p><strong>Waiting for 1.9.</strong></p>
<ul>
<li><a href="http://dev.clojure.org/jira/browse/CLJ-1451">CLJ-1451</a> Add take-until function</li>
<li><a href="http://dev.clojure.org/jira/browse/CLJ-1544">CLJ-1544</a> AOT namespace loading</li>
<li><a href="http://dev.clojure.org/jira/browse/CLJ-2049">CLJ-2049</a> Improve clojure.zip documentation</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li>Eric Normand also has a new course <a href="https://purelyfunctional.tv/courses/clojure-macros/">Beginning with Clojure Macros</a>, and the first 2 videos are free to watch.</li>
<li><a href="https://semaphoreci.com/community/tutorials/how-to-write-a-custom-kerodon-matcher">How to write a custom Kerodon matcher</a> (for browser integration testing)</li>
<li><a href="http://blog.klipse.tech/clojure/2016/10/25/core-match.html">Core.match interactive tutorial</a></li>
<li>CircleCI&rsquo;s ClojureBridge <a href="https://circleci.com/blog/our-first-clojurebridge-that-s-a-wrap/">experience report</a></li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li>Precursor (a ClojureScript prototyping tool) is <a href="https://precursorapp.com/blog/precursor-is-now-open-source">now</a><a href="https://precursorapp.com/blog/precursor-is-now-open-source"> open source</a></li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>17: Clojure on a plane, Onyx in a browser</title>
      <link>https://www.therepl.net/17/</link>
      <pubDate>Sat, 22 Oct 2016 08:48:11 +1300</pubDate>
      <guid>https://www.therepl.net/17/</guid>
      <description>-main
Updating diagnostics for Boeing&amp;rsquo;s 737 MAX (using Clojure) Clojure is&#xA0;not afraid&#xA0;of the GPU Libraries &amp;amp; Books.
Tengen, a macro&#xA0;for making Reagent components a little easier from Peter Taoussanis. Most of the time form-1 and form-2 Reagent components are all I need, but this is worth looking at if you need to work with the React lifecycle methods more deeply. Tempura, an internationalisation library also from Peter Taoussanis.</description>
      <content:encoded><![CDATA[<p><strong>-main</strong></p>
<ul>
<li><a href="http://magazine.aerospacemanufacturinganddesign.com/article/october-2016/updating-diagnostics-for-boeings-737-max.aspx">Updating diagnostics for Boeing&rsquo;s 737 MAX (using Clojure)</a></li>
<li>Clojure is <a href="http://dragan.rocks/articles/16/Clojure-is-not-afraid-of-the-GPU-slides-EuroClojure">not afraid</a> of the GPU</li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li><a href="https://github.com/ptaoussanis/tengen">Tengen</a>, a macro for making Reagent components a little easier from Peter Taoussanis. Most of the time form-1 and form-2 Reagent components are all I need, but this is worth looking at if you need to work with the React lifecycle methods more deeply.</li>
<li><a href="https://github.com/ptaoussanis/tempura">Tempura</a>, an internationalisation library also from Peter Taoussanis.</li>
<li><a href="http://www.onyxplatform.org/jekyll/update/2016/10/18/Local-Runtime.html">onyx-local-rt</a> has been released, a way to run Onyx systems locally, and even in the browser (!)</li>
<li>ClojureScript 1.9.293 is <a href="https://groups.google.com/forum/#!topic/clojurescript/96RnUYnhq8E">out</a>, it&rsquo;s great to see Antonio Monteiro&rsquo;s contributions.</li>
<li><a href="https://hypirion.github.io/clj-xchart/">clj-xchart</a>, a charting library for the JVM has been released, with excellent docs.</li>
<li><a href="https://github.com/tendant/graphql-clj">graphql-clj</a>: A Clojure library that provides a GraphQL implementation</li>
<li><a href="https://github.com/metametadata/carry">carry</a>: A ClojureScript web app framework</li>
<li><a href="https://github.com/mpenet/sextant">Sextant</a>: Offline geocoding in Clojure</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li>Colin Fleming with some <a href="https://groups.google.com/d/msg/clojure/Dxk-rCVL5Ss/NqF-Na9ABQAJ">research</a> on the capabilities and requirements for type systems that interop with Java</li>
<li><a href="http://lambda-the-ultimate.org/node/5297">Typed X just doesn&rsquo;t pan out?</a></li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li><a href="http://www.wilfred.me.uk/blog/2015/03/19/adding-a-new-language-to-emacs/">Adding a new language to Emacs</a></li>
</ul>
<p><strong>Waiting for 1.9.</strong></p>
<ul>
<li>CLJS-1762: <a href="https://github.com/clojure/clojurescript/commit/732034bc8cb7e356b211c5d2b88a7af94ba184e5">Bump Closure Compiler</a></li>
<li><a href="http://dev.clojure.org/jira/browse/CLJS-844">CLJS-844</a>: Optimize js-&gt;clj by switching to transients</li>
<li>A <a href="https://groups.google.com/forum/#!topic/clojure/onmJ2uyQzC4">discussion</a> on the mailing list about strange behaviour of js-&gt;clj in advanced compilation mode</li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li>An excellent <a href="https://github.com/open-guides/og-aws">guide on AWS</a>, you&rsquo;re bound to pick up a trick or two, even if you&rsquo;ve been using it for a while.</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>16: Clojure is boring, Ethereum is exciting, and podcast scoops.</title>
      <link>https://www.therepl.net/16/</link>
      <pubDate>Sat, 15 Oct 2016 10:11:13 +1300</pubDate>
      <guid>https://www.therepl.net/16/</guid>
      <description>-main
Reflecting on XT16 Colin Jones with a bold assertion that&#xA0;Clojure is boring Datomic web apps:&#xA0;a practical guide Libraries &amp;amp; Books.
A new library for managing&#xA0;Permissions Arachne&#xA0;Community Update 2 Tracks&#xA0;is a library from Bryan Maass for declarative data manipulation. That sounds a bit boring, but check out the README, because it can do some pretty cool stuff! re-com 1.0.0&#xA0;is out Cortex: A machine learning library for&#xA0;Clojure, has recently been open sourced, with&#xA0;more discussion&#xA0;on the Clojure mailing list zprint: A new (alpha) library for reformatting Clojure source code People are worried about Types.</description>
      <content:encoded><![CDATA[<p><strong>-main</strong></p>
<ul>
<li><a href="https://juxt.pro/blog/posts/XT16-after.html">Reflecting on XT16</a></li>
<li>Colin Jones with a bold assertion that <a href="https://8thlight.com/blog/colin-jones/2016/10/06/clojure-is-boring.html">Clojure is boring</a></li>
<li>Datomic web apps: <a href="http://vvvvalvalval.github.io/posts/2016-07-24-datomic-web-app-a-practical-guide.html">a practical guide</a></li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li>A new library for managing <a href="https://github.com/tuhlmann/permissions">Permissions</a></li>
<li>Arachne <a href="http://arachne-framework.org/posts/2016/community-update-2/">Community Update 2</a></li>
<li><a href="https://github.com/escherize/tracks">Tracks</a> is a library from Bryan Maass for declarative data manipulation. That sounds a bit boring, but check out the README, because it can do some pretty cool stuff!</li>
<li><a href="https://github.com/Day8/re-com/releases/tag/1.0.0">re-com 1.0.0</a> is out</li>
<li><a href="https://github.com/thinktopic/cortex">Cortex</a>: A machine learning library for Clojure, has recently been open sourced, with <a href="https://groups.google.com/forum/#!topic/clojure/fEdMJh63YDw">more discussion</a> on the Clojure mailing list</li>
<li><a href="https://groups.google.com/forum/#!topic/clojure/am29qj7VHZI">zprint</a>: A new (alpha) library for reformatting Clojure source code</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li>Custom defn macro with clojure.spec: <a href="http://blog.klipse.tech//clojure/2016/10/10/defn-args.html">part 1</a>, and <a href="http://blog.klipse.tech//clojure/2016/10/10/defn-args-2.html">part 2</a>.</li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li><a href="https://bernardopires.com/2013/10/try-logic-programming-a-gentle-introduction-to-prolog/">A gentle introduction to Prolog</a>, and The Clojure Atom has some more <a href="http://us1.campaign-archive1.com/?u=60763b0c4890c24bd055f32e6&amp;id=4494284f87&amp;e=c6059c4a37">links</a>to Prolog tutorials</li>
<li>In the discussion about machine learning for Clojure, Dragan Djuric had a particularly insightful post on <a href="https://groups.google.com/d/msg/clojure/fEdMJh63YDw/2GGuPeE0AQAJ">high performance matrix operations</a>.</li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li>Just when you thought it was safe to go back in the REPL, Zach Oakes releases <a href="https://groups.google.com/forum/#!topic/clojure/yb0kfNo_pPk">Nightlight</a>.</li>
<li>Cider 0.14 (Berlin) has been <a href="https://groups.google.com/forum/#!topic/clojure/HMNxicW-Lk4">released</a></li>
</ul>
<p><strong>Waiting for 1.9.</strong></p>
<ul>
<li>The defn podcast <a href="https://defn.audio/2016/10/06/episode-11-alex-miller/">interviewed Alex Miller</a>, and scooped some things about Clojure&rsquo;s development I hadn&rsquo;t heard before, including that there may be more features coming to Clojure 1.9, and that it is unlikely to be released this year.</li>
<li><a href="http://dev.clojure.org/jira/browse/CLJS-1817">CLJS-1817</a> fixes a bug in the PersistentHashmap implementation</li>
<li><a href="http://dev.clojure.org/jira/browse/ASYNC-159">ASYNC-159</a>: promise-chan is broken in ClojureScript </li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li><a href="http://reborg.tumblr.com/post/151463898693/xt-16-conference-notes">XT16 conference notes</a></li>
<li>Lambda Island on <a href="https://lambdaisland.com/episodes/javascript-libraries-clojurescript">using JavaScript libraries in ClojureScript</a></li>
<li><a href="https://medium.com/@matus.lestan/how-to-create-decentralised-apps-with-clojurescript-re-frame-and-ethereum-81de24d72ff5#.icbcx55m8">How to create decentralised apps with ClojureScript, re-frame, and Ethereum</a></li>
<li><a href="https://medium.com/adstage-engineering/how-we-test-our-full-stack-clojure-app-b18d79ee9e00#.xh78yxlhf">How we test our full-stack Clojure app</a></li>
<li>Clojure and AWS Serverless, <a href="https://medium.com/@jamesleonis/clojure-and-aws-serverless-introduction-8a1c51a1415d#.7chn9eh1b">an introduction</a></li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>15: Better error messages, the Clojure curve, and the Worlds Worst Singles Network</title>
      <link>https://www.therepl.net/15/</link>
      <pubDate>Fri, 07 Oct 2016 09:43:16 +1300</pubDate>
      <guid>https://www.therepl.net/15/</guid>
      <description>-main
Clojure in the UK: Funding Circle Single use tokens in Datomic&#xA0;with the Worlds Worst Singles Network TDD in ClojureScript with Devcards Libraries &amp;amp; Books.
better-cond, a version of cond that supports :let clauses,&#xA0;and it&amp;rsquo;s&#xA0;rationale Chris Zhang&#xA0;introduces&#xA0;hara.zip core.matrix is&#xA0;moving&#xA0;into Clojure contrib Expectations is being&#xA0;re-launched&#xA0;to support&#xA0;tooling that integrates with clojure.test pulley.thread-local&#xA0;- an atom like interface for local thread bindings core.async top use cases People are worried about Types.</description>
      <content:encoded><![CDATA[<p><strong>-main</strong></p>
<ul>
<li><a href="https://juxt.pro/blog/posts/clojure-in-fundingcircle.html">Clojure in the UK: Funding Circle</a></li>
<li><a href="http://joshuadavey.com/2016/09/30/single-use-tokens-in-datomic/">Single use tokens in Datomic</a> with the Worlds Worst Singles Network</li>
<li><a href="https://8thlight.com/blog/eric-smith/2016/10/05/a-testable-clojurescript-setup.html">TDD in ClojureScript with Devcards</a></li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li><a href="https://github.com/Engelberg/better-cond">better-cond</a>, a version of cond that supports :let clauses, and it&rsquo;s <a href="https://github.com/Engelberg/better-cond#rationale">rationale</a></li>
<li>Chris Zhang <a href="http://z.caudate.me/why-clojure-zip-sucks/">introduces</a> hara.zip</li>
<li>core.matrix is <a href="https://github.com/mikera/core.matrix/issues/294">moving</a> into Clojure contrib</li>
<li>Expectations is being <a href="https://groups.google.com/forum/#!topic/clojure/z9b5Ws9EVXQ">re-launched</a> to support tooling that integrates with clojure.test</li>
<li><a href="https://groups.google.com/forum/#!topic/clojure/QyRCAPnCgQU">pulley.thread-local</a> - an atom like interface for local thread bindings</li>
<li><a href="https://groups.google.com/d/msg/clojure/peJXvE0nBZs/PPly6IbjAwAJ">core.async top use cases</a></li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li><a href="http://blog.cognitect.com/blog/2016/10/5/interactive-development-with-clojurespec">Interactive Development with Clojure.spec</a></li>
<li><a href="http://timothypratley.blogspot.co.nz/2016/09/elm-vs-clojurescript-first-encounter.html">Elm vs ClojureScript, a first encounter</a></li>
<li><a href="http://blog.klipse.tech//clojure/2016/10/02/parsing-with-derivatives-regular.html">Parsing with derivatives</a> using Klipse</li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li>Clojars is getting a <a href="https://groups.google.com/forum/#!topic/clojure/WhBu4CB_ekg">CDN</a> (testers needed)</li>
<li><a href="https://github.com/cloverage/cloverage">Cloverage</a> is now in a new GitHub organisation and is seeing new releases.</li>
<li><a href="https://groups.google.com/forum/#!topic/clojurescript/NWnhF7O3Y-g">Sourcemaps providing sourcesContent</a></li>
</ul>
<p><strong>Waiting for 1.9.</strong></p>
<ul>
<li>An interesting discussion on <a href="https://groups.google.com/forum/#!topic/clojure-dev/Tt8j90pi_TU">extending clojure.lang.Numbers</a></li>
<li><a href="https://github.com/clojure/clojure/commit/e547d35bb796051bb2cbf07bbca6ee67c5bc022f">Add</a> 0 and 1 arity to into</li>
<li>CLJS-1807: <a href="https://github.com/clojure/clojurescript/commit/9ec238fbe8e26f73dedb171475dd59b7b606fc9a">Better</a> error messages for ns* calls</li>
<li>CLJS-1796: <a href="https://github.com/clojure/clojurescript/commit/3ab6de48b4541900d83e4b41e26080408d742de7">Measure</a> Google Closure optimisation time</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li>CircleCI are <a href="https://circleci.com/blog/free-beginner-friendly-clojure-programming-workshop/">hosting</a> a ClojureBridge in San Francisco on October 21-22</li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li><a href="https://juxt.pro/blog/posts/clojure-curve.html">Clojure and the Curve</a></li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>14: Martians, union types, reusable components</title>
      <link>https://www.therepl.net/14/</link>
      <pubDate>Sat, 01 Oct 2016 09:42:17 +1300</pubDate>
      <guid>https://www.therepl.net/14/</guid>
      <description>-main.
There were some interesting discussions this week on&#xA0;Clojure mailing lists:&#xA0;parallel sequence side-effect processor,&#xA0;Idiom question&#xA0;(on threading macros),&#xA0;graphql/relay for reagent? Reusable Components Martian: an HTTP client that uses Swagger definitions Om Next incremental rendering Libraries &amp;amp; Books.
Arachne community update tappit: Test Anything Protocol for Clojure data-frisk-reagent&#xA0;visualises Reagent app data in tree form re-frisk&#xA0;takes this to the next level if you are using re-frame data-scope&#xA0;visualises Clojure data (on the JVM)&#xA0;People are worried about Types.</description>
      <content:encoded><![CDATA[<p><strong>-main.</strong></p>
<ul>
<li>There were some interesting discussions this week on Clojure mailing lists: <a href="https://groups.google.com/forum/#!topic/clojure/Q5uZcYRdbgg">parallel sequence side-effect processor</a>, <a href="https://groups.google.com/forum/#!topic/clojure/JFQE9vdc2Wc">Idiom question</a> (on threading macros), <a href="https://groups.google.com/forum/#!topic/reagent-project/ttJfQVQiGY4">graphql/relay for reagent?</a></li>
<li><a href="http://yogthos.net/posts/2016-09-25-ReagentComponents.html">Reusable Components</a></li>
<li><a href="https://juxt.pro/blog/posts/martian.html">Martian</a>: an HTTP client that uses Swagger definitions</li>
<li><a href="https://anmonteiro.com/2016/09/om-next-internals-incremental-rendering/">Om Next incremental rendering</a></li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li><a href="http://arachne-framework.org/posts/2016/community-update/">Arachne community update</a></li>
<li><a href="https://github.com/pieterbreed/tappit">tappit</a>: Test Anything Protocol for Clojure</li>
<li><a href="https://github.com/Odinodin/data-frisk-reagent">data-frisk-reagent</a> visualises Reagent app data in tree form</li>
<li><a href="https://github.com/flexsurfer/re-frisk">re-frisk</a> takes this to the next level if you are using re-frame</li>
<li><a href="https://groups.google.com/forum/#!topic/clojure/Ske00kiDZqM">data-scope</a> visualises Clojure data (on the JVM) </li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li><a href="https://lambdaisland.com/blog/25-04-2016-union-types">Union Types with Clojure.Spec</a>, including a macro that does compile time checking that all of the specs are matched on. I&rsquo;m very excited about the possibilities for this.</li>
<li>David Nolen&rsquo;s talk at Papers We Love on Parsing With Derivatives is up on <a href="https://www.youtube.com/watch?v=FKiEsJiTMtI&amp;feature=share">Youtube</a></li>
<li><a href="https://www.reddit.com/r/Clojure/comments/54r5dn/spec_vs_types_questions_possibly_dumb_or_off_base/">Spec vs types questions</a> on Reddit with some good answers from Alex Miller</li>
<li>Stuart Halloway on <a href="http://blog.cognitect.com/blog/2016/9/29/agility-robustness-clojure-spec">Agility &amp; Robustness</a> from his talk at Strange Loop last week</li>
<li>Clojure 1.9.0-alpha13 is <a href="https://groups.google.com/forum/#!msg/clojure/QWPUWG9BwbE/9a7ymJb9AQAJ">out</a></li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li>AOT compilation is <a href="https://bugs.openjdk.java.net/browse/JDK-8166089">coming</a> to Java 9</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li><a href="http://inclojure.org/">In/Clojure 2016</a>, the first Clojure conference in India has a CFP open and tickets available.</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>13: Strange Loop, Clojure In Europe, Datomic in production</title>
      <link>https://www.therepl.net/13/</link>
      <pubDate>Sat, 24 Sep 2016 11:26:19 +1300</pubDate>
      <guid>https://www.therepl.net/13/</guid>
      <description>-main.
Paul Stadig on&#xA0;The System Paradigm JUXT are&#xA0;starting&#xA0;a series called &amp;ldquo;Clojure In&amp;rdquo;, exploring Clojure in industry across Europe, starting with&#xA0;Aviso&#xA0;and&#xA0;uSwitch. Alistair Roche on&#xA0;Datomic in Production Libraries &amp;amp; Books.
Monger&#xA0;3.1.0 is&#xA0;released cljs-oops, a native JS object access lib&#xA0;has&#xA0;released&#xA0;0.2.0. People are worried about Types.&#xA0;?
Stuart Halloway gave&#xA0;a&#xA0;talk&#xA0;at Strange Loop&#xA0;&amp;ldquo;Agility &amp;amp; Robustness: Clojure spec&amp;rdquo;. How to declare all valid keys in a map&#xA0;which is a problem I&amp;rsquo;ve&#xA0;hit already in early spec adoption.</description>
      <content:encoded><![CDATA[<p><strong>-main.</strong></p>
<ul>
<li>Paul Stadig on <a href="http://realworldclojure.com/the-system-paradigm/">The System Paradigm</a></li>
<li>JUXT are <a href="https://juxt.pro/blog/posts/clojure-in.html">starting</a> a series called &ldquo;<a href="https://juxt.pro/clojure-in.html">Clojure In</a>&rdquo;, exploring Clojure in industry across Europe, starting with <a href="https://juxt.pro/blog/posts/clojure-in-aviso.html">Aviso</a> and <a href="https://juxt.pro/blog/posts/clojure-in-uswitch.html">uSwitch</a>.</li>
<li>Alistair Roche on <a href="https://www.youtube.com/watch?v=0rmR80neExo&amp;index=4&amp;list=PLNoHgLVTxtaqo1c_V2I-8wkDrCGImb9v5">Datomic in Production</a></li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li>Monger 3.1.0 is <a href="http://blog.clojurewerkz.org/blog/2016/09/18/monger-3-dot-1-0-is-released/">released</a></li>
<li>cljs-oops, a native JS object access lib has released <a href="https://github.com/binaryage/cljs-oops/releases/tag/v0.2.0">0.2.0</a>.</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li>Stuart Halloway gave a <a href="https://www.youtube.com/watch?v=VNTQ-M_uSo8">talk</a> at Strange Loop &ldquo;Agility &amp; Robustness: Clojure spec&rdquo;.</li>
<li><a href="https://groups.google.com/forum/#!topic/clojure/fti0eJdPQJ8/discussion">How to declare all valid keys in a map</a> which is a problem I&rsquo;ve hit already in early spec adoption.</li>
<li>David Chelimsky from Cognitect <a href="https://vimeo.com/181231654">talks about</a> spec at Chicago Clojure.</li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li>Google has created a new TCP congestion control algorithm which is pretty neat (and the explanation is very readable). The patch is <a href="https://patchwork.ozlabs.org/patch/671069/">here</a>, and there will be an ACM Queue article soon.</li>
<li><a href="https://www.youtube.com/watch?v=tzs_LpQsjAE">Project Jigsaw in JDK 9</a>, another Strange Loop talk</li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li>Clojars is <a href="https://groups.google.com/forum/#!topic/clojure/yKir1dJO6cg">moving</a> to Linode, and needs your help to make sure nothing breaks for you. See the announcement for testing instructions.</li>
<li>Alexander Yakushev has released <a href="http://bytopia.org/2016/09/17/nsgraph-clojure-namespace-dependency/">ns-graph</a> has released a tool for graphing ns dependencies</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li>PurelyFunctional.tv has an FP programming <a href="https://purelyfunctional.tv/#guide">career guide</a></li>
</ul>
<p><strong>Waiting for 1.9</strong></p>
<ul>
<li><a href="http://dev.clojure.org/jira/browse/CLJ-1906">CLJ-1906</a>: Clojure should make representing iterated api calls easier, more discussion at <a href="https://groups.google.com/forum/#!msg/clojure-dev/89RNvkLdYc4/-XHI-kZ_FQAJ">clojure-dev</a>.</li>
<li><a href="https://github.com/clojure/clojure/commit/7ff4c70b13d29cf0a1fc7f19ba53413a38bb03d5">7ff4c70</a>: Fix notable conformance in Clojure Spec</li>
<li><a href="http://dev.clojure.org/jira/browse/CLJS-1785">CLJS-1785</a>: Warn on reference to js/foo shadowed by local binding</li>
<li><a href="http://dev.clojure.org/jira/browse/CLJS-1775">CLJS-1775</a>: get with nil returns as if get with 0</li>
<li><a href="http://dev.clojure.org/jira/browse/CLJ-787">CLJ-787</a>: transient blows up when passed a vector by subvec</li>
<li><a href="http://dev.clojure.org/jira/browse/CLJ-2026">CLJ-2026</a>: Transient exceptions thrown in clojure.spec.test/check</li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li>One more Strange Loop talk: Aysylu Greenberg on <a href="https://www.youtube.com/watch?v=K8YuavUy6Qc">building a distributed build system at Google scale</a>.</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>12: False sharing, riddles, specs</title>
      <link>https://www.therepl.net/12/</link>
      <pubDate>Sat, 17 Sep 2016 19:53:20 +1300</pubDate>
      <guid>https://www.therepl.net/12/</guid>
      <description>-main.
Implementing leaky channels&#xA0;with core.async David Nolen&amp;rsquo;s&#xA0;talks about&#xA0;the last five years of ClojureScript&#xA0;at ClojuTRE.&#xA0;More videos&#xA0;from the conference are on Youtube. develop, test, communicate&#xA0;by Chris Zheng. I always enjoy Chris&amp;rsquo;s writing and work because it comes with a very distinct philosophy. I think this piece captures that philosophy. Solving a not-so-easy riddle Good discussion on the sequence paradigm in Clojure, particularly from&#xA0;Alex Miller. See a similar discussion on&#xA0;derefing nil.</description>
      <content:encoded><![CDATA[<p><strong>-main.</strong></p>
<ul>
<li><a href="http://bytopia.org/2016/09/14/implementing-leaky-channels/">Implementing leaky channels</a> with core.async</li>
<li>David Nolen&rsquo;s <a href="https://www.youtube.com/watch?v=mty0RwkPmE8">talks about</a> the last five years of ClojureScript at ClojuTRE. <a href="https://www.youtube.com/playlist?list=PLetHPRQvX4a_jQjvn54Q-d1WYZ52nDfnT">More videos</a> from the conference are on Youtube.</li>
<li><a href="http://z.caudate.me/develop-test-communicate/">develop, test, communicate</a> by Chris Zheng. I always enjoy Chris&rsquo;s writing and work because it comes with a very distinct philosophy. I think this piece captures that philosophy.</li>
<li><a href="http://blog.klipse.tech/clojure/2016/09/16/combinatorics-riddle.html">Solving a not-so-easy riddle</a></li>
<li>Good discussion on the sequence paradigm in Clojure, particularly from <a href="https://groups.google.com/d/msg/clojure/znPyDzGkBgA/bSGxmchGCwAJ">Alex Miller</a>. See a similar discussion on <a href="https://groups.google.com/forum/#!topic/clojure/ot_sD2sJW0A">derefing nil</a>.</li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li>🎉Reagent 0.6.0 is <a href="https://reagent-project.github.io/news/news060.html">out</a> 🎉</li>
<li><a href="http://z.caudate.me/hara-io-file-nio-file-for-clojure/">hara.io.file</a>, a NIO file library by Chris Zheng</li>
<li>Om Next Server-Side <a href="https://anmonteiro.com/2016/09/om-next-server-side-rendering/">rendering</a></li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li><a href="http://blog.cognitect.com/blog/2016/9/14/focus-on-spec-combining-specs-with-sor">Combining specs with s/or</a> by Alex Miller</li>
<li>Arne Brasseur&rsquo;s gave a <a href="https://www.youtube.com/watch?v=-MeOPF94LhI">talk</a> at ClojuTRE on clojure.spec, and published his <a href="http://arnebrasseur.net/talks/2016-clojutre/">slides</a></li>
<li>Paul Chiusano with a refreshingly level headed take on <a href="https://pchiusano.github.io/2016-09-15/static-vs-dynamic.html">static vs dynamic typing</a>.</li>
<li><a href="https://www.bevuta.com/en/blog/declaratively-parse-query-params-using-clojure-spec/">Using clojure.spec to declaratively parse query parameters</a></li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li><a href="https://maseev.github.io/2016/09/16/gotta-go-fast-with-netty/">Gotta go fast with Netty</a></li>
<li><a href="http://engineering.indeedblog.com/blog/2016/09/job-search-web-app-java-8-migration/">A Funny Thing Happened on the Way to Java 8</a>. A cautionary tale of JVM tuning. Worth keeping in mind with Java 9 coming out soon.</li>
<li>Gil Tene on <a href="https://groups.google.com/d/msg/mechanical-sympathy/0jAB0j_8-yg/B41-UKQhCQAJ">false sharing</a>.</li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li><a href="http://tech.adstage.io/2016/09/12/how-we-test-full-stack-clojure.html">How We Test our Full-stack Clojure App</a></li>
<li>Cider now <a href="https://twitter.com/bbatsov/status/776342665042550784">displays</a> specs in doc buffers</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li><a href="http://www.upgradingdave.com/blog/posts/2016-09-10-core-async.html">Core Async and Transducers</a></li>
<li>ClojureBridge Pittsburgh <a href="http://sfviapgh.com/blog/2016/9/11/a-pittsburgh-bridge-clojure">experience report</a></li>
<li><a href="https://groups.google.com/forum/#!topic/clojure/tIlTaufl1s8">CfP</a> for :clojureD 2017</li>
</ul>
<p><strong>Waiting for 1.9.</strong></p>
<ul>
<li><a href="http://dev.clojure.org/jira/browse/CLJS-1770">CLJS-1770</a>: goog-defines <a href="https://github.com/clojure/clojurescript/commit/1d8964ea632fbb3c775cbacb1f11807fbdfe9e72">now</a> work for integers</li>
<li><a href="http://dev.clojure.org/jira/browse/CLJS-1773">CLJS-1773</a>: Don&rsquo;t resolve unqualified symbols/keywords with $macros, which contains a good explanation of macro namespaces in ClojureScript.</li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li>A beautiful post <a href="http://inconvergent.net/generative/">On Generative Algorithms</a></li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>11: Shootout's, benchmarks, and cryptocurrencies</title>
      <link>https://www.therepl.net/11/</link>
      <pubDate>Sat, 10 Sep 2016 10:32:22 +1300</pubDate>
      <guid>https://www.therepl.net/11/</guid>
      <description>Articles.
Websocket Shootout Application Configuration&#xA0;options Reducible Streams Reductionem ad finem Libraries &amp;amp; Books.
Clojure Polymorphism, a short book about, well&#xA0;it&amp;rsquo;s in the title. cuerdas 1.0.0, a Clojure(Script) string manipulation library manifail 0.4.0, Manifold failure handling banach, more Manifold failure handling shapeshifter, a way to l&#x336;a&#x336;u&#x336;n&#x336;d&#x336;e&#x336;r&#x336; convert&#xA0;your cryptocurrencies People are worried about Types.&#xA0;?
Closable services The Ergonomics of Type Checking Clojure 1.9.0-alpha12 is&#xA0;out Generatively testing UI state&#xA0;with spec and devcards is an awesome idea Spec has vaulted itself towards the top of the&#xA0;validation benchmark league tables&#xA0;in alpha12 Foundations.</description>
      <content:encoded><![CDATA[<p><strong>Articles.</strong></p>
<ul>
<li><a href="https://hashrocket.com/blog/posts/websocket-shootout">Websocket Shootout</a></li>
<li><a href="http://realworldclojure.com/application-configuration/">Application Configuration</a> options</li>
<li><a href="http://paul.stadig.name/2016/08/reducible-streams.html">Reducible Streams</a></li>
<li>Reductionem ad finem</li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li><a href="http://realworldclojure.com/2016/08/30/clojure-polymorphism-released/">Clojure Polymorphism</a>, a short book about, well it&rsquo;s in the title.</li>
<li><a href="https://github.com/funcool/cuerdas/blob/master/CHANGES.md#version-100">cuerdas 1.0.0</a>, a Clojure(Script) string manipulation library</li>
<li><a href="https://github.com/tulos/manifail">manifail 0.4.0</a>, Manifold failure handling</li>
<li><a href="https://github.com/RackSec/banach">banach</a>, more Manifold failure handling</li>
<li><a href="https://github.com/nervous-systems/shapeshiftr">shapeshifter</a>, a way to l̶a̶u̶n̶d̶e̶r̶ convert your cryptocurrencies</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li><a href="http://realworldclojure.com/2016/09/01/closeable-services/">Closable services</a></li>
<li><a href="https://michaelfeathers.silvrback.com/the-ergonomics-of-type-checking">The Ergonomics of Type Checking</a></li>
<li>Clojure 1.9.0-alpha12 is <a href="https://groups.google.com/forum/#!topic/clojure/lQ5beZB6QYE">out</a></li>
<li><a href="https://juxt.pro/blog/posts/generative-ui-clojure-spec.html">Generatively testing UI state</a> with spec and devcards is an awesome idea</li>
<li>Spec has vaulted itself towards the top of the <a href="https://muhuk.github.io/validation-benchmark/">validation benchmark league tables</a> in alpha12</li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li>A <a href="http://cr.openjdk.java.net/~jrose/values/shady-values.html">minimal JVM Value Types proposal</a> for prototyping/evaluation</li>
<li><a href="http://jcdav.is/2016/09/01/How-the-JVM-compares-your-strings/">How the JVM compares your strings</a>, a.k.a. How Intel improved string comparisons with this one weird instruction.</li>
<li><a href="https://srvaroa.github.io/java/jvm/unsafe/2016/08/28/sun-misc-cleaner.html#">Contention on sun.misc.Cleaner</a></li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li>The <a href="https://developers.googleblog.com/2016/08/closure-compiler-in-javascript.html">Google Closure Compiler</a> is now cross compiled to JavaScript</li>
</ul>
<p><strong>Waiting for 1.9.</strong></p>
<ul>
<li>spec perf tweaks <a href="https://github.com/clojure/clojure/commit/021a3adf131d3f4158acd9e5d08ca91eb36ab56d">1</a>, <a href="https://github.com/clojure/clojure/commit/9fa85c6a908c9a3e89b4c0c449c49887a4c35248">2</a></li>
<li>coll-of <a href="https://github.com/clojure/clojure/commit/edf869a0fa56df3aa2503980af65931d76e2e00b">now</a> handles sequences - <a href="http://dev.clojure.org/jira/browse/CLJ-1988">CLJ-1988</a></li>
<li>Records <a href="http://dev.clojure.org/jira/browse/CLJ-1224">now</a> cache hasheq and hashCode - <a href="http://dev.clojure.org/jira/browse/CLJ-1224">CLJ-1224</a></li>
<li>Discussion on <a href="http://dev.clojure.org/jira/browse/CLJ-322?focusedCommentId=43828&amp;page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-43828">CLJ-322</a>: Enhance AOT compilation process to emit classfiles only for explicitly-specified namespaces.</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li>A long awaited return to Aphyr&rsquo;s Clojure From The Ground Up series: <a href="https://aphyr.com/posts/306-clojure-from-the-ground-up-state">State</a></li>
<li>ClojureBridge Berlin has a cool new <a href="http://clojurebridge-berlin.org/">website</a></li>
<li><a href="http://realworldclojure.com/applying-clojure/">Applying Clojure</a></li>
<li>Martin Klepsch on <a href="https://www.youtube.com/watch?v=tBnu2JmK4p0">desktop apps with ClojureScript and Electron</a></li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>10: Ultimate REPLs, opinionated na's, pluggable printers</title>
      <link>https://www.therepl.net/10/</link>
      <pubDate>Fri, 02 Sep 2016 11:00:25 +1300</pubDate>
      <guid>https://www.therepl.net/10/</guid>
      <description>Intro.
This week there&amp;rsquo;s a new section, suggested by&#xA0;Colin Taylor: Waiting for 1.9, which highlights JIRA tickets and commits of interest.
Articles.
The Ultimate Guide To Clojure REPLs, and looking at the table of contents, I don&amp;rsquo;t think that title is an exaggeration. Stuart Sierra&amp;rsquo;s&#xA0;opinionated ns style guide Libraries &amp;amp; Books.
Jake McCrary has released&#xA0;reload, a Ring middleware for reloading your namespaces with clojure.tools.namespace on every request. People are worried about Types.</description>
      <content:encoded><![CDATA[<p><strong>Intro.</strong></p>
<p>This week there&rsquo;s a new section, suggested by <a href="https://twitter.com/coltnz">Colin Taylor</a>: Waiting for 1.9, which highlights JIRA tickets and commits of interest.</p>
<p><strong>Articles.</strong></p>
<ul>
<li><a href="https://lambdaisland.com/guides/clojure-repls/">The Ultimate Guide To Clojure REPLs</a>, and looking at the table of contents, I don&rsquo;t think that title is an exaggeration.</li>
<li>Stuart Sierra&rsquo;s <a href="https://stuartsierra.com/2016/clojure-how-to-ns.html">opinionated ns style guide</a></li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li>Jake McCrary has released <a href="http://jakemccrary.com/blog/2016/08/28/better-code-reloading-in-a-cloure-web-server/">reload</a>, a Ring middleware for reloading your namespaces with clojure.tools.namespace on every request.</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li><a href="http://blog.jenkster.com/2016/06/functional-mumbo-jumbo-adts.html">Functional Mumbo Jumbo - ADTs</a> by Kris Jenkins</li>
<li>core.typed <a href="https://groups.google.com/forum/#!topic/clojure/CeDFGEs58NE">now</a> has support for generating specs from unit tests</li>
<li>clojure.core specs <a href="https://groups.google.com/forum/#!topic/clojure/LEeVZlA--IU">can</a> be consumed by external projects safely</li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li><a href="http://objectlayout.org/">ObjectLayout</a>, a set of data structures that could be used to support higher performance for object arrays by allocating contiguous memory in a hypothetical future JVM. See also this <a href="https://www.infoq.com/presentations/objectlayout-structuredarray">presentation</a> on it. </li>
<li><a href="https://en.wikipedia.org/wiki/Project_Valhalla_(Java_language)">Project Valhalla</a>, a similar but more ambitious project for value types in Java.</li>
<li>A mailing list <a href="http://mail.openjdk.java.net/pipermail/mlvm-dev/2015-January/006239.html">discussion</a> on how these two projects relate, including an excellent <a href="http://mail.openjdk.java.net/pipermail/mlvm-dev/2015-January/006244.html">reply</a> by Brian Goetz with a 20 year future perspective on Java&rsquo;s development.</li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li>Colin Fleming has released a plugin to <a href="https://github.com/cursive-ide/gradle-clojure">c</a><a href="https://github.com/cursive-ide/gradle-clojure">ompile Clojure with Gradle</a>, if you&rsquo;re into that kind of thing&hellip;</li>
</ul>
<p><strong>Waiting for 1.9.</strong></p>
<ul>
<li><a href="https://github.com/clojure/clojure/commit/99ab306f82620e6db6a978a5565d2ccd668c0798">Make clojure spec explain printer pluggable</a></li>
<li>It looks like there&rsquo;s movement on <a href="http://dev.clojure.org/jira/browse/CLJ-700?page=com.atlassian.jira.plugin.system.issuetabpanels:changehistory-tabpanel#issue-tabs">CLJ-700</a>, contains? broken for transient collections</li>
<li><a href="http://dev.clojure.org/jira/browse/CLJ-2014">Not all keywords</a> that can be printed can be read. This comes up <a href="https://github.com/ptaoussanis/sente/issues/251">now and again</a>, so it&rsquo;s worth remembering.</li>
<li><a href="http://dev.clojure.org/jira/browse/CLJS-901">Protocolize</a> CLJS compiler access to the file system</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li><a href="https://twitter.com/puredanger/status/768893482966450176">Alex Miller will be teaching a half-day spec workshop</a></li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li><a href="https://groups.google.com/forum/#!topic/mozilla.dev.security.policy/k9PBmyLCi8I">Incidents involving the CA WoSign</a></li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>9: spec, parsing with derivatives, and black magic</title>
      <link>https://www.therepl.net/9/</link>
      <pubDate>Sat, 27 Aug 2016 10:21:27 +1300</pubDate>
      <guid>https://www.therepl.net/9/</guid>
      <description>Notes.
No newsletter last week as I was on holiday, but this one is a bumper spec issue.
People are worried about Types.&#xA0;?
I&amp;rsquo;m putting this section at the top this week, as there are several important spec related links.
A lively thread on&#xA0;spec error messages Clojure 1.9.0-alpha11 is&#xA0;out&#xA0;which includes specs for clojure.core core.typed basics of&#xA0;automatic annotations, and&#xA0;inferring function types Om next and Bootstrapped ClojureScript Focus on spec: Combining Specs with and&#xA0;from Alex Miller Foundations.</description>
      <content:encoded><![CDATA[<p><strong>Notes.</strong></p>
<p>No newsletter last week as I was on holiday, but this one is a bumper spec issue.</p>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<p>I&rsquo;m putting this section at the top this week, as there are several important spec related links.</p>
<ul>
<li>A lively thread on <a href="https://groups.google.com/forum/#!topic/clojure/mIlKaOiujlo">spec error messages</a></li>
<li>Clojure 1.9.0-alpha11 is <a href="https://groups.google.com/forum/#!topic/clojure/_slHTn-Ej1Y">out</a> which includes specs for clojure.core</li>
<li>core.typed basics of <a href="http://frenchy64.github.io/2016/08/13/runtime-infer-basics.html">automatic annotations</a>, and <a href="http://frenchy64.github.io/2016/08/15/infer-functions.html">inferring function types</a></li>
<li><a href="https://anmonteiro.com/2016/08/om-next-and-bootstrapped-clojurescript/">Om next and Bootstrapped ClojureScript</a></li>
<li><a href="http://blog.cognitect.com/blog/2016/8/24/combining-specs-with-and">Focus on spec: Combining Specs with <code>and</code></a> from Alex Miller</li>
</ul>
<p><strong>Foundations.</strong></p>
<p>More spec, but this time in the foundational section, several papers that influenced spec&rsquo;s design. David Nolen <a href="http://www.meetup.com/papers-we-love/events/233240967/">spoke on this</a> at Papers We Love NYC, I&rsquo;ll be sure to post the video if it was recorded.</p>
<ul>
<li><a href="http://matt.might.net/papers/might2011derivatives.pdf">Parsing with Derivatives</a></li>
<li><a href="https://arxiv.org/pdf/1604.04695.pdf">On the Complexity and Performance of Parsing with Derivatives</a></li>
<li>Matthew Might talks about <a href="https://www.youtube.com/watch?v=ZzsK8Am6dKU">parsing with derivatives</a></li>
</ul>
<p><strong>Articles.</strong></p>
<ul>
<li>I was sad to hear Yeller was <a href="http://yellerapp.com/posts/2016-08-21-yeller-is-closing-down.html">shutting down</a></li>
<li>Onyx <a href="http://www.onyxplatform.org/jekyll/update/2016/08/17/Funding.html">raised</a> $500k, congratulations!</li>
<li>Daniel Higginbothams <a href="http://www.flyingmachinestudios.com/essays/process/">writing process</a></li>
<li>Datomic&rsquo;s <a href="http://blog.datomic.com/2016/08/log-api-for-memory-databases.html">log API</a></li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li><a href="http://shaunlebron.github.io/t3tr0s-slides/#0">Tetris in ClojureScript</a> with an impressive way to interact with the running code.</li>
<li>Nathan Marz <a href="https://www.youtube.com/watch?v=mhkdglfUi0E">talking</a> at ClojureNYC on inline caching to speed up Clojure programs</li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li>clojure.data.avl has a new <a href="https://groups.google.com/forum/#!topic/clojure/rZXHVx2eJQs">release</a></li>
<li><a href="https://groups.google.com/forum/#!topic/clojure/7WXH-Uxoifs">Shrubbery 0.4.0</a>, a stubbing, spying, and mocking library for Clojure protocols</li>
<li>re-frame has a massive new release <a href="https://github.com/Day8/re-frame/blob/master/CHANGES.md#080--20160819">out</a> with a ton of cool features. I contributed to this release, and am really looking forward to seeing how people use it.</li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li><a href="https://www.brainonfire.net/blog/strace-clojure-process-lein/">s</a><a href="https://www.brainonfire.net/blog/strace-clojure-process-lein/">trace&rsquo;ing a Clojure process under lein</a></li>
<li><a href="https://groups.google.com/forum/#!topic/clojure/16v5EYHlyc8">Leiningen 2.7.0 was released</a>, managed-dependencies looks like it could be really useful.</li>
<li><a href="https://changearc.wordpress.com/2016/08/13/funcjure/">Funcjure</a> (not yet released) brings infix notation to Clojure. Not to my taste, but interesting nonetheless.</li>
<li>Cloverage has a new <a href="https://gist.github.com/danielcompton/a56cc02abfd8f154606c3448370ca49e">release</a> thanks to LVH.</li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li>More <a href="https://github.com/ztellman/virgil/blob/master/src/virgil.clj#L138">black magic</a> from Zach Tellman</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>8: Recursion, automatic annotations,&#xA0;more recursion</title>
      <link>https://www.therepl.net/8/</link>
      <pubDate>Sat, 13 Aug 2016 09:18:30 +1300</pubDate>
      <guid>https://www.therepl.net/8/</guid>
      <description>Articles.
Generating Sight-Reading Exercises using Constraint Logic Programming in Clojure Fun vs. Computer Science, not strictly a Clojure article, but it talks about iterative development which is always relevant. Understanding recursion More recursion with&#xA0;Y Combinators More&#xA0;Y Combinators Libraries &amp;amp; Books.
System 0.3.1 is out ClojureScript 1.9.198 is&#xA0;out&#xA0;with&#xA0;support for renames&#xA0;in the ns form from&#xA0;Ant&#xF3;nio N. Monteiro Transforming data with ClojureScript&#xA0;a book about &amp;hellip; well you get the idea.</description>
      <content:encoded><![CDATA[<p><strong>Articles.</strong></p>
<ul>
<li><a href="https://wickstrom.tech/programming/2016/08/07/generating-sight-reading-exercises-using-constraint-logic-programming-in-clojure-part-1.html">Generating Sight-Reading Exercises using Constraint Logic Programming in Clojure</a></li>
<li><a href="http://prog21.dadgum.com/221.html">Fun vs. Computer Science</a>, not strictly a Clojure article, but it talks about iterative development which is always relevant.</li>
<li><a href="http://www.flyingmachinestudios.com/programming/recursion/">Understanding recursion</a></li>
<li>More recursion with <a href="http://blog.klipse.tech//lambda/2016/08/07/almost-y-combinator-clojure.html">Y Combinators</a></li>
<li>More <a href="http://blog.klipse.tech//lambda/2016/08/07/pure-y-combinator-clojure.html">Y Combinators</a></li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li><a href="https://groups.google.com/forum/#!topic/clojure/Td4-b8gDL58">System 0.3.1 is out</a></li>
<li>ClojureScript 1.9.198 is <a href="https://groups.google.com/forum/#!topic/clojure/-uG5kDcSEIs">out</a> with <a href="https://anmonteiro.com/2016/08/clojurescript-require-now-supports-rename/">support for renames</a> in the ns form from <a href="https://twitter.com/anmonteiro90">António N. Monteiro</a></li>
<li><a href="http://langintro.com/icljs/">Transforming data with ClojureScript</a> a book about &hellip; well you get the idea.</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li><a href="http://frenchy64.github.io/2016/08/07/automatic-annotations.html">Automatic Annotations for Typed Clojure</a>, c.f. <a href="https://www.reddit.com/r/Clojure/comments/4wlsbl/introducing_automatic_annotations/">Reddit comments</a></li>
<li>An <a href="https://www.indiegogo.com/projects/typed-clojure-automatic-annotations--2#/">Indiegogo fundraiser</a> for Ambrose Bonaire-Sergeant to continue working on Typed Clojure</li>
<li><a href="https://github.com/arohner/spectrum">Spectrum</a> is a library from Allen Rohner, for doing static analysis of Clojure code, catching clojure.spec conform errors at compile time.</li>
<li>A spec screencast on <a href="http://blog.cognitect.com/blog/2016/8/10/clojure-spec-screencast-customizing-generators">Customising Generators</a> by Stuart Halloway</li>
<li><a href="http://blog.cognitect.com/blog/2016/8/9/focus-on-spec-predicates">Focus on spec: Predicates</a> by Alex Miller</li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li><a href="https://www.grey-panther.net/2016/08/benchmarking-the-cost-of-primitive-operations-on-the-jvm.html">Benchmarking the cost of primitive operations on the JVM</a></li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li><a href="http://acidwords.com/posts/2016-08-05-monroe-0-3-released.html">Monroe 0.3</a>, an Emacs nREPL client for Clojure has been released</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li>Video of a <a href="https://www.youtube.com/watch?v=RqHnxkU9TZE">Workshop</a> on <a href="https://github.com/tonsky/rum">Rum</a>, a ClojureScript React library</li>
<li><a href="http://www.multunus.com/blog/2016/02/noobs-walkthrough-re-frame-app/">Walkthrough of a re-frame app</a></li>
<li>Clojure Conj 2016 has been <a href="http://2016.clojure-conj.org/">announced</a> for December 1-3, in Austin, Texas</li>
<li><a href="https://www.reddit.com/r/Clojure/comments/4xejnj/why_do_all_libraries_have_a_core_package/?">Why do all libraries have a core package?</a></li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li>Kyle Kingsbury&rsquo;s <a href="https://github.com/aphyr/distsys-class">distributed systems lecture notes</a></li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>7: One million 4Clojure problems solved, the origins of complect, and some Clojure-Fu</title>
      <link>https://www.therepl.net/7/</link>
      <pubDate>Sat, 06 Aug 2016 01:15:32 +1300</pubDate>
      <guid>https://www.therepl.net/7/</guid>
      <description>Articles.
Klipse for Kids Macros for straightforward parallelism in Clojure, a thesis by David Zmick Clojure-Fu with juxt The Clojure Atom on re-frame Libraries &amp;amp; Books.
Gumshoe: Clojure debugging taken to extremes Bayadera:&#xA0;Bayesian Data Analysis and Machine Learning on the GPU&#xA0;and&#xA0;HN discussion People are worried about Types.&#xA0;?
Michael Nygard has a good article on&#xA0;The Perils of Semantic Coupling. It&amp;rsquo;s particularly relevant in light of people starting to model their domains with spec.</description>
      <content:encoded><![CDATA[<p><strong>Articles.</strong></p>
<ul>
<li><a href="http://kids.klipse.tech/">Klipse for Kids</a></li>
<li><a href="http://dpzmick.com/ugrad-thesis/paper.pdf">Macros for straightforward parallelism in Clojure</a>, a thesis by David Zmick</li>
<li><a href="http://blog.jenkster.com/2016/06/clojure-fu-with-juxt.html">Clojure-Fu with juxt</a></li>
<li><a href="http://us1.campaign-archive2.com/?u=60763b0c4890c24bd055f32e6&amp;id=0c428e5f19&amp;e=c6059c4a37">The Clojure Atom on re-frame</a></li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li><a href="https://github.com/datodev/gumshoe">Gumshoe: Clojure debugging taken to extremes</a></li>
<li><a href="https://github.com/uncomplicate/bayadera">Bayadera: Bayesian Data Analysis and Machine Learning on the GPU</a> and <a href="https://news.ycombinator.com/item?id=12193697">HN discussion</a></li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li>Michael Nygard has a good article on <a href="http://www.michaelnygard.com/blog/2015/04/the-perils-of-semantic-coupling/">The Perils of Semantic Coupling</a>. It&rsquo;s particularly relevant in light of people starting to model their domains with spec.</li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li>John Rose on <a href="http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2012-February/007177.html">premature optimizations</a></li>
<li><a href="http://psy-lob-saw.blogspot.co.nz/2016/07/fixing-co-in-cstress.html">Fixing Coordinated Omission in Cassandra Stress</a></li>
<li><a href="https://www.youtube.com/watch?v=QicNusGdz4g">From Concurrent to Parallel</a> by Brian Goetz</li>
<li><a href="http://openjdk.java.net/jeps/254">Compact Strings in Java 9</a></li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li><a href="https://groups.google.com/forum/#!topic/clojure/vyf5SfFA2ZM">Do you use any Clojars data feeds?</a></li>
<li><a href="https://github.com/binaryage/cljs-devtools/releases/tag/v0.8.0">cljs-devtools released version 0.8.0</a>. I 100% recommend using cljs-devtools if you&rsquo;re developing with ClojureScript.</li>
<li><a href="https://github.com/lshift/cloverage/issues/103">Cloverage project status</a>, looking for new maintainers</li>
<li><a href="https://zeroclarkthirty.com/2016-08-01-enjoy-scripting-clojure.html">Enjoy scripting with Clojure</a></li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li><a href="https://www.4clojure.com/">4Clojure</a> hits 1,000,000 problems solved</li>
<li><a href="https://groups.google.com/forum/#!topic/clojure/S244991COXg">EuroClojure call for presentations closes any minute now</a></li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li><a href="https://news.ycombinator.com/item?id=4177740">Rich Hickey on the origins of complect</a>, and his suggestion to use &lsquo;simplified&rsquo; instead of &lsquo;decomplect&rsquo;.</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>6: Delays, Promises, Onyx, California Cider</title>
      <link>https://www.therepl.net/6/</link>
      <pubDate>Sat, 30 Jul 2016 06:48:41 +1300</pubDate>
      <guid>https://www.therepl.net/6/</guid>
      <description>Articles.
A Future of Delays and Promises How Cognition uses Onyx Adam Tornhill on Code as a Crime Scene People are worried about Types.&#xA0;?
Clojure spec Screencast: Testing From plumatic&amp;rsquo;s schema to clojure.spec Parsing routes with clojure spec Foundations.
Two very extensive articles about the Java Memory Model by&#xA0;Aleksey Shipil&#x451;v.
Java Memory Model Pragmatics Close Encounters of The Java Memory Model Tools.
Cider 0.13 California is out Two new clojure emacs libraries:&#xA0;helm-cider, and&#xA0;cider-hydra Two years of Eve&#xA0;by Chris Granger of&#xA0;Light Table&#xA0;fame Learning.</description>
      <content:encoded><![CDATA[<p><strong>Articles.</strong></p>
<ul>
<li><a href="https://medium.com/tech-and-the-city/a-future-of-delays-and-promises-3ec843d44c9#.tpoh6rwle">A Future of Delays and Promises</a></li>
<li><a href="http://www.stuttaford.me/2016/01/15/how-cognician-uses-onyx/">How Cognition uses Onyx</a></li>
<li><a href="https://www.infoq.com/interviews/tornhill-static-analysis">Adam Tornhill on Code as a Crime Scene</a></li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li><a href="http://blog.cognitect.com/blog/2016/7/26/clojure-spec-screencast-testing">Clojure spec Screencast: Testing</a></li>
<li><a href="http://leeorengel.com/from-schema-to-spec/">From plumatic&rsquo;s schema to clojure.spec</a></li>
<li><a href="https://juxt.pro/blog/posts/parsing-routes-clojure-spec.html">Parsing routes with clojure spec</a></li>
</ul>
<p><strong>Foundations.</strong></p>
<p>Two very extensive articles about the Java Memory Model by Aleksey Shipilёv.</p>
<ul>
<li><a href="https://shipilev.net/blog/2014/jmm-pragmatics/">Java Memory Model Pragmatics</a></li>
<li><a href="https://shipilev.net/blog/2016/close-encounters-of-jmm-kind/">Close Encounters of The Java Memory Model</a></li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li><a href="https://github.com/clojure-emacs/cider/releases/tag/v0.13.0">Cider 0.13 California is out</a></li>
<li>Two new clojure emacs libraries: <a href="https://github.com/clojure-emacs/helm-cider">helm-cider</a>, and <a href="https://github.com/clojure-emacs/cider-hydra">cider-hydra</a></li>
<li><a href="http://www.chris-granger.com/2016/07/21/two-years-of-eve/">Two years of Eve</a> by Chris Granger of <a href="http://lighttable.com/">Light Table</a> fame</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li><a href="https://juxt.pro/blog/posts/the-fun-factor.html">The importance of fun in our work</a> - XT16, a Clojure conference by Juxt</li>
<li><a href="http://jr0cket.co.uk/2016/06/thinking-functional-with-clojure-at-devoxxuk-2016.html">Thinking Functional With Clojure workshop at DevoxxUK 2016</a></li>
<li><a href="http://www.lispcast.com/hirable-in-clojure">What do I have to learn to be hirable in Clojure?</a></li>
<li><a href="https://www.reddit.com/r/Clojure/comments/4uvcp4/just_got_my_first_clojure_job_any_tips_for/">Just got my first Clojure job! Any tips for someone using it in production for the first time?</a></li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li><a href="http://blog.klipse.tech//lambda/2016/07/24/lambda-calculus-1.html">Lambda Calculus 1</a> and <a href="http://blog.klipse.tech/lambda/2016/07/24/lambda-calculus-2.html">2</a> from Klipse, with their impressive inline bootstrapped ClojureScript compiler.</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>5: Emacs in space, Clojure is my moon.</title>
      <link>https://www.therepl.net/5/</link>
      <pubDate>Sat, 23 Jul 2016 16:21:44 +1300</pubDate>
      <guid>https://www.therepl.net/5/</guid>
      <description>Articles and Talks.
Emacs in space, but with a sci-fi novella in it. Clojure Is My Moon&#xA0;by&#xA0;Nola Stowe, who you can also thank for the&#xA0;new string functions&#xA0;in Clojure 1.8 David Nolen - How To Win Big With Old Ideas What Template Haskell gets wrong and Racket gets right&#xA0;(about macros) How To Rapidly Improve At Any Programming Language Libraries &amp;amp; Books.
Repetition Hunter one-time, One Time Passwords for 2FA From Onyx Template to Working App in Thirty Seconds Tongue, a&#xA0;do-it-yourself i18n library for Clojure and ClojureScript.</description>
      <content:encoded><![CDATA[<p><strong>Articles and Talks.</strong></p>
<ul>
<li><a href="http://technomancy.us/180">Emacs in space, but with a sci-fi novella in it</a>.</li>
<li><a href="http://www.clojuregeek.com/2016/07/16/clojure-is-my-moon/">Clojure Is My Moon</a> by <a href="https://twitter.com/clojuregeek">Nola Stowe</a>, who you can also thank for the <a href="http://dev.clojure.org/jira/browse/CLJ-1449">new string functions</a> in Clojure 1.8</li>
<li><a href="https://www.youtube.com/watch?v=JlgVSt-WWkA">David Nolen - How To Win Big With Old Ideas</a></li>
<li><a href="http://blog.ezyang.com/2016/07/what-template-haskell-gets-wrong-and-racket-gets-right/">What Template Haskell gets wrong and Racket gets right</a> (about macros)</li>
<li><a href="https://christopherdbui.com/improve-rapidly-at-any-programming-language/">How To Rapidly Improve At Any Programming Language</a></li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li><a href="https://github.com/mynomoto/repetition-hunter">Repetition Hunter</a></li>
<li><a href="https://github.com/suvash/one-time">one-time</a>, One Time Passwords for 2FA</li>
<li><a href="https://dataissexy.wordpress.com/2016/07/17/from-onyx-template-to-working-app-in-thirty-seconds-onyx-clojure/">From Onyx Template to Working App in Thirty Seconds</a></li>
<li><a href="https://github.com/tonsky/tongue">Tongue</a>, a do-it-yourself i18n library for Clojure and ClojureScript.</li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li><a href="https://groups.google.com/forum/#!topic/clojure/kLLvOdtPO_k">Clojure Spec, performance and workflows</a> discussion on Google Groups with a detailed response from Rich Hickey</li>
<li><a href="http://gigasquid.github.io/blog/2016/07/18/genetic-programming-with-clojure-dot-spec/">Genetic Programming With clojure.spec</a></li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li><a href="https://groups.google.com/forum/#!topic/mechanical-sympathy/fFpYX6FrSRs">How to get better at mechanical sympathy</a></li>
<li>An article about <a href="https://medium.com/@octskyward/graal-truffle-134d8f28fb69#.mld0u23gv">Graal &amp; Truffle</a>, a really exciting project with a bunch of great features for implementing languages with high performance on top of the JVM.</li>
<li><a href="http://blog.fogus.me/2016/07/19/linkage-002/">Fogus: Linkage 002</a></li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li><a href="https://medium.com/@fommil/open-letter-to-the-emacs-maintainers-226cb67a961f#.7tezdlqqi">Open Letter to the Emacs Maintainers</a></li>
<li>Bruce Hauman <a href="https://github.com/bhauman/lein-figwheel#tips-and-support">takes donations</a> to help fund Figwheel and Devcards, two indispensable tools in the CLJS community. I&rsquo;ve donated, I&rsquo;d encourage you to do so as well if you find it useful.</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li><a href="http://www.clojurenewbieguide.com/">A Clojure Newbie Guide</a></li>
<li><a href="http://elementsofclojure.com/">Elements of Clojure</a>, a book by macrologist Dr Zachary Tellman is in preview.</li>
<li><a href="https://pragprog.com/book/dswdcloj2/web-development-with-clojure-second-edition">Web Development with Clojure, Second Edition</a> is out. <a href="https://www.reddit.com/r/Clojure/comments/4tmyi3/web_development_with_clojure_is_finally_out/">Reddit</a>.</li>
<li><a href="http://stackoverflow.com/documentation/clojurescript">Stack Overflow documentation for ClojureScript</a> and <a href="http://stackoverflow.com/documentation/clojure">Clojure</a>. <a href="https://www.reddit.com/r/Clojure/comments/4u1i8g/stackoverflow_documentation_should_we_really_use/">Should we use it though</a>?</li>
<li><a href="https://lambdaisland.com/episodes/reagent-3-keys-lifecycle-methods">Reagent: Keys and lifecycle methods</a> by Lambda Island</li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li>re-frame <a href="https://github.com/Day8/re-frame/pull/185">has a new logo</a> thanks to <a href="https://twitter.com/martinklepsch">Martin Klepsch</a></li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>4: Cursive and Light Table have a baby, Scala gets slower, byte handling gets faster</title>
      <link>https://www.therepl.net/4/</link>
      <pubDate>Sat, 16 Jul 2016 09:56:45 +1300</pubDate>
      <guid>https://www.therepl.net/4/</guid>
      <description>Intro.
Welcome to another week of The REPL. If you have any links you&amp;rsquo;d like me to share, please send them through.&#xA0;Onward!
Articles.
LVH&#xA0;on&#xA0;Crypto APIs and JVM byte types James Reeves&#xA0;explaining&#xA0;the&#xA0;Async Ring proposal A&#xA0;34 line code change&#xA0;in the Scala compiler caused a&#xA0;20% performance decrease. This was a reminder to me of the benefits of&#xA0;Clojure&amp;rsquo;s conservative development and the importance of profiling.</description>
      <content:encoded><![CDATA[<p><strong>Intro.</strong></p>
<p>Welcome to another week of The REPL. If you have any links you&rsquo;d like me to share, please send them through. Onward!</p>
<p><strong>Articles.</strong></p>
<ul>
<li><a href="https://twitter.com/lvh">LVH</a> on <a href="https://developer.rackspace.com/blog/crypto-apis-and-jvm-byte-types/">Crypto APIs and JVM byte types</a></li>
<li><a href="https://twitter.com/weavejester/">James Reeves</a> explaining the <a href="https://www.booleanknot.com/blog/2016/07/15/asynchronous-ring.html">Async Ring proposal</a></li>
<li>A <a href="https://github.com/scala/scala/commit/33e7106#diff-8b2a191e6261b31a9a6462e4a01d3b9cR276">34 line code change</a> in the Scala compiler caused a <a href="http://www.scala-lang.org/blog/2016/07/08/trait-method-performance.html">20% performance decrease</a>. This was a reminder to me of the benefits of Clojure&rsquo;s conservative development and the importance of profiling.</li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li>Which leads me to <a href="https://groups.google.com/forum/#!topic/clojure/YPz48F_oHjs">Tufte</a>, a simple profiling and performance monitoring for Clojure/Script</li>
<li><a href="https://nervous.io/clojure/aws/dynamo/hildebrand/2015/06/01/hildebrand/">I have spent much of my time as a computer programmer scraping blind in the dust. Now I recline, keenly sighted, on furniture of criminal opulence.</a></li>
</ul>
<p><strong>People are worried about Types. <a href="https://danielcompton.net/2016/07/11/people-are-worried-about-types">?</a></strong></p>
<ul>
<li><a href="https://www.youtube.com/watch?v=nqY4nUMfus8">Clojure spec Screencast: Leverage</a></li>
<li>The <a href="https://clojure.org/guides/spec">Clojure spec guide</a> has been updated</li>
<li>Another week, <a href="https://groups.google.com/forum/#!topic/clojure/MrwAx8DCjK8">another alpha</a></li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li><a href="http://jcdav.is/2016/07/11/JVM-allocation-secrets/">Allocation on the JVM: Down the rabbit hole</a></li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li><a href="https://groups.google.com/forum/#!topic/clojure/NJEA5btDMGU">AWW HELL YEAH, GONNA BE LIKE LIGHT TABLE HAD A BABY WITH CURSIVE, HAHAAAAAA!</a></li>
<li><a href="https://cursive-ide.com/archive/2073.html">Cursive 1.3.0 released</a></li>
<li><a href="https://meet.halik.io/">Halik</a>, the time travelling debugger, now with experimental <a href="https://preview.halik.io/docs/recording.html#clojure-support">Clojure support</a> </li>
<li><a href="https://github.com/weavejester/eftest">eftest</a>, a fast and pretty Clojure test runner</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li>Call for Speakers: <a href="http://jr0cket.co.uk/2016/07/Call-for-Speakers-London-Clojurian-conference-2016.html">London Clojurian Conference</a></li>
<li><a href="https://clojure.news/">Clojure News</a>: A Hacker News clone</li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li>Kyle Kingsbury <a href="https://aphyr.com/posts/331-jepsen-voltdb-6-3">uncovers problems</a> with VoltDB 6.3, nice to see they were able to fix them in 6.4</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>3: Odin, Onyx, and more Clojure alphas</title>
      <link>https://www.therepl.net/3/</link>
      <pubDate>Sat, 09 Jul 2016 06:00:47 +1300</pubDate>
      <guid>https://www.therepl.net/3/</guid>
      <description>Intro.
When I started writing this a few weeks ago, I worried that there wouldn&amp;rsquo;t be enough to fill up a whole newsletter. But there&amp;rsquo;s so much going on at the moment in&#xA0;Clojure that I needn&amp;rsquo;t have worried.
Articles.
Hello World for the Next Generation&#xA0;by Carin Meier, a touching piece on the power of code. Edge: A complete Clojure project you can leap from&#xA0;with autoloading cljs, Component integration, and boot setup.</description>
      <content:encoded><![CDATA[<p><strong>Intro.</strong></p>
<p>When I started writing this a few weeks ago, I worried that there wouldn&rsquo;t be enough to fill up a whole newsletter. But there&rsquo;s so much going on at the moment in Clojure that I needn&rsquo;t have worried.</p>
<p><strong>Articles.</strong></p>
<ul>
<li><a href="http://gigasquidsoftware.com/blog/2016/07/03/hello-world/">Hello World for the Next Generation</a> by Carin Meier, a touching piece on the power of code.</li>
<li><a href="https://juxt.pro/blog/posts/edge.html">Edge: A complete Clojure project you can leap from</a> with autoloading cljs, Component integration, and boot setup. Edge uses Yada. Here&rsquo;s an <a href="https://github.com/juxt/edge/blob/b64c26325fc7b28eba2733f34ca9d95a446f50cc/src/edge/phonebook.clj#L29-L57">example resource definition</a> for those curious about Yada.</li>
<li><a href="http://www.onyxplatform.org/jekyll/update/2016/07/06/Onyx-0.9.7-Refactoring.html">Onyx 0.9.7: How We Handle High Risk Design Changes</a>. A high level look at how the Onyx team used test.check and Jepsen to shake out bugs while doing a major refactor.</li>
<li>thi.ng show us how to use <a href="https://medium.com/@thi.ng/clojurescript-webworkers-webgl-6c2f3c717d9e#.et3qctfzp">ClojureScript, WebWorkers, and WebGL</a></li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li>The <a href="https://groups.google.com/forum/#!topic/clojure/M-zC83YJl10">Clojure alphas</a> will continue until m̶o̶r̶a̶l̶e̶ spec improves. Just kidding of course, spec is coming along well.</li>
<li><a href="https://twitter.com/weavejester/status/751065942424190981">Ring 1.6.0 beta 2</a> was released this week with async handlers support. More discussion <a href="https://www.reddit.com/r/Clojure/comments/4rp3ei/ring_160beta2_released_with_support_for_async/">on Reddit</a>.</li>
<li><a href="https://github.com/Engelberg/better-cond">bette</a><a href="https://github.com/Engelberg/better-cond">r-cond</a>, a version of cond that supports :let and :when-let clauses</li>
<li><a href="https://github.com/jstepien/mutant">Mutant</a>: <a href="https://en.wikipedia.org/wiki/Mutation_testing">mutation testing</a> for Clojure</li>
<li><a href="https://github.com/missingfaktor/akar">Akar</a>, first class patterns for pattern matching with an extensive <a href="https://github.com/missingfaktor/akar/blob/master/TUTORIAL.md">tutorial</a> and <a href="https://github.com/missingfaktor/akar/blob/master/FAQs.md">FAQ</a></li>
<li>Arachne&rsquo;s <a href="http://arachne-framework.org/posts/2016/retro-and-risk-assessment/">retrospective and risk assessment</a>.</li>
</ul>
<p><strong>People are worried about Types.</strong></p>
<ul>
<li><a href="https://github.com/eriksvedang/Carp">Carp</a>, a statically typed lisp without GC, modelled on Clojure.</li>
<li><a href="https://gist.github.com/killme2008/b3e3fe85b164ebde4c61b050be2c77f4">Method missing patch for Clojure</a></li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li><a href="http://www.lbatalha.com/blog/feynman-on-fermats-last-theorem">Feynman on Fermat&rsquo;s Last Theorem</a></li>
<li><a href="https://groups.google.com/forum/#!msg/mechanical-sympathy/T0pNhJSkZWQ/zHDubWKUBwAJ">Making sense of Memory Barriers</a></li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li><a href="http://blog.fikesfarm.com/posts/2016-07-03-clojurescript-clojure-namespace-aliasing.html">ClojureScript namespace aliasing</a> will make it a lot cleaner to write cross platform code using libraries like core.async and spec.</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li>Timothy Baldridge <a href="https://www.youtube.com/watch?v=JyKySmcTR4g">builds Odin</a>, a DSL for logic programming in Clojure</li>
<li><a href="https://ti.to/cognitect/euroclojure-2016">Tickets</a> are on sale now for EuroClojure 2016</li>
<li>The first issue of <a href="http://us1.campaign-archive2.com/?u=60763b0c4890c24bd055f32e6&amp;id=d0ad878a20">The Clojure Atom</a> by Brave Clojure</li>
<li><a href="https://www.youtube.com/watch?v=mvNN0SMMZDQ&amp;feature=youtu.be">Afterglow: Live Coding for Light Shows</a> by James Elliott</li>
<li><a href="http://www.lispcast.com/ultimate-guide-to-learning-clojure-for-free">The Ultimate Guide to Learning Clojure for Free</a></li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li><a href="https://www.youtube.com/watch?v=8uHfMltTbqs">Expert to Expert: Erik Meijer and Rich Hickey</a></li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>2: What is symbolic computation? Let your applications die hard, Async ring.</title>
      <link>https://www.therepl.net/2/</link>
      <pubDate>Sat, 02 Jul 2016 10:24:48 +1300</pubDate>
      <guid>https://www.therepl.net/2/</guid>
      <description>Intro.
The biggest Clojure news this week was the&#xA0;release of Clojure 1.9.0-alpha8. We&amp;rsquo;re starting to investigate spec at work, and things are looking good so far. When I first saw spec, it made some choices that I thought were &amp;ldquo;wrong&amp;rdquo;. I&amp;rsquo;ve come around on those in the last few weeks as I&amp;rsquo;ve seen how they could have prevented some issues we had when using schema. Turns out Rich knows what he&amp;rsquo;s doing &#x1F604;.</description>
      <content:encoded><![CDATA[<p><strong>Intro.</strong></p>
<p>The biggest Clojure news this week was the <a href="https://groups.google.com/forum/#!msg/clojure/vF3RuDWuX8I/pvn4IUuUAwAJ">release of Clojure 1.9.0-alpha8</a>. We&rsquo;re starting to investigate spec at work, and things are looking good so far. When I first saw spec, it made some choices that I thought were &ldquo;wrong&rdquo;. I&rsquo;ve come around on those in the last few weeks as I&rsquo;ve seen how they could have prevented some issues we had when using schema. Turns out Rich knows what he&rsquo;s doing 😄.</p>
<p><strong>Articles.</strong></p>
<ul>
<li><a href="http://stevelosh.com/blog/2016/06/symbolic-computation/">What the Hell is Symbolic Computation?</a> by Steve Losh. This gets down into the nitty gritty of how a Lisp REPLs, and how quoting and symbols work. I found this really interesting.</li>
</ul>
<p><strong>Discussions.</strong></p>
<ul>
<li><a href="https://groups.google.com/d/msg/ring-clojure/abUvJM9v6Xc/9nLWkpHRCQAJ">Proposal: Asynchronous Ring</a>, <a href="https://groups.google.com/forum/#!search/ring$20cps/ring-clojure/58CkHMiJZtg/53BUYgbZCQAJ">State of Ring CPS</a>, and the <a href="https://www.reddit.com/r/Clojure/comments/4q4wks/feedback_wanted_on_ring_cps_design/">Reddit discussion</a> are all worth reading if you&rsquo;re interested in asynchronous Ring. Paul deGrandis in particular had some really good perspective on how Pedestal Interceptors work, and the benefits of the Pedestal approach.</li>
<li>Colin Fleming&rsquo;s comments around nil handling on the <a href="https://www.reddit.com/r/Clojure/comments/4qbtqo/how_many_of_javas_horrors_are_addressed_by_clojure/">Reddit discussion</a> for <a href="https://www.quora.com/How-many-of-Javas-horrors-are-addressed-by-Clojure">How many of Java&rsquo;s horrors are addressed by Clojure?</a></li>
</ul>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li><a href="https://github.com/sunng87/diehard/">diehard</a> is a Clojure wrapper over <a href="https://github.com/jhalterman/failsafe">Failsafe</a>. It&rsquo;s designed for handling failures and retrying in your programs. Apart from what it does, I just like the name.</li>
<li>Immutant 2.1.5 was <a href="http://immutant.org/news/2016/06/27/announcing-2-1-5/">released</a>, with same day support for the newly released <a href="https://www.redhat.com/en/about/press-releases/red-hat-delivers-jboss-eap-7-foundation-hybrid-cloud-applications">JBoss EAP 7</a>.</li>
<li><a href="http://arachne-framework.org/posts/2016/update-and-schedule/">Arachne development update and schedule</a></li>
<li>Nikita Prokopov has backported spec to Clojure 1.8 in <a href="https://github.com/tonsky/clojure-future-spec">clojure-future-spec</a>.</li>
</ul>
<p><strong>People are worried about Types.</strong></p>
<ul>
<li>Bruce Hauman has valiantly created a <a href="https://gist.github.com/bhauman/2dca87815dfd92b3ff596bdc1e56c964">1,000 line spec for ClojureScript compiler options</a> which including validation for complex co-dependencies.</li>
<li><a href="http://blog.jenkster.com/2016/06/how-elm-slays-a-ui-antipattern.html">How Elm Slays a UI Antipattern</a> from the always excellent Kris Jenkins.</li>
<li><a href="http://blog.altometrics.com/2016/06/property-based-testing-with-clojure-and-datomic-part-1/">Property-Based Testing with Clojure and Datomic</a>, <a href="http://blog.altometrics.com/2016/06/property-based-testing-with-clojure-and-datomic-part-2/">part 2</a></li>
<li><a href="http://www.lispcast.com/clojure.spec-vs-schema">5 Differences between clojure.spec and Schema</a></li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li><a href="http://psy-lob-saw.blogspot.co.nz/2013/05/know-thy-java-object-memory-layout.html">Know thy Java Object Memory Layout</a></li>
<li><a href="https://blog.acolyer.org/2016/06/24/transactional-data-structure-libraries/">Transactional data structure libraries</a></li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li>Tim Baldridge has moved his excellent series of Clojure videos from Pivotshare to <a href="https://www.youtube.com/channel/UC6yONKYeoE2P3bsahDtsimg">Youtube</a>. Some are free, and some are paid. They&rsquo;re all well worth watching for expert level insight into core.async, transducers and other advanced Clojure topics. <strong>2019 Update</strong>: This has <a href="https://www.youtube.com/watch?v=Nx1v-H_00pA">moved</a> back to <a href="https://tbaldridge.pivotshare.com">Pivotshare</a> due to Youtube shutting down paid channels.</li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li>Kyle Kingsbury <a href="https://aphyr.com/posts/332-jepsen-crate-0-54-9-version-divergence">breaks</a><a href="https://aphyr.com/posts/332-jepsen-crate-0-54-9-version-divergence"> a database</a><a href="https://aphyr.com/posts/332-jepsen-crate-0-54-9-version-divergence"> based on Elasticsearch</a>, news at 11.</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>1: Alan Kay vs Rich Hickey, Static vs Dynamic, The Great Startup Problem</title>
      <link>https://www.therepl.net/1/</link>
      <pubDate>Sat, 25 Jun 2016 13:09:51 +1300</pubDate>
      <guid>https://www.therepl.net/1/</guid>
      <description>Intro.
Welcome to the first issue of The REPL. The REPL will cover what&amp;rsquo;s happened in the Clojure world recently, relevant links from slightly wider afield, and some older things that are still great.
Libraries &amp;amp; Books.
Professional Clojure: The Book&#xA0;was released recently. Michael Gaare&#xA0;talked about&#xA0;the section he wrote on Datomic. One of the limitations of cljc compared to cljx was that cljc wasn&amp;rsquo;t backwards compatible with older version of Clojure.</description>
      <content:encoded><![CDATA[<p><strong>Intro.</strong></p>
<p>Welcome to the first issue of The REPL. The REPL will cover what&rsquo;s happened in the Clojure world recently, relevant links from slightly wider afield, and some older things that are still great.</p>
<p><strong>Libraries &amp; Books.</strong></p>
<ul>
<li><a href="https://www.amazon.com/Professional-Clojure-Jeremy-Anderson/dp/1119267277?ie=UTF8&amp;*Version*=1&amp;*entries*=0">Professional Clojure: The Book</a> was released recently. Michael Gaare <a href="http://engineering.theladders.com/2016/06/21/professional-clojure-book/">talked about</a> the section he wrote on Datomic.</li>
<li>One of the limitations of cljc compared to cljx was that cljc wasn&rsquo;t backwards compatible with older version of Clojure. Alex Engelberg&rsquo;s <a href="https://github.com/aengelberg/cljsee">cljsee</a> lets you preprocess cljc files into platform specific clj and cljs files.</li>
</ul>
<p><strong>People are worried about Types.</strong></p>
<p>This section is inspired by <a href="http://www.bloomberg.com/view/contributors/ARbTQlRLRjE/matthew-s-levine">Matt Levine&rsquo;s</a> ongoing sections on <a href="http://www.bloomberg.com/view/articles/2016-06-24/brexit-stress-and-video-interviews">&ldquo;People are worried about bond market liquidity&rdquo;</a> </p>
<ul>
<li><a href="http://www.craigstuntz.com/posts/2016-06-18-static-vs-dynamic-wrong-question.html">&ldquo;Static vs. Dynamic&rdquo; is the wrong question</a>.</li>
<li><a href="http://muhuk.github.io/validation-benchmark/">Validation Benchmark</a> shows Truss way out in front, Schema close behind, and Annotate, Herbert, and Spec are much slower. I&rsquo;m not 100% sure that these results are accurate, so do your own due diligence.</li>
</ul>
<p><strong>Articles.</strong></p>
<ul>
<li>Malcolm Sparks talks about <a href="https://juxt.pro/blog/posts/yada-2.html">Concerns with Ring</a> and compares and contrasts it with <a href="https://yada.juxt.pro/">Yada</a>. Yada was interesting to me before, but this article gave some more tangible reasons for why I might want to consider it. There was some <a href="https://www.reddit.com/r/Clojure/comments/4pb0la/concerns_with_ring/">good discussion</a> on Reddit (!) about this, with James Reeves giving his perspective as a core author/maintainer of the Ring ecosystem.</li>
</ul>
<p><strong>Foundations.</strong></p>
<ul>
<li><a href="http://mail.openjdk.java.net/pipermail/mlvm-dev/2014-August/005890.html">The Great Startup Problem</a>, a mailing list post by JVM Architect John Rose about Invokedynamic, JVM startup, and JVM warmup. Very technical, but worth reading even if you don&rsquo;t understand all of it. H/t to Ghadi Shayban for the link.</li>
<li>Heroku&rsquo;s <a href="https://devcenter.heroku.com/articles/java-memory-issues">T</a><a href="https://devcenter.heroku.com/articles/java-memory-issues">roubleshooting</a><a href="https://devcenter.heroku.com/articles/java-memory-issues"> Memory Issues in Java Applications</a> is a good intro to profiling Java memory issues, even if you&rsquo;re not running on Heroku.</li>
</ul>
<p><strong>Tools.</strong></p>
<ul>
<li><a href="https://twitter.com/mfikes/status/744331074969427969">Instant Clojure REPL startup</a> (with some sneaky tricks).</li>
<li>Planck, a ClojureScript REPL now <a href="https://github.com/mfikes/planck#planck-20-alpha">runs on Linux</a>.</li>
<li><a href="http://seancorfield.github.io/blog/2016/06/17/more-boot/">More Boot</a></li>
<li>The defn podcast takes a <a href="https://defn.audio/2016/06/13/defn-episode-03-tour-of-the-repls/">Tour of the REPLs</a> with Mike Fikes</li>
</ul>
<p><strong>Learning.</strong></p>
<ul>
<li>Daniel Higginbotham (of <a href="http://www.braveclojure.com/clojure-for-the-brave-and-true/">Clojure for the Brave and True</a>) has started offering <a href="http://www.braveclojure.com/training/">on-site training</a>, and published his <a href="https://github.com/braveclojure/training">training materials</a>.</li>
<li>Jonathan Graham is offering a (presumably free?) <a href="https://attendee.gotowebinar.com/register/7591641081299503617?Source=CWG">webinar</a> about understanding how core Clojure functions work. More info <a href="https://groups.google.com/forum/#!topic/clojure/UKkrXr08EYw">here</a>.</li>
</ul>
<p><strong>Misc.</strong></p>
<ul>
<li>Don&rsquo;t miss Alan Kay and Rich Hickey on Hacker News. <a href="https://news.ycombinator.com/item?id=11941656">&lsquo;What if &ldquo;data&rdquo; is a really bad idea?&rsquo;</a></li>
</ul>
]]></content:encoded>
    </item>
  </channel>
</rss>
