NCommander created a 30 minute YouTube video looking into the truthfulness of this blog post, and while Raymond Chen isn’t lying, there might be more to the story than just the bugs he found…
There was a very recent follow up which covers this https://devblogs.microsoft.com/oldnewthing/20220106-00/?p=106122 and expect was the impetus for this post, the follow up was already submitted here: https://lobste.rs/s/tutknz/filling_some_gaps_story_space_cadet
Can you give an executive summary of that 30 minute video?
Space Cadet is present on the installation disks for every single version of 64-bit Windows XP, but is manually disabled and is not automatically installed (although, curiously, it is installed in very late 64-bit XP builds). After extracting the game files and running the game, there are a couple minor graphical glitches but the game works entirely fine, despite what Raymond Chen claimed. He also reverse engineers the source of the floating point rounding error Raymond is talking about and speculates that the bug was fixed for one of the 64-bit versions without the dev teams knowing that this fix also fixed the bug on the other 64-bit architectures. Raymond later posted an updated second post where he responds and tells a story about how when the 64-bit porting process was happening, they only had access to long-discontinued 64-bit Alpha AXP processors with architecture-specific bugs which created far more severe collision issues than the ones NCommander managed to reverse engineer. When the Alpha AXP 64-bit dev port was then ported to Itanium and AMD64 these bugs went away, and Pinball was left with the more minor collision issues NCommander found, which both NCommander and Raymond speculate were caused by some compiler or C runtime floating-point precision bug, which one or the other of those teams later fixed, accounting for why Pinball existed on the later systems. Whoever added it back just never told Raymond that they got it working.
I’ve been thinking about getting a “real camera” for video calls and this was a nice peek into that world! What’s the actual risk of burning out the sensor? Are there cameras where that’s less likely?
(Author here!) I’m a little worried about that too, so I try to turn it off when I’m not using it. At the same time, mine is a relatively old midrange camera that I’ve photographing with using for the past few years. I’m at the point where I’m thinking about upgrading, and I’m not taking as many “big camera” pictures during covid, so it feels reasonable to use it as a webcam in the meantime.
If this camera stops working, I’ll go back to my logitech webcam and will finally have an excuse to upgrade my photography kit :P
I got an elgato facecam this past year, and it was a huge improvement for my setup for video calls.
Taking the next week off for (American) thanksgiving. I’ve got some fun plans lined up such as:
Trying to be productive and putting NixOS into prod!
Also planning for my marriage in 2 weeks.
Congrats! On the NixOS and the marriage!
Switching teams at work, so today is new job day but on easy mode!
Got a new camera arriving in the mail today. It’s a film camera! I hope it arrives when it’s still light out.
Moving out of my apartment, so I’m packing and planning and trying not to stress.
cc @antifuchs, who wrote the Gmail-britta the author mentions!
Nice! Glad to see more people exploring email filter generation!
I’m on vacation for the next two weeks, which is lucky. I am very tired.
I’ve been dropping the ball on talking to friends & family, on getting exercise, and on doing anything that isn’t staring at my growing to-do list, so I’m going to take the next while to build back up the energy and happiness that I feel like has been draining away. I cleaned my apartment this morning, which felt like a good start :)
Today (Monday) is a day off, though I’m in the critical path for a launch this week at work, so I might trade the day off - work today, and take another random day off some time in the future.
Recently, I got a power-over-ethernet hat for the Pi-hole I run on my home network. This has spurred a whole lot of home networking improvements, and I’m finally switching my NAS’ remote backup location from AWS Glacier (obtuse pricing, slow to actually see what’s backed up, my AWS account is doing too many things) to Backblaze B2, which seems good so far.
I’m continuing to stream Stork development on Twitch every once in a while, slowly trying to get better at smoothly communicating the code I’m writing. I had a three-day streak of waking up early and streaming for an hour before work that I dropped, but I’m hoping to get back on the horse.
100% agree on Glacier. I can’t believe they actually sell it to anyone other than people who are already paying $$$ for more expensive storage tiers with them and figure it must be cheaper, so are ok with just switching and waiting to see what the cost savings is.
Actually figuring a price for some specific usage scenario seems like it would take more in the value of a person’s time to determine than would ever actually be saved compared to slightly more expensive but sane pricing models.
Yeah I mean Glacier was never really meant for consumer backups, it’s strange to me that services like these even offer it. It’s really more meant for compliance reasons or to have an “oh shit” backup for very valuable information, e.g. DigitalGlobes satellite images.
The only consumer use case I could maybe see is photo backup that’s already stored elsewhere, not as the main copy. The pricing was simplified a few years ago, but it’s still not as straightforward as S3 mostly due to economics
Congratulations on the 1.0 release. ✨
Thank you! :)
Does anyone know how Stork compares to the superficially similar tinysearch?
Tinysearch is great! Matthias and I have chatted a few times since releasing our respective projects, and his work is really cool.
He leans into the algorithmic aspect of search: his project implements a bloom filter, which means the index size is smaller, but means that Tinysearch can’t easily implement excerpt previews and prefix searches (“term” -> “terminal”) like Stork can. He also built Tinysearch for people who were more willing to set up a WASM blob in their own site, whereas Stork tries to abstract away the WASM-loading aspect for people who don’t necessarily want to deal with that.
Thank you for explaining! After searching with both, I find that Stork’s additional features like excerpt previews are crucial for usability, so between the two I would only consider Stork for production sites at this time. I’ll probably tinker with Tinysearch for funsies though :)
Brainstorming as I plan my 2021. I’m bought in on the idea of sticking with a yearly theme and I’ve gotten to the part of my year where I think of a new one.
Advent of Code in Rust. This is my first year actually participating but my ~third year knowing about it, and it’s not as scary as I originally thought (he said, naïvely, on day seven)
I have taken it upon myself to wire my parents’ house with ethernet so I’m doing some Youtube-based research to figure out how to open up their walls without making them overly upset.
My team in a planning phase at work and I’m learning how to be a good eng citizen while the EMs and PMs do the bulk of the actual planning. Any advice on that is welcome!
I took a vacation at the end of last week, so I’m feeling a bit re-energized. Got some good photos while I was out hiking, and I’m excited to go through and edit them all :)
Work has me starting on a new project with a new group of people, which I’m excited about! I’m taking the opportunity to propose a refactor to the code base that I’ll be working on (it really needs it!) Hopefully I can get rid of that one class that everyone dreads looking at the wrong way.
There’s never enough time in the day, it seems. I have some big plans for a WASM/Rust side project I’ve been working on, and progress is consistent but slow. I’m getting closer and closer to a milestone, and I just want to sit down for an unhealthy amount of time and finish everything. Can’t do that, though!
I’ve been taking piano lessons since Quarantine started and I’m about to finish the book I’m working through!
This is a great piece, thanks for writing & sharing!
Python is one of those languages that I write infrequently enough that I don’t have an “innate” sense of what it means to write idiomatic Python code, whereas I do have that sense for other languages. That usually means for me that my Python scripts end up looking like the language I’ve been using most recently, and I’ve come across Python files I’ve written that feel like I’m reading Node, Swift, or even Rust in a strange dialect.
One way to get better at writing idiomatic code would be to read articles like this one, compile all the individual tips, and reference those tips when writing new Python. It seems to me like a more sticky way to get better at writing idiomatic Python code would be to read idiomatic Python code, but whenever I sit myself down to read code I don’t have any stake in, I feel like it’s a waste of my time.
Do other people incorporate “reading code” into their process? How?
For me the “reading code” comes from the need to use big libraries extensively and understanding their inner workings. For example, I often have to dig into libs like requests or flask. So, I think you start reading more code as you use the language more.
Working on a full-stack feature at work. Finished the backend bits early today (well, really late Friday, but I’d have been terrified to deploy late Friday) and starting on the frontend bits today. It’s my first time working on an end-to-end feature within my org like this and it’s really cool having the opportunity to do so!
I’ve been working on Stork’s input handling. The program (ultra-fast WASM search plugin for static sites) really only deals in plain text files right now, but I’m working on parsing different file types, starting with HTML, Markdown, and files with arbitrary Frontmatter blocks. I haven’t really touched Stork in a bit and it’s exciting to get back to it.
I’m taking piano lessons again for the first time in almost 10 years. I’m working on getting better at reading sight music, which was always somehow a skill I managed to avoid learning. It’s much more exhausting to play piano for 30 minutes than I expected – definitely feels like I’m exercising a new muscle.
My wife and I picked up some houseplants that a neighbour was giving away. We’re repotting them as the roots are overgrown and escaping out the bottom. We’ll need to cut the pots in a few cases.
I’m also trying to keep up with the pace of writing one article per week.
What are you finding is the hardest part of writing an article each week?
The hardest part is probably coming up with an idea that I believe in.
I often come up with the title first. I try to think of something that I would click on 100% of the time — basically, writing what I want to read.
Sometimes, I like writing articles for one person. If someone asks me a hard question, or if I’m mentoring someone who is building something, then I can write as if it’s a letter to that person on how to overcome their current obstacle.
Continuing work on stork. I’ve rewritten the system that weights each search result; hopefully this weekend I’ll be able to look at each word in a search query and weight results based on how many words in the query a given result matches. I’m looking a lot at Rules for Autocomplete (2019) to have a sense of what I’m building towards.
Continuing to quarantine. Work got busy all of a sudden. Watching Little Fires Everywhere on Hulu and remembering how much I liked the book.
The stork link seems to not work for me…?
Yup, I messed up the url of my own project. I meant to write
(Although while I’m here, I should mention that I finished the new highlighting and sorting features I was hoping to get done!)
I would be interested to see a comparison to the performance of other in-browser search index schemes, like lunr.js, flexsearch, fuse.js
(@jil you might want to check your homepage design in WebKit browsers - on my iPhone 10 a lot of text was off the edge of the screen with no way to fix it!)
Coming in kinda late, but just fixed the text on the site. Thanks again for alerting me.
Same on Firefox Preview (Android)
Oh no! Thanks for letting me know. I had fixed a layout bug everywhere else… and must have accidentally borked things on mobile.
CSS is frustrating sometimes.
How does Stork compare to tinysearch, which was posted here recently? https://endler.dev/2019/tinysearch/
Tinysearch is great! I was chatting with Matthias briefly after I realized we had been working on something similar. He put a lot more work into the data structure, doing some really cool work implementing a bloom filter to get the index size down. I focused on ease of integration, making it a fully hosted library. Eventually I want to borrow some of Matthias’ ideas for Stork!
Coincidentally, I did this to my blog yesterday – here’s the dark mode logic.
Ah nice, thanks for this! I’ve been thinking about implementing something like this also. This will save me some time. :-)
It’s a Jekyll site hosted on Netlify. Soon it’ll be a Nuxt site hosted on Netlify. I feel like everyone found this out a while ago but I’m shocked by how natural it feels to write a site using a component-based architecture – now the default CSS paradigm of having a single, flat, global namespace feels so awkward.