< Back to the archive

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

Issue #139 - November 7, 2021

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 philangist

I won the IPO lottery and I’m in the middle ground between rich enough to never work again but not quite rich enough for the yachts/mansions/private jets lifestyle. I haven’t worked in 6 months and I’m struggling to find a larger meaning to my life beyond getting yet another tech job. I’ve considered going to college for a math degree, moving to my parents home country, and joining the military (among many other options) over the last few months. Just feeling very aimless so I’ve started reading Russian literature and spending hours on Reddit every day.

27/M (today was my birthday :)

Top comment by jedberg

I loved every minute of my time working at Netflix. Great, talented coworkers who I could constantly learn from, management chain from bottom to top of former engineers, so they understood when you would say, "I worked on this for a week but have no results because it didn't work". Plenty of resources to do what you needed to do, and lots of autonomy to do what you thought was right. Very little process and upper management actively moved to eliminate what little process there was. Unlimited vacation time that was real -- management took long vacations to set an example and would actively encourage everyone to do the same. And of course a great paycheck which included 10%+ raises because they made sure that new people didn't make more than veterans.

I'll be the first to admit it's not for everyone. As they say, they are a sports team, not a family. Perform well and be rewarded handsomely, perform poorly and get cut with a big check. I personally thrived in that kind of environment, where you always have to keep proving your value. But not everyone wants to work that way.

Top comment by jfengel

You explored it. That's it. Turns out there's less of it than you imagined.

There are, of course, plenty of sites that you could visit. Most of them will be incredibly boring. Years ago you found that interesting just because it was all new, but you don't any more because you've seen similar things already.

I suspect that most of those "5 to 6 sites" are aggregators like Hacker News where people seek out new stuff (or at least, new to them) and post it. Most of that new stuff is dull, because most stuff is dull.

You can always hit up Wikipedia's random link and start galumphing about from there. https://en.wikipedia.org/wiki/Special:Random

I got Guy Nadon, an actor in nothing I've ever seen, though he provided French dubbing for some video games I've heard of. Don't care? Me neither. That's life. The vast majority of it is dull.

That means it's time to turn off the Internet and go outside.

Top comment by yadaeno

Pre-Covid much of my job satisfaction came from the sense of comradery of working on a team. Even as an introvert I enjoy interacting with coworkers, and being intune with the needs of the group and generally helping other people succeed.

When we transitioned to full remote, all of this was stripped away and I was left to focus purely on a product that on its own I was not passionate about (think ad-like product). I was met with a sudden loss in motivation, burnout, and decided to take 9 months off to pursue a tech unrelated hobby.

9 months after leaving, I have accepted a position with a 50% raise over to my previous job.

I think covid was a splash of cold water that's caused many of the people in my circle to re-evaluate how they spend their time. Tech workers are so in demand that we can freely change jobs so it follows that many people would availing that option.

Top comment by mikemcquaid

Homebrew project leader here: I hope you're able to find a package manager that better fits your needs and I'm sorry that Homebrew is not currently doing so.

---

Homebrew upgrades dependencies and dependents of those dependencies (which, admittedly, can feel like unrelated) on installation and upgrade. As mentioned in other comments, you can customise this behaviour with `HOMEBREW_NO_INSTALL_UPGRADE` or `HOMEBREW_NO_AUTO_UPDATE`.

Homebrew does this because the alternative is sometimes breaking things. An example:

- you want to install `virtualenv` that depends on `python@3.10`

- the binary package for `virtualenv` you want requires the newest `python@3.10`

- this upgrades `python@3.10` on installation

Now, Homebrew has a choice. Either we upgrade _everything_ that depends on `python@3.10` that you have installed or we knowingly break some of the things you have installed that depend on `python@3.10`. We choose the safer option by default.

The more time left between updating/upgrading, the more likely to have more dependencies updated which requires more dependents to be updated.

---

Regardless, I appreciate this is a problem and we're still figuring out potential solutions for this problem. A reminder that we're a volunteer run project so it's not always as easy as we'd like it to be to get these changes out quickly.

Top comment by henvic

Just leave. It's the professional thing to do, if you can sustain yourself.

In 2012 I've left my hometown and went to the other side of my country to work at a startup. Within 20 days I left because the situation was critical. I was already feeling like I should leave on the second week, but decided to wait just to break-even from my moving expenses.

It was e-commerce startup where the team lead / project manager was actually the only backend engineer.

One of the problems I had was that it was impossible to work with him.

He despised git, so we used svn. Fine. It was in the early days of git, I could understand that. He didn't write proper svn messages (but garbage like... always 'ghnwerigkelrwn'), and told me I shouldn't care about it. Ugh... Okay, I think I can try to change this situation.

Then on my first days of work I noticed that something was very wrong with the repo. Turns out the guy configured his Eclipse IDE to commit to SVN any time he saved any change.

And he'd just type random keys out of boredom in any part of the system (PHP, which is an interpreted language) and break things wildly.

For those that doesn't know: SVN is a centralized versioning system. It's not like git, where you push things 'later'. When you commit, it's sent to a central server.

Top comment by onedognight

I use it regularly. Sometimes it’s broken, and maybe nobody notices but me? :)

Their natural language queries for things that I know they know about are amazing. Here are some that I have used recently. You really need to see these results to appreciate them.

I wanted to know how tall my daughter might be.

   8 year old female 55 lbs
http://www.wolframalpha.com/input/?i=8%20year%20old%20female...

I wanted to know the nutrition content of an egg sandwich.

   1 egg, two slices whole wheat bread, one slice of cheddar, two pieces of bacon
http://www.wolframalpha.com/input/?i=1%20egg%2C%20two%20slic...

I was curious about the relative usage of two names over time.

   Michael, Henry
http://www.wolframalpha.com/input/?i=Michael%2C%20Henry

Top comment by Dave_Rosenthal

I built games in the 90s. Graphics was obviously the hardest part.

We thought about things in terms of how many instructions per pixel per frame we could afford to spend. Before the 90s it was hard to even update all pixels on a 320x200x8bit (i.e. mode 13h) display at 30 fps. So you had to do stuff like only redraw the part of the screen that moved. The led to games like donkey kong where there was a static world and only a few elements updated.

In the 90s we got to the point where you had a pentium processor at 66 Mhz (woo!) At that point your 66Mhz / 320 (height) / 200 (width) / 30 (fps) gave you 34 clocks per pixel. 34 clocks was way more than needed for 2D bitblt (e.g. memcpy'ing each line of a sprite) so we could beyond 2D mario-like games to 3D ones.

With 34 clocks, you could write a texture mapper (in assembly) that was around 10-15 clocks per pixel (if memory serves) and have a few cycles left over for everything else. You also had to keep overdraw low (meaning, each part of the screen was only drawn once or maybe two times). With those techniques, you could make a game where the graphics were 3D and redrawn from scratch every frame.

The other big challenge was that floating point was slow back then (and certain processors did or didn't have floating-point coprocessors, etc.) so we used a lot of fixed point math and approximations. The hard part was dividing, which is required for perspective calculations in a 3D game, but was super slow and not amenable to fixed-point techniques. A single divide per pixel would blow your entire clock budget! "Perspective correct" texture mappers were not common in the 90s, and games like Descent that relied on them used lots of approximations to make it fast enough.

Top comment by seaknoll

I'm not perfect about this but one experience in particular helped me.

I was a new employee doing on-the-job training for an even newer employee, while we were trying to meet a deadline. We were the only two people working on this project, in the middle of rural NM, out of cell range, and having to improvise. He kept making suggestions and I kept explaining why they wouldn't work. Suddenly he point-blank asked me why I said no to everything. I had a moment of clarity where I realized that I didn't even want him to be right, for no good reason except my ego. I apologized, horrified, and have been forever grateful for the wake-up.

After that I started to notice that pattern elsewhere. The best way I've found to interrupt it is to ask myself "what if they're right" and/or "in what way might this person be right that I may not have considered"?

Top comment by nickysielicki

IPv6 dates back to 1997 and it really should have been adopted more urgently. IPv4 isn’t a huge issue but it sucks that so much of the internet is dependent on cloud providers because it’s the simplest way to get a public IP address. The decentralized web didn’t happen, in part, because of this.

Facebook was famously started and hosted in a dorm room. But this was only possible due to the history of Harvard within the advent of the internet and the fact that they had such an excess of addresses that Zuck could bind to a public IP address. We’ll never know what tiny services could have blown up if people didn’t hit this wall.

I started off with computers by hosting garrysmod servers. My brother started off with computers by hosting a website dedicated to the digital tv switchover in Wisconsin (lol). This was only possible because my dad was a software engineer and paid a bit extra to get us 5 dedicated IP addresses. If he didn’t understand that, who knows what me or my brother would be doing today.

Anyway, I say IPv6.