Robuta

https://henrikwarne.com/2023/01/07/there-is-no-software-maintenance/ There Is No Software Maintenance | Henrik Warne's blog Every time I hear about software maintenance as a distinct activity, I cringe. That’s because it is based on the outdated notion that first software is... software maintenancehenrik warneblog https://henrikwarne.com/tag/learning-2/ learning | Henrik Warne's blog Posts about learning written by Henrik Warne henrik warnelearningblog https://henrikwarne.com/2019/12/08/eurostar-testing-conference-prague-2019/ EuroSTAR Testing Conference Prague 2019 | Henrik Warne's blog A few weeks ago I spoke at the EuroSTAR software testing conference in Prague. The conference had one and a half days of tutorials, followed by two and a half... conference praguehenrik warneeurostartestingblog https://henrikwarne.com/tag/science/ science | Henrik Warne's blog Posts about science written by Henrik Warne henrik warnescienceblog https://henrikwarne.com/2017/08/20/developer-testing/ Developer Testing | Henrik Warne's blog I recently found out about the book Developer Testing – Building Quality Into Software by Alexander Tarlinder, and I immediately wanted to read it. Even though... henrik warnedevelopertestingblog https://henrikwarne.com/2019/09/29/when-tdd-is-not-a-good-fit/ When TDD Is Not a Good Fit | Henrik Warne's blog I like to use Test-Driven Development (TDD) when coding. However, in some circumstances, TDD is more of a hinderance than a help. This happens when how to... good fithenrik warnetddblog https://henrikwarne.com/2019/10/27/classic-computer-science-problems-in-python/ Classic Computer Science Problems in Python | Henrik Warne's blog I really enjoyed Classic Computer Science Problems in Python by David Kopec. It covers many different problems I hadn’t read detailed explanations of before.... computer sciencehenrik warneclassicproblemspython https://henrikwarne.com/2022/12/11/switching-to-go-first-impressions/ Switching to Go – First Impressions | Henrik Warne's blog A few months ago I switched to working in Go. Before that, my main language was Python for many years. The change to Go has been very smooth, without any major... first impressionshenrik warneswitchinggoblog https://henrikwarne.com/tag/surprises/ surprises | Henrik Warne's blog Posts about surprises written by Henrik Warne henrik warnesurprisesblog https://henrikwarne.com/2017/03/12/programmer-career-planning/ Programmer Career Planning | Henrik Warne's blog Here are my thoughts on programmer career planning. You should always stay employable, mostly by changing jobs regularly (every five years or so). When... career planninghenrik warneprogrammerblog https://henrikwarne.com/tag/set-game/ SET game | Henrik Warne's blog Posts about SET game written by Henrik Warne set gamehenrik warneblog https://henrikwarne.com/2013/03/26/what-do-programmers-want/ What Do Programmers Want? | Henrik Warne's blog I got an e-mail last week from three students at Halmstad University doing a three month project on what programmers want in a job, and how companies can... henrik warneprogrammerswantblog https://henrikwarne.com/2014/12/15/programmer-knowledge/ Programmer Knowledge | Henrik Warne's blog What is the half-life of programmer knowledge? It is quite common with claims that the half-life is something like 5 years. In other words, half of what you... henrik warneprogrammerknowledgeblog https://henrikwarne.com/2012/02/26/mac-os-x-break-programs-review/ Mac OS X Break Programs Review | Henrik Warne's blog Like I wrote in a previous post, the use of a break program was probably the main reason I beat Repetitive Stress Injury (RSI). For many years I used WorkPace,... mac oshenrik warnebreakprogramsreview https://henrikwarne.com/category/testing/ Testing | Henrik Warne's blog Posts about Testing written by Henrik Warne henrik warnetestingblog https://henrikwarne.com/2025/06/15/lessons-from-9-more-years-of-tricky-bugs/ Lessons From 9 More Years of Tricky Bugs | Henrik Warne's blog Since 2002, I have been keeping track of all the tricky bugs I have come across. Nine years ago, I wrote a blog post with the lessons learned from the bugs up... henrik warnelessonsyearstrickybugs https://henrikwarne.com/tag/intellij/ intellij | Henrik Warne's blog Posts about intellij written by Henrik Warne henrik warneintellijblog https://henrikwarne.com/category/debugging/ Debugging | Henrik Warne's blog Posts about Debugging written by Henrik Warne henrik warnedebuggingblog https://henrikwarne.com/category/work/ Work | Henrik Warne's blog Posts about Work written by Henrik Warne henrik warneworkblog https://henrikwarne.com/2012/06/02/why-i-love-coding/ Why I Love Coding | Henrik Warne's blog I love coding. Ever since I bought my first computer (a VIC-20), I’ve been fascinated by computer programming. For many years I never thought of why I enjoyed... henrik warnelovecodingblog https://henrikwarne.com/ Henrik Warne's blog | Thoughts on programming… Thoughts on programming... henrik warneblog thoughts https://henrikwarne.com/tag/command/ command | Henrik Warne's blog Posts about command written by Henrik Warne henrik warnecommandblog https://henrikwarne.com/2015/04/16/lessons-learned-in-software-development/ Lessons Learned in Software Development | Henrik Warne's blog Here is my list of heuristics and rules of thumb for software development that I have found useful over the years: Development 1. Start small, then extend.... lessons learnedsoftware developmenthenrik warneblog https://henrikwarne.com/2019/06/15/nordic-testing-days-tallinn-2019/ Nordic Testing Days Tallinn 2019 | Henrik Warne's blog At the end of May I attended Nordic Testing Days in Tallinn, Estonia. It was the first time I spoke at a conference outside of Sweden, and I had a great time.... henrik warnenordictestingdaystallinn https://henrikwarne.com/tag/job-hunt/ job hunt | Henrik Warne's blog Posts about job hunt written by Henrik Warne job hunthenrik warneblog https://henrikwarne.com/tag/recruiting/ recruiting | Henrik Warne's blog Posts about recruiting written by Henrik Warne henrik warnerecruitingblog https://henrikwarne.com/tag/rsi/ RSI | Henrik Warne's blog Posts about RSI written by Henrik Warne henrik warnersiblog https://henrikwarne.com/2016/03/07/ph-d-or-professional-programmer/ Ph.D. or Professional Programmer? | Henrik Warne's blog When I graduated from university with a degree in Computer Science, I wanted to continue and get a Ph.D. But I also wanted to work as a software developer, so... henrik warnephprofessionalprogrammerblog https://henrikwarne.com/2018/08/11/my-favorite-command-line-shortcuts/ My Favorite Command-Line Shortcuts | Henrik Warne's blog I use a shell every day. Almost always, I want to repeat a previous command, or repeat it after a slight modification. A very convenient way is to use arrow-up... command linehenrik warnefavoriteshortcutsblog https://henrikwarne.com/tag/emacs/ emacs | Henrik Warne's blog Posts about emacs written by Henrik Warne henrik warneemacsblog https://henrikwarne.com/tag/statistics/ statistics | Henrik Warne's blog Posts about statistics written by Henrik Warne henrik warnestatisticsblog https://henrikwarne.com/tag/coding/ coding | Henrik Warne's blog Posts about coding written by Henrik Warne henrik warnecodingblog https://henrikwarne.com/2019/05/26/book-review-accelerate/ Book review: Accelerate | Henrik Warne's blog The book Accelerate details the findings of four years of research on how DevOps affects various outcomes, such as software delivery tempo and stability, as... book reviewhenrik warneaccelerateblog https://henrikwarne.com/2012/12/31/blog-stats-for-2012-by-wordpress/ Blog stats for 2012 (by WordPress) | Henrik Warne's blog The WordPress.com stats helper monkeys prepared a 2012 annual report for this blog. Here’s an excerpt: About 55,000 tourists visit Liechtenstein every year.... henrik warneblogstatswordpress https://henrikwarne.com/2014/01/21/session-based-logging/ Session-based Logging | Henrik Warne's blog To trouble-shoot software, logging of some kind is essential. But for most systems, it is simply not possible to log everything that happens. Many systems and... henrik warnesessionbasedloggingblog https://henrikwarne.com/2016/04/28/learning-from-your-bugs/ Learning From Your Bugs | Henrik Warne's blog Bugs are great learning opportunities. So how do we make sure we learn as much as possible from the bugs we fix? A method I have used for more than 13 years... henrik warnelearningbugsblog https://henrikwarne.com/tag/interruption/ interruption | Henrik Warne's blog Posts about interruption written by Henrik Warne henrik warneinterruptionblog https://henrikwarne.com/2013/04/02/programmer-productivity-interruptions-meetings-and-working-remotely/ Programmer Productivity – Interruptions, Meetings and Working Remotely | Henrik Warne's blog In my previous post on what programmers want, I ranked working from home low on the list. Several commenters value working from home higher, and K (not his... working remotelyhenrik warneprogrammerproductivityinterruptions https://henrikwarne.com/tag/meeting/ meeting | Henrik Warne's blog Posts about meeting written by Henrik Warne henrik warnemeetingblog https://henrikwarne.com/2014/01/27/a-bug-a-trace-a-test-a-twist/ A Bug, a Trace, a Test, a Twist | Henrik Warne's blog Here is the story of a bug that I caused, found, and fixed recently. It is not particularly hard or tricky, and it didn’t take long to find and fix.... henrik warnebugtracetesttwist https://henrikwarne.com/tag/knowledge/ knowledge | Henrik Warne's blog Posts about knowledge written by Henrik Warne henrik warneknowledgeblog https://henrikwarne.com/2021/12/13/on-code-reviews/ On Code Reviews | Henrik Warne's blog There seems to be an established truth in programming that code reviews find a lot of bugs. An example is chapter 18 (Modern Code Review) in the book Making... code reviewshenrik warneblog https://henrikwarne.com/tag/programming-job/ programming job | Henrik Warne's blog Posts about programming job written by Henrik Warne henrik warneprogrammingjobblog https://henrikwarne.com/tag/chatgpt/ ChatGPT | Henrik Warne's blog Posts about ChatGPT written by Henrik Warne henrik warnechatgptblog https://henrikwarne.com/tag/office/ office | Henrik Warne's blog Posts about office written by Henrik Warne henrik warneofficeblog https://henrikwarne.com/category/learning/ Learning | Henrik Warne's blog Posts about Learning written by Henrik Warne henrik warnelearningblog https://henrikwarne.com/tag/idea/ idea | Henrik Warne's blog Posts about idea written by Henrik Warne henrik warneideablog https://henrikwarne.com/2015/10/20/coursera-course-review-software-security/ Coursera Course Review: Software Security | Henrik Warne's blog I just finished taking the course Software Security from the University of Maryland via Coursera. It was a relatively easy course (at least if you know C) that... course reviewsoftware securityhenrik warnecourserablog https://henrikwarne.com/2013/11/09/automatically-include-revision-in-log-statement/ Automatically Include Revision in Log Statement | Henrik Warne's blog When there is a problem with your software, the first thing you usually ask for is a log showing what happened (provided you write debuggable code), and the... henrik warneautomaticallyincluderevisionlog https://henrikwarne.com/2016/06/16/18-lessons-from-13-years-of-tricky-bugs/ 18 Lessons From 13 Years of Tricky Bugs | Henrik Warne's blog In Learning From Your Bugs, I wrote about how I have been keeping track of the most interesting bugs I have come across. I recently reviewed all 194 entries... henrik warnelessonsyearstrickybugs https://henrikwarne.com/tag/devops/ DevOps | Henrik Warne's blog Posts about DevOps written by Henrik Warne henrik warnedevopsblog https://henrikwarne.com/tag/coursera/ coursera | Henrik Warne's blog Posts about coursera written by Henrik Warne henrik warnecourserablog https://henrikwarne.com/2019/04/03/more-good-programming-quotes-part-3/ More Good Programming Quotes, Part 3 | Henrik Warne's blog I like good programming quotes. Here are some new ones I have found since my last posts. Complexity “Why do people find DNS so difficult? It’s just cache... henrik warnegoodprogrammingquotespart https://henrikwarne.com/2023/09/10/what-i-have-changed-my-mind-about-in-software-development/ What I Have Changed My Mind About in Software Development | Henrik Warne's blog I really like this quote from Jeff Bezos: “Anybody who doesn’t change their mind a lot is dramatically underestimating the complexity of the world we live in.”... software developmenthenrik warnechangedmindblog https://henrikwarne.com/category/programming/ Programming | Henrik Warne's blog Posts about Programming written by Henrik Warne henrik warneprogrammingblog https://henrikwarne.com/tag/java/ java | Henrik Warne's blog Posts about java written by Henrik Warne henrik warnejavablog https://henrikwarne.com/tag/job/ job | Henrik Warne's blog Posts about job written by Henrik Warne henrik warnejobblog https://henrikwarne.com/about/ About | Henrik Warne's blog Hello, and welcome to my blog. My name is Henrik Warne. I am a software developer in Stockholm, Sweden. I have been programming professionally for more than 30... henrik warneblog https://henrikwarne.com/2017/01/15/book-review-the-effective-engineer/ Book Review: The Effective Engineer | Henrik Warne's blog Last month we finished reading “The Effective Engineer” by Edmond Lau in the book club at work. It is a great book full of practical advice on how to get more... book reviewhenrik warneeffectiveengineerblog https://henrikwarne.com/2021/07/12/book-review-a-philosophy-of-software-design/ Book Review: A Philosophy of Software Design | Henrik Warne's blog I really liked A Philosophy of Software Design by John Ousterhout. It is compact and short, only 170 pages, so it is a quick read, but it contains many good... book reviewsoftware designhenrik warnephilosophyblog https://henrikwarne.com/tag/programmer/ programmer | Henrik Warne's blog Posts about programmer written by Henrik Warne henrik warneprogrammerblog https://henrikwarne.com/2026/01/31/in-praise-of-dry-run/ In Praise of –dry-run | Henrik Warne's blog For the last few months, I have been developing a new reporting application. Early on, I decided to add a –dry-run option to the run command. This turned out... henrik warnepraiserunblog https://henrikwarne.com/tag/conference/ conference | Henrik Warne's blog Posts about conference written by Henrik Warne henrik warneconferenceblog https://henrikwarne.com/tag/meta/ meta | Henrik Warne's blog Posts about meta written by Henrik Warne henrik warnemetablog https://henrikwarne.com/2015/12/27/social-engineering-from-kevin-mitnick/ Social Engineering from Kevin Mitnick | Henrik Warne's blog I recently finished reading Ghost in the Wires by Kevin Mitnick. It is the story of Mitnick’s hacking career, from the start in his teens, through becoming the... social engineeringhenrik warnekevinblog https://henrikwarne.com/tag/developer-testing/ developer testing | Henrik Warne's blog Posts about developer testing written by Henrik Warne henrik warnedevelopertestingblog https://henrikwarne.com/tag/mac-os-x/ Mac OS X | Henrik Warne's blog Posts about Mac OS X written by Henrik Warne mac oshenrik warneblog https://henrikwarne.com/2016/04/17/more-good-programming-quotes/ More Good Programming Quotes | Henrik Warne's blog In my previous post, The Wisdom of Programming Quotes, I called out some quotes that look good on the surface, but turn out to promote the wrong ideas about... henrik warnegoodprogrammingquotesblog https://henrikwarne.com/tag/ide/ ide | Henrik Warne's blog Posts about ide written by Henrik Warne henrik warneideblog https://henrikwarne.com/2021/04/16/more-good-programming-quotes-part-5/ More Good Programming Quotes, Part 5 | Henrik Warne's blog Here are more good programming quotes I have found since my last post. Programming “It has been said that the great scientific disciplines are examples of... henrik warnegoodprogrammingquotespart https://henrikwarne.com/2023/04/23/well-maintained-software/ Well-maintained Software | Henrik Warne's blog Two months ago, I was a guest on the Maintainable podcast. The first question the host Robby Russell asks is “What are a few characteristics of well-maintained... well maintainedhenrik warnesoftwareblog https://henrikwarne.com/2017/11/19/benefits-of-continuous-delivery/ Benefits of Continuous Delivery | Henrik Warne's blog During my career as a software developer, I have seen the release frequency increasing steadily. When I started, it would take 12 to 18 months for new features... continuous deliveryhenrik warnebenefitsblog https://henrikwarne.com/2020/01/20/more-good-programming-quotes-part-4/ More Good Programming Quotes, Part 4 | Henrik Warne's blog Here are more good programming quotes I have found since my last post. Microservices “Microservices are just dynamic linking over HTTP” via @mononcqc... henrik warnegoodprogrammingquotespart https://henrikwarne.com/2017/07/10/programming-conference-qcon-new-york-2017/ Programming Conference – QCon New York 2017 | Henrik Warne's blog Last week I attended a software development conference, QCon in New York. Here are my impressions of it, as well as some thoughts on programming conferences in... qcon new yorkhenrik warneprogrammingconferenceblog https://henrikwarne.com/tag/testing-2/ testing | Henrik Warne's blog Posts about testing written by Henrik Warne henrik warnetestingblog https://henrikwarne.com/2013/04/07/set-card-game-variation-complementary-pairs/ SET Card Game Variation – Complementary Pairs | Henrik Warne's blog I recently got an e-mail from Michael Sherman, a teacher in New York. He had developed a variation of the card game Set called Complementary Pairs. This is how... card gamehenrik warnesetvariationcomplementary https://henrikwarne.com/2016/04/11/the-wisdom-of-programming-quotes/ The Wisdom of Programming Quotes | Henrik Warne's blog I love good programming quotes. The best ones say something true about the craft of programming, usually both concisely and humorously. Recently I started... henrik warnewisdomprogrammingquotesblog https://henrikwarne.com/tag/google/ Google | Henrik Warne's blog Posts about Google written by Henrik Warne henrik warnegoogleblog https://henrikwarne.com/2021/06/15/on-comments-in-code/ On Comments in Code | Henrik Warne's blog I used to think that I didn’t need comments if I wrote self-documenting code. However, I have realized that I do write comments, and that I find them really... henrik warnecommentscodeblog https://henrikwarne.com/tag/hiring/ hiring | Henrik Warne's blog Posts about hiring written by Henrik Warne henrik warnehiringblog https://henrikwarne.com/tag/logging/ logging | Henrik Warne's blog Posts about logging written by Henrik Warne henrik warneloggingblog https://henrikwarne.com/tag/dry-run/ dry-run | Henrik Warne's blog Posts about dry-run written by Henrik Warne henrik warnedryrunblog https://henrikwarne.com/2020/08/30/deployed-to-production-is-not-enough/ Deployed To Production Is Not Enough | Henrik Warne's blog You have developed a new feature. The code has been reviewed, and all the tests pass. You have just deployed this new feature to production. So on to the next... henrik warnedeployedproductionenoughblog https://henrikwarne.com/tag/book-review/ book review | Henrik Warne's blog Posts about book review written by Henrik Warne book reviewhenrik warneblog https://henrikwarne.com/2012/02/25/favorite-programming-quotes/ Favorite Programming Quotes | Henrik Warne's blog Here are a few programming quotes I like: “A complex system that works is invariably found to have evolved from a simple system that worked.” John Gall... henrik warnefavoriteprogrammingquotesblog https://henrikwarne.com/tag/creativity/ creativity | Henrik Warne's blog Posts about creativity written by Henrik Warne henrik warnecreativityblog https://henrikwarne.com/2015/01/01/coursera-course-review-computational-investing-part-1/ Coursera Course Review: Computational Investing Part 1 | Henrik Warne's blog I recently finished the Coursera course Computational Investing Part 1 by professor Tucker Balch at Georgia Tech. The focus of the course is on portfolio... course reviewhenrik warnecourseracomputationalinvesting https://henrikwarne.com/2013/02/18/coursera-algorithms-course-part2/ Coursera course review: Algorithms: Design and Analysis, Part 2 | Henrik Warne's blog I recently finished the Coursera course Algorithms: Design and Analysis, Part 2 by Professor Tim Roughgarden of Stanford. I’ve already reviewed part 1, and... course reviewhenrik warnecourseraalgorithmsdesign https://henrikwarne.com/2013/08/31/7-ways-more-methods-can-improve-your-program/ 7 Ways More Methods Can Improve Your Program | Henrik Warne's blog A lot of code I come across consists of relatively few, but long, methods. The code does what it is supposed to do. However, it could be improved a lot.... henrik warnewaysmethodsimproveprogram https://henrikwarne.com/2013/12/08/tdd-unit-tests-and-the-passage-of-time/ TDD, Unit Tests and the Passage of Time | Henrik Warne's blog Many programmers have a hard time writing good unit-tests for code that involves time. For example, how do you test time-outs, or periodic clean-up jobs? I... unit testshenrik warnetddpassagetime https://henrikwarne.com/tag/integration-testing/ integration testing | Henrik Warne's blog Posts about integration testing written by Henrik Warne integration testinghenrik warneblog https://henrikwarne.com/tag/test-driven-development/ test-driven development | Henrik Warne's blog Posts about test-driven development written by Henrik Warne test driven developmenthenrik warneblog https://henrikwarne.com/tag/interview/ interview | Henrik Warne's blog Posts about interview written by Henrik Warne henrik warneinterviewblog https://henrikwarne.com/tag/unit-testing/ unit testing | Henrik Warne's blog Posts about unit testing written by Henrik Warne unit testinghenrik warneblog https://henrikwarne.com/2018/12/03/developer-on-call/ Developer On Call | Henrik Warne's blog For the system at work, I am on call one week every seven weeks. For most of the past ten years, I have been on organized on call rotations for the systems I... henrik warnedevelopercallblog https://henrikwarne.com/2018/06/25/6-git-aha-moments/ 6 Git Aha Moments | Henrik Warne's blog When I switched jobs four years ago, I went from using subversion (svn) to using git as the version control system. Even though I am a pretty quick learner, it... henrik warnegitahamomentsblog https://henrikwarne.com/tag/linkedin/ linkedin | Henrik Warne's blog Posts about linkedin written by Henrik Warne henrik warnelinkedinblog https://henrikwarne.com/2014/09/04/a-response-to-why-most-unit-testing-is-waste/ A Response to “Why Most Unit Testing is Waste” | Henrik Warne's blog A few months ago I came across the article Why Most Unit Testing is Waste by James O Coplien. The title is an accurate description of the contents – James... unit testinghenrik warneresponseblog https://henrikwarne.com/tag/software-development/ software development | Henrik Warne's blog Posts about software development written by Henrik Warne software developmenthenrik warneblog https://henrikwarne.com/tag/algorithms/ algorithms | Henrik Warne's blog Posts about algorithms written by Henrik Warne henrik warnealgorithmsblog