Spyke

Replies

Comment on

Programming communities already exist

I won't parrot the reasons, I think other comments captured that.

However, I would MUCH rather share links in professional circles to something called programming.dev that is specifically an instance about programming rather than "choose your random generic instance" that has porn, memes, shit posts, etc. and oh look, a programming community too.

Comment on

Microservice architecture, they said. It will be fun, they said.

Reply in thread

I think we have ~400 microservices of varying types that deploy in many ways to many places (big proponents of using the right tools for the job rather than forcing preferred tools) and definitely in the last block. Although, as a DevOps guy my life would be a lot easier if we had a handful of monster monoliths, I understand it doesn't make sense for our scale. I can fantasize though, and this meme hits extremely close to home 😅

Tangentially, at my previous job we were in blocks 4 and 5 of transitioning away from a single monolith. Major issues arise when a "Java only shop for 20 years" start down this path with an extreme mindset of "we only use Java". Java kubernetes controllers? lmfao, no thanks (they wanted them though 😑)

Comment on

Learn x86-64 assembly by writing a GUI from scratch

The original Roller Coaster Tycoon is famously written in assembly.

Sawyer wrote 99% of the code for RollerCoaster Tycoon in assembly code for the Microsoft Macro Assembler, with the remaining one percent written in C.

wikipedia

This always blew my mind, especially when struggling around with things like cmu bomblab back in the day.

I haven't thought about assembly in a long time, and not sure if I want to ;P

Looks like a nice detailed walkthrough though!

Comment on

Random Question: is it weird I don't like pair programming?

Reply in thread

I have found it quite effective while pair programming (senior to junior mentorship) to say OUT LOUD exactly what I'm changing and why I'm changing that. This allows others to more easily follow your train of thought and can lead to good discussions rather than turning PRs into essays.

However, as other comments have mentioned, this can get exhausting.

Comment on

I need to buy laptop

IDEs for this purpose (android dev) are not small little text editors that work well with limited resources. Keep that in mind. You will also need to consider things like compilation and phone emulation, which can also be resource intensive.

I highly recommend looking for something that is built with a Linux distro by default. This will make your life easier in the long run, although it may not be a simple task up front if you are not familiar with Linux.

I don't actually have a Linux laptop, it is a desktop, but I use my Steam deck as a Linux laptop, and can almost do everything I want to, although steamos will require some weirdness similar to Windows. I use IntelliJ Ultimate on my steam deck and can successfully work on smaller scale Go and Kotlin projects while running IntelliJ low power mode.

Most larger dev shops (in the JVM world) will just hand out whatever is the current top ~$3000 MacBook pro (for reasons). This leads to a lot of devs using OSx at work and Linux (at home) for personal projects. An apple computer of any type can help prepare for this inevitability, if Linux is out of the options. I personally dislike this, as I am not an Apple fan, but this is what I have experienced.

Although I use Windows for some personal development, there are so many hoops that one has to jump through to get Windows working properly for advanced things, it almost isn't worth it and requires heavy windows development knowledge, and is probably best to just get a MacBook (of whatever type).

git

Comment on

What's your opinion on git rebase vs git merge?

I rebase my dev branches on main to get rid of garbage commit messages due to me being lazy.

Squash and merge PRs into main, no merge commits allowed.

I think there are reasonable arguments for allowing rebase and merge to main, but it often doesn't apply for me.

Merge commits in main will break a lot of out of the box GitOps tools.

Comment on

With AI looming, is there still space for new coders?

Reply in thread

I find it very difficult to recommend generative ai as a learning tool (specifically for juniors) as it often spits out terrible code (or even straight up not working) which could be mistaken as "good" code. I think the more experienced a dev is, the better it is to use more like a pair programmer.

The problem is it cannot go back and correct/improve already generated output unless prompted to. It is getting better and better, but it is still an overly glorified template generator, for the most part, that often includes import statements from packages that don't exist, one off functions that could have been inline (cannot go back and correct itself), and numerous garbage variables that are referenced only once and take up heap space for no seemingly no good reason.

Mainly speaking on GPT4, CoPilot is better, both have licensing concerns (of where did it get this code from) if you are creating something real and not for fun.

Comment on

What keyboard you recommend for coding?

I have been using "gaming" keyboards for coding for ~10 years now. The only thing to be wary of imo, is keebs that have "extra customizable keys" on them and break conformity from a standard layout. Depends on the device, but Logitech will call them "G keys", for example, and often stick them on the far left of the board, left of tab/caps/L shift. Makes life a lot more difficult if not gaming.

Outside of that, I think calling something a "gaming" keyboard is more of a marketing tactic to up the price. It's hard to not recommend mechanical, but that sounds out of budget and often hard to do wireless/bluetooth, but personally I think mech is the top priority.

What I have seen a lot of peers do is wait to see whatever keyboard the get in office, then buy the same one for home for consistency, rather than dragging a personal one back and forth. Often companies will offer basic boards like logitech K270, K350, or K650. Not amazing, not terrible, and most likely fit in your described criteria.

devops

Comment on

What's the biggest docker footgun you've experienced?

Be really careful when building images that require secrets for build configuration. Secrets can be passed in as build args, but you MUST UNSET THEM IN THE DOCKERFILE and then repass them in as environment variables at runtime (or else you are leaking your secrets with your image).

Also, image != container. Image is the thing you publish to a registry (e.g. dockerhub). Container is an instance of an image.