David’s daily log: I do more, for 45 minutes a day

Ideas, visions, goals, projects, tasks. Everything and everywhere. I have a mile-long backlog. There are great ideas to explore, apps to create, technologies to learn, and more and more, piling up. Most time my mind is buzzing. I can't get rid of ideas, concepts, regrets, visions, and everything in between. 

Unfortunately, the following is true.

  • Thinkers are everywhere. 

  • Doers are rare. 

  • Thinking doers are the rarest.

Ideas are easy, execution is everything.

I am a thinker, with doer peaking out on accessions. And I want to change that. 

Uff, it is out. Even saying that is a little relieving.

I decided to do this. And then again, again, and one more time.

The proof is this introduction. This is the third time I am writing the introduction. How pathetic. I always have this idea about starting right. Usually, it only means I start months later than I could.

This time is different. Recently I listened to a podcast with Peter McKinnon, who stated simple fact. To know if you like something do it every day. Every day for at least 31 days. You will never know if you enjoy something if you only do it once a week. A combination of this and my recent struggles with my business got me to this point. Do I like development as much as I state? Do I love it enough to continue doing it? 

In doing it, I will evolve from a thinker to a doer.

Wait, where is this coming from?

It will be cool to say this is my original idea, but that is a trait lie. 

I am sure this concept is old and used over and over again. But I got the idea from two sources. Ok, three, but these two are crucial.

Eliška Šestáková and her everyday blog about note-taking. Read it. It is amazing. Eliška’s writing looks so easy. It is engaging and a pleasure to read. 

Casey Neistat and his daily vlogging adventure that stretches over 800 episodes. That guy is a work dog and a genius in one person. Check it out here

Now when you watched a few of his videos I am glad you came back. I know, don't apologize, he is good.

Casey is a YouTube legend, a brilliant filmmaker, and a huge inspiration. I admire him not only for his work ethic but also for his relentlessness, in how he gets things done. There is so much to learn from his vlogs. It is not only an entertainment.

You are trailing off again. What are you doing?

I will work on a project outside of my work every day for at least 45 minutes. Even if it means I will go to sleep later or have to wake up early. 

I will update the project I am working on. I can skip between projects only after 31 days or when I finish the project. 

That is it, the baseline, the golden rule. Those famous dice are cast.

In the process, I will evolve from the thinker to the doer. 

Welcome, to my daily log. My goal is to update this page every day with a new log. Every day I will record a piece of my journey becoming a version of myself that thinks less and executes more. 

Did you pay attention to the third inspiration? It is from the movie Julie & Julia.

I will do that every day, or until I get bored. 

Current project: Good Networking web application

✅ DAY_001: Sep 6 2024

FINISHED: 50 minutes. The goal was to set up theme fonts, sizes, and colors. 

It would be nice to say in my first post. I am starting a new exciting project. My goals are the following, I am thrilled to get started. 

Well, that is not the case. I am in the middle of a project, and I am coding in my spare time. I don’t want to publicly admit when I started, but it has been a long time and I am still not done. That is yet another reason why I am starting this dynamic blog post. 

Anyway, I am in the middle of the project. The goal is to develop a web application in Next.js, MongoDB database, and Material UI. Some of the app is finished, but it isn’t near ready. Right now I aim to put together an app that can be shared with the public. It won’t have all the requested features. That will come later. Currently, I am almost done with the mobile variant of the home page. Some functions are missing but about that in the future. 

I know, I know, setting up fonts, sizes, colors, and all that should be the first thing to do. Yes, you are right, but not for me. You see, spending precious hours, setting up a project is probably worth it in the long run. I would do so on commercial projects. But here I needed to see progress. Without progress, I don’t feel excited. So I am doing so only after I did most of the homepage. The plan was too ambitious anyway. I did install both fonts we are using. We have typography like these, so I will be using one default font and one for “special occasions". 

Right from the start I run into one problem. I know how to set up a font for Typography (the component that is used to display text in Material UI). However, I couldn’t figure out how to set up a default HTML font for cases where typography isn’t used. As I am writing this I have just come to the solution. I don’t need that. Material UI is set in a way that I should always use typography for text display, and doesn’t matter if it is inside a Button component or a Link. That reminds me, I need to check if there are special settings for Link. Nope, I didn’t find any. 

Today’s time is over. Tomorrow I will continue with setting up fonts, colors, and sizes.

And btw System props are being deprecated in the next major update of Material UI. From now on I can only use ‘sx={{ }}’ props. I did like system props. 

✅ DAY_002: Sep 7 2024

DONE: 50 minutes. Working on the Desktop version of the home page. I want to ship it out as fast as possible. 

Today’s original plan was to continue setting up fonts, sizes, and colors. For now, we don’t have any good documentation of our UI, so I decided to skip that. 

Instead of that, I started working on the homepage version of the desktop. Even though there are still details to finish on the mobile UI. I often tend to skip the details to improve some other part of the app. 

With this approach, there is always progress in the projec. I am not stuck on some details that will improve only 1% of the app, but it will take a huge amount of time. There will be time for the details but not in this stage. 

The progress is a little slower than I expected. Last time I wrote a note that system properties are being depreciated. From now on I am also taking the time to rewrite those in the codebase. Luckily there aren’t that many. 

Homepage yesterday

Homepage today

✅ DAY_003: Sep 8 2024

Done: 47 minutes. I am working on the event section on the homepage. The mobile version is close to done, now I am upgrading the desktop. 

One of my introductions for this blog post was the following idea. “Anything that I did well in the past I didn’t think about it too much. I got the ideas and started working on them without hesitation.” That is not the case for this blog. It took me a good 6 months to get started. 

When I finally did start I didn’t plan. I started a couple of days ago and today. Today I found myself at the airport flying home in a few minutes and I am not done with today's session. The flight is 12 hours so when I get from the plane it will be September the 9th. 

That means I would fail. I would fail even before I got the time to get started. As I sit here in San Francisco’s airport I am feeling a surge of excitement. The adventure of getting this work no matter the circumstances. 

The coding session was fast but productive. I did progress on the event section on the desktop. Nothing shows for now, I will post the results here once it goes to first testing. 

Btw the way it took a while to realize that Material UI, doesn't allow to use of size property on column elements. I didn't know what this going on for a good ten minutes before I found it in the docs. Why is that?

I have to run now, my plan is about to leave. I am going home…

✅ DAY_004: Sep 9 2024

DONE: 63 minutes. Making progress on the homepage and coding on the plane.

Almost every time I am on the plane, I think how is it to sit 30 rows in the front? In the magical seat where one can sleep at night. These few spots that don’t wait in line, are fresh when leaving the plan. Then a second thought comes to mind. “Dude, stop whining. You are crazy fortunate you can be on this plane. You are fortunate, that you can fly over the ocean to visit different continents. You are lucky few who can do it.” 

My philosophical window ends like this. Do you want your family to fly more comfortably? It is your hands, no one else’s. 

Coding on the plane is a deep experience. I am sitting in the middle seat, so I can kind of cramp in. The seat in front of me is a little bit too close for me, to have a comfortable position. Despite this, coding without the internet is a challenge on its own. I am not used to it. I am spoiled. When I don’t know the name of the property it takes me a few seconds to pull it up. Now I have to dig through my code and seek my answers there. Or I am writing myself “Todo” comments. I don’t want to forget my thoughts while I was putting together a particular section. 

I finished coding for today. This session I wanted to finish the event section. There are some details to tweak around, but I can move to the next section on the line. It will be part of the event topics. Those topics or themes will give you a good understanding of what is Good Networking about. 

My eyes are dry and I am falling asleep as I am writing this. There is still 4 hours before I land in Germany. I am somewhere above Greenland right now. I will finish this when I get to Frankfurt. 

....

Frankfurt airport, here we are. To my memory, Frankfurt must be my most visited airport after the one in Prague. Almost all my longer flights got through there. I even remember my dad driving me here once, when I was going for ice hockey tryouts in the USA. My flight is about to board. Soon I will be home. 

P.S. I am checking how much is for an upgrade to Economy Plus class. 

✅ DAY_005: Sep 10 2024

Done: 53 minutes. Coding with jet lag. 

My first day home after flying across the Atlantic. As jet lag goes, I can handle it pretty well. Traveling is easier east than traveling west. I am not sure why. I always have a bit more brain fog and a crisis during the afternoon. This time it is the same, I am feeling well, but I can feel that something is a little off. 

Especially when I left my coding session at the end of the day. To the time of the day when I am the weakest. Limit to my brain functions leads to simple tasks. For most of my time today, I was setting up fundamental rules for UI. Now I know all the typography is going to be consistent across the application. The colors are going to be the same everywhere. Now changes based on reviews will be easy to install. I am battling with two things right now. 

First of all, I didn’t understand. I don’t even know if it is possible. How to set up different font sizes for the same element but once for mobile and once for desktop. I hope it is possible, otherwise all this basic setup will prove kind of limited. Almost useless. 

Second of all, I didn’t know that I used buttons for the main navigation header. Of course, buttons have a native hover effect and I wanted to make my job easier. So I used buttons in the main header. Unfortunately, the header now has the property of a button. It doesn’t look good. It is not possible to do a similar basic setup of simple a Link element. Now I have two choices. Add a custom hover effect to the general link element. Or create my custom Link element for the header with the properties and styles I need. For this stage, it is easier to only style the general element. But creating a custom one is always interesting and I don’t do it often. It can be a good practice for me. 

I haven’t decided yet. It will be a surprise in the next few posts. 

✅ DAY_006: Sep 11 2024

DONE: 61 minutes. Answering comments about UI design and researching the definition of custom components in the theme. 

I made the same mistake as yesterday. It is 9 pm and I am finishing my session. Well, I finished the coding a few hours ago. Writing the post had to wait right after everyone else got ready for bed. It takes only a second for a night to come here in the mountains. 

Today was straightforward work. I had quite many comments on our design and today I decided it is the right time to take the time and answer it. In the majority, we are discussing the accessibility perks of the app. Proper font size, correct color contrast, and missing section texts. I found out that communication is natural for me. That is why I tend to leave it for times when I am tired and I don’t have to focus so well. Also, it gives me a kind of kick to my work. It is a sense of achievement. It gives me more energy afterward to start working on harder tasks. 

I spent the rest of my dedicated time researching custom components. In the last session, I created a theme for the app. It means that I can define custom font sizes, colors, and other styles for elements. With the theme, I don’t have to check if the title on the homepage has the same properties as the title on the “About Us” page. 

For material UI I have a rough concept on how to create these custom elements. In the beginning, I will use it for a custom link component in the main header. I wrote about that in the last post. The general idea is as follows. 

  1. The base is a styled component. Identical definition as the Styled component library for React. 

  2. Creating a root element (usually a div, header, or section), that will wrap the element. 

  3. Create slot elements. These are elements filling the wrap component. 

  4. Next, assemble it into a react function. 

  5. In the next step, I can access it from the theme component same as the default elements. 

There are two more steps that I don’t understand right now. For that reason, I won’t mention it right now. I don’t want to post anything misleading. 

Tomorrow I will continue with custom components. I will finish the process and at the end of the session, I will have a customized main header link. 

✅ DAY_007: Sep 12 2024

DONE: 46 minutes. Researching and setting up custom components for a template. 

Today was tough. I am glad I am finished with the session. It is 11:20 pm and I am at the beginning of this post. It will be short. It will be on the point. 

Coding is hard. My friends and people around me often tell me how lucky I am. “Wow, that is great you can work from home.”, “Traveling while working, that is the dream.” I can put here ten statements like this on top of my head. I guess you know where I am heading. Most people have no idea what they are talking about. My only answer is nodding. I nod and usually say: “Yeah, it is great.” 

Yes, I am grateful I get to do the work I do. But it doesn’t have to do much with luck. It is not any miracle. Since I was in university I started this journey of being flexible. The goal was always not to tie myself in one place. Our world is too interesting of a place to be in one spot. But it isn’t easy. It isn’t luck. It isn’t the dream. It comes with the cost I have to pay. Price I have to pay every day. 

Wow, I going into a philosophical realm, even though I wanted to talk about custom components. It seems to be on the right track. It took me 45 minutes to get one simple custom element working. It means I was able to read and copy small pieces of documentation to try new skills I didn’t know. And I talking about concepts I have seen before. It is a framework and style of coding I know something about. It isn’t a blank sheet of paper for me. And it still takes 45 minutes. It got me to the point where I don’t understand the concept, I definitely don’t remember it. I can’t replicate it tomorrow. The achievement was that my custom element appeared in the app. It doesn’t do anything. It doesn’t have the right properties or styling. It isn’t reusable for other parts of software. 

What is the conclusion of all this? In those 45 minutes, I was keeping up with a concept I needed. There are hundreds or thousands of new concepts, technologies, and syntaxes. I will need those in the future. There could be the next thing I should start learning today. 

Until the end of this post, I didn’t realize it was the 7th day. It has been a week since I started. 🥳

✅ DAY_008: Sep 13 2024

Done: 73 minutes. New desktop edits. 

I am traveling from the west side of the Czech Republic to north east side. It is approximately 6 hour drive. From the perspective of North America, it is a short weekend drive. For the Czech Republic, it is a big trip we prepare for a week in advance. This time it is a particularly interesting trip. Heavy rain is pounding on a windshield. Every news report there are new traffic jams and accidents on the road. People are stocking up on sand and bags to protect their homes.

The desktop page is coming together. There are still some tweaks here and there, but I finished the major parts. I only need to finish the contact form and footer. I guess that each section will take one session. In theory, it will be ready for the first round of reviews in the middle of the next week. Isn’t that exciting?  

 I am glad I decided to get into the default setup at this point. It helped the design quite a lot. Simple unifying styles in typography make a difference. Small details like those that lifts the entire feel of the design. I will have to go over the default button styles. One of the big questions is always spacing between elements. Setting up the same spacing for text, header, and other elements isn’t complicated. The problem is that doesn’t look good in every scenario. In most cases, it means a few back and forth with the designer. That is not too bad.

✅ DAY_009: Sep 14 2024

Done: 45 minutes. I'm almost ready for the first round of review. 

I was able to finish the coding session before everyone else woke up. 

So far my estimate is close to reality. I was able to do the contact section in one coding session. I had time to take a quick look at the footer section.  I will have to make some structural edits to make the responsive footer easier. 

I didn’t write this post in the morning. Now I am in a hurry. The wedding I am attending is getting busy. That is all for today. 

✅ DAY_010: Sep 15 2024

Done: 62 minutes. Finishing the footer for the desktop 

I did it! I finished the desktop styling. The estimate was a dead on. I was able to finish one section in one session. 

I woke up tired and thirsty. It started raining two days ago and it continues. During yesterday the electricity was on and off all the time. Late at night we finally got a stable electric power. When we went to bed everything worked. And the rain seemed to doze off. Now it is a different story. The rain started to pick up again, the winds were strong and electricity was down for the last 6 hours. This time we also lost a mobile service. Everyone wishes for a cup of coffee after a long night of celebration. Of course, everything is on electricity. 

At this stage, I finished the footer for both mobile and desktop. I had to refactor the code from my original version to get it working from mobile to desktop. Sometimes I doubt the philosophy of doing mobile-first development. The truth is that mobile is usually more challenging. But only from the point of user experience design. As pure development goes desktop is usually more complicated to style. It makes sense since the desktop is more specious and designers can play more with the layout. On the other hand, as far as my experience goes it usually takes more time to style the desktop. The mobile version usually takes less time. This time I did pure mobile first development. I made one mistake I am aware of. While I was working on the mobile version I should have planned more in advance and taken the desktop version in a count. After I finished the desktop version. I will have to go over each section again and review the styling for mobile again. 

Especially the event section will need quite a bit of work. I am still hoping to ship it out for review in the middle of the week. 

Electricity is still down. There is no service and my battery is dying. I hope I will get the chance to post it today. 

✅ DAY_011: Sep 16 2024

DONE: 60 minutes. Upgrades in mobile and desktop. 

Today I don’t know what to talk about. I did a quick session before a family lunch. I didn’t finish it in one sitting so I finished the rest while watching the news on television. It stopped raining today, but some places' situation isn’t improving yet. Some rivers are still rising. Tomorrow, I will travel from Moravia to Prague. Some of the tracks are below water at this point. It should clear before tomorrow. 

Progress in the app is slow. I am very close to finishing the homepage. I must be careful about every upgrade to avoid damaging something else. At this point, it is a game of balance. Polishing one element can’t affect the one next to it.

✅ DAY_012: Sep 17 2024

Done: 89 minutes. Social link and link sharing. 

I like to code on the train. I was traveling from Moravia to Prague. I was afraid there would be some troubles on the railroad. Fortunately, we had no trouble on the road and arrived safely and on time in Prague.
I didn’t have much time to put this post together. I am happy, and I will make it before noon. Tomorrow I will put together a proper progress report. See you tomorrow. 

✅ DAY_013: Sep 18 2024

DONE: 60 minutes. Home page progress. 

Running workout in the morning, rushing to the downtown . Find the coffee place quickly to finish the coding session. Early lunch with Tomas. He is the brain behind the Good Networking. We met each other for a long very long time. He was the first person I was inspired by during university. I understood for the first time there is more to education than there is in books. I realize the Youtube is the best professor. 

Then I rushed to client meetings, some administrative  work and fiends meeting with good Czech beer. As I am writing this in the taxi going home I am hoping to post it before midnight. I am glad I did the coding session first thing in the morning. Cause now I am stressing to post it before midnight. 

There were many events today I would like to write about. But there isn’t much time. I am ending it here. 

Next
Next

Developer’s Diary 2: Good Networking