Mountaineering engineering 2012

March 17th, 2012

My last mountaineering post was about foldable cross-country skis I use for back country snowboarding.

So far these skis have been the best approach to combining mountaineering and snowboarding in my opinion.
The only unsolved problem has been weight.

The hinges, cables and other metal construction parts significantly add up to the total weight.

Last year my father participated in the “Rajalta Rajalle Hiihto“, a 440km cross-country skiing event in Finland. In the scandinavian north he discovered a common ski binding used to do cross-contry hiking with long skis and normal winter boots – the Epok Tägsnasbindingen.

The Epok binding, light and simple in its construction but durable, seemed to be a perfect alternative for our custom made metal bindings.
Back home he handed me over a box of these Tägsnasbindingen.

A fews weeks ago we mounted them on some 1.55m cross country skis and gave them a test run in the french alps.
By using these bindings and shorter skis we could reduce the total weight by half!
Since the new skis are fairly light and short there is not an urgent need to cut them in halves and make them foldable.
Nevertheless we have a better concept for that too…

All in all the result is very pleasing. Since we are now using field proven standard components we are thinking about introducing our results to a broader audience. Leave a comment if you are interested!


Building a brain machine

January 30th, 2012


http://ladyada.net/ is a great site to start your electronical experiments.
In Summer 2010 she published a simple-to-solder “brain machine” that immediately got my attention. All parts can be ordered at https://www.adafruit.com/products/287.
Soldering and glueing the glasses together took us (me and my son) an hour. Then we had to find a test person.
Initially my son refused to volunteer. He was afraid the brain machine could do any serious damage to his young brain. But after a few minutes of discussion he was curious enough …
I think he remained the same after the experiment.


Programming Erlang

January 30th, 2011

Reading the book written by Joe Armstrong the Erlang creator himself, I came across the following exercise:

page 158, 8.11 Exercises

2. Write a ring benchmark. Create N processes in a ring. Send a message round the ring M times so that a total of N * M messages get sent. Time how long this takes for different values of N and M.
Write a similar program in some other programming language you are familiar with. Compare the results. Write a blog, and publish the results on the Internet!

So here is my Erlang code (actually my very first Erlang code):

-module(actor_ring).
-export([benchmark/3]).

benchmark(N, M, Msg) ->
  L = for(1, N-1, fun(_) -> create_actor(M,normal) end),
  S = create_actor(M,stats),
  A = [S|L],
  link_actors(S, A),
  io:format("Created and linked ~p actors.~n", [N]),
  S ! Msg.

link_actors(Head, [A,B|T]) ->
  B ! {set_receiver, A},
  link_actors(Head, [B|T]);
link_actors(Head, [A]) ->
  Head ! {set_receiver, A};
link_actors(_, []) ->
  void.

create_actor(M,Type) ->
  spawn(fun() -> actor_loop(M,Type) end).

actor_loop(M,Type) ->
  receive
    {set_receiver, Receiver} ->
      %io:format("Setting receiver ~p on ~p actor ~p (messages: ~p)~n",[Receiver,Type,self(),M]),
      forward_loop(M,M,Receiver,Type)
  end.

forward_loop(C,M,Receiver,Type) ->
  receive
    Msg ->
      %io:format("Actor ~p processing messages ~p...~n",[self(),C]),
      if
        Type =:= stats, C =:= M ->
          statistics(runtime),
          statistics(wall_clock),
          Receiver ! Msg,
          forward_loop(C-1,M,Receiver,Type);
        Type =:= stats, C =:= 0 ->
          {_, Time1} = statistics(runtime),
          {_, Time2} = statistics(wall_clock),
          U1 = Time1,
          U2 = Time2,
          io:format("Sending ~p messages around took ~p (~p) milliseconds.~n", [M, U1, U2]);
        C > 0 ->
          Receiver ! Msg,
          forward_loop(C-1,M,Receiver,Type)
      end
  end.

% for loop
for(Max, Max, F) -> [F(Max)];
for(I, Max, F)  -> [F(I)|for(I+1, Max, F)].

and here is the Groovy gpars code:

package groovyx.gpars.samples.actors

import groovyx.gpars.actor.DefaultActor
import groovyx.gpars.actor.Actor

final def int N = 1000 // number of actors
final def int M = 1000 // number of times a message should be sent around
final def String MSG = "You spin me round and round!"

class RingActor extends DefaultActor {

  Actor next;

  @Override
  public void act() {
    loop {
      react {
        next.send(it)
      }
    }
  }

}

class MainActor extends RingActor {

  private final int maxRounds
  private int count = 0
  private long startMillis;

  MainActor(Actor next, int maxRounds) {
    this.next = next
    this.maxRounds = maxRounds
  }

  @Override
  public void act() {
    loop {
      react {
        if (startMillis == 0) {
          startMillis = System.currentTimeMillis();
          next.send(it)
        } else {
          count++
          if (count == maxRounds) {
            println System.currentTimeMillis()-startMillis
            stop()
          } else {
            next.send(it)
          }
        }
      }
    }
  }

}

nextActor = new RingActor();
nextActor.start()
mainActor = new MainActor(nextActor, M);
currentActor = mainActor

for (int i = 1; i < N; i++) {
  currentActor = nextActor
  nextActor = new RingActor()
  nextActor.start()
  currentActor.next = nextActor
}

nextActor.next = mainActor

mainActor.start()
mainActor.send(MSG)
mainActor.join()

The comparison of both implementations shows roughly a 7fold performance difference on my MacBookPro. Guess which is faster.
On the other hand writing the Erlang code took me 7 times longer and still gives me headaches.


Wikihood – first we take Germany …

June 12th, 2010

… incl. Austria, Switzerland and Mallorca, then the UK, afterwards the world!

Wikihood request distribution (Europe)

Putting together some stats about Wikihood I rediscovered GMT (Generic Mapping Tools) I used to plot vector fields once upon a time I was doing my thesis.

Its a great tool set with everything you would ever wish to have to plot geographical data and more. Thanks guys!

Update (2011-01): for the latest international maps (October 2010) have a look at flickr.com/photos/wikihood.


Wikihood, Platz 2

March 30th, 2010

In June 2009 Wikihood went online (see previous post in this blog).
Since then we were able to built up a growing userbase and stabilize our position in the upper ranks of the lifestyle category (most visited) in the German Appstore.

Last Wednesday something changed.

Wikihood request count liftoff

Surprisingly we entered the top 100 of the most downloaded German apps at position 96. During the following day we went up to the unbelievable 13th place.

The night from Thursday to Friday our server was overwhelmed by the incoming requests, causing us big headaches.
Thankfully our provider, Hetzner Online AG, quickly found a solution for us within a few hours.

Wikihood 2nd

Since Saturday we are 2nd!


Building a dboom box

February 21st, 2010

There is a time in live where the quality of music is judged by its content of low frequencies.
Recently my son turned that age …

To enjoy such type of music you certainly need proper hifi equipement especially good low-fi speakers, which my son does not possess yet.
To use his fascination educationally I made the suggestion to actually build such speakers ourselves. To be honest, I always wanted to built such cool speakers myself, but never did so far …

After some (re)search of DIY speaker building magazines, we finally found what we were looking for.
A speaker kit called “inside out”, pretty neat and small, but with a bass speaker hidden inside …

We got the correctly sized wooden boards precut from our local building supplies store. The chassis and electronics we ordered online.
Holes for the chassis were certainly missing and we had to glue them together.

doombox_firststep

In the meantime we were preparing the electronics.

doombox_electronics

Here you can see the “internals”. Especially note the hidden subwoofer inside.

doombox_internals

The final result, after 1 1/2 days work:

doombox_finish

The acoustic results are quite pleasing. Good high and mid frequency behavior. Very clear and detailed.
And … most importantly … the bass is strong, but also well cultivated.


Mountaineering Engineering

January 9th, 2010

It’s been more than 20 years ago since my first ski tour. Shortly afterward I started snowboarding. And shortly after that I combined both.

How?

Back in the days ski touring was well established but snowboarding a new trend. So obviously for ski touring with a snowboard there was no buyable out-of-the-box solution around. Certainly I could have taken my snowboard on my back and climb up the mountain. But that doesn’t scale in deep snow or high mountains.
Recently snow shoes became very trendy. But they do not work in deep snow and are much more tiring than normal touring skis.

My and my fathers first solution was to use cross-country skis with climbing skins and then change boots on the top of the mountain.
That worked quite well and that way I did ascend – to the surprise of other ski tourers – some nice winter mountains mainly in the Austrian alps.

in the beginning

Changing boots is not a proper solution in cold, snowy conditions though. The next step in the evolution of my equipment was to engineer a binding I could use with my normal snowboard boots. We did that by reusing some very old-fashioned cable bindings from the 70s(?).

Ascend

Until recently I have been successfully using this mountaineering technique.
During all that time one remaining disadvantage was the bulkiness of the cross-country skis on my back when surfing down the mountains.
So last winter I decided to make the skis foldable with a hinge in the middle.

Foldable skis

It took us a second iteration to get the proper hinges (the first ones weren’t stable enough). Finally this winter the solution proved to be ready for use.

It still keeps me puzzled why the ski industry never came up with a practical concept for ski touring snowboarders in these two decades (recently split boards seemed to make significant progress). In my opinion a light, fold or pluggable ascend-only ski would be best.

Finally, many thanks to my father for his support.


Wikihood World Release

October 3rd, 2009

Yesterday evening, around 11pm the english version of Wikihood went live, accessible to anyone in the world.
3 month after the initial german release we are happy to release the full wealth of the Wikipedia.
The english data (3 times larger than the german data) demanded significant architectural changes and a server migration.
With the new data comes a bunch of client improvements, last but not least a map view with intuitive navigation and image display.

The first requested location was: 52.552773, 13.406937

Shortly after that people requested lookups from the USA and Australia.


Wikihood is online

June 23rd, 2009

The first step has been taken. The german version of Wikihood is out in the Appstore since two weeks.

Wikihood

Mainly done in part-time development, early on the train or late in the evenings/nights, often resulting in 16h+ workdays.
Though the result is pleasing. It’s really fun to explore your proximity and see it with new eyes.

The english version is on its way and so is an Android implementation.

wikihood locations wikihood locations

13 years ago

March 24th, 2009

… I read a political book about the situation in Tibet. That was the year my son was born.
I felt very moved by the suffering the Tibetan people had to go through as a result of the Chinese suppression.
I felt very miserable reading testimonials about the Genocide with all it’s facets: torture to death, forced abortion of unborn life…
As a result I joined a local human rights movement group and actively contributed propagating the truth about the Tibetan misery.
We had big hopes back then, that by 2000 the situation would have improved and a solution would have been in sight.

Nothing the like happened. We now write the year 2009, 50 years after the abolition of the freedom demonstrations on March, 10.
China is already in phase of the end game, convinced that they will finally succeed with it’s strategy of sheer power and oppression.
It’s as simple as that: there is no need for that! China and the world would profit most from a peaceful and mutual solution.
There are plenty of good articles about that on the web. Make up your mind.