Thursday, September 11, 2008

New ColdSpringFramework.org Site Launched

The eagerly awaited, fresh new ColdSpringFramework.org site is now online! It was somewhere around CFObjective this year that I heard the ColdSpring team was being pestered for a new site (well, long before that - but that's when I got serious about it) so I finally hunkered down and did the design I had promised Chris long ago, then finished the HTML/CSS at CFUnited. Kurt Weirsma did a fabulous job implementing the site in record time, and Briak Kotek has been furiously working away at documentation as well as gently prodding the rest of us to get our parts done :). Those ColdSpring guys are amazingly productive... the new site has an exciting future with a lot of great new things planned, and it's been a real team effort to get it online. I hope I can now say that ColdSpring has a site that does the framework justice. Check it out!

Tuesday, June 10, 2008

Introduction to Model-Glue Presentation from MD CFUG

Thanks to everyone who attended my Introduction to Model-Glue presentation tonight at the MD ColdFusion User Group. It was nice to see some familiar faces there!

As promised, here is the latest version of my presentation and some of the code samples we looked at.

Presentation PDF

Sample Application - CF Art Gallery

I'm sorry we ran out of time and didn't get to look at the Art Gallery in more detail - I usually cut my presentations too short and I guess this time I overshot it! If you have any questions about what was discussed, feel free to contact me at raelehman [at] gmail.

Wednesday, May 14, 2008

To BES, or not to BES?

Today, I draw the line at learning Blackberry development.

This blog is about being a designer and a developer. And as the only person in my Marketing department, I do the jobs of at least three distinct positions, if not more. I'm not saying I do the work of three people, they keep me busy, but not that busy! However I am the sole person responsible for internal applications development (barring IT/systems admin support for server and database management, and most reporting), marketing strategies and tactics, and graphic design/creative direction. In these varied roles I find myself making distinct "hat switches" from day to day: Monday I design and mail a few thousand postcards, Tuesday I upgrade our dashboard application, Wednesday I coordinate trade shows. And so it varies.

It's just too much of a shift to spend the first part of my day planning a direct mail campaign, and the second half programming Flex and CF. Sure, I've done it. But I find I am more productive if I put on one hat and wear it all day, than if I jump around between tasks. I'm not sure if I get more done that way, but it feels like I do! I design better if I'm not thinking "but how will I program this?." I program better if I stay knee deep in code once I'm there. I open my mind to develop marketing strategies better if my mind isn't cluttered with thoughts of design patterns and syntax.

This generally works, but I feel I could be a lot better at any one of the three, if I just focused on it all the time. Extra hours of experience aside, never having to think about the other roles would help me focus and specialize. I've struggled with this a lot lately, thinking that I need to specialize my skill set (way before Seth made this post). And I've wondered...where do I draw the line in learning new skills? Should I?

My company recently moved from hosted Blackberry service to our own BES, and the opportunity of deploying our own applications and themes has excited management. Since I do all of our internal applications development, I will theoretically be writing any Blackberry applications we develop. I read up on basic Blackberry development a few months ago when this prospect first arose, and got to understand the basics, but somehow I cannot get behind forcing myself to take on Blackberry development, nor do I see a lot of need for us to develop BB applications.

I will always learn what technology is required to do my job, and I certainly never plan to just "stop" learning new skills because my brain is full, or such nonsense. However, I do feel like venturing into BB is unnecessarily broadening my already ridiculously general skill set. As the Director of Marketing, do I "pull title" and tell the IT guys they're on their own? I'm thinking now would be a good time to do that.

Technical learning curve aside, I might feel different about this if I saw a real need for a custom BB application within our organization. But none of our core systems (the ones that would really be valuable if they were mobile-accessible) have any type of open API that would allow proper integration (read: I would have to directly connect to an undocumented legacy database, and probably violate our software license), so anything I build would be a total band-aid solution, mobile "just because we can". Hardly worth learning a new skill for that.

Despite my goal of being a lifelong learner, I feel like at some point I have to say: "let someone else deal with it!" So ends the rant of this designer-developer, and I'll put this out there to all the other generalists: where do you draw the line? How do you decide NOT to learn something? How do you juggle different roles?

Thursday, May 8, 2008

CF.Objective() 2008, #3 Come and Gone

Well...another year has passed for the CF.Objective() conference! It's hard to believe that the first one was three years ago.

Funny story about that... when I first heard about it -- the rumored "advanced" ColdFusion conference -- I thought, "there's no need for me to go to that, I'm not really that advanced." But it was over a weekend, so I tagged along with Adam and told him to tell Jared (Rypka-Hauer, the organizer) that if he needed any help running the registration desk or anything, I'd be happy to donate my years of experience running conferences.

As it turned out, they did need my help. I worked the desk, hand-scrawled signs to post outside the meeting room doors, and most importantly: got to meet just about every one of the 100 guru developers that were there. And as I worked it, I realized that the session schedule looked totally awesome, and that there were things I could learn there, so I was very happy to find out that it was happening again. The next year, I returned as an actual attendee (and also designed that "E for Enterprise" t-shirt you may have seen).

For the past two years I've been sort of their "designer on the side", helping out with various graphic needs of the conference, and this year I was honored to get a special "VIP" badge - as they put it - "anyone who cuts their honeymoon short to attend a conference deserves a VIP Badge"! Well, we didn't exactly cut the honeymoon short, but we did go straight there because we simply did not want to miss such an excellent conference.

This year's conference was better than ever. Best Meetings, Inc & Jim Lewis, the conference planners, did a great job - things have come a long way since that first year where we didn't even have signage. The downtown St. Paul Crowne Plaza hotel location was great, within walking distance of several restaurants and conveniences. I saw several excellent sessions, covering a preview of Model-Glue:Gesture from Joe Rinehart, Developing Flex Without a Framework (heresy? no!) by Max Porges, Adding Chat with BlazeDS by Tom Jordahl... those were some of my favorites, but every session I attended was really great.

A lot of the conference buzz was about the new frameworks - Mate, the Flex Framework from AsFusion which really impressed the crowd, including Chris Scott who has been working on a Flex framework of his own - Swiz. Then there was Model-Glue: Gesture (3), now in Alpha.
The Adobe team held a BOF (Birds-of-a-Feather) discussion of ColdFusion 9, which I thought went really well - many great ideas, and mostly constructive discussion. The Adobe guys kept really open minds, despite the consistently difficult challenges this community throws at them!

A lot of the talk there was about ActionScript on the server (to supplement or replace CFScript, and using AS Objects as a replacement for CFC objects) - plenty of controversy and counterpoints there, and I will leave it to the experts to cover that in detail! There were several other new or improved feature suggestions, many having to do with server administration. The demand for a real CF IDE was as high as ever.

I was still on Hawaii time so I had a rough time getting up in the morning for the early sessions (I did miss one slot - bummer!) but I was able to actually stay awake late to hang out with everyone at the hotel bar afterwards so there was an upside... We had a blast, as always - met lots of people, caught up with friends. No, this wrap-up is not technical, more like a ringing endorsement for my favorite CF conference! I am already looking forward to next year.

Speaking on Model-Glue at MD CFUG June 10

If you're in the Washington DC area, I'll be speaking at the Maryland ColdFusion (Adobe) User Group in Rockville, Tuesday June 10, 6:30 pm to 9:00 pm. My topic will be "Getting Started with Model-Glue", and there will also be another presenter, Jeremy Kadlec, talking about "SQL Server 2008" which I am looking forward to seeing!

For meeting details, visit the MD CFUG website:
http://www.mdcfug.org/

My talk will cover the powerful but simple MVC (Model-View-Controller) framework for ColdFusion. If you're new to developing with a framework, or just want to find out more about Model-Glue, this presentation will help you take the plunge. We'll cover installation, setup, and creation of a new application. Then we'll demonstrate how to accomplish some of the most frequently required tasks in building web applications with Model-Glue, and finish with some highlights of the upcoming Model-Glue: Gesture Alpha.

If you've been considering giving Model-Glue or frameworks in general a try some time, this is your opportunity - sometimes seeing it demonstrated in person can be a big help. Also I can personally attest to the the Model-Glue mantra - "MVC for you and me" - it's a wonderfully simple framework that just works and will really help speed up and improve your development. No pre-existing 1337 skillz required! I've been using it for a little over a year now, and I've never looked back. Hope to see you there!

Monday, April 21, 2008

It's Finally Over, and It's Just Beginning!

Well Adam and I finally tied the knot yesterday, and we are incredibly happy and relieved to have the whole thing done! The wedding was a blast, though insanely stressful beforehand. Our amazing family and friends managed to pull off whatever we couldn't (there's nothing worse than not having any control or being able to do anything for yourself during the event when you've planned it for a year!) - they came through for us in so many ways. We have the best friends ever!

I have to mention certain vendors we worked with who really deserve accolades for doing an exceptional job: Timpano's in Rockville for the swank reception, Balducci's in Bethesda for the gorgeous and tasty Cake, and the Pooks Hill Marriott for the awesome suites and hosting of the after-party at their lounge. Brookside Gardens was very accommodating in helping us move the ceremony inside at the last minute during the forecasted torrential downpour. The rain didn't stop my friend and photographer Lia Moschonas and her fiance Jim from being great sports, soaked through and still shooting what I'm sure are going to be adorable photos of us under an umbrella!

Needless to say we're going to disconnect as much as possible (from computers, phones and the interweb - not eachother) for the next two weeks as we finally take our dream vacation-honeymoon to Hawaii.

There will be pictures on Flickr as soon as we can get them up there...and if you have some, please contribute to the pool!

Wednesday, April 9, 2008

My CF IDE Wish List

I drafted this awhile ago and never published it ... but as I was cleaning out some comment spam I came across it and thought I should put it out there. So here goes!

[In response to a a community-published survey about a ColdFusion IDE] I appreciate the reasons for doing a survey, but I really don't see the value in this particular survey or its predecessor from Adobe. My answers were basically... Yes. All of that. Important. Happy to pay for it. What else?

The features listed are basically what's available to us now, although not in a single IDE and perhaps at varying levels of quality. Although it would be a big improvement to see those things done right in a single environment, I think there are a lot of additional features that would really make the IDE worthwhile. Some things I would like to see – pie in the sky – are…

Integrated support for CF Reports – not a separate development IDE – it may or may not be a good idea from a performance standpoint, but it sure would be convenient! Or alternatively, opening up the CF Report format (CFR) into an xml-type language that can be generated by any number of tools - either community created, or perhaps, if I may be absolutely ridiculous, InDesign?! Reporting IDEs across the board are atrocious, but a single one, done right, could be revolutionary.

Integrate the server into the IDE so that the CFML you write is being actively compiled/interpreted sort of like it is in FlexBuilder. Then I can catch errors and typos as they are written – when I’ve mistyped a method name or not included a dependency. I believe this is a really complicated thing to do, but it would truly enhance productivity.

Improve support for SQL code. I know this was mentioned, but I want to emphasize it. I think the current workflow most developers use for writing SQL sucks. I don’t want to have to switch to my database IDE – that does nothing for me when I’m writing dynamic queries. The RDS Dataview query builder in FlexBuilder is ok, but limited – it doesn’t understand complex queries and is not intuitive for use with parameters/variables. And I want SQL syntax highlighting within my CF IDE.

I think the CF Extensions for FlexBuilder for generating CFCs are nice, a good start, and I’d like to see them enhanced and customizable. The XSLT or CFML approach that Brian Rinaldi uses for Illudium PU-36 CFC Generator templates works well for me. In fact, I really like Illudium, but if it was all within the CF IDE, even better. I'd also like to see some options to generate CRUD forms based on database tables. I realize you can sort of do this with the application wizards, but I'd rather be able to do it in small pieces, which I can then easily integrate into my application or site, instead of having to build the whole shebang, extract out the small parts I need, and then modify it so heavily I may as well have written it from scratch. In other words, I'm sick and tired of hand coding forms...

I think this one should be simple…fast access to CFIDE/Admin console from the IDE! Maybe sort of like the RDS approach – list all the CF instances you can connect to, and then click once to get to that particular admin. Or be able to browse admin settings right within the IDE.

This may make some hard core developers squirm or perhaps vomit…but I think having some well written “starter” applications bundled with CF would be useful. Sort of like Access comes with database templates for several common types of applications – contact management, inventory, project management, issues database, survey, blog, simple CMS… the same idea, but web-enabled. One key factor: have a well designed model that can be ported to various frameworks with minimal effort. It would be difficult to choose one particular framework, but if it was done right, it could be easily customized.

I understand there are probably good reasons to not do many of these things, but I’m just saying, as a developer/designer, these things would make my life a lot easier, and that’s what CF is all about, right?

Monday, March 24, 2008

Speaking on AJAX Usability at CFUnited

I've attended CFUnited since it was called "CFUN" and held in a single room (how it has grown!), and I'm excited to say that I will also be a speaker this year. I will be speaking on AJAX Usability. My talk, as of this writing, will be on Tuesday June 19th at 9:30 am.

A little bit about my talk...

When AJAX first became widespread, several usability gurus aired concerns about how this new power could be abused, and we've seen no shortage of AJAX usability mistakes on the web. Thankfully, many design patterns and best practices have also emerged, and following these guidelines can help you avoid those pitfalls. In my session, I will cover some of the top usability issues you should be aware of when using AJAX, and show practical examples of how to overcome them.

Because there are so many AJAX libraries and toolkits the code can vary greatly, my session will focus more on the usability principles and design of the interaction, rather than code snippets. Where possible I will recommend specific libraries or resources that help address these issues. If there is time (still working on the presentation!), I will also touch on how you tweak your design workflow to better incorporate rich interaction.

This session will target the intermediate UI designer. I will assume you have designed websites in the past and have studied basic usability, but you do not need to be a guru. If you are a developer with limited design experience who uses AJAX, this session is for you. If you are a designer who is now expected to design applications that incorporate AJAX, and you want to be sure your usability knowledge is up to date, this session is for you. If you think your AJAX applications are "as usable as they need to be", this session is for you! (Because there is no such thing as too usable!)

Wednesday, March 5, 2008

On Creativity - Andy Rutledge Read My Mind

I wish I could have written this! This article on ALA says--far better than I ever could--so many things that have been on my mind as I come to terms with my own sense of creativity.

http://www.alistapart.com/articles/oncreativity/

Friday, February 29, 2008

I *might* just have to buy an iPhone

I've been waiting patiently for years to be able to pay my tab via a tabletop or wireless device, and this is one ingenious step closer!

Order Starbucks With Your iPhone

Thursday, February 28, 2008

Effective and Usable Validation for Long Term Data Entry and Workflow

This topic sure sounds droll! But I've been thinking about it a lot as we've dealt with these issues at my company, so I thought I'd do a brain dump.

In large applications that store complex data, validation of form input is likely going to be more involved than just checking the fields' existence and format on submit. Many times the data comes in in bits and pieces, over a long period of time, and is entered by several different users, before the form is "complete". The validation rules may also have too many exceptions and special cases to really enforce them. This probably comes back to poor process and application design, but it certainly exists and you may just have to live with it. However, some type of validation needs to be in place to maintain data integrity - whether its for reporting, data mining, or simple assurance that the information in the database is accurate.

One approach for validating this "long term" data entry is to attack it in stages or tiers, with each progressive stage becoming more stringent, until the final step at which everything must be complete before (figuratively) closing the file. Here's an example.

Stage 1 - Alerting the user to data that is needed.
Non obtrusive alerts serve to bring the user's attention to parts of the form that they "may want to fill out" before moving to the next screen. This warning should be clear in its purpose, to essentially let them know, "at this stage in the process, you usually want these fields to be complete". This might be some type of border, icon or label combination that indicates important fields. The warnings will only apply to this particular step of the workflow. There may also be different levels of warnings - such as "information alert", then "warning", then "critical error" - with different rules as to whether or not the workflow can continue with their presence. If future steps in the workflow are dependent on the existence of certain data, that would usually mean that it's a "critical error".

Step 2 - Warning the user that data is needed.
Now the user is attempting to move forward in the workflow, and data is still missing. When the user hits the button to send the form on to the next stage in the Workflow, they will see a validation warning - a pop up window or screen - that says "these fields should be filled out before moving to the next stage". The missing fields should also be highlighted in such a way that the user can easily see what's missing, perhaps with an error message next to them. At this point, you may want to prevent them from moving forward until the data is complete, or allow them after they acknowledge the warning. This depends on the situation and the stage in the process. The warnings usually only apply to the current section in the workflow, and may also follow a scale of severity.

Step 3 - Preflight before closure
When the file is approaching closure, as the final step, there is a preflight stage, where a list of exceptions or warnings is presented to the user before closing the file. Up until now, the only warnings shown apply to the current step in workflow. Now the preflight "issues list" will show exceptions from every stage, organized by stage, and ideally give the user a single, simple place to fix these issues (such as a custom wizard/form that walks them through completing each field step by step) before proceeding. As with the other errors, the preflight will show exceptions on a severity scale, from "information" to "warning" to "critical error". You can decide how to handle each level of warning, but typically warnings "should" be fixed, and "critical errors" will prevent the file from closing.

Step 4 - Post close audit
Depending on your business rules, files may have closed with information still missing. Therefore, you will want to have an audit report (really, it should be available at any step in the process) that will show each exception allowing errors or missing data to be easily found and corrected. You may also wish to display this information with the individual users at each step in the workflow, so that you can tell who sent this file to the next stage with incomplete data.

A good working example of this type of validation is consumer tax preparation software such as TurboTax. Building flexibility into the data entry process, and allowing the user to move forward even with incomplete data can dramatically improve usability - required fields are the user's enemy - but there need to be checks and balances to ensure data integrity is maintained.

Friday, February 22, 2008

Business Card Printing Round-Up

Business cards. Everyone needs em. And now with online printers and digital printing's coming of age, everyone offers them. So where's the best place to get them? Often with printing, the selection is driven by budget. Many businesses will order cards from whoever offers the cheapest price.

However, there are often substantial differences between all the millions of printers out there, and some businesses are discriminating about quality, especially when it comes to their stationery. They may demand special print methods, colors, and paper. Large businesses want someone who can produce their business cards reliably, cost effectively and consistently - in large volumes, with frequent orders, and a simple ordering process (online) that doesn't burden the HR department who typically handles business card orders. Then there are plenty of small time side workers, independent contractors, or individuals who need business cards, not very many, not very often, not very expensive, but want something better than micro-perf cards they can print at home on their inkjet.

Ultimately, the printer you select for business cards really depends on your business's situation. I always have directed clients and companies I've worked with to various printers depending on the job. In my current situation, the driver was, as usual, price. Not that my current printer was charging too much. Ok they were. They are good, I use them for a lot of things, but the prices I was getting on business cards was at least double what I was seeing online, and seeing how much of my marketing budget gets eaten by stationery, I was determined to get a lower rate. I had previous discussions with my printer brainstorming how we could produce our business cards more cost effectively. I know that printing is a very competitive business, and I appreciate good work, so I did not want to push them to simply lower their rates.

I asked about their options for shells - that's where you pre print high quantities of templates with logos and other standard marks, and then you just imprint the individual person's contact info on top of it - often with a single color - in smaller batches, reducing the total cost per set. I asked about batch orders - printing several cards at once. I contemplated changing specs (we'd already gone from three to two color), and determined that the best option would be to submit orders in batches.

So I carefully managed my batch orders (time consuming!), sending as many at a time as possible, often with the effect of forcing people to wait longer for their cards than I would want them to - and forcing me to print temporary cards on our laser printer until the orders could be placed. Having worked with batch runs on this job and shells in previous jobs, I have experienced all of their drawbacks, and in today's world, on demand is really a superior option. So my requirements in locating a better business card printer - if there was one to be had - were these.

  • Meet or exceed the quality and appearance of our current cards, so that no one would even notice (or only notice improvement in) the difference in the new cards
  • Closely match the other stationery we have, from other printers
  • Easier ordering process, preferably all online rather than email-and-call-and-email...
  • Pricing low enough that on demand orders were realistic
  • Overall savings on our business card costs
I tried four printers during this process (yes we order that many business cards!), they were:

1) Local Business Printing Franchise who I will not name specifically - I don't want to hurt their reputation, and my experience with them has been no better or worse than a variety of similar printers I've worked with - the pros and cons are the same.

2) 48HourPrint.com - up and coming online printer, their name says it all - fast, quality printing is their promise.

3) PrintingForLess.com - one of the "original' budget online printers, popular and successful - low cost, quality printing is their deal.

4) VistaPrint.com - another popular online budget printer, who focuses a lot on the consumer market, and boasts some of the lowest prices anywhere

Two other printers that I had on the list for consideration if none of the above worked out were
a) ModernPostcard.com - an online printer specializing in direct mail (that's what I've used them for and they were good), who also offers a few other standard print products
b) PSPrint.com - an online printer specializing in standard products at low prices. I've used them for greeting cards and they came out great.

I did not start with these because the options they offered were more limited, and would not allow me to exactly duplicate the specs I was currently working with.

Lastly - there's always the "high end" lithography/engraving/specialty etc printer who will tell you they're happy to do business cards, and the results will be stunning (if it matters) - but you will pay a boat load and they will push you to print large runs and batches to make it more cost effective. They're only an option if money is no object, and ideal if distinctive quality is essential. Better to let them handle your annual report.

Specs
My specs were for a quantity of 500, single sided, two or four color (whatever options available), no bleeds (that's where the color goes off the edge of the paper), uncoated matte white cover stock, 100# + in weight or 12-14pt in thickness.

Here are the results:

#1 - Local Business Printer
Pros:
  • Flexibility in specs
  • Attractive results (the standard by which others were measured)
  • Relationship
Cons:
  • Expensive
  • Manual ordering process
  • Slow timing

Cost:
158.50 printing
17.06 shipping and fees (averaged from several orders)

The local printer runs every business card as a custom print job - just as if it were a brochure or a flyer or stationery. I got to pick the inks and papers - we were printing with spot color, which is often a necessity on business cards to get crisp text and intense color, as well as perfect corporate color matching. The paper was a popular stationery stock, in a nice bright white, a heavy 110# cover weight, and smooth finish. I also have a relationship with this printer, so they are never more than a call away, and they "know" me - the paper we use, they have our logo and fonts on file, and we can work together well.

The problem was, their pricing was different for each run, depending on how many different names we ran. It sort of bothers me that their pricing is something of a mystery - perhaps I could figure it out if I crunched the numbers every time, but who has time for that? So I felt in the dark. Every order was charged setup and washup fees, regardless of how many were ordered. Even with my discussions with them about printing in batches, I found that the savings was not substantial in the batch sizes we were printing.

Also, to make their own lives easier, the printer was reproducing the print-ready files I was sending them (I asked them not to, and offered to change the way I was designing the files if necessary, but they seemed to do it anyway) and as we all know, every time that happens there's the chance to introduce errors. None of the errors they introduced made it to print, but it did make me lose some confidence in them, and scrutinize every proof from them in detail. The timing was also slow, both because we had to batch the order, and because they were a typical small printer with probably a single press - maybe two! They would always expedite orders if I requested it, but I think rushing every order can damage the relationship with a printer, and cost you more, so I did not want to do when it was not absolutely necessary.

#2 - 48HourPrint.com
Pros:
  • Beautiful results
  • Great price
  • Sent overruns
  • Fast turnaround
  • Streamlined, simple, automated ordering process on very nice website
Cons:
  • Limited paper options.
  • No spot color offered
Cost:
50.00 printing
12.86 shipping & fees

I had used 48HourPrint for flyers and had good results, so I gave them a shot for business cards. True to the name, the cards came back in 2 days + shipping time, faster than #1 whose typical turnaround was 2 weeks. The results were beautiful, with crisp printing and nice intensity - even from 4 color printing. The paper options were limited to coated only, although a dull option was available so I ordered that. Two of the three recipients raved about the dull coated paper (in comparison to the original cards - the other guy just didn't care because he'd never seen the old ones), but the CEO preferred our original uncoated vellum so that canceled them out! Also the brightness of the paper was noticeably lower than that of our original stock.

Their minimum quantity was twice what I normally order, which is fine since the cost was still low. They also sent overruns, probably 25% worth, at no charge (this is where they print extras by nature of how the art is imposed on a sheet - most printers throw these out, or add a "plus overruns" fee to their pricing and charge you extra for them) . Overruns were not really necessary since I was already ordering more than I needed, but a nice gesture. If the paper had been a little brighter white, I probably would have considered talking our CEO into liking the new paper!

#3 - PrintingForLess.com
Pros
  • Offered uncoated paper
  • Can do custom options for paper and color upon request
  • Personal attention
  • Nice results - the ultimate winner
  • Great pricing, low shipping, increased discounts for larger orders
Cons:
  • UI on website is showing its age
  • Normal turnaround is not as fast as 48HourPrint, although they gave me a free upgrade to 3-day shipping for my first order
Cost:
49.95 printing
9.95 shipping and fees

PrintingForLess.com is very prominent on the web, and for good reason. Although their website looks dated and the UI has not changed in years (meaning it's rather kludgy - but works reliably), they make up for lack of slickness with service. It's unusual to see an online printer that actually tells you the name of the technicians working on your order, to get personal emails from them (and not for problems - just letting you know that they are available if you need them), as well as a follow up call to make sure we were happy with the results. And we were.

The result was the closest of any to the original I wanted to duplicate. I did order four color from them as a first try, and was pretty pleased with the color. I got a quote for using spot color, the cost was more, but still less than what I'm currently paying. I felt like the four color was close enough that I didn't need to pay extra for the spot color. The turnaround was fast, but not quite as fast as 48HourPrint. PrintingForLess does offer rush pricing and shipping in varying degrees, allowing you to conveniently pay exactly what the timing is worth to you. I hear that's actually where they make most of their money - on rush orders. But as a side, since becoming my own "director of marketing" I've all but eliminatated "rush order" from my vocabulary - planning ahead and proactivity are my preferred style!

#4 - VistaPrint.com
Pros:
  • Inexpensive
  • Nice color intensity
  • Brightest paper, nicest feel
Cons:
  • Imperfect Registration
  • Card size is non standard
  • Fees for everything
  • Slower service

Cost
42.98 printing (including paper upgrade)
14.45 shipping and fees (including upload and proof fees, which no one else charged)

VistaPrint is another prominent online printer. They target the budget market quite effectively, even offering "free" products (albeit with their name printed all over the back). Their advertised prices are so low it seems too good to be true, and it is. They upcharge you for every little detail: even an automatic PDF proof is $1.99 extra. By the time you're done adding it all up, the price is close to - maybe a bit lower than - the competition. They seem to push users to order with their predesigned templates, which are downright god-awful (ok I'm a snob), and charge you extra per file to upload your own design. Sorry, I'm a real designer here, I do it all myself. They charged extra for non-coated paper as well. Their pricing includes bleeds, but at the cost of reducing the overall cards size by about 1/16" which just bothered me. I'm sure their logic is that most would not notice and it allows them to print bleeds without using extra paper, but I do - especially when I hold it up to other business cards. And I didn't even order bleeds, yet I had to get them trimmed to the smaller size anyway.

On the upside, the card itself looked quite nice, with the brightest, heaviest paper of all of the printers (even better than the original). But the registration was ever so slightly off, giving the text that "halo" effect which, at a distance, made it look less than sharp. Not bad enough to complain about, but noticeable. Their turnaround was slow considering they are an online printer, many of whom make speed their value proposition - their "priority" turnaround was 7 days. Bottom line? I would use them for personal postcards or business cards even, for occasions or holiday printing, etc... But not for business. Also, although this order went smoothly, in the past I have contacted their customer service with quality issues and received no response whatsoever. This does not give me a lot of confidence in trusting them with all of my business cards - something that should be a simple non-issue.

In closing, PrintingForLess won out because they were superior on most points. Pricing, turnaround, quality and service were all excellent. I also liked that they gave me the option of doing custom jobs, which most online printers won't do. 48HourPrint was a close second, held back only by their limited paper options. My local printer came in third, because their price was just too high, despite their good quality. VistaPrint came in last, because I just do not feel they are a professional caliber printer - even if they are inexpensive.

Tuesday, February 12, 2008

Usability is not Accessibility (all the time)

I have had many discussions, seen many talks, read many blog posts about Usability...that all somehow devolve to issues of Accessibilty. While the two are intertwined in some ways, they are two very different sets of problems, and it bothers me that so many people seem to confuse them.

Case In Point: "AJAX Usability". You hear a lot about how AJAX is unusable. Sure, in the wrong hands, such a powerful tool can yield unusable results. But AJAX came about as a usability SOLUTION. Eliminating screen refreshes, intuitive drag and drop interfaces, natural-movement animation, subtle highlight effects, editing in place, live validation, sorting and filtering ... They were all created to give smoother, better cues and more responsive interfaces to the user. The most usable sites on the web today use AJAX heavily (hello, 37Signals!).

On the other hand, AJAX Accessibility issues are a different can of worms: The fact that a lot of the visual cues are useless if you can't see them, that JavaScript support is essential, that navigating AJAX interfaces with a keyboard can be a nightmare. The biggest cross-over issue I can think of is back button breakage, which is becoming less and less of an issue as usability techniques are developed to prevent its necessity, while simulatenously AJAX libraries are improving to cope with the back button. (And wasn't it just a few years ago that usability gurus admonished that no one knew about the back button? Funny how things change!)

Why does the difference matter? Because you have to understand the problem before you can solve it. It's possible for someone to be a usability expert, but not know much at all about accessibility. And vice versa - I have seen some really accessible sites with terrible usability. Perhaps the need for accessibility trumps any argument for usability, but not always. That's where progressive enhancement comes in to play. (Screen readers also need to step up to the plate and deal with RIAs, because that's where the web is going.)

So maybe in dealing with one you often have to deal with the other, but hey, I'm a web developer, it's my job to obsess over semantics :)

Wednesday, February 6, 2008

Marketing Messages - More Science Than Art?

In my days working in a corporate marketing department, we did a lot of group brainstorming to think about what our marketing messages should be. Headlines, campaign concepts, visuals. I always sort of hated these meetings, because I felt stupefied in them. Which sounds totally wrong because I'm the "creative" type who should love brainstorming and idea generation. And I do. But there was something missing from these brainstorming sessions: basic facts and research. So when it came time to "brainstorm", I felt like we were just pulling ideas out of our ass, and inevitably that led to others shooting down our ass-brained ideas. Not much fun.

I'm not trying to launch into criticism of our process, I'm just pointing out that many times in business, whoever is responsible for marketing is expected to generate these genius ideas that will win over customers and make a so-so company look world class. But they often try to do that with few facts, and little research as a basis.

The more I learn about marketing, the more I study it, the more I come to the realization that brilliant marketing is never achieved without facts, research and testing. Nobody knows it all, no marketer has such a level of intuition that they can create these concepts that will be embraced by millions. The marketer's genius is their ability to distill facts and research into an attractive and compelling message. And even then, in all the huge companies recognized for their marketing, that message is tested and tried and vetted to ensure that it is received well, before it's broadcast to the world. Yes, there is expense involved, but what's more expensive than research? A failed campaign.

Case in point: the horrible SalesGenie Panda Ad run during the SuperBowl vs the always popular Budweiser ads. Who has a better track record? Salesgenie has their CEO writing the ad from his own intuition (according to this article, anyway). No doubt, as CEO of InfoUSA this guy knows something, but apparently not market research. Budweiser spends months testing and their ads are always among the best.

Wednesday, January 23, 2008

Is your software less usable because it's "for developers"?

In looking at some usability differences between two different products from the same company (one far more user friendly than the other), it struck me how one seemed to be held to a much higher standard of usability and stability than the other. Now I know this could be due to different product teams, different budgets, product maturity, etc, but I also found it interesting that the less usable one was for developers, and the more usable one was for designers. And I wondered why the company would be willing put their brand on two products of such disparate quality. I know that if any designer encountered the issues that were prominent in the developer tool, without the software savvy of a developer (and that innate desire developers have to understand how things work), they would be far less tolerant of these issues.

And then I started thinking of other examples of websites and applications and other software that illustrates how so often, tools targeted at more savvy users are less usable. But developers (or experts of any nature) need usability too! Of course, advanced tools are often more complex and require more learning curve, but there is a difference between usability (efficient and streamlined user experience) and learnability (low learning curve). Advanced users don't need the learnability: the wizards, the step by step walkthroughs. But they most certainly still need and value the usability; and often demand efficiency, for which a streamlined user experience is imperative. They may understand the cryptic errors, but that doesn't make them like them any more!

I know I have been guilty of shortcutting usability on an application because I know the users can "figure it out". But that's WRONG, WRONG, WRONG. Your advanced users are as likely as anyone to appreciate, and even expect the attention to usability.