Posts Mentioning RSS Toggle Comment Threads | Keyboard Shortcuts

  • donpark 9:55 pm on January 30, 2009 Permalink | Reply
    Tags: book, design   

    Web Form Design: Missing the Big Picture 

    I ran across a book titled Web Form Design: Filling in the Blanks by Luke Wroblewski which, according to glowing blurbs from well known folks, a great book on web form design. But, when I proceeded checkout after placing the digital copy in the shopping cart, this web form smacked me in the face:

    daunting-form

    While the form may be clean looking and arguably well organized, it made me abandoned the purchase. Why do I need to create an account with two-book publisher website to purchase the book? If the form was optional and discount was offered in exchange, I might have thought about it but not if it’s a requirement without a matching reward. I also didn’t see why they needed my address when I am buying a digital copy?

    The lesson here is:

    Web designers should first justify, from the customer’s perspective, the need for each form and its components well before sculpting them into perfection.

     
    • Steve Campbell 9:29 am on January 31, 2009 Permalink

      The address is your billing address – they need it to charge your credit card. If you paid by Paypal, then different story – they don’t need it.

      Nitpicking aside, I agree with your sentiment.

    • John Wang 9:41 am on January 31, 2009 Permalink

      It seems the form doesn’t ask you to specify payment method when they ask you for your address and phone number. Ideally, they should use PayPal and remove the need to enter to provide that information to them at all.*

      The paperback version of this book is available at Bookpool (out of stock) and Amazon has the paperback version of Mental Models. If Rosenfeld doesn’t want to offer PayPal w/o address and phone number, they should let Bookpool and Amazon sell the digital versions as well. Any additional cost would be a small price to pay for some additional piece of mind.

      * I should note that some sites ask for your billing address and phone number even if you’re using PayPal. Share-It! used by some software developers comes to mind.

    • donpark 10:44 pm on January 31, 2009 Permalink

      It’s my perspective that significant part of UI is about engaging in conversations with users, helping them along paths they want to take, leading on along paths we want them to take, whispering little stories at every step.

      All too often, engineers forget to consider the business solution to technical problems. Paypal, like you guys mentioned, is one of them. If, by using Paypal, UI can be improved, it deserves a place in a UI designer’s potpourri of tricks.

      Vice versa, technical changes can solve business problems. Many third-party Twitter services fail to do this, leading them to abuse the API, exposing themselves to business risks.

    • Lou Rosenfeld 6:54 pm on February 1, 2009 Permalink

      Hi Don, obviously please don’t use the first two of my postings. I was actually responding to another blog entry that popped up around the same time as yours where the poster had some similar concerns with our forms. I accidentally posted my response at the same time as yours (as I’d been working on them both in the same window). You might find that posting and its comments of interest as well (the blog entry is included), but I’d appreciate it if you’d just post my trimmed response to your entry, as it’ll make far more sense.

      Also, when I went to your About page to find a way to contact you (not there, BTW), I scanned a little too quickly and now realize that it was one of your commenters that mentioned being Korean, not you. So feel free to trim my mention of the Korean translation (unless you are indeed posting from Korea).

      Sorry for the confusion…

    • donpark 2:03 am on February 2, 2009 Permalink

      Hi Lou.

      First, allow me to apologize if ‘two-book publisher’ came off as a put down. It wasn’t.

      Second, I understand that day-to-day business headaches can lead to less than desirable results. I wasn’t criticizing your company nor your books but was using the ironical misfortune in your site design as an example to illustrate a point. It was an impolite thing to do and I should have added more blurbs to dull the sharp edges but I didn’t. I plead lazyness.

      Third, I’ve been accused of being a Korean before and I’ve always answered “Was it my Kimchi breath that tipped you off?” Jokes aside, I was born in Korea but, after living in the States for 34 years, I feel like a cultural mutt, both and neither.

      BTW, it’s good that Korean translations of your books are coming but I would be most interested in books about oversea markets because they have very different forces and dynamics at work that renders powerhouses like Google and Yahoo bewildered and ineffective even now.

      (please let me know if you didn’t want me to delete the long comment preceding the last one. I can restore it.)

    • Lou Rosenfeld 6:19 am on February 2, 2009 Permalink

      Hi Don, I’m obviously posting too late at night, and making too many mistakes! I’d meant to say to use my second posting; no need to publish the first, or the third, though now that it’s up, no worries. And I didn’t think you were impolite at all; it’s good input, and I really appreciate that you took the time to share it. We’ve actually vastly improved our cart (if you can believe it!) since launching a year ago, all thanks to customer feedback. In any case, thanks again and apologies for the confusion.

  • donpark 3:27 pm on January 30, 2009 Permalink | Reply
    Tags: ,   

    Google App Engine Launcher Options 

    If you are not a geek, sorry about these tacky-techy posts. I like posting them to help others geeks running into same problems later.

    I’ve been running my GAE apps locally on my Mac using Google App Engine Launcher. The tool makes it simple and easy to develop and test apps designed to run in Google’s App Engine cloud but I ran into a problem when I tried to test my apps with Internet Explorer (running locally in VMware Fusion). Basically IE couldn’t see my apps.

    After a few minutes of googling and poking about, I concluded that GAE Launcher was binding my apps to loopback IP (127.0.0.1) instead of an external subnet IP (192.168.0.x). The fix was simple:

    1. Stop target application
    2. Open its application settings dialog by double-clicking on the app in the list of apps.
    3. Add to Extra Flags box: –address=192.168.0.x
    4. Start target application. If you have firewall on, you’ll be asked to allow Python.app to accept incoming connections.

    Other options for GAE Launcher are:

    --help, -h               View this helpful message.
    --debug, -d              Use debug logging. (Default false)
    --clear_datastore, -c    Clear the Datastore on startup.
    --address=ADDRESS, -a    Server binding address
    --port=PORT, -p PORT     Port for the server to run on.
    --datastore_path=PATH    Path to use for storing Datastore
                             file stub data
    --history_path=PATH      Path to use for storing Datastore
                             history
    --require_indexes        Disallows queries requiring composite
                             indexes not defined in index.yaml.
    --smtp_host=HOSTNAME     SMTP host to send test mail to.
    --smtp_port=PORT         SMTP port to send test mail to.
    --smtp_user=USER         SMTP user to connect as.
    --smtp_password=PASSWORD Password for SMTP server.
    --enable_sendmail        Enable sendmail when SMTP is not
                             configured.
    --show_mail_body         Log the body of emails in mail stub.
    --auth_domain            Authorization domain
     
    • James Little 8:32 am on June 8, 2009 Permalink

      Thanks for the tip!

      If you add the address “0.0.0.0″ then the SDK server will respond to any IP address (and still respond to “localhost” too). Useful when you’re local IP is assigned by DHCP, i.e. changes frequently.

  • donpark 11:15 am on January 29, 2009 Permalink | Reply
    Tags:   

    Twittling Away 

    I’ve been busy crossing the deep jungle of chores that suddenly appears whenever one attempts to launch something. I’ve also been using Twitter whole lot more, partly to test but mainly because the service I am building brings services like Twitter way too easily accessible. It’s the phenomenon I’ve been trying to confirm but, now that I have, I can see how it needs to be leveraged carefully to avoid exposing users to addictive and, potentially, career ruining behaviors.

    If you are not following me on Twitter yet. You can follow me at http://twitter.com/donpark.

     
  • donpark 11:03 pm on January 25, 2009 Permalink | Reply  

    Twitter Platform Business Model 

    After recent announcement of new Twitter API limits followed by news of Twitter seeking funding at $250m valuation, I think Twitter may be building a double-prong business model: one they are still trying to define and a platform business model that charges businesses for web services for near future and, later, hosted services (run sandboxed third-party code at Twitter for tighter.

    Om Malik writes:

    As a company, Twitter is still trying to come to grips with its identity — whether it wants to be a service, a platform, or both. If it is just a service, then a $250 million valuation might be too rich. On the other hand if it ends up becoming a platform that is supporting add-on services such as Twitpic Stocktwits, then it can be accorded a different valuation.

    I don’t think Twitter has to, nor should, choose one or the other if it can go after both. Of course, that takes time and resources as well as creativity and control but I think $250m valuation will help.

    Speaking for myself, I am fine with paying for Twitter’s consumer service as well as platform service as long as fees are reasonable and service is flexible and dependable.

    To other Twitter developers and entrepreneurs, a word of advice: try working within what Twitter API is designed for instead of trying to force it to do what you want.

    Cool or not and needed or not, not everything that can be built should be built.

     
  • donpark 12:53 am on January 22, 2009 Permalink | Reply
    Tags: , ,   

    So GAE 

    Yesterday, I went over to checkout Google App Engine and, because GAE made it so easy, ended up writing a little webapp I’ve been thinking about writing for a while. Besides, it’s been a while since I used Python so any excuse would have worked. Currently, it runs only on my laptop because I haven’t added security bits yet but it shouldn’t have any problem on the real thing.

    Oh, shit. My MBP’s video memory seems to be on the brink. I am getting random lines on-screen now.

    The app is a port/extension of part of the Twitter client functionality I had in Appily, my AIR client from more than a year ago that I shelved before starting SafePage. It scratches a usability itch that prevented me from using twitter more frequently. I wrote it to see how improving accessibility radically affects usage patterns. So far, it’s working but more time will tell.

    What I found frustrating while coding for GAE are the usual constraints of sandboxing but, for languages with rich third-party library support like Python, it gets really bad because many of those libraries have to be rewritten or replaced to varying degrees. For example, I couldn’t use existing crop of Twitter client libraries so I had to code the necessary calls myself. Each such incident is no big deal but the difference between hastily handcrafted code and libraries polished over time piles up.

    Anyway, it was fun. Hopefully, I’ll still be in playful mood this afternoon so I can add the missing security bits and let others play with it too. Be warned, it’ll be rough as concrete floor as I don’t have the bandwidth to apply normal furnishings over the gears. My intention is to keep churning out snack-size apps like this one until one of them gains some traction then dig-in to see if it has legs, conversing with the users all the way.

    Call it, conversational entrepreneuring. ;-)

    Update: Wonderful. Just in time to catch the newly arriving short-end of the stick. I can understand why Twitter is doing this. They are riding a tiger that’s moving faster and faster, trying to turn it into a golden goose without getting eaten. The problem is that it’s neither impossible nor easy. I say, Hi Ho Silver!

     
    • Peter Yared 1:33 pm on January 25, 2009 Permalink

      Yeah the library thing is super, super annoying… Still it is amazing how fast you get something up and running with GAE, and that it can scale infinitely. And you know how I love Python!!!

  • donpark 2:32 pm on January 16, 2009 Permalink | Reply
    Tags: cloud, ec2,   

    Java Cloud 

    Still undecided about deployment strategies, I looked around to see if there are solutions like Aptana Cloud for Java, preferably with Eclipse support. Unbeknownst to me, Java cloud support started to bloom while I was busy wriggling over SafePage’s fate late last year.

    Notables are Stax Networks (TechCrunch mention) which is a service (just got the invitation code) and CloudTools, an open source tool by Chris Richardson of Cloud Foundry that makes it as simple to deploy a webapp cluster as writing a Groovy script. A common trend I noticed is moving away from using AMI as unit of change to using script to modify base AMI image on the fly. Also RightScale’s CentOS 5 AMI image called RightImage seems to be quite popular.

    Are there any other Java cloud services or open source projects I overlooked?

    Update: Stax uses a command-line tool with a handful of webapp template types to create and deploy. I’ll have to dig in deeper into templates to see how flexible it is.

    Update 2: g-Eclipse also looks interesting. I am going to dig into 1.0RC1 release last month and play with EC2 and S3 connectors. I also found Typica and jets3t which can be used to build a custom cloud deployment tool in Java if need be *eyeroll*.

    Update 3: My conclusion for the day is that Aptana Cloud stands alone as end-to-end solution so far although others are catching up fast. Note that Aptana Cloud is essentially a cloud reseller, focusing more on development and initial launch phases of startup where companies like RightScale seems to be focusing more on post-launch operational headaches.

     
    • Chris Richardson 9:17 am on January 17, 2009 Permalink

      Don,

      Thanks for mentioning Cloud Tools and Cloud Cloud Foundry. With Cloud Tools, you don’t even have to write a groovy script. There are some easy to use Maven and Grails plugins:
      * mvn cloud-tools:deploy
      * grails cloud-t0ols-deploy

      I hope you will take a look at Cloud Foundry: you simply upload your war and then deploy it with a few clicks on the mouse.

      Chris

    • donpark 11:11 am on January 17, 2009 Permalink

      Hi Chris. Duely noted. I mentioned groovy scripting instead of the mvn and grails because I’ll need to tinker under the hood and I think most developers will end up messing under the hood to varying degree.

    • Paul Colton 9:28 pm on March 26, 2009 Permalink

      Aptana Cloud now supports Java! See the blog post here: http://tinyurl.com/c5o5s4

  • donpark 3:45 pm on January 14, 2009 Permalink | Reply  

    Back in Habit 

    In case you haven’t noticed, I am back to my usual daily blogging habit since I now have more time to chase my own tail. That means I’ll be sticking my fingers into other people’s business and ranting pointlessly like I used to before. Hurrah!

     
    • Matt 4:18 am on January 15, 2009 Permalink

      Hi Don.

      Good to have you back although I am sad at the circumstances being no stranger to them myself.

      Good luck with your next go around!

      matt.

    • haller 6:20 pm on January 19, 2009 Permalink

      wb!

  • donpark 3:13 pm on January 14, 2009 Permalink | Reply  

    Web Dev Hand Tools Revisited 

    Before I start prototyping some of the ideas I’ve been kicking around, I need to decide which tools I’ll be working with, making choices that’ll haunt me for months to come, as usual.

    Language

    At SafePage, we started with the assumption of using Java because that’s what everyone had most experience with. Eclipse was also a hard addiction to break from. I tried to get the team to play with Groovy but, in the end, Java was it. This time, I’ll be the only coder for a while so I can be flexible.

    At this point, I am leaning heavily toward PHP because that’s what Aptana Cloud supports. Although I’ve been using Java since the first beta, I think I can write most of the front-end stuff in PHP and rest in server-side JavaScript using Jaxer, leaving Java for key web services and bots only. I am pretty sure that early windfalls from using Aptana Cloud will make up for late growing pains due to PHP.

    Ajax Framework

    At SafePage, we started with jQuery + Ext on my recommendation but discarded Ext within first few weeks because engineers found Ext awkward to use. Much later, we started missing sophisticated layout and table support both Ext and YUI offers.

    This time, I am going to go with jQuery 1.3 (released today!) for most tasks and use Ext when complex widgets are needed since I personally had no problem using Ext. Quality and selection of Ext widgets is hard to beat but it’s too heavy for mundane Ajax stuff and style-conflict will create problems later unless Ext style is embraced fully which I am not willing to do. YUI style is cleaner but, egads, verbose YUI API really rubs against my simpletonian vanity. Re Dojo, I’ll just say it’s too liberal for my taste.

    I like the choices John Resig made with both design and implementation so far although quality of most jQuery plugins and widgets are too brittle and selection of widgets too skimpy despite the size of jQuery developer community. I think it’ll take another year before jQuery UI widgets mature in substance, style, and selection. Note that both jQuery and Ext can be used in AIR apps which is going to be important later.

     
    • Kevin Marks 4:58 pm on January 14, 2009 Permalink

      Don, if you’re happy writing Java, you may find Google Web Toolkit a good way to do web dev:
      http://code.google.com/webtoolkit/
      It does a nice job of bridging the server-side and client-side objects smoothly.

    • donpark 6:20 pm on January 14, 2009 Permalink

      Kevin, we tried using it but ran into integration issues (I haven’t confirmed it myself but I trust the engineer who worked on it) while trying to graft it onto existing code. I will take a look at it again later to see if those issues have eased.

      BTW, I am unhappy coding or writing in any language. It’s just my nature. ;-p

    • Peter Yared 11:59 am on January 15, 2009 Permalink

      hey don, yeah we use jquery as well and are very pleased. it is so clean and is continually maturing. cheers, py

    • Uri Sarid 3:56 pm on January 15, 2009 Permalink

      Nice brief analysis of the technology choices… I’m curious, if you’re thinking of using Jaxer for the back end, why would you use PHP at all rather than do everything in JavaScript (and DHTML) end to end?

    • donpark 7:39 pm on January 15, 2009 Permalink

      Peter, Yo! How is iWidgets doing in the shitstorm?

      Uri, Jaxer is handy for scraping but no third party libraries to speak of so one has to build everything in JavaScript or callout to web services which obviously won’t work at all levels.

      BTW, I am still not settled on using PHP yet. All the bleeping choices (framework, template engine, etc) I have to make based on either outdated or half-baked info/hype/hate out there is giving me unnecessary headache.

    • Valeri Bogdanov 4:22 am on January 16, 2009 Permalink

      About Ext – I was impressed by the amount of widgets it offered … until I saw the underlying mess it creates. That really turned me off.

      About the server side language – have you considered using Ruby? While I don’t have exp. in RoR I really liked working with Ruby (for a very short period :( )

    • donpark 11:55 am on January 16, 2009 Permalink

      Hi Valeri. Yeah, Ext should be used with a ten-foot pole. Not everything glitzy is fun to open up and play with.

      Re Ruby, I like the language but, unlike PHP which is just a tool, it’s more of a religion meaning one has to dive into it fully to get the most use out of it. Also, I had difficulty ’seeing’ the flow of control with all the fancy gears hidden behind overly open language syntax. I consider Java’s ‘annotation attributes’ a cursed blessing but it at least sits on the side of code where Ruby is more of a wild open house party IMHO.

  • donpark 11:45 am on January 14, 2009 Permalink | Reply  

    Ads in PDF 

    Adobe has concluded that ads in PDFs don’t work (via TechCrunch). I agree that normal ads don’t work but the general idea still remains largely unexplored. One variation I think has more merit augments PDFs and e-books in general with helpful context-relevant links.

    For example, a PDF report on recent stock market performance could have a sidebar that displays a list of links sorted by relevance to contents of the page displayed. Business model for this variation is the same as yellow pages which sells ad-spaces around fine-grained content with tight contextual constraint.

    The key difference between the original idea and this variation is that the original idea attempts to leverage primary content directly where this variation attempts to raise the value of secondary content (page relevant links in sidebars) within which ads are weaved in appropriately.

     
    • dda 3:17 pm on January 14, 2009 Permalink

      Air France inserts an ad in their online boarding passes (when output in PDF). It’s mildly annoying (after all a boarding pass is for a service I already paid for, plus I am paying for the ink and paper, so why should I also display an ad?), which is why the PDF usually goes through Photoshop before being printed… ^^

  • donpark 10:03 am on January 13, 2009 Permalink | Reply  

    SafePage: Stealth to Ghost 

    I’ve been hoping to avoid having to write this post but I have some bad news to share regarding my startup.

    SafePage was founded a year ago to build a secure personal portal that offered Internet users convenience, security, and control across the private part of the Web, all those web pages hidden behind passwords, giving users one-click access to protected sites and, eventually, at-a-glance overview of personal data across those sites using widgets.

    We had three things going for us:

    • Highly talented team of security-minded engineers from RSA and Passmark, the same that built the technology currently protecting millions of online bank accounts. We got the whole team, Mo!
    • Deep experience and connections at the top level. Bill was CEO of Intuit and Paypal. Louie was CIO/GM of Platform Services at Excite and SVP of Internet Services at Wells Fargo. What about me? I am world class at coming up with confusing zen koans and tasteless analogies.
    • Unusually large seed funding, by today’s Web 2.0 startup standard, from Bill and Canaan Partners, a highly respected VC firm.

    So we spent a year in stealth mode and prepared to launch in January. Just when we started looking for more funding to take the service to market, world economy fell apart. To make the painful story short, SafePage is exiting stealth mode and entering ghost mode, as in R.I.P.

    What I regret the most is that, except for closed-beta users, the world never got to see SafePage in action. So, what will I be doing now that I find myself naked in a shitstorm? I am working on some interesting ideas and looking over my options. Long ring finger part of me is whispering: Naked is the best time to dive into the shitstorm.

     
    • Erik 2:44 pm on January 14, 2009 Permalink

      It was great working with you again, we will just have to bare is all and see what comes.

c
compose new post
j
next post/next comment
k
previous post/previous comment
r
reply
e
edit
o
show/hide comments
t
go to top
l
go to login
h
show/hide help
esc
cancel