May 18, 2019

Citrus

Light

Broom

NYC

Park

May 11, 2019

Geojazzin (Bike Touring Part 1)

Have you ever heard of geocaching? My bet is you have and it is as stupid as you might imagine, you’re really just searching for plastic boxes in inconvenient locations. I happened to enjoy traversing the city at night, skipping sleep with my friend Johan Andersson in 2009. The first reason was the joy of finding these plastic boxes but the second was the feeling of freedom that came with travelling outside your zone of comfort at 3AM in winter of Borås. I lived for these nightly journeys, to the point where missing school was a recurring consequence of chasing the plastic boxes.

When one is 19 years old, becoming a pro geocacher” sounds like a terrific idea (less so now) and any way me and Johan could do more of it was worth the time and excuses it took to get there. Many times we just drove out to a random place and started searching for caches on my rather fresh iPhone (yeah, the first useless one) using what by today’s standards would be unuseable network speeds and find caches. I miss the excitement around this, simple tasks that really gave us the joy of exploring.

The First Trip

Towards the summer of 2009, we had the brilliant idea of why not combine a longer bike trip with tons of geocaching” as we at that point had found most of the fun caches available around Borås. Johan and a person named John Kumlin had done a shorter trip in 2008 so they had some prior experience on doing trips like these. The goal was to bike over 1000 km and find over a 100 geocaches. The route would pass over Gothenburg, up to Strömstad over the archipelago, quickly peek into Norway, pass through Karlstad and Kristinehamn, pop down to Hjo and Skövde and take us over Läckö Slott back to Borås. I couldn’t find the GPX file but this is the map as I remember it.

firsttrip

cykel1

We left the town on the 10th of July, setting our destination towards Gothenburg. With our true luck, the first day started with rain, as did basically every other day except 1. In true Swedish summer fashion, we had rain the majority of the time on this trip which turned out to be a challenge when trying to find over a 100 geocaches in 10 days. At one point I assumed that there couldn’t be more water in my shoes, which led me to step into a river to find a cache. I quickly realized that there can in fact always be more water in your shoes.

cykel2

The miserable first day ended in that we put up our tents next to the sea, just outside of Stenungsund. After enduring a long night of rain in a deep sleep from the exhaustion of the first day, I awoke to a strange sensation of feeling like I slept in a pool. I was floating. It turns out that my tent did a great job at letting water in, but not letting water out, creating a pool where all of my belongings were underwater. I shouted to Johan and Joakim who had come to the same conclusion, both scared of moving as that meant actually making the sleeping bag wet. Eventually Joakim proclaims that the ship is sinking and leaves the tent.

A miserable morning that never seemed to end eventually had us rolling for one of the longest days of biking. We throw away our tents, they are obviously useless, banking on the fact that we have a bed for the night at our destination. I sadly don’t have many pictures from this day but believe me when I say that it was truly miserable. We eventually arrived at the coastal town of Grebbestad which is a small vacation town in which we finally meet John, joining us a bit later on the trip due to another commitment.

cykel3

With the full gang together the spirits are lifted and it the dread of biking throughout the night in rain are lifted with some sun. John insists that we take a picture of his signature move the freeze” before leaving Grebbestad. From here the really stupid geocaching starts.

cykel4

cykel5

The night goes on and we find a variety of different geocaches along the coast all the way up to Strömstad. One particularly memorable one was a MEGA that ended up being a small house full of stuff, acting as a weird geocache that the owner had created. As the sun starts setting we realize that we forgot to actually purchase any tents in Grebbestad, having thrown away our previous tents we are not left with many options rather than to come up with creative solutions. Sweden has this nifty law called Allemansrätten which essentially allows anyone to spend the night at one’s land if you are not disturbing the owner of the land. After reminding yourself of this, we come across a cottage just meters before the Norweigan border in the middle of nowhere. I think it’s first after waking up that we realized the absolute state that this cottage was in.

cykel6

cykel7

After discussing this over breakfast by the road we challenge ourselves to keep this spirit of sleeping up. Why buy a tent where these locations conveniently appear out of nowhere? This trip and the subsequent one ended up being mostly about this concept, trying to find what we titled a Pundarskjul” due to the thrill that came with exploring these abandoned houses. We also started abusing the fact that Sweden has industrisemester”, basically a block where most people take vacation in July, leaving a lot of the industrial buildings empty and serving as perfect spots to camp under.

cykel8

We ended up becoming so accustomed to this that by the end of the trip we just slept in anything that had a roof. This particular place is Värsås IP, a small soccer field between Hjo and Skövde which served as a great location to camp. We woke up to the sound of a lawnmower, with the person cutting the grass just ignoring the fact that we existed which even further bolded our intent on continuing this practice.

cykel9

Cachingwise? We took tons of innovative caches this trip. It’s hard to remember them all but one in particular stood out, the cache named Fångarna på fortet”. An old military fort in Sweden built before WW2 that was about to get shut down had a multi-cache which required you to break into the fort and solve physical puzzles inside the fort in order to get the hint for the next part of the cache. It was truly a joy and the person who worked on this had taken extra care to make the puzzles a homage to the game show Fort Boyard”.

fongar1

fongar2

fongar3

Apart from that you had the usual micro’s (a small cache people hide in boring places), railroad caches, bridge caches, road sign caches etc. Just about the variety of caches you can find in a country that has a lot of snow for 1/3rd of the year. We even met a maintainer of a cache in Skövde who was about as weird you can expect from someone that had over 300 active caches.

The parts that really stick with you 10 years later are the small things that you didn’t realize back then, random strangers offering free drinks out of the trunk of a Volvo 740 or preparing to bike the last 60km just as the sun was setting. It was these moments that made the trip worth it, even if the cold rain and sleep deprivation often plagued us.

milk

sunset

Sadly this trip came to an abrupt ending. During the last day of biking I crashed into a road sign just by lack of attention. There were tons of reasons that attributed to this but it cut my trip short as my bike sadly broke from the experience. I was luckily not hurt (I had even lost my helmet at this point so in hindsight I’m glad nothing happened) and had to cut the trip short. The good part about this is that it left me hungry for more.

end

We did another major one the year after this and I kept doing trips like these for many years afterwards with Sara. I’ll talk more about the next one in Part 2.

April 20, 2019

Azimuth

Azimuth

Road

April 4, 2019

No Bad Days

It’s December in Stockholm 2015. The cold winter is just on the edge of rolling in and one of the weirdest years in my life has just ended. Not only have I started at a new job at the other end of the world but I’ve dealt with a lot of personal struggles along the route.

Seated in a well known pub just a few blocks from my apartment, discussing whatever two drunk men discuss a Tuesday evening I bring up the subject about the fact that we are drinking on a Tuesday. It’s an infected subject for both of us, my colleague and I both had alcohol-wise intense years due to external factors, shitty jobs and extensive traveling. In the haze I utter Being sober is easy though” and my colleague reacts with If it’s so easy why don’t you do it?”. A very good question indeed, why not? Why did I insist on drinking yet another Tuesday night at this bar with my colleague, knowing fully well that I would meet him at a party just a week later. Sure I’ll do it” I said, quickly followed up by I’d even do it for a year”. My friend looks at me like I’m crazy and says I’ll bet you a 10000 EUR that you can’t do it”. What my friend doesn’t know at this point is that I’ve already decided that this was going to happen; although moderately intoxicated I felt that this had to be done in order to change a dangerous habit.

Sure, I’ll bet you a 10000 EUR that I can be sober for a year.”

Alcohol is a great drug, in fact there’s enough written and said about booze that I don’t have to recite it here but one specific part that many people overlook is the really powerful stress relief alcohol provides. In a high stress environment like my new job, alcohol provided a way of turning off the job for a short while, clearing thoughts and creating an efficient relaxation to recharge after the long days. It’s fair to say that I was completely lost the first month of 2016, not by the loss of alcohol but by the loss of stress relief. In fact I’ve spent the last years solving stress with alcohol that when it came to it I couldn’t decouple work from my private life without it.

I moved to a new apartment in February and my SO went on a long work trip, leaving me alone in the new apartment with basically nothing to do. In a desperate attempt to waste time I took up gaming again, having fallen out with it earlier. Long nights of Witcher 3 usually ended in scouting the Internet for music to build support pillars for the deep winter depression that March in Sweden easily delivers. You know that state that happens sometimes where all the music you have is boring and all the new music you find is not what you want.

Then one night, working through a project in Go, shuffling through the crates of new music comes this long drawn out filter sweeping white noise through my Genelec 8040s followed up by an rather silly baseline hinting on something completely different to what the intro provided. I’ve just heard the intro of Todd Terje’s dance masterpiece Inspector Norse” and for about 40 seconds of FLAC goodness I’m suddenly alive again.

Everyone who’s heard the song know what part I’m talking about. Once that specific part cued in for me the first time I know that I won the bet, breaking through the 3 months of downward spiraling that all of this combined added. A composition of pure joy, filled with the most rememberable lick that an ARP2600 synth has ever produced provides me with this intense joy that I haven’t felt in so long that it’s unclear if I by mistake had MDMA for dinner.

I didn’t think about it at the time, looped the song a few times and went to bed, reading the Witcher” book and falling asleep. Waking up that morning was what provided the confirmation that this was a moment that changed it all, life suddenly felt bright again and the hardships of the cold Swedish winter was soon to be erased with another San Francisco trip. I’ve spent the day looking up this song and trying to figure out how on earth I could have missed this release in 2012, stumbling on the mockumentary made for the track called WHATEVEREST.

WHATEVEREST follows the life of a young male in Norway coming to terms with adult life, realizing that many dreams are secondary and that life didn’t turn out as planned. The character although portrayed in a depressing and weird light shows the joy in small things in life, enjoying what’s given and appreciating the day with the motto No Bad Days”

The video had an strong impact on me, resonating with a lot of what I’ve felt over the past years. Not only the constant chase of the next” thing, the failure of using and appreciating what I knew and had coupled with the lingering feeling of having missed the boat was put in words by the character in a relatable way. I’m not even sure if this was the intent of the video other than exploring the mockumentary space but parts of me believes that the person behind this video felt a lot of this himself (or met me in 2013). Although meant as a meme, No Bad Days” became my motto for the year. Caring to deeply about missing parties, work deadlines or potential jobs shouldn’t destroy my day, I had to appreciate what the day had in store.

July was the mid point of this bet. The first iteration of ANDERSTORPSFESTIVALEN was held before we even knew it was a festival. I hadn’t met many of these people in a while and traveling down to a party of this scope sober was a mental challenge indeed. It’s 1AM in the morning and it’s the one hour during the Swedish summer in which there’s some actual darkness, already in a terrific mood someone turns on Inspector Norse” and it’s if this wave of joy comes on me again. The exact same feelings I felt that empty day in March repeats and once again I felt free, free of the baggage I carried with me from the past few years of an abusive work situation and mountains of stress.

ATP1

Winning this bet became a breeze rather than a challenge and I developed new methods of coping with intense stress (something 2016 still had in store for me). I collected the 10000 EUR in cash later that year at the New Years Eve party after midnight and had the first beer in a year.

winning

Fast forward to June 2017, I’m sitting in a couch in San Francisco with one of my best friends that worked at Facebook at the time. We’ve just spent 2 weeks together sharing an apartment and we’re now seated in the sofa late at night with a laptop playing back music. I hadn’t heard Inspector Norse in a while so I put the track on. While the taste of beer and enjoyment of alcohol changed dramatically for me, the track that was playing through the laptop speaker hadn’t, still evoking the same emotions of pure joy.

I woke up the after about 1 hour of sleep en route for a flight to LA to lead the technical production for Twitch’s E3 coverage and adjacent streams. Even if the sleep deprivation felt absolutely awful I knew it didn’t matter, the moment had proved to me that the track is what did it. Inspector Norse” was the turning point of a life on the downward slope to a future filled of joy.

No Bad Days

March 30, 2019

Nowhere

Nowhere

March 20, 2019

Deep Down Inside (Pixelcube Part 4)

mounted

Few weeks has passed since my last entry, mostly because I’ve had a lot of actual” work on my plate which has had priority over the project. Humans tend to see progress as a exponential process or a skipping process. You will see the result of the creator and the result has to stand for itself, meaning that the time that was put into the project is transparent to the viewer of the project itself. This is probably the hardest part of building a project as for a good project to work, there is a lot of scaffolding that has to be done that progresses the project but not the result. Hence projects progress on a linear timescale while results progress on an exponential timescale. The project will show no result for a long amount of time until all the pieces align and the result evolves quickly. Same goes for this project, spending tons of time on designing the small parts does advance the state but I feel it’s just further away from when the prototype was mounted in my living room. It’s almost like the result has progressed backwards but knowing this and pushing through it is what will take me out of the local minima.

With that said there has still been a ton of progress happening in the few off hours that has surfaced over the weeks. It turns out that repeating a task multiple times just multiplies the odds of something going wrong in each step. As an example, the cheap 3D printer that I’m printing the parts on has broken down in every single imaginable way and I have had to spend time replacing components, driving my to the point of purchasing a new different 3D printer (Prusa i3). The first thing that broke down was the build plate. Adhesive tape just didn’t cut it for me so i decided on printing on glass with thermal pads which has been very successful for my projects so far, while the act of making prints stick are harder, the print quality is better. The second thing that broke down was the stepper motor, quickly followed by the hot-end fan. Both replaced with better components and modded onto the printer in place.

fan replacement

I guess you just can’t assume great consistent quality from a $159 (with shipping) printer from Monoprice. It’s clear that the printer hit that price point by cutting tons of corners and while I still recommend the printer to get into 3D printing, be aware that it will not last you printing over 3 kilos of PLA before something breaks.

The printed drill guides that i showed last post turned out to work very well for the purpose. They fit perfectly on top of the part and made drilling equal holes a breeze. As you can see here the first one fit the entire bar and mounted to a plank to ensure equal holes on both sides whereas the second fitted over one of the corners in order to allow drilling 3 perfect holes per outlet.

drillguide1

drillguide2

With all the parts printed (24+ barholders) and bolts glued into the holders i was able to mount together the physical parts without the actual LED bars within them to test out the rigidity of the solution so far.

cubresult

Turns out that it fits extremely snug, there was some extra drilling for some alignment purposes but the design 99% works for the use case. Huge relief right here since I’ve been very worried about if the actual thing will come together in the end. This leaves us with 2 remaining large tasks instead of 3, namely electronics and software. There has been a lot of changes in how I’m attacking the electronics but I will leave that for the next post as I believe that there’s more conclusion to be had by explaining it in more detail so that leaves us to the software part.

In an earlier post i discussed about what the optimal solution was for having a lot of CPU horsepower yet a dead simple SPI solution to feed bits to the APA102 LED strips. After playing around with USB->SPI bridges and a variety of different solutions, all working but not working perfectly, the most obvious solution surfaced by itself. Sometimes i forget that most computers today are outfitted with a standard high speed communication bus that can be switched between devices and easily extended, namely hardwired Ethernet. Even if the Raspberry Pi is too slow to drive pattern generation and FFT it can without a problem just consume network traffic and convert that into APA102 data at the desired framerate. So i spent time building a Raspberry Pi bridge that connects using ZeroConf/Avahi and consumes pixel traffic from the nocube host.

cubresult

Another problem that quickly surfaces was the need of having a way of testing out patterns and code without having the cube setup, leading me to build a simulator”. The simulator was surprisingly easy, since all the pixels” are mapped in a cartesian coordinate system between 0 and 1 (float64), rendering the pixels in Three.JS took an hour or two with the largest problem being figuring out how to efficiently stream the color updates per pixel. Here’s how the rendering currently looks in Chrome.

cubeonline

After this I started on the actual audio processing part of this project with Aubio. I rescurrected a seemingly abandoned project on Github and added the bindings to the C code i needed that didn’t exist in the current bindings (now available in my fork). With this in place i wrote a simple naive FFT pattern to test how it would look. In this case the pattern just renders the 1024 bins summed down to nearest pixel in the bin. It doesn’t really look great when rendered naively at 5 FPS in a web browser, but here it is regardless.

Apart from this there has been general work on the processing pipeline in the project, now allowing for multiple processing pipelines to run simultaneously in a threaded manner feeding into the result per frame. There is a new rendering loop that allows the internal generation to run at a fixed framerate which lets outputs lock onto that framerate instead of having the output dictate the framerate of the rendering. This makes sure that the patterns renders in full speed on the device I’m using regardless if i have an output connected or not, allowing me to benchmark the performance of the patterns.

Seeing the demo come together has me convinced that this will look really good once up and running as a complete project. There is still a lot of work to do but every day gets me one step closer.

March 11, 2019

07/27/1978

Although I’ve written about how i feel the Internet has changed over the past years, there are still these glimmering moments of brilliance that outshines a lot of the negative self-centeredness we have today. FatalFarm’s Lasagnacat” is one of them. A series of weird videos published in 2008, exploring the digital tropes of the time only to go into a long hibernation. 9 years later, LasagnaCat reappears on the internet with an array of new videos, all published in a Netflix-esque fashion by dumping them all online in an instant. Of all these videos, there is one that sticks out above the pack of videos. 07/27/1978 starts out in the classic LasagnaCat format, starting with a reenactment of a Garfield strip followed by a capture of the original strip for comparison. After the sketch has ended, LasagnaCat provides their own commentary on the strip and in this video the commentary is a 1 hour long monologue read back by John Blyth Barrymore. The 1 hour monologue, cut to show a one-take shot is backed by a fantastic production value with a nonsensical, yet intriguing script set to the Kundun” score by Philip Glass.

This is the perfect embodiment of internet mashup culture unlike what I’ve seen before. A deadpan commitment to the joke, creating the impression that the creators are serious about the intent of the video. In a world of short form video, episodic content striving to hit the magic barrier of 10 minutes to meet YouTube’s ad density requirement this video goes against all the established formats to provide one hour of monotone, yet unique and well produced content. It’s hard to actually recommend this video, as the enjoyment i got from the video didn’t come from the video itself. Rather the gratification this video delivers is the meta commentary on what i believe is the authors opinions on the state of YouTube in general.