Friday, December 15, 2006

Low activity

Low activity in this weblog lately :-) I simply spend almost all my free time working in Wikiloc and if I have something interesting to say, it probably better fits in Wikiloc's weblog.

So I'm considering using this my personal weblog to post mainly about my hobbies and outdoor activities when I'm not in front of a computer. So I'll concentrate all technical writing in Wikiloc's weblog and will write here mainly about photography, hiking, mountain biking, back-country skiing and other outdoor activities.

--Jordi

Monday, August 21, 2006

See how fast you can type

If you have some spare time, and you don't remind your typing skills, take a look at http://labs.jphantom.com/wpm/

I've done the test 4 times in a row and got an average 'words per minute' of 80. I'm not English and I'm not used to some of the words that appear in the test and I'd say that those words are rarely used on a day to day conversation, so I think my score is not too bad. What about yours?

Wednesday, July 19, 2006

Almost 'full equipped' with free software

When I started as a freelance, I faced the fact that in order to do my work, I had to buy many of the software tools that I had been using in my former jobs. The very first months were specially hard and I was surviving from my earnings; simply put I couldn't afford to buy commercial software. Luckily I've been always spending most of my spare time programming in C and Java, so I decided to go full time with open source technology and try to leave completely aside the proprietary way.

It's been a progressive process but now I can say that almost every piece of software that I use in my day to day work is free software. Frankly, by free here I mean € 0. There are other obvious benefits of free / open software but my budget leaved them in a second row.

That's the free software that I use mostly:
  • OpenOffice
  • Notepad++
  • Firefox
  • Thunderbird
  • Oracle JDeveloper
  • CVS
  • Eclipse
  • PostgreSQL
  • Apache Tomcat
  • Hibernate
  • Putty
  • FileZilla
  • Picasa
  • Gimp
With regard to free Web services, that I also consider free software, I mostly use Google, Bloglines, Gmail and Wikiloc.

The only commercial software that I use is Norton Antivirus and the OS of my laptop, Windows XP. Leaving aside the fact that most of my customers (that's 2 of them :-) have Microsoft networks and using Windows makes things somewhat easier when working in their networks, I like this operating system, I think Microsoft has been always good at it (I'm talking about OS for desktops here).

What I find annoying is to find the operating system pre installed in almost every new computer; and it's disappointing too not to have the option to choose between Windows or Linux or Solaris or whatever OS you prefer. Instead, you find two stickers saying “Hey, we're the microprocessor and OS manufacturers and we're inside your computer. You've already payed for us and you cannot get rid of us”. You have to pay, like it or not, for the 'the facto' OS for Intel desktops (and lately probably for a decent anti virus too).

Apparently times are changing for good though in the IT world thanks to the many free/open source contributions; it seems to be an exciting and promising future in front of us, a future of more choice, more quality, more control and essentially more technological freedom.

Wednesday, February 08, 2006

RDBMS - Foreign key indexing

To decide if a foreign key needs to be indexed or not, I follow a simple rule:

I always/only create an index on a foreign key whether:

1 - A deletion on the parent table is allowed and it triggers a cascade delete on the child table
2 - There's need to perform JOIN queries from the parent to the child

In the first situation, an unindexed foreign key will force a full table scan for each parent record deleted. In the second situation, a lack of the foreign key index in the child table will slow down join queries.

I rarely find suitable to create indexes on foreign keys in other situations though.

Tuesday, January 17, 2006

Oracle JDeveloper and backups

I usually write Java code using Oracle's JDeveloper IDE. In my opinion it's a very good product which I've been using for years. I like it. But yesterday it freaked me out.

Yesterday I refactored a project I'm working on, including change of package names, renaming some java classes and functions and so on. Once I had all my sources organized, I thought that would be good to clean the directories where the old compiled class files reside. There's no need to do it manually as JDeveloper can do this for you; just go to the Run menu and execute Clean project (keep reading before trying!). Once finished I continued coding normally, but in the next build, the compiler complained about source files not found. What?! The cleaning process cleaned so deeply that even some (actually 6) of my source files had been completely wiped out of my hard disk.

Luckily, I had a recent backup and the lost files had just a few lines of code changed. I work with a laptop and I confess that I usually wait too much between backups. I've been very lucky this time; be careful if you can be affected by this issue and more important, keep regular backups, even if you work with a CVS.

I'm using JDeveloper build 10.1.3.34.12. It's an Early Access version and I'm convinced this issue will be solved in the final release.

On another note, I just use the IDE; I try to resist the temptation to stick to their frameworks and libraries because, although they're excellent pieces of software, they usually work better/only with a commercial Oracle product in the backend. If you're developing Java applications interacting with an Oracle database though, Oracle ADF (Application Development Framework, former BC4J) is a master piece of software that excels specially when used with complex relational data models.

[Update (2006-06-11)]: I've been using JDeveloper 10.1.3 (With Service Update 3) for some time and it works perfect; the 'cleaning too much' issue is no longer present. Suport for CVS (and Subversion too) is excellent. Nice.