RSSAmplifier

Blog

BenjaminBenBen

Some stuff by Ben Foxall

benjaminbenben.comRSS feed ↗25 posts

Latest posts

Offline QR Codes

Using QR Codes to send data from offline devices 👉 From a sensor If a sensor has a display, it can show a qr code with the data encoded in a url. An example is this temperature sensor sharing recent values in a collector page . 🛜 Everything works offline . The microcontroller has no network code and the collector page can work offline. 🔋 Power efficient . E-ink displays don't require continous…

Video Space

Here's a video that's played back in the space it was captured 👀 It's interactive, drag the viewer to adjust the viewpoint Motocamping A beach near Poolbeg Lighthouse Cycling next to a friendly dog A confluence in Chile Mizen head: A start/finish line Mizen head: Flying over some cliffs ← More videos Locating frames I was hoping to use the telemetry data from my drone ; it produces a text…

Stacks Camera

I’ve been working on a side project - stacks.camera It’s a tool that lets you capture a series of images by overlaying the most recent capture when you’re taking a new photo. You can see my public stacks at u/ben . Here's some that I've enjoyed creating: Window - I started taking pictures out of my window as a test, but I’ve found it pretty satisfying to keep adding to. Circles - stacks can be…

Dublin London Dublin

I've not posted here for a while 5 years 😱 This is some stuff that I've been doing since then: Working at Oxa I had super fun times working on Map Tech and various web things across the company. Moved to Dublin with Sarah I packed for a couple of weeks, which covid turned into a couple of years. Got a job at Wayve and moved to London started out in Experiment Orchestration 🙅🫶 then created the…

Hacks

I built some things a (long) while ago – I found it really satisfying but never bothered to blog about it. Cardboctober Way back in 2016, Max , Pete & I tried to make a Google Cardboard hack for every day of October. It was an awesome experience. There's something very liberating about the daily time constraint; it's stops you striving for perfection, and lets you move on to something new without…

2018 ➡️ 2020

I've been up to a load of things over the last couple of years. A few highlights: 🇳🇿 Cycled around New Zealand with Sarah 🤖 Started working at Oxbotica 🏍 Bought a motorbike For a more visual guide – I drew some emoji over the top of a calendar ( see twitter for more details ). It might not be the most efficient diary of events, though it was pretty fun to put together 💕.

Blog Post

My friend Oliver logged this issue over on GitHub. Thanks dude. I hope this blog post, and the words within it, helps resolve the issue for you?

GIF

Animated gifs are brilliant … …But they’re also kind of rubbish. We can’t pause a gif, skip to a particular point, or grab individual frames from the image element. One way around these problems is to load the file content with JavaScript and decode it manually. There are a bunch of different libraries that can decode gif (check out omggif , gify & gif-stream ). I’m a fan of the decoder in jsgif ;…

In with the old

After more than a year of no posts - I'm still here It’s been a really busy year; a lot of my spare time has been spent hacking on, or preparing for, talks. In the last year I’ve spoken at: MK Geek Night , FFconf , Breaking Borders , All Your Base , Oxford Geek Night , jQueryUK , MK Geek Night , talk web design , Upfront , Full Stack Fest and Reasons to be creative . photo: All Your Base, by…

Open inbox

I'm pretty rubbish at responding to emails - I've tried inbox zero a few times but never stuck at it. I thought being public about the state of my inbox might encourage me to keep on top of things. Home Work (key: orange - unread, yellow - read) It's updated every 30 minutes by a short python script that uses the new gmail api to fetch the inbox counts, then post them at a heroku app. The heroku…

LastFM to CSV

I made lastfm to csv - a page for downloading lastfm listening data as a csv file. API requests are made directly from the browser, avoiding the need for any server-side code. give it a shot now (my username is benjaminf) My friend Andy wanted some lastfm listening data for a visualisation project so I wrote him a ruby script that uses the user.getrecenttracks method to get the track history for a…

Unknown Pleasures

The artwork for Joy Division's Unknown Pleasures album is based on a graph of radio waves from the first identified pulsar - this is a graph of radio waves from the same pulsar, but recorded in 2012. Encyclopedia of Astronomy colouring Transparent fill "Full scale" Origins of the Joy Division artwork Stephen Morris (the Joy Division drummer) found this image in the Cambridge Encyclopedia of…

Context require

This is how I organise JavaScript assets on this site. view code on github Motivation When I started this blog, I knew that I wanted to include specific and varied scripts on each post. I didn't want to serve all my js files together in one blob with each page load: The built js file would get bigger with each post I add I wanted the flexibility to use any new library that I came across (didn't…

The other side of responsive

Yesterday I gave a talk "The other side of responsive" which was about how responsive web development gives us a great platform for creating interfaces that combine multiple devices. This post explains some of the tech/approaches that I used for it. I'm writing this in a car, with the limit of a half charged laptop, so apologies for any mistakes or over-wordiness. Also - for context - my mother…

Graphing links

This is an example of displaying content pulled from a PhantomJS webservice I used this example when I talked about "serving websites to websites with PhantomJS" at this months Oxford Geek Nights Link Areas With phantomjs you are able to access more than just the HTML/DOM of a page - how the page is eventually rendered in a browser. In this example - we can pull out all the links of a page and…

PhantomJS WebServer

The PhantomJS WebServer module lets you create self contained web applications that are easy to deploy to heroku using the PhantomJS build pack. I'll be talking about this at Oxford geek nights on the 7th of August - come along if you're in the area. (tl;dr - deployed example here & more involved app here ) Let's start with a base PhantomJS script - this loads the Oxfordshire lanyrd page and…

Shaker.io

For a couple of releases now - it's been possible to build a customised version of jQuery . I felt that one of the barriers for using your own version was finding which modules your site actually uses - so I started working on shaker.io Shaker.io is a tool for finding which modules of jQuery you're using - it does this by providing an instrumented version of the library which tracks which…

CSS matches

I was working with a large css codebase and wanted to see if our rules were becoming more specific as the css source grew, so I built css.benjaminbenben.com to look at how css rules are applied to a page. Active rules This shows how many of the selectors are being used on a page, you can toggle to show only the active ones. Overview The '-' link on the bottom right scales the rules so that they…

Cross window communication

I was part of the "Rising Stars" track at the jQuery UK conference this year where I talked about sending messages between browser windows. This post covers the first half of my talk - sending events between local windows. My slides are now online , though they are more prompts for me to talk, rather than being full of information. The demos wouldn't really work with it being publicly accessible,…

Image processing + web workers

tl;dr - examples: >with web worker (should be smoother) >without web worker Web workers let you to take JavaScript execution off the main UI thread - which can be really useful if you are doing complex things with video I came across a javascript qr-code reader a few days ago. When I started using it to scan from a getUserMedia stream - it worked fine, but the extra processing was blocking the ui,…

Tweet Globe

Plotting geocoded tweets on a globe with canvas Requires Canvas Support I gathered a few hours of geocoded tweets from the twitter streaming api (using the maptime code as a base). This was to explore some ideas that we'd been talking about at White October . Drawing the globe is relatively straightforward . The lat/long pairs are converted into position vectors, which are then transformed based…

lllocal

I built lllocal - which lets you find and listen to bands that will be playing in your area soon. I've been thinking of this idea for a long time and I put up a public version a couple of months ago. It's brilliant to get feedback from people and I've also got tickets to two events while testing it out for myself ( Keaton Henson was great and we're off to see Daughter in a couple of weeks). My…

Maptime

In time for our first JS Oxford meet - I put together a small node app which reads geocoded tweets from the twitter streaming api and pushes them to the browser to display on a map. This is a stripped down version of a project that I worked on at White October this summer. This version is not at all for production use (your browser will grind to a halt if you leave it running for a while!), though…

Lastfm Canvas Streamgraph

A browser based last.fm streamgraph using canvas. This is based on Lee Byrons listening histories project. I love this project - it's a really interesting and engaging visualisation, and the last.fm data makes it really personal (I can't think of any other services that give as much personalised data as last.fm ). There are services that let you download a pdf streamgraph: lastgraph.aeracode.org &…

Out With The Old

After more than a year of no posts - I've left my old blog behind. This new one is built with Jekyll and put it online with GitHub Pages . The source is on github . It seems that a lot of Jekyll sites start with a post about the interesting way that they have been deployed. So, for the record, I kept it simple and went for the github jekyll generator .