This is very likely not a new idea. I most probably have seen it somewhere but have since forgotten where. Now I feel as it was my own idea. I wanted to share it.
Any non-trivial software application has a structure with many units of behavior interacting with each other …
Continue reading »
As my friend Jacob Gabrielson once put it, advocating Object-Oriented Programming is like advocating Pants-Oriented Clothing. // Steve Yegge
I was taught the Objected Oriented Programming (hereinafter “OOP”) long ago.
Looking back now, it turned out that it maybe caused more harm than it was useful to
my software design skills …
Continue reading »
Updated 2023-07-06
Recently I realized that there is a common pattern for many testing-like activities performed during daily development cycles. Many of them provide the biggest benefit if their results are reported in an incremental manner, i.e. against individual change requests, rather than against the whole code base.
Examples …
Continue reading »
Vevparti
Tack vare Brexit det är nu mindre krångligt att beställa vissa små prylar direkt från Kina än från Storbritanien. Men i det här fallet var Ebay.co.uk den enda platsen där jag kunde hitta vevpartier med 127 mm långa vevarmar och 32 kuggar för fyrkantsvevlager.
Paketet var löjligt …
Continue reading »
G16. Obscured Intent.
We want code to be as expressive as possible. Run-on expressions, Hungarian notation, and magic numbers all obscure the author’s intent. .. Small and dense as this might appear, it’s also virtually impenetrable. It is worth taking the time to make the intent of our code …
Continue reading »
Static analysis is great because it allows to catch many types of issues without the need to run the code. It is not perfect however. When you consider it in the scope of a big evolving project, there dangers not always pointed out by the adopters. The main danger is …
Continue reading »
Hjul
Hjulparet har äntligen kommit fram. Här är vad kartongen innehöll.
Enkla snabbkopplingsaxlar och en kassettdistans insvepta i tidsenlig (från juli 2021) pappersbit. Till QR-axlarna har jag ett bättre par liggandes någonstans. Kassettdistansen kom dock till nytta vid bygget.

Själva hjulen. Dekalerna var lättavskalade. Naven är av enkel konstruktion …
Continue reading »
Skyddsfilm
På tal av att ramla ner i en container med stickers. Det kom tre ark med skyddsfilm:

Målen med klistermärkena var att:
- Strö lite variation till den monotona blå ramfärgen.
- Skapa visuellt brus som skulle dölja eventuella sprejmålningsdefekter
- Färgkoordinera gaffeln och ramen(, något som inte lyckades att åstadkomma den …
Continue reading »
Även om de flesta vuxencyklar kommer med vevarmar mellan 170 och 175 mm i längd, finns det en åsikt att många cyklister skulle ha gynnats av kortare vevarmar, på 165 mm och ännu kortare 1, 2. Oavsett om detta är sant eller ej för vuxna, när det gäller barncyklar så …
Continue reading »

Safer C: Developing software for high-integrity and safety-critical systems. Les Hatton. // McGraw-Hill Book Company, 1995. ISBN 007707640-0, 229 pages.
The book, despite being ~30 years old and talking about the first ISO C standard, is a goldmine when it comes to more timeless topics of quality and using programming languages …
Continue reading »
Komponenter strömmar in.
Det är galet hur breda och långa vissa “barn”-sadlar som kommer med barncyklar är. Ibland kan man se en 150 mm bred sadel. Det är ju bredare än de flesta vuxensadlar!
Den här sadeln (av Natural Fit) är 120 mm bred. Den har varit slutsåld på …
Continue reading »
Det var dags att skruva ihop några delar. Med styrlagret i besittning har det blivit möjligt att koppla ihop ramen, gaffeln, styret m. fl. Tyvärr har jag fortfarande inte passande hjul — det beställda hjulparet har fastnat någonstans mellan Kina och Sverige.
Ramen är redo i mekstället. Observera att här på …
Continue reading »
Gaffel
Den gaffel jag köpt för projektet är SR Suntour XCR DS LO Air. Den har skivbromsfäste, 1⅛” rakt styrrör, 28 mm innerben, QR-axel, slaglängd 80 mm, justerbara lufttryck och kompression.
Visst är den gaffeln inte på samma nivå som t.ex. Manitou Junit. Vi får se hur bra …
Continue reading »
Styrlager
Posten har äntligen levererat styrlager för bygget (dumma Brexit; det tar en evighet och kostar skjorta att leverera grejer från UK). Det är Works Components -1° för raka 1⅛” styrrör.
Den här lilla anordningen kostar mer än ram den kommer att sitta i:

Kan du märka excentricitet på den …
Continue reading »
Byggets idé
Barnet växer och någon stund i 2023 blir det dags att byta till en 24-tum cykel. Det finns gott urval på nya och begagnade färdigbyggda cyklar, men jag vill ha mina verktyg och reservlådans innehåll till nytta.
Projektet består av en eklektisk blandning av nya och gamla, billiga …
Continue reading »
Vita sörjan ligger ute
Jag har hatt och yllestrumpor på mig
Jag känner mig obekväm överallt, har ingen lust att dricka öl
Hur blir jag av med denna längtan på er?
Soliga dagar
Soliga dagar
Soliga dagar
Fryser händer och fötter, ingen plats att slå sig ner,
Den tiden liknar …
Continue reading »
There is one thing that has bothered me about the asymmetry of relation between the production code and the test code. People often say: “Your tests test the production code, and production code ensures the tests are not broken”.
But it did not feel right. Especially after learning the principle …
Continue reading »
-
Skruvstäd stort (spännvidd minst 120 mm)
https://www.svh24.de/heuer-parallel-schraubstock-120-mm-wechselbacken-blau-150554
https://www.bauhaus.se/skruvstad-roterande-150mm
https://www.svh24.de/ridgid-schraubstock-superior-modell-120-303609
https://www.conrad.se/p/skruvstycke-heuer-compact-kaekbredd-120-mm-spaennvidd-max-130-mm-824596
-
Topeak Nano TorqBox X Mini Tool
https://www.bike24.com/p2315231.html
https://www.bike24.com/p2273613.html
https://www.bike24.com/p2273604 …
Continue reading »
En riktig pärla i Flottsbro område.

Överblick
Ingångs koordinater: 59.23166/17.90929.
Det finns två sträckor med massor byggda features. Den blåa sträckan börjar vid spårcentralen och slingrar uppför. Den tar sedan till större berms och features innan stigen vänder sig tillbaka till spårcentralen.
Mitt i den blåa sträckan …
Continue reading »
When dealing with legacy code (== code without existing tests), the first task before making behavioral changes is to prepare characterization tests. The easiest way to achieve that is to separate the pure computation from communication inside the existing functions.
But it is a daunting task, because you do not have …
Continue reading »

Överblick
Ett område i Rudan naturreservats södra del har fått en ny MTB-stigsområde.
Samtliga stigar börjar och slutar vid MTB spårcentrals. Koordinater: 59.15908 18.11765.
Det finns flera stigar med olika svårighetsnivåer:
- Två enkla gula teknikbanor. Man har byggd flera berms och antal trähinder (A-frame, wallride, whale tail …
Continue reading »
A lot of issues in software creation and maintenance arise from lack of analysis of the problem at hand and out-of-date or missing documentation for what the software is expected to do. Test-driven development (TDD) promises to improve the quality and maintainability of produced software.
This discipline dictates to write …
Continue reading »
Definition
Static analysis (SA) happens when any partial execution of program code happens. That is, the code is treated as having different semantics, only partially matching what the compilation/interpretation (C/I) process is extracting from it.
Neither executable translation artifacts (object files and executables from compilation) nor behavioral effects …
Continue reading »
This is not really a strategy. You simply ignore the performance aspects of your application until you can allow it. Sooner or later your customers, if you have any, will bring it up to your attention.
As your …
Continue reading »
The ideas below were inspired by rereading of Tom Stuart’s Understanding Computation book, watching Uncle Bob’s Clean Code videos, and my thoughts about the nature of the problems I observe in daily work with certain tests.
In theory, there is a common agreement that simple tests are better …
Continue reading »