
Pátek červenec 29, 2005
Leaving for a Holiday
I'm taking a week off for a holiday. I feel a bit like
this. Mahnahmahna?
Last Chance to Vote for NetBeans
If you like NetBeans and want to help us a bit, vote for NetBeans here:
http://www.netbeans.org/servlets/NewsItemView?newsItemID=693
Thank you.
P.S.
Here are the live results.

Čtvrtek červenec 28, 2005
NetBeans Volleyball Party
There was a nice volleyball party yesterday with our dear managers from US + some extra people like Solaris engineers with
Adam Leventhal (the Dtrace guy).
Lukas has blogged about it (he organized the volleyball tournament).
Quality team surprised, we scored second, even though our best player Jiri ended in hospital before the tournament started. Kudos to the Quality team - Marian, Karel, Michal and Zajo. I was refusing to play but they got me in front of the net after the tournament. The result is that my leg aches a lot today. As we say in Czech, sport leads to perfect health.
No compromising photos from me this time. I'm trying to be a good guy :-)
Should I Be Ashamed for Using WinXP at Sun?
I was challenged today in the corridor: "You've blogged that you have
a new W2100z worstation but you don't write that you have Windows XP installed on it". So here I blog about it. Yes I am using Windows XP at Sun and I am not ashamed for it!
Why am I doing this? What operating system is used by majority of NetBeans users? Which OS-specific bugs have the biggest impact? Windows. The second most widely used OS by NetBeans users is Linux. Thus I have RedHat Fedora 4 on my second partition. Do I use Solaris and Mac? Yes, I do use them often, through remote access.
I apologize to all opensource evangelists, to Solaris engineers and to all the people from the anti-Microsoft world. I've been using Linux on desktop for five years, since RedHat 6.1 and Debian 2.0 in last company where all of our solutions were based on Linux. The funny thing is that on my Windows XP almost all of software is opensource. I use Firefox (I really don't like IE), Thunderbird, Gaim, Gimp, OpenOffice... and of course NetBeans.
I'm using Windows because I want to make sure NetBeans editor works on Windows. Is that a bad thing to do? Most NetBeans developers don't use Windows. Think about our users. I wish all of them would be using Solaris or other opensource OS but the reality is different. Hopefully this may change in the future and then I will change my desktop OS :-)

Středa červenec 27, 2005
NetBeans Builds Supporting EJB 3.0 Are Available
1. Go to
http://www.netbeans.info/downloads/download.php?a=n&p=1.
2. Select "Java EE 5" as Release Version and "OS Independent" as Operating System.
3. Click next and download the build.
Now you can experiment with EJB 3.0 support in NetBeans.

Úterý červenec 26, 2005
Hacking NetBeans #2 - Executing Ant Tasks from the IDE
In my new plug-in I need to call an an task from the IDE. Thanks to Zajo for telling me the secret how to do that via NetBeans API. It's quite simple, the hardest thing is (as usual) to find the right classes and methods. Here is the source code:
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import org.apache.tools.ant.module.api.support.ActionUtils;
import org.openide.filesystems.FileObject;
import org.openide.filesystems.FileUtil;
...
String script = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
"<project name=\"Packager\" default=\"copy\" basedir=\".\">" +
"<target name=\"copy\">" +
"<copy todir=\"e:\\test2\">" +
"<fileset dir=\"e:\\test\" includes=\"**/*.txt\"/>" +
"</copy>" +
"</target>" +
"</project>";
try {
File zf = File.createTempFile("ant-copy", "xml");
BufferedWriter out = new BufferedWriter(new FileWriter(zf.getAbsoluteFile()));
out.write(script);
out.close();
FileObject zfo = FileUtil.toFileObject(FileUtil.normalizeFile(zf));
ActionUtils.runTarget(zfo, new String[] {"copy"}, null);
zf.deleteOnExit();
} catch (IOException e) {
System.out.println("IO error: "+e);
}
What do I do in the code? At first I create a xml file which will serve as the ant script. I create it as a temporary file in default temp dir and write the xml into it. To execute the ant task I call the ActionUtils.runTarget method with parameters - a fileobject (created from a normalized File), 1 target to run and no properties. At the end I mark the file to be deleted when VM exits. Easy, isn't it?
To be able to compile this code you need to add to your plug-in two dependencies - Ant and Execution API. When you run this code, the output window opens and shows the results:
Now I can do with my plug-in anything what ant is capable of. Time to generate some powerful ant scripts.

Pondělí červenec 25, 2005
Hacking NetBeans #1 - First Steps
I'm starting hereby a new series of posts called Hacking NetBeans. Through this I want to share my experiences with using NetBeans APIs when writing NetBeans plug-ins. I know almost nothing about NetBeans APIs at the moment so I'll meet many obstacles. My advantage is that I can ask anyone in the Prague building for an answer and by writing these answers down I hope to provide simple answers for other developers (you'll probably have similar issues as I do). The disadvantage is that not every information has to be correct but hopefully I'll learn by making mistakes.
So you decided to write your NetBeans plug-in. Good. For 4.1 you have to prepare the backbone of your plug-in manually but development version of 4.2 comes with a nice GUI you can use. Geertjan wrote a
good tutorial which can help you with the first steps or you can take a look at my little
Googlefight plug-in.
Once you'll capture the basics (how to create a hello world plug-in, how to customize it, how to add dependencies, etc.) you're biggest friend will be
this page which describes the NetBeans API (or it's 4.1 brother). Here you can find the APIs of both NetBeans platform and NetBeans IDE you'll need to use in your plug-in. Your second friend is the
openide mailing list archive which can provide answers to many questions.
As described in the tutorials
here and
here, usually the plug-in becomes a part of NetBeans by defining an action in the layer.xml file. Here you define the class which will be called once the users click on the menu item. So your the method performAction() of your class which extends CallableSystemAction and is defined in layer.xml is called and your code starts to be executed.
Inside the peformAction() method you can do basicly whatever you want - run your code and call various NetBeans APIs to do someting useful with your plug-in. Seems easy, but you'll probably have many questions soon. Like:
Question #1: How do I place my menu item to a different position in the menu?
Answer:
Like this:
<filesystem>
<folder name="Menu">
<attr name="Tools/Games" boolvalue="true" />
<attr name="Games/Window" boolvalue="true" />
<folder name="Games">
<file name="com-toy-anagrams-OpenAnagramAction.instance"/>
</folder>
</folder>
</filesystem>
By this you are saying that the Games menu containing your menu item will be after the Tools menu and before the Window menu. This works for the top menu, you can do it similarly inside a menu:
<filesystem>
<folder name="Menu">
<folder name="File">
<attr name="org-netbeans-modules-project-ui-SetMainProject.shadow/org-netbeans-modules-projectpackager-ZipProject.instance" boolvalue="true" />
<attr name="org-netbeans-modules-projectpackager-ZipProject.instance/org-netbeans-modules-project-ui-CustomizeProject.shadow" boolvalue="true" />
<file name="org-netbeans-modules-projectpackager-ZipProject.instance"/>
</folder>
</folder>
</filesystem>
Question #2: How do I dock my component into the IDE?
Answer:
Explained in the tutorial
here in section Embedding and Displaying the Anagram Plug-in. You need to create a class which extends the TopComponent class and do described steps to dock it and activate it.
Question #3: I've sent the sources of my plug-in to my friend but he can't the project in the IDE. What's wrong?
Answer:
When you distribute your project you need to make sure not to include the private subfolder of the nbproject folder. This subfolder contains information about paths on your computer. Once you try to open a project with this subfolder somewhere else, the dialog fails to open the project folder without giving an error, so this is quite tricky. Thus don't forget to remove the private folder if you send the project anywhere.
Question #4: I can't find a method on an object although my intuition tells me it should be there. Where is it?
Answer:
Some of the methods are not connected with the object you're using. For example the object Project has several methods like getProjectDirectory but if you want to find more information about the project you need to use a static method ProjectUtils.getInformation(Project). Similarly to get a list of opened projects you won't find through classes around the Project class but you need to find the OpenProjects class. My advice is to look around in the javadoc or search for usage of such classes in NetBeans sources.
Enough about hacking of NetBeans for today. Good night.

Neděle červenec 24, 2005
How to Fight Stereotype at Work
I was recently thinking why am I not blogging about quality engineering, if it's my primary job at Sun on NetBeans? Well the reason is that testing and related activities are not something really exciting. You'll probably agree that there's not much fun in again and again going through a testspec like
this. For the first time it's kind of fun, second time is ok, third time it gets boring and during the 50th time you feel like wanting to smash your head through the wall. But I'm not writing this to complain, rather to share how do I fight stereotype - maybe it's an issue for you as well.
What do I do to avoid stereotype?
1.
Geting more work. It may sound a very stupid thing to do (why to do more if I can do less?) but it brings one big advantage. If I am doing more work it is also probable that there will be some work which I like to do. This is absolutely against what is written in book
Hello Laziness which is btw a great book about surviving in corporate environment. The author chooses the way of avoiding work. This may work for someone but I find doing nothing so boring and so depressing that it completely doesn't work for me.
So I try to have different types of work, like doing a bit of marketing, a bit of communication with end-users, a bit of UI design, etc. I know I'm not an expert in these areas but it's exciting to learn something new and to be helpful also with other ways than just by my primary assignments. Of course I need to do it in such a way that even the stereotypical work gets done. The trick is that it's much easier to do something very boring if you already did something exciting during the day, it's actually a way how to get some rest.
Doing something very creative all the time takes too much energy so mixing various kinds of work is good for the balance. I think we all have days when we are full of ideas and days when we just don't want to do anything creative at all. Having the possibility to choose what to do on which day according to the actual state of beeing is a great plus.
2.
Making work fun. Being serious all the time at work can be dangerous for your mental health. I've been serious for a long time in my last job and I think it was the main reason why I started to hate that job at the end. It's natural to have fun - I'm not saying it's ok to be irresponsible, but you still can have lots of fun.
In IT environment you can come up lots of geeky jokes, make the e-mails more human, drops jokes during the meetings... even bug hunting can be fun. How? Write some source code which does something like
this. It won't save the world from poverty but you can have fun and squash a bug or two in meanwhile.
The other more enjoyable way for me to find bugs is by trying out new things. I could only work on my module, but that is stereotypical, so it's fun to try out a new module, play with it and find bugs there. Perhaps I can find some important bug the person who's testing the module won't find because he's sick of his module. And to have more fun, I can blog about it, to let others know what's new, what's cool, how things work or how can the new feature help them.
3.
Doing useful work. This may sound obvious but there's nothing more depressive than doing useless work. So it pays of to think why am I also doing this or that... it feels good to do something really useful and then here from others how it helped. I like to write about NetBeans because it feels useful, anybody can google any of my tips or news and I can solve his problem or let him know something cool. I know this is not possible everywhere, somebody else might decide what is useful. But you can always try to fight if you feel you're doing something useless (no guarantees bundeled with this advice).
4.
Working with other people. Some people really like working alone, but I think you never can get so much excitement when you can't share the results of your work or discuss any issues. I know not everybody's an extrovert but I speak from my experience, there were times when I was doing everything on myself and it's just easier to get bored. Communication can help you find new ideas, get rid of frustrations... and it feels better to achieve something in a team than alone, doesn't it?
5.
Learning by doing mistakes. Some people are scared to death of making mistakes. We were punished at school everytime we did a mistake, everytime we didn't know something, etc. Our parents punished us when we did a mistake. It feels revealing if you admit yourself "I am human, I do many mistakes every day". It's not easy for some people, but by admitting this and doing the interesting mistakes you can learn a lot. If you never accept any challenges, are scared to make a decision, afraid of new things and changes, you protect yourself from interesting experiences. And that's a pity - risking can make the work enjoyable and move oneself forward.
6.
Being yourself, being human. Some people try to pretend being a different person at work and at home. I don't like it, I prefer being the same person all the time. I don't trust so much people who are pretending they're someone else, maybe even someone more important or someone more intelligent. In my experience this can lead to loneliness and unhappiness, because pretending being someone else is not good for interpersonal relationships. Maybe I'm sometimes too much myself, sorry for that, but that's me :-)
As you can see, my way of doing things is different from what you can read in the famous Hello Laziness book. Is my way better? Definitely it is better for the company, but the important question - is it better for the individual? Well, I was called by one of the Americans "the happiest guy from NetBeans". If I went the lazy way, I'd be probably called "the most depressed guy from NetBeans".
Now you can say, this is all great but I'm having a job where I cannot change thing like this. All I can say is that we all have control over our lives, we're spending around half of our active time with our jobs so it's stupid to be frustrated all the time. Changing an employer is not as terrible as it may seem and maybe you'll make a good choice like I did. Or maybe you'll find power how to change the environment to be happier at your job. In my opinion you can enjoy even a very dull job if you have the right conditions to make it fun. So don't worry, be happy :-)
Back from Kytlice Rock Festival
We went with friends to Kytlice Rock for People festival. Three photos which I thought were interesting...

Me and my friends

A dynamic moment with beer

Aneta, last year's Czech pop idol
Partying the whole Friday in Prague's clubs till 7 a.m. in the morning and then going for a weekend to a rock festival is a bit tiring. Can I have another weekend, please? :-)

Pátek červenec 22, 2005
More Opensource @ Sun
See the article on
Infoworld,
Computerworld or last post in
Jonathan's blog. As far as I know we're not going to give away hardware for free yet, but we're getting
close :-)

Čtvrtek červenec 21, 2005
My New Blogging T-Shirt
Lukas shot me yesterday in my new T-Shirt. His mobile phone didn't catch the yellow perfectly, in reality it's a bit more... yellow. How do you like it?
Update: Tired of fixing computer problems of your friends and relatives? Thanks
Lukasi for another photo.
Error Stripe Is in Trunk...
... and
Issuezilla is looking forward to your bug submitions. That's all I wanted to say :-)

Středa červenec 20, 2005
Dr. Dobb's Review of NetBeans 4.1 and Eclipse 3.1
See Dr. Dobb's review
here. It's quite a comprehensive review comparing many features of both IDEs. Note that you need to register to see the whole article. The conclusion basicly is "there is no winner". NetBeans seems to be mentioned more times when discussing features which Eclipse doesn't support out of box.

Úterý červenec 19, 2005
I Love this Survey from Javalobby
But I am not as pesimistic as the results are. Matisse is opensource so it will IMO take less than forever. Good ideas seem to get copied fast. But I have a good feeling that NetBeans is once again the innnovator - let's keep it that way.
How to Try Out Matisse
I've noticed that some people are trying out Matisse on NetBeans 4.1 release. It won't work there, it's a part of NetBeans 4.2 development version and here is the right way to make it work:
1. Download latest 4.2 Q-Build from
here. Choose Q-Build as the Build type option.
2. Use the startup option -J-Dnetbeans.form.new_layout=true or place it into NetBeans config as described
here.
3. Create a new form and natural layout will be selected by default. Don't try form editor on an old form you've created with different layout manager, it won't work.
Note that current Matisse status is alpha, so there may be unexpected changes before it gets final in 4.2 release.
Tired of Programming? Angry On Your Project?
NetBeans has a solution for you! There's a new feature in NetBeans called Delete Project. Say good-bye to your hated project forever...

Pondělí červenec 18, 2005
Live8 Concert Archive
In case you've missed the Live8 concerts like me,
here is an archive with the videoclips in high quality. Unfortunately works only in Internet Explorer :-( Anyway I'm glad they've published it, Pink Floyd sound still amazing even though they're really getting old. There are other interesting performances like Bono singing with Paul Mc Cartney the Sg. Peppers Lonely Band. There's a lot of new singers and bands, too. I wish they'd concert next time in Prague...
Trying Out the W2100z Sun Java Workstation
I would like to introduce you my new workstation:
It's performance really rocks! With 2 64bit CPUs and 2 GB memory I can run many applications at once without much speed degradation. NetBeans start very very fast :-) The only drawback is the noise, it has two big fans which are necessary to cool it down.
If you are the owner of this workstation or it's brother W1100z, I have one hint for you. You can lower the fan noise by setting the cooling mode from default "agressive" to "normal". Hopefully it also gets less noisy if it's not so hot, we had today quite tropical weather in Prague. We'll see when the temperatures will go down.
Update: I should also write where to change the option. It's in Bios (F2 on boot), on bottom of the monitoring section.

Neděle červenec 17, 2005
Is David Lynch Crazy or Genius?
This question keeps me busy at the moment because I am watching for the second time the whole Twin Peaks series. If you haven't seen it, I recommend doing so, it's fascinating. When I first saw Twin Peaks on TV I thought it was some stupid soap opera. How naive of me - few years later I was recommended to watch it again and I had to re-evaluate my opinion.
Why is Twin Peak so special? From
TP FAQ: Most early viewers were attracted by Lynch's penchant for unusual themes in his films. Others were captivated by the visuals and the music. Many were fascinated with solving the Laura Palmer murder mystery. And those of us still addicted to the show revel in studying the subtleties of plot, mood, and meaning that become apparent with repeated viewing. Like all great TV ("The Prisoner", "Star Trek", "The Singing Detective") and all great art, TP holds up to more- than-casual study and provides fodder for endless contemplation and discussion.
I especially like on Twin Peaks that it opens hundreds of questions - it's very mysterious. There are many groups, forums, fan sites, etc. where people are trying to find answers on even small details from the series. There exist two worlds in Twin Peaks - the reality and a kind of dream world and both of these worlds fade into each other. The whole story is quite complex so I won't try to explain it, it's better to see it.
I used to have a map of the relationships which I've tried to find now on the internet, but I've found it only in this resoution:
I am hoping that some reader of my blog has this map in better resolution - if you do, can you please send it to me? Thanks!

Sobota červenec 16, 2005
More AJAX in NetBeans
As
Tor pointed out new NetBeans blueprints catalague contains now AJAX examples. Blueprints are available via NetBeans 4.1 update center in "Features" section.
What are blueprints? They are solutions for particular problems, like how to show a progress bar using AJAX. The nice thing about blueprints is that they contain a sample application so you can click the button and can play with the application for each case. They can be very handy when developing J2EE applications because you can learn from working samples. Unless of course you suffer from the
NIH syndrome and you want to figure everything out yourself ;-)

Pátek červenec 15, 2005
Human Area Network - Truly Amazing!
Take a look at
this.
I find it as a revolutionary idea - using human body for data transport. Max speed is 10 Mbps at the moment. In future we may be afraid to shake hands because of e-security issues :-)
I Bought a Torture Machine
I have surprised some of my colleagues already several times by the speed of decisions when buying something of bigger value. When buying a notebook it took me 2 days from starting to think about it to getting it into my hand. A friend of mine said: "I'm already deciding for half a year whether to buy one and you just decide and buy it!". Well, maybe I didn't make the best decision but on the other hand I've spent so few time on deciding I can spend it by something more important - like blogging (which is btw now recognized as
Sun's competitive advantage).
My last fast decision was that I would buy myself a torture machine:
I'm spending so much time sitting by a computer that when I'll get old I may certainly have health issues. So I bought this huge tool to be able to stretch myself and do fitness. Yet another of my fast but maybe not very best decisions. I have a feeling I'll hate this thing after some time I use it regularly. But I'll have a good feeling that I'm doing more for my health, which is important, isn't it?

Čtvrtek červenec 14, 2005
Hello, World! in More than 200 Languages
Here is a collection of more than 200 hello world programs in various programming languages.
My favourites are:
NetBeans Quick Tip #10 - Diffing Two Files
Did you know that NetBeans has built in diff which you can use to see differences between two files? Most people know the diff view from versioning support. Hovewer you can diff files even if you are not using versioning. The trick is that you have to select two files in the Projects view, invoke context menu and go to Tools | Diff. The submenu appears only if you select two files, otherwise it's perfectly hidden so that only experienced users can find it :-)
Here is a screenshot of the diff view:

Graphical diff in NetBeans
Wondering about the history of diff? See the entry in
wikipedia.

Středa červenec 13, 2005
How Much Can You Tell About a Person From a Face Photo?
Somebody thought: "a lot!". Here are my results from
www.faceanalyzer.com:
| Intelligence | 5.0 | Average Intelligence |
| Risk | 5.9 | Average Risk |
| Ambition | 6.0 | Average Ambition |
| Gay Factor | 1.0 | Very Low Gay Factor |
| Honor | 3.5 | Low Honor |
| Politeness | 3.6 | Low Politeness |
| Intelligence | 5.0 | Average Intelligence |
| Income | 5.5 | $30,000 - $50,000 |
| Sociability | 6.9 | High Sociability |
| Promiscuity | 4.4 | Low Promiscuity |
55% Southern European
27% South East Asian
18% Korean/Japanese
Archetype: Charmer
Well :-) I leave the judgement on the others who know me. I wonder what connection has the face with the income? Maybe it depends on the amount of wrinkles and type of smile? Anyway, the software is very good in finding centers of eyes on all photos I've tried. And if you click on other profiles, the celebmatch seems to work well - the software can recognize similarities in faces. So what are your results?
Surrounding Code with Try-Catch Easily
I've just noticed that I didn't blog yet about the new surround with try-catch action which was recently added to 4.2's editor context menu. Let's say you have following code:
import java.io.File;
public class CoffeeMachine {
public CoffeeMachine() {
File f = File.createTempFile("coffee", "tmp");
}
}
Now you can select the line with createTempFile and execute surround with try-catch action from editor context menu. You need to surround the method because it throws an exception that should be caught. If you have good memory, you can also use the shortcut which is Ctrl-Alt-S (S as [S]urround). The code you get is:
import java.io.File;
import java.io.IOException;
public class CoffeeMachine {
public CoffeeMachine() {
try {
File f = File.createTempFile("coffee", "tmp");
} catch (IOException e) {
}
}
}
What has happened? The line which is performing a dangerous IO operation was surrounded by a try-catch block. Notice that the correct import was added into the list of imports as well. Now it's time for you to write code which will handle the case that you could not create the temp file.
Why making fuss of this? I believe that such small features can make real difference if they are intelligent enough and can save you time while writing code. Let's hope for more of these - in 4.2 you'll be able to use a lightbulb hint for this action as well. Time to get more coffee... :-)
P.S. If you will try this functionality and find any bugs, you know
where to submit them. Oh sorry,
this is the right place.

Úterý červenec 12, 2005
Playing with AJAX in NetBeans
Tor Norbye has a great post about using
AJAX in Creator with JSF. As he writes there exists a JSF component which can do all the hard work for you. Lots of people are talking about AJAX today so I decided to find out how is actually Google and others using it by writing a small simple application. Btw, did you know that with Google you can
use completion like in an IDE? Just try to type in "java.util" - it doesn't work in normal Google but you have to use this link with activated completion. Nice, isn't it?
So you can do pretty cool things with AJAX. While studying it I found
this article on java.sun.com which explains quite well how it works.
Blueprints are also a good resource of information.
I decided to do "all the plumbing" myself, so instead of using a JSF component I revived my old knowledge of JavaScript and in few hours wrote this small app using NetBeans:
The app is quite stupid. It gives you completion for a list of countries and once you type in a correct country it tells you what's its capital city. It utilizes AJAX to show you list of possible matches - the list is regenerated upon each keystroke. Imagine you would have over 100 countries - a combo box is hard to use in such case. For sake of simplicity I didn't implement browsing of completion's window by arrows (well, the truth is that I'm too lazy to write it, but I have to find an excuse - the countries should be sorted, etc.). You can watch individual requests using NetBeans' HTTP monitor. The advantage for the user is that he gets immediate feedback while he's typing (which leads to better usability of a web app).
Using AJAX you can build a much more rich-client experience than with usual "submit, error, got annoyed, re-submit, got results" web applications. My simple app including NetBeans project is downloadable
here - it contains
an index page and
a servlet, it's as simple as this. To try it out, just open it in NetBeans 4.1 or later and run it. The web is not a good medium for delivering rich client experience yet but with such technologies it may get there once... maybe.

Pondělí červenec 11, 2005
Quick Tip #9 - Better Responsivenes of Error Marks and Hints
I've seen in one of the web discussions somebody complaining that NetBeans editor is not enough responsive when errors in code are being marked. Well, there's one option which can make things work much faster:
The magical option is Tools | Options | Editing | Java Sources | Automatic Parsing Delay. It sets how long should the IDE wait before the sources get parsed. The default value is 2000 ms and to make error marks faster I've changed it to 500 ms. Why is the value higher by default? Parsing the sources takes quite a lot of CPU cycles and if it would be too small NetBeans could have performance problems on slower machines. The parsing is activated after defined time of no activity and you certainly don't want to run the parser after every keystroke. You can tweak this option depending on your hardware - if you have a really fast CPU you set a smaller delay and get better responsiveness.
This option influences the following features:
- speed of marking of red error "X" signs in editor gutter
- speed of error underlining of lines containing errors
- speed of error stripe (downloadable from update center)
- speed of editor hints aka quick fixes (downloadable from update center)
Use this option cautiously and don't complain to me that the IDE takes too much of your CPU if you set the value too low. I will be able to use a short delay because
this beauty is now being installed for me.

Neděle červenec 10, 2005
Lessons in Out Of Box Experience
Out of box experience (or as I like to call it OOBE) is an important parameter of any software. It basicly says how easy or hard it is for new users to work with your software. It's one of the important categories of software usability. So when I saw this
cute flamewar on JavaLobby, I thought that a lot of responders misunderstood what the author of the post wanted to say. He didn't want to write a review or comparison of the IDEs but he just compared their OOBE from his experience. I agree, IDEA has great OOBE and both NetBeans and Eclipse have what to learn from IDEA. On the other hand, IDEA should learn from NetBeans and Eclipse about the price, shouldn't it?
Sentimental Thoughts on Borland And Importing JBuilder Projects
Before I've switched to NetBeans my favourite IDE was JBuilder. It's a pity that they are
not doing so well lately, I mean it honestly, because I've been happily using Borland's products for a long time. I remember the old Borland Turbo Pascal, which was probably the first IDE I've ever used (not sure if I've used Microsoft Q-basic before but that's rather a parody on an IDE anyway). I cannot help myself and I'll post one sentimental screenshot:

Sigh, those were times...
Even when Java came around I continued using Borland's products, they were really good and I kind of got used to the workflow. Well, I'm not writing all this because I'm getting old and sentimental, but because I wanted to share with you my experience of migrating a project from JBuilder to NetBeans. I wanted to take a look at one of my older projects I wrote before I came to Sun. So I decided to try the new JBuilder import functionality of NetBeans. It's on update center for NetBeans 4.1, so I've installed it and used it to import the project.
To my suprise, it went smoothly, after importing the project it was compilable and I was able to run it as well. The project is not huge, but it has some dependencies like MySQL JDBC driver and log4j. After running it I only got some security exceptions from RMI (are you also always fighting with these?), for the rest everything worked. I don't know if it will work so easily also for more complex projects, I leave trying that on somebody else... Btw I've found
this tutorial after everything was imported. I'm the kind of person who reads manuals when there is no other possibility and I guess I'm not the only one like this, but maybe somebody will read it :-)