bruegge.dev

Enjoy the detours!

Over the years, I got used to a specific stack. As a Web Developer, the main use case is creating websites and -apps. In this field, you have plenty of tools to choose from. Which is a blessing and a curse at the same time. ๐Ÿ˜…

As a base, I use Next.js. Here I enable Typescript + ESLint and Tailwind CSS. Typescript and ESLint are a no-brainer for me. Sadly, Prettier is not in the box. So I install it afterward. On vercel.com, Next.js can be easily deployed and you have a good free tier. So you can develop and share a URL with your client, for example.

The next bigger thing is Tailwind CSS. For years, I was using Styled-Components, but was unhappy with it. Then I started my first project with Tailwind CSS and styling made fun again. To let play nicely with React.js, I'll use tailwind-merge. From their description: Merge Tailwind CSS classes without style conflicts.

To build nice components, there are Radix-UI Primitives. These pair really nice with Tailwind CSS. The biggest win on the Radix-UI Primitives is the react-form, which saves an extra installation of a separate React.js form library.

Every App or Site needs Icons. Here I found Heroicons, from the Tailwind CSS creators. The collection is big enough to get the most out of it. For comparison, the Radix-UI Icons have a nicer look, but they are very basic, and I often didn't find what I was searching for.

So, Next.js, Tailwind CSS, Radix-UI Primitives and the Heroicons cover the Frontend. Time for the Backend. ๐Ÿฅณ

For the Backend, I simply use Supabase. Which covers all my needs. A Database, Authentication, and Storage. That's it. Nothing more to say. Supabase has also a good free tier and can be self-hosted if needed. ๐Ÿ‘Œ

As mentioned before, I use pirsch.io. Web-Analytics from Germany. I like that it is privacy-friendly and that there is no need for cookies. The Standard tier with โ‚ฌ6/Months is the only thing in my current Stack2go which is paid.

And that's it. Have fun with it. ๐Ÿ˜Š


31/100 of #100DaysToOffload

#log #stack2go #dev #frontend #backend

Discuss...

Writing this post was harder than I thought. ๐Ÿ˜Š

To structure my thoughts

My thoughts are just a constant stream of something chaotic. I struggle with getting a clear path in my head. So I need to write it down, why not in public? For some years, I'm doing it in my notion app but in private. Hopefully, a post can help to make it right and good.

To internalize what I have learned

Writing about a topic will help me to let things go through my head again. With it, I'm able to think more about a topic in detail and extend what I've learned.

To have a reference things I've learned

A place where I can come back to and realize that this was not the first time I did something dump, so I have written it down in advance.

To exercise writing itself

Gaining experience is never bad. So writing will get me some good, I hope. Like with coding, you get better, when you do it. Not just copy and paste from StackOverflow. Just writing actual code could help.

To be better with words and explanations

I'm not the best speaker or someone who can explain things good. I require time and reiterations. With writing a post, I can iterate over again and again until a post looks good.


30/100 of #100DaysToOffload

#log #writing

Discuss...

Prelude

Wow, what a long time without an update post. I feel bad and have a lot of topics I want to write about. We are on a vacation trip, and I'll try to use the evenings to complete some of my posts, I've started writing but never finished.

The last few weeks have really drained us. But not working wise, more privately in combination with work. Keeping care of the little one while working, turned out more stressful than expected. When we were forced to start in March, we were optimistic and everything worked quite well. But the little one is growing and claims a lot of attention lately. Which is good, he is not just lying around anymore and plays with his loud toys. Now he is discovering the world through his โ€œeyesโ€. Which is wonderful, and we love everything he is doing. However, we are counting the days until the Kindergarten starts in September. We are not the multitaskers we thought we were. And you feel that the little one needs more input from us and other people. Which is also good, and you can see how he grows with the input. ๐Ÿ˜Š We've met his Individual case assistance and both seem to like each other. Hopefully, in September everything will go well, and they will be together for a long time. :)

Some topic regarding the #GoodBadUgly posts. I've decided to remove the โ€œ โ€“ Week 19-25โ€ count. It builds too much pressure on me, to write these posts, and it keeps too much time writing them. This time can be spent on some more interesting posts. I will keep collecting my stuff like in the past because it makes fun to write them and helps me. Maybe I think too much about it and make it too complicated. ๐Ÿ˜… I should just write and go on.

So, enough pre-banter, let's start with #GoodBadUgly of the last 6 Weeks. ๐Ÿฅณ

The Good

๐Ÿ‘ถ The best thing first, the little one has been walking for some weeks now. Because he can't see anything, he is more walking like a penguin. Slow but steady. Most of the time he has a toy in his hands which he carries around. I've never seen anything so cute. In our house, he is also finding his way into my office, for example, without touching any walls. He is like a little ninja, without making any noise, he comes to you and stands by your side or in the office. Which makes him very happy. ๐Ÿ˜Š

๐ŸŠโ€โ™‚๏ธ I've set up our pool with a new pump and a โ€œpool boyโ€ which just our pool vacuum robot. I am happy with this setup and our oldest and I have a lot of fun, playing in there. The new pump will help to clean the water with a UV-Light and filter glass (filter glass is just glass, crushed to the size of sand). Also, the โ€œpool boyโ€ is helping to clean the water. Last year, we had green water right after one week. Despite having a pump and bromine pill.

๐ŸŒž To get some shadows in our garden, I've set up two awnings. They give us a good holiday feeling. I got some wooden piles from a friend and spread out the sails between them. After the summer, we plan to plant some trees, and these sails should last until the trees are big enough to give us enough shadow.

๐Ÿ› To stay in the garden, with the same wooden piles I've build a Swing for the Kids. You can attach a regular swing and a nest swing. The kids love them. And I like them too. Lying down into the nest swing is quite relaxing.

โš–๏ธ In these 6 weeks, I've tried to lose some weight. The Plan was to fit into my old Shirt for my brother's wedding. I was on a good track and lost some kilos, sadly at the end, the shirt was still not fitting good enough. :( But the wedding was great. ๐Ÿฅณ

๐Ÿ“ฝ๏ธ I don't know how I managed this, but I've completed a lot of series and movies in the last few weeks.

  • For all Mankind, I don't know when I started, but I finished the series quite fast. The first season was very good but couldn't keep up the fire in the following seasons got worse with each new season.
  • Dr. Stone: had a lot of fun with this. Good world and characters. Can't get the final season fast enough.
  • Solo Leveling: From the first episode on, I was hooked. Such a good anime. Like playing a game.
  • Star Wars Tales of the Jedi and Tales of the empire: Not the best, but it is nice going into the world.
  • Star Wars Bad Batch: Final season, had a lot of fun with it and perfect ending.
  • Ongoing: Kaiju No 8 and Go Go Loser Ranger. It's like they created this just for me. I need more of it.
  • Kingdom of the Planet of the Apes: I expected nothing and had no Idea how to go on with the story after Cesar, but they created a good movie, and I'm excited about the next one.
  • Godzilla Minus One: Just wow, we had a lot of fun

๐ŸŒฆ๏ธ The weather changed in the last few weeks, and it is raining a lot more. We've laid a new lawn, but our water savings got empty. So we feared that the new lawn is dying before it got to life. ๐ŸŒฑ Now we have full water tanks and a nice lawn. Let's see how the next weeks go. Because it will get dry again.

๐Ÿง‘โ€๐Ÿ’ป On my windows work machine, you can't officially install neovim. But finally, I was able to install it, from the sources. ๐Ÿฅณ Now, I'm seeking an alternative to tmux because there is no windows' installation available.

๐ŸŽ™๏ธ Lacey Sturm made a new record ... in 2023 ... which I totally missed. I like her voice and was sad when she split up with Flyleaf.

๐Ÿค˜ On 18. June, I went to an Asinhell Concert in Berlin (Hole 44) with Endseeker. I'll write about my experience in a separate post. Spoiler: I had a lot of fun. ๐Ÿ˜Š

The Bad

๐Ÿ“… As a freelancer, the May has to many public holidays. I would appreciate it if these days were more scattered around the year.

๐Ÿ“ฝ๏ธ I was disappointed with the last 2 seasons of โ€œFor All Mankindโ€. The series started good but lost a lot with each season. ๐Ÿ˜”

The Ugly

๐Ÿ“ I forgot to write posts. I don't know really why, but in the last few weeks, it is hard for me to keep thinking about writing a post. Or when I do and start a new post, I write the headline and if I'm lucky, I outline them. But never complete them.

๐Ÿคฏ The start of Week 23 has really dragged me down. Felt like everything was too much and I lost a lot of focus. Also in this week, I had 2 Interviews for new Projects. The Interviews went fine, sadly I got no contract. But that was ok for me. I enjoyed the Interview and I need this from time to time. It helps me to stay confident for these kinds of video calls. These Interviews helped me and pulled me out of the deep end.

Epilog

Wow, +1200 words. What a beast. Had plenty of topics to write about and said to every topic something. Initially, I wanted to publish it yesterday, but I was too tired to complete it. ๐Ÿ˜… Now I'm happy with it and hope I can write some more this week.

And I hope I'm back on track for the #100DaysToOffload challenge. I've started 21/01/2024. 7 Months to go. Means, around 10 Posts per Month. This should be doable without ending in spamming random topics. ๐Ÿ˜‚


29/100 of #100DaysToOffload

#log #GoodBadUgly

Discuss...

Lately, I discovered this CSS value of the align-items property, which I didn't know about. I just wanted to share it. For me, it came quite handy in a project.

align-items: "last baseline";

More about this feature:

I hope it will help someone.


28/100 of #100DaysToOffload

#log #dev #css

Discuss...

What did I do the last 3 Weeks? The last 3 weeks passed very quickly, and I thought I had nothing to say. But there is something. ๐Ÿ˜… With my current client, I'm switching between 2 notebooks. My MacBook Pro and the Windows Thinkpad from my client. When I'm done working for my client, I usually don't have the motivation to sit on my MacBook to do something. I even leave tax matters lying around and don't process them. But when I have the motivation, I work on my private side project, on which I will tell more, when the next milestone is completed.

The Good

๐Ÿ“€ I've started buying 4k Blu-rays of movies I really like and watched more than 2โ€“3 times. Just because, often, I had this problem, that I wanted to watch the movie, but it was not on a streaming service, I pay for. I know it is not a minimalistic way, which I try to live as far as possible. But for me, it is Ok collecting stuff, I love.

๐Ÿง‘โ€๐Ÿ’ป There is progress on my client's project. I'm now able to work in some way. ๐Ÿ˜… I completed the first tickets and worked out some new tickets where I clean up the project and refactor parts, to get a better developer experience. It is the first project where I didn't have a real onboarding session. The one responsible for this project left without a word or documentation. So I'm on my own here. Which is in some way also quite fun. The only downer here is that I have to use Windows and can't install neovim, because of some policy. ๐Ÿคท

๐Ÿฆ– We as a family visited the Jurassic World Exhibition in Berlin. Really impressive what they created there. Sure, as an adult you saw that it was not real, but they did a real good job on keeping up the illusion. Only the last part, where a T-Rex escaped, was rushed and ended in the merch store. It ended when you realized what really happened there. But nevertheless, it was good and I can recommend it.

Brachiosaurus from Jurassic World Exhibition

๐Ÿ”ฅ I've made some progress on my private app project. The last milestone I've completed added some new features which put the project in a presentable state. Now I'm working on the next milestone, which will prepare everything for a small test release. Working on the last milestone also led to some ideas for new posts. Now I need time to write them. ๐Ÿ˜…

๐Ÿ‹๏ธ After making my 15 min Kettlebell workout, I've tried a new workout, which is 20ย min long and exhausting. I feel awesome after the workout, exhausted but in a good way. Let's see when this will get normal, and I have to look for a new one, to boost my workout. Maybe I can increase the weight of the kettlebell, which is 12ย kg at the moment.

๐Ÿ“Š I've added pirsch.io tracking to my blog: https://bruegge.dev/add-pirsch-io-tracking-to-write-as

๐Ÿค˜ After ~5 Weeks of not going to any concert, I was at a concert to see Escuela Grind and Rotten Sound: https://bruegge.dev/escuela-grind-und-rotten-sound-in-reset-club-berlin

The Bad

๐Ÿค’ I'm kind of sick for more than a 1 week, not too sick to stay in bed, but sick enough to feel unwell by everything I'm doing. At the time of completing this post, I'm feeling way better. I hope this will last some time. ๐Ÿ˜…

The Ugly

๐Ÿ˜  It will hunt me until it has an ending, going every day to the kindergarten to bring and pick up my oldest makes me feel unwell. Seeing the people responsible for rejecting the youngest drives me crazy. I'm not that kind of person who can deal with something like that very well. And I see no escape, besides waiting for the next year to come, where the oldest will be going to school, and we don't have to deal with this kindergarten anymore.


27/100 of #100DaysToOffload

#log #GoodBadUgly

Discuss...

Reset Wienerstr. 34 Kreuzberg

Going to this concert was spontaneous. A friend said he was going and I had time. I was keen on seeing Escuela Grind. So I ordered a ticket some days before the concert. And the last one was ~5 weeks ago, so it was about time. ๐Ÿ˜…


Death Crusade, a Band from Poland. We watched them from the back. I liked the instrumental parts, but the vocals were too uninflected. For the last song, the Rotten Sound Singer came on the stage and sang some parts. Which had a nice touch to it.


Escuela Grind, they played like nothing else. It was a great concert and I had a lot of fun watching them. They are playing their ass off and you see and feel it. Despite some bad news I've read, they did an excellent concert and ended too soon. The last song they played was โ€œone more songโ€ after the audience screamed for more, and it had clean vocals in it. I don't know how to feel about it. Sounded strange. But ok. To each their own. It seemed all had fun, and this is the most important thing.

Escuela Grind live on stage in purple light.


Rotten Sound, quite an institution. I had a lot of fun watching these veterans. Sadly, for my taste, they played a bit too long. Maybe it was the heat in the club. It was really hot in there, and you got sweaty just from standing. But you saw that they had fun playing, which I liked. ๐Ÿ˜Š

Rotten Sound live on stage in blue light.

According to my calendar, the next concert will be Asinhell on 18.09. in Berlin. ๐Ÿค˜


26/100 of #100DaysToOffload

#live #music #concert

Discuss...

Write.as has the option to add custom CSS and JS to the site. Write.as has also basic tracking for the posts and how they are performing. But it is just basic tracking and only for the last 30 days. So I wanted a bit more. For private projects, I use prisch.io. Which is privacy-friendly and hosted in Germany. I will try this out. If it is not working as expected, I will remove the script.

How can you implement such a script?

First, go to your pirsch.io Dashboard and click the + Icon on the top-right.

Add a new website to your pirsch.io Dashboard

You will be asked between Client or Server implementation. Go to Client implementation and copy the script tag.

<script defer src="https://api.pirsch.io/pa.js"
    id="pianjs"
    data-code="YOUR_SITE_CODE"></script>

Now, transfer this HTML into JavaScript. Here we create a new element and add it to the document <head />.

// Add prisch tracking --- START
const script = document.createElement('script');
script.setAttribute('id', 'pianjs');
script.setAttribute('defer', true);
script.setAttribute('src', 'https://api.pirsch.io/pa.js');
script.setAttribute('data-code', 'YOUR_SITE_CODE');
document.head.appendChild(script);
// Add prisch tracking --- END

This snipped can be added to your write.as blog. Go to your write.as Dashboard and select the Customize Button. Here is an area where you can add custom JavaScript.

Add custom JavaScript to Write.as

Hit โ€œSave changesโ€ and reload your blog. The script should now be added. :)

I hope this will help someone.


25/100 of #100DaysToOffload

#log #writeAs

Discuss...

๐Ÿชฃ Wow, more than 6 weeks since my last link dump post. But I like how this is going. I collect the links over time and revisit them later to write something about them. Some of them I hve totally forgotten by now. ๐Ÿ˜…

3 Vim commands for blazingly fast navigation between brackets: you can always learn something new. After +10 years of vim/neovim, I didn't know these little gems, mostly 2 and 3. 1 is a long time goto for me. Link: https://m4xshen.dev/posts/vim-commands-for-navigation-between-brackets/

Draw an iceberg and see how it will float: Lately, we had this topic where an iceberg is not floating like you know it from movies, where you see just the tip and the rest is underneath, like for example, a bottle half filled with water. This little game illustrates it nicely, how an ice could actually float. Link: https://joshdata.me/iceberger.html

Show distances of a map by time instead of space: I really like the Idea behind this. The Author also hast a Video where he explains everything about the idea. Link: https://spacetime-maps.vercel.app/

Price Per Part for Lego Sets: A little Lego geeking here. Link: https://brickinsights.com/statistics/ppp

Breaking Down Tasks: I had a nice read with this post, also the other posts from this author are good reads. This is how I have tried to tackle my tasks for some years now, and it works good enough, I think. Sometimes I'm a bit too lazy to work out the details, this is where my estimates are not the best ones. ๐Ÿ˜… Link: https://jacobian.org/2024/mar/11/breaking-down-tasks/

Rethinking the startup MVP: Building a competitive product: Another good read. Link: https://linear.app/blog/rethinking-the-startup-mvp-building-a-competitive-product

Refactoring.Guru makes it easy for you to discover everything you need to know about refactoring, design patterns, SOLID principles, and other smart programming topics: This is a site I check out from time to time and read about some topics, mostly about design patterns. Just to verify that I still could explain a term. Link: https://refactoring.guru/


24/100 of #100DaysToOffload

#log #linkDump

Discuss...

This will be a short one. โšก

The Good

๐Ÿก The facade of our house is finally done.

๐ŸŽฎ I was able to play some hours on my PS5. Currently, I'm testing the game Outward which I bought on a Sale and I have some fun with it. ๐Ÿ˜Š

๐Ÿค˜ No concerts in the past 2 weeks. ๐Ÿ˜…

The Bad

๐Ÿ•ฐ๏ธ Currently it feels strange, I need to do part-time work for my current client, but I find less time to write or do work on my side project. Turns out, while we are both working, my wife and me, it is harder to also take care of the little one.

๐Ÿง‘โ€๐Ÿ’ป I'm still not able to work properly on my new client's project. Because there was no real handover, and I have to figure out how my precursor has done all the things. Sadly, basic things like npm start or a simple docker build && docker run are not working because of some window's administration settings. But I'm getting closer to a working environment with each step.

The Ugly

๐Ÿ˜  Each day, going to the Kindergarten stresses me out every time I see the teachers there. Pretending everything is nice while lied in your face.


23/100 of #100DaysToOffload

#log #GoodBadUgly

Discuss...

Recently, I needed to convert plenty of images from jpeg to webp. For tasks like this, I like to use the shell. In my case, bash.

The one-liner I've used to batch covert the images is the following: fd -e jpg --exec cwebp {} -o webp/{.}.webp

To get all my images, I've used fd, an alternative to the default find command. Both can do the job, but I prefer fd because of the simpler syntax.

And to convert the images, there is cwebp. I don't know if there are alternatives, this is the first I've found in my search, and it did the job well. ๐Ÿ˜Š

In the end, I've saved ~90% of the file size, which is quite impressive. ๐Ÿš€


22/100 of #100DaysToOffload

#log #bash #webp

Discuss...

Enter your email to subscribe to updates.