Tuesday, May 31, 2005

Eclipse problem solved by a man named, Earl.

In response to my last blog post, "Eclipse is Blocking My Sunshine", I received the following email.
Michael, I just read your Ecplipse post and don't want to bother registering a blogger account. But I do know what may be your problem: If you have multiple languages installed in Windows, hitting alt-shift switches the language and ctrl-shift they keyboard layout. It's *really* f_______ annoying because I have Russian installed on this computer for the occasional email conversation but rarely use it. You can disable this by going through the appropriate control menus. This may be your problem: I also speak Spanish and that switches a handful of symbols from the default American english. Perhaps you have American plus UK english installed, accidentally hit alt+shift or ctrl+shift, and that toggles the change? earl

And there it is. I hit "alt+shift" and then try to type a quotation mark, and the @ symbol appears. I hit "alt+shift" again, and when I type a quotation mark this appears: Ä. One more "alt+shift" and the quotation mark key is back to normal. I obviously hit "alt+shift" by accident all the time.

THANK YOU EARL!!!

To the Eclipse developers, what were you guys thinking?

Friday, May 27, 2005

Eclipse is Blocking My Sunshine

Over the course of a 7 day week I may only have 10 - 15 hours of "working time". My working time is what most people would call their "spare time". So any distraction or obstacle I face is a relatively HUGE waste of time.

I never thought this would be an obstacle.

There is something wrong with my computer. Something very very very wrong.

I program in the IDE, Eclipse (version 3.0.2). I have a plugin installed called, MyEclipse, to give Eclipse added functionality (JSP editing, DB tools, etc...). I live in this application. When I start working I open Eclipse, and it doesn't get closed until I'm done for the night.

What's wrong you ask?

A couple of weeks ago, I noticed that after working in Eclipse for a few hours typing a quotation mark (") would produce the at symbol (@). I could then type @ and " would appear. Then I would try and type in other characters, and different characters would appear!

I closed Eclipse and reopened it. Everything was fine.... For about 10 minutes.

My first thought was that my keyboard has grown tired of my dictatorship-like-rule over it and is now trying to overthrow me . So I reinstalled the drivers. No love.

Then I switched keyboards and did the Windows-driver-dance again. Still, no love.

My next attempt at regaining control of my key-pressing was to install a clean version of Eclipse with no plugins. It worked for a couple of hours, but Eclipse started acting up again.

I downloaded the latest milestone of Eclipse 3.1. I really don't like to use unfinished software for my work, but since the "finished" software I was using (Eclipse 3.0.2) wasn't working I figured I didn't have anything to lose.

Eclipse 3.1 is a fantastic update. I like the changes they've made to it. But after 3 hours of work I typed a " and the @ appeared!!!

I have a theory about the problem.

Around the same time Eclipse freaked out on me I upgraded to Gaim 1.3. Gaim is an IM client that supports AIM, MSN, ICQ, etc.... Gaim 1.3 installed "GTK 2.6.7 rev a". I honestly can't remember if I upgraded before or after I started noticing the problem in Eclipse.

One night I had both Eclipse and Gaim open. I started to have the problem with Eclipse and a friend IM'd me. I was whining to him about my problem and weird characters started showing up in my message!

I have only had this problem in Eclipse and Gaim.

I tried uninstalling Gaim and GTK. Hoping that would undo any damage. But I continued to experience the problem in Eclipse.

I'm not sure if the GTK installation has anything to do with my problem, but uninstalling it didn't solve my Eclipse problem. (I've since reinstalled Gaim/GTK. I really like the application. :( )

I'm completely distraught over the situation.

I'm considering formatting my hard drive and reinstalling Windows. But if I do that it will be at least 2 "work shifts" wasted with the reinstallation and configuration of everything. And what if I do the reinstall and the problem comes back?

I don't know what else to try in Eclipse.

I guess my next step will be one of the following.

  1. Dig deeper into the GTK installation process. I could try to figure out if it is overwriting any system files, and start debugging from there.
  2. Bit the ugly Swing bullet and start using Netbeans.
  3. Buy an Apple computer.
Option 1 could be in vein. The GTK software may not be causing the problem.

Option 2 would take an hour or so getting my project setup in the new environment. I'll have a productivity slow down as I learn the new IDE, and I may end up HATING it. I'm not even sure if it has support for refactoring. The refactoring support in Eclipse is something I can't live without. Another problem with Netbeans is the lack of a Spring plugin. Which will be another productivity slow down.

Option 3 can only take place if $2,000 falls from the sky. Considering I've never witnessed nor heard of money literally falling from the sky, I don't think I will be getting an Apple.

Needless to say I've already lost a lot of time on this problem. If anyone out there has any advice please leave it in a comment below. Or send me a $2,000 check. ;)

Thursday, May 26, 2005

I'm famous.

Well, not really.

But a few nice people have started reading and linking to this site, and I really appreciate their support.

One of which is, Ian Landsman, founder of UserScape. He has become a recent inspiration of mine. Ian was kind enough to mention ataraxis software ™ on his site. Which more than likely lead to me being mentioned on "Free from 9 to 5".

Thursday, May 19, 2005

I need to name it?

If there is one thing that I absolutely, positively, unequivocally, without a shadow of a doubt stink at, it is coming up with cool names for stuff. I fear that one day, when I have children, I will attempt to give them exciting names like, John, Dave, James, Robert, or some other boring name. Luckily for my not-yet-conceived child, my wife would not allow such a heinous act.

I've been trying to come up with a name for my project management software almost since the first day I decided to build it. At first I was thinking of really catchy names like Project Manager, Driven Project, Project Complete, and Projicon.

I know! They are amazing, aren't they!

Ok, maybe not.

After realizing (and my friends telling me) that those names were terrible, I decided to start thinking a little more abstract. I really wanted the name to create a mode.

Most Project Managers I know (myself included) are under a lot stress. They have to manage multiple projects at the same time. Sometimes they are working with unhappy end-users (or end-users that make the PM unhappy). Usually not every aspect and resource is under the PM's direct control, but they are still held responsible for the project's outcome. When something goes wrong with the project, it's usually the PM who has to break it to the end-user/client.

It's not a job for people who breakdown under pressure. But since Project Managers are still people - they get stressed.

I tried to think of terms that meant not stressed.

Being the creative person I am (as I mentioned earlier in this post) , the only word that came to my mind was "serenity."

According to the dictionary portion of reference.com, serenity is: "the quality or state of being serene." The definition of "serene" being: "untroubled".

Perfect.

And just to be cool, I thought about naming the application, "Sereniti". You know, kind of the same way Infiniti spells infinity.

Once that stroke of original genius hit me, I fired up Firefox and typed in "sereniti.com".

Damn! I'm not as original as I thought. Not only is the domain taken, but it's a technology company. (Not a software company, but still in the world of tech.) Feeling unoriginal, I decided to steer away from it.

I really liked the idea of having something along the lines of serenity. So I looked at the synonyms of the word.

There it was. The last in the list. "ataraxis".

ataraxis
n : the absence of mental stress or anxiety
I had never even seen that word before, and I figured most other people haven't either. I was sold on it.

BUT! As you can see on top of this site, I decided to use it in the company name, "ataraxis software".

I threw the name out to my friends and General Tomfoolery said, "not bad for a company name." And I agreed.

The absence of mental stress or anxiety is what I want to achieve in every product I build. Not just the product for the most stressed-out people I know.

I hate it when software makes me think about how I am supposed to use it. If I have to think about it too hard, I usually stop using it immediately! I want an application's features to be ridiculously obvious and not painful to use. If everything doesn't "make sense" by quickly looking at it - I get annoyed.

So by naming the company, "ataraxis software", I hope to remind every employee (um, okay it's just me right now) that their goal is to provide their customers with an experience that is totally stress-free.

Software should flow with your work. Not dictate how you work.

Now I've got to get started on that blog post where I list actual examples of things that drive me up the wall. Oh, and come up with a name for my project management application!

Wednesday, May 18, 2005

New Happy Cog/Stop Design Client Site, Wow

I spent the better part of 2003 learning all that I could about CSS and XHTML. I spent a lot of time on Jeffery Zeldman's and Douglass Bowman's web sites. Their two companies have just published a fantasic looking new web site for their client, Capgemini.

I would love to have one of those companies produce a site for my company one day. Their work is ridiculously outstanding, and not just from the "look & feel" perspective. You can tell (because they write about it :) ) how much thought they put into every aspect of their work.

Saturday, May 14, 2005

Building a Dream

Over the last year and a half I've been trying to get my dream of starting a software company from "a dream" to reality. I have been developing a Project Management web application at night and on the weekends. I still have a long way to go before my app is "shippable", but I want to start talking about the decisions I've had to make and some of my experiences while developing it. Hopefully a few of you will find these ramblings informative, entertaining, or relatable. If I'm lucky at some point these ramblings might even be able to generate some all-important "buzz" around my upcoming product. :)

This first post is about my choice in programming languages.

The plan for selling my PM app is to "sell the application". Not host it and charge monthly fees for it. I think I can produce a fantastic product, but producing an outstanding software product and being an awesome hosting company might be too much for a 1 (currently) man company. Since I want to sell the app I think it's important to build it in a language that runs on multiple platforms.

The cross-platform languages I was familiar with when I decided to create this product were: Coldfusion (CF), PHP and Java. I was a capable Coldfusion programmer. I built a couple of "database-driven" PHP web sites (both of which have thankfully vanished from the Internet). And my Java "experience" was nothing more than a few tutorials.

At the time, it would have been easiest for me to build it in Coldfusion. But the Coldfusion license would add at least $1300 to the price of the app. Even if I just sell the PM application and then tell people to BYOAS (Buy your own app server) I'll obviously be forced to take into account the total cost of ownership. A higher price could stop me from being competitive and if I built the cost of the CF app server into my price it would hurt my profit margin.

So that left the free alternatives, PHP and Java.

I had a lot more experience with PHP than I did with Java. But, what I remember of PHP programming was very frightening. I don't know if it was my lack of experience as a programmer or my lack of competence in PHP, but having worked with the wonderfully simplistic and powerful CF language I just couldn't see myself going back to the world of PHP. I also didn't view PHP as a language bigger companies would take seriously. I didn't want the perception to be that some lackey threw together a crappy PM app in a week and is now trying to sell it. Regardless of how completely off-base that perception of the technology and the people working with it is, that is the way I felt about PHP at the time.

I'm sure you can take a guess as to which language I decided on.

Before I really knew anything about Java and JSP development, my mind was made up. I was going to build it in Java. I had real reasons for not choosing CF and PHP, but you could definitely make the argument that I choose Java based on my perception of it being "cool" and "sophisticated". There are several advantages to going with Java. Most of which I wasn't completely aware of at the time I made the decision.


  • More frameworks than you can throw a stick at. Even a big stick - or several sticks bundled together to form one gigantic stick.
  • More tools than you can throw a stick at. Yes, even that freakish, bundled together, gigantic stick previously mentioned.
  • Java is a real object-oriented language. Which, in my opinion makes layering the application, and utilizing the MVC pattern much easier. With all of the knowledge transfer that is going on with the "pattern" movement (Martin Fowler, GOF, etc..) the OO world is a great one to be playing in right now.

I had to get up to speed with the in's and out's of Java quickly. I didn't realize just how difficult that was going to be. Some of the books that helped me come to grips with the technology are listed below.

I made mention of Java and frameworks. At first I thought I was going to be using Struts. Struts has been the reigning champ of JSP/Java development for as long as I can remember. I started reading Jakarta Struts Live and soon realized I really didn't like Struts! It just seems really complex and confusing. Maybe after you've built an app or two with it you get to know it like the back of your hand, but I ran away from that puppy like it was mad.

But I was not sad, for JSF had just come out! I figured THAT would be the framework I use to build my app in. It's an official J2EE spec, all the big vendors are building support into their tools for it, and it was created (at least partially) by the guy who created Struts. Instead of re-writing the reasons I ran from JSF I'll just link to my original post regarding JSF. (I still think it holds great promise, but I just don't want to use it yet.)

Somewhere along the way my manager/friend sent me a link to something called "Spring". I wasn't exactly sure what it was when I first started reading about it, but I knew the phrase, "Inversion of Control" sounded cool.

In all honesty, the fact that Spring touted itself as a "light-weight" solution is really what peeked my interest. You can think of Spring as the API that helps you do everything from using JDBC in a non-painful manner, to having AOP support, to providing you with an MVC framework, and much more. (That may not sound "light-weight", but compared to what I've read about old-school J2EE development - it's damn light.) Go to their web site or read their book, J2EE Development without EJB, to get the full story. I've been working with Spring for the past 8 or 9 months and I dare say, it rocks the house.

Well, that's the story of my current technology choosing. Maybe for my next post I'll talk about how I am layering my application and working with an object-oriented technology or how I came up with the name "ataraxis software".

Thanks!

-michael.

Thursday, May 12, 2005

Is This Thing On?

Hello World!