Microwave UI Patents

Joël Franusic has an interesting theory that the reason microwaves have so many different UI’s is because patents make it difficult for them to share a similar interface. Like Joël, I’m not totally convinced, however I do suspect this is at least part of the problem. I also think it goes way beyond just microwaves, that particular appliance is just a great example. The end result is the products created, and the users who buy and use them loose out. If you skim through some of these patents, it seems pretty obvious and hardly innovative, even for the times.

Patents will be the downfall of technology and innovation in America if it’s not reformed.

Loren Brichter On Tweetie

Loren Brichter is the author of the popular Twitter application Tweetie, an iPhone only application until the Mac version was released on Monday. MacWorld has a great little interview with Loren. One thing I really admire is that Loren really understands how to build a good application. Performance, ease of use, simplicity are all taken into account. Not just features and toys.

I thought this particular nugget was the highlight though:

..AIR apps are like modern day Java applets… sure, they run on every platform. But they also suck on every platform.

I’ve yet to find an Adobe AIR application I like even though several have great ideas behind them. Even on Windows, where I presume AIR has the biggest market share they all look strange, the UI is garbage and the performance is abysmal. On the Mac it gets even worse. Creating a Mac theme won’t help as my expectations for a Mac UI are different than they are on Windows or Linux. Java apps have the same issues.

I think this is why more and more “applications” are becoming web based. If your going to feel awkward and unnatural to the user anyway, why even bother with the installation barrier? Why not just be web based so you don’t have to download and install. As awkward as they may be, those that add Adobe Flash tend to make the problem worse by adding more strange feeling UI to their application. Adobe Flash does do good video, it’s a big reason YouTube became popular, but it’s really no replacement for user interface. Hopefully in 2017 when HTML5 is wrapping up we’ll have this problem solved.

Web Application Coherence

One of the greatest things about Parallels is Coherence. The integration between the virtual machine and the host OS makes virtualized applications feel almost native. It’s a major win for users who don’t want to be locked into a mini-desktop.

I wonder if this concept could be brought to the web in a secure, but convenient method. There are many applications that could benefit. You could pull widgets off a page and onto your desktop as an application. For example you could take Meebo, an online IM service. In a matter of seconds it would feel as if you downloaded a new application, but your still using your browser. People love web applications, and hate downloads. This has been known for a while. Meebo is extremely popular because it feels somewhat like a desktop application, but it’s web based. Think of this as Apple’s Dashboard taken to a whole new level.

Take for example this psudocode (it’s just to make a point, not an API):

<div id="frame">
    <p>This is a window that can be brought to the desktop</p>
    <p id="test"></p>
</div>

var widget = document.getElementById(‘frame’);
 
// This would test if it’s currently coherent
if(!widget.coherence){
    // This would prompt the user to allow coherence on the page.  Typical extension-like install warning.
    widget.allowCoherence();
}
 
// When you first enter coherence mode
widget.coherence.oncoherence = function(){
    document.getElementById(‘test’).innerHTML = ‘I\’m in your OohS, integratin your web pagez’;
};
 
// When you focus (bring a window to the front)
widget.coherence.onfocus = function(){
    document.getElementById(‘test’).innerHTML = ‘Your in focus’;
};
 
// When you first enter coherence mode
widget.coherence.onminimize= function(){
     document.getElementById(‘test’).innerHTML = ‘I\’m idle right now.’;
};

The first time your browser would hit allowCoherence() you would be prompted to allow coherence for that domain. Other than the integrated look/feel it would adhere 100% to typical web sandboxing. This isn’t like building an XULRunner app where JS can write to the filesystem. It would just be a way to make web applications more usable for people. and breakout of the web browser feel.

There are other things that can be done as well. For example css theming could give the app a more native look/feel dependent on the host. Perhaps just an attribute in the <html/> would trigger the browser to render things to look like a native app by default (pinstripe background for page by default, etc). Another great thing to use with it would be offline support. A little more cleverness would allow you to create bookmarks that essentially “open the application”.

Ultimately this would still be about web applications, but making them live outside of the browser window. The user wouldn’t need to install anything more than a web browser. The applications would be as safe to use as browsing to a website.

So there’s my giant idea. Implementing this in something like Firefox would be a rather large task, and to be useful the API would need to be standardized across browsers, but much of the underlying stuff is there. Anyone interested in taking web applications to the next level?

Does Firefox need to steal from Safari?

I’m a sucker for these kind of posts. I love users who share opinions, even if I disagree. There’s a blog post circulating about 9 things Firefox should steal from Safari. I’d like to go over it quickly:

1. Highlight the current text field

I agree. I really like the feature at least on the Mac. I’m not sure it really works in an application that wants to feel native to Windows, but I guess you can debate that for a long time. There was a stalled effort to do this in Bug 251198. There hasn’t been any activity there for a while. As I recall the general opinion around the web was lukewarm.

2. Font rendering

I personally agree that Apple’s font rendering is awesome. But there are many that think it’s an abomination. Joel on Software did a great writeup on font rendering recently that’s worth a read if your interested in the topic.

3. The Downloads dialog

I’m ambivalent on this point. I kinda like how Firefox shows where it’s downloaded. Other than that, I don’t see much of a difference. Then again, I don’t live in the download manager. The only thing I really care about is the download status. Perhaps that’s just me.

4. HTML rendering Speeds

There is a lot at play here. At a minimum David Hyatt’s post on speed testing is mandatory reading. A lot has been changed in Firefox 3.0, including a rewrite of incremental rendering and moving to Cairo. How will this effect performance both perceived and actual? I think it’s still to early to say.

5. The bug reporter

I’d love to know what people think about this one, considering I wrote reporter for Firefox. At over a half million reports, I think it’s been pretty successful despite being buried in a menu and pretty much unadvertised. I’d also love to improve it if someone has some UI enhancements to improve usability that make sense (I’m against change for the sake of change). We don’t show “the bug” by default in the toolbar. You need to customize the toolbar and add it yourself. Obviously it isn’t a feature worthy of such valuable screen real estate. Maybe it could be good to enable by default for debug/nightly builds? We talked about that at one time, but never took action on it.

6. The Find dialog

I hate the find dialog on the top, I think it belongs on the bottom. But I do agree that displaying the total number of results found would be a great little enhancement.

7. Detachable tabs

I still think this is such a Mac thing, but I do like it (I’m a Mac guy, so perhaps I’m bias). There was talk of this at one point. There is a mention of it in the brainstorming page for tabs, sidebar, windows for Firefox 3.0, as well as an old bug (Bug 113934). Currently you can drag a tab between windows, but it reopens in the new window (doesn’t carry the state).

8. Draggable images

Is this a problem in Firefox?

Update: I think it’s only an issue on the Mac.

9. Resizable Text Areas

I like the feature. There is an extension that will give you this functionality. Should it be part of the build? I’m really not sure. Definately not for text inputs (it mucks up at times making a mess), only text areas where it’s handy. Though I wonder if this feature exists in more browsers, will designers by start making text areas so small that we have to expand them all before we can use them?

WebApp as Desktop App Security Model?

Recently there has been a fair amount of talk about bringing web applications off of the web and onto your desktop, or to put it in really simple terms: providing a bare-browser that has no UI but the site you visit. It sounds good, but I’m not convinced it’s quite workable, at least at this point. A few example of these attempts are:

The first two are somewhat generic in purpose, while FullerScreen is intended more for the task of using a web page as a presentation medium. Making it a potential replacement for something like PowerPoint.

I’m not quite sure this is really a workable model for the “average user”. Take for example the following scenario:

Say you use this as a way to make your Gmail (or Yahoo) account feel more like a client-size application. You receive an email to visit a site. You click the link and visit the site. You think you are using Firefox. In reality you’re really viewing a spoofed window. Even if remote XUL is disabled you can still do a fair job with just a bunch of cut up GIF’s. Enough to fool a casual user. Firefox has some basic countermeasures to help prevent this, such as keeping some UI.

This could be prevented if a “windowless” browser always prompts or provides some other sort of notification before connecting to an unprivileged host. Or better yet: Simply launches the real browser rather than handling untrusted url’s. That would be better and less Vista-like.

So that leaves me with the question: how should such an application behave? A true desktop application typically launches the default browser on the computer. Notable exceptions being things like Real Player, Google Earth, etc who embed a browser. How do you give a desktop like feel to an application, yet still provide the UI feedback to the user that a browser’s chrome provides?

My suggestion is simply limiting by a hostname. You have a Gmail app, you trust Gmail and nobody else. In my mind an application does 1 task and does it well. If it was intended to feel like a Gmail client, then it should do that, and that only. Want to visit that website with the monkey that sniffs his own butt? Cool, but do it in your own browser.

I’d be curious what others thought of this potential problem. I think with XULRunner looking more stable, WebKit being available to Mac developers and the merging of the web and OS, things like this are a potential problem. We are getting more and more ways to embed browsers into things (widgets, extensions, etc.). This is going to be more of an issue moving forward.

This isn’t to say I don’t like the above products (I actually really like them). I just haven’t figured out exactly how they fit into the current security model of local:safe, web:devils-playground. I don’t think they do. I think they potentially break the barrier between the web and desktop applications. We’ve all been hoping would be broken. The question is: are we ready?

The higher level question is: How do you distinguish between trusted and untrusted data when it all looks like it’s local?

Winter Break is upon us

That’s right. Final 6/6 is done. That means it’s time for 1 (6/6) Winter Break. I’ve got a few things on my agenda.

The first thing that needs to get done is a clean install of windows on my laptop. So I’ll be backing up this afternoon/evening and wiping tonight. Tomorrow I’ll start copying data and reinstalling. It should take several hours, but it’s necessary. I put it off for a while because the semester was still going on, but it’s time.

After that, reporter webtool is a big priority, I want to wrap that up, and get the second test deployed. Lots of improvements, a massive UI overhaul, and tons of tweaks, changes, bugfixes, enhancements. I’m looking forward to that.

Then I’ve got some more ‘classified’ stuff to take care of… Of course some sleep falls into this whole picture somewhere.

Overall, going to be busy, but should be fun.

Flash tutorial for Firefox 1.1

I briefly flashed the idea on #spreadfirefox, but I thought I’d elaborate on it here:

First Impressions are everything

We’ve said that before, and most agree. Psychologists have spent considerable time on this. People make very quick decisions on if they like something or not. They either like it, or they don’t. Impressions happen quickly. Firefox needs to make a good one. I think we can improve it by creating a Flash, JavaScript, or SVG based tutorial on first run. Something flashy, yet professional, and artistically done. Clean simple UI. Perhaps a few options on the main page:

  • Firefox Features
  • What’s new in this release – 1.1
  • Why Firefox
  • IE –> Firefox Tips and Tricks
  • Help Firefox

Each would bring you to some information, such as why you should use Firefox (including an animated demo of how ‘Tabbed browsing works’, ‘Livemarks’, etc. Minimal Text, maximum efficiency. In 5 minutes, the user should be able to see why Firefox is better by example, not by reading. How to use features etc. Simple, quick, easy to follow. Sexy animations show how it works. People are hesitant to read text.

What’s new, would be a great way to show users what changed since the last version. Remember: Firefox got this far by word of mouth. Letting current users see how much better each version got, makes them more inclined to tell some friends about it. Show off the new improvements in a way users are inclined to see them.

Help Firefox would perhaps discuss ways to help Firefox (obvious right). Spreadfirefox.com, report broken websites, report bugs, donate, buy Mozilla gear, etc.

Such a feature would popup on the first load of a new profile. At that point they could disable it from showing again. Next release it comes back with new features. Only once by default, unless the user decides otherwise.

What we accomplish

  • Show users what to look for when deciding if Firefox is right for them.
  • Show users the new features if they are upgrading.
  • Show users how to adjust to Firefox if they are a habitual IE user.
  • Show users how they can help Firefox.

I think we can all agree we want that.

Casual users don’t like reading. They don’t have the patience. It needs to be displayed for them. Illustrated for them. That is what will get more people to use Firefox. Remember: downloads are great, but we ultimately need users. That’s the goal here.

After Asa and djst started I couldn’t resist

After Asa, and djst started redesigning the toolbar, it got me thinking. What would be the best config for the general user? So I got playing, and here’s what I came up with:

Option 1

Toolbar 1

This is more compact, and better (IMHO) for larger displays at higher resolutions. There icons are selected and positioned based partially on IE parity, as well as a few are placed to introduce Firefox Advantages (new tab). Secondly they are spaced and catagorized appropriately (core navigation features, url bar, quick search, browser accessory features).

Option 2

Toolbar 2

This is even more of a feature parity, and keeps the same concept. The big ‘advantage’ here is that the URL is more visible on smaller displays. Not sure if that long is needed. Most end users will only enter domains, not long url’s, so having that much space is mostly irrelevant.

The one button that would be cool to have with either is a second bookmark button to add the current page as a bookmark. That way even such a feature as bookmarking is visually represented easily in the interface.

Ideally I see three goals:

  • Parity, reduce the learning curve for potential new users.
  • Optimize screen real-estate. As much page space as possible. Minimize clutter.
  • Make common features, and our ‘best parts’ visible. Such as the go button, quick search, as well as tabs (it’s a big feature).

End users aren’t learning key commands. That’s why they like GUI’s. So things like tabs become much more accessible as a button than as a menu option in the file menu. That’s obscure, and users don’t see it. But as a button it’s easily accessible.

Comments welcome.