This blog is about software engineering, services, graphics, soft sills, work and education. Feel free to rent a ninja for any task concerning these topics. Just leave a comment in case you are interested.

Wednesday, April 28, 2010

Why explaining methods is not enough

Yesterday I went to the local grocery store to get two pieces of meat for dinner. I reminding the service personal to cut the meat across the muscle fiber. She was doing it wrong, but she told me that we was instructed to cut it that way to get cutlets that are cut across the fiber. Since I have to cut the meat into even smaller peaces, I resigned and took the wrongly cut meat which is shown in this post.

Q: Why should I cut the meat across the fiber?
A: It is much more tenderly when cooked


Q: How do I know if it is cut across the fiber?
A: You don't see any long lines on the cutting area

I am pretty sure they show her how to cut the meat properly because she was using the knife properly and she was cutting properly but just on the wrong side of the piece of meat.

This clearly demonstrates, that she knew the method, but didn't know about the expected result. One could say, that a completely described method leads to the desired result but I think they work hand in hand. the method might describe to turn the meat until you cut across the fiber but if she does not know, when the meat is cut across the fiber, there is no use in describing this step.

When you explain a method your coworkers shall follow, you also need to describe the expected result, at least for validation.

Monday, April 26, 2010

Anybody knows how to decrease distractions by management?

Two weeks ago, management annoyed me again by shouting into my office about some tasks that have to be done. A few minutes later, a very interesting video with Jason Fried from 37Signals found me (thanks Google Reader).

Although Jason provides some really great ideas, they are useless for most environments, especially when management suffers from information overflow. I'm currently working on a way to incorporate the ideas at my place and as soon as I know how, I will inform you.

On the other side, in case you know how to incorporate the mentioned ideas when management does not support it, tell me.

Monday, April 19, 2010

What's the use of getting old without understanding?

"You will know that when you get older!" ... that might be the phrase you hear a lot yourself. I hear it every few days when I question things that do not make any sense to me. I'm not the guy who will insist an anything as long as there is a convincing reason for it.

Many times, it is just convenient to do it that way for the one person who is old enough. I'm pretty sure the way that worked for several years was the perfect solution for a specific use case of that time. There must have been a certain routine embedded in the old way that made it work. When you get older, you will find a lot of routines that work for some reason.

Now I need to abstract the concept of age. Age is experience that you acquire over time. When you are able to understand the reasons why something works instead of just knowing that something worked you can use your experience on many other things. Even better is the fact, that you can teach others. You don't need to be several decades old to have a lot of experience. You just need to do a lot, get used to it and understand the underlying system. Think about the last post concerning learning the form, knowing the form and finally breaking it.

Whenever people just answer with "you are not old enough" you known, they do not understand the system. They just know that their way of doing it worked some day and they know it will work forever.

There was a nice interview with Eric Schmidt, CEO of Google, about the future of mobile computing where he stated that there is no such thing as information overflow. I totally agree on that. I know that it can be a performance killer to always check your social networks but that is also depending on the way you handle it. Young people can handle multiple message streams without effort.

That is experience to and the proper answer to the age related killer phrase should be: "Ok, let's agree on I'm not old enough to understand it and you are not young enough to understand me."

Wednesday, April 14, 2010

GWT + Guice + Tutorials = Log4j and DataNucleus.Connection WARN?


Like I said, I'm working on GWT project. I hardly find the time to do something, but I was able to do first JDO today. I'm more of a PHP developer and rarely need to build a whole Java App from scratch.

Since there was this best practice guide last year with the MVP pattern, quite a lot of frameworks and modules where created. Pretty cool stuff I have to say.

Nevertheless, there are some problems in various tutorials that use these frameworks.

In case you run into this error:
log4j:WARN No appenders could be found for logger (DataNucleus.Connection).
log4j:WARN Please initialize the log4j system properly. 

just add
log4j.category.DataNucleus.Connection=WARN, A1
log4j.rootCategory=INFO, A1 

to the log4j.properties in the src folder of your eclipse project

Tuesday, April 13, 2010

Do not forget to drink


I've caught a cold, the first one in a year, and I'm supposed to drink a lot. The problem in modern work life is, that you will be permanently interrupted and once you finally manage to work on something for some time, you totally forget about everything else, like drinking!
So I fired up my shell and added some lines to my Ubuntu 9.10 crontab.

First, install missing packages:

  • sudo apt-get install notify-bin 
  • This should enable the usage of notify-send

Second, prepare the command:

  • /usr/bin/notify-send "Water Low" "Go and have a glass of water" -i /images/tango-icon-theme/32x32/status/battery-caution.png -t 2000
  • This will pop up a notification at the top right

Third, add it to the cron

  • Create a file at /etc/cron.hourly/drink 
  • To actually be able to add it to the cron, you need to add some lines to your shell script that are listed in comment by profjim
That's actually it! You will be reminded every hour by your system to drink a glass of water, each 250ml during an 8h work day, results in 2l of water, which should be enough.

Sunday, April 11, 2010

Learn the form, know the form, break the form

Today I want to spread some more ninja wisdom and I will mash it up with mindOS.

Just take a look at the following picture. It shows the current "Intelligence" as described by mindOS, followed by the steps a ninja has to succeed in order to learn new moves and master them.


The fist diagram shows your current situation between using book smarts and streets smarts. For more information on that, I'd like you to get mindOS instructions from Dr. Paul because I don't know if he's going to sue me if i tell you everything ^^.

Nevertheless, there is you current situation. And there is something you want to learn. The first step in ninja learning is, to learn the form. This is the hard work I already wrote about. After a long period of time, you will know the form. So you are a black belt now, and know all katas, locks and taihenjutsu but you are just following the instructions somebody told you. In the terms of mindOS, you are to far on the book smarts side and will soon get the feeling of running into a wall. To get the balance back, you need to break the form. This is creative work, you need to use the information you've gathered in real life situations and tweak your knowledge to find a way that works for you.

The diagrams can be drawn in the other direction as well. If you just start painting you will get the feeling of being lost some day. You wanted to break the form first but you need information on how color tones work and what canvas types are available and things alike.

By the way, I did that chart with the very nine tool Cacoo. Try that one in case you need some diagrams.

Monday, April 5, 2010

Convert IV50 to anything with VirtualDub and Youtube

Yesterday I found an old video we made at the university for audio-video-101.

I was the director and was responsible for the story board. It was super fun to make the video and we where told that we will get a DVD with all the videos we made. I want to remark that our group was the best in class. Long story short, I found the raw file again on my Mac and wasn't able to play the video.

The raw file was like 140MB. I tried to play that god damn thing but it was IV50 encoded which doesn't work anymore on Mac. I fired up my Parallels and there you go: I was able to watch it in Windows Media Player! My brother told me, to use VirtualDub as Windows is capable of presenting the video, VirtualDub should be able to convert it. And yes, it worked! I got a 120MB avi out of VitualDub. But, sending out a 120MB file is not a good idea. So I uploaded it to YouTube just to make sure everyone can see it. After like 40 minutes, I was able to download the file again as 5MB mp4 file. Now I'm pretty sure I have a file everyone can read and that the codes are fine as well.