Digital Convergence

I’ve been reading a lot about the next version of Windows Mobile, and It’s gotten me thinking about what our digital lives are going to be like over the next few years. 


In the past, there have been unique categories of devices.  I believe that we’re moving toward a continuum.  Already we’ve seen that the line between a tablet and a notebook is getting very thin.  The Micro-tablet mock-up shown by Bill Gates at WinHEC shows that the line between Handhelds and Tablets is going to get very thin as well.


If tablet technology takes off, then you may have users calling for ink, and moving forward, touchscreens in the desktop environment.  If people get used to interacting with their data in certain ways, then they’ll want those ways to be available wherever they connect with their data.


It’s going to be an interesting five or ten years, as the hardware manufacturers tear down the hurdles of power, miniaturization, and integration, and we come to a time where the form factor is a matter of design & function, versus engineering limitations.

Blogger to dasBlog Redirect Hack

Using the following Blogger.com template, I have been able to redirect all the traffic hitting my old Blogger.com generated pages to the new pages hosted under DasBlog.  If you want to try this, change the dasblog_root variables, paste into your Blogger.com template, and then republish your blog.  It’s probably a good idea to backup your old template first.  No warranties or guarantees, use at your own risk!


For information on porting your content over, see my previous post.



<html>
<Blogger>
<MainOrArchivePage>
<script language=”javascript”>
var dasblog_root=”
http://blobservations.net/dasblog/“;


document.location.href=dasblog_root;
</script>
</MainOrArchivePage>
<ItemPage>
<script language=”javascript”>
var dasblog_root=”
http://blobservations.net/dasblog/“;
var newpage=dasblog_root;
var oldstring=”<$BlogItemTitle$>”;
var newstring=””;
var toreplace=[‘-‘,”’,’!’,’ ‘,’:’,’;’,’,’,’.’,’+’,’!’];
for (i=0; i<toreplace.length; ++i) {
 oldstring=oldstring.replace(toreplace[i],””);
 while(newstring!=oldstring)
 {
  newstring=oldstring;
  oldstring=oldstring.replace(toreplace[i],””);
 }
}


newpage+=oldstring+”.aspx”;


newpage=newpage.toLowerCase();


document.location.href=newpage;
</script>
</ItemPage>
</Blogger>
</html>

How I Ported My Content from Blogger to DasBlog

I finally got DasBLog up and running on Blobservations and decided that I wanted to import all of my old content from Blogger.com.  I figured that this challenge had to have been overcome in the past, so I hit MSN Search and Google with keywords like: Import Export DasBlog Blogger.  I located a few half-baked tools (as-in, not quite ready for prime-time). Some didn’t support titles, other wouldn’t grab the links.  Most of them could easily blame their failings on the fact that they were attempting to use the underpowered Blogger API.


I hacked around a little, trying to implement a simple ATOM API client in C#, and to do a fully automated conversion tool, but eventually I decided to drop back and punt.  I only needed to do this one time, so a little manual intervention would be acceptable.


I ended up following these steps:


1.  Change Blogger.com settings, under “Formatting” tell it to show 999 days on the front page.  DO NOT PUBLISH


2.  Modify your blogger template to:



<?xml encoding=”utf-8″ ?>
<entries>
<Blogger>
<bi_url><![CDATA[<$BlogItemURL$>]]></bi_url>
<bi_title><![CDATA[<$BlogItemTitle$>]]></bi_title>
<bi_body><![CDATA[<$BlogItemBody$>]]></bi_body>
<bi_author><![CDATA[<$BlogItemAuthorNickname$>]]></bi_author>
<bi_date><![CDATA[<$BlogItemDateTime$>]]></bi_date>
</Blogger>
</entries>


3.  DO NOT PUBLISH, instead hit the “Preview” button


4.  In the resulting screen, you’ll see a bunch of unformatted text.  Select “View Source” and then copy everything from the opening <? xml ?> tag down to the closing <entries> tag.  Paste that text into notepad and save as archive.xml.  On the edit screen, hit the “Discard Edits” button.  Go back and restore the settings from step 1.


5.  Warning, very rough C# code ahead.  The following is snipped from the C# program I threw together to convert from the raw xml to Dasblog.  It uses some classes from the DasBlog engine, so you’ll have to add a reference to the newtelligence.DasBlog.Runtime.dll file if you want to try this yourself.  Before running, make sure that the directory c:content exists.



{
DataSet ds = new DataSet(“archive”);
ds.ReadXml(@”{insert directory to archive.xml file}archive.xml”);


string title=””;
string body=””;
string link=””;
string date=””;
string auth=””;


DateTime dt_post;


newtelligence.DasBlog.Runtime.IBlogDataService das_ds = newtelligence.DasBlog.Runtime.BlogDataServiceFactory.GetService(@”c:content”, null);


foreach(DataRow r in ds.Tables[0].Rows)
{
title=(string)r[“bi_title”];
body=(string)r[“bi_body”];
link=(string)r[“bi_url”];
date=(string)r[“bi_date”];
auth=(string)r[“bi_author”];
dt_post=DateTime.Parse(date);
Entry post = new Entry();
post.Author = auth;


post.Content = body;
post.Description = “”;
post.Title = title;
post.CreatedLocalTime = dt_post;
post.CreatedUtc = dt_post.ToUniversalTime();
post.ModifiedLocalTime = dt_post;
post.ModifiedUtc = dt_post.ToUniversalTime();
post.EntryId = Guid.NewGuid().ToString();
das_ds.SaveEntry(post);


}
}


6.  After running, you should have a bunch of xml file in the directory c:content.  Just upload or copy these to DasBlog’s “content” directory and the posts should show up under DasBlog.  I think I may have had to create and delete a new post to make them show up.


If you have any questions, feel free to email. 


Update 6/16/2005: Ryan Jones has implemented a dotText to DasBlog and Livejournal to DasBlog content conversion using similar code. 


Update 7/13/2005: Ben Scheirman emailed me about some difficulties he was having, and we figured out that you have to have the Timestamp Format configured a certain way for the blogger template to work.  This image shows the relevent setting:



Ben is also putting together a GUI to assist with the conversion. I’ll post a link when he finishes it up.

A New Media Model

An entire industry has sprung up to fill a gap between the the current content producers, their archaic distribution models, and the way consumers want to use content with modern technology.

What would happen if a major network decided that they were going to cut out the middle-men, and go straight to the consumer. I’m thinking WB, TBS, FOX, or maybe even Mark Cuban’s HDNet.

Here’s how it works.

1. Take every show you run on your network, including the commercials, and digitize them to a variety of bitrates and formats (WMA, MOV, Etc.).

2. Host an RSS feed for each show, allowing users to subscribe (using Doppler or similar programs) to different feeds for each show. Publish each show to the feed concurrent with it airing by traditional means.

3. Talk to your advertisers. Remind them that your goal here is to put their commercials in front of as many eyes as possible, at the lowest cost you can manage. Since this new model eliminates many layers, you should be able to distribute content this way at a lower cost. If bandwidth is a concern, utilize bittorent or other peer-to-peer technology.

4. Develop metrics that allow you to quantify “circulation” of your shows, instead of focusing on numbers of viewers. Maybe talk to Arbitron or Neilson about developing some sort of authoritative advertiser-friendly metrics for electronic media distribution.

5. Aggressively pursue anyone who tries to chop commercials and redistribute content. Use technological measures to discourage this, and lawyers to enforce it. Gradually move away from disruptive advertising, and focus more on product placements, and content relevent advertising.

6. Consider offering unique RSS feeds with different advertising for different demographics. In general, people would rather have ads that are relevent. Give them control and they would choose to view more relevant ads. Use this to sell the advertising.

Would this work?