Chris Berg's profileChris B's BlogBlogLists Tools Help

Christopher Berg

Occupation
Location
Interests
Welcome to my Blog! This is where I share information and insights about .NET. Feel free to leave a comment or email me.
January 02

Yes, I bought a Zune and I like it!

Well, it's been a very long time since I've posted.  In fact, almost 5 months.  Most of my other posts have been about development, so this is a bit of a deviation.  However, I hope to return to posting programming tips and small applications before too long. 

I've been following the Zune since about a month before it's November launch.  I've always been interested in MP3 players, but I listen to music at work and home.  Both are places where I have computers, so I haven't seen a lot of use in buying one.  However, the Zune has a screen that's much larger than the comparable iPod which makes it much more appealing for watching videos.  That's what attracted me initially.  I wasn't sure how much I'd use a player only for MP3's, but a decent video player, that's something I'd use.  I searched around for something in a similar price range that played videos and couldn't find anything in an price range I could afford.

When my wife asked me what I wanted for Christmas, I told her I wanted a Zune, fully not expecting to get it since it's significantly more expensive than what we spend on each other for Christmas.  Well, she coordinated with her family and mine and on Dec 26th, I picked up my Zune.  So here's my review of the device and my experience so far in the past week.  I also picked up the Home A/V Pack, so I'll provide some review information about that also.

Also, I'd like to state that I have no affiliation with Microsoft and have no reason other than personal interest to write this review.  Also, I've never owned another MP3 player, although I have played with an iPod on a couple of occasions.

What I like about it

I have to say I like pretty much everything about the device.  The device has a lot of room for growth, and I certainly don't plan on using some of the features a lot if at all (Radio, WiFi - until they add some functionality).  I'll discuss some of the features that I'd like to see added a bit later.

In the words of my younger brother, the Zune itself looks "Hot".  I bought the black Zune, White was just a bit too iPod, and the Brown, well I can't say much about the color that someone else already hasn't.  I did find a Copper Zune for sale on the Office Depot site which I thought was interesting - it's not even an officially listed color on the Zune.net site.

Video on the device is awesome.  Some of the video I've put on the device doesn't look as nice as it could, but probably has more to do with the conversion process than the device itself.  Pictures I've placed on my Zune look nice and crisp (one of the reasons why I think the video issues have more to do with conversion).  Music sounds great, and although I'm no audio geek, it sounds just as nice as the music when played from my computer.

One of the other functions that I like is the ability to change the background on the device.  Overall, the interface of the Zune is very nice on the eyes. 

My wife is now 33 weeks pregnant, and when we had to make a trip to the ER on Friday (my wife is fine BTW), the Zune was a lifesaver.  Our DVD player wasn't recharged.  I had converted a couple of my daughter's DVD's for the Zune, so I grabbed a pair of headphones.  My 2 1/2 year old daughter watched Barbie and Pooh videos the entire time we were at the hospital.  I also let her watch a movie during a trip to the grocery store this weekend, a place where she regularly gets grumpy because she gets bored.

A/V Pack - I mentioned before that I also picked up the Zune A/V Pack.  I like that it easily connects to my stereo/TV setup.  There are a few quirks that I found odd about the A/V Kit, but I'll discuss those in my gripes section.

Gripes (Includes issues with the Zune software)

Lossless WMA isn't supported - As I mentioned before, I'm not an audio freak, so the difference in quality isn't noticeable, but it irks me a bit that the default rip format for Windows Media Player is a format that's not supported by the Zune.  On the other hand, WMA Lossless files are huge, so it did make my media library a bit smaller which means I have more room on the device for more music and videos.

Album Art - I've seen comments online that the album art isn't as nice as the device supports.  I have to agree, the device has an awesome display, why put low resolution album art on it?  At least make this configurable for people who don't want to take up space with the album art.

Video - It would be nice to see support for more types of video on the Zune.  Even though everything I've seen states that WMV, MP4 and H.264 are supported formats for the Zune, the software simply converts everything to WMV.  And without the help of this hack, there'd be no way to get the converted music/video/etc off of the device, which means a conversion every time you sync to the device. 

Sync - I've already mentioned the above issues with converting media for the Zune.  However, there are a few things that I haven't discussed.  If you have media in a format that's not Zune-compatible and you're using the auto-sync, the media will be re-converted EVERY TIME you connect your Zune to your computer.  Apparently it converts the media before it checks to see if it already exists on the device.  I'm assuming this is to allow multiple copied of the same song.  This can be disabled, but it's the default functionality.  In the case of video, that doesn't auto-sync by default, but causes other problems.  I had a couple of TV episodes in MP4 that I moved to a different folder.  The Zune software knew the video files had moved, but for some reason, it removed the episodes from my Zune on the next auto-sync.  I know that if I remove media from my computer, on the next Sync, it removes it from the Zune, but files that were simply moved?  Especially if I have to go through a long conversion process, this should probably be fixed.

Conversion - Something else that I find interesting is that the conversion process can only be started during a Sync.  Apparently the software will also convert files in the background, but only if the software is open, the Zune disconnected, your computer is running on AC power and has been idle for 10 minutes (there may have been some other criteria, but I didn't see this anywhere official).  The Zune help directs you to Windows Media Encoder 9 to convert files, but it doesn't support MP4, so only some types of media can be converted with that software.  I'd really like to see support for more file types/codecs within the WME software at the least.  Also, it would be nice to be able to save the converted files on your computer to avoid re-conversion (although I've pointed out a simple registry hack that will allow you to pull your converted files off of the Zune, it would be nice if there was something automatic).  What if I want to convert my files while I'm using my Zune?  Currently it's not possible.

Video Information - Currently, the Zune software only supports editing of the title of the video files.  It would be nice to be able to edit all of the file's information like I can with my MP3 files.

A/V Pack - The functionality itself is nice.  However, it would be nice if the Zune went into TV Out automatically when docked.  I can't just dock the Zune and pick up my remote.  I have to dock it, get into settings and turn TV Out on.  I understand that this may not be enabled because of people who are using the dock without a TV, but this should be configurable.  It automatically switches to its own display when undocked, why not the other way around?  The display for TV-Out seems to clip the sides of the video.  The menu system is also compressed compared to what is displayed on the Zune screen, so it makes me feel like the interface is cramped even though I'm seeing it on a much larger display. 

Things I'd like to see added

Album Shuffle - For some reason, it's not possible to shuffle the contents of an album from the menu.  When I'm viewing audio in any other sort, I get a Play and Shuffle option.  For some reason, I don't get Shuffle with an album.

Killer functionality for the WiFi - Since I have the Home A/V Pack, I'd like to see a wireless sync and possibly wireless control (through a PC, not a remote).  Please add something that makes the WiFi something nice to have rather than something I just turn off to conserve battery power.

Games - It doesn't have to be anything amazing (although I'd love to play Doom on my Zune), but it would be nice to have some small games on my Zune.

A/V Pack - Automatic TV-Out on dock as well as a better display for the TV-Out.  I'd also like to see higher-resolution video supported for TV-Out. 

Problems I've had so far

Once when I was listening to music, the device shut down.  I had it in my pocket without the hold on, but the combination of keys required to turn the device isn't something I would expect to happen in an empty pocket.  I'd hate to have to start rebooting my Zune as often as my PC.

Lost Video - I discussed this in my gripes, but during an Auto-Sync, it removed some converted TV shows because I moved them to a different folder on my hard drive.

Wrap-Up

All in all, I really enjoy the Zune.  There's a ton of room for growth.  I'm excited to see what MS has in store for it.

August 14

Lost Experience - Fragment Checker

For those of you who get tired of checking the HansoExposed.com site to see if new fragment codes have been activated, I wrote a little app to check the xml file found at http://www.hansoexposed.com/xml/statistics to see if any new codes have been released. You can download it here. Check it out and let me know what you think. If anyone finds a bug or has problems with the application, email me at cubeberg@gmail.com.

Just some quick info about the application.  First, it starts out in your system tray.  It's an icon of a Glyph.  Double clicking on the glyph or right cliciking on it and choosing "Show" will give you the main window.  There is also a settings window which allows you to change the interval at which it checks for fragments.  The default setting is 30 seconds.

Sorry for those of you who aren't using windows, but this is a .NET application. If you need the .NET 2.0 Framework, you can find it here (that's a link to a download page on Microsoft's site).

Thanks!

****Update*****
I just added a screen shot of what the notification looks like when a new glyph is found.  Enjoy!

****Update 2*****
I added 2 more screen shots.  One is of the main screen and the other of the Settings screen.  I've added some additional description above also.  Apparently Matt the Pale was nice enough to add a link to this page!

 

Technorati : ,

August 01

Sandcastle Review

Well, I just ran my first test of the Sandcastle CTP and so far, everything looks good. All in all, everything looks excellent. It's definitely a first release since there are several commands to run the whole process. Check out my previous post on a cool little app that creates a .BAT file to automate the process which probably saved me a good hour or so.

Here are a few things that I saw off the bat that are missing

  • Description of Enums
    • I know this is planned for a future release. Currently there's a blank "Description" column
  • Nicely organized/named HTML files
    • I'm not sure if this is planned, but it would be nice to have the option to build a nice web site containing documentation. Not everyone likes CHM files, especially since it's a hassle to distribute them. Some HTML files are generated, but they're not in a usable format.
  • A nice GUI
    • Yes, I realize this is just a CTP, but I don't imagine a quick UI or simple console app would have taken very long.
    • I would expect to see this in 1 or two releases.
  • Some way to set the default language
    • Code samples are included in some of the documentation. It would be nice to set the default to VB instead of C# since I'm working in a VB shop.

All in all, this doesn't seem to be a difficult application. It uses reflection to retrieve information about the assembly, runs an XSL transformation to create the HTML and then creates the CHM file. I'm surprised that MS has taken so long to release something they already had internally, but it sounds like they were depending on NDoc to pick up the slack (and in case you haven't heard, that project is dead for now). I'm hoping this project will become a nice little app, or even become integrated into VS in the future. Cross your fingers!

For those of you who would like to be able to put the resulting CHM files in a central share, check out this KB Article on enabling CHM file viewing a UNC or web site.

Technorati : , , ,

Sandcastle Helper

For those of you who have checked out the Sandcastle CTP, but find the instructions a bit tedious or confusing, you can find a helper application created by Ashley van Gerven here.

MS will be publishing a GUI shortly, but it's nice to have something available now, rather than 6 months down the road. If you don't know what I'm talking about, check out the Sandcastle blog.


Technorati : , , , ,

July 31

Weekend Linkage

I wanted to direct everyone to some links that came up over the weekend.

The first is a link from Scott Gu's blog. SSW has released some pretty extensive coding standards. Check them out here. I consider myself a good developer, but I know I have a lot to learn, as does a good portion of the industry.

Second, there has been some news about Microsoft releasing their internal documentation compiler, Sandcastle. Check out their MSDN Blog and download the first CTP.

Also, I'm working on a test skin for DotNetNuke based on a page over at Open Source Web Designs. Hopefully it'll be done and posted later today!

Enjoy!

Technorati : , , ,

July 26

Linkage

Things have been a bit crazy the last couple of days (my wife is pregnant and there have been a few complications), but I wanted to share some links I've come across the last couple of days:

Video - Visual Studio 2005 for Database Professionals (MS Channel 9)

Implementing Role Based Security with ASP.NET using Windows Authentication and SQL Server (From ScottGu's Blog)

Free web site templates - Open Source Web Designs

Chris

Technorati : , , , , , , ,

July 19

Community Credit and Cool Link

For those of you not familiar with Community Credit, check it out here as well as this month's prizes. David just finished the July newsletter which you can find here. I especially enjoyed this link:

Cool Virtual Map at Microsoft Visitor Center
If you have seen Minority Report, it is pretty close to that type of interface.

I'm currently in 12th place for the month (that's the 11th prize, don't ask me why), but I still have a lot of things up my sleeve, including the church website which should be up shortly, as well as some DNN skins that I'll be creating for the site.

Chris

Technorati :

July 18

DNN Project Status and Tips

So I've been fooling around with DNN for a few days now. Overall I'm very impressed with the product. Like anything else, it has its limitations, but at least I can change things if I need to which I wouldn't have with a lot of other products.

However, one of the things that I've found troubling is the lack of documentation. I'm depending on the events module very heavily and there is no documentation that I can find that explains how to use the module. I poked around with the module settings enough to find what I wanted, but it would be nice if there was information on using it, especially since I'll be responsible for training people how to use it.

The other thing that I've had issues with is the Blog module. Blogs are bound to the user who created them and by default, a page with the blog modules on it will display any blog on the portal. It would be nice to be able to create a blog and tie it to a user, not just the person who created it. I may not necessarily want a person to be able to add modules to a page, so how do I create their blog? How do I tie a specific blog to a page? Well, I figured out a way to take care of this:

Creating a user specific blog without logging in as them

Although this is not the nicest way to handle the problem and requires you to go through the database, it still works. Just change the UserID to the ID of the login it should be associated with (Get this from the Users table). This will allow you to create another blog while logged on to your administrator account.

Setting up a Personal Blog page

If you want to create a page that only shows one blog, go into the Module Options on the blog item list. Then change the value of "Personal Blog Page". This will set up the blogging module to only display that specific blog.

Now even though I am complaining a bit, I do realize that the people who work on this project aren't getting paid to do it. The fact that the modules have all of the features that I've looked for so far is incredible. I just hope they'll concentrate more on documentation a bit down the road.

Technorati :

July 17

Upcoming Projects

I haven't made a post in a couple of days, so I'll catch up on what I've been working on.

As I mentioned earlier in the month, I'm going to be the webmaster for my church's website. Because I didn't want to do a ton of custom development or use several different tools (I wanted a unified login system), I've decided that we will be using . It satisfies almost everything that we will need as well as a lot that we'll probably use in the future.

Right now, the hurdle that I need to get past is making sure that the Events module will satisfy everything that we need. I'm not sure it does currently, but I may be able to change a few things behind the scenes that will get everything to work the way we want.

Right now, my only gripe is that DNN doesn't seem to have very good documentation. It may be that I haven't poked around enough.

After I've done a bit more work with it, I'll probably post a review of version 4.3.2 of DNN.

Chris

Technorati : ,

Powered by Zoundry

July 12

SQL Server Tip - updating data from disparate databases

I'm not a DTS wizard by any means. I don't use it a whole lot, and always consider writing a program to move data around instead (Although I rarely do since DTS is usually quicker and can be set up pretty quickly) since I don't find it very intuitive. When I needed to move a list of users from one database to another, either inserting if they didn't exist, or updating information if they did, I wanted to see if DTS had a simple solution.

Now I had to do a lot of searching online before I figured out how to do what I wanted, but I found a decent solution that was fairly simple - the Data Driven Query task. Here are the steps that I used for my specific solution:

  • Specify your source table
    • this is where you'll get the information to feed to the destination table
  • Specify your binding table
    • This is usually your destination table, but represents the data that you'll be transforming from your source and using to drive your Insert/Update queries
  • Create a lookup
    • Since I needed to look in my destination database to see if an insert or update was necessary, I created a lookup for the destionation based on a unique field
  • Transformation
    • Here is where the majority of the magic happens. As you would in a normal transformation, specify your source and destination fields. Note that this doesn't actually insert data as it normally would, but provides you with the information to feed to your update/insert queries.
    • Execute your lookup to see if the record already exists in the destination table. If it does, use the DTSTransformstat_UpdateQuery status instead of DTSTransformstat_InsertQuery.
  • Specify your queries
    • Specify your Insert/Update queries. For any values that will be coming from the source database, use a ? in place of the value. If you typed it manually, click on the Parse/Show Parameters button.
    • Once your parameters are showing, specify the field the value will be coming from.

And there you have it!

BTW, I'm sure this would still work in SQL Server 2005, but I'm stuck in 2000 for the meantime. I hope the task is a bit less confusing in 2005 also.

Technorati : , ,

Cannot Generate SSPI Context error - Fixed

I made a post on Monday regarding the "Cannot generate SSPI context" error I was receiving from one of our servers running SQL Server 2000.  Well, we figured out what the problem most likely was.  Someone had applied some Windows Updates and hadn't done the required restart.  Rebooting the machine fixed the issue!
July 11

ASP.NET 2.0 and Option Strict

Much to my dismay, shortly after I started working on VS 2005, I realized that there was no way to enable Option Strict in a Web Site within the GUI.  Now I have a several gripes about VS 2005 (Yeah, I know, MS can't satisfy everyone), but I always advocate programming with Option Strict turned on.  Here is a thread on the ASP.NET forums on turning it on through the Web.Config.  Yet another MS mess up.  I have no doubt this is tied to their "Projectless" Web Site model that is new in VS 2005.
 
The reason why this upsets me is partially due to the fact that I started out as a C# programmer.  I'm used to casting (I'm not a huge fan of the CType structure either, I much prefer casting in C#) and dislike the runtime errors that aren't caught when compiling with Option Strict Off.  Why take the chance?  I'm not a perfect programmer, and it's nice to have something like the compiler to catch my stupid mistakes.
 
Since I'm working on a new 2.0 Web Site, I was looking for the link and thought I'd post it here.
 
Enjoy!
 
Chris

Password Requirements and Regular Expressions

For those of you who, like me, find regular expressions to be highly confusing, here is a good msdn article about doing basic validation, which includes some regular expressions for basic password requirements.
July 10

DB2 and .NET - Update 2

Well I managed to get the requires packages set up on our iSeries server.  I found that I needed to run a few commands before I could run their suggested fixes.  I found the commands in this thread in IBM's forum. 
 
Basically, I needed to run the following commands to register the server with my computer (replacing <server> with my server and <database> with the database):
 
db2 catalog tcpip node iseries remote <server> server 446
db2 catalog database <database> as <database> at node iseries authentication server
 
From there, I needed to run db2 connect to establish a connection with the server.  After that, the db2 bind command worked correctly.
So I should be able to run queries (haven't had time to finish up my test application yet) without errors. 
 
My newest gripe is that when I expand the table list in the Server Explorer, I don't see all of my tables.  I figured out how to filter by library within the connection wizard, but I still don't see everything.  I have a feeling this is a bug since I saw a few posts about this in the IBM forums.
 
More posts when I get some test applications working!  Hopefully an article will be forthcoming also.

Microsoft "Sandcastle"

At my last job, I was looking for a way to generate documentation from the XML Code Comments I had added to my classes.  Unfortunately, there don't seem to be any good products available. 
 
Fortunately, Microsoft seems to be creating their own solution called "Sandcastle".  It's mentioned in this MSDN forum thread.  I'm excited to see the product and do some testing.  Since the XML comments are built into VS 2005 for VB, I'm surprised it's taken them this long to create something to format the comments.
 
The CTP should be available soon, so keep your eyes peeled!