RSSAmplifier

Blog

Code

Nicholas FitzRoy-Dale's personal programming web log

RSS feed ↗10 posts

Latest posts

Blog is back!

Good times.

Imaginary maps in 3D

Playing around with three.js to make the 3D version of this post in the browser.

Proposal for safer browser extensions by restricting outbound connections

Option 1 : Only allow 'widely used' outbound connections Problem: Browser extensions are dangerous because they can exfiltrate personal information. Proposal: Only allow outgoing data transmission if a large number of other browsers with the extension are making exactly the same request. For example, if an ad blocker is updating Easylist, then the data transmitted would be the domain, the URL, and…

Boyfriend of Zelda

Boyfriend of Zelda is a bookmarking site, like Delicious or Pinboard. Rather than add your site bookmarks in your browser, add them to a webpage with a small description and, optionally, tags. This makes them searchable (and shareable, though I can't see why anybody would be interested in my bookmarks. Maybe your bookmarks are super compelling though). It's very simple, so the best way to get a…

Majordummo: simple management of small, private mailing lists

Majordummo is a mailing list manager for small, private mailing lists. Its primary goal is simplicity and is therefore implemented as a single Python file which uses no third-party packages. Because it leverages Python’s excellent standard library the entire thing is a little over 200 lines of fairly readable code. Its unofficial motto is “if I could have done the entire thing in Postfix, I…

A lockdown hair censor for video conferencing

Here in London, we've been in coronavirus lockdown tier ∞+n for a little while now, and I haven't had a decent haircut in quite some time, but I still need to appear on video calls. So I made a hair censor. Download mp4 The code uses OpenCV, which makes it very simple -- it finds faces using a Haar cascade and then blurs squares in an area around the face. I used v4l2loopback and an OBS plugin to…

Implementing ON ERROR RESUME NEXT in Python

Summary I wrote ON ERROR RESUME NEXT for Python as a proof of concept. Code is here . Intro On the whole, BASIC is an unfairly maligned programming language. By the 90s it had come a long way from the GOTO-peppered, line-numbered morass which earned Dijkstra's ire. Modern BASICs have great support for structured programming -- not just procedures and while loops, but classes and modules, too.…

Generating imaginary maps on an e-paper display

I bought a small e-paper display 'hat' for a Raspberry Pi early this year. The whole ensemble is small enough to put next to a mouse pad or stick to a monitor, and while I've not found a practical use for it, it's been really fun to find impractical uses for it. Earlier this year I was using it to display Amiga demos at 0.0003 frames per second , and last night I made an imaginary map generator.…

Thermal paste replacement, Macbook Pro 2015

Recently I replaced the thermal paste in my Macbook Pro 2015. Doing it was straightforward -- I used this guide to know which screws to take out -- but I thought I'd record the symptoms here in case anyone else has a similar problem. The symptoms were: the laptop would boot or almost boot, but would hang -- display would be alive, but nothing else -- and would usually then turn off within a few…

Python, I wish I could quit you

I want to stop using Python. I really do. There are lots of interesting languages out there to learn. It's just that Python is so convenient . Tonight, in an ... hour? or two?, I built an inverted-index search tool for my email. It reads every email in a reasonably-sized (4.2GiB) email folder, decodes MIME, chooses the best format (plaintext or HTML) to index, extracts the text if it's in HTML,…