Dependency hell starting work on a new project
A lot of Java bloggers are complaining lately about the difficulty of finding good Java programmers and how universities seems to be doing a lame job of teaching computer programming. What about reading about the experiences of someone who actually spent some years teaching computer programming at college?
There are tons of books and articles about how to design and write good Java code, but surprisingly little about the specific topic of API design. On my artima.com blog I wrote a summary of what I've learnt on the subject from various sources and my own experience.
As you might know, my colleagues and I had tried to perform a round of offline Java programming contest back in November (you can read more about this here).
Due to a number of reasons, we had no winners that time, however, all participants got some encouraging gifts :-)
We had decided to go with another round of the contest. It should start any day now. Please keep watching...
So, what turns a programmer to a Java programmer, and whom would you prefer on a Java project, an excellent Perl developer or a good Java developer?
I'm sure in the last few months you either heard or read about how good Solaris 10 is, well so have I. Instead of just passively reading about it, I decide to act and actually take it for a spin myself. I can summarize my experience in one word "Wow". I hope this blog will convince you to do the same: it's time to stop thinking about moving and actually doing in it. Not convinced? Well read on then ...
Anarchy in software development.
XML is well-understood and ubiquitous with Java -- but are domain-specific languages better suited for many tasks?
The decision by the Ant development team to put the junit task archive (ant-junit.jar) into Ant's lib directory without the junit archive is maybe convenient but caused me to waste some time to figure out why the same Ant script works on my box but not on my coworker's box. Both solutions outline on Ant's FAQ have their drawbacks and I think that this is another example where convenience is a good source to waste them on the long haul.
If you are working in Eclipse, you will find that Mylar plugin can be very handy. It monitors your interaction with the workspace and filters out the classes / methods / fields that you do not use or change. The resulting view of the workspace is much more focused on your current task.
Web Application Security Vulnerabilities are a tricky area that needs creative solutions. Several frameworks solve a lot of problems for you and it may cause a weak perception about what really happens into the underneath code. This entry comments the Html Injection Filter - a set of classes that prevent Html injection into Cejug-Classifieds Project.
Do natural languages have anything to do with computer programming?
Some thoughts on Java build tools, looking for more info from you!
Every year, a couple of "golden hammers" die and a couple of new "golden hammers" are (re)invented. Bloggers proclaim the new kings, consultants rush in for a quick buck, managers start believing that they will be able to ship the next version on time... Where does it leave us, the guys who actually get stuck with these hammers?
Few years ago people produced bank applications with less than 1Mb of memory (do you remember ambar screens?). Nowadays, any computer without 1Gb RAM seems useless for the developers. Part of this complexity comes from the user demand - friendly GUIs, robust systems to inapt users and the sophisticated technology and tools. Other aspect is about the interoperability among systems that pushes the simplicity away (SOA? EJB?). It is a natural motion in the software industry and people are not worried about that - but there is the developers side. If one starts a simple project without thinking about its size, a system could depends on 10 Mb or more just to read mails and save files, and that's seems to be a next quality concern.
Want your app to be a hit in Japan, Germany, or even China? It all starts with an understanding of Locale.
Recommendations and best practices for exception handling in Java.
I've just upgraded my home office; tell me what about yours -- and point out what I'm missing.
You have limited time for conferences, but if you're involved in software internationalization, the Unicode Conference has to be on your list.
The singleton pattern must rank one of the most-widely used. We all know the pattern and its benefits. Joshua Bloch taught us how to ensure single-instance when the class is Serializable. However, it's quite easy to make any number of fully-functional instances of your singleton class using a simple ClassLoader trick.