Most developers here in the US appear to be accustomed to gray cubicles and if you’re out of luck you even have to survive without daylight. I wonder whether means you have to take vitamin D pills daily. Joel on Software seems to have a more progressive opinion about developer office space. It is a NICE office. I was actually lucky enough to have my own office while working at the Georgia Department of Audits and Accounts, which was nice.
Is Joel’s philosophy an anomaly in the American software development world? Do offices like his exist in Atlanta? I guess you can always abandon coding and just become a VP to get that fancy corner office…
Thursday, January 22, 2009
Wednesday, January 21, 2009
Doing some Marketing for DevNexus
Things are finally coming together for the DevNexus conference. Burr Sutter was sending out the first announcement messages to the group's mailing list last week. Vincent Mayers setup a targeted ad campaign on LinkedIn. We had the first couple of registrations. Today, I saw the first out-of-state registration.
Over the last couple of days we at AJUG crafted a press-release in order to not only raise awareness locally in the Atlanta area but also within the larger software development community nationally. Today I submitted press-releases to 2 press release submission sites. Let's see whether the press-release shows up in Google News. Furthermore, I submitted conference announcements to major software development news sites such as InfoQ and TheServerSide.
By the way I came across an interesting blog that provides some tips in terms of press-release distribution. It also list many free press release distribution sites. Organizing a conference is certainly a neat learning experience.
Wednesday, January 14, 2009
Devnexus Conference in Atlanta March 10-11
The Devnexus developer conference will be held in Atlanta, Ga from March 10-11, 2009. It is organized by the Atlanta Java Users Group and is basically the continuation of AJUG’s DevCon events which were held in previous years and they were always very well-received.
Together with four other members, we are right now finalizing the list of speakers and presentations for the conference, finalizing the registration website and preparing some marketing material. Well, and most importantly between now and March we need to get word out.
To me this is the first time planning an event of this scale and it has been a fun learning experience. The conference has been over six months in the making and is organized entirely by volunteers in their respective spare time.
I certainly cannot wait for the actual conference itself. We have an extremely high-profile line-up of speakers covering a wide range of topics around the Java platform as well as dynamic languages and RIA. As we make the final push towards the conference I plan on posting additional information as soon as it gets available. Keep an eye, though, on the conference’s official website at http://www.devnexus .com/
Together with four other members, we are right now finalizing the list of speakers and presentations for the conference, finalizing the registration website and preparing some marketing material. Well, and most importantly between now and March we need to get word out.
To me this is the first time planning an event of this scale and it has been a fun learning experience. The conference has been over six months in the making and is organized entirely by volunteers in their respective spare time.
I certainly cannot wait for the actual conference itself. We have an extremely high-profile line-up of speakers covering a wide range of topics around the Java platform as well as dynamic languages and RIA. As we make the final push towards the conference I plan on posting additional information as soon as it gets available. Keep an eye, though, on the conference’s official website at http://www.devnexus .com/
Tuesday, January 6, 2009
Mac is back
After I brought my Macbook Pro in for servicing yesterday, I was able to pick it up from the Apple store today. This was a surprisingly swift return. My keyboard keys are working again - Life is good again.
Monday, January 5, 2009
MacBook in the shop - Keyboard issue
I brought my MacBook Pro in for servicing today. Some of my keyboard keys got sticky. It started with the Tab-key 2 weeks ago. For several days I had to press the tab very hard in order for it to work. Then all of a sudden it worked again. However, over the weekend the T-key was aching up. Oh, and in between the J key was not always working either.
Looks like it is not an too uncommon problem:
http://www.cartoonbarry.com/2008/01/macbook_pro_keyboard_issues.html
http://www.wp-wordpress.com/macbook-pro-mbp-keyboard-problem-frozen-keys
And, I never spilled anything over the keyboard. The friendly person at the Apple Store asked that question real hard...Let's hope they fix it and I that I get my machine back sooon.
Looks like it is not an too uncommon problem:
http://www.cartoonbarry.com/2008/01/macbook_pro_keyboard_issues.html
http://www.wp-wordpress.com/macbook-pro-mbp-keyboard-problem-frozen-keys
And, I never spilled anything over the keyboard. The friendly person at the Apple Store asked that question real hard...Let's hope they fix it and I that I get my machine back sooon.
Friday, January 2, 2009
Book Review - Slide:ology
If you ever need to give PowerPoint (Or Keynote) presentations, this book should be on your desk. Slide:ology, written by Nancy Duarte, is a well-designed and easily readable book that gives you an excellent overview on how to create great presentations. Hereby, the book focuses more on the generic concepts as slide:ology is not a dedicated step-by-step how-to book for using PowerPoint. Rather, it is more of a style book with highly inspirational qualities. In my opinion, the most valuable information gathered from the book is how it changed my way of thinking when preparing presentation slides.
I particularly liked the the chapter on color theory and typography; topics that are probably more often than not ignored by many professionals while preparing their slides. Another section that I thought was very good is ‘Classifying Diagrams’ starting on page 44. This section provides a library of graphical forms and shapes that give you a good starting point for designing your own illustrations.
The book is loaded with case-studies and examples that tie together all those theoretical pieces of information quite nicely. For example Nancy Duarte's company Duarte Design helped Al Gore with his influential presentation about global warming.
As mentioned above, the book is fairly neutral in terms of presentation software used. Occasionally it provides some tips for using e.g. PowerPoint, but Slide:ology is fairly high-level in that regard. If you are looking for a more hands-on guide to use PowerPoint, you may want to look elsewhere.
Slide:ology certainly emphasizes the creative aspects of creating presentations, which is a good thing. Notwithstanding, one recommendation for improvement would be to include a chapter for the time- and/or resource-constrained presenter. Let's face it - in many organizations/departments, it might be difficult to nearly impossible to get your hands on a first-class designer who churns out those nice looking graphics as shown in Nancy Duarte's book. In that regard it would have been nice to have a chapter that addresses that issue.
Lastly, slide:ology also has its own website at www.slideology.com, which is essentially Duarte's company blog. Nevertheless, it contains a wealth of additional information and it is certainly a good companion to the book. Overall, I highly recommend this book. May it help reduce the vast amount of mediocre presentations out there.
I particularly liked the the chapter on color theory and typography; topics that are probably more often than not ignored by many professionals while preparing their slides. Another section that I thought was very good is ‘Classifying Diagrams’ starting on page 44. This section provides a library of graphical forms and shapes that give you a good starting point for designing your own illustrations.
The book is loaded with case-studies and examples that tie together all those theoretical pieces of information quite nicely. For example Nancy Duarte's company Duarte Design helped Al Gore with his influential presentation about global warming.
As mentioned above, the book is fairly neutral in terms of presentation software used. Occasionally it provides some tips for using e.g. PowerPoint, but Slide:ology is fairly high-level in that regard. If you are looking for a more hands-on guide to use PowerPoint, you may want to look elsewhere.
Slide:ology certainly emphasizes the creative aspects of creating presentations, which is a good thing. Notwithstanding, one recommendation for improvement would be to include a chapter for the time- and/or resource-constrained presenter. Let's face it - in many organizations/departments, it might be difficult to nearly impossible to get your hands on a first-class designer who churns out those nice looking graphics as shown in Nancy Duarte's book. In that regard it would have been nice to have a chapter that addresses that issue.
Lastly, slide:ology also has its own website at www.slideology.com, which is essentially Duarte's company blog. Nevertheless, it contains a wealth of additional information and it is certainly a good companion to the book. Overall, I highly recommend this book. May it help reduce the vast amount of mediocre presentations out there.
Friday, December 19, 2008
m2eclipse - Finally there
Yep, I did it - I gave m2eclipse another try, after reading an interview with Jason van Zyl on InfoQ several weeks ago. In it Jason stated that Sonatype is commiteing 8 full-time employees working on the m2eclipse plugin now. As it turns out, I am impressed. For me m2eclipse is finally there where I need it to be. In the past I looked at it several times but it never fit my needs back then. For my jRecruiter project, I am using a slightly modified Appfuse-based Maven pom. As in Appfuse, my project uses Maven profiles to target various different databases such as Postgres and MySql.
For my project, depending on the chosen profile, Maven will filter a file called jdbc.properties and replaces several properties with database specific values during the processing of resources (mvn process-resources).
Here are some properties that are being filtered:
jdbc.driverClassName=${jdbc.driverClassName}
jdbc.url=${jdbc.url}
jdbc.username=${jdbc.username}
jdbc.password=${jdbc.password}
hibernate.dialect=${hibernate.dialect}
In the olden pre-m2Eclipse days, I created my Eclipse project through Maven from the command line using e.g. mvn eclipse:eclipse -P postgresql. Then in Eclipse, I had to manually include a custom jdbc.properties file with build specific properties since Eclipse by itself can't do that type of filtering.
It worked, however, as you can imagine, this can be quite tedious, especially during the early development stage where your project's dependencies may change frequently.
But now m2eclipse is able to handle resources filtering for me from within Eclipse, which is really nice. Additionally, I can manage my dependencies using m2eclipse, and what is even better, I can visualize them as well. This is especially a live-saver when I need to figure out certain transitive dependencies.
This came in quite handy when I converted my project over to logback and SLF4J and needed to figure out all the commons-logging dependencies.
I am using m2eclipse for several weeks now, and I haven't come across any major drawbacks, yet. Granted, I haven't really dug deeply into m2eclipse's features as I primarily use only the subset discussed above, but if you use Eclipse and your project is built using Maven, please take another look at m2eclipse.
For my project, depending on the chosen profile, Maven will filter a file called jdbc.properties and replaces several properties with database specific values during the processing of resources (mvn process-resources).
Here are some properties that are being filtered:
jdbc.driverClassName=${jdbc.driverClassName}
jdbc.url=${jdbc.url}
jdbc.username=${jdbc.username}
jdbc.password=${jdbc.password}
hibernate.dialect=${hibernate.dialect}
In the olden pre-m2Eclipse days, I created my Eclipse project through Maven from the command line using e.g. mvn eclipse:eclipse -P postgresql. Then in Eclipse, I had to manually include a custom jdbc.properties file with build specific properties since Eclipse by itself can't do that type of filtering.It worked, however, as you can imagine, this can be quite tedious, especially during the early development stage where your project's dependencies may change frequently.
But now m2eclipse is able to handle resources filtering for me from within Eclipse, which is really nice. Additionally, I can manage my dependencies using m2eclipse, and what is even better, I can visualize them as well. This is especially a live-saver when I need to figure out certain transitive dependencies.
This came in quite handy when I converted my project over to logback and SLF4J and needed to figure out all the commons-logging dependencies.I am using m2eclipse for several weeks now, and I haven't come across any major drawbacks, yet. Granted, I haven't really dug deeply into m2eclipse's features as I primarily use only the subset discussed above, but if you use Eclipse and your project is built using Maven, please take another look at m2eclipse.
Saturday, December 6, 2008
East-Germany still alive - Der Osten lebt
I went to a "package store" the other night here in Atlanta, GA. Well, I bought a bottle of rum from Nicaragua (Flor de Caña) and saw something interesting -The coat of arms of the former German Democratic Republic (GDR) was on the bottle's label (second seal from the left). Since I grew up in the former east, you really don't encounter its insignias since the fall of the wall that often anymore. The text on the seal is "Für hervorragende Qualität" (For superior quality)
The label also contains a the sign of the Leipzig Trade Fair, which was East-Germany's largest (Second seal from the right).
The text on the label is: "Internationale Leipziger Messe 1980".
The respective rum, by the way, is excellent.
Friday, November 28, 2008
Where is Spring 3.0M1?
Well, Thanksgiving came and went by but no Milestone 1 release of Spring 3.0 available, yet. But it looks like all open issues for M1 have been resolved. Oh well...
Wednesday, November 26, 2008
Configure Logback from your Web Application at Runtime
As mentioned in one of my earlier blog posts, I migrated my OSS project from Apache Commons Logging and Log4j to Simple Logging Facade for Java and Logback. One piece however that was left open was my web logging component. It gives you access to your log files from within the administrative area of your web application. Not only can you download the current logfile, but you can also change the log levels at runtime. Just in case some of your app's users hit an issue and you can't SSH into the server that very moment but have web access - at least you can gain an overview of the situation quickly.
Here is a screen-shot of my application's logging component:

The tables are rendered using the JMesa data grid, which works very nicely. The tables are paginated and the columns are sortable as well as filterable. Furthermore, the table is refreshed via AJAX using the jQuery JavaScript library.
On this page you can:
Although I originally used Log4j to retrieve the required logging data, the conversion over to Logback has been fairly straightforward. Here is one of the methods that interacts with logback and returns a collection of loggers:
Here is a screen-shot of my application's logging component:

The tables are rendered using the JMesa data grid, which works very nicely. The tables are paginated and the columns are sortable as well as filterable. Furthermore, the table is refreshed via AJAX using the jQuery JavaScript library.
On this page you can:
- View your log files
- Download the logfile as text file
- View the configured loggers
- View all available logger
- Set logging levels for any of the available loggers
Although I originally used Log4j to retrieve the required logging data, the conversion over to Logback has been fairly straightforward. Here is one of the methods that interacts with logback and returns a collection of loggers:
public static List <ch.qos.logback.classic.logger> getLoggers(boolean showAll) {
final LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
final List loggers = CollectionUtils.getArrayList();
for (ch.qos.logback.classic.Logger log : lc.getLoggerList()) {
if(showAll == false) {
if(log.getLevel() != null || LoggingUtil.hasAppenders(log)) {
loggers.add(log);
}
} else {
loggers.add(log);
}
}
return loggers;
} Anyway if you look for something similar for your own application, you can download all the relevant source code here. Please be aware that the archive is not a full demo application but rather a couple of source files cobbled together. If you rather like to see an entire buildable demo application, just let me know.
Subscribe to:
Posts (Atom)