<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss xmlns:source="http://source.scripting.com/" version="2.0">
  <channel>
    <title>Oliver Mooney</title>
    <link>https://olivermooney.com/</link>
    <description></description>
    
    <language>en</language>
    
    <lastBuildDate>Fri, 25 Oct 2019 23:24:42 +0100</lastBuildDate>
    <item>
      <title></title>
      <link>https://olivermooney.com/2022/04/03/i-loved-this.html</link>
      <pubDate>Sun, 03 Apr 2022 12:42:17 +0100</pubDate>
      
      <guid>http://OliverM.micro.blog/2022/04/03/i-loved-this.html</guid>
      <description>&lt;p&gt;I loved this article about &lt;a href=&#34;https://spectrum.ieee.org/commodore-64&#34;&gt;the Commodore 64&amp;rsquo;s genesis&lt;/a&gt;. We thought we were so smart as kids coming up with ways to &amp;lsquo;beat&amp;rsquo; the C64&amp;rsquo;s 8-sprite hardware limitation using software interrupts, little realising it&amp;rsquo;s how the machine&amp;rsquo;s designers meant you to do it!&lt;/p&gt;
</description>
      <source:markdown>I loved this article about [the Commodore 64&#39;s genesis](https://spectrum.ieee.org/commodore-64). We thought we were so smart as kids coming up with ways to &#39;beat&#39; the C64&#39;s 8-sprite hardware limitation using software interrupts, little realising it&#39;s how the machine&#39;s designers meant you to do it!
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://olivermooney.com/2021/07/31/another-yt-video.html</link>
      <pubDate>Sat, 31 Jul 2021 11:40:43 +0100</pubDate>
      
      <guid>http://OliverM.micro.blog/2021/07/31/another-yt-video.html</guid>
      <description>&lt;p&gt;Another YT video showing how expert programmers work: &lt;a href=&#34;https://www.youtube.com/watch?v=gcUWTa16Jc0&#34;&gt;Aaron Hsu shows how he works with APL to develop the codfns compiler&lt;/a&gt;. There are so many tidbits about working style, the impact of code density on comprehension and the ability to make changes, and much more.&lt;/p&gt;
</description>
      <source:markdown>Another YT video showing how expert programmers work: [Aaron Hsu shows how he works with APL to develop the codfns compiler](https://www.youtube.com/watch?v=gcUWTa16Jc0). There are so many tidbits about working style, the impact of code density on comprehension and the ability to make changes, and much more.
</source:markdown>
    </item>
    
    <item>
      <title>Bridging the array programming language conceptual gap</title>
      <link>https://olivermooney.com/2021/07/29/bridging-the-array.html</link>
      <pubDate>Thu, 29 Jul 2021 09:24:13 +0100</pubDate>
      
      <guid>http://OliverM.micro.blog/2021/07/29/bridging-the-array.html</guid>
      <description>&lt;p&gt;Array programming languages are so &lt;em&gt;strange&lt;/em&gt; if you&amp;rsquo;re used to more traditional programming schools (procedural, object-oriented, or functional). Aaron Hsu is both a well-known professional APL programmer and a researcher into programming language education, and he helps cross the barrier with this &lt;a href=&#34;https://www.youtube.com/watch?v=Gsj_7tFtODk&#34;&gt;great talk he co-presented with Dhaval Dalal and Morten Kromberg at 2018&amp;rsquo;s FnConf&lt;/a&gt;. It&amp;rsquo;s a long watch, almost 90 minutes, but the key bridging of concepts is presented in the first few minutes. I&amp;rsquo;ll try to reproduce it in text below, mainly for my own benefit.&lt;/p&gt;

&lt;p&gt;Functional programming languages use abstract data types, first-class functions, and abstractions built on the composition of those parts, whereas array programming types use the array data type, a rich set of language primitives, and directness rather than abstraction (so you&amp;rsquo;ll resist abstraction in favour of direct composition of arrays and the rich set of array manipulation tools given to you).&lt;/p&gt;

&lt;p&gt;It&amp;rsquo;s hard to over-emphasise what &amp;ldquo;rich&amp;rdquo; above means. Long-standing programmers might argue that Ruby has a rich standard library, for example, and it does compared to something like C. But APL and it&amp;rsquo;s ilk give you primitives as powerful as those what Numpy or Pandas give Python programmers for data manipulation, but as built-in primitives rather than the parallel world you often have to use Numpy/Pandas code in (i.e. you&amp;rsquo;ve to use the data types Numpy gives you, not Python&amp;rsquo;s native data structures).&lt;/p&gt;

&lt;p&gt;The talk goes over it so much better than I&amp;rsquo;m trying to express here 😅. You can compare implementations between programming schools (using javascript, haskell, and scala on the one hand, and APL on the other) in &lt;a href=&#34;https://github.com/DhavalDalal/APL-For-FP-Programmers&#34;&gt;the repo that accompanies the talk&lt;/a&gt;.&lt;/p&gt;
</description>
      <source:markdown>Array programming languages are so _strange_ if you&#39;re used to more traditional programming schools (procedural, object-oriented, or functional). Aaron Hsu is both a well-known professional APL programmer and a researcher into programming language education, and he helps cross the barrier with this [great talk he co-presented with Dhaval Dalal and Morten Kromberg at 2018&#39;s FnConf](https://www.youtube.com/watch?v=Gsj_7tFtODk). It&#39;s a long watch, almost 90 minutes, but the key bridging of concepts is presented in the first few minutes. I&#39;ll try to reproduce it in text below, mainly for my own benefit.

Functional programming languages use abstract data types, first-class functions, and abstractions built on the composition of those parts, whereas array programming types use the array data type, a rich set of language primitives, and directness rather than abstraction (so you&#39;ll resist abstraction in favour of direct composition of arrays and the rich set of array manipulation tools given to you).

It&#39;s hard to over-emphasise what &#34;rich&#34; above means. Long-standing programmers might argue that Ruby has a rich standard library, for example, and it does compared to something like C. But APL and it&#39;s ilk give you primitives as powerful as those what Numpy or Pandas give Python programmers for data manipulation, but as built-in primitives rather than the parallel world you often have to use Numpy/Pandas code in (i.e. you&#39;ve to use the data types Numpy gives you, not Python&#39;s native data structures).

The talk goes over it so much better than I&#39;m trying to express here 😅. You can compare implementations between programming schools (using javascript, haskell, and scala on the one hand, and APL on the other) in [the repo that accompanies the talk](https://github.com/DhavalDalal/APL-For-FP-Programmers).
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://olivermooney.com/2021/07/27/nikita-prokopov-uploaded.html</link>
      <pubDate>Tue, 27 Jul 2021 16:12:17 +0100</pubDate>
      
      <guid>http://OliverM.micro.blog/2021/07/27/nikita-prokopov-uploaded.html</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://tonsky.me&#34;&gt;Nikita Prokopov&lt;/a&gt; uploaded a &lt;a href=&#34;https://www.youtube.com/watch?v=KES-lKTq-3M&#34;&gt;coding session video&lt;/a&gt; where he codes a version of Snake using Clojure and Skija in about 3 hours. You pick up so much incidental stuff watching experienced programmers work like this! (It&amp;rsquo;s long, but totally watchable at 1.5x speed). &lt;a href=&#34;https://github.com/JetBrains/skija/tree/master/examples/clojure-snake&#34;&gt;Here&amp;rsquo;s the code&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://OliverM.micro.blog/uploads/2021/4d8b3f25da.jpg&#34; width=&#34;600&#34; height=&#34;476&#34; alt=&#34;&#34; /&gt;&lt;/p&gt;
</description>
      <source:markdown>[Nikita Prokopov](https://tonsky.me) uploaded a [coding session video](https://www.youtube.com/watch?v=KES-lKTq-3M) where he codes a version of Snake using Clojure and Skija in about 3 hours. You pick up so much incidental stuff watching experienced programmers work like this! (It&#39;s long, but totally watchable at 1.5x speed). [Here&#39;s the code](https://github.com/JetBrains/skija/tree/master/examples/clojure-snake).

&lt;img src=&#34;https://OliverM.micro.blog/uploads/2021/4d8b3f25da.jpg&#34; width=&#34;600&#34; height=&#34;476&#34; alt=&#34;&#34; /&gt;
</source:markdown>
    </item>
    
    <item>
      <title>Drawing libraries I have known and... well, not always loved</title>
      <link>https://olivermooney.com/2021/07/24/drawing-libraries-i.html</link>
      <pubDate>Sat, 24 Jul 2021 18:45:44 +0100</pubDate>
      
      <guid>http://OliverM.micro.blog/2021/07/24/drawing-libraries-i.html</guid>
      <description>&lt;p&gt;There are two main schools of javascript drawing APIs: those that let you paint shapes onto a canvas that are merged into a single image (normally targeting a web canvas or similar surface), and those that remember the individual shapes and let you interact with them after they&amp;rsquo;re drawn (normally targeting surfaces like SVG, or perhaps WebGL). Generally speaking they follow what the drawing surface they target supports, though in some cases you will find libraries that try to extend one target with the capabilities of the other.&lt;/p&gt;

&lt;p&gt;The library I&amp;rsquo;ve probably used most extensively is Mike Bostock&amp;rsquo;s &lt;a href=&#34;https://d3js.org/&#34;&gt;D3.js&lt;/a&gt;, the data visualisation lib that targets SVG, though it has support for canvas as well. It was a key component of the &lt;a href=&#34;https://getbulb.com&#34;&gt;GetBulb&lt;/a&gt; startup I worked on for a few years. It&amp;rsquo;s a great library: mature, full-featured, and easily composable with other libraries (like &lt;a href=&#34;https://reactjs.org/&#34;&gt;React&lt;/a&gt;). It was developed while Mike worked as part of the NYTimes&amp;rsquo;s data visualisation team, so you&amp;rsquo;ve probably seen it in action on some of their excellent data visualisation reports.&lt;/p&gt;

&lt;p&gt;Recently some users have complained that it&amp;rsquo;s been too oriented towards &lt;a href=&#34;http://observablehq.com&#34;&gt;Observable&lt;/a&gt;, Mike Bostock&amp;rsquo;s live visualisation editor/platform hybrid. But the previous versions are still available, and the latter complaints smack of overly self-interested users with their own expectations but no desire to pitch in on a fork that scratches their particular itch.&lt;/p&gt;

&lt;p&gt;I&amp;rsquo;ve also used &lt;a href=&#34;http://processing.org&#34;&gt;Processing&lt;/a&gt;, mainly via its Clojure wrapper, &lt;a href=&#34;https://github.com/quil/quil&#34;&gt;Quil&lt;/a&gt;. It&amp;rsquo;s also &lt;em&gt;very&lt;/em&gt; full-featured and mature. It has an online analogue, &lt;a href=&#34;https://p5js.org&#34;&gt;p5.js&lt;/a&gt;, that you can use instead of the original java-hosted version, that seems to largely have parity with the original. I wrapped some processing examples from the &lt;a href=&#34;http://www.generative-gestaltung.de/1/&#34;&gt;Generative Design&lt;/a&gt; book &lt;a href=&#34;https://github.com/OliverM/colloquial&#34;&gt;using Quil a few years ago&lt;/a&gt;. There&amp;rsquo;s a &lt;a href=&#34;http://www.generative-gestaltung.de/2/&#34;&gt;newer version of the Generative Design book for p5.js&lt;/a&gt; which I&amp;rsquo;ve still to dig into but looks every bit as good as the first. The companion machine learning library, &lt;a href=&#34;https://ml5js.org&#34;&gt;ml5&lt;/a&gt;, is also worth checking out.&lt;/p&gt;

&lt;p&gt;Other libraries that I&amp;rsquo;ve used, though not as extensively as Processing or D3 include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://thi.ng&#34;&gt;thi.ng&lt;/a&gt; is &lt;em&gt;extraordinary&lt;/em&gt;. Karsten Schmidt is a phenomenally productive coder and visualisation artist. He&amp;rsquo;s written far more lines of Clojure &amp;amp; Clojurescript than I could ever hope too as part of his data visualisation libraries - and then for good measure &lt;a href=&#34;https://github.com/thi-ng/umbrella/&#34;&gt;ported them all to Typescript&lt;/a&gt; while &lt;em&gt;still&lt;/em&gt; expanding their functionality. They&amp;rsquo;re a bit harder to get into due to their breadth and the docs assuming a higher level of competence than a typical introductory guide. But the scope and quality of these libraries is breath-taking. A magnum opus. I attended one of his workshops in London about 5 years ago and I recommend them whole-heartedly to anyone.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://ptsjs.org&#34;&gt;Pts&lt;/a&gt;, which I really like, largely because of its rational attempt to organise its API around &amp;ldquo;abstractions of Space, Form, and Point&amp;rdquo;. Space is equivalent to a drawing surface, Form to a pen or other means of making marks, and Point to the data representation of your visual idea. The &lt;a href=&#34;https://ptsjs.org/guide/get-started-0100&#34;&gt;documentation&lt;/a&gt; is excellent too. William Ngan, it&amp;rsquo;s author, has a good &lt;a href=&#34;https://medium.com/@williamngan&#34;&gt;Medium blog&lt;/a&gt; as well.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://two.js.org&#34;&gt;Two&lt;/a&gt;, a &amp;ldquo;two-dimensional drawing api geared towards modern web browsers&amp;rdquo;. It can target any of SVG, Canvas or WebGL, and comes with a scenegraph and animation loop. I need to trial it properly. The name is either a reference to three.js or a nice case of simultaneous invention by two separate authors.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;threejs.org&#34;&gt;Three&lt;/a&gt;, a low-complexity, lightweight 3D engine. It usually targets WebGL but it can also work with Canvas or SVG. It&amp;rsquo;s another large piece of code to navigate but their &lt;a href=&#34;https://threejsfundamentals.org&#34;&gt;fundamentals&lt;/a&gt; series gets you up and running quickly. Courtesy of &lt;a href=&#34;https://mrdoob.com&#34;&gt;Mr Doob&lt;/a&gt; - check out his homepage, currently it&amp;rsquo;s a fun multi-user sketch pad.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/JetBrains/Skija&#34;&gt;Skija&lt;/a&gt; which I&amp;rsquo;ve mentioned in passing before - looks like a great target for lower-level drawing access than what Processing offers. Also focused on the JVM, built on the &lt;a href=&#34;https://skia.org&#34;&gt;Skia&lt;/a&gt;, the cross-platform 2D drawing library. Unlike most of the others this one can&amp;rsquo;t target web-hosted drawing surfaces, though maybe you could get part of the way there with &lt;a href=&#34;https://emscripten.org/&#34;&gt;Emscripten&lt;/a&gt;, Skia &amp;amp; the Canvas API?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That&amp;rsquo;s not even a complete list 😅 but this is turning into quite the library zoo. There&amp;rsquo;s some tantalising examples of &lt;a href=&#34;https://www.youtube.com/playlist?list=PLMVwLeG3bKmniOWnZUM2mcYKphm0ggS-C&#34;&gt;generative design using J&lt;/a&gt;, the array programming language, which I&amp;rsquo;ve not had time to dig into too closely, and I&amp;rsquo;ve not even mentioned where I first started getting into this kind of stuff - back when I was a teenager and one half of the demoscene Mesmery team on the 8 bit Commodore 64. Hilariously that might&amp;rsquo;ve been when I got the most stuff done - there wasn&amp;rsquo;t quite the paralysis of choice the above list hints at&amp;hellip;&lt;/p&gt;
</description>
      <source:markdown>There are two main schools of javascript drawing APIs: those that let you paint shapes onto a canvas that are merged into a single image (normally targeting a web canvas or similar surface), and those that remember the individual shapes and let you interact with them after they&#39;re drawn (normally targeting surfaces like SVG, or perhaps WebGL). Generally speaking they follow what the drawing surface they target supports, though in some cases you will find libraries that try to extend one target with the capabilities of the other.

The library I&#39;ve probably used most extensively is Mike Bostock&#39;s [D3.js](https://d3js.org/), the data visualisation lib that targets SVG, though it has support for canvas as well. It was a key component of the [GetBulb](https://getbulb.com) startup I worked on for a few years. It&#39;s a great library: mature, full-featured, and easily composable with other libraries (like [React](https://reactjs.org/)). It was developed while Mike worked as part of the NYTimes&#39;s data visualisation team, so you&#39;ve probably seen it in action on some of their excellent data visualisation reports. 

Recently some users have complained that it&#39;s been too oriented towards [Observable](http://observablehq.com), Mike Bostock&#39;s live visualisation editor/platform hybrid. But the previous versions are still available, and the latter complaints smack of overly self-interested users with their own expectations but no desire to pitch in on a fork that scratches their particular itch.

I&#39;ve also used [Processing](http://processing.org), mainly via its Clojure wrapper, [Quil](https://github.com/quil/quil). It&#39;s also _very_ full-featured and mature. It has an online analogue, [p5.js](https://p5js.org), that you can use instead of the original java-hosted version, that seems to largely have parity with the original. I wrapped some processing examples from the [Generative Design](http://www.generative-gestaltung.de/1/) book [using Quil a few years ago](https://github.com/OliverM/colloquial). There&#39;s a [newer version of the Generative Design book for p5.js](http://www.generative-gestaltung.de/2/) which I&#39;ve still to dig into but looks every bit as good as the first. The companion machine learning library, [ml5](https://ml5js.org), is also worth checking out.

Other libraries that I&#39;ve used, though not as extensively as Processing or D3 include:

- [thi.ng](https://thi.ng) is _extraordinary_. Karsten Schmidt is a phenomenally productive coder and visualisation artist. He&#39;s written far more lines of Clojure &amp; Clojurescript than I could ever hope too as part of his data visualisation libraries - and then for good measure [ported them all to Typescript](https://github.com/thi-ng/umbrella/) while _still_ expanding their functionality. They&#39;re a bit harder to get into due to their breadth and the docs assuming a higher level of competence than a typical introductory guide. But the scope and quality of these libraries is breath-taking. A magnum opus. I attended one of his workshops in London about 5 years ago and I recommend them whole-heartedly to anyone.
- [Pts](https://ptsjs.org), which I really like, largely because of its rational attempt to organise its API around &#34;abstractions of Space, Form, and Point&#34;. Space is equivalent to a drawing surface, Form to a pen or other means of making marks, and Point to the data representation of your visual idea. The [documentation](https://ptsjs.org/guide/get-started-0100) is excellent too. William Ngan, it&#39;s author, has a good [Medium blog](https://medium.com/@williamngan) as well.
- [Two](https://two.js.org), a &#34;two-dimensional drawing api geared towards modern web browsers&#34;. It can target any of SVG, Canvas or WebGL, and comes with a scenegraph and animation loop. I need to trial it properly. The name is either a reference to three.js or a nice case of simultaneous invention by two separate authors.
- [Three](threejs.org), a low-complexity, lightweight 3D engine. It usually targets WebGL but it can also work with Canvas or SVG. It&#39;s another large piece of code to navigate but their [fundamentals](https://threejsfundamentals.org) series gets you up and running quickly. Courtesy of [Mr Doob](https://mrdoob.com) - check out his homepage, currently it&#39;s a fun multi-user sketch pad.
- [Skija](https://github.com/JetBrains/Skija) which I&#39;ve mentioned in passing before - looks like a great target for lower-level drawing access than what Processing offers. Also focused on the JVM, built on the [Skia](https://skia.org), the cross-platform 2D drawing library. Unlike most of the others this one can&#39;t target web-hosted drawing surfaces, though maybe you could get part of the way there with [Emscripten](https://emscripten.org/), Skia &amp; the Canvas API?


That&#39;s not even a complete list 😅 but this is turning into quite the library zoo. There&#39;s some tantalising examples of [generative design using J](https://www.youtube.com/playlist?list=PLMVwLeG3bKmniOWnZUM2mcYKphm0ggS-C), the array programming language, which I&#39;ve not had time to dig into too closely, and I&#39;ve not even mentioned where I first started getting into this kind of stuff - back when I was a teenager and one half of the demoscene Mesmery team on the 8 bit Commodore 64. Hilariously that might&#39;ve been when I got the most stuff done - there wasn&#39;t quite the paralysis of choice the above list hints at...
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://olivermooney.com/2021/07/24/ive-been-looking.html</link>
      <pubDate>Sat, 24 Jul 2021 11:12:11 +0100</pubDate>
      
      <guid>http://OliverM.micro.blog/2021/07/24/ive-been-looking.html</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been looking at a &lt;em&gt;lot&lt;/em&gt; of generative art libraries. &lt;a href=&#34;https://tylerxhobbs.com/work&#34;&gt;Tyler Hobbs&lt;/a&gt; has done some amazing stuff with &lt;a href=&#34;https://github.com/thobbs/genartlib&#34;&gt;genartlib&lt;/a&gt; (which wraps &lt;a href=&#34;https://github.com/quil/quil&#34;&gt;Quil&lt;/a&gt; which itself wraps &lt;a href=&#34;https://processing.org/&#34;&gt;Processing&lt;/a&gt;, the original democratising force here). But Tyler&amp;rsquo;s stuff in particular I love.&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://OliverM.micro.blog/uploads/2021/ab65f2156f.jpg&#34; width=&#34;250&#34; height=&#34;375&#34; alt=&#34;&#34; /&gt;&lt;/p&gt;
</description>
      <source:markdown>I&#39;ve been looking at a _lot_ of generative art libraries. [Tyler Hobbs](https://tylerxhobbs.com/work) has done some amazing stuff with [genartlib](https://github.com/thobbs/genartlib) (which wraps [Quil](https://github.com/quil/quil) which itself wraps [Processing](https://processing.org/), the original democratising force here). But Tyler&#39;s stuff in particular I love.

&lt;img src=&#34;https://OliverM.micro.blog/uploads/2021/ab65f2156f.jpg&#34; width=&#34;250&#34; height=&#34;375&#34; alt=&#34;&#34; /&gt;
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://olivermooney.com/2021/07/23/matto-famed-keycaps.html</link>
      <pubDate>Fri, 23 Jul 2021 20:29:49 +0100</pubDate>
      
      <guid>http://OliverM.micro.blog/2021/07/23/matto-famed-keycaps.html</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://matt3o.com&#34;&gt;Matt3o&lt;/a&gt;, famed keycaps designer and keyboard maker, has a guide on &lt;a href=&#34;https://matt3o.com/hand-wiring-a-custom-keyboard/&#34;&gt;how to make your own keyboard&lt;/a&gt;, including hand-wiring (so no need for a PCB).&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://OliverM.micro.blog/uploads/2021/7a99eeb18f.jpg&#34; width=&#34;600&#34; height=&#34;337&#34; alt=&#34;&#34; /&gt;&lt;/p&gt;
</description>
      <source:markdown>[Matt3o](https://matt3o.com), famed keycaps designer and keyboard maker, has a guide on [how to make your own keyboard](https://matt3o.com/hand-wiring-a-custom-keyboard/), including hand-wiring (so no need for a PCB).

&lt;img src=&#34;https://OliverM.micro.blog/uploads/2021/7a99eeb18f.jpg&#34; width=&#34;600&#34; height=&#34;337&#34; alt=&#34;&#34; /&gt;
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://olivermooney.com/2021/07/19/visual-noise-generation.html</link>
      <pubDate>Mon, 19 Jul 2021 10:54:07 +0100</pubDate>
      
      <guid>http://OliverM.micro.blog/2021/07/19/visual-noise-generation.html</guid>
      <description>&lt;p&gt;Visual noise generation is generally done using Perlin noise, but its creator, Ken Perlin, went on to develop Simplex noise which &lt;a href=&#34;https://www.bit-101.com/blog/2021/07/perlin-vs-simplex/&#34;&gt;Keith Peters finds far better&lt;/a&gt;. It&amp;rsquo;d be fun to play with this in some design work (and check out that post&amp;rsquo;s mini-app for fun comparisons).&lt;/p&gt;
</description>
      <source:markdown>Visual noise generation is generally done using Perlin noise, but its creator, Ken Perlin, went on to develop Simplex noise which [Keith Peters finds far better](https://www.bit-101.com/blog/2021/07/perlin-vs-simplex/). It&#39;d be fun to play with this in some design work (and check out that post&#39;s mini-app for fun comparisons).
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://olivermooney.com/2021/07/18/so-im-largely.html</link>
      <pubDate>Sun, 18 Jul 2021 11:41:11 +0100</pubDate>
      
      <guid>http://OliverM.micro.blog/2021/07/18/so-im-largely.html</guid>
      <description>&lt;p&gt;So I&amp;rsquo;m largely capturing my current set of open web tabs as &lt;a href=&#34;https://www.kottke.org&#34;&gt;kottke&lt;/a&gt;-style brief links - apologies if you&amp;rsquo;re not a technical person. I promise these posts aren&amp;rsquo;t being written by some poorly-tuned AI.&lt;/p&gt;
</description>
      <source:markdown>So I&#39;m largely capturing my current set of open web tabs as [kottke](https://www.kottke.org)-style brief links - apologies if you&#39;re not a technical person. I promise these posts aren&#39;t being written by some poorly-tuned AI.
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://olivermooney.com/2021/07/18/i-still-want.html</link>
      <pubDate>Sun, 18 Jul 2021 11:38:33 +0100</pubDate>
      
      <guid>http://OliverM.micro.blog/2021/07/18/i-still-want.html</guid>
      <description>&lt;p&gt;I still want to make my own keyboard: split, ortholinear, but with judicious use of 1.5 &amp;amp; bigger keycaps and, most importantly, wireless, which seems very rare for split keyboards. It makes sense - you&amp;rsquo;ve to double up on batteries &amp;amp; more. Maybe the &lt;a href=&#34;https://www.tinypico.com&#34;&gt;TinyPico&lt;/a&gt; could do it?&lt;/p&gt;
</description>
      <source:markdown>I still want to make my own keyboard: split, ortholinear, but with judicious use of 1.5 &amp; bigger keycaps and, most importantly, wireless, which seems very rare for split keyboards. It makes sense - you&#39;ve to double up on batteries &amp; more. Maybe the [TinyPico](https://www.tinypico.com) could do it?
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://olivermooney.com/2021/07/17/im-not-surecoffeegrinders.html</link>
      <pubDate>Sat, 17 Jul 2021 18:24:00 +0100</pubDate>
      
      <guid>http://OliverM.micro.blog/2021/07/17/im-not-surecoffeegrinders.html</guid>
      <description>&lt;p&gt;I&amp;rsquo;m not sure &lt;a href=&#34;https://lambdaisland.com/blog/2020-03-29-coffee-grinders-2&#34;&gt;&amp;ldquo;coffee-grinders&amp;rdquo;&lt;/a&gt; is a good name for the request-handling pattern Arne describes, where multiple functions handle &amp;amp; alter a request in sequence. But I &lt;em&gt;far&lt;/em&gt; prefer to Ring-style nested functions (and it&amp;rsquo;s why I prefer &lt;a href=&#34;https://github.com/pedestal/pedestal&#34;&gt;Pedestal&lt;/a&gt; to &lt;a href=&#34;https://github.com/ring-clojure/ring&#34;&gt;Ring&lt;/a&gt; as a web handler framework).&lt;/p&gt;
</description>
      <source:markdown>I&#39;m not sure [&#34;coffee-grinders&#34;](https://lambdaisland.com/blog/2020-03-29-coffee-grinders-2) is a good name for the request-handling pattern Arne describes, where multiple functions handle &amp; alter a request in sequence. But I _far_ prefer to Ring-style nested functions (and it&#39;s why I prefer [Pedestal](https://github.com/pedestal/pedestal) to [Ring](https://github.com/ring-clojure/ring) as a web handler framework).
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://olivermooney.com/2021/07/17/harold-shows-some.html</link>
      <pubDate>Sat, 17 Jul 2021 17:12:11 +0100</pubDate>
      
      <guid>http://OliverM.micro.blog/2021/07/17/harold-shows-some.html</guid>
      <description>&lt;p&gt;Harold shows some &lt;a href=&#34;https://www.instagram.com/_hrrld/&#34;&gt;lovely generative designs&lt;/a&gt; using nodes &amp;amp; &lt;a href=&#34;https://github.com/JetBrains/Skija&#34;&gt;skija&lt;/a&gt; over on Instagram.&lt;/p&gt;
</description>
      <source:markdown>Harold shows some [lovely generative designs](https://www.instagram.com/_hrrld/) using nodes &amp; [skija](https://github.com/JetBrains/Skija) over on Instagram.
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://olivermooney.com/2021/07/17/are-you-starting.html</link>
      <pubDate>Sat, 17 Jul 2021 17:05:04 +0100</pubDate>
      
      <guid>http://OliverM.micro.blog/2021/07/17/are-you-starting.html</guid>
      <description>&lt;p&gt;Are you starting to go back to shared working arrangements? I&amp;rsquo;ve worked remotely for years but if you are, &lt;a href=&#34;https://www.economist.com/1843/2021/07/14/hell-is-other-people-a-monks-guide-to-office-life?etear=nl_special_9&#34;&gt;monk traditions can help you prepare&lt;/a&gt;.&lt;/p&gt;
</description>
      <source:markdown>Are you starting to go back to shared working arrangements? I&#39;ve worked remotely for years but if you are, [monk traditions can help you prepare](https://www.economist.com/1843/2021/07/14/hell-is-other-people-a-monks-guide-to-office-life?etear=nl_special_9).
</source:markdown>
    </item>
    
    <item>
      <title>Array Programming Languages</title>
      <link>https://olivermooney.com/2021/07/17/array-programming-languages.html</link>
      <pubDate>Sat, 17 Jul 2021 15:59:12 +0100</pubDate>
      
      <guid>http://OliverM.micro.blog/2021/07/17/array-programming-languages.html</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been &lt;em&gt;fascinated&lt;/em&gt; by languages like &lt;a href=&#34;https://aplwiki.com&#34;&gt;APL&lt;/a&gt;, &lt;a href=&#34;https://www.jsoftware.com/&#34;&gt;J&lt;/a&gt; and &lt;a href=&#34;https://mlochbaum.github.io/BQN/&#34;&gt;BQN&lt;/a&gt;, and the succint expression of dense computation they allow.&lt;/p&gt;

&lt;p&gt;Sure, I&amp;rsquo;ve always been fascinated by programming languages. But one constant bugbear has been just how much code it takes to express any significant computation. Array languages offer a set of primitives that operate and compose on much richer data sets (n-dimensional arrays) than the default in other languages, at the cost of looking quite&amp;hellip; &lt;em&gt;dissimilar&lt;/em&gt; to what programmers normally expect to see, code-wise.&lt;/p&gt;

&lt;p&gt;I genuinely love that APL stands for &amp;ldquo;A Programming Language&amp;rdquo;. Iverson&amp;rsquo;s &lt;a href=&#34;https://www.jsoftware.com/papers/tot.htm&#34;&gt;Notation as a Tool of Thought&lt;/a&gt; is eye-opening in its promise, no less so today then when it was written. &lt;a href=&#34;https://mlochbaum.github.io/BQN/&#34;&gt;BQN&lt;/a&gt; seems to be the best-available modern open-source implementation, but its documentation is still lacking, especially for programmers new to APL-derived languages. So I thought I&amp;rsquo;d start with J, especially as it doesn&amp;rsquo;t need the symbol set APL requires, and it has some interesting means of combining operators (&lt;a href=&#34;https://code.jsoftware.com/wiki/Vocabulary/hook&#34;&gt;hooks&lt;/a&gt; and &lt;a href=&#34;https://code.jsoftware.com/wiki/Vocabulary/fork&#34;&gt;forks&lt;/a&gt;) that looked fun to play with too. There&amp;rsquo;s also &lt;a href=&#34;https://codeberg.org/ngn/k&#34;&gt;ngn/k&lt;/a&gt;, an open-source implementation of &lt;a href=&#34;https://en.wikipedia.org/wiki/K_(programming_language)&#34;&gt;K&lt;/a&gt; that has an &lt;a href=&#34;https://ngn.bitbucket.io/k/&#34;&gt;online playground&lt;/a&gt; if you just want to jump in and be bewildered.&lt;/p&gt;

&lt;p&gt;That means that my total experience &lt;em&gt;writing&lt;/em&gt; APL-style code to date amounts to some tentative J written while following &lt;a href=&#34;https://www.jsoftware.com/help/primer/contents.htm&#34;&gt;their tutorial&lt;/a&gt;. I&amp;rsquo;ll publish some notes on the experience when I&amp;rsquo;ve completed it. It&amp;rsquo;s been fun so far, but not without its own warts &amp;amp; cruft. Host OS interactions look, well, absurd. But I&amp;rsquo;m still the neophyte here, so it&amp;rsquo;s their party.&lt;/p&gt;
</description>
      <source:markdown>I&#39;ve been _fascinated_ by languages like [APL](https://aplwiki.com), [J](https://www.jsoftware.com/) and [BQN](https://mlochbaum.github.io/BQN/), and the succint expression of dense computation they allow. 

Sure, I&#39;ve always been fascinated by programming languages. But one constant bugbear has been just how much code it takes to express any significant computation. Array languages offer a set of primitives that operate and compose on much richer data sets (n-dimensional arrays) than the default in other languages, at the cost of looking quite... _dissimilar_ to what programmers normally expect to see, code-wise. 

I genuinely love that APL stands for &#34;A Programming Language&#34;. Iverson&#39;s [Notation as a Tool of Thought](https://www.jsoftware.com/papers/tot.htm) is eye-opening in its promise, no less so today then when it was written. [BQN](https://mlochbaum.github.io/BQN/) seems to be the best-available modern open-source implementation, but its documentation is still lacking, especially for programmers new to APL-derived languages. So I thought I&#39;d start with J, especially as it doesn&#39;t need the symbol set APL requires, and it has some interesting means of combining operators ([hooks](https://code.jsoftware.com/wiki/Vocabulary/hook) and [forks](https://code.jsoftware.com/wiki/Vocabulary/fork)) that looked fun to play with too. There&#39;s also [ngn/k](https://codeberg.org/ngn/k), an open-source implementation of [K](https://en.wikipedia.org/wiki/K_(programming_language)) that has an [online playground](https://ngn.bitbucket.io/k/) if you just want to jump in and be bewildered.

That means that my total experience _writing_ APL-style code to date amounts to some tentative J written while following [their tutorial](https://www.jsoftware.com/help/primer/contents.htm). I&#39;ll publish some notes on the experience when I&#39;ve completed it. It&#39;s been fun so far, but not without its own warts &amp; cruft. Host OS interactions look, well, absurd. But I&#39;m still the neophyte here, so it&#39;s their party.
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://olivermooney.com/2021/07/17/trying-to-resurrect.html</link>
      <pubDate>Sat, 17 Jul 2021 15:33:29 +0100</pubDate>
      
      <guid>http://OliverM.micro.blog/2021/07/17/trying-to-resurrect.html</guid>
      <description>&lt;p&gt;Trying to resurrect my activity here after turtling down through the latest series of lockdowns in Dublin. Just had my second vaccine and starting to feel some normalcy may slowly be returning, despite the D variant&amp;rsquo;s best efforts🤞&lt;/p&gt;
</description>
      <source:markdown>Trying to resurrect my activity here after turtling down through the latest series of lockdowns in Dublin. Just had my second vaccine and starting to feel some normalcy may slowly be returning, despite the D variant&#39;s best efforts🤞
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://olivermooney.com/2020/04/17/finally-got-to.html</link>
      <pubDate>Fri, 17 Apr 2020 17:30:29 +0100</pubDate>
      
      <guid>http://OliverM.micro.blog/2020/04/17/finally-got-to.html</guid>
      <description>&lt;p&gt;Finally got to play with my Meadow IoT kit from Wilderness Labs. This is an &lt;a href=&#34;https://www.hackster.io/wilderness-labs/build-your-own-simon-game-with-meadow-3701d5&#34;&gt;implementation of Simon Says&lt;/a&gt;. It was so good to do a little soldering, play with breadboard compinents and follow the programming guide. They’ve a &lt;a href=&#34;https://store.wildernesslabs.co/collections/frontpage/products/meadow-f7-micro-development-board-w-hack-kit-pro&#34;&gt;single kit&lt;/a&gt; that has all you need for this and far more.&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://OliverM.micro.blog/uploads/2020/d60e8433c5.jpg&#34; width=&#34;599&#34; height=&#34;600&#34; alt=&#34;&#34; /&gt;&lt;/p&gt;
</description>
      <source:markdown>Finally got to play with my Meadow IoT kit from Wilderness Labs. This is an [implementation of Simon Says](https://www.hackster.io/wilderness-labs/build-your-own-simon-game-with-meadow-3701d5). It was so good to do a little soldering, play with breadboard compinents and follow the programming guide. They’ve a [single kit](https://store.wildernesslabs.co/collections/frontpage/products/meadow-f7-micro-development-board-w-hack-kit-pro) that has all you need for this and far more.

&lt;img src=&#34;https://OliverM.micro.blog/uploads/2020/d60e8433c5.jpg&#34; width=&#34;599&#34; height=&#34;600&#34; alt=&#34;&#34; /&gt;
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://olivermooney.com/2020/03/20/latest-daybook-entry.html</link>
      <pubDate>Fri, 20 Mar 2020 19:54:12 +0100</pubDate>
      
      <guid>http://OliverM.micro.blog/2020/03/20/latest-daybook-entry.html</guid>
      <description>&lt;p&gt;Latest Daybook entry is another Wallace Stephens, &lt;em&gt;&lt;a href=&#34;https://www.poetryfoundation.org/poems/45236/thirteen-ways-of-looking-at-a-blackbird&#34;&gt;Thirteen Ways of Looking at a Blackbird&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;
</description>
      <source:markdown>Latest Daybook entry is another Wallace Stephens, _[Thirteen Ways of Looking at a Blackbird](https://www.poetryfoundation.org/poems/45236/thirteen-ways-of-looking-at-a-blackbird)_.
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://olivermooney.com/2020/03/10/next-entry-to.html</link>
      <pubDate>Tue, 10 Mar 2020 16:43:00 +0100</pubDate>
      
      <guid>http://OliverM.micro.blog/2020/03/10/next-entry-to.html</guid>
      <description>&lt;p&gt;Next entry to the daybook: Wallace Stephens&amp;rsquo;s &lt;em&gt;&lt;a href=&#34;https://www.poetryfoundation.org/poems/43431/the-idea-of-order-at-key-west&#34;&gt;The Idea of Order at Key West&lt;/a&gt;&lt;/em&gt;. I loved this when I first read it over 20 years ago at UCD, and still do. It&amp;rsquo;s so satisfying to recite aloud.&lt;/p&gt;
</description>
      <source:markdown>Next entry to the daybook: Wallace Stephens&#39;s _[The Idea of Order at Key West](https://www.poetryfoundation.org/poems/43431/the-idea-of-order-at-key-west)_. I loved this when I first read it over 20 years ago at UCD, and still do. It&#39;s so satisfying to recite aloud.
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://olivermooney.com/2020/03/08/following-the-the.html</link>
      <pubDate>Sun, 08 Mar 2020 12:23:00 +0100</pubDate>
      
      <guid>http://OliverM.micro.blog/2020/03/08/following-the-the.html</guid>
      <description>&lt;p&gt;Following the the example of Robert Pinsky&amp;rsquo;s &lt;em&gt;&lt;a href=&#34;https://www.goodreads.com/en/book/show/18378020-singing-school&#34;&gt;Singing School&lt;/a&gt;&lt;/em&gt;, I&amp;rsquo;ve started my own daybook, writing out the set of poems that appeal to me as I encounter them. First up: &lt;em&gt;&lt;a href=&#34;https://markmcbride.wordpress.com/2015/06/28/tiara-by-mark-doty/&#34;&gt;Tiara&lt;/a&gt;&lt;/em&gt;, by Mark Doty.&lt;/p&gt;
</description>
      <source:markdown>Following the the example of Robert Pinsky&#39;s _[Singing School](https://www.goodreads.com/en/book/show/18378020-singing-school)_, I&#39;ve started my own daybook, writing out the set of poems that appeal to me as I encounter them. First up: _[Tiara](https://markmcbride.wordpress.com/2015/06/28/tiara-by-mark-doty/)_, by Mark Doty.
</source:markdown>
    </item>
    
    <item>
      <title>Teaching my thumbs to type</title>
      <link>https://olivermooney.com/2019/12/14/teaching-my-thumbs.html</link>
      <pubDate>Sat, 14 Dec 2019 13:22:00 +0100</pubDate>
      
      <guid>http://OliverM.micro.blog/2019/12/14/teaching-my-thumbs.html</guid>
      <description>&lt;p&gt;I’m simultaneously trying to get my fingers used to two keyboards: the &lt;a href=&#34;https://shop.keyboard.io/collections/frontpage/products/model-01-keyboard&#34;&gt;Keyboardio Model 01&lt;/a&gt;, and the &lt;a href=&#34;https://drop.com/buy/preonic-mechanical-keyboard&#34;&gt;OLKB Preonic&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;There are probably cheaper ways of introducing hordes of errant keypresses into your daily work.&lt;/p&gt;

&lt;p&gt;They’re interesting keyboards. Perhaps the most striking thing they both have in common is how they reduce the space bar to a normal sized key, allowing your thumb access to a lot more keys.&lt;/p&gt;

&lt;p&gt;So, on the current preonic keymap, my thumbs are responsible for the space, delete, enter, shift, command and mode-shift keys. It makes for a compact keyboard, but… it’s probably too much. I thought it&amp;rsquo;d be a good idea to combine my shift and enter keys, for example (hold down the key and press another key for shift behaviour; just tap the key for enter). I also have that key right beside my space key. Now what happens is that I press enter all the time instead of space. In apps like Slack, where enter starts a new message, that leads to very disjointed and confusing conversations. With your boss. Who might be wondering if you&amp;rsquo;re drunk.&lt;/p&gt;

&lt;p&gt;However, the neat thing about both keyboards is how you can re-program them to behave almost however you&amp;rsquo;d like. I think I’m going to break the shift/enter key combo, instead taking a leaf from the default Model 01 layout and combing the enter and space keys instead (tap for space, mode + tap for enter). I’ll post back here after some experience with that.&lt;/p&gt;

&lt;p&gt;Other notes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the ortholinear layout (unlike the staggered keys layout on traditional keyboards) took me no time at all to adjust to. I touch type and don&amp;rsquo;t even notice the difference.&lt;/li&gt;
&lt;li&gt;I’ve yet to find a good use for the latching key-switches I added (tap ‘em once to lock them down, tap again to unlock) but I’m still thinking about that&lt;/li&gt;
&lt;li&gt;typing on heavy clicky mechanical switches (&lt;a href=&#34;https://novelkeys.xyz/products/novelkeys-x-kailh-box-thick-clicks&#34;&gt;Kailh Box Navy&lt;/a&gt; type) is very pleasant but definitely more tiring, and possibly slower too, compared to shallow travel keyboards that bottom out near immediately&lt;/li&gt;
&lt;li&gt;My keycap set hasn&amp;rsquo;t enough accent keys, and using words for keys like “alt”
means you can&amp;rsquo;t turn them 180º for easier typing by thumb. It’s the &lt;a href=&#34;https://candykeys.com/product/mda-big-bang&#34;&gt;MDA-profile Big Bang 2.0 set&lt;/a&gt; - gorgeous otherwise. Despite the mis-sized “8” keycap legend.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&#34;https://docs.qmk.fm/#/&#34;&gt;current QMK instructions&lt;/a&gt; for updating your keyboard layout are right, but not the easiest way to do it - instead, just use the &lt;a href=&#34;https://config.qmk.fm/&#34;&gt;online configuration tool&lt;/a&gt;; it&amp;rsquo;ll compile your firmware for you too!&lt;/li&gt;
&lt;/ul&gt;
</description>
      <source:markdown>I’m simultaneously trying to get my fingers used to two keyboards: the [Keyboardio Model 01](https://shop.keyboard.io/collections/frontpage/products/model-01-keyboard), and the [OLKB Preonic](https://drop.com/buy/preonic-mechanical-keyboard).

There are probably cheaper ways of introducing hordes of errant keypresses into your daily work. 

They’re interesting keyboards. Perhaps the most striking thing they both have in common is how they reduce the space bar to a normal sized key, allowing your thumb access to a lot more keys. 

So, on the current preonic keymap, my thumbs are responsible for the space, delete, enter, shift, command and mode-shift keys. It makes for a compact keyboard, but… it’s probably too much. I thought it&#39;d be a good idea to combine my shift and enter keys, for example (hold down the key and press another key for shift behaviour; just tap the key for enter). I also have that key right beside my space key. Now what happens is that I press enter all the time instead of space. In apps like Slack, where enter starts a new message, that leads to very disjointed and confusing conversations. With your boss. Who might be wondering if you&#39;re drunk.

However, the neat thing about both keyboards is how you can re-program them to behave almost however you&#39;d like. I think I’m going to break the shift/enter key combo, instead taking a leaf from the default Model 01 layout and combing the enter and space keys instead (tap for space, mode + tap for enter). I’ll post back here after some experience with that.

Other notes:

- the ortholinear layout (unlike the staggered keys layout on traditional keyboards) took me no time at all to adjust to. I touch type and don&#39;t even notice the difference. 
- I’ve yet to find a good use for the latching key-switches I added (tap ‘em once to lock them down, tap again to unlock) but I’m still thinking about that
- typing on heavy clicky mechanical switches ([Kailh Box Navy](https://novelkeys.xyz/products/novelkeys-x-kailh-box-thick-clicks) type) is very pleasant but definitely more tiring, and possibly slower too, compared to shallow travel keyboards that bottom out near immediately
- My keycap set hasn&#39;t enough accent keys, and using words for keys like “alt”
means you can&#39;t turn them 180º for easier typing by thumb. It’s the [MDA-profile Big Bang 2.0 set](https://candykeys.com/product/mda-big-bang) - gorgeous otherwise. Despite the mis-sized “8” keycap legend.
- The [current QMK instructions](https://docs.qmk.fm/#/) for updating your keyboard layout are right, but not the easiest way to do it - instead, just use the [online configuration tool](https://config.qmk.fm/); it&#39;ll compile your firmware for you too!
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://olivermooney.com/2019/12/03/london-in-the.html</link>
      <pubDate>Tue, 03 Dec 2019 10:22:34 +0100</pubDate>
      
      <guid>http://OliverM.micro.blog/2019/12/03/london-in-the.html</guid>
      <description>&lt;p&gt;London in the morning.&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://OliverM.micro.blog/uploads/2019/e32771b56c.jpg&#34; width=&#34;600&#34; height=&#34;600&#34; alt=&#34;&#34; /&gt;&lt;/p&gt;
</description>
      <source:markdown>London in the morning.

&lt;img src=&#34;https://OliverM.micro.blog/uploads/2019/e32771b56c.jpg&#34; width=&#34;600&#34; height=&#34;600&#34; alt=&#34;&#34; /&gt;
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://olivermooney.com/2019/12/02/my-newly-built.html</link>
      <pubDate>Mon, 02 Dec 2019 14:20:15 +0100</pubDate>
      
      <guid>http://OliverM.micro.blog/2019/12/02/my-newly-built.html</guid>
      <description>&lt;p&gt;My newly built Preonic keyboard from OLKB/Massdrop, with a set of MDA Big Bang 2.0 keycaps on Kailh Box Navy keyswitches, except for a couple of Cherry MX latching keys in the corners (I’ll unpack all that in a bit if you’re not too familiar with custom mechanical keyboards).&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://OliverM.micro.blog/uploads/2019/8b5a81c787.jpg&#34; width=&#34;600&#34; height=&#34;368&#34; alt=&#34;&#34; /&gt;&lt;/p&gt;
</description>
      <source:markdown>My newly built Preonic keyboard from OLKB/Massdrop, with a set of MDA Big Bang 2.0 keycaps on Kailh Box Navy keyswitches, except for a couple of Cherry MX latching keys in the corners (I’ll unpack all that in a bit if you’re not too familiar with custom mechanical keyboards).

&lt;img src=&#34;https://OliverM.micro.blog/uploads/2019/8b5a81c787.jpg&#34; width=&#34;600&#34; height=&#34;368&#34; alt=&#34;&#34; /&gt;
</source:markdown>
    </item>
    
    <item>
      <title>Iris Murdoch&#39;s The Sea, The Sea: A Review</title>
      <link>https://olivermooney.com/2019/11/10/iris-murdochs-the.html</link>
      <pubDate>Sun, 10 Nov 2019 20:29:00 +0100</pubDate>
      
      <guid>http://OliverM.micro.blog/2019/11/10/iris-murdochs-the.html</guid>
      <description>&lt;p&gt;I found this book &lt;em&gt;so&lt;/em&gt; difficult to read. I literally squirm at the slightest hint of anybody doing something socially embarrassing or something self-interested to the point of harming other people, and this book is FULL of that, full of otherwise excellent people doing appalling things, the narrator more than anyone - but the book is excellent. I recommend it unreservedly. The writing is excellent, both in how it grips you through the most difficult scenes and how it describes the variety of the sea in all weathers, something that resonated as I grew up and live by the coast.&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://www.penguin.co.uk/content/dam/prh/books/111/1118162/9781784875190.jpg.transform/PRHDesktopWide_small/image.jpg&#34; alt=&#34;The 2019 cover&#34; /&gt;&lt;/p&gt;

&lt;p&gt;This must seem so vague so far but I don’t want to spoil anything. It is a very plot-heavy book, though the story is lightly told, entirely from the perspective of the narrator, a retired theatre director in his sixties who is a walking definition of an unreliable narrator. He&amp;rsquo;s cruel, obtuse and &lt;em&gt;wrong&lt;/em&gt; but remains endearing in his own peculiar way.&lt;/p&gt;

&lt;p&gt;It&amp;rsquo;s a love story too, or a story about a concept of love vs the perception of another couple&amp;rsquo;s practice of love, and how that can twist your perspective and permit you to think whatever you most need to think…&lt;/p&gt;

&lt;p&gt;It&amp;rsquo;s so sad in parts, but also so oddly content at the end, post-action, when Murdoch blessedly continues the story so you don&amp;rsquo;t have to say goodbye to the characters sooner than you&amp;rsquo;d like.&lt;/p&gt;

&lt;p&gt;It&amp;rsquo;s a very well-regarded book: it won the Booker in 1978, when it was first published, and has been adapted into radio plays twice by the BBC. The &lt;a href=&#34;https://www.penguin.co.uk/books/1118162/the-sea--the-sea/9781784875190.html&#34;&gt;2019 re-issue&lt;/a&gt; comes with an introduction, though it&amp;rsquo;s one of those introductions far better read after finishing the main book than before. I far prefer the 2019 edition to the &lt;a href=&#34;https://en.wikipedia.org/wiki/The_Sea,_the_Sea&#34;&gt;1978 one&lt;/a&gt;, which featured a portion of Hokusai&amp;rsquo;s &lt;em&gt;The Great Wave off Kanagawa&lt;/em&gt;. That&amp;rsquo;s a great piece of art but comes with a lot of associations that don&amp;rsquo;t quite fit the book (presumably it wasn&amp;rsquo;t quite as widely known in 1978).&lt;/p&gt;

&lt;p&gt;I might update this when I&amp;rsquo;ve not had three glasses of wine. But I had to pen it down - please, give &lt;em&gt;The Sea, The Sea&lt;/em&gt; a try.&lt;/p&gt;
</description>
      <source:markdown>I found this book _so_ difficult to read. I literally squirm at the slightest hint of anybody doing something socially embarrassing or something self-interested to the point of harming other people, and this book is FULL of that, full of otherwise excellent people doing appalling things, the narrator more than anyone - but the book is excellent. I recommend it unreservedly. The writing is excellent, both in how it grips you through the most difficult scenes and how it describes the variety of the sea in all weathers, something that resonated as I grew up and live by the coast.

![The 2019 cover](https://www.penguin.co.uk/content/dam/prh/books/111/1118162/9781784875190.jpg.transform/PRHDesktopWide_small/image.jpg)

This must seem so vague so far but I don’t want to spoil anything. It is a very plot-heavy book, though the story is lightly told, entirely from the perspective of the narrator, a retired theatre director in his sixties who is a walking definition of an unreliable narrator. He&#39;s cruel, obtuse and *wrong* but remains endearing in his own peculiar way.

It&#39;s a love story too, or a story about a concept of love vs the perception of another couple&#39;s practice of love, and how that can twist your perspective and permit you to think whatever you most need to think…

It&#39;s so sad in parts, but also so oddly content at the end, post-action, when Murdoch blessedly continues the story so you don&#39;t have to say goodbye to the characters sooner than you&#39;d like. 

It&#39;s a very well-regarded book: it won the Booker in 1978, when it was first published, and has been adapted into radio plays twice by the BBC. The [2019 re-issue](https://www.penguin.co.uk/books/1118162/the-sea--the-sea/9781784875190.html) comes with an introduction, though it&#39;s one of those introductions far better read after finishing the main book than before. I far prefer the 2019 edition to the [1978 one](https://en.wikipedia.org/wiki/The_Sea,_the_Sea), which featured a portion of Hokusai&#39;s _The Great Wave off Kanagawa_. That&#39;s a great piece of art but comes with a lot of associations that don&#39;t quite fit the book (presumably it wasn&#39;t quite as widely known in 1978).

I might update this when I&#39;ve not had three glasses of wine. But I had to pen it down - please, give _The Sea, The Sea_ a try. 
</source:markdown>
    </item>
    
    <item>
      <title>Animating the Pimoroni Keybow keys</title>
      <link>https://olivermooney.com/2019/11/10/animating-the-pimoroni.html</link>
      <pubDate>Sun, 10 Nov 2019 19:44:00 +0100</pubDate>
      
      <guid>http://OliverM.micro.blog/2019/11/10/animating-the-pimoroni.html</guid>
      <description>&lt;p&gt;The Pimoroni Keybow is a great little 12-key macro-pad kit. I got mine with Kailh Gold clicky keys too, as I wanted to see what those were like - they&amp;rsquo;re nice, light to press but with a definite click. They come with a DSA keycap profile too. I&amp;rsquo;m currently fascinated by &lt;a href=&#34;http://i.imgur.com/kFxqOm8.jpg&#34;&gt;keycap profiles&lt;/a&gt; and I really want to build a keyboard with high-quality SA keycaps and heavy clicky keys to emulate the look and feel (if not noise!) of the &lt;a href=&#34;https://www.youtube.com/watch?v=hNRH1ULmbNA&#34;&gt;beam-spring behemoths of yore&lt;/a&gt; - but that&amp;rsquo;s a topic for another day.&lt;/p&gt;

&lt;p&gt;Back to the Keybow kit. You can make it without any tools and it gives you a RaspberryPi-powered macropad - a small but fully-fledged computer  that you can configure to your heart&amp;rsquo;s content, if you&amp;rsquo;re comfortable digging into configuration files and maybe some light programming.&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://cdn.shopify.com/s/files/1/0174/1800/products/keybow-lifestyle-square-5_1024x1024.jpg?v=1545079764&#34; alt=&#34;The Pimoroni Keybow&#34; /&gt;&lt;/p&gt;

&lt;p&gt;Even if you&amp;rsquo;re not, you can still do some fun things! Each key has an RGB LED under it, and Pimoroni have set it up so that you can animate the LEDs just using an image file in PNG format. Any popular image-editing tool can create these. The image file should be 12 pixels wide, one for each LED, and you can animate it by having additional rows. One row is a single step in the animation (so just have a single row for a static set of lights permanently on).&lt;/p&gt;

&lt;p&gt;It&amp;rsquo;s not clear from the Keybow&amp;rsquo;s &lt;a href=&#34;https://learn.pimoroni.com/keybow&#34;&gt;documentation&lt;/a&gt; which column in the image corresponds to which key. It doesn&amp;rsquo;t match how the keys are numbered in the programming sections. After some experimentation, if you orient the keybow so that the USB cable is coming out of the top, column one of the image is on the bottom left, the bottom right is column four in the image, the top left is column nine, and the top right is column twelve. The two keys in the middle row are columns five and six of the image, and so on.&lt;/p&gt;

&lt;p&gt;With that worked out, I wanted to make a snow animation, matching the orientation of the keys (i.e. with the narrow side facing up). The image file I made is &lt;a href=&#34;https://github.com/OliverM/keybow-firmware/blob/f8baace90f43f8e3429cb2cf5c9ddd59a78b73d1/sdcard/patterns/snow.png&#34;&gt;here&lt;/a&gt;. It’s not quite as random/unpredictable as I&amp;rsquo;d like, but a few more animation cycles would help - pull requests welcome :)&lt;/p&gt;
</description>
      <source:markdown>The Pimoroni Keybow is a great little 12-key macro-pad kit. I got mine with Kailh Gold clicky keys too, as I wanted to see what those were like - they&#39;re nice, light to press but with a definite click. They come with a DSA keycap profile too. I&#39;m currently fascinated by [keycap profiles](http://i.imgur.com/kFxqOm8.jpg) and I really want to build a keyboard with high-quality SA keycaps and heavy clicky keys to emulate the look and feel (if not noise!) of the [beam-spring behemoths of yore](https://www.youtube.com/watch?v=hNRH1ULmbNA) - but that&#39;s a topic for another day.

Back to the Keybow kit. You can make it without any tools and it gives you a RaspberryPi-powered macropad - a small but fully-fledged computer  that you can configure to your heart&#39;s content, if you&#39;re comfortable digging into configuration files and maybe some light programming. 

![The Pimoroni Keybow](https://cdn.shopify.com/s/files/1/0174/1800/products/keybow-lifestyle-square-5_1024x1024.jpg?v=1545079764)

Even if you&#39;re not, you can still do some fun things! Each key has an RGB LED under it, and Pimoroni have set it up so that you can animate the LEDs just using an image file in PNG format. Any popular image-editing tool can create these. The image file should be 12 pixels wide, one for each LED, and you can animate it by having additional rows. One row is a single step in the animation (so just have a single row for a static set of lights permanently on). 

It&#39;s not clear from the Keybow&#39;s [documentation](https://learn.pimoroni.com/keybow) which column in the image corresponds to which key. It doesn&#39;t match how the keys are numbered in the programming sections. After some experimentation, if you orient the keybow so that the USB cable is coming out of the top, column one of the image is on the bottom left, the bottom right is column four in the image, the top left is column nine, and the top right is column twelve. The two keys in the middle row are columns five and six of the image, and so on.

With that worked out, I wanted to make a snow animation, matching the orientation of the keys (i.e. with the narrow side facing up). The image file I made is [here](https://github.com/OliverM/keybow-firmware/blob/f8baace90f43f8e3429cb2cf5c9ddd59a78b73d1/sdcard/patterns/snow.png). It’s not quite as random/unpredictable as I&#39;d like, but a few more animation cycles would help - pull requests welcome :)
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://olivermooney.com/2019/11/05/for-programmers-vim.html</link>
      <pubDate>Tue, 05 Nov 2019 17:41:00 +0100</pubDate>
      
      <guid>http://OliverM.micro.blog/2019/11/05/for-programmers-vim.html</guid>
      <description>&lt;p&gt;For programmers, Vim is the minimal but powerful &lt;a href=&#34;https://www.vim.org&#34;&gt;text editor&lt;/a&gt; present  on every unix system worth talking about. For designers, Vim is the forename of a &lt;a href=&#34;https://en.wikipedia.org/wiki/Wim_Crouwel&#34;&gt;renowned designer&lt;/a&gt;. If you like either, check out &lt;a href=&#34;https://raffinaderij.booreiland.amsterdam/minimalwim/&#34;&gt;Minimal Vim&lt;/a&gt; for a nice exploration of minimalism in font design.&lt;/p&gt;
</description>
      <source:markdown>For programmers, Vim is the minimal but powerful [text editor](https://www.vim.org) present  on every unix system worth talking about. For designers, Vim is the forename of a [renowned designer](https://en.wikipedia.org/wiki/Wim_Crouwel). If you like either, check out [Minimal Vim](https://raffinaderij.booreiland.amsterdam/minimalwim/) for a nice exploration of minimalism in font design.
</source:markdown>
    </item>
    
  </channel>
</rss>
