Gravel biking weekend around lake Constance

A flat and wet gravel ride with great infrastructure and loads of things to do. If you have a weekend to spare, a great way to cross 4 countries on bicycle! (yes Lichtenstein is a country and it has a tiny access to the lake). We started in Stammheim ZH (the last station with the ZVV ticket :)) so its 220Kms easily doable in 2 days… but we had to do some sightseeing and the Zeppelin Museum in Friedrichshafen… so we took a bit longer.

Here you can download the GPX or just follow on Komoot…

I really loved the place where you can wear your cycling tan lines and your extra pounds with pride. Note that some cafes now are explicitly banning cannabis consumption…

It’s been raining for a month here in Central Europe so the lake was quite full and some bicycle paths were flooded…

Altogether I can highly recommend this track for chilled bicycle tourism 🙂 don’t expect any sports endeavors!

Building Dapps on ICP, Step 1 – Hosting Static Sites

It’s a rainy weekend…
The bicycles tracks are muddy and the bees are locked inside and probably eating all the honey they gathered 🙁

Perfect weather to learn something new… and it has been on my bucket list for a while. Developing dapps on the computer network. In case you don’t know about ICP yet, It’s a project lead by the “dfinity foundation” to develop a decentralized network computer, basically cloud services+blockchain. 3 years back, I was a bit skeptical about the technical challenges… they have come a long way.

In simple terms, ICP is a decentralized cloud using “canisters” to host dapps, “cycles” as units of compute and ICP tokens to monetize the service. If you host canisters, you get paid with ICP tokens. That brings TaaS (Transaction as a Service) as a natural evolution to SaaS. This means every dapp visitor/user will consume cycles and you are motivated to create economically viable content and services.

The question of Compliance and Legal Jurisdiction remains open… Although in theory the canister can run anywhere, and scale… certain laws will apply sooner or later and probably it will be the law of the mighty.

ICP TerminologyReal World equivalent
CanisterKubernetes?Docker?
CycleCompute
IdentityActive Directory
Motokoany programming language
nnsneural network (just a fancy name for network)
ICPthe token that can be staked like ETH
Votinglike proof of stake in ETH, your tokens allow you to vote on the maintenance and evolution of the network
Dfinitythe foundation that is promoting and governing ICP

As a first step, I indulged in the developer journey tutorials. Requested free cycles, created wallet, downloaded extensions,… and as a result, published my first static website on the network here. How do you like it?

Walking the Camino de Santiago 2024 Edition

Camino del Norte (da Costa)
from Irun to Bilbao

After walking the Costal camino from Porto to Santiago last year, we decided to go for a more hilly camino and took the first leg of the Northern Route. The Basque country from Irun to Bilbao, 155 Kms, 7 walking days. It offers some of the nicest landscapes: A mixture of beaches, lush green hills with a lot of timber, gorgeous towns with some of the proudest freedom loving people.

Here are 7 things I noted:

1- Your really don’t need maps for the Camino... although this route is taken by only 6% of total pilgrims to Santiago de Compostella, it is very well maintained and signs are everywhere… it takes a lot of talent to miss the road. Even if you are walking on foot, cycling, on horseback… just follow the signs.

2- The beaches in the Basque Country are gorgeous: you will not find long, wide sandy beaches but a lot of small bays with complex ecosystems. Ex: Zarauz, also know as the Hawai of Spain for surfers. The Basque Country is also a cultural trove: the town Bolibar gave it’s name to Simon Bolivar 🙂 and yes, the people are very proud and independent.

3- Donestia / San Sebastián is underrated: Not only the cheesecake that you eat with a spoon but also the beaches, the corniche and the lifestyle. And yes almost every town has an original Basque name and a Castilian name….

4- Beekeeping: the land is not densely populated. It seems the timber industry is well-developed. You see kilometers of forests with eucalyptus and cypressus and heavy machinery. So not many beekeepers on the way, but the few we met were very engaged.

5- Destination Bilbao is everything they told you about lifestyle in Spain: people of all ages are in Bars on the streets drinking tinto de Verano and eating pinxos, literally from Friday 5 PM till Sunday night…. and they never run out of things to chitchat about. Here the destination for pilgrims Santiago Cathedral and also the market, the museum and above all, the lively ambiance or fiesta.

6- bonus track: Yes it rains a lot, but for short periods and people (like the Latin Americans in the photos) continue the walk and with the eternal debate: Poncho or Umbrella… the best answer is wait for the rain to stop 🙂

7- Last, the logistic:s: Hostel or Hotel… and the answer is depends, there are few hostels on this route and sometimes also not many hotels. We walked in April and the line of backpacks at hostels was quite long… I don’t know how overcrowded it will be in June/July. But I know there are some fine hotels on the way!

Day 3 – Logging the nodeMCU Arduino sensor data to google Drive and having insights analyze it

Its been a great day to day! lots of problems solved…

Target is to log the sensor data form the nodemcu esp8622 / arduino into google drive on a sheet for visualization.

it consisted of 3 steps:

  1. creating the google form
  2. creating the Arduino Sketch to get the sensor data and send it using wifi to the internet
  3. create a php middleware to handle the https connection to google

Create a form in google drive to log the data ur sensors provide, in my case i created humidty and temperature, what is delivered by the DHT11 sensor. heres a link to my form https://docs.google.com/forms/d/1rv-vuoiAbHI8I9nkGXjb3nMB8LFn7-jh20fYDdm9Kcg/,  the nice thing here is that google will create a sheet to store the data, give them a timestamp and provides “insights” to analyze the data. AND you can publish them on the internet, share them…

  1. in the form, make sure the answers are text
  2. note ur form id 1rv-vuoiAbHI8I9nkGXjb3nMB8LFn7-jh20fYDdm9Kcg
  3. open the form page source and look for the field names : in my case its “entry.2067116456” every field has unique number after “entry.”, you’ll need these to fill the form
  4. test a GET URL like this to fill the form (replace the form id and the field id with urs), mine looks like this https://docs.google.com/forms/d/1rv-vuoiAbHI8I9nkGXjb3nMB8LFn7-jh20fYDdm9Kcg/formResponse?ifq&entry.997762564=33&entry.2067156456=66 -> here you see that i have changed the field numbers to avoid abuse.

Now you see, its easy to get the nodemcu to call this URL and transmit the variables humidity and temperature to googleforms, google will do the rest. The bigger problem is that google changes the forms every now and then and doesnt support http… and i want to keep node as small as possible…. so i opted for a PHP middleware that gets the http request from the node and forwards it in https to google.


 

Heres the php code:

<?php
// create a new cURL resource
$ch = curl_init();

$url = “https://docs.google.com/forms/d/1rv-vuoiAbHI8I9nkGXjb3nMB8LFn7-jh20fYDdm9Kcg/formResponse?ifq&entry.XXX=”;
$url .= $_GET [‘h’];
$url .= “&entry.YYY=”;
$url .= $_GET [‘t’];

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);

// grab URL and pass it to the browser
curl_exec($ch);

// close cURL resource, and free up system resources
curl_close($ch);
?>


 

and the Sketch for the arduino / nodemcu 8266

/*
Programm tp send the data from the sensor DHT11 to a php page and from there to google forms
*/

#include <DHT.h>
#include <ESP8266WiFi.h>

#define CYCLE 600000 //10 minutes, change as desired
#define DHTPIN 2
#define DHTTYPE DHT11 // DHT 11

const char* ssid = “XXX”; // “ur SSID”;
const char* password = “XXX”; //”ur wifi pswd”;
const char* host = “beedata.yazbek.com”;
unsigned long value = 0;

unsigned int lastcall = CYCLE;
int conn_time;

DHT dht(DHTPIN, DHTTYPE);

void setup() {
Serial.begin(9600);
delay(10);

dht.begin();

// We start by connecting to a WiFi network

Serial.println();
Serial.println();
Serial.print(“Connecting to “);
Serial.println(ssid);

WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(“.”);
conn_time++;
if (conn_time > 20) {
break;
}
}
if (WiFi.status() == WL_CONNECTED) {
Serial.println(“”);
Serial.println(“WiFi connected”);
Serial.println(“IP address: “);
Serial.println(WiFi.localIP());
}
else {
Serial.println(“”);
Serial.println(“no WiFi connection”);
ESP.deepSleep(100000);
Serial.println(“gone to sleep”);
}
}

void loop() {
while (millis() – lastcall < CYCLE) {
delay(1);
}
lastcall = millis();
++value;

Serial.print(“connecting to “);
Serial.println(host);

// Use WiFiClient class to create TCP connections
WiFiClient client;
const int httpPort = 80;
if (!client.connect(host, httpPort)) {
Serial.println(“connection failed”);
return;
}

float h = dht.readHumidity();
// Read temperature as Celsius (the default)
float t = dht.readTemperature();

Serial.println(h);
Serial.println(t);

// We now create a URI for the request
String url = “http://beedata.yazbek.com/data/XXX.php?”;
url += “h=”;
url += h;
url += “&t=22”;
url += t;
//url += value;

Serial.print(“Requesting URL: “);
Serial.println(url);

// This will send the request to the server
client.print(String(“GET “) + url + ” HTTP/1.1rn” +
“Host: ” + host + “rn” +
“Connection: closernrn”);
delay(1000);

// Read all the lines of the reply from server and print them to Serial
while (client.available()) {
String line = client.readStringUntil(‘r’);
Serial.print(line);
}

Serial.println();
Serial.println(“closing connection”);
}


 

Here you can see the logged data as google prepares it, i have set the sheet to public

https://docs.google.com/spreadsheets/d/1-CJAlEKUblTtkPXD9mYxuZGMb-Wri7wWm1Z8-baxjy4/edit#gid=123450854

 

 

Day 2, Skip Lua, lets try Arduino IDE and some sensors on nodemcu

After reading about lua programming language and its downturn in mcu (bugs and lack of space and code libraries) and after a clear sign from Benrnhard, i decided to switch to the Arduino IDE and its C libraries.

So let me try to setup a temperature/humidity sensor today….

 

so far so good,

  1. installed the arduino ide here https://www.arduino.cc/en/Main/Software
  2. Went to File -> Preferences -> Additional Boards Manager URLS, added the link http://arduino.esp8266.com/stable/package_esp8266com_index.json now search for it and waaaaaaiiiit (5-10 min) for it to download and install, now u can choose it from the Board menu.
  3. installed the DHT11 sensor and used the File-> examples -> DHT sensor library -> DHTtester

 

adjusted some lines with the sensor type and now its working.

Next step-> using an android APP to read the data

 

 

 

 

 

NodeMCU is here…and its flashing!

Starting to get the hardware form aliexpress, the first to arrive is the nodemcu with some solar panels 🙂

Thanks to this tube https://www.youtube.com/watch?v=-a2-p0GKIdw i was able to udate firmware,  test some lua scripts and get it up and running!

Downloaded the ESPlorer here http://esp8266.ru/esplorer/

Download the latest bin here https://github.com/nodemcu/nodemcu-firmware/releases/download/0.9.6-dev_20150704/nodemcu_float_0.9.6-dev_20150704.bin

Flash the Node as mentioned in the video, and the paste the code below…

while 1 do
gpio.write(0, gpio.HIGH)
tmr.delay(100000) — wait 1,000,000 us = 1 second
gpio.write(0, gpio.LOW)
tmr.delay(1000000) — wait 1,000,000 us = 1 second
end

voilà… its flashing.

 
now I had to reset the node to get it back to normal 🙂

 

next -> WiFi setup

A 3 Days trip along the Danube, Vienna – Bratislava – Györ – Bratislava – Vienna

Our yearly bicycle trip 2015 edition… having crossed the alps in the past 2 years, we decided to keep it flat this year and try a river, the Danube, on the Euro 6 route that goes from the Atlantic in France to the black sea in Bulgaria.

Tour map, Danube track, Vienna to Bratislava to Györ
Tour map, Danube track, Vienna to Bratislava to Györ on the Slovak side and back on the Hungarian side.

Day 1 – Vienna to Bratislava – 70 Kms

InstagramCapture_e3e5538a-7272-4650-905c-15d1a509da50Friday August 21st, after an early flight we reached the bicycle rental shop is close to Vienna Prater stern station, so it was easy taking the the S7 from the airport directly there… The prater seems to be Vienna’s amusement park… and also the melting pot of drug dealers there. Vienna must be quite interesting but we didn’t get to see much, just the “Donau Insel” with the markings on the street.

First Picking up the bikes from Pedal Power,. I have to say i was impressed by the friendliness of the owner, the bikes were decent, KTM trekking bikes with 27 gears, the seats were WP_20150821_12_38_07_Proreasonably comfortable and the prices OK, just make sure u have new puncture proof tyres 🙂 its actually more convenient then bringing your own bike by plane. They also gave us repair sets, 3 extra tubes! which we needed right after leaving…

WP_20150821_16_44_46_ProWP_20150821_17_39_46_Pro WP_20150821_17_39_33_Pro

the austrian Slovak border

WP_20150823_15_02_33_Pro

Arriving to Bratislava, with the bridges and the castle, but the old town is really nice to see, street art and architecture.

WP_20150821_19_53_25_Pro

WP_20150821_20_44_18_Pro

Traditional Slovak plate, an interesting mix of meat, kraut, some pierogi… at the Bratislava Flagship Restaurant, some old church turned restaurant/artist corner, a must see there…

WP_20150822_10_38_48_Pro

The industrial side of Bratislava.

WP_20150822_09_29_36_Pro

In Bratislava we stayed at Hotel Perugia in an allay in the old town… An excellent way to enjoy 1st hand the very vibrant and loud nightlife! But if need to rest, look for a hotel outside of the old town 🙂

Day 2 – Bratislava to Györ, on the Slovak Side – 100 Kms

Saturday august 22nd, leaving Bratislava in the morning and heading south was nit easy. So we had some bagles ina square and watched the hordes of tourist groups roaming around.

WP_20150823_14_10_19_ProBuffet: a typical resting place on the Slovak side, it also offers shelter in stormy days and an excellent chill-out zone in sunny days and yes, the chicks are Hot!

WP_20150822_14_47_27_Pro WP_20150822_12_03_44_Pro

The Slovak side of the Danube is quite new and straight forward, after passing towns with interesting names like Horny Pub and Sap, we crossed the border to Hungary and headed to györ, a town on the other side of the river.

WP_20150822_15_18_58_Pro

WP_20150822_21_31_18_Pro

WP_20150822_19_46_14_Pro

In Györ, we stayed at Hotel Baross its a 5min walk to downtown. A town with lots of dentists, famous for dental tourism, but also for the old town.

Day 3 – Györ – Bratislava – Vienna – 155 Kms

Sunday august 23rd, after a decent breakfast, we hit the road north, on the Hungarian side of the Danube this time.

WP_20150823_08_26_59_Pro WP_20150823_08_54_10_Pro

InstagramCapture_f70a57fd-0069-40f4-99f4-59c134e175f9WP_20150823_11_40_06_Pro

WP_20150823_09_24_22_ProWP_20150823_10_01_39_ProWP_20150823_12_53_45_ProHungarian Food, Deep fried or Gulash

WP_20150823_13_27_29_ProThe border between Hungary and Slovakia. I am sure that it has changed now with the refugee influx.

WP_20150822_10_46_22_Pro

And finally arriving to Vienna in the evening, time went so fast, barely had time to catch a bite and sleep.. until 4 AM and then catch a plane back to Work. The trip was too short. Next time definitely take 2 more days and continue to Budapest at least! But now it’s time to plan the 2016 trip, maybe on the Atlantic to Bordeaux to visit some wineries…. any suggestions?

WP_20150823_19_23_43_Pro