Bozhidar's Blog

Monday, July 07, 2008

NetBeans 6.1 - not even 10% a useful IDE

I am forced to work with NetBeans (6.1) from time to time (actually, everyday). We are creating a Desktop app, and hence NB's Matisse is a good idea.
But.. recently I started using only Matisse, and when I finish drawing, go back to Eclipse. Why? Well,

  • NetBeans is becoming rather slow, gets stuck randomly - on copy/paste, on autocomplete, on loading the projects, on pressing a shortcut. Note that my machine is Core2Duo 2.2, 2G of RAM, so not a weak one.

  • indexing of files is obviously not working as it should - when trying to Open Type (CTRL + SHIFT + T, from eclipse shortcuts) half of the classes are just not there. And I have to manully locate them in the project explorer. Furthermore, the suggestions are rather stupid. Classes that appear on the first lines are completely unrealated to the project. (See Eclipse for the better implementation)

  • some stupid caching. I updated a project (we are using 4 separate projects, in order to separate functionality), and then it wouldn't run. It turned out a jar has been removed by one of my colleages. He added it, and committed. I updated, the project properties file WAS updated, but when I rightclick>properties, the jar isn't there.

  • refreshing errors - the red dots here and there in the project explorer are not where they should be. They are updated only when one opens the file, and sees that - hey, there are no errors here. Also, today I removed a class, that was reduntant (merely extending some jdk interface). There were places, where the red dots appeared, and I corrected the usages. However, when I tried to run, not much to my surprise actually, the compiler comlained about 2-3 other places, where red dots do not exist. The cool thing is that I've been running with such hidden compilation errors for 2 days - obviously they have been cached in the build as well.

  • missing key features. Like on commit, selecting which files to commit and which not. Such basic stuff should not be missing from production-stable IDE. Another thing is that, to my knowledge, they don't have call and class hierarchies.




So, in short - NetBeans can NOT be used in production, unless one slowly goes around with the mouse, and uses only 2-3 options.
No matter how much extras and plug-ins they create, if the base, and most used functionality is working so bad, I doubt NB will soon become a useful IDE.

I have always wondered why there are developers that seem to like NB very much -- are they searching for classes by unfolding packages in the project explorer, or copying using the mouse, or running "Clean" on every base class modification or removal of class?

Sunday, November 18, 2007

First look at Google Android - a bit of disappointment?

As every hyped product, Google's Android attracts developers attention. So did it with me, I downloaded the SDK, and starting coding some simple things.
Let me summarize:

  • I felt a bit strange when all constructors of UI components required a Context parameter ("this" in most cases). I'm pretty sure there should be some reason for that, and it is not a big problem, I suppose

  • Lots of XML. Everything (yes, even UI components) is declared in xml files. Which I, and I suppose many more, hate. You see - no one tells you about typos in the xml config, which is pain in.. Yes, the UI components might be done the _normal_ way - programatically - but you need to declare every screen, and every screen transition in the xml file. I'm sure there is a reason for this, too, but it surely does not warm my feelings

  • The Emulator is buggy. Just go the Google Groups to see all the complaints about it


And not to be all pessimistic, Android seems to offer a very wide scope of functionality and application interoperability (that's why it is a platform, after all). Each application can use common resources, communicate with other applications, etc. Maybe here's why we have to write all those XMLs, but having already tweaked the VM, can't they spare us the xml-part?

Despite some major public concerns that Android can "fracture Java", I think this is just a framework. Yes, it has it's own VM, but the Java code you write is the same - it just runs only if the framework is supported by the device. And for mobile devices, we all know, "write once, run everywhere" is a myth.

In conclusion, Android may turn to have some big flaws, and not be comfortable for developers. We will see when the hype is over.

Thursday, August 02, 2007

Why Windows Live Hotmail is not competitive?

Today I had to check an e-mail in my old hotmail account. First of all, a 404 message in the two left frames - I didn't mind it - the login frame was there.
I needed to check the header information of the e-mail. And much to my surprise - I did not see an option "show headers", "show original" or "save original message".
I switched to the new, full-featured Live Hotmail version.
Well, this feature seems not important for Microsoft developers. Note that Gmail, Yahoo, and every competitive email system has such an option.
Another complaint - the vertical e-mail preview, where the screen it split in two. 1/3 of my FireFox, google-toolbarred+stumble toolbarred screen is taken by the logo and the banner above. I feel like having claustrophobia.

I just don't want to know what more 'good surprises' will Hotmail present to me.
In conclusion, MS seems to underestimate ergonomic and functionality. How come they want to have users? If this is based only on the "wide-spreadness" of Windows, their days are counted. Imho.

Thursday, March 29, 2007

Model 1.5?

This entry is presenting something quite familiar, but however not well classified and described. It is actually closer to Model2, but lacks its decoupling of the business-layer. So I label it "Model 1.5". It is meant for single developers or small teams.

A brief introduction. You will excuse me for once again telling what "MVC" is:

Mode1 - a design strategy, where everyting - the presentation and the logic are situated in one jsp/servlet, which often "posts" back to itself when data-manipulation is required.

Model2 - using the MVC design pattern:
# A presentation (view) consists of jsp's that do not modify the data - just displays it.

# A controller which handles all incoming requests, takes care of obtaining all the data from those requests, and directs them to the prespecified model components.

# A model which, provided with all the parameters, handles the business-logic (e.g. data manipulation).


Even with simplified look over the Model2, it still requires some deeper knowledge, and time, in order to create a proper controller . Let alone the use of a MVC framework.
On the other hand, Model1 cannot provide extensibility, flexibility, and even hardly provides reuse of code.

The use of Model2 for middle-sized application (say: 10-12 pages) might turn out to be unjustified. Then, what about merging the model and controller into one, pure Servlet? Here are the key points:
# JSP's are used only for presentation - no data manipulation. Thus a separation of presentation from logic is achieved. However database-queries can be run from the view provided they just select, and not manipulate data. A little less work for the model.

# All forms are posted to a particular Servlet, which handles the request parameters, generates database queries, and then returns the application to a component of the view.

# The redirect-after-post principle is thus easily implemented

# The business-layer is NOT decoupled from the web-application context, and hence creating other interfaces to it is harder.


The advantages are clear: simplicity and flexibility. The disadvantages, of course: unsuitable for large applications, and ones developed by large teams.

Friday, September 29, 2006

Feed readers' view-styles

Today we have a new version of Google Reader, and here's why I decided to comment on the ways feeds can be presented.

The new version of Google Reader is, of course, better than the previous, where I felt trapped in the tiny boxes. Still, however, I feel uncomfortable with it - I have to click here and there if I have to see what is new.
The same issue (I'd not call it a problem) lies in most feed readers - the tree-like organization of feeds.
On the other hand, many of you may know about Netvibes - a Web 2.0, ajax-based application that might look as a complete mess at first sight - all headlines listed in boxes all over the screen. But what we have to keep in mind is, that the human brain is not organized tree-like. And so the use of such chaotic interface is much a comfort. Maybe If I hadn't used netvibes I wouldn't feel uncomfortable with other feed readers, who knows.

Monday, August 01, 2005

Small issues finalized

Finalized today:

- clearing HTML on building / production / training
- adding commas to production / training
- clearing the "POST parameteres" issue

Added features:
- Unload
- Fleet queues (80 %)

Saturday, July 30, 2005

New features added today

Added:

- comma separation for numbers
- load feature for ships
- different ETA (no HB and "tunnels" implemented yet, however)