Archive

Full Post List

Dec 8, 2024: Newsletter November 2024: A New Project Compared to last month, this month I did some programming in my spare time. I had fewer commitments, and my mind started thinking about various …

Dec 4, 2024: Today I ran part of the way to work. It was a cold, beautiful winter morning in Stockholm.

Nov 28, 2024: Sometimes, I solve programming problems by coding on paper. A few days ago, it looked like this:

Nov 28, 2024: I’ve started working on a code editor that is a mix of a text editor and a structured editor. It is all text, but parsers and pretty printers …

Nov 23, 2024: We got some more snow. I like running in the winter. Especially when there is snow and the sun is shining.

Nov 20, 2024: I needed to submit some heic photos to a service that only accepted jpg. I didn’t know about the heic format, but a little searching gave me a …

Nov 20, 2024: Today was the first day of snow this season. Not much. I’m looking forward to many more runs on a white trail.

Nov 16, 2024: I was researching how to run Black (and possibly other formatters) from Vim and found Ergonomic mappings for code formatting in Vim. It was very …

Nov 3, 2024: How would you improve this code? def update_r_users(service) r_users = [] for user in service.get_all_users(): if "r" in user: …

Nov 3, 2024: Newsletter October 2024: Primitive Obsession? Normally I do something related to programming in my spare time every month. I read something that I find interesting and want to share. Or I have …

Nov 2, 2024: Today I learned about the Rison data serialization format. I wrote a function to convert a Python value to Rison format. It was an elegant recursive …

Nov 2, 2024: I’ve used testing without mocks quite extensively now. I’ve also used it in a work project for more than a year. My experience is that …

Oct 28, 2024: It’s getting dark. It gives variation to the running.

Oct 16, 2024: Various things have kept me from running for a while. Today I had enough. I just had to go for a short run. It was the first run with warmer clothes. …

Oct 14, 2024: Newsletter September 2024: Bash Redirects and Reading This month I read How to Use a Zettelkasten to Write Stories Packed with Emotion. It inspired me to write something using that technique. The topic …

Sep 5, 2024: Pull requests discourage experiments because changes can only propagate after approval. The idea behind PRs is to only approve “good” …

Sep 5, 2024: Today I just needed to run. I had not run since I hurt my achilles tendon almost a month ago. I wanted to see if it still hurt. I felt something, but …

Sep 5, 2024: If you want to know how to implement a Bash-like shell, with support for redirects, in only 31 lines of Python, you should check out my latest blog …

Sep 4, 2024: Do you know the difference between the following Bash commands? program 2>&1 >/tmp/log.txt program >/tmp/log.txt 2>&1 If not, you …

Sep 4, 2024: Bash Redirects Explained I thought I knew how Bash redirects worked. If I wanted to redirect the output of a command to a file, I’d type this: program > /tmp/log.txt …

Sep 1, 2024: I just implemented a small shell in 29 lines of Python that has support for redirects: $ ./minishell.py ~~?~~> echo hello hello ~~0~~> wc -l …

Sep 1, 2024: Newsletter August 2024: Smart Notes and Blogging In August I had my last week of summer vacation. I read a book that made me want to improve my note taking tool, I did some programming on hobby …

Aug 29, 2024: Linking (and how it has evolved) in Smart Notes I created Smart Notes to be a digital note taking application that follows principles from the Zettelkasten method, as explained in Sönke …

Aug 21, 2024: Did another bike workout at the gym. Similar heart rate and duration as my regular runs, but felt like more effort because I’m not used to …

Aug 19, 2024: Today I bought a gym membership. I spent another 40 minutes on the bike. I felt good after the workout, but I didn’t get any ideas or …

Aug 18, 2024: Yes! The draft makes sense now. I think. I had a rough idea of what I wanted to write about. I had lots of notes that I struggled to fit into a …

Aug 17, 2024: Today I spent 40 minutes on a bike in the gym. I’d rather be running, but I’ve got some pain in my achilles tendon, so I explore …

Aug 11, 2024: It’s time for a new avatar. I’m thinking I should update them more frequently. Maybe yearly? Anyway, here is the new one.

Aug 11, 2024: It’s like it’s all out there. Energy, motivation, well being, creativity… You just have to put on a pair of shoes and go out and …

Aug 11, 2024: How I found out about Micro.blog When I was researching the Zettelkasten method (a specific way to take notes), I ended up on Writing Slowly. It looked like this: Besides the content, …

Aug 11, 2024: I just implemented support in Smart Notes for giving links a text description. This was inspired by recent readings about concept mapping and …

Aug 11, 2024: My website as a home (found via End of Year Hyperlink Dump) talks about a metaphor for websites: I feel as if someone is giving me a tour of their …

Aug 9, 2024: I first learned programming by hitting “View Page Source” on a web page to learn how something was implemented. Today, 20+ years later, I …

Aug 9, 2024: Poor man's redirect in a static site I just moved my blog to Micro.blog. My domain name, rickardlindberg.me, now points to the new blog. I have not yet migrated all pages from my old …

Aug 9, 2024: I was tired and low on energy. I knew I needed to run. I know that the longer I run, the more energy I get back. I also clarified my thinking on an …

Aug 8, 2024: Today I did a lot of focused work. My brain was tired. Solution? Running. It worked. It always works. That’s why I run.

Aug 1, 2024: Newsletter July 2024: Note Making Re-Visited This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jul 26, 2024: Output Tracking vs Mocks This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jul 2, 2024: Newsletter June 2024: Quines and Smalltalk This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jun 8, 2024: May 2024 Update This post has not yet been imported to my new blog. In the meantime, you can read it here: …

May 2, 2024: Refactoring a function to 6 classes This post has not yet been imported to my new blog. In the meantime, you can read it here: …

May 1, 2024: April 2024 Update This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Apr 4, 2024: DRAFT: 'What is a user story?' This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Apr 2, 2024: March 2024 Update This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Mar 1, 2024: February 2024 Update This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Feb 7, 2024: January 2024 Update This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jan 2, 2024: December 2023 Update This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Dec 12, 2023: November 2023 Update This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Nov 6, 2023: October 2023 Update This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Oct 10, 2023: September 2023 Update This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Sep 10, 2023: DevLog 013: Raspberry Pi game console This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Sep 4, 2023: August 2023 Update This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Aug 23, 2023: DevLog 012: Investigating export crash This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Aug 21, 2023: The end? This post has not yet been imported to my new blog. In the meantime, you can read it here: http://archive.rickardlindberg.me/writing/agdpp-the-end/.

Aug 6, 2023: DevLog 011: Modifying cut out point This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Aug 5, 2023: July 2023 Update This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Aug 3, 2023: DevLog 010: Debugging MLT/GTK segfault This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Aug 3, 2023: DevLog 009: Improve timeline scrubbing This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Aug 2, 2023: DevLog 008: How to overcome lack of motivation? This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Aug 1, 2023: DevLog 007: Which feature to work on next? This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jul 31, 2023: DevLog 006: Adding the concept of a clip This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jul 31, 2023: DevLog 005: MLT proxy hell This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jul 30, 2023: DevLog 004: Proxies with correct FPS This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jul 29, 2023: DevLog 003: Clarify GUI separation This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jul 29, 2023: DevLog 002: Change mix strategy for cuts in GUI This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jul 28, 2023: Writing my own video editor This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jul 28, 2023: How to get fast feedback on graphical code? This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jul 28, 2023: DevLog 001: J-cuts and L-cuts in my video editor? This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jul 4, 2023: June 2023 Update This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jun 29, 2023: Multiplayer This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jun 18, 2023: High-level or micro-tests? A discussion with Ron. This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jun 17, 2023: Spawn multiple balloons This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jun 12, 2023: Does TDD work when building a game? This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jun 6, 2023: May 2023 Update This post has not yet been imported to my new blog. In the meantime, you can read it here: …

May 24, 2023: Score as text This post has not yet been imported to my new blog. In the meantime, you can read it here: …

May 20, 2023: How to test a router? This post has not yet been imported to my new blog. In the meantime, you can read it here: …

May 19, 2023: Programming a Logitech Gamepad F310 This post has not yet been imported to my new blog. In the meantime, you can read it here: …

May 14, 2023: A case for the infrastructure wrapper This post has not yet been imported to my new blog. In the meantime, you can read it here: …

May 12, 2023: Turning arrow This post has not yet been imported to my new blog. In the meantime, you can read it here: …

May 9, 2023: Hit balloon and score points This post has not yet been imported to my new blog. In the meantime, you can read it here: …

May 6, 2023: Game over? This post has not yet been imported to my new blog. In the meantime, you can read it here: http://archive.rickardlindberg.me/writing/agdpp-game-over/.

May 3, 2023: April 2023 Update This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Apr 28, 2023: Thinking about test design This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Apr 27, 2023: Shooting the arrow This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Apr 24, 2023: Demo and game idea This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Apr 20, 2023: Separating pygame completely from the rest of the game This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Apr 19, 2023: Test driving the game loop This post has not yet been imported to my new blog. In the meantime, you can read it here: http://archive.rickardlindberg.me/writing/agdpp-game-loop/.

Apr 18, 2023: Trying Ron's Python Asteroids This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Apr 17, 2023: TDD trick: fake it! This post has not yet been imported to my new blog. In the meantime, you can read it here: http://archive.rickardlindberg.me/writing/tdd-fake-it/.

Apr 9, 2023: Introducing Agile Game Development with Python and Pygame This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Apr 6, 2023: What should a Continuous Integration (CI) server do? This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Apr 2, 2023: March 2023 Update This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Mar 5, 2023: February 2023 Update This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Feb 11, 2023: January 2023 Update This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jan 9, 2023: December 2022 Update This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Dec 15, 2022: How should I evolve the design of my projectional editor? This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Dec 2, 2022: November 2022 Update This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Nov 10, 2022: October 2022 Update This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Oct 8, 2022: September 2022 Update This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Sep 9, 2022: August 2022 Update This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Sep 2, 2022: How to write reliable socket servers that survive crashes and restarts? This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Aug 2, 2022: July 2022 Update This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jul 4, 2022: June 2022 Update This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jun 4, 2022: May 2022 Update This post has not yet been imported to my new blog. In the meantime, you can read it here: …

May 1, 2022: April 2022 Update This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Apr 2, 2022: March 2022 Update This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Mar 2, 2022: February 2022 Update This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Feb 12, 2022: RLMeta poster 2: the poster that wasn't This post has not yet been imported to my new blog. In the meantime, you can read it here: http://archive.rickardlindberg.me/writing/rlmeta-poster-2/.

Feb 4, 2022: January 2022 Update This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jan 4, 2022: December 2021 Update This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Dec 2, 2021: November 2021 Update This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Nov 4, 2021: October 2021 Update This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Oct 9, 2021: September 2021 Update This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Sep 14, 2021: What Is Programming? This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Sep 7, 2021: August 2021 Update This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Aug 3, 2021: July 2021 Update This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jul 4, 2021: Dogfooding Literate Programming Support in Smart Notes (June 2021 Update) This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jun 6, 2021: May 2021 Update This post has not yet been imported to my new blog. In the meantime, you can read it here: …

May 4, 2021: Newsletter April 2021 This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Apr 4, 2021: Newsletter March 2021 This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Mar 2, 2021: Newsletter February 2021 This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Feb 15, 2021: Kinesis Advantage 2 Swedish Setup This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Feb 2, 2021: Newsletter January 2021 This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jan 1, 2021: Newsletter December 2020 This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Dec 3, 2020: Newsletter November 2020 This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Nov 11, 2020: Newsletter October 2020 This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Oct 3, 2020: Newsletter September 2020 This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Sep 13, 2020: Newsletter August 2020 This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Aug 13, 2020: The Bullet Journal Method: Migration as Review This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Aug 3, 2020: Newsletter July 2020 This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jul 27, 2020: Atomic Habits: The Two-Minute Rule This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jul 6, 2020: Newsletter June 2020 This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jun 13, 2020: Newsletter May 2020 This post has not yet been imported to my new blog. In the meantime, you can read it here: …

May 24, 2020: Creating the RLMeta poster This post has not yet been imported to my new blog. In the meantime, you can read it here: …

May 20, 2020: DRAFT: Compiling expressions to x86 machine code This post has not yet been imported to my new blog. In the meantime, you can read it here: …

May 4, 2020: Newsletter April 2020 This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Apr 10, 2020: DRAFT: Porting RLMeta to C++ This post has not yet been imported to my new blog. In the meantime, you can read it here: http://archive.rickardlindberg.me/writing/rlmeta-cpp/.

Apr 3, 2020: Layout/Update problem in wxPython This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Apr 2, 2020: Newsletter March 2020 This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Mar 2, 2020: Newsletter February 2020 This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Feb 3, 2020: Newsletter January 2020 This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jan 11, 2020: Memoizing failures in RLMeta This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jan 5, 2020: Newsletter December 2019 This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Dec 3, 2019: Newsletter November 2019 This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Nov 2, 2019: Newsletter October 2019 This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Oct 1, 2019: Newsletter September 2019 This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Sep 28, 2019: Segfault with custom events in wxPython This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Sep 25, 2019: Alan Kay notes This post has not yet been imported to my new blog. In the meantime, you can read it here: http://archive.rickardlindberg.me/writing/alan-kay-notes/.

Sep 7, 2019: Parsing left associative operators using RLMeta This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Aug 31, 2019: Doctest fails in Python 3 with wxPython This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Aug 31, 2019: Newsletter August 2019 This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Aug 6, 2019: RLMeta: a VM based approach This post has not yet been imported to my new blog. In the meantime, you can read it here: http://archive.rickardlindberg.me/writing/rlmeta-vm/.

Jul 31, 2019: Newsletter July 2019 This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jun 30, 2019: Newsletter June 2019 This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jun 28, 2019: Optimizing RLMeta This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jun 27, 2019: DRAFT: Parsing off-side rule languages with RLMeta This post has not yet been imported to my new blog. In the meantime, you can read it here: …

May 28, 2019: Modifying the RLMeta metacompiler This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Dec 2, 2018: A meta approach to implementing programming languages This post has not yet been imported to my new blog. In the meantime, you can read it here: http://archive.rickardlindberg.me/writing/rlmeta/.

Nov 6, 2017: A new home for Timeline This post has not yet been imported to my new blog. In the meantime, you can read it here: …

May 19, 2017: Evolution of recalling Bash history This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Mar 11, 2017: Bitten by Python generators This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Sep 20, 2016: Tell, don't ask example This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Oct 23, 2015: Problem statements in commit messages This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jul 1, 2015: Timeline release statistics This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jun 27, 2015: Precision of datetime in Python This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jun 21, 2015: Analysis of Timeline emails This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Mar 28, 2015: Search and replace in Vim This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Nov 3, 2014: The danger with implicit if statements in Python This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Sep 17, 2014: Xmodmap on Fedora This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jun 5, 2014: Accumulating cruft This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jun 4, 2014: Recognizing progress This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jun 3, 2014: Testing as a minimum This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jun 2, 2014: Small increments This post has not yet been imported to my new blog. In the meantime, you can read it here: …

May 28, 2014: Refactor before This post has not yet been imported to my new blog. In the meantime, you can read it here: …

May 27, 2014: Discoverable tests This post has not yet been imported to my new blog. In the meantime, you can read it here: …

May 26, 2014: Functional core This post has not yet been imported to my new blog. In the meantime, you can read it here: …

May 23, 2014: Editing code as text This post has not yet been imported to my new blog. In the meantime, you can read it here: …

May 22, 2014: Erlang This post has not yet been imported to my new blog. In the meantime, you can read it here: …

May 21, 2014: Naming intermediate steps This post has not yet been imported to my new blog. In the meantime, you can read it here: …

May 20, 2014: State This post has not yet been imported to my new blog. In the meantime, you can read it here: …

May 19, 2014: Testability == good design? This post has not yet been imported to my new blog. In the meantime, you can read it here: …

May 18, 2014: Visualizing program flow This post has not yet been imported to my new blog. In the meantime, you can read it here: …

May 15, 2014: Clarity is hard This post has not yet been imported to my new blog. In the meantime, you can read it here: …

May 14, 2014: Exploring with doctest This post has not yet been imported to my new blog. In the meantime, you can read it here: …

May 13, 2014: Powerful software This post has not yet been imported to my new blog. In the meantime, you can read it here: …

May 12, 2014: Software writer This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Sep 30, 2013: Latency free overdubbing in Ardour This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jul 5, 2013: Refactoring step in TDD This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jul 4, 2013: Mindmap tasks This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jul 3, 2013: Visualizing hierarchy and grouping This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jul 2, 2013: Cohesion an naming This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jul 1, 2013: Learning about a problem This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jun 30, 2013: Formatting code This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jun 29, 2013: One thing per commit This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jun 28, 2013: Atomic operations This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jun 27, 2013: Constant progress This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jun 26, 2013: Small steps This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jun 25, 2013: Smallest possible thing This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jun 24, 2013: Resistance to learning This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jun 23, 2013: Documenting projects This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jun 22, 2013: Features and bugs This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jun 21, 2013: Bug free code This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jun 20, 2013: Using tests for feedback This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jun 19, 2013: Duplicated code This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jun 18, 2013: Maintainable tests This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jun 17, 2013: Test coverage This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jun 16, 2013: Size of code This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jun 15, 2013: Confidence in changing code This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jun 14, 2013: What tests to keep? This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jun 13, 2013: Boy scout habit This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jun 12, 2013: Refactor with higher confidence This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Feb 24, 2013: Related things are not kept together This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Sep 8, 2012: How to organize your tests? This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Aug 30, 2012: Learn how to implement languages This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jul 22, 2012: Good bad programmer This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jul 11, 2012: A refactoring story This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jun 23, 2012: Data structures in OOP This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jun 17, 2012: A beautiful Brainfuck implementation This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Mar 3, 2012: Closing the feedback loop This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Feb 25, 2012: Setup and teardown in HUnit This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Feb 11, 2012: Hello world in Haskell and GTK This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Feb 5, 2012: Writing a real application in Haskell This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jan 23, 2012: Organizing information on a wiki This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Jan 11, 2012: Introducing a series about the development of an application This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Nov 2, 2011: Does TDD have less advantage in Haskell? This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Oct 10, 2011: Learning Haskell This post has not yet been imported to my new blog. In the meantime, you can read it here: …

Sep 28, 2011: Testing configuration This post has not yet been imported to my new blog. In the meantime, you can read it here: …