-
I have enjoyed very much the comparison Mik Kersten is presenting in the first part of AOP@Work series. I have been around AspectJ and AspectWerkz for a while, I've read the documentation of Spring, but never got the oportunity to go deeper into JBossAOP. So I was happy to read a quick intro to all of them. I would state from the beginning that in my opinion AspectJ and AspectWerkz are the strongest solutions (and surely the AJ5 project will be the best). However, the reason behind this entry was to point out one difference (very important imo) between the analysed solutions: JBossAOP and Spring are still interceptor based solutions. (their implementation is probably based on proxies; offering join point context through reflection API) and because of this they are presenting some limitations: non-real before, after (with all the different flavors) advices (NB: I think that the correct form is pieces of advice), harder control flow usage. And yet another thing: this interceptor based AOP will be pushed into the EJB3 spec (but about this I will talk on another entry).
-
Yesterday was a great day for me: been accepted as a commiter to AspectWerkz project (thanks again Alex and Jonas, you are just great! - I will write more about this some other time). And now the short story: I got to set up my environment to access CVS using SSH with keys. I think every developer has successfully done this once - this is why I've been a little pissed off. I have generated the keys using ssh-keygen and than another pair with PuTTY. By looking at them I have noticed that they are very differnt. Why this? But let's continue. Finally the PuTTY generated public key was placed on the server and now the long series of tries begun: ssh client (from cygwin) was refusing to connect. Turning verbose mode on (you place up to 3 -v options in the command line) I have found out that indeed the private key was not recognized. I have gone back to using PuTTY and I have successfully logged in. Next step would be having WinCVS and Eclipse connected. In order to shorten the story, I made WinCVS work with Pageant and ssh protocol (i didn't know about it, and I don't think this is correct - as I should use ext or extssh protocol). With Eclipse, I have successfully connected using plink and ext protocol but not with Eclipse SSH support and extssh protocol (probably because of the keys incompatibility, it was failing to connect with an unpleasant/non-explicative message: Auth fail). I would like to find out what I was doing wrong and how I can do the following:
- make WinCVS work with ext or extssh protocol (probably using plink)
- make Eclipse extssh connection work (so not using plink)
-
Through Dion I have read the AOP initialization guide published by Richard Monson-Haefel. Wow! It would be great to be so easy. Unfortunately I have the feeling that it is not like this (hey guys everybody would already got the mind on fire after so many years of AOP and only 3 steps to get it). Moreover, I think that these 3 steps may in fact lead you to wrong conclusions: aop will solve your logging problems; aop is not standard and maybe the most dangerous one: aop is interception. I know this, because they all happened to me [damn-it/]. I have been tricked by these during the years I have tried to get to AOP. I've met AOP ideas a few years ago. I have jumped to AspectJ in his early days and I didn't like it - why? because it was not pure java, because I couldn't find much applicability. At those days J2EE was pushed high and I got to JBoss with their interception ideas used inside the container. And I have been tricked again: AOP is interception. It took me longer to put me back on the right track and to really understand what AOP is. I guess I have got the the real picture after reading a couple of AOP papers and definitely after reading a book - that absolutely great book of Ramnivas AspectJ in Action. Nowadays the AOP presentation is more powerfull than ever: the most powerfull project AspectJ with its upcoming AJ5 and a full set of books to cover and introduce you to the AOP world. These days it will be harder to fall to the same mistakes I've made. But still beware! Choose carefully your first (3 or more) steps to AOP and don't be afraid to ask if you are on the correct side of the street.
-
We are not using any XP techniques or (estiblished) agile development. But we interact a lot, we really enjoy our short brainstorming meetings and our whiteboards. We are trying to solve our tasks at our best (god i hope one of my bosses reads this [smile/]). During some of last tasks I have suggested to my colegues to do some pair programming in order to optimize the process and catch as many problems immediately. We are not prepared for pair programming (as regards the equipements), but it was a nice experience (at least for me). What caught my attention at some point was a remark of one of my colegues:
it's really hard to think in pairs
I have tried to figure out what that meant: is it really hard to express your ideas in front of some other guy?; is it really hard to watch another guy typing?; is it less efficient than having the piece coded by yourself and later reviewed?. I don't have a objective answer to all of these, but I feel that if my ideas are hard to be expressed in front of other guys is caused only because they are not clear to me. Sometimes I start working on something and let it evolve even if the initial idea keeps changing all the time. But if your pair has got the main idea you can do this also together. Is it really hard to watch another guy typing? Hmm not exactly. Maybe from time to time when the guy is too tired, but that is exactly the moment you should take control. Is it less efficient than having the piece done by yourself? Probably the typing step is longer (if the other guy is not a champion at writting). But you'' not be wondering around your ideas by yourself and after finishing you will not have to remember every aspect of your work in order to answer some other guy question. You will have that piece ready and understood/assumed by two guys in the team. This is really good! I will not advocate that pair programming must be applied always. But I think it really fits in some tasks and can help the guys have it done shortly and well. So, imo it is not hard to think in pairs! -
Gooood morniiiing .... Bucharest! Just opened my eyes (coffee cup waiting), fired up Firefox (homepage on Google)... and another surprise from Google: Google Local. Just like another zillion of Google users I have searched for "pizza" in Bucharest (my home town) and unfortunately I have found out that I will not be able to have a pizza here. But I will try Naka-ku near Nagoya location. He he, I am just kidding: the service is in beta stage and works only for USA and Canada locations:
For now, Google Local only searches for locations in the United States and Canada. We plan on expanding this service to other parts of the world once we work out the kinks in this beta product; in the meantime, we recommend Miyoshiya for noodles in Naka-ku, near downtown Nagoya.
My next step would probably be to get my brains hired by Google as I know a lot of pizza restos in my neighbourhood and I would be able to increase the page rank of some of the nicest places to drink beer. All in one, it will be a very neat service when avail world-wide and your are a stranger in town. Good work again Google! -
A few weeks ago I have participated in a JavaRanch forum having as a guest the author of Subversion in Action, Mr. J.Machols. The discussions were very interesting and I have found out a few things that I have probably missed while reading the free book. One of the things that attracted my full attention was that the developers of Subversion are in fact the former developers of CVS. I have been using cvs for a long time and I cannot tell I have faced many problems with it (maybe the most annoying one was the renaming/moving). Also I can say that there are a few things in Subversion that I dislike (the version number available on repository and not on project), but I have concluded to give it another try (yes, I have tried using it for my local project a while ago, but with no success). And, unfortunately, the feeling was quite the same as the first time. While the product itself is every day in a better state offering a lot of nice features, the support tools are pretty far behind. Probably the single notable one is TortoiseSVN which provides a nice integration with Windows Explorer. Now, having in mind the development environment (IDE) I must say that Subclipse plugin for Eclipse is trying to mimic the CVS module, but, again unfortunately, it is far away. So, for the moment I will just say: see you soon Subversion. Hope your tools will catch you up pretty soon!

