First you have to convince me…

I was doing some research on cell phones today. (Trying to do compare/contrast research on the mobile phone market is such an exciting adventure. Really not a fan of the industry.)? Ended up following a link to a page about the Droid, a device I’m actually quite curious about. I was greeted by this:

Holy throwing stars batman! When your website is to terrifying to contemplate how do you expect me to get interested in your device?! Nein!

Seriously though, technology needs to be elegant and transparent. Your website is invasive and confusing. End of Line, no sale for you. I have no confidence, and I haven’t even started!

The quest continues. Somewhere out there is a mobile data device that isn’t going to require my giving AT&T more money than they could possibly deserve. Forward and onward!

Quick Hint: CSS Selectors and pseudo-classes

It seems obvious now that I know it, but it seems that I never figured out that you could use include pseudo classes in a CSS Selector.

“a:hover img” gets you any image contained inside an anchor? tag that is currently being hovered over.

Why did I never know this before? Can’t say. But it sure is handy!

On data ownership…

Something I’ve been working on in my programming projects recently is ways to allow users to use their data from outside my service, and to take the data they have in services I create elsewhere.
In the new era portability is king. If you don’t allow users to use their data how they want, your service is utterly useless and doomed to failure.

Whoa there, you say, them’s some big bold words! If it sounds like I’m including the large portion of current generation products people are familiar with as the target of my wrath, you’re right on the money. Let’s take a look at a recent real life example, MobileMe.

MobileMe offers some excellent syncing tools for those of us with Macs and iPhones. Over-the-air (push!) syncing of contacts and calendars is a great tool, especially for those of us with a desktop, a laptop, an iPhone, and an iPod Touch all trying to stay perfectly in sync. However that’s exactly where the scope of the tool ends. Want to share contacts/calendars with someone else as “joint ownership”? Screwed! Can’t do it. So MobileMe loses one user/evangelist to Google, where I can choose to allow another user to collaboratively edit my calendar. MobileMe ends up in the trash heap because the data I give it can only be used in the ways that MobileMe wants me to use it, and I have different ideas.
Google also frustrates me though because I would very much like to set up a group of shared contacts between Bev and my accounts so we could maintain contact synchronization, but that’s not supported through them either. I have a huge store of data, and I can’t even grant another user ACCESS to it. This is full of fail.

Obviously one of the core problem with this is common language. There has to be a standard protocol that is used for each type of data in order for sharing to really work. For inter-service data (like sharing contacts with another user of the same system) there really is no excuse however.

There is another form of data usage to consider beyond just sharing. A good example of the type of thing I’m thinking of is WebHooks, but I’m not completely convinced on their implementation.
A current example of the concept would be posting? to an online forum that lets you “follow” the thread. When you post you can check the box for “email me when someone replies”. Now whenever someone posts something you get a notification. WebHooks is like that, except instead of providing a simple email notification it allows you to provide a URL and a notification is posted to that URL. The notification contains whetever data the application designer wants it to. This may seem like a power-user feature, but once the concept is widely accepted it allows you to let websites (and the datasets they contain) to interact with each other in fabulous new ways.

This starts with us, the application designers. And this is why I’m so hot and bothered about the idea. If I don’t design my own applications to allow the sort of data interactions that I want from other websites I use. Once again though, the problem is standards. How do you output the data? Do you create your own refspec for the specific website/application? Where do you draw the lines?

Once again, the problem is standards. There’s no reason why any user should have both MobileMe contacts and google contacts. Ideally either service should allow the user to use, not just “import”, contacts from the other.

We’re not there yet, and I understand how people scoff at this idea, but I’ll say it again. Data portability and access is king. If you don’t let your users get to the data they’ve entrusted to you and use it in the ways that they want to use it, they’re going to abandon you.

Delicious? How about “somewhat tasty”?

Delicious Library (Hah, you thought this was about food!) is a cool app. It’s pretty much the only game in town, and has also long been considered one of the premier mac apps in terms of visual style and workflow.

Where are the basic features though? Like secondary sorting characteristics? I really want to go through all my books and tag the “series” they belong to, but as delicious doesn’t sort “Series within author”, it’s kind of useless. This is especially annoying because the way core-data predicate searching works should make this decently easy to accomplish. iTunes has it (Album by Artist), and it’s really kind of an intuitive thing now that people are going to expect. (I’m actually really annoyed at Delicious Library right now, just because of this sorting issue!)

Here’s one of the downsides in working on cutting-edge platforms like Mac OS-X, iPhone App-Store, or the edge of webapp development. It’s a reaaaaally fast moving target. A feature that even a year ago would have been amazing, is now a major defect in your software if you don’t have it. You’re going to have to spend a lot of time chasing the target, and using whatever is left of your day to get ahead and innovate on your own.

This makes me wonder about doing development on any of these cutting-edge areas. I don’t know if I have that much time!

Predictability in UI design

So today I had the dubious pleasure of working all afternoon on UI design in Cocoa, and then UI design in Rails/CSS/HTML.?
Going from one to the other really highlights some of the problems in doing web-based design!

My big issue with writing in HTML/CSS is? predictability. I do not? enjoy wondering if something is going to render properly, or if a particular CSS attribute is going to work the way it ought to.

Maybe I’m doing it wrong. Maybe CSS doesn’t suck as bad as I seem to think. But until I can say “you, the content box! Size yourself to fit around the content inside you and then position yourself in the center of the screen” just that easily…

Bevel Lines and woodgrains

Found this? photoshop tutorial which showed me how to fix two little issues I was having. Realistic woodgrain, AND “bevel lines”!?

The bevel line effect is exactly what I was looking for, and I don’t want to forget how to do it, so here it is:

Green-Bevel

Woodgrain_bevel

The effect is one that I’ve been searching for, but couldn’t seem to find the right keywords. It’s really super-simple to do!

  1. Create parallel white/black lines on their own layer. (Just a few px wide)
  2. Gaussian-Blur the new layer. (Radius 1.5 has worked perfectly so far.)
  3. Set the layer blending mode to “Soft Light”

And it’s Just That Easy! This is a technique I’v been looking for to create nice smooth buttons-on-a-bar.

The problem is only partly the HTML

After several more tries at mockups in Photoshop I’ve realized that my real problem with doing “design” isn’t a problem with HTML, but with photoshop. When I have the images to use, HTML can look really good fairly easily. But I can’t seem to generate “good enough” images in photoshop.

More than just curvy…

After trying a couple of mockups for the “more curvy” change ? I’ve realized that curves, useful as they are, aren’t as important and texture and lighting. These are the things my designs have been missing!

Gradients, embossing, shadows… Anything to keep the page from being blocks of solid color. These really make a design work, even if it is? based on square boxes.

I think what slows me down is my lack of 100% familiarity with all my options and tools in photoshop. Much like the “technical block” I get when I’m trying to write some music, I get bogged down in the use of the tool rather than the artistic process. I think the only way out is to spend tons of time with your tools and learn everything they can do for you so that when you get the idea “it should have texture like a tree trunk” you don’t have to stop and google “photoshop tree texture” and figure out what to do.?

That little paint pallet that painters use with all the colors on it? For us computer types that pallet is our knowledge of the tool and our library of available effects the tool has.

Guess I better start looking at photoshop brush and texture sites.

“more curvy”

When the client tells you that they want it to be “more curvy”, and suggests that you go find some inspiration by perhaps watching some girls or something….

Okay, more curvy it is. Why do websites have to be box-based? yrr..