October 2004 - Posts - Jon Galloway

October 2004 - Posts

AdaptivePath feed, Ethnoclassification in RSS

Richard Tallent linked to an excellent article by Peter Merholtz of AdaptivePath about "Ethnoclassification": Metadata for the Masses.

First, the interesting news. Richard's post reminded me that I hadn't read the content on AdaptivePath's site for a while. These guys are just brilliant with internet usability, but I'd forgotten to scan their site for new info for a while...
(brain trying to tell me something... wait this is a problem I used to have more often... not such a problem on other sites because of... )
RSS!

Sure, I want to read what these guys write as soon as it's available, and since they did the Blogger.com redesign they've gotta have a feed...

Nope. They didn't. So I sent them an e-mail, and less than 24 hours later, they've added one. How cool is that?

AdaptivePath news feed: http://feeds.feedburner.com/ap_news

Now for the part you've been waiting for - my thoughts on Ethnoclassification and RSS (sounds like a class I would have done anything to get out of in college).

The basic idea of Ethnoclassification is letting people categorize the world around them. One of the best examples, as Peter points out, is del.icio.us, a shared bookmark system where the users get to come up with the categories for the links. Letting users come up with their own categories has some big benefits - not only is it very user friendly, but it allows users to feed real information into the system much faster than "expert" system designers could. Examples are "moblog" and "cameraphone" on Flickr. There are some downsides to it - users misclassify things and create duplicates : "nyc", "newyorkcity", "newyork", etc.

The payoff of the article is Peter's idea of letting users make the footpaths, then paving over them once the users have defined a general structure.

This is just a quick summary of an already short article - you should just hop on over and read it.

Anyhow, this reminded me of the Categories in RSS feeds. There's a big benefit to freeform Categories early on, but as some general structure emerges it would be nice to have some standard categories. You could always allow freeform Categories, but you provide some standard ones in the RSS schema. That seems like how music genres have emerged in CDDB, and a bit like how usenet newsgroup topics have stabilized. It's nice to be able to set up a new group if it's needed, but there's no point in having microsoft.programming.database.sql, microsoft.database.tsql, databases.microsoft.sql, etc.

Paving the well worn paths improves the user experience by expanding likeminded audiences.

No real necessity to do this now, as the paths are still probably in the creation phase, but something I'd like to see happen. It would be great to be able to search for feeds by topic without relying on string matches, chance, and search engines.
Posted by Jon Galloway | with no comments
Filed under:

[utils] Cool toys from the Scripting Guys

I hadn't seen the Scriptomatic and Tweakomatic. Interesting - they're HTA's (Hyper Text Applications).
[Via Peter Marshall - WebLogs @ DotNetJunkies.com]
Posted by Jon Galloway | with no comments
Filed under:

[feature request] Podcasting Client Audio Post-Processing

I'm mildly interested in Podcasting. I've been test-driving it for a week and will probably post my obligatory YAPO (Yet Another Podcasting Opinion) writeup soon.

I think it's safe to say that Podcasting is a kind of useful application of RSS to simplify the repetitive task of downloading periodic audio programs. With that in mind, Podcasting clients like iPodder could really add some utility with audio post-processing. Here are some things I'm thinking of:

1. Split large MP3's into smaller files for players that don't bookmark or fast-forward slowly. I previously posted some information on how to split DotNet Rocks MP3's with mp3splt). I'd like Podcasting client to automate this. It should be configurable, but at a minimum should let me say "split into 2 minute chunks" or "split into "10 minute chunks", etc.

2. Time Compression - a lot of people have rejected Podcasts because it takes too long to listen through them to compared to the amount of information you receive. In WMP I usually turn the speed tup to about 2x and still get bored sometimes, but most MP3 portables probably don't allow speeding up the play speed. Podcast clients run in the background on powerful modern computers, though, so they should have no problem re-encoding the audio a higher speed I get to pick.

3. Add background music - during my commute, I regularly flip between music and spoken word (books on tape, NPR, talk radio, or Podcastable content like DotNet Rocks). There's no reason the two couldn't be mixed together. I could pick a folder or list of music MP3's that would make good background music, and my Podcasting client could mix them together. Then I'd get to hear my music and get my content.

4. Recommend similar feeds[1] - It's hard to find good content now. iPodder.org has a Podcast directory, but it's not very useful. Assuming the content selection continues to grow (and it had better or this whole thing is going down like Boba Fett), they need a webservice that recommends feeds based on the ones I've subscribed to (yes, the aluminum foil hat crowd would need an option to shut this off).

[1] The astute reader will note that this has nothing to do with audio post-processing. Yeah, well it was one other random feature idea and I thought I could slip it by here.
Posted by Jon Galloway | with no comments
Filed under: ,

[feature request] URL's with offsets - www.sample.com/interview.mp3#time=32:05

Adobe's PDF Viewer, as much as it bugs me, does have one really cool feature I'd like to see spread - it allows you to link directly to a page within a PDF:
<a href="http://www.sample.com/document.pdf#page=42">see page 42</a>
Scott Hanselman posted about it recently, although I first learned about it while working with a website search product (iPhrase) that spiders PDF's and jumps to the page with the text you searched for.

What a great idea. So let's take it a step further...
<a href="www.sample.com/interview.mp3#time=32:05">hear Jon Stewart make fun of bowties</a>
Most audio / video players can skip ahead in a file they're streaming, so why not let me link to a starting point? I've been thinking about this while forming an opinion on Podcasting. One of the main features that's made weblogs and rss successful is that they're so easy to reference and interlink. Podcasts aren't, but if I could link to an interesting part halfway through a DotNet Rocks show, for example, they might be more useful as an information and discussion resource.

Any media player (WMP, Winamp, iTunes, Real Player, Quicktime, etc...) could add this support in today, just as Adobe did with their PDF Viewer.

It needn't stop there, either. I think being able to reference a portion of a file resource could open some new doors. Sure, it's not as dirt simple in most cases as asking for a specific byte range in a file (which is natively supported in HTTP). But the HTTP Content-Range supports multiple range types and could be extended quite a bit. I could, for example, request a pixel range on a GIF and the server could handle this for me. Not appropriate in some cases, but helpful in others. It's a trade-off: the server does a bit more processing, but now I'm able to link to a face within a group photo: <img src=www.sample.com/images/group.gif#pixels:180,200,580,600> Servers always have the option not to support this HTTP Content Encoding / Range Type (it's built into the spec), but there's a lot more flexibility if we make it possible.

This gets more important as we move beyond HTML and images to a technology infrastructure that runs over HTTP (SOA, RSS, etc.). Being able to request a specific segment of a resource opens some new possibilities.

To come back to reality a bit (assuming they're not going to extend HTTP at my blog request), there are still some cool applications in addition to media time references. What about linking to a section of a web page that didn't happen to put an anchor right where I'd like to link. What about http://www.sample.com/page.html##byte:3580 or http://www.sample.com/page.html##vertical-position:1500px, etc.? The browser would load the whole page and scroll to the proper position. Sure, I might link to a byte range in the middle of a javascript function, so either scroll to the nearest HTML or refuse the anchor as invalid don't scroll. I'd be no worse off than I am now.

I think linking to a time offest in a media file just makes sense. The other ideas are intended to spark further thought, but seem to be semi-viable to me. What do you think?
Posted by Jon Galloway | with no comments
Filed under: ,

Spotting GDI Leaks with Task Manager

After reading KC's post about finding GDI leaks with the Windows Task Manager back in June, I've added GDI columns to my task manager view on all the computers I personally use. It's often a good problem indicator when my machine's really slow but the CPU and memory utilization isn't out of hand. RSS Bandit, my aggregator of choice, occasionally gets a little greedy with the GDI resources. Most apps seem to use a most a few hundred, but RSS Bandit occasionally shoots to over 4,000,000,000 (4 billion). That seems slightly excessive, so I restart it and everything's fine.

It's also indicated a GDI leak in a Reflector Addin I was testing.

Here's how to add the GDI Objects column to your Task Manager:
1. Bring up the Task Manager (Ctrl - Alt - Del works)
2. From the View menu, pick "Select Columns..."
3. Check GDI Objects and hit okay

By the way, this points out that it's still very possible to have resource leaks in Microsoft.NET apps. The .NET garbage collector will clean up your memory after you, but it doesn't watch resources. You have to make sure you're disposing your unmanaged resources.[1]

[1] I'm not talking about RSS Bandit here, it's just a general statement. Often apps use components or call .NET code that just wraps unmanaged win32 code. I subscribe to almost 1000 feeds so maybe RSS Bandit is just telling me I need to cut back a bit and get another hobby.
Posted by Jon Galloway | with no comments
Filed under:

[addin] SpoofStick (anti-spoof browser toolbar for IE and Firefox)

Chris Sells recent post about URL spoofing quoted his wife asking "How is anyone supposed to know that?"

There were some good comments on how to detect, filter, alert, or educate around the problem of URL spoofing, in which an e-mail or site shows a link that pretends to take you to one domain but takes you to another:
<a href=www.evilhackerz.com/steelPasswurdz.php>www.ebay.com/update/passwords</a>

I commented that someone could make a browser addin that detected URL text that looked like an HREF but didn't match domains and show a warning.

I just saw a toolbar for both IE and Firefox that doesn't quite do that, but takes a step. It shows you what domain you're on, so you'd at least know (after you'd followed the link, but before you'd submitted any information) that you'd been had:
 

I don't plan to use this - I get so many spoofing / phishing e-mails that I'm used to the precautions. I think I might set it up on my wife's computer and recommend it to family. At least it answers the question of "How is anyone supposed to know that" and takes a step to doing something about the problem. Hopefully, Phish Detection will be as standard as Pop-Up Blockers some day.

Download Spoofstick here:
http://www.corestreet.com/spoofstick/index.html
Posted by Jon Galloway | with no comments

ASP.NET SQL Server Session - Links and Overview

A co-worker asked me about setting up SQL Server Session state. Here's what I told him:

Basic steps to set up SQL Server Session state

1. Run either of these scripts (InstallSqlState uses temp tables, InstallPersistSqlState uses permanent tables so it survives reboots)
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\InstallSqlState.sql
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\InstallPersistSqlState.sql

2. Change your session state mode in web.config to SQLServer:
<sessionState
  mode="SQLServer"
  sqlConnectionString="data source=server;user id=uid;password=pwd"
  cookieless="false" timeout="20" />

References

Good overview http://idunno.org/dotNet/sessionState.aspx

MSDN overview of SQL Server Session State
http://support.microsoft.com/default.aspx?kbid=311209

[UPDATE]
Another good article with information on granting permissions on SQL Server:
http://www.dbazine.com/cook9.shtml

Common issues

325056 PRB: Session State Is Lost in Web Farm If You Use SqlServer or
http://support.microsoft.com/?id=325056
323744 FIX: "The View State Is Invalid for This Page and Might Be Corrupted"
http://support.microsoft.com/?id=323744

Posted by Jon Galloway | with no comments
Filed under:

Microsoft Excel Server 2006?

I wonder if there will be integration or consolidation with SQL Server.
When Office 12 debuts in 2006+, an Excel Server, Visio Server and other brand-new servers are expected in the line-up. [Via Microsoft Watch from Mary Jo Foley]
Posted by Jon Galloway | with no comments
Filed under:

HTML Color Schemes

I'm a web developer, not a designer. At least I know enough about design to realize I'm not good at it. However, I'm often expected to be able to come up with basic color schemes and designs. Here's my cheat sheet:

color themes:
http://pixy.cz/apps/barvy/index-en.html [Update: New Version http://www.wellstyled.com/tools/colorscheme2/index-en.html]
http://kohaistyle.com/scripts/quickcolor/
http://slayeroffice.com/tools/color_palette/
http://pourpre.com/chromograf/en/
http://www.smartpixel.net/chromoweb/uks/indexgb.html
http://www.ficml.org/jemimap/style/color/wheel.html [added]
http://color.twysted.net [from djk's comment]

get your ip's color (goofy, but it's a starting color that's all my own):
http://www.provisoire.net/ipcolor/color.php

templates:
http://www.oswd.org/

inspiration:
http://www.csszengarden.com/
http://www.mezzoblue.com/
http://www.alistapart.com/

Where do you go?

Posted by Jon Galloway | 3 comment(s)
Filed under: ,
More Posts Next page »