For Hire: BSD implementation of Yojimbo-like title bar

I’m quite fond of the title bar Yojimbo uses for its notes pane and would like to emulate it in a project of mine. Implementing the view myself however has been very frustrating. I’m still a very novice Cocoa drawing programmer and when it comes to enhancing the draw methods of standard controls I find myself surrounded by questions and unfamiliarity. I’d like to throw some money at the problem and am looking to hire a UI designer to develop the view to my specification.

Yojimbo Note Title

QuickTime Demo

The view I want basically works like this:

  • Has a gradient background.
  • Uses a NSTextField for the title. When not firstResponder it shows the string with a transparent background and no borders; when being editing it shows a raised editor with a grey outline and soft shadow to make the editor appear popped out. The editor should grow while been edited. When the title is blank it should show the placeholder in grey so during the editing the growing text area isn’t zero.
  • Under the title it will use a small NSTokenFied to show tags. (NSTokenField is a subclass of NSTextField so if you can get the shadow/growing design working there this should be the same).
  • I will have controls on the left and right so these fields should work as placed in IB. Don’t assume the NSTextField will fill 100% width or anything.

Other notes:

  • The code will be released under BSD license.
  • When trying to implement the view myself I came across a session of WWDC 2003 where they demoed an Address Book like UI and called it Raised Editor. It has some interesting approaches to the issue (drawing the shadow as an image, cutting out the middle and compositing it over the editor area) but because he only demos some of the code (and the full sample code it no longer available from Apple) I’m left to wonder how I could apply the techniques they used inside of an NSTextView for shadows around my NSTextField. The key issues is the bounds of the control and drawing a shadow outside its bounds.
  • There are some code examples on CocoaDev and CocoaBuilder that are relevant to the problem but for me they weren’t a full solution. (IE: I Want to use NSTextField to get spelling checking, etc. I don’t want to subclass NSView).

If you are interestined in the job, please shoot me an email with a price quote. If you want to show off your mad cocoa skills and do it for kicks, that’s welcome too. Thanks alot.

Posted on: May 30, 2007 – 5:55 pm | Comments (0)

C4[1] Scholarship

It looks like the C4[1] Scholarship deadline is approaching fast. Wolf says all applications have to be in by Wednesday. Surprising enough normal registration hasn’t sold out yet (at least according to the website). If you are still on the fence and are easily influenced by the comments of random bloggers, I say you should go.

Who is C4 for? Most of the people who go are Mac developers whom make money (or want to make money) building software. Lots of the people are independent like myself but people from BigCo will be spotted as well. Checkout the schedule and you can get a nice overview of things and gauge interest.

I’m already paid up but am still figuring out if I might come in a few days early/stay later and take in the town a bit.

Posted on: May 28, 2007 – 3:21 am | Comments (0)

NSDecimalNumber to NSXML and Back, A Cocoa Bug

I’ve been working on processing the XML export Billable creates and have discovered a strange behavior which I think is a bug. Basically when you pass an NSDecimalNumber (or even a regular NSNumber according to others) to the NSXMLNode using the setObjectValue: method and create an XML file it uses E notation to represent the number. I don’t have a problem with this but for some numbers it doesn’t use a decimal symbol for numbers like 1.0 or 4.0. When you read the XML back in and turn these into NSDecimalNumbers using decimalNumberWithString: you get 10 and 40 respectively.

I’ve create a sample application to demo the behavior. It generates 300 random NSDecimalNumbers (incrementing by .1-.5 over time), the first column is what I’ve generated, the second is what it looks like in XML and the third is what it looks like after been read from the XML back into an NSDecimalNumbers using decimalNumberWithString:.

XML to NSDecimalNumber Bug Demo

I think one work around is to scan the XML string representation for the number and if it’s missing a decimal insert on after the first character but have to do some test to see if it’ll work under all cases. If you have more information or suggestions please let me know.

rdar://5231233

UPDATE: I’ve added a second version of the program with two new columns. One for the result of my “insert period when missing hack” and the other to note if the hack was needed and if so did it work. I’ve added to the total numbers generated as well, included negative numbers, extremes and the magical zero. I think this hack (which is a category method of NSString titled decimalNumberValueUsingXMLHack: should work.

To all those submitting suggestions for how I can create a good XML file (and work around the bug), thanks — but the true bane of this issue (for me) is that I have bad XML in the wild and need to cope, hence the work around on processing the XML file.

Posted on: May 26, 2007 – 5:56 pm | Comments (3)

The Move to WordPress

Yes that’s right kids. If you are reading this you are on the new WordPress powered blog of Clickable Bliss. While I do lose some geek pride in dumping my own home grown Rails blog engine for WordPress I am gaining some sanity. Why the move?

  • Comment spam was getting out of control, even with my math question. WordPress doesn’t solve this totally but I’ve been very satisfied with Akismet filtering on my personal blog.
  • I wanted to use MarsEdit to post.
  • I wanted to start proper pinging of content servers when I post.
  • Rails is overkill for such a simple blog, and I’d rather use those servers / my attention for bigger applications.
  • Generally speaking I’m hoping to use public plugins and not have to write and maintain all of the code myself.

As far as the feature set goes I’ve tried to stay true to the simple design I had before, thus most of this WordPress install was taking features out. No categories, tags or trackbacks. The page layouts have been gutted to show only the basics. There is however still a comment preview (though not live), a subscribe to new comments via email or RSS(new), as well as Markdown support. I’ll tip my hat to Daniel and Rogue Amoeba for the “About the author/Try my software” sidebar pattern.

During the move I took the opportunity to fix some since-gone-missing images in the older posts as well as fix a few character encoding issues. The old site should be redirecting everything over here. All of the old permalinks as well as date indexes. For the new URLs I’m using the WordPress native dashes to break words in the title. I used to use underscores but I couldn’t get the underscore pluging to work (hopefully a sign of things NOT to come) and then found out Google might like dashes better anyways, so I stuck with them. The only thing I think I lost in the move was email subscriptions to new comments of old posts. I doubt it’s a huge deal, but it didn’t seem to have a huge ROI as far as my time goes (very complicated, little reward).

The design as I said is pretty close to the old site. The most notable change is probably the logo. When I first commissioned the logo I remember one rule was the logo had to scale. No color, full color, inverse color. I’ve played around with the logo on black before but this is the first time its made it out to the public. I think it’s very slick looking on black. The rest of the Clickable Bliss site hasn’t changed but I’ll probably do a shake up eventually. Not sure how it’ll go. For me this logo on black is almost an experiment.

Anyways let me know if you see something broken. Pardon the construction. Yatta yatta.

Posted on: May 19, 2007 – 1:43 am | Comments (11)

Comments turned off

This blog (and the forums) have been getting a lot of comment spam over the last few weeks. I’m still trying to work things out (a bit busy with actual work) but for now comments are disabled here on the blog. Before recently being a custom blog engine actually helped me avoid the bots but I guess they are getting smarter (even figuring out the math question I made people give to post). One thought is to move to WordPress which I’ve used before. True WP doesn’t mean no spam — but it does have plugins to help keep things under control. We’ll see.

I’m really sorry. Thanks for your patience.

Posted on: May 7, 2007 – 4:39 pm | Comments (0)

Coda Thoughts

Today Panic released Coda, one-window web development. Stevenf described it as “by far our biggest, most ambitious new software launch of all time” and playing with it for only a little while I can see why.

First, a round of applause. This is a really big application and it has Panic polish all over it. Some points of interest:

  • The custom controls in the CSS section are very well thought out and very pretty. Specifically, the segmented selector to define background repeating pattern is spot on.
  • The sites view with its “flying papers” is very snazzy though sadly only half of the imported bookmarks resulted in a pretty piece of paper with the actual site on it. Perhaps I should be allowed to override the URL it gets the picture from?
  • The ability to highlight tags/commands/functions in the editor and bring up inline documentation via the Books is a killer feature. I’ve seen editors that do it for PHP (or Cocoa), but not PHP, HTML, CSS and JavaScript.

So with all that said will I use it? Probably not.

This workflow of developing a website is something I stopped using three years ago. Almost every site I work on these days is powered by an open source (or custom built) content system. A core reason for this decision is so that when I do have time to work on the site I want to spend it writing content, not managing files or thinking in HTML. The ability to open up MarsEdit, write a post in a lean markup language like Markdown is my heaven. Sure, whenever you setup a new site that uses a content system there is a period of editing the templates and CSS but I don’t see having a one window environment to be all that of an advantage. To be honest, I’ve never really felt held back doing my development with all my apps open and jumping in-between them. I use Expose a lot and do an option-command click when I really want to hide all but the application I’m clicking in the Dock. For me this works great.

I’m sure Coda will find an audience and be a successful app. I know lots of people who live in this workflow and might enjoy Panic’s “unification” take on the problem. Congratulations guys!

Posted on: April 23, 2007 – 6:12 pm | Comments (2)

How to improve the Apple Design Awards?

Today is the deadline for the Apple Design Awards and with some hesitation I entered Billable 1.1.2. By process of elimination the only category it really fit into was User Experience. Now while I do consider Billable to be easy to use, this category, based on past winners, is really about applications with a lot of user experience candy (for lack of a better term) which Billable (currently) lacks. I don’t expect a win but I do think getting X number of high ranking Apple employees to take your application for a spin and evaluate it really is a good thing.

Sidenote: When my old MegaManEffect application was all of a sudden getting downloaded thousands of time per day, shown on G4TV, etc. I tracked it down to a single Apple employee whom told 2 friends, whom told 2 friends, etc. a few days before the surge. Lots of influence on that campus. Don’t waste it.

Anyways, I did enter Billable into the ADAs tonight but I can’t help but feel the these awards have lost something over the years and/or haven’t evolved enough. One issue I suspect is a perceived imbalance to the categories and prizes.

Personally, I love the student category; I love the user experience category. I can respect the ‘latest OS X technologies’ category though some years (like this one) it doesn’t really make sense since the OS isn’t even shipping yet. Then the categories start to be domain specific (developer tools, games, scientific computation). While I have no issue with these domains why not a business category or a desktop/internet hybrid category? And where did the open source category go? When I look down at my dock there are lots of quality apps that make this platform a pleasure to use that don’t fall into these 3 slots. Last is the Dashboard Widget category which in my experience draws a common reaction. Generally speaking, people compare the work it takes to win Best Mac OS X User Experience (a category most products are forced into) to Best Mac OS X Dashboard Widget, look at the sweet prize list (see Section VII of the rules) and scream “unfair.” Now if I was entering the ADAs purely for a prize grab I would tend to agree with that statement but I think when developers are staying up late, doing the indie developer thing instead of a “real” (sometimes better paying) job and polishing up those application with the dream of an ADA in their subconscious it’s not the prizes that keep them going, it’s the recognition from Apple and the overall developer community.

Perhaps Apple should shake it up next year. Perhaps they should get rid of the prizes, keep the sweet looking trophies, and expand the awards. How about bringing back best open source application? Introducing best open source code/examples creator, best mailing list contributor, best blog/website, best 1.0 product, best technical book? Let the developers nominate people/products/websites for some of these new awards (since explaining why you are so great in an award application is kind of creepy and it would help to gauge the community’s actual interest).

Giving up that prize pool would be tough (really tough) but in the end I think I’d rather see more of the people who are producing great applications, sharing code, answer questions and participating in the community get recognition for their accomplishments. What do you think?

Posted on: April 23, 2007 – 5:01 am | Comments (5)

Mac Developer Cooperative Advertising

Daniel Jalkut posts a service idea that would allow Mac Developers to cooperate inside of an ad network.

Think The Deck, without the money. I’m envisioning a scenario where a central server dispatches ads to participants. For every ad a viewer sees on your site, one of your ads gets displayed to a viewer of another participant’s site. The degree to which your ads get shown is directly proportional to the number of viewers you bring “to the collective.” So slightly bigger companies get lots of exposure across the network, while even the tiniest of companies at least gets occasional exposure on a big site.

I could see Clickable Bliss participating in such a network. When it comes to the implementation, I would really prefer to vet the list of ads that would appear on my site. Also, it would be kind of cool if I could throttle the credits of mine that get spent per day. So maybe I could slow down advertising before a large upgrade and then open the floodgates after it is released. Storage and transfer of credits could also be useful if I wanted to donate some of my credits to a new developer just starting out.

I do think it’s a good idea but unfortunately am already a bit overloaded with projects of my own to help build it out. I’ll have to watch from the sidelines for now but hopefully someone can get the ball rolling.

Posted on: April 22, 2007 – 7:02 pm | Comments (0)

The Problem with Custom Installers

While I can appreciate Jesper’s intention to keep the UI simple (an assumption based on his brief post) I can’t endorse the use of custom installers.

First I’ll say this: if you can provide the app as a drag and drop application bundle and copy what ever weird support files you need on first launch, do that. If you truly need to do some sort of install process, please use the built-in install system. It actually has a lot of useful features for users:

  • The ability to show and search the file list which explains where stuff will go.
  • Works well with Apple Remote Desktop allowing system admins to deploy you app to whole labs of Macs with ease.
  • Trust and comfort.

Trust and comfort come from experience. I’ve used this Apple installer many times. I know what’s going to be asked of me, I can examine the end result of the install (ie: the file list) and while the process does involve many clicks they are (after all this experience) brain-dead clicks.

The overall problem with custom installers is that they make you think. You have to be just a little more attentive to what’s going on. Is this such a huge issue to stop the majority of users from evaluating your software? No, but why introduce hesitance?

I am not alone in my uneasiness with custom installers. Many high profile and “power users” look down on them as well. Some of the big boys like Microsoft and Adobe may get away their shenanigans but for the rest of us, the more we follow the expected behavior the more they will like our products.

PS: For building installers friends recommend Iceberg.

Posted on: April 20, 2007 – 4:03 pm | Comments (10)

Interesting ‘Summary’ UI

I spent a good part of today setting up, playing with and blogging about my new Airport Extreme. Part of the process included using the recently revamped AirPort Utility.app. While well designed overall I really found the way they approached the need to summarize data interesting.

When you are about to configure the base station it will offer the choice to be assisted or do the setup manually. Clearly when you are doing the setup manually there will be a lot of choices and in a predictable way they split up the fields through a number of standard Aqua tabs. What is unique is the fact that the first tab is a summary view of the whole configuration and as you hover over the labels you can click them and it will take you to the tab that info lives in and put focus on that specific area of the UI.

More useful labels

A short movie of the labels in action.

I can’t say if this is a truly unique UI approach but I can say I’m intrigued by it.

Posted on: April 19, 2007 – 11:44 pm | Comments (1)

« Older posts / Newer posts »