< Back to the archive

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

Issue #161 - April 10, 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 DustinBrett

https://dustinbrett.com/

I've spent the last 16 months working on this app/site. It's my passion side project to build a functional desktop environment in the browser.

Here is the source code: https://github.com/DustinBrett/daedalOS

Top comment by agentcoops

I'm very similar and would just give you two pieces of advice: (1) buy books compulsively and don't do your research predominantly online, and (2) make sure you write often, whether or not you publish your work or keep it to yourself. I think the latter is the most important advice for those trying to pursue an intellectual path outside of academia -- if you don't develop a habit of writing, you aren't really synthesizing what you've learned and developing your thought. Don't worry if the quality is not great to begin with (and certainly don't worry that it seems cliched).

The other thing I would suggest, if your career and family would manage, is spending time working in the UK. It's very easy to get a visa if you're involved in the tech industry and their higher education system for MA/MS degrees and PhDs is very different than the US, both more affordable and better suited towards working life. In the US, the thought is that if you're doing a PhD, say, it's a full-time professionalized pursuit under the assumption you will be a professor; in the rest of the world, a PhD is essentially an apprenticeship in writing under a mentor for however long it takes you, often with no aim (i.e. career) other than that writing itself.

Personally, I've alternated between highly-paid years working in the tech industry and years studying or writing without employment to great personal satisfaction (and managed to help publish a few scholarly anthologies that wouldn't have happened without someone who didn't need to rely on academic grants etc).

Top comment by frankincense

PLEASE do not read any of these people's advice. Talk to a MEDICAL PROFESSIONAL, preferably a DOCTOR. DO NOT trust your mental health to strangers on the internet, be it reddit, or hacker news, or whatever.

If you are based in the US and live nearby a university they usually have good counseling services and the infrastructure to refer people even if you're not attending the school. Search "{school} counseling services" on google.

Top comment by vidarh

Yes. I once did zero downtime migration first from AWS to Google, then from Google to Hetzner for a client. Mostly for cost reasons: they had a lot of free credits, and moved to Hetzner when they ran out.

Their savings from using the credits were at least 20x what the migrations cost.

We did the migration by having reverse proxies in each environment that could proxy to backends each place, set up a VPN between them, and switched DNS. Trickiest part was the database failover and ensuring updates would be retried transparently after switching master.

Upside was that afterwards they had a setup that was provider agnostic and ready to do transparent failover of every part of the service, all effectively paid for through the free credits they got.

Top comment by FWKevents

-- Limit your time on social media to 20 minutes or less a day (LinkedIn/Facebook/Discord use that's related to work is an exception.) No studies exist yet to support this hypothesis, but it's my observation that longtime exposure to social media impedes overall focus.

-- Limit your TV watching to one or two hours on the weekends, per week

-- Limit video game use to one or two hours per week

-- Find an activity you like to do "offline" that you can do regularly such as walking, yoga, biking, etc, and do that more often. It will clear your mind and bring you back to center

-- Wake up early and try to accomplish something significant before 8am

-- Be kind to yourself when you lose focus and gently redirect your mind back to your tasks. If you get off track for hours or an entire day, wake up early the next morning and put your best foot forward without dwelling on the day before.

Top comment by oneoff786

I’m a huge fan of blueprints. A few things it does well:

* makes the engine api very discoverable, which is huge. It’s a step above intellisense and auto complete. The api is likely the reason it’s so dominate in games. It’s the bulk of game programming. Visual programming isn’t very good for coding new things from scratch.

* let’s you read code and clearly follow execution from start to finish.

* let’s you visually document concepts with collapsed nodes, and colored containers and what not. Good blueprints are literally written as long form pseudo code, with double clicks to see actual implementation.

* concepts like const functions are just conceptually clearer. Const functions have no execution pin. They (should) have no side effects. Just a calculation. The engine doesn’t enforce this I don’t think but it’s close…

What it explicitly does not do is allow you to code games without knowing how to code. Countless beginners just die on the first steps. You still need to understand object oriented design and basic coding concepts to do well.

Top comment by genezeta

Blood sacrifices and invocations to see who can summon the cutest and fiercest beast. You show your demon to the camera and get votes on it and on the chants you did to bring it from the depths. At the end of each sprint.

Remote orgies to appease the gods of nature and ensure a good deployment. Everyone wears traditional handmade masks for anonymity and we only do it if all tests are green, obviously. Every three months or so; depends a bit on the moon.

Previously we tried more traditional stuff like fire walking but we had to stop doing that one because a guy in another team wasn't careful setting up the coal, ended up burning the company laptop, and then HR banned it ¯\_(ツ)_/¯

----

Edit (for constructive commenting):

I guess I don't like rituals. I much rather prefer a less forced environment for more spontaneous and relaxed communication.

That's not to say you can't have some habits or whatever, but I feel most of those "cool ideas" always end up feeling tiresome to some part of the group if they don't grow from the people themselves.

Top comment by gregdoesit

I have been blogging for about 14 years - 7 of these on a blog dedicated for software engineering topics.

I removed all commenting options after about 8 years of blogging. The reason was spam, noise and little value add.

Around 2015 70% of comments coming in to my blog were from bots and another 10% from anonymous folks making irrelevant, and sometimes insulting comments which I all had to delete. About 20% of the comments were still valuable, but moderating felt like an additional stress, on top of writing.

After a few of my blog posts made it on to Hacker News, I noticed the discussions here are far more interesting and productive, surpassing the best comment threads on my blog over the 8 years while I still had comments open.

I removed all commenting and never looked back. When I write, I focus on writing. If anyone wants to, they can find my contact details to share insights about the post - and some people still do.

As someone writing a blog, I'm much better off with no comments open to the whole world. I suspect this is what most other people have also realized.

Top comment by tveita

PCs can and do include hardware support for entropy gathering, see RDSEED [1]

Linux is aware of RDSEED and uses it to provide additional randomness when available. You do need to trust the implementation to be free from backdoors and bugs - some CPUs are known to be buggy. [2]

Randomness seeding issues largely does not concern desktop PCs or smartphones (although you can easily catch early booting programs like systemd reading randomness before it has been fully seeded) [3].

It is a much bigger issue on either small embedded devices or VMs, both of which may have very few peripherals to gather entropy from. They can be provided randomness through dedicated hardware support, or from the host, and they probably should be, but that still leaves many real-world systems currently running Linux out in the cold. This is not just a theoretical problem, as has been shown by looking at indicators like RSA keys with colliding primes, which should never happen when generated with good RNG. [4]

[1] https://en.wikipedia.org/wiki/RDRAND

[2] https://github.com/systemd/systemd/issues/18184

[3] https://github.com/systemd/systemd/issues/4167

[4] https://freedom-to-tinker.com/2012/02/15/new-research-theres...

Top comment by rayiner

Typically CPU and GPU communicate over the PCI Express bus. (It’s not technically a bus but a point to point connection.) From the perspective of software running on the CPU, these days, that communication is typically in the form of memory-mapped IO. The GPU has registers and memory mapped into the CPU address space using PCIE. A write to a particular address generates a message on the PCIE bus that’s received by the GPU and produces a write to a GPU register or GPU memory.

The GPU also has access to system memory through the PCIE bus. Typically, the CPU will construct buffers in memory with data (textures, vertices), commands, and GPU code. It will then store the buffer address in a GPU register and ring some sort of “doorbell” by writing to another GPU register. The GPU (specifically, the GPU command processor) will then read the buffers from system memory, and start executing the commands. Those commands can include, for example, loading GPU shader programs into shader memory and triggering the shaders to execute those shaders.