Twitter Recap for Week Ending 2009-06-01

Posted in: Social Networking
  • #JavaOne book signing schedule available http://bit.ly/10ZIlm #
  • @gorkeyv – your precious Pre is available on bestbuy.com for $849. why dont you run out and get one. right now? http://bit.ly/MGN3Z #
  • I think my #TweetDeck is going to meltdown trying to follow the #JavaOne related tweets this week. #
  • My little one’s 18 month birthday today. Wife and I are celebrating with cupcakes and a Mendocino Brewing Co. White Hawk IPA. #
  • @gorkeyv who cares about the #pre. the real question is, will you be smart enough to buy a new #iphone in july instead? in reply to gorkeyv #
  • #DMB new unreleased album now on Pandora in its entirety. http://bit.ly/18csV #
  • @gorkeyv the revolution train left the station a long time ago and #Palm never bought a ticket to ride. #
  • @aiku1337 I believe Sun Certifications are free if you are attending #JavaUniversity on Monday, otherwise it is $79 for #JavaOne attendees in reply to aiku1337 #
  • Woo Hoo! Reached 150 connections on LinkedIn. World domination is surely just around the corner now. #
  • Palm Pre in iPhone class, but Palm is running on fumes says Mossberg. #palm #pre #iphone http://bit.ly/CX9K8 #
  • @crunchgear says Palm Pre is an also-ran. #palm #pre http://bit.ly/VskcZ #
  • Netflix just sent me Horton Hears a Who! #
  • Netflix just sent me The Black Crowes: Freak ‘n Roll into the Fog #
  • Family Blog Update: Where’s Callum? http://bit.ly/xGomM #
  • Happy Birthday @alicia_s. BTW, you are so totally old! #
  • Family Blog Update: Why are there no lights? http://bit.ly/gJE7E #
  • Netflix just sent me Death Bed: The Bed That Eats #
  • RT @JavaUp: JavaOne Party Planner http://ff.im/3oC1d #
  • Basking in the glow of passing my SCEA exam on Friday afternoon! #
  • Welcoming @michaelpallas @chungsean @srabon and @briankous to the Twitterverse. #
  • #javaone hell week officially begins. flying SNA to SFO today, hope to catch some of the Glassfish Unconference this afternoon. #
  • In Admirals Club @ SNA. Check-in was as dehumanizing as usual. #
  • Family Blog Update: Party Time!…. http://bit.ly/Ryr02 #
  • Checked into hotel. Room is on the 29th floor. Should be entertaining in earthquake country. #
  • Checked in @ #javaone. First load of swag is in the bag. #
  • They are handing out hand sanitizer as part of the swag @ #javaone registration. #
  • At the Glassfish Unconference. Approx. 60 people here by my count. #javaone #communityone #

links for 2009-05-30

Posted in: Social Networking

Upgraded My SCEA Certification

Posted in: Enterprise Java, Software Development Best Practices

I am happy to announce that yesterday afternoon I passed the exam necessary to upgrade my Sun Certified Enterprise Architect certification to the JavaEE 5 standard. I was previously certified for the J2EE 1.2 standard.

I have been working with a study group, but I am the only one who was upgrading, everyone else is working towards passing it for the first time. So I am the first one that is done.

Good luck to my study pals!

JavaOne 2009 – (Mostly) Important Questions

Posted in: Enterprise Java

JavaOne 2009 starts in 5 days. Here is a list of questions I am looking forward to finding out the answers too.

Has Hudson Killed CruiseControl?
Seems like it has based on the number of mentions of Hudson vs CruiseControl in relation to the content at JavaOne. I lost my interest in CruiseControl when ThoughtWorks spun a for-profit version out of it. The only company I have seen be successful at this strategy is JBoss/RedHat where they develop the open-source version first and then roll the for-profit version out of that. The other times I have seen this attempted, all of the effort goes into the for-profit version and the open-source version ceases to progress. There is something fundamental about that 2nd pattern that just smells bad and doesn’t really seem to be in the spirit of open-source.

What Will Be The Volume Of The Twitter Noise Coming From Inside The Conference?
I have been tracking the hashed keywords related to the conference for a couple of weeks now. The volume has been slowly increasing and took a big jump on Tuesday morning when everyone got back from the long weekend in the US. I expect it to keep building up until Tuesday morning, but then what? Does it slow down because everyone is busy, or does it kick into a whole new gear and my trusty Twitterberry will just meltdown in the middle of the opening keynote?

Also curious to see what ad-hoc social activities get incubated in the Twitterverse during the conference?

Will AJAX Presentations Be THE Place To Be Seen For A 3rd Year Running?
The last 2 years have seen crazy interest in anything AJAX related. With Ben Galbraith and Dion Almer (spelling from memory there) being the focal point in their always entertaining presentations. But it feels a little like AJAX is getting to be slightly old news, at least in this forum.

My guess is that anything cloud related is going to be the hip place to be seen this year.

What Will The Oracle Presence Be?
AFAIK, the Oracle/Sun deal has not gone through yet, so technically Sun is still an independent entity. But of course I am also not naive enough to think Oracle won’t be pushing to start getting their hands on the “goods” at this conference. Will there be an Oracle presence in the keynotes that are traditionally Sun’s (the 2 on Tuesday and the 1 Friday morning)? What about signage around the conference? Oracle always has a booth in the pavilion, but will it be bigger, better positioned etc. this year?

What Will The Reaction To The Microsoft Keynote Be?
So the Twittervese exploded earlier this week when it was announced Microsoft will be presenting the Thursday morning keynote. Anyone who has been playing with Java long enough knows that Microsoft has not really been Java’s best friend. So, will the Java community accept Microsoft on the main stage? It would be nice to think that there will be some passionate reaction, either outrageous clapping or hateful booing, whatever, as long as there is some definitive reaction I will be happy. I fear the Java faithful might not be the kind to wear their hearts on their sleeves quite that much though.

Does the Oracle deal have something to do with Microsoft’s presence? Why does Oracle not have a keynote instead? Curious indeed.

Will Jonathon Schwartz Look As Uncomfortable And Awkward As Usual?
I will admit upfront that I am a Scott McNealy fan. He was passionate, and engaging to listen to on a stage. I was not happy when he was ousted from the top of Sun.

But even if I temper my anger over that situation, can anyone really be interested in listening to Schwartz talk? His stage presence is awful and he is robotic in his delivery of obviously scripted lines when guests are on stage. And don’t get me started on the pony tail, sport coat and jeans look! Bring back McNealy for the last one please!!!!

Will James Gosling’s Toy Show Seem Overly Long And Desperate Again?
I have a lot to thank James Gosling for. Most of my career is based on the technology he invented. I would like to have a beer with him at some point no doubt. But man, he is only marginally better than Schwartz on stage.

And I do not really understand the point of the Toy Show in the Friday morning keynote. You are at THE Java conference, and so the audience has self selected itself as resoundingly pro-Java. So why do we need a 3 hour carnival of Java applications trying to prove to us that Java is cool. We already think it is cool, that is why we are there. A lot of it just feels like they are pleading with us to please, please keep thinking Java is cool for another year until the next conference.

Will The Lunch Lines Be Under Control?
Getting your “free” lunch at JavaOne is an exercise in forgoing your basic right to not be hearded like livestock and yelled at by over zealous minimum wage event staff. It is like they are surprised by the number of people that show up for lunch each day, like there was no way they could possibly have guesstimated how many people might want to eat that day. Seriously, it is your last chance to get it right, please make an effort.

Will It Be Crazy Cold in Yerba Buena Gardens on Thursday Night Again?
Why is the Thursday night party outside now? I can’t possibly imagine it is much cheaper is it? It is San Francisco, it is cold on the hottest day of the year. I froze my ass off last year. The long range weather forecast looks like we are in for the same again.

Will The Bookstore Be Given More Space?
Doubt it. There is a whole convention center, and the bookstore gets jammed in a 10 by 30 square. Why? Why do you hate people who like to read?

Will Enough People Use me As A Reference So I Can Get The Better Swag?
I know 3 people who did, I think I need 2 more. I will even buy you a beer. My number is W1302019. Go ahead and earn yourself some karma points.

Why are the A’s and Giants both playing away all week?
A big boo to the MLB for having both teams out of town this week. It has become somewhat of a tradition for me to take my team to the baseball during JavaOne and you have destroyed that cherished pastime. Shame on you Bud Selig.

See you in San Francisco!

links for 2009-05-28

Posted in: Social Networking

HOW TO: Build Your Personal Brand on Twitter

Posted in: Social Networking

HOW TO: Build Your Personal Brand on Twitter

Posted using ShareThis

Twitter Recap for Week Ending 2009-05-24

Posted in: Social Networking
  • Family Blog Update: Subscribe! http://bit.ly/2M6nX #
  • First beta of Adium 1.4 with Twitter support just released. http://bit.ly/XkhAo #
  • Netflix just sent me Australia #
  • New Hoodoo Gurus album rumored for September. Sweet! #
  • RT @alleyinsider: Palm Pre Launching June 6 For $199 $PALM $S by @fromedome http://bit.ly/AhzGK – should make @gorkeyv happy #
  • Just added myself to the http://wefollow.com twitter directory under: #software #agile #j #
  • Just felt another quake here in OC. Confirmed with other people in the office, but not seeing much on the USGS site. #
  • OK, USGS now saying 4.1 magnitude and looks like the exact same location as the one on Sunday night. http://bit.ly/8nyvP #
  • @JonathanGiles there has been wireless in the last few years, but it can be spotty and usually non-functional the first morning in reply to JonathanGiles #
  • Go #Lakers! Ok, even I didn’t believe that. #
  • Netflix just sent me The X-Files: I Want to Believe #
  • Don’t miss Sun’s going away party at #JavaOne. Make sure Oracle gets the right message. http://bit.ly/QcLX2 #
  • D’oh, My Nam Is Earl just got cancelled. http://bit.ly/SxuL3 #
  • Testing out ping.fm #
  • 2nd Test of #Ping.fm #
  • Trying to figure out how to control all of my various content streams and get them to the right people without drowning anyone. #
  • Testing ping.fm from Blackberry #
  • #JCP Party at #JavaOnehttp://bit.ly/QJtMt #
  • #Hulu’s first live-streaming concert = Dave Matthews Band on June 1st. http://ping.fm/ElXz2 #
  • According to this site http://ping.fm/c2hB8 my “Power Animal” is a Honey Badger! Can this be true?? #
  • Just saw StarTrek. Total man-crush on James T. Kirk #
  • Internet connection is down … is suicide really painless as the opening credits of MASH taught me? #
  • Internet connection retored finally. Suicide averted. Verizon blows! #
  • Rolled 7 games this morning, averaged 151, not bad. And then breakfast in central park with wife and little one. God bless long weekends. #
  • @jazzlifejunkie What % of the latest Jonas Bros tour are you getting in exchange for Kalia? Just curious. in reply to jazzlifejunkie #

An Email Strategy

Posted in: System Administration

Anyone with an email address has had to deal with spam. Insidious, potentially offensive, sometimes incomprehensible but definitely time wasting spam. It is such a problem that there is a whole industry of software products out there to deal with the spam. Some of these tools can delete the spam straight away, others just tag it and allow you to redirect it to a Spam folder or something similar. But what none of them can tell you is who gave away your email address? Was it that online store you purchased a gift from last month? Did they then sell your email address to a list broker? Maybe it was a co-worker playing a joke that gave your personal address to that porn site?

Wouldn’t it be nice to know who gave away your email address? I certainly want to know.

In addition, unfortunately as good as some of the tools out there are, some spam inevitably gets through. I have given up on email addresses because they had become so riddled with spam that the signal to noise ratio was not worth the effort anymore. My original Yahoo! mail account comes to mind. I want to be able to block as much spam as possible – not tag it or redirect it, I simply want to know nothing about its existence in the first place.

So this is how I manage my email and deal with spam.

Firstly I purchased my own domain name and I set up an email server to host the email for that domain. Even the most basic Linux hosting plans will be more than enough for this purpose.

Next I set up just one real account on the email server. I then configured the server to redirect all of the email sent to that domain to that one real account. This is often called a catch-all account.

Now whenever I need to provide an email address for something, I use a unique one-off address. For example, when I signed up for Netflix, I used netflix@mydomain.com as the email address for my account. Whenever Netflix sends me an email at that address, it still ends up in my Inbox because of the catch-all account. l also know that if I start getting spam email being sent to netflix@mydomain.com then I need to have some harsh words with Netflix (thankfully this has not happened with Netflix).

If you implement this strategy, you’ll be surprised how many of these one-off addresses you end up creating. So to keep things organized (and so I do not forget who I gave the address too) I try to map these addresses to the domain names of the website or the company I am giving them too. This however, will raise some eyebrows from time to time. When the car salesman at the BMW dealership asks for your email address and you tell him it is bmw@mydomain.com you will almost certainly get a strange look.

OK, so now I can give out unique (traceable) email addresses to companies and websites when they ask for them. If I start getting spam being sent to a specific address, I know who sold me out. It also means that the email address that my personal friends and family use is kept reasonably secluded and not plastered all over websites and in databases all over the planet.

Now what do I do if the spam being sent to one of these unique email address gets out of hand? Easy, I just block receiving email for that address on the server. Any email sent to that address will bounce back to the sender with a message telling them that the account is no longer valid. I never see the email, I am never even aware of its existence, I never waste time downloading it to my phone or laptop. Perfect. In addition, the rest of my email is not affected, it still all gets through.

In my environment I run Sendmail as my mail server. Configuring Sendmail to completely block certain recipient addresses is very simple. You will need to edit the file /etc/mail/access which is a simple text file – if it does not exist, you can create it. In this file, you will need to add a line for each address you want to block. Here is an example

To:bmw@mydomain.com REJECT
To:vistaprint@mydomain.com REJECT

Sendmail will reject/bounce any inbound message sent to either of these 2 addresses. In my actual file I have about 15 addresses total being bounced currently.

Once you have edited the access file, you have to turn it into the database format that Sendmail expects. This is also easy to do.

$ cd /etc/mail
$ makemap hash access.db < access

That’s it. You don’t even need to restart Sendmail, the settings take effect straight away. Anytime you need to start rejecting another email you just add another line to the access file and regenerate the database.

Now, in the spirit of full disclosure, I admit that I do still get some spam. This is spam that is being sent to addresses that are legitimate and which I do not want to block. But I do know that the number of spam messages I do see versus the number that are getting bounced is slanted heavily in my favor – something like 1 or 2 per day get through versus 1 or 2 hundred that are getting bounced.

Let me know if you have any other ideas for taking better control of your email.

Installing JBoss Portal

Posted in: Enterprise Java, System Administration

Today I finished a successful fresh install of JBoss Portal. Below is the process I followed.

Versions

  • JBoss Portal — 2.7.2 (bundled with JBoss AS 4.2.3)
  • JavaSE — 5.0 Update 19
  • MySQL — 5.1.34 (Community Edition)
  • Linux Flavor — Red Hat Enterprise Linux Server 5.2 (64 bit)

Step 1 – Downloads

  1. I grabbed the Java installer from here http://java.sun.com/javase/downloads/index_jdk5.jsp. The downloaded file was called jdk-1_5_0_19-linux-amd64-rpm.bin
  2. I grabbed the Portal binaries from here http://www.jboss.org/jbossportal/download/index.html. The downloaded file was called jboss-portal-2.7.2-bundled.zip
  3. I grabbed the MySQL binary from here http://dev.mysql.com/downloads/mysql/5.1.html#linux-rhel5-x86-64bit-rpms. I downloaded the server (MySQL-server-community-5.1.34-0.rhel5.x86_64.rpm) and the client (MySQL-client-community-5.1.34-0.rhel5.x86_64.rpm) RPMs
  4. I grabbed the MySQL JDBC driver from this page http://dev.mysql.com/downloads/connector/j/5.1.html. The downloaded file was called mysql-connector-java-5.1.7.tar.gz

Step 2 – Install JavaSE

  1. I made the installer executable

    $ chmod +x jdk-1_5_0_19-linux-amd64-rpm.bin
  2. Then executed the installer

    $ ./jdk-1_5_0_19-linux-amd64-rpm.bin
  3. I paged through endless legal boilerplate and accepted it by typing yes and hitting enter (hopefully I didn’t sell my soul)
  4. The installer extracted the RPM file and installed it.
    I double checked the package was installed by querying the RPM database:

    $ rpm -q jdk
    jdk-1.5.0_19-fcs
    $

    This RPM installed all of the files into /usr/java/jdk1.5.0_19

  5. I edited the /etc/profile file to make the JAVA_HOME environment variable and Java binaries available to everyone on the box. I added the following lines to achieve this

    export JAVA_HOME=/usr/java/jdk1.5.0_19
    export PATH=$PATH:$JAVA_HOME/bin
  6. I double checked it all worked

    $ source /etc/profile
    $ echo $JAVA_HOME
    /usr/java/jdk1.5.0_19
    $

Step 3 – Deploy Portal Binaries

  1. I am never sure the correct place in a Linux distribution to put 3rd party stuff, but I went with /usr/local this time

    $ pwd
    /usr/local
    $ unzip ~/jboss-portal-2.7.2-bundled.zip

    This created the directory /usr/local/jboss-portal-2.7.2

  2. Once again, I edited the /etc/profile file to add the JBoss environment to it by adding the following line

    export JBOSS_HOME=/usr/local/jboss-portal-2.7.2

    Then I tested it

    $ source /etc/profile
    $ echo $JBOSS_HOME
    /usr/local/jboss-portal-2.7.2
    $

Step 4 – Change Default Port (Optional)
For my install I have no need to run Apache in front of JBoss, so I want JBoss to listen (or more correctly, have Tomcat listen) directly on port 80 – by default it listens on 8080.

  1. I opened the $JBOSS_HOME/server/default/deploy/jboss-web.deployer/server.xml file, (which is a standard Tomcat configuration file) in an editor.
  2. I changed the port of the HTTP connector to 80 (you can find it by searching for 8080). I also change the HTTPS connector to use 443 (you can find this one by searching for 8443). I then changed the value of the redirectPort attribute of the HTTP connector to match.

Step 5 – Change Portal to be the root web app. (Optional)
For my install, the Portal will be the main application on the server, so I want it to be accessible from the root of the server, and not have to enter the portal context path all of the time.

  1. First, I disabled the current root application

    $ mv $JBOSS_HOME/server/default/deploy/jboss-web.deployer/ROOT.war $JBOSS_HOME/server/default/deploy/jboss-web.deployer/ROOT.war.old
  2. I opened the $JBOSS_HOME/server/default/deploy/jboss-portal.sar/portal-server.war/WEB-INF/jboss-web.xml file, in an editor.
  3. I found the <context -root> tag and changed the vallue to be just a single forward slash character.

    <context-root>/</context-root>
  4. I saved the file and exited the editor.

Step 6 – Install MySQL
By default, JBoss Portal will use a Hypersonic database for all of its internal data. My environment will be a production environment, so I want to use something more robust.

  1. I Installed the MySQL binaries by using a normal RPM install

    $ rpm -ivh MySQL-server-community-5.1.34-0.rhel5.x86_64.rpm
    $ rpm -ivh MySQL-client-community-5.1.34-0.rhel5.x86_64.rpm

    The installation process started the mysqld service automatically. It also installed MySQL as a service automatically.

  2. I checked that it was running

    $ mysqladmin version
    mysqladmin Ver 8.42 Distrib 5.1.34, for unknown-linux-gnu on x86_64
    Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc.
    This software comes with ABSOLUTELY NO WARRANTY. This is free software,
    and you are welcome to modify and redistribute it under the GPL license

    Server version 5.1.34-community
    Protocol version 10
    Connection Localhost via UNIX socket
    UNIX socket /var/lib/mysql/mysql.sock
    Uptime: 5 hours 29 min 16 sec

    Threads: 1 Questions: 5 Slow queries: 0 Opens: 15 Flush tables: 1 Open tables: 8 Queries per second avg: 0.0
    $

There are a lot of things you might want to do to a base MySQL install before putting it into production, but that is beyond the scope of this document. I would start with this link for some of the things you need to consider: http://dev.mysql.com/doc/refman/5.1/en/unix-post-installation.html

Step 7 – Point the Portal at MySQL

  1. I connected to the MySQL server running on localhost, as the current user (which happened to be root in my case).

    $ mysql
    Welcome to the MySQL monitor. Commands end with ; or g.
    Your MySQL connection id is 15
    Server version: 5.1.34-community MySQL Community Server (GPL)

    Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the current input statement.

    mysql>

  2. I created a Database instance for the Portal to use

    mysql> CREATE DATABASE jbossportal;
    Query OK, 1 row affected (0.00 sec)
  3. Then I created a user for the Portal to connect as

    mysql> CREATE USER ‘portal’@'localhost’ IDENTIFIED BY ‘portalpassword’;
    Query OK, 0 rows affected (0.00 sec)
  4. Then I granted all privileges for the jbossportal Database to the user I just created

    mysql> GRANT ALL ON jbossportal.* TO ‘portal’@'localhost’;
    Query OK, 0 rows affected (0.00 sec)

    At this point I quit the MySQL interpreter.

  5. Next, I untared the MySQL JDBC driver

    $ tar zxvf mysql-connector-java-5.1.7.tar.gz
  6. Then I copied the driver jar file to the $JBOSS_HOME/server/default/lib/ directory

    $ cp mysql-connector-java-5.1.7/mysql-connector-java-5.1.7-bin.jar $JBOSS_HOME/server/default/lib
  7. Next I disabled the original Hypersonic datasource

    $ mv $JBOSS_HOME/server/default/deploy/portal-hsqldb-ds.xml $JBOSS_HOME/server/default/deploy/portal-hsqldb-ds.xml.bak
  8. Then I deployed a datasource descriptor for MySQL. There is an example datasource descriptor in the JBoss Portal binary distribution

    $ cp $JBOSS_HOME/setup/portal-mysql5-ds.xml $JBOSS_HOME/server/default/deploy

    I double checked the username, password and database name settings in the file were correct

Step 9 – Check Your Work
Now I checked my handy work before moving on to the next step.

  1. I made the JBoss run script executable
    $ chmod +x $JBOSS_HOME/bin/run.sh
  2. Next I ran the script
    $ $JBOSS_HOME/bin/run.sh

    It will take a while but, eventually the server will finish booting.

  3. Now I hit the basic JBoss AS home page at this URL: http://myserver/ and made sure it looked OK.
  4. Then I hit the JBoss Portal page at this URL: http://myserver/portal and checked it as well.

If you have trouble accessing your URL, there could be an issue with the address that JBoss is listening on. This can be caused by various issues with your server setup (hostname, hosts file etc.). One quick thing to try is to pass -b 0.0.0.0 as an argument to the run.sh script – this tells JBoss to listen on all addresses, which might help you figure out where the issue is.

Step 10 – Setup JBoss Portal as a Service

  1. I opened the file $JBOSS_HOME/bin/jboss_init_redhat.sh in an editor.
  2. First I double checked the environment variables set at the top of the file (particularly JBOSS_HOME and JBOSS_USER) were correct.
  3. Then at the very top of the file, below the shebang line, I added the following 3 lines to make the script compatible with the chkconfig system

    # Comments to support chkconfig
    # chkconfig: 2345 80 40
    # description: JBoss Portal

    I saved the file and exited the editor.

  4. Then I made it executable

    $ chmod +x $JBOSS_HOME/bin/jboss_init_redhat.sh
  5. Next I linked the script into the init.d directory

    $ ln -s $JBOSS_HOME/bin/jboss_init_redhat.sh /etc/init.d/jboss
  6. Then I ran chkconfig to register the script for the correct run levels

    $ chkconfig –add jboss
  7. I then started the server by hand to double check my work and also just to get the server up and running without having to do a reboot

    $ service jboss start
  8. Then I hit the JBoss Portal page once again and checked that it came up properly

Step 11 – Have A Beer
It is always appropriate to reward yourself with a craft, micro-brewed or home-brewed beer!

Agile 2009 Conference

Posted in: Software Development Team Leadership

Agile 2009 Conference

August 24 – 28, Chicago, USA

Don’t wait! The early bird pricing is still available! Only $1799 for a
regular registration – and many discounts are available. See
http://agile2009.agilealliance.org/ “Registration” tab for more details.

NEWS! Agile Conference Program has been Announced

Alistair Cockburn will give keynote “I Come to Bury Agile, Not to Praise
It”

Agile software development was defined from small, colocated projects in
the 1990s. It has since spread to large, distributed, commercial
projects around the world, affecting the IEEE, the PMI, the SEI and the
Department of Defense. Agile development now sits in a larger landscape
and needs to be viewed accordingly.

Jared Spool will give keynote “The Dawning of the Age of Experience”

Experience design is no longer a nice-to-have luxury of a few
organizations with tons of money and exceptional visionary management.
It’s become commonplace for organizations that build products and web
sites. In his usual entertaining and insightful manner, Jared will talk
about what it takes to build a design team that meets today’s needs.

More info on the keynotes http://agile2009.org/keynotes

Agile 2009 is the premier international Agile conference. The full
program has just been announced, and you can see all of the sessions
listed here:

http://agile2009.org/programOverview

Show your support – Get a cool badge for your website or blog! When
visitors click on it they’ll be directed to the Agile Alliance home
page. Get your badge here

http://agile2009.agilealliance.org/badges

Sign up to receive email updates about the Agile 2009 conference – click
the button here http://agile2009.agilealliance.org/

Now is the right time to register!
———————————-
* Super early bird prices are available, but they are selling out fast

* Airline tickets prices are still low

* Our partner, United Airlines, offers a special 5% discount on top of
their lowest fares. Check out the page

http://agile2009.agilealliance.org/information

* The official hotel – Hyatt Regency – has rooms set aside at special
rates for you. Link to it via the ‘Registration’ tab at
http://agile2009.org/programOverview to get the discounts.