Category: Programming

  • California County Seats

    I had some fun today getting the location of each county seat in California. You can see the code here if you’re curious: https://github.com/fadend/county_seat_coords. The data are pulled from Wikipedia’s List of counties in California. I plotted them going through the tutorial here: https://eriqande.github.io/rep-res-eeb-2017/map-making-in-R.html. (Very nice!) Here’s my ugly R code for doing that, shamelessly…

  • Adding support for MHTML in Chrome’s Apple Script “save” action

    MHTML is a handy format for archiving pages. In Chrome, you can get it by selecting “Save Page As…” and choosing “Webpage, single file” as the output format. In a Chrome extension, you can get it via chrome.pageCapture.saveAsMHTML, which is what I use in the gg_download extension I’ve been hacking on. In the project I’m…

  • Comparing nodes

    I thought I wanted to compare the DOM trees for a couple of nodes. I ended up putting this together: How would you have done it? (I’d be unsurprised if this has some bugs.) After writing this though, I realized that comparing the HTML from n1.getHTML() vs n2.getHTML() was better for my purposes. (I don’t…

  • white-space: pre-line converts lines into spaces in Safari when pasting into a textarea

    In a site I’m helping with, we encountered this weird behavior: users pasting multiline text into a textarea in Safari (but *not* in Chrome) found their newlines replaced with spaces. This was a problem because lines are used to separate items to be processed. Dropping the lines garbled the meaning of the input. My first…

  • Regex in C++

    I’ve missed out on a few things. It was fun to learn (or be reminded?) today that regular expressions have been part of the C++ std library for a while: https://en.cppreference.com/w/cpp/regex

  • Wayback Machine rescues pytest posts

    I’ve been curious about how pytest‘s assertion rewriting works. (As someone used to Abseil’s testing framework, the usage of bare asserts was a shock.) I was happy to come across a Reddit post: “How does pytest work?”. Unfortunately, the site it points to, pythoninsight.com, seems to be mostly dead. Luckily, the wonderful Wayback Machine has…

  • Snooping on Internet Archive’s Wayback Machine bot

    I’m reading Jon Duckett’s “PHP & MYSQL” and got up to a section where he discusses $_SERVER, which contains info on HTTP headers, etc. I thought it might be fun to see what Internet Archive’s Wayback Machine bot looks like in terms of this. So, here’s my take on dumping parts of $_SERVER: https://github.com/fadend/server-vars-php/blob/main/server_vars.php. Hopefully…

  • Wolfram’s Cellular Automata

    I’ve had fun reviving another old PHP project — code to draw the evolution of 1D cellular automata using the codes described by Stephen Wolfram in his book “A New Kind of Science”. See https://github.com/fadend/wolfram-ca-php. One thing I added over my 2004 version is the ability to easily start with just a single point turned…

  • Clifford Pickover “million-point” structures in PHP

    Back in 2004, I wrote some PHP to render the “million-point” structures Clifford Pickover described in his book “Computers and the Imagination”. I’ve got a project coming up that may require PHP so I decided to give it another look. Code is here: https://github.com/fadend/pickover-dots-php/blob/main/pickover_dots.php You can play with it here: https://revfad.com/cgi-bin/pickover_dots.php. A couple references I…

  • Static photo album creator

    I’ve published a utility for creating a static photo album (no server-side stuff, just HTML + photos) given a folder of photos: https://github.com/fadend/go-photos. I was inspired to do this because in looking for costs to cut, I decided to stop paying for Photobucket. Whatever you used to find under https://s114.photobucket.com/user/dfaden (broken link), you can now…