July 2005 - Posts - Jon Galloway

July 2005 - Posts

RSS.NET - new build

RSS.NET is an open source class library which reads and writes RSS reeds. The project is still technically in beta and has never officially released a build, but a lot of applications are using it. I've been using it for a while and am very happy with it, but it has been a little disappointing to see this project linger in beta limbo for a few years now.

I was happy to see some recent CVS checkins with improved date handling a few weeks ago, not just because date handling in RSS is problematic, but because it's great to see some activity on this extremely useful library.

You can grab the latest RSS.NET build here (tar format).[1]

And here's a great article on using RSS.NET and it's evil twin, Atom.NET.

[1] If your zip program doesn't like tar's, I recommend IZArc.

powered by IMHO 1.2

Posted by Jon Galloway | with no comments
Filed under: , ,

New blog by Roiy, creator of Monoppix

Roiy, the brains behind the Monoppix project, just started a blog. His first post covers Sending E-Mails With Embedded Images and an overview of the DotNet Open Mail Library project.

Subscribe to his feed here.

powered by IMHO 1.2

Posted by Jon Galloway | with no comments
Filed under: ,

MSDN Subscriptions - Visual Studio 2005 Team System Beta 2 VPC

Scott told us it was coming, and here it is - a VS 2005 Virtual PC image with Team System installed. It's on MSDN Subscriber Downloads (at subscription levels that will get VSTS when released, I think) under:
 - Developer Tools
   - Visual Studio 2005
     - Visual Studio 2005 Beta 2
       - English
         - Visual Studio 2005 Team System Beta 2 VPC (English)
"Visual Studio 2005 Team System Beta 2 VPC (English) "

This just popped up in the MSDN Subscription
RSS feed .

At 2.6GB (compressed) it contains:
"Microsoft Windows Server 2003 Standard Edition (expires September 16, 2006)
Microsoft Visual Studio 2005 Team Suite Beta 2 (expires May 1, 2006)
Microsoft Visual Studio 2005 Team Foundation Server Beta 2
Microsoft .NET Framework 2.0 Redistributable Package Beta 2
Microsoft SQL Server 2005 Community Technology Preview
Microsoft Office 2003 Standard Edition
Microsoft Live Communication Server 2003"

This SO rocks. I dig it when MS releases stuff as VPC images. It saves SO much time...

Downloading now.

Update #1, 7/20/2005 @ 5:01PM PDT:
Downloaded, unrar'ed (8.6GB uncompressed), VPC Differencing Disk created and now it's running.

Much faster than if I did all the installs myself.

The only issue I've run into so far is the Live Communications Service would not start. The Service's logon account being used, LCService, password had expired. All I had to do was that account's password to never expire and then the service started with no problems.

Even with only giving the VPC 512MB RAM it seems to be running pretty fast...

This really does rock. Good job Microsoft.

Source: MSDN Subscriptions - Visual Studio 2005 Team System Beta 2 VPC


powered by IMHO 1.2

Posted by Jon Galloway | with no comments
Filed under: ,

[OT] Sufjan Stevens gets the ToString treatment

My good friend Sufjan just released another brilliant album, Illinoise, as the second installment of his 50 States project. Not surprisingly, it's been very well received. It was a very unexpected honor to be  asked to remix one of the best songs on the album, Chicago, for an iTunes only release.[1]

Here's the iTMS link to what I came up with: Chicago (JonGalloway ToString remix) [2]


I'm pretty happy with how the remix turned out given the time and other challenges. My computer died on me the night before it was due, so I had to reinstall until midnight and mix until dawn, then go to work and crank out some TPS reports.

My brother Brian helped out with some drums, mandolin, vocals, and live instrument recording. My rokken wife, Rachel , added some cool vocals (as well as ukulele and flute parts which were cool but didn't fit in the mix). I got busy with some envelope-filtered bass, Fruity Loops, and Sonic Foundry (Acid and SoundForge)[1].

The original song is a folky-pop-rock number. The remix is dance-pop with a bit-o-glitch for fun. If you've got 99 cents burning a hole in your pocket, give it a spin.

And definitely check out 's Illinoise - it's really good. NPR just did an interesting feature on Sufjan, with an NPR exclusive Sufjan track.

[1] I did a lot of the electronic / computer stuff in a band (Soul-Junk) many moons ago. We toured with Sufjan before he became a big star.
[2] iTunes required to hear an iTunes exclusive release, of course.
[3] Sony bought both Acid and Sonic Foundry, but I've got the old SF versions.

Posted by Jon Galloway | 1 comment(s)
Filed under:

[OT] Why the name JonGalloway.ToString()?

Why is my blog titled JonGalloway.ToString()? I've had several non-nerds ask me that recently, so here it is:

ToString is a programming command to get a text representation of an object. A software object can be a very complex system, and the ToString command has the difficult job of giving a short description of what's inside. In computer programming, a String means "a string of characters" - basically, some text.

Some objects tell you nothing useful when you call ToString - just their name, or what type of objet they are. Others will tell you not just who they are, but what they're doing and where they've been. It's a general concept that's up to the object, and each handles it differently.

That's the title of my weblog - JonGalloway.ToString(), and I like that term as kind of a larger abstract concept - creative output (writing, music, etc.) is a tiny summary (500 words, 3 minutes of music) which attempts to describe complex essense, being, and substance of the person(s) that created them.

Posted by Jon Galloway | with no comments
Filed under:

We need an Embedded Database for .NET applications

No, I'm not talking about Jet / Access. Microsoft and the general development community are moving away from it; plus, the MDAC redistributable is kinda big.

No, I'm not talking about MSDE or SQL Server Express (even though the MDF file connections are cool). Both require huge installs. Worse, they're really installing a database server on the end user's computer. That's not appropriate for a small, freeware utility - if I started intalling a freeware app and it wanted to install a 40MB database server that would run on startup, I'd cancel the intall.

I've been working with SQLite to moderate success. I'm evalutating SharpHSQL now. WATYF and Rick Strahl list some of the options out there along with their problems - none of them are really there. They shouldn't be necessary anyhow - a solid development framework like .NET should include a basic, embedable DB. Heck, it has support for IrDA End Points, how about a lightweight database?

And - No, no, no, a thousand times no: XML is definitely not what I'm talking about. .NET pushes it, but it's a terrible data storage format.

Posted by Jon Galloway | 28 comment(s)
Filed under:

SQLite - Database is locked

Summary:SQLite is a great, free, embedable database. It's fast, tiny, and reliable, and has some cool features like support for NTFS compression of the database file. It's multithreaded, but its coarse locking can be a problem.

I first read about SQLite over at EggHeadCafe researching ASP.NET database cache dependencies. It's small, fast, free, and there's a good SQLite ADO.NET provider on SourceForge. More about it here (PPT). I decided to use it for an RSS aggregator pet project. It worked well for a while, but I ran into problems when I began using it in a multi-threaded application (one thread downloading feeds, another marking a feed read when viewed).

SQLite is technically thread safe, but a write operation locks the entire database (more):
- Any resultset being step()'d through uses a shared read-only lock. 
- Any insert/update being executed requires an exclusive write lock. 

You would think the provider would wrap this with some retries or a reader / writer lock (the Python Sqlite wrapper handles retries), but it just throws the Database is Locked exception. I've filed a bug on this, but I'm not too hopeful - it may be viewed as "that's just how SQLite works".

I contemplated wrapping my database access with a TimedLock, but in the end I decided this was a good time to give SharpHSQL a shot. I'm not certain it will handle the multithreaded access, either, but the idea of a pure c# embeded database in my c# app appealed to me.

I think SQLite with the SQLite ADO.NET provider is great for applications with simple data needs, but watch out if you're planning to perform concurrent updates or inserts.

Posted by Jon Galloway | with no comments
Filed under: ,
More Posts