Tips For Your First Toastmasters Speech

November 9th, 2008

Recently, I was asked by a new Toastmasters member about any tips or advice for the first speech. I thought I’d share it here:

1.) Make sure the speech content is something you relate to and flows naturally. Drawing from personal stories, or subjects you feel strongly about is one easy way to do that.

2.) Using pathos is easier than ethos or logos. People still remember my speech about my trip to Waldrug, but I don’t think they remember my investing speech.

3.) For notes, use a full sheet of paper with big font and lots of white space that takes up the whole page, so you can look down and quickly know where you’re at. (Or, multiple index cards with big print might achieve the same).

4.) Always keep eye contact with the audience, even if you’re nervous. You’ll see them just as individuals you’re talking to and have less of a reason to be nervous.

5.) There’s lots more that could be said. However, remember that, you will always get better with time and practice, and at Toastmasters, everyone is positive and supportive.

WAS6 and Commons-logging

October 16th, 2008

Setting:
I was on a team developing a Java Web Application that was being deployed to a WAS 6 server. Our application used commons-logging configured to use log4j . However, the commons-logging jar is built into WAS 6, along with a commons-logging.properties file. We had very little control over the WAS server. Thus, our logging settings were completely overridden to WAS 6 logging defaults. Here is how I worked around that and made the default commons-logging setup in WAS 6 work the way we wanted.

Read the rest of this entry »

Beans With Unfriendly Property Names

September 22nd, 2008

Sometimes we’re stuck with a java class with getters/setters method names that doesn’t follow the java bean standards. The code might be third party, legacy, or so on. We might be able to wrap, subclass it, create a factory, or so on. What I want to present is how to use the BeanInfo class to define what the properties are. The advantages are that you can use the original class directly with any Java Beans based technology, such as Spring, JSTL, or so on.

Let’s take this beauty of a class:


-------------------
package com.foo.oldapp;

public class Foo {
    private String message;
    public void reallySetMessage(String message) {
        this.message = message;
    }
}
-------------------

Here’s an example BeanInfo that will get define a message settable message property on Foo. Read the rest of this entry »

Spring With Unfriendly Property Names

August 15th, 2008

Have you ever wanted to use spring on an object that doesn’t follow proper bean conventions for its getters and setters? If it is code you control, then you can follow proper syntax. However, the code might be from a third party package, auto-generated IDE code, or so on. Let’s take this gem of an example:


public class Foo {

    private String message;
    private boolean flag;

    public void reallySetMessage(String message) {
        this.message = message;
    }

    public String reallyGetMessage() {
        return this.message;
    }

    public void turnOn() {
        this.flag = true;
    }

    public void turnOff() {
        this.flag = false;
    }
}

Yikes, how to manage that in spring?

Read the rest of this entry »

No Source Code, No Problems

April 26th, 2008

The application relied on a framework, developed by people who had passed into legend. We had bits of source code, but only the compiled JAR file was directly part of our application source code. As a better alterative, we pulled the available source code into a module within our application. No one was maintaining the framework, and we were the only application left using the framework. This way we could at least maintain it for our needs, until we could move away from it.

We had it all setup. The new module with source code compiled. The rest of the application compiled. We ran it, and the logon wouldn’t work. It looked like it was using the wrong LDAP settings. There were multiple settings for over 8 different. We reached out to other teams, but no one knew all the LDAP settings for all the environments we needed.

Then we thought, maybe a Java Decompiler might do the trick. I know they existed, but I’ve never really needed them. To my amazement, it worked like a charm. The hard coded LDAP settings, and even comments around them, were revealed.

Here’s my tip to you:
If you find yourself working with a lot of old code, but have no source code, don’t forget decompilers. That seems pretty obvious now, but that’s why it is a good tip.

Creating New WAS6 Server Instance in RAD6

March 15th, 2008

Not so long ago, I installed Eclipse with the J2EE extensions. I was amazed at how easy it was to use the built in wizard to create a new JBoss instance. I was able to deploy and run a simple test web app with no trouble.

Then recently, I was using RAD6 and trying to create a new WAS6 server instance. This was more involved and I ran into a few trouble spots. Maybe it was just my key words, but I wasn’t able to find any good instructions out on Google. So here are my basic instructions for how to do it and what problems I ran into.

Read the rest of this entry »

Actual FAQ versus Potential FAQ

March 8th, 2008

I started working on a new project that was stored in a Subversion repository. I setup my system with Eclipse and the Subclipse plugin. I went to checkout the project and Eclipse just crashes. My next step was to just try the same thing over again, and expect something different to happen. Alas, it crashed again. Then I googled for what was happening. The Subclipse FAQ had the answer:
“As soon as I do something with Subclipse on Windows, Eclipse just crashes. Why does this happen?”

It was a perfect summary of what was happening and completely fixed my problem. Then, the next day I kept getting a message about “Working Copy not locked”. I googled for that message. Once again the Subclipse FAQ had the answer:
“I keep getting an error message about my ‘Working Copy not locked’. Is this a bug?”

The FAQ only has about 18 questions on it, but they are magical FAQ questions. I’m impressed by it. In fact, when I was telling others about this, they were amazed too that the FAQ so readily solved my problems. Why did I and everyone else think it was odd that the FAQ solved it?

FAQs have been helpful to me in the past, but I realized the problem with most FAQs. Many FAQs are very long filled with potentially asked questions and usually a ton of introduction & background material that is just laid out in a question and answer format. Most of the time when I read a FAQ, it is to get an overview of the project before I ever actual use it.

The Subclipse FAQ represented the opposite approach. It was small. It has three sections: General Questions; How-to; and Troubleshooting. They really seem like they are frequently asked questions.

Thanks,
Bill

Parable of the Broken Software

March 1st, 2008

I was reading Parable of the Broken Window
http://en.wikipedia.org/wiki/Parable_of_the_broken_window

I just couldn’t help but revising the summary there to be about software:
A retail company has a core business system running all key financial transactions, but then a critical bug occurs and business stops. This particular bug was caused by a developer and not caught in testing. At first, everyone sympathizes with the retail company. But, then soon they realize that this bug makes work for the consultants, who will then buy bread, butter, iPods, etc. And those companies in turn will buy other things. Finally, the people realize that this bug is not a bug at all but rather a great economic benefit to everyone.

The unfortunate part is - I bet many of us have had to buy software under this model…

Thanks,
Bill

Books to Make You Great

February 23rd, 2008

There’s nothing wrong with being narrow. There’s nothing wrong with being whatever it is you feel like fits with you. But as for me, I’m broad and wide in my experiences, and so my first post reflects this…

I was browsing the shared book shelf in an IT office one day. There were books about every buzz word technology: Java, AJAX, .NET, MySQL, Linux, and so on. There were even one or two Cobol books. These were good books to help make good software developers, especially for someone recently out of college. But, could any of these books make someone a great software engineer? What kind of books would that take?

Communication is probably the most important business skill to have. Example: You switch a Java EAR project from a global ClassLoader to a module ClassLoader. Can you explain that to a fellow developer on your team? And can you explain the benefits of doing that to management - who don’t even know what a ClassLoader is? I noticed in my first real job out of college that being technical good will get you noticed, but being able to communicate will make you valued. I was very good and fast at the development work I did, but all the memos and documents I wrote about things that came up during the project were far more noticed.

Be the best you that you can be - Self-Improvement books. Example: A major project milestone is slipping behind schedule. You have to deal with people who are completely opposite personality types. Everything seems to be going wrong and you’re tempted to update your resume. How do you deal with it? When you set out to be the best you that you can be, you’ll do better under those extreme circumstances. Even more important, regular everyday days will be better, easier, and just more enjoyable. Being the best you is all anyone can ask of you, and if you can be a better you, then you can never go wrong.

Knowing a technology is helpful, but the principles behind it are more important. Example: C++ was the most common language in your field, but then Java comes out and now everything is in Java. Can you take all the experience you have at C++ and apply that to Java? Can you use your knowledge of design patterns, refactoring, and so on? As time goes on, I continue to value my ability to learn new technologies quickly rather than to know current technologies.

There are many other book types non-technology related that have helped me that I’m tempted to add. I’m tempted to add in how I think reading 1491 helps me in IT. But for now, I’ll close on those three areas above which off the top are going to be important to everyone: business skills, especially communication; Self-Improvement; and technology re-use knowledge.

Thanks,
Bill