sparsebundle-fuse: Another Implementation for Reading / Writing MacOS Sparsebundles on Linux

There are already a sparsebundle implementation for Linux, but that’s read-only and only supports FUSE. This implementation is read / write, AND supports NBD (network block device) so the sparsebundle actually appears as a block device on the system, without you needing to loop mount the file in FUSE. There are some useful things that…… Continue reading sparsebundle-fuse: Another Implementation for Reading / Writing MacOS Sparsebundles on Linux

Library Occupancy Project Follow Up

The occupancy project is now deployed at Sorrells Library. After running for more than a week, it’s time to see how it performs… So I dumped the database, feed the dump into a python script for processing, and plotted occupancy for each day. And the results are surprisingly good! Let’s take a look. Here is…… Continue reading Library Occupancy Project Follow Up

The Making of the Library Occupancy Estimation System, Part 5 – the Enclosure

It’s almost time to deploy the ESP8266s. I switched from the previous board to wemos mini lite, a smaller board with a variant of ESP8266 (ESP8285). The ESP8285 includes a on-chip 1M EEPROM, reducing the cost. The most important difference is that the newer boards don’t have pre-soldered pin headers. Desoldering pins from the previous…… Continue reading The Making of the Library Occupancy Estimation System, Part 5 – the Enclosure

The Making of the Library Occupancy Estimation System, Part 4 – the Frontend

The only part missing was a front-end. It is 2017, and splitting up front-end and back-end is now a must. This is even more true in this project: serving html and other resources from my free Heroku server does not sound like a good plan – with only 1 web instance, the server can be…… Continue reading The Making of the Library Occupancy Estimation System, Part 4 – the Frontend

The Making of the Library Occupancy Estimation System, Part 3 – the Server

So the sniffer part was complete. The server was the missing piece of the puzzle. The server needs to do several things Receive data from the sniffer and decryptSave sniffed data (probe requests) to a databaseAnalyze probe requests and deduce occupancyProvide public APIs for retrieval of occupancy information I’m using python3 for the server since…… Continue reading The Making of the Library Occupancy Estimation System, Part 3 – the Server

The Making of the Library Occupancy Estimation System, Part 2 – the Sniffer

So I proved that this idea is somewhat feasible. There were two major problems that need to be addressed: 1. there were too many probe requests, 2. there needed to be some way to send found devices back to a server. The “too many probe requests” problem was easy to fix. I implemented a bloom…… Continue reading The Making of the Library Occupancy Estimation System, Part 2 – the Sniffer