-
Yep, finally J2SE 5.0 reached the final stage (or is it the first one in fact [wink/]). You can get it from here: download it!. SUN fox prepared also a bundle of Netbeans 4.0 beta 2 (another surprise). But what IDEs are prepared for this. I think only IDEA (from the most popular ones) has gone all the way and have everything prepared for it. Check them on your own - you will be able to identify better your needs: . I have no information about JEdit and JDeveloper (can you update me please?). I definitely go and try it with ____! (eheee tell me, do you know which is my favourite?). (Dion has already announced this release. He is quick!).
-
I am looking for a tool to analyse the external dependencies of a set of classes. Here is a list of what I have found till now, but if you know others I will be happy to grow up the list:
- Java Dependency Smart Analyser
- Dependency Finder
- JDepend
- Ant Depend Task
- classdep - The Java Package Dependency Analyzer (seems quite dead [sigh/] )
-
Today I had to create an automatic build for a Tuxedo Server. It requires the following steps:
- generate sources from header files
- compile each source with Cobol compiler
- link all obj files into a dll
set LIST= for %%i in (*.ext) do set LIST=%LIST% %%i
but it didn't work. After a while I have found out that I should enable delayed variable extensions and the above lines would become:set LIST= for %%i in (*.ext) do set LIST=!LIST! %%i
At this step I wasn't sure I want to continue, so I have decided to switch to Ant. Here obtaining the list of files was an easy one pathconvert did my job immediately. But I have faced a second problem: how should I pass each generated file to the Cobol compiler. The solution I have found (and I don't know if it the unique one - give me hints if you have) was to use a script task. After downloading BSF and Rhino in a few lines I have solved my problem. Again Ant proved it's a great tool for building projects. I would appreciate any other possible solution. -
I have increased the fonts on all of my blog entries. Many thanks to my friend Dragos (who is also a blogger @rgumente) that showed me that for IE users this blog is almost unreadable.
-
I was looking for this all my life (ehhh... just kidding, just in the last time). It is the best thing I would expect. Take a look: notebook.
-
A long list of "got to know". Journey to Java And I see it completed on other places :-), so I would like to add 3 more (for the moment): XXIV+: You need to now how to use mock objects in your testing environment. XXVI: You need to know how to refactor code. XXVII: You need to know some enterprise integration patterns.
-
Finally I got the time to publish the site of dtoGen™. Here it is dtoGen™. This is a tool I have developed in the last weeks. It provides an easy way to generate DTOs out of the domain model objects. The scenarios enabled by dtoGen™ cover a large range of issues related to DTO to domain model relation. Take a look at the detailed documentation and you will find out how util it is :-).
-
Wow! I am not working with a cool language. Damn it! My applications are not cool because I use a not-so-cool programming language (Java). My joy of everyday (and sometimes also night) job is gone. I must/will switch to a cool programming language. I think that I will join the guys which developed for 20 years in Cobol finding it very sexy. (don't take me wrong Cobol guys, in my heart/mind I really appreciate your work). I am astonished. Talking about a programming language/paradigm to be cool and/or sexy makes me really angry. I really think that some people should talk about having a programming job (I thought for a moment to write programming, but are too many guys pretending to be programmers when they are simple coders) to be cool/sexy (but this times I think are passed too) and not the other way around. I think that if you cannot find the coolness/sexiness in your application (in every piece of code your mind spits out) than maybe you will not be able to find this pleasure in another programming language (but I encourage you to continue to look for it). Moreover, I have decided now to choose for my future applications the solution according to the coolest programming language poll. I will not design and write applications to best fit my customers, but to use the coolest programming language. Back to reality. A programming language represents the means to create something cool/sexy. Your application must be cool (and not only from your point of view, but also from the point of view of your customer). Your code can be also your little piece of cool. If you cannot do this maybe there are other things you may want to do instead of programming. Update: taking such a big decision I have forgot to place some references (they are able to change your life :-) ): Does a tool need to be cool Ho Hum Java Java and coolness, a discussion
-
A Collection of JVM Options Good job Joseph and thanks!
-
I have read in the last time a couple of articles about offshore development and all of them seem to spread the same fears. Moreover all of them were written from the point of view of a consultant. After some thinking I must say that I cannot agree with some of their points, and I will detail this upon the article Consider The Total Picture for Offshore Development. The main article argument (against offshore development) is directly the financial one. But, it is very hard for me to believe that some company financial dept. will miss this computation and so involving offshore dev will result in fact in a financial loss. The computation made is based on the fact that offshore development implies the increase of the work done in the originator company. The over costs involved are: detailing the specifications, proximity to the customer, industry know-how, etc. All of these arguments seem to me pretty fake. Why? Let's take them one by one and see.
- Detailing specifications. A specification can be understandable and usable from the beggining in which case a good developer will be able to use it correctly, but in many cases the specifications are changing/improving during the project life cycle. These changes are adopted mainly after technical meetings. I cannot see a real problem having a face-to-face or a phone conference in order to establish some further steps. Moreover, some trips of the decision guys cannot brake the project budget.
- Proximity to the customer. Hmmm, I do not think that a developer is in fact responsible with this. The marketing guys have this job and many times they do it much better than a developer may wish to do it. A company which base its relations to the customers on developers does not seem to be a serious company. You cannot ask a developer to sell.
- Industry know-how. When involving offshore development it is not required to use entry level developers. I am quite sure that an experienced and well chosen developer will be able to understand the target of the product on which he is working.
- communication deficiencies (easily solved if a correct location is chosen)
- cultural differences (same as above)
- national interests/subjective reasons (the IT market in the originated country is decreasing closing too many positions).
-
XDoclet seems to approach a new version 1.2.2 (and also they seem to have broken their 6 months period between releases). I will give it a look to see what way are the guys going now. XDoclet on SourceForge Update: I think at some further point dtoGen™ can become an extension to XDoclet. Must think at this.
-
I've always used for my examples the well-known names: Foo, Bar... and than FooBar. But when reaching the 4th one I always found myself asking for its name. Now I am happy that grace to What's next after foo, bar? I have found all the guys around Foo and Bar. From now on my examples can be larger and more expresive :-). Welcome to the gallery: foo, bar, baz, qux, quux, garply, waldo, fred, plugh, xyzzy, thud.
-
I got back from a nice holiday in Turkey. Very relaxing. I think I have fully charged back my batteries. But coming back to the title, I've found in my GMail account 6 invites and I intend to give them away to the first 6 posters. (I know, I know everybody is doing this right now, but I do not have any other friends to give them). So you are welcome to post a short comment including your email address and you will receive an invite. Update: I see that at this moment the people is no more excited about GMail invites. This makes me think if the Google guys are reaching their target.
-
I have to manage about 5 or 6 small independent projects I am working on. As for any projects, mines have bugs too. So, I have asked mr.google for some lite, stand alone bug tracker system. After browsing to a couple of company sites I have found out that all available solutions are web based. I do not need this. I would like to have something very simple - Java is prefered :-) - using a direct connection to some embedded database. Is there something like this? Update: I have found one: BugCollector Pro Defect Tracking Software for Windows. As you can see from its name it has only one drawback (guess!).
-
This (short) thinking process started when commenting on Cedric post: AOP Still Not There. The first think I have in mind about this is: it is here, it is enabled to be here, but we are afraid of using it :-). Involving a new technology in your solutions is not an easy process, it must pass through different steps of beaurocracy, it must survive unaware critics, it must survive your real scenario. Moreover it must offer you a better solution. And I guess this is the criteria where AOP may fail :-(. I don't want to be missunderstood! AOP will not fail the "better solution" criteria just because it is not best suited for solving a range field of problems, but because the war of acceptance takes place on wrong dimension. The tech guys fight this battle against the marketing, financial and management guys. It's like saying let the tech guy sell some stuff. While they will be (maybe) able to present it from a technical point of view in the brightest colors and they may underline a full set of benefits, the other army has a way to large strategy/tactics to contra-atack. A short version of this fight would look like Tech Guy: - Hey, I have analysed this problem and I consider that the benefits of adopting this solution will be outrageous. I do not count here the fact that the code will become clearer and more maintanable, but I see some oportunities in here to solve those damn issues we are facing for some time. Others: - Hmmm..., ya, you are right. But how well do we know this stuff? Who are the supporters of this? (is there any giant company supporting this?) Tech Guys: You know there are in fact some big supporters of it... Others: Oke... let's see. Why isn't X offering a commercial solution for this? Why isn't offering Y an integrated solution? Tech Guys: (???) Others: Oke... where shall we have to look for support? Any company offering trainings? Tech Guys: The creators are doing a lot of good job, they organize all the time conferences, and presentations. Not to count some forums (.... on the other side: silent yakkkk) where they publish their knowledge Others: Does our IDE support it? Tech Guys: You know, there is some work to support this in [product] and they improve it all the time... Others: we cannot shift all the dev guys to that product Tech Guys: not all of us must use it, just those involved into this kind of tasks. Others: Oke... do we have to buy some books on it? Are there any published? Tech Guys: oh yes, it should be nice to have some, but in fact we can count them on one-hand fingers. But you know they are in fact really good and they help you a lot... Others: ... so we don't have a real support for this. How it is supposed to solve some problems that may occur? [... the discussion continues.... after some time] Others: you know, shifting all of our dev line to this is not affordable to us. High risks are involved, and the support sucks. We cannot encourage you to go to niche solutions. Tech Guys: ... but it is not... Others: Come back when you are able to show me a real solution. Thank you! Concluding, I think that if we, the tech guys, are not able to adopt a solution or at least encourage it (finding best scenarios, telling the truth), the "others" will not jump to it. Passing around a full circle of fears, will not solve our problems and will not help good technologies to become big ones (large adopted).
-
Quoting Bill Burke: That doesn't mean innovation should be relegated to a standards body. Organizations like the JCP should be a place to standardize innovations, not create them. Should it be read make a standard out of an innovation or put a standard in the innovation?
-
A nice method in AccessibleObject: setAccessible(boolean). [quote] A value of true indicates that the reflected object should suppress Java language access checking when it is used.[/quote] This way you can improve a bean access tool. Nice to know (i missed this till now [oops/]). I guess many guys already know this.
-
The list of the books I need/want is increasing. Here it is: * Java Transaction Processing : Design and Implementation * Java Platform Exception Handling * Eclipse AspectJ : Aspect-Oriented Programming with AspectJ and the Eclipse AspectJ Development Tools * Professional Hibernate * Professional Java Development with the Spring Framework * The Definitive Guide to SWT and JFACE * SWT: The Standard Widget Toolkit, Volume 1 (The Eclipse Series) * Eclipse: Building Commercial-Quality Plug-ins (Eclipse Series) If you are a between-the-lines reader you can easily figure out my interests ;-).
-
This feature will really improve the number of my postings. Logging in everytime I want to post is kindda difficult :-(, so posting by sending an e-mail would be the perfect stuff for me. Update: and now it is really working.
-
Reading an article on the open source maturity model, I found myself asking how am I estimating the usefullness of a project and its adoption in my current projects. The process through which I adopt/reject one project is quiet easy (and not so mathematical as in the article). I have a refined requirements description. I gather any info available and I choose the possible candidates - sometimes between the candidates I can find projects that do not provide the 100% solution, but they present a nice idea that can help me. I always start the investigation by looking at:
- the licensing process
- version number
- release iterations (how often the guys came up with a release)
- the latest release date
- licensing process
- in many cases imposed by the company
- version number
- project maturity
- release iterations
- the guys are really supporting the product or it is just a toy
- latest release date
- is it still alive? (if not, it may mean they have reached a deadend)
- is threre documentation available on site?
- the guys are doing a proffy job
- is there any publication?
- there is interest in the project - I'm trusting the marketing guys from publishers ;-)
- do the project has a large community? (are there any mailing list, forums, etc)
- the project is adopted
- how much alive is the community? (how often a post is made, how soon you can get an answer, are the dev guys involved in solving user problems?)
- the project offers good support
-
I have found a nice project about taking snapshots out of model and puttin this on DTOs (XSnapshot). As in my current project we have lots of DTOs I've jumped on board and try it. I am generating the domain model classes from Hibernate mapping files. I have found a way to include in the generated files the javadoc tags required by XSnapshot (by using the <meta> element ;-) ) and then I fired the XSnapshot Ant task. Wow! I got my first DTO directly from domain model objects without having to write a single line of code. Nice! Now the second step. I have some DTOs which are made up from properties fetched from different domain model objects. Oke, let's get these generated too. Taking a fast look at available tags I have found that @xsnapshot.property has a match attribute which can have as a value a list of comma separeted DTO names. Fine, so it might work... but surprise... it isn't :-(. I jumped to the sources and after some digging I saw something strange (for me, at least). I thought that for being able to have the a/m scenario working the guys should use some kind of repository before generating the code, but they haven't. So there is no possible solution. I've started the mail and asked a question to the dev guys. Only after a few hours I got the solution from the guys: if I want my scenario to work I should do some coding. Yakkk! XSnapshot supports the generation of DTOs by initial domain model object. So if I want to gather info from more than one domain model object I should write down a class to include the generated DTOs. Why, oh why? I think I will start my own version of xsnapshot - forked. (to be continued)
-
As my job requires a lot of solution creating/testing I found myself many times re-re-re-rewriting the same pieces of Ant scripts, creating the same project structures and passing rapidly through the documentation to refresh my memory (the list here is by no means exhaustive :-( ). It doesn't take too much time to do this, but if I sum'em up I think I will get a big figure. So I decided to start the Small Pieces of Reusability repository. I intend to put inside anything that can be quickly used for testing (a deployment in JBoss/Weblogic/WebSphere, a configuration of queues/topics on JBoss, a deployment in Tomcat, etc). Another cool think will be to have the tips & tricks repository :-) - but this requires writting documents - which is not one of my favourite activities (but for saving time I think I will start this too). The first things I want included in Small Pieces of Reusability is a deployment for the ASs I am using and also for servlet containers I am using. Than ... I will see what comes next.

