< Back to the archive

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

Issue #179 - August 14, 2022

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

Top comment by entropicgravity

Personal vehicles will be getting both bigger and smaller. What's different from the past is that electric motors scale much better than IC engines. Both the world's smallest vehicles (kid's toys) and the largest vehicles (huge mining trucks) are both electric.

First the small. Cities will soon start to ban all but electric vehicles in their downtown cores (already happening in some Chinese cities). The primary reason being electric vehicles don't emit the poisonous gases that IC vehicles do. The next phase will be only EV's that are half the width of a normal car lane will be allowed in the downtown core. Most vehicles in the downtown core now are single occupancy, a city can double its downtown vehicle infrastructure for free by restricting most EV vehicles to taking up just half a lane. These vehicles will be much cheaper too, probably less than $10k.

Now the big. IC RV's are a bit of a pain but an all electric RV will be much better all around. That's because all of the required functions will be electric and run off the huge battery. Hot water, TVs, heat, refrigeration, very little maintenance just like a normal house, but smaller. Tesla vehicles already have "camp mode" and people love it. Image when Tesla builds an EV RV. This will become young people's 'First home'. Buy it for $70k and live in it for much less than rent. When you finish Uni, you own an asset rather than peeing your money away on rent. Oh and for weekend trips to the lake or the ski mountain and all that, couldn't be more convenient.

Remember, you read it here first.

EDIT ... a few typos

Top comment by targ65

Like another comment here mentioned, housing is complicated. People don't want to live in a random house in the middle of nowhere ('roof over your head'). Some people prefer to be homeless on the street versus getting to a roof over their head that they don't like.

People want to live where they want to live (near family, jobs, culture etc)

Take NYC for instance. Politicians try to address the NYC housing crisis from a demand/cost perspective. Rent is too high? Let's just screw the property owner and cap the rent. Or let's just raise minimum wage to make it easier for people to live in those properties.

The result in both cases: you didn't have enough housing before, you don't have enough housing now. You give more money to people, rents will just go up. You cap the rent, there's still a huge number of people that can't live where they want and you make it impossible for existing tenants to move (or for new/more development to be built, for that matter)

So, what instead? You want to build more housing in NYC? Great, that should work. But you have to make it cheap. Deregulate construction, get rid of unions, prioritize developer rights over tenant or homeowner rights. What? You don't think these are good things? Okay, but then you'll have to sit back and watch new construction trickle in and result in 'luxury' housing because that's the only way a developer can recoup their enormous land acquisition, regulation and construction costs. So the challenge with housing is that it requires fundamentally difficult decisions. To pretend that you can just spend 100 billion (or even a trillion) and the problem will be solved and people will be happy, is an illusion.

Top comment by dogleash

Nobody knows how to do a failure analysis. I used to work in r&d, now that I’m building websites and mobile apps the culture doesn’t care. Pointing out obvious design limitations will, more often that not, make me the asshole.

Not even trying to delay ship or get future rework scheduled, just having it documented is too much. Out of sight out of mind.

Top comment by simonw

It's increasingly difficult these days to write scrapers that don't at some point need to execute JavaScript on a page - so you need to have a good browser automation tool on hand.

I'm really impressed by Playwright. It feels like it has learned all of the lessons from systems like Selenium that came before it - it's very well designed and easy to apply to problems.

I wrote my own CLI scraping tool on top of Playwright a few months ago, which has been a fun way to explore Playwright's capabilities: https://simonwillison.net/2022/Mar/14/scraping-web-pages-sho...

Top comment by breput

https://www.sfgate.com/news/article/google-electrical-incide...

Three people in critical condition after Google data center 'electrical incident' in the Council Bluffs, Iowa datacenter (us-central region, I believe)

Top comment by felixnm

I used to take the Chicago Metra and ride in the vestibule to exit the train quickly. The same 8 people would always be there every day but this gentleman, "Gary", would always carry the conversations.

People were just drawn to him and I was in awe of how he captivated us with his stories. I was able to study him for a couple of years and came up with a list of how he was able to hold our attention:

1) Gary spoke loud (he had to since we were in the train entryway) but did not shout.

2) He adjusted his tempo of speaking to match the urgency of his story. Just like a good song, he had noticeably different ways of expressing himself.

3) Just as he adjusted his speaking, his hand movements and facial expressions also supported his story telling.

4) He was older (maybe early 60s) so he had a lot of life experience.

5) He was not condescending or patronizing. He was very empathetic with his audience and the stories he told. You could tell that he really cared about the subjects of his stories and how we could relate to them.

6) He knew everyone's name. So when he talked to you he would use your name a lot.

7) He always was to the point. He didn't meander or deviate from his train of thought. Every story had a build-up and a conclusion.

8) He was very funny without being mean. Sort of like Cosby before we found out what Cosby was really like.

9) He was always happy. He loved his job and his family and he was nearing retirement (he told us this). His happiness was infectious.

10) He was always asking questions. Sometimes, I'd get to the train early and it would just be me and him. He'd always ask about my day, any interesting projects, etc. He would then comment on what he had for lunch ("Have you ever had the Chicken Vesuvio?" he asked) and go on about an experience he had at an awesome restaurant.

After two years I had to stop taking the train, but I'd sometimes hear about Gary from a friend. He did retire a couple of years later and moved somewhere warmer. I've always read articles about excellent speakers, but then I always think that I was fortunate to learn from Gary.

Top comment by creativeCak3

I almost exclusively use C++ for my projects. Especially modern C++. When it makes sense(especially for dev tools), I use Python since for those I'm not so worried about distribution and long-term robustness.

Anyway here they are:

Qt desktop app written in C++:https://github.com/thebigG/Tasker

Simple GPIO front-end for linux GPIO driver(could definitely use some improvement) written in C++ and uses boost:https://github.com/thebigG/simple_gpio

WebApp I JUST started working on(This will be a frontend for a YOCTO/FPGA project I'm working on; guitar pedals), and yes it uses good old C++ and runs on the browser:

https://github.com/thebigG/wPedals

And while I'm at it, might as well mention my custom plugins for Godot Game Engine(C++):https://github.com/thebigG/godot-3.x-modules

I have found that C++ is the best compromise for me between performance and elegance ifI do say so myself.

Top comment by Edd314159

I would argue that a lot of the time, people do not inherit a "bad" codebase. They inherit a codebase that successfully made enough of the right quality-vs-speed tradeoffs to survive long enough to be inherited by someone other than its original author.

It's easy to spend a day with a codebase (that others spent years writing) and call it "bad". I'd argue it even feels pretty good to take that stance of superiority. But you're viewing it with literally zero of the context of the time in which it was written. You see none of the constraints, none of the pressures, none of the alternatives presented in the moment.

Particularly for a young or small company, if you're "inheriting" a codebase it's because it's existed and been in operation for a while. Yes, it may still be bad. But I would advise taking time to consider whether it's actually, within the lens of yesterday (or 2 years ago)... good?

Top comment by Cieplak

I would start off by learning the Canvas API for HTML/JavaScript [1][2]. All you need is a web browser, no extra software or dependencies (well, maybe just a text editor to edit an index.html file on your Desktop). You can test out snippets from MDN and StackOverflow in your browser’s JavaScript console. Once you have a minimal, working example (e.g., a 512x512 square canvas with a color gradient), start messing around with the code and see how it affects the canvas image. For example, modify the parameters of your loops or flip the loop order of nested loops. Focus on the principles rather than on learning any particular technology. Simpler is better when learning; the “best” production software is not necessarily the best to learn with; don’t forget the Telescope Rule [3]. Once you have a foundation for basic graphics, it will be much easier to learn shaders.

[1] https://codepo8.github.io/canvas-images-and-pixels/

[2] https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API

[3] https://wiki.c2.com/?TelescopeRule

Top comment by bgoated01

Cursorless is an editor created for editing with voice control. It is built on top of Talon Voice and VSCode. Every token in the file is marked with a "hat," and you can refer to different pieces of your code without having to place your cursor there by stating the color/shape of the hat and the letter that the hat is above.

I started using it to help with some RSI, and honestly when I go back to a keyboard to use emacs evil mode it feels awkward compared to cursorless (other than the fact that it allows me to get out of VSCode, but that's a personal preference...).

This tutorial video gives a short taste of what cursorless is like: https://www.youtube.com/watch?v=h6lM68jU2iI And here is a link to the documentation: https://www.cursorless.org/docs/