• Shortcuts : 'n' next unread feed - 'p' previous unread feed • Styles : 1 2

» Publishers, Monetize your RSS feeds with FeedShow:  More infos  (Show/Hide Ads)


Date: Thursday, 02 Jan 2014 17:11

With the holidays quickly behind us, you’ll likely start leaving your house again. Now, while some don’t like Sonos products for some reason, yours truly likes them tremendously, as voiced numerous times on this very blog.

If you’re anything like me, the first thing you do after you open your eyes is to throw a playlist or two onto your Sonos system, even before you start your morning routine. My playlists have a tendency of running long, though, and more often than not I find myself returning back home with the music still playing, because I was so busy remembering all the things I needed to take with me when I left that I didn’t remember to pause the music.

Given the current availability of location-aware automation tools, I thought it shouldn’t be too hard to find a solution for this that didn’t involve a daily reminder in iOS.

iOS Reminder

iOS Reminder

Turns out, Sonos refuses to cooperate with services like IFTTT, which would make this a breeze to implement. Bummer. (It also looks like the Sonos Controller for Mac isn’t AppleScriptable. A bummer as well.)

I did, however, find a Ruby implementation of what you could call a “Sonos API”, which is based on UPnP (Universal Plug and Play). With this little gem and a little spit and glue we can still make this work.

What we need

The solution comes down to three ingredients:

  1. The IFTTT iOS App to trigger the actual location change
  2. The aforementioned sonos gem to interface with the Sonos speakers
  3. A (powered on) Mac with Hazel, that watches a folder in Dropbox

Let me walk you through it.

IFTTT Setup

The IFTTT App has a special channel called iOS Location, which can trigger either when you’re entering or leaving a certain location or area.

For the Action, we’re simply creating a file in Dropbox. By default, IFTTT will put this into the IFTTT/iOS Location folder. It’s up to you where you put it, simply remember the file’s location for the Hazel setup a few paragraphs down.

The contents of the file don’t matter, either, although we’ll look at a way to make use of the file contents in the bonus section below.

What is important is the filename. Quick tip: when you initially set up the rule in the iOS App, you have to go back in and edit it in order to be able to set the filename. I’m using sonos_pause in my example, as you can see below.

The IFTTT action

The IFTTT action

(Now, while I could share the ready-to-consume action directly over IFTTT with you, there’s little point in stopping your Sonos system when you’re leaving my house, I guess.)

Sonos Rubygem

Since the Sonos Controller for Mac doesn’t have an AppleScript dictionary, as mentioned above, we need to resort to other means in order to be able to control the Sonos speakers from afar.

To install the sonos Rubygem, execute the following commands in the Terminal:

$ sudo gem install sonos

(You may have to provide your user's password at this point.)

Sidenote: The latest released version of the Gem has an issue properly detecting stereo pairs and surround/subwoofer setups. I sent a pull-request to fix this. Until that is merged, you can download a patched version of the Gem if you have a stereo pair or a SUB in your environment.

Hazel Rules

In Hazel, add the IFTTT/iOS Location folder as a folder to apply rules to.

For the conditions, all we care about is the fact that the file needs to be called sonos_pause. When such a file is matched, we execute an embedded shell-script, which is quite simple indeed.

(The only reason for the source command is my rbenv environment. You can probably leave it out if you use the stock OS X Ruby setup.)

When the script is done, we move the file to the trash, so that the rule isn’t triggered over and over again.

The Hazel Action to pause Sonos playback

The Hazel Action to pause Sonos playback

And that’s it! Now, when you leave the geofence you set up in the IFTTT iOS app, a file will be created in you Dropbox, synced to your Mac, where it’s picked up by Hazel to execute the script to pause Sonos playback.

Easy, huh? (Yeah, I know.)

Bonus: Start playback when you get home

Of course, the pause action is easily reversed with a play action.

In IFTTT, set up another recipe to trigger when you enter an area, create a different file in Dropbox (I suggest sonos_play), and add a new Hazel rule to watch for that filename.

Starting to play in a multi-room Sonos setup could be unpredictable, though. For one, you wouldn’t want all rooms to play. And also, the volume could be set to a devastating value, as you could’ve been blasting Gary Clark Jr. before you left the house.

For those reasons, we’ll whip up a script that’s a little more sophisticated. It will purposefully set the volume to a value of 10 before starting playback. And it will take the name of the room to start playing in from the textfile.

Just make sure that you put the exact name of the room to play into your IFTTT Recipe.

The Hazel Action to play Sonos in a specific room

The Hazel Action to play Sonos in a specific room

Assuming you have a Sonos setup in the office, this could totally be used for an office prank. If you set up an corresponding Hazel rule, you could, for example, play the intro music to “The Office” when you get into the office. Then again, maybe not.

Future optimisation: Multiple users?

What if you have multiple rooms and multiple Sonos users, meaning that you don't want to pause while there's still somebody at home or at the office? I don’t have a ready-to-share solution for this scenario, but here’s an idea: If everyone is equipped with the IFTTT iOS App, you could track (using the “Append to file” action, maybe) who entered the geofence and only pause Sonos after the last one has left the house again.

Can you come up with any other creative uses for IFTTT with Sonos? Shoot me an email.

Author: "Patrick Lenz" Tags: "Apps and Tools"
Send by mail Print  Save  Delicious 
Date: Saturday, 28 Dec 2013 23:38

Originally spurred by Christopher Mims' essay for Quartz, John Gruber reviewed 2013 in the context of Apple and Technology at Large:

Was 2013 a seminal or particularly extraordinary year for technology? No, I’d say not. But it certainly wasn’t a “lost year”, by any measure.

He walks us through the rather incremental evolution in technology that came to market in 2013 that, when compared to the original products they incrementally improved upon, provide a rather stark revolution in just a few years. One of the most prominent examples would be the original iPhone released in 2007 compared to this year's iPhone 5S, which is, claims Apple, 40x faster than the original.

Gruber closes his piece with:

There’s a nihilistic streak in tech journalism that I just don’t see in other fields. Sports, movies, cars, wristwatches, cameras, food — writers who cover these fields tend to celebrate, to relish, the best their fields have to offer. Technology, on the other hand, seems to attract enthusiasts with no actual enthusiasm.

Wise words, indeed.

But, seriously, have any of those fields that are blessed with more enthusiastic writers seen any revolutions in 2013?

Let's find out.

Sports

While I'm not a fan of any sports that could be considered mainstream like soccer, baseball, or American football, none of these seem to have gained anything revolutionary in quite some time by my research. In soccer, FIFA announced the controversial roll-out of Goal-line technology to additional tournaments, but that's pretty much about it. And besides, does an improvement in rule-keeping really count as any kind of revolution?

A sport that is dearer to my own heart since 2013 would be CrossFit, which gained a lot of traction and popularity recently. But CrossFit, Inc., the company, has been around since the year 2000 and even the CrossFit Games have been held since 2007. So, they’ve been around a while as well.

Performance analysis and data-analytics seem to have picked up significantly in recent years, but it's debatable if this is an innovation to be attributed to sports, rather than, say, technology.

Movies

3D Movies have been pushed heavily for years now and 2013 was no different. But from an innovation-standpoint, nothing seems to have revolutionized movies. Theaters were dwarfed with Hobbits, the Hunger Games, and Thor, among others, this year, which are all splendid movies in and of itself, but they didn't particularly revolutionize.

If anything, the wide-spread availability of tools like GoPro cameras and even the iPhone 5S with its 120FPS slow-motion shooting capability has promise to open up movie making to more people than ever. But let's not get ahead of ourselves.

Cars

I've relentlessly watched Top Gear season 19 this year. I've been to the Frankfurt Motor Show in Frankfurt, too. Yes, there were more electric cars than I had assumed there would be. But Tesla has been shipping its Roadster since 2008. The other car news at the show revolved around everyone and his dog building Audi R8 look-a-likes, rendering calendar year 2013 as definitively a year of evolution on the car design and development front.

Google's driverless cars, which have been road-legal since 2012, have completed a proclaimed accident-free half million kilometers. It’s a great accomplishment, but it’s simply building on what they’ve already been doing.

Could Uber, who are disintermediating car-for-hire transactions everywhere, then be the innovation of the year 2013? Not really. The San Francisco-based startup had its inception in 2009 and rolled out a lot of its fleet in 2012 already.

Wristwatches

No, Apple hasn't released anything to put on your wrist this year.

People are still buying watches like jewelry, with technology like the tourbillon in them that is more than two centuries old. Companies like Patek Philipe make a billion dollars of revenue a year by selling watches that cost $21,000 on average, putting them in the 8th spot of the biggest watch makers of the world with a marketshare of a stunning 3%. (That does sound familiar, doesn't it?)

And we'll just pretend Samsung's awkward Galaxy Gear ad has never happened.

Cameras

My photography has severely suffered in 2013. But that wasn't due to the lack of newly available camera gear. The current crop of professional D-SLR bodies from Nikon and Canon are nothing short of outrageously well-built, photo-construction machines.

And take the new kids on the block, like Fuji's X Series of mirror-less cameras (I own an X-E1, released in late 2012) or Sony's new A7, a full-frame mirror-less camera body with interchangeable lenses, which is something that we hadn't seen in such a compact format before.

However, the real photography revolution of the century was the transformation from film to digital several years back. First with bulky D-SLR bodies, now with these incremental steps to achieve great image quality with a minimal amount of gear, accessible to as many consumers as possible.

Sure, comparing the images coming out of the A7 to the images of the first compact cameras in the early 2000s feels like a drag race between a Dacia Logan and a Mercedes SLS. But year-over-year, camera makers have taken very conservative, incremental steps on the pixel ladder, improving resolution and image quality.

As well, if you had a time-machine and showed the images (and movies) created by the camera in this year's iPhone 5S (a telephone, for crying out loud) to someone a mere 10 years ago, you'd be accused of witchcraft. (Again, it must be noted that most of the incremental imaging improvements in the iPhone 5S are in software, not the actual camera hardware.)

Food

I am able to plot a bit of an uptake this year of more conscious and healthier food-intake in some of my immediate surroundings. This may in part be due to a partially proportional amount of uptake in food allergies or just due to my getting older.

Eating healthy isn't exactly a new thing, though. Quite the contrary, in fact. The fundamental rules of diets like Paleo are based on our primal past. And if you just want to grab your greens from the farmers market instead of eating at McDonald's (no offense) that's perfectly fine too.

On the tools-side, blender manufacturers like Vitamix must be one of the most conservative on the planet. Their model 5200 has been around since 2007, you can still by it new (I did), and you get a 7 year warranty on it. Why would you replace your blender every year anyway?

Side-note: If you are looking for a great, practical introduction to Paleo, get the Paleo Primer. It's much less theoretical than the usual suspect and full of great varieties that'll even make your kids happy.

Technology

That brings us to the technology sector. Has 2013 really been this disappointing?

For example, 3D printing got much more affordable in 2013. While it may still be a few years off until you can finally stop leaving the house altogether and print fresh underwear at home, you can get a 3D printer for under $1,000 these days. Commercial products like the Cubify Cube are a bit more expensive, but there's always the RepRap Open Source project that will even supply you with the accompanying printable objects.

And, these printers are being heavily used by the people who are prototyping the products you’re buying right now. Walk into many design studios and you’ll find bins full of 3D printed mock-ups and prototypes.

2013 has also been the year of the civil drone. Both Amazon and DHL have announced tests of commercial package delivery via unmanned drones, all of which were made possible by advancements in technology.

And even the controversial technology stepchild that is Google Glass deserves a spot in the technical innovations of 2013, even though Mims laughs at it in his piece. I wouldn't go so far to award it the Mobile Product of the Year, but it is an innovation, plain and simple. It might take another few years to really come to fruition, but it’s a definite sign of how the computer-to-perpetually-connected-personal-device-transition is going to play out.


In conclusion, most of the innovation in 2013 flew under the radar (some quite literally) and was mostly incremental and evolutionary. But when comparing several different sectors, it's glaringly obvious that we technologists have been spoiled by a continuum of tiny revolutions in a very short, compressed timespan. So much so, that we're caught up in declaring each individual product either revolutionary or not when in reality, innovation is happening steadily, right in front of our eyes, sometimes creating a new continuum that cannot be grasped immediately.

Repeating revolutions at the pace they just so happened to occur in the past is not only not feasible in the long run, it's a completely unrealistic and unhealthy expectation.

Take a step back, look at our connected world as it is today, and you'll realize that what we have here is the amazing result of hundreds of innovators putting their lifeblood into their products, some of which among our direct peers.

I'm excited about technology today and just as excited about what the future brings.

Author: "Patrick Lenz" Tags: "Essays"
Send by mail Print  Save  Delicious 
Date: Friday, 27 Dec 2013 23:14
20131228_FabricSkin Folio_8021.jpg

After my 16-months-old son had managed to shatter my new iPad Air within a mere couple of days of it shipping to my doorstep, I had to up the ante to protect the replacement from suffering the same fate.

I looked at several offerings, ranging from the official Apple iPad Smart Case, over a variety of sleeves, all the way through the (usually fabuluous) DODOcase options. In the end, I was drawn to Logitech's newest folio-style case with a built-in keyboard: The Logitech FabricSkin Keyboard Folio. (Yes, that is quite a mouthful.)

The FabricSkin combines a fairly protective case with an innovative and very flat, yet full-size keyboard that doesn't add a lot of bulk to the otherwise petite shape of the iPad Air, resulting in only a few compromises.

Tech Specs

Putting the iPad Air into the FabricSkin is very straightforward. You simply clip its top and bottom edges on the righthand side into the plastic housing. The power button disappears into the housing, but can still be operated through a little flap. Since it's right on the edge of the case, this adds a nice layer of protection.

The volume up/down and mute switch aren't covered by any additional means, but since they're seated recessed from the outer rim of the case I'm not worried too much.

On the back of the case there is an opening for the iPad camera. Using it while the iPad is in its case, however, means that either you're flying blind or the keyboard flap is dangling around at the bottom while you're taking pictures, making it ever so slightly more ludicrous than taking pictures with your iPad in the first place.

The power button underneath the plastic housing clips.

The power button underneath the plastic housing clips.

Once clipped into the FabricSkin, built-in magnets will wake and sleep the iPad with the opening and closing of the flap, respectively.

You can use the iPad in one of two orientations: Either with the keyboard folded flat on its back in either horizontal or vertical orientation, which is great for reading or watching videos (consumption mode, if you will) or with the built-in keyboard out front, which is only available in horizontal orientation. Magnets hold the iPad in a perfect angle for working with the keyboard and also trigger the wake and sleep of the keyboard itself, hence the lack of a dedicated power button anywhere on the case.

The outer shell of the case is rubbery and fairly easy to clean. It has a great grip to it and won't let your iPad slide off of even the most slippery of surfaces.

The Keyboard

Logitech sells a lot of keyboards for iPads and has been successful at that for quite some time. With this one, though, they introduced a keyboard made out of a water-repellant material that is built right into the top flap.

The keys themselves are regularly sized and shaped and arranged in the typical QWERTY-layout. They do depress like on a regular laptop keyboard, with a slight reduction in tactile feedback. The rubbery finish takes a moment to get accustomed to, but works very well after some practice time.

In the top row of the keyboard you get iOS special keys (activated with the Fn-key) to get to the homescreen, toggle the on-screen keyboard, control playback and volume, lock the screen, and start dictation. If you work with a remote shell app like Panic's Prompt, you will notice the missing escape key, though.

The other drawback of the keyboard layout is the compression of the leftmost column of keys, namely the tab and capslock keys, onto their right neighbor, the Q and A keys, respectively. It feels weird not to have another key next to Q and A and if you're used to tab through web-forms, for example, you will miss the tab key a lot. Additionally, the arrangement of the numeric row of keys is ever so slightly shifted to the right, so I keep hitting the home button instead of 1 all the time, which has been a major annoyance in day-to-day usage.

Close-up of some of the letters on the keyboard.

Close-up of some of the letters on the keyboard.

While we're on the subject of drawbacks, I'd like to point out that I sometimes wish for the keyboard to operate properly even if the iPad isn't sitting in its magnetically enforced spot on top of it. If you're sitting on the couch with your legs pulled up, the usual angle doesn't make sense at all. It would make much more sense to operate the case folded fully open, with iPad and keyboard in a straight line, not unlike the Upright Mode of the GroovBoard. But that won't work with the FabricSkin.

Charging

I haven't charged my FabricSkin even once beyond the initial charge when I received it. According to Logitech, it should be good for up to 3 months on a single charge, given about 2 hours of daily use.

If you do have to charge it, there's a micro-USB jack at the bottom that can be powered with the included USB cable.

The charging port and iPad Lightning port

The charging port and iPad Lightning port

The last minor annoyance I'd like to talk about is the little Logitech flag that sticks out the top right of the case (bottom left of the keyboard in horizontal orientation). I don't know who on earth thought it would be great to put it there, or on the case at all for that matter. It's in the way most of the time and I'm very close to simply cutting it off.

Conclusion

Other than the mentioned annoyances, I'm very happy with this case and have used it extensively over the past 4 weeks. The battery lifetime is outstanding, the protection (yet to be toddler-proven) is sufficient, and the typing quality is great. It wakes and sleeps both the iPad and the keyboard quickly and reliably (including the necessary pairing process, hiding the on-screen keyboard) and doesn't bulk up the iPad Air too much.

The Logitech FabricSkin Keyboard Folio is available for $150 from Logitech's Online Store or from Amazon. It ships in Urban Grey, Carbon Black, and Mars Red Orange. I opted for the Urban Grey because I didn't like the colored insides of the other options.

The annoying little Logitech flag

The annoying little Logitech flag

Author: "Patrick Lenz" Tags: "Reviews"
Send by mail Print  Save  Delicious 
Date: Sunday, 02 Jun 2013 19:26

As you may or may have noticed, some things have shifted around a tiny bit on these very pages: A while back, I quietly relaunched the site without much fanfare.

The visible changes are subtle, to say the least. The link colour is slightly different, the menu changes a little differently on smaller displays (or with a resized browser), code tags are highlighted a little differently, and that's largely it. Oh, and the usual RSS Feed hiccups of course.

However, I completely switched away from my own little Rails app hosted on Heroku to the Middleman static site generator and host the output on Amazon S3 and Cloudfront.

But, why?

Frankly, there were no pressing reasons. The site worked and used a lot of caching, so the effect of the kerfuffle concerning Heroku performance a while back was negligible.

Sometimes you just need change for change's sake. I like fiddling with technology and this blog has, in its 13 years of existence in one form or another, always been a technology testbed and playground for me.

This time is no different. I had a keen interest to play with static site generators and my own blog application wasn't special enough to keep it running just for sentimental reasons.

But, why Middleman?

Middleman is one choice out of many when it comes to static site generators.

In the Ruby world, apart from Middleman there's Jekyll, which powers, among others, GitHub Pages and recently went 1.0. Then there is Octopress, which is an add-on for the aforementioned Jekyll and offers some nice bootstrapping options.

In the Python world, people are talking first and foremost about Pelican. But there are also options like the pun-heavily named Hyde.

Middleman convinced me with a solid plugin architecture, not too many defaults that make it all obvious which tool you used to create your site, and a sensible approach to the "writing offline with previews" workflow. Some of the other contenders performed well in some of these areas but fell short in others. (I'm making no attempts to write a comprehensive comparison article for static site generators. This is what works for me.)

Additionally, Middleman supports compiling fancy new languages (or language extensions) such as Coffeescript and Sass out-of-the-box and without much fiddling. It just works.

Switching parts

To reduce complexity, I also switched from Compass and Susy to Twitter Bootstrap as the framework. (I've actually used the Sass-port of Twitter Bootstrap since I had no desire to switch to Less.) That means I had to port the grid and individual components over, which turned out to not be too hard.

My own implementation of footnotes was rendered obsolete by the use of the kramdown Ruby plugin that supports Multi-Markdown footnotes out of the box.

Likewise, my backend implementation to extract captions of img tags gave way to a very simple, jQuery-based implementation that grabs all the qualifying images on a page and generates the caption elements on the fly. It's not optimal, but could definitely be worse given the JavaScript execution speed of modern browsers.

Lastly, syntax highlighting is still handled via Pygments internally, but the interface to it is no longer my original implementation that is called after saving an article to the database (since there, well, is no database). Instead, I'm using Rack::Codehighlighter, which Middleman can easily cooperate with.

Middleman and Blogging

Middleman itself is setup pretty well for serving as a blog by way of the official blogging extension.

This extension gives you the usual suspects like a bunch of articles in reverse chronological order, tags, calendar pages, drafts, the whole nine yards. You could even run the blog integrated as a sub-directory into a regular corporate site with lots of static pages, not unlike Squarespace offers blogs as page types alongside its regular pages.

The workflow to write a new article (or create a new static page) is to simply create a file with a supported template extension (I use .markdown) within your source directory.

In order to keep my templates separate from the actual articles I moved the source directory for the articles to source/articles/ instead of the default option of putting them directly into source/:

Instead of creating the file manually, Middleman offers a handy shortcut that converts the article title to a permalink and also prepends the date:

$ middleman article "My new Article"
  create  source/articles/2013-02-25-my-new-article.html.markdown

With this file in place you can open it up in your favorite text editor and start typing. When you're ready for a preview, start middleman server and point your browser at http://localhost:4567. Assuming a typical blog homepage with articles displayed in reverse chronological order, your new article will show up at the top. Clicking the link will open the detailed article page such as /2013/02/25/my-new-article.html.

Since Middleman integrates with LiveReload, every time you save the file in your text editor, your browser will recklessly reload to show you the latest changes. Especially for more sensitively arranged articles with lots of images and/or code samples this is a godsend.

Speaking of drafting articles, Middleman supports a published: false attribute in its Frontmatter, which will exclude those articles from being included when you build the site.

Of course, I'm still starting out articles separate from this preview cycle in iA Writer or Byword on my Mac or iPad.

What's next?

I’m planning to publish additional articles covering blogging from an iPhone or iPad in conjunction with a static site generator in the weeks to come.

Also, there are a few tweaks I need to make to improve building the blog and publishing it to S3 in the least amount of time possible, which is a challenge I gladly accepted.

Author: "Patrick Lenz" Tags: "Blog"
Send by mail Print  Save  Delicious 
Date: Friday, 29 Mar 2013 12:42

I’m struggling finding a satisfying taxonomy for tagging my posts here. There was even a time when I would enter them but hide from from display because of how unhappy I was with their ability to tie posts together or increasing discoverability for search engines.

That said, I was pretty intrigued when Brett recently blogged about his use of Zemanta to auto-tag posts on his Jekyll-based blog.

Since I’m not using Jekyll, however, I had to be a little more creative with adapting this workflow. I actually used it as an excuse to learn more about one of the headlining features in Alfred 2: Workflows.

Strictly speaking, Workflows in Alfred tie together triggers, inputs, actions, and outputs to automate common tasks. They operate on text, files, or even remote contents such as your GitHub repositories, like this incredible GitHub workflow does.

(Another handy list of workflows, which happen to be often buried in the bowels of the Alfred forums, comes from macminicolo, who blogged about Ten Alfred workflows for IT recently.)

As I despise PHP, I did not go down the route many others take when writing Alfred Workflows. I used Duane Johnson’s beginnings of an Alfred 2 Ruby Framework and implemented my Workflow based on that instead of using David Ferguson’s more sophisticated PHP class. Also, Dennis Paagman’s alfredo Rubygem was very helpful in generating the XML-based responses that the Alfred Workflows need to return to build up responses in the Alfred GUI.

Sadly, system Ruby on Mountain Lion is still 1.8 and the zemanta Rubygem Brett used to implement his auto-tagger is not compatible with Ruby 1.8. Fortunately, there is an alternative API implementation available: The term_extraction Rubygem by Alex Rabarts.

All keywords provided by the Zemanta Tagging Workflow

All keywords provided by the Zemanta Tagging Workflow

Armed with that gem and the Duane’s Ruby framework I started cobbling something together which works rather nicely. It will either take a complete folder of individual article files for you to pick from or, alternatively, take content you have previously put onto the clipboard and sends that to Zemanta for tagging.

The result of this operation is then put back onto the clipboard for you to paste into whatever editor you want.

It even has a built-in setup keyword zemapi to make providing the workflow with the necessary Zemanta API key a breeze.

The list of articles to select from when working directly with a folder

The list of articles to select from when working directly with a folder

Apart from giving the Workflow an API key to use, you should provide the zemfile keyword a Search Scope to just the folder containing your articles. To do that, open up the Workflow in Alfred Preferences, double-click the zemfile keyword and select your desired folder in the “Search Scope” tab in the slide down panel. I keep my articles in ~/Dropbox/Articles/, for example.

As Brett mentions in his article, the terms returned by Zemanta are sometimes a little verbose and need a little manual tidy up. They’re also not replacing my manual tags any time soon. But one thing I will start using them for is meta tags.

Download Workflow

(The source code for the workflow is also available on GitHub.)

Happy Easter!

Author: "Patrick Lenz" Tags: "Apps and Tools"
Send by mail Print  Save  Delicious 
Date: Sunday, 10 Mar 2013 12:52

One of my businesses uses Highrise as its CRM tool to document all of its sales activities.

As Highrise is a hosted application, I want to make sure that we have access to regular backups of our data. Luckily, Highrise offers a handy export feature for this purpose. Unfortunately, those exports do take a sweet while to generate.

I generate weekly backups using this method and usually trigger their creation when I leave the office on Fridays. When the export is done, Highrise will email me with a URL to download the final export. However, I'm usually on my commute back home at that point and I'm not willing to spend my mobile data allowance on a backup file that I have no use for on a mobile device anyway.

To trigger the download on my iMac back in the office remotely, I came up with a little workflow involving Hazel on the Mac and Drafts on my iPhone (or iPad for that matter) that I'd like to share with you today.

The Ingredients

The Concept

The basic setup consists of a Dropbox folder that is watched by Hazel. This folder is then populated with text files generated on an iOS device with Drafts (usually from the clipboard), containing the URLs to download. When Hazel finds a qualifying file, an Automator workflow is kicked off to start the download into a pre-defined folder and then it removes the text file that triggered the download.

Hazel can then be setup to further process the triggered downloads as those usually follow a pretty distinct filename pattern. In this specific case, I'm sorting those backup files into their own folder with a revised filename to include the date of the backup. These follow-up rules are applied to the main Downloads folder, so they're universally applicable whether you trigger the downloads from your Mac or, in this case, remotely.

The iOS Part

As I mentioned before, the URL I want to start downloading on my Mac is usually stored on the clipboard.

My first attempt at this workflow tried to solve the initial trigger through a bookmarklet on iOS. This, however, would require me to actually visit the download URL on my iPhone, starting the download itself in most cases. Since this is hardly desirable, I abandoned this tactic.

Instead, I will visit whatever page (or email) containing the download link and copy that link to the system clipboard using a tap-and-hold gesture. This will also work nicely in third-party browsers on iOS, some of which have very poor support for bookmarklets. (Chrome, I'm looking in your direction.)

Once the URL is on the clipboard, there are a variety of ways to get that URL into a file in Dropbox. I use Drafts, since it supports a nice way of timestamping those individual files. This way, the workflows don't trip each other up by, for example, removing entries from a file while you're already appending the next URL to download to the same file.

Here's the Dropbox Action I setup in Drafts.

Dropbox Action Setup in Drafts

Dropbox Action Setup in Drafts

In essence, it uses the contents of the current buffer ([[draft]]) to create a new file in Dropbox under the /Apps/Drafts/ path and names that file with the prefix download_urls (which we will pick up in Hazel later) and a timestamp suffix. An example filename would be download_urls-2013-03-10-16-46-10.txt.

Now, you could just open Drafts, paste in the clipboard contents, and then trigger the appropriate Dropbox action by manually selecting it from the Actions menu. But with the recent surge of support for and clever tricks involving URL schemes, we can do better than that.

The recent 1.1 update of Launch Center Pro brings with it support for passing on the clipboard contents to an action of your choosing. This way, with the press of a single button in Launch Center Pro we can trigger the remainder of the workflow in Drafts without any manual intervention.

Here's my trigger in Launch Center Pro:

drafts://x-callback-url/create?text=[clipboard]&action=Download%20Desktop

Using the drafts:// URL scheme, we tell Drafts to create a new note, the contents of which are provided by Launch Center Pro with the new [clipboard] placeholder, containing the contents of the, you guessed it, system clipboard. Lastly, we tell Drafts to trigger the action "Download Desktop", which we created before. (The name of the action needs to be URL-encoded.)

The Launch Center Pro Action

The Launch Center Pro Action

With this setup, after placing the URL on the clipboard, I can invoke Launch Center Pro from my iPhone's dock, tap the "Download to Desktop" icon, and the rest is handled behind the scenes.

Since that "rest" also involves the actual download, let's continue on the Mac.

The Mac Part

The first thing we need is a folder to hold the trigger files. As I mentioned in the section creating the Drafts Dropbox action, I picked /Apps/Drafts/ within my Dropbox folder in this example, as that is the default location where Drafts puts text files created in Dropbox. This folder is then handed to Hazel for surveillance.

In Hazel itself, the following rule takes care of feeding the right files into the Automator workflow that does all the heavy lifting.

Hazel Rule to feed the download URLs to Automator

Hazel Rule to feed the download URLs to Automator

When the Automator action is done performing its magic, we tell Hazel to remove the file it just finished processing, in order to not clutter up that folder over time.

The Automator workflow itself takes the textfile and uses OS X's built-in data detectors to make sure what we're feeding to the next action are actual URLs. (Don't get me started on the fact that Automator needs this Applescript crook to actually read a file that it clearly should know how to handle on its own.)

This is just a safety measure and shouldn't be strictly necessary given that we're the only ones feeding this workflow, but you never know. (Maybe you're sleepwalking one day, manage to unlock your phone, and then start feeding cat pictures to this Automator action.)

The Automator Workflow to start the actual download

The Automator Workflow to start the actual download

To handle the actual download, we use Automator's built-in "Download URLs" action. You need to be aware that this uses Safari behind the scenes. So if the URL you're trying to send it for download is only accessible to logged-in users, be sure to login using Safari beforehand.

I'm sending those downloads to the regular OS X "Downloads" folder, which, in turn, is guarded by Hazel. Once those Highrise backups land there, another Hazel rule is triggered to take those backups and sort them into their own folder after renaming the zip-file to include the current date.

An Alternative for iPad

Instead of Launch Center Pro, you can also trigger the Drafts Action through Pythonista, which comes in handy if you're using this from an iPad for example. (There is no Launch Center Pro for iPad, as of yet.) Since Pythonista scripts can be saved as icons to your homescreen, you could even save a tap by storing the icon directly on the homescreen.

Here's the Pythonista script to accomplish this:

Conclusion

So, there you have it. Downloads on your Mac, triggered remotely from your iOS device using Launch Center Pro (or Pythonista), Drafts, Hazel, and Automator.

Here's a video demonstrating the components working together.

Hit me up on Twitter as @patricklenz if you have additional tricks and automations up your sleeve that make the combination of Mac and iOS even more joyful.

Author: "Patrick Lenz" Tags: "Apps and Tools"
Send by mail Print  Save  Delicious 
Date: Sunday, 24 Feb 2013 11:40

For a change, this post isn't about my beloved standing desk. It's about the DODOcase BOOKback, which I ordered for my iPhone 5 and iPad Mini late last year and have been using ever since.

TL;DR Summary: If you're typically a "no case" user but are occasionally worried about the back of your devices getting messed up, the BOOKback is definitely for you.

My iPhone 5 and iPad Mini, each with a BOOKback attached

My iPhone 5 and iPad Mini, each with a BOOKback attached

The BOOKback is a very simple product. It consists of a thin layer of Moroccan leather that is applied to the back of your iDevice using an adhesive. Supposedly, it can even be peeled off and re-applied, which I, admittedly, haven't tested yet.

What's great about the BOOKback is that it really is just that very simple, low-profile back protection and not a full case. Thus, both iPhone and iPad remain fully compatible with the plethora of available accessories such as car cradles and the Elevation Dock, two things I put my iPhone in and out several times a day.

Of course, it also retains full compatibility with sleeves and the official Apple Smart Covers (and their many immitations), so that you can have a little protection for the front pane of glass as well.

It's an incredibly thin layer of Moroccan leather

It's an incredibly thin layer of Moroccan leather

Apart from scratch-proofing the back of your iDevice, it also removes the built-in slippery-factor that is inherent to almost all devices Apple ships these days. It feels great in your hand and you no longer need to hesitate when you put in on flat and slippery surfaces all around you, like tabletops, car roofs (please don't leave it there), or Steve Ballmer's head.

One thing that I found it doesn't work too well with, though, is The Glif, which put a noticeable dent into my iPhone's back cover when I used the two together. But apart from that, I haven't found a single accessory that wasn't compatible with the BOOKback. It even still fits the confusingly similar-named BookBook with a little bit of persuasion.

The iPhone 5 camera hole

The iPhone 5 camera hole

After using the BOOKback on two of my devices for close to 8 weeks I can attest that it ages very well. In fact, it may even get prettier the more it's used, as your own usage brings out a very own kind of personality. Yes, using my iPhone 5 with The Glif left the aforementioned marks in the leather, but it could be worse. And like a nice leather jacket or belt, things like these will tell a story over time.

I didn't have a problem with loose fabric or partially imperfect adhesive on any of my devices. The BOOKback sticks to the device just like on the first day. (And as the photographs in this article will unmistakenly document, I don't treat my devices like raw eggs. They're tools and they're being used day in and out.)

The embossed logo, also available in red

The embossed logo, also available in red

In summary, I can highly recommend anyone looking for a bit of minimalist protection for an iPhone or iPad to take a shot at the BOOKback. It's available in the DODOcase Online Store for $9.95 for iPhone, $19.95 for iPad mini, and $24.95 for iPad.

Author: "Patrick Lenz" Tags: "Reviews"
Send by mail Print  Save  Delicious 
Date: Friday, 15 Feb 2013 13:06

Manton Reese’s newest venture is SearchPath, a hosted blog search engine.

Now, most blogging software, like the elephant in the room, already comes with a built-in search engine or at least has one readily available as a plugin.

If you, however, follow a recent trend of going with the a static site generator, your only options would be a custom Google (or Duckduckgo) search or writing enough nerdy material to be invited to participate in NerdQuery, since the blog itself doesn't have any dynamic component to implement a search engine on your own. (And there are a lot of Internet-famous supporters like Brett Terpstra, who recently converted from WordPress to a custom install of Jekyll.)

Enter SearchPath.

SearchPath integrates into your site with a simple JavaScript snippet that you'll receive after a no-fuss signup process that just asks for your site URL and an email address. That's right, SearchPath doesn't even have passwords. If you need to login again, you provide your email address and a sign-in link is sent to you by email, signing you in with a long-living cookie.

After you integrate the snippet into your site's HTML code, SearchPath starts crawling your site. It does so the classic way of simply downloading the homepage of the site and then following every link it can find on that page, recursively. You can exclude certain URLs, too. Or just exclude whole folder structures by using robots.txt files. No need to mess with the generation of site maps at all.

One thing to watch out for is the validation of your site if you're trying to re-use an existing search input field, in which case you need to modify the JavaScript embed snippet. The verification process seems to expect the embed code unchanged and will not verify the site properly if it doesn't match character by character. As a workaround, simply verify your site ownership prior to mucking with the embed code.

The SearchPath dashboard provides simple stats such as the number of pages it has crawled, the date of the last crawl attempt, and popular search keywords users have searched for.

SearchPath comes with a trial limited to 2 search results and is $8 per month for a full account. Yearly subscriptions are 20% off.

Give it a try using the search form in the right sidebar on this site.

Author: "Patrick Lenz" Tags: "Apps and Tools"
Send by mail Print  Save  Delicious 
Date: Monday, 04 Feb 2013 13:10

I have tried to write this article for many months, but couldn't.

Originally, it was intended to be a simple comparison of stands that allow you to lift your portable Apple computer up from your desk, as a means to using an external keyboard, mouse, and display. I had written up notes comparing the new Twelve South HiRise to classics such as the Rain Design mStand and the Griffin Elevator.

As it turns out, I'm no longer using a stand to lift up my portable Apple computer today. And a recent episode of Gabe's Generational made me rethink my original article into what you have in front of you right now.

But let me back up for a moment.

My Current Desk Setup

My Current Desk Setup

A Disclaimer

What you will read in the paragraphs to follow is a personal recollection of thoughts and experiences that I've had over the past 18 months or so. It is by no means medical or therapeutic advice. I am not a doctor.

Painful to Describe

I'm a software developer. I type a lot. I also don't work out as much as I should. And I don't sleep enough.

Starting in late 2011, I developed symptoms of a constant pain in my right forearm. It's hard to pinpoint where and when exactly it started. I do, however, associate my attendance at a weeklong photography workshop as a key element in the beginnings of this pain, which would later be diagnosed as RSI, or Repetitive strain injury.

From Wikipedia:

Repetitive strain injuries (RSIs) are "injuries of the musculoskeletal and nervous systems that may be caused by repetitive tasks, forceful exertions, vibrations, mechanical compression (pressing against hard surfaces), or sustained or awkward positions".

I have been dealing with the aftermath of a pinched nerve since I was 20. So pain in and of itself is not foreign to me. As they say, you can alleviate the pain of a pinched nerve, but there's no real cure, not even surgery. It's something you just have to deal with for the rest of your life.

This new pain, then, was just another obstacle between me and getting my job done, and was dealt with accordingly. I started wearing a wrist brace for a couple of days. Then I started wearing an elbow sleeve. I started taking pain killers. And went through a pack of pain relieve cream or two.

At the time I was using a regular Apple Keyboard and a Magic Mouse, neither of which could be considered terribly ergonomic. Since my left arm was fine at the time I switched to the Apple Magic Trackpad as I was able to reprogram myself to use it with my left hand (something that simply didn't work with a regular mouse).

Of course, before long my left arm started acting up as well. I wore two wrist straps and two elbow sleeves at times, which made me look more like an out-of-place hockey player rather than a programmer.

At that point I started seeing a physician. As doctors go, he wanted to give me a sick note for 4 weeks straight, which, being self-employed, I respectfully declined. Instead, I went into physiotherapy for a couple sessions. Lateral friction is what the prescription said. With ice.

The sessions came and went. The pain stayed.

More Drastic Measures

In the summer of 2012, with a baby due any moment, I started looking at more drastic measures.

I had gotten a standing desk a while back to fight the occasional reoccurrence of my back acting up. Since I'm working a combination of an actual office and my home office, a second standing desk was in order.

Additionally, I was looking at alternative input devices. Up to this point, I had stuck with the Magic Trackpad, even though it didn't help much. After a (tiny) bit of research I went with the Microsoft Natural Ergonomic Keyboard 4000 (which is quite a mouthful), as it was readily available from Amazon and I could easily return it in case it would stink.

Being unhappy with the status quo at the then current physician, I also swapped him out for another. Instead of physiotherapy, he suggested injections, spread out over several weeks. These hurtful sessions ended some time in early December of 2012. My sleep schedule was worse than ever before, as anyone with a newborn around will probably know.

I had experimented with earplugs to shield myself from the nightly attacks from the crying baby, but that made my tinnitus worse, so I stopped using them and dealt with the interruptions. (Yes, I happen to be broken all over the place.)

Frustrated and still in pain, I went back to research online. Besides the usual slew of mechanical keyboards that have developed such a tremendous following over the past few years, one brand kept being mentioned by others with similar pain points: Kinesis.

Kinesis actually makes a variety of drastic and not-so-drastic ergonomic keyboards. From fully vertical models that I couldn't wrap my head around to the Advantage and Advantage Pro in their "Contoured" line. The latter is a programmable keyboard with an extreme split between the keys for the left and right hand and modifier keys that have been moved around to be used with your thumbs instead of your pinkies.

Unlike the Microsoft Natural, the Kinesis products are obscure enough to not be carried by major retailers such as Amazon. Kinesis does have two German distributors, both of which happen to roughly double the price and do not carry any inventory, which kind of left me hanging.

I went with two refurbished models from the official Kinesis online store in the US and paid half of a third keyboard in shipping. But I'd do it again in a heartbeat. The store staff is super helpful and the refurbished models are in perfect working order.

Re-learning to Type

When my keyboards arrived in January of 2013 I had considered myself a pretty quick typer. I even had formal touch-typing training some twenty years ago.

As it turns out, my recollection of that formal training was spotty at best. Just as any review of the Kinesis keyboard claims, it'll show you in no time where you cheated along the way. Letters in the middle of the keyboard being hit with the wrong hand? Check. Only ever using a single shift key instead of both? Check. Not properly following the adjacent letters up and down with the appropriate finger? Check!

Let alone all the extra keys you need for programming. Or the cursor keys. I cursed those keys. So. Much.

In order to get myself out of this 10 words per minute misery that I ended up finding myself in, I started following the training materials Kinesis tosses into the packaging of their keyboards. I also downloaded Type Fu from the AppStore and dutifully trained myself on this new keyboard until I was back to 60WPM at least and able to work on basic things again.

To go along with my fancy new keyboard, research had shown the Evoluent vertical mouse to be very effective. Sure, it may not be as fancy as the Handshoe Mouse or the 3M Ergonomic Mouse. But since it's got great reviews from similarly suffering human beings, I went ahead and ordered two of them along with a gel-based wrist support pad from Belkin.

Kinesis Advantage and Evoluent VerticalMouse 4

Kinesis Advantage and Evoluent VerticalMouse 4

Well, what can I say, at the time of this writing, I'm a little more than 2 full work weeks into this new setup and for the first time in 18 months my arms don't feel like they're about to fall off. The constant pain in my elbow improved considerably, my right middle and ring finger, both of which tended to block up frequently over a workday, are both substantially more relaxed.

Beyond the Equipment

Of course, simply swapping out a few plasticky things on your desk isn't going to solve all of your problems.

For me, using a height-adjustable standing desk not only helps my back pain, it also varies my posture enough throughout the day and lets me pace around more when I'm on the phone than I would when sitting down.

Being height-adjustable has the added benefit that, when I'm getting tired, I can just sit down and still have the same equipment right in front of me. I'm still using my 13 year old Aeron as my chair and it is still a great to kick back and relax occasionally.

Also, I always underestimated the power of stretching. Even though he couldn't fix my pain, teaching me a proper way to stretch my elbow and forearm is one thing I took away from my second physician. These days, I have a reminder setup in OmniFocus that pops up every 3 hours and reminds me to get up and stretch.

Another useful exercise is the use of a Powerball to strengthen the muscles in your shoulder and forearm. I wouldn't advise doing so when you're in severe pain however, so cure the pain first and then start exercising so it doesn't happen again.

Lastly, drink a lot of water. Seriously.

Closeup of the Kinesis Advantage

Closeup of the Kinesis Advantage

Grip of Death

Another habit that I'm trying to break more and more is one-handed use of my iPhone or the prolonged use of the iPhone period. While it's remarkable what you can do with a device that fits in your pocket these days (even if it's a bigger pocket in the case of the iPad and iPad mini), the ergonomics of those devices are questionable at best.

Especially if you grip your phone with only one hand and use that same hand to operate the touch screen and type, it puts severe strain on the muscles in your forearm up to and including your elbow due to the twisted arm position and combination of gripping and reaching with your thumb.

As a result, everything that takes more than two minutes to do on a mobile device I'll try to save for later do get done when at my desk with a proper keyboard and monitor. Deferring tasks while working through my inbox on iOS devices is easier than ever nowadays with the help of "Mail Drop to Inbox", which is part of the Omnigroup's OmniSync Server for OmniFocus.

Next Steps

While I'm still working on restoring my typing speed from before my switch to the Kinesis Advantage, I also incorporated additional tips and tricks from around the web into my workflow.

Steve Losh's post from last year, for example, includes one way to deal with bad habits of only using one shift key. Using the awkwardly-named KeyRemap4MacBook, he simply maps the wrong combinations to not output anything at all, therefore efficiently training your brain to do the right thing instead.

Building on top of Steve's setup with the Hyper Key from the same article, the ever-great Brett Terpstra shared his Hyper Key Shortcuts along with several of his own mappings and creations, all of which are highly recommended.

If all this keyboard customisation sounds completely off-putting to you, just do yourself (and your fingers) a favour and map the (useless) caps lock key to something useful, which, in Mac OS X, is even possible without any third party hacks or tweaks.

Remapping Caps Lock

Remapping Caps Lock

Happy typing.

Author: "Patrick Lenz" Tags: "Personal"
Send by mail Print  Save  Delicious 
Date: Saturday, 15 Dec 2012 13:56

The web is abuzz this week with what seems to be everyone's favorite new icon set to use as a replacement for OmniFocus' default icons for perspectives: The Perspective Icons from Icons & Coffee.

Perspective Icon Set from Icons & Coffee

Perspective Icon Set from Icons & Coffee

For me, personally, the Icons & Coffee set is way too colorful and distracting. I've picked up the Stylistica icon set earlier this year and still greatly prefer it. While not created specifically with OmniFocus perspectives in mind, it's much less "in your face" due to its homogeneous, monochromatic nature and it's also free for personal use.

Stylistica Icon Set

Stylistica Icon Set

OmniFocus perspective icons can only be set on the Mac version of OmniFocus but will sync nicely to the iOS versions.

Stylistica Icons in OmniFocus for iPhone

Stylistica Icons in OmniFocus for iPhone

PS: Icons are mostly a matter of taste. Use what fits your taste and style best. Experiment. Don't follow anyone's advice blindly.

Author: "Patrick Lenz" Tags: "Design"
Send by mail Print  Save  Delicious 
Date: Saturday, 15 Dec 2012 07:18

The web is abuzz this week with what seems to be everyone’s favorite new icon set to use as a replacement for OmniFocus' default icons for perspectives: The Perspective Icons from Icons & Coffee.

Perspective Icon Set from Icons & Coffee

Perspective Icon Set from Icons & Coffee

For me, personally, the Icons & Coffee set is way too colorful and distracting. I’ve picked up the Stylistica icon set earlier this year and still greatly prefer it. While not created specifically with OmniFocus perspectives in mind, it’s much less “in your face” due to its homogeneous, monochromatic nature and it’s also free for personal use.

Stylistica Icon Set

Stylistica Icon Set

OmniFocus perspective icons can only be set on the Mac version of OmniFocus but will sync nicely to the iOS versions.

Stylistica Icons in OmniFocus for iPhone

Stylistica Icons in OmniFocus for iPhone

PS: Icons are mostly a matter of taste. Use what fits your taste and style best. Experiment. Don’t follow anyone’s advice blindly.

Author: "Patrick Lenz" Tags: "omnifocus, icons"
Send by mail Print  Save  Delicious 
Date: Thursday, 29 Nov 2012 22:50

Brett Terpstra has been at it again recently with the implementation of a cough button based on a clever combination of PHP and jQuery to give you an iPhone-friendly mini web app to mute and unmute Skype with a simple tap on your phone.

While I’m not recording podcasts, I am on lengthy Skype conference calls quite often, which require quick mute/unmute action to chime in on a particular topic while not annoying the rest of the participants with random office noise the rest of the time. (Or the literal crying out loud of a newborn.)

My iPhone, however, is on a pretty aggressive auto-lock timeout and unlocking an iPhone locked with a 10-character alphanumeric passcode just to mute and unmute a Skype call sounds rather tedious to me. So I decided to repurpose the guts of Brett’s PHP script into a set of Keyboard Maestro macros that you can trigger pretty much any way you want.

Most useful to me is a simple toggle to mute if I’m currently unmuted (and vice-versa) that works globally, no matter which application I happen to be in at that given moment.

Toggle Mute via ⌘-⇧-M

Toggle Mute via ⌘-⇧-M

This macro, triggered by the same keyboard shortcut that triggers muting/unmuting in Skype proper, first checks for the current mute status by sending the GET MUTE command via AppleScript. The result of this are then saved off in a Keyboard Maestro variable.

Using a Keyboard Maestro conditional, Skype is then sent either the MUTE ON or MUTE OFF commands, again via AppleScript, depending on the current mute status that we stored in a variable in the previous step.

In order to implement an actual cough button (where muting just lasts for as long as you keep a button pressed down) I created a second set of macros:

Mute when a certain key is pressed

Mute when a certain key is pressed

Unmute when the key is released

Unmute when the key is released

For the moment, my trigger key for the cough button mode is the “Fn” key on my Apple Bluetooth Keyboard, similar to what Shush uses by default.

At this point you can go bonkers with triggers for these macros both from another Mac or even your phone (although that’d beg the question why you didn’t use Brett’s original solution in the first place) since Keyboard Maestro supports a plethora of macro triggers, including some obscure ones like playing a certain MIDI note. (Because, well, why not.)

In case you’re interested in using Keyboard Maestro for managing your Skype muting I’ve provided my set of three macros available for download.

Author: "Patrick Lenz" Tags: "mac, popular, code, keyboard maestro, sk..."
Send by mail Print  Save  Delicious 
Date: Wednesday, 28 Nov 2012 21:44

I was one of the 12,521 backers of the original Elevation Dock on Kickstarter. When my docks finally shipped in early October, I had already been using my iPhone 5 for more than a week. Thus, turning the precision machined pieces of aluminium into paperweights.

On November 5, ElevationLab announced the availability of their Lightning Adapter for pre-order and I ordered two of them. The adapters, which still hover around delivery times of 2-3 weeks, shipped on November 20 and were delivered to my doorstep on Monday of this week, which actually isn’t too bad given they had to travel from Portland to rainy Germany during the Thanksgiving holidays.

The installation process is straightforward. You unscrew the base plate using one of the two included hex tools, rip out the 30-pin connector with its little circuit board and rubber cover, and screw the shiny, anodized red adapter into the dock in its place with the other hex tool.

Base plate without Lightning cable

Base plate without Lightning cable

As with all car mounts I’ve seen so far, the Lightning adapter doesn’t actually come with a Lightning connector (or cable for that matter). You have to re-purpose one of the spare cables you will likely have accumulated ever since you’ve started to notice in just how many places you had the luxury of charging your previous phone.

When you re-mount the base-plate into the dock, you have to pretty heavily bend the end of the Lightning cable to fit it in place. This is likely in part due to the fact that the cable isn’t bolted onto anything in the adapter itself. So in order to not yank out the cable when you lift the phone out of the dock, it actually has to be clamped into the base at a 90 degree angle.

Lightning connector fitted into Elevation Dock

Lightning connector fitted into Elevation Dock

After re-assembly of the dock, it was time to test how well it would hold up to the promise of one-handed operation. In the original Kickstarter pitch video, they rightfully mocked the dock Apple made for the iPhone back in the day with its tendency to lift from the table in its entirety whenever you tried to pick up your phone.

Long story short, even given its noticeable weight, the Elevation Dock has a similar problem with the friction built into the iPhone 5’s Lightning connector. Grabbing just the phone will lift the dock as a whole off the table and even rocking the phone will not get it out easily. A bit of a countermove of resting your pinky on the dock behind the phone itself and a slight wiggle is usually enough to separate the two, though.

While not ideal with an iPhone 5, the Elevation Dock is still a great accessory and I do appreciate ElevationLab’s efforts to make their original product survive the retirement of the 30-pin connector.

Author: "Patrick Lenz" Tags: "iphone, accessories"
Send by mail Print  Save  Delicious 
Date: Wednesday, 28 Nov 2012 14:13

I was one of the 12,521 backers of the original Elevation Dock on Kickstarter. When my docks finally shipped in early October, I had already been using my iPhone 5 for more than a week. Thus, turning the precision machined pieces of aluminium into paperweights.

On November 5, ElevationLab announced the availability of their Lightning Adapter for pre-order and I ordered two of them. The adapters, which still hover around delivery times of 2-3 weeks, shipped on November 20 and were delivered to my doorstep on Monday of this week, which actually isn't too bad given they had to travel from Portland to rainy Germany during the Thanksgiving holidays.

The installation process is straightforward. You unscrew the base plate using one of the two included hex tools, rip out the 30-pin connector with its little circuit board and rubber cover, and screw the shiny, anodized red adapter into the dock in its place with the other hex tool.

Base plate without Lightning cable

Base plate without Lightning cable

As with all car mounts I've seen so far, the Lightning adapter doesn't actually come with a Lightning connector (or cable for that matter). You have to re-purpose one of the spare cables you will likely have accumulated ever since you've started to notice in just how many places you had the luxury of charging your previous phone.

When you re-mount the base-plate into the dock, you have to pretty heavily bend the end of the Lightning cable to fit it in place. This is likely in part due to the fact that the cable isn't bolted onto anything in the adapter itself. So in order to not yank out the cable when you lift the phone out of the dock, it actually has to be clamped into the base at a 90 degree angle.

Lightning connector fitted into Elevation Dock

Lightning connector fitted into Elevation Dock

After re-assembly of the dock, it was time to test how well it would hold up to the promise of one-handed operation. In the original Kickstarter pitch video, they rightfully mocked the dock Apple made for the iPhone back in the day with its tendency to lift from the table in its entirety whenever you tried to pick up your phone.

Long story short, even given its noticeable weight, the Elevation Dock has a similar problem with the friction built into the iPhone 5's Lightning connector. Grabbing just the phone will lift the dock as a whole off the table and even rocking the phone will not get it out easily. A bit of a countermove of resting your pinky on the dock behind the phone itself and a slight wiggle is usually enough to separate the two, though.

While not ideal with an iPhone 5, the Elevation Dock is still a great accessory and I do appreciate ElevationLab's efforts to make their original product survive the retirement of the 30-pin connector.

Author: "Patrick Lenz" Tags: "Reviews"
Send by mail Print  Save  Delicious 
Date: Monday, 26 Nov 2012 20:46

My daughter Gwendolyn has been practicing athletic gymnastics for 2 years now. Within those two years, she’s been able to train up to a level that let her win a first and a second place at two regional championships.

She’s with a talent school that recently went homeless. The parent club housing the talent school forced them to move out for “financial reasons”.

At that point, the parents of the 14 gymnasts decided to run a fundraiser to be able to give the talent school a home again. Apart from a plethora of meetings and trying to win over local sponsors, one of my offers to help was a portfolio shoot in one of the gyms where our refugees were able to score a weekly 3 hour training slot. (Seriously, this could totally turn into another season of Make It or Break It.)

I’ve never shot athletes in a staged environment before and I’ve been very upfront with the group that we could very well end up with nothing usable at all.

My only prior experience covering gymnastics athletes was more or less covering the kids' tournaments from the sidelines without official credentials. (David Black unfortunately happened to call Scott Kelby when he had a photographer’s spot to give away for the Evolution event in 2011.)

Indoor gymnastics events are traditionally and hopelessly submerged in crappy lighting (both quality and quantity), many competitions going on at once, and hordes of parents tackling you non-stop trying to score the perfect shot of their kid while waving their arms holding an iPad.

During those events I usually end up tucked away in a corner somewhere with my Nikon D3s on a monopod with my trusty 300 f2.8 and a Nikon D3 on my shoulder with the just-as-trusty 70-200 f2.8. To freeze the action you need shutter speeds of 1/800 of a second and quicker, so given the aforementioned crappy lighting conditions you need to stay upwards of ISO 3200 most of the time.

This is one rare occasion where the camera and lens combination just needs be situated in the pricier segment, just because it’s pretty much impossible to get a decent exposure in these lighting conditions if your equipment doesn’t let in enough light or starts spitting noisy images at you as soon as you cross the boundaries of ISO 800.

Cassie on Vault

Cassie on Vault

With this staged shoot, then, I could finally get back in control regarding the lighting and to some extent posture of the gymnasts. (You do have to learn a slew of vocabulary to halfway know what the gymnasts are talking about in the first place.)

My wife came up with motifs that required hard, directional light to articulate the posture and dynamics of the exercise as well as mostly black surroundings to make the subject pop. Knowing my demanding perfectionism, I prepared two separate lighting setups in the studio on the morning of the shoot.

The first setup involved some bigger guns as I wasn’t able to rule out the fact that we could be stuck shooting repetitions of the same exercise all night trying to get a shot that I liked. I prepped two Elinchrom Quadra units with the “Action Head” giving me extra short flash duration, along with a Skyport trigger for my camera.

As with most studio flashes, the Quadras will not sync above 1/250 of a second, causing black bars on one end of the frame if you go beyond that. So while the flash duration itself may only be 1/6000 of a second and totally freezing the action, the shutter needs to stay open longer, potentially letting in more ambient light than I’d like in my picture, not giving me the mostly dark background that we needed. To compensate (and to still be able to shoot with a wide open aperture of 2.8) I packed a NiSi Fader ND Filter.

Of course, my lights would just as well be affected by the ND filter as the ambient light1, so they’d in turn need to pump out more light. But as I planned to work my lights close to the subject and given the 400Ws of the Quadras, I wasn’t too worried.

Setting up on bars

Setting up on bars

The second setup I prepared consisted of two bare Nikon SB-900 Speedlights triggered with PocketWizard MiniTT1 and FlexTT5. This PocketWizard system2 supports a form of high-speed sync (they labelled it HyperSync and likely patented it) with both Nikon and Canon bodies and allows for shutter speeds of up to 1/8000 of a second in some configurations. Their Wiki even claims it is more efficient than the camera manufacturers' own high-speed sync, allowing for longer battery life and/or better reach.

Since my assistant was mostly concerned getting the gymnasts prepared and keep them engaged, I also used an AC3 ZoneController to be able to change the light output of my flashes from the camera position.

Thanks to HyperSync this second setup didn’t involve an ND filter, but was also much less powerful in terms of raw flash output and slower in total recycling times between exposures.

Of course, being the rogue club that we are and only taking shelter in this gym, I unloaded the second, lighter kit first and ended up not using the studio strobe setup at all because the speedlights worked really, really well.

Floor routine

Floor routine

Even given the army of overhead fluorescent lights I was able to shoot at f2.8, 1/800, and ISO 200 and still keep the background mostly dark. The flashes had to work between ¼ and ½ power on varying zoom levels (14mm to 35mm) and were recycling so quickly that even occasional continuous shooting was possible.3

Using the lighter setup also meant we were able to move quicker between several disciplines such as vault, bars, floor, and beam. Since the whole gym is basically one bouncy castle, light stands with just featherweight speedlights on them also weren’t endangered to tip over from someone passing by in a distance like they would’ve been with a studio light.

In under three hours, we managed to initially set-up, take care of the occasional case of bad hair day, and cover 4 different scenes (albeit, of course, with similar lighting setups). I shot 300 frames and we ended up with 25 picks for the fundraiser portfolio, including portraits of each of the gymnasts.

Portrait of Gwen

Portrait of Gwen

The only issue I ran into when relying on continuos shooting to capture some of the faster paced elements was the traditional overheating of the SB-900s. This is supposedly less of an issue with an external battery pack and also seems to be addressed somewhat in the new SB-910. On my next gym shoot, I will definitely pack my other two SB-900s as well to either swap units between scenes or setup two speedlights on each side to reduce the amount of power each of them has to push.

All in all, I’m very happy with results of this first staged gymnastics shoot, which surely won’t be my last.

  1. Remember, shutter speed solely controls the ambient, aperture and ISO affect both ambient and flash.

  2. Wouldn’t it be nice if we had a single terminus to call this group of triggers and transceivers?

  3. I didn’t use the (disgustingly expensive) SD-9 battery packs for the flashes, which would’ve improved recycle times even more.

Author: "Patrick Lenz" Tags: "photography, gymnastics"
Send by mail Print  Save  Delicious 
Date: Monday, 26 Nov 2012 16:10

BookBook Generations

BookBook Generations

I’ve been a fan of the Twelve South BookBook for iPhone cases ever since the first, vintage brown version shipped for my iPhone 4 back in the day.

To be quite blunt, I didn’t like the brown, but the black version wasn’t available yet. The combination of phone case and wallet was just so very intriguing and useful to me. When Twelve South announced the black version later on, I was using an iPhone 4S and my brown version was already well worn. While the black version was unchanged feature-wise, it was just that much nicer and I’ve enjoyed using it up to the point when my iPhone 5 shipped. Of course, it didn’t fit the then current BookBook version.

BookBook, Volume 5

BookBook, Volume 5

Since the day I had switched to the iPhone 5 and was in turn forced to switch from using the BookBook’s built-in wallet functions to a dedicated wallet, I lost count of the occasions I had forgotten to take that dedicated wallet with me. I’ve almost run out of gas because I didn’t have any credit cards with me to fill up. I went without lunch several times because I didn’t have any cash with me. Thank goodness I never ran into a police check without being able to show my driver’s license.

With much rejoice I received a newsletter from Twelve South last Monday informing me that I’d no longer have to either put my wallet in my shoe (and end up putting on a different pair) or make a fool out of myself for going out without my wallet yet again – they had come out with an updated version of the BookBook, optimised for the iPhone 5.

Twelve South Logo

Twelve South Logo

And what an update it is. Twelve South managed to rethink most of the elements that make up the BookBook and deliver an excellent experience for iPhone 5 owners. It features one more credit card slot, an updated holding mechanism, and, finally, a camera hole in the back.

Of course, it retained the excellent leather fabric, the vintage book design, and the gorgeous stitching.

The open BookBook case

The open BookBook case

The new mounting mechanism consists of a slender inner-frame that your phone is just clipped into instead of the all-leather insert of the previous generation that required your phone to be inserted from the top and secured with a dedicated flap, albeit a very pretty one. This new generation holding frame is almost invisible if you look at it top down. Every millimeter of the iPhone 5’s screen is visible, all buttons are accessible, yet the phone is completely securely mounted in place.

Since I’m using a dash mount in my car I’m putting my phone in and out of its case fairly frequently. Time will tell if the mounting frame loosens over time and gets floppy. I sure hope not.

The built-in camera hole

The built-in camera hole

The other welcome addition of this new version of the BookBook is a camera hole in the back. Thanks to that, you don’t have to take the phone out of the case to take a picture with the excellent new 8MP camera of the iPhone 5. Especially with kids running around the house making cute faces when you’re least prepared, those moments now can be nicely captured even with your phone “stuck” in its BookBook.

My new (classic black, of course) BookBook shipped today and I’m looking forward to being well fed for the foreseeable future.

Author: "Patrick Lenz" Tags: "iphone, review, accessories"
Send by mail Print  Save  Delicious 
Date: Sunday, 25 Nov 2012 14:15

My daughter Gwendolyn has been practicing athletic gymnastics for 2 years now. Within those two years, she's been able to train up to a level that let her win a first and a second place at two regional championships.

She's with a talent school that recently went homeless. The parent club housing the talent school forced them to move out for "financial reasons".

At that point, the parents of the 14 gymnasts decided to run a fundraiser to be able to give the talent school a home again. Apart from a plethora of meetings and trying to win over local sponsors, one of my offers to help was a portfolio shoot in one of the gyms where our refugees were able to score a weekly 3 hour training slot. (Seriously, this could totally turn into another season of Make It or Break It.)

I've never shot athletes in a staged environment before and I've been very upfront with the group that we could very well end up with nothing usable at all.

My only prior experience covering gymnastics athletes was more or less covering the kids' tournaments from the sidelines without official credentials. (David Black unfortunately happened to call Scott Kelby when he had a photographer's spot to give away for the Evolution event in 2011.)

Indoor gymnastics events are traditionally and hopelessly submerged in crappy lighting (both quality and quantity), many competitions going on at once, and hordes of parents tackling you non-stop trying to score the perfect shot of their kid while waving their arms holding an iPad.

During those events I usually end up tucked away in a corner somewhere with my Nikon D3s on a monopod with my trusty 300 f2.8 and a Nikon D3 on my shoulder with the just-as-trusty 70-200 f2.8. To freeze the action you need shutter speeds of 1/800 of a second and quicker, so given the aforementioned crappy lighting conditions you need to stay upwards of ISO 3200 most of the time.

This is one rare occasion where the camera and lens combination just needs be situated in the pricier segment, just because it's pretty much impossible to get a decent exposure in these lighting conditions if your equipment doesn't let in enough light or starts spitting noisy images at you as soon as you cross the boundaries of ISO 800.

Cassie on Vault

Cassie on Vault

With this staged shoot, then, I could finally get back in control regarding the lighting and to some extent posture of the gymnasts. (You do have to learn a slew of vocabulary to halfway know what the gymnasts are talking about in the first place.)

My wife came up with motifs that required hard, directional light to articulate the posture and dynamics of the exercise as well as mostly black surroundings to make the subject pop. Knowing my demanding perfectionism, I prepared two separate lighting setups in the studio on the morning of the shoot.

The first setup involved some bigger guns as I wasn't able to rule out the fact that we could be stuck shooting repetitions of the same exercise all night trying to get a shot that I liked. I prepped two Elinchrom Quadra units with the "Action Head" giving me extra short flash duration, along with a Skyport trigger for my camera.

As with most studio flashes, the Quadras will not sync above 1/250 of a second, causing black bars on one end of the frame if you go beyond that. So while the flash duration itself may only be 1/6000 of a second and totally freezing the action, the shutter needs to stay open longer, potentially letting in more ambient light than I'd like in my picture, not giving me the mostly dark background that we needed. To compensate (and to still be able to shoot with a wide open aperture of 2.8) I packed a NiSi Fader ND Filter.

Of course, my lights would just as well be affected by the ND filter as the ambient light, so they'd in turn need to pump out more light. (Remember, shutter speed solely controls the ambient, aperture and ISO affect both ambient and flash.) But as I planned to work my lights close to the subject and given the 400Ws of the Quadras, I wasn't too worried.

Setting up on bars

Setting up on bars

The second setup I prepared consisted of two bare Nikon SB-900 Speedlights triggered with PocketWizard MiniTT1 and FlexTT5. This PocketWizard system supports a form of high-speed sync (they labelled it HyperSync and likely patented it) with both Nikon and Canon bodies and allows for shutter speeds of up to 1/8000 of a second in some configurations. Their Wiki even claims it is more efficient than the camera manufacturers' own high-speed sync, allowing for longer battery life and/or better reach.

Since my assistant was mostly concerned getting the gymnasts prepared and keep them engaged, I also used an AC3 ZoneController to be able to change the light output of my flashes from the camera position.

Thanks to HyperSync this second setup didn't involve an ND filter, but was also much less powerful in terms of raw flash output and slower in total recycling times between exposures.

Of course, being the rogue club that we are and only taking shelter in this gym, I unloaded the second, lighter kit first and ended up not using the studio strobe setup at all because the speedlights worked really, really well.

Floor routine

Floor routine

Even given the army of overhead fluorescent lights I was able to shoot at f2.8, 1/800, and ISO 200 and still keep the background mostly dark. The flashes had to work between 1/4 and 1/2 power on varying zoom levels (14mm to 35mm) and were recycling so quickly that even occasional continuous shooting was possible. (I didn't use the (disgustingly expensive) SD-9 battery packs for the flashes, which would've improved recycle times even more.)

Using the lighter setup also meant we were able to move quicker between several disciplines such as vault, bars, floor, and beam. Since the whole gym is basically one bouncy castle, light stands with just featherweight speedlights on them also weren't endangered to tip over from someone passing by in a distance like they would've been with a studio light.

In under three hours, we managed to initially set-up, take care of the occasional case of bad hair day, and cover 4 different scenes (albeit, of course, with similar lighting setups). I shot 300 frames and we ended up with 25 picks for the fundraiser portfolio, including portraits of each of the gymnasts.

Portrait of Gwen

Portrait of Gwen

The only issue I ran into when relying on continuous shooting to capture some of the faster paced elements was the traditional overheating of the SB-900s. This is supposedly less of an issue with an external battery pack and also seems to be addressed somewhat in the new SB-910. On my next gym shoot, I will definitely pack my other two SB-900s as well to either swap units between scenes or setup two speedlights on each side to reduce the amount of power each of them has to push.

All in all, I'm very happy with results of this first staged gymnastics shoot, which surely won't be my last.

Author: "Patrick Lenz" Tags: "Photography"
Send by mail Print  Save  Delicious 
Date: Friday, 23 Nov 2012 14:40
BookBook Generations

BookBook Generations

I've been a fan of the Twelve South BookBook for iPhone cases ever since the first, vintage brown version shipped for my iPhone 4 back in the day.

To be quite blunt, I didn't like the brown, but the black version wasn't available yet. The combination of phone case and wallet was just so very intriguing and useful to me. When Twelve South announced the black version later on, I was using an iPhone 4S and my brown version was already well worn. While the black version was unchanged feature-wise, it was just that much nicer and I've enjoyed using it up to the point when my iPhone 5 shipped. Of course, it didn't fit the then current BookBook version.

BookBook, Volume 5

BookBook, Volume 5

Since the day I had switched to the iPhone 5 and was in turn forced to switch from using the BookBook's built-in wallet functions to a dedicated wallet, I lost count of the occasions I had forgotten to take that dedicated wallet with me. I've almost run out of gas because I didn't have any credit cards with me to fill up. I went without lunch several times because I didn't have any cash with me. Thank goodness I never ran into a police check without being able to show my driver's license.

With much rejoice I received a newsletter from Twelve South last Monday informing me that I'd no longer have to either put my wallet in my shoe (and end up putting on a different pair) or make a fool out of myself for going out without my wallet yet again – they had come out with an updated version of the BookBook, optimised for the iPhone 5.

Twelve South Logo

Twelve South Logo

And what an update it is. Twelve South managed to rethink most of the elements that make up the BookBook and deliver an excellent experience for iPhone 5 owners. It features one more credit card slot, an updated holding mechanism, and, finally, a camera hole in the back.

Of course, it retained the excellent leather fabric, the vintage book design, and the gorgeous stitching.

The open BookBook case

The open BookBook case

The new mounting mechanism consists of a slender inner-frame that your phone is just clipped into instead of the all-leather insert of the previous generation that required your phone to be inserted from the top and secured with a dedicated flap, albeit a very pretty one. This new generation holding frame is almost invisible if you look at it top down. Every millimeter of the iPhone 5's screen is visible, all buttons are accessible, yet the phone is completely securely mounted in place.

Since I'm using a dash mount in my car I'm putting my phone in and out of its case fairly frequently. Time will tell if the mounting frame loosens over time and gets floppy. I sure hope not.

The built-in camera hole

The built-in camera hole

The other welcome addition of this new version of the BookBook is a camera hole in the back. Thanks to that, you don't have to take the phone out of the case to take a picture with the excellent new 8MP camera of the iPhone 5. Especially with kids running around the house making cute faces when you're least prepared, those moments now can be nicely captured even with your phone "stuck" in its BookBook.

My new (classic black, of course) BookBook shipped today and I'm looking forward to being well fed for the foreseeable future.

Author: "Patrick Lenz" Tags: "Reviews"
Send by mail Print  Save  Delicious 
Date: Wednesday, 24 Oct 2012 13:44

Brett Terpstra has been at it again recently with the implementation of a cough button based on a clever combination of PHP and jQuery to give you an iPhone-friendly mini web app to mute and unmute Skype with a simple tap on your phone.

While I’m not recording podcasts, I am on lengthy Skype conference calls quite often, which require quick mute/unmute action to chime in on a particular topic while not annoying the rest of the participants with random office noise the rest of the time. (Or the literal crying out loud of a newborn.)

My iPhone, however, is on a pretty aggressive auto-lock timeout and unlocking an iPhone locked with a 10-character alphanumeric passcode just to mute and unmute a Skype call sounds rather tedious to me. So I decided to repurpose the guts of Brett’s PHP script into a set of Keyboard Maestro macros that you can trigger pretty much any way you want.

Most useful to me is a simple toggle to mute if I’m currently unmuted (and vice-versa) that works globally, no matter which application I happen to be in at that given moment.

Toggle Mute via ⌘-⇧-M

Toggle Mute via ⌘-⇧-M

This macro, triggered by the same keyboard shortcut that triggers muting/unmuting in Skype proper, first checks for the current mute status by sending the GET MUTE command via AppleScript. The result of this are then saved off in a Keyboard Maestro variable.

Using a Keyboard Maestro conditional, Skype is then sent either the MUTE ON or MUTE OFF commands, again via AppleScript, depending on the current mute status that we stored in a variable in the previous step.

In order to implement an actual cough button (where muting just lasts for as long as you keep a button pressed down) I created a second set of macros:

Mute when a certain key is pressed

Mute when a certain key is pressed

Unmute when the key is released

Unmute when the key is released

For the moment, my trigger key for the cough button mode is the “Fn” key on my Apple Bluetooth Keyboard, similar to what Shush uses by default.

At this point you can go bonkers with triggers for these macros both from another Mac or even your phone (although that’d beg the question why you didn’t use Brett’s original solution in the first place) since Keyboard Maestro supports a plethora of macro triggers, including some obscure ones like playing a certain MIDI note. (Because, well, why not.)

In case you’re interested in using Keyboard Maestro for managing your Skype muting I’ve provided my set of three macros available for download.

Author: "Patrick Lenz" Tags: "Apps and Tools"
Send by mail Print  Save  Delicious 
Date: Monday, 03 Sep 2012 13:50

One of the personal pet peeves that I have always had with Mac OS X’s Finder was the way it handled file selection in the context of cleaning up a folder, which usually involves deleting a file here and there.

Say, you’re cleaning up your download folder, cursoring through the list of files in either list view (⌘2) or column view (⌘3). Once you get to the point where the currently selected file is no longer needed, you hit ⌘⌫ and poof the file moves to the trash.

So far, so good.

Contents of a folder in Finder's list view

Contents of a folder in Finder's list view

However, up to and including Mac OS X 10.7 Lion, the Finder would then clear the selection and pretend that you didn’t care at which position in that (potentially outrageously long) list you were when you deleted the previous file.

What this means in practice is that in situations where you work through a list of files from top to bottom (a not entirely made-up scenario) you’ll end up losing your spot every time you decide to delete (or file away, with Alfred) one of the items in the list, starting over from the top. (Or using your mouse to re-select the next file, hoping you still remember which one it was.)

Enter Mountain Lion.

It’s a simple change indeed, but after deleting a file in Mountain Lion the Finder now maintains a persistent selection that will just jump to the item in the list that has taken the spot of the item you deleted.

And instead of rambling on for another 500 words, let me just show you the difference in a little video.

After I noticed this difference in behaviour, I dutifully checked John Siracusa’s Epic Mountain Lion Review over on Arstechnica, but couldn’t find any mention of this change.

Here’s hoping someone besides me does appreciate that there’s now one less peeve to worry about.

Author: "Patrick Lenz" Tags: "Apps and Tools"
Send by mail Print  Save  Delicious 
Next page
» You can also retrieve older items : Read
» © All content and copyrights belong to their respective authors.«
» © FeedShow - Online RSS Feeds Reader