Agile mmkay

Came across Uncle Bob Martin’s Clean Agile talk1, putting words to paper on it… DRAFT so far It seems a lot of the original folks from the original Agile Manifesto are speaking up about how “the industry " got it all wrong. Dave Thomas emphasizes, it’s a adjective not a noun. Martin Fowler, emphasizes that SAFE is Shitty Agile for Enterprises. I came across a presentation from Robert Martin introing his book Clean Agile recently too. ...

June 4, 2025 · (updated August 4, 2025) · 4 min · 721 words · Michal Piekarczyk

super scripts

adapting super script references I was mentioning in another post1 about switching from hyperlinks to citation style links thanks to seeing Doug Slater’s2 use of this technique. I am sure I have seen it elsewhere too but I forget. how to use the new technique An inline reference is simply “some text<sup>[1](#references)</sup>”, which has a corresponding 1. blahblah at the references at the end To make sure hugo allows the custom <sup> html you need in your config.yaml or config.toml something like ...

May 31, 2025 · (updated June 2, 2025) · 1 min · 161 words · Michal Piekarczyk

tabs vs spaces redux

Going over Rich Hickey’s Simple Made Easy talk, clicked for me not just w.r.t. code but behaviorally1 too. So now I’m seeing the braids and weaves everywhere. Why do we still use browser tabs, they are very distracting when they accumulate. And the fact that they do accumulate is almost its own evidence of distraction that has occurred. But when you think, okay let me close the tabs, you try to close a tab but you read it and instantly get sucked back into what you were doing before. And since context switching penalties are high2, you cannot quickly go back to what you were trying to do prior. There is a sunk cost to tabs you have opened. The one tab browser extension3 is a brilliant hack to this. Just click the gem and poof no more tabs. Probably since we all study data structures and algorithms4 , shouldn’t the alternative of using “browser stacks” instead of “browser tabs” be the more obvious choice? Instead it is almost like our browsers follow the rules of improve comedy, “yes and!”. ...

May 31, 2025 · (updated June 2, 2025) · 3 min · 595 words · Michal Piekarczyk

trials of error

I have very much appreciated Anna Lembke’s Dopamine Nation. Easy rewards brings the gremlins that sit on the pain side of the scale, and thats withdrawal. In contrast, working through a challenging task, with mini milestones along the way, is reinforcing and stimulating. And small risks in the work feel good too. This is trial and error. I suppose trial and error is a kind of one armed bandit slot machine too but it involves effort and energy and care and attention, and it lets you learn of course and you come out with some kind of end product hopefully. And if you feel proud of what you did, that feels good, especially if it helps someone else. ...

May 31, 2025 · 2 min · 361 words · Michal Piekarczyk

Terminate Your Photos

Continuing, my apple to immich experience, spending a lot of time on my immich bash terminal, I often had the need to look at my photos but bash is headless of course. Yes, of course immich is a browser based photo server of course, but often I found myself needing to look at some specific photo more quickly without finding it wihin the immich gui. Enter chafa2 I had the need and an idea of just using maybe ascii art to help and found someone had already done this and it was called chafa! Image to text redefined haha. ...

May 17, 2025 · (updated February 1, 2026) · 1 min · 130 words · Michal Piekarczyk

apple photos to immich

draft A few weeks ago stumbled upon an amazing Apple iPhoto alternative, immich, a self hosted photo server, and I have been on the journey to migrate but wow Apple has been shining exceptionally in maintaining its death-grip on my assets, relentlessly reaffirming why I am trying to get off Apple Photos. Immich gives you the control Apple Photos lacks and it has really nice UI elements too. Willing to serve Seeing the bustling development on the immich github and pleased to see both geolocation pinching goodness and time granularity on a nice demo site, I started flipping through the nice looking docs, but I did not easily notice how I can start serving my immich instance in the cloud. Doing some more online reading, I realized home self-hosting is the reason why. ...

May 16, 2025 · (updated June 2, 2025) · 3 min · 565 words · Michal Piekarczyk

simple made easy

drafting… 2025-05-10 Simple Made Easy, Richard Hickey talk, takeaways, Listening to this presentation, from the frame of why do codebases get difficult to change , but also how you plan changes you want to make on the scale of a “story” or “bug” and also just a “day” and even a single block of time you have for a particular story. The definition of simple as simplex as one interleave and less simplex as more “concepts” that are taken together to be more “complex”. ...

May 9, 2025 · (updated June 2, 2025) · 4 min · 743 words · Michal Piekarczyk

Drop it Like It's null

Arghh ha ha I have been messing around with trying to understand why the transactions I see on my Tiller from my credit card, are not as many as what I see when I pull the csv of transactions straight from my credit card website. Dohh. During my data wrangling, I had to manually copy and paste transactions out of my Google Sheets, because Google Sheets oddly enough does not have the capability of “exporting as csv” what has undergone a data filter. So you are awkwardly forced to manually copy and paste it out. ...

April 19, 2025 · (updated June 2, 2025) · 3 min · 434 words · Michal Piekarczyk

collect logseq logbook stats

Figured, I’m not good at logseq datalog queries yet, so may as well just read logseq LOGBOOK data using plain python. And with assist of chat gpt, I have a nice proof of concept. from pathlib import Path import polars as pl import time_log as tl journals_dir = "mgraphblah/journals" pattern = "2025_*.md" out_vec = tl.iterate_across_journals(journals_dir, pattern) df = pl.from_dicts(out_vec) how much time I spent on taxes? per_tag_stats = df.explode("Tags").group_by("Tags").agg(pl.col("Duration (mins)").sum().alias("Total minutes")) per_tag_stats.filter(pl.col("Tags") == "my taxes/2024") ┌───────────────┬───────────────┐ │ Tags ┆ Total minutes │ │ --- ┆ --- │ │ str ┆ i64 │ ╞═══════════════╪═══════════════╡ │ my taxes/2024 ┆ 260 │ └───────────────┴───────────────┘ Source time_log.py ...

April 5, 2025 · 2 min · 265 words · Michal Piekarczyk

good vibes all around

I was reading Andrej Karpathy’s original post, https://x.com/karpathy/status/1886192184808149383, on vibe coding. And yesterday, first time I tried VS Code, in order to try Codeium, as my first touch of edit assist which the early GitHub Copilot I test drove before did not have. Cursor introduced the edit concept but I hadn’t tried this because I was already paying for Open AI ChatGPT, so I didn’t want to double dip. But I got a chance to try Codeium at work, so I did. ...

April 4, 2025 · (updated June 2, 2025) · 4 min · 707 words · Michal Piekarczyk