{"@attributes":{"version":"2.0"},"channel":{"title":"Jiby's toolbox","link":"https:\/\/jiby.tech\/","description":"Recent content on Jiby's toolbox","generator":"Hugo","language":"en-us","lastBuildDate":"Thu, 30 Jul 2026 00:00:00 +0100","item":[{"title":"Solving Wordle with information theory and SQLite","link":"https:\/\/jiby.tech\/post\/solving-wordle-sqlite-entropy\/","pubDate":"Thu, 30 Jul 2026 00:00:00 +0100","guid":"https:\/\/jiby.tech\/post\/solving-wordle-sqlite-entropy\/","description":"<p>I&rsquo;ve previously spent some time <a href=\"..\/..\/post\/literate-wordle\">implementing wordle<\/a>, and since then enjoyed watching others discuss how to solve the game using programming, especially the solutions based on information theory.<\/p>\n<p>Naturally, I was interested in trying them out, given my own implementation of the game. Let me show you how I used SQL to solve Wordle, using maths from information theory.<\/p>\n<h2 id=\"wordle\">Wordle?<\/h2>\n<p>Briefly, <a href=\"https:\/\/www.nytimes.com\/games\/wordle\/index.html\">Wordle<\/a> is a daily word game run by the New York Times, where we need to find a secret 5-letter word within 6 attempts.\nYou may know this game from the American\/Dutch TV game Lingo, or the French TV game Motus.\nTo guide us, each character of each attempt is scored as either perfect (right letter, right position) = &ldquo;\ud83d\udfe9&rdquo;, or wrong position (letter is used but elsewhere) = &ldquo;\ud83d\udfe8&rdquo;, or a miss (character not used at all in the word) = &ldquo;\u2b1c&rdquo; (or &ldquo;\u2b1b&rdquo; depending on OS).<\/p>"},{"title":"Full-text search using DuckDB","link":"https:\/\/jiby.tech\/post\/duckdb-full-text-search-songs\/","pubDate":"Fri, 17 Apr 2026 00:00:00 +0100","guid":"https:\/\/jiby.tech\/post\/duckdb-full-text-search-songs\/","description":"<p>I like to explore data, as can be seen in previous posts.\nI also love to learn new tools on the way.\nIn this case, a friend&rsquo;s request for help turned into a challenge around fuzzy matching of text strings.\nSo I took the opportunity to go and learn a new tool, and to present it here.<\/p>\n<p>Let me tell you about DuckDB, which acts like sqlite on steroids, perfect for data analysis of all kinds, but viewed through the lens of full-text similarity search.<\/p>"},{"title":"Mobile-based development with Termux on Android","link":"https:\/\/jiby.tech\/post\/nomad-dev-termux-android\/","pubDate":"Tue, 17 Mar 2026 00:00:00 +0000","guid":"https:\/\/jiby.tech\/post\/nomad-dev-termux-android\/","description":"<p>I&rsquo;ve <a href=\"..\/android-terminal-with-termux\">written a lot about Termux in the past<\/a>, and since then, have continued to refine workflows around Android terminals, trying to push it to extremes. With extra software, or accessories, how light can you go without a real computer, while retaining a good development environment?<\/p>\n<p>In this post, I want to show how far a tiny bit of hardware and software together have pushed my &ldquo;travel mindset&rdquo;, while preserving a good amount of comfort.<\/p>"},{"title":"Keyboard navigation Vimium in Firefox","link":"https:\/\/jiby.tech\/post\/firefox-keyboard-extensions-vimium\/","pubDate":"Thu, 09 Oct 2025 00:00:00 +0100","guid":"https:\/\/jiby.tech\/post\/firefox-keyboard-extensions-vimium\/","description":"<p>Today I want to celebrate niche tooling that makes life more comfortable on the computer.\nFor context, I like to work with computers from the keyboard, minimizing use of the mouse.\nBut this is often difficult to do consistently, especially when everything is a web app, a world known to be mouse-focused.\nLet me tell you about the fantastic Firefox extensions Vimium, and Edit With Emacs, both of which make the keyboard life more pleasant.<\/p>"},{"title":"You need a risk register","link":"https:\/\/jiby.tech\/post\/you-need-a-risk-register\/","pubDate":"Sun, 16 Feb 2025 00:00:00 +0000","guid":"https:\/\/jiby.tech\/post\/you-need-a-risk-register\/","description":"<p>I&rsquo;ve been thinking a lot about risk registers recently. I feel like people don&rsquo;t\nknow enough about them, or reject them on principle for being &ldquo;more process&rdquo;.<\/p>\n<p>I&rsquo;ve worked in projects where the process was heavy, and like many, I very much\ndidn&rsquo;t like it then. But since moving to more &ldquo;agile&rdquo; environments, I&rsquo;ve\nrepeatedly been missing the structured aspects of writing things down, and\nwished for more rigour,  more &hellip; process?<\/p>"},{"title":"Documenting Makefiles via a help message","link":"https:\/\/jiby.tech\/post\/make-help-documenting-makefile\/","pubDate":"Sun, 21 Jul 2024 00:00:00 +0100","guid":"https:\/\/jiby.tech\/post\/make-help-documenting-makefile\/","description":"<p>I&rsquo;ve written in the past about <a href=\"..\/makefiles-presentation\">using Makefiles for build automation and documentation<\/a>.\nBut sometimes I wish to provide help to users, that <em>doesn&rsquo;t<\/em> require\nbeing a Makefiles expert to read!<\/p>\n<p>Let&rsquo;s explore how we can teach users our build system by turning\nthe project&rsquo;s Makefile (and <code>awk<\/code>) into a cheap documentation-as-code tool.<\/p>\n<h2 id=\"what-it-looks-like\">What it looks like<\/h2>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span>make <span style=\"color:#b58900\">help<\/span>\n<\/span><\/span><\/code><\/pre><\/div><div class=\"src-block-caption\">\n  <span class=\"src-block-number\">Code Snippet 1:<\/span>\n  How to ask for help\n<\/div>\n<figure><img src=\"https:\/\/jiby.tech\/ox-hugo\/make-help-rendered.png\"\n\t\t\talt=\"Figure 1: Result of asking for help\" width=\"100%\"><figcaption>\n\t\t\t<p><span class=\"figure-number\">Figure 1: <\/span>Result of asking for help<\/p>"},{"title":"My python toolbox","link":"https:\/\/jiby.tech\/post\/my-python-toolbox\/","pubDate":"Mon, 01 Apr 2024 00:00:00 +0100","guid":"https:\/\/jiby.tech\/post\/my-python-toolbox\/","description":"<p>The packaging workflow of Python has historically been a bit messy, starting\nwith <code>pip<\/code> being <em>just<\/em> good enough, and virtualenvs being a great idea but a\nbit unwieldy. Installation was difficult, and tools like anaconda filled the\ngaps.<\/p>\n<p>Lately, there&rsquo;s been renaissance of package tooling in Python thanks to other\nlanguages innovating in the area, inspiring and pollinating the ecosystem,\nimproving the comfort of development.<\/p>\n<p>I want to present here the tools that I use to work with Python, usually latest\niterations on well known concepts, to show that Python can be both fun to play\nwith, <em>and<\/em> safe enough if we use modern tools.<\/p>"},{"title":"Reframing tickets as engineering records","link":"https:\/\/jiby.tech\/post\/tickets-as-engineering-records\/","pubDate":"Thu, 28 Mar 2024 00:00:00 +0000","guid":"https:\/\/jiby.tech\/post\/tickets-as-engineering-records\/","description":"<p>In the software world, tickets (as implemented in Jira, etc) often have a bad\nreputation, and I think it&rsquo;s undeserved, once we reframe what, or who tickets\nare <em>for<\/em>.<\/p>\n<p>In this article I want to revisit the purpose of tickets, usually &ldquo;tickets for\nproject management&rdquo;, explore an alternative viewpoint of &ldquo;tickets as engineering\nrecords&rdquo;, and highlight how tickets should be useable as asynchronous\nalternative to (synchronous) communication.<\/p>\n<h2 id=\"tickets-as-project-management\">Tickets as project management<\/h2>\n<p>Under this fairly common viewpoint, tickets are a project manager&rsquo;s tool, almost\ninflicted upon devs, likely in an attempt to punish them for their arcane powers\nover machine, who knows (I&rsquo;m of course exaggerating on purpose).<\/p>"},{"title":"Embrace the Early Exit","link":"https:\/\/jiby.tech\/post\/embrace-early-exit\/","pubDate":"Thu, 01 Feb 2024 00:00:00 +0000","guid":"https:\/\/jiby.tech\/post\/embrace-early-exit\/","description":"<p>In programming, there are patterns everywhere: patterns of building code,\npatterns for organising components, even patterns for how to test things. A\nwhole industry is looking for\npatterns to solve all their problems.<\/p>\n<p>But amongst them all, there&rsquo;s one pattern I whole-heartedly love, it&rsquo;s the Early Exit. In this\nshort and sweet post, I want to declare my undying love to the Early Exit,\nsharing my excitement.<\/p>\n<h2 id=\"from-if-plus-else-to-ladders-and-conditionals-hell\">From If+else to ladders and conditionals hell<\/h2>\n<p>Functions routinely need to check some edge case isn&rsquo;t hit, usually with more\nedge cases than actual routine happy-path code lines.<\/p>"},{"title":"Offline developer docs: Dash docsets via Zeal","link":"https:\/\/jiby.tech\/post\/offline-dev-docs-zeal-dash-docsets\/","pubDate":"Fri, 15 Dec 2023 00:00:00 +0000","guid":"https:\/\/jiby.tech\/post\/offline-dev-docs-zeal-dash-docsets\/","description":"<p>Since my earliest university days, I&rsquo;ve spent a lot of time trying to get better\nat computers, immersing myself in the world of Linux, and generally\nimproving my software development skills.<\/p>\n<p>One of the aspects that was the most helpful to help me grow was attempting to\nreplicate my normal dev workflow, but with less: Learn to operate on Linux not\nWindows, then learn to do dev via on the terminal instead of GUIs, and\neventually learn to do the same but offline, without any network calls.<\/p>"},{"title":"My git worfklow","link":"https:\/\/jiby.tech\/post\/my-git-worfklow\/","pubDate":"Fri, 30 Jun 2023 00:00:00 +0100","guid":"https:\/\/jiby.tech\/post\/my-git-worfklow\/","description":"<p>Every now and then, at work, I find myself discussing git worfklows, commit\nmessages, branching, releasing, versioning, changelogs etc. Since my opinion has\nremained fairly consistent for the past few years, I found myself repeating the\nsame points a lot, so I wrote it down. This page is the resulting compilation of\nmy opinions on the software development lifecycle (SDLC), without workplace-specific tangeants.<\/p>\n<p>The article is broken down into ideas + recommendations, with recommendations in\nbold. Obviously, this workflow isn&rsquo;t applicable to everyone (sorry, Google! This\nisn&rsquo;t a free consultation!) as different teams have needs that should get dealt\nwith differently.<\/p>"},{"title":"Quick-start project templates via cookiecutter","link":"https:\/\/jiby.tech\/post\/quick-start-project-templates-via-cookiecutter\/","pubDate":"Wed, 05 Apr 2023 00:00:00 +0100","guid":"https:\/\/jiby.tech\/post\/quick-start-project-templates-via-cookiecutter\/","description":"<p>The most boring part of setting up a new code project is typing the boilerplate:\nit&rsquo;s easy to forget bits, so we just copy the last project&rsquo;s folder and &ldquo;file the serial numbers off&rdquo; on the project name.<\/p>\n<p>Copy-pasta-driven project setup is not great though, as it&rsquo;s too easy to forget\nreplacing values in obscure files, or misunderstand why project is set up that\nway in the first place, leading to nasty surprises down the line.<\/p>"},{"title":"Presentation: Makefiles for build automation and documentation","link":"https:\/\/jiby.tech\/post\/makefiles-presentation\/","pubDate":"Sun, 23 Oct 2022 00:00:00 +0100","guid":"https:\/\/jiby.tech\/post\/makefiles-presentation\/","description":"<p>Last Friday, I performed a presentation to my colleagues about Makefiles, and I\nwant to share it to the public.<\/p>\n<p>Of note, this presentation is setting aside what people usually know of\nMakefiles (autoconf-generated blobs, opaque to any inspection because\nmachine-created), and instead I introduce the concept of file transformation as\na graph, then teach Makefiles basics (using SQL commands as an example). We then\nmove on to my plea for simple Makefiles, and their potential for both\ndocumentation (explain what your codebase commands are, to the juniors), and as\nlightweight automation (avoid typing long boring commands).<\/p>"},{"title":"Literate wordle","link":"https:\/\/jiby.tech\/post\/literate-wordle\/","pubDate":"Sat, 07 May 2022 00:00:00 +0100","guid":"https:\/\/jiby.tech\/post\/literate-wordle\/","description":"<p>I&rsquo;ve recently written a series of articles about Gherkin: <a href=\"..\/gherkin-features-user-requirements\/\">its usage for\nrequirements gathering<\/a>, about <a href=\"..\/bdd-dreams-cucumber-and-gherkin\/\">its uses in BDD<\/a>, and a <a href=\"..\/low-tech-cucumber-replacement\/\">lower-tech alternative to Cucumber<\/a>, which I&rsquo;m still experimenting with.<\/p>\n<p>I wanted to showcase all of these ideas brought together, as well as show how\ncomfy modern Python tooling can be. But more than writing code, I would need to\nexplain my reasoning as we draft the program. So I picked up again a tool I always\nwanted to play with: Literate Programming.<\/p>"},{"title":"Reinventing IP Fragmentation","link":"https:\/\/jiby.tech\/post\/reading-rfc-reinventing-ip-fragmentation\/","pubDate":"Sat, 07 May 2022 00:00:00 +0100","guid":"https:\/\/jiby.tech\/post\/reading-rfc-reinventing-ip-fragmentation\/","description":"<p>Let&rsquo;s explore how a file-format design exercise turned into\nreinventing the wheel, and let&rsquo;s all appreciate how lucky we are that\nthe protocols that the internet are built on have fantastic public\ndocuments called <a href=\"https:\/\/en.wikipedia.org\/wiki\/Request_for_Comments\">RFC<\/a>s.<\/p>\n<h2 id=\"designing-a-file-format\">Designing a file format<\/h2>\n<p>I was idly thinking about designing a good binary file format for a side project\nof mine called <a href=\"https:\/\/github.com\/OverkillGuy\/qrxfil\">qrxfil<\/a>. The project aims at QR-code-based file export: split a\nfile in many pieces (based on content limit of QR codes) before reassembling it\non the other side.<\/p>"},{"title":"Low-tech Cucumber replacement","link":"https:\/\/jiby.tech\/post\/low-tech-cucumber-replacement\/","pubDate":"Mon, 04 Apr 2022 00:00:00 +0100","guid":"https:\/\/jiby.tech\/post\/low-tech-cucumber-replacement\/","description":"<p>In the previous post, I showed how Gherkin Scenarios provide a great framework\nfor acceptance test definition. I also showed how the dreams of the BDD movement\nextend to automating Gherkin, using a tool called Cucumber, enforcing\ntraceability of acceptance tests.<\/p>\n<p>In this article, I want to explain my disilusionment towards Cucumber, and show\nhow a low-tech alternative emerged that I believe covers most of the value\nfor none of the effort.<\/p>"},{"title":"BDD Dreams, Cucumber And Gherkin","link":"https:\/\/jiby.tech\/post\/bdd-dreams-cucumber-and-gherkin\/","pubDate":"Sun, 20 Mar 2022 00:00:00 +0000","guid":"https:\/\/jiby.tech\/post\/bdd-dreams-cucumber-and-gherkin\/","description":"<p>In the <a href=\"..\/..\/post\/gherkin-features-user-requirements\/\">previous post in this series on Gherkin<\/a>, I showed the tools that Gherkin\nFeatures provide for requirements tracking, and mentioned ambitious goals for\nthe Behaviour-driven Development (BDD) movement. In this article, I want to\nexpand on these BDD ideals, show Gherkin Scenarios, and explain how the dream of\ntraceability led to Cucumber, a tool for automating acceptance test execution,\ntracing them back to Gherkin Scenarios. We&rsquo;ll set aside my personal feelings on\nthese tools for a future post.<\/p>"},{"title":"Gherkin Features for user requirements","link":"https:\/\/jiby.tech\/post\/gherkin-features-user-requirements\/","pubDate":"Mon, 21 Feb 2022 00:00:00 +0000","guid":"https:\/\/jiby.tech\/post\/gherkin-features-user-requirements\/","description":"<p><strong>The most common mistake I see developers make is building the wrong thing<\/strong>: Not\ntracking exactly what is required from the start, and instead getting excited\nabout the cool technical problems ahead. Fast forward a few days, weeks, months,\nshowcasing the product near completion, suddenly the rift between what&rsquo;s needed\nand what was built becomes obvious, in a frenzy of last minute changes to reach\nthe original goal under pressure from deadlines.<\/p>"},{"title":"Separating Spam from Ham with the shell","link":"https:\/\/jiby.tech\/post\/image-list-separate-spam-ham-with-shell\/","pubDate":"Mon, 22 Jun 2020 00:00:00 +0100","guid":"https:\/\/jiby.tech\/post\/image-list-separate-spam-ham-with-shell\/","description":"<p>Here&rsquo;s how attempting to export images off a Word Document\nled to a quest for data deduplication and classification using the\nshell.<\/p>\n<p>The images I wanted to export were MS Word diagrams drawn in Word,\nrather than PNG files<sup id=\"fnref:1\"><a href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\">1<\/a><\/sup>.\nBecause those doodle-shapes do not export to PNG well, I first\ncopy-pasted them into Powerpoint to get the familiar &ldquo;save as picture&rdquo;\ncontext menu. But a couple of images were still deformed beyond\nrecognition.<\/p>"},{"title":"Reproducible workspace deployment with Ansible and Vagrant","link":"https:\/\/jiby.tech\/post\/reproducible-workspace-ansible-vagrant\/","pubDate":"Thu, 11 Jun 2020 00:32:00 +0100","guid":"https:\/\/jiby.tech\/post\/reproducible-workspace-ansible-vagrant\/","description":"<p>Like many developers, I keep track of my configuration files in\nversion control, to make moving to new machines is simpler and share\ncode with others. This process started out for my Emacs config files\nat first, but grew to consume other aspects: bash functions, git\naliases&hellip; Since 2016, I have accumulated over <a href=\"https:\/\/github.com\/OverkillGuy\/jibyconf\">500 git commits<\/a>.<\/p>\n<p>Now the <a href=\"https:\/\/dotfiles.org\">dotfiles<\/a> are tracked, the next biggest pain is to install\npackages and folder structures and obscure commands required to set up\nsome subsystems needs which config files. Wouldn&rsquo;t it be nice to have\nan all-in-one setup?<\/p>"},{"title":"Using Awk to replace only some lines","link":"https:\/\/jiby.tech\/post\/awk-replace-some-lines\/","pubDate":"Sat, 16 Nov 2019 00:00:00 +0000","guid":"https:\/\/jiby.tech\/post\/awk-replace-some-lines\/","description":"<p>I was trying to convert bank-issued CSV files that have a weird data\nlayout, for automatic processing by the excellent <a href=\"https:\/\/www.ledger-cli.org\/\">ledger<\/a>. This made me\nlearn a new thing about <code>awk<\/code>. Follow me down the UNIXy goodness!<\/p>\n<p>The data I was getting looks like this:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-text\" data-lang=\"text\"><span style=\"display:flex;\"><span>Transaction Date,Transaction Description,Debit Amount,Credit Amount,Balance\n<\/span><\/span><span style=\"display:flex;\"><span>29\/02\/2018,Restaurant,14.5,,1234.2\n<\/span><\/span><span style=\"display:flex;\"><span>12\/03\/2018,ATM withdrawal,50,,1184.2\n<\/span><\/span><span style=\"display:flex;\"><span>23\/04\/2018,Deposited check,,100,1284.2\n<\/span><\/span><\/code><\/pre><\/div><p>Note the last line having 100 in a different column: The problem is\nthat, when receiving money, the transaction is logged in a separate\nentry (&ldquo;Credit Amount&rdquo;) than the (more common) case of debit, which\ngoes to &ldquo;Debit Amount&rdquo; column. My importing tools required a single\ncolumn, so the output must look like this:<\/p>"},{"title":"Git diff from empty commit","link":"https:\/\/jiby.tech\/post\/git-diff-empty-repo\/","pubDate":"Sun, 13 Oct 2019 00:00:00 +0100","guid":"https:\/\/jiby.tech\/post\/git-diff-empty-repo\/","description":"<p>In order to troubleshoot a bug in the very early history of a project\nusing git, I needed a way to show the git diff from &ldquo;nothing&rdquo; to the\nfirst commit. Since git keeps a linked graph of commits, what I wanted\nwas a diff from the commit before the first one. Searching the onlines\ndug up <a href=\"https:\/\/stackoverflow.com\/a\/40884093\">this answer on StackOverflow<\/a>, showing that there&rsquo;s a specific\ncommit hash we can use to diff from &ldquo;nothing&rdquo; to the first commit:<\/p>"},{"title":"Reverse-engineering webapp APIs with Firefox","link":"https:\/\/jiby.tech\/post\/reverse-engineer-api-with-firefox\/","pubDate":"Wed, 09 Oct 2019 00:00:00 +0100","guid":"https:\/\/jiby.tech\/post\/reverse-engineer-api-with-firefox\/","description":"<p>I&rsquo;m writing code to back up my user data off a website that lets me\n<span class=\"underline\">see<\/span> all of my info (including querying by time, account etc) but\ndoesn&rsquo;t have export features (officially). I am certain there&rsquo;s an API\nbehind the site that I just have to make sense of.<\/p>\n<p>Since the webapp is requesting data from the API when I click, we\nshould be able to record the web traffic to explore the API. My first\nthought was to use <code>tcpdump(8)<\/code>, a powerful network sniffer. But for\nHTTPS traffic, the TLS encryption makes the network-level capture\nuseless. We can of course look into <a href=\"https:\/\/mitmproxy.org\/\">MITM HTTPS proxies<\/a>. But it turns\nout it can be even easier than that, as we can tell Firefox to record\nthis for us during normal website use. Let&rsquo;s see how Firefox can help\nin reverse-engineering APIs!<\/p>"},{"title":"Git diff for prose","link":"https:\/\/jiby.tech\/post\/git-diff-lines-prose\/","pubDate":"Sun, 06 Oct 2019 00:00:00 +0100","guid":"https:\/\/jiby.tech\/post\/git-diff-lines-prose\/","description":"<p>When writing long sentences in documentation repositories, <code>git<\/code> tends to show\nreally unhelpful diffs. They are unreadable because long lines aren&rsquo;t broken,\nwhich hides edits happening towards end of line. A colleague of mine asked me if git\ncouldn&rsquo;t be configured to make this sort of thing more obvious. Challenge accepted!<\/p>\n<figure><img src=\"https:\/\/jiby.tech\/ox-hugo\/prose-diff-before.png\"\n\t\t\talt=\"Figure 1: Can you spot the edit made in a long line of text?\" width=\"100%\"><figcaption>\n\t\t\t<p>Figure 1: Can you spot the edit made in a long line of text?<\/p>"},{"title":"Git pretty graph","link":"https:\/\/jiby.tech\/post\/git-graph\/","pubDate":"Sun, 06 Oct 2019 00:00:00 +0100","guid":"https:\/\/jiby.tech\/post\/git-graph\/","description":"<p>Get a cool graph of commits from the command line! For newbies and experts\nalike, git is a bit hard to visualize. Here&rsquo;s a handy git command to make\nunderstanding git easier.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span>git log --decorate --oneline --graph\n<\/span><\/span><\/code><\/pre><\/div><figure><img src=\"https:\/\/jiby.tech\/ox-hugo\/git-graph.png\"\n\t\t\talt=\"Figure 1: Git graph of this repository\" width=\"100%\"><figcaption>\n\t\t\t<p>Figure 1: Git graph of this repository<\/p>\n\t\t<\/figcaption>\n<\/figure>\n\n<p>This can be made into a git command via an entry your <code>~\/.gitconfig<\/code>:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-fallback\" data-lang=\"fallback\"><span style=\"display:flex;\"><span>[alias]\n<\/span><\/span><span style=\"display:flex;\"><span>\tgraph = log --decorate --oneline --graph\n<\/span><\/span><\/code><\/pre><\/div><div class=\"src-block-caption\">\n  <span class=\"src-block-number\">Code Snippet 1<\/span>:\n  Alias \"graph\" defined in ~\/.gitconfig file\n<\/div>\n<p>Invoke with<\/p>"},{"title":"Presenting Android terminal with Termux (EdLug)","link":"https:\/\/jiby.tech\/post\/android-terminal-with-termux\/","pubDate":"Tue, 01 Oct 2019 00:00:00 +0100","guid":"https:\/\/jiby.tech\/post\/android-terminal-with-termux\/","description":"<p>Last night, I presented about <a href=\"https:\/\/termux.com\">Termux<\/a> to EdLug, the Edinburgh Linux User group\n(see the <a href=\"https:\/\/www.meetup.com\/Edinburgh-Linux-User-Group-EdLUG\/events\/264919828\/\">event page on meetup.com<\/a>) in a talk titled &ldquo;The freedom of shelling\nout on Android&rdquo;. It was tons of fun showing off how your Android phone\/tablet\ngetting a terminal unlocks a powerful tool!<\/p>\n<div title=\"Termux running vim, gcc, strace, with tmux splitting screen. Credit: Termux website\">\n<img src=\"..\/..\/presentation\/termux\/pictures\/tmux-framed.png\" alt=\"tmux-framed.png\" width=\"40%\" title=\"Termux running vim, gcc, strace, with tmux splitting screen. Credit: Termux website\" \/>\nI've made the slides available on this website, click on the slide below.\nRemember that there are speaker notes for people following at home, press `S` to\nuse them. These were built with [Reveal.js](https:\/\/revealjs.com).\n<\/div>\n<figure><a href=\"..\/..\/presentation\/termux\/android_shell_termux.html\"><img src=\"..\/..\/presentation\/termux\/pictures\/termux-prez-intro.png\"\n\t\t\talt=\"Figure 1: Click to view the slides\" width=\"100%\"><\/a><figcaption>\n\t\t\t<p><span class=\"figure-number\">Figure 1: <\/span>Click to view the slides<\/p>"},{"title":"About me","link":"https:\/\/jiby.tech\/about\/","pubDate":"Thu, 19 Sep 2019 00:00:00 +0100","guid":"https:\/\/jiby.tech\/about\/","description":"<p><em>Who am I?<\/em><\/p>\n<p>I&rsquo;m Jean-Baptiste Doyon, but everyone calls me Jb (sounds like &ldquo;G-Bay&rdquo; in\nFrench). Across many misinterpretations, it evolved into the online handle Jiby\n(my French friends make it sound like the English initialism for <a href=\"https:\/\/en.wikipedia.org\/wiki\/Gb\">Great\nBritain<\/a>), giving the domain name of this website.<\/p>\n<p>While I&rsquo;m natively French, originally from a town near Nice, I moved across\nEurope a few times for my studies before settling in Edinburgh, Scotland.<\/p>"},{"title":"First post","link":"https:\/\/jiby.tech\/post\/hello-world\/","pubDate":"Wed, 18 Sep 2019 00:00:00 +0100","guid":"https:\/\/jiby.tech\/post\/hello-world\/","description":"<p>Welcome to my website!<\/p>\n<p>This blog is meant to record some of the thoughts I keep coming back to, or\ndiscussions I&rsquo;ve had over and over again with different people. My\nrule of thumb for inclusion here is &ldquo;if you&rsquo;ve had to say it more than\ntwice, it&rsquo;s time to write it down&rdquo;.<\/p>\n<p>See the <a href=\"https:\/\/jiby.tech\/about\/\">About page<\/a> for my background and motivations.<\/p>\n<p>Look forward more posts as I try to condense my thoughts in written\nform.<\/p>"}]}}