Internet Usage

Your Wealth Affects Your Internet Usage

A stunning new report from Fast Company asks Why Are the Rich So Good at the Internet? It kind of seems obvious at first, but even within the tiers of people well-able to afford technology, there’s a difference in how much you use the Internet depending on your income.

The report is fascinating, and puzzling. But we think we can make some guesses as to what’s going on (take these with a grain of salt; they’re just theories):

  • The rich have more leisure time, so more time to play online.
  • The rich got that way through being thrifty, so they’re keener to use online shopping to find a bargain.
  • The rich have higher-tech jobs, so they’re naturally more Internet-savvy.
  • The rich are better educated, so they know more about what computers can do.
  • The rich have been able to afford computers for a longer time and so are more experienced. This is a little Easter egg – a $40,000/year and $80,000/year salary can afford the same computer – in 2010. In 1990, computers were much more expensive compared to the cost-of-living then, so only the richer household could have afforded them then. The poorer users have to catch up in learning.

An enhancement for UIAlertView

I like objective-c protocols, and I am a fan of the interface oriented designs that it allows for. But, sometimes the indirection of using a selector with a defined signature just works better, and the problem is that UIAlertView does not take a selector. Instead, UIAlertView defines a protocol, UIAlertViewDelegate, that the alert’s delegate adopts to receive notification of the user intent. To be fair, UIAlertView communicates a bit more information back to it’s delegate than the target of an NSAlert, and the UIAlertViewDelegate protocol does a fine job achieving that goal. 99% of the time, however, I want to show an alert and have it call my named selector when it is done. To that end, I finally busted out the admittedly tiny class that does the job.

Now in my client code I show an alert like this:

RSAlert* alert = [[RSAlert alloc] initWithTitle: @“Title” message: @“Message!” target: self selector: @selector(dismissedAlert:buttonIndex:) cancelButtonTitle: @“OK” otherButtonTitles: nil];


and handle the result with a selector, similar to NSAlert:

hiring an online freelance web designer

Hmmmm, Good Advice For Being A Good Client

We jumped when we saw the title of the post: How to be a good client, but then when we read the content, it wasn’t what we had in mind. Don’t get us wrong, it’s all good advice, but we’d really like to take this time to advise readers on how to get the most out of hiring an online web design agency:

1. Link to an example of what you want. As they say, a picture is worth a thousand words. You can talk to a designer all day, “I want an arty header and a side link bank, but it should move with the scrollwheel and have green and blue colors…” That can still be interpreted 100 different ways. Find a picture to start with, then detail how you want it different.

2. Take the designer’s / developer’s word for it. We don’t know how many clients out there have made their own lives miserable by saying “I want the whole site in Flash.” or “Can I get it with animated GIFs and use this big image as the background?” You hire an expert; if they say that something isn’t a good idea, listen to them. That’s what you’re paying them for is to know their stuff!

Mashups and APIs

The Irresistible Draw of Mashups and APIs

It’s worth checking in over at Programmable Web once in awhile just to see what they’re up to, with their API discoveries. Google, Twitter, Flickr, and all, the defining mark of a popular Web 2.0 service is whether people do things with your API.

Notable developments from just one recent week:

  • Comedy on Spotify – A directory of comedians and their albums, with video clips for sampling, mashed up out of Freebase and Just dive right in and look for the wit who tickles you the right way.
  • Today’s Special – A Google Wave bot serving up quotes, words, horoscopes, sports scores, and whatnot.
  • Tickets Suck – A Twitter and Twilio mashup that reminds you to move your car so you don’t get a ticket.
  • Quote Relish – A real-time news ticker using the Freebase and Moreover APIs.

Mashups and APIs are an exciting tech trend that’s worth keeping track of, because new gizmos are getting invented every day. This is something we couldn’t do only a decade ago. But even more fascinating is the potential that mashups have; they represent evolution at a lightning pace. Ideas build on ideas, just the way innovation is supposed to work!

iPhone Animation Sequence

When writing Postage and WORD SPIN we encountered the same problem again and again: the need to chain a sequence of animations together. For example, when the user navigates to the next page we first animate away the controls for the current view, switch views, then animate the controls in for the new view. Initially, we set the UIView delegate and then in our specified selector implementation kicked off the next animation which itself would eventually call back into a completion selector, and so on. But it’s largely the same code over and over, and you either need a bunch of similar looking animationDidStop implementations, or a single implementation that branches based on the animation identifier. For example:

Warning : Love hurts…

Sometimes the ones you love reject you. If you are an iPhone developer this is probably a concept with which you are already intimately familiar. We love developing for the iPhone, but sometimes the App Store and its app review process leaves us feeling a little dejected.

One of our applications was just rejected about halfway through the review process and it seemed like a unique enough situation that it was worth sharing as a warning to our comrades in the trenches.

Over the past couple of weeks, there have been several reports of iPhone Apps being rejected for use of private APIs. Many of the rejections are from developers that have used the extremely popular Three20 library from ex-iPhone developer Joe Hewitt. The developing consensus is that recently Apple has started using a static code analyzer to flag applications that have used private API calls.


Mock-Up Solutions That Are Not Photoshop

This may come as an astonishing shock to some people, but Adobe Photoshop is not the only application in the world!

Perhaps we could bring some fresh viewpoints to our design process, if we tried another tool just once…

  • Illustrator – Scalable Vector Graphics, for instance. That’s actually closer to what the final product looks like anyway, and SVG editors are ever so much more graceful handling text than Photoshop. You might also try the free (and excellent) Inkscape.
  • Fireworks – Superior for some functions, such as object handling, vectors, and the slicing/exporting of images.
  • Xara Xtreme – Never heard of it, did you? Check it out, it’s a vector editor on steroids. It can even handle Flash and build web prototypes right in the app!
  • Balsamiq Mockups – Another new player in the field, this one was designed by an ex-Adobe employee. It’s specialized to just do web design mock-ups.
  • Pen and Paper! – Too many people knock this. Drawing on paper lets you stop thinking about the interface and tap your artistic thinking. People forget that creating a web document is an art. It’s also much more satisfying to tear up a design you don’t like than it is to delete it!
Code injection

Code injection into a user-accessible text field

This is the biggest risk for the modern social web, because nearly every website has a comment or feedback form where visitors can enter content and post it to your page for other visitors to see. Now, what happens when you type some Javascript into a comment form on your blog and post it? How about an SQL database query, or some rogue PHP code? How about accessing your site with the malicious code in the address bar?

Attackers will look for any vector that can be used to sneak a line of executable code onto your web server. Remember, all they need is to get one line through, and they’ve got a foothold. For example, an HTML tag called ‘iframe‘ can be used to embed another web page into the host web page. Setting the iframe’s attributes to ‘width=0’ and ‘height=0’ can keep it hidden. But the target of the iframe might be a web server on the other side of the world with a Javascript attack that will steal your user’s data or install malware on your user’s computer. This is just one of the many tricks out there.

InDesign CS4 : Developer View

The recently released InDesign CS4 comes packed with a long bullet-list of new features. Here are a few that stand out from a Creative Suite developer’s perspective :

GREP pattern matching for styles

You can now set a style to apply to a range of text that matches a grep-style pattern. For instance you could use a pattern like :


to automatically apply a specific style to anything that looked like an email address. I’m not sure what the intersection is between page layout designers and grep pattern wizards, but the nerd in me loves the idea.

WWDC 2006 Decompression

Fellow sheep Matt Joss and I spent the last week at Apple’s annual developer conference, WWDC. This year’s conference came with a preview of the next version of the Macintosh operating system, Mac OS X 10.5, code named Leopard. Although we can only publicly discuss what was revealed in the keynote speech, let me assure you there are many exciting things under the hood that look to make Leopard interesting. I am personally really excited by the new CoreAnimation framework and advances in CoreImage and other graphics technologies in Leopard. Updates to the development tools like Xcode 3.0 and technologies like iChat Theatre and Time Machine are also tantalizing to the extreme. I can’t wait to spend some quality time with our preview seed.

While I hope to be able to write some more in-depth analysis of the publicly revealed goodies in 10.5, I’ll leave my one observation for now centered around speculation of what was not revealed. If you watched the keynote you probably noticed that iChat and other applications that were brushed metal in 10.4 are now sporting something closer to the unified toolbar look found on applications like Mail in Tiger. I predict that Leopard will see the (long anticipated by many) death of brushed metal. If you couple this detail with the observation of what appeared to be a metal-skinned finder in the public demos, I think its not to much of a stretch to imagine that the infamous and much maligned Finder will see some changes for the final release of 10.5. Dare we dream of improved UI consistency and a better Finder all in one release? Perhaps a future sans beach-balling network shares with one UI to bind them all is more than just a dream…

Magma AI Page

Apply Core Image effects to Illustrator artwork

Magma Effects™ allows you to apply a variety of new raster effects to text, paths and images in your Adobe® Illustrator® documents. Apply special effects such as star-shines, lenticular halos or zoom blurs. Make your artwork stand out with style by applying spotlight, bloom or shaded material effects. Over 100 raster effects are at your fingertips instantly.

Easy to use and lightning fast  

Simply select the artwork to enhance in your document and apply the Magma Effects filter or live effect to gain access to all of the Core Image filters available in OS X Tiger. Change parameters with real time previews while you add effects to the chain as needed. When you are done editing, the effects are applied directly to your artwork just like the live effects you already use.


Graphics And Website Design

Graphics And Website Design

Of course, the fact that these graphics makes your website pleasing to view is also extra helpful. Graphics in your website can also make your website easy to view and also easy to understand. Many people will have trouble reading long texts and deriving information from them.

By embedding all relevant information in your graphics, you are guaranteed to convey the needed information to your visitors.

However, there are some tips that you need to follow whenever you are using graphics in your website. Although flashy graphics can be helpful in impressing your visitors, they can also be a detriment to you.

The main reason for this is because of the fact that flashy graphics and animations can have long loading times. Hence, when your visitor clicks your website, then he or she may not have enough patience to wait for your graphics to load in to your website. In fact, graphics that take too long to load can cause you to lose visitors instead of gaining them. Thus, you should make sure to use graphics that load relatively fast and you should try to refrain from complex animations in your graphical design.


Apply Core Image effects to InDesign images

Magma Effects™ allows you to apply a variety of image-enhancement and stylizing effects directly to any bitmap image placed in Adobe® InDesign®. Enhance photos with color adjustments, sharpening or white point adjustment. Apply special effects such as star-shines and zoom-blurs or glass distortion. Make your images stand out with style by applying spotlight, bloom or shaded material effects. All without leaving Adobe® InDesign® for another application.

Easy to use and available directly in InDesign  

Simply select the image in your InDesign® layout and bring up the Magma Effects dialog to gain access to any of the Core Image filters available in OS X Tiger. Change filter parameters with real time previews while you add effects to the chain as needed. When you are done editing, press the apply button to save your edits and instantly update the image back in your layout.