Recently in General Category

Function to Function Pointer refactoring

Last week I had some time to work on some C legacy code again and write some unit tests. I've been playing with a refactoring that I've used in the past and now use it all the time when working in C. The refactoring is called "function to function pointer" and is fairly trivial to do and save in legacy code. It gives a lot of flexibility.

The steps are:

  1. Change function prototype to function pointer in the header (just adding (*name)). Make sure it's extern
  2. Rename the function in the .c file to name_impl, or something non conflicting.
  3. At the end of the .c file. Initialize the function pointer with the _impl one.

That's it. Just takes a few seconds and it allows you to dynamically replace the function in your unit tests. It makes unit testing code in C a lot easier. (there are also some variants, but this is the easiest and most basic version)

Toyota Museum

The second day in Nagoya, Craig and me went to the Toyota museum. At first we wondered if we would be able to spend the whole day there, though in the end we got removed from the museum because they were closing.

The Toyota museum is close to the Nagoya station. It's split into 2 parts, the first part contains the Toyota looms and the second part related to Toyota automobiles. We first went through the loom part and thus thought the history and creation of the Toyoda spinning and weaving company. All the looms were pretty impressive and they had videos explaining the history of things and how everything works (so, I now know a lot more about spinning and weaving than I ever could have imagined). One of the nicest things was that the museum personnel would actually demonstrate most of the looms, even the very large and modern ones which are created these days.

The second part of the museum contained the automobile things. It was divided into three big sections. The first one was the evolution of the automobile, especially the different parts. The second part was the evolution of the manufacturing processes and the last part just showed the evolution of the cars themselves (so, different models etc). We spend quite some time in understanding the automobile parts and evolution, but wanted to move on to the manufacturing since that's what we came for. At first we were slightly disappointed since they just showed machines and didn't talk much about TPS. Though the die press machine was impressive. Finally we found that in the center of the room there was a TPS section with videos and explanation of the history, so we spend the last hour there. We didn't have time to see the automobiles and some other sections of the museum. Maybe someday, we'll be back to see the last parts.

Anyways, the trip was a nice success.

Visit to Toyota

My first day in Nagoya was spend quite relaxed. I tried to recover from the trip and also from the training the day before. I met up with Craig and Kenji, who were going to join me to Toyota.

Today we went to the Toyota factory. After about an hour trip from the Nagoya central station we arrived in Toyota City. Toyota city is a city that was renamed after Toyota in 1959 because Toyota was building all their factories in the city or neighbourhood. About half the people who work in Toyota in Japan, work in Toyota city.

We first arrived in one of the Toyota Museums. This is opposite to the Toyota world head-office. We walked around and saw all the neat new things Toyota is planning and doing, like the i-Unit which is a small one-person vehicle. The trompet playing robot. The extremely light cars. The cars that automatically prevent collisions, etc. Also a lot of information about the Toyota production system. After this visit, we joined the Toyota factory tour which took about 2 hours. The first stop was the assembly shop, which they put the cars together. It was incredibly impressive to see the flow in the factory. Everything happens at a rhythm, things are always moving everywhere. The andon board was highly visible and went on yellow several times. One time I found the station and saw some discussion about something that was wrong with the car. People looked concerned, though they didn't stop the line yet. It was amazing to see all the things working in a smooth flow and coordinated.

The second part was the welding shop. Here they reached a level of 93% automation and all the welding was done using robots. It was the most interesting sight to see all the robots at the same time "attack" the vehicle and start welding at the different places. There were andon lights, but they never went of when we were in the welding shop. That was the end of the factory tour already, I could have stayed longer to see all the activity and movement.

After the factory tour, we met with some people from Toyota who were willing to answer some questions we had, especially related to the product development. We learned a lot about the product development and got some answers, though the person wasn't directly involved and thus the answers were only on the surface. Still it was a nice conversation.

We went back to Nagoya to meet with an ex-Toyota manager who worked there for 35 years. We had some Japanese food and Sake and he told stories about his time in Toyota, what he had done and things related to the TPS. He was an extremely nice guy and it was a very nice meeting. We all learned a lot of the tour and the talks. Tomorrow we'll visit the Toyota museum and then it's time to get back home again.

Worlds top 5 cities

Last years, I've traveled way too much. One of the advantages is that you see a lot of cities. Just last week, I was visiting Beijing and was thinking, ah this is actually quite a nice city (I used to live there). So, I decided on making a "Bas' world top 5 cities". Of course, I've been only to a few places and therefore cannot say a lot about a lot of cities, and some of the top 5 cities, I've only been a couple of days so it's just based on a first impression.

So there it goes:

1. Singapore

Let's build a city combining North Asia, South Asia and Europe on a tropical island. What do we get? Well, I think that's what Singapore is. Always nice and warm (I hate cold) and a huge mix of cultures. Plus an international city with lots of choice.

2. Tokyo

Tokyo is really huge. There is so much things around and so much people. Great food again. Nowadays getting more international, though it's still hard to get along when not speaking Japanese. Still, a nice place!

3. Amsterdam

Eh, well, I lived in Amsterdam quite a while. I like it, it's again, a huge mix of cultures and so free. The Dutch Amsterdam accent is great and direct. I think Amsterdam is probably the best European city.

4. San Francisco

Someone once called SF "the amsterdam in US". I liked that description. I always feel that SF has a very relaxed atmosphere. The hills always made me feel funny. (probably because I haven't lived there, so they always come as a surprise).

5. Beijing

The third city in Asia. Beijing is also a large city, though I think it feels smaller than Tokyo. The Beijing Chinese accent is exactly what the Amsterdam accent is in Holland. I like listening to it and going hrr hrr mrr. The food in Beijing is great, better than any other place in China. Lots of things to do and slowly getting more international. The weather sucks though and the pollution is too bad. Thus only #5 :)

Oki, that's it, just based on my personal opinion. I left out lots of great cities. I guess in the top 10 would be still: New York, Paris, London, Shanghai and Hong Kong.

Anyways. Now I'm in Nagoya and visiting the Toyota factory tomorrow. Will certainly blog about that later.

First public CSM in Tokyo

| 1 Comment

Last week I was in Tokyo, there to give the first public CSM course in Japan. It was a wonderful experience, I'm quite happy about it.

I arrived very late due to plane delay and we started early the next day. My slides are all translated in Japanese and so I cannot read them, which was quite interesting. About 3 minutes in the course, I figured out some people didn't speak much English. Luckily we (me and my local contact who helped me out a LOT!) expected that a little and my local contact was going to do real-time interpretation. He did an amazing job! It was quite interesting though to have everything I say being translated immediately (as a side-conversation). The most interesting parts were then the role-play was half-English and half-Japanese. I had lots of fun, but couldn't have done it without my local contacts help and all the translations and preparations.

The atmosphere in the class was very good. Lots of questions and also some really really good ones which were very difficult to answer (but are often the most important questions!).

I'm leaving to Japan again in a week, but then I'll be visiting the Toyota factory in Toyota City.

You can read a summary in Japanese at

Around the world - Too much travel

| 1 Comment

Last months I've been away way too much. I'm happy to be back at home (China).

In August I was in Washington in the Agile2007 conference. It was a great conference and had excellent discussions with lots of people. Washington was hard though, exactly 12 hour time difference from Hangzhou.

The week after that, I was in Singapore. I really like Singapore, so multi-cultural and ... warm.

After that I was in Finland, Holland, Portugal, Denmark and Germany. In Denmark I was at JAOO, talking about Scrum@NSN. I also had a change to argue with James Coplien on TDD. For some reason, he doesn't like TDD and tries to convince everyone that it's the most evil thing to do. Personally I think he ought to pair up with an experienced TDD-coach and that will probably give some insights. Though, of course, he disagreed :)

Back in Hangzhou now, though leaving next week to visit Japan. Me and Pete Deemer are going to give the first public CSM in Japan. I'm looking forward to it a lot, though... I don't like the travel.

When is the human race finally going to invent a teleporter.

Stuff that happened

It's been months since my last blog entry. I should really try to blog more often. Anyways, it's not so stange that I didn't have a chance to blog since so much stuff happened since the last post.

Oki, just a short overview. January I was still living in Finland and enjoying the winter (NOT). February I had a couple visits to Asia (India and China) and then in March we left to New York for a visit and then to Phoenix to the Retrospective Facilitators Gathering, which was absolutely great.

From there, via Beijing and then HongKong to Hangzhou, where I now live. So, I've moved to China :) I lived here already a couple years ago so it's not really unfamiliar. Anyways, after that I visited Portland for the Scrum Gathering (which was great). In June I was most of the time in Europe. Another Scrum Course with Jens in Amsterdam.

Now I'm back. Doing the first Scrum Course in Shanghai pretty soon. Looking forward to that.

Let's hope I can blog more frequently in the future.


Due to spam, I've turned off the trackback option. Really too bad. I tried much ways to fight it in different ways. If you know a hack to b2evolution for turning it off better, please let me know.

More CSM


Monday, Tuesday I had a CSM in Utrecht with Jens. Training with Jens is quite easy since it's easy to agree on who does what. He's flexible and I think, so am I.

We felt the training went better than the one in Helsinki. Still the feedback was slightly less positive. That also got me thinking about culture again. David H always tells me he liked the Dutch culture for being critical and direct. I guess this relates to that.

It reminded me of sitting in an incredibly boring course next to a Chinese person. He fell asleep during the course. When we got the feedback forms, he filled in excellent in all areas.

Cultural differences are so interesting.

CSM Helsinki

I'm still alive. Lots of stuff been happening the last months. Anyways, had a Certified Scrum Master class in Helsinki today and that went reasonably well. It also gave some new ideas to adjust and work on my own material. Thanks to the students for their excellent questions which sometimes confused me (but I'm a confusing person, at least I am always confused by me).

More later. I'll try to blog a little more.

About this Archive

This page is an archive of recent entries in the General category.

Find recent content on the main index or look in the archives to find all content.