Where 2007 Conference

As the Where Conference takes place, I watch from far away since I’m not yet on the map.

A few interesting items recently noted:

  • GeoPress/MT brings the MoveableType blog crowd into the maps, GeoRSS, KML, and Microformats space with a plugin to make marking up content easy. WordPress users have enjoyed similar for a while, though I’ve yet to take advantage of the plugin.
  • Garmin announced their Developer Website containing resources and a library of Application Programming Interfaces (APIs), toolkits and web services to explore. Among the web services include access to MotionBased, the “activity portal” I use to track my cycling routes and performance using data from my Edge 305.
  • Google Streetside View provides a panoramic view from certain streets theyve photographed, and includes a unusually creepy costumed pointer in a video tutorial explaining the feature. Unfortunately, locations are currently limited to San Francisco, Las Vegas, Denver, Miami, and New York, and the browsing remains a bit clunky, but it’s still fun to sight-see.
  • Google Maplets combine their Gadgets API and Maps to create a means of simple user mashups on their own maps.
  • And a few others to check out.
  • plazes relaunched, but now my plazer is crashing on startup!

Maybe by next year I’ll get my act together and have something interesting to contribute to that space, or perhaps I’ll have simply procrastinated long enough for someone else to already accomplish what I’ve envisioned.

Play with Ruby

I need to “play” with a programming language before I find myself really comfortable with it. Playing doesn’t just mean solving some problems or writing an app, but instead simply experimenting with the available functionality — exploring instead of producing.

TextMate has served me well for this, as I can write some code and immediately run it with Command-R, or even selectively run lines of specific code. This is all useful, but knowing the code available to even write requires already knowing the language, or some extensive back-and-forth with reference documents.

Unfortunately, I don’t memorize things quickly (especially programming reference material), so I’ve often leaned on code-completion with other languages to browse available methods and properties. It’s a crutch in many ways, but is perfect for exploring the abilities of code in it’s context, and after a few similar tasks the reference is no longer needed. Unfortunately, there’s no auto-complete in TextMate.

Fortunately, another way to play with Ruby is with IRB, the interactive Ruby shell. I find it helpful to often keep a terminal window open with IRB to construct something and experiment with it before implementing it in a function. IRB by default has no code-completion, but the support is there. Eric Lake demonstrates adding tab completion to Ruby’s IRB.

Google Map Address Geocoding

Google released geocoding updates to the JavaScript API they provide developers today. This is huge for allowing us the ability to improve the user experience in interfaces with location data. Until now, we’ve had to rely on external sources. Tapping the Google source makes plenty sense.

I’ve been largely distracted by other things, so two of the gmap prototypes I have are stagnating and I’m missing chances to make myself famous with geo-location and microformats. Unfortunately, I don’t see our pending move improving my development opportunities. Hopefully I can find some inspiration to fit some time in for those and share something really interesting. Or I can sit and wait until someone else gets it right so I can use it.

Microformats Search and Ping Services

Technorati’s Microformats Search and Pingerati push the microformats goals further into view of the blogosphere; expect buzz to snowball and spread to the rest of the web. Yay Technorati!

The Microformats Search publicly supports hCard, hCalendar, and hReview. Pingerati has specific ping locations that specialize in those and adds specifics for hlisting and xfolk formats as well.

Aside from the coming assault of plugins for existing content publishing tools to support marking up and sharing this data, I’m mostly looking forward to seeing the social apps update to really feed the semantic web. Pressure’s on to produce my own toys too…

Preserve HTML in XML with XSL

I spent longer on this than I should have, when the answer is so simple; I’m posting here to remind myself when it comes up again, and I hope the included keywords assist in anyone’s search for the same information.

The xsl:copy-of element can be used to insert a result tree fragment into the result tree, without first converting it to a string as xsl:value-of does

1) I’m assuming you have XHTML nested in your XML document, if you’re not well-formed, that’s your first problem to address. You can’t validate something you don’t restrict.

2) In your xsl:stylesheet, declare your intent to display HTML markup with:
<xsl:output method="html"/>

3) In your xsl:template, extract the XHTML with:
<xsl:copy-of select="nodeContainingHtml"/>

If you think you want to instead use output=”text” and CDATA to push your non-XHTML markup through, return to step 1.

Bike Ride Finder

sharetheride.net is a bike ride finder tool for locating and sharing group cycling events. It came about largely as an excuse to play with the Google Maps API and some custom code, and I’m mostly pleased with the plan, though the execution still needs some work. Features and design are still lacking, but the groundwork in place for expanding significantly. Most sharing on that project I’ll keep on a separate sharetheride notes blog.

ASP.NET Cache

If I want to use ASP.NET cache in the code-behind page using System.Web.Caching, I can easily reference the Cache object to .Add, .Get, etc.

If I am writing classes and functions outside of the ASP.NET page scope but still need to reference that cache, I found it helpful to explicitly reference HttpContext.Current.Cache. Otherwise, I was ending up with errors I couldn’t quickly explain.