Concerning Cassini
At the beginning of the year, I saw a tweet by my friend Ben Ramsey, where he quoted Carolyn Porco's tweet requesting help saving CICLOPS, the web site of the Cassini Imaging Central Laboratory for Operations, which was under threat of disappearing off the internet.
I have been enthusiastic about space since I was in my early teens, with at some point expressing the interest to be an astronaut. I never pursued that, but I have continued to express great interest in space exploration.
I have dabbled in some astrophotography, having some mediocre successes with last year's comet NEOWISE. I never got into the field of astronomy nor photography. Instead I started doing web technology, including PHP, which how I know Ben.
Tech is cool too, but I always hoped to do something for, and with, space exploration.
So when I saw Ben's tweet, I thought this would be something I could help with, so I reached out to Carolyn via DM.
The task at hand at that time seemed to create a static copy of the existing CICLOPS website, but after some twitter to-and-fro, an additional ask seemed to be to create a functionally equivalent static search.
Over night, Ben had mirrored the CICLOPS website with wget and I took his copy to make some improvements, and started doing some research into how to do a static search. I had quite some experience with SOLR as well as full text search in general and with MongoDB. The problem was that all of these needed something to run on, which would create complications and costs, beyond just hosting a static site on something like S3.
After some research through DuckDuckGo, I found a neat JavaScript library, called Lunr, which looked perfect for a quick-and-dirty static search engine. Like most other more complex search engines, Lunr creates a reverse index that maps every word back to a location in a document, with some clever maths to rank more specific words higher in the results.
I started writing a script to extract the text from the crawled CICLOPS site to pick out the actual descriptions of each post and media item, and then made that index into Lunr's full text search index. With that, I set up a static site on S3 as a demo. This demo could have become a crude final result, and would have saved all the original content and images of the Cassini space probe.
That was the easy part.
In the course of several weeks, I worked with Ben, Carolyn, Jakub and David to refine the search index, split it into several different categories (the one with the images is my favourite!), added pagination, phrase searching, and a ton of other tweaks to make the static CICLOPS site an excellent simile of the original dynamic site, which turned out to be written in PHP!
To be honest, this took a lot more work than I originally had thought, with many hours spend on my side, all in the name of science.
The resulting site is something to be proud of. The search is faster and more capable: look at the instructions! I finally managed to do something space related—and that all for my favourite planet!
I would explore you to have a search through the rich set of images that is available on the CICLOPS site, and let me know what's your favourite!
Life Line
Created 6 benches, a main entrance, and a bicycle_parking; Updated 2 main entrances
Created 4 trees, a balancebeam, and 3 other objects; Updated 5 benches and 2 waste_baskets
Merge branch 'xdebug_3_5'
Merged pull request #1092
Use actual PID here, as we use that to be able to connect
Created 2 main entrances; Updated a vacant shop, a furniture shop, and a cafe; Confirmed an estate_agent office, a laundry shop, and 4 other objects
Merged pull request #1091
PHP 8.6: Fixed test expectation for 'debugInfo' name in error
Add 'strace' to run-xdebug-tests.php command
Oystercatcher Parent and Chick
Standing on the edge of a lake in the Arundel Wetlands.
#birds #birdPhotography #Birdsoffediverse #Photography #Nature #Wildlife
Updated 2 main entrances
Fixed tagging and bollard location
I hiked 8.7km in 4h4m28s
Updated a restaurant
Updated a restaurant
Updated a restaurant
I walked 5.5km in 56m26s
Created an entrance
I walked 5.7km in 1h20m50s
Updated a fitness_centre; Confirmed a charging_station
I walked 4.0km in 47m13s
I walked 1.1km in 9m32s
Also, whatnow‽
`GET /icons/blank.gif HTTP/1.1" 200 398 "https://downloads.php.net/~windows/pecl/releases/?utm_source=chatgpt.com`
WTF does that need an `utm_source` for?
I sometimes wish cache expiries could be fuzzy, like 900±15 seconds. Y'know, to prevent the thundering herd effect.
Created a chemist shop


Shortlink
This article has a short URL available: https://drck.me/ciclops-h28