Weekly Dev Update 4
Templating Blog Post / Completed Templating/Golang/Postgres Work Project / GameBoy Color Development
Templating Blog Post
As I struggled with a work project that required some midly complex Golang templating, I came up against the reality that I simply wasn’t going to be able to get a fix to my issue without either abusing ChatGPT, or learning it thoroughly myself. Of course the first is the quick and easy option, however, it leaves that come impossible to maintain, and not to mention, I am left no better of a developer. So I hit the books, read half a dozen articles on the topic, twice over in some cases, then spent hours sifting through Go’s documentation in the text/template package. It was a great experience. I feel every time I decide to roll up my sleeves and write and blog post on a topic, I become painfully competent on the topic. This is only the second major roadblock I have found to justify this level of throroughness, but as I thought, I am walking away feeling very confident. After going through this with the http/net package in Golang, I still have a scary-good memory on the precise documentation, even though I’ve only programmed through it a couple times on my own. There’s a very big difference between feeling like I can absolutely solve a problem with time, and another version where I have, beyond a memorized understanding, but a comprehensive knowledge on the subject, enough that I could write it out on a whiteboard. It is a fantastic feeling, to the point where I am looking more and more for an excuse to start studying something in a way where I can start writing a blog post on it. Right now, I think I may consider an advanced tutorial on templating, since I didn’t get to go too deeply into the Template type and its fields, or the context type within the Template type.
Weekly Dev Update 3
Weekly Dev Update 3
Conference / RAG AI Presentation / Developing New Web Server at Work / Closing thoughts
Conference
This week I went to a local conference. It was a conference that I would assertain is best suited for C-Suite positions. Most of the presentations were done by people with decades of experience in IT, and the main focus was, as almost all tech events have been somewhere hovering around, AI. I thought it was interesting to see the interests, and focuses of C-Suite level individuals. What AI services companies are building, what apps crashed, what apps lost money, what apps are succeeding, and what differenciates them. There was a lot of level-headedness. Almost all of the presenters warned people about the AI-Hype cycle, as a reminder of the recent Cloud & blockchain hype cycles. It was the first time I had heard that there was a cultural shift in the C-Suite world where many reputable leaders lost their jobs, and seriously damaged a lot of companies, and thereby people’s lives, by migrating to the cloud before running the numbers. Many of the leaders are finding it very difficult to see the benefit of creating AI data & developer teams to save possibly shallow amounts of costs after that, especially if these services need maintained. Many of them are becoming far more interested in open source projects like Llama3 and beyond. There was a lot of praise for RAG (retreival augmented Generation) AI services. Where this pattern has been serving companies, and clients best, by being the most minimal approach, with the least overhead on development time to build.
Making Sense of Golangs Templating
In this article, I want to discuss a flexible approach to templating in Golang. By keeping a flexible approach, I mean my aim is to avoid complicated explanations, in favor of explaining the surface level of the main approaches I see myself, and others take when templating. One of the great parts of Golang is that it strives towards simplicity, and in that pursuit, there should generally be one straightforward way of doing things. When reading many articles, and skimming through other Golang tutorials, I found many ways to approach the same problem of templating correctly in a way I could understand. Thus, this is aimed to take someone who has no experience messing with templating, to a point where they feel confident building any templating with any approach they think is best.
Weekly Dev Update 2
Weekly Dev Update
Creating Content & Developing User Registration
Registration Form
This week, what I spent the most time building was the continued work on my registration form. Returning to a sort of mid-level phase, adding sessions to a database, not stored locally in a map. This is nearly complete, but I hope to get that complete, and begin adding tests. I haven’t made database unit testing in Golang, so that’s something that really excites me. I am finding that I really enjoy, as a developer, the experience of dealing with, and navigating through the processing, manipulating of data. Working with a database, architecting multi-step solutions, and producing useful data to the user, is something that feels exciting to me right now.
Simplifying Middleware in Go
Simplifying Middleware in Go
I want to discuss some of the discoveries, and challenges, I ran into while building a Golang http web server, and making the authentication part of the application. Since I have not been using any frameworks, the process does get a bit deep, far moreso, comparatively to the ease by which other frameworks and languages remove the technical details of an application via abstractions. However, I stand by the idea that understanding a process without abstractions, is the best way to approach bugs, foreign code(code you are unfamiliar with), and also helps you to pick up new concepts quickly when encountering something novel.
Weekly Dev Update 1
Weekly Dev Update 1
Arden Labs Golang in AI Webinar
This week I had a chance encounter! I was listening to ‘Cup O’ Go’ podcast, where Bill Kennedy mentioned some of the trainings that Ardan Lab does, which led to me seeing the Ardan Labs was sponsoring a free Webinar on how to use Golang to create AI services! So many of my side projects related to AI were shelved because of how commited I am to learning Golang. However, I have had some bad experiences with conferences of late. Where I kept attending teaching events where the content was far too broad, tailored too specifically to beginners, or my favorite ’this could have been an email’. However, I was delightfully surprised at the level of this Webinar. I felt like my horizons expanded for what kinds of projects I can build using AI with strictly Golang! I learned a lot more about the ‘RAG’ approach, and how fine-tuning should generally be seen as a last resort. I have a lot of reading to do for Golang, but this really inspired me to consider giving some of the Ardan Lab Golang courses a shot in the future, once I’ve at least hit an intermediate level.
Weekly Dev Update 0
Weekly Dev Update
Building a Web Server & Creating This Blog
- Building a Golang Web Server from the ground up I turned a basic empty Golang project, into my first attempt at building a web server. This has been much harder than I thought. There is so much about building a Golang web server that is significantly different from the API’s I built in Java in the MVC design pattern. On top of learning new Go concepts, learning a new folder structure, the terms that go along with this kind of project has been seriously jarring. Several stages of getting discouraged, needing to realign my expectations on myself, and reminding myself that it’s okay to be stupid… Being stupid is the first step to becoming better… If I want to get better, I have to be willing to be stupid.
One of the interesting challenges is learning about routers, handlers, and the ability to have seperate handlers that trigger on the same request. One handler to perform actions on the database, another action to send up the proper html. Somehow, this process felt well hidden from me during my tenure of building Java & Vue full stack applications. But building it in Golang, all on one backend, has felt much more fundemental and given me a better understanding of what the large front end frameworks are doing. This feels like a necessary learning requirement for being able to properly understand, and demystify how web servers work. All of this came through hours of untangling, building, deconstructing, and building better after some more research once I realized my way was incoherent in way way or the other. Still, it feels like a releif to uncover more puzzle peices. With this, I can feel myself growing again. I’ve been having ideas around this. How I am spending time learning more fundemental computer science concepts, instead of becoming competent in a powerful sbatraction tool, like React, for example. While React is a very useful skill, I think, without the fundemental understanding to back it up, you have a limit to how far you can advance as a programmer. Instead, I am trying to challenge myself constantly, which creates a lot of friction. But that friction creates the framework where I can learn a new tool, and be much more competent, in a much shorter timeframe, and without the limiter on my skill level. I am very appreciative for this phase of growth. They come and go, but every time they come, I feel much stronger on the other side.