You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/posts/2024-11-03-welcome-to-the-jungle/welcome-to-the-jungle.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,7 +18,7 @@ As a principal software architect and someone who cares deeply about how we deve
18
18
19
19
If you are a senior developer, architect, tech lead, or CTO, I invite you on an excursion. We’ll travel winding paths through philosophy, biology, and social sciences to discover new ways of thinking about software development.
20
20
21
-
<center>{ width=80% }</center>
21
+
{ .centered width=80% }
22
22
23
23
What is a software ecosystem? A global multitude of programs, libraries, and operating systems? A whirlpool of interactions between developers, teams, and organizations?
24
24
@@ -40,7 +40,7 @@ Removing the flaky character of tests will make the state of the trunk (main bra
40
40
41
41
A careful, deliberate intervention in the environment by an experienced steward of the ecosystem can have a profound positive impact and make the ecology thrive and flourish.
42
42
43
-
<center>{ width=80% }</center>
43
+
{ .centered width=80% }
44
44
45
45
Another lesson that we ought to have learned from biological ecology is that interventions into an environment can have catastrophic consequences. In some cases, we have witnessed how an ignorant action has led to a full collapse of the ecosystem.
46
46
@@ -68,7 +68,7 @@ These two approaches represent quite different ecological environments for devel
68
68
69
69
When Darwin visited the Galápagos Islands in 1835, he noticed how finches had evolved differently on different islands. The isolation of the islands caused a heterogeneity of life forms. This is also true for poly-repo ecologies. They tend to exhibit variations in coding style, build systems, branching strategy, etc. Being isolated, they also exhibit favorable traits like internal cohesion, less complex dependencies, and security by segmentation.
A monorepo, on the other hand, is a vast rainforest. Life-forms abound and can always immediately interact with each other, especially in watering holes and other nodal points (e.g., the build system). A healthy monorepo is, however, always internally structured in components and parts — it’s not a giant ball of mud. In the jungle, some life forms inhabit the treetops and others the forest floor. In the monorepo, most developer teams spend their time in a niche, a fairly limited set of components and products.
Copy file name to clipboardExpand all lines: docs/posts/2024-11-06-steal-this-class/steal-this-class.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,7 +18,7 @@ To make things worse, much of the advice on Stack Overflow and (LLM output train
18
18
19
19
Since Ctrl-C, Ctrl-V is the de facto standard programming paradigm, and you are going to do it regardless, consider using these boilerplate classes. They are “copy-paste safe.” They have the right defaults, and they are not missing some essential piece that will get you into trouble later.
20
20
21
-
<center></center>
21
+
{ .centered }
22
22
23
23
Of course, we have the [C++ Core Guidelines](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines). These are all the defaults and best practices you *should* be using. But, be honest, you’re not going to read those, are you? These are the templates you have been looking for.
24
24
@@ -212,6 +212,6 @@ public:
212
212
213
213
Now, before you get too worked up and start yelling at the screen. I know, there are exceptions to almost all of the recommendations in this post. But they are exceptions. What I have presented are the safe and sane defaults. Your starting point for modern C++.
214
214
215
-
<center></center>
Copy file name to clipboardExpand all lines: docs/posts/2024-12-01-control-is-an-Illusion-anyway/control-is-an-Illusion-anyway.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -92,7 +92,7 @@ Enforcing unconditional and automated formatting before merging is also key. If
92
92
93
93
The Rosy Reviews process works well for us but it might not be for everyone. Our reviews latency is lower than in many other organization, but it still too high if you ask our developers. If you are curious about going down the eventual quality consistency route, here are some of the challenges we encountered. Consider if this is something that might need special attention in your organization.
Copy file name to clipboardExpand all lines: docs/posts/2024-12-18-git-beyond-the-basics/git-beyond-the-basics.md
+8-10Lines changed: 8 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,11 +18,9 @@ For instance, if you are not using `git maintenance` or `worktree`, you are miss
18
18
19
19
Much of the content in this post is straight out of the 2024 FOSDEM talk "So You Think You Know Git?" by the amazing Scott Chacon. Here is that talk and the follow-up "Part 2" from DevWorld 2024. I have cherry-picked the parts that I found most useful from his presentations and mixed them up with some of my own favorite Git features.
20
20
21
-
<center>
22
-
<iframewidth="380"height="252"src="https://www.youtube.com/embed/aolI_Rz0ZqY?si=w-fTNQIOv5cjEjoc"title="YouTube video player"frameborder="0"allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"referrerpolicy="strict-origin-when-cross-origin"allowfullscreen></iframe>
23
-
24
-
<iframewidth="380"height="252"src="https://www.youtube.com/embed/Md44rcw13k4?si=aPogguUMXINligKV"title="YouTube video player"frameborder="0"allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"referrerpolicy="strict-origin-when-cross-origin"allowfullscreen></iframe>
25
-
</center>
21
+
<iframeclass="centered"width="380"height="252"src="https://www.youtube.com/embed/aolI_Rz0ZqY?si=w-fTNQIOv5cjEjoc"title="YouTube video player"frameborder="0"allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"referrerpolicy="strict-origin-when-cross-origin"allowfullscreen></iframe>
22
+
</br>
23
+
<iframeclass="centered"width="380"height="252"src="https://www.youtube.com/embed/Md44rcw13k4?si=aPogguUMXINligKV"title="YouTube video player"frameborder="0"allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"referrerpolicy="strict-origin-when-cross-origin"allowfullscreen></iframe>
26
24
27
25
Before we get started, make sure you have the latest version of git installed: [https://git-scm.com/](https://git-scm.com/) Some of the things covered in this post are relatively new. If you haven't updated your Git installation for a few years, now is the time.
28
26
@@ -36,7 +34,7 @@ Let's start by setting up some nice log formatting and default arguments with a
@@ -147,7 +145,7 @@ This problem is more common if you have long-lived feature branches or workflows
147
145
148
146
If you are using Git from the terminal, you might consider adding a bit of ornamentation to your prompt. This is my favorite and it works well for bash.
@@ -203,7 +201,7 @@ git commit -m "Adding a bar file"
203
201
204
202
You then proceed to work and realize that what you are doing should be part of the first commit. You could try to remember this and fix it when you do your interactive rebase later. But you don't have to. You can do a fixup and stay in your development flow. Later, you autosquash the fixup commits and do any further interactive rebasing (if there is still something to do).
Maybe the least useful advice in this blog post is also not a git native topic, but a GitHub specific one. But since I know this really trigger some people's OCD, I consider it a public health service. I'm referring to the GitHub language stats for you repo...
Copy file name to clipboardExpand all lines: docs/posts/2025-04-05-bitter-prediction/bitter-prediction.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,7 +23,7 @@ For a few days, I had a fantastic time. Then, I didn’t. It wasn’t that the t
23
23
I recognized the feeling from a moment in my youth. Back then, I loved playing the game "UFO: Enemy Unknown." The game involved building a global defense network to ward off an alien invasion. Building bases, researching new technologies, and buying weapons were all part of the strategy mechanics. At the same time, I was beginning to explore how software was built. Using a hex editor and a disassembler, I would pick apart things to see how they worked. This was another kind of game that I thoroughly enjoyed. One day, it hit me: the amount of money I had in the game must somehow be stored in the save files! I could use my hex editor to change it.
24
24
25
25
26
-
<center>{ width=60% }</center>
26
+
{ .centered width=60% }
27
27
28
28
Sure enough, my plan worked. I awarded myself a generous donation, and for a few hours, I was thrilled. I could buy all the cool stuff I couldn’t afford before and I had no problem fending off the pesky alien invasion. Aliens were no match for my hex editor.
Here is a recording from the ACCU talk 2025 on Apr 3rd.
17
+
Here is a recording from the ACCU talk 2025 on Apr 3rd. It's a shorter 20min version.
18
18
19
-
<center>
20
-
<iframewidth="560"height="315"src="https://www.youtube.com/embed/crQQjdOARCQ?si=uaF_j_VZqs9FlFzo"title="YouTube video player"frameborder="0"allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"referrerpolicy="strict-origin-when-cross-origin"allowfullscreen></iframe>
21
-
</center>
19
+
<iframeclass="centered"width="560"height="315"src="https://www.youtube.com/embed/crQQjdOARCQ?si=uaF_j_VZqs9FlFzo"title="YouTube video player"frameborder="0"allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"referrerpolicy="strict-origin-when-cross-origin"allowfullscreen></iframe>
22
20
23
-
Here is a recording from the Stockholm C++ Meetup on May 8th. This is a longer version of the talk with a lot of interaction and participation from the audience.
21
+
Here is a recording from the Stockholm C++ Meetup on May 8th. This is a longer version of the talk with a lot of interaction and participation from the audience. Unfortunately the audio of audience comments is a bit lacking.
24
22
25
-
<center>
26
-
<iframewidth="560"height="315"src="https://www.youtube.com/embed/myoXUpnvfeA?si=hzjJTk2C6f6n4jr0"title="YouTube video player"frameborder="0"allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"referrerpolicy="strict-origin-when-cross-origin"allowfullscreen></iframe>
27
-
</center>
23
+
<iframeclass="centered"width="560"height="315"src="https://www.youtube.com/embed/myoXUpnvfeA?si=hzjJTk2C6f6n4jr0"title="YouTube video player"frameborder="0"allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"referrerpolicy="strict-origin-when-cross-origin"allowfullscreen></iframe>
0 commit comments