HNHacker News
TopNewBestAskShowJobs

AndrewStephens

3,603 karma · joined April 23, 2015

Blog: https://sheep.horse/

Mastodon: @sheephorse@mastodon.online

submissionscomments
AndrewStephens··on Walkers' Sensations Poppadoms vs. HMRC: The Chip of Theseus
Damn you, that’s going be stuck in my head all day.
AndrewStephens··on My website is ugly because I made it
> For me, the joy is not in having a website, the joy is in building the website. Why would I want to hand off the joyful part?

I have a server to serve my website and a website to have something for my server to do.

AndrewStephens··on My website is ugly because I made it
I am so into this philosophy. My web site is an expression of me and no-one else. If someone tells me it looks ugly or non-professional (I have heard both, although my site is not so weird as this one) I can tell them that I like it that way.

We need more of this kind of non-conformity on the web - and in general.

AndrewStephens··on Google is using AI to censor independent websites like mine
I think the days of Google driving traffic to sites then splitting the advertising revenue (or missing out entirely) are largely over. From Google's point of view, they are just closing the loop.

It is a shame because the mutually beneficial relationship between Google and sites has driven a huge amount of the tech economy. Sometimes this has been bad (and advertising is a scourge for many reasons, I can't believe I am defending it) but in general the web would be a lot less useful if people couldn't make money of advertising.

I think long-term sites will stop relying on advertising and go with payments or memberships for information. This will hurt everyone but be disastrous for Google if they cannot spider up-to-date information. It will also hurt the free flow of information that we now enjoy.

What is really galling is that with all the impressive AI summaries, the search results themselves seem to be getting a lot worse[0]. Many times I have used Google and the AI summary is pretty good but the actual page the summary is from is buried well down in the search results. Is this something they are doing deliberately to make the AI summary seem more useful?

[0] An example I blogged about: https://sheep.horse/2025/4/yo_google%2C_thanks_for_the_ai_ov...

AndrewStephens··on We’ll be ending web hosting for your apps on Glitch
You are getting some pushback but you are not wrong. I thought I was being pretty careful with my DO droplet but just last weekend discovered that it had been hacked and was consorting with mysterious IP addresses in Russia and Brazil.

This was on a box that was firewalled and ssh was locked down. It was running an older kernel - that was probably my downfall.

I immediately shut down and rebuilt the droplet with a more modern kernel. It wasn't too hard because my site is (mostly) static with a simple custom service but is very discouraging to find that somebody has damaged your home project just to (I assume) make a small amount of money.

AndrewStephens··on Ask HN: How do you promote your personal project in limited bugget?
The droplet that hosts my blog (mostly static files) got hacked into (I think) a botnet and I had to spend hours rebuilding it. There is nothing worse than having your hard work misused by people for a tiny financial gain.
AndrewStephens··on Internet Artifacts
This reminds me of the joke about the guy who couldn't afford a vanity number plate for his car so he changed his name to CK-16450
AndrewStephens··on Data manipulations alleged in study that paved way for Microsoft's quantum chip
AI can do that now? Looks like I have to upgrade all of my 5-bit SSL keys.
AndrewStephens··on Data manipulations alleged in study that paved way for Microsoft's quantum chip
In 2001, a pure quantum computer using Shor's algorithm correctly gave the prime factors of 15. In 2012 they managed to find the prime factors of 21. Since then, everyone has given up on the purely quantum approach by using lots of traditional CPU-time to preprocess the input, somewhat defeating the purpose.

Its a shame. I was really looking forward to finding out what the prime factors of 34 are.

AndrewStephens··on Yes, the Apple II MouseCard IRQ is synced to the VBL
The Atari really did have amazing graphics capabilities but the basic Apple][ design predates it by at least 2 years. Apple were slow to add graphical enhancements to the ][ line, perhaps not wanting to be labeled as a mere "gaming" machine.
AndrewStephens··on Yes, the Apple II MouseCard IRQ is synced to the VBL
OK, you are technically (the best kind of) correct. Some people were thinking of scrolling and sprites in 1979 but those people were using expensive dedicated hardware that would take a few years to filter down to home computers once people saw the advantages.
AndrewStephens··on Yes, the Apple II MouseCard IRQ is synced to the VBL
I had an Apple][+ back in the day. You have to understand that the Apple][ predates what we think of as 8-bit computers by a few years and the fact it was cheap enough to mass produce was a minor miracle. Corners were cut everywhere, the Apple][+ didn't even have lowercase letters, a way to detect key up events, or a sensible frame buffer in hires mode.

In its defense, it also predates a lot of what we take for granted. The idea that a game might want to scroll smoothly or update at 50/60 FPS without flickering just didn't occur to people in 1979.

AndrewStephens··on RybbitL Open source Google Analytics replacement
The documentation states that rybbit does not use cookies and is compliant with the GDPR. The first part is true but, looking at the code (very nice to have it available), the tracking is done by IP address, trading one piece of tracking data for another.

I realize that this is probably the only way it could work but it is not clear to me that tracking by IP address (even over a single session and shredding the data once a day) is any better from a GDPR standpoint.

AndrewStephens··on Replacing Kubernetes with systemd (2024)
Containers help in two ways. First in deployment, if you really have a complex system (and "modern" development practices seem to encourage complexity).

But containers really shine during development if you have more than a few developers working on the same projects. The ability to have a standard dev container for coding and testing saves so much time. And once you have that, deploying with containers is almost free.

AndrewStephens··on Matt Godbolt sold me on Rust by showing me C++
This is the truth. I interview a lot of C++ programmers and it amazes me how many have gone their whole careers barely touching C++11 let alone anything later. The extreme reach of C++ software (embedded, UIs, apps, high-speed networking, services, gaming) is both a blessing and a curse and I understand why the committee is hesitant to introduce breaking changes at the expense of slow progress on things like reflection.
AndrewStephens··on Replacing Kubernetes with systemd (2024)
I do (nginx plus a couple of custom services) but my needs are very minimal. As soon as you need something a little complex or redundancy by spinning up multiple nodes then containers start to make a huge amount of sense.
AndrewStephens··on Minimum Viable Blog
> Exif

Yeah, I thought I was being careful and manually stripping it from photos until a nice reader emailed me to gently let me know i had missed a few.

AndrewStephens··on Minimum Viable Blog
I restarted my own blog in exactly the same way after getting frustrated with WordPress. The most important thing in blogging is to get something simple that will not get the way of you actually writing.

Over the years I have added to my solution with custom markdown, tagging, rss, and most lately exif-stripping. Technically the source is available [0] but I can’t see anyone else using it.

[0] https://github.com/andrewstephens75/gensite

AndrewStephens··on I use zip bombs to protect my server
I worked on a commercial HTTP proxy that scanned compressed files. Back then we would start to decompress a file but keep track of the compression ratio. I forget what the cutoff was but as soon as we saw a ratio over a certain threshold we would just mark the file as malicious and block it.
AndrewStephens··on A single line of code cost $8000
>> their software also downloaded a 250MB update file every five minutes

> How on earth is a screen recording app 250 megabytes

How on earth is a screen recording app on a OS where the API to record the screen is built directly into the OS 250 megabytes?

It is extremely irresponsible to assume that your customers have infinite cheap bandwidth. In a previous life I worked with customers with remote sites (think mines or oil rigs in the middle of nowhere) where something like this would have cost them thousands of dollars per hour per computer per site.

AndrewStephens··on How to program a text adventure in C
Inform is the big one for "GET LAMP"-style parser text adventures although I haven't used it for years.

For choice based text games there is Twine and ink (plus many others).

I personally used ink[0] for a project[1] and it was a joy to use. It comes with an IDE of sorts that makes just sitting down and writing your story easy before you add the bells and whistles.

[0] https://www.inklestudios.com/ink/

[1] https://sheep.horse/voyage_of_the_marigold/

AndrewStephens··on How to program a text adventure in C
I think for a lot of people here, the hard part of writing an adventure is not writing the code but coming up with a compelling game with an interesting story and readable text. My advice is that if you want to actually end up with an adventure game that people can actually play, just pick an existing authoring system that looks like it will do sort-of what you want and start writing.

I speak from experience when I say if you start by writing the engine then you will quickly become side-tracked with technical issues and never get your game done.

I can recommend ink if you want a choice-based game. It is super easy to get started and the language lends itself to extension if you find it doesn't do what you need out of the box.

AndrewStephens··on The Gruen Transfer is consuming the internet
My conspiracy theory is that Google has been deliberately making its search results worse to subtly train users into engaging with ads and the AI assistant.

There is little reason why the AI Assistant can be a summary of the exact page you want, while that page is buried 8 deep in the search results behind a bunch of spam.

AndrewStephens··on Creating your own federated microblog
One of my issues with ActivityPub is that there is no such thing as a cut-down completely static AP feed for blogs. I want Mastodon users to be able to follow my static blog but I don't want to implement the machinery to have full interactivity.

Basically an RSS bridge would work fine. I know such things already exist but it would be cool if it was built into AP.

Right now I just manually post my blog post to my Mastodon account which is perfectly fine.

AndrewStephens··on An Introduction to Modern CMake
My experience is that CMake is fine (even great) for small to medium sized projects. Including dependencies, automating tests, even packaging is all handled with not too much fuss.

If you think your project will have more than half a dozen developers then you should probably start thinking about something like Bazel. But both have their idiosyncrasies and Bazel for a small project is overkill.

AndrewStephens··on Strip EXIF Data Out of Your Image Files Before Posting
This was my blog post. I didn't explain it very very but I agree that you do not want to completely strip out the useful EXIF data. In particular, the colorspace values are used by the browser to show photos in a more "correct" way on your screen.

My blogging software only strips the GPS EXIF data. The code is here:

https://github.com/andrewstephens75/gensite/blob/dev/gensite...

AndrewStephens··on Writing my own dithering algorithm in Racket
I am the author of the sheep.horse link above, although here[0] is an updated link.

Even with filtering turned off you get slightly incorrect results, especially if you are resizing down where aliasing might completely ruin your image. Harsh black-and-white dithering is very susceptible to scaling artifacts.

If you want pixel perfect dithering for the screen you are viewing the page on, you need to do it client side. Whether or not this is worth the bother is up to you.

[0] https://sheep.horse/2023/1/improved_web_component_for_pixel-...

AndrewStephens··on Hacker News Hug of Deaf
Thank you for playing my game. Yes, it is possible to make it to the top right sector and deliver your cargo. It is not easy - I recommend choosing the option to take extra fuel right at the start since running out of fuel is usually what kills most runs.

The dreadnaught is tough but not impossible. Torpedoes will help but a few lucky hits with lasers will also do the job.

AndrewStephens··on Hacker News Hug of Deaf
Your solution looks very similar to what I implemented; only logging the page and time with no identifying data. I don't even have a real database.

I really hate that modern websites include multiple trackers - there is really no need for invasive analytics.

AndrewStephens··on Hacker News Hug of Deaf
Ink is such a cool language. I worked really hard on that game and entered it into an interactive fiction competition last year. It didn't come close to winning (I didn't expect it to) but people seemed to like it, especially if they grew up watching Star Trek.
← PreviousPage 4 of 22Next →