12/20/2008

Experience, Maturity and Smiling

Experience is having the ability
to know what you don't know.

Experience requires the maturity
to admit your failures.

Maturity involves experiencing
failures and smiling.

Smiling is the most precious
experience that maturity brings.


You Assumed your Win

Don't assume I'm not defending myself
because I think you are correct.
Sometimes, my silence just indicates that
you have already been presumed irrelevant.

Man from the inside

A man of steel
until I am crying,
a man of stone
till I'm in love,
a raging warrior
tending a child,
a human man
intent in confusion.

12/10/2008

Ignorance and Enlightenent

I hate when I think of a cool line and the world thought of it first. I think this is a loosing race. Anyway, I can extrapolate, so there.

The first step to enlightenment
is an understanding of ones ignorance,
however, I expect that any enlightenment
that we achieve will only serve to
clarify our ignorance.
I take solice in the acceptence of my inability to know.

12/01/2008

Mac Missing Startup Sound Switch

Thanks to Alex at Hack the Day I can finally turn off the Mac OSX startup sound.

Just in case you haven't experienced this before. The sound itself isn't bad. However, if you were listing to some Black Sabbath when you shut your machine down, then toddle over to a quiet coffee shop to continue your day, the entire store will be regaled with the startup sound at Black Sabbath volume and that is embarrassing.

11/25/2008

Measurment of Human Greed

Two pots of coffee, one sitting beside the maker, just brewed, the other sitting in the maker right under the spout, just finished brewing.

Which do you think will be emptied first?

Be aware of the person that switches the pots and watches, gleefully, while fellow drinkers think they are pouring the better cup.

11/05/2008

First time voter

As you may remember from a previous post, I became an American Citizen December last year, so this election has been particularly exciting for me. I had the opportunity to effect the selection of the president of the United States of America. Wow, just saying it gives me chills.


As a new citizen, about to vote, I had an obligation. Choose the voter that would now be canceled out by my diligent coloring in of that little rectangle. I found them too, don't know their name, but they have a Chabot sign in their front yard and under it some drivel about protecting the rights of kids to have guns to shoot each other. Yes, that person, will not be able to effect the outcome of an American election again. I am canceling out their opinion and that is satisfying.

This is a story, because I had no idea how crucial my vote would be. It turns out that I was the deciding vote. Through a sequence of apparently random events I caused Barack Obama to be elected.

As an Ohio resident I am told that I am special. We, apparently, are the chosen ones and are able to dictate who wins, so I already know that my vote is more important that the rest of America.

Additionally, I live in Hamilton county, a very red place, and CNN said that the switching of this county to blue allowed Obama to win Ohio. CNN said it so it must be true.

So, by canceling a Republicans vote that wasn't canceled last year, I swung Hamilton county and so the election. Now that is power.

Neil Armstrong said it best during my naturalization, "Immigrants are the life blood of America continually infusing new ideas to help this great country improve" (paraphrased). So, I humbly offer my voting services in the hope that my choice ends up being correct.

10/20/2008

Eclipse, bad UI change

I am sure that I am not the first to notice but Eclipse has gone through some changes that are causing a significant slow down in my productivity.

This has been the premiere IDE for many years, offering best of breed user interface design concepts to optimize the life of the Java developer.

I now find it increasingly hard to use for one simple fact. The changes have made it really hard to run unit tests.

One of the magical features was that ctrl-F11 would run the last test I ran so I could continue coding, in any source file, and press this vital key combination to see if I had broken anything yet.

Now, this keystroke, and the action that it is associated with, have been changed in two ways.

Firstly, if you have to be in the test file to reliably run the last test. It is inconsistent in this regard. Most of the time it just asks "How would you like to run ''? On the server or blah blah blah".

Secondly, if it does remember the test I want to run, it now also remembers that last time I ran it in the debugger. So each subsequent run promptly stops on a breakpoint.

This is a flow problem and it is possible that non-test driven developers use the debugger a great deal. I understand, even sympathize, but couldn't Eclipse support both flows? Especially the original, and in my opinion, the far superior. Just run my tests, that's all I ask.

Now if I could just get NetBeans to stop deleting my "build" directory when it creates a project I could say goodbye to this annoying change.

10/19/2008

GIT, yes, another source control solution

and you thought Subversion was the latest thing. Ha. How old and slow you are.

You see how cool I can sound when I have just learned something new?

I have GIT installed and working under OSX Leopard and it seems pretty cool so far, given that I haven't done anything worth while with it yet.

First, don't do what I did, which was to goto github, download gitx and expect it to work. Ha, that route is for losers.

Instead, goto the git site itself and get the zip.gz file and go from there. Wait, no, don't do that either, only losers waste time compile from source.

See, how many pit falls I am saving you. This is a great blog.

So, ignore the links you have seen so far and aim for the Download link. This will not down the file, do not worry about that.

Amongst the download formats there is an OS X entry to the Google code site. Be patient, you are on the right track.

There, at the top of the list, is the git-1.6.0.2-intel-leoard.dmg file. Yes, this is the real download that will work. The download for non-losers like you.

This will give you command line GIT which is probably all you need, if you are a loser. I was a loser for a short time when I finally realized what I was doing. Man oh man these things take time to work out.

I love NetBeans. I also love Eclipse but its Ruby support blows by comparison so I love NetBeans more. And NetBeans has a GIT plugin. This is for non-losers. It's called nbgit.

Now remember, losers will try to install nbgit in their NetBeans IDE, and we all know that would be a dumb move. Unless you really love searching through reams of dependency errors, and what the hell is the NetBeans Presentation crappy thing that I don't have anyway.

Go get NetBeans 6.1 and install that first. Then, as a non-loser, you will be selecting Tools-Plugins-Downloads and selecting the nbgit nbm file that you download earlier.

git clone git:/reality
update to life version niner dot niner
git diff
See all the good changes that you have made
git commit


And here, courtesy of the kind blogger Tim Dysinger, are some cool git settings that you might want to use.

Get started with this tutorial, short and to the point.

8/12/2008

Thought

Life rocks, despite reality.

8/08/2008

Picture Admiration

This is a video by someone I admire. I didn't have to watch much of it to recognize that this is a special person. A state thrust upon her by life, though she made the choice of what to do next.


7/28/2008

Eclipse 3.4 to NetBeans 6.5 M1

It is time to get back into NetBeans. It used to be my primary IDE before Eclipse hit the scene and now with its excellent Ruby and now PHP support it seem appropriate to start re-learning how it works.

It is certainly faster now and the UI is cleaner than it used to be. Steps in the right direction.

This is where things went horribly wrong.

Import an eclipse java project into a netbeans java project. Netbeans decided that I didn't want my "build" directory anymore so replaced it with it's own. How assignign is that.

So, first hint, do not, import an eclipse project into a netbeans project if you have a build directory.

6/23/2008

Leaving Photrade Behind

I have decided to resign from Photrade. We both decided that this relationship wasn't a good fit for either one of us.

The Photrade team has grown immensely in the four months I was with them. With the latest improvements in the beta product bringing on new customers by the day, it is clear that Photrade will continue to be a great product and with its enthusiastic and talented team it will surely be a great success.

My next steps are to take a few days off to go sailing with my wife which is something we have missed while getting the Photrade site up and running. Then back into the software consulting world, which has been really good to me in the past but, this time, as an independent.

So, if anyone needs some software built, drop me a line, I will see if I can fit you in.

6/13/2008

Don't use gmail in production

because, one day, you will have too many customers, and generate more emails than the great Google deems appropriate for your company.

550 5.4.5 Daily sending quota exceeded.


I would have to say that the smtp gmail service isn't reliable anyway with it's two second response times,
421 4.7.0 Temporary System Problem.  Try again later (WS).
and
550 5.7.0 Mail Sending denied.
all up in my face.

Switching to a local postfix server tonight. 5 emails/second, no errors. Much nicer.

IE Better for Testing HTML

Sorry about the inflammatory title. Let me explain.

  <input type="checkbox" CHECKED">

See the error? Just an extra quote but it fails in IE 7 and works in Firefox and Safari.

Firefoxs' FireBug plugin represents the checkbox as perfectly formatted dispite the syntax problem. Safaris' developer plugin shows the checked attribute as checked"="" which looks weird but it still works.

So, do I want to test with a browser that can make crap look good? I think not. I want a strict validator of my rendered code so that I can be sure that it will work consistently in all places.

The other thing that we break in IE all the time is the missing var in the javascript variable declaration. Firefoxs' and Safaris' javascript interpreter just auto-allocate on first assignment but IE complains of an undefined variable. I think IE wins here as well enforcing the script standard more closely.

So, while I don't have any decent javascript debugger or DOM inspector, for validating your HTML/JavaScript, it a better solution. Then back to FireBug for the rest of your day.

6/12/2008

Domain Modeling Measure - Alpha Theory

If you find yourself passing this or self to things instead of other things you are moving in the right direction.

    public function doSomething()
{
return $someDoer->does($this);
}

Using ShareThis on Photrade

A sample post of a Photrade image to my blog using the Share This API.

A Cincinnati local company offering a really nice way for our users to distribute their images. See it at a Photrade site near you soon.


Sell photos on photrade | By esumerfd

Posted using ShareThis

6/10/2008

Photrade Release Party

The Photrade site is improving by the day. With new features being added, tested and released in a daily release cycle, it is really exciting to see it grow.

We were written up on Mashable last night which ended up causing our CPU's to blink, pause, and go back to sleep. It increased our load around 500% but we have loads of capacity to spare. You have to love fast machines, I get goose bumps just thinking about it.

Checkout the launch party.

5/16/2008

PHP Reflections In Time

Reflection in PHP is a little clunky and I say that with the greatest of compassion.

First of all we have the standard function interface to all that is good, call_user_func, call_user_method, func_get_args, get_defined_functions and so on.

So you can imagine a call_user_func to start with and then when classes came in they added call_user_method that takes the instance as well (surmising the history, I don't have any facts).

   class Fred
{
public function someMethod()
{
echo "Hello World\n";
}
}

$fred = new Fred();
$fred->someMethod();

// OR

call_user_method("someMethod", $fred);


However, this method is deprecated, in preference to old call_user_function with different parameters.

   call_user_func(array($fred, "someMethod"));


Then there are the new class oriented evolution with ReflectionClass, ReflectionMethod, ReflectionProperty and so on.

   $method = new ReflectionMethod("Fred", "someMethod");
$method->invoke($fred);


It doesn't seem to bad but there are new problems. This fails because "someMethod" is private, even though the call is from the same class. There doesn't appear to be a way around this. You can not call private methods with the new Reflection classes.

   class Fred
{
private function someMethod()
{
echo "Hello World\n";
}

public function testInvoke()
{
$method = new ReflectionMethod(__CLASS__, "someMethod");
$method->invoke($this);
}
}

$fred = new Fred();
$fred->testInvoke();


This produces this error message:

Fatal error: Uncaught exception 'ReflectionException' with message 'Trying to invoke private method Fred::someMethod() from scope ReflectionMethod'


However, you can switch back to the old way of doing it like this:

    class Fred
{
private function someMethod()
{
echo "Hello World\n";
}

public function testInvoke()
{
call_user_func(array($this, "someMethod"));
}
}

$fred = new Fred();
$fred->testInvoke();


The same situation exists with the two forms of property access:

$prop = new ReflectionProperty("Fred", "property");
$prop->getValue($fred);

and

    $fred->$propertyName


This mix of old an new techniques is how PHP is today and there is not much we can do but to wrap the variations in our own classes so that we can stay as portable as possible across future versions.

PHP, First Impressions

It has been 3 months now since I started learning PHP, I have spent lots of time fixing an existing site and reading over the good and bad of the available open source PHP projects.

I would describe PHP as a function based language with object oriented dreams. PHP lives in the between world where functions rule and programmers try to work out how to make use of its new OO features.

These OO features are new and many are missing key functionality so this has to be looked at as the evolution of a language that isn't quite there yet. It has the functions to get anything done, it doesn't have the class libraries to get much done.

I am not saying you shouldn't use PHP. This is a versatile language that can be made to describe some advanced language constructs.

It is widely regarded as a slow language that scales well. Not an oxymoron when you consider performance a mixture of response time and throughput.

One thing to get used to with PHP is typing. Everything you want to do will take more characters than java, c# and especially ruby. Every method is a minimum of 19, every property reference roles in at 8 and I can assure you, we programmers do that a lot.

I spend my days developing an class model to support my web project. Some classes support the business functions I need and others just wrap the plethora of php function calls that perform the low level work I need.

Architecturally PHP offers some interesting problems. It relies a great deal of the tuning of the environment that it runs in but from a code design perspective you have to look at the transaction path as a primary and inevitable cost. In java you might start with a simple transaction path through your product layers with the realization that you can cache strategic parts as you advance your performance footprint.

In PHP there is no "cross transaction" static. So every PHP file is parsed and executed for every request. Now PHP does this pretty fast but the more you add into the transaction stream the slower things will go.

Performance is approached at the environment and code optimization level. You tune apache and add in PHP JITs to make the code run faster but you can't do much to dynamically improve transaction path across requests.

The local user group, OINKPUG, is an excellent resource full of great PHP programmers always ready to help.

All in all, I am enjoying PHP and look forward to continuing to twist to my will.

3/10/2008

Photrade.com

and life moves on.

Twenty five years playing with computers, ten years of consulting, two point one years in startups. It's time for another change.

March began my time with Photrade.com, a small startup in Cincinnati with a lot of promise. They are a great team of people and it is my pleasure to join them.

We will be building a solution in PHP, which is new for me, but has already proved itself in many other solutions. So, expect my blogging topics to change to PHP shortly, though I will probably still keep complaining about my Mac for a while.

If you would like to help mold the company you can start by completing this ten minute survey.



Site Help Advancement

I am browsing the site of a hosting service checking on prices and a little window pops up with a simple question, "Do you want help with this site?".

This is not an ad but a means to draw their customers into IM conversations. I have to say it worked very well. A quick chat and I had all the info I needed. Saved lots of reading spec sheets etc.

At the end it asked me if I wanted to send the chat session to an email address. A useful and unobtrusive way to collect email addresses. Nice.

2/27/2008

Concurring

Saying it with pictures, Jim, speaks empires.

On my wall ...

2/11/2008

DRY as in Dry Bugs

We talk of DRY code as in Don't Repeat Yourself. Instead, we should talk in terms of DRY bugs.

For every piece of code you copy you are also copying a number of bugs. Depending on your propensity for adding bugs to you code you may be copying lots of bugs or just the occasional one. In either case, bugs are really expensive, so stop it.

You may want to say, "It's faster to copy working code than to refactor it into a common module". We have heard it all before and you are deluded. Besides, DRY bugs are easier to pin and mount

Do not duplicate your bugs.


2/06/2008

Life's Filaments

The filaments
of many lives
pass through me.

Filament collisions
held lovingly
in my palm.

For filaments sake,
backup your life.


2/04/2008

Fear

Fear is an emotion,
not necessarily a disability.


2/01/2008

A Fathers Pride

As I pondered a question and worried about an outcome my son gently said, "the greatest rewards go to those who risk, you have nothing to loose and a family to support you, so what are you whining about".

It is my greatest honor to watch my kids grow up into fabulous adults.

1/28/2008

VmWare Fusion PinPoint Compatibility

I last blocked about a comparison between VmWare Fusion and Parallels but concluded that the click problem prevented me from using VmWare. Well I have found a solution to that problem.

Specifically, I am using a product called PinPoint to improve the visibility of my cursor and this appears to be causing focus problems in the executing virtual machine.

To show you I have prepared my first mac based screencast using a tool called ScreenFlick. This tool does most of the things that I wanted, with screen size and visibility control, audio recording and mouse and keystroke highlighing. It did hang on me a few times which seemed to be related to large recording sizes.





So, with the click problem removed I am going to start working with VmWare Fusion again to see if it beats Parallels.

1/21/2008

Mac Windows Virtualization - Parallels vs VmWare

Just another of the many review out there but this explain why I can not use the Vmware Fusion product.

Both have the same $79 price so which should you buy. I bought Parallels with the machine because of the hype and a couple of recommendations from friends but with all the problems I have been having I though it worth a 30 trial of VmWare Fusion.

This is my experience.

Parallels

Installation was a problem because the CD contained a version that didn't work on Leopard. A download from the site fixed the problem.

Repeated crashes for various reasons documented in previous posts.

Ideally, I could work in the windows environment in full screen mode with the same keystrokes that I am used to in Windows. There is no way to do this in Parallels.

When in full screen mode, Parallels hides its menu bar and allows you to get it back by pressing the "ctrl-option" keys. This kind of "mode" switching makes it less likely to accidentally bring up the mac menu.

I wanted to play Virtual Skipper 5, a nice, graphic intensive game that allows me to continue sailing during he winter. The trial version of this game uses DirectX so initially it failed because my Windows Vista installation was not up to date. Once DirectX was upgraded it appeared to run correctly though in a small window that I couldn't full screen but having never played this game on a native windows machine I can't say if this is abnormal or not.

Vmware Fusion

Installation was perfect but I downloaded the trial copy from the web so we can't compare this with the difficult Parallels installation.

VmWare has not crashed on me but I haven't used it so much so this may be an unfair comparison.

VmWare has an option that allows me to ignore mac keystrokes. While very promising this didn't seem to work very well. Infact, when in full screen Vista, I tried ctrl-left to switch spaces and was moved to a mac space. However, the mac keystrokes were still disabled so I was not able to do anything. Fortunately, the mouse allowed me to select the other space and turn off this feature.

When in full screen mode, VmWare Fusion hides its menu bar and allows you to get it back by moving the mouse to the top of the screen. This is a little annoying when you are working in windows and accidentally get the mac menu. I prefer the Parallels solution.

The Virtual Skipper 5 test was not as successful despite the fact that VmWare Fusion boasts about support for DirectX. I still had to install the DirectX upgrade to Vista as expected but when the game started it complained that it would not run inside a virtual machine. Now presumably this is the games fault for doing this check and only doing it successfully in VmWare but I have to conclude that, for this game, Parallels was the better virtual machine.

There is a serious two click problem in VmWare Fusion. This is not a double click. It is hard to pin down the types of objects that require this. So, for example, browser links only require one click however icons on the desktop and menu options seem to require two. It appears as though the first click focuses on the object then the second actually selects it. This makes it impossible to use. I couldn't find any reference to the problem anywhere.

Conclusion

Compared to the two click problem with VmWare all the other issues are moot. This problem makes VmWare Fusion impossible to use.

So, despite the nasty crashes, Parallels remains the vm of choice for the mac.

New Machine - Adium Keystroke Options

We have already established that the Adium end key is a problem.

Well, yesterday I find that the Adium developers have implemented a solution but as an option that allows me to select the key to use to "Switch tabs" which, unfortunately defaults to the commonly used command-right arrow keystroke. I switched it to the shift-command-right arrow making Adium behavor like a well behaved mac application.

New Machine - User Account Menu Item

As you login to your Mac the menu bar contains a nice little silhouette of a human bust to represent my user information. Shortly, after that, this is replaced by my name. Do you think that telling a user their name might be a tad overly informative?

My primary complaint isn't that I am insulted by the idea that I need to be reminded but that it uses valuable space in an icon cluttered zone of the screen.

Is there a way to switch this menu option back to the simple silhouetted bust?

1/18/2008

Scrum Certified - Ready to rock

A group of us just complete the two day Scrum Certification class so I can add CSM after my name now. It actually doesn't feel any different from before the class and customers would refuse to use Agile to manage their projects.

It was a good class, taught by Peter Borsella, it covered all the usual parts of Scrum in good detail. There was enough time to talk about the Agile projects we have worked over the years and get feedback.

Refresher or not it is worth while remembering why we keep fighting this Agile battle. Renews your passion for doing it right.




Red splotches to protect the innocent and my liability. Feel free to contact me with authorization to show your picture and I will un-red-spotch you.

New Machine - Finder Problems Continued

The mac Finder is just astonishingly bad, and, I hear, the Leopard version I am using is far superior to the Tiger version. What an atrocious experience that must have been.

I have made some comments on this window of woes already but there appears to be more to say.

Folder Creation

It turns out that it is not an easy process to create a folder. Perhaps one of the most fundamental of features is scattered and inconsistent, but let me show you.

We have to look at this problem from each View because they are all different. We have 4 possible views, Icons, List, Columns and the new Cover Flow. Windows Explorer only supports Icons and List equivalents but it does it in a consistent manner. You decide which is important in a UI but if you decide that lots of inconsistent features are better then you are wrong.

Icon view shows large images with file names below. Of all the views this view seems to remain consistent supporting the right-click "New Folder" and the command-shift-n option to create a new folder.



List view represents the folders in tree form with the details of each folder/file shown to the right. The right-click "New Folder" and command-shift-n both create a new folder in the current directory. The problem arises when you consider that the tree folders allow you to see and select a number of different locations in the hierarchy, however, you can not create folders at the different levels. The right-click on a sub-folder doesn't even contain the option. You have to navigate down a level to create the folder. It's like they replicated the Icon views features in a tree without considering what improvements the tree might offer.



Now I must admit that you might be able to find some twisted logic to conclude that each view allows you to create a new folder in the "current directory" which in the list view is the top level folder. However, this conclusion would be wrong because it would mean that you are a unix developer and have a brain limited to thinking in terms of current directory and changing current directory. This is a UI we are talking about here, you see it, you click it, you interact with it. Simple. Consistent.

Let's look at Columns view. This changes things a little giving you lots of options since it shows lots of "current directories" at the same time. So what does this image tell you is going to happen.



If you answered "create a folder under untitled folder 2" then you would be wrong since folders can only be created in the current directory. However the behavior is consistent with the a intent of my UI action. I actually right clicked on the white background indicating that I want to create a folder in that directory. What is bad about this is that the folder remains selected retaining the visual cue that I am working with that folder. Since this is not the case this is a poor UI feedback problem. Windows Explorer explicitly un-selects the selected folder when the background is left or right clicked since it is a good user interface offering quality feedback.

Cover Flow is the new view introduced in Leopard and offers a nice representation of files in picture form. It is a great way to scan through images. Since this is new it appears to be new code because they have fixed the selected folder problem, and introducing the new problems that I mentioned in the previous post on the Finder.



Cover Flow behaves in a similar manner to List view, you can see the folders but you can use them to create new folders. One might say, consistently bad.

Folder Movement

How to move a file/folder from one place to another. Not so simple. There are a few nice mousing features

Drag folder to move it
Drag folder with options key pressed to copy it

These are consistent across the views, however, as we have come to learn with the mac, the keystroke support is somewhat disabled. The glaring omission is the lack of the command-x to cut a file. You can command-c to copy it and command-p to paste it in another location. There is even an option for the operation in the Finders' Edit menu but it is always disabled.



This prevents me doing simple operations like cutting a file from the desktop, navigating somewhere, and pasting it into some other folder. I actually have to copy it and then navigate back to the original location and delete it. This seems to me to be a major problem. I download files to the desktop and want to move them to a downloads folder when I am finished with them.

Fortunately, QuickSilver solves this problem for me with, command-g to select the file in QuickSilver, so that I can select the "Move To" action and the "Downloads" folder. This is about 7 keystrokes but it much simpler than copy, paste, navigate back and delete.

Now there is a way to do this with the mouse but it is hideous. Drag the file, hover over the next folder and it will open in a new window after a half second or so, keep dragging to hover over the next folder in the path, wait a little more for the new folder to open in another new window, yes I now have 3 windows open, keep going because JBoss paths are long and I need it way down there, oh, and this sentence is really helping illustrate what a stupid feature this is, so keep dragging, and waiting, until you get to the folder you want, then drop. The source windows and the final target window remain open and the intervening windows close. What a horrendous process.

To Windows Explorer credit, you can not do this. Windows explorer has a cut paste feature. Ooooo aaaaa UI candy.

Long filenames

A simple problem of visibility. I create an icon on the desktop that has a long name and it will not show me the name. In Windows, really long names are truncated as well but when the icon is selected the name is shown. Mac just hides it forcing me to command-i to get the information about that folder and even then I have to resize the window because my filename is to wide. This makes working with long filenames on the desktop a problem. And yes, my photo images have long names, so do my podcast downloads, and I hate this problem.



This file name is "this is a folder with a readly long filename" but I guess mac doesn't care.

Change View Consistency

As you change view in the Finder the location on the disk that you are looking at changes. This makes it hard to look at the same thing in different formats. There are two flavors to this.

Firstly the limited current directory mindset. This is the most pronounced in List or Cover Flow views. Select a folder in the view and press command-3 for example but any other view will demonstrate the problem. The new view is centered on the current directory which is not the directory that you just spent time navigating to in the list view.

The use case is this. Say I want to scan through some images in Cover Flow but when I open my Finder it is in List view. If I started navigating down the directories, opening this and that directory, navigating to the images directory and when I find it. I press command-4 for Cover Flow and low and behold all my navigation was for naught. I am relocated back at the top of the tree.

Some might say that I should select my view before I navigate, and I would say they are excuse making knuckle heads. The point of a UI is to be intuitive, not to force me to work in a certain way to get around how crappy it is.

Secondly the new window completely ignores the current directory of the first window. So, navigate to a directory, or not it doesn't matter, it's going to ignore you anyway. Then press command-n to open a new window. This new window will be located at your home directory so, if you are working in a project folder and want to move some things around then you will have to re-navigate back to that project folder.

And yes, you didn't want to hear it, but, Windows Explorer ctrl-n opens a new window at the selected folder. Now this is a nice user interface. They must have put lots of work into that. Really nice.

To do this with finder you have to use the "Open" metaphor instead. Right click open or command-o will open a new window at the selected folder. So, all it not lost.

Navigating Up

I am not going to say much about this because it is so crappy. I want to move up one directory. I press command-up arrow and a new window opens. I didn't want a new window just a different picture of the directory structure.

This doesn't occur in Columns View. If it wasn't for Columns View, the Finder would be practically useless.

URL Context Options

I have categorized this as a Finder problem because when I quit the finder the desktop icons disappear. However, that may have nothing to do with it.

If I drag my browser address bar to the desktop it becomes a .webloc file. I can double click and open the page in a browser. However, I can not copy the url of that site to the clipboard for pasting into emails or blog posts etc. I can not even open the information window on that file to get the URL. Window manages urls as files in a similar way to mac but the file type is supported with copy operations as well as lots of drag and drop opportunities. A url file acts like a url as it shoul in a good UI.

I am not sure what this would take to achieve. The file is just a little XML file with the URL in it but presumably there needs to be some OS extension to handle actions that can be performed on a file. Wait, stop right there. My inner developer is creeping out.

The mac sucks at handling URL files.

1/16/2008

ClearCase Depression Again

For such a great source control system this thing can certainly get a person down. Biggest road block from Clear Case is the checkout requirement. It doesn't sound too hard but when you consider that you can not refactor rename your code you start to get an inkling of how serious this is. This could be a problem with the Eclipse ClearCase plug-in of coarse.

It needs to do a rename first which doesn't require a file checkout, and then checkout the file to do change the class name. Then do the checkout for all the dependent classes and make the updates to them.

Well, it doesn't do this, so I have to fight the urge to leave the name alone. This is really hard because we all know that the manual rename of a commonly used class is going to take some time and leaving as the wrong name of a class is very bad.

The only option is to spiral back into a depression and wait for hope to arrive.

To all those coding in Ruby or javascript et al, with no refactoring IDE, you are like titans to me.

Ok, enough whining. Go depression.

1/10/2008

New Machine - Triple Click or Two Slow Clicks

I know I said that I wouldn't waste my time spouting about how great this machine was because everyone else does that. I have slipped a couple of nice things in but only when balanced by bad things. Well here it is, this is a good thing, all on it's own.

This is the simplest little thing but it is really nice. How many times do you have to click in your address bar before you can edit the URL?

Mac == one
Windows == two

The UI philosophies are completely different. Is the normal case to replace the entire URL or to edit and existing URL. It seems like a simple solution and I can't argue with Microsoft's solution that usually we need to enter completely new URLs so we should highlight the whole thing on the first click.

There is another practical consideration here. On Mac you can triple click to highlight the whole URL. So, I would ask, which is easier, triple clicking or making two slow clicks. It is clear to me, the slow clicking is for the birds, I have web pages to download people.

New Machine - Parallels Hang

We keep complaining about Parallels but we keep using it. What is our problem.

A Parallels Vista process ran beautifully yesterday, it was shutdown, the machine slept the night, and today it failed to respond. Would not quit, would not force quit, no response to "kill -9", nothing.

After much wastage of time, and hope, I start the shutdown and restart of a machine. The dialogs get amusing while OSX decides that it really doesn't have control over the machine either.

After the ctrl-options-command eject keystroke to shutdown the machine, I wait some time before this little gem.



The image doesn't show it but the cursor, hanging over the continue button is displaying the wait cursor so it can not be clicked. After some time OSX gets aggressive.



Unfortunately, I can not press the "Force Quit" button either. Of coarse it wouldn't have worked anyway, I tried that already.

I re-initiate the shutdown request.




Notice the current time and the promise the dialog is making to me. See, you need to trust you computer so these dialogs are like little contracts, just waiting to be enforced by the all knowing OS. Breath, OSX has it under control.


OSX is even trying to bend time for me. We traverse 3 seconds in 2 minutes, nice.

In the two months of ownership, this is the third time I am having to hold that power button down until all my problems go away. The common theme being Parallels. Perhaps its time to try vmware.

1/09/2008

New Machine - Default Button Shenanigans - Correction

I have to apologies for complaining about something I know nothing about. I indicated that the Adium IM end key was reassigned to a different feature, command-right arrow switches IM windows much like the command-grave keystroke.

While this is correct, the Adium IM end key is the func-right arrow as opposed to the command-right arrow in other applications like the blogger text box I am typing this into. So, while I have to retract my innacuracy it does offer the opportunity to whine about another mac UI inconsistency.

When should I be using the func-right arrow over the command-right arrow. I would have thought that the concepts of home and end would have been fairly simple for a UI designer to grok. Such is the ineffectiveness of the mac UI.

1/07/2008

New Machine - Another Opinion

Dave talks of Edvard Munch but I think, if my history is correct, Edvard used a mac. Infact, if you zoom in to the painting you can see that he is screaming in hatred and frustration as he tosses his mac over the bridge.

New Machine - Default Button Shenanigans

I had this post prepared to whine about the way that mac presents its' default buttons on its' dialogs. It was going to be o-so-contrite with subtle sneers here and there for effect and all toped off with the classic "windows does it better". Who could have hoped for anything more.

OK, I take it back. Tentatively mind you, because I am sure there is something subtle to sneer about here.

The mac dialog shows two types of highlighting. A complete fill-in or a subtle ring. Well, it turns out that the fill-in is activated with the "enter" key and the ring with the "space" key.

The Stickies application, on closing a sticky note, offers a ringed "Don't Save" and a filled-in "Save" option. Only one key is required to select an option. There is a third button with no highlighting that you have to tab to. The tabbing moves the ring highlighting allowing the "space" key to select the button.



The downside of this is my expectation that it is a non-standard feature of the Stickies application. There seems to be so many in-consistencies that I have come to expect them.

The latest inconsistency hearkens back to older post complaining the lack of a consistent end key. Command-right arrow doesn't work in gmail. Well now I find that Command-right arrow is assigned to a completely different function in Adium, allowing me to select the next IM window. Nice feature, bad key selection.

Is this Adium's fault or the fact that mac doesn't have a consistent end key.