Monday, September 28, 2009

Toshiba Satellite P100-102 - for Windows XP users only

Three years ago my girlfriend bought herself a notebook - The Toshiba P100-102. We've chosen it together as it's always better to have more critical points of view when it comes to buying such stuff. Our decision was based on multiple aspects. The critical ones were quality, performance and display size. My girlfriend upgraded this list with the additional one - "the looks". This notebook really rocked. Even today, after three years its performance would be totally satisfactory if not... the BIOS and the "f***n" graphic card cooling issue!

Toshiba mounted the "NVIDIA GeForce Go 7600" card into this great and whatsoever beautiful box. This was the largest mistake the company could ever make! Why? This chip has to be cooled down with a fan. After three years of what I would call "normal usage" the card simply DIED! And as you would expect, without the card the rest may be considered DEAD too!!! The funny part is, my girlfriend did not play any games, the chip did never work under extreme pressure. So how can that be?

Well, I always trusted Toshiba and believed that what they build will run for at least next 10-15 years (this was the case of my first notebook with Celeron 650MHz - it still simply runs!). What the hell did you guys do? Did you change your strategy from building quality products to building shit and forcing people to change their boxes every year?? I hope not, because if you did, I'll never buy a Toshiba again!!!

So what happened with the card? Did it overheat? Oh YES it did! Why? Well, this is what I found on nvidia Linux support forum after doing some research on "fan problems + P100 + geforce go". The guys explain how Toshiba controls the fan cooling the GPU. Here's what some said:

"... The modified Toshiba nvidia driver is constantly polling the MAX6659 sensor and then writing something into it's own embedded controller that is controlling the fan. So, I don't think it's a problem with the nvidia drivers but instead with Toshiba simply not telling nvidia how to control the fans they are using on their nvidia based laptops..."

This means:

  • you're stuck with old XP (note: not only windows! you are stuck with XP!)

  • you're stuck with old Toshiba modified NVIDIA drivers

  • you're possibly stuck with specific BIOS version too (at least you may hack it easily)

  • well... in other words, this notebook SUCKS!!! (as well as many other based on same idea and GeForce Go GPUs)

The whole cooling system story sounds a bit like a "big hack", immaturity and incompetence of the notebook manufacturer! So how do I see the Toshiba notebooks now? I will say just one thing. I am an OpenSource software fan... I don't like to be limited... and I absolutely HATE low quality components (including software of course) in my notebook!

So what am I going to buy now (apart from new, old GeForce 7600)?

Thursday, September 24, 2009

When should you reinvent the wheel?

You will be warned by so many software developers to not make this big mistake and reinvent the wheel again. They will say that this is purely just a waste of time. Your solution will be new, not properly tested and probably not efficient too. In other words "it will suck anyway!" Well... they are totally right! Well.. at least in most of the cases. There are however some buts... and this is going to be the subject of this short blog post.

There are cases when reinventing the wheel is exactly the thing that you want to do! This is connected with two very important subjects: education and evolution. Let's take Intel as an example. What would it be if they stuck with their i386 processor implementation and not reinvent it again in form of i486, then Pentium and finally Core 2? The technology changes... did you ask yourself why? Because people invent new things, often by reinventing the wheel. Those changes allow other people to go further by getting rid of old limitations (e.g. performance, functionalities, etc.). This leads us towards optimization of our existing solutions ("the old wheel") and creating new ones ("rocket powered multi-road moon wheel" - which is still a wheel, but a better one).



Also, if you are newbie in the IT world willing to become a "guru" in the future. How the hell will you get to know how stuff works if you have never looked inside of it? How can you make it better if you are not allowed to change the hearts of it?

If you have time and creative mind then go ahead and do it. Please, reinvent the wheel so that I can use it in my next large, time intensive project allowing me to make a lot of money ;-)

Wednesday, September 16, 2009

The wisdom of "Döner Kebab" consumers

I was pretty hungry yesterday in the evening so I decided to go to the city center to get me a "Döner". The plan was good, the only problem I had was that I didn't know which place to choose. The city of Munich has hundreds (or rather thousands) of them! Each place offers very similar product for the similar price. How do I choose the one offering a good quality and won't cause me stomach aches at night?

So what did I do? Well... I just relied on the instinct :-) Sounds easy, but as soon as I got what I wanted (a nice, fresh and tasty "Döner") I realized how complex and logical my decision making process was. (Tip: It has something to do with groups.)

Once I got to the city center I walked along the street for a while passing "Döner" bars. I didn't go to the first one, not even to the second one or third one. The one I've chosen was somewhere in the middle of the street. Just a typical "Döner" place (small and a bit dirty looking). There was however one significant difference if you compared this place to the other ones. In this bar there were people, many people. What's more, people who were waiting in a queue for their food to get prepared. Why did my brain told me to go there and wait with those guys? Illogical, isn't it?

No, it's not. It's rather really cool! This group actually "told" me which place to choose by simply being there and my instinct convinced me that I should rely on their wisdom.

The choice was perfect. I got myself a "Döner" having a very good "price/quality" ratio... just because I was relying on my instinct.



Interestingly, in my city I do not rely on the instinct anymore. I simply know where to go. I guess I learned which bars are the best from some other groups ;-)

Tuesday, September 15, 2009

Better controlling the Cloud

This is what I found on the web. Check it out:

http://link.brightcove.com/services/player/bcpid1753162278?bctid=17374112001

Seems to be an interesting idea. Waiting for some opensource product going this way.

Monday, September 14, 2009

I hate Mondays!

Last week I've booked my hotel and tickets to Munchen. I originally planed to stay there for three days (read two nights) and then come back to Erlangen and work remotely. Everything was great until today when I realized that I've made appointment for Thursday with a guy who substitutes my boss and comes to get some feedback info about me and my work. This fu... totally sucks! Booking another hotel just for one night in Munchen (it won't be cheap), re-booking the ticket (those guys at DB really know how to piss somebody off), etc. My girlfriend will be pissed of too (I promised to give her a ride to Nuernberg to the dentist on Thursday.) Why didn't I look at the calendar last week? It was all written there!! I don't get it! Oh.. I am such a... oh... no... I just hate these fu... Mondays!!!

Wednesday, August 26, 2009

Monkey see, monkey do

For the next two months I am going to work on a software project in Munich, Germany. Moving to a big city is quite a change for a guy like me. I am a person used to quiet, small and clean places the population of which does not exceed the size of 100.000 people. There are naturally many disadvantages of living in a small town but I personally think that the pros overtake the cons dramatically if you value the quality of your life the most.

I have been researching (reading about) the subject of "Groups" and "Behavior of individuals being a part of Groups" for a few weeks now. The last few days in Munich proved the theory I was familiar with and allowed me to experience some of those "wise statements" I've learned in practice.

The amount of people who unconsciously base their decision making on decision making of the group is extremely large. One of my observations (in the Munich subway) proves that when in a rush, many of our decisions are based on instincts. These instincts fire some behaviors which are proven to be "ok" or sometimes even "safe" or "normal". Consider this: What would you do if a group of people (let’s assume 10 people) surrounding you would suddenly start running in the opposite direction? Would you run with them? Would you at least think about it? Would you be scared? Or maybe you would decide to analyze the situation and make you decision based on "strict facts" concerning you?



I was on my way to get the train to my office. There was no rush. One of the digital displays showed that next train will arrive in approximately 5 minutes. I decided to slowly go to my destination. I've chosen the escalator because I am very, very lazy guy in the morning. There were about 6-7 people on the way in front of me too. Unexpectedly, two of the guys rushed of the escalator as if there was a train coming in a few seconds. There would be nothing special about it if not the fact that the rest of people who were standing in front of me rushed after them. (Interestingly, those behind me didn't.) When I reached the station, I saw the confused faces of those people. They were moving chaotically as if filled with some sort of energy generated by sudden jump of adrenaline level. Why did they react that way? Why did I feel like reacting the way the others did? That's crazy!

Being part of the completely different environment on day-to-day basis allowed me to "save my independence". I know however that if I was to stay in that city for a longer while I would become part of that "system/crowd" and my decisions would no longer be based on rational facts. They would be rather based on instincts taking over the decision making process for the boring part of my life.

Anyway, do not ever forget this:

Life moves pretty fast. If you don't stop to look
around once in a while you'll miss it.
-- Faris Beulers day off.

Monday, August 3, 2009

Why big hardware corporations can not write software?

I think one could write an entire Ph.D. thesis on this subject. Master's thesis could be to short and not cover all the aspects/problems the large corporations are dealing with.

I experience this sort of problems everyday since this is the kind of corporation I currently work for. It is extremely interesting to observe the behavior of people working here and it would be such a waste if I didn’t share some of my experience with you.

Why do they build software if they are hardware experts?


Well, the thing is that modern hardware has to go together with some sort of software. It needs it to function properly or/and to interact with the user. The devices the company produces are therefore useless without appropriate software package. Since the company builds the device itself, they are also the ones who understand it best. They simply know how the software should interact with their product. This knowledge is very seductive and makes them think: "Well, we've build the hardware, building software is just the formality then".

Since there is no way to go around this and some kind of software has to be build in the end, many companies choose to build it by themselves (and keep the implementation details "secret").

Why build it yourself, why not?


This is actually a very good question. If you have no experience with building software, then what do you do? Yes, you outsource it to someone who does! This idea is not that bad but only under one condition; you outsource the project entirely to the professionals who really know what they are doing! The problem of most hardware companies is that they want to go cheap. They simply outsource their projects to places where the so called "programmers" do not cost a lot. ("You know, the software is just this virtual piece of functionality that we need but is naturally of lower importance for the hardware itself, which our main product!"). This is the place where they are totally wrong and the "numbers" that management has seen at the beginning of the project turned out to grow up exponentially after delivery of the first working version of the new so called "software package".



So what do they do when they see the problem?


First of all they want the code back to their development centre. However, as soon as it’s there they realize there is no one who understands it. (I think that even the best software developers would have problem with it.) So what do they do next? Yes, they look for people who do (or at least say that they do). This is actually the place of their second failure. When they hire their new software developers they actually don’t know what kind of people they want. This problem may be well explained by the company’s lack of knowledge and experience related with building software. The group of their current hardware (or old software) engineers is simply not able to recruit good software developers since they themselves don’t know what the difference between "good" and "bad" is. So after asking the questions like: "How much experience with C++/ Java do you have?" or "Do you know what Ajax is?" they tend to recruit trashy people who have just a little idea about the art of software development.

But that's not all...


Hardware companies usually do not use, understand (or want to understand) the agile development methods. They stick with their waterfall models (or waterfall-like models) and think that something which was suitable for hardware can be also suitable for software. Well, it is not.

The typical problems they face:

  • Lack or badly defined requirements

  • Lack or bad architectural design. No "design for change". ("who needs architecture after all? We need to deliver soon so please start coding now!")

  • Lack of good software developers

  • Lack of unit, integration and system tests (no comments...)

  • [ ...write some yourself... ]


I was recently on a job interview at the typical, medium size "software company" in Berlin. These guys really impressed me with both, their professionalism and their recruitment process. I have spoken with the project manager and one of the lead developers. They knew absolutely everything about their product, developers, development methods they used and project management tools. They were even able to draw a simplified version of the architectural design of their application to explain me how it works and where they see me in that project. I didn't accept that job because of personal reasons and partially because they could not offer me the same or better financial conditions as I have at the moment. Now I kind of feel it was a bad decision.

Yesterday I was on a job interview for the other department at my current company (see, I am a "software engineer to rent"). The interviewers were totally different. They didn't know what they wanted from me, asked inappropriate questions, tried to convince me about how .NET is superior to Java technology without any reasonable arguments. They made me angry and in the end offered a JavaScript coding position for some sort of user interface they don't have requirements for. Can you imagine this? This was simply a waste of my (precious :-)) time. The funny part is that even though I don’t fit that position at all, they will probably accept me.

In the end I have one short message to all hardware developers. Guys, wake up! Software is a real deal! Be careful who you hire and don't forget to get rid of all that bad, useless and incompetent, so called architects, developers and most of all project (or product) managers!!! I want to be able relax when I am using my new digital TV receiver or get X-Rayed at the hospital, so please, get educated and do it right!