Monday, January 17, 2005
First podcast wish coming true

After fast forwarding through about 45 minutes of the last dotnetrocks, I realized how important MP3 bookmarking will be.  I have officially requested this for a future iriver h320 firmware upgrade, but am not holding my breath.

Looks like I may have gotten a player just a bit too soon.  This post, snagged from scoble's link blog, shows that the new creative zen's will support this future.  Now just implement Adam Curry's thoughts on processing opml, and we have a fanstastic podcasting device.

Now, how do I convince the wife half way through the year (of course if no new iRiver firmware is released) that I need to replace my player.  Oh well, looks like I'll be fast forwarding for at least 2005.



 Sunday, January 16, 2005
Podcasts are for (currently) commuters?

Over the past few weeks I have done alot of thinking about podcasts.  In reality, I've been hooked on something like this for well over a year now, as I have admitted my addition to dot net rocks long ago.  So as podcasting starting coming into the limelight, I was an obvious adopter.  The lack of an MP3 player made listening to podcasts a pain for a while.  I was burning quite a few, I mean like 7-10 cd's a week, to listen to on my commute.  I spend about 2 hours a day commuting. 

I turned to podcasting because our local radio.. well.. it's not good.  There are a few channels that play some interesting music and content, but for the most part the radio bores me.  It has for quite a while.  That's why DotNetRocks was a great thing.  Now I could fill otherwise mind numbing time with something I might enjoy, nerds talking about code.  And by golly I did.  I enjoyed it so much, that I ended up downloading and listening to every show

So, enter podcasting.  Podcasting is so insanely simple, yet so powerful.  Attach some audio to an xml stream, and you have some sort of makeshift radio where the consumer has control of the broadcast.  Think tivo for radio.  Think tivo for radio where the radio shows can be produced anywhere from a million dollar studio, to a 3 year old pc in someone's basement. 

So how is this a good thing?  Does anyone want to listen to Dave the Engineer talk about cleaning out his fridge tonight?  Probably not.  But, this opens up doors to having specialized audio and video content creation and delivery like never before.  Being a software developer, I am already interested in the different shows that are created on that subject.  This delivery channel is hardly limited to technical content, though.  It's conceivable to think that most knowledge based industries could use a channel of content delivery like this, since the passionate usually are both willing to talk and listen, no matter the audiance size.

I'm not going to touch heavily on the music side of podcasting, but will say this.  ipods (although not at ALL required to listen to podcasts) are in the hands of many, many young people, who embrace technology very quickly.  It will only take one or two good feeds of “new and cool“ music for podcasting to catch up with this crowd.

The problem, though, are the tools.  As with any technology when it debuts, the tools take a while to catch up.  The idea of delivering audio and video through feeds was coming at some point, the questions that remain are what do we do with them, and how do we distribute them.  Monetizing them is another issue, but for now lets say they take the blog route for that (although I doubt that).  Nerds that need something to listen to will support podcasting for another year or so, but for this idea to live up to it's potential it needs to move past that.  To move past that the tools need to be there, and easy. 

I'd like to see packages that record, and, and publish all in one.  Tie it to skype (or some open alternative), and then make it easy enough for anyone to use it.  How about a network of podcast torent seed servers, and have all the major aggregators support retrieving and seeding the files.  Wouldn't it be cool if your mp3 player could sync, and publish your podcasts remotely?  I could drop a message in my family feed and all of their phones could grab and play the feed.

Back to the point of the post title.  I think that I have adopted podcasting because I am a commuter.  I needed something to listen to, and this has filled the void.  I have spoke with some other techies who also read blogs, and many of them are not on board yet.  One thing I have noticed about most of them is that they do not have much of a commute.  Anyone else out there listening on your commute?  Any non commuters listening?

 



DotText2DasBlog last release for weekend

Heres the last release of the weekend.  Screenshot below.  Codes in CVS, and links to direct download are below. 

I have re-added the direct option.  The direction option allows more then 25 entries to be converted.  When moving them over 1 by 1 the active and showonfront page options are moved also, direct db they are defaulted to 1 setting (thatll be fixed later). 

I still have some work to do with the categories which you'll see in the next version of the blog I release.  I hope to fix that this week.  I'm also still working on the comments, trying to figure out how to bring them into DasBlog.  I have seen a post around about it supporting CommentAPI, but haven't found it yet. 

Also the beta blog will be updated any minute now, so check it out if you get a chance, I'd love to hear from comments.  I'm going to hopefully roll it over this week.  I think I will probably move the blog to iceglue.com/blogs/tranqy.  Everything will stay up at the old blog until I can put in a redirection scheme, but the baseurl and xml feeds will be redirected as soon as I flip the switch. 

Get the source here and the binaries here.



Last update tonight

Source will be in cvs..  Heres a screenshot..  Still some fixes to make before another minor release.  Oh soon the frequent updates will move off here too the sourceforge mailing list.



 Saturday, January 15, 2005
Scriptomatic 2
Saw over on ActiveWin that ms released Scriptomatic2.  This is a cool little app that creates scripts based on the numerous WMI sources on a machine.  It's a neat little tool to easily create some really powerful scripts.  The new version adds perl, and python generation, as well as some new output's.  Check it out here.


DotText2DasBlog release and new home

Another release out the door.  This release works soley with the web services of each product.  It still only moves posts, but it is getting the .text comments :)  I haven't found an xml endpoint in DasBlog for creating comments yet.  If I can't find one I'll see if I can make a small addon release that could handle that.  The DotText service also seems to only return 25 items, which I'll be looking into.  I'm guessing I will be adding a “direct” option that will support everything. 

The sourceforce site was approved, and is here.  I'm stumbling through CVS now, so expect to see some source in the repository later this evening or tomorrow. 

For now, here's a new screen shot.  And heres a link to the source. 



 Thursday, January 13, 2005
DotText2DasBlog update

Well I won't have a beta out this week, but hopefully this weekend I'll release some new bits.  I've been moving the source to the web services and comment api, while also refactoring the app a bit to make it cleaner.  I still have to look into how to post comments to DasBlog via services.  I'm not expecting that to be an issue.

I also applied for a spot on sourceforge.  That would provide some public source control, as well as some tools to manage the project.  Should hear back on that in a couple days.

I'll make sure to post back when either one of those are final. 



Halo2 playing itself?

Today's the second day that my bloglines showed me playing halo2.  I got the same type of entry yesterday.  I haven't played in a month or so (thanks to this damn blog  :) , so I find it odd that I'm still playing.

I'm actually subscribed to a friends halo2 feed that has the same messages, although I haven't checked with him to see if he was playing.  Anyone else seeing this?

Arranged Game: None on Unknown

Game played at Thu, 13 Jan 2005 03:31:53 GMT

Playlist: Arranged Game
None on Unknown

Gamertag (Team): Score, Kills, Deaths, Assists
hello (0): 12, 12, 1, 0
goodbye (0): 1, 1, 12, 0



 Wednesday, January 12, 2005
Oh you silly little apple

Obviously this is a very apple week.  The new headless mac may even find it's way into my home this year, although no ipod for me (thanks to iriver's fantastic h320).  Either way, had to check out the ipodshuffle site, and saw a very interesting disclaimer on their site. 

  1. Music capacity is based on 4 minutes per song and 128Kbps AAC encoding.
  2. Do not eat iPod shuffle.

Well shit.  Who'd have thought the ipod wasn't in the grains group.  Oh well, guess I better plan something else for lunch.



Web Service Testing

Started playing with the .text web service last night to see how I might be able to move DotText2DasBlog to web services instead of direct connection.  My initial thought was to just replace the DB connection with web services, but it's looking like I might build both in.  I don't see a way to extract comments from the web service as of yet (if anyone know a comment would be great), so since a goal is to also migrate comments, I may choose to support both methodologies.  More on this soon.

Either way, as I started testing I started to think about a better way to test web services.  Knowing there are probably a ton of ways to handle this, I went searching.  I was right.  There are just a ton of apps that have been developed to help test, and work with web services.  Most of them cost $$, though, which is not something I was interested in spending for this. 

My search did end up yielding a few cool things, though.  First, is the .net xml web service repertory (del.icio.us'd).  This is a nice collection of resources for web service development in .net.   They also had a direct link to the .net Web Service Studio.  This was an app that I had seen earlier in the search, that seemed to be removed form gotdotnet.  Even though the sources were removed, though, they had a direct link to the binary which is still there.

This little WSS app is very cool.  It uses wsdl and reflection to build a simple web service test client.  It's a very cool little tool, especially for the price.  Released in 2002 so it might be old news for most, but for me it was new.  Wish the source was still out there. 

 



And the desktop search winner is...

Long time readers might remember that I have been using these desktop search tools for a long time.  I started with lookout, moved to copernic, moved on to google (never posted), then msn, and last night installed yahoo.

All of the tools have pluses and minuses, and I have really enjoyed working with all of them.  After just a little time with the yahoo search, though, I think this one will be a keeper (until the next release).  I don't want to get into a full review since there are probably about 50k of them being written today, but I did want to share my thoughts on why I think yahoo will be the keeper.

For me, one of the most important aspects of a desktop search tool is searching code.  Finding emails is great, pdfs, fantastic, but the real power comes from being able to find any code, at any time, just by remembering something such as an obscure comment you may have put (like //comment this later  :)  , in a matter of seconds.  This, to me, is power.  It makes me more productive, and much more likely to do research on past usage scenarios of the various things we do.  That being said, my choice is GREATLY influenced by how the product works with my piles and piles of code.

So, why yahoo?  MSN, and copernic both also index code out of the box, and google's offering can be modified to search some code, so what makes yahoo better for me?  First off, the memory usage.  As a developer, I burn through resources like they were kindling.  Gig of ram?  Filled by noon.  So when I noticed that the memory requirements of the yahoo offering appear to be the lowest, and by a pretty sizable margin.  MSN seemed to be the biggest culprit taking upto 100 megs of memory/swap space at a time (between all of the components combined), where yahoo (so far) never goes above 30.  Still early in the tests, so this may change, but my initial impression is very good on this front. 

MSN's interface was (and probably still is my favorite), but the yahoo offering is a close second, with one huge improvement.  Search context, from the first letter you type.  So lets say you are looking to see how you've used an xmltextreader in the past.  Start typing, and by the time you get to xmlte you have all of the files, with highlighting of the use, in the search app.  Very, very nice.  I knew X1 did this, and knew if it filtered down to yahoo it would be a huge plus for me. 

So it seems like I have changed desktop searches as much as underwear in the past few months, but I think at least for now I have a clear cut winner.  For me, yahoo takes round 1.  And yes, I do realize it probably has ALOT to do with being last to the table.



 Tuesday, January 11, 2005
Reboot into java?

Well, not really, but this link from Stefano Demiliani's blog seems like a great option.  Learning java has been something on my list for a while, but also not something that I could realisticly include in my development environment (at least until my next laptop, maybe with 2 gigs of ram).  This option, though, seems ideal if you want to learn java and some other non .net languages, without impacting any of your current environment setup.  Sweet.



 Monday, January 10, 2005
DasBlog and DotText coexist?

During lunch I started thinking a little bit about how I would roll this over.  One thing that came to mind, is, could I make the two co-exist in 1 web site?  The main reason I would like to do that is I would love to keep my blog at blog.iceglue.com, and still support both my old links and new ones.

There are a few options I have come up with.  First is take a static snapshot of the .text blog, and keep the permalinks up as static sites.  Possible, and relatively easy, but lose the .text functionality. 

Another idea I had was just to move the new blog to another domain, ie weblogs.iceglue.com, but that solution feels like I am getting beat down by the code. 

Another possibility is having both of them co-exist in the same dir, and just munge the http handlers together so the right urls hit the right codebase.  This seems like the most flexible, but probably the most technically challenging. 

The last idea I had was to move everything over to DasBlog (I will be updating the DotText2DasBlog to handle categories and comments anyway), and then make some http handlers that will redirect the old .text site to the new DasBlog site on a post by post basis.  Actually, this one is probably the most challenging, and probably the best solution. 

Has anyone gone down this road and not taken the easy way out (new hostname).  Any good or bad experiences with any of these ideas?  Anyone have any other ideas?

 



 Sunday, January 09, 2005
Beta dasblog up

Here goes24 starts in 30 minutes so I better wrap this up now. 

Still have some work to do, but it's getting there. 

Code | Random


DotText2DasBlog beta released

I searched for something that would move my DotText over to DasBlog, and didn't see anything handy.  Since I've got the DB here, and theres the DasBlog web service, I was able to throw something together in about 30 minutes to handle it. 

Currently it will move entries only.  No comments, no categories, just entries.  The main reason I want to import my entries is for searching them in DasBlog, so I'm not that worried about the old stuff.  If others seem interested, I might add some more to this though.

Heres a screenshot:

Grab the source code here

[Edit]

There have been a number of updates since this post.  Please follow this link to get the details on the newer releases.  Thanks



DasBlog : Adding page templates for individual pages

As described here, here are the quick and dirty details on how I implemented multiple templates in DasBlog. 

Each page in the DasBlog system inherits from SharedBasePage, which has a virtual method GetPageTemplate.  All of the pages I investigated defered to the base SharedBasePage.GetPageTemplate, which in turn calls GetHomeTemplate. 

Being as all these methods are there, I either assume there are parts of the framework that actually already dynamicly load templates, or there were plans to add these features in the future.  This being the case, I wanted my implementation to touch as few places as possible so I can yank it out if I need to. 

To quickly implement this, I added some code to the GetHomeTemplate method in the SharedBasePage that will :
1) Get Current Page Name (ie Permalink.aspx)
2) Attempt to load a template for that page (ir permalink.blogtemplate)
3) return the custom page, or if null return the home template

To accomadate this, I also added an OpenNamedTemplate passthrough method in the themes.cs file.  Once again, these two minor changes now facilitate each page having their own template by simply adding a new template permalink.blogtemplate.

You may ask, why would you want this?  The main reason is to try to emulate how MT works when someone clicks an individual link.  So once I had this, I added a new permalink.blogtemplate, and removed the DIV's that handle the right sidebar content.  Easy as cake.  I haven't found another place to use it, but I'm sure I will as I continue to dive into DasBlog.

Complete Change :

In SharedBasePage.cs:newtelligence.DasBlog.Web.Core.SharedBasePage (CHANGE)

  /* [DynamicPageTemplates]
   * Changed to allow dynamic templates.  Will parse out the page name, and attempt to
   * load a template based on that name.  If it finds one, it will use it, otherwise
   * will drop back to home template. ajj 1.7.04 [/DynamicPageTemplates]
   */
  public virtual string GetHomeTemplate(string path)
  {
   string templateString="";
   string localPath = this.Request.Url.LocalPath;
   string pageName = localPath.Substring(localPath.LastIndexOf(@"/") + 1 ,localPath.Length - (localPath.LastIndexOf(@"/") + 1)).Replace(".aspx",string.Empty);
   using ( TextReader sr = Theme.OpenNamedTemplate(path,CategoryName,pageName) )
   {
    if (sr != null)
    {
     templateString = sr.ReadToEnd();

    }
   }
   if (templateString == string.Empty)
   {
    using ( TextReader sr = Theme.OpenHomeTemplate(path, CategoryName ) )
    {
     templateString = sr.ReadToEnd();
    }
   }
   return templateString;
  }

In Themes.cs:newtelligence.DasBlog.Web.Core.Theme (NEW CODE)

  /* [DynamicPageTemplates]
   * Added this method to load a named template to allow a page to load
   * any template ajj 1/7/05 [/DynamicPageTemplates]
   */
  public TextReader OpenNamedTemplate(string basePath, string categoryName, string templateName)
  {
   TextReader templateReader = OpenTemplate(templateName,basePath,categoryName);
   if (templateReader == null)
   {
    return null;
   }
   return templateReader;
  }

 



Blog rollover delayed

I'm going to put off rolling over the blog for a little bit.  This is mainly since I doubt I will be moving forward with movabletype.  MT is a fantastic product, but I just had a bad feeling about introducing ActivePerl and MySql into my environment.  Since I host my own blog, I had this feeling of void not knowing what was going on inside the blog.  I also had no idea even how to backup and restore mysql, let alone administer is.  So in the end MT it was fun, but I have to say goodbye.

The problem is I really like how MT works.  It's template engine is fantastically simple yet capable, and I also really like the out of the box end user experience with MT.  Based on my experience adding podcasting to .Text, I knew modifying .Text to do what I was looking for would be out of the question. 

Enter DasBlog.

Not knowing what to expect, I grabbed the latest source off of GDN for DasBlog, and started up with that.  I had originally passed on DasBlog because of it's lack of SqlServer support, but then figured I don't get anywhere NEAR the traffic of say a Scott Hanselman, so I'm sure I will be ok without Sql Server.

I was up and going with DasBlog in about 20 minutes, and started diving into it right away.  The first thing I noticed is it had somewhat of a template system, using the .blogtemplate files as a partial direction on how to render pages.  Not quite like MT template, but still quite usable.  I quickly modified the source and added support for multiple templates (separate post on that), and suddenly DasBlog was looking damn good.  Within an hour of installing it I was able to setup a basic blog, AND modify the source to support multiple templates. 

I started doing a bit more research on DasBlog, and ended up spending a good portion of the weekend working on a replacement for the MT blog I just finished.  I think DasBlog will be a keeper.  I was able to move all of the HTML and stylesheets over in a couple hours, and although there are some features not in DasBlog yet, the newest source off SourceForge includes enclosure support.  Nice.  It also looks like development has picked up on it greatly in the past few months.  Even better.

I should have a public dasblog no later then Tuesday, and hopefully move over either next week or weekend.  Also, anyone know any .Text -> DasBlog converters?  I'm sure it will be pretty simple since I can get to my .Text DB and DasBlog has web services into it, so if I can't find any I'll post some details here.

 



 Wednesday, January 05, 2005
Blog rollover this weekend

This weekend I plan on moving the blog over to the new blog.  I hope things go smooth, but there may be some difficulties getting here over the weekend. 

Currently my plans are to snag my entire blog into static html so I can preserve my old links, and then move the host header in iis.  I thought about trying to make .text and MT coexist, but decided not to even try that since I didn't see much value in it.  The feed url will stay the same, although there will be a new feed that will have enclosures. 

After some thought, I've also decided to ad some google adsense to my blog.  I debated about this for a bit, but decided to try it out.  The ads will be at the bottom of the pages, blended into the new design.  I think it's very unobtrusive, but might generate at least some revenue for server expenses.  (read: I want a new server since this celery900 can't do much more then what it does  :)

The new blog also has my del.icio.us feed on the sidebar.  I have been using this site for a week or two and so far it's fantastic.  I've tried a few ways of centralizing bookmarks, but this is by far the most versitile tool I have tried.  The social aspect of the bookmarks has already taken me down a few interesting trails, so I think I'm going to find all kinds of value in del.icio.us.