(click here to see the books I enjoyed last year) I re-wrote my book suggestions webapp and tried to find a book similar to Imaginary Magnitude by Stanisław Lem. The book that it found is my favorite book of 2018: Stories of your Life and Others by Ted Chiang. It is a brilliant ode to physics with great storytelling with characters that are both feeling and emotional as well as rational.
These photos really narrate pieces of my life from 2018. For instance, I got a cat. I went for a walk in the Seattle Arboretum park during the spring. I walked in a park in Hillsboro that commissioned some neat stick structures. There are many of these throughout the world, they are made by a community with the expert assistance of Patrick Dougherty who has been making these types of structures…
(click here to see the podcasts I enjoyed last year) There is a new fad in podcasting where you make a short, digestible series with a finite set of episodes from the beginning. Its something like S-town, but it can be fiction or non-fiction. There were two great podcasts like that this year. The first is Bundyville by NPR, which chronicles the beginning of the Bundy family and how it led to the…
I started painting large animals as a way to observe life on a scale that is no longer microscopic. Animals are a million times bigger than the usual objects of my observation, but that makes them no less fascinating and intriguing. Painting provides a totally new lens to look at the world around me, it allows me to truly see the colors and the shapes on a way I’ve never appreciated at a scale…
croc is a tool that allows any two computers to simply and securely transfer files and folders. There are many tools that can do this but AFAIK croc is the only tool that is easily installed and used on any platform, and has secure peer-to-peer transferring, and has the capability to resume broken transfers. Overview Transmit encrypted data with a code phrase croc securely transfers data using…
Since Golang is a new language, I’ve found myself creating some packages that I’ve found consistently useful. This is a list of Go libraries that I authored and that I actively maintain. All of them are on Github. Feel free to look them up and submit PRs. peerdiscovery Pure-go library for cross-platform thread-safe local peer discovery using UDP multicast. I needed to use peer…
ChickenCam was created because I feared the chickens were plotting against me. Here’s how I subverted them with a Raspberry Pi based solution. Requirements Raspberry Pi Camera without IR filter Weatherproof extension cord + Outlet tap 3D enclosure, specially fitted Infrared illuminator USB microphone Chickens Too much time on your hands 1. Setup Raspberry Pi Plug in the USB microphone,…
I like to write code and always have - my earliest project is a band name generator from 2003. On Github I have over 230 repos, but I also have some on Bitbucket, Gitlab, and my own self-hosted fossil. Like others, I’ve had projects that I stopped working on and stopped using altogether - thus relegating them to the project graveyard. Here is a sliver of projects that ended up not meeting my…
Being a student for 20 years has taught me that students learn well when they love what they are learning. This simple aphorism – “you love to learn when you learn to love” – has been the cornerstone of my success as a student and a maturing teacher. Students used to regard classroom teachers as the singular resource for learning, but now students are surrounded by vast amounts of educational…
Github, Gitlab, Bitbucket are all web interfaces for git. They all do similar things that add on features that aren’t implicit in git, like issues and wiki, etc. Unbeknownst to some, fossil is an alternative to git that actually has built-in issues, wiki, and easily self-hosts. This is a quickstart to get started with hosting and cloning fossil repos. The official quickstart is very good,…
There are some great ways to archive sites on the web. You can use archive.is or the Internet Archive. But, using the IPFS, its really easy to make your own hosted internet archive. Say you found a cool website, like www.bzarg.com/p/how-a-kalman-filter-works-in-pictures/ which shows how a Kalman filter works. All you need to do is recursively download the site, with cross-domain assets, and then…
There’s a bit of a chicken-and-egg problem with IPFS to get pages to link to each other that is frusturating to IPFS users. To have the IPFS hash for the link you first need to get the IPFS hash of the other link. One way around this is to make all the URLs relative. This is a lot easier to do than you think. First make a blog however you want and then host it locally, e.
Keybase is a great system for mounting a end-to-end encrypted filesystem. It also has an encrypted git feature which is great for storing secure information in repositories. While keybase has releases for most systems, that don’t have any releases for armh, of which Chromebooks fall. With help from the keybase developers I have determined a way to get keybase up and running on a Chromebook…
I’ve been enjoying writing in vim a lot more. There is a nice and simple way to make writing a lot easier (word-wrapping, nice color scheme). You can just make the following config file (save as ~/.vimrc): func! WordProcessorMode() set columns=80 setlocal formatoptions=1 setlocal noexpandtab map j gj map k gk setlocal spell spelllang=en_us set complete+=s set formatprg=par setlocal wrap…
This is a little hack to use shallow clones for new git checkouts with go get. Unfortunately for Gophers, this has been an open issue for three years counting without a workable solution aside from patching the go toolchain yourself. This solution utilizes a git wrapper that determines if a pull/clone is happening and then makes sure it is shallow. The wrapper is only a few lines of code,…
I’ve done dozens of races and about 15 marathons since I started running. I’ve plotted my pace for 15 official marathons. Its quite obvious now that I’ve plateaued at a nominal pace. You can see that I got fast quite quickly - after about three years I hit my plateau of about 8 minutes per mile. In my first three years of running I ran about 20 miles a week - sometimes more,…
Sometimes when I want a recipe to cook something new I will find several recipes for the same thing and try to use them as a guide to generate an average or “consensus” recipe. This code should make it easy to generate consensus recipes (useful!) and also show variation between recipes (interesting!). Finding a consensus recipe requires first clustering many recipes. This is because a…
There is a new version of FIND now, called “FIND3.” Its public on Github now. FIND is the Framework for Internal Navigation and Discovery. It is basically an indoor GPS for your house or business, using only a simple smartphone or laptop. This is an idea I started thinking about 8 years ago and wrote the first code in PHP almost four years ago, dubbed version 0, as a proof-of-concept.
I’ve spent days sitting in a dark room looking into a microscope. Lots of the time I listen to music, but I’ve started to listen to podcasts. I’ve found a lot of great podcasts out there. I think my number one category of podcast is “the podcast about the small things.” Its always a welcome relief from the mainstream media which focuses more on the hyperbole of small things. I do…
I’ve read about 15 books this year - not as many as I’d like (I read 40 in college), but I did a lot of magazine reading too (e.g. The Sun and The New Yorker). The books that I read can be classified into three major categories: non-fictional animal encounters, magical horror realism and fictional non-fiction. The first main category are books I read in 2017 are about non-fictional…
Computers can do many amazing things with art, especially with the advent of neural networks.1 In 2016, I saw some computer-generated art that inspired me to generate art as a human. The art I saw was a rendition of photos in primitives. Here’s an example (For much more, just follow @primitivepic): These kinds of photos were generated using a computer program that tries to replicate a photo…
My good friend Jessie and I want to watch a documentary movie on turkeys together.1 I have the file on my computer and she does not, so I want to send this file to her directly2 from my computer. There are a couple of restrictions though: the turkey documentary is a ~1 GB file, Jessie lives 2,000 miles away in a different country, Jessie uses Windows OS and finally Jessie is not a programmer, and…
crawdad is a simple, yet powerful alternative for scraping in a distributed, persistent manner (backed by Redis). It can do simple things, like generating site maps. It can also do complicated things, like extracting all the quotes from every page on a quotes website (tutorial follows). Install First get Docker which will be used for running Redis. Then you can simply download crawdad: $ wget…
I was inspired by Dan Tepfer’s piano worlds to explore my own universe of augmented piano playing. Could I write a program that learns in realtime to improvise with my style in the music breaks between my own playing? 🤖🎹 This is pretty much a play-by-play on making PianoAI in 8 days. If you just want to try out PianoAI, go to the Github for instructions and downloading. Otherwise, stay…
Auroras (or northern lights) are amazing – a beautiful display of ionization of the disturbed magnetosphere. Auroras often happen in the dark of the night and their occurrence is random. The best predictions usually only provide an hour’s notice. To make sure I can get to see the latest Canadian auroras, I made a Raspberry Pi Aurora Alarm. There is a simple way of determining if there…
I love discovering new music. Can I make it easier to find new music automatically? This is a beginner’s guide for a simple way for implementing a Raspberry Pi server for hyperdiscovery of music. The idea is simple - to setup a server that finds new songs that are related to any song that I like on Spotify or YouTube. Usually I can find new music by talking to friends, listening to podcasts…
What would happen if you made a recipe out of the ingredients for a recipe? What if you repeated this process over and over? I ended up doing this and generated the recipe that starts with the most basic ingredients - dirt, water and sun. Here are the ingredients of my favorite recipe - a recipe for bread - that I have made almost every week during the past decade:
Can a neural network help me improve my art? Could I take a photo, paint it, and then use a neural network to render the original photo in the style of my painting to make it better? Could I learn something from it? Some background I started thinking about these questions because I’ve been reading about neural networks, and I’ve seen a lot of these neural networks create new works of art by…
The word “noun” is a singular word. It is the only word that is what it is. Such a word is an “autological word” as they posses the property that they express. To determine if X is autological, it requires answering yes to any of the following questions: Is X a X word? Is “X”, X? Some great examples of autological words are “polysyllabic”,…
Alternate title: why I made a book recommendation service (booksuggestions.ninja) from scratch. Basically I found that all other book suggestions lacked so I made something that actually worked. I read about 30–40 books a year. Not to be morbid, but this equates to only reading about 3,000 books in my lifetime. Since there are millions of books that exist,1 it means that I can only consume a…
I like wordpress, but it is very intensive to get working, as it uses a lot of PHP and requires SQL. Of course, nowadays you can do everything in Docker, so here is my method for getting wordpress to work great on Docker. Using Docker, I was able to get 2 blogs run on the smallest DigitalOcean droplet (which was already running two dozen other things). Each blog required 360MB of RAM, and the…
This closely follows this but also includes the Pi dependencies: sudo apt-get install swig oss-compat pulseaudio libpulse-dev automake autoconf libtool bison python-dev Sorry, you can’t use 8-bit audio. For all benchmarks I recorded one file using arecord -f S16_LE -c1 -r16000 goforward.raw To trasncribe the audio, you can use time pocketsphinx_continuous -fwdflat no -bestpath no -maxwpf 5…
tldr; use Go for reading GPIO pins because its about as fast as C for practical uses and a bit easier to code in, but use C if you want to write to pins (max cycle rate 15 MHz) or if you just want to keep things in memory. A good question to ask yourself before using the Raspberry Pi GPIO pins for time sensitive things is exactly how fast can I read and write to these pins?
The real Turing Test of this AI was to get it accepted to a literary journal, which was accomplished - this poetry was successfully accepted into a literary journal at a prestigious university. The story is below and the code is at the bottom for those who want to make their own! What do you think of the following poem? Orange Light I conduct myself in a windy manner because I am
I bemused a lot about building a motion sensor, but now I can actually post something useful. Everything I am about to tell you about can be found at my github page, including the Eagle files and Arduino scripts. Here is the finished product (still thinking about making an enclosure): Motion sensor + RF transmitter Components (order from eBay to get really cheap) PIR sensor PT2262 encoder ATtiny85…
I create a fully functional AI out of a Raspberry Pi - including voice recognition, facial recognition, and text-to-speech. Choose the hardware Here is the list of my hardware components (as of 02/05/14): Raspberry Pi Model Raspberry Pi Camera USB microphone CM19A RF Transceiver 8GB SD Card USB 2.0 10-port Hub USB WIFI adaptor Computer speakers HDMI cable And here is the explanation: I will be…
Here is a comprehensive list of all the books that I read in 2008. This list does not include Sherman’s Lagoon or Get Fuzzy comic books, and it does not include textbooks.
Moses reached upon Mt. Sinai and was given the gift of the Ten Commandments which have dictated the fundamental rules of life ever since. Scrawled on the back of the Ten Commandments was actually another set of commandments that determined the virtuousness of science and the held commandments to follow when Moses led his people to the promised land to live fruitfully in the pursuit of scientific…
In the beginning, 10 to 20 times 109 years ago, there was a big bang. A hundredth of a second later electrons, photons and neutrinos appeared. Three minutes later the quarks of the fundamental particles formed into light nuclei, approximently 76% Hydrogen and 24% Helium. 300,000 years later G-d said, “Let there be light”; and the nuclei combined with electrons to form neutral atoms,…