RSSAmplifier

Blog

Alex Charlton's Blog

Alex Charlton's personal blog

alex-charlton.comRSS feed ↗10 posts

Latest posts

A Kubernetes dev environment for Mac

This post will explain how you can hack Kubernetes on a Mac, and easily compile and run the resulting cluster locally. Specifically, I’m talking about working on the Kubernetes codebase directly and not a project that uses Kubernetes. 1 The goal is to be able to run the local-up-cluster script as described in the documentation for running locally . That documentation mentions that local-up-cluster…

Dithering on the GPU

Wherein I describe a novel algorithm for ordered dithering based on an arbitrary palette, which may be executed on systems such as – but not limited to – graphics processing units. Background and motivations Dithering is more than just a way of representing an image with a restricted colour palette. Early desktop computer and videogame hardware represented a new medium for a cohort of artists and…

When is it okay to delete an OpenGL buffer?

The short answer The spec says you can call glDeleteBuffers on a buffer object as soon as you no longer wish to directly reference that buffer. However, in practice you should not delete a buffer until you’re completely done performing any operation relating to the memory referenced by that buffer. The longer answer According to the OpenGL specification, you can, for instance, reference a vertex…

Notes from watching Bot Summit 2016 from my home

{{{toc}}} Bot Summit is an indie conference covering all things bots that’s now in it’s third year. It took place this year at the Victoria & Albert museum in London on April 9th. Preface I clued into Bot Summit kind of late, as I saw my Twitter feed explode on Saturday. While I haven’t been into the bot scene for very long, my awareness of this community has been steadily growing thanks to my…

Gracefully shutting down worker nodes on Elastic Beanstalk

At work , we recently came across what should have been a straight-forward problem, that turned out to be anything but. We wanted to host a worker – a program that consumes jobs from a queue – on Amazon’s Elastic Beanstalk . We wanted to do this largely for legacy reasons: our service was running on EB and we wanted to mitigate the operational costs of moving to something else. Given the effort…

Building a search engine for logos

I recently created Token with my partner . It’s a search engine designed for logos, and we made it in a couple of weeks with a host of technologies I had never used before, including Node, MongoDB, Express, Angular, and OpenCV. This post details Token’s architecture as well as the main algorithms that make it work. Token in action The problem Unsurprisingly, figuring out exactly what you’re trying…

Drawing multiple viewports at the same time

Sometimes in graphical applications you want to draw multiple viewports on the same screen at the same time. Think about split-screen games, CAD programs showing multiple views, or a map overlay. Approaching this problem recently, I was surprised by the dearth of information on the subject. While this can be achieved through the use of framebuffers – render each viewport to a framebuffer, then…

Prototype to polish: Making games in CHICKEN Scheme with Hypergiant

{{{toc}}} Introduction Hypergiant is a library for CHICKEN Scheme that tries to make it easy to make efficient games. 1 The idea behind it is the belief that games should start with a prototype that should take minimal effort, but these should be extensible to be whatever you want the final product to be. So Hypergiant attempts to find the sweet spot between ease of use and power. What Hypergiant…

Using the Samsung Chromebook for remote and local development with Emacs

With the death of my Macbook’s battery, I decided to find a new portable computer, rather than pay a bunch for a several year old “new” battery. I settled on Samsung’s Chromebook. It is a lot of computer (and battery life) for one of the lowest price-points on the market. It is, however, the first general purpose computer I have used that has an ARM processor. While this is limiting in some ways,…

Modern OpenGL in a single C file

I’ve lost count of the number of times I’ve wanted (and made) a simple, working OpenGL example in order to start off a project. It’s so often desirable to work on a project incrementally – to add new content in small bits, testing each small piece. This is all the more true for graphics programming where small mistakes can lead to the most frustrating thing of all: a blank window with no feedback…