Showing posts with label utility site. Show all posts
Showing posts with label utility site. Show all posts

Monday, January 23, 2012

Site of the Day: tineye.com

TinEye.com is amazingly search related site. You plug an image URL like:

 http://www.snopes.com/photos/natural/graphics/northpole.jpg

And it spits out all the pages the image is found on. (They call it a Reverse Image Search.)

How the heck did they do that?!

I'll be the first to admit, that I don't quite see how I'd actually use the service in my day to day web browsing. Sure, if I wanted to see if my photos were being reused on other sites, or if a random picture comes my way that I want to learn more about, it would be handy. But all in all, this is amazing technology, that I'm not yet sure how to leverage.

But who cares, it's so cool.

Bookmark the site and keep it around. One day, it's going to totally save the say.

To add to the cool factor, they even offer an api - again, how slick is that?!

Friday, January 07, 2011

Phone Friday: MusicGrid - Music generation for babies

Our little one is just beginning to see laptops and phones as more than a chew toy. We've got a ways to go, but I can see the wheels turning in his head as he begins to appreciate that these devices might have some real entertainment value. With that in mind, I'm really glad I found MusicGrid. The app's description just doesn't do it justice:

Technically a step sequencers, MusicGrid was inspired by the funky Tenori-on and the great online ToneMatrix.

Huh?

But download it and give it a try and it makes sense in just a few seconds. You're presented with a grid. As you rake your finger over the screen, various cells in the grid are turned on. While you're doing this, the program is sweeping across the grid playing a tone for each enabled cell.

Through, what I can only describe as magic, no matter what you draw you get a pleasing little song out of the deal.

Don't take my word for it, try the web version — ToneMatrix — that inspired the mobile app to see what I mean.

Music creation is made so simple, our 16 month old can play along. The tactile and interactive interface is perfect for kids of all ages.

I'd love to see a way to record the songs - but even without that feature, it's still a fun little app.

While not as sexy - it's also worth checking out the always impressive Toddler Lock. It let's our little one play with the screen without needing as much supervision, as he can't leave the app and call customers of mine.

Thursday, December 30, 2010

A Wonderful, Fantastic, Grand, Marvelous, Howling and Extrodinary API

I needed a facility for finding related words. Luckily, I was able to find the Big Huge Thesaurus API.

As web services go, it's pretty dang near perfect:

  • You can get up and running with a free API key for testing purposes in a few seconds
  • The API is as simple as invoking a URL in the format: http://words.bighugelabs.com/api/2/API_KEY/WORD_TO_LOOKUP/
  • The API will return a variety of formats, from basic text to JSON and XML
  • It's hacker friendly, in that you can rig up a php CURL function in a few minutes, or even just test it out in your web browser

In fact, here's the PHP code I wrote to access it. Feel free to use and enjoy:

/*
 * Find related words. 'word' is the word to search for.
 * `narrow_to_relationship' will cause just matches of a particular relationship
 * to return.
 *
 * Leave off the second option to get back all results.
 *
 * Possible values for narrow_to_relationship: syn (synonym),
 * ant (antonyms), rel (related) and sim (similar).
 *
 * Return back an array of arrays of data -or an array of a specific
 * type of words.
 */
function find_related_words($word, $narrow_to_relationship = false) {
  $key = BIGHUGELABS_API_KEY;
  $url = "http://words.bighugelabs.com/api/2/$key/" . urlencode($word) . "/";

  $ch = curl_init($url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_TIMEOUT, 3);
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
  $lines = preg_split('/[\n\r]/', curl_exec($ch));

  $results = array();
  foreach($lines as $l) {
    $values = explode("|", $l);
    if($narrow_to_relationship) {
      if($narrow_to_relationship == $values[1]) {
        $results[] = $values[2];
      }
    } else {
      $results[] = array('part' => $values[0], 'relationship' => $values[1], 'word' => $values[2]);
    }
  }
  return $results;
}

// Sample Usage
$I_am_a = find_related_words("hacker"); // get back all terms related to hacker
$I_want_to_be = find_related_words("hacker", "syn"); // get back a list of synonyms

Using a thesaurus is a simple way to make a user's input seem a lot smarter. I'm actually surprised I've gone this long without integrating one into an app before. Luckily, using the facility was a breeze.

Friday, December 10, 2010

Phone Friday: Pastedroid as ultra-lightweight publishing tool

I really like pastebin.com. They allow you to easily publish information (usually, code) so that others can access it via unique URL. The site has some cool features, such as keeping your data around forever or expiring it.

During a recent visit to the site, I noticed they are now offering Pastedroid an Android app for quickly generating Pastebin entries.

The app is setup much like you would expect to be: you can publish content, set various options (such as the subdomain to publish on) and review the past links you've published.

The result is a cool tool that could be used for publishing snippets of information with almost zero effort. Just enter the data, and Paste. Every bit of information gets it's own unique URL and is safely archived forever. By organizing your content into a subdomain, you can keep all your data together.

It's definitely worth experimenting with.

Monday, October 25, 2010

Been There Done That: Common Errors in English

Yes, I think I've probably made most of these common errors in English.

They are worth checking out - if only because of their wonderfully pithy explanations. For example:

Some people suppose that since “premises” has a plural form, a single house or other piece of property must be a “premise,” but that word is reserved for use as a term in logic meaning something assumed or taken as given in making an argument. Your lowly one-room shack is still your premises.

Oh, and how many times have I been told to write in the active voice? I'm tempted to print this explanation out and post it next to my computer:

There are legitimate uses for the passive voice: “this absurd regulation was of course written by a committee.” But it’s true that you can make your prose more lively and readable by using the active voice much more often. “The victim was attacked by three men in ski masks” isn’t nearly as striking as “three men in ski masks attacked the victim.” The passive voice is often used to avoid taking responsibility for an action: “my term paper was accidentally deleted” avoids stating the truth: “I accidentally deleted my term paper.” Over-use of passive constructions is irritating, though not necessarily erroneous. But it does lead to real clumsiness when passive constructions get piled on top of each other: “no exception in the no-pets rule was sought to be created so that angora rabbits could be raised in the apartment” can be made clearer by shifting to the active voice: “the landlord refused to make an exception to the no-pets rule to allow Eliza to raise angora rabbits in the apartment.”

Hmmm, maybe the Internet and Blogging won't be the downfall of the written word. Maybe giving people a platform to write, and the resources to learn to write well, will actually make for better writing?

Update: And, to help us all from taking any of this too seriously, I present to you Stephen Fry's take on language (thanks to Paul for sending me the link!):

Stephen Fry Kinetic Typography - Language from Matthew Rogers on Vimeo.

Thursday, October 07, 2010

TakeThemAMeal.com - Easy Meal Coordination

Our shul has been using this wonderfully simple, yet effective service to help coordinate delivery of meals to member's homes: TakeThemAMeal.com.

The site does just what you'd expect: an administrator fills in the details about where to deliver the meals, and for what dates, and then folks can mark down what dates they'll deliver the goods.

The service is a real winner because it insures that all the relevant details are out there for all to see - who's coordinating, who's got what dates, where to deliver the meals, relevant e-mail addresses and phone numbers and other critical info. There's even some handy recipes and tips worth checking out.

Oh, and it's free to use.

Wednesday, September 29, 2010

Rethinking Bookmark Sync

I was really bummed to hear that Xmarks is shutting down their service. They are one of the few web services I've tried and quickly become hooked on. With bookmark sync, browser based bookmarks Actually Work.

It takes a little time to setup a sync service, but once you do, the return is almost instant. All of a sudden, a single unified set of bookmarks is everywhere. Like I said, it made bookmarks useful for me again.

So, Xmarks is out - who should I try next? I decided to go with Firefox Sync, as the majority of my real surfing and web development happens in FF.

As I hoped, setting up Firefox sync was totally painless. In fact, it's so invisible, I almost didn't realize it wasn't working. My issue: I needed to disable Xmarks for sync to work.

One area where bookmarking sync'ing wasn't working particularly well for me was the tracking of potentially blog-worthy articles. I loved that I could drag a tab into a To Blog folder, and poof, I'd be able to easily find it later to blog about. The problem is, after having bookmarked about 105 articles, the list became really cumbersome to use within Firefox.

The solution I'm trying is to leverage Google Bookmarks for blog-worthy stories. Google Bookmarks is a no-frills bookmark tracking system, kind of like the big boys out there. But, in my case, I don't need all the features offered by those services.

The end result is that I now click a Bookmarklet to save a page worthy of writing about, instead of using native Firefox bookmarks.

I was able to import my 150 or so existing blog idea pages (the vast majority of which I won't write about) into Google Bookmarks, and it swallowed them up perfectly. It allows me to sort them by date, so I can easily browse through them. I'm thinking this will work well.

Now, if only some company will come along and save Xmarks at the last minute - I'd be glad to switch back to them in a minute.

Tuesday, September 21, 2010

Learn Hebrew One Clever Phrase at a Time

I stumbled on learnhebrew.org.il while trying to find the English meaning for a Hebrew phrase, and managed to get totally lost in it.

The site offers an impressive archive of translated Hebrew phrases. Along with the literal translation, a idiomatic one as well as longer description is provided. You can even hear the phrase spoken aloud in Hebrew. Click on the sample below to see what I mean:

It's a fun way to get acquainted with the language and a useful site to visit before your next visit to the Holy Land.

Thursday, August 26, 2010

Streaming Your Web Surfing Routine

If you use Google Reader already, you can skip this article. Nothing here for you.

1) Do you have a routine where you check more than one website throughout the day? Maybe you start your day by checking Knitting Daily then hop on over to PunkNews.org.

2) Do you use Google Reader yet?

If you answered Yes then No, then boy are you in for a treat.

Here's what you do: Sign up for Google Reader (it's free, so you've got no excuses). In the top right hand corner, there's a button labeled Add Subscription. Click it, and paste in the URL of a site you visit regularly. Now repeat this process with all the sites in your daily routine.

Now, instead of visiting a number of websites throughout the day, you can just visit your single Google Reader account. It's faster, more organized than trying to remember which sites you've visited.

There are a variety of other features you get with Google Reader: you can star articles that interest you, easily share articles, etc. But the real value in Google Reader is that it allows you to follow infrequently changing sites.

Suppose you find a site you really like, but go back to it every day for a week and it hasn't changed. Eventually, you'll just stop checking. With Google Reader, the site can remain dormant and as soon as new article is posted, it'll be there ready for you to read.

Thursday, August 12, 2010

Google Calendar Find: Event time can include a time zone

I've known that when you enter a new task in Google Calendar you can prefix it with a time to schedule it for the day. That is, I can say:

 12:30pm, Write up that blog post I was thinking about

My discovery today: if I add a timezone abbreviation to the time, it'll not only add the event, but convert it to my timezone. So, I can say:

 12:30pm PST, Talk with my surfer friend

This automatically gets added as an appointment at 3:30 PM my time.

Add to this the World Clock Labs option, and my Google Calendar makes coordinating with folks across multiple timezones much easier.

Friday, July 30, 2010

WebThumb: An Ideal Developer's Tool For Web Snapshots

Being able to take an on the fly screenshot of an arbitrary URL is a wonderfully slick feature to include in a web app. And while it's possible to rig up your own solution using Xvfb, using a third party solution is much less painful. Today I got to play with webthumb.bluga.net and pretty much fell in love.

It's about as developer friendly as you could ask:

  • Various pre-built API libraries to integrate with
  • A clean REST API that allowed me to rig up a quick and dirty curl+simplexml solution in no time
  • Lots of flexibility in terms of the sizes and formats of images generated
  • The option of including some special effects when generating the thumbnails, so they have a bit more umph.
  • Both polling and notification models for picking up images, allowing me to choose the approach that best fit my app (I went with the notification model)
  • A demonstration on their home page that lets you try out the service on any URL
  • A software developer behind it all who quickly and thoroughly answered questions about the service my client had

So yeah, I'm happy I found and am working with them.

Wednesday, April 21, 2010

3 New Google App Surprises

I just how I log into Google Apps and new goodies show up on a regular basis. Here are my latest three favorites:

  • Google Drawings - Bam! And just like that, Google now offers a simple drawing program from within Docs. Like Google Docs and Spreadsheets, it's mostly basic functionality. But, of course it's collaborative. Which means you can use it as an interactive whiteboard. There are other online whiteboard apps out there, but if you're already using Google Apps, this one is going to be easier to access.
  • Google Apps Script - Bam! And just like that, Google now offers a powerful way to add functionality that doesn't currently exist in the apps. A while back I saw this Google Apps Mail Merge setup and didn't know what to make of it. Now I get that they've given developers a way to create plugins. I haven't had a chance to look at this from a programmer's perspective, but this seems like it could be incredibly useful.
  • Enhanced Spreadsheet UI - Google Spreadsheets has gotten a usability face lift. Items like auto-complete of cell text and dragging and dropping have been added. My favorite feature, though, is that you can directly link to a sheet within a spreadsheet by taking the URL that Google provides you with, and adding &gid=XX where XX the sheet number. Mix this with short links, and you can now have URLs that take users right to the sheet you wanted them to see.

I've always thought it was clever how Google just let features more or less leak out. It's quite possible that the above features have been around for weeks or months. By doing so, there's just a sense of continual innovation going on.

Thursday, April 15, 2010

Team Building Through RSS

The other day, I was browsing through an old Linux Journal and learned about Planet - an RSS aggregator. Planet works by slurping in RSS feeds, and spitting out what appears to be a single blog.

I've actually been using their software for quite some time - as it's what one of the main Scheme Blogs runs to provide a community weblog.

As I was thinking about uses for this software, it occurred to me that it would actually make for an interesting team building tool. If I had an organization larger than myself and my wife, I'd probably be taking the following concept to my supervisor:

Why don't we have everyone in the organization, from CEO to unpaid-intern, submit a single RSS feed that they find valuable. We can then host a single internal corporate blog using Planet.

Benefits of this little project?

  1. You get insight into folks personalities by what they choose
  2. You help to create a cross-pollination environment where people learn about other's jobs in the organization. This could foster respect and spark new ideas.
  3. It would force everyone in the organization to finally learn about RSS and get into this blog thing

This last point may not be such a big deal these days, but even a couple years ago, I was running across executives who didn't grasp the RSS/Blog world.

Come to think of it, there are probably lots of uses for an aggregator like this. Hmm....

Update: You should also check out Twittertim.es. It not only does aggregation on the fly, but attempts to determine your best feeds by looking at who you follow on twitter. It's slick stuff.

Monday, March 29, 2010

Rain and Rubberbands - A couple hacks worth your time

As we come up on Passover, I should really be helping to prep for the Seder and not be blogging. But, I can't resist posting these two links.

Besides, Passover is very much the holiday of the hack. On the holiday, you take your entire kitchen and store it away, and then bring in just dishes, pots, etc. that are saved for the holiday. As you make your way through the week, you learn to make do with the odd collection of kitchen instruments you've accumulated, rather than depending on the ones you have daily access too.

Here are those links...

OK, I'm off to go do some Seder prep. See ya'll on the flip side. Hope everyone has a wonderful first couple of days of Passover!

Friday, March 12, 2010

A Big 'Ol List Of Google Docs Tips

While searching for help on the VLOOKUP function in Google docs I noticed the note:

We'd love to learn how you're using the VLOOKUP function. You can now show off your finished spreadsheet by editing our knol (a knol is an authoritative article about a specific topic).

Sure enough, the link points to a helpful examples of VLOOKUP. Poking around further, I saw that the link was to just one article of a big list.

This list of docs definitely seems handy. Some are broad like Google Spreadsheets FAQ, and some are quite specific like how to share PDFs . They all seem worthy of review.

Tuesday, March 09, 2010

Styling Google Docs - Close, but not quite there

There's a lot I like about Google Docs: they're collaborative, remotely accessible and easy to publish to a wide audience, to name just a few features.

One of the primary complaints about Google Docs is their relative simplicity. Compare Google Docs or Google Spreadsheets to Word and Excel feature-wise and the results are almost laughable. But, most of this I can forgive, as the majority of documents I make do just fine with the simple features Google offers. There is one area though, I keep bumping my head into - that is the look and feel of a published Google Doc.

By default, a published Google Doc has almost no style information associated with it - check out this example to see what I mean. In some respects, this is a good thing - I suppose I'd prefer no style to cruddy style.

Google gives you a couple of options for pretty'ing up the document:

Use a pre-existing template. A template is is essentially an already styled document, that you can replace the content with your own.

Edit the CSS of the document and manually add style. You can follow this guide to add some slickness to your doc. The image tip is especially helpful.

These are fairly reasonable options but I keep finding them limiting:

  1. The template library is a cool concept, but I like to add in style information *after* I'm done writing, rather than before. That way, I don't get distracted trying to find the perfect look, and get off track content wise. I don't see an elegant way of applying a template after the fact.
  2. Manually adding in CSS is very cool, and feature I'm glad they have. But, for typical documents, I don't want to mess with CSS every time.
  3. The default style of the document is to have its width match that of the browser. With the wide screens in use these days, I really don't think that makes a heck of a lot of sense.

My suggestions then?

  • It would be really helpful if they had a publish option that showed the exact same view as the Fixed Width Page - that is, a white page on a gray background. This alone would go a long way towards making the default published doc look good. And it makes sense to publish the document and have it appear the same as it does in your editing view.
  • I wonder if there could be a way to grab the CSS from a template and merge it into your existing document. That is, use the template library concept, but don't force users to pick the template up front. By merging just the CSS from a template, you wouldn't lose any content.
  • Publish more detailed CSS docs. The above issues could be basically solved by keeping around some standard CSS documents that can be dropped into place. One reason I haven't done this is that I can't seem to find documentation that fully explains the different CSS selectors a typical document uses. If I knew these, I could probably write up some standard CSS that would give me the fixed look && feel I'm after, and I could just copy that in place when I was creating a doc.

Like all things Google, I'm sure Docs is on a path to evolve. I just know that with a few small tweaks, this whole issue of publishing good looking documents - easily - could be put rest.

Thursday, March 04, 2010

Automagically Bringing Up Street View, and Other Google Maps Hacks

Programmatically Linking to Google Maps is usually trivial. Just use a URL like so:

 starbucks+arlington+va
where the query startbucks+arlington+va is replaced by any text you want to search for. If you want, you can even plug in arbitrary latitude and longitude by saying: q=LAT,LNG where LAT and LNG are decimal latitude and longitude values.

But today, I wanted to link an admin tool I wrote to not just Google Maps, but the Street View of Google Maps.

At first I tried bringing up a particular map view, grabbing the link URL, and reverse engineering it. But given the randomish parameters, that quickly became a non-starter.

That's a good thing too, because one quick Google search brought me to someone asking the same exact question over at StackOverflow.com.

Listed in the answers was a link to this handy page: Google Map Parameters. Turns out, those random parameters I was tripping over aren't random at all. They're documented, and you're effectively encouraged to use them.

That's definitely a handy resource. It should even be handy to non-programmers who might have a blog or other web resource, and want to be able to get the most out of Google Maps. By constructing just the right URL, you should be able to get Google Maps to behave in a custom manner.

Incidentally, the simplest URL I came up with to jump to a particular map point with Street View on was:

http://maps.google.com/maps?q=LAT,LNG&layer=c&cbll=LAT,LNG&cbp=11,0,0,0,5

Where LAT and LNG are the latitude and longitude of the point you're requesting.

Wednesday, March 03, 2010

divshare.com - the painless way to embed audio on your blogger blog

I wanted to embed an audio clip on my blog and realized I didn't have to an easy way to do it. Googling around, I find a bunch of suggestions - but none that I was in love with.

In the end, I simply signed up for Divshare.com and was able to upload the clip there, and trivially embed it on the blog.

It seems like the free account at divshare will work just fine for my purposes.

Another interesting option is blogcastone.net - but that site assumes you have your mp3 file uploaded somewhere already. Though, it does seem like it might be a handy lightweight solution.

Wednesday, February 24, 2010

Google Short Links - Give Your Google Docs A More Professional URL

A while back I discovered Google Short Links. This is an add-on for Google Apps that allows your domain to have a URL shrinking service like TinyURL.

Instead of creating a URL like http://tinyurl.com/1c2, you can create one that is based off your own domain name, like: http://u.ideas2executables.com/bokun.

Nifty, but this didn't strike me as particularly useful. First off, my domain is large enough that it's not really useful for shrinking URLs. Second of all, services like bit.ly actually provide a number of cool features (like real time link tracking) that make it more attractive than the Google app (which, to its credit, does have basic link tracking).

But Wait, Maybe It Is Useful

And then it hit my why this add-on is absolutely invaluable. Suppose I create a welcome presentation for new clients - the default URL for it is going to be pretty ugly. Something like:

http://docs.google.com/present/view?id=dgbdrzrd_47gg8pgdf3

Using the Google Apps Short Links plugin, I can create a named link like:

http://u.ideas2executables.com/welcome-demo

The result, of course, is a nice looking URL that feels like it belongs to my company. This is the difference in professional look one gets when comparing a @gmail.com e-mail and your own custom domain.

The Short Links plugin also works with any URLs, not just Google related ones. So you can link to eBay auctions, or Squidoo pages, or anything else you'd like. It's definitely powerful stuff.

Friday, February 05, 2010

Gmail Multiple Inboxes - The Path To Inbox Sanity?

While I love using Gmail for my personal e-mail, I've always been stuck with my inbox falling into one of two extremes:

  • Scenario 1: Let all e-mail hang out in the inbox, waiting for me to manually review and archive it. Before too long, my inbox is overrun with chatter from various lists and junk I receive, and I can no longer see the forest through the trees.
  • Scenario 2: Get clever and label and filter e-mail that comes in so that it skips the inbox. The problem here is, if it skips the inbox, it skips me reading it. Out of sight, out of mind. So my inbox may be smaller, but I'm still missing out on messages I'd like to read.

There are my two extremes - a full inbox that's hard to manage, or a pristine inbox, that means you miss most of your mail. Either option doesn't really work.

While playing around with jotter, I followed the instructions and enabled multiple inboxes. After a couple days, it hit me - this add-on may be just the thing I need to tame my inbox conundrum above.

Multiple Inboxes work by allowing you define a search criteria, that when matched, will appear as a separate inbox on your main e-mail screen. That probably doesn't sound like something you need, but trust me it is. Here's an example:

Suppose I want to deal with all the incoming mail from PLT-Scheme mailing list. The first step is to setup a filter that makes all incoming e-mail from the list be tagged with a label (say: SchemeDiscuss), and have it skip the inbox. Next up, I define a multiple inbox with the criteria:

   label:SchemeDiscuss is:unread

And poof, next time I open up my e-mail, there is a mini-inbox with just my PLT-scheme mail in it.

Here's a sample of what I mean:

The result is that my primary inbox can stay pristine, while other less important messages can still be visible without me going to search for them.

Bottom line: if you're inbox is overrun with stuff that you kinda-sort-wanna-see, you need to try Multiple Inboxes.