Camping
I was on a camping trip for some days.
Camping is awesome.
Removing all this physical clutter and getting back to the basics: shelter, food and nice people.
We slept in a tent and we just lived with the bare minimum food: water, bread, cheese, rice, oats, veggies.
This is also my normal, healthy, 120€-per-month diet at home, so nothing new for me.
But after a hard day of hiking, this simple way of eating feels like heaven.
The first night was very uncomfortable, it was cold as hell.
That's why my first night back at home felt very cosy, in my nice, comfortable bed.
And my first meal back at home felt like eating out in a restaurant.
I think about most of my life in a relative perspective - I measure against other situations and events.
I think I need this kind of grounding to not lose my mind.
Projects: serial or parallel?
Because I've finished the udacity course the other day, I'm now focused on learning Rust.
I'm into serializing project, there is a great podcast about it.
It's highly unlikely, that I like all my projects the same.
If I do them in parallel, I start giving all of them some time, but after some days and weeks, I lean towards fun, joy and convenience and mostly quit the not-so-enjoyable projects.
They sit around in the drawer and I feel bad about myself.
I am allowed to quit a project, but I don't allow myself to juggle between the projects.
The decision has to be conscious. Yes or No. No "when I feel like it.".
About Abstraction
When code evolves
We start out with a tiny function that doesn't do that much (pseudo code):
function download_from_aws (from, to) {
do_something();
result = aws_client.download(from);
parsed_result = parse(result);
filesystem.write_to_disk(parsed_result, to);
}
So azure enters the room.
Time to DRY?
function download_from_cloud (from, to, provider) {
do_something();
switch provider:
case PROVIDER.AWS: result = aws_client.download(from);
case PROVIDER.AZURE: result = azure_client.download(from);
parsed_result = parse(result);
filesystem.write_to_disk(parsed_result, to);
}
- Where should this live?
- What happens in case of some conditional stuff, e.g. just
do_something()
for onlyaws
? - Do we always either end up with a big god-like switch-festival or abstraction hell?
I don't know.
Holocracy, Open-Book Management
Today I decluttered my collection of interesting articles.
There was this one article about holacracy.
I read about this idea some years ago in an interview about Tony Hsieh.
As a software engineer, I oftentimes think about ideas like agility, change and transparency.
Software is connected to business processes.
When a business process changes, we have to be agile enough to adapt the software to the new changes.
So how much do I need to know about the business process and its context?
Is change the default mode of business? Of life?
Which concepts lead to easier handling of change?
This is how I found the concept of open-book management.
The basis of open-book management is that the information received by employees should not only help them do their jobs effectively but help them understand how the company is doing as a whole.The technique is to give employees all relevant financial information about the company so they can make better decisions as workers.
This sounds very interesting.
Momentum
All plans are set up.
Doing this, doing that. Work, leisure, people.
I'll do it tomorrow, today I'm too tired.
And suddenly 2 weeks are gone.
Guilt.
Habits come and go.
Ebb and flow.
Easy election
Today we elect a new government in Germany.
This is the easiest vote I've ever made.
This is probably the first time I don't think about myself, but about my children and their children.
It's not about "Oh damn, I want to drive 150 km per hour, but I am only allowed to drive 130 km per hour, this is so mean.".
It is about "Hey grandpa, all of you folks went to university, learned a lot about science and stuff. Why have all of you been these idiots that didn't stop this shitload of environmental pollution and useless, unfulfilling consumerism? I've heard stories that you've had all this knowledge. Have you just been too lazy or too careless?"
Linux
I use Linux for some years know.
Most questions I get are 95% the same.
This is an open-end collection of my knowledge in simple language.
Notes
- Linux is the kernel, the inner core
- some drivers (for graphic cards, wifi etc.) are inside the kernel
- desktop environments (Gnome, KDE etc.) make the experience more convenient and pretty (how windows look, status bar etc.)
- additional software makes life easier
- kernel (Linux) + desktop environment + additonal software = Linux distribution (Ubuntu, Mint etc.)
- Linux is written in C, so it is fast, but a lot of bugs stem from the fact that it is not memory-safe
- I don't use a desktop environment, just a window manager (i3), no status bar etc.
- I use many small tools, e.g. vim as editor, ranger as file manager
Links
Shady?
Sometimes I ask myself, if someone is a bad person, if they work for a company that does some kind of shady things.
Like nudging people to buy stuff they do not need, to watch ads for useless stuff etc.
Are there any companies that do not do shady stuff?
What does "shady" actually mean?
If my neighbor does shady stuff, then am I also allowed to do shady stuff?
Am I even not "clever", if I do not do shady stuff, because everyone is doing it?
Am I guilty of being a part of a shady system?
Should I feel compassion for people who do not game the system (by doing shady stuff and letting society pay for it)?
Zola for my blog
This blog runs on Zola.
I've chosen it because it's simple and fast.
My old blog was running with TypeScript, React and Gatsby. Not bad, but the build time was very slow, around 3 minutes for 150 posts.
But that wasn't my biggest concern: there was some feature creep and too many updates on the gatsby site.
I had some tests, but they were slow and I didn't feel confident at all that after each week's ~5 updates everything will run again.
That's why I set up this simple blog and to get a better grasp of what is going on under the hood of Rust.
I don't know if this will help my learning, but at least I feel confident, because my workflow goes like this:
- Copy an old post.
- Add my new stuff.
- Deploy (30 seconds of git add, commit, push, wait).
More Rust
I have a really simple plan for learning Rust:
- I read a chapter in the Rust Book
- I do the Rustlings exercises that fit the chapter's content
- I summarize my learnings in my Rust post
After I will have finished the Rust Book and Rustlings, I will have a look into Rust By Example, Practical Rust and Codewars.
Today I worked on the Rustlings exercise about move, primitives and structs, enums and modules, because I've already read the book chapters until chapter 8.
Camping
I was on a camping trip for some days.
Camping is awesome.
Removing all this physical clutter and getting back to the basics: shelter, food and nice people.
We slept in a tent and we just lived with the bare minimum food: water, bread, cheese, rice, oats, veggies.
This is also my normal, healthy, 120€-per-month diet at home, so nothing new for me.
But after a hard day of hiking, this simple way of eating feels like heaven.
The first night was very uncomfortable, it was cold as hell.
That's why my first night back at home felt very cosy, in my nice, comfortable bed.
And my first meal back at home felt like eating out in a restaurant.
I think about most of my life in a relative perspective - I measure against other situations and events.
I think I need this kind of grounding to not lose my mind.
Projects: serial or parallel?
Because I've finished the udacity course the other day, I'm now focused on learning Rust.
I'm into serializing project, there is a great podcast about it.
It's highly unlikely, that I like all my projects the same.
If I do them in parallel, I start giving all of them some time, but after some days and weeks, I lean towards fun, joy and convenience and mostly quit the not-so-enjoyable projects.
They sit around in the drawer and I feel bad about myself.
I am allowed to quit a project, but I don't allow myself to juggle between the projects.
The decision has to be conscious. Yes or No. No "when I feel like it.".
About Abstraction
When code evolves
We start out with a tiny function that doesn't do that much (pseudo code):
function download_from_aws (from, to) {
do_something();
result = aws_client.download(from);
parsed_result = parse(result);
filesystem.write_to_disk(parsed_result, to);
}
So azure enters the room.
Time to DRY?
function download_from_cloud (from, to, provider) {
do_something();
switch provider:
case PROVIDER.AWS: result = aws_client.download(from);
case PROVIDER.AZURE: result = azure_client.download(from);
parsed_result = parse(result);
filesystem.write_to_disk(parsed_result, to);
}
- Where should this live?
- What happens in case of some conditional stuff, e.g. just
do_something()
for onlyaws
? - Do we always either end up with a big god-like switch-festival or abstraction hell?
I don't know.