Nothing in life worth doing is easy.
Somehow, your comment has convinced me to just learn native development. Cross-platform work feels like an absolute slog, with or without portable code. I guess I’ll find out which one is less tolerable.
Ask HN: I just want to have fun programming again
161–170 of 219 posts
Re: Ask HN: I just want to have fun programming again
#162monads, type-classes, pattern matching to get out of the imperative mindset from cpp, java,python, ruby
[to be clear avoid java, cpp,python, ruby]
c is needed for performance,
elixir/erlang for concurrency/parallelism,
haskell/racket/common lisp for enlightenment
Re: Ask HN: I just want to have fun programming again
#163Earlier quoted context omitted.
Big +1 on this. If you're OK with a broader definition of "programming" and have a bit of money to throw around, I've found tinkering with https://www.home-assistant.io/ to be very satisfying. I got more sense of accomplishment from scripting "text me when I leave the house if I forgot to set the alarm, and turn on the front porch lights when I arrive back if it's after sunset" than I did from months of corporate wor…
Deploying Home Assistant is largely how I taught myself Docker, Kubernetes etc. Its much easier to learn solving a "real" example. You can learn a ton just trying to do a production grade home assistant deployment - move on to SSL termination at the load balancer with letsencrypt, try different deployment strategies for upgrading the server with zero down time, write custom extensions... etc etc. I've now got a small…
Re: Ask HN: I just want to have fun programming again
#164Re: Ask HN: I just want to have fun programming again
#165Re: Ask HN: I just want to have fun programming again
#166I had similar feelings, and I get the same feelings looking at today's front end development which looks increasingly like embedded C++ development. I had always tinkered with Lisp but expected it to be forever marginalized given how good Common Lisp was, and how poorly it had been adopted by industry. But Clojure changed that for me. The fun seems to come from agency, the ability to affect outcomes with reasonable a…
Clojure is my favorite language that I've never used in production. It truly is a joy to use. I just get nervous when thinking about building a real application in it because of: lack of static typing and my temptation to be clever when writing it (this is inversely correlated with long-term maintenance). But I'd agree that if you want to find joy in programming again, Clojure might do that for you. It's a lot of fun…
Re: Ask HN: I just want to have fun programming again
#167Earlier quoted context omitted.
Deploying Home Assistant is largely how I taught myself Docker, Kubernetes etc. Its much easier to learn solving a "real" example. You can learn a ton just trying to do a production grade home assistant deployment - move on to SSL termination at the load balancer with letsencrypt, try different deployment strategies for upgrading the server with zero down time, write custom extensions... etc etc. I've now got a small…
Homeassistant is such a useful project. I use it for self hosting bitwarden, ubiquiti addon and bunch of smart home devices. For SSL I have been using local root authority but is a pain to maintain. I am able to access HA client from browser and Android phones but iPhones don't want to play. How did you do LetsEncrypt with HA?
https://en.wikipedia.org/wiki/Reverse_proxy
If you use LetsEncrypt's DNS-01 challenge to setup the SSL automatically, you can even deploy valid working SSL for IPs in the private range (192.168.x.x, 10.x.x.x etc etc), allowing auto-deployment of SSL for private services on your LAN, not just publicly accessible/exposed IPs. You can get around port forwarding during initial letsencrypt setup with this too, as all happens via DNS providers public APIs.
> https://letsencrypt.org/docs/challenge-types/#dns-01-challen...
Caddy is really easy to deploy as a Docker instance as well. There are many, many ways to accomplish LetsEncyrypt with HA though! It's really just an example of a common generic reverse proxy problem - searching for "reverse proxy letsencrypt" will show you many other ways to do it too. If you are using Docker to host your services at small scale, there are some really clever options now that auto-configure Caddy and SSL via letsencrypt all just using docker compose:
Re: Ask HN: I just want to have fun programming again
#168Re: Ask HN: I just want to have fun programming again
#169Re: Ask HN: I just want to have fun programming again
#170I found fun again in two easy steps: (1) Unlearn the "large team workflow mindset" and embrace the "single developer mindset" again. You don't need a plan, a Kanban board or a bug database, just an idea in your head. Get rid of "big languages" which are good for team work, but just a hinderance when working alone. In my case this meant: dropping C++ and embracing C (today that would be: Zig). Focus on getting shit do…
This worked for me. A few months ago I quit a really great job partly because I was struggling with motivation. Fast forward to today and I’ve got a couple freelance projects on the go which aren’t even that interesting, yet sometimes I can’t stop working on them.
I think the large team workflow took far more of a toll on me than I realised at the time. A single line of CSS might start with a discussion in Slack, followed by a ticket, which then gets brought into a sprint some unknown time in the future. Make the change and wait days for the PR to get approved, PR might have a discussion so you need to find the original discussion in Slack, someone might suggest multiple different ways you could have made the change even though it makes no difference. Someone else might suggest that because you’ve touched this line of code you should refactor the entire file, to avoid conflict you just make all the changes even though you disagree, put it up for review again, someone else says they liked the first way you solved before any changes but whatever, tag it in a release go through QA, QA and BAs interrogate you on why you refactored more than the ticket, QA picks up issues that have nothing to do with your change so you have to figure out how long those issues have existed for, finally 4 weeks later your change is in prod and you can move onto the next task.
Working by myself has been incredible. I don’t miss having to justify every technical decision to a team that can’t ever seem to agree on anything. I’m able to react and ship so much faster and the product is more stable and of a higher quality (subjective) than anything I worked on within a team. I’m not sure what this means for my future prospects, but also not too worried at the moment.