RSSAmplifier

Blog

August Lilleaas' blog

augustl.comRSS feed ↗20 posts

Latest posts

Blogging with Word in your Jamstack

I wrote a book in Word. That’s 72 000 words in Word. But I’ve stopped blogging, partly because writing markdown in my code editor just doesn’t vibe with me anymore. These days, I ask myself the question: how can I just get a Word document online as fast as possible? I like Word! It has nice tooling for grammar and spell checking, and it’s a nice environment for editing prose. So, I wrote a parser…

Pro Kotlin Web Apps from Scratch

I wrote a book! Buy the book from the publisher Buy the book from Amazon Book source code All the code from the book is available on Apress' GitHub . You can also get the code from the book mirrored to my personal GitHub .

It's christmas, and time for failure!

Well, that's it, then. I failed. I was supposed to publish a blog post every day in December until the 24th. I haven't blogged since the 18th, so that means I failed to write the 5 final blog posts except this one. In case you didn't know, I fail a lot . I sort of expected that I'd fail to write 24 blog posts. But failing is better than not trying. The blog post about Linus Torvalds ended up on…

The #1 bug predictor is not technical, it's organizational complexity

EDIT: Discussion on Hacker News and /r/programming . In this post, I'll explore the findings made by Microsoft Research, after the unsuccessful launch of Windows Vista in 2007. Microsoft decided to dig deep and figure out what went wrong. The marketing department busied themselves with pranking people into saying that they like Vista. The research department, on the other hand, decided to do some…

The green padlock

We just love that green padlock, don't we. The green padlock means that nobody can read your communications online. Yeah, right. Whose CA is it anyway? You probably know about CAs already. Certificate Authorities. There has to be some trust somewhere in HTTPS, and that's where it's at. So which CAs do you have on your system? Who do you decide to trust? In my case, I trust two parties: Mozilla and…

Validating data after storing it

This is me trying to be some kind of thought leader or something. Someone told me they do this in their system, and it stayed with me. So I want to share what they told me. Keeping it short and sweet. Mission critical Typically, we validate our data on the way in. Validating the shape of our data is a big part of modelling a domain, so this is commonplace and normal, and it makes complete sense.…

According to Microsoft, the number one predictor of software bugs is...

UPDATE: This article was too clickbait-y. I've made a proper version of it here . Microsoft launched Windows Vista in 2007, with varying degrees of success. Microsoft Research made a substantial effort to figure out what went wrong. They learned something surprising (or maybe not?) about the number one predictor of software bugs. Microsoft Research, and Vista Windows Vista was a problematic…

The amazingly amazing amaze of lazy data structures

Two things makes me keep coming back to Clojure: Persistent data structures and lazy sequences. This post is about lazy sequences. Lazy fibonacci To demonstrate lazy sequences, let's implement the Fibonacci sequence. Here's a JavaScript version of the Clojure code to follow, so you have something to compare it to. // JavaScript version, for good measure function fib ( n , xs ) { xs = xs || [ 0 , 1…

What is WSL, and how can it possibly even?

Some of the other posts in my 2019 blog advent calendar has been about Windows. They all mention WSL. In this post, I'll focus only on WSL, and what it's all about, and how it works, and all that jazz. What is WSL? WSL is short for Windows Subsystem for Linux. It's a Linux, made for your Windows. Think of it like WINE, but the other way around. It's a thing that lets you run Linux software on…

Field manual - choosing React Native

Here's my opinionated summarized thoughts of things to know about and take into consideration, when deciding whether or not to choose React Native for your next mobile app. What is React Native? React Native is a cross platform native mobile app framework. React Native is developed and maintained by Facebook. React itself is primarily thought of as web technology. But React Native is not a web…

Why I ditched macOS, Linux, and chose Windows for development work

I’ve already told you the "how" . Now it’s time for the "why". Actually, I don’t care what you use I just wanted to get this one out of the way. I have absolutely nothing against the use of macOS or Linux. Personal preferences are both normal and OK . I’ve used all of them, extensively. My gaming PC is Windows. I've had many Macs. I've ran Linux on a Mac. I've had Thinkpads and Dells with Linux. I…

A short recipe for setting up the Microsoft SQL Server docker image

More Microsoft stuff. At my current client, we're in the process of moving from Oracle to SQL Server. So far so good! In fact, there's a lot to like about SQL Server. The driver code is open source, for example, so when Weird Stuff happens in our app, we can look at the source code of the driver itself in the stack traces and see what it's up to. Anyway. The docker image. The Dockerfile itself is…

My all-time favorite talks

It's sharing time! Rich Hickey: That talk Simple Made Easy is the most mind bending talk I've ever seen. I think most Clojure programmers will tell you that. I'm not really a Clojure programmer , I like lots of things, but I do have an extra special relationship with Clojure, Datomic and the thoughts that lies underneath the surface. This talk is about Clojure, without really mentioning Clojure.…

You have to know about persistent data structures

The first thing I look for when checking out a new programming language is immutable persistent data structures. This is an injury I've gotten from Clojure, which has them out of the box. I tend to structure my whole app around these kinds of data structures. They are smart, fast, efficient, immutable and amazing. In this post, I'll try to make you feel the same way about them. Axiom: immutability…

Field manual: choosing Flutter

Here's my opinionated summarized thoughts of things to take into consideration when deciding whether or not to choose Flutter. What is Flutter? Flutter is a cross platform native mobile app framework. Flutter is developed and maintained by Google. It's heavily tied into the Dart (programming language) ecosystem. So you're gonna be writing all of your code in Dart. The Dart code is compiled into…

The important difference between layout and rendering

Layout and rendering reminds me of variable names in math. What the heck is "c"? Well, that's the speed of light, obviously! And what about "L"? Angular momentum, silly! There's a whole list of these . Different rendering engines might have different names for these. But the concept of separating layout and rendering exists in every rendering engine I'm aware of. Let's see how this works, using…

Linux exists only because of a happy accident

EDIT: Discussion here , here and here . You should read the book Just For Fun , Linus Torvalds' autobiography. I also make a podcast, in Norwegian. This post is based on an episode of that podcast, so if you understand Norwegian, or just want to pretend you do, you should also listen to the episode we made about the same subject as this blog post. It's story time. How Linus Torvalds accidentally…

DevOps: The magic of going back in time with Datomic

I'm a bit of a Datomic fan. That's a bit of an understatement. I'm going to tell you a DevOps story today, about Marzia and Felix. They are both DevOps experts, delivering quality software at breakneck speeds. Marzia uses Datomic, and Felix uses PostgreSQL. Let's see how their DevOps acts out in the world. It's 11:30 pm, almost midnight Felix is sleeping. The System is operational. Everything is…

You should use rebase/fixup in IntelliJ IDEA more often

This one applies to all JetBrains products with git integration. You can also be inspired by this post and use rebase/fixup with just plain old git. Just do git rebase --interactive to do essentially the same stuff, just without all the visual aid. The problem with dirty histories You commit something. [123abc] Fix issue with article image CSS Then you commit something else. [123abc] Fix issue…

How to set up a Windows 10 development environment - for macOS and Linux users

So yeah, after years of back and forth between macOS and Linux, and numerous failed attempts of switching to Windows before, I'm back again. I used Bootcamp on a Macbook Pro for a month, and got me a Dell XPS which I have been using for two months now. Maybe I'll write more about why I did that later. For now, I'll go through what I've done to set it up to get it the way I want it. A good terminal…