< Back to the archive

Like what you see? Subscribe here and get it every week in your inbox!

Issue #187 - October 9, 2022

If you are looking for work, check out this month's Who is hiring?, Who wants to be hired? and Freelancer? Seeking Freelancer? threads.

Here are the top threads of the week, happy reading!

Top comment by CSMastermind

I dated a girl in college, and we were deeply in love. So much so that we got engaged. The one problem was that her family didn't approve of her dating me because of my race. She had initially been hesitant to introduce me to them, but I had insisted that she do it. When they threatened to disown her if she married me, she said that we should just do it and live our lives together. But I was too much of a coward to follow through and tried instead to convince her family to accept me. They never did and our relationship feel apart.

I've never met someone that I care about the way I cared about her. Huge what if.

Top comment by andrasbacsai

Hey, Andras here, founder of Coolify (https://coolify.io). Coolify is an open-source & self-hostable Heroku / Netlify alternative.

Lots of features are added day-by-day and I'm open for new ones. Visit our Github (https://github.com/coollabsio/coolify) or our feedback page (https://feedback.coolify.io/) to get more info.

A few months ago, I quit my job and started to work on it full-time (best decision I've made).

It is not VC funded (said no to 30+ investors - time will let me know if it was a good decision or not ), but funded by the awesome community! <3

Why I'm mentioning this? Because I would like to focus on the functionalities, the community & the users and not the revenue and other boring metrics. I just would like to make a good software, enjoy the process and make people's life easier. I do not want to make millions of dollars from it. If me and my family could live happily, that is totally fine.

Let me know if you have an questions. I'm happy to answer them.

(Also I'm working on a cloud/managed hosting version of Coolify (https://beta.coolify.io/))

Top comment by OliverM

Knowledge of the entire machine's activity. When I was a young teenager the home machine of choice was the Commodore 64 and its competitors. When you turned it on you usually had an interactive programming language REPL start up, probably some variant of Basic, and that was it. Off you went:

    No OS to worry about (the machine probably had a very basic BIOS to handle peripherals but that was it)

    No permissions model 

    A tiny API to interact with whatever graphics/sounds facilities were available

    No need to worry about what resources simultaneously-running programs could be using (there weren't any)

    Actually no need to worry about concurrency at all (you just couldn't do it)

    No need to worry about what language to use (either the one blinking at you when you turned on the machine, or assembly language for the processor)

    No need to worry about how to restructure computations to use a computation shader or SIMD
_You_ were the owner of every resource in the machine and it all danced to your tune. And, best of all, you could come to a complete understanding of how every part of those machines worked, in just a few weeks of practice. Who today knows the intricacies of their laptops to the same extent?

Top comment by kixxauth

My advice is to not focus. At least not yet.

I'm in the 40-45 year old range and assuming you are much younger. Apologies if we are closer in age, since this advice will carry less value.

I have often been envious of people who were more focused than I am. I feel they have been able to make more progress in a given amount of time. I worked as a mover in Boston into my mid twenties, spent a bunch of time trying to become an elite athlete, climbed big mountains, eventually learned to code, got involved in some early ecommerce businesses, eventually video gaming industry, and finally a principle engineer for the playback technology we use on Disney+.

I was complaining about my lack of focus to an old college mate, and he posed an extremely relevant question: "Do you regret your experiences?"

No, I don't. Not one bit. The experiences I've gathered are assets which build on each other, leading to more and more valuable experiences.

I have an objective of starting my own company, even at this ripe old age, and I am more confident than ever that I'll be successful at it. I have the experiences I need to pursue just about any dream.

Go out and get experiences. If your personality is such that you get a varied scope of experience, it will serve you well. Don't fight it.

Top comment by WastingMyTime89

In my admittedly still short life, I have started to notice something: you can broadly divide the world into two groups - those who do things and those who keep wondering if they should have done things.

So for what’s worth, here is my advice to you: drop Gladwell and self-help books, if you want to and can switch to a new job, do it. Should it work or fail, you will have experienced trying. If you don’t feel like it or find yourself unable to because banks won’t loan to you, you can’t be hired or it’s finally not financially viable, don’t do it and rest in peace knowing it was your decision/you tried.

You don’t need an external reason like being too old or outside validation, you are old enough to make your own choice.

Top comment by jll29

Over the years, I have acquired most of what people call seminal C books, and after reading them, I recommend the following two books to people who already know programming:

Peter A. Darnell and Philip E. Margolis C - A Software Engineering Approach (3rd ed.) https://www.amazon.com/Software-Engineering-Approach-Peter-D...

David Hanson C Interfaces and Implementations: Techniques for Creating Reusable Software (!st ed.) https://www.amazon.com/Interfaces-Implementations-Techniques...

The first is clearly written and focuses on ANSI C (lexis, syntax and semantics), with a healthy dose of software engineering education along the way, which you may already have. (It does not yet cover the latest ISO changes.)

The second book is a true gem that teaches even seasoned programmers how to implement correct, clean and portable components as libraries in ISO C, with plenty of source code to show how the true masters of the language craft the finest code you can in C. Most books how fragments of linked list implementations, but only this book shows complete a whole range of important ADTs you cannot live without (e.g. List, Ring, Atom) in C portably, with strong typing, bullet-proof error handling etc. (Hanson is also the author of lcc, a portable C compiler.)

I'm actually surprised that these are both are so little known, and that the second one hasn't seen more editions.

Top comment by fallenhitokiri

I do not know of an opinionated beginners guide, but would recommend browsing r/selfhosted and r/homelab a bit. Lots of these and similar questions are answered on a regular basis.

Some starting points

- photos: NextCloud

- git: Gitea

- BitWarden: Vaultwarden (even if you deploy this locally you want a SSL certificate as clients will refuse to connect otherwise)

I'd suggest using official docker images to get started as there’s plenty documentation available for all projects and experimenting is a bit easier when you can simply dispose a container without having to worry what’ll happen to your host OS.

As long as you run services locally on your Synology (assuming it supports docker) and don’t expose them to the Internet I’d encourage you to „just give it a try“.

Just don’t immediately start to rely on the services and run a dual strategy (NextCloud and iCloud photos for example) till you updated your container once or twice and feel comfortable troubleshooting issues with your stack. Nothing is more discouraging than having a service you need „right now“ being down and no idea how to get it back up.

It’ll be a long, fun journey. Good luck!

Top comment by coffeefirst

I call this the "path to enlightenment." You have discovered that the most popular toolchain is overkill for 95% of the things its used for.

The problem is that's true literally across the board. You move to the backend and you have to deal with people who fell in love with microservices and weird databases that they didn't need. You move to ops and you have to deal with k8s when a single container would do. If you try mobile app development, let me know, I've never tried but I doubt it's exempt.

Why does this happen? No idea, but it's not lost on me that a lot of these things are backed by huge companies with giant piles of money who are using them as marketing.

The only thing you can do (besides leave it all behind and open a taqueria) is be a voice for simplicity. What are we going to build? What tools make sense for it?

The problem I'm running into is a lot of people expect to use React in the same way many of us once relied on jquery. So if that's the case and we must use some React, what can I do to use it in the simplest and clearest way possible?

Top comment by egypturnash

I am a 2d artist and I have similar feelings.

Are you as full of loathing for all the HN people saying “just integrate the AI into your practice” as I am? I like drawing stuff and I love that this pays my bills and I really have zero interest in becoming a “prompt engineer” instead.

I think a strategy of creating an image of AI art as cheap and tacky is useful. For how long, I don’t know. If we’re lucky then it’ll turn out that getting these things out of the domain of creepy claw hands is a lot harder than anyone thinks it will be, and there will be a lot of obvious tells for a long time.

It may also be useful to try and get your professional associations to bring some suits against these things for playing fast and loose with “fair use”. The legality of these things is debatable, and so’s where “fair use” should fall - personally I feel like nobody posting work on the internet anticipated their stuff being scraped and fed into a giant neural net designed to take their job. Make this shit a lot pricier by demanding that it be built on art explicitly licensed for machine training.

Figuring out where the intersection of “art you like to make” and “art the AI sucks at” lies is worthwhile. If your passion is realistic painterly work then you’re fucked, what do you enjoy doing that isn’t that?

Top comment by orzig

All this is good advice, but I haven't seen any prospective on personal budgets:

- Remember that money exists to be spent on useful things, it's not a video game score

- Understand your monthly spending and monthly take-home. If you're in a role that grants equity, I bet you've got a healthy surplus. If not, I bet you could make some lifestyle changes to achieve that.

- Take a moment to really accept that you are fine. You are not in danger, and shouldn't carry a fight or flight anxiety.

- Then think about your future. Can't sugarcoat it, you might have had more vacations or whatever if your options didn't decline, but I bet that you can chart a course to a decent retirement. Use an online calculator. Again, your future is fine. Not great, but fine.

- Think about what your future looked like when you graduated high school (or equivalent, wherever you did it). Did it definitely include being rich? If not, then you have lost nothing relative to that. And it's possible that on this company, the next one, or the one after that, you'll end up there anyway.

- Finally, spend a little money on something you like, and cut a little money on something you hadn't gotten around to canceling (streaming service, routine meals out, etc) You have so much control over your life.