TechProsaic

I write about great software, Internet technology, cool gadgets, and The Next Big Thing.

May 8th, 2008

Usability–what’s that?

Earlier today I clicked on a link to go to some intranet app.  I forgot about it and came back later.  I filled in my user ID and password then clicked login.  Here’s the message I received:

HTTP Status 408 - The time allowed for the login process has been exceeded. If you wish to continue you must either click back twice and re-click the link you requested or close and re-open your browser

I’m sorry, but that’s about the dumbest thing I’ve seen in a couple of weeks.  Please, people!  If you have to instruct your users to “click back twice” or “close and re-open your browser”, then you are doing it wrong!  Computers are supposed to work for us, not the other way around.

Jeez!

April 25th, 2008

Live Mesh is pretty sweet!

Windows

image If you’ve been under a rock, Live Mesh is Microsoft’s latest foray into the cloud computing space.  So far it’s just a “tech preview” and feature-wise, it’s fairly limited.  Today, it’s basically FolderShare with a few extra features.

But if you read up on the Live Mesh blog, there is a ton of cool stuff in store.  It’s very visionary–hopefully that stuff lands here on Earth with us.  :)

If you need an invite, leave a comment on the blog.  Also, if you are interested in joining a little proof-of-concept file sharing group we have going right now for sharing PowerShell scripts, let me know.

P.S. Sorry I’m so light on blogging lately–Twitter has sorta caught my fancy lately and I’ve been writing more there.

February 10th, 2008

Using Web Services from PowerShell: UrbanDictionary.com

Powershell

I was just surfing quasi-randomly tonight and I came across the site programmableweb.com.  Very neat concept.  They are a reference site for various web services available on the Internet.  I was in a writin’ mood, so I thought I’d start a series on how to talk to web services using PowerShell.  The first example will be the UrbanDictionary.com SOAP API as described here and here.

If you are not familiar with the term, by “web service”, I mean a programmatic interface to something which can be reached over the Internet (or a private network), usually via HTTP or HTTPS.  One example might be a weather service.  Say you want to include a weather forecast on your website.  Rather than having a script go to a webpage and plugging in a zip code, then “scraping” the results and try to parse them in your program, what you do is use a connector or library for your language of choice which can speak the protocol that the web service uses.  Some web service protocol examples are: SOAP, XML-RPC, REST, or JSON.  (I just realized, so is WMI + WS-MGMT aka WinRM on Windows…)  You wave your hands over the hat, plug in the web service’s URL, give it a zipcode parameter, and you magically get back the forecast in a nice and tidy bundle of properties to an object, something you can manipulate natively in your program.

That’s your one paragraph web service intro.  Now, on to the tutorial!

  1. Step numero uno: Read Keith Hill’s “Calling a Web Service from PowerShell” article.   He explains how to setup your environment, bind a web service, compile that to a DLL, load the DLL in PowerShell and instantiate an object which represents your brand new web service. 

    (Ok, I’m cheating a little (lot)–Keith’s done most of the work for me here.  But it’s all about the applications, right?)

  2. Go to UrbanDictionary’s API page and request an API key.  Find it in your email and go to the next step.
  3. Follow Keith’s steps, plugging in the web service URL (easily found at programmableweb’s listing for UrbanDictionary).  It looks like this:
       1: wsdl http://api.urbandictionary.com/soap?wsdl
       2: csc /t:library .\UrbanSearch.cs
       3: [reflection.assembly]::LoadFrom( “$pwd\UrbanSearch.dll” )
       4: $urbandicsvc = New-Object UrbanSearch
  4. Now, the $urbandicsvc object holds magical treasures such as Lookup().
       1: $urbandicsvc | gm lookup
       2:    TypeName: UrbanSearch
       3: Name   MemberType Definition
       4: —-   ———- ———-
       5: lookup Method     Definition[] lookup(String key, String term)
  5. Now you find that key from your email and supply it to the Lookup method, along with a term you’d like to lookup.
       1: $key = ‘<your key goes here>’
       2: $urbandicsvc.lookup($key,“fo shizzle”)
       3:  
       4: Exception calling “lookup” with “2″ argument(s): “Invalid key”
       5: At line:1 char:20
       6: + $urbandicsvc.lookup <<<< ($key,“fo shizzle”)

Hmmph.  That’s when I read this little gem from the email I received with the key:

Please also note that your key may not become active until 10PM Pacific. We apologize for the delay.

Oh well, maybe tomorrow, I’m East Coast!  :)

Let me know if you find this sort of article useful, and I’ll write more.

Update - Feb 10th @ 11:40am

Seems I picked a bad first example–I can’t get the service to work, and the developer wiki on urbandictionary.com seems to be defunct.  Maybe they no longer provide the service.

August 27th, 2007

Synchronizing Your Files Across Multiple Computers

Came across Microsoft’s Live service Foldershare recently.  I’ve just set it up to sync my Powershell profile (like this guy), we’ll see how that works.  I don’t know that I like the UI; it’s web-based.

What do you do to share your files across multiple computers?

June 4th, 2007

Jaiku and IMified

IMified

I’m writing this blog post from my jabber client (Psi, of course) using a new tool called IMified (http://imified.com). I’m pretty impressed so far with the simplicity. It’s funny though, my buddy Fritzy had this idea a few years ago and he started implementing it with his Edgar bot (oops, his main website’s still down from a HD crash, here’s another link: http://forum.psi-im.org/thread/778,2). Edgar did reminders and notifications and all sorts of cool stuff. Fritzy was truly ahead of his time. Oh well.

Jaiku & Twitter

I’ve been hearing a lot about these two tools lately from the TWiT (http://twit.tv) and Buzz Out Loud (http://bol.cnet.com) podcasts but I hadn’t bothered checking them out before. I went ahead and created a Jaiku account (http://halr9000.jaiku.com/) and put a few of my feeds into its “stream” like flickr, last.fm, my blog, etc. We’ll see if I continue to bother updating the mini-blog aspect of it, but my other feeds will automatically put stuff in here. Don’t know if I’ll use this for anything.

Oops, got an XML error when I tried to post. Strike one, IMified!

May 22nd, 2007

33 Rules to Boost Your Productivity

Came across this very useful article.  Here’s a little taste:

  1. Nuke it!  The most efficient way to get through a task is to delete it.  If it doesn’t need to be done, get it off your to do list.
  2. Daily goals.  Without a clear focus, it’s too easy to succumb to distractions.  Set targets for each day in advance.  Decide what you’ll do; then do it.
  3. Worst first.  To defeat procrastination learn to tackle your most unpleasant task first thing in the morning instead of delaying it until later in the day.  This small victory will set the tone for a very productive day.
May 1st, 2007

Testing eBay’s new tools

eBay just released some very cool new flash-based tools for marketing your auctions.  You can check it out at http://togo.ebay.com

 

BTW, I’m selling this Yamaha receiver.  :)

 

April 26th, 2007

History’s Unsent Telegrams

This is some funny stuff:)

 

Here’s some notable examples:

 

 

And my favorite:

November 15th, 2006

Ebay annoyance #1

2000 characters left. No HTML, asterisks, or quotes.

Apparently they can’t afford 2500 characters. And heaven forbid their programmers should have to learn how to filter a text stream by escaping characters.

August 12th, 2006

Microformats — please explain this one to me!

Jabber

As seen on JDEV today, Peter has forwarded a discussion that happened on the microformats.org mailing list to the Jabber community. Apparently this dude in the MF camp heard that the Adium project was working on standardizing an IM chat log format that *gasp* didn’t use microformats! (Melodrama mine.) Of course in the Jabber world we would do it in XML and just define a common set of terms and publish it as a JEP. Happens all the time.

I’m sorry, I don’t get where these MF guys are going. It seems to me that they are trying to make the web more semantic. Fine and good. Took me a while to grok and then find a concrete example. Here’s a draft spec for “adr” or physical address information.

<div class="adr">
 <div class="street-address">665 3rd St.</div>
 <div class="extended-address">Suite 207</div>
 <span class="locality">San Francisco</span>,
 <span class="region">CA</span>
 <span class="postal-code">94107</span>
 <div class="country-name">U.S.A.</div>
</div>

Correct me if I’m wrong, but isn’t this just a superfluous layer of XHTML on top of XML? What they have done is set up a straw man argument–a world in which XML does not exist–and declared there is a problem that they must solve by “building upon existing and widely adopted standards“.

Some other choice marketing-speak used on the site:

Designed for humans first and machines second

highly correlated with semantic XHTML

[using principles of] modularity / embeddability

All of these things perfectly describe XML. They go on to say what Microformats are not, and essentially you can translate the statements as “not XML”. So which is it guys?

Let me provide an equivalent XML (XMPP actually) example:

    <ADR>
      <WORK/>
      <EXTADD>Suite 600</EXTADD>
      <STREET>1899 Wynkoop Street</STREET>
      <LOCALITY>Denver</LOCALITY>
      <REGION>CO</REGION>
      <PCODE>80202</PCODE>
      <CTRY>USA</CTRY>
    </ADR>

Ok. Does the above semantically describe a physical address? Is it easily parseable by both humans and machines? Is it a simple? Built on existing standard? An open way to think about data? It’s even less to type!

You just gotta love standards. There are so freakin’ many to choose from!

Close
E-mail It