Skip navigation

Hey! You're looking at the front page of which is a temporary storage place for articles I didn't read/evaluate yet. I also use this platform to prepare new content to post where audio/video/image material is hosted completely on my server. On the recorder instead, media is loaded from external sources, so don't get mad if some of them don't work anymore.

Please note that the content posted here is explicitly intended to help me remember certain things, i.e. it is not intended to entertain you in any way (although you certainly will find stuff that fulfills this criteria).

Now: Happy Browsing!

After all the vector/font rendering library is done – the HaXe sources and SWC files for ActionScript 3.0 are available on the polygonal google code project page. As a reminder – the project started as an experiment if it’s possible to render fonts using the FP10 drawing API without loading or embedding any additional assets.

For obvious reasons, I can only include free fonts. At the moment the package contains Microsoft’s TrueType core fonts hosted on sourceforge, the Bitstream Vera fonts as well as the famous bitmap04 pixel fonts.

The pros and cons


  • No font embedding required :) Import a font class and you are ready to go
  • Provides high quality font rendering; best used for extra smooth text animation
  • Seriously fast!
  • Seamless integration into the FP 10 drawing API


  • An ASCII set of printable characters adds about 20kb-30kb to the swf file – I’ll try to reduce this in a future release.
  • Not very readable at small font sizes (except pixel fonts) because it does not include any hinting information for improving the quality – text remains legible down to about 12 points (viewed at 100%)
  • You need a copy of Fontographer 4.1 to convert ttf files
  • No text field functionality yet
  • Only supports ASCII character (latin character set like ISO-8859 is planned)


Here are the ‘MS core fonts for the web’ rendered with the font library:

MS core fonts for the web

This also works amazingly well for pixel fonts (which I didn’t expect at all):

Bitmap04 pixel font

How it works

First a .ttf file is loaded into Fontographer and exported as a postscript file (I tried other methods but I stuck with this approach because postscript files are easy to understand). A parser reads this file and generates a HaXe class that contains the glyph data. The result is something like this: Arial.hx.

If using HaXe, the font_inline compiler flag gives you control over compilation time vs runtime performance. If omitted, compilation is fast so it’s best suited for frequent testing and debugging and the compiler-based auto-completion remains responsive. If compiled with -D font_inline, compilation is slow but results in the best performance.

The actual rendering is done by a class named It uses the FP 10 drawing API in conjunction with ‘alchemy memory’ as a temporary buffer to gain some extra speed. At first all drawing commands are written into a chunk of memory, then copied into a vector and finally sent to the screen via graphics.drawGraphicsData(…). Depending on the CPU this is roughly 1.5-4x faster than using only vector. Note that this only accelerates the process of preparing the data, not the rendering itself (everything beyond drawGraphicsData())

ActionScript 3.0 usage

Grab the SWC file, add it to the library and the following code should (hopefully) compile fine:

  import de.polygonal.ds.mem.MemoryManager;
  import flash.display.MovieClip;
  import flash.Boot;

  public class Main extends MovieClip
    public function Main():void
      new Boot(this);

      var vr:VectorRenderer = new VectorRenderer(512);
      vr.setLineStyle(0, 1, 0);

      var font:Arial = new Arial();
      font.bezierThreshold = 0.001;
      font.write("Hello World!", 0, 100, false);


The source code reads like this:

  • initialize HaXe specific things
  • allocate 4 megs of alchemy memory to be on the safe side
  • create a vector renderer using a buffer size of 512kb
  • assign a line style (rgb, alpha, thickness)
  • create a font object
  • define curve smoothness, the smaller, the better (0=linear approx. using 2 segments/curve)
  • set the font size: 100 equals 72pt or one inch.
  • assign a renderer so the font can send drawing commmands to it
  • draw “Hello, World!” at the coordinates 0,100 (x,y), if the last parameter is true, the text will be centered around (x,y)
  • flush the buffer which draws everything to the screen

Glyph and text bounds

You can compute axis aligned bounding boxes for the whole text block or individual characters using the getBounds() and getIndividualBounds() methods prior to drawing the text:

Different ways of computing boundaries

Creating font classes

Converting fonts can be done using

Your rating: None

I’ve just released the first official version of ‘ds‘ (aka data structures), the successor of as3ds which is written in the HaXe language. (The name hx3ds was used during development and is obsolete because ds is now a module of the polygonal library).

The library is found here: There is also wiki page describing how to use it with ActionScript 3.0 (there are still some issues with the HaXe generated SWC files, I hope Nicolas finds some time to address them in a future release).

What’s new

The new release (changelog) contains many bug fixes, new features and a refined documentation. While there are still many things on my TODO list, I think the library is stable enough so it deserves to be the first major release. And since I’m using the library in all of my projects, you can expect some regular updates.

Why the heck HaXe !?

Firstly, ActionScript 3.0 doesn’t support any kind of generics/templates like Java does for example. The typed vectors introduced in FP10 are too crippled and limited so in the end you are still stuck with dynamic containers, which is a bad for complex projects. HaXe supports type parameters – in the image below you see that I’ve created a graph of stacks of hash maps and everything is typed. The nice thing is that you still get auto-completion:

FlashDevelop HaXe AutoCompletion

Secondly, HaXe provides a lot of syntax sugar that sweetens your daily coding experience. As an example, consider iterating over a collection. In HaXe it’s just:

//iterate over all elements of a 2D array:
var a = new Array2<Int>(3, 3);
for (i in a) trace(i);

In AS3 you have to create an iterator object and explicitly call the next() and hasNext() methods:

var a:Array2 = new Array2(3, 3);
var itr:Object = a.iterator();
while (itr.hasNext())
  var element:* =;

In general, HaXe implicitly does a lot of things for you! Probably one of the best language feature is type inference/implicit typing, which is absolutely brilliant for quick prototyping. It’s like writing AS1 but without compromising speed and type safety. At first it’s hard to get used to it because all ActionScript text books never get tired of repeating how important typing is and that everything should be typed. But If you think about it, the compiler should handle it where possible and relieve the developer from writing clumsy types over and over again:

var n:Number = 1;
var i:int = 1;

var f = 1.0; //compiler infers that n is a float
var i = 1; //compiler infers that n is an int

Thirdly, because as3ds was all about efficiency I couldn’t resist HaXe because it’s much faster. From my experience, ds performs ~2-6x better than as3ds. Same runtime, huge difference!

Your rating: None

Flash videos, like those on Hulu or YouTube, don't stay full screen if you click outside the video—say, if you're doing work on a second monitor. Kind of annoying, right? A quick system file swap, however, fixes this problem easily.

Photo by Steve Lacey.

Many dual monitor enthusiasts love to watch movies or television shows on their second monitor, but if those are web-based videos, Flash has to rain on our parade. Sure you can make the Hulu video go full screen on your second monitor, but as soon as you try to work on your other monitor, Flash will lose its full-screen view. Thankfully, blogger/browser patcher d.i.z. has made a one byte change to the Flash plug-in that will keep videos running full screen, even if you click outside them—and he's made it available for download (sadly, this tweak only works on Windows machines).

All you need to do is grab d.i.z.'s modified npswf32.dll file and replace the one located in C:\Windows\system32\Macromed\Flash\ or C:\Windows\SysWOW64\Macromed\Flash\ folder on Windows 7 64-bit (though we recommend you backup the original file just in case). After a restart of your browser, all your Flash videos should exhibit the new behavior (i.e., you should be able to multi-task without losing full-screen playback). You can still exit full screen mode by hitting the escape key or using the Flash player's full screen button, of course.

Watch fullscreen flash while working on another screen [via MakeUseOf]

Your rating: None


FUKINSEI (imbalanced)
Asymmetry, odd numbers, irregularity, unevenness, imbalance is used as a denial of perfection as perfection and symmetry does not occur in nature.

KANSO (simple)
Elimination of ornate and things of simplicity by nature expresses their truthfulness. Neat, frank and uncomplicated.

KOKOU (austere)
Basic, weathered bare essentials that are aged and unsensuous. Evokes sternness, forbiddance, maturity and weight.

SHIZEN (natural)
Raw, natural and unforced creativity without pretence. True naturalness is to negate the naive and accidental.

YUGEN (subtle profound)
Suggest and not reveal layers of meaning hidden within. Invisible to the casual eye and avoiding the obvious.

DATSUZOKU (unworldly)
Transcendence of conventional and traditional. Free from the bondage of laws and restrictions. True creativity.

SEIJAKU (calm)
Silence and tranquility, blissful solitude. Absence of disturbance and noise from one's mind, body and surroundings.

Since I am starting at design, I like this kind of information about it.


Your rating: None

Nutrients for Better Mental Performance

Google Tech Talk December 2, 2009 ABSTRACT Presented by Steven Wm. Fowkes. The talk will answer questions like: 1. Which nutrients promote optimal brain function? 2. What nutrients are commonly deficient enough to impair mental performance? 3. How can you get a better nights sleep without Ambien? 4. What nutrients counteract aspects of aging? 5. Is there an alternative to serotonin reuptake inhibitor (SRI) antidepressants? 6. What modern nutrition myths lead us to consume products that sabotage healthy brain function? 7. What tests can you get from your doctor? 8. What nutrients affect appetite, alertness, and tension? 9. What nutrient combo will prevent hangovers 90% of the time? About Steven Wm. Fowkes Steven Wm. Fowkes is the Director of the Cognitive Enhancement Research Institute and a co-author of the book Smart Drugs II. He has appeared on Larry King Live and in two anti-aging documentaries. Steve will explain how different nutritions can help people of all ages treat various physical and mental conditions, spanning from genetic disorders such as Down syndrome, to adolescent behavior problems and on to senility and Alzheimer's disease in the elderly. He will also speak about using nutrients to address memory problems as well as verbal and multi-tasking challenges that the testosterone-poised homo sapiens (ie, men) are commonly known for. In the Q&A feel free to ask him how to use nutrients to improve ones sense of humor.

More in
Science & Technology

Your rating: None

Your Brain at Work

Google Tech Talk November 12, 2009 ABSTRACT Presented by David Rock. In his new book "Your Brain at Work," coach David Rock depicts the story of two people over one day at the office, and what's happening in their brains that makes it so hard to focus and be productive. Not only does he explain why things go wrong, but how you can train your brain to improve thinking and performance at work. Based on interviews with 30 neuroscientists, he's developed strategies to help you work smart all day. Learn how to: · Maximize your mental energy by understanding your brain's limits · Overcome distractions · Improve your focus through understanding the nature of attention · Reduce stress levels with brain-based techniques · Improve how you collaborate by understanding the social needs of the brain You can learn to be more productive, less stressed and stay sane by understanding your brain. David Rock is a thought leader for the brain-based approach to coaching. David coined the term 'neuroleadership' and co-founded the neuroleadership Institute, Journal and Summit. He is also the founder and CEO of Results Coaching Systems, which helps Fortune 500 clients worldwide improve thinking and performance. He has authored four books, most recently 'Your Brain at Work'. He is on the advisory board and faculty of international business school CIMBA, and a guest lecturer at Oxford University. He consults organizations including Ericsson, Publicis, NASA, Accenture, EDS and the US Federal Reserve. He lives between New York City and Sydney, Australia.

More in
Science & Technology

Your rating: None

The following is a quick start guide on how to get RobotLegs working on top of the Gaia Flash Framework written by Steven Sacks.  In later articles, I’ll show how to use per-Gaia-page Contexts, a visual example, as well as cover Enterprise scenarios.  For now this should get you up and running in 10 minutes.

What is RobotLegs?

RobotLegs is a MVCS framework for Flex & pure AS3 applications.  You can use with Flash as well.  I call it PureMVC done right.  She’s still not at version 1, but is really close (docs in progress).

What is Gaia?

The Gaia Flash Framework is the Ruby on Rails for building Flash websites.  You can code generate your entire Flash website in seconds.  It has modules, SEO, page navigation, and deep-linking all built-in, amongst other things.


Gaia is great for building websites, but it’s just a platform for you to build on, a bunch of helpful scaffolding; it doesn’t prescribe a way to build your applications.  Specifically, you have to write your own code for Business logic and Application/Domain logic.  You still have to write code to hit back-end services, parse the returning XML/JSON/AMF, and act on that data.

This is where an application framework like RobotLegs comes in.  You’re domain model goes in the Model classes, your Business logic goes in the Service classes, and your Domain/Application logic goes in your Commands & Mediators.  You setup your shiz in your Context class(es), like PureMVC’s ApplicationFacade

Gaia builds your site, and RobotLegs makes it work with dynamic data.


Before we get to the “How”, you need to know 2 requirements first.  This may scare some people off.

  1. You need both mxmlc & Flash CS4 or CS3
  2. Your application must be AS3

RobotLegs requires compiling in mxmlc because of the custom metadata tags.  Flash CS3 & CS4 do not currently support the -keep-as3-metadata mxmlc compiler parameter, thus, you must compile your RobotLeg’s implementation code using mxmlc (via Flex Builder 2, 3, Flash Builder 4, FDT, FlashDevelop, etc.).

While you can compile Gaia to an SWC in Flash CS4, and then re-compile via a Library linkage in mxmlc, this defeats the purpose of using the Gaia workflow in Flash.  I understand this is deal killer for many automated build/continuous integrations of Enterprise applications, so I’ll cover optional build scenarios in a future article.

Flash CS4 is required because it allows you to link to external libraries, in this case, Flex created SWC’s.  You could utilize Flash CS3, and just add a class path to the RobotLegs classes since you’ll typically only be using the interfaces in your Flash/Gaia specific code.  Both Flash CS3/CS4 will be exporting AS3 code since RobotLegs is for AS3, so you can’t use Flash 8 and export to AS2.

I currently do not have access to Flash CS5 alpha/beta to determine if it’s integration with Flash Builder 4 demoed at MAX 2009 would help in this instance, nor do I know if it can -keep-as3-metadata.

Quickstart Preface

The Quickstart may appear intimidating at 15 steps.  If you know Flex Builder/FlashDevelop, Flash, Gaia, and RobotLegs, you’ll do just fine, it’s not that bad.  Additionally, you only need to do this stuff once.

The rest of your project, you’ll spend in your code editor.  You can also link the Main file in Flex Builder to get code hinting on it.  The only time you go to Flash is to do Control + Enter.



1. Setup your Gaia site.

2. Open up your main.fla in Flash.

3. In Flash CS4, go to File > Publish Settings, click the Flash tab, click the Settings button next to AS version, click the Library Path tab, and link to the RobotLegs.swc.  In Flash CS3, just add a class path to the RobotLegs source code directory.


4. Save your main.fla.

5. Create an ActionScript 3 project in Flex/Flash Builder, FDT, or FlashDevelop.  Point it to the same directory your Gaia project lives.  I suggest changing bin-debug to bin since that’s what Gaia uses.  Although it’ll generate a SWF, it’s hereafter referred to as a “module” SWF since Gaia will load it in and use it’s pre-compiled classes.

6. Create your own main class, differently named (ie not “”), and put next to Gaia’s  This will be where your RobotLegs code lives.


7. Link to the RobotLegs.swc as a Library.  If you are in Flex/Flash Builder, you may wish to link to the RobotLegsLib Library project instead.  If so, I put this in Gaia’s lib folder next to the FLA’s that Gaia puts there.  The image below shows linking to the Library Project.


8. Create a “MainContext” ActionScript class where ever you’d like in your package structure.  Might I recommend something other than Gaia’s pages directory, like “”.  In this class, you register your modules, in this case, your Gaia pages that actually need Mediators.  Here’s mine:

package com.jxl.gaiarobotlegs.robotlegs.contexts
        import com.jxl.gaiarobotlegs.pages.IAboutPage;
        import com.jxl.gaiarobotlegs.robotlegs.mediators.AboutMediator;

        import flash.display.DisplayObjectContainer;

        import org.robotlegs.mvcs.Context;

        public class MainContext extends Context
                public function MainContext(contextView:DisplayObjectContainer)

                public override function startup():void
                        mediatorMap.mapModule('com.jxl.gaiarobotlegs.pages::AboutPage', IAboutPage, AboutMediator);

Notice the mapModule method goes “Your Gaia Page class as a String”, “The interface the Gaia Page class and the Mediator share”, and “The RobotLegs Mediator class”.  NOTE: In older builds of RobotLegs, they are using the fully qualified class name which is ::AboutPage, not .AboutPage (more info).  I have a hacked version locally which accepts a normal package path of “pages.AboutPage” vs. “pages::AboutPage”.  Yes, I’ve asked the RobotLegs authors to fix this.

9. Create 1 more class and 1 corresponding interface: a Mediator class for whatever Gaia page you’ll be mediating, and an interface of the same name with the I prefix.  Example: If you’re creating an “About Us” page for your site, you’ll probably have an about page node in your site.xml, and thus a corresponding FLA.  Create an “IAboutUs” interface, and an “AboutUsMediator” class that implements the interface.  Your Gaia “AboutUsPage” class will also implement the “IAboutUs” interface.  This is how RobotLegs will communicate to your Gaia code via the Bridge Pattern (more info on why).

Here’s the interface:

package com.jxl.gaiarobotlegs.pages
        public interface IAboutPage
                function setAboutText(value:String):void;

Here’s the Mediator:

package com.jxl.gaiarobotlegs.robotlegs.mediators
        import com.jxl.gaiarobotlegs.pages.IAboutPage;

        import flash.utils.Timer;

        import org.robotlegs.mvcs.Mediator;

        public class AboutMediator extends Mediator
                public var aboutPage:IAboutPage;

                private var timer:Timer;

                public function AboutMediator()

                public override function onRegister():void
                        timer = new Timer(3 * 1000);
                        timer.addEventListener(TimerEvent.TIMER, onTick, false, 0, true);

                private function onTick(event:TimerEvent):void
                        timer.removeEventListener(TimerEvent.TIMER, onTick);
                        timer = null;

                        aboutPage.setAboutText("Blah blah blah,nthis is from RobotLeg's 'AboutMediator'");

Thing to note in the above is the Dependency Injection via the [Inject] tag does IAboutPage vs. AboutPage; this ensures mxmlc doesn’t attempt to compile Gaia code into your module SWF.

10. Any events your Gaia About Us page will emit, put in the IAboutUs interface.  Any data your Gaia About Us page needs to have set on itself, implement a setter or a method in the IAboutUs interface.  This’ll ensure your About Us page class in Gaia and your AboutUsMediator won’t compile until you implement those methods, nor will your AboutUsMediator RobotLegs class.  Yes, I know events in interfaces aren’t enforced, but that doesn’t mean you shouldn’t do it.

Here’s the Gaia AboutPage class:

package com.jxl.gaiarobotlegs.pages
        import com.gaiaframework.api.*;
        import com.gaiaframework.debug.*;
        import com.gaiaframework.templates.AbstractPage;

        import flash.display.*;
        import flash.text.TextField;

        import gs.*;

        public class AboutPage extends AbstractPage implements IAboutPage
                public var copyTextField:TextField;

                public function AboutPage()
                        alpha = 0;
                        //new Scaffold(this);

                // called by RobotLegs's AboutPageMediator
                public function setAboutText(value:String):void
                        copyTextField.text = value;

                override public function transitionIn():void
              , 0.3, {alpha:1, onComplete:transitionInComplete});

                override public function transitionOut():void
              , 0.3, {alpha:0, onComplete:transitionOutComplete});

Notice the implementation of IAboutPage.  Since Gaia FLA’s by default have “../src” set in their class path, it’ll share the same class path with your ActionScript project.  The only class it’s importing form that code, however, is the interface, which is a few 300 bytes or so once compiled into the SWF.  If you’re clever, you could use External Libraries in CS4, but that’s out of scope for this article.

11. Open up your file in your editor of choice.  First, create a mainContext class reference, like:

private var mainContext:IContext;

12. Override init and do no call super.init.  Instead, write code to load in your RobotLegs SWF that your ActionScript project will create in bin.  You can use a Loader, your own wrapper class, extend Main to abstract away these details in a base class… whatever you want.  I used a Loader for this example.  Ensure you load the classes into the same ApplicationDomain so Gaia can share and use these classes, as well as any loaded SWF’s that need them.

var loaderContext:LoaderContext = new LoaderContext(false, ApplicationDomain.currentDomain);
moduleLoader.load(new URLRequest('GaiaRobotLegs.swf'), loaderContext);

13. In your Event.COMPLETE function, snatch your MainContext class from the loaded SWF, instantiate it, and pass the stage in, and call super.init to let Gaia know you’re done, like so:

private function onComplete(event:Event):void
        const mainContextClassName:String = "com.jxl.gaiarobotlegs.robotlegs.contexts.MainContext";
                var mainContextClass:Class = moduleLoader.contentLoaderInfo.applicationDomain.getDefinition(mainContextClassName) as Class;
                mainContext = new mainContextClass(stage) as IContext;
                trace("Failed to find class: " + err);

You use the stage so any DisplayObject added to the DisplayList will be checked to see if it has an associated Mediator.  Yes, I know OOP Purists will groan at this; don’t worry, I’ll offer a more pure solution later.  Remember, Gaia is typically used in Agencies with 2 week deadlines vs. 4 months; this is more than good enough for that crowd.

14. In your main ActionScript project class, define a dependency variable; this is strictly to ensure your RobotLegs code is compiled into the “module SWF”.  Assuming you have Build Automatically on in Flex Builder, it should make your SWF in the bin folder for you once you save.  Here’s mine:


        import com.jxl.gaiarobotlegs.robotlegs.contexts.MainContext;

        import flash.display.Sprite;

        public class GaiaRobotLegs extends Sprite
                private var mainContext:MainContext;

                public function GaiaRobotLegs()

15. Test your Gaia project in Flash.


As you can see, all you need to do now is code all your code in Flex Builder (or editor of choice), and anytime you need to compile your site, you just go back to main.fla in Flash and hit Control + Enter.

You’ll also notice I create one “global” context here.  Reiterating, this is good enough for most design agencies as not every Gaia page will need a Mediator, and most Gaia pages aren’t that complex View’s anyway.

For the purists, in a future article I’ll explain how you can modify the Gaia template files, and configure your Context classes via the Gaia site.xml externally.  This ensures that the details of a Gaia page registering it’s own Context, or simply just creating a single Context + Mediator for itself, are self-contained and as strongly-typed as possible.

For those building Enterprise sized sites with automated build processes, I’ll later go into how you can integrate a Gaia site into your build process.


Just a quick thanks to Steven for helping answer my Gaia architecture questions, and to the RobotLegs crew for helping me work out the details of how it could be done.

Your rating: None

Via : ViaComIT
Great clock made from an old recycled aluminum bike wheel created by Pixelthis

Design You Trust sponsors:
HeySmartGuy - The Smart Way to Run Your Business on the Web!

Advertise with Design You Trust! - DYT on Twitter - Facebook

Your rating: None

I agree with, and live by, many of al3x’s ‘Rules for Computing Happiness’. I would add:

  • Have a backup strategy and practice it.
  • Have a ‘refresh’ strategy — a complete software reinstall, from OS to applications — and perform it at least once a year.
  • Keep as few email ‘inboxes’ as possible — but as many email addresses as needed.
  • Don’t over-complicate file organization. Use categorized ‘dump’ folders and Spotlight.
  • When using the date for file naming or similar function, use 6 or 8 digits, and start with the year first (e.g. “09-08-27” or “20090827”) so that you can sort by date effectively.
  • Don’t use Microsoft software unless it’s absolutely necessary — and only within a virtualized machine

Have any more?

Your rating: None

Originally posted in New Rules

In every aspect of your business (and personal life) try to allow others to build their success around your own success. If you run a hotel, what can you do to permit others--airlines, luggage retailers, tour guides--to be part of your network? Rather than viewing their dependency on your success as a form of parasitism, or worse, as a rip-off, understand this tight coupling as sustenance. You want to entice others to create services centered around the customer attention you have won, or to supply add-ons to your product, or even, if it is a new-fangled idea, to create legal imitations. This is a counter-intuitive stance at first, but it plays right into the logic of the net. A small piece of an expanding pie is the biggest piece of all. Software is especially primed to work this way. The programmers who created the hit game Doom deliberately made it easy to modify. The results: Hundreds of other gamers issued versions of Doom that were vastly better than the original, but that ran on the Doom system. Doom boomed and so did some of the derivatives. The software economy is full of such examples. Third-party templates for spreadsheets, word processors, and browsers make profits for both the third-party vendor and the host system. It takes only a bit of imagination to see how the leveraging of opportunities also works in domains outside of software. When confronted with a fork in the road, if all things are equal, go down the path that makes the opportunities of others plentiful.

Your rating: None

In this short video Kris Madden shows you how to read faster. The trick, he says, is to repeatedly say "AEIOU" or "one, two, three, four," as you read. This prevents you from vocalizing the written words with your larynx. Once you train yourself, you can stop uttering "AEIOU," and you will be able to read much faster than before, or so he says.

Scientific speed reading: how to read 300% faster in 20 minutes

Your rating: None

JJ Hendricks, an avid games collector, recently paid $17,500 for a single video game. If you've ever wondered what it feels like to spend that much on a video game, Hendricks has written all about it!

The game in question is one we actually featured a few weeks back: a gold Nintendo World Championships cartridge, which had originally been listed on eBay for $25,000.

There were only ever 26 of these ever made, and despite the fact they're not actually gold - it's just gold paint - they're safely the most expensive, valuable video games on the open market.

Having failed to sell at that price, Hendricks got in a lowball offer, one which was eventually accepted by the seller. And on VGPC, has written about it. The ups, downs, the obstacles, the ecstasy. Every sentence makes the knot in the pit of your stomach grow ever tighter.

It's a fun read! Fun because he's the one that spent $17,500 on a game, and not us.

How I Got Nintendo World Championships Gold [VGPC, via Offworld]

Your rating: None


You, sir, are and idiot is a catchphrase and a corrupted variant of the phrase “You, sir, are an idiot,” originally uttered by Krusty the Klown in an episode of The Simpsons. The quote was subsequently popularized on 4chan, with the conjunction “and” replacing the indefinite article “an” for an additional layer of irony. The phrase now implies “I believe that I know more than you, despite my own ineptitude.”


“You, sir, are an idiot” was first said by Krusty the Klown in episode 9 of Season 15 of The Simpsons, entitled “The Last Temptation of the Krust.” It originally aired February 22nd, 1998.

‘You sir’ is a common prefix that can be added to the beginning of a declarative statement. It is often used to add emphasis to an opinion or to imply a tone of respect. By all implications of the phrase, one is ironically saying “I respectfully disrespect you.”


The phrase appeared on Urban Dictionary in September 2008. Its usage can be seen in the following samples from 4chanarchive (WARNING: 18+, NSFW):


Googling the phrase yields approximately 25,000+ results. Many of those hits are people using the phrase on message boards to call other posters out (like on this GameSpot thread in 2008) or to troll (as seen in this Adult Swim thread in 2010. It has also been used in comments, as seen on Failblog in 2008, to criticize other users.

However, since the derivatives lack much in terms of original content or recontextualization, it is more of a forced catchphrase meme.

Google Insights

Significant search trends for both variations of the phrase began showing up in August and September of 2008. It is not entirely clear what would cause the phrase to regain popularity 10 years after debuting in popular culture.

The phrase peaked again in September and December of 2009, although there is no clear explanation as to why.

Your rating: None


I dunno LOL ( ¯\(°_o)/¯ ) is an ASCII-based emoticon of a character shrugging with arms raised in confusion. It is often used as the superlative form of the standard “surprised face” (O_o), oftentimes in response to “How do I shot web?” or any other question that only brings more questions into the conversation.

Uncertain Origin

Searches for “¯\(°_o)/¯” can be problematic because of how certain characters are omitted by many search engines, even when placed in quotes. The emoticon appears in many forum signatures which often results in false positives for 2002, shortly after vBulletin and other PHP forums first appeared.

The phrase “I dunno” has been a common English-language slang for “I don’t know” for decades and LOL has a long history as well. But the exact pairing of the two as “I dunno LOL” seems to first appear in 2006, as is evident from both a Google Date Range search, and from Google Insights (seen below).

EDIT: this just in from MasterFen -

This meme was originally posted by a user named ‘Zeitgeist’ on the IRC channel of a website called ‘Scorehero’. Ech Sayz: (7/14/07) [16:41][Zeitgeist] i dunno lol ¯\(°_o)/¯ It was so successful there that on April Fool’s Day, the forum owner JCirri; decided to replace everyones avatar with the ‘i dunno lol ¯\(°_o)/¯’ (image url: There you go, now stop arguing! P.S. Here’s their wiki page on i dunno lol:

Thanks MasterFen!

I’ve done some more Googledigging, and have discovered this post from a Naruto forum, dated 2007-03-24 (that’s 24th March, 2007). Picture capped and upped for the record.

Google Insights

Dramatica bears it only the slightest mention.

Urban Dictionary

The first definition of ¯\(°_o)/¯ on Urbandictionary was created by spacepuree on November 9th, 2006. Surprisingly, the definition does not contain the phrase “I dunno LOL.”


The shrug face.
It’s not a zombie.
aznhottie15666 signed on at 12:00:00 AM.

aznhottie15666: wut r u doin?
moarbbqsauce: ¯\(°_o)/¯

aznhottie15666 signed off at 12:01:00 AM.

The first Urbandictionary definition to contain both and the phrase “I dunno LOL” was created by Link332 in 2007.

¯\(°_o)/¯ is a smiley that means “i dunno lol”

¯\(°_o)/¯, i dunno lol


Your rating: None

(in code to create some sort of UNIX daemon):

/* Be a real daemon: fork myself and kill my parent */
Your rating: None

Working with text in Flash can be a painstaking procedure, especially if you just want to quickly draw and animate some simple characters on screen using ActionScript. It usually takes many lines of codes to setup and adjust the appearance and alignment of text fields and you need to take care of other little annoying details like the whole font embedding procedure.

Lately I was working on a new interactive testbed for the motor physics engine where I’m solely using the new flash player 10 vector drawing API, but I needed to add some text. I was curious about how hard it would be to add text rendering capabilities to the drawing API and after some investigation I found an easy way using an old copy of Fontographer to extract the necessary data from a true type font file (much easier than trying to parse a .ttf file directly):

  1. Export the font data as an EPS postscript file.
  2. Write a parser to transform each glyph into a bunch of lineTo, moveTo and curveTo commands.
  3. Export and parse the spacing and kerning table (proportional fonts only).
  4. Write a method for drawing cubic bézier curves.

Following these steps I ended up with a simple text rendering engine. Here my result:

Monospace/Proportional font rendering (Consolas/Arial)

As you see small font sizes won’t be that sharp and readable as a TextField set to “Anti-alias for readability” but on the other hand the results are very smooth and perfect for animation. Placing and aligning text blocks is also much easier since it’s straightforward to compute bounding boxes for glyphs and text blocks.

So now drawing a text is a matter of writing:

graphics.beginFill(0, 1);
new Arial(10.0).print("Hello World", 100, 100);

This will draw “Hello World” at x,y=100,100 and a font size of 10 points. KISS!
An exciting thing is that the FP10 drawing API is actually very fast; the following demo scrolls all ASCII characters back and forth. Press space to toggle between regular text field and vector rendering. In the first case a TextField object is created once and then moved by adjusting its position, whereas in the second case the whole text is redrawn in every frame at a new position:

TextField vs. Graphics

If (hopefully) more people besides me find this useful I would invest some extra time to polish the code and publish it as open source. It made my coding life simpler :-)

Your rating: None

You only really notice the usability of a product when it’s not there. It’s very easy to come up with examples of poor usability, but for the most part, people don’t usually know the reasons for why one product is easy to use, and one is difficult and frustrating to use. Well, it doesn’t happen by accident! Most of the great products out there that we enjoy using have been through intensive user experience design and usability testing.

Here’s our ten most common reasons for why a product has poor usability:

1) Too much focus on features and technology

Many projects start off with project leaders and stakeholders having a strong desire to use latest technology or to develop a product with endless features. Feature development and testing are given a high priority and will often have a dedicated technical team responsible for them. The projects which go wrong are the ones that fail to balance these features against what users really need. Instead user requirements are an afterthought thrown in towards the end of development when much of the interface has already been developed.

2) Designers and developers ’scratch their own itch’

In absence of any contact with real end users, designers and developers have no option than to use their own experiences as a guide. They end up designing the system according to their own capabilities, understanding and beliefs. Often they will be so deep into the project that they rarely question their decisions. If it works for the way they would use it, then that is good enough.

3) No-one has considered what people really need to use the interface for

It’s easy to get caught up in the detail of a project and immerse yourself in the complexities of how to make a product work well. Sometimes, a project team can be so focused on the inner workings of the system that they fail to step back and question their design decisions from a user perspective. Understanding what users really need, and what situations they are likely to be in when they use the product can completely change the direction of the design

Your rating: None

Mike Rowe from Discovery Channel's Dirty Jobs demonstrates how to get a great workout in any space by performing several sets of descending repetitions of the classic "burpee."

The burpee is by no means a new exercise routine, but if you're looking for a little variety in your fitness routine or you don't have space for a treadmill or other exercise equipment, burpees are a great option for staying fit. [via Kyle Pott]

Your rating: None


Courage Wolf is an image macro series derived from the original Advice Dog series. In contrast to Advice Dog, who might unknowingly lead you to do something you’ll regret, Courage Wolf will help you achieve greatness with often extreme, overwhelming advices.


Entitled “Snarling Gray Wolf,” the original photograph was taken by nature photographer Jeff Vanuga[1] in Montana and uploaded to Corbis Images[2]. The exact date of upload remains unknown, but Google Insights data shows that the meme began to gain traction beginning sometime in December 2008.

According to various accounts including MemeBase[3] and Encyclopedia Dramatica[10], the Courage Wolf macro series was reportedly picked up by 4chan’s /b/ (random) board, the birthplace of Advice Dog macro series.


The Urban Dictionary[4] entry for “Courage Wolf” was submitted on January 8th, 2009, defined as:

Your only life coach. He knows all, never doubt him. He spawned from the festering cesspool of 4chan, with a hint of Advice Dog DNA and the desire to turn those soft sissy inside things you call emotions into raw manliness. He was spawned from a vortex of awesomeness that spewed chocolate-covered hundred dollar bills and caused it to rain naked woman for 1000 years.

Throughout late 2008 and 2009, the series quickly grew into a large collection of image macros across other 4chan boards. On MemeGenerator[5], the number of Courge Wolf submissions surpassed that of Advice Dog series on April 11th, 2009 and spawned a number of spin-off versions like Sir Courage Wolf Esquire, Monsieur Le Courage Wolf, Baby Courage Wolf and Intellectual Courage Wolf.

On July 18th, 2009, single topic blog Fuck Yeah Courage Wolf Tumblr[6] was launched to document the meme. On February 18th, 2011, the macro generator site Ask Courage Wolf[7] became available online.


The standard Courage Wolf template has a courageous and brave looking wolf that is against a colored background wheel or radiant beams coming out from behind him against the color wheel. The first line is something that may be problematic/a challenge (e.g. The doctor told you that you had cancer), but the second line is designed to inspire you to overcome the challenge (e.g. You, however, will call it a challenge).

Notable Examples

Derivative: Insane Wolf

In 2009 a macro named Insanity Wolf began appearing. Instead of offering courage for solving your problems, he offers insane and often murderous options. He is often referred to as the insane cousin of Courage Wolf.

Search Interest

Google Insights search shows that search queries began around November/December 2008. In May 2007, there was a small search percentage, but its is likely due to only a few error searches.

External References

[1] Jeff Vanuga – Jeff Vanuga Photographer

[2] CorbisImage – Snarling Gray Wolf

[3] MemeBase Wiki – Courage Wolf

[4] Urban Dictionary – Courage Wolf

[5] MemeGenerator – Courage Wolf

[6] Tumblr – Fuck Yeah Courage Wolf Archives

[7] Ask Courage Wolf –

[8] Encyclopedia Dramatica – Courage Wolf

Your rating: None

By Daved Brosche, Naveed Javaid and Smashing Editorial Team

When it comes to freebie designs, beautiful icons sets are tops. Designers scour for these free treasures more than anything else. You can use icon sets in Web applications, website designs and on your desktop. If well designed, they make a great impression on others. Beautifully designed icons also prove the quality of a designer’s work, so many designers make theirs freely available online, thus giving their work more exposure.

In the overview below, we present 50 beautifully designed, free and professional high-quality icons for desktop and Web design. All of them can be freely used for private projects, and some are available for commercial use as well. Regardless, always read the licenses — they may change from time to time.

You can also scan through our other icon-related articles:

50 Beautiful, Free and High-Quality Icon Sets

Container Icon Pack
Container Icon Pack contains 40 high-quality (256 x 256 pixel) icons in PNG and ICO formats. This package includes box, cargo, trash icons and more. Created by Mehmet Gozetlik.

Baggy Icon Set
Contains five high-quality icons in three formats (ICO, ICNS and PNG) and six sizes, ranging from 16 to 512 pixels!

Round theme icons
A beautiful set of 106 various rounded icons.

Fortune 500 Badges
Over 200 badges of famous brands, PSDs included.

Red Moleskine
Red Moleskine is a beautiful icon set in PNG format and sizes of 16, 32, 64, 128, 256 and 512 pixels.

Old-School Icon Set
A set of six beautiful old-ish icons: typewriter, camera, radio, TV set, Gameboy, and telephone. In PNG and ICO.


Nine beautiful and original icons (in PNG and ICO), created by the talented Miriam Moshinsky.

Windows 7 Build
A set of various basic software and office icons.


Classic Timer Icon
A quality timer icon in transparent vector format, with different sizes.

Nes Icons Pack
A set of retro icons (TV, NES, Pad, Alimentation box, Zelda box, Zelda game, Desktop, 1up, Magic Toad) in ICO and PNG (512 × 512 pixels).

Jeans Feed Icons
A set of stylish feed icons as denim pockets.

Cemagraphics Icons
A set of various beautiful icons in PNG (32 × 32 and 512 × 512 pixels).

To-Do List Icon
Use these icons in your Web applications to make them more attractive.

Social Media Handycons
Handycons is a free hand-drawn set of 12 social-media icons. All icons are available in four sizes: 16, 24, 32 and 48 pixels.

Canon 400D + lens 17-85mm
Set of two icons: camera and lens. Comes in sizes of 512 and 16 pixels and iContainer, ICNS, PNG and ICO format.


A stylish set of icons to complement almost any theme out there. Designed to be easily distinguishable, simple and intuitive. This icon pack contains over 100 icons. Designed by Jamie Green.

e-Commerce Icons
A huge set of icons that you can use for an online shop.

Function icons set
A beautiful and useful set of 128 icons, available in 48 × 48 pixels.

Elementary Icons
A set of smaller Web developer-style icons.


Human 02
Here is a nice multi-purpose icon set for your business website.


32px Mania Icon Set
Another series of smaller icons that can add flair to any website design.


Business Icons
A collection of random business-related icons with a Web 2.0 look.


Chums Icon Set
This is the ultimate collection of high-quality tech-related icons. You can find everything from iPods to digital cameras.


Tom Tom
Does your business deal with GPS and navigation systems? Then this is the icon set for you.


Black Neon Agua Icons
A unique icon set that is ideal for darker website designs.


Credit Cards Icons
15 beautiful credit card icons in AI and EPS format. And here are yet more credit card icons.

Antique Icons
A set of antique icons in PNG, ICNS and ICO formats, ranging from 16 × 16 to 256 × 256 pixels.

Hand-made food and beverage icon set
Seventeen hand-drawn icons, created by Victor Amanatidis.

Social Media Mini Iconpack
This icon set consists of 30 finely crafted social media icons in a size of 16 × 16 pixels. They are free to use non-commercially.

Manto Smiley Icon Set
Twenty original emoticons by Chinese designer Manto.

Emotions For WordPress Icons
Emoticons for WordPress.

Green and Blue Icon Set
Five icons, each in 128 × 128 pixels and PNG format. Included are icons to represent gallery, downloads, emoticons, calendar and folder.

Airport Express
This icon is for personal use only. Download includes iContainer, PNG and PSD formats.

Coquette Part 3 Icons
This free playful icon set contains curvy and colorful icons made with one goal: to get some affection and playfulness into your projects. The 50 high-quality icons come in sizes of 16, 32, 48, 64 and 128 pixels, and in 32-bit transparency PNG format.

Email Me Icons
These icons are free for personal use and available in 32, 48, 64 and 128 pixels.

A set of beautiful, realistic icons of different daily-use object. These are free for non-commercial use.

Music Icons
Beautiful icons of music instruments. Icons are absolutely free for any purpose.

Sleek XP: Basic Icons
A set of 50 stock icons in PNG and ICO formats.

Set of Social Icons
A set of beautiful social icons in PNG format and sizes of 16, 32 and 64 pixels.

GP Icons
A set of 23 PNG icons of different software products. Has a great grunge style.

Banking Stuff Icons
Banking-related icons for non-commercial use, in sizes of 32, 48, 64, 128 and 256 pixels.

Smashing Magazine’s Icons

Smashing Retro Icon Set
A set of 10 beautiful, high-quality “vintage” icons. The set contains 10 original icons: search, sign-up, calendar, news, RSS, comments, email, ads, home and address.

Flavours Icon Set
This set, aimed to help designers in their Web and user interface designs, contains 177 icons in a resolution of 48×48 pixels. The files are available in the PNG and PSD sources, so you can modify the files as you wish. Created by Oliver Twardowski.

Stationery Icons Set
A useful set of 22 vector icons (256 × 256 pixels). It contains book, brush, crayon, clip, color pencils, document, eraser, pad, palette, post-it note, scale and scissors, as well as the Fireworks source file.

On Stage Icons Set
The set contains 49 free vector icons, including PSD, which can be useful for both corporate and personal projects. You can use the set for free, without any restrictions whatsoever. The icons are available in PNG format in a resolution 128×128 pixels. Also included in the package are 100% pure shape-based layered PSDs.

Fresh Icons Set
This set contains 59 raster and vector icons. The set includes icons in PNG, ICNS and ICO formats. An EPS vector file is available as well.

Practica Icons Set
A free set of 11 useful high-quality icons, designed by DryIcons especially for Smashing Magazine and its readers. The icons are available in resolutions of 64, 128 and 256 pixels, in 32-bit transparency PNG format.

About the author

Naveed Javaid is a Web designer and runs the blog SmashingApps, which focuses on free resources and inspiration especially for designers and developers. If you want to connect with the author, you can follow him on Twitter.


© Daved Brosche for Smashing Magazine, 2009. |
Permalink |
Add to | Digg this | Stumble on StumbleUpon! | Submit to Reddit | Submit to Facebook | Who is linking? | Forum Smashing Magazine

Post tags: , ,

Your rating: None

16 More Brilliant Bookshelves And Bookcases.Alog Shelving System:

Alog Shelving SystemIts a modular shelving system designed by Johannes Herbertsson & Karl Henrik Rennstam, and is made from medium density fiberboard and ash. They have easily detachable shelves that require no fittings. And the best part is the design allows for various combinations and compositions of shelves, allowing the user to create their own bespoke system.

Joya Shelf:

Joya ShelfThis comes from 16:54 Design Group and its named Joya Shelf and it securely holds your precious books and for that matter even the dvd's in an upright position, creating a clean-line, visual floating effect.

Modular Shelves:

Modular ShelvesThis is the creation of the famous and award-winning designers D Lago and Massimo of the Italian furniture design company Lago. This geometric modular shelves may be arranged in many different ways depending upon your choice.

Rolling Shelf:

Rolling ShelfCarbon Kevlar fabric is beautifully used to make a flexible hinge creating a moving surface which allows one to accommodate tall objects and remain in position until you move them back to their original position.

U Bend:

U BendThis shelf allows you to use a book as a bookend.

Magnetic Bookshelf:

Magnetic BookshelfA magnetic book shelf can be put horizontally or vertically on the wall providing an endless variety of possibilities, as boxes with a magnetic back stick to it in any position.

Standing Shelf:

Standing ShelfAn interesting piece of furniture which doesn't look much like a shelving unit to store books.

Angled Bookshelf:

Angled BookshelfDesigned by Ngo, the design enhances the utility of the ordinary bookshelf by providing shelving which requires no bookends or heavy-handed adjustments when a book is removed.

Extended Cab:

Extended Cab (2) 1Extended Cab (2) 2These versatile vertical frames can be adjusted to suit your needs. Instead of a single frame for each book, four to seven frames have been combined. Though these are in vertical setup, but a horizontal setup is also an available option.

Budak Modular Shelves:

Budak Modular ShelvesAn interesting modular shelves system wherein one using a few can form a small shelf or a bench, and combing hundreds of these pieces can have a huge shelving system.

Neverending Bookcase:

Neverending BookcaseAnother interesting conceptual design.

Woodfold Bookcase Doors:

Woodfold Bookcase DoorsThe doors can support up to 500 lbs and they open and close via a steel hinge that swings out the center. Ready to install on either 54 or 66-inch wide openings, the bookcases offer two fixed shelves at the middle and bottom, with four more adjustable shelves for customization.


BookhangerThe concept was developed with an idea of using less material on book storage, making a library much lighter than the books it holds, possible!

Invisible Shelving System:

Invisible Shelving SystemInvisible shelving system is an alternative to a regular bookshelf, it comprises of an aluminum bracket and a combed piece that grips the cover and pages of paperback books. An innovative design solution to store books which creates the illusion of a line of books unsupported on the wall.

Conceal Wall Bookshelf:

Conceal Wall BookshelfThis innovative, inspirational and imaginative award winning design comes from Umbra, it can hold up to 15 lbs of books. Available for about 10 dollars from Amazon, it gives the impression of books being supported by some invisible thing along the wall.

Bookshelves and Bookcases Made of Books:

Bookshelves and Bookcases Made of Books (2) 1Bookshelves and Bookcases Made of Books (2) 2These are the creation of Jim Rosenau who has been making and selling thematic bookshelves from vintage books since 2002.

Bookcase Door:

Bookcase Door (2) 1Bookcase Door (2) 2We have seen this in movies, pull a book from the shelf and the door opens into a secret room. But what we have is from the real world which was created to maximize the book storage which also covered the three louvered doors.

Related Posts: Part - 1 | Part - 2 | Part - 3 | Part - 4.

Other Posts:
Cool Tattoos.
Nature's Ice Show.
Things People Write On Dollar Bills.
How To Build A House In One Day!
The Most Flexible People In The World.

Your rating: None

Single Speed Design make a different shelving system design, its flexible, playful, functional and allows multiple configuration and uses.

View fully entry...

Your rating: None

By Matt Cronin

Usability is an essential goal of any website, and usable navigation is something every website needs. It determines where users are led and how they interact with the website. Without usable navigation, content becomes all but useless. Menus need to be simple enough for the user to understand, but also contain the elements necessary to guide the user through the website — with some creativity and good design thrown in.

Below we present over 50 excellent navigation menus — we feature CSS-based design solutions, CSS+JavaScript-based menus and Flash-designs. However, they all have something in common: they are user-friendly yet creative and perfectly fit to the style of their respective websites.

Please also consider our previous articles:

1. CSS-Based Navigation Menus

A colorful menu that adds to the feel of the website.

Steven Wittens takes a look at the navigation menu from a quite unusual perspective.


Web Design Ledger
Web Design Ledger has an excellent menu; its large size is convenient but doesn’t intrude on the content.


UX Booth
UX Booth uses a a stylish text box under the navigation as a sort of subtext for each menu item.


Vertical navigation menus are used very rarely, for the simple reason: they are harder to use. However, some designers risk unusual approaches. Nopoko Graphics uses an arrow and a hover-effect for its vertical navigation menu.


Icon Designer
This website uses a large image-based menu on the home page. The user’s attention is drawn directly to this large menu, making it convenient for users.


This large and colorful menu is very noticeable and uses a slight hover effect to further define the menu items.


An intuitive drop-down navigation that uses 2 colors effectively to communicate the active navigation item and the passive ones.


Smallstone, a U.S. record label, presents its navigation menu in the form of a the so-called Space Echo Roland SE-201.


It’s pretty hard to find a nice-looking drop-down menu. This one is a beautiful exception.


Clearleft uses a couple of paper pieces for its navigation.


A simple, clean and beautiful navigation with a nice hover effect.


Design Intellection
An excellent example of block navigation that shows how effectively “speaking” hover effects can be used with a clean and simple navigation menu.

A navigation menu doesn’t have to look like a traditional navigation menu. Ronny Pries uses a floor plan to lead site visitors through the pages of the site.


Jiri Tvrdek
Jiri Tvrdek presents the navigation options of his site as leaves on a tree. Creative, unusual and memorable.


Water’s Edge Media
Patricia Abbott uses clothespins for the navigation options.


Matt Dempsey
Matt Dempsey highlights his navigation options with a brush stroke.


The current navigation option is pressed — clear and intuitive.


District Solutions
Vertical tabs are used very rarely. But they can look good!


Jayme Blackmon
Jayme Blackmon seems to like setting “done”-marks…


Jeff Sarmiento
Why not try a sloping navigation options once in a while?


A really unusual navigation menu that uses some kind of a mindmap to illustrate the navigation. And, apart from that, the navigation menu is hand-drawn!


Cultured Code
A subtle yet distinct menu that is out of the way of content. Excellent colors and a nice hover effect also add to the menu.


Nando Designer
This Portuguese designers uses handwriting and a piece of paper for its main navigation.


Sometimes typography is just enough…


Vivid typography in use.


Some designers integrate a stamp in the contact navigation option.


South Creative
This website uses large navigation buttons and has a good hover effect.


Mac Rabbit
One more example of a large and clean menu. This one uses icons to aid the reader in recognizing each item’s function.


This menu has a clean and smooth layout, and it has a great sub-menu that uses transparency to separate it from the main menu.


Icons reinforce the menu items on this website and add emphasis to each option.


Revolution Driving Tuition
This website has a great grunge style, and the menu fits right into the layout.


Duarte Pires
This menu is located close to the content, where it is easy to use. It uses large icons, which adds a visual element to the navigation. Also, the menu on other pages uses the same icons in a vertical layout, bringing consistency to the website. The icons may not fit perfectly, but it’s a nice idea.


Valetin Agachi
This navigation has a rather unique style that emphasizes selected items. Also, the menu layout stays consistent throughout the whole website.


Tutorial9 recently got a nice redesign, which came with a very usable and well-organized menu.


2. CSS Menus With JavaScript

Agami Creative
Designers sometimes use tooltips for their navigation. However, tooltips and aqua are quite an unusual combination.

A perfect example of how one should organize huge amounts of content into clear and easily distinguishable sections. Also, excellent design of the drop-down menu.


AppStorm is a new website by Envato. A jQuery effect is used to create an excellent and very usable drop-down menu.


Eric Johansson
Eric Johansson, a designer from Sweden, uses tall vertical blocks and images for his navigation.


This conveniently located menu has a beautiful hover effect. The sub-menus are consistent and include every item.


Dragon Interactive
Dragon Interactive has a colorful jQuery-based menu with a great effect.


I am a big fan of this navigation layout. I like how the menu fits in with the grunge theme. It also uses another jQuery drop-down effect.


For its recent redesign, Abduzeedo introduced a jQuery slider into the navigation.


3. Flash-Based Menus

Colorful sloping Flash-based navgation from an Indian Web design agency.


Not Forgotten: The Movie
Most entertainment websites use Flash and unusual navigation menus to capture users’ attention. On this one, an instant classic, navigation items are put on cards.


Nick Tones
Nick Tones, with a dynamic, colorful and yet still somehow usable navigation menu.


This Argentinian design agency puts CDs and books on a table, each representing a navigation option, of course. When hovered over with a mouse, each object reveals what can be found inside.


The designers of this Flash-based site came up with something truly original. The navigation menu is put on a ribbon; each navigation item has a nice and simple hover-effect: when an icon is hovered, it is replaced with the site area the icon stands for. Usually tooltips are used for this puprose, here designers use a different approach. Outstanding!


Spectra Visual Newsreader
A beautiful and very colorful Flash menu that is a good example of excellent usability.


This unique website is all about easy-to-use navigation.


Sensi Soft
This amazing portfolio has very well-thought out and convenient navigation.


4. Highly Usable Navigation

tap tap tap
This website has a beautiful layout and a menu with great effects.


Apple has one of the more exceptional websites, particularly because of the navigation layout. The Mac menu is quite amazing. With images, it couldn’t be easier to find items and move through the menu.


Alex Buga
Visitors here use a large and well-laid out slider to move through news items.


The content on the home page of this portfolio website has an extremely simple yet usable organization.


This visually stunning Flash-based portfolio uses an accordion-like layout for the content, so there is no loading of new pages. The large type stresses the importance of menu items.


Colourpixel has a very interesting layout for its portfolio. It combines all of its sections onto a single page, and allows each item to be hidden or revealed, as demanded by the user.


Yet another excellent Flash-based portfolio. This website organizes all gallery items onto an interesting revolving list.


Alexandru Cohaniuc
This portfolio is rather well known for its beautiful layout. An accordion effect allows users to navigate through projects and portfolio items.


Porsche Canada
Porsche Canada’s website has very user-friendly navigation, with many sub-items for each menu item. The convenience and usability of this menu is great.


Jeremy Levine Design
This architecture portfolio has a unique layout that allows users to easily browse the website. The line of menu items has many effects and transitions that make it very convenient.


Firstborn, a well-known design studio, uses scrollable, horizontal navigation for its portfolio. The navigation items can also be displayed in other modes, such as thumbnails, making it even better.


Benjamin David
This portfolio has a vertical slider that automatically moves through menu items. Many large items are placed together in a single glowing menu.


Thibaud’s Portfolio
Another stunning portfolio with creative navigation, this one with Flash-based “color samples” to choose from. Like items are grouped together.


Jason Reed Web Design
Accordions are useful when trying to squeeze many items into a small space. Jason Reed used a stylish accordion in his portfolio to allow users to navigate pages.


Marius Roosendaal
Another usable accordion menu that groups portfolio items.


5. Vertical Navigation Layouts

Danny Blackman
Danny Blackman’s website is often regarded as one of the better portfolios out there, in part because of the amazing vertical layout.


Tomas Pojeta
This website is yet another portfolio that uses a vertical layout to incorporate multiple pages onto one, while allowing users to move vertically between sections.


Volll uses a vertical layout with a beautiful illustrated landscape background.


Mediocore is an awesome portfolio. It has a few more elements than usual on its pages, but still looks excellent.


6. User-Friendly Sidebar Menus

FreelanceSwitch organizes its articles using a great menu.


The redesign of Fubiz brings an excellent sidebar. Slide effects are used to fit a large amount of content into a small sidebar.


Checkout has a stunning website. An extremely clean list-style menu in the features section also displays nice icons.


Ruby Tuesday
Ruby Tuesday has a very nice website. The sidebar menu has exceptional icons and smooth hover effects.


Concentric Studio
A simple and minimalist menu with sliding effects.


Barack Obama
President Obama’s website has a well-spaced and nicely contrasting list-style sidebar menu.


Another clean and well-spaced list menu.


Further Resources

You may be further interested in these articles and related resources:

About the author

Matt Cronin is a freelance web and graphic designer as well as developer. He is the author and owner of Spoonfed Design, a design blog with great tips, how-to, inspiration, tutorials, and more. Spoonfed Design is part of the VAEOU Creative Network, a new startup in progress with new services coming soon.


Your rating: None

Viliv's S5 MID goes haptic, will move you in March
Viliv has been showing some potential lately with its touchable upcoming products, the clean looking S7 netbook tablet and S5 MID. We received some further information on the latter of those two this morning, most notable being the inclusion of haptic feedback that should make its 4.8-inch, 800 x 480 1024 x 600 screen feel a little more tactile. We also got confirmation that the device will be running Windows XP hidden behind a custom UI overlay that, we presume, will be similar to the one we saw running at CES on the S7. Still no price, but the company is aiming for a March release domestically. Our fingers are tingling with anticipation.

Gallery: Viliv S5

Filed under: ,

Viliv's S5 MID goes haptic, will move you in March originally appeared on Engadget on Tue, 03 Feb 2009 11:03:00 EST. Please see our terms for use of feeds.

Permalink | Email this | Comments

Your rating: None

2D-Boy, the man best known for his game “World of Goo” gives us some neat hints, on how to make a good game withing 48 hours. It was because of, yeah, the Global Game Jam. Many thanks!!

Your rating: None

Last week, I detailed my 2009 fitness resolutions and asked Lifehacker readers to share theirs. Here are a few of our favorite ways you're getting in shape in 2009.

One Hundred Push Ups

Like me, reader GalenAlexis is tackling the One Hundred Pushups Plan, saying:
I was about to suggest one hundred push ups when I looked at the headline. Guess I didn't have to.

GalenAlexis and I aren't alone. Mecha-Shiva, CassandraMabel, schizophoenix, jeffk, and others are also trying to amp up their push-up regimen.

Two Hundred Situps

MPGraber is hitting up the hundred push ups in addition to situps at the sister site of One Hundred Push Ups, Two Hundred Situps. The whole regimen looks like this:
In order of priorities:

  • Brisk walk 40-60 minutes every day (outside if possible, treadmill if not) while catching up on news/podcasts.
  • No red meat, no HFCS
  • 100 Pushups, as above
  • Two Hundred Situps (sister site)
  • Lose 30 kgs

Basically, I want to fit in (and fill out!) my varsity letterman's jacket from 20 years ago!

Map My Tri

Joseph Smrekar is going a little more hardcore with his fitness plans, aiming for a triathlon in '09.
[I'm] using Map My Tri to keep track of my workouts. [It's an] amazing site.

My training partner has a GPS and heart rate monitor. Keeps very accurate track of his workouts.

My wife is walking and tracking with Map My Walk and Nike+iPod.


Reader nkpatel has a double-edged diet and fitness regimen, with a laundry list of goals that include:

  • Stay on the Zone diet and track my progress using FitDay
  • Perform 30 pull-ups without rest
  • Run a 5K in under 23 minutes
  • Perform 1 muscle-up


Oranges w/ Cheese is looking to move from the living room to the streets with the Couch-to-5K Running plan.
I'm doing the couch to 5k plan, but I'm certain it will take me longer than the 9 months. I just started week four yesterday (Instead of doing 2 days between weeks, I'm just putting them back to back with a day in between) and had difficulty with the 5 minute run. But it was F**KING COLD.

Daily Mile

FifiHaphiliate is also looking to improve fitness through running with a little social training.
I've been enjoying using the online social training log Daily Mile. Neat site. One of the groups within the site is "Hundred Pushups," with 189 members as of today.

Hit the Deck

ErasmusHippodamia says:
You could do something as simple as Hit The Deck, like I and my wife have done. Easy yet effective as it does both cardio and resistance at once and ultra portable (no gear needed).

And that's that for this roundup. Throw in your two cents and let us know how your fitness goals are coming so far in the comments.

Your rating: None

The design of 404 error pages is often overlooked and underestimated. However, designed carefully, these pages can make a random visitor stay on your website, take a look around and eventually find the information he or she was looking for in the first place. Effective 404 error pages communicate why a particular page couldn’t be displayed and what users can do next. A search box and list of useful resources (possibly related to the missing page) could be helpful in this case.

We’ve already covered the design of 404 error pages in previous posts. In them, we also covered some interesting and useful ideas for designing 404 pages. Now, it’s time for a fresh dose of 404-error inspiration. This article presents 50 more examples of beautiful and original 404 error designs. Some of them are beautiful but not user-friendly, others are user-friendly but not really beautiful. Please use these examples as a source of inspiration; hopefully, this showcase has something for everybody.

Also note that some examples used in this post were suggested by our Twitter followers: please follow us on Twitter Follow us on Twitter to vote on which article gets published next, discuss new ideas, get fresh updates and suggest great ideas for our next posts. Thank you.

Beautiful 404 Error Pages

Cut & Taste
Cut & Taste claims that “Someone on the staff is to blame for this! Rest assured, the proper person will get the proper amount of blame and humiliation dealt to them.” Notice how well the search box is highlighted. Beautiful!

Creative 404 Error Page

Productplanner perfectly integrates its 404 error page in the overall branding of the website.

Creative 404 Error Page
A 404 error page with a not-so-eloquent Homer.

Probably one of the most colorful and abstract 404 error pages out there.

A quite unusual 404 error page from a website that helps people find apartments.

Chris takes his comrades on a trip, hunting for the right page.

On Huwshimi a ninja seems to have stolen a 404 error-page: “you must return when the moon has friends and the fox is borrowed”. Gorgeous!

A typographically beautiful (of course) 404 error page from

Creative 404 error page

Newspond uses a very strange illustration on its 404 error page. The circle defines the limits of the website, and the small image at the top is a miniaturized Newspond logo. A click on the image leads to the home page of the website.

Creative 404 Error Page

“404 Fowl Not Found.” Brightkit shows a missing owl on a milk carton. Unusual and, therefore, memorable.

Creative 404 Error Page

“404: oh noes, there’s nothing in here.” (sent by @Chamb via Twitter)

Creative 404 Error Page

User-Friendly 404 Error Pages
An excellent 404 error page, functionally speaking, that contains a site map of the website.

Creative 404 Error Page

InspirationBit presents an overview of popular and recommended articles.

Creative 404 Error Page

This error page contains links to popular posts and a cool illustration of a pretty freaky monkey.

Creative 404 Error Page


Have Fun With 404!

Yes, fun! Because 404 also is a place where you can show your sense of humor. You have the opportunity, so use it well!
On Pawel Opydo’s blog: “Golden Rule of the Code of the Samurai: If this isn’t the page you were looking for, you have to do Seppuku.”


Abduzeedo suggests ideas for finding the right article and lists popular and recent blog posts as well as a tag cloud.


An illustrative image (sent by sabugao on Twitter).

Creative 404 Error Page

CSS Remix
This fellow is quite scared (sent by @dezignMusings on Twitter).

Creative 404 Error Page

Pattern Tap
Don’t get angry, and don’t cry. Pattern Tap will take on the burden of the missing page.


New Yorker
The New Yorker magazine has been published since 1925, but it is definitely with it, with its own 404.


Frye/Wiles Creative Agency.


The 404 for the best-known ketchup.


Chelmsford Library
OMG, Smashing Magazine is missing in the Chelmsford Public Library!


An ASCII 404 error page from Craigslist.


The Truth
Is this really the truth?


Blame that weird beaver on Wulffmorgenthaler.


Henrik Hedegaard
Henrik Hedegaard seems to like the Simpsons.

Creative 404 Error Page

Refresh and see the next funny picture. A blog by Alexander Frison.


Daze of Our Lives
“Whatever the Dickens a so-called “Error 404″ is I haven’t the foggiest idea, but one has occurred. You can’t trust this wretched technology, can you?”


Wanted: a Web page.


“Despite that song in your step and sense of purpose, you’ve hit a little bump in the road. These things happen. We’re going to do our best to make sure you keep dancing in the right direction.” Orangecoat gives a 404 error mind map.


Kochatelier Berlin
404 bread on the website of a cooking agency.


Mario occasionally entered the wrong castle.


Chris Coyier takes a closer look at the code.


Niki Brown
Niki Brown encourages her visitors to “Have no fear” and shows them a beautiful mouse illustration.


Twitter uses a minimalistic yet attractive 404 error page.

Creative 404 Error Page

Homer on the blog of Cristian Livadaru.


Homer again, this time at ARTTHUG Studios.


Error Cubee (which you can download and make yourself) at Cubeecraft.


d20 SRD
A brutal error at d20 SDR!


HomeStar Runner
Oops! You had it coming at HomeStar Runner.


Animation? Sure!

404 doesn’t only have to be about graphics. Below, you’ll find 404 examples with animation.

Mark Fennell
On his 404, Mark Fennell offers… a game!


Project Euh
Project Euh? Just click and go to a random website.


Total Insanity
Total Insanity shows us what insanity really means.


Herr Nilsson
This 404 error page fetches 404 Tweets and displays them in real time (sent by eelay on Twitter).

Creative 404 Error Page

Cricket Feet
The 404 error page on Cricket Feet talks to you!


Daniel Karcher’s film design studio.


Sources and Resources

About the author

Sylwia Besz is a project manager who loves blogging and photography. You can find her 404 error page here.


Your rating: None

Kana Micro

If you are looking for a really small MP3 Player, you have to take a look at the Kana Micro MP3 Player from Green House.

These players look like USB Drives. They provide 2 hours of music play and offer 2 GB of storage space for your music files, but this is possible only if you buy the Micro SD Card, to be used here. After two hours you have to charge them, by plugging into your system’s USB port.

They are available in colors pink, blue, green, orange, red and purple.

[Via Coolest Gadgets]

Your rating: None

USB Concepts.The Dialog05 created an interesting series called "Universal Connections", they used USBs as a universal connection for various daily life themes such as "No Authorization," "French Connection," and many more.

USB Concepts (8) 5
USB Concepts (8) 6
USB Concepts (8) 7
USB Concepts (8) 8Hand Sign USB:

USB Concepts (8) 1
USB Concepts (8) 2
USB Concepts (8) 3
USB Concepts (8) 4Other Posts:
Art Car.
Pinhole Art.
Amazing Arowana.
Interesting Vintage Ads.
Men Will Never Change.

Your rating: None

by Noura Yehia

JavaScipt libraries have made huge leaps and bounds in helping developers write code and develop products more quickly. jQuery is one of the most popular JavaScript frameworks, with powerful tools that improve the user’s interaction with Web applications. jQuery has an additional advantage in that it allows developers to select elements on a page using CSS-like syntax.

To help you take it up a notch, we share below some methods that can help you give visitors to your website an amazing user experience. Here are over 45 impressive jQuery plug-ins and techniques that have been recently created and that could make the development of your next website an easier and more interesting experience than the last.

You may want to take a look at the following related posts:

Dynamic Content

1. Build A Login Form With jQuery
In this tutorial, we’ll create a sliding panel, that slides in to reveal more content, using JQuery to animate the height of the panel. In this case, we will be creating a hypothetical login for the new tutsplus area that’s coming soon.


2. Spoiler Revealer with jQuery
A simple technique that hides some content first and fades it in once a link is clicked.


3. AJAX Upload
This AJAX file upload plug-in allows users to easily upload multiple files without having to refresh the page. In addition, you can use any element to trigger the file selection window. The plug-in creates a semi-transparent file input screen over the button you specify, so when a user clicks on the button, the normal file selection window is shown. After the user selects a file, the plug-in submits the form that contains the file input to an iFrame. So it isn’t true AJAX but provides the same user experience.


4. FCBKcomplete
Give your users fancy Facebook-like dynamic inputs, with auto-complete and pre-added values.


5. Create Accessible Charts Using Canvas and jQuery
This tool is proof that you can use the <canvas> element to illustrate HTML table data. The idea is a good one: putting the data in a table allows it to remain accessible, while the chart can be shown for visual enhancement.



Form Manipulation

6. Radio Button and Check Box Replacement
This jQuery tool replaces radio buttons and check boxes with a more appealing display.


7. Submit a Form without a Page Refresh


8. jQuery AJAX Contact Form
Here is a quick and easy way to make a jQuery AJAX contact form with a “honeypot” to foil email bots, load success and error messages dynamically without leaving the page and provide descriptive error messages detailing why submitted values have failed validation.


9. Simple jQuery Form Validation
This jQuery form shows live form-input validators both server-side and browser-side.



Navigation Menus

10. jQuery Context Menu
A context menu plug-in for jQuery that features easy implementation, keyboard shortcuts, CSS styling and control methods.


11. Kwicks for jQuery
Kwicks for jQuery started off as a port of the incredibly attractive MooTools framework, but has evolved into a highly customizable and versatile widget.


12. jQuery iPod-style Drilldown Menu
“We created an iPod-style drilldown menu to help users traverse hierarchical data quickly and with control. It’s especially helpful when organizing large data structures that don’t translate well into traditional dropdown or fly-out menus.”


13. jQuery File Tree
The jQuery File Tree is a configurable AJAX file-browser plug-in for jQuery. You can create a customized, fully-interactive file tree with as little as one line of JavaScript code.


14. How to Create a MooTools Home Page-Inspired Navigation Effect
In this tutorial, you’ll recreate the same effect seen in MooTools’s menu, but in jQuery!


15. CSS Sprites2
This tutorial demonstrates how to implement inline CSS Sprites2 using jQuery.



Manipulating Content

16. jQuery books widget
With some custom JavaScript and jQuery magic you can create some interesting widgets. A good way to demonstrate this functionality is by building a browsable books widget.


17. Text Size Slider
This tutorial explains how to use a slider to control the text size of an article on a page. This lets the user control exactly the size that suits them, and is also a pretty impressive feature to have on a site.


18. Pagination
Create navigational elements: when you have a large number of items, you can group them into pages and present navigational elements that allow users to move from one page to another.


19. Coda-Slider
As with the last tool, groups items together using navigational elements that allow users to move from one page to another.


20. Creating a Slick Auto-Playing Featured-Content Slider
If you love the Coda-Slider plug-in for jQuery, then you will find this plug-in very useful for displaying lots of content in a small area. This nice plug-in adds some features not found in the original Coda-Slider, such as slowly cycling through panels, auto-playing different types of custom content. An arrow indicator serves as a visual indication of which panel you are currently viewing.


  • Demo can be found here.
  • Download files here.

21. haccordion
A simple horizontal accordion plug-in for jQuery.



Tabular Data and Grids

22. Table Row Checkbox Toggle
This tool generically adds a toggle function to any table row you specify based on a CSS class name. It will, by default, toggle on any check boxes within that table row.


23. Tablesorter
Tablesorter is a jQuery plug-in that turns a standard HTML table with <th> and <td> tags into a sortable table without the need for page refreshes. Tablesorter can successfully parse and sort many types of data, including linked data, in a cell.


24. TableEditor
TableEditor provides flexible in-place editing of HTML tables. User-defined handler functions can easily be dropped in to update, for example, a data source via an AJAX request.


25. Scrollable HTML Table
This JavaScript code can be used to convert ordinary HTML tables into scrollable ones.



Lightbox Techniques

26. Revealing Photo Slider
Learn how to create a thumbnail photo gallery, where clicking a button reveals the entire photo and more information about that photo.


27. FancyBox
FancyBox was born to automatically scale large images to fit in windows, adding a nice drop-shadow under the zoomed item. It can be used to group related items and add navigation between them (using a pre-loading function). FancyBox is totally customizable through settings and CSS.


28. Facebox Image and Content Viewer
Facebox is a lightweight Facebook-style Lightbox that can display images, divs, and even entirely remote pages (via AJAX) inline on a page and on demand. It uses the compact jQuery library as its engine, unlike Lightbox v2.0, which uses Prototype.


29. jQuery.popeye
jQuery.popeye is a plug-in that transforms an unordered list of images into a simple image gallery. When an image is clicked, it enlarges Lightbox-style. The images are displayed in a box with “Previous” and “Next” controls, and information about the images can be included.



Image Galleries and Viewers

30. Simple Controls Gallery
Simple Controls Gallery rotates and displays each image by fading it into view over the previous one, with navigation controls that pop up when the mouse hovers over the gallery. The controls allow the user to play, pause or jump to a specific image in the gallery.


31. Agile Carousel
This jQuery plug-in allows you to easily create a custom carousel. Use the jQuery UI to enable many different types of transition. The plug-in uses PHP to call images from the folder you specify. Configure many different options including controls, slide timer length, easing type, transition type and more!



Browser Tweaks

32. Setting Equal Heights with jQuery
A script to equalize the heights of boxes within the same container and create a tidy grid.


33. jQuery IE6 PNG Transparency Fix
Another IE6 PNG fix that uses jQuery selectors to automatically fix all PNG images on a page.

34. BGI frame
This tool helps ease the pain of dealing with IE z-index issues. You can find a demo here.

35. Fix Overflow
IE puts scroll bars inside overflowing elements, and if an element is only one line, the scroll bar will cover it. This plug-in fixes that issue.


36. Lazy Load
Lazy Load delays the loading of images below the fold on long pages. As the user scrolls down, the images are loaded as needed. Check out the demo here.

37. Maxlength
It’s a fairly common design practice to limit the number of characters a user can input in a field while giving feedback on how many spaces are left. This plug-in automates that task.



Animation Effects

38. Scrollable
Scrollable is a flexible and lightweight (3.9 KB) jQuery plug-in for creating scrollable content. Scrollable items can contain any HTML, such as text, images, forms, video or any combination of them. You can make items scroll horizontally or vertically and decide how many items are visible at once.


39. jQuery Fading Menu - Replacing Content
“Instead of thinking about CSS as page layout and a way to style your page when it loads, you can use in animation and change it on-the-fly to react to events that happen on your page. Take for example a menu. You can take the “click” event that happens when clicking on a menu to do lots of stuff.”


40. Build an Animated Cartoon Robot with jQuery
This effect simulates a faux 3-D animated background reminiscent of old-school side-scrolling video games (and not unlike the parallax effect). This effect is created by layering several empty divs over each other, with transparent PNGs as background images. The backgrounds are animated at different speeds using jQuery.


41. Flip
Flip is a plug-in for jQuery that “flips” page elements in four directions. Compatible with Firefox 2+, Internet Explorer 6+, Safari 3.1 (for Windows) and Google Chrome.


  • Download files here.

42. Use jQuery for Background Image Animations
Animate your menu whenever a user hovers over an item with this effect.



Image Manipulation

43. Jcrop
Jcrop is the quick and easy way to add image-cropping functionality to your Web application. It combines the ease of use of a typical jQuery plug-in with a powerful cross-platform DHTML cropping engine that is faithful to familiar desktop graphics applications.


44. jQZoom
JQZoom is a JavaScript image magnifier that makes it really easy to magnify what you want. It is easy to customize and works on all modern browsers.




45. Date Range Picker
A rich date-range widget that uses the jQuery UI’s date picker and some additional custom interaction.


46. Sortable Lists
Unordered lists are commonly used to structure a website’s navigation. Having the ability to re-order such lists would be extremely useful. Here is a method to easily save and reload the list element order without getting lost as the page is refreshed.


47. Amazing Music Player Using Mouse Gestures and Hotkeys
Learn how to create an amazing music player, coded in XHTML and jQuery, that makes use of mouse gestures and hotkeys. You can click and drag the mouse to interact with the music player’s interface or use directional keys and the space bar instead of the mouse.


48. Script for Tracking Outbound Links in Google Analytics with jQuery
This code snippet uses Google Analytics and jQuery to automatically track outbound links. This interesting script enhances behavior by comparing the link’s domain to the current page’s domain and, if they are different, triggering the behavior. This is helpful when using a CMS or other tool that generates full URLs, including the “http://,” instead of relative ones.

<script type="text/javascript">
	$('#content a:not(.popupwindow)').filter(function() {
		var theHref = this;
		if (theHref.hostname && theHref.hostname !== location.hostname) {
			$(theHref).not(".noAutoLink").attr('target','_blank').bind('click keypress', function(event) {
				var code=event.charCode || event.keyCode;
				if (!code || (code && code == 13)) {
						var fixedLink = this.href;
						fixedLink = fixedLink.replace(/https?:\/\/(.*)/,"$1");
						fixedLink = '/outgoing/'   fixedLink;

49. jGrowl
jGrowl is a jQuery plug-in that delivers unobtrusive messages within the browser, similar to the way that OS X’s Growl Framework works.


Related posts

You may want to take a look at the following related posts:

About the author

Noura Yehia is a Web designer and blogger who can be found at Noupe and Devsnippets. If you want to connect with the author, you can follow her on Twitter.

Your rating: None

Following the bombshell of Adobe announcing that Flash 10 will not support unsolicited clipboard access from Flash and JavaScript as malicious flash ads flooded clipboards a lot of developers were wondering how to make the "copy to clipboard" still work without having to do it in Flash itself.

An interesting and also slightly creepy approach to the problem is the JavaScript library Zero Clipboard:

The Zero Clipboard library provides an easy way to copy text to the clipboard using an invisible Adobe Flash movie, and a JavaScript interface. The "Zero" signifies that the library is invisible and the user interface is left entirely up to you.

This library is fully compatible with Flash Player 10, which requires that the clipboard copy operation be initiated by a user click event inside the Flash movie. This is achieved by automatically floating the invisible movie on top of a DOM element of your choice. Standard mouse events are even propagated out to your DOM element, so you can still have rollover and mouse down effects.

So in other words, zero clipboard is a legitimate use of the clickjacking trick to cover an element with a transparent element that provides another functionality.

There are detailed instructions how to use the library on the homepage.

I don't know about you, but somehow "copy to clipboard" buttons seem a bit redundant to me and by keeping this functionality working cause more security holes than usability benefits.

Your rating: None

The river value min-raise is a play I use with some frequency. I most typically try it when I’m heads-up with position on the river, and I have a hand I was planning to bet for value if checked to. But instead of checking, my opponent bets. And, given the ...

Login/Register for more.

Your rating: None

by Alec Julien


There are generally taken to be five vertical measures of note in type design (from bottom to top): descender, baseline, midline*, caps-height, and ascender.

Vertical Measures in Minion

But if you delve into the minutiae of font design, you soon discover that there are a slew of important vertical metrics that aren’t much talked about. In this article, I will take a look at several of these metrics, and how they are used in font design.


Take a look at the basic alphabet from the venerable Minion, with the top three measures highlighted across each glyph:

Minion alphabet

You’ll note that the lowercase ‘t’ sticks out like a proverbial sore thumb. The crossbar aligns with the font’s x-height, but the top of the glyph is on a vertical plane all its own. In my research, I find no accepted terminology to measure the top of the ‘t’, and so I propose we give a name to this vertical metric (simply enough): t-height.

Minion t

The tradition for serif types is, like with Minion, for the crossbar of the ‘t’ to be at the font’s midline line, and for the top stem of the ‘t’ to come up somewhere midway between the midline and the caps-height.

t-heights compared

Typically, sans serif faces adhere to the same rule, as do slab serifs. However, gothic and geometric sans faces often break with tradition and elevate the ‘t’ to the ascender. Handwriting fonts often do the same.



Looking at the string ‘xoXO’, you might think that there are only three of the standard five vertical metrics in play: baseline, midline, and caps-height.


But if you view these glyphs at a larger size, you can see that the bottoms and the tops of the ‘o’ and ‘O’ overhang the baseline and their respective constraining heights. This is standard practice in type design; the reason being that if the ‘o’ and ‘O’ came exactly to the baseline and x-height/caps-height, it would appear to the naked eye as if they were smaller than other surrounding glyphs. This goes for any glyph rounded on the top or bottom. Here are some typical lowercase overshoots, top and then bottom:

lowercase overshoots

And typical uppercase overshoots:

uppercase overshoots

In principle, the overshoots should not be apparent to the eye at normal text sizes. The whole idea of overshoots is that they make their glyphs appear to be the same height as flat-topped and flat-bottomed glyphs.

e-bar height

Typically, the bar of the ‘e’ rests somewhere between halfway and two-thirds up from the baseline to the midline. (It’s extremely rare to find a typeface where the bar of the ‘e’ is below the halfway point between the baseline and the x-height.) Let’s call the height of the center of the bar of the ‘e’ the e-bar height. Here are Minion, Helvetica, Times New Roman, and Museo, and how their e-bar heights compare to the A-bar height and the x-junction height:

e-bar heights

A-bar height

The A-bar height, taken as the measure from the baseline to the center of the bar of the ‘A’, typically ranges from around 30-40% of the distance from the baseline to the caps-height.

A-bar heights

Incidentally, as you can see from the above image, the H-bar height is generally higher than the A-bar height. This makes sense architecturally, if you think of the crossbars of these glyphs as providing a sort of balance. The ‘A’ crossbar, if it were up at the height of the ‘H’ crossbar, would make the ‘A’ rather top-heavy.

R-Junction, P-Junction, B-Junction, and K-Junction heights

When I first started designing fonts, I thought, naively, that the junction points in the middle of the vertical bars of the ‘R’, ‘P’, ‘B’, and ‘K’ were all at the same height. Wouldn’t it be easy if you could just design a ‘P’, and then just stick a leg on it for an ‘R’, and another hoop on it for a ‘B’? I soon learned better. Here, once again, is Minion to show us the subtle variations in vertical metrics that make a font interesting:

K R B P Junction heights

Upon closer inspection, we can really see the different heights of these junctions. Here’s a close-up of the ‘R’ next to the ‘P’. Note that the P-junction height is slightly lower than the R-junction height.

R P Junction heights

The B-junction height is much higher than the R-junction height:

R P Junction heights

E-Junction and F-Junction heights

You might also suspect that the middle bars of the ‘E’ and ‘F’ would be at the same height, but this is not always the case.

E F Junction heights

In Minion, the E-junction height is slightly higher than the F-junction height. You can see, also, that there is a wide variance of heights across the middles of some glyphs:

A E F G H Junction heights

Look how strange Minion would look if all of these middle heights were the same:

A E F G H Junction heights equalized

And then some

We’ve really just scratched the surface. Well, I suppose we’ve dug in a little more deeply than the surface, but there are still a great many more interesting vertical metrics we could explore. G-bar height, briefly alluded to in the images above; foot serif height, and head serif height; two-storey a-junction height, or where the upper stroke of the bowl intersects with the vertical stem; two-storey g-bowl height, or how high the upper bowl of the ‘g’ starts above the baseline.

If your interest is piqued, I highly recommend Karen Cheng’s Designing Type, which is filled with wonderful analyses of minutiae like these.

* midline should not be confused with x-height; strictly speaking, the x-height is the distance between baseline and midline.

Interested in sponsoring iLT’s RSS feed? Contact me.

Your rating: None

In a prior job as a photo editor, I used to joke that I was getting paid for watching bars slowly load across the screen. Thanks to Pretty Loaded, a museum of Flash loading screens, I can now do it for free.

Pretty Loaded has some very creative loading screens. It’s mesmerizing, and maybe, just maybe, you’ll actually be able to view them all. Almost there… Just 15% complete.

[via kottke]

Your rating: None

I don't usually do news and current events here, but I'm making an exception for the CWE/SANS Top 25 Most Dangerous Programming Errors list. This one is important, and deserves a wide audience, so I'm repeating it here -- along with a brief hand-edited summary of each error.

If you work on software in any capacity, at least skim this list. I encourage you to click through for greater detail on anything you're not familiar with, or that piques your interest.

  1. Improper Input Validation

    Ensure that your input is valid. If you're expecting a number, it shouldn't contain letters. Nor should the price of a new car be allowed to be a dollar. Incorrect input validation can lead to vulnerabilities when attackers can modify their inputs in unexpected ways. Many of today's most common vulnerabilities can be eliminated, or at least reduced, with strict input validation.

  2. Improper Encoding or Escaping of Output

    Insufficient output encoding is at the root of most injection-based attacks. An attacker can modify the commands that you intend to send to other components, possibly leading to a complete compromise of your application - not to mention exposing the other components to exploits that the attacker would not be able to launch directly. When your program generates outputs to other components in the form of structured messages such as queries or requests, be sure to separate control information and metadata from the actual data.

  3. Failure to Preserve SQL Query Structure (aka 'SQL Injection')

    If attackers can influence the SQL that you send to your database, they can modify the queries to steal, corrupt, or otherwise change your underlying data. If you use SQL queries in security controls such as authentication, attackers could alter the logic of those queries to bypass security.

  4. Failure to Preserve Web Page Structure (aka 'Cross-site Scripting')

    Cross-site scripting (XSS) is a result of combining the stateless nature of HTTP, the mixture of data and script in HTML, lots of data passing between web sites, diverse encoding schemes, and feature-rich web browsers. If you're not careful, attackers can inject Javascript or other browser-executable content into a web page that your application generates. Your web page is then accessed by other users, whose browsers execute that malicious script as if it came from you -- because, after all, it did come from you! Suddenly, your web site is serving code that you didn't write. The attacker can use a variety of techniques to get the input directly into your server, or use an unwitting victim as the middle man.

  5. Failure to Preserve OS Command Structure (aka 'OS Command Injection')

    Your software acts as a bridge between an outsider on the network and the internals of your operating system. When you invoke another program on the operating system, and you allow untrusted inputs to be fed into the command string, you are inviting attackers into your operating system.

  6. Cleartext Transmission of Sensitive Information

    Information sent across a network crosses many different nodes in transit to its final destination. If your software sends sensitive, private data or authentication credentials, beware: attackers could sniff them right off the wire. All they need to do is control one node along the path to the final destination, any node within the same networks of those transit nodes, or plug into an available interface. Obfuscating traffic using schemes like Base64 and URL encoding offers no protection.

  7. Cross-Site Request Forgery (CSRF)

    Cross-site request forgery is like accepting a package from a stranger -- except the attacker tricks a user into activating a HTTP request "package" that goes to your site. The user might not even be aware that the request is being sent, but once the request gets to your server, it looks as if it came from the user -- not the attacker. The attacker has masqueraded as a legitimate user and gained all the potential access that the user has. This is especially handy when the user has administrator privileges, resulting in a complete compromise of your application's functionality.

  8. Race Condition

    A race condition involves multiple processes in which the attacker has full control over one process; the attacker exploits the process to create chaos, collisions, or errors. Data corruption and denial of service are the norm. The impact can be local or global, depending on what the race condition affects - such as state variables or security logic - and whether it occurs within multiple threads, processes, or systems.

  9. Error Message Information Leak

    Chatty error messages can disclose secrets to any attacker who misuses your software. The secrets could cover a wide range of valuable data, including personally identifiable information (PII), authentication credentials, and server configuration. They might seem like harmless secrets useful to your users and admins, such as the full installation path of your software -- but even these little secrets can greatly simplify a more concerted attack.

  10. Failure to Constrain Operations within the Bounds of a Memory Buffer

    The scourge of C applications for decades, buffer overflows have been remarkably resistant to elimination. Attack and detection techniques continue to improve, and today's buffer overflow variants aren't always obvious at first or even second glance. You may think that you're completely immune to buffer overflows because you write your code in higher-level languages instead of C. But what is your favorite "safe" language's interpreter written in? What about the native code you call? What languages are the operating system API's written in? How about the software that runs Internet infrastructure?

  11. External Control of Critical State Data

    If you store user state data in a place where an attacker can modify it, this reduces the overhead for a successful compromise. Data could be stored in configuration files, profiles, cookies, hidden form fields, environment variables, registry keys, or other locations, all of which can be modified by an attacker. In stateless protocols such as HTTP, some form of user state information must be captured in each request, so it is exposed to an attacker out of necessity. If you perform any security-critical operations based on this data (such as stating that the user is an administrator), then you can bet that somebody will modify the data in order to trick your application.

  12. External Control of File Name or Path

    When you use an outsider's input while constructing a filename, the resulting path could point outside of the intended directory. An attacker could combine multiple ".." or similar sequences to cause the operating system to navigate out of the restricted directory. Other file-related attacks are simplified by external control of a filename, such as symbolic link following, which causes your application to read or modify files that the attacker can't access directly. The same applies if your program is running with raised privileges and it accepts filenames as input. Similar rules apply to URLs and allowing an outsider to specify arbitrary URLs.

  13. Untrusted Search Path

    Your software depends on you, or its environment, to provide a search path (or working path) to find critical resources like code libraries or configuration files. If the search path is under attacker control, then the attacker can modify it to point to resources of the attacker's choosing.

  14. Failure to Control Generation of Code (aka 'Code Injection')

    While it's tough to deny the sexiness of dynamically-generated code, attackers find it equally appealing. It becomes a serious vulnerability when your code is directly callable by unauthorized parties, if external inputs can affect which code gets executed, or if those inputs are fed directly into the code itself.

  15. Download of Code Without Integrity Check

    If you download code and execute it, you're trusting that the source of that code isn't malicious. But attackers can modify that code before it reaches you. They can hack the download site, impersonate it with DNS spoofing or cache poisoning, convince the system to redirect to a different site, or even modify the code in transit as it crosses the network. This scenario even applies to cases in which your own product downloads and installs updates.

  16. Improper Resource Shutdown or Release

    When your system resources have reached their end-of-life, you dispose of them: memory, files, cookies, data structures, sessions, communication pipes, and so on. Attackers can exploit improper shutdown to maintain control over those resources well after you thought you got rid of them. Attackers may sift through the disposted items, looking for sensitive data. They could also potentially reuse those resources.

  17. Improper Initialization

    If you don't properly initialize your data and variables, an attacker might be able to do the initialization for you, or extract sensitive information that remains from previous sessions. If those variables are used in security-critical operations, such as making an authentication decision, they could be modified to bypass your security. This is most prevalent in obscure errors or conditions that cause your code to inadvertently skip initialization.

  18. Incorrect Calculation

    When attackers have control over inputs to numeric calculations, math errors can have security consequences. It might cause you to allocate far more resources than you intended - or far fewer. It could violate business logic (a calculation that produces a negative price), or cause denial of service (a divide-by-zero that triggers a program crash).

  19. Improper Access Control (Authorization)

    If you don't ensure that your software's users are only doing what they're allowed to, then attackers will try to exploit your improper authorization and exercise that unauthorized functionality.

  20. Use of a Broken or Risky Cryptographic Algorithm

    Grow-your-own cryptography is a welcome sight to attackers. Cryptography is hard. If brilliant mathematicians and computer scientists worldwide can't get it right -- and they're regularly obsoleting their own techniques -- then neither can you.

  21. Hard-Coded Password

    Hard-coding a secret account and password into your software is extremely convenient -- for skilled reverse engineers. If the password is the same across all your software, then every customer becomes vulnerable when that password inevitably becomes known. And because it's hard-coded, it's a huge pain to fix.

  22. Insecure Permission Assignment for Critical Resource

    Beware critical programs, data stores, or configuration files with default world-readable permissions. While this issue might not be considered during implementation or design, it should be. Don't require your customers to secure your software for you! Try to be secure by default, out of the box.

  23. Use of Insufficiently Random Values

    You may depend on randomness without even knowing it, such as when generating session IDs or temporary filenames. Pseudo-Random Number Generators (PRNG) are commonly used, but a variety of things can go wrong. Once an attacker can determine which algorithm is being used, he can guess the next random number often enough to launch a successful attack after a relatively small number of tries.

  24. Execution with Unnecessary Privileges

    Your software may need special privileges to perform certain operations; wielding those privileges longer than necessary is risky. When running with extra privileges, your application has access to resources that the application's user can't directly reach. Whenever you launch a separate program with elevated privileges, attackers can potentially exploit those privileges.

  25. Client-Side Enforcement of Server-Side Security

    Don't trust the client to perform security checks on behalf of your server. Attackers can reverse engineer your client and write their own custom clients. The consequences will vary depending on what your security checks are protecting, but some of the more common targets are authentication, authorization, and input validation.

Of course there's nothing truly new here; I essentially went over the same basic list in Sins of Software Security almost two years ago. The only difference is the relative priorities, as web applications start to dominate mainstream computing.

This list of software security mistakes serves the same purpose as McConnell's list of classic development mistakes: to raise awareness. A surprisingly large part of success is recognizing the most common mistakes and failure modes. So you can -- at least in theory -- realize when your project is slipping into one of them. Ignorance is the biggest software project killer of them all.

Heck, even if you are aware of these security mistakes, you might end up committing them anyway. I know I have.

Have you?

[advertisement] Did your buddy just get his ear chewed off for another server crash? Help him out by recommending PA Server Monitor. He just might buy you lunch. Download the Free Trial!

Your rating: None

More and more applications these days are migrating to the Web. Without platform constraints or installation requirements, the software-as-a-service model looks very attractive. Web application interface design is, at its core, Web design; however, its focus is mainly on function. To compete with desktop applications, Web apps must offer simple, intuitive and responsive user interfaces that let their users get things done with less effort and time.

In the past we didn’t cover web applications the way we should and now it’s time to take a closer look at some useful techniques and design solutions that make web-applications more user-friendly and more beautiful. This article presents the first part of our extensive research on design patterns and useful design solutions in modern web applications. Below you’ll find a collection of 10 useful interface design techniques and best practices used in many successful web-applications.

Please feel free to suggest further ideas, approaches and coding solutions in the comments to this post. The second part of our research will be published soon: stay tuned via RSS Subscribe to our RSS-feed and Twitter Follow us on Twitter.

You may want to take a look at the following related articles:

1. Interface elements on demand

Simplicity is important in user interface design. The more controls you display on the screen at any time, the more time your users will have to spend figuring out how to use your interface. When there is less choice, the available functions become more apparent and are easier to scan. Simplifying an interface isn’t easy though, especially if you don’t want to limit the app’s functionality.

Kontain search
When you click on the search link in Kontain’s search box, a similar drop-down menu appears. So, if you need to narrow your search, you can use the menu to select the sort of content you’re looking for. Tucking these options away simplifies the search box.

One way of making things simpler is to hide or conceal advanced functionality. Find out the most commonly used functions of your interface and tuck away the rest. You can do this with pop-up menus and controls, which are very common on desktop software. For example, if your search bar has advanced filters, put them away in a special drop-down menu at the end. If users need those filters, they can enable them with just a couple of clicks. Deciding what to keep and what to conceal isn’t a simple task, though, and will depend on how important and how frequently used each of the controls is.

CollabFinder search
When you click on the search link in CollabFinder, you aren’t taken to a different page. Instead, the search box controls drop down, allowing you to begin your search straight away.


2. Specialized controls

It’s important to select the right interface controls for the situation. Different situations can be handled in different ways, and certain controls are better at their intended task than others.

Backpack calendar picker
Backpack has a compact calendar date and time picker for selecting a reminder date.

For example, you can select a date by using drop-down lists for day, month and year. Drop-downs aren’t very efficient, however, when compared to a calendar picker, where you can click directly on a day you want. Calendar pickers also help you see the days, weeks and months (and especially workdays and weekends) more easily and so allow you to make a more informed decision more quickly than you would with a simple drop-down list.

MyBankTracker APY Calculator
MyBankTracker’s APY calculator features easy-to-use slider controls for quickly trying out different projections.

Another good example of this are sliders. Yes, you can always input a number manually, but for certain situations, slider controls do a much better job. Not only are they easy to use — just click and drag — but you can also see how your selection fits between the minimum and maximum of an available range.


3. Disable pressed buttons

One of the problems Web applications encounters with forms is the submission process. With very simple forms, if you click the “Submit” button twice or more very quickly, the form will be submitted two or more times. This is obviously problematic because it will create duplicates of the same item. Preventing duplicate submissions isn’t very hard, and it is essential to do this for most Web apps.

There are two tiers to this safeguard: client-side and server-side. We won’t go through the server-side safeguard here because this will vary depending on the programming language you use and your back-end architecture. What you should essentially do is put in a check to ensure during the processing stage that whatever is being submitted is not a duplicate, and if it is to block it.

Yammer disabled button
Yammer disables the “Update” button while your new message is being submitted.

The client-side stage is much simpler. All you have to do is disable the “Submit” button the very moment it is clicked. The easiest way to do this is to add a piece of JavaScript to the “Submit” button like this:

<input type="submit" value="Submit" onclick="this.disabled=true" />

Of course, we would advise you to also implement server-side checks to be sure that duplicates don’t get through.


4. Shadows around modal windows

Drop shadows around pop-up menus and windows aren’t just eye candy. They help the menu or window stand out from the background by reinforcing its dimensions. They also block out the noise of the content beneath the window by darkening the area around it with a shadow.

This technique hat its roots in traditional desktop applications and helps the user to focus his/her attention on the appearing window. Since most modal windows aren’t as easy to distinguish from the main content as in desktop applications, shadows help them to appear closer to readers, because the window appears to be three-dimensional and lay above the rest of the page.

Digg login window
Digg’s log-in window has a thick shadow around it to block out the noise of the page beneath.

To achieve this effect, designers often create a container with a transparent PNG-image as background and place the content inside the container - with equidistant padding on all sides of the box. Another option is to use a background image with transparent borders and position the content box within this box using absolute positioning. This is exactly what Digg does — this is the image they are using (dialog.png). And this is the markup and CSS-style they are using:


	<div id="container">
		<div style="display: block; top: 236px; opacity: 1;" class="dialog">
			<div class="body">
        		<div class="content">


.dialog {
    position: absolute;
    left: 50%;
    margin-left: -315px;
    width: 630px;
    z-index: 100001;

.dialog .body {
    background: url(/img/dialog.png) 0 0; /* semi-transparent .png image */
    padding: 40px 13px 10px 40px;

Alternatively, you can also use JavaScript-based lightboxes or drop shadows using CSS3-attributes we’ve described earlier, but you need to be aware that Internet Explorer won’t support them.

Basecamp project switcher
Basecamp’s project switcher window has a large soft drop shadow that helps the menu area stand out.


5. Empty states that tell you what to do

When you’re designing a Web application, it’s important not only to test it with sample data, but to ensure that it looks good and is helpful when there is nothing there yet. You should design the empty states.

When there is no information for a page or query yet, a helpful message telling the user how to start could go in that empty space. For example, a project management application’s home page may list the user’s projects, but if there are no projects yet, you could provide a link to the project creation page. Even if there is already a button to do that on the page, an extra bit of help doesn’t hurt.

Campaign Monitor empty state
Campaign Monitor points you in the right direction when you start building an email campaign.

This technique encourages users to actually try out the service and proceed directly with using the service after registration. Guiding the user through single steps of the application may help him or her to understand what advantages the application offers and if it’s useful or not. It is also important to present most important options to the users and only them — it doesn’t make sense to overflood them with numerous options. Keep in mind that users usually want to get a more or less concrete idea of what is offered to them, but they don’t want to jump into details — they have neither time nor interest in it.

Using empty states to motivate users and animate actions, you can significantly reduce the amount of “drop-outs” and help your potential clients to gain a better understanding of how the system works.

Wufoo empty state
Wufoo’s forms page has a large, friendly message inviting you to create a new form if none yet exist.


6. Pressed button states

Many Web applications have custom-styled buttons. These are anchors or input buttons that have custom images assigned as their backgrounds. The default input buttons may not be suitable in some cases, and the text links are sometimes too subtle. The challenge is, when you make your links look like buttons, they should act like buttons — and this includes having a “pressed” look when the user clicks on them.

This isn’t a purely visual tweak. Giving instant feedback to the user will make the application feel more responsive and bring the experience closer to what the user experiences on desktop applications.

You can add a pressed button state with CSS by styling the active pseudo-class of the link in question. So for example, if your anchor has the class add_task_button, you can style its active class by targeting add_task_button:active.

Highrise button pushed
Buttons in Highrise actually show a pressed state when you click on them, providing the user with a satisfying responsive feel.


7. Link to the sign-up page from the log-in page

Some people who haven’t yet signed up to your application will inevitably end up on the log-in page. They likely want to try out your application but can’t find the registration page in a hurry. Perhaps they’ve tried accessing a feature that’s only available to registered users.

Delicious sign in
Don’t have a Delicious account? No problem; a sign-up link is provided on the Delicious log-in page.

Goplan sign in
Goplan has a nice colored button on the log-in page pointing to the sign-up page.

Make things easy for these folks by placing a registration link on your log-in pages. If they haven’t got an account yet, they shouldn’t have to look for a registration page. Our studies confirm: 18% have a sign-in form or a link to the sign-in form placed next to it (e.g. YouTube, Reddit, Digg, Lulu, Metacafe).


8. Context-sensitive navigation

It’s important to think about what the user expects to see and what they need in every given context. You don’t need to display the same navigation controls everywhere because users simply may not need them in every situation.

One of the best examples of context-sensitive controls is the recent change in the Microsoft Office 2007 interface, in which the default set of toolbars was replaced by ribbon controls. Each tab on the ribbon holds different controls relating to a particular activity, be it editing graphs, proofreading or simply writing. Web applications can also benefit from such context-sensitive controls because these controls help unclutter interfaces by showing only what the user needs, not everything that’s available.

Lighthouse sub-navigation
Lighthouse features a familiar tabbed navigation menu; however, it also has a second level of menus right under the set of tabs. This level displays only the items associated with the active section of the website.


9. More emphasis on key functions

Not all controls hold the same importance. For example, on a screen for creating a new item, you may have two buttons: “Create” and “Cancel.” The “Create” link is more important because that’s what the user will be doing most of the time. Only rarely will they need to cancel the screen. So if these controls are located side by side, you may not want to give both the same emphasis.

Lighthouse create or cancel
The “Create ticket” button in Lighthouse. You can see the “cancel” link next to it, in plain text. The button not only commands more importance but also has a larger clickable area and is easier to spot because of its frame.

To shift emphasis to the “Create” link, we can simply use different styles or types of controls. Some applications use the form input button for the create action, and have the cancel action as a text anchor. This not only gives the create button more clickable area, it also helps to grab the users gaze better when they’re looking for it.

10. Embedded video

While pictures and text are a great way to communicate and teach your users about your app’s features, video can be an even better alternative if you have the resources to produce it. Video has been gaining popularity on the Web in recent years. For Web apps, videos are generally used on the marketing website as a kind of screencast to show off a product’s features; however, this isn’t the only way to use video.

GoodBarry video
GoodBarry features a video screencast on its front page showing off the product. It also uses screencasts inside the app to teach people on how to get started.

Mailchimp video
MailChimp includes tutorial videos right on the admin panel to help out new users.

Some Web apps use video inside the application itself to teach users how to use certain features. Video is a fantastic way to quickly demonstrate how your product can be used, because it is easier to consume than a page of text, and it is also much clearer because the viewer can see exactly what to do.

Related articles

Please take a look at the following related articles:

Discuss further techniques in comments!

Please feel free to suggest further ideas, approaches and coding solutions in the comments to this post. The second part of our research will be published soon: stay tuned via RSS Subscribe to our RSS-feed and Twitter Follow us on Twitter.

About the author

Dmitry Fadeyev is the founder of the Usability Post blog, where you can read his thoughts on good design and usability.


Your rating: None

It might not look all that impressive to some of you, but to those who know better, this could be an awesome thing to have in any designer’s grab bag of goodies. Check out Gridr Buildrrr.

Your rating: None

Fuji’s Instax Mini camera creates credit card-size photos in a camera that comes in pink, blue, and white.
Polariod may be gone but Fuji has produced the Instax with permission from Polaroid. Though Fuji’s Instax Mini is no Polaroid, it is a great alternative for photographers who like instant gratification. The 5-inch by 5-inch by 2.5-inch camera sells for US$130, and film is about US$1 a photo.

Operation is easy - simply check the LED exposure indicator and press the shutter, a credit card-size instant color photo is ready in minutes - sharp and clear on Fuji instax film. Auto focus; auto flash; built-in lens cover; instructions included.

Extract from Urban Outfitters


Sponsored By: >Think>Draw>Make>

Your rating: None

Adobe Illustrator is the industry-standard when it comes to the creation of vector graphics. Though a very robust tool - the learning curve involved in mastering it can be high. Thankfully, there are abundant resources on the web that allows you to “learn by doing”.

Video tutorials (in general) enable the learner to witness – step-by-step – how a particular technique works. We often learn best by seeing how things are done and following along with the instructor (much like in a classroom environment).

In this article, we present to you 50 excellent Adobe Illustrator video tutorials. We’ve broken down the video tutorials into several categories that include creating objects, effects, and general tips and techniques.

So fire up Illustrator, watch a few of these videos, and hopefully you will have learned a tip or two by the end of your adventures into these Illustrator video tutorials!

General Tips and Techniques

Patterns and Shapes in Adobe Illustrator
This tutorial is based on an advertisement that uses patterns and shapes to create a unique design effect.

Importing and Manipulating Images in Illustrator - screen shot.

Importing and Manipulating Images in Illustrator
Learn the concepts of importing and manipulating external images in Illustrator.

Importing and Manipulating Images in Illustrator - screen shot.

Creative Masking Techniques
See a method for using complex masking techniques in Illustrator.

Creative Masking Techniques - screen shot.

Making a Custom Art Brush
Create your own custom Art Brush that you can re-use in multiple projects via this Illustrator video tutorial.

Making a Custom Art Brush - screen shot.

Using Kuler with Illustrator
This tutorial walks you through the process of interfacing with kuler (a community website for sharing color themes) via Illustrator so that you can easily select your color pallete.

Using Kuler with Illustrator - screen shot.

Live Color in Illustrator CS3
Learn about the Live Color option in Illustrator.

Live Color in Illustrator CS3 - screen shot.

Complete Guide to the Pen Tool
Master the Pen tool (one of the most used and complex features in Illustrator) in this video tutorial.

Complete Guide to the Pen Tool - screen shot.

All about Masking
Learn the concepts of masking in Illustrator in this video tutorial.

All about Masking - screen shot.

Adobe Illustrator Masking Tutorial
This short and sweet tutorial will cover the basics of masking in Adobe Illustrator.

Adobe Illustrator Masking Tutorial - screen shot.

Opacity Mask
You’ll learn about a technique for performing opacity masking (usually done in Photoshop) in Adobe Illustrator creative selecting with the Marquee tool.

Opacity Mask - screen shot.

Clipping Masks
Learn about clipping masks to streamline the creation of complex objects in this excellent Illustrator video tutorial.

Clipping Masks - screen shot.

Vespa Speed Trace
In this video, you’ll see a method for speed tracing a stock image (in this particular case, a Vespa scooter is used as the reference image).

Vespa Speed Trace - screen shot.

Offset Path tool
Master the Offset Path tool by following along this video tutorial.

Offset Path tool - screen shot.

Using the Paintbrush Tool
You’ll discover the powers of the Paintbrush tool in Illustrator in this excellent video tutorial.

Using the Paintbrush Tool - screen shot.

Working with Layers and Groups
Understanding layers and groups in Illustrator (which is slightly different in Photoshop) can be a daunting task – but not so if you watch this video tutorial.

Working with Layers and Groups - screen shot.

Working with Gradients and Blends
Learn the concepts and techniques behind utilizing gradients and blends to add graduated colors onto your Illustrator objects.

Working with Gradients and Blends - screen shot.

Select Objects Faster and More Efficiently
Maximize your workflow by learning how to select different objects on your Illustrator document in this video tutorial.

Select Objects Faster and More Efficiently - screen shot.

Creating Objects

Creating an iPod
In this video tutorial, you’ll see the process involved in rendering an iPod Nano from scratch using the 3D Effect tool (among other tools and techniques) in Illustrator.

Creating an iPod screen shot.

Creating 3D Shapes in Illustrator
Utilize the Revolve tool in Illustrator to create a great-looking 3-dimensional shape.

Create a 3D Background Using the Revolve Tool - screen shot.

Draw Fluffy Clouds
Create an illustrated cloud using the Pencil tool in Adobe Illustrator via this video tutorial.

Draw Fluffy Clouds screen shot.

How to Draw an Eye
In this video tutorial, you’ll learn the process of drawing an eye in Illustrator.

How to Draw an Eye screen shot.

Drawing Face
Witness a process for creating a vectorized face using a reference photo.

Drawing Face - screen shot.

Create a Gear
You’ll witness the creation of a complex gear object in this Illustrator video tutorial that involves a variety of techniques and tools like the Pathfinder tool.

Create a Gear screen shot.

Drawing a Gel Progress Bar
Learn how to create a stylish progress bar (inspired by the iPod progress bar) using a combination of techniques including the use of gradients and masking techniques.

Drawing a Gel Progress Bar screen shot.

Create Swirling Rainbows with Ease
Create the popular swirling rainbows graphic in Adobe Illustrator by following along this video tutorial.

Make a Fully Vector Metal Help Icon/Button screen shot.

Make a Fully Vector Metal Help Icon/Button
Make a metallic, shiny vector (and thus flexible in scale) icon via this Illustrator video tutorial.

Create Swirling Rainbows with Ease screen shot.

3D Brochure
Add a bit of flare onto your print design mock-ups by making them 3-dimensional. This video tutorial shows you how to do it with a brochure, but it can easily be adapted to CD labels, software boxes, and other print design objects.

3D Brochure screen shot.

Learn how to render a watermelon in Adobe Illustrator via this excellent video tutorial.

Watermelon screen shot.

Vector Drawing: “Dog”
In this fast-paced video, you’ll witness the steps involved in drawing a dog in Illustrator.

 "Dog" screen shot.

Creating Vector Swirls and Swooshes
This tutorial shows you how to create trendy swirls and swooshes using the Pen tool.

Creating Vector Swirls and Swooshes screen shot.

Roundtrip Logo from Illustrator to Photoshop
Find out the methods of an effective workflow that utilizes the power of Illustrator and Photoshop to create a grungy logo design.

Roundtrip Logo from Illustrator to Photoshop screen shot.

Batman Logo
Create the Batman logo via this tutorial that shows you the true powers of the Illustrator’s Pathfinder tool.

Batman Logo screen shot.

Feynman Diagrams
Create a Feynman diagram in Illustrator for presentations and reports.

Feynman Diagrams screen shot.

Create 3D Pyramid
This Illustrator video tutorial will walk you through the creation of a 3-dimensional pyramid.

Create 3D Pyramid - screen shot.

Drawing a Nice Vector Golden Badge Award
In this video tutorial, you’ll be using a variety of Illustrator techniques including masking and working with the Pen tool to create a gold badge.

Drawing a Nice Vector Golden Badge Award screen shot.

Vectoring an EyeBall
Learn to vectorize a human eye using a reference photo.

Vectoring an EyeBall - screen shot.

Creating Seamless Pattern
You’ll be creating a seamless floral pattern in this Illustrator video tutorial.

Creating Seamless Pattern - screen shot.

Tribal Sun Vector
Create a tribal Sun illustration by following along this excellent video tutorial.

Tribal Sun Vector - screen shot.


Simple Silhouettes in Illustrator CS4
Apply silhouettes onto objects by utilizing the Gradient Mesh tool.

Simple Silhouettes in Illustrator CS4 - screen shot.

Create Wood Effect Using Gradients
Create a wood texture in Illustrator by using the Gradients tool.

Create Wood Effect Using Gradients - screen shot.

Creating a “Firebrush” Logo
Make a fiery, fierce abstract logo design in Adobe Illustrator video tutorial.

Creating a "Firebrush" Logo - screen shot.

Brushed Metal Effect
Give objects scalable “brushed metal” (also known as “brushed aluminum”) texture by following along this Illustrator video tutorial.

Brushed Metal Effect - screen shot.

Vector Grunge Patterns and Distressed Text
Give text a distressed/worn effect via this Illustrator video tutorial.

Vector Grunge Patterns and Distressed Text - screen snot.

Creating Glass, Shining, Reflective, and Vector Text
Go Web 2.0 in Illustrator by creating this sleek, shiny, glossy text effect.

Creating Glass, Shining, Reflective, and Vector Text - screen shot.

Creating Comic Book Style Text
Give your text a comic book look-and-feel by following along this video tutorial.

Creating Comic Book Style Text - screen shot.

Creative Background Effects
In this video tutorial, you’ll learn how to create abstract backgrounds/textures in Illustrator.

Creative Background Effects - screen shot.

Abstract Vector Background
Create a stylish vector background by viewing this excellent Illustrator video tutorial.

Abstract Vector Background - screen shot.

Adding Texture
You’ll learn how to give your vector objects some texture in this video tutorial.

Adding Texture - screen shot.

Create Intricate Patterns
Learn to create complex patterns in Illustrator via this detailed and highly-involved video tutorial.

Create Intricate Patterns - screen shot.

Creating Vectorized Shining and Sparkling Heart Artwork and Icons
Make a vector heart piece by following along this wonderful Illustrator video tutorial.

Creating Vectorized Shining and Sparkling Heart Artwork and Icons - screen shot.

Related content

About the Author

Jacob Gube is a Web developer/designer and author of Six Revisions, a blog on Web development and design. If you want to connect with the author, you can follow him on Twitter.

Your rating: None

When a page.tpl.php file is generated all of the variables are populated with content. This includes all the regions, the css and javascript, and everything. Some of these are never used in some themes (e.g., $mission) and some are often rebuilt later like $styles and $scripts.

I propose we lazy load the content in these variables when the variables are called the first time which will typically be in the template files. Since lazy loading is a feature of objects it will mean these variables will be attached to objects.

So, in drupal 6 you theme would have:
  print $styles;
  print $scripts;

The proposed change would make these:
  print $template_object->styles;
  print $tempalte_object->scripts;

The name $template_object is just a working name.

The reason for this desired change is performance and scalability. For example, currently (in D5 and D6) all the regions are loaded for a page.tpl.php file. So, if you have a lot of regions they are loaded every time. If we move to lazy loading the variables that means the regions will be lazy loaded. Only when one is printed in a page.tpl.php file will it be loaded.

So, you could have 20 regions on your site. Stick 5 in your page.tpl.php file, put a different 5 in your page-front.tpl.php file, stick a couple in your node.tpl.php file (I use this to stick a related content block between my node and comments on a blog), and stick them where you please. Then, the regions content is only loaded if the variable is printed in a template file.

On top of that, any variables provided in drupal that you don't use won't cause a performance hit against your page. They will never be generated if you don't use them.

Thoughts? Suggestions?

Unofficial Drupal Roadmap

Your rating: None

By Steven Snell

The start of a new year is often a time of reflection on the past year, both personally and professionally, as well as a time to look forward to the year ahead. With that in mind, we thought it would be interesting to do a New Year’s group interview with a number of top designers and developers. We put together a big list of questions and posed two in particular to each of the participants.

We think you’ll enjoy the insight this panel provides into 2008 and 2009. There’s a wide variety of topics covered, including favorite resources, trend predictions, business lessons learned, upcoming events for 2009 and more. Let’s take a look at a large group interview with top web designers that takes a look back on 2008 and presents some predictions for the year 2009.

You may want to take a look at the other interview posts we’ve published earlier in our magazine:

  • 35 Designers × 5 Questions
    35 designers. 5 questions. 5 precise answers. Result: 175 professional suggestions, tips and ideas from some of the best web-developers all around the world.
  • 50 Designers × 6 Questions
    Even more insights from the best designers and web-developers across the globe.

Jonathan Snook

Jonathan Snook

Do you have any upcoming projects planned for 2009 that you’re particularly looking forward to?
I always look forward to conferences. It’s such a great way to hang out with talented, friendly people. SXSW is at the top of my list, even if I’m not speaking. With the folks from Sidebar Creative, we’ve got plans for more workshops, especially after the success of our first event, and we’re looking to roll out some new things next year. 2009 is shaping up to be a good year.

Do you have any thoughts or predictions about design trends that may become more popular or significant in 2009?
There’s been a maturation of design, with great usage of illustration and playing with the illusion of light. However, it’s been mostly decorative backgrounds and headers. There hasn’t been much push outside the generic two- or three-column layouts. Thankfully, we’ve seen a smattering of great art direction in 2008, and I look forward to seeing more of that in 2009. Jason Santa Maria’s, for example, is a site that I visit outside of my RSS reader every time because it’s unique. It captures my attention, and the content is well written and fantastically integrated.

Simon Collison of Erskine Design

Simon Collison

Are there any design trends or popular styles from 2008 that you like more than others?
I’m not a big believer in “trends” in Web design as such. For me, in Web design the patterns are rarely widespread enough to be what we could call “trends.” For example, it is easy to see pockets of ideas and copyists and approaches gaining momentum, but look somewhere else and the tide is flowing in another direction. Sure, crap stuff like Web 2.0-esque shiny buttons and reflections, or the great drop-shadow plague, or something good like “Wicked Worn,” they were real trends. What did 2008 give us that equals those?

There is one positive trend I like. More and more people are designing for the subject and audience, regardless of what is perceived as “trendy” — minimal, if minimal is required, or vibrant, if vibrant is required, etc. Now that is a trend I’d like to see spreading far and wide: relevance! I hated that world we lived in where, for example, regardless of audience, a Web app would always have the same visual bells and whistles. Crap. Oh, and as someone who always looks to try to take risks with a design, I’m pleased to see plenty of others still doing the same. More risk-taking in 2009, people!

Have you followed the work of any particular designers during the past year?
I pay attention to every single thing Mark Boulton puts out because he is consistently inventive, accurate and well-researched. His transparent redesign for Drupal has been a real eye-opener into his process, too.

I have followed Garrett Dimon’s blog because he has publicly documented the design and build of Sifter. Everyone can learn plenty from Garrett.

Obvious one, but Jason Santa Maria killed it in 2008, especially with the art direction approach to his blog redesign, a technique we use a lot at Erskine and hope to see more of next year. Jason is quietly brilliant, a humble genius.

And (cheeky this) our own incredibly talented superstar Greg Wood. He teaches me new ideas every day and is more talented than he realizes. I advise others to study his code, his ideas, his art direction.

Jason Santa Maria of Happy Cog Studios

Jason Santa Maria

What are some of your favorite or most frequently used fonts from 2008?
Soho and Soho Gothic from Monotype are just gorgeous and versatile families. And even though it’s becoming too much of a go-to, I use Gotham often when in a pinch for a simple sans serif.

What have been a few of your favorite sources of design inspiration, online or off, throughout the past year?
I’ve really gotten into FFFFOUND! this year. I subscribe to their update feed and love seeing all the random photos and bits of design that come down the tubes. Beyond that, getting away from my computer and taking photos always serves as a good source of inspiration for me.

Veerle Pieters

Veerle Pieters

What have been some of your favorite sources of design inspiration, online or off, during the past year?
When I look online, I mostly browse Flickr or FFFFOUND! or del.icious. One of the best offline inspirations is a book called Geometric, by Kapitza, which I recently bought. It really is a beautiful source of inspiration if you are looking for geometric patterns.

Do you have any design competitions planned for 2009 (like the “What is Graphic Design?” competition from 2008)?
Yes, I am planning on doing another one but haven’t decided on a date yet because it takes much planning up front. This one will be the only one that I will be doing because I believe in quality over quantity.

Darren Hoyt of Category 4

Darren Hoyt

Are there any design-related products, software or accessories on your wish list for 2009?
I’m looking forward to the release of ExpressionEngine 2.0. According to the previews, the way it handles themes should make production easier for us front-end designers. There’s also a pretty major control panel overhaul, which should make it an easier sell to novice clients.

I’m also excited about the official release of FontCase. Over the years, I’ve used some pretty hacky methods of organizing and labeling key fonts, but FontCase beta has solved a lot of those problems already.

What have been your favorite sources of design inspiration, online or off, during the past year?
Mainly books. The first was Michael Beirut’s 79 Short Essays on Design, which looks at design in the broadest sense, rather than getting specific about techniques or trends. I liked the big-picture perspective on how design impacts our lives in ways we don’t realize. The writing itself is really entertaining.

The second is Book One, by Chip Kidd, a huge anthology of his famous book covers. He has a way of marrying strange imagery and playing with your expectations, something commercial Web design doesn’t always allow for. Studying his work is great when you’re stumped for ideas.

David Airey

David Airey

Can you tell us something that you’d like to improve on as a designer in 2009?
I want to be more humble and to concentrate on my own faults rather than judging others. When you’re overly concerned about your view of colleagues and acquaintances, you lose focus and productivity. I’m far from perfect, so it’s important to look closer to home.

Are there any designers in particular who you’ve enjoyed following in 2008?
Eric Karjaluoto, through his blog, ideasonideas. Eric doesn’t publish blog articles very often, but when he does, they’re a sincere, insightful, personal look at the bigger picture, and I believe he’s a great asset to the design community.

Jacob Gube of Six Revisions

Jacob Gube

What frameworks were your favorite to use in your development during 2008?
My favorite JavaScript framework is MooTools with jQuery being a close second. The choice depends on who I’m working for, who I’m working with and what the requirements are.

Server-side, I’m a PHP guy and Zend is my favorite, but I want to mention that you can’t go wrong picking other top PHP frameworks out there, such as CakePHP and CodeIgniter.

For CSS frameworks, I believe in rolling your own framework if you really need to, because I find that the overhead in size and the usual cost of lower semantics in using CSS frameworks don’t justify the benefit, seeing as CSS (with the CSS2 specs at least) is a very simple markup language that really isn’t as verbose or complicated as client- or server-side scripting.

Do you have a favorite design- or development-related book from 2008?
This year, I read a lot of development books mostly to get familiar with emerging technologies like Flex 3 and AIR, as well as to upgrade my outdated ActionScript 2 knowledge to ActionScript 3. Learning Flex 3 is a superb primer.

For design, there is a lot of great content from independent bloggers (such as on the Usability Post blog) who produce great design- and UX-related articles, and unfortunately I didn’t find any ground-breaking books to read like Designing Web Usability (from 1999) and Don’t Make Me Think (from 2005). One book that I’d rank close to the caliber of the two previous books I mentioned is Web Form Design, by Luke Wroblewski, from Rosenfeld Media. Rosenfeld Media has some nice UX books in store for us next year, and I’m excited to get my hands on those. Additionally, I still think that for beginning developers who are getting into more intermediate-level, standards-based Web design, I would suggest CSS Mastery by Andy Budd and Designing with Web Standards by Jeffrey Zeldman.

Nick La of N. Design Studio, Web Designer Wall and Best Web Gallery

Nick La

Do you have any favorite designers whose work you enjoyed following in 2008?
I particularly like the series of websites (fall, spring, summer, and winter) designed by

What has been your favorite design trend or style from 2008?
My favorite design style is the collage and scrapbooking effect (see 2008 Design Trends at Web Designer Wall).

Chris Coyier of CSS-Tricks

Chris Coyier

What is your favorite CSS technique that you learned in 2008?
My favorite CSS technique from this past year isn’t a CSS technique alone, but rather learning how to control CSS through JavaScript, specifically jQuery. I already know CSS quite well, and since jQuery uses the same selectors as CSS, learning it wasn’t very difficult. Now I am able to integrate behaviors in websites in ways that were out of my grasp before. I can think “When I click this element, I want this other element’s CSS to change so that it is twice as big,” and I can make that happen quickly and easily. The power of that is incredible to me still.

Who are some of your favorite designers to follow on Twitter?
I love being able to follow all these incredible designers whose work I greatly admire: @jasonsantamaria, @mezzoblue, @collis, @vpieters, @snookca, @chrisspooner, @jessebc, @elliotjaystocks.

But even more, I like following my actual friends and people I enjoy conversing with. I am an equal opportunity follower. If you Tweet interesting things, I want to follow you!

Chris Spooner

Chris Spooner

Can you tell us a business lesson you learned from starting full-time freelancing in 2008?
One of the things that has surprised me the most is the obscure range of situations that project leads are generated from. When I look back at how my clients found me, I’m presented with a huge range of sources, which include the usual search engine phrases of “graphic designer + location,” but also some more generic and unusual terms that often bring up a related tutorial or article from my blog. Other sources of inquiry have been through seeing an example of my work on Web design galleries, discovering me through an online interview on another design blog and sometimes the subscribers of my blog themselves.

The lesson here is to consider every possibility of exposure and make the most of it. You never know what might come as a result of it.

Is there a particular product, software or accessory that is on your wish list for 2009?
I’d quite like to join the Apple fan club and swap all my computing kit for Mac products. An iMac, Macbook Pro and iPhone would look pretty nice sitting on my office desk! Unfortunately, I went and bought my Windows-specific Adobe software not so long ago, based on the idea that I already had a powerful computer setup. While Windows does the job without too many problems, I remember the overall niceness of OS X when I used to use an iMac at a previous job.

My girlfriend and I are looking to move home in the near future, so I think that would be the perfect opportunity to kit out a brand new office area with a shiny new kit, along with Adobe’s new CS4. I better get saving.

Alen Grakalic of CSS Globe and Templatica

Alen grakalic

What were a few of your favorite website designs from 2008?
There were many beautifully sites this year. Not actually sure if all were designed this year, but that’s when I first saw them. To name a few:

13 Creative

13 Creative

Ali Felski

Ali Felski

Viget Labs

Viget Labs



Carrot Creative

Carrot Creative

Alexandru Cohaniuc

Alex Cohaniuc

I loved this site Tomas Pojeta.

Tomas Pojeta

Another one of the sites I was absolutely amazed by was actually a Flash site: Level 2 Design.

Level 2 Design

Can you tell us something you learned during the past year that has helped you in running your business?
The one thing 2008 taught me was actually something I already knew but somehow keep forgetting: if you are a freelancer, never rely on a single source of income. No matter how cool the deal sounds, don’t work exclusively for anyone.

Randa Clay

Randa Clay

What were some of your favorite design trends or styles from the past year?
I love the vintage and retro look. The illustration style and color schemes are really appealing to me.

Do you have any new year’s resolutions for your business in 2009?
I’m not a big one on new year’s resolutions, but my continuing overriding goals are always to exceed client expectations, and to be one of the top developers of custom WordPress themes.

Jon Phillips of Spyre Studios, and founder of Freelance Folder

Jon Phillips

What are a few of your favorite tools or resources for freelancers that you used in 2008?
I used different tools in 2008 (and in previous years), but If I had to choose, I’d pick three: WordPress, because of its simplicity, ease of use, flexibility and great support from the community; Freshbooks Invoicing because they make it so damn easy to keep track of everything, and I also find the iPod Touch app to be very useful; and last but not least, I’d pick Adobe FireWorks, simply because most of what I do doesn’t always require that I open Photoshop. Of course, I used many more tools, but those are the ones I used almost every single day in 2008.

What has been your favorite music to listen to while designing during the past year?
Being a musician myself, I could say I’ve been listening to my band (and I have), but usually when I work on clients’ projects and designs I’ll listen to artists like Fiona Apple, John Mayer, Radiohead, Muse, Guthrie Govan, Tori Amos, and when I need something a bit “stronger,” I’ll listen to Slipknot, Tool, 36 Crazy Fists, Avenged Sevenfold, Meshuggah, Soilwork, etc. It really depends on my mood and what I’m currently working on. Let’s just say I like the sound of an acoustic guitar as much as distortion. :)

Jacob Cass of Just Creative Design

Jacob Cass

What was your favorite design course that you took in 2008?
I took eight design-related courses in 2008 while studying Visual Communication at Newcastle University, Australia. These were: Visual Communication Technology II, Animation and Multimedia, Advertising for Design, Graphic Design, Media Production, Visual Communication Imaging, Typography and New Media. My favorite and most hated course would have to be Typography. It was the most challenging and eye-opening course I have done on design, and since taking it I have realized that so much of design and communication is purely based on typography. I actually wish to do another course in advanced typography, however my uni does not offer it (yet).

What aspects of your work would you like to improve on in 2009?
Glad you asked me this. It may lead to some new year’s resolutions. I would like to learn more about complex illustration in Illustrator, and I also want to learn some new techniques in Photoshop. I am also trying to improve my typography and further my skills in logo design. But in saying all this, this does not mean I will not try to improve on any other aspect of design. As a designer, you have to continually improve and learn new things to keep up to date in the industry.

Brian Gardner of Revolution Two

Brian Gardner

Can you tell us something that you learned that helped you improve your business in 2008?
The one thing I learned this year is how powerful a community can be. In October, I decided to take Revolution and open-source it, and I was amazed at how many supportive users there were. More importantly, users have generously given their time on the support forum to help others. Building a product that people believe in can go a long way.

Are there any products, software apps or accessories on your wish list for 2009?
Truthfully, the only thing I want is a 3G iPhone, as my current one runs just fine, so need to go out and buy another one!

Elliot Jay Stocks

Elliott Jay Stocks

Can you share with us a business lesson you learned from going out on your own in 2008?
Great question! There are two main things: the first is that I massively underestimated the time it would take to do admin stuff when I first started out. I don’t have too much paperwork to do, but things like reshuffling the calendar to fit in projects, liaising with clients, keeping track of expenses, etc., all that stuff takes a lot of time, and I was totally unprepared for it to begin with.

The second thing is that you should only take on projects you care deeply about and that are going to keep you interested. I did a couple of projects in 2008 that I really didn’t enjoy by the time they came to a close, because I’d lost interest in them. And that only happened because, deep down, I was never really interested in them in the first place. Turning away work like that because of a personal point of view can be a financial risk, but it’s something I’ve started to do, because the only way I’m ever going to produce decent work is to have a passion for the projects I’m involved with.

Do you have any upcoming projects for 2009 that you’re especially looking forward to?
I have quite a few, actually! :) In January I’m going to take a break from client work and pick up recording of my new album (which I meant to do in December, before deadlines got shifted). So that’ll be great fun to do, and I’m really excited about releasing it. It’ll also be nice to have a complete break from designing and writing for a while so that I can come back refreshed.

The second thing is the next version of my personal website. I’ve been working on the redesign on and off for a few months now, but it hasn’t really gone anywhere. I’m hoping that I can dedicate a couple of weeks of solid work in early 2009 to get that nailed.

I’m also really looking forward to a huge number of speaking events and the traveling that goes with them. I’ve got lots lined up for next year, including a few I’ve yet to announce. In January, I’m going to announce a very big one that I’m doing later in the year! :)

Jay Hilgert of Bittbox

Jay Hilgert

What are a few of your favorite or most frequently used fonts of 2008?
Stainless, Dispatch, Myndraine, Kontrapunkt, Dirty Ames, Turbo Ripped, Immoral, Myriad Pro.

Are there any new graphic design techniques that you learned or developed in 2008 that stand out to you as being especially useful?
I’ve by no means mastered it yet, but I enjoyed learning about the gradient mesh tool technique in Illustrator. It immediately struck me as being useful in many ways, like for creating photo-realistic icons in 100% vector format, for example.

Fabio Sasso of Abduzeedo

Fabio Sasso

What have been some of your favorite products, software and accessories you have used in your work in the past year?
My new MacBook Pro and my iPhone 3G are definitely my favorite products. But in terms of software, I think the new Pixelmator was a great surprise.

What are your favorite design trends or styles from 2008?
For me, one of the coolest design trends in 2008 was mixing modern lighting effects with an ’80s style.

Noura Yehia of Noupe and DevSnippets

Noura Yehia

What were some of your favorite design-related online resources that you came across in 2008?
I read and skim a lot of design and graphics blogs, but there’s only one blog I read on an almost daily basis and that’s Smashing Magazine, which I do because I think every single post is a piece of work. Besides that, I also often check in to Web Designer Wall, NETTUTS, Six Revisions and

What has been your favorite online design community during 2008?
There are so many great design communities out there to keep any designer in a creative mood to work. I would definitely start with DeviantArt, having such a huge collection of well-crafted artwork all in one place. I also quite like checking Behance Network, Computerlove, Design Float and the Popular Bookmarks on Delicious, which send me to more places

Steve Smith of Ordered List

Steve Smith

What have been some of your favorite sources of design inspiration, online or off, throughout the past year?
Online, I find a lot of my design inspiration these days from screenshots posted to Flickr by my friends. Patrick Haney posted a set on Design Inspiration that’s a great look-through if you need a couple ideas for layout or colors.

Offline, I’m drawing a lot of inspiration from architecture. Architects have to think in multiple dimensions, something we Web designers don’t have to worry about. But I think the metaphor is valid, in that we need to think not just of the design aesthetics, but of the dimensions of usability, and accessibility as well. The website needs to look good from every angle.

Are there any current design trends that you would like to go away in 2009?
I’d have to say that one of the things I think is becoming a little cliché is the hand-written note, or the post-it note, or the paper-clipped scrap-paper effect. Don’t get me wrong, I’m sure this effect has its place. I think it just happens a lot more than it needs to these days. That said, a website should meet the needs of the project, not be designed to current fads in a vacuum.

Related articles

You may want to take a look at the other interview posts we’ve published earlier in our magazine:

  • 35 Designers × 5 Questions
    35 designers. 5 questions. 5 precise answers. Result: 175 professional suggestions, tips and ideas from some of the best web-developers all around the world.
  • 50 Designers × 6 Questions
    Even more insights from the best designers and web-developers across the globe.

About the author

Steven Snell is a Web designer and freelance blogger who can be found on his own blogs: Vandelay Website Design and


Your rating: None

I've been trying to use Senocular's duplicateDisplayObject() for a while and I've experienced a lot of crashes of specific versions of Flash player and also unsuccessful results when used within an AIR application. After playing around quite a bit with all this, the best way I've found is to avoid duplicating the instance but duplicate the element on the domain/library instead.

I'm pasting here a snippet of how it works:

 * node.@src example: file:///home/[username]/Desktop/[project]/files/assets/home/ball.swf
 * Cache.get() its basically a Dictionary where I store all the externally loaded files using the url as keys

var mc : DisplayObject = Cache.get(node.@src);

var pathArray : Array = String(node.@src).split("/");
var filename : String = String(pathArray[pathArray.length-1]).split(".")[0];  

if (mc.loaderInfo.applicationDomain.hasDefinition(filename))
	mc = new (mc.loaderInfo.applicationDomain.getDefinition(filename))();

mc is now a clean duplication (as far as I know) of the original class. In my setup I expect the element that I want to be duplicated be named with the exact name as its container's filename (.swf), which is perfect for FlexSDK compiled stuff, but need some teaching for Flash IDE.

This is, of course, compatible with any kind of Object (not only MovieClips/Sprites/DisplayObjects)...

Your rating: None
Syndicate content