Wednesday, February 10, 2010

This is how Honda says "Thank you"


I made a subscription for Honda updates newsletter. And this is how they say "Thank you".
I just love it.. :)

Wednesday, February 03, 2010

And yet another great idea.. that turns out to be an old one.

Before, I had these ideas before:

1- The first idea is already there now, it’s the Spring OSGi Server.
2- The second idea is, as I read once, already implemented by Google now, you upload a picture of something and search for this place, it gets you more information about the place and what is it and stuff like this. But the only difference is that Google’s implementation is for known landscapes and sights. I mean something like the Pizza Tower, Pyramids, etc.

Today, while I was reading JavaLobby, I stumbled upon this article about Fork-Join programming in Java. I didn’t know what fork-join means, so I opened the URL here.
Which turned to be an idea that I had about a year ago:

Why can’t we have a way in Java that would let us execute a method implementation in a way that is not serial, but parallel with defining dependency between the code.
For example:

public void someMethod() {
String s = “something”; //variable declaration 1
Method1(); //do not depend on variable s
Method2(s);// depends on variable s
Method3(); //depends on method1
}

- Now, let’s assume the previous code, method 1 doesn’t depend on variable s and can be launched in separate thread.
- Method 2, depends on variable s; but it doesn’t depend on method 1. Method 3 must be executed after method1

The idea is simply to use some way to define method1 with no dependency, so one of the processors can execute it first thing (with same priority as variable declaration).
And then a way to have method2 depends on variable declaration. That means that method2 must be in queue to variable declaration. It can only start after variable declaration is finished.
And a way to have method3 depends on method1. Well, I guess you got the idea. Of course, we can have one line of code depends on many other lines.

The idea I had was generally and basically based on a way to define the dependencies between code lines and execute them in different threads. I know, I know.. not so fancy implementation with lots and lots of issues and concerns.

Now, back to fork-join development in Java and this article: First of all, I did not know that there is a name for this approach. And I sure didn’t know that there is a JSR for it Java (JSR 166).

I’m really happy that, although I didn’t study computer science, I have such ideas. It means, I’m thinking.. :-D
But, also, it means I need to study computer science before thinking about something else. :-(

Wednesday, January 13, 2010

I'm feeling like I'm dieing slowly

It's been around 7 months now since I joined my new company. Here's a summary of what I've done so far:
***Nothing.***

Is that really a bad thing or just me feeling so?
I don't know why and how come.. but I do miss the previous company. I miss being busy. I miss the feeling that I have a task with a dead line. I miss lots of feelings.

It's good to have nothing to do all day long. But not for me.. not for around 7 months in row.. That's just not me.
What can I do?? Quit the job?? Can't really. Why? Cause I'm not settled down yet and will not be able to settle if I left this job right now. And yes, that's the only reason for me not quitting the job right now.
I don't even know if what I'm writing is right or wrong. Not right or wrong as a feeling.. but right or wrong to write and tell others like this, in a blog...!!!

I even don't know if I'm going to hit the publish button or not... :)

I'm living in a pain right now.
I hate it to live this way... but yet again... is it true?? Do I really hate that??
I know nothing any more.. I even don't know why I am living for..!!!

To be more simple.. I'm feeling like I'm dieing slowly.... what a sad thing to feel.. :'(

Saturday, June 06, 2009

Java EE technologies list

Today, and finally, Sun decided to post a list of all technologies used in the Java EE along with its specifications' URLs and versions. I am really glad that they finally did that.

Latest Java EE release with its technologies and specifications numbers is here (for the time of this post, it is Java EE 5).
For the time of this post, Java EE 6 technologies preview page.

To know why I am really happy with this list, check this link here for Java EE 5 technology.

Saturday, May 30, 2009

"JDK 7 and languages changes" needs a pause

Today I was reading about JDK 7 and the new language changes and I stumbled upon this InfoQ post. But what really grapped my attention is in the first reply to the post, here: 'Funny thing about Java, it's "what you can ADD to it" culture.', Vic C said

Few minutes earlier I was reading Alex Miller - Java 7 page and was thinking to myself the same, but in the good way.

My point is:
We have been adding, looking to add, and already added lots and lots of features to the language itself and yet keeping the backward compatibility. That's a hell of a work, I must say. It's very difficult to maintain that, for sure. Sun has been doing lots of good job.

But what about the new java developers? What about the old java developers?

Old Java developers would be having to learn more and more about the language and how it works and how to use it and its features. I do not complain about learning new things, but, it's the amount of knowledge that we; old java developers; need to learn. It's so huge and getting bigger everyday.
But the only thing that makes me able to continue is that I am building over what I already have learned. It's accumulative. That's what makes it, for me at least, a little bit easy.
But I have seen some developers who does not read articles online daily and does not keep up with what's new.
Believe me, they are facing a tough time trying to catch up now.

And what about new ones? Imagine the amount of knowledge they need to learn. Imagine how much info, starting from OO concepts, variables and what they mean, and ending with..... mmmm... is there really an end? I can't see it. I have been in the area for over than 6 years now, and since I started and there are always lots of things new to learn, and that's exactly what keeps it interesting.. ;)

It's very good that we have what we have now. But instead of the current roadmap we have for the Java SE which is simply add-more; we need to have the current roadmap:
1- Stop adding new features and adding new language changes for a while.
2- Remove all things that are just kept for backward compatibility. At least incrementaly on two versions.
3- Release more two versions of Java SE that would only be having bug fixes resulted from the previous step, step 2. Which I presume will be a lot.
4- With a much more cleaner, simpler, smaller version of Java resulted from the previous 3 steps, we can go on with adding more stuff to the language.

I know that JDK 7 is almost done. So, what I am saying should be after JDK 7.

Benefits:
1- Java will be easier to learn.
2- Java will be more robust.
3- JDK will be smaller
4- New developers will be learning easily
5- Old developer will have a chance to grasp the current changes made to the language. We need a pause to grasp. (I am talking about language changes, not JDK features.. ;) )
6- We will be having another chance for going to the 'add-more' stage after taking a deep breath.
7- JDK community will have a chance to really think of the new "required" changes to be added after that.

JDK is not just a product that needs a new release every year with new features and changes. It's a 'platform' that lots of products are built-on. It needs to move with major changes slower.

Thursday, April 30, 2009

An interview with the vampire

- I've made it.. I've made it.. I've made it.
- Made what?

- I resigned.
- Really?

-Yes. Finally I left the company, resigned, and now moving to another one. Stable, secure, much better, and most of all, I will be using my favorite tools and IDE again.
I am out of these products that I've been using for more than three years. Finally I got out.
- If you were using tools and IDE that you did not like for the past three years; then why did you last for three years? Why did not you simply move earlier?

- The question is obvious. Yes. I should have. That was one of my learned lessons. But the thing is I had to compromise between different things to take a decision. And for each new parameter that comes in the picture and every old parameter, I had to stay for the three years.
- So, you mean that you had to stay all these years till you finally taken the decision?

- Yes. Although sometimes I feel that I still took it too much late. I should have taken that decision long before. Actually, I should have taken it when I first the company.
- So, you do regret your stay in the company?

- No. On the contrary. I learned many things from my superiors and my colleges in the company. And I have also learned a lot from the different situations I went through in the company.
- That's great. So, what have you learned?

- I learned the following:
* I learned some managerial stuff.
* I learned to trust in myself. I am better than what I thought.
* I learned how to deal with different team members.
* I learned how to deal with different kind of customers
* I learned how to let go of a project.
* I learned how to start a new project
* I learned how to do some business analysis.
* I learned how to handle some tough financial situations.
* How to handle some tough situations in the projects
* How to debug
* How to guide
* I learned that you can only edit in code while development phase.
* I learned that if I have a bug in production, I cannot have re-factoring option; unless no other way.
* I learned that in production environment, to fix a bug, just touch the code with minimal effect to simply fix your bug. Keep it up and running. The more modifications made; the more trouble we will be.
* I learned that when I read new article, I read it for myself. Not because I need it at work. (I know that already long ago, but I faced lots of situations during this period that proved me that I was right 2000% ;) )
* I learned that when the ship starts to sink, you must abandon the ship. Being one of the first survivals, will give you the ability to help the maximum number of other men instead of being helped.

I learned lots of things. Even more than I mentioned here. But the most thing I learned is:
I cannot get back the time I wasted on work instead of sitting with my family. My kid grown up very fast while I was busy working...!!! That really hurts.
My lovely wife, she kept on loving, supporting and giving as much as she can during these years. I have wasted three precious years from all my family's life simply because I was busy working.

Note: For who do not know me; busy working means working around 12(+/-) hours/day.

Tuesday, August 26, 2008

JNode.org

Today, I was surfing the net and reading some articles. I read a comment about something that mentioned the Java based OS; JNode.. WOW...
Finally.. I am very happy for it. Very happy more than any one can ever know.

Last year I was thinking why not having a Java based OS. Imagine you can just simply write Java code and save it locally and then type a command to compile it (i.e., compile MyFile.java) and to run it, just type: MyFile
Any way,.. this is not the case. But it still could be done.
I really like it very much... :)

I was thinking of such an idea by eliminating the entire native part and moving the JDK to be part of the processor or something. That was in my previous (old) blog entry I had.

Well, of course, it had a lot of troubles for having the native related stuff moved to the processor as mentioned in the comment. But any way.. it was just an idea.

Still, I am very happy for the JNode project. I wish it would make it to the public and be a well known OS. Best of luck.. :)

http://www.jnode.org