Google SketchUp on Fedora 12 x86_64 Linux

It’s funny how volatile my relationship with “new technology” can be. It’s not uncommon for an alpha geek like me to pick something up, kick the tires for ten minutes, then declare it unfit  for use. It’s always nice (albeit rare) to pick up the same tech down the road and come to find my previous judgement was premature.

I’ve just recently had this experience with Wine (as in the Windows Emulator) on my Fedora 12 x86_64 laptop. For months now I’ve been using my wife’s Mac in order to run Google SketchUp because I just assumed Wine was still unusable, especially for a program requiring OpenGL. But I gave it a spin on a whim last night and was pleased to find that it runs very well. Maybe the rumors I’ve read that Google has been contributing a lot to the project are true.

There were a few tweaks necessary to get it working properly though. Here they are for you:

  1. Since I’m running an x86_64 distribution, the standard install from the Fedora Updates repo was naturally the x86_64 Wine build. A blog I read said 64-bit Wine just doesn’t really work, and my experience was the same.  So I had to change to the 32-bit version:
    yum remove wine
    yum install wine.i686
  2. After installing and upon my first attempt to run, SELinux alerted me to some mischief. Something about mmap_zero, but I was happy to see that an SELinux boolean was available to switch off enforcement of that, so I did:
    System > Administration > SELinux Management > Boolean > Module:Wine & Description:"Ignore wine mmap_zero errors"
  3. That was getting closer, but the next problem would have been too much for me to solve if not for a forum posting that described some necessary registry hacking (yikes, now I’m remembering why I left Windows behind).

That was it. I’m running SketchUp and editing some of my old models.  Extra bonus points to Wine for putting a shortcut in my Applications menu (see the screenshot).

Screenshot: Google SketchUp on Fedora 12 x86_64

Screenshot: Google SketchUp on Fedora 12 x86_64

Google Voice Potential: Phone Forwarding Based on Location

I’m a self-professed Google Fanboy, and for good reason. I count on Google to push the envelope where others have failed to do so and expect consumers like me to benefit tremendously from it. Google Voice is one of the latest examples of that.

As is usually the case though, in order to really appreciate Google’s products, you must have an eye on the product’s potential beyond what’s first released, not to mention an understanding of the technical, social, and even political brilliance.  In the case of Google Voice, there are definitely some rough edges, but I’m looking forward to having unprecedented controls and capabilities for my telecom experience.  And when I finally buy into Android (this weekend’s launch of the Droid might well be that time), the integrated experience will take the control and capability to the next level.

One problem I’d like to solve using Google Voice is that of having calls forwarded to my home phone only when I am actually there.  Since I don’t really want my two year old answering my business calls, and not to mention it’s pointless to ring that number when I’m not even around, I’d like to find a way to register/unregister my home number as a forwarding option depending on whether I’m actually there.

A solution to this problem would only have a few moving parts.  First off, you need some way to trigger the events that indicate the equivalent of: “honey, I’m home” and “I’ll see you later.”  Then you need a way to take some action based on that event to say the equivalent of: “while I’m home, you can reach me on this phone.”

If not for the awesome ecosystem of open source and the power of Google search, I would have said the hardest part of this equation is the first part.  But these days, no matter what your platform, there is likely a bluetooth proximity solution that you can set-up to kick off some sort of script based on the strength of your bluetooth signal from your phone to your computer.  Eg. in the Fedora 11 repo, there’s a package named BlueProximity which is geared towards locking your screen based on proximity, but I think you can use it to put in arbitrary commands beyond screen locking as well.  There are also plenty of blog posts explaining how to write manual scripts and what not, and I’m guessing plenty of other solutions would do (eg. for wifi phones, try to repeatedly ping you phone if it keeps a consistent name or IP, or maybe a GPS-based solution combined with ).

But with the first part being easy enough to figure out, what can we do about the register/unregister problem?  We need an API!  This is something you can usually count on Google to provide, and I’m sure they will provide one eventually for Google Voice.  When an API starts to ship for Google Voice, we’ll really start to see how disruptive of a force this service is.

gvoice-xhrIn the meantime, we’ll inspect what the browser is spitting out when we make the change in the GUI.  Click the screenshot for a look (forgive the over-zealous smudging) to see the somewhat restful api in use (with an oddly RPCish URI IMHO, but that doesn’t really matter too much).  The call has the following important attributes when I toggle forwarding to my Home phone:

  1. URL - https://www.google.com/voice/settings/editDefaultForwarding/
  2. Form Data – phoneId:2
  3. Form Data - enabled:0
  4. Form Data – _rnr_se:$some kind of hash/token$
  5. Response – {“ok”:true}

Most of that is pretty self-explanatory.  The obvious question mark is the _rnr_se token, but I found it to be the same on every request even after re-logging in, so you might be able to use it intact.

I set about trying to script the call to Google, but I’ve never written a script to use Google’s APIs and I started getting hit with Captcha requests pretty quickly. That was enough to remind me I have some real work to get back to. Hopefully I can find some time to turn this vapor ware into a reality or somebody else can carry the ball forward.

Also, keep in mind there is an obvious problem with this set-up.  For example, if your phone battery happens to die, you get the double wammy of losing two “extensions” to your Google Voice number since the proximity sensing would think you left the building.  But this would be a fun little hack none-the-less.  Hopefully I can get it going and try it out.

Putting Tagging in Context

So, I’ve been actively using del.icio.us for about two weeks now (just long enough to know how to spell it without double-checking).  Being the eternal organizer that I am, I’ve already realized my tags were in need of some, errrr, refactoring.  So, I went for it and the results were: O man – this isn’t easy.

Basically, it reinforced by belief that tags need a context.  Just using a big cloud of tags causes me trouble.  I think the trouble bares itself out when I’m deciding which related tags to use for an item.  For example, if I’m about to tag something as Ubuntu, should I also tag it with Linux?  Isn’t that relationship somehow implied already and thus, following data/object modeling techniques, it shouldn’t be “stored”?

I’ve always believed that the beauty of tags is that we break out of the often unnatural “everything has a hierarchy” mold.   For example, back in college I was the webmaster for my lacrosse team.  I wasted many a brain cycles on deciding whether or not the game summary belonged under the “News” section or the “Games” section.  Looking back, it was quite obviously both and tagging would have solved the problem.

On the other hand, the ugliness of tagging is that we now have a “nothing has a hierarchy” problem.  For example, I tagged an entry about wine (the “emulator“) on Ubuntu with the tag “wine”.   You should see where I’m going with this . . . what happens when I want to tag the cork’d website with “wine”?  Well, that’s an ambiguous tag (and of course, look at the title of this blog to see what I think about that).

Where’s the middle-ground?  Tags need a context!  This is kind of where the del.icio.us bundles go, minus some important features.  For example, if I have a web2.0 bundle that includes aggregators, SaaS, mashups, etc., there will obviously be times when I just want to pull-up all the links in web2.0.  Unfortunately, the bundles don’t work like that.  If they were themselves tags, or at at least treated like them in del.icio.us searches, I think the “tags are related” problem would be solved.  Further more, I’d really like to tag web2.0 with “horriblemoniker” – but that’s for another post.

A different problem is in tagging an item with a location.  If you want “37.80327385185865, -122.25723266601562″ to mean anything, you’d have to know that tag is a type of location of the longitude, latitude variety.  This is the same problem with the aforementioned “wine” tag: some tags aren’t nearly as useful if you don’t know their type.  Do tags need namespaces?  Carrying that argument to its logical extent, can some tag namespaces have exclusive owners?

Upon writing this, I’m realizing this is an age-old problem of sorts.  I’ve seen it first hand in attempts at “dotted-line reporting” in the context of business organizations or “multiple-inheritance” in the OOAD context.  I would bet this is quite an issue in the context of biological sciences.

So, who’s solving this problem?  I’m sure there are a ton of resources out there that have waxed poetic about this, so please show me the light.

Is the iPhone the future platform of mobile computing?

So, I agree that the iPhone is awesome, but is it really worth all these articles flowing through to my RSS reader? I was on the fence, until I read the following comment left under this flickr photo:

“This is an incredible phone . . . imagine how fast apps will be created! This is MacOS X in a phone!!”

LIGHT BULB! I suddenly remembered how much I’ve been moaining about the difficulty to put useful apps on your cellphone, even to the point of touting the Qtopia Greenphone. Could this be the first mobile platform to gain traction in “the community”? If it does gain traction in that sense, will we be able to load our own non-Apple DRMed media software?

I’m excited – and skeptical. Maybe the best solution is to throw a linux distro on there!

By the way, that size comparison app in the photo looks pretty cool.

2006′s Video-on-Demand Success is . . . Xbox?

Why are we having so much troubling converging the internet and the TV?  Form-factor seems to be a major issue.  It makes sense then that a gaming console might be the right gateway to get it done.  That seems to be proving true with the success of XBox Live’s video download service.  M$ has been trying to make this happen since WebTV, but somehow I doubt they predicted the XBox would be the one to have the first success.

A2DP – THE Convergence Solution for MP3 Players, Cell Phones, and More?

My Wife has wanted an iPod for quite a while now. I’ve talked her out of it several times specifically because Apple has thousands of people more-or-less “leasing” music from the iTunes store. Being a bit of a technology evangelist, “vendor lock-in” is practically heresy to me. [As a side note, if I had just gotten an iPod in the first place, we'd've had a couple years of enjoyment by now that would have made the whole "future-proofing" approach I've been taking irrelevant]

There’s no doubt it is a pretty slick device, but that’s never been enough to get me to give in. What really started to turn my head though were all of these cool gadgets that integrate with the iPod. All-in-all, its been a very subtle embedded device revolution of sorts. But ultimately, these extra gadgets you buy for your iPod are the utmost in vendor lock-in. What are you going to do with that “iPod dock” when your next cell phone has a 2GB MP3 player built-in?

A2DP Bluetooth Profile to the rescue! Seriously, why aren’t more people talking about this? If it all works out, it makes integration of music players to stereos, computers, etc. standardized and wireless. Read more

Hello world!

Okay everyone – you ready for this?  Honestly, you are probably bored already.  Hopefully this blog doesn’t go to waste (yeah, I tried this before).

Follow

Get every new post delivered to your Inbox.