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.