Travelling Clothes (this one is for Bermy)

Following discussion at work about how we would cope with so few clothes, I thought I had better report back. Well, it is working out well as planned. It is a drag to hand wash every night, especially when we are tired after a big ride it is the last thing you feel like. However the clothes are drying overnight as our accommodation is warm. I would recommend the Katmandu quick dry underwear. Our shorts and riding shirts are also quick dry and dry enough to put on in the morning. Socks not so and also not the cotton T-shirts. We have had to resort to hanging these off the sleeping bag at the back of our bikes on one or two days. We basically wear the same clothes every day for riding and then have a change of clothes for the evening which we wash every few days as necessary. I would say we could get by with even fewer clothes than we have as I have items I have not yet worn.

Cycling from 11-15 May

11 May Munich to Augsberg

Our first day of riding. Well we didn’t expect to be in a heat wave. It was well in the mid thirties and felt hotter on a tar road. The locals assured us it was unseasonal and would be cooler tomorrow. The distance was meant to be 66km, which is manageable. We ended up doing at least 100km (odometer is faulty and cuts out half the time).

The reasons for this – 1) leaving the city in the wrong direction. Kris navigates a lot from the sun and hasn’t adjusted to the Northern hemisphere yet (although this gave us some more views of Munchin). 2) the marvelous cycling paths are actually a little longer than the motorway. 3) In a number of places we took unplanned detours by following signposted cycling paths .  For instance we visited Luttenwang, way off track.

Highlights:

  • Cycling through the rural towns – each with a church and a maypole.
  • Talking with an older German lady on a bike who had a little dog (black maltese) on the back in a homemade basket. She had taken the dog swimming as he was feeling the heat.
  •  Seeing a little old German housewife sweeping the public pavement in front of her house. And a little while later another vigorously cleaning out the gutters in front of hers. This explains something about my mother in law.
  • Pouring water  over ourselves in Luttenwang when the lady there allowed us to use her tap. Feeling body temp drop a few degrees.
  • Christ statue on a wooden cross between two trees on side of road
  • getting directions from the Germans. Kris is doing very well and understands what they say mostly while I catch the odd word. They are very helpful and will repeat the directions several times to make sure you understand. One or two wanted to chat.
  • Going to a bike shop to buy electrolyte replacement powder and bike bell and having the salesman tell me I don’t need to wear my high viz gear in Germany.
  • Buying my new camera in Munich. (photos to come)

Observations:

  • All new houses being built in Bavarian style with high pitched roofs.
  • Many homes with solar panels, usually more than one.

Low points:

  • Kris breaking a spoke and replacing it in the heat.
  • My gears slipping again and Kris having to adjust. So we got pretty dirty again. Not able to go into first gear without chain slipping. Despite expensive bike shop service!!!
  • Worrying that Kris had heatstroke  on last few km into Augsberg. It was still stifling hot even though after 6pm

12 May Augsberg to Landsberg

Did around 70 km today. 20km were riding around Augsberg seeing the sights and then trying to find the right route out. Thankfully a lot cooler.

Highpoints

  • Old city in Augsberg with narrow cobbled streets with canals running along one side of the street.
  • Augsberg city hall
  • Cycling along the river going out of Augsberg
  • Hearing the  churchbells ringing on the hour in the towns as we pass through.
  • Arriving at our accommodation in Landsberg. Our best yet. It is in the middle of the city right behind a the cathedral, on a cobbled street. And we have our first on-suite bathroom.

Lowpoints

  • riding in the rain – my first experience of this. However not as bad as I thought it would be as it is not that cold and there is no wind. However the bikes were filthy when we arrived with mud etc. Luckily I had our clothes in plastic bags so they stayed dry.
  • coming off my bike – on a railway line – luckily this was beside the river and away from traffic. Also I fell well. Only damage is skin off my elbow, grazed knee, cut on my lip and chin. So I am OK.

13 May – Landsberg to Shongrau to Peiting

An easier day today and a lot cooler. Overcast. Altogether did 69km. 10 km sightseeing around Landsberg and around 12 km going back to Shongrau for sightseeing.

Highlights:

  • Landsberg cathedral inside. Amazing alter.
  • Leck river beside the town with fairy tale like towers beside it. Riding alongside the river.
  • Some houses in Landsberg built over little canals diverted from the river.
  • Tarred cycle path all the way through lots of rural land – jersey cows.
  • Riding around city wall in Shongrau.
  • Accommodation with a bath – great for tired muscles.
  • Dinner at Gasthause. They brew the beer themselves. Had asparagus – the same huge ones we have seen sold on side of road. Five men walking in to eat dressed in lederhosen, braces, hats etc – the full Monty.

Observations:

Our first day of not pre-booking accommodation. When we arrived in Shongrau it was pretty dead being a Sunday and everything closed. A passerby recommended a place when he saw us standing outside the closed tourist info office.

So we we found it and they recommended we come through to Peiting only 2km away and gave us some names. The place we found is great with big room and bathroom. Not many other people staying here but crowds of locals eating Sunday lunch in downstairs restaurant.

14 May – Peiting to Fussen Weisensee

Did around 80km. Took a slightly longer route as more scenic. Our earliest start yet at 7.30am. Chillly strart –  cold  hands. A clear day with the air still cool (probably as we are near the mountains) Found accommodation around 3pm.

Highlights:

  • Hearing the church bells ringing throughout the night and early morning – every hour (still not sleeping through)
  • Seeing the Alps come closer and closer as we rode.
  • Cows with bells and the smell of fresh cut grass.
  • Long straight bike paths through meadows interspersed with little towns
  • Seeing small children in one town being fetched by mothers on bikes
  • Getting directions from a little old man who would have been a gnome if he were shorter – white beard, curly mustache, traditional hat and jacket.
  • Riding over the Echelsbacher Brucke- built in 1928 over a huge gorge.
  • Riding through forest next to lake on way to Fussen
  • Approaching Fussen over a bike path on an open field well away from the road. Lots of other people out on bikes too.
  • riding around Fussen old city – the city wall was built in 17th century and an amazing baroque church.
  • Riding along the lake at the Weisensee
  • Drinking beer in the sun in front of a cafe on the lake after finding our accommodation. The locals sit there for hours nursing a beer.
  • Buying nice bread, cheese, sausages, tomato and eating them as a picnic supper on the lake shore, with Alps in the background.

Observations:

– Again accommodation not pre-booked. No problem getting a place. We got list from the tourist info place at Fussen and chose to come a bit out of the city. We are in an old house that looks a bit run down on the outside with unique decor – rather ghoulish dolls and religious statues in the hall. Shared bathroom and toilet. We are paying basically the same as the youth hostel but have big room with washbasin. Everything is spotlessly clean. The owner is friendly – this house was her family home. Her career was as a ski instructor.

Low points:

  • Third day without access to the internet – Kris getting withdrawal symptoms.
  • Going around with a huge scab on my top lip from bike fall – luckily nothing seems to be infected.

15 May – Fussen Weisensee to Sommerberg

About 80km. Early start at around 7.45am, found accommodation around 3pm. More hilly than previous rides. Beautiful weather in morning – sunny with cool air, beginning to rain just before found accommodation.

Highpoints:

  • Riding through Heidi type scenery with mountains, meadows, alpine type villas, cows with cowbells
  • Riding past some of the ski fields and looking down on the landscape
  • Seeing a deer run across a meadow
  • Struggling to find the way on the cycle path at a highway intersection before Immenstadt. A passing cyclist stopped to help. He said it is too difficult to explain – just follow me.- he then took us right through the city through convoluted bike paths (including through a quarry!) and showed us the right path on the other side. We would have struggled for ages to  find this way otherwise.
  • Riding alongside the Alpsee (huge lake with mountains in the background and sail surfers on the lake)
  • Our accommodation – Gasthaus Rudolph – chosen because it was starting to rain and i was feeling too tired to ride further. Very reasonable rate and we have basically a whole flat (as it is not being used). It consists of a hall, living room, large bedroom, kitchen and bathroom. It is in an old family home just about in the middle of town. The decor and furnishings are beautiful. Modern bathroom, wooden floors, etc. The lady says they have been upgrading the place for generations. She is very house proud. Some parts of it (a door) are 500 years old. At some point it was destroyed by fire and rebuilt using as many of the original structural elements as possible. Kris has enjoyed watching English CNN on the television.

Lowpoints:

  • still no internet, evidently as we are in the mountains. Hope for some tomorrow.

Munchen

I thought I had died and gone to heaven. I love Munchen.
Everyone cycles here. Not only greenies and fitness freeks. First thing in the morning we walked around the city and marvelled at the hundreds of people going to work on their bikes. Men in suits and women in skirts and office pumps. No one breaking a sweat. A highlight was spotting a women with a tiny dog in her bike basket. All the bikes are of a very sensible sort and every one has some sort of carrier at front or back for bags etc
We spent a wonderful two hours walking around the centre in awe at the fabulous opulant architecture (Odensplatz and Ludwigstrasse). Also each bought a spare pair of shoes at a reasonable price (as only brought one each).
Highlights – the smell and taste of a punnet of perfect strawberries bought from a market stall. Also huge asparagus at the stall. A reminder that we really are back in spring.
Seeing the most beautiful bath ever – the holzbadewanne – in a posh shop window. Stand alone, made entirely of different woods, beautifully shaped – at only E33,800 all that was stopping us was it not fitting on the bikes.

We couldn’t wait to get onto our bikes after seeing the scene, so went for a ride in the afternoon. What an experience. I have never felt so safe on a bike in a city, even riding on the wrong side of the road (with arrows on my cycling gloves to remind me where I should be). The bike paths are totally separated from the traffic, mostly alongside pedestrians. When you do cross traffic it is at traffic lights or pedestrian crossings. There are so many cyclists that you know the cars will see you and give way (in contrast to NZ). Most cyclists here have no helmets or high viz clothes (and very few wear lycra). We saw young and old. Mothers taking their toddlers to kindergarden in little wagons behind their bikes (not just one a few), mother and daughter on bikes coming home from school after 3.

We cycled out to the Nymphenburg Palace that has an amazing garden with water features and statues, just like in the movies. Then we followed cycle paths across the city, past the Olympic stadium to the Englischer Garden which is this 1000 acre huge park in the middle of the city. On the way we stopped at a beer garden next to some Schrebergarten – small garden plots in the city that people can rent and cultivate (see http://www.spiegel.de/international/0,1518,410799,00.html). I cant imagine New Zealander’s cultivating a garden that is not at their home. They were mostly growing vegetables, but also some flowers.

When we reached the Englscher Garden we stopped at anther beer garden which encouraged people walking their dogs. This was at about 5.30pm, it was still very hot and almost everyone in the beer garden had  a dog! There was a huge dog drinking bowl at the entrance. Some skirmishes broke out but overall the dogs were well behaved. We were served by a man in Lederhosen!

We rode around for another few hours. There were lots of people coming down to the garden after work, many on bikes. Lots of families and groups of friends picnicing next to the river. Really great atmosphere.

Cycle roads in Germany

The road system for bicycles are very good in Germany. Kerbs are normally broadened in towns, with a separation for bicycles and pedestrians. Out of town cycle roads run in parallel to main roads and are wide enough for two or three cyclists to ride next to each other. Cycle roads require some intuition as they are not always very well signposted.

The (rural) cycle roads may be next to the highway for long stretches. The cycle roads often tunnel under highways and intersections. When there are small towns nearby the main road, cycle roads normally separate from the main road and go through the small towns. I suspect this is partly done to make the cycle infrastructure accessible to the small towns.

Cycle roads are scenic as they cut trough meadows, meander through small towns and pass under and around trees. It makes the rides more interesting, but add to travelling distances.

We are off on our geriatric OE

The six hour stop-over in LA confirmed all my prejudices about America. Luckily we could kill a lot of time in the customs queues (they forced us to get a visa). After about an hour in the queue an official called all virgins to join the American visa entry queue. When there where no more virgin airline travelers me and Jenny were allowed to join the virgin queue.

Seeing that we entered America, we wandered LA streets for hours and saw parking garages, hotels, HUGE SUV’s (no cars) and a few prozzies. The US customs decided to open and inspect our bike boxes. I deduce they fought their way through my multi-layered packing and gluing systems on the first bike and decided just to cut the second box open.

On arrival to Munich we got our baggage and went through customs in 15 minutes flat. Took two hours to re-assemble the bikes.

I now know why some youth hostels do not allow older people. I am an Occupational Health and Safety risk when i get in and out of the top bunk (especially with my wonky shoulder).
Munich is wonderful. Bicycle heaven. No more on that as I feel a rant coming.
Met a black South African. We hugged and cried a bit.

Jenny has taken charge of the packing as my packing system is too sophisticated. I am in charge of navigation otherwise we will get separated.

The nature of paradoxes (how to spot a paradox)

logic paradoxes

A paradox is a proposition that seems contradictory.  The following statement is a short version of the lier’s paradox:
This statement is false

If the statement is the truth (True), then the sentence will have us accept that the statement is False. If the sentence is False, it follows that the statement is True.  And so we go round and round in a logic circle.

Paradoxes come in many forms. Bertrand Russel created a paradox in set theory (Mathematics). The paradox utilizes the concept of “sets that do not contain themselves”. I will try to explain what such sets look like:

  • A set of books in a household does not contain itself, as a set of books is not a book. A set (or collection) of stamps does not contain itself as the stamp collection is not a stamp in itself.
  • The set of all “ideas” could be said to contain itself, as “a collection of all ideas” could be thought to be an idea in itself.

So “sets not containing themselves” are normal everyday sets.  The paradox is constructed by defining a set, namely the set of all “sets not containing themselves”.

Does the set of all “sets not containing themselves” contain itself? Lets examine that:

  • If the set of all “sets not containing themselves” is in its own set, then it “contains itself”, and so by the definition it cannot be in the set, which is a contradiction.
  • If the set of all “sets not containing themselves” is NOT in its own set, then it “does not contain itself”, and then by definition it has to be in the set, which is a contradiction.

Hence the paradox.

So how are paradoxes constructed?

Truths are either derived, or assumed (a truth is either an axiom, or it is proved).   If you assume and prove something at the same time, you invite the possibility of inconsistency.  Paradoxes contain (a set of) rules or statements that refer to themselves , or stated differently, paradoxes are self-referential. The Liers’ paradox and also the (set/mathematical) definition uses itself whilst defining it’s own characteristic. The above paradoxes use negation to discredit the self-reference (I am not myself).

The moral of the story is to be careful with recursive logic (For example, do not get a person to vouch for him/herself).

On an aside, Gödel’s incompleteness theorem is proven using similar self-reference as the Lier’s paradox!

Laughter – stimulation of your unused nerves

Most humour occurs when (two) un-expected contexts are brought together. A context or story is told in the joke and a second context is introduced in the punch-line.
Then we laugh.

So what happens in our brains when we laugh? Perhaps the synapses firing in different areas of the brain are cross-linking in regions of the brain that are not normally active. Or stated differently, synapses that are seldom active are used.
Then we laugh.

We also laugh when we are tickled. Could tickling involve the stimulation of nerve-ends that seldom get sensory input?

The secret Van der merwe bread recipe

Here is the 1kg bread that I often make.
It is rich and moist, and is made with no sugar or yeast preservatives like you would expect of a proper bread.
I estimated amounts, as i normally measure ingredients by eye.
First soak:

  • 1 cup kibbled soy or soy grits
  • 1/4 cup oil (olive or canola)
  • 1 table spoon crushed garlic (optional)
  • 1/4 cup poppy seeds (or sonneblom seed)
  • 1/4 cup sesame seeds
  • 1 spoon salt
  • 2 cups water

Soak above ingredients in your bread mixer for about 2 hours or more.

Then add:

  • 3.5 cups (white) wheat flour
  • three tea spoons crushed fresh yeast, depending on whether you want the bread fluffy or solid (If the fresh yeast is very moist, kneed it into a bit of the flour)

Put on cycle for normal or french bread. You want the bread dough moist but not wet, otherwise the bread will rise too fast and collapse. For the first number of times you do this recipe, check on your bread maker after it has been mixing for 10 minutes or so – if it is too wet (sticky to a spoon or hand), add a bit of flour.

Ajax python “hello server” example

Ajax provides direct messaging between a browser page and the server from where the browser page originated. For example, only a part of a web page may be loaded using Ajax (like google maps).

There are examples of Ajax on the web, but i have not found one of them that used mod_python as a back-end. I thought I would provide a simple “Hello world” example as reference:

I assume you have apache2 and mod_python working. I have Python Version 2.5.2 and Apache2 version 2.2.8 on Ubuntu.

File “test_ajax_helloserver.html” : contains the ajax javascript code that your browser will execute.
File “hello_server.py” : contains the ajax response that mod_python will execute on the server

Copy and paste the text below into your favourite text editor.
Save the two files in the same directory/folder under your Apache mount point.
Load “test_ajax_helloserver.html” through your Apache webserver, and test it by clicking the button.

test_ajax_helloserver.html

 
<html><head><title>AJAX Hello Server mod_python (hello_server.py) Test</title>
<script type="text/javascript">
var req;
function sendServerRequest(){
   req = newXMLHttpRequest(); // register the callback function
   req.onreadystatechange = updateMsgOnBrowser
   //specify url correctly in open(requestMethod,url,isAsync,username,password)
   req.open("POST", "hello_server.py", true); //or "POST"
   req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
   //get the text input element (payload) and send it to server
   var msg_value = (document.getElementById("testmsg")).value;
   req.send("form_send="+msg_value);  //send(payload) send(null)=no parameters
}
// This is the callback function that called from the server with the XML data
function updateMsgOnBrowser() {
  if (req.readyState == 4) {
     if (req.status == 200) {
        if(req.responseXML == null){
           var msg_display = document.getElementById("display_result");
           msg_display.innerHTML="XML response error<p><b>Content-type:</b>"+
               req.getResponseHeader("Content-type")+"<p><b>Response:</b> "+req.responseText;
        } else {
           testXML=req.responseXML;
	   if (!testXML.documentElement && req.responseStream) { // Microsoft hack
	      testXML.load(req.responseStream); // another reason to drop IE
  	   }
           var stime=(testXML.getElementsByTagName("server")[0]).getAttribute("time");
           var ctype=(testXML.getElementsByTagName("ctype")[0]).firstChild.nodeValue;
           var msgval=" - )" ;
           if (testXML.getElementsByTagName("message")[0].firstChild!=null){
                 msgval=(testXML.getElementsByTagName("message")[0]).firstChild.nodeValue;
           }
           var version=(testXML.getElementsByTagName("version")[0]).firstChild.nodeValue;
           var msg_display=document.getElementById("display_result");
           msg_display.innerHTML="<p><b>Server received:</b>"+msgval+
             "<p><b>Python Version:</b> "+version+"<p><b>Server Time:</b>"+stime+
             "<p><b>Content-type  server:</b>"+ctype+
             "<p><b>Content-type browser:</b>"+req.getResponseHeader("Content-type");
        }
     } else {
       var msg_display = document.getElementById("display_result");
       msg_display.innerHTML = "ERROR: "+ req.status +" "+ req.statusText;
     }
  }
}
//helper function to get a XMLHTTPRequest
function newXMLHttpRequest() {
   try { return new XMLHttpRequest(); } catch(e) {}
   try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {}
   try { return new ActiveXObject("Msxml2.XMLHTTP");    } catch (e) {}
   alert("XMLHttpRequest not supported");
   return null;
}
</script>
</head>
<body><h1>Simple javascript ajax to server test</h1>
<input id="testmsg" type="text" value="Hello Ajax server">
<button onclick="sendServerRequest()">Send ajax request to Server</button>
<div id="display_result" style="{background:honeydew;}">
Response from "hello_server.py" on the server will go here </div>
<div id="error_msg"></div>
</body></html>

hello_server.py

 
import  sys,time
def index(req):
    req.content_type="Content-Type: application/xml"
    submit = req.form.getfirst("form_send", "no form parameter")
    s= "<?xml version=\"1.0\"?>  <server time=\"%s\">\
        <ctype>%s </ctype> <message>%s </message> <version>%s </version>\
       </server>" % (time.ctime(),req.content_type,submit,sys.version)
    return s

You would need a different javascript pattern/design if you plan to a have web-page that simultaneously sends multiple Ajax request.

If you get the error “405 Method Not Allowed”, the python module is not processing the “POST request. This may be due to the security configuration of the Web server. You could try changing your “POST” to a “GET” in the javascript. If you get a XML response error it may be because mod_python is not running properly.