/ blog projects miniprojects tagcloud   about contact github flickr where am I?

klymit, pads are inexpensive, super light and surprisingly comfy


Wed Nov 09 2016 00:47:38 GMT+0100 (CET), 8 months ago

you usually make an open fire, but sometimes you need a stove? you don't want to carry something heavy or something that uses weird fuel that you can't get everywhere?

alcohol stoves are great in general, and this one in particular: vargo decagon

It was a bit slow to prime (should get to a certain temperature before it starts shooting flames from the sides) but I deal with this by just covering the whole thing with alcohol setting it on fire, primes it immediately :D


(if you get a vargo triad, you should have an alcohol bottle with about 1mm nozle, it has just a tiny hole to fill it through)

you can also always make a DIY super cat or something on the cheap, and you should use a windscreen, these can be sensitive to wind. yes putting random stuff around is fine-ish, but those aluminum foldable ones are reliable, cheap and light.

Wed Nov 09 2016 00:05:54 GMT+0100 (CET), 8 months ago

10$ power bank / battery charger combo that you can use for day to day stuff but also outdoors.


  • usb in - usb out (was that so hard?)
  • It supports low power solar charging
  • light (30g)
  • they can be chained in series and will charge simultaneously if they get enough power, or one by one if they don't
  • each charger is obviously self contained so no single point of failure
  • on the negative side, it supports 3v rechargeable batteries only

bigger review and official site

Mon Aug 08 2016 23:19:38 GMT+0200 (CEST), 11 months ago

Had to implement some small but serious infrastructure.

Needed some usual things for internet operations these days like system monitoring, smart logging, graphing and alerting, high availiability, cloud, ids/ips, and mucho security.

Did this many times for random projects but this one was more serious and so I decided to rethink everything with focus on the security infrastructure. Manuals were read and quite a few quick projects were made and there is more to come so this post will be updated with time. I'll quickly go through the novel things I implemented and novel thoughs I have on the subject. This post will be a mess and there is a lot to write,

Quick logistics for nodejs apps

this is boring and already exists but I like the way I do things.

System monitoring?

munin is a collection of perl? scripts from '98 ran by crontab. UGH. nagios is.. yeah, same thing.

went with logstash -> elasticsearch -> kibana for data collection/graphing and riemann for alerting. Didn't figure out active system checks yet (a job for nagios usually. stuff like pinging, checking if websites render correctly, potentially crawling them and such)

all kinds of apps write to logstash. my node apps, log data collectors (lumberjack), local system checks IDS, and such, it works well. Data from everywhere is aggregated and graphed together. I've written something simmilar to this stack as one off apps for debugging complex architecture a bunch of times, was very happy to find out that someone actually already works on such a thing pretty seriously.

didn't like collectd as it seemed like something that hangs out in a munin/nagios oldies crowd. so I wrote:

  • a simple probe that collects data from machines locally and sends it to a central server (in my case logstash) via udp json.

it supports plugins, they are super easy to write. one of the plugins is a meta plugin that runs munin scripts because I'd rather kill myself then write all these data collectors myself.

Geographical internet stuff

csi-internet is there for you if you want to draw some computer stuff on a map. Also good to impress your girlfriend if she got used to cmatrix. As a test of a graphing engine it can ping around, do traceroutes and draw heatmaps. Messy atm as looking at pictures was more fun then looking at good code. work in progress. works on top of d3 and datamaps.


Writing tons of iptables rules is for robots and not humans and so I'd fuck it up eventually. pyromaniac is a thing that renders JSON into iptables commands.

hosts =
        ip: ''
                port: 443

        ip: ''
                port: 22,
                from: 'vpn'
                port: 666,
                from: 'all'

        ip: ''
                port: 22
                from: 'all'

        ip: ""

exports.settings =
        forward: [
            { from: 'vpn', to: 'all', comment: 'vpn to everyone TCP' }
            { from: 'vpn', to: 'all', proto: 'udp', comment: 'vpn to everyone UDP' }

    hosts: hosts

this program is highly specific to my scenario (machines behind a NAT hypervisor with strict control of each connection) I'm showing an aproach here more then sharing my code as something that will work for you.


I really like this part, but will write it up later when I have more to show

Mon Mar 16 2015 23:28:16 GMT+0100 (CET), 27 months ago

Initially I will use two different sensors for obstacle avoidance. lidar for closer range 2D image of space (obscale avoidance, scanning ground before landing, maybe SLAM)

and laser rangefinder for long range 1D distance sensing (looking for high buildings, maintaining altitude precisely, maybe high speed obstacle avoidance)

I went with cheapo robopeak hobby lidar, which seems to work well, here is a git repo for the library (node and beaglebone) (I also considered a lightweight hokuyo lidar) and for laser range finder I'll go with something like SF02 from paralax

these might be used in combination with some simple IR or just cameras (need more CPU but could double as optical flow sensors) used to locate becaons for landing or grabbing things

Ideally, both sensors should have an unobstructed front view on pitch dimension, with aditional unobstructed jaw dimension for LIDAR. Both sensors need to be able to independantly rotate on pitch axis for compensation of the angle of the drone when flying, and for scanning up and down (going in through windows, looking down when landing, etc) maybe rangefinder should also rotate on jaw axis on some fast servos for looking around independant of the drone orientation. not sure yet.


IR and ultrasound were also options, they are cheap but tricky and unreliable, (ultrasound behaves extra badly due to propeller noise on drones) These things can be compensated for, but laser rangefinding will always afaik give more accuracy and reliability at a price.

Thu Oct 09 2014 14:31:52 GMT+0200 (CEST), 32 months ago

I like creating and building things and I own a grappling hook. This site will be an partial dump of projects I work on and things I've written down.

I'm into evolvable programs, designs inspired by nature, philosophy, computer security - malware specifically, robots and such. I've worked as a software engineer and I've worked for artists on tech art pieces as that's more fun. These days I tend to travel so expect stories on hitchiking, stealth camping, urban exploration and nature.

Check out the tagcloud to find if there is something here that you care about.

Here is my contact info and PGP key

Mon Oct 07 2013 19:17:35 GMT+0200 (CEST), 44 months ago

Genetic programming language with a strong type system

First prototype in python, work in progress, I should think of more interesting project names.


Sun Sep 22 2013 06:47:45 GMT+0200 (CEST), 45 months ago

an algoritmic music generator that interprets cellular automata as notes, its an alsa MIDI device.

Cellular automata rules are described by a simple RAM machine language and are evolved. There are some interesting things about the language itself, I'll post the details later.

Fitness function is a human clicking on "the nice ones".

Sun Sep 22 2013 06:47:37 GMT+0200 (CEST), 45 months ago

Ended up sneaking past a few guards, one of them taking a shower. The building below us has 20-30 stories, I'm guessing the crane was 80-100m high? A long climb. Where do crane workers go to toilet? Also. my god! I want to do this again.

"Ivan I don't know what kind of thing can satisfy us.

After the crane.

Crane was awesome, it was dinosaur and monster.

After the crane, I feel a little bit empty, that's the thing."

- Kanghee Rhee

more photos

Sat Sep 21 2013 02:21:08 GMT+0200 (CEST), 45 months ago


I'm surprised I couldn't find this..

async object or json pattern matching/validation used for validating function/process arguments, api call permissions, messages, etc. supports serialization/deserialization of patterns themselves, which I used to implement a generic db query language on top of this. for now, tests are documentation

extras repository contains cuter things like

  • translation of subset of validator patterns to mongodb queries
  • validated backbone models (model that throws if certain attributes aren't set or if doesn't find appropriate superclass (for mixins))
  • validated backbone model attributes (special accessors that validate the data before its written to a model)
Fri Sep 13 2013 10:35:14 GMT+0200 (CEST), 45 months ago

a bunch of selfish prisoners having sex and mutating. WHOA. a very basic evolutionary algorithm, a last night's play.

Prisoner's dilemma is a scenario in a game theory (check it out if you don't know about it) its interesting to me in part because it explains human moral intuitions through a selfish evolutionary perspective, in other words, why people are generally nice to each other.

In the iterated prisoners dilemma the game is played repeatedly thus each agent has an opportunity to learn about other agents behaviours and potentially punish noncooperation. Cooperation may then arise as an equilibrium outcome.


I didn't get tit for tat which I originaly expected, nor did I manage to get any other cooperative equilibrium. cooperation does evolve, but it doesn't last, strange, I expected that cooperative species will raise and stay dominant as I enlarge the number of interactions before a step in the evolution. (its rational to be nice if you need to stick around) need to investigate and think about this some more.

I'll post more info and code later or never. screenshot and someone with a different approach and a spacial dimension.

Tue Sep 10 2013 07:07:06 GMT+0200 (CEST), 45 months ago

After looking at the rorschach test, I wanted more. supirisingly, I couldn't find any rorschach generators online, so, python, tkinter and randomwalk with random size blobs and simmetrical reflection, I thought that some tweaking or more complicated algorithm would be needed but this works great.

click on a canvas for (re)generation.

examples and source.

Tue Sep 10 2013 07:07:06 GMT+0200 (CEST), 45 months ago

generic communication framework


uses a few of my libs like nodejs-graph, nodejs-subscriptionman, nodejs-validator2 and others

  • consists on bunch of interconnected nodes that can subscribe and answer to/filter/translate JSON mesages, kinda like actors but not really.
  • has network transparency and supports arbitrary transport protocols (http, websockets, tcp, tls, REST have been implemented for now)

I've implemented some protocols above this, like

  • live object syncing with a permissions model
  • database agnostic collections and object persistence
  • ongoing auto updating database queries

I use it for all kinds of things, like

  • web applications (clients and servers are running a simmetric code),
  • different distributed complex infrastructures
  • random things, my laptop is using it to watch and react to system wide events, like lid being closed or connection to the internet being established, my cellphone is running it in order to connect and sync with my computers and it is what I use to control lights in my appartment or display data from remote servers on my desktop

and I've built a few libs on top of this

Tue Sep 10 2013 07:07:06 GMT+0200 (CEST), 45 months ago

We are talking to a random french couple, answering common questions and ending up explaining that we've met by going into the subway tunnels through an airduct. They mention seeing some photos of us climbing a building in hongdae park and I wonder if that was the night when the crazy guy in the underwear climbed it with us. At some point I say something like

remember that girl from yesterday that wanted us to smuggle diamonds from africa? I think she might be a stripper.

To which a guy asks us if those are real events or are we talking about a spy movie, and I realize how weird our conversation sounds from another persons perspective, and how most of the things that have been happening would sound, and I conclude that we did good.

I bought a climbing equipment and all places are reacheable now. I'm living with Kanghee, and a great group of friends are around. We are planning to buy a ~15 meter sailboat and sail through philipines to papua new guinea next year. we'll see how that goes. we'll have a lot to learn before doing this.

Sun Sep 01 2013 03:24:48 GMT+0200 (CEST), 45 months ago

I wrote down few phrases in japanese and went hitchiking towards the I read abandoned jungle theme park about online.

It was super easy. a lot of japanese react as if someone is doing something insane and exciting and are happy about it. Most of them are also too shy to stop and they would even cover their smiling faces if I maintained eye contact for too long <3

Izu peninsula has two sides, people call them a female and male side, one is full of fine sand beaches and the other is made of rough steep vulcanic rocks.. I'm guessing that strong waves tend to hit it from the female side.

My favorite ride was this businessman, it seemed that what was happening was a way bigger adventure for him then for me. He would start laughing histerically out of excitement whenever I'd speak. So naturally, I wanted to speak as much as possible but that was hard as he didn't understand any english.

Arrived to Irozaki port-o fairly quickly and started a hike up the hill towards where the jungle theme park is supposed to be.

Found bunch of abandoned buildings and infrastructure at the top but couldn't find the main dome, ended up exploring the peninsula.

Climbed an antenna tower to look around (kinda. half way. it was scarry. note to self - learn how to make a harness out of climbing rope, I could have secured myself). found the dome - its not a dome. didn't look at the online photos good enough, and found a coast that looked so amazing that it stole my attention. I wanted to quickly check it out before heading out to the park but the place was great and I ended up spending the night.

Everything seemed totally devoid of life but it turns out, the place becomes a spiderland during the night. I don't know what they eat, each other? I tucked my shirt in my pants.

I'm super happy with the funny-shoes. Japanese people say booooooooooo ninja shoesb and they are right! they are quiet and great for climbing and I have a lot of control on the rough terrain. a downside is that you freak people (including yourself) out, and need to talk about them a lot. its not worth it in the city.

It was a great night. I realized that I was alone for the first time in three months. There was a huge lighthouse spotlight sweeping the panorama and big ships passing by on their way towards port of Tokyo. The next morning I discovered that all the bread I bought is filled with chocolate and that all the cans I have are the same discusting fish. Had a breakfast that stimulated my taste buds and left to quickly explore the rest of the theme park.

Turns out, a few years have passed and big parts of the park are overgrown now. It was quite late and quite hot and quite overgrown and there was noone around to encourage me so I decided to keep going towards Kyoto and give up on getting inside.

on the way there I couldn't pass on the opportunity to sneak into some classuy star hotel onsen for the third time.

ok, enough writing!

I'll finish this later or never. pictures are on Flickr

Sun Jun 09 2013 03:20:15 GMT+0200 (CEST), 48 months ago

Japan has a notoriously high suicide rate, which doesn't seem entirely justified considering it's 10th in the world, with south korea for example being 50% worse.

This forest was always shifty, but its popularity grew due to a contraversial book, The Complete Manual of Suicide where it is described as the perfect place to die. Over 100 bodies per year are discovered there, a lot more probably don't ever get found.

I don't want to repeat things too much, vice has a good 20 minute documentary on it.

To make things comically creepy, the forest lies on some large magnetic rocks, which make compasses useless. my gps seems to rely on a digital compass, so I quickly rehersed the night before on how to orientate myself by the sun.

The place is fairly touristic, it has a few hiking trails, and it lies just below mount Fuji. When we got there they told us that a black bear was sighted today exactly where we were going. We ended up yelling and clapping our hands a lot to scare it away. We walked a lot, not knowing exactly where we should go, and got off the trail a lot, relying on a bad tourist map.

A small culture grew around suicides in the forest. for example, people that think that they might change their minds, walk in leaving a trail of (usually nylon) string, which makes parts of the forest look really strange, with nylon strings going everywhere. The whole place is full of strange objects that seem to have been used in ritual like situations. Compass and gps ended up working well for the most part, with occasional crazyness.

Sat Jun 01 2013 10:01:57 GMT+0200 (CEST), 48 months ago

I've been hoping to write this for a while, its not a very exciting project so I've been working on this when I'm tired.

its a bit unusual, nodejs-blosxom, ~400 lines of coffescript. this is very much a work in progress, I'd advise you to use it as inspiration more then as a code you run. templates related to my own homepage are included in the repo. might move them laters.


  • each post is a markdown file (maybe I should check out ORG mode files?)
  • posts are in a git repo, so they can be written offline and synced with the web later
  • I wanted something like google plus circles, with restricted tags for particular people
  • implicit tagging by placement .md posts in folders
  • explicit tagging/metadata for a particular post by adding a JSON line as a first line in a file
  • tag filtering
  • no javascript on the clientside
  • rss for arbitrary tag combination

immediate todo

  • full set operations on tags
  • think about collapsing large posts when they are initially displayed..
  • also, don't render ALL matching posts, do the next/prev button thing.
  • saving of blog post metadata JSON back to files
  • color private tags differently
  • wiki (some way to link to other posts or tags (just extend the markdown?))

things to figure out

  • something super light for image galleries, I want to rsync images.. might implement this myself. flickr doesn't suck anymore, might hook into flickr?
  • I want to extend the markdown renderer in order to be able to include things like youtube videos or my own images/galleries
  • social network publishing - ifttt.com - I'll just use the rss.

at some point

  • implement tag equalities and implications, for example music is always audio but audio is not always music, audio is always sound though.
  • posts that are related to geographical location + geo search/map display.. I'd use this to mark interesting places, track trip progress and such
Fri Feb 22 2013 05:48:14 GMT+0100 (CET), 52 months ago