Tuesday February 14, 2006
Snafu with the developer
I was hoping to show off hi-res scans today, but it appears that the guy who ran my job messed up and ran the standard. These mistakes can happen, but when you pay $43 to develop two rolls and do hi-res scans it is frustrating. Hopefully they‘ll be ready tomorrow. In the mean time I have some stuff I need to wrap up before I drop them off again. Ritz is making good and they will re-run the job at no additional cost.
Using Feed Burner now
All my feeds are going through feedburner now. This will allow me to move my blog to another server in the future (not sure how near the future is yet), without forcing my users to change their subscriptions. I just made the links live, and added stats for subscribers. Please give any feedback on them.
Eliminating the Non-Essentials
Software has a tendency for bloat — getting big for no apparent reason. It‘s a natrual side effect of feature-itis. When you try to put every feature known to man in your application, it will get big. It will seem bigger than it needs to be because your users are only using 10% of what you gave them. So, after all this effort putting in a feature to let the user control their coffee pot from their word processor, the feature goes unused. Hmmm, if that doesn‘t send a message you should be worried.
Features are great when they help your users do what they do best. If they might, kinda-could use the feature then chances are its irrelevant. Cut it out. Be ruthless, bold, daring in what you choose to omit. You might find your users praising how “complete“ and “well-suited“ your application is to them. Going on and on about the fact that there is no useless junk getting in the way.
In many ways, I feel that UNIX had the right mentality with the way they designed their tools. The focus was on each tool doing one thing well, and being designed to be combined with other tools. That‘s why you have a shell, grep, sed, find, pwd, etc. Now, UNIX did go a bit overboard with becoming too terse — but the mentality of several tools working together as the user sees fit is perfect.
The idea here is that you eliminate the features you don‘t need, starting with the ones that are added just because it would be “cool“. Then you finish the features that are left over so that they are rock solid. Every feature that is added should be mapped to helping a user accomplish their goals. You might bring back one of those “cool” features — if it helps the user do what they want in a better way.
Technorati tags: design, designphilosophy, minimalism, eliminatingthenonessentials
Monday February 13, 2006
I'm giving straight to CD one more shot
Ritz has two processes for creating digital pictures from film. One is the 1.5MP solution that I didn‘t like too much. There is hope in that the original negatives seem to be pretty good there. The other is a 10 MP solution. I‘m hoping the 10 MP process is much higher quality (not just higher pixel count). Of course, it is more expensive. Tomorrow I‘ll see if it is worth the expense. Nothing ventured, nothing gained. I‘ll have about 60 new pictures.
The process does take longer to make the hi-res scans (roughly two hours instead of one), but I‘m not planning on making another trip down to the mall today. I‘ll pick them up tomorrow. I‘m hoping the one picture I took of the snow covered trees Sunday night turned out well. It had a three second shutter speed, and again I have no tripod. Camera shake is inevitable, I just hope its not too much.
My focus for D-Haven
My focus/vision (whichever you prefer) for D-Haven is business automation. So what is business automation? Quite simply put, it is letting computers take care of tedious tasks and letting the company do what they do best. In short, it is helping a company‘s infrastructure to get out of the way. There are several disciplines involved with this type of activity. First, you have to get to know the business you are helping in a short amount of time. Next, you have to find the major problem areas. Lastly, you have to design a solution that fixes things.
People are the face of any business. Jan, the receptionist, shapes how people percieve the company based on her phone manner. Bob, a support personnel, has much more of an influence. Barbera, the warehouse manager, helps maintain the reputation of the company. Each person has a face, a personality, and a way that they like to work. To better understand how to create a solution that saves the company money, you have to understand people. The better you are at that, the better the company will like what you do.
Problem areas exist all over the place. They vary in size and impact from minor annoyance to major obstacle. The key is to find out what is going on without implicating anything else than process. That‘s where metrics come in. Adding metrics behind the scenes (IOW without human intervention) is the most reliable way to find out what is happening without the fudge factor. It might be that Barbera is double-shipping some orders because the warehouse software requires you to manually type in that something was shipped. Maybe moving to RFIDs will help automate that process and cause fewer problems there.
Once you have a big picture of what‘s happening, you can start figuring out what kinds of solutions are really needed. More than likely, the company will need some software to be written. Quite often, they will need to get different systems to talk to each other. One example would be when marketing closes the deal and gets the contracts signed, the customer information is automatically propogated to the accounts receivable system.
Bottom line is that I have been the victim of heavy processes requiring a large amount of human effort to support. I can see several ways of how they can be improved to rely less on people. When the process relies less on people to support it, then the people can be more productive doing what they were hired to do. In the end, it makes it much more enjoyable for everyone. My clients will have an improved bottom line, happier employees, and hopefully better customer loyalty.
Of course, part of this vision is a commitment to short and long term R&D. There should be some improvement every year in what we can offer. I want to make things better. I want to have the lattitude to try new things. Having an R&D program let‘s me try some stuff that will likely fail without affecting my customers. It‘s important to take risks, but stupid to be reckless with them.
Sunday February 12, 2006
How “at peace” are you with your software? For developers there are two sides to this coin. Does the thought of making a change, no matter how small, cause your stomach to get tied up in knots? How about using the software? Do you have a general sense of wellness with your software? Personally, I hate the word wellness because it is often associated with woo woo medicine (aka wholistic mentality). But you get the general idea.
Neither you, nor your users, should feel like they have to contend with your application. If you‘ve properly applied all the other principles of Zen qualities in your software you should have a solution that feels right. Simplicity, naturalness, suggestion, etc. all come together in harmony to create an environment that you can enjoy. Your software should be as much a pleasure to program as it is to use. Don‘t let the user interface be a false covering over a tangled mess within. Software that is well written is a pleasure to work with.
One way to determine if your software is tranquil or not is how you respond when the user needs a new feature. If you are thinking about all the testing and debugging that has to go on to make sure you didn‘t break something then that‘s your first clue something isn‘t quite right. Perhaps having a good test harness would help aleviate your fear. However, if the internal design is a mess then it‘s likely that a small change in one place will cause ten other things to brake. Fragile designs are the number one cause of programmer hair loss. Poor planning and unrealistic expectations are the second cause. The two feed off each other, and it is amazing any of us have any hair left.
Do yourself a favor, and pursue a tranquil project. You can have a measure of tranquility despite project pressures from outside. When you are confident in your design, and you are confident that a small change in one place will not have a domino affect on the rest of the application, you won‘t fear the pressures of the project schedule as much.
Technorati tags: design, designphilosophy, tranquility
Best pictures from the test roll
Here are two pictures that I like the best from my first roll. No color correction or any processing done on the pictures.
Not sure if I trust straight to CD...
I took my first reel of film to Ritz One-Hour Photo and got the 1.5 megapixel scans straight from the negatives. On one side I was pleasantly surprised that more of the pictures came out than I expected. On the other side I was less than enthusiastic about the results. The problem is that I am not sure if the result is from the Kodak Max 400 film, the conversion to digital, or just the development process. The color saturation was fine. I expected the green tint from the pictures in the gym (the gas lights are the culprit there). It was all the graininess. Much more than I expected. My digital camera seemed to have less.
The next time I go, I will have to get the prints made so that I can elliminate their digital conversion process. I also purchased another type of film but it is a higher speed. I know I‘m going to have to try some different things out. I have a feeling that I am going to need to develop a relationship with the professional developers nearby, ABC Photo. I‘ll at least have to jump to higher quality film. Most likely I will go for the professional line. Sure their about $4-$5 USD a roll, but you get what you pay for.
I‘ll post the results at Flickr along with some corrective measures on some of them. One of the side effects of the noise removal process is that it does cause you to loose a little sharpness. I also discovered that printing them out on my printer, you can‘t really tell the difference between the grainy pictures and the noise corrected ones. Of course, I did print them out at 3×5 so the noise in the picture was canceled out by the dithering process of the printer.
Saturday February 11, 2006
You know your kids grew up in a digital age when...
...you hand your son a film camera and he asks you, “so how do you see the picture? Do you look through the eyepiece or the screen?“ We‘ve had a little digital point and shoot camera for a couple years now, which is part of the confusion. My Rebel K2 has a small fixed element LCD screen on the back, which is the other part of the confusion. Even funnier is that when I told him you have to wait to see the pictures his voice dropped and he said “oh, that stinks.”
In many ways I believe you have to go old school before you can properly appreciate digital. I don‘t care who you are, or what your doing, I‘ve got this bias that analog is better than digital. It started with recording music. Direct to digital always seemed to sound cold and small compared to a nice thick, fat analog sound. Sure there was a bit more noise, and the fat sound could be attributed to a natural compression and EQ from going to tape. It‘s just that it had more soul. It‘s natural for me to cary that over into film.
The school I went to did both sound and film (as in movies). There was a marked difference between the 16mm film cameras that are common for commercials and even the best CCD based cameras that are common for the news. Many shows use film and old school technology. What‘s really funny is that it‘s still not that old school.
Don‘t get me wrong, I have seen what even the cheapest of Canon DSLR cameras can do. I‘ll end up with one of them eventually. They are beautiful pictures. I attribute that to the CMOS sensors. That‘s the other side of my bias. When you are converting an analog source (picture or sound) to something a machine can control, FET family of transistors are more gentle to your sound than the solid state TTL family of transistors (CMOS is short for CMOSFET). If you have to go digital, use the FET family of transistors in the analog side of your analog to digital convertors.
Friday February 10, 2006
Getting that Passion Back
Corporate life has a tendency to suck all the life out of you. It‘s inevitable. Whether they do it through impersonal process where one mediocre programmer can be replaced by another, or by burying you in paperwork and meaningless meetings. That‘s what big business does because they are afraid. They are afraid that if they stick out, they won‘t get the profits they need. Every once in a while they will take a risk and be rewarded — but those times are few and far between.
So what do you do about it? One of the major reasons that I do Open Source Software is so that I can work on stuff that matters. Don‘t get me wrong, I‘ve done some pretty cool things on the job but I find it doesn‘t make me nearly as proud of my work as the stuff I choose to work on. Another main reason I work on OSS is the community. When I first learned Java, I had the privilege to work with folks like Stefano Mazzocchi, Giacomo Pati, and Carsten Ziegeler. These guys taught me more about what you can do with Java, XML, and the associated technologies than could possibly be done in a classroom. We were working on Cocoon (along with several other folks) and it ruled. These days it has grown too big, but back then when things were new it actually made it easier to develop web applications.
Nowadays, that spark is being reignited by Rails and what it allows me to do . In fact, part of what causes me to get going is the mission to make stuff that enables users. Things that let them do what wasn't possible before. Learning new tricks and applying them to old problems. Solving new problems, etc. Bottom line is that my days in corporate life are numbered. I am going to make stuff that rules, and I plan on making money doing it. I am going to have a job that encourages innovation — even if I have to create it. That‘s what keeps my fires burning now.
How about you?
Technorati tags: passion