Standing in the Field
Notes from SJS Application Server Field Engineering
Just a quick link, as I'm working on a couple of big deadlines that have kept me away from the blog.
GTD is fundamentally about lists and trusting those lists. Jason Clarke makes some insightful points about how people use email inboxes as lists. He says that there are "filers" who use folders to archive messages and "pilers" who just stack stuff in their inbox. And that pilers tend to be lose todo items as email drops off of the first screen of the inbox.
How true. Even though I'm working a ninety hour week this week I don't feel like I can let my inbox grow out of control. If I don't have my inbox completely empty once a day I feel like I'm losing control. Every email isn't "done", but I've at least done a GTD workflow on every item. In other words, I've either deleted, filed, done, delegated or deferred each item before 24 hours has passed.
Jason also has some ideas about how to better use email folders. I think I'll follow his advice and simplify my IMAP folders to make searching my mail archives easier.
(2005-02-11 07:32:34.0) Permalink Comments [2]This is the wrap up to my series about Java Metadata (aka annotations). Part one here, part two here.
In the previous two sections I discuss the basics of metadata and some of the interesting advanced functionality available through the apt annotation processing tool. In this section I'll present some of my thoughts about how metadata affects the future of Java and some of the pros and cons of using metadata today.
If you've ever heard the Java engineering folks (both J2SE and J2EE) speak, you'll know that they are very excited about the possibilities that metadata brings to Java. Both the J2SE and J2EE teams are looking for ways to make Java easier to learn and use. Metadata is a way for them to reduce lines of code required while at the same time as improving code readability and tools support.
There are lots of examples of using metadata in active JSRs. Metadata is going to be used to enable declarative web services, O/R Mapping, and the next version of CMP. There is also the hope that tools vendors are going to find interesting ways to use annotations. Perhaps custom annotation libraries. Perhaps GUI tools that use annotation markers to enable full lifecycle development.
But it is easy to see that while metadata may not be commonplace in production code yet, a couple of years it is going to be an integral part of Java. Knowing how to use metadata will be as important as knowing how to use the Collection library or deployment descriptors.
Unfortunately, however, metadata is still on the bleeding edge of Java. Java 5.0 has dipped its toe into the water of declarative programming by introducing metadata into the language. But using the more advanced features, like modifying the behavior of the compiler, requires you to use apt and APIs like com.mirror.* that aren't guaranteed not to change. Not to mention that tools like apt do not have any tools support and have some known bugs. It was very frustrating not being able to use tools like ant in my demo because of their lack of apt support. Not to mention the fact that my IDE wasn't smart enough to know that the Factory classes were going to be autogenerated.
As much as the J2SE team would like to see apt begin to replace other tools like XDoclet, there are still significant gaps that have to be addressed before apt becomes a mainstream tool. It reminds me of the early days of JSP where you had to be careful about which API's you used because of the differences between the 0.92, 1.0, and 1.1 specifications.
I can't really recommend that creating customer annotation processors be a part of enterprise application development yet. The tool support and API stability isn't there yet. But there isn't any question that metadata is going to be a fact of life for Java developers. Nor is there any doubt about the power that annotations will be able to bring to developers and tool vendors.
So I recommend that everyone get familiar with the basic syntax of Java annotations. It's going to be an absolute requirement for using J2EE 5.0. But I'd also recommend that people start to experiment with what is possible in apt. When you are architecting your code, think about what would be better expressed as declarative functionality and how you might implement it as an annotation. Write a demo application or step through mine to learn some of the possibilities for metatdata.
Because, based on the current JSRs, metadata is going to be adopted very rapidly by the Java community. Being able to demonstrate your ability to extend the functionality of Java via metadata will be a very powerful competitive differentiator for developers.
(2005-02-01 19:16:52.0) Permalink| « February 2005 » | ||||||
| Sun | Mon | Tue | Wed | Thu | Fri | Sat |
|---|---|---|---|---|---|---|
2 | 3 | 4 | 5 | |||
6 | 7 | 8 | 9 | 10 | 12 | |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | |||||
| Today | ||||||