Ancient programming projects, part 1

Once in a while, I think most people develop a certain amount of nostalgia for their childhoods. This past week, I’ve somewhat started a trip down memory lane, and have resurrected some of my earliest projects, which brings me plenty of good memories. I will maybe share more of these projects in some of the future posts.

First, a bit of background: When I was young, my parents would never allow me to have a video gaming console, even though I wanted one badly and all my friends were immersed in the technology glut of always wanting to upgrade to fastest and computationally powerful gaming consoles. While I was living in Chicago, I briefly owned a Sega Genesis console, which my dad had bought for me along with a few games to play. I am not sure what happened to the console eventually, but it seemed to just disappear from my life; perhaps my dad saw I was spending a large amount of time with it and eventually gave it away without me knowing? Eventually, I was given a Nintendo Game boy, and after a rather uncomfortable episode of my dad discovering I had stolen batteries from him to power it on, he essentially destroyed the Game Boy. This was around 1995.

Sometime around then, my dad bought me a copy of Microsoft Visual Basic 4.0 (computer application), and told me if I wanted to make games, I would have to create them myself. Around that time, he imposed stricter controls on how I could to spend my time around the computer, which could easily lead to all forms of addictive behaviors. The goal was that if I were to play games, I would have to first create them myself. I was up for the challenge. I immediately immersed myself in self-learning, and began to teach myself how to program in Visual Basic. I remember beginning small, creating small forms which displayed simple messages, then over time, the quantity and quality of my projects gradually increased over time. I discovered a web site called  (now, which is a forum in which you could submit code projects for several different languages, and compete against other submissions for the honorary title of “Coder of the Month”. When I began using this site, I did not think I could ever compete against some of the contest winners, however within a couple of years, I won coder of the month for a Scorched Earth-style ballista game which I had created. From 1997-2000, I had developed an increasingly expansive and diverse code portfolio. The majority of this code library was lost over time due to inadequate file management. The only evidence of my work during these years are the thirteen code projects which I can still download from planet source code (link) even though the site went through a major data loss in 2015. To get these projects working, I set up a 32-bit Windows XP virtual machine, since I doubt Visual Basic will work on 64-bit Windows 10. Most of the projects I was able to get to run, however the graphical interfaces all seem like they had shrunk in size, and much of the animations which had relied on a slow computer speed seem to have sped up due to the improved processing power of my current computer. I tried compiling some of these projects for Windows 10, and surprisingly, I was able to get some projects to work. I ended up converting all the projects to Visual Basic 6.0, which is the version which I have kept in my software collection.

Random Shape Generator

One of the projects that turned out surprisingly well was a screen saver I had created which generated random shapes. I cannot get this screen saver to work in Windows 10, but it works fine in Windows XP. In this project, it started by me experimenting with a series of vectors with varying length and diverging at random angles, and I wondered what it might look like if you take this series of vectors and then keep repeating it several times. For instance, your typical square consists of a single vector with an angle of 90° repeated end-to-end four times; and most common geometric shapes could be reconstructed using this same process. What I was surprised to learn is that as long as the series of vectors doesn’t have a tendency to shoot off in 180° will eventually end up exactly where they started. In the process, the repetition of groups of vectors would create a shape which has interesting features. Some how out of your chaotic array of random vectors, there tended to appear order, and that to me was beautiful. I took this concept, and figured out how to turn it into a screensaver. I added some variability into color gradients used to draw the shapes which added an extra dimension to the graphics. These color gradients also behaved in a random way.

In the above video (best viewed in high-resolution full-screen), I took around 10 minutes of screen video of the screen saver running on the Windows XP virtual machine I set up, and overlaid it with some Bach. The screen saver appears to run faster now than I remember it running almost 20 years ago, and at some point the animations appear jumpy. However, it’s a relic of the past which has a certain amount of meaning for me, and I think most people can appreciate.

In Windows XP, the screen saver installs and has various customization features. On the Screen Saver setup screen, the screen saver resizes to display in a miniature preview screen image. When you click on the settings button, you can adjust the number of shapes which show up on the screen at once, the time between screens and shapes, and line thickness. An “about” button shows a dialog which gives credit to another Planet Source Code contributor who had provided much of the code I used to develop the screen saver.

Display Properties -> Screen Saver window
Screensaver setup screen, showing customizable fields

Another piece of software included with the screen saver submission allowed for designing various shapes. The interface provided a way of defining the number of vectors in a segment, the length and angle of those vectors, the gradient colors, and display settings such as grid and axis display.

Shape creation software

The Visual Basic source code and installer packages can be downloaded using the following links. Keep in mind, it probably won’t work on Windows 10 — and need I even mention, DAD, it won’t work on Macintosh (unless you start a Windows XP virtual machine, which you can do using Parallels). The recommended operating system is Windows XP (which very few people even use anymore). Also, note that the software also has quirks. I think this should be understandable, because it was developed by a 16-year-old.

Source Code:


Germany Part 2 – Hamburg

(Second post — for first post, click here)

From Bonn to Hamburg (April 28)

We decided to end the bicycle ride in Bonn, because there were various issues contacting the friend in Krefeld we were going to stay with there. We decided on an alternate plan: we would travel up to Hamburg and stay a couple nights there before travelling in Berlin. We scheduled train tickets to Hamburg and then to Berlin, and because the trip from Hamburg to Berlin required we leave early in the morning, we decided to try to find a hotel next to the train station. I looked up hotel reservations online, but unfortunately, all the hotels near the city center were out of our price range. We ended up settling on a Holiday Inn with was a few kilometers away, however the lodging price was still a bit high for what we were hoping for.

Until our train was scheduled to leave, we wandered around downtown Bonn, browsed various markets, passed by some monuments, stopped by Nordsee for lunch. The street musicians we encountered were quite good.

Some of the produce markets in central square
Various markets
More produce markets
Beethoven momument near the post office
Near the catholic church
Another view of the catholic church
Giant heads of  Roman martyrs Cassius and Florentius
Nordsee is a popular stop for lunch, featuring mostly seafood dishes.
Lunch at Nordsee
Streat musicians on the streets of Bonn
More street musicians at Bonn

The train left around 10 o’clock in the morning, and it wasn’t until late in the day we reached Hamburg (it is, besides, around an 8-hour 300 mile trip). When we finally got to Hamburg, we looked up the directions to the hotel and went straight there. The hotel staff upgraded our room to one of the executive suites near the top floor, which had a great view of the industrial side of Hamburg.

Waiting for the train to Hamburg
View outside the window of the hotel

One of the major items on my agenda at this point was to figure out where I could launder my clothes, since I had no clean clothes left. I asked the staff at the lobby where a coin laundry location was nearby, and they referred me to a nearby hotel and sold me some laundry detergent. I took a couple loads of laundry to the neighboring hotel, however I found quickly that I would have issues operating the machinery. The machines were free to operate; however, they were quite different than the machines I was used to. I required a quick German lesson to understand the operating instructions, however I think I didn’t quite understand the instructions, because I ended up having my clothes locked in the machine for a couple hours, unable to figure out how to end the cycle so the doors would unlock. When the doors finally unlocked, it hadn’t spun the clothes, so they ended up soggy. Additionally, I somehow set the dryers into a mode where they wouldn’t actually dry the clothes but just tumble them. At the end, it was getting too late, so I settled on clean — but soggy — clothes; better than having smelly clothes, at least.

… help?
… someone?

Hamburg (April 29)

In the morning, we first made our back to the train station for breakfast at one of the bakeries and made changes to the train schedule to Berlin. After that, we made plans to head in the direction of the Brahms museum, which we wanted to visit there. Hamburg is a city with rich musical history, to include many Baroque composers. Brahms lived the first part of his life in Hamburg. On the way there, we saw the City Hall, where we saw a memorial to George Philipp Telemann (Baroque composer).

Morning view from the hotel window
Hamburg train station
Hamburg city hall
Memorial to George Philipp Telemann at the Hamburg city hall
At the Binnenalster lake park
At the Laeiszhalle

We finally made it to the Brahms museum. The museum was near a barque museum, which is in a house that Gustav Mahler lived for a while. The Brahms Museum was one of six museums in the “Composer’s Corner”, which honored various musicians whom are tied to Hamburg — to include Georg Philipp Telemann, CPE Bach, Fanny & Felix Mendelssohn, Johannes Brahms, and Gustav Mahler. We decided to see two of the museums, one for various baroque composers, and the other for Brahms. The museums were fascinating, containing original manuscripts, recreations of opera stages, some of the original instruments, and tools used for creating manuscript copies. The Brahms museum had a re-furbished piano, which was the piano owned by one of the Brahms’s students; so no doubt, Brahms probably had played on it before. The museum director invited me to play it, so I played the Brahms Intermezzo Op. 118, no. 2. It was a little difficult to play, since the piano action was a little different than I was used to. While we were there, we were the only visitors at the museum. I left with a few souvenirs from the gift shop, including a porcelain bust to add to my collection of composer busts purchased at museums dedicated to the composer.

Tools for creating manuscripts, to include a rastrum for drawing staves, a hammer, and various different punches for notes
Model of baroque opera stage
The Brahms museum
Piano belonging to one of Brahms’s students
Playing a little Brahms

Afterwards, we decided to go out for some authentic Hamburg hamburgers. I’m not sure, but it is rumored that hamburgers originated in the city of Hamburg, however nobody seems to know for sure. We found an authentic Hamburg hamburger place called “Burger King” (not sure what that means in English), and they had very delicious hamburgers there. We both had the house special, which they called the “Whopper” (not sure how to pronounce it). But the burger was far better than any burger I’ve ever tried in the states.

Authentic Hamburg hamburger restaurant
The counter in the hamburger restaurant
The Hamburg “Whopper”

Afterwards, we wanted to get into the Miniature Wonderland (Miniatur Wunderland) museum. Unfortunately, we couldn’t get in that day, and the waiting time for the museum was days long. The museum featured impressive miniature creations (model trains, cities, etc). Instead, we took a walk around the city, and saw many of the historic landmarks. It wasn’t a huge disappointment; at least we were able to see the Brahms museum, which was the main attraction.

The Miniatur Wunderland (you can see the sign in gold letters on the side of the building)
An old ship loading alley
Hamburg Opera House

A ferry passing by. In the background, you can see many cranes (Hamburg is a major port city)

After walking around Hafencity for a while, we decided to head back to the city center near the City Hall. Afterwards, we went to one of the shopping centers where my dad got ice cream (I don’t eat ice cream myself). We stayed here a while because it began to downpour, and we didn’t want to walk around while it was raining.

Interesting reservoir area, which the city uses to control flooding
City hall building
Fountain in the city hall courtyard

After it stopped raining, we made our way back to the hotel. Later for dinner, we stopped at the Alt Deutsche Küche Elbbrücken (the Old German Elb Bridge Kitchen).

Lamb chops on a skewer with potato salad, and a small salad

Hamburg to Berlin (April 30)

The next morning, we got up at 4 o’clock in the morning, and rode our bikes to the train station. There we had breakfast then got on the 6:30 train. The train ride was several hours long, so I read some books which I had brought. When we got to Berlin a little before noon, we had to swap the tube in my bicycle, which had failed. Since it was too early to check into the hotel, we rode around a bit, riding by the Victory Column, Brandenburg Gate, the Kaiser Wilhelm Memorial Church (which had been bombed in World War II, and was being preserved in ruined state as a museum), Checkpoint Charlie (which is still manned as a form of historical reconstruction project), the TV Tower, and passed briefly by the museum block. We had lunch at Hackescher Markt, which consists of a series of stores located underneath the railroad tracks.

On the train from Hamburg to Berlin
The Victory Column
Kaiser Wilhelm Memorial Church

The Brandenburg Gate
Checkpoint Charlie
Berlin TV Tower (“Fernsehturm”)
Neptune fountain near the TV Tower
Neues Museum
Berliner Dom
Restauration 1840 restaurant, Hackescher Markt
Currywurst and Fleischklops (meatlof)

Afterwards, we headed to the hotel, checked in, and paid a visit to the Rewe (grocery store) at the train station. That night, we ate at a Peter Pane (burger restaurant) near the Ibis hotel which we were staying at, which is across the street from the train station.

East german crosswalk signs (aka the “Ampelmann”) – Go
Ampelmann Stop
About to attempt a street crossing. Hoping I don’t get run over.
Berlin Train Station horse statue
The Rewe (grocery outlet)

Berlin Day 2 (May 1)

We started the day by grabbing breakfast at the Le Crobag in the train station. I grabbed a sandwich and a couple Berliners (jelly doughnuts).

Ich bin ein Berliner

This day was the German Labor day, meaning many businesses were closed. Fortunately for us, many of the museums which are normally closed on Mondays were opened for Labor Day. We wanted to go to the Pergamum museum first, but as we got to the ticket stand, we found many of the exhibits in the museum were going to be closed. Instead, we went to the Berliner Dom, and went on a museum tour of this building. The Berliner Dom is a Lutheran cathedral with very impressive architecture, at which many of the German royalty were buried. It is somewhat a state church. The museum tour talked much about the history of the building, of how it was built, how it suffered damage during WW2 and was later rebuilt. We visited various different levels of the building, going up along the dome walk path, and then down into the crypt, where many of the German nobility are entombed.

Berliner Dom (Berlin Cathedral)
Impressive organ in the Berliner Dom

Looking up towards the dome
The alter
Another view of the organ
King Frederich the First’s tomb
There was a sign at this point in the tour saying that the ascent might cause physical exhaustion.
A mural of Martin Luther
A room with various cathedral models
Starting to suffer physical exaustion
… don’t think I can go any further …
*Whew*, made it.
At the top, looking towards the TV tower
One of the cathedral spires

Berliner Dom crypt
Tomb of Frederick William II

After touring the Berliner Dom, we decided to visit the Natural History Museum next. This museum was close to the hotel, and I had seen signs for it advertising some of the dinosaur bone exhibits they had on display. But first, we decided to visit the Goete Institute which my sister Diane attended when she stayed in Berlin, have Döner nearby, then text her images. She always seemed to appreciate when we texted her images of us eating her favorite German food. (Actually, she quite hated us for it.) Döner usually consists of meat or Falafel and various vegetables (cabbage, tomatoes, lettuce) in a focaccia-like bread, topped with a special sauce.

Entrance to Berlin Goete Institute
Döner fast-food counter
Döner Ingredients
Döner Kebab — hmmmmm

After lunch, we peroused the streets for a bit. Occasionally, we would see placards on the street with names of Jewish people who had lived or worked at those locations, who had during World War 2, been sent to concentration camps and later executed. We stopped by the Foundation New Synagogue, which is now a permanent venue for exhibitions.

Jewish memorial placards in the sidewalks of Berlin
Placard for Jews who died at Auschwitz concentration camp
Foundation New Synagogue, Berlin

We then made our way back to the hotel to unwind for a hour. Afterwards, we went off to the Natural History museum. The Natural History museum had various very impressive exhibits, including a extensive rock and mineral collection, one of the most impressive taxidermy collections, various dinosaur bone collections, and an enormous collection of pickled fish (very creepy exhibit). Some of the notable exhibits include Tristan the tyrannosaurus rex (the largest and most complete T-Rex collections which was excavated in Montana) and Knut the Polar Bear (you might have heard about it in the news).

Berlin Natural History Museum
Brontosaurus fossil
Various dinosaur fossils
Extensive mineral collection
Extensive pickled fish collection
Knut the Polar Bear

Afterwards, we tried to get into a pathology museum, but it was about to close; so we headed back to the hotel. We later stopped by the Rewe, then went to dinner at Zollpackhof Restaurant. Afterwards, we went back to the hotel and retired for the evening.

Brauts and pretzel
Schweinshaxe (pork knuckle)

Berlin Day 3 (May 2)

This day, we intended to go to the district with the museums, and see how many we could fit in our schedule. Many of the notable museums in Berlin are located in a section on an island in the Spree river. We bought a general museum pass which would allow entry into most of these museums.

Before visiting the museums, we first went to the Memorial to the murdered Jews in Europe. I can’t seem to figure out what the monument symbolizes. The monument consisted of stone blocks of varying sizes, and a concrete ground which was uneven with various dips and ridges. There really doesn’t seem to be very much information on the site, but supposedly there is somewhere an information center has an archive of over 3 million Jews which were murdered by the Nazi regime. The monument has received much criticism for it’s level of vagueness.

Memorial to the murdered Jews in Europe

The first museum we visited was the Neues museum, which consisted of a wide range of artifacts from the stone, bronze and iron ages, to include many artifacts of Roman colonization. The museum contained a large collection of Egyptian artifacts (sarcophagi, ancient writings and tablets). Because we had much planned for the day, we need to hurry through the exhibits; so I wasn’t able to glean much from the exhibitions.

Egyptian writings

We next went to the Pergamon museum next door. We ended up having to wait in line for over an hour to get in; and retrospectively, we should have gone to this museum first when the line wasn’t nearly as long. However we got in. This museum is notorious because it has some of the more impressive exhibits. The museum actually contains the Ishtar Gate, a massive structure which was transported from the dig of Babylon in Iraq. They were only able to include a portion of the palace, however the entire palace was transported back to Berlin, many of which is stored in archives. The museum also has reconstructed Roman buildings, and a collection of Islamic art.

Ishtar gate

Market gate of Miletus

Floring from the Market of Mlietus

400-year old carpet from an unknown manufacturer

Afterwards, we met with a friend of my dad’s from several years back, when he made a medical trip to Cameroon. We sold her my dad’s bicycle, which meant we wouldn’t need to worry about hauling two bicycles from then on. We had lunch with her at Peter Pane again, and talked about her plans to come to the United States for a tour this year.

Chicken hamburger with garden salad

Berlin to Leinach (May 3)

The next day, we checked out of the hotel, had brekfast at the train station, and boarded a train to Würzburg. Our final destination was Leinach, and it would require three train transfers to get there from Berlin. We left fairly early. On the way, I finished the book I was reading, mad a few emails, then began another book. On the last train, it was a bit crowded, and we were uncertain where to get off; however, we did get off at the right time, so everything worked out. When we arrived, we were picked up by Hans Wagner, loaded our baggage in his car, and I rode over to the Wagners’ house while my dad rode my bicycle over to their place. There, we had dinner and talked most of the afternoon. Much of the conversation was in German, and since I could barely understand what was being discussed, I eventually got tired and headed off to bed.

Leinach (May 4)

We began the day with a typical German breakfast (bread rolls with meat and cheese and coffee). We started the day by taking the Wagner’s dog Gustav for a walk in some nearby wine country, then later went to Karlstadt am Main to peruse the city. We visited a bakery there and picked up some pastries.

Map of the wine country area
Hannas ready to throw Gustav’s toy
Gustav fetching his toy

Overlooking Himmelstadt towards the south
Overlooking Laudenbach towards the North
Karlstadt am Main city center
Hannas and I in Karlstadt am Main
Delectable pastries at a bakery

We headed back to the Wagners’ house, discussed more, and eventually decided to go to dinner at Landgasthof “Zum Bären” UG restaurant in Thüngersheim.

Landgasthof “Zum Bären” UG
The dining area we ate in was a cellar
Zum Bären
Couldn’t resist Spargel just once more
Me with Hannas and Katja

That evening, a friend Herbert Feucht dropped in to say hello, and we talked the rest of the evening. I think mostly about politics. It was a long conversation, and it’s interesting to hear different perspectives on various matters.

Leinach to Frankfurt (May 5)

In the morning, we got on the train to Frankfurt. My dad rode my bike to the train station while I loaded the car with the baggage and rode over with Hannas and Katja. At the train station, we said our good-byes. The train ride was a little uncomfortable, since there was a group of children which had completely occupied the bicycle holding area, so I had to stand most of the way with the bike. We got to Frankfurt, and first found a Mediterranean restaurant. I had a Mediterranean skewered Chicken dish there.

Saying goodbyes to Hannas and Katja
Skewered chicken and pita dish

We checked into the hotel, then brought my bicycle into the bicycle shop to be dismantled and loaded back into the bicycle box we had transported it to Germany in. It would take a few hours to do, so in the meantime, we walked around the city and shopped for gifts to bring home. I ended up getting a bunch of German chocolates. We later picked up the bicycle at 5:00 PM and dropped it off in the lobby of the hotel. I spent the rest of the afternoon wandering around the city on my own, looking for gifts and stopping at the grocery store.

Frankfurt had a much more modern feel than most other German cities I visited. The town had construction projects all over. It also seemed to have a much more diverse culture, relatively fewer Caucasians, a large amount of people who appeared to be tourists from other countries.

Statue of Goethe

For dinner, we went to the closest place I could find, and I ended up ordering ramen noodle soup. That night, it was very difficult trying to get to sleep. We needed to keep the window open to stay cool, however there were a lot of late-night dwellers outside. There were some people who were yelling in the streets (I couldn’t understand what). This went on essentially all night.


Flight Home (May 6)

We decided to make two trips to the airport, the first to carry the bicycle box and my dad’s luggage. I would then stay at the airport and watch the luggage while my dad went back and got my luggage. It was a bit tricky to try to carry everything at once. Once he returned, we could then check in the luggage and bicycle, and find breakfast somewhere in the airport. We were both tired and a little cranky after a night with very little sleep. We were able to check in with no issues, then we stopped by the duty-free shop for more gifts and to use up the rest of our Euros that we had.

The flight home required a transfer in Chicago. When we got to Chicago, my dad was under the impression we had one fewer hours to transfer planes than we actually had (I’m guessing because he calculated time differences wrong), so when we arrived at the gate after rushing and running a bit, we were relieved to find out we hadn’t missed the flight to Seattle. We arrived back at Seattle, and my mom was waiting to pick us up.

Overall the trip was a great time. Not exactly what people would consider a restful vacation, but lots of memorable moments.

Germany Trip Part 1

From April 27 to May 6 this year, my dad and I went on a 2-week trip to Germany. This would be our second trip together since 2013. Our intention was to start out in Bennigen, where some old friends of my parents lived; then ride along the Neckar and Rhine rivers up to Krefeld, to visit with other friends. This trip was estimated to be around a 360 mile route, and would require 7 riding days. The intention for the rest of the time was to explore Hamburg and Berlin, visit some of the museums and monuments.

My dad had a bicycle in Germany already, and I was to take my Novera touring bike over on the airplane. To do this, it involved dismantling the bicycle, loading it into a specialized box, and checking it in as over-sized luggage onto the plane flight. For packing, the intention was to pack light — bringing bicycle clothes for a maximum of three days (hopefully to wash them along the way). The weather was going to be mostly cloudy with possible rain in the 40’s, so I was sure to pack cold-weather and rain gear. I carried all the bicycle panniers as carry-on items to save on luggage costs.

The flight (April 21)

On the flight to Germany, we flew Lufthansa on a Boeing 747, and strangely they did not charge for shipping the bicycle. It was a bit difficult lugging everything around the airport and onto the train to Frankfurt, but we somehow managed. We took the train to Frankfurt, and at the train station, I watched all the baggage while my Dad took the bicycle box to the bicycle shop to have it re-assembled. The bike shop in Frankfurt would store the bicycle box until we returned. While my dad had the bicycle reassembled, I unpacked all the panniers, and filled them with the items from the duffel bag. I then wait for my dad to return with the bicycle, at which point we could attach all the panniers and strap the duffel bag to the back of the bicycle. After loading the gear onto the bike, everything was much simpler to wheel around.

All my luggage
After repacking at the train station
On the train (hopefully) to Bennigen

The train ride to Bennigen gave me some practice loading the bicycle on the public trains. Most of the trains had bicycle-friendly compartments, typically with belts for attaching to the bike to prevent it from rolling around; in others, actual bicycle racks. We couldn’t get a direct train to Bennigen, since the ticket counter said they could not secure us a spot on the train since we had a bicycle. So instead, we were directed to Bennigen on a route which would require four train transfers. On our second train, at some point, the train stopped mid-track, and would not go any further because of supposed track damage — so we were essentially stranded in an unknown location somewhere Karlshrue. Fortunately, there was some college student girl who knew English adequately enough to be able to help us get our bearing again. We had to take a train which took us in the opposite direction, then take another crowded local city train in Stuttgart — which happened to be loaded with guys in their 20’s who had been drinking heavily, were passing out beer, and were causing a ruckus — which then dropped us off a block from the main train station. From there, we were able to find the right trains to Ludwigsburg and then to Bennigen — after a total of 7 trains, arriving at the desired location several hours later than anticipated. I met my parent’s childhood friends who lived in Bennigen, and stayed at their house the first night.

Cycling Day 1 – Bennigen to Heilbronn (April 22)

30.69 miles from Bennigen am Neckar to Heilbronn (Garmin)

We set out towards the West along the Neckar river. Along this section of path, we would encounter many small towns, and see quite a few vineyards, which were cultivated along interesting stone structures built into the sides of hills.

Ready to start the journey
Riding pass various fields near Kleiningersheim
Wine field structures near Mundelsheim

We spent the first night in Heilbronn, which is a city which may have some family history. It is believed that my great-grandfather lived in or near this city before migrating to the United States. We found a quaint hotel, and were able to store our bicycles in the garage of the hotel.

Heilbronn hotel and owner


Cycling Day 2 – Heilbronn to Heidelberg (April 23)

58.44 miles from Heilbronn to Heidelberg (Garmin)

Heilbronn is a city which may have some family history. I will need to iron out some of the details, but I believe my great-grandfather lived in or near Heilbronn before migrating to the United States near the beginning of the 1900’s. The weather was mostly clear the entire day. I started out in shorts and a shirt with short sleeves hoping that it would warm up. We stopped during the ride at a Biergarten near Binau for some lunch, and had some wurst, at which point I needed to put on some more clothing layers since it was still in the 40’s. Along the way, we saw several castles, passed through many small villages which almost seemed a relic of the past – old-style buildings and very few signs of industrialization, many agriculture fields. I noticed a tendency as we traveled downstream for cities to look more and more industrialized. We reached Heidelberg finally, and lodged at the Tannhaeuser Hotel.

Near the Old Post Office in Heilbronn, near the train station
The location of the invention of the printing press
More countryside
Passing through a small town
One of the castles along the way
Crossing the Neckar at Neckarsteinach
More castles
A little bit of Apfelstrudel to finish the day
On the Karl Theodor bridge in Heidelberg, which was rebuilt after WW2


Cycling Day 3 – Heidelberg to Worms (April 24)

34.77 miles from Heidelberg to Worms (Garmin)

As we left Heidelberg, we appeared to be entering more heavily industrialized area. There were much fewer small towns and many more factories and buildings. This trend continued until we reached Manheim, where the Neckar river intersected the Rhine river.North of Frankenthal, we rode along the East side of the Rhein for a while past a vast agricultural area. We had bratwurst at a small food stand in Lampertheim, the last city before reaching Worms. We finally crossed the Nibelungen bridge into Worms.

Chemical processing plants in Mannheim
Brats and Raddler in Lampertheim
Crossing the Rhine into Worms over the Nibelungen Bridge

In Worms, we stayed at Hotel Hüttl, right across from a Lutheran church and close to the Wormser Dom. There was also a quite impressive reformation memorial in Worms, which consisted of statues of important figures of the Protestant Reformation (to include Luther, John Huss, Wycliffe, Frederick the Wise, and various others). We finally had dinner, and I was a bit relieved that we didn’t need to go on a diet of worms, but instead enjoyed my favorite dish I had in Germany — white asparagus and potatoes.

Luther memorial
Luther memorial
Holy Trinity Church, across the street from the hotel
Wormser Dom
Entry to the Wormser Dom
Front of Wormser Dom
Organ in the Wormser Dom
Ancient city walls
Remnants of Roman walls
White asparagus and potatoes


Cycling Day 4 – Worms t o Bingen (April 25)

57.55 miles from Worms to Bingen. Break in data was done on train. (Garmin segment 1, Garmin segment 2)

Our plan starting out the day was to find a hotel in Mainz-Kastel on the east side of the river, and eventually have to take a ferry across the Rhine later on. I started the day by checking for hotels in Mainz, however I was not finding many cheap hotels which had vacancies. We decided to just wing it and see if we could just find something.

The weather this day was mostly overcast, with a few periods of drizzle. Somewhere near the town of Eich, we became confused because the bicycle guide map was indicating trails which didn’t even exist, meaning we took a couple wrong turns and ran into some dead ends.

Along the rout to Mainz

As we were making our way into Mainz, we decided to find a hotel in a smaller city, either in Budenheim or Heidesheim. We saw signs for a hotel in Budenheim, but realizing they were not convenient to find, made the decision to continue on to Heidesheim, which we knew had only one total hotel. On arriving at the hotel, we discovered that the hotel, also, had no vacancies; and the reason for this was because there was a major convention happening in Mainz, so all hotels within several miles of Mainz were completely full.

At this point, my dad was intending to continue riding all the way to Bingen, which was a plan I was not happy with. It was already 5:30 PM, meaning This was already our longest riding day yet (already close to 60 miles). It would take us at least another hour to ride to Bingen (11 miles away), we were uncertain we would even be able to even find a hotel here, the weather wasn’t particularly good, we were tired and hungry… Anyways, I was ready to call it a day, and not motivated to ride any more. So I devised a plan: Get out my phone, turn on data roaming, and make sure we have a hotel reservation somewhere, then we will take the train. I was able to make a hotel reservation at one of the recommended hotels in the bicycle book in Bingen. Then we would hop on the train. The plan worked well, and provided a good escape from a stressful situation. I was able to get a reservation at Hotel Krone which had excellent bicycle accommodations and a friendly staff, and a great view out the window. We finished the day at Zum geschwollenen Herz restaurant (To the swollen heart).

On the train to Bingen
One of the castles in Bingen
Hotel Krone


Cycling Day 5 – Bingen to Koblenz (April 26)

39.70 miles from Bingen am Rhein to Koblenz (Garmin)

This section of the bicycle rout was perhaps my favorite, and it was especially nice to have clear skies all day. There was very little industrial areas, and occasional small towns that we passed along the way, and an abundance of castles.

Boppard restaurant area
Old city Boppard
Half chicken at Boppard
Lasagna in Boppard
Hungarian-style Wienerschnitzel at Koblenz


Cycling Day 6 – Koblenz to Bonn (April 27)

45.70 miles from Koblenz to Bonn (Garmin)

In light of our experience with hotels, I made a reservation for our hotel in Bonn on my cell phone. On leaving Koblenz, there was a little bit of confusion in the route. It took us past the Memorial of German Unity, and the directions for crossing the Moselle river and finding the bicycle path were a bit unclear. I think we wondered off into an RV park, and had to turn around. We eventually saw more industrial areas, which we needed to navigate around. Eventually, the trail became clearer. We eventually made it to Remagen, and saw the remnants of the Ludendorf bridge, which is a historic WW2 landmark. Someone I know, who just recently passed away, was one of the first waves of American troops which crossed the bridge in WW2.

In Remagen, we found a Döner place, where we had to go just so we could text images of Döner to my youngest sister. Döner was her favorite meal while she was staying in Germany, so it would only be fitting that she would appreciate images of us eating Döner, especially since she just had a baby and was nursing and was ravenously hungry all the time.

We eventually made it to Bonn, and our first stop was at the front door of the house where Beethoven was born and lived for a few years. We then went to the Beethoven museum, which had a few Beethoven artifacts, manuscripts, and writings. As my tradition, I bought a bust of Beethoven to add to my collection of composer busts purchased near the birthplace of the composer.

Memorial of German Unity
Memorial of German Unity
West end of Ludendorff bridge at Remagen
East side of Ludendorff bridge
Döner kebab at Remagen

Arrival at Beethoven’s birthhouse in Bonn


Total Route

The bicycle journey ended in Bonn. The next week, we mostly traveled by train and walking to other areas in Germany.

Total route, showing each day segment. Total 266.85 miles.

The following images give a fuller perspective of the distance traveled.

In light of American politics…

In light of last year’s elections, I thought I’d express some of my ideas concerning the state of American politics and some of my own thinking about how to understand American politics. I realize this is a bit late, and the election was several months ago; and no doubt, people are now sick and tired of hearing about this. I haven’t posted about politics yet on this blog, and don’t intend to say much more about it in the future.

This past election year has been especially draining for many people, because the American public was presented with a choice between two terrible options: Trump or Clinton. Clinton was a horrible candidate because, although she could claim much more experience in the political world, with whom it is unclear to me whether she has any positive accomplishments, and has a proven track record of making poor decisions. Additionally, it was clear that she had many conflicts of interests which ended up profiting her personally. With Trump, it was impossible to get a clear picture of how he would act as a candidate. At some point in his life, he has espoused views on various topics which represented policies espoused by both Democrats and Republicans. It was never clear that he had a real understanding of some of the very fundamentals, about what the purpose or structure of government was as stated in the Constitution. In the end, Trump successfully was able to detect unease among the working-class factions of society, cater to them the words he felt they wanted to hear from a presidential candidate, and secure their votes. I suspect in the long run, they may be disappointed and realize they were duped into electing someone who does not in fact have their interests in mind. In some sense, Trump played the political scene like a very highly-intelligent and successful individual (which he likely is, considering his track record of success in real estate), however I have suspicions he may have been playing Americans as pawns in a chess game. After being sworn into office, he appears to be reversing many of the political views which helped him get elected.

Often times, I think people are fooled by political rhetoric made by politicians during their campaigns. There is an idea that there are opposing philosophies in government: Republicans vs. Democrats, the Left-wing vs. the Right-wing, conservatives vs. liberals, globalists vs. nationalists. I have refrained from using the above labels for my own views, considering their definitions are a bit fuzzy and change over time. While some of these dichotomies do have fundamental philosophical differences, when push comes to shove, the elected political leaders in the United States typically act the same, regardless of the party they adhere to or political philosophies they espouse during their campaign. The fact is that the American populace is collectively incapable of deciding on candidates which espouse a political philosophy which would lead to more limits on government power. You can expect like clockwork that America will decide on leaders which intend to increase the scope and power of government, only so long as they are convince that they will benefit as a result. Candidates which espouse an agenda which puts limits on government power are typically labelled as fringe candidates and radicals, and are vulnerable to the attacks of either party, which are quick to point out when a certain group is going to reduce spending on welfare or warfare ventures which are in line with the particular party. When a candidate suggests that the government shouldn’t spend so much money on welfare programs, the leftists will be correct in criticizing the money spent in the failing national defense policies, and talk about how that money should be put to better use to provide free health care or education; or conversely, when politicians promise more socialized healthcare or medicine, the right is correct in pointing out the this form of spending is wasteful and typically does not accomplish the desired effects, but instead tends to promote policies which increase the American empire and presence in failing overseas military ventures. Regardless if which party is eventually elected, the candidates have a tendency to abandon the ideologies which helped garner votes from the factions they catered to, abandon their campaign promises, and the effect is for the gradual increase for all levels of government power, both for Democratic and Republican agendas. Politicians on the right sign into law some of the largest social programs, and politicians on the left pave the way for more military intervention overseas and surveillance programs.

In evaluating a candidate, what most appeals to me personally is not only a view that the government ought to be limited in its scope, but also a sense that the views the candidate espouses are deeply-held beliefs, which stem from a grounded and consistent philosophy and understanding of history. Political debates are especially mind-numbing to me, since they don’t ask the sort of questions which get to the root of want the core beliefs of a candidate actually are; and rarely if ever illuminate any substantial differences between the candidates. I would prefer the debates to center around fundamental philosophical questions, such as: Is it alright for the government to steal your wealth using the threats of imprisonment or lethal force if it is not okay for you to steal somebody else’s money at gunpoint? Is it okay for the government to force you to act against your own conscience? Is it right for the government to force you to make certain decisions about the education of your children or how you spend your wealth? Are there even any limits to what the government can do? Is it right for the government to force you to act charitably? What lessons can we glean from history and from studies into the effects of certain political policies? Unfortunately, the public media is not helping the American public become more informed concerning these questions. As Neil Postman points out in his book “Amusing Ourselves to Death: Public Discourse in the Age of Show Business” (which although written several decades ago is especially relevant today), the age of television has turned politics into a form of entertainment, in which ideas are passed to you in the form of irrelevant images and catch phrases, and very rarely conveys relevant information. People have stopped thinking critically about the truth of the arguments espoused by the public media, and instead have adopted a feel-good moral attitude which opposes the urge to think critically about the views expressed, and make decisions based on an awareness of history or moral / philosophical principles.

There is a growing demographic of people who espouse socialist political view, and not only am I shocked that they express an ignorance of history especially from within the last century, I am bewildered that they haven’t thought through the implications of what their views imply in actuality from a philosophical level. Not only do the ideas of socialism are immoral and break at least three of the 10 commandments (though shalt not steal, covet, kill), it has a proven track record of leaving individuals as well as entire countries destitute, creating the conditions for economic instability and eventual collapse. We are today seeing this in many countries in Europe, Venezuela, Brazil, and Zimbabwe. Although proponents of socialist views will often point that the version of socialism they support is different in nature than the socialist political systems which have failed, to me, it appears to be the exact same fundamental political philosophy about what the role of government is: to take from the economically successful minority and redistribute to the economically unsuccessful majority with an end goal of reducing or eliminating class distinctions. The socialist ideas imply the existence of a God state, which shepherds us since we are incapable of caring for ourselves, and which we pray to for wisdom and healing. Ironically, as many who hold to these views are self-proclaimed atheists, their desires for a God state appears religious in nature.

The tendency I would like to see is for governments to reduce the scope of their power, and allow for more individual liberty. In my view, governing power ought to for the most part be as decentralized as possible, even as much so it is at the level of the individual, family, or community. This isn’t to say that there is no role for a state or federal (or for that matter, global) governing body, and I certainly would not claim to be an anarchist. However there certainly ought to be more thought into how to limit these powers and defining the roles of these governing bodies, as for instance, Article 1 section 8 of the constitution sets out to do.

The political opinions I hold of free-market decentralized government may be considered impractical to a lot of people, since the possibility of it being tried anywhere in the world any time soon is unlikely; and possibly has never been tried in entirety before. Human beings are flawed creatures and any human being put into a position of power will in one way or another be corrupted. It is therefore expected that the tendency over time is for power to be concentrated into fewer hands over time. At certain points in time, revolutions have taken place which have stripped the ruling class of their power; however, decentralization of power occurs very rarely and is most often been short-lived, as humans make their attempts to maintain and strive for more and more power. From history, it has been clear that flaws of human character will eventually lead to the demise of even the most well-designed political systems humans can come up with.

And so for the time being, I expect the American political house of cards to eventually become too burdensome, and eventually collapse under it’s own weight — just as has eventually happened to every empire in human history. History keeps repeating itself, and I think we can expect that it will continue doing so. It is difficult to find hope for the immediate future, considering the trends. I feel as though I’m a passenger in an airliner with pilots which have had too much alcohol, who are about to run the aircraft into a mountain side. All I can do is encourage others to be aware of their situation, and brace for impact, pray and trust in God to bring you through, and maybe try not to peek out the window too much.

Blog update

I have just updated my blog from to a WordPress blog hosted on my Synology DS1515 server. I have manually exported much of the text and images from my old site to the WordPress blog, therefore a lot of the formatting may not appear correct. I will gradually correct the formatting as I find time. I realize it’s been several years since I updated my blog site, however I intend to post more regularly going forward. I have a lot of content planned over the next several months, so stay tuned!