The short life and fast times of a beekeeper
A couple of years ago I decided I wanted to try beekeeping - nothing big - just a little hive in the back garden. I wasn't bothered about harvesting honey, or making stuff from wax, it was just that I...
View ArticleGetting Started With AngularJS
I've only done a couple of projects with AngularJS, but the hardest part of using Angular each time has been just getting up and running. After that it's been pretty pain sailing. So here is a...
View ArticleANTLR Dynamic Runtime Tokens and Rules
ANTLR lexer tokens and parser rules are normally coded into the grammar and not modifiable during the codes execution, but I need to add lexer rule tokens and enable or disable parser rules at runtime....
View ArticleSQL Graph Database Using Continued Fractions
This post is a continuation of a previous post (Continued Fraction Database File System) which used a SQL RDBMS to implement a file system tree using continued fractions. If you want to understand the...
View Articlelg4j – Java library for controlling LG TVs
Inspired by lgcommander, lg4j is a Java API for controlling LG TVs via the webservice interface. Example usage First you need find the TV’s IP address and get an authentication key by executing: Lg4j...
View Articlesctbrowser - SNOMED CT Browser with UK clinical and UK drug extensions
sctbrowser is a small, simple and fast, Snomed CT Browser for viewing international and UK (and other countries?) clinical and drug extension RF2 data. The source code is available to download and...
View ArticleApache FtpServer LDAP User Manager
Apache FtpServer used to be bundled with an LDAP User Manager for authentication, but it was deleted from the repository in this commit in 2008. Here is an alternative implementation:...
View ArticleAnother Apache Cassandra File System
I want to be able to store files in Apache Cassandra from a Java application, using something like CFS or DSEFS, but both of those appear to be proprietary, part of Datastax Enterprise and closed...
View ArticleJava Turing Machine
Here is a Turing Machine implemented in Java as described by the Wikipedia article: https://en.wikipedia.org/wiki/Turing_machine With the copy subroutine test taken from:...
View ArticleFTP files into Apache Cassandra with Apache FtpServer
Apache FtpServer provides an API to allow you to implement your own file system to back file uploads and downloads. Using the native file system as a guide, this project builds on a previous blog post...
View ArticleUse JAXB to generate classes from FHIR XSD schema
Running the FHIRXSD schemas through JAXB throws a bunch of exceptions, for example: com.sun.istack.SAXParseException2; systemId: file:../xsd/fhir-xhtml.xsd; lineNumber: 283; columnNumber: 52; Property...
View ArticleOverengineering Shit
I’ve had enough of Flickr, for all the standard reasons. So I set out to build a scalable, secure, distributed, image sharing platform of my own, using open source components, tried and tested tech,...
View ArticleTell 'em Steve-Dave!
SoundCloud's web interface is rubbish for downloading podcasts, but their API is pretty good, so here's a handy Python script for downloading all of your favourite Tell 'em Steve-Dave! episodes: import...
View ArticleRiak - Building a Development Environment From Source
Building a Riak development environment, like anything involving Linux, is needlessly complicated for no good reason. This method to build from source worked for me from a clean install of Lubuntu...
View ArticleDynamic Stacks Make Me Nervous
Ten years ago Ted Dziuba wrote Python Makes Me Nervous, I agree with everything he wrote back then - I suppose I'm what Steve Yegge would call a Software Conservative. Ten years on, the static vs...
View ArticleEnforcing Multi-Tier Architecture
So you've designed an application, using the principals of separation of concerns and a multi-tier architecture. It's a delight to navigate and maintain the code base, the architecture might look...
View ArticleJava 9/10 Multiline String
My Java Multiline String project stopped building when compiling with Java 10 because tools.jar has been removed since Java 9. When the tools.jar dependency is specified like this: pom.xml ......
View ArticleCard Table
Card Table is a multi-player web based virtual card table implemented using Java, plain JavaScript, WebSockets and Postgres. Source Code Code available in GitHub - card-tableSetup This project...
View ArticleRaspberry Pi Backup Server
Getting Old Recently I've found myself lying awake at night worrying if my documents, code and photos are backed up and recoverable. Or to put it another way - I've officially become old :-( With a new...
View ArticleRaspberry Pi 4 Official Case Temperature
My Raspberry Pi 4, running without a case, has an idle temperature of 54°C. With the official Pi 4 case the idle temperature jumps to 72°C. The official case is completely hotboxed, allowing for...
View ArticleStart Stop Continue
Start Stop Continue is a virtual post-it note board for Start / Stop / Continue style retrospectives. It is implemented using Java, jQuery, and JSON files for persistence. The project is designed for...
View ArticleCode-Point Open Postcode Distance AWS Lambda
Redis supports calculating distances using longitude and latitude with GEODIST, but I wanted to use eastings and northings to calculate distance between postcodes. This project uses the Code-Point...
View ArticleNational Statistics Postcode Lookup Radius Search With Redis
Of all the questions posed by Plato, the profundity of one stands head and shoulders above the rest: To answer Plato's question we're going need some geographic information about UK postcodes:...
View ArticleRiak-like secondary index queries for S3
This is an idea for how to provide secondary index queries, similar to Riak 2i, on top of Amazon S3, using nothing but S3, boto3 and some Python. This code hasn't been anywhere near a production...
View ArticlePrivateGPT Installation Notes
These notes work as of 07/11/2023 using Xubuntu 22.04 - your milage may vary. PrivateGPT PrivateGPT is a production-ready AI project that allows you to ask questions about your documents using the...
View Article