That garage opener again..
Remember the garage opener I made a couple of years ago?
Personal blog of Stian Eikeland
Remember the garage opener I made a couple of years ago?
Did you know there's a whole class rolling objects that's not spherical or cylindrical and still able to roll in a given direction? I didn't! Some of them have them even have interesting properties like the fact that every point on their surface touch the ground as they're rolling. The Sphericon and the Oloid are two such objects. As a fun little experiment I wanted to code and print one. TL;DR,…
The yak I'm trying to shave here is the garage opener (keychain-)remote. You know those big clunky remotes people carry around on their keychains? I try to maintain a minimum (viable?) keychain and I absolutely hate keychain remotes and big keys with a passion. Remotes are fine in the car, but I don't want to carry one. The garage in question here only have access through the main port - no door.…
Update : The coffee alarm system no longer work like described below. The non-coffee-club office neighbors moved out, so we changed from a manual to an automatic system. We've reprogrammed a wifi power plug to notify the system when the coffee maker is turned on. The good old button described below is still operational, but now listens for events over MQTT and does the LED light dance when a new…
Making of a banana piano, with a bit of swedish jazz from my co-worker Håvard Sørbø This weekend my niece-in-law is staying over, and to maintain my image as the crazy scientist uncle I've planned to make a banana piano (and lots of weird ice creams). In clojure there's a pretty cool programmable audio environment called Overtone . Overtone features a decent sampled piano, and I'm thinking this…
I love cooking, especially geeky molecular gastronomy cooking, you know, the type of cooking involving scientific knowledge, -equipment and ingredients like liquid nitrogen and similar. I already have a sous-vide setup, well, two actually (here is one of them: sousvide-o-mator ), but I have none that run Clojure. So join me while I attempt to cook up some sous-vide eggs using the new transducers…
Transducers (reducing function transformers) are apparently coming to Clojure in v1.7 - but what is a transducer? Are they some sort of a continuum transfunctioner ? Some say they are perverse lenses , others that they are monoidals . I have no idea, but I want to find out! So let's figure out what's changed and play with them for a bit. Here's the work in progress commit that added them to…
I recently bought an interesting little router on eBay, a GL.iNet router. Pretty cheap, about $25 + shipping. It sports the same form factor as the sweet little TL-WR703n - everyones favorite hackable cheap linux router. Not only is the form factor the same, it's the same SOC - a AR9330. Here the similarites end however. Many people (me included) modify their WR703n routers, upgrading the hardware…
Clojure is a Functional First language, and I usually get by simply by passing around native datastructures such as maps, lists and vectors. Other than doing some simple Java interop I haven't really dug deep into the Object-Oriented features of Clojure until now. But, just because a language is FF doesn't mean that it's OO is weak sauce. The Banana ( ns oop.fruits ) ( defprotocol Fruit ( peel […
The Sieve of Eratosthenes is a well known old algorithm for finding prime numbers up to a given limit. If you don't know how it works, the short version is that you basically write up every number starting with 2 up to the limit. You then remove all multiples of 2, and the next number in the list (3) is prime. Remove all multiples of 3.. next number (5) is prime.. and so on. Sieve of Eratosthenes…