The Best of Business in June: 10 Posts from FreelanceSwitch & WorkAwesome

Every month, we’ll be rounding up the previous month’s best posts from the business network of blogs and directing you to them. Here’s the best of business in June, including articles from WorkAwesome and FreelanceSwitch. We look forward to adding the Netsetter to our round-ups after its upcoming relaunch!

FreelanceSwitch

15 Inspiring Home Offices

Patrik Larson takes us for a tour through 15 visually stunning home offices. Are they effective? You decide.

Freelancers from Hell — The Flip Side of Clients from Hell

You know all about clients from hell. What many freelancers don’t realize is that some of us can be just as horrific. James Chartrand discusses.

The 10 Best Web Apps for Freelancers

There are thousands of web apps designed for freelancers and small businesses. In this article we narrow it down to ten of the greatest options out there.

5 Reasons You May Not Be Ready to Student Freelance

Amber Leigh Turner, FreelanceSwitch’s resident student freelancer, talks about five things to get in order before you decide to mix study and freelancing.

5 Ways to Fire a Client

There are just some clients who you no longer want to work with. It could be that the client in question is difficult to work with or it could be more a matter that you’ve moved on from the type of work you’ve been doing for that client. Whether you’ve only done a little work for the client or you’ve been together a long time, it’s never easy to fire a client.

WorkAwesome

It’s Okay to Stare

One of WorkAwesome’s newest contributors, Coe Douglas, discusses how staring off into space can actually help you get ideas flowing and, ultimately, seeing things through to completion better than simply plowing through without stopping.

5 Incredibly Useful Gmail Features

Gmail is one of the most popular email services going these days. But many of us have only scratched the surface of what it is capable of – and how it can help us push through what is generally our biggest “time suck”. Susan Johnston explores 5 of the many features Gmail has to offer.

Procrastination Hack: Aim for Nonzero

Procrastination is often not only misguided, but misunderstood. Trying to do too much can lead to procrastination just as easily as actually doing too little. Aiming for “working in small chunks” is one of the suggestions André Kibbe offers in this piece on hacking procrastination.

7 Power Tips For Productive RSS News Feed Reading

While keeping up with the latest in your RSS feed reader is a way of staying informed, it can quickly deteriorate into a huge time waster. Abhijeet Mukherjee delivers some tips to keep your feed reading from becoming a liability instead of an asset.

11 Productivity Tools for Road Warriors and Telecommuters

Just because you’re away from the office doesn’t mean you need to be away from the things that keep you productive. Carl Natale gives an overview of some tools to have in your arsenal to make sure you’re making progress no matter where you are.

5 Useful Tools for Productive Online Writing

Creating content for the web isn’t easy, especially when there are so many tempting distractions. Hence it is important that a web writer is familiar with some tools of the trade that help in enhancing his productivity as a writer.

Following is a list of 5 tools which I think should be present in every writer’s toolbox. With the exception of the last one, they’re particularly suited for online writing

1. Dark Room for Windows and WriteRoom for Mac

Both Dark Room and WriteRoom are same tools, except that the former is for Windows and latter for Macs. They are probably the best distraction free writing software available.

2. Windows Live Writer

Windows Live Writer is undoubtedly the best desktop blogging client available. None of the other such tools, even its Mac counterparts, come close.

3. Evernote

Writing web content generally involves a good bit of research. Evernote helps in capturing and organizing notes, images, links etc so that you can quickly access them when you are doing the actual writing.

4. Freemind

Freemind is a free mind mapping software to help you generate ideas and document your thought process.

5. Pen and Paper

It’s surprising how underrated pen and paper have become in this era of laptops, cellphones and iPad. But when you are stuck with a thought, disconnecting from the computer and turning to these two tools could be the best bet to get your creative juices flowing.

EpicWin Combines an iPhone To-Do List with a Role Playing Game

Do you need a bit more motivation to get your daily tasks done?

Do you fantasize about role-playing while you do your household chores?

Does your real world keep you away from your virtual world?

Now you can bring them closer together, thanks to the brilliant folks at EpicWin.

EpicWin puts the adventure back into your life by providing you with an iPhone app that rewards you for completing your household chores; from washing the car, sending birthday cards, doing the dishes or going to the gym.  Gain experience points for doing your menial tasks, and maybe even find some loot.  Develop your character and stats based on the chores you complete, and if you’re lucky, your character might even develop into a CEO of Pain – or a Mage of Paperwork Mountain!

“Doing the laundry is an epic feat of stamina…”

EpicWin isn’t the first to try and merge a to-do list manager with a role playing game (RPG), and it’s not quite available yet.  If the hype about EpicWin has got you wondering why you aren’t getting experience points for doing your daily chores, you can check out Chore Wars or Booyah Society and then decide if EpicWin is truly an epic win once it finally arrives on an iPhone near you.

Declutter Your Desktop In 6 Steps

When was the last time you paid attention to your desktop? If you are someone like me who lives in his browser, the only time you see your desktop is when you restart the computer. After that, it’s all about the browser.

While you don’t visit your desktop often, most of you keep downloading stuff off of the web and saving it there. Also, the programs you install usually create a desktop shortcut automatically. The result is a messy desktop with icons, folders and files scattered all over. And it’s only later, when it takes 10 minutes to find the file you saved there, you realize that a disorganized desktop isn’t good for your productivity.

To help you get rid of this problem, I’ve offered six tried (yes, I myself implemented them) and tested steps.

1. Do You Need Icons?

I think even before you start organizing your desktop, you should ask this question to yourself: do you actually need icons there? Can’t it be squeaky clean? An empty desktop has its own advantages.

If you are a web junkie and hardly use desktop apps, then you could make use of the Windows 7 taskbar or the dock in Mac OSX to get to them. Windows 7 users could also “pin” programs to their start menu for quick access. I mean, just think about how many times you see your desktop on an average day. If it’s just once or twice, just delete all of the icons from the desktop. Simple.

2. Remove Unnecessary Program Shortcuts

Can’t delete all the icons at one go? Okay, let’s start off with the cleaning process. First, remove all the program shortcuts. And I mean “all.” As I mentioned, programs can be accessed through other means. There’s absolutely no need for them to be on the desktop.

Also, make sure that whenever you install an application, you uncheck the option which says that it’ll create a shortcut on the desktop.

3. Create Folders to Organize Stuff

After we are done with the program shortcuts, we are left with all sorts of files. Now, this would be time consuming. You need to create some folders and start moving the files to them. There might be already some folders there, so you’ll need to decide which one of them you’ll use and how many new ones you’ll need to create.

4. Use a Tool like Fences

You could also get a desktop management tool like Fences to get things in shape. Fences is for Windows. Here’s a guide that shows you how to use Fences to organize your desktop.

5. Use Application Launchers and Custom Toolbars

Application launchers like Launchy can significantly reduce the time taken to access programs, files and folders. I personally don’t use them though. The spikes in CPU usage when they update their search index was something I wanted to avoid. But there are workarounds to that, and there are people who love these apps. So you could try them out.

Windows users could also make use of the custom toolbars technique I mentioned in last week’s Awesome Links. That would help to reduce desktop clutter, too.

6. Get a Nice Wallpaper

Finally, when you are done cleaning and organizing, get an inspiring wallpaper that tempts you to check out your desktop every now and then. And if you are a WorkAwesome fan, here’s our very own desktop wallpaper set to make your desktop look like, well, a desktop!

Give these six steps a try  – you’ll notice a big difference in time saved.  If you have suggestions and other solutions, I’d love to hear them.

Lack of Employee Communication: Why Managers Can’t Listen

A good manager is understanding of setbacks and receptive to new ideas. Their job isn’t just about overseeing the work of others, it’s about removing roadblocks, rethinking problematic parts of the job, and most importantly, listening to their employees.

Although being “open to suggestions” is part of every good manager’s persona, many employees feel that they’re not being heard. This is often voiced as one of the most common work-related complaints of all time:

“My boss just doesn’t listen.”

While this may be true in some cases, the problem isn’t always that “the boss doesn’t listen,” frequently it can be that the employee doesn’t talk. A recent employee communication study based on the Cornell National Social Survey identified exactly what makes employees hold their tongue:

Many fear exactly what you’d expect; that speaking out about a work-related problem can have consequences that threaten their standing and job security. But a significant amount (over 25%) keep their mouth shut not because they fear retaliation, but because they’d rather just save their breath. In other words, no matter how valid their complaint may be, they just don’t think that anyone would listen or care.

As a result, employees don’t just avoid blowing the whistle on serious scandals; they also steer clear of smaller, easily resolvable problems, many of which would benefit both the individual and the group if addressed.

Clearly an environment that isn’t open to suggestions is missing many chances for improvement. But, whose fault is it that these opportunities aren’t being seized? Is it the manager who is not listening, or the employee who is not talking?

Before you think “my boss doesn’t listen,” make sure that you’ve given them the chance to hear you.

Are You Living for the Weekend?

Unmotivated at your day job?

Do you start planning your weekend long in advance?

Do you start thinking about what you’re going to do on the weekends as early as Monday morning?

We all need something to look forward to. But people all around us remind us to stay in the moment.  For example, how many times have you heard this?

“Live for today!”

Or this timeless classic:

“Enjoy each day because you never know if there will be a tomorrow.”

Well, it’s my conjecture that most of us, unless we are retired or really enjoy our jobs, live for the future. I am definitely guilty of this but I tend to think it’s a healthy practice. Having activities to look forward to is beneficial to a positive outlook on life. At least we aren’t depressed and feeling sorry for ourselves in what could possibly be a mundane job. Getting through the week is so much easier when we have fun times to look forward to.  While I’m not exactly “living for the weekend”, I make it a point to have something to look forward to and I’m happier for it.

How do you approach each day of your working life?

Adobe Camera RAW for Beginners: Adjustment Brush-Part 1

In this video tutorial we will introduce you to the Adjustments Brush and put it to work. This tool can really help to improve certain types of photo, and is great fun to experiment with. You can control exposure, brightness, contrast, saturation, clarity and even color in very specific areas of a photo.


Watch the Video


What Does it Do?

The Adjustment Brush allows you to make subtle or drastic adjustments to a localized area of your photo. Think of it like painting on top of your photo except you can undo anything you change.

Feather: This controls how soft your brush is. The more feather you have the more gradual the edges of your brush will fade out.

Flow: This is how much “paint” is coming out on each pass of the brush. The more you go over the same area the greater the effect added.

Density: Think of this like a maximum cap. Set this to the highest setting that you would like to opacity to get and it will go no higher no matter how many times you go over the same spot.

We’re using another picture from photographer Dusan Simonovic to show how we can add subtle light to the hair and face as well as remove some of the shadow under our model’s eyes.

By just using the exposure setting and different flow and feather sizes on the brush we can add some nice highlight areas to the photo.

A word of reminder – while the brush can be very fun to play around with, don’t go overboard. Too many or too drastic of an adjustment can make the photo look horrible. Take it easy and go light on the adjustments. You can always start off strong and pull back the effect if you feel that it’s gone too far!

100 Action Packed Concert & Gig Photographs

Concerts provide a rich atmosphere for any artist. The sights, the sounds, the people and the excitement-charged atmosphere all come together to create unforgettable experiences. Today we’ll discuss how you can effectively capture these events using your DSLR, and also take a look at 100 photos that you can use as inspiration for your own live concert shoots!


Hints & Tips For Shooting Live Concerts

So you’re going to a concert and hoping to get a few good shots? Think again. Shooting a live concert can be one of the most difficult tasks for a photographer. Poor vantage points, dark rooms, wildly varying lighting conditions, unpredictable facial expressions and constant motion all stack the odds against your favor.

The key here is to use all of these cons in your favor and turn them into pros. For instance, use poor lighting to capture amazing silhouettes, your cheap seat in the back to grab sweeping shots of the arena and the constant motion of the artists to experiment with intentional blur. Think about what you’re experiencing and how to translate that artistically into an image without necessarily being too literal.

flickr pic

Some general tips for shooting under these constraints include keeping your ISO high and your aperture open. This will help you pull in as much light as possible. Battling this is going to be your need to keep your shutter speed as quick as possible to capture the ever moving subjects on the stage without too much blurring. You’ll have to experiment a lot with different combinations to see what works best in your specific venue.

Depending on where you’ll be sitting, you’ll definitely want to pack a lens with a hefty zoom and preferably one that will allow a fairly wide open aperture (just beware of a shallow DOF). If you can afford it, a 70-200mm f/2.8 should work brilliantly.

If there’s a light show wreaking havoc on your settings, consider shooting in AV so that the camera quickly adjusts the shutter speed based on its own readings. One last trick that you’ll see quite a bit from dark shoots: if you find that your images have too much color noise from cranking up your ISO, try converting them to black and white. What appears ugly and accidental in a color shot can often appear classy and deliberate in black and white.

Bottom line, just remember that it’s going to be extremely difficult to get anything amazing, even if you don’t normally have trouble producing stunning shots. Don’t expect to figure it all out right away or to walk out with hundreds of professional grade shots. Even many of the photos below are great in composition while suffering from noise or lighting issues (or vice versa). Try to have fun experimenting and learning about how your camera resounds to the environment.

Need some more advice? Here are a few great places to start:


100 Live Show and Concert Shots

AC DC Concert Stage (Montreal) – Colorful Lights

flickr pic

Coldplay Concert Stage (Osheaga 2009) with Fireworks & Butterflies

flickr pic

Bryan Adams Concert Stage

flickr pic

KISS Concert in Montreal – Kiss Alive 35 Tour

flickr pic

Van Halen Concert – Remote Controlled Helium Blimp

flickr pic

Beyonce Concert – BBC TVC – London

flickr pic

Franz Ferdinand Live Concert @AB Brussels Tour Gig-68

flickr pic

Beyoncé Concert

flickr pic

Britney Spears Concert – Sparks Falling on Stage

flickr pic

Glee- (Choir Concert Weekend, 05-06/02/2006)

flickr pic

Nazippé

flickr pic

Hands in the air – in concert

flickr pic

in Concert – blue

flickr pic

PJ Harvey

flickr pic

U2 – Croke Park – Dublin – 27 July 2009

flickr pic

Wygraj Sukces 2007 – Fram #1

flickr pic

To Excel and Ascend

flickr pic

Harmonica Hands

flickr pic

Sing it

flickr pic

guitar hero

flickr pic

The Flaming Lips Rock Austin @ SXSW

flickr pic

Unity in Diversity

flickr pic

Beautyproof

flickr pic

[Paper]tiger Jams {Explored}

flickr pic

Telefon Tel Aviv

flickr pic

Dir en grey

flickr pic

hives_01

flickr pic

Beastie Boys

flickr pic

Regina Spektor at Stubbs 2007–a black and white study

flickr pic

The Jazz Singer

flickr pic

Worship During Vertical Window’s Set

flickr pic

pipettes_04

flickr pic

Nx Zero

flickr pic

The Police Dress Rehersal – Vancouver

flickr pic

Arms Wide

flickr pic

david gilmour munchen 29/7/2006. 36 (B&W)

flickr pic

Anthony Green (Circa Survive)

flickr pic

placebo_03

flickr pic

26th 566

flickr pic

Charlotte Cooper of the Subways

flickr pic

U2 5/14/05 Philadelphia- City of Blinding Lights

flickr pic

Jonsi in Action

flickr pic

Chhom Nimol

flickr pic

Teemu Tuominen

flickr pic

Goggi, Popplagio

flickr pic

Vive La Fete @ Dour Festival 2009

flickr pic

Ra Ra Riot

flickr pic

siouxsie and the banshees_02

flickr pic

sonic youth_01

flickr pic

I’m no photographer…

flickr pic

Bloc Party @ The Concourse in San Francisco and cameras

flickr pic

taking back sunday_01

flickr pic

Antennen 2 (Schlachthof)

flickr pic

Bob Dylan That’s Right

flickr pic

shooting into the sun

flickr pic

The Donnas @ Rockefeller, Oslo

flickr pic

kind of blue

flickr pic

Maja Ivarsson :: The Sounds

flickr pic

Julian Casablancas

flickr pic

Mikko Salovaara

flickr pic

Eths (Festival Art Sonic 2008)

flickr pic

A Soul’s Expression

flickr pic

The Hague Jazz 2009 – Hugh Masekela

flickr pic

Deftones

flickr pic

Pitchfork Music Festival 2009

flickr pic

Parkpop 2008 – Jason Mraz

flickr pic

Return To Forever – 1976

flickr pic

Freddie Hubbard – trumpet

flickr pic

Kiuas

flickr pic

The Killers (37)

flickr pic

Katie Melua @ Tractor Tavern, Seattle 5-9-09

flickr pic

Picture perfect

flickr pic

The Avett Brothers

flickr pic

Violin

flickr pic

The Strokes (49)

flickr pic

Scorpions @ PPM Fest

flickr pic

Coldplay 16

flickr pic

My Bloody Valentine

flickr pic

Mankind

flickr pic

Zephyr in the sky at night I wonder

flickr pic

Leslie Feist/Cat’s Cradle

flickr pic

Blake Judd

flickr pic

moviestar junkies 05

flickr pic

david gilmour münchen 29/7/2006. 56

flickr pic

{ The Chap }

flickr pic

Ninja Dolls at Arenan, Falun

flickr pic

The Amazing Tim Swanson

flickr pic

Fresno

flickr pic

Ben Riley & Percy Heath

flickr pic

Nice Shirt

flickr pic

Scott Van Djembe

flickr pic

the hives – 10 – Pelle alone in the dark

flickr pic

Dag in de Branding 11 – Vic Chesnutt

flickr pic

“Contre-Jour Amour”

flickr pic

cesk freixas:avui serem el món

flickr pic

Damien Rice

flickr pic

oasis.gallagher.bros.001

flickr pic

Coldplay 39

flickr pic

Eagles Of Death Metal Concert @AB Gig Tour -51

flickr pic

Andre

flickr pic


Show Us Yours!

I hope the photos above inspire you to try your hand at shooting a few live performances. Once you get the hang of it, the resulting shots can be quite amazing and provide really unique portfolio pieces.

Use the comment section below to leave a link to your own live show and concert shots and be sure to let us know how you captured them!

Bonus points to anyone who can spot the author of this post in one of the images above!

New Premium Tutorial: All About the “Static” Keyword


Today, we are going to learn how to use the ’static’ keyword in PHP. We are going go over the basics and build some examples. It is time to add this interesting language feature to your web development bag of tricks. Become a Premium member today to see this and many other tutorials!


Join Net Premium

NETTUTS+ Screencasts and Bonus Tutorials

For those unfamiliar, the family of TUTS sites runs a premium membership service. For $9 per month, you gain access to exclusive premium tutorials, screencasts, and freebies from Nettuts+, Psdtuts+, Aetuts+, Audiotuts+, and Vectortuts+! For the price of a pizza, you’ll learn from some of the best minds in the business. Become a Premium member!

How to Create a Web Service in a Matter of Minutes


Offering your content or logic as a service on the web is a great idea. For starters it allows you to build numerous front-ends for your own information without having to access the databases all the time (and thus making scaling your system much easier).

The even more practical upshot is that you allow people on the web to play with your information and build things you never even dreamed of doing. A lot of companies understand that this “crowd-sourced innovation” is a freebie that is too good to miss which is why there are so many great APIs around.

Providing an API to the world is a totally different story though. You need to know how to scale your servers, you need to be there for answering questions by implementers, and you need to maintain a good documentation to allow people to use your content. You also need to think about a good caching strategy to keep your servers from blowing up and you need to find a way to limit access to your system to avoid people abusing it. Or do you?


Enter YQL

Yahoo offers a system for people to access their APIs called the Yahoo Query Language, or YQL. YQL is a SQL-style language that turns information on the web into virtual databases that can be queried by end users. So if you want to, for example, search the web for the term “elephant,” all you need to do is to use the following statement:

select * from search.web where query="elephant"

You send this statement to a data endpoint, and you get it back as either XML, JSON, or JSON-P. You can request more results, and you can filter them by defining what you want to get back:

http://query.yahooapis.com/v1/public/yql
?q={yql query}
&diagnostics={true|false}
&format={json|xml}
&callback={function name}

Mix and Match

All of Yahoo’s APIs are available through this interface, and you can mix and match services with sub-selections. For example, you could run a keyword analysis tool over the abstract of a web search to find relevant keyterms. Using the unique() functions, you can also easily remove false positives.

select * from search.termextract where context in (
  select abstract from search.web(50) where query="elephant")
| unique(field="Result")

See the results of this more complex query here.

Keywords extracted from the abstract of search results

The Console

The easiest way to play with YQL as a consumer is to use the console at http://developer.yahoo.com/yql/console/. There you can click on different tables to see a demo query how to use it and if you click the desc link you find out which options are available to you.


YQL Limits

The use of YQL has a few limits which are described in the documentation. In essence, you can access the open data endpoint 1,000 times in an hour, per IP. If you authenticate an application with oAuth, you get 10,000 hits an hour. Each application is allowed 100,000 hits a day.

This, and the caching of results that YQL does automatically means that the data does only get requested when it changed. This means that YQL is sort of a firewall for requests to the data people offer with it.

Be careful when using jQuery’s “$.getJSON,” and an anonymous function as its callback. This can bust YQL’s caching abilities, and hinder performance.


Building Web Services with Open Tables

The really cool thing for you as a provider is that YQL is open for other data providers.

If you want to offer an API to the world (or just have one for yourself internally) you can easily do that by writing an “open table” which is an XML schema pointing to a web service.

People do this a lot, which means that, if you click the “Show community tables” link in the YQL console, you will find that there are now 812 instead of 118 tables to play with (as of today – tomorrow there will probably be more).

To get your service into YQL and offer it to the world all you need to do is to point YQL to it. Let’s look at a simple example:


Real-World Application: Craigslist as an API

The free classified ad web site Craigslist has no public API – which is a shame, really. However, when you do a search on the site you will find that the search results have an RSS output – which is at least pointing towards API functionality. For example, when I search for “schwinn mountain bike” in San Francisco, the URL of the search would be:

http://sfbay.craigslist.co.uk/search/sss?format=rss&query=schwinn+mountain+bike

This can be changed into a URL with variables, with the variables being the location, the type of product you are looking for (which is the section of the site) and the query you searched for (in this case I wrapped the parameters in curly braces):

http://{location}.craigslist.co.uk/search/{type}?format=rss&query={query}

Once you found a pattern like this you can start writing your open table:

<?xml version="1.0" encoding="UTF-8"?>
<table xmlns="http://query.yahooapis.com/v1/schema/table.xsd">
  <meta>
    <author>Yahoo! Inc.</author>
    <documentationURL>http://craigslist.org/</documentationURL>
    <sampleQuery>select * from {table} where
    location="sfbay" and type="sss" and
    query="schwinn mountain bike"</sampleQuery>
    <description>Searches Craigslist.org</description>
  </meta>
  <bindings>
    <select itemPath="" produces="XML">
      <urls>
        <url>http://{location}.craigslist.org/search/{type}?format=rss</url>
      </urls>
      <inputs>
        <key id="location" type="xs:string" paramType="path" required="true" />
        <key id="type" type="xs:string" paramType="path" required="true" />
        <key id="query" type="xs:string" paramType="query" required="true" />
      </inputs>
    </select>
  </bindings>
</table>

For a full description of what all that means, you can check the YQL documentation on open tables but here is a quick walkthrough:

  1. You start with the XML prologue and a table element pointing to the schema for YQL open tables. This allows YQL to validate your table.
  2. You add a meta element with information about your table: the author, the URL of your documentation and a sample query. The sample query is the most important here, as this is what will show up in the query box of the YQL console when people click on your table name. It is the first step to using your API — so make it worth while. Show the parameters you offer and how to use them. The {table} part will be replaced with the name of the table.
  3. The bindings element shows what the table is connected to and what keys are expected in a query.
  4. You define the path and the type of the output in the select element – values for the type are XML or JSON and the path allows you only to return a certain section of the data returned from the URL you access.
  5. In the urls section, you define the URL endpoints of your service. In our case, this is the parameterised URL from earlier. YQL replaces the elements in curly braces with the information provided by the YQL user.
  6. In the inputs section, you define all the possible keys the end users can or should provide. Each key has an id, a paramType which is either path, if the parameter is a part of the URL path, or query, if it is to be added to the URL as a parameter. You define which keys are mandatory by setting the mandatory attribute to true.

And that is it! By putting together this XML document, you did the first of three steps to get your web services to be part of the YQL infrastructure. The next step is to tell YQL where your web service definition is. Simply upload the file to a server, for example http://isithackday.com/craigslist.search.xml. You then point YQL to the service by applying the use command:

use "http://isithackday.com/craigslist.search.xml" as cl;
select * from cl where location"sfbay" and type="sss" and query="playstation"

You can try this out and you’ll see that you now find playstations for sale in the San Francisco Bay Area. Neat, isn’t it?


Logic as a Service

Sometimes you have no web service at all, and all you want to do is offer a certain logic to the world. I found myself doing this very thing the other day. What I wanted to know is the distance between two places on Earth. For this, I needed to find the latitude and longitude of the places and then do very clever calculations. As I am a lazy person, I built on work that other people have done for me. In order to find the latitude and longitude of a certain place on Earth you can use the Yahoo Geo APIs. In YQL, you can do this with:

select * from geo.places(1) where text="paris"

Try this out yourself.

In order to find a function that calculates the distance between two places on Earth reliably, I spent a few minutes on Google and found Chris Veness’ implementation of the “Vincenty Inverse Solution of Geodesics on the Ellipsoid”.

YQL offers an executable block inside open tables which contains server-side JavaScript. Instead of simply returning the data from the service, you can use this to convert information before returning it. You can also do REST calls to other services and to YQL itself in these JavaScript blocks. And this is what I did:

<?xml version="1.0" encoding="UTF-8"?>
<table xmlns="http://query.yahooapis.com/v1/schema/table.xsd">
  <meta>
    <sampleQuery>
      select * from {table} where place1="london" and place2="paris"
    </sampleQuery>
    <author>Christian Heilmann</author>
    <documentationURL>

http://isithackday.com/hacks/geo/distance/

    </documentationURL>
    <description>
      Gives you the distance of two places on earth in miles or kilometers
    </description>
  </meta>
  <bindings>
    <select itemPath="" produces="XML">
      <inputs>
        <key id='place1' type='xs:string' paramType='variable'
             required="true" />
        <key id='place2' type='xs:string' paramType='variable'
             required="true" />
      </inputs>
      <execute><![CDATA[
        default xml namespace = "http://where.yahooapis.com/v1/schema.rng";
        var res = y.query("select * from geo.places(1) where text='" +
                          place1 + "'").results;
        var res2 = y.query("select * from geo.places(1) where text='" +
                           place2 + "'").results;
        var lat1 = res.place.centroid.latitude;
        var lon1 = res.place.centroid.longitude;
        var lat2 = res2.place.centroid.latitude;
        var lon2 = res2.place.centroid.longitude;
        var d = distVincenty(lat1,lon1,lat2,lon2);
        function distVincenty(lat1, lon1, lat2, lon2) {
          /* ... vincenty function... */
        var d = d / 1000;
        var miles = Math.round(d/1.609344);
        var kilometers = Math.round(d);
        response.object = <distance>
                            <miles>{miles}</miles>
                            <kilometers>{kilometers}</kilometers>
                            {res.place}
                            {res2.place}
                          </distance>;
      ]]></execute>
    </select>
  </bindings>
</table>
  1. The meta element is the same as any other open table.
  2. In the bindings we don’t have a URL to point to so we can omit that one. However, we now add an execute element which ensures that the keys defined will be sent to the JavaScript defined in this block.
  3. As the Geo API of Yahoo returns namespaced XML, we need to tell the JavaScript which namespace that is.
  4. I execute two YQL queries from the script using the y.query() method using the place1 and place2 parameters to get the locations of the two places. The .results after the method call makes sure I get the results. I store them in res and res2 respectively.
  5. I then get the latitude and longitude for each of the results and call the distVincenty() method.
  6. I divide the result by 1000 to get the kilometers and multiply the result with the right number to get the miles.
  7. I end the script part by defining a response.object which is what YQL will return. As this is server-side JavaScript with full E4X support all I need to write is the XML I want to return with the JavaScript variables I want to render out in curly braces.

Using this service and adding a bit of interface to it, I can now easily show the distance between Batman and Robin.

Showing the distance between two places on earth

Using server-side JavaScript you can not only convert data but also easily offer a service that only consists of calculations – much like Google Calculator does.


Turning an Editable Data Set into a Web Service

What you really want to do in most cases though is to allow people to edit the data that drives the web service in an easy fashion. Normally, we’d build a CMS, we’d train people on it, and spend a lot of time to get the data from the CMS onto the web to access it through YQL. It can be done easier though.

A few months ago, I released a web site called winterolympicsmedals.com which shows you all the information about the Winter Olympics over the years.

The data that drives the web site was released for free by The Guardian in the UK on their Data Blog as an Excel spreadsheet. In order to turn this into an editable data set, all I had to do was save a copy to my own Google Docs repository. You can reach that data here. Google Docs allows sharing of Spreadsheets on the web. By using “CSV” as the output format, I get a URL to access in YQL:

Sharing a spreadsheet in Google docs

And using YQL you can use CSV as a data source:

select * from csv where
url="http://spreadsheets.google.com/pub?
key=0AhphLklK1Ve4dHBXRGtJWk1abGVRYVJFZjQ5M3YxSnc &hl=en&output=csv"

See the result of that in your own browser.

As you can see, the CSV table automatically adds rows and columns to the XML output. In order to make that a more useful and filter-able web service, you can provide a columns list to rename the resulting XML elements:

select * from csv where url="http://spreadsheets.google.com/pub?
key=0AhphLklK1Ve4dHBXRGtJWk1abGVRYVJFZjQ5M3YxSnc&hl=en&output=csv" and
columns="year,city,sport,discipline,country,event,gender,type"

See the renamed columns in your browser.

This allows you to filter the information, which is exactly what I did to build winterolympicsmedals.com. For example to get all the gold medals from 1924 you’d do the following:

select * from csv where url="http://spreadsheets.google.com/pub?
key=0AhphLklK1Ve4dHBXRGtJWk1abGVRYVJFZjQ5M3YxSnc&hl=en&output=csv" and
columns="year,city,sport,discipline,country,event,gender,type"
and year="1924" and type="Gold"

See the gold medals of 1924 in your browser.

So you can use the free storage of Google and the free web service infrastructure to convert free data into a web service. All you need to do is create a nice interface for it.


Adding your Service to YQL’s Community Tables

Once you’ve defined your open table, you can use it by hosting it on your own server, or you can go full in by adding it to the YQL table repository. To do this, all it needs is for you to add it to the YQL tables repository at GitHub which can be found at http://github.com/yql/yql-tables/. Extensive help on how to use Git and GitHub can be found in their help section.

If you send a request to the YQL team to pull from your repository, they’ll test your table, and if all is fine with it, they’ll move it over to http://datatables.org/ which is the resource for the communities table in the YQL console.

This does not only make the life of other developers more interesting, but is also very good promotion for you. Instead of hoping to find developers to play with your data, you bring the data to where developers already look for it.


Advanced YQL Topics

This introduction can only scrape the surface of what you can do with YQL. If you check the documentation, you’ll find that, in addition to these “read” open tables, you can also set up some services that can be written to, and YQL also offers cloud storage of your information. Check the extensive YQL documentation for more.


Summary

Combining open systems like YQL and Google Docs, and some knowledge of XML and JavaScript, you can offer a web service to people in a matter of minutes. In any case, moving your development from accessing local files and databases to accessing services makes it much more versatile and allows you to switch providers any time in the future. With YQL, you can dip your toes into the water of web services without drowning as most of the tough work has already been done for you. Thanks for reading!


About the Author

Christian Heilmann is an international Developer Evangelist who works for the Yahoo Developer Network.

Three Steps to Fostering a User-Centered Design Culture


As responsible designers we must educate clients on the importance – both the validity as well as the viability – of the user-centered design process, one that gives due consideration to the needs of potential users. With the three steps that follow, we’ll go over techniques that you can use to get your team thinking about what’s really important with regards to the design of their websites you’ll help them create.


Shattering False Idols

Anyone who’s worked as a web designer or developer for a sizable length of time has had a client say “Hey, I’ve got a great idea for a website; can you help me build it?” While their enthusiasm is wonderful, this question is typically loaded with preconceptions (read: misconceptions). The process for creating a website is never as straightforward as even we would hope it to be.

It is with these projects that we must be most careful—the ones where clients seem to know exactly what they want. They probably have a particular layout in mind, perhaps some specific functionality that should be included. But more often than not, these images of perfection give little-to-no consideration for the users that will actually visit and use the final work product. What can we do with such steadfast clients?


Step One: Introduce Design Thinking

As with any collaborative endeavor, it is particularly important to ensure that all members of the team are fighting for the same goal. The earlier this is done, the better.

In effect, we want to move clients away from subjective goals (“I want it to look cleaner.”), towards measurable, objective ones (“I want it so clean that sales increase by 20%.”). By asking a few straightforward questions, you’ll find the design that client’s require isn’t littered with nearly as many obstacles.

To start the ball rolling, have your client jot down five things he wants his website to do for him (don’t be surprised when not-a-one of them has to do with end users). Next, inform clients how their goals will affect your design and development process.

Consider, too, forming an experience strategy.

An experience strategy is a clear set of experiential goals used to add cohesion to design and development endeavors. It should answer some fundamental questions, such as: What’s our eventual experience goal? Should user’s love our site? Should they feel that we’re really really good at something in particular? How should they feel about feature [x]?

Lastly, get a development strategy put in place. In formulating such a strategy, the questions you’ll address include:

What research and development methodologies work best for this project? What deliverables are best for any given stage of this project?

Although these questions are simple, they’re extremely important.

1

Suggested Reading


Step Two: Replace Bad Habits with Good Ones

Before hopping into sketching interfaces and pushing pixels, we must first ask the ever-important question: what do users need?

Remember: without user research, design is meaningless. Make sure your client knows this, too.

So, how do we answer such a question? Well, with design research. That’s how.

But you, the experience designer, already know this. The important part is getting the client and/or organization with which you’re working to understand why design research is so important, especially considering that they probably have some pretty bad design habits in place already.

Back in the old days, websites were born from functional specs—cold, heartless documents outlining every functional aspect of the website. Needless to say, this took users out of the development equation.

Utilize prototyping methods (such as sketching or storyboarding) and employ user-testing to show your client what kind of feedback they can expect from their new website. Once you tell him he’ll be saving both time and money by building his website with the results from your research findings, he won’t ever miss his functional spec.

Remember: without user research, design is meaningless. Make sure your client knows this, too. Providing even rudimentary research findings can help everyone on the team make informed decisions as we move our design process forward.

2

Suggested Reading


Step Three: Share the Wealth

Experience design is both a visual and physical process, so it clearly benefits from collaboration. As a designer, you likely have lots of research, wireframes, personas, and other deliverables filed away for the projects on which you’re working. Take them out and share them with your colleagues.

Foster a fertile environment for design growth.

Listen to their feedback and provide your own. Foster a fertile environment for design growth. Storyboarding is a great tool, introduced at Adaptive Path, for this kind of collaboration. Once previous design deliverables have been shared and passed about, team members collectively pitch design solutions to advance towards the aforementioned end goal. The final storyboard is yet another fantastic tool to prompt further conversation later on in the process.

Regardless of the specific techniques or deliverables that you employ, collaboratively working on and sharing user-centered design deliverables helps facilitate a shared design understanding amongst your entire team.

3

Suggested Reading


Moving Forward

In this article, we’ve explored three simple steps that you can follow to blaze the user-centered trail at your organization. Don’t take them the wrong way: these steps do not constitute some kind of magical collection of UX incantations; instead, they are merely illustrative of the way forward.

By drawing your project team’s attention towards the following aspects of design and development, your organization is much more likely to think about its challenges in holistic, user-driven fashion. The rest, as they say, is up to you.


Calling All Bleeding Edge HTML5 Devs


Hey, everyone. The next big category from our popular sister-coding-marketplace, CodeCanyon, will be for HTML5 “apps” — some might call them web stacks. This category will feature everything from advanced to-do lists with offline support, to advanced video, to presentation apps, to even games; all built with HTML5, CSS, and JavaScript.

I’m looking to commission some incredibly talented, cutting-edge developers to help me fill the category for launch. If this appeals to you, please leave a comment, or email sitemanager[AT]codecanyon.net to discuss things further. When you do, please include samples of your work, and, for bonus points, an item idea that you personally think will sell quite well in the community. This is a paid gig.

Why Wine and Macbooks Don’t Mix…and How to Handle the Aftermath


Ready for a revelation? A concept that you’ve never considered before? Well here it is: never ever, ever pour a glass of wine into your Macbook keyboard. Or, more practically put, be extremely careful when there’s a drink of any kind near your laptop. If a spill occurs, and you don’t act quickly enough, you’ll find yourself staring at a massive bill for a new logic board, hard-drive, battery, and anything in between.

Accidents do happen — so plan on it. What’s more important is that you learn exactly what to do when these spills inevitably occur.


Step 1. Don’t Freeze. Unplug!

Macbook Wine Spill

Ahhhh! The wife (meaning, you) accidentally spilled wine all over your keyboard. From personal experience, I can assure you that, for some odd reason, your first instinct with a massive computer spill is to freeze for five seconds or so, in shock. Don’t do this! Luckily Apple laptops are pretty helpful about automatically shutting down to prevent as many issues as possible before they happen. The more recent laptops even have liquid detection…though I’m certain that Apple is more interested in voiding your warranty than protecting you. For those uninformed, most laptop warranties do not cover spills.

Nonetheless, don’t waste a single second. Quickly unplug the computer, and shut it down.

The walls and carpet may have liquid on them as well, but ignore that. The computer is far more important right now.


Step 2. Flip that Sucka

Turn the laptop over to let the liquid drain

The next step, which should occur within seconds of beginning Step 1, is to flip the laptop upside down, into an L-shape. Gravity will then force as much liquid to drain out of the keyboard as possible. Make sure that you lay it on a towel so that it can soak up the liquid.

Let gravity do its job. Immediately flip the laptop into an L-shape.


Step 3. Open the Back

Unscrew the laptop to reveal the insides

Using a tiny screw driver, unscrew the back-side of your laptop. This will, of course, vary, depending upon which model you’re using. I’m sure you can figure it out.

Particularly on Macs, not all of the screws are the same size. Make a note of which screw goes where.


Step 4. Remove the Battery and Hard Drive

Remove the Macbook Pro battery

Before progressing, ensure your livelihood and touch some metal objects nearby to remove any potential static electricity from your body.

Needless to say, batteries and liquids — especially sugary, acidic liquids — don’t play nice together. Wherever yours is located on your laptop, remove it as quickly as possible. Next, get the hard drive out as well. We don’t want to risk any liquid seeping in, and corrupting your file system!

And now that you know how easy it is to remove a hard drive, don’t ever again pay a person to upgrade your hard drive. It only takes a moment to do yourself. ;)


Step 5. Dry the Insides

Clean the insides of the computer after a drink spill

With a paper towel of some sort, begin cleaning the insides of your computer. Depending upon how much liquid was spilled, this may either be a quick or lengthy process. For yours truly, it took around ten minutes to clean everything.

Some people prefer to use a hair dryer to clean the insides. This one is up to you; however, I’d encourage you to not do so. Play it safe and use a towel. We don’t want to risk frying the insides.


Step 6. Rubbing Alcohol and Cotton

Clean the insides with a cotton swab

Next, we need to continue removing as much sugar and acid as possible from the logic board. Otherwise, over time, it can begin to corrode the wiring. Yeah, this isn’t good!

Using rubbing alcohol and a cotton swab, begin dabbing any stained areas — but be gentle. If you have access to the backside of your keyboard, clean that area as well. Unfortunately, on the newer Macbook Pro models, it’s extremely difficult to access this section. With past models, it was quite easy to remove the keyboard entirely, for cleaning purposes. Unfortunately, that’s no longer the case.

Rubbing alcohol will help dissolve any remaining acid or sugar on the logic board.


Step 7. Leave it Alone

Leave the computer off for 3-5 days after a spill

Anxiety is a dangerous thing. Resist the urge to determine whether or not you’ve destroyed your laptop, and keep it off for a minimum of 72-120 hours (3-5 days). This will allow any remaining liquid to dry/evaporate first. Make sure that, while its drying, you keep the battery outside of the computer. This is mostly a precaution.

Keep the computer off for 3-5 days — no questions asked. Do not turn it on during this window.


Step 8. Cross Your Fingers

Cross your fingers

After 72-120 hours, reconnect the battery, screw everything back in, cross your fingers, say a prayer, and turn on the computer. Particularly if you’re using a new Macbook Pro (2009+ models), you’ve done everything you can do. With hope, and more often than not, it’ll chime, and start-up like a charm. However, if the battery is dead, or the hard drive is corrupted, you’re next best option is to take it in for official repair. Of course, this will somewhat depend upon how skilled you are, when working under the hood.


About the Author

Jeffrey Way — me…yes, I’m speaking in third person — recently committed a Cardinal Sin, and caused a massive wine spill into his Macbook Pro. Had he not followed these exact steps, he’d be forking over another life savings for a new Mac. Luckily, that was not the case.

Thanks for reading. Should the same ever happen to you, I hope this guide will help a bit!

Formatting Your Videos for Triplewide Display

Triplewide content is a new form of presenting content in multiple venues, be it live performances or even in the church. Because of how new it is, many people aren’t quite sure what it is or how to format their content. This tutorial will explain what Triplewide Content actually is and how to format it for optimal playback. Enjoy!


Tutorial

<a href="http://blip.tv/file/get/Aetutsplus-FormattingForTriplewideContent316.flv

File size 169MB