hur.st's bl.aagh

BSD, Ruby, Rust, Rambling

First Post

Someone... pays me for this, right? Guys?

[meta] [web]

Hmm, I'm doing this again, am I?

Last time was a custom PHP CMS with enough fancy features it even had dual-mode HTML/XHTML rendering based on the Accept-Content header. Look. It made sense at the time. Sort of. Shut up.

16(!) years later... it still mostly works, and it's certainly not the worst thing I've ever written, but I haven't been a PHP guy in a long time, and it's time for a change.

So here I am with Gutenberg, a static site generator written in my new favourite language, Rust. Whether or not I actually do anything with it, I helped fix bugs in four different projects in the process of setting it up, and made a FreeBSD port, so it's already paid off in my book.

💾 Scandisk

Scan.co.uk Disk Price List

[ruby] [web]

Sick of Scan.co.uk being a pain in the ass to browse for this sort of thing, I wrote a scraper and frontend to browse available storage devices and their prices.

Unauthorised, unofficial, and unsupported.

🖩 Bloom Filter Calculator 🖩

It has, like, graphs, and stuff.

[php] [javascript] [web]

Bloom filters are one of my favourite data structures, in no small part because of just how simple they are.

I first encountered them when I worked at Newzbin, when we needed a way of quickly determining if we'd seen a Usenet Message-ID before.

Their simplicity meant we were very quickly able to go from concept to a stable general-purpose microservice which served us well for many years.

One of the trickier aspects is knowing how to size one - typically you know how many items and what sort of false-positive rate you can stand, but how do you translate that to how many bits you need and how many hash functions to use?

Well, bam. The latest iteration of my calculator can calculate almost any valid set of parameters, and give you pretty graphs in real time, while offering server-side fallback. I hope you find it useful.

FreshBSD

BSD Commit Log Search

[ruby] [bsd] [web]

A search engine/viewer for source code commits, focused on projects of interest to the BSD community.

Currently into its fourth rewrite, backed by Elasticsearch, PostgreSQL and Redis, with the site itself running on JRuby and Roda, making use of concurrent-ruby to parallelise data retrieval and inserts.

Previous versions have used Rails, Sinatra, Padrino, Solr, MySQL, and memcached.