Meet Rajesh Gor

Techstructive Weekly #18

Week #18

It was a great week, if I could call it a hard-working week, it would be appropriate. I started the week (the weekends) by streaming, creating a video, and planning a few more videos for the next week. Then starting the week with deep intense programming sessions, a couple of flow states during the week made the mind feel accomplished and excited.

After releasing the code that I had been working on for so long in the past week, this week was about taking a new approach to the initial implementation, and it was smooth, it felt good, I was able to change the code that I had written faster and iterate on it quickly. This gave me the confidence that I can write production-ready and readable code. I am not that bad, there is a lot to improve on but quite a good feeling to live with and continue the work.

Quote of the week

“The only way to do great work is to love what you do”
— Steve Jobs

This week, I did the things that I loved, working with SSGs, and databases, writing code, and teaching what I know. It might not be great, but these are the things that I love, and other is no one forcing me to do this, this comes out of my will.

Created

  • VIDEO: What’s new in Golang 1.24: Omitzero Tag in Marshalling JSON
    This video was about the specific tag which is being added to the encoding/json package for Marshalling from Golang structs to JSON (serialization.)

  • TIL: Gotcha with Chained Assignment in Python
    I learned this point while implementing a feature at work, I was in a deep flow state, but this thing bugged me and broke out of the state rightly so, otherwise would have gone in wired directions without doing anything significant.
    Learning python might be simple, but mastering it is a task, there are soo many things to learn about and be aware about. Python is simple but at times could be dangerous if not careful.

![](https://substack-post-media.s3.amazonaws.com/public/images/9786b965-3564-4542-8687-a55727236ab5_325x325.png align=“left”)

Meet’s Substack

TIL: Gotcha with Chained Assignment in Python

I was writing some Python code and wanted to initialize a few variables to an empty list. Instead of creating separate lists for each variable, I decided to use chained assignments like this…

Read more

19 days ago · Meet

  • STREAM: SSG from Scratch in Golang (2 streams)
    I streamed on the weekend and started where I left off by creating static site generator in Golang. This part was about loading the config and posts from the folders and files.
    Then on Sunday, I continued the stream for completing the most basic SSG in golang by adding the rendering of the templates.

Read

  • Database Indexing Explained: from Computer Science Simplified Substack
    This was a great post, explaining the necessary context and fundamentals required to understand the indexing. The last part was a bit heavy, but overall a good and in-depth article on learning indexing.

  • From laid off to hired: Software engineering guide
    This is a good motivational post on getting hired in the era of 2024, this is a new kind of world where you are not only hired based on what you say, but also what your impact says, your brand, your online presence, and actual skills.

  • How I increased my visibility: Kent C. Dodds
    To increase visibility, you need to put it out there. To be seen by others, you have to show your skills and struggles in public. This is to a point article showing practical experience in his journey.

  • Wafris: Rearchitecting Redis to SQLite
    I watched a video on the Database School where a SaaS (Firewall for Web applications) provider moved from Redis to Sqlite. This is such a nice technical post, there are so many things to dive into and how SQLite is the database that just works and not just works but also shines.

  • Time spent programming is often time well spent

    Programming is often more fun than the alternative uses of my time.

    Programming is really fun, the joy of creating something and the satisfaction of completing or figuring out by yourself hits different and cannot be replaced with anything else.

Watched

  • Moving from Redis to SQLite with Mike Buckbee: Aron Francis in the Database School
    As mentioned in the above post, this video was absolutely fun to watch, so much technical stuff in a digestible way. There is so much to learn about networking, the quirks of Redis, SQLite and its adaptability, IP Addresses, and interesting problems to solve. Totally worth the hour.

  • We built an orchestrator from scratch: Fly.io
    Why Flyio built their orchestrator, kind of. They use VMs which Kubernetes is not ideal for as it is designed for orchestrating containers, Nomad has a quirk of assigning a minimal number of VMs/machines for the users, which is not secure enough for Fly.io, so reasonable enough that it is worth for them to write and Orchestrator from scratch (well not entirely from scratch)

  • Why would anyone use Functional programming: The Coding Gopher
    Functional programming languages are designed to think about the what and not the how. So we just focus on the what things to implement and not care about how. So, there are things like functions, no variables no mutations (get out of here python).

  • Let’s Prototype a Javascript JIT Compiler: Andreas Kling
    To be honest, I didn’t get most of the technical things, however, I get the point, he is using AI wisely, whenever he uses AI, HE IS IN CONTROL and he doesn’t let AI take over. I have not completed this video, I said last week it would be on my watched list, but I got lost in other stuff and lost interest in the livestream.

Learned

  • Difference between omit empty and omit zero while marshaling JSON bytes in Golang
    From the documentation

    The “omitempty” option specifies that the field should be omitted from the encoding if the field has an empty value, defined as false, 0, a nil pointer, a nil interface value, and any empty array, slice, map, or string.

    The omit empty is wired, it has its definition of what is empty (which I don’t disagree with but it could be confusing at times). With omit zero, we can control what a zero value is for certain specific data types like structs and time values.
    Will write a post on it soon.

  • How to render templates in Golang
    While doing the live stream and building the static site generator from scratch, I explored the difference of Parse and ParseFS which are two different ways of rendering templates.

    • Template

      // templates/hello.html
      <h1>Hello, {{.Name}}</h1>
      
    • ParseFS

      package main
      import (
      "embed"
      "html/template"
      "log"
      "os"
      )
      // Embed the templates directory
      //go:embed templates/*
      var templatesFS embed.FS
      func main() {
      tmpl, _ := template.ParseFS(templatesFS, "templates/hello.html")
      data := map[string]string{"Name": "Meetgor.com"}
      _ = tmpl.Execute(os.Stdout, data)
      }
      
    • ParseFiles

package main
import (
"html/template"
"log"
"os"
)
func main() {
tmpl, _ := template.ParseFiles("templates/hello.html")
data := map[string]string{"Name": "Meetgor.com"}
_ = tmpl.Execute(os.Stdout, data)
}
  • ParseFiles reads templates from the file system, while ParseFS reading templates from an embedded file system.

  • ParseFiles requires physical files on disk, whereas ParseFS uses files embedded in the Go binary.

  • ParseFiles allows template modifications without recompiling, while ParseFS requiring recompiling to update templates.

  • Chained assignment references the same value to all the assigned variables in Python
    Python might be easier to learn as said earlier, but mastering it really hard, I leart that chaining assignment is not ideal when you want to iniitialise individual variables to different values (same values but separate on their own moving ahead in the code)

    a = b = c = [1,2,3]
    b.append(4)
    a = [1,2,3.4]
    b = [1,2,3,4]
    c = [1,2,3,4]
    

Tech News

For more news, follow the Hackernewsletter and for daily developer articles, join daily.dev

Conclusion

This week was all about refinement and iteration, and it felt great to see the progress I made. From streaming and content creation to diving into deep coding challenges, I learned a lot about the intricacies of Golang and Python.

It is Advent of Code from next week, so I am planning to stream daily for solving AoC with Golang in the first iteration and OCAML in the second, let’s see how it goes.

If you want to tune in, slide into Twitch or youtube

That’s it from this week, hope you did well this week, and have a happy week and weekend ahead!

Leave a comment

Thank you for reading, let’s catch up in the next week.

Happy Coding :)

Thanks for reading Techstructive Weekly! This post is public so feel free to share it.

Share

Thanks for reading Techstructive Weekly! Subscribe for free to receive new posts and support my work.