Main reason is the fact that I can’t use Adsens to make a few cents off this blog (not that it would be much but it goes towards advertising my other venture). In the meantime JRoller improved its performance considerably while wordpress has slightly deteriorated…

So anyway my jroller blog is at:


Orange is constantly categorized as one of the leading brands in Israel and as one of the best service oriented companies by well known financial papers in this country. The problem is that the people writing these things have absolutely no idea what a brand is and that Orange is running itself into the ground.

I have rarely been more upset at a service provider in my life and that includes Bezeq who is the much hated Israeli telecom monopoly  who we all despise for holding back the market at our expense. What Orange doesn't get about branding is that while branding has a lot to do with "messages" and "colors" it has more to do with actually listening and going towards what your customers are REALLY asking. Orange doesn't make the slightest effort to help customers or get things done yet their arrogant service helpdesk has its nose in the sky from "winning" all these awards and seems to mistakenly think Orange is "better". It is not, while their service personnel are dressed better and sometimes more polite (not so much as they used to) they do not help at all and when you complain they attack as if the customer is obviously always at fault. Several Orange personnel have specifically said to me that I must be wrong with my claim that their service is bad since they won so many awards… Stupid, these awards are given based on objective parameters such as how fast it takes them to answer the phone. Sometimes they are given based on a survey but this is mostly crap since the survey doesn't know who to ask (yes statistics are complicated when it comes to disgruntled customers).

So far I only spoke in general and didn't give specifics on how terrible their service is, but I have quite a few examples just off the top of my head:

  1. They lie – a sales rep from Orange promised me in front of witnesses that once our companies plan ends our billing will revert to zero. Today they deny that any such guarantee was made, did you get that in writing? I have a huge unreadable contract I had to  sign with Orange and I will not go and track former employees to talk this over with.
  2. They bully – We are an LTD company. So Orange needs a form from a lawyer/accountant that indicates that I'm allowed to sign in the name of the company. Fair enough. So does our bank. However, Orange demanded I update the form (which is good enough for a bank) and started disconnecting our phones and sending threatening SMS messages. This has nothing to do with payment I gave them updated credit card details and it is my own personal credit card! This is just their stick up their ass, no law requires that they have these forms they are NOT a bank!
  3. They are impersonal – Because of this whole "signing form" issue an automated system called all the phones in the company letting all employees know that they may be disconnected. Since we are a small company and I have a good relationship with most of the people working with me this was not a problem. Also because of previous issues I had with Orange I disconnected all the other lines I had given other employees (lucky call by me!), so the damage was minor. I shudder to think about what would have happened if our company had hundreds of employees who suddenly get a voice mail stating that I had "billing problems"! When I complained to an Orange representative about that he claimed that: "That's the situation and it won't change".
  4. They try to block you from using the network in your own way – I buy my own devices, I bought a 3G phone and they refused to replace my SIM since I didn't buy the phone from them. Just by yelling and threatening it was "suddenly" possible… This is a story I heared from lots of people, why do I need to yell at them and then be blocked from their 3G systems such as OBOX (which sucks anyway).
  5. They are ignorant – They don't know anything about phones… A representative told me that if I put my 3G sim into a 2G phone I might ruin the phone! He also claimed that I should still have GPRS with my account (this was a data connectivity expert mind you) which I was obviously disconnected from. Having talked with many of their representatives they don't know shit.
  6. They steal – After finishing my first 3 year contract with Orange I got a nice letter offering me to upgrade my phone. I had bought a phone for my mother and wanted to upgrade it so I went with that letter to the Orange center and they convinced me that I should pay 800NIS for a phone upgrade (the lowest end Nokia). A day later I walked in the mall and I saw a brand new Nokia phone that was technically better for 600NIS with a SIM card! When asking the representative they admitted that I could have bought that BETTER PHONE for LESS! They would not reimburse me or apologize for that, they did stop this practice though, but they still steal in different ways.
  7. They make claims they can't keep – they always promise that they will have newer devices that just never arrive. Their availability of devices is just terrible.
  8. They send you around – I talked over the phone with a representative who told me that Orange can fix my Treo device which I bought on my own. So I went to the Orange center and they were very rude and claimed that no such thing exists… Just sending me around without an apology or anything!

This is just the tip of the iceberg trust me when I say there is much more and these guys REALLY SUCK! 

Before I go on I'd like to mention that I'm still an Orange customer, there is one other GSM provider which is pretty bad too. I don't want to switch phone numbers just to go to another company whose just as bad!

Why Orange will collapse… Skype and Google will evolve to allow true VoIP over wireless lan. I don't need coverage everywhere, I just need some reasonable access and most places I go to already have a wireless lan around. With the evolution of these technologies things are starting to emerge and the cellular providers will need to compete with a very competitive market. With WiMax and AdHoc networking/billing solutions offered by communications giants anyone will be able to become a part of a global network and start making money. The way I see it, within 10 years the communication market will change completely and these guys will actually have to compete! Fuck them!

Its been ages since I last posted, I’ve been so busy with our new startup but now its up:

We wrote this application is record time and provided features that would just be ridiculously complicated using AJAX such as instant search/filtering, offline support (no need for internet connectivity) etc… The application provides a clean integration with the desktop and allows you to manage projects smoothly and yes we are eating our own dog food, we are managing the project to build this application using the tool itself for the past few months!

Cool stuff. Yes, AJAX has its place: in websites! When you want to get decent functionality from an application AJAX is many years behind Java and isn’t even showing much progress. Just try the application and imagine doing something half as good in AJAX, its ~700kb and packs more functionality than most people would expect in standard 50mb desktop applications, times they are changing 🙂

I tried to respond to “Russ Olsen’s” blog but was unable to do it since jroller decisded to label me as a spammer… That should teach me about going to a JRoller site again!
Anyway he wrote about how gread dynamic languages are and I just had to respond to his post
Here is my response as is without a change:

Where do I begin… First we agree on one thing, as engineers we should talk about facts and everything has its place even dynamic types.
However, I have to say that I HATE dynamic typing. Yes I know I’m an engineer I should use facts rather than emotions but having spent ages debuging dynamic languages when I was younger this is something I’m very passionate about:

1. You mentioned the word “token” to indicate redundancy. This is missleading in a big way, in a compiled language like Java this additional token will cost almost nothing and in an interpreted language the additional cost of another token to parse will be offset by some of the optimizations the interpreter can make thanks to this additional hint to the interpreter.

2. In your example you give the example of the “isEmpty” method which really indicates that you could have a “MesurableLength” interface that objects should implement.

3. Strong typing is the basis of Java’s dynamic security actually one of the first well known security bugs in Java was caused by illegal casts that weren’t checked by the verifier.

4. The strong typing in Java enables some of the exceptional JIT runtime optimizations available in Java.

5. Strong typing prevents bugs. Unit testing is never EVER capable of reaching 100% code coverage on a well designed complete real world application.

I’ll take your example and raise you one. Say you have an object that represents a stack of Strings and you pass it by mistake to the “isEmpty” method instead of the first string within that stack. The stack allows you to invoke methods on the string such as to determine its size() but the length method is used to determine the length of the stack… So you will get an answer of false when the result can be true.
In your example you gave a case of a missing method which is easy to find, but the truly problematic case is the one where objects get mixed up and that happens quite a bit! Especially when following good programming practices and naming everything consistently!

This “new” scripting language craze is a standard trend that gets rehashed every 7 or so years (and I have the old DDJ magazines to prove it), it is a craze that only happens in the mind of hackers… Few software companies or corporations ever buy into this since it is pointless for anything other than “glue” code the duct tape. I think duct tape has a very important role in keeping corporations and the internet itself going, but to build a truly large mission critical system on top of a scripting language would be corporate suacide.

I was recently at lunch with a friend going over my latest piece of software with him (over Mexican food) when he looked at the IDE running on my laptop. He was very surprised to see Netbeans rather than Eclipse, I was equaly surprised since this is a well informed CTO/consultant who I respect quite a bit. How come a person who is up to date enough to discuss Ruby on Rails with me (and is even familiar with the specifics of the demo) doesn’t know how far Netbeans has come?

While the Netbeans team has come a long way in their marketing and evangelisem since the days of 3.x (all the marketing in the world couldn’t help a piece of crap like 3.x) especially thanks to the new web site and the work of  some great bloggers ( ) there is still a problem.

This isn’t a big problem though, most of the hard work is already done the product is ready for prime time (especially 5.x I’m working with it right now and it rocks), the web site is informative and there is a strong group of dedicated core users. Now the work is to bring in the masses, arguably this is the easier part it just needs some money and legwork… The elevator music flash demo for Java Studio Creator was great, I was amazed at peoples responses they have never seen this before. The problem is with people like myself is that I assume (unintentionaly) that everyone reads and sees the same things I do, the problem is that people in Sun know how well their tools work and they assume that people are informed of the progress made. Most people out there don’t know this and its time to get the message across and be agressive and my solution is:

Start advertising in Eclipse web sites! Be polite don’t attack, ofer a decent alternative and humor. Better yet advertise in Microsoft developer tools jornals and web sites. Hell MS advertises on Slashdot and those guys know the score when it comes to PR and advertising, borrow a page from their book.

Ok, I just finished watching the two main demo video’s of Ruby on Rails from their web site. I’m shocked that people buy into the whole “ruby beats Java arguments” having watched these demos it seems that Rails really has very little to ofer in terms of serious web applications and would only appeal to PHP hackers that want to get something out the door (and spend the rest of their lives fixing the problems).

Oh where do I start… First there is this stupid mentality that has been in the programming community since forever: “Low line count is good”. This means evaluating the complexity of a system through its line count, everyone agrees this is a stupid metric yet they keep using it. Within this demo the narrator “brags” about writing only 53 (if I’m not mistaken) lines of code to build a weblog, however Rails seems to be bundled with some elaborate templates including one that practically generates the entire thing… The narrator even stopped the presentation several times to regenerate the code of the blog… When code generation is involved with such a metric line count just doesn’t count! The code might be generated but it will need to be maintained and its complexity still exists and burdens the entire application, writing a line of code takes 1 minute but maintaining a generated line of code is much more complex since people tend to stay away from the generated code (due to its complexity). So the whole idea of generating code to hide the complexity of the web application, useless.

But Rails does something far worse, it uses defaults. Unlike a generated line of code that you will eventually track using standard debugging practices, when functionality is determined by default finding that out (without reading every single page of documentation which is just not practical with todays development platforms) is just impossible. I won’t be able to grep the code and find the source of the problem or the area to change and guessing that a default in some anonymous method is responsible for this functionality is just not something I would expect from someone new to this environment.

Some people will chime in claiming that with todays world you need fast prototyping and development, this is true however you also need to support i18n and you will always need extensive customization. In these respects Rails is a step in the wrong direction that will complicate our lives further, I would like to see the same demos and some customization done by someone with limited experience in Rails. In Java I myself can produce the same sort of results in the same amount of time using J2EE even without hibernate but with a decent IDE.

The syntax seemed like a simpler version of JSP with extensive use of scriptlets and no custom tags, the IDE doesn’t seem to have even basic features like completion and the documentation seems monolithic and dissorganized although when delving into a particular feature it seems quite detailed.

Some people don’t realize how successful cell phone gaming really is, its amazing how many games are available for J2ME on a mobile phone and how sophisticated these games are. As a developer who ported VM’s to mobile phones and has built games I am still amazed at what my peers in the cell phone game industry are capable of with the API’s we are offering them.

I expected the N-Gage to fail, it was just a badly executed move from Nokia in a direction that contradicts what people want. Nokia tried to push into a market with 2 strong and cheap competitors with an expensive low grade product, its only advantage was that it contained a bad phone attached to the low quality gaming device… No serios phone user who is a part time gamer would touch this thing, it was a terrible phone (even the second version wasn’t great) and no serios gamer would touch that thing it was bulky and didn’t provide great graphics or gaming experience. So without the “core” users to push the platform very few people bought it, most of the people who did got it because they had a good “deal” with the operator but Nokia just made so many mistakes…

What Nokia should have done:

  1. Use open standards such as Java. The Java implementation on the phone was old and to make a decent game you had to use C++ which means you have to program specifically for that small phone family Symbian binary compatibility across versions leaves something to be desired and this caused even the second generation N-Gage to use an older version of the OS to maintain compatibility with the first phone. By using Java and a 3D API in Java Nokia could have offered virtual 3D worlds over the network which is something no one had in any mobile device.
  2. Learn from the Japanese, they have API’s for motion sensors GPS’s and loads of other features that are used by games inside phones considerably smaller than the N-Gage… They stuck in a radio when they should have a motion sensor that allows you to swing your arm to hit a golf ball… Cool features sell devices, they needed to diffrentiate from the guys at Sony/Nintendo (also Japanese people but they didn’t produce a cell phone…).
  3. Don’t build a game pad that is also a phone. Who would use such a thing??? Only kids and for them its too bulky. Today even my mother inlaw plays video games. She wouldn’t own such a phone because its unattractive and bulky, make a creative design use sliders and other features to allow people to make it look like a standard phone when they don’t want to appear geeky.
  4. Get games out there. When IBM built the first PC they went to Sierra and paid them 1 million dollars to develop kings quest 1, I think that investment paid off. MMORPG’s are a huge hit, they should have at least one hit “world” out there.
  5. Strike “gamer deals” with carriers so network traffic for all games or some games will only carry a fixed low monthly fee. Make playing over the network so cheap that people will use it and get used to it.

There is much more they could have done, too bad they made the wrong choices all round.