HNHacker News
TopNewBestAskShowJobs

rdw

923 karma · joined August 13, 2011

[ my public key: https://keybase.io/breath; my proof: https://keybase.io/breath/sigs/SxlR6SZ-PX_OhGnY69REYKZ9DOHX7y0JzjeNxZOrdPQ ]
submissionscomments
rdw··on Ultraleap – tactile sensations projected onto your hands
I got the chance to try something like this a few years ago at GDC. It was barely even detectable.

But I still hope that the technology gets researched and built out as far as it can go, because _something_ is necessary for virtual interfaces to work.

rdw··on Companies are fleeing California. Blame bad government
They don't really have great pay, though, do they? They can't afford to pay what qualified employees demand in California. So they move to a state where the average expected salary is lower.

Oracle's reputation was of abysmal pay for senior employees, for decades. I'm willing to bet that economically they should have moved a long time ago, but Larry Ellison's pride kept them in the Bay Area. He designed the campus buildings to look like database icons, that's not something you give up easily.

rdw··on Ruby 3.0 and the new FiberScheduler interface
This is gonna sound pedantic but I think it's not a coloring problem. Coloring is when syntactically a function has to change its own signature just because it started calling an inner function with the new color.

That said, you're right in that one may have to make some changes to code to get around some new problems. The problem with FFI/CPU-heavy functions is that they prevent _other_ fibers from being scheduled while they run.

If it becomes possible to implement work-stealing, then that would mitigate the problem. It would also be solvable by sprinkling "yield to scheduler" calls throughout such functions. Annoying and not always possible, but, since in these cases the signature would not change, technically not coloring.

rdw··on Ruby 3.0 and the new FiberScheduler interface
It solves the coloring problem by not having a coloring problem in the first place. Maybe I should have said "avoids the function-coloring problem".
rdw··on Ruby 3.0 and the new FiberScheduler interface
> all relevant standard library methods have been patched to yield to the scheduler whenever they encounter a situation where they will block the current fiber

This is huge. They solved the function-coloring problem by deciding that all functions are now potentially async. It makes it more likely that the ecosystem as a whole actually becomes async-compatible. I wish Python had taken this approach, though I understand why they didn't.

rdw··on When will virtual reality take off? The $100 bet
I was tangentially involved with VR as a game developer, in the 2015-2016 timeframe. Both Oculus and Valve really strongly believed that there was a "there" there, but didn't know what the actual killer app would be. They spent a lot of money trying to find it, and I benefited by getting some free headsets! I don't feel like they have actually found it yet, though they seem to be closer.

It probably will eventually be a successful thing, probably slowly and incrementally, but I think that the rush to be first to market caused all parties involved to make some mistakes that prevented the wild success they were envisioning.

- They should have been even more experimental. Bootstrapping a market is difficult. The way it goes is that the audience is zero at the start, so no sensible publisher or developer would risk their money over the years it takes to build a game, so the platform creator has to fund them 100%. But that also means that the platform creator gets to control the games and how they're made. I got the sense that the VR platform owners were overly controlling. I was involved with several different headset makers and they were pretty specific about how the input devices had to be used, limitations on the permissible content, and what kinds of games they were looking for. That makes sense for a mature platform where you know what a killer app looks like, but I think they needed much more experimentation for VR. When we first started building for VR, our team strongly believed that it would be the most fun to make games that focused on small-scale, close-up experiences, basically fitting everything on a tabletop. But we were steered away from such ideas, in part due to platform pressure. I guess they felt that big, splashy, open experiences were going to dominate (or would at least make good screenshots for marketing), but they were wrong. Long distance scenes aren't actually that cool in VR because the stereoscopic difference goes to zero; it becomes no different from looking at a monitor. Maybe small-scale stuff wouldn't have worked out -- the lack of vergence cues may cause additional eyestrain -- but it still seems like a big unexplored area of potential.

- Fragmentation is a huge problem. Even within one single headset model, developers cannot assume that players have more than a seated chair's worth of space. If you make a game that accepts that limit, it feels like you're "not really doing VR" and that pisses off funders. So you try and awkwardly have some sort of "progressive enhancement" that makes the game more fun when moving around the room, but still playable when stationary. You really have to build the entire game around such a compromise, so most such games felt very demo-y (e.g. Robo Recall, Job Simulator). Plus all the options for the inputs -- remember how the Rift shipped with an xbox controller? Building a game that can use either xbox or 3DOF or 6DOF controller is madness; the paradigms are totally different. So you're pretty much limited to building a lowest-common-denominator system, which sucks. I think Oculus is trying to address this now, by focusing on standalone headsets, but that saddles them with additional technical challenges so it'll be a few years before that can succeed.

- Inputs are everything for VR, and I don't think people realize how late in the game they actually were. When Oculus and Vive announced, the problem of having accurate-enough handheld controllers was not known to be solvable. Valve's "room demo" had inside-out head tracking that looked at barcodes plastered on the walls, clearly a temporary hack. Good game development takes years; not having a reliable input paradigm to count on _severely_ impacted developer productivity. That said, vehicular games like Elite which can treat the VR headset as a more immersive display were and continue to be some of the high points of the VR experience. I think that they thought that more genres of games would behave like that, but, no.

- I think it was a mistake on Oculus's part to have different levels of buy-in for their platform. It would have worked better if there was one package that everyone bought, even if it was expensive. Maybe the thought that they could have a cheap version for the masses, and people who wanted a better experience could spend more. But it isn't the case that getting the fancier VR package improves the visuals without affecting the gameplay; the different controller types and increased precision substantially changed the types of games you were able to play, exacerbating the fragmentation problem.

- The technical road to having high resolution displays and low-latency rendering was too long. It may be there now, after 5 years of concerted effort, but it wasn't in 2016. If the renderer can't keep up, it's super noticeable in VR. The analogy is capacitive touchscreens. Until they were _absolutely nailed_, they were worse than no touchscreen at all.

Game platforms fail to take off all the time, this was just one of the more well-funded and public ones. Remember the Ouya? Google's various game platforms preceding Stadia? Stadia itself? Failure is the norm; what might eventually turn this around is the very strong dedication some people have to the idea.

rdw··on Apple’s “Extended Dynamic Range” Brings HDR to Non-HDR Displays
Yes, this is what I came to see. It gradually increases the brightness over 5 seconds on my Catalina Macbook. It's very impressive that there are no visible brightness changes on the rest of the screen when the brightness of the backlight increases.
rdw··on Apple Silicon M1 chip in MacBook Air outperforms high-end 16-inch MacBook Pro
What's up with these iMacPro results with AMD Ryzen processors? https://browser.geekbench.com/v5/cpu/4644694 Thought Apple was an Intel-only shop until Apple Silicon.
rdw··on Introducing the next generation of Mac
The Macbooks that were for many years the smallest and lightest Apple laptops, would be imbalanced and knocked off your lap by placing your hands on it slightly asymmetrically.
rdw··on Designing Raspberry Pi 400
"Power off is achieved by holding down Fn+F10 for two seconds. This is a soft control that negotiates with Linux to shut down, so you don’t corrupt your memory card or your USB drive. Power can be restored by pressing F10 (or Fn+F10)."
rdw··on When is no-code useful?
This is a good take. To add to it a bit, there's another perspective that makes no-code solutions useful: team decoupling. You know Conway's Law about how the software is structured like the organization that produces it? No-code is that, but it's giving "coding power" to parts of the team that didn't have them before. E.g. a design team can accomplish a reasonable number of funnel tweaks using an A/B testing tool, and it means they get their job done faster (= more effectively), and the engineering team can focus on other problems. It's not a panacea and there's definitely risks, but I've seen it be helpful in this way in many contexts.
rdw··on Apple’s A14 Packs 134M Transistors/mm²
The article says that Apple isn't making full use of the 5nm process node, and blames lack of SRAM scaling for it (presumably due to the large amount of L3 cache). Is this a problem that all processors are about to hit, or is this going to be overcome once process engineers are more familiar with 5nm?
rdw··on Apple’s User-Facing Cameras Have Been Flawed for More Than a Decade
Even when they have the hardware LED, it doesn't help you if you're not looking at the device. I often leave my laptop and phone unattended and prefer to have the peace of mind knowing that they cannot possibly observe anything. I wish I could cover the microphone in a similar way.

I guess it's a layered security situation.

rdw··on Assorted Thoughts on Zig and Rust
I've used C++ since the 90s and it's only ever been presented as a Serious Language for Real Applications. I feel that until recently, C++ stood alone and there were almost no serious threats to its position, except maybe Java. If you were planning on writing commercial programs (or even more so a collection of programs) that have good performance and huge featuresets, like an operating system or a browser, what else could you have possibly used?

I agree that in practice maintenance has been pretty bad for C++ programs, but I think I understand the kind of reasoning that led so many organizations to pick C++, even if I don't agree with it. It was not about ergonomics or productivity, but about control. The language grants an unprecedented level of power to a small group of elite programmers inside every organization, who author the standard library and headers that all the other programmers use. They're building the smart pointers, the memory allocators, the IO libraries, and the build systems. It's imperative (to them) that their good decisions don't get snowed under the mountain of application code that the more mediocre programmers are going to be producing by the truckload. So it's important to have powerful encapsulation, compile-time checks, and metaprogramming capabilities. Doesn't matter how safe by default or how slow it all is, because the elite add guarantees themselves through the abstractions they write, and don't have to compile a full application very much, if ever.

rdw··on A case for using punctuation in Slack
Cool.
rdw··on A Family of Better Random Number Generators
I used PCG years ago for procedural content generation where random number generation was a bottleneck. It is very fast, so I was happy with it. Additionally the implementation I used[1] is comprehensible enough that I could modify it in various small ways.

One property I anecdotally observed about it is that it is a little sensitive to the values you choose for its seed. Too many zero bits or making two generators with nearly-identical seeds would create visible correlation in the outputs. It worked much better if all values were hashed before using them for seeding.

[1] https://github.com/tlauterbach/unity-pcg-csharp

rdw··on Y Combinator Failed Startups
Yeah, the ads were pretty intrusive in this article. Still got us all to engage, though! Some content marketer is happy today.
rdw··on Y Combinator Failed Startups
Many startups are on their deathbed before finally succeeding. A famous example is Fred Smith, FedEx founder, gambling the company's last $5k, in order to come up with $24k for a deadline[1]. Had the cards come up differently, or a political wind had made gambling illegal, FedEx would have failed, and someone would have been able to say that logistics was "a hard market to succeed or even just stay alive in", and even be correct! The casino (or lack thereof) would have been a "convenient scapegoat". But it doesn't change the fact that having the chance to have these kinds of lucky turnarounds seem to play a pivotal role in a lot of success stories.

[1] https://www.businessinsider.com/fedex-saved-from-bankruptcy-...

rdw··on Additional steps we're taking ahead of the 2020 US Election
http://www.dartmouth.edu/~nyhan/nyhan-reifler.pdf

> Results indicate that corrections frequently fail to reduce misperceptions among the targeted ideological group. We also document several instances of a “backfire effect” in which corrections actually increase misperceptions among the group in question

rdw··on Transparent wood could be the window of the future
It being a plastic raises a few questions:

- Is it petroleum-based? Looks like the answer is no. [1]

- What's the durability? PVA seems to be very water-soluble [2]

- How's the scratch resistance? I wasn't able to find a source.

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

[2] https://www.cfsanappsexternal.fda.gov/scripts/fdcc/?set=GRAS...

rdw··on “I monitor my staff with software that takes screenshots”
The security implications of this software must be devastating. To prevent being defeated by the employee, it'll be essentially a rootkit already. Any black hat that finds a way to gain authorization will basically have a ready-made botnet. Let alone all the personal and corporate data they would be able to ransom and sell.
rdw··on Uber Wasted $2.5B on Self-Driving Cars
That $7 bn valuation came only a year after the disastrous 2018 crash which forced them to shut down the entire program for months, with months of of lurid news stories highlighting failure after failure. Probably a low point, actually.

The developing narrative seems to be that self-driving was a longshot that could have paid off hugely, had it worked out, but it's been plagued with problems and it just seems very unlikely to pay off now. But still not zero, since no one else has shipped anything.

Investors probably valued it like (0.7% chance of success * 1 trillion upside = 7 billion).

rdw··on Uber Wasted $2.5B on Self-Driving Cars
https://www.inc.com/jason-aten/uber-lyft-are-betting-that-dr... https://www.theguardian.com/technology/2019/apr/19/ubers-sel... https://www.bizjournals.com/sanfrancisco/news/2018/01/24/ube... https://www.latimes.com/business/la-fi-uber-ipo-stock-price-... https://www.cnbc.com/2020/01/28/ubers-self-driving-cars-are-... https://www.wired.com/story/bet-uber-bet-self-driving/

I think the broadest interpretation is that autonomous driving was one of a few irons Uber has had in the fire to achieve profitability. The other irons include Uber Eats, Jump, and lately, grocery delivery. The miracle hasn't happened yet!

rdw··on Game Design Curriculum
I was privy to some of the development process of Duskers, and I would say that Tim worked pretty hard to create opportunities for happy accidents to befall him. There were several other prototypes that he was working on at the same time, but only Duskers crossed the finish line. This is not uncommon among game developers I've known; generally they're bursting with ideas and have many in-progress experiments in various stages at any time. It's a little like an incubator, where there's a diversity of ideas in order to have a better chance of having one be a hit.

There is survivorship bias, but it's kinda all happening within the one designer.

rdw··on The negative Flynn Effect: A systematic literature review [pdf]
Oh my god, it's literally the thesis from Idiocracy.
rdw··on Evernote’s transition to Google Cloud Platform
Netflix is not a good example for one big reason: their cost of running servers is dwarfed by their other costs, possibly by two orders of magnitude. Netflix can and does waste money on servers.
rdw··on Land Lines
For folks seeing this for the first time, start with Drag mode instead of Draw mode. I think it feels much more playful and exploratory.
rdw··on UDP vs TCP
WebRTC is UDP. It's not easy, but it's there!
rdw··on The Linux 2.5, Ruby 1.9 and Python 3 release management anti-pattern
I feel like you could make this argument about Apple just as well. It's got a larger market cap, so even more arguably successful. And they break compatibility (judiciously) in order to create a better product.
rdw··on As Groundwater Dwindles, a Food Shock Looms
That analogy isn't great -- plenty of places in the world have power crises, and they do respond by limiting consumption of power.

In actual water crises, such as the one in California, limiting and controlling consumption is the response. Obviously, it's always better to come up with an alternative before you reach the crisis. But once you've gotten to the crisis, you're already exhausted all other options and have to be realistic.

← PreviousPage 3 of 7Next →