<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>neildaemond&#39;s hacker blog</title>
    <link>https://808.ninja/</link>
    <description>Recent content on neildaemond&#39;s hacker blog</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Fri, 27 Feb 2026 11:43:55 +0800</lastBuildDate>
    <atom:link href="https://808.ninja/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Claude on Zed IDE vs Gemini on Android Studio</title>
      <link>https://808.ninja/ai-tooling/claude-on-zed-ide/</link>
      <pubDate>Fri, 27 Feb 2026 11:43:55 +0800</pubDate>
      <guid>https://808.ninja/ai-tooling/claude-on-zed-ide/</guid>
      <description>&lt;p&gt;I thought it was pretty cool to leverage unique dev environments with Nix direnv so I could code remotely via any SSH connection.&lt;/p&gt;&#xA;&lt;p&gt;But I found something even cooler: I could mount that entire setup into a more GUI &amp;amp; user-friendly interface via Zed IDE&amp;rsquo;s ‘Open Remote…’ feature, which improved connection stability and kept Zed’s ‘super fast and responsive’ feel. Even when opening a terminal, the whole Nix direnv environment was automatically activated.&lt;/p&gt;&#xA;&lt;p&gt;“YAY! Awesome ninja-coded software, here we go!”&lt;/p&gt;&#xA;&lt;p&gt;Until it so happened that “AI RULES AND CODING IS DEAD” rhetoric started dominating the world of LinkedIn and other social platforms.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Catppuccin (Mocha): Uniform Syntax Highlighting Across IDE&#39;s</title>
      <link>https://808.ninja/coder/uniform-syntax-highlighting/</link>
      <pubDate>Mon, 22 Dec 2025 21:00:05 +0800</pubDate>
      <guid>https://808.ninja/coder/uniform-syntax-highlighting/</guid>
      <description>&lt;p&gt;One theme to rule them all&amp;hellip;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Working With XML/HTML Tags in Helix IDE</title>
      <link>https://808.ninja/coder/working-with-xml-and-html-tags-in-helix-ide/</link>
      <pubDate>Thu, 19 Jun 2025 22:33:34 +0800</pubDate>
      <guid>https://808.ninja/coder/working-with-xml-and-html-tags-in-helix-ide/</guid>
      <description>&lt;h3 id=&#34;helix-ide-unlocks-my-long-dreamt-of-command-line-workflow&#34;&gt;Helix IDE unlocks my long-dreamt-of command-line workflow&lt;/h3&gt;&#xA;&lt;p&gt;I&amp;rsquo;m still enjoying my Helix experience, as it enables a workflow that I think is quite cool. With my &lt;a href=&#34;https://808.ninja/series/rapid-backend-prototyping-on-a-remote-server/&#34;&gt;dev-on-server setup&lt;/a&gt;, I can&amp;rsquo;t believe how effective I can be even when using Termux on my phone, paired with my &lt;a href=&#34;https://808.ninja/coder/script-for-auto-reconnecting-ssh-to-tmux-sessions/&#34;&gt;ssh-into-tmux-script&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;This is what it looks like doing actual (expo) mobile development with Helix IDE from my mobile (via the termux app) while sitting in Oliver Sandwich:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://808.ninja/post_images/2025-06/dev_on_the_go.png&#34; alt=&#34;dev happening on my phone&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;but-i-digress-back-to-working-on-tags&#34;&gt;But, I digress&amp;hellip; Back to &amp;lsquo;Working on Tags&amp;rsquo;&lt;/h3&gt;&#xA;&lt;p&gt;While working on my expo app, I began to miss how WebStorm would automatically add closing tags, and update tag pairs as I renamed one of them, etc.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve learnt a few methods to work with tags, which, for now, seem quite adequate.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Rebuilding Nixos After Updating Configs</title>
      <link>https://808.ninja/tidbits/rebuilding-nixos-after-updating-configs/</link>
      <pubDate>Sun, 15 Jun 2025 10:39:36 +0800</pubDate>
      <guid>https://808.ninja/tidbits/rebuilding-nixos-after-updating-configs/</guid>
      <description>&lt;h3 id=&#34;im-playing-around-with-nixos-on-an-old-imac-from-2013&#34;&gt;I&amp;rsquo;m playing around with NixOS on an old iMac from 2013&lt;/h3&gt;&#xA;&lt;p&gt;Keen on using this machine in a &amp;lsquo;primarily Rust context&amp;rsquo;, I&amp;rsquo;m working through the process of adding the foundational packages and, following guides, updating the&#xA;underlying &lt;code&gt;configuration.nix&lt;/code&gt; file and others.&lt;/p&gt;&#xA;&lt;p&gt;One remarkable feature of NixOS is the atomic upgrades. Applying changes, I can easily roll them back to previously saved states.&#xA;To summarise:&lt;/p&gt;&#xA;&lt;br/&gt;</description>
    </item>
    <item>
      <title>Nix Flake error: path &#39;/nix/store/--/flake.nix&#39; does not exist</title>
      <link>https://808.ninja/coder/nix-flake-error-path-x-does-not-exist/</link>
      <pubDate>Fri, 13 Jun 2025 10:36:55 +0800</pubDate>
      <guid>https://808.ninja/coder/nix-flake-error-path-x-does-not-exist/</guid>
      <description>&lt;h4 id=&#34;ive-noticed-a-path-_-does-not-exist-quirk-when-copying-the-flakenix-file-from-one-project-to-another&#34;&gt;I&amp;rsquo;ve noticed a &amp;lsquo;path _ does not exist&amp;rsquo; quirk when copying the &lt;code&gt;flake.nix&lt;/code&gt; file from one project to another&lt;/h4&gt;&#xA;&lt;p&gt;I thought that I could replicate the nix-flake defined environment of one folder(project) by copying &lt;code&gt;flake.nix&lt;/code&gt; and &lt;code&gt;.envrc&lt;/code&gt; into a new folder. When I do that, I&amp;rsquo;m asked to run &lt;code&gt;direnv allow&lt;/code&gt; on the new folder, but under a particular circumstance, something weird happens; you&amp;rsquo;ll get an error like this:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;direnv: loading ~/proj/project-name/.envrc&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;direnv: using flake .&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;error: path &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;/nix/store/0cc..nm8-source/flake.nix&amp;#39;&lt;/span&gt; does not exist&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br/&gt;</description>
    </item>
    <item>
      <title>Vim to Helix IDE</title>
      <link>https://808.ninja/news/2025/05/vim-to-helix-ide/</link>
      <pubDate>Sat, 24 May 2025 11:40:05 +0800</pubDate>
      <guid>https://808.ninja/news/2025/05/vim-to-helix-ide/</guid>
      <description>&lt;p&gt;I loved Vim; the keybindings, simplicity, and modal style usage. I could use plugins to achieve almost anything, enabling smooth workflows and tooling that others have pioneered.&lt;/p&gt;&#xA;&lt;p&gt;However, as someone who jumps between frameworks, languages and projects, many past chosen plugins become redundant and forgotten. The last thing anyone needs is technical debt from their IDE, and so I entered a period of using JetBrains IDEs a couple of years ago when my role required me to focus on React.&lt;/p&gt;&#xA;&lt;p&gt;Recently, I stumbled upon Helix IDE at the same time as Nix Flakes, and that spurred the realisation of this powerful but simple setup.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Script to auto-reconnect SSH connections to tmux sessions</title>
      <link>https://808.ninja/coder/script-for-auto-reconnecting-ssh-to-tmux-sessions/</link>
      <pubDate>Mon, 12 May 2025 13:57:43 +0800</pubDate>
      <guid>https://808.ninja/coder/script-for-auto-reconnecting-ssh-to-tmux-sessions/</guid>
      <description>&lt;p&gt;I like the idea of SSH&amp;rsquo;ing into a tmux session when doing work on a remote machine so that I can reconnect right where I left off.&lt;/p&gt;&#xA;&lt;p&gt;However, I don&amp;rsquo;t like it when the internet connection is unstable, and you must reconnect whenever you drop off. Or, when I close my laptop for a couple of hours and open it back up to a crashed terminal emulator. I tried using &lt;code&gt;mosh&lt;/code&gt; as I&amp;rsquo;ve done with IRC before, but I didn&amp;rsquo;t like how the terminal scrolling &amp;amp; copy/paste behaviour was affected unintuitively by mosh &amp;amp; tmux.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Webpack File Loader to Custom Load Path</title>
      <link>https://808.ninja/quick-tips/webpack-file-loader-to-custom-load-path/</link>
      <pubDate>Wed, 02 Oct 2019 18:25:16 +0800</pubDate>
      <guid>https://808.ninja/quick-tips/webpack-file-loader-to-custom-load-path/</guid>
      <description>&lt;p&gt;So, I asked on freenode ( #webpack ) and realised the answer before I could hear a response&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;│18:10:30 neildaemond | using this webpack.config.js, I end up with some files  │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;│                     | like &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;27474d2c2aa69b9fff15b5748ef7be30.gif&amp;#34;&lt;/span&gt;.. It all    │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;│                     | works, but on the web server I want them to load from   │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;│                     | another location like &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;domain.com/another/custom/path/2 │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;│                     | 7474d2c2aa69b9fff15b5748ef7be30.gif&amp;#34;&lt;/span&gt;, not at root       │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;│                     | &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;domain.com/27474d2c2aa69b9fff15b5748ef7be30.gif&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;       │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;│18:10:48 neildaemond | https://pastebin.com/AJKS9yf7                           │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;│18:23:43 neildaemond | oh, I figured it out.. an option &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; the file-loader.   │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;│                     | updated the webpack.config.js to:                       │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;│                     | https://pastebin.com/GQvWF9H7                           │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>F11 Can&#39;t Scroll Nicknames Down When Using Weechat in Terminal</title>
      <link>https://808.ninja/quick-tips/f11-cant-scroll-nicknames-down-when-using-weechat-in-terminal/</link>
      <pubDate>Sat, 21 Sep 2019 15:17:17 +0800</pubDate>
      <guid>https://808.ninja/quick-tips/f11-cant-scroll-nicknames-down-when-using-weechat-in-terminal/</guid>
      <description>&lt;h2 id=&#34;ttmega-lolz-paying-homage-to-90s-computing-and-web-pages-via-tildeclubtt&#34;&gt;&lt;tt&gt;MeGa LoLz: Paying HoMaGe to 90&amp;rsquo;s ComPuTinG AnD WeB PaGeS ViA tilde.club&lt;/tt&gt;&lt;/h2&gt;&#xA;&lt;p&gt;ssh&amp;rsquo;ing into my new account on &lt;a href=&#34;https://tilde.club&#34;&gt;tilde.club&lt;/a&gt;, I was re-introduced to their favourite command line irc client, &lt;a href=&#34;https://weechat.org&#34;&gt;WeeChat&lt;/a&gt;. I&amp;rsquo;m quite excited about tilde.club( mine is &lt;a href=&#34;https://tilde.club/~neildaemond&#34;&gt;tilde.club/~neildaemond&lt;/a&gt; ;) ) as it provides the perfect remote server for irc chat if I run it in a screen/tmux/etc. At my local hackerspace, &lt;a href=&#34;https://dimsumlabs.com&#34;&gt;dimsumlabs&lt;/a&gt;, we&amp;rsquo;re trying to encourage irc usage. In Particular, our &lt;code&gt;#dimsumlabs&lt;/code&gt; channel on Freenode.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Quick and dirty fix of &#39;listen tcp 0.0.0.0:5433: bind: address already in use&#39;</title>
      <link>https://808.ninja/quick-tips/bind-address-already-in-use/</link>
      <pubDate>Fri, 23 Aug 2019 12:21:33 +0800</pubDate>
      <guid>https://808.ninja/quick-tips/bind-address-already-in-use/</guid>
      <description>&lt;p&gt;The &amp;lsquo;Quick And Dirty&amp;rsquo; way is:&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;sudo lsof -i -P -n | grep 5433&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;then&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;kill -9 &amp;lt;the_found_pid&amp;gt;&lt;/code&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Using VSCode When You&#39;re Used to Vim &amp; NerdTree</title>
      <link>https://808.ninja/coder/vscode-when-youre-used-to-vim-and-nerdtree/</link>
      <pubDate>Thu, 22 Aug 2019 00:20:30 +0800</pubDate>
      <guid>https://808.ninja/coder/vscode-when-youre-used-to-vim-and-nerdtree/</guid>
      <description>&lt;h2 id=&#34;first-make-it-more-like-vim&#34;&gt;First, make it more like Vim&lt;/h2&gt;&#xA;&lt;p&gt;My first step for any IDE setup is to make it more like Vim using whichever extension/plugin they have to offer :)&lt;/p&gt;&#xA;&lt;p&gt;(you can even do this with browser text fields via &lt;a href=&#34;https://github.com/akahuku/wasavi&#34;&gt;wasavi&lt;/a&gt;)&lt;/p&gt;&#xA;&lt;p&gt;So, for VSCode I used the main vim plugin,&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://808.ninja/post_images/2019-08/vim_extension_for_vscode.png&#34; alt=&#34;Vim Extension For VSCode&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;and then added the following keybindings.json and settings.json which are found at &lt;code&gt;~/.config/Code/User/&lt;/code&gt; &amp;hellip;&lt;/p&gt;</description>
    </item>
    <item>
      <title>&#39;Vim as My IDE&#39; Continued: New Plugin Manager &amp; Intellisense via coc.nvim &#43; LSP</title>
      <link>https://808.ninja/coder/vim-as-my-ide-upgrade-for-coc-nvim-and-lsp/</link>
      <pubDate>Thu, 15 Aug 2019 22:51:29 +0800</pubDate>
      <guid>https://808.ninja/coder/vim-as-my-ide-upgrade-for-coc-nvim-and-lsp/</guid>
      <description>&lt;h2 id=&#34;the-quest-continues&#34;&gt;The Quest Continues&lt;/h2&gt;&#xA;&lt;p&gt;In 2012, I started blogging about &lt;em&gt;&lt;a href=&#34;https://archived.neilpahl.com/logs/vim/&#34;&gt;Vim As My Ide&lt;/a&gt;&lt;/em&gt;. At that time, I was also going to try and focus on Scala as it was all the rage. However, I didn&amp;rsquo;t like using clunky IDEs like Eclipse to develop in the Java world, and I didn&amp;rsquo;t have any pressing reason to continue. Today, I&amp;rsquo;m back on board the Scala train for work purposes and will leverage some of the newfound support for Scala that Vim has.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Elm (0.18) Architecture: A Flow Diagram</title>
      <link>https://808.ninja/web-programmer/elm-architecture-flow-diagram/</link>
      <pubDate>Fri, 12 Oct 2018 22:19:58 +0800</pubDate>
      <guid>https://808.ninja/web-programmer/elm-architecture-flow-diagram/</guid>
      <description>&lt;p&gt;Taking &lt;a href=&#34;https://808.ninja/web-programmer/elm-architecture-overview-understanding-an-elm-program/&#34;&gt;my previous post on Elm Architecture&lt;/a&gt; under consideration, I&amp;rsquo;ve generated the following diagram:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://raw.githubusercontent.com/neildaemond/my-blog-diagrams/master/elm/Elm-Architecture-Overview.png&#34;&gt;&lt;img src=&#34;https://raw.githubusercontent.com/neildaemond/my-blog-diagrams/master/elm/Elm-Architecture-Overview.png&#34; alt=&#34;Elm Architecture Diagram&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let me explain further&amp;hellip;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Find Nodes on Network Using Nmap</title>
      <link>https://808.ninja/quick-tips/find-nodes-on-network-using-nmap/</link>
      <pubDate>Fri, 12 Oct 2018 10:17:20 +0800</pubDate>
      <guid>https://808.ninja/quick-tips/find-nodes-on-network-using-nmap/</guid>
      <description>&lt;p&gt;Using:&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;nmap -sP 192.168.2.1/24&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;I was able to find my SOPine nodes, which were plugged into a Pine64 Clusterboard on wired network.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Elm (0.18) Architecture: A Brief Overview</title>
      <link>https://808.ninja/web-programmer/elm-architecture-overview-understanding-an-elm-program/</link>
      <pubDate>Sat, 15 Sep 2018 00:53:49 +0800</pubDate>
      <guid>https://808.ninja/web-programmer/elm-architecture-overview-understanding-an-elm-program/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://guide.elm-lang.org/architecture/&#34;&gt;The elm architecture&lt;/a&gt; is explained in the Elm guide, but I&amp;rsquo;m going to try and break it down in a way in which I understand it so that hopefully anyone reading here can benefit from another perspective.&lt;/p&gt;&#xA;&lt;p&gt;The guide tells us that an Elm application has the architectural pattern of &lt;strong&gt;Model-Update-View&lt;/strong&gt; but, what does this mean? I see it like this:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Create a hexadecimal colour based on a string with Elm</title>
      <link>https://808.ninja/web-programmer/create-a-hexadecimal-colour-based-on-a-string-with-elm/</link>
      <pubDate>Wed, 22 Aug 2018 22:27:24 +0800</pubDate>
      <guid>https://808.ninja/web-programmer/create-a-hexadecimal-colour-based-on-a-string-with-elm/</guid>
      <description>&lt;p&gt;I had an html table of categorised items, and I wanted to give each category its own colour automatically. So I thought I&amp;rsquo;d hash the category ID String into an HTML Hexadecimal colour. A search will find &lt;a href=&#34;https://stackoverflow.com/questions/3426404/create-a-hexadecimal-colour-based-on-a-string-with-javascript&#34;&gt;this stack overflow post&lt;/a&gt;, but I was using elm and thought it would be a fun task to translate this function into a functional style. Here&amp;rsquo;s how that went:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Still Trying To Find The Time</title>
      <link>https://808.ninja/hacker-dad/still-trying-to-find-the-time/</link>
      <pubDate>Wed, 22 Aug 2018 20:05:32 +0800</pubDate>
      <guid>https://808.ninja/hacker-dad/still-trying-to-find-the-time/</guid>
      <description>&lt;p&gt;Wow, I can&amp;rsquo;t believe it&amp;rsquo;s been 3 years since my last &amp;lsquo;Hacker Dad&amp;rsquo; post. And guess what, I&amp;rsquo;m still trying to find the time to work on self-motivated projects for fun, learning and profit. Granted, I&amp;rsquo;ve had a second kid (a daughter) 16 months ago, so that reset the countdown until they are more manageable.&lt;/p&gt;&#xA;&lt;p&gt;I DID get to do some fun DIY for her 1st Birthday, However.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Elm (0.18): A Refreshing Functional Programming Language For The Front End</title>
      <link>https://808.ninja/web-programmer/elm-functional-programming-for-the-front-end/</link>
      <pubDate>Sun, 05 Aug 2018 21:31:08 +0800</pubDate>
      <guid>https://808.ninja/web-programmer/elm-functional-programming-for-the-front-end/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve really been enjoying my recent experience with the front end (functional) programming language called &lt;a href=&#34;http://elm-lang.org/&#34;&gt;Elm&lt;/a&gt; for the following reasons:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://guide.elm-lang.org/architecture/&#34;&gt;Elm Architecture&lt;/a&gt; is great for single page apps (SPAs) as the rendered view will update automatically depending on the data model which gets manipulated when events are triggered.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Immutable variables and Strong typing produces reliable and readable code, although slightly trickier to write (at first).&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;The compiler is extremely smart and helpful (and a bit strict), often telling you exactly what went wrong and where to find it. Compiled Elm apps have slogan of &amp;ldquo;No Runtime Errors&amp;rdquo; since the Strict Typing allows the compiler to ensure there will not be any.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;It is compiled into javascript and easy to embed into any existing page/project.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Here is my guide to getting started (with vim as my IDE):&lt;/p&gt;</description>
    </item>
    <item>
      <title>base64 for html</title>
      <link>https://808.ninja/quick-tips/base64-for-html/</link>
      <pubDate>Thu, 21 Sep 2017 13:02:33 +0800</pubDate>
      <guid>https://808.ninja/quick-tips/base64-for-html/</guid>
      <description>&lt;p&gt;the following commands mentioned on &lt;a href=&#34;https://stackoverflow.com/questions/16918602/how-to-base64-encode-image-in-linux-bash-shell&#34;&gt;this post on stackoverflow&lt;/a&gt; can generate base64 encoded image for use in html.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;file=&amp;quot;DSC_0251.JPG&amp;quot;&#xA;type=$(identify -format &amp;quot;%m&amp;quot; &amp;quot;$file&amp;quot; | tr &#39;[A-Z]&#39; &#39;[a-z]&#39;)&#xA;echo &amp;quot;data:image/$type;base64,$(base64 -w 0 &amp;quot;$file&amp;quot;)&amp;quot;&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>my favourite way to see git log from command line</title>
      <link>https://808.ninja/quick-tips/my-favorite-way-to-see-git-log-from-command-line/</link>
      <pubDate>Thu, 21 Sep 2017 08:36:10 +0800</pubDate>
      <guid>https://808.ninja/quick-tips/my-favorite-way-to-see-git-log-from-command-line/</guid>
      <description>&lt;p&gt;it is&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;git log --graph --oneline --decorate --branches&lt;/code&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Video (MOV) Combiner</title>
      <link>https://808.ninja/jack-of-all-trades/video-combiner/</link>
      <pubDate>Fri, 01 Sep 2017 14:28:59 +0800</pubDate>
      <guid>https://808.ninja/jack-of-all-trades/video-combiner/</guid>
      <description>&lt;p&gt;High quality video with a DSLR is nice, and I find that when on an outing or at an event, it&amp;rsquo;s easy to take clips here and there to capture and document the memory. I usually switch between video clips and photos, but afterwards I don&amp;rsquo;t really like sorting through all the photos that much because I snap too many.&lt;/p&gt;&#xA;&lt;p&gt;Videos on the other hand, I find that, if I don&amp;rsquo;t delete it, then they can be combined together in chronological order and be good enough to share with friends and family.&lt;/p&gt;&#xA;&lt;p&gt;To save time, I created a command line script which will grab all clips from a folder and combine them into one video &amp;hellip;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Blog Theme Updated</title>
      <link>https://808.ninja/news/2017/09/blog-theme-updated/</link>
      <pubDate>Fri, 01 Sep 2017 12:43:14 +0800</pubDate>
      <guid>https://808.ninja/news/2017/09/blog-theme-updated/</guid>
      <description>&lt;p&gt;Well, it&amp;rsquo;s been ages since I&amp;rsquo;ve updated my blog. Usually I have something I want to blog about and then I get caught up with the idea that I haven&amp;rsquo;t implemented the features I wanted in my blog. Using &lt;a href=&#34;https://gohugo.io/&#34;&gt;Hugo&amp;rsquo;s&lt;/a&gt; taxonomies etc., I wanted to put into my blog the following:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Elixir: keyword list equivalent </title>
      <link>https://808.ninja/quick-tips/elixir-keyword-list-equivalent/</link>
      <pubDate>Fri, 18 Nov 2016 09:32:28 +0800</pubDate>
      <guid>https://808.ninja/quick-tips/elixir-keyword-list-equivalent/</guid>
      <description>&lt;p&gt;Just a quick reminder that these are equal:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://808.ninja/post_images/2016-11/keyword-list-equiv.png&#34; alt=&#34;Elixir Keyword List Equivalents&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Merge All PDFs In A Folder</title>
      <link>https://808.ninja/jack-of-all-trades/merge-pdfs-in-a-folder/</link>
      <pubDate>Thu, 06 Oct 2016 08:01:24 +0800</pubDate>
      <guid>https://808.ninja/jack-of-all-trades/merge-pdfs-in-a-folder/</guid>
      <description>&lt;p&gt;I like to use Boogie Board Sync to take notes, then sync them to my Laptop using dropbox. Unfortunately, the Sync creates a one page PDF for each saved screen. Therefore, having one folder per sorted topic, I open up the folder in terminal and run the following simple script which I keep in my PATH.&lt;/p&gt;</description>
    </item>
    <item>
      <title>screenshot from command line</title>
      <link>https://808.ninja/quick-tips/screenshot-from-command-line/</link>
      <pubDate>Wed, 12 Aug 2015 09:20:32 +0800</pubDate>
      <guid>https://808.ninja/quick-tips/screenshot-from-command-line/</guid>
      <description>&lt;p&gt;If you have &lt;a href=&#34;http://www.imagemagick.org&#34;&gt;ImageMagick&lt;/a&gt; installed, you can use:&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;import filename.png&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;to then select an image window via a mouse. Or, the pure command line method of:&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;import filename.png -window root&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;to take a snapshot of the whole screen.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Step 1: Find The Time</title>
      <link>https://808.ninja/hacker-dad/step-1-find-the-time/</link>
      <pubDate>Tue, 11 Aug 2015 15:35:16 +0800</pubDate>
      <guid>https://808.ninja/hacker-dad/step-1-find-the-time/</guid>
      <description>&lt;p&gt;My newborn son arrived 3 weeks ago, weighing in at a whopping 9.4 lbs. My poor wife battled out 30 hours of labour, and finally the doctors insisted that she have a C-section. Now we&amp;rsquo;re learning as we go and trying to keep our heads above water.&lt;/p&gt;&#xA;&lt;p&gt;Surprisingly, I have been able to get coding sprints in and accomplish things here and there. Sleep has been scarce, however.&lt;/p&gt;&#xA;&lt;p&gt;At this point, I have a strong desire to be both of two things:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A good father and husband&lt;/li&gt;&#xA;&lt;li&gt;A hacker who can productively make cool things&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Step 1 for me will be to &lt;strong&gt;find the time&lt;/strong&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hacking Until The Baby Comes</title>
      <link>https://808.ninja/news/2015/07/hacking-until-the-baby-comes/</link>
      <pubDate>Wed, 15 Jul 2015 10:37:37 +0800</pubDate>
      <guid>https://808.ninja/news/2015/07/hacking-until-the-baby-comes/</guid>
      <description>&lt;p&gt;Although there hasn&amp;rsquo;t been any updates to this blog, I actually have been hacking away and learning some new tools which I&amp;rsquo;m very excited about. My wife has been pregnant for the last 9 months, and I&amp;rsquo;ve had to prioritise baby preparations above my blog updates. Now that most of my preparations are in place, I can finally take a breath and look at this blog again while we wait. My baby boy can come any day now (anyone have stories of hacking in between newborn raising?).&lt;/p&gt;&#xA;&lt;p&gt;The tools I&amp;rsquo;ve been excited about are &lt;a href=&#34;http://elixir-lang.org&#34;&gt;Elixir&lt;/a&gt; and the wonderful &lt;a href=&#34;http://phoenixframework.org&#34;&gt;Phoenix Framework&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>New Blog</title>
      <link>https://808.ninja/news/2015/02/new-blog/</link>
      <pubDate>Wed, 04 Feb 2015 05:11:55 +0800</pubDate>
      <guid>https://808.ninja/news/2015/02/new-blog/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve finally started a new blog at 808.ninja.&lt;/p&gt;&#xA;&lt;p&gt;It&amp;rsquo;s bare at the moment, but hopefully my newly chosen blogging platform will allow me to be more efficient while writing posts. I have big plans for how I&amp;rsquo;m going to organise all of the varying content.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
