Showing posts with label technology. Show all posts
Showing posts with label technology. Show all posts

Thursday, February 25, 2010

Bad Blogger

I have been a bad blogger. I have not updated or posted anything in a long time. Well I am going to change all that. Hopefully.

In the coming blog posts I am going to discuss what I have been doing in the world of computers. Below is a list of some of the things I want to blog about int the next few blog posts. Some of the items might be multiple posts. So in no particular order here goes.

Hope you all stay tuned for the start of the NCommon posts. They will discus what NCommon is and how to intergrate it into an asp.net mvc application.

Thursday, December 06, 2007

Code Duplication Woes

Code duplication is EVIL! We all know this right?

First let's define duplicate code. I will take the definition right off of wiki....

Duplicate code
is a computer programming term for a sequence of source code that occurs more than once, either within a program or across different programs owned or maintained by the same entity. Duplicate code is generally considered undesirable for a number of reasons. A minimum requirement is usually applied to the quantity of code that must appear in a sequence for it to be considered duplicate rather than coincidentally similar. Sequences of duplicate code are sometimes known as clones.

The following are some of the ways in which two code sequences can be duplicates of each other:

  • character for character identical
  • character for character identical with white space characters and comments being ignored
  • token for token identical
  • functionally identical
So why is it bad? Well for many reasons, one it causes the cost of maintenance to go way up because now not only do you need to change the code once, but you need to search the code for other ares to change. Make the code fatter. More code is not easier to understand. More code also takes longer to write.

Let me give you an example I just came across in the last few weeks. I have been doing some work patching a website. There was an error that was occurring anytime two new products were added to the database and a customer was purchasing one of the new products. Do I had to debug the issue. Basically what happened was the developer who wrote the web page that was failing decided he was going to create two static arrays. One array would hold all the prices of products, and the other would hold the product descriptions. he then put he item in the array at the array index corresponding to the database product key. that way when the page was passed the product id, he could look in these arrays to get the info out. Well, what happens if you forget to update these arrays when adding new products, well you get index exceptions and pages crashing. I have know idea why the developer did this. I mean you have the product id why not just get the details from the database? This poor design and duplication cost real world dollars.

Please never duplicate code, data or logic in a software application. It is never good practice. Oh there are tools you can get to search for code duplication. The one tool that comes to mind is Simian. I have never used it, but I might start.


Friday, November 30, 2007

Writers Block

Wikipedia says the following about writers block...

Writer's block is a phenomenon involving temporary loss of ability to begin or continue writing, usually due to lack of inspiration or creativity.

I am not sure that exactly fits me though. I have a lot of topics I would love to blog about, yet I haven't had the time to research them though.

Some of things I want to review...
VS 2008 new features and what not
Silverlight 1.1
SubSonic
More loose coupling techniques

So hopefully next month I will have some time to start attacking this list. If there is anything you would like me to talk about let me know. Just add a comment below.

BTW... I added ClustrMaps to my blog on the right.

Thursday, November 15, 2007

Nhibernate and Composite Keys

I like using Nhibernate to do my object relational mapping. Although there is a large learning curve to the tool, once you use it a few times, mapping your objects become second nature, or that is what I thought until I had to map a database heavily using composite keys.

See for some reason when using composite keys NHibernate has trouble telling if objects are new or if they are updates. This force you to have to call the insert method instead of the save. Not a big deal if you can tell when a page is doing an insert and when it id doing an update.

Another issue was getting many-to-one mappings and one-to-many mappings to work. see loading was not a problem but again when trying to update and save I ran into all sorts of problems. The quick solution was to all those mappings out of the mapping file and load them in my DAO layer. Not a big deal but when you are using to having a tool handle all that code for you it is upsetting.

All in all I was able to make the tool work. Now that I know the tricks, I wont feel as much pain the next time I have to map a composite key system.

Monday, August 27, 2007

Sheepshead for 2007

I have had a series of post on the card game Sheepshead. As you now know we play the game at work because of the interesting play of power vs. points.

So we were trying to come up with a way to make the game easier for begginners to understand, and allow advanced players a way to keep the game fresh.

So here is the SpiderLogic take on Sheepshead 2007.
  • Specialized Sheepshead Cards
    • We want a way to quickly understand what the cards mean in the game. So, we want specialized Sheepshead cards. Instead of the pictures of royalty and number patterns on the cards we want In the middle of the card, just a big picture of the suit, for example, a big heart for hearts, a big Club for clubs, a big spade for spades, and a big T for trump. This would cut down on confusion on if the Jack of clubs is trump or not. Along the top the cards print the point value (11, 10, 4, 3, 2, 0) and down the side you can put the trump order. Each card would also have a unique bar code on them. Why a bar code, see 2, 3, and 4.
  • Computerized Help
    • Each player has a card scanner that after dealing the player could scan his/her cards. Then during each trick, the player would scan the card being tossed, and a computer could beep a warning if the player was not going to follow suit and make a misplay. I guess you could program it for other things like optimal play so if you are a beginner it could help you play better.
  • Computerized Point Totaling
    • This same system then would also be able to know who partners are and be able to total points for the hand. This would save time allowing for more hands played during a lunch period. I know what you are saying good Sheepshead players should already know the point count, well true, but you still need to do a confirming count at the end of the game.
  • Stats Keeping
    • I am talking the mother of all stats keeping. Not just basic things like how many times I pick and win. I am talking like how often does called suit walk, how many times did I pick and who was my partner, do I have a better win percentage in three handed. Does one player tend to pick and pull down others. Of course all this would be displayed on the web for all to see. This can easily be done, using the scanning machine again and a nice website. You can tell the computer who picked, the called suit, or if playing Jack of diamonds it already knows the partner. Then off the play of scanned cards it would be able to automatically be able to keep these stats fresh in real time. Talk about bragging rights.
  • Online Play
    • Improved online play. I have tried to play Sheepshead online and really it is not that fun. First it is really hard to get a table going if you are not a rated player. I have been playing Sheepshead for13 years but because I never played online I have no rating and people wont let you on their tables. Then if you are lucky enough to get on a table be sure you can trust people, because I was at a table and all they did was pass so they could double points. they would do this for like 20 deals in a row just so the point totals would be big. If you picked to soon, even if you had the boss queens, two jacks, and a couple small trump they would get mad.
So there is the wish list. Some items could be changed to make things easier for example. I guess you could use rf technology instead of bar codes.

----------------
Now playing: Akon - Sorry, Blame It On Me
via FoxyTunes
----------------
Now playing: Buckcherry - Crazy Bitch
via FoxyTunes
----------------
Now playing: Bowling For Soup - Girl All The Bad Guys Want
via FoxyTunes
----------------
Now playing: Blink 182 - All The Small Things
via FoxyTunes
----------------
Now playing: Barenaked Ladies - The Old Apartment
via FoxyTunes

Monday, July 23, 2007

Subversion Repository

When developing software you need to store your code in a repository that will maintain versions, and also allow for merging and branching of the code base. At work we use Subversion.

When we set up a project for a client we try to use a standard directory structure. We do this so that no matter what project we are working on we can easily move to another project to do work if the need arises. The structure looks like the following...
  • client name
    • Project One
      • Trunk
        • bin
        • docs
        • lib
        • src
      • Tags
        • Tag_1
      • branches
        • branch_1
    • Project Two
By using this structure we know that the current code base will always be in Trunk. Tags contains versions of the code you might want to go back to. we tend to use to hold each release version. Branches are used when you need to create a new development path. This could be done for an emergency bug in production or just to experiment with a new technique. Usually any changes to a brach will need to be merged into the Trunk version.

Friday, June 15, 2007

MacBook Pro

So for the last couple months I have been thinking about getting a MacBook Pro. Growing up I always had apples or macs for my home computer. It wasn't until I got to college that i bought a PC. It was easier for me to do development on it at school, and to be quite honest in the work place.

Ever since Apple moved to the Intel platform, and Macs can now run anything either on OS X or with any flavor of Windows running in emulation, I really have no excuse not to use a mac, except cost.

Well the cost myth has pretty much been debunked thanks to the following post... To add to that, now three people I work with have MacBook Pros. Every time I see them do demos with their macs or just work with them in general, I do get a little jealous.

The other reason I have held back is because I am worried, that although it is a mac that I would work emulated all the time. Since 90% of the work I do is .Net development would I benefit from the Mac part of the Mac. Will the emulation really slow down the development process? Do I have to use ITunes?

Monday, May 07, 2007

Mix 07

I am back from Mix 07 and boy was it fun.

In this post I am just going to recap my trip and the conference. In following post I will talk about specific things form the conference.

The conference was in Las Vegas and it was held at the Venetian. The Venetian is nice and they do a good job of taking care of you. The hotel rooms were very big and pricey. They were running $259 with the conference special. Each room had three areas, a sleeping area, a living room/work area, and a bathroom.

The first thing I did was check into the conference. I was given a bag of swag and directions to get some more. All in all I was impressed with what I got. I think there were full copy of vista ultimate, Studio express, orcas and some other things like a notebook, a pen, and memory drive.

The keynotes were very entertaining. The sessions for the most part were informative and well planned and presented. I will discus the opening keynote along with information I got from the breakouts in future posts.

Microsoft hosted a Silverlight part at Pure. They sprung for all the drinks and food. It also included a show by the Pussycat Dolls. At the show I met a project manager from Microsoft that worked on the .Net CLR for Silverlight.

As for the Vegas part of the trip, well I don't have much to tell. I did gamble some, and I ate well. I learned a lot and had fun what more could you ask for?

Thursday, February 22, 2007

Bars going High Tech? Sooner Than You Think.

I went to visit some friends and we went out to a bar/pub in their area.

It was a new place. The bar had lots of flat screen TVs on the wall along with a nice internet jukebox, and some gaming machines. Behind the bar were fancy touch screen registers and some top shelf alcohol. I noticed on the bottles there were some weird pour caps, nothing I had seen before.

When I asked the bartender about them he explained they had little computer chips in them that talked to the cash registers. The chips would only allow the bottle to pour if the register said it was OK. The chip would also limit the amount of alcohol that was poured to the perfect shot. I did not believe him until he took out a full bottle and tipped it upside down and nothing came out. He then went over to the touch screen and put in my order and then tipped the same bottle and this time the rum came out. To prove his point, after the pour he tipped the bottle over again and nothing came out again.

The bar itself was a solid dark wood nothing to surprising, but all the tables at the place had a little built in touch screen. I was curious about it so I went over to a table where I saw some people using one and asked them about it. They told me, from the screen they could place drink orders or call over a waitress. Also they could use the screens for trivia, games, TV, internet, or even a little text chat with the people at another table. they even said these touch screen were spill proof. Although I did not test this feature for the pubs sake I hope it is true.

OK, so this place does not exist yet, but all these concepts are coming soon.

In England some computer science kids who were tired of waiting for a waitress at a busy pub and did not like standing up at the bar and waiting, thought it would be cool if they could just place and order from there table. They came up with the idea of the touch screens and the ability to do all sorts of things including ordering drinks for other tables, and yes even chatting. Currently the students have one system running at a pub in England where it is being product tested.

Here in the US I have come across the dreaded one pour shot pourer's. We all have a bartender who mixes drinks a little strong or gives out free ones to their buddies. Well with a new RFID system, bar operators can control how much alcohol gets poured. The system I ran into was the worst were they could only pour with money in the till. Some of these systems will actually allow you to pour without cash in the system, but it sends a signal to update a database with pour volume, and other tracking data. The manager then can compare the bar receipts with the amount of alcohol poured out. The best part is that employees can also be have an RFID tag on them so manger can see who poured well and who did not. Since the system tracks amount of alcohol served it can also help managers with inventory, or billing of special parties and banquettes.

So are the days of free drinks gone? Who knows, but somebody has to pay for all these improvements.

Thursday, February 08, 2007

Patterns and Practice Software Factories

The consulting company I work for only does projects and we do all the work in our office. sometimes, people need to work on multiple projects at one time. A problem that arises is that from one project to the next, the solution infrastructure varies, sometime a lot and there is a cost to get the developer comfortable with the project. The cost is mainly in productivity hours. We have been talking about coming up with standard ways to do projects and from a very top level we have a good process, things like unit testing, coding standards, peer reviews, continuous builds, and what not. What we don't have is a good solution template or anything to enforce certain patterns we like to use as a project grows.

So in my spare time I have been trying to find a solution to this problem, at least from the DotNet side of our practice. I came across a four software factories offered at Patterns & Practice website. The software factories are Smart Client, Web Service, Mobile, and Web Client. These factories use the composite patten for UI loading. It also forces a MVC Pattern or what they call a MVP pattern for creating and developing forms and web pages. The factories are also very extensible and supports many different frameworks like for example NUnit, and the VSTS tests. You can use all the other application blocks with the solutions.

I will be posting more about the factories as I start using them more in my spare time. I do know that in the few little test apps I did the wiring of UI and passing of events between forms, controls and other objects is simple.

Tuesday, January 16, 2007

Microsoft Team System(cont)

So this is the next post in my team system posts.

I have been working with Team System at work. Although right now we only use it learning. We are not currently running any projects with it. That said, here are some of my experiences with it so far. In this post I will discus working with work items.

A work item is nothing more than a description of work. Some one on the team will enter a work item into the system. If using Agile this item could be a bug, a new task, Risk, scenario, or quality of service requirement. I have only worked with tasks, although in the next few days I plan on creating risks, and quality of service requirements.

When creating a task I used studio. Microsoft says that excel and project both integrate with team system, however I was having trouble using both tools. When using project I could not get it to publish new work items back to the server. It always failed. I was rather disappointed, however I found when working in studio worked fine for me. I am not a Project Manager and so I really only need the work items to be tracked, and assignable to team members.

When creating new work items, you can define your task. Basically you give it a title, a description, assign it to someone on the team, set the items discipline, and define the iteration the item should be worked on. Additionally you can add documents, link it to other work items, view history, and set other details like remaining work hours, start date, and things like that.

Once the item is saved, there are many in the box queries that can be run in studio to view work items. for most people I would guess they would run the my work items query however certain roles may choose to run other queries like the all the work items, or active bugs, resolved bugs, or queries like that.

As a team member works on work items, they can update information and forward the items to other team members or close the items. Closed items can be reopened as needed.

So here comes my opinion. Yes the tool will meet most needs of item tracking. Have I seen tools that do it better, yes, however if you are doing DotNet, the intergration of these tools in studio is really nice. I currently use Jira and Confluence for these types of activities and although I like the interfaces, the fact they don't integrate to well with studio annoys me.

So that is what I have learned. I wish I could share more about integration with the web portal and other ms tools. In future posts I will be talking about other areas of team system.

Thursday, January 11, 2007

Apple iPhone

So Apple had their big keynote address. Steve Jobs got in front of all the fanboys, and fangirls and announced a bunch of new products. The product getting the most press right now is the iPhone.

The iPhone has been rumored in the works for the last year. It basically is the morphing of a video iPod and a cell phone. For $499 + a 2 year Cingular wireless contract you can get a 4gb version. For $599 you can up that to 8gb. The phone also has some other useful things like a large touch screen, Bluetooth, WiFi, a 2 mega pixel camera and other applications like Google Maps, Safari, and iTunes (of course) with CoverFlow. Jobs said the phone will ship in June if you live in the US.

Now lets break this down a bit.

First, it is not a smart phone. There does not seem to be SDKs to support third party development. For example, where I work we do a lot of business applications that run on pocket pcs, this includes devices that have phones. By not allowing for third party development I believe the business world will not adopt this phone. So that only leaves consumers as buyers. I realize there are many people out there ready to waste money on this product but most consumers will find cheaper alternatives that offers similar options. I personally don't want or need a smart phone, so this is not the deal breaker for me.

The deal breaker for me is the iPhone ties you to Cingular wireless. Where I live Cingular provides terrible coverage. Sure Milwaukee is in there plan, and has good quality, but If I want to visit my parents, I might as well leave my phone at home. In fact you venture to far from our interstate highways, you lose coverage quickly. So Even if I wanted to drop $499 for a phone, I would never sign a contract with Cingular.

So a quick wrap up.

On the plus side...
  • the phone looks cool
  • has a new interface
  • nice set of applications
On the negative side...
  • Cingular
  • Cost
  • No third party development
  • Small amount of memory
So there are my thoughts on the iPhone.

Again I have not been given one of these to test nor have I been paid by anyone to give this review. I recieved my information from other websites, like Apple.com and Cingular.com. Also information was provided by Cingular users who phones do not work at my parents house or other places in Wisconsin.

Tuesday, January 02, 2007

Video Games

For Christmas I received two new games for my XBox 360. Both the games were released by EA. One of the games I really love. It is one of those games that is truly amazing. The other game well it is a major disappointment.

I am going to start talking about NCAA Football 2007. This game is a huge disappointment to me. I have NCAA 2006 for the regular xbox, and I really like the game. It had a great dynasty mode and the ability to create your own school and uniforms and mascots. Unfortunately the game does not work on the 360 so I was forced to get 2007. Well 2007 left out some parts of the game. For starters, you can no longer create your own school. Even though I am a huge Badger fan, I liked creating my own school and starting off with a really bad team and building it up to a major dynasty. Jumping from a terrible conference to a mid major to a BCS conference. It was fun, made dynasty mode a little more difficult. EA also changed the way kicking works. Instead of using buttons on the meter you use the right stick. At first I found this to be stupid, but the more I hae played, really it is just an annoyance. All in all I wish I could just play 2006, but I can't.

The other game I got was The Godfather. This game has become one of my all time favorites. It is almost as good as GTA Vice City. The game does a great job of following the movie and was very good with all the characters voices and animation. It really makes you feel like you are playing the movie. You start as a son of a slain mobster and after your mother convinces the Don to help you find your way, the Don asks Luca to take you under his wing so to speak. From that point on you will find yourself extorting from businesses, and asked to do favors for the family, and as you do, you move up the family ladder. The ultimate goal is to climb to Don of New York. That means you need to take out all of the other families.

Well I hope you all had a good New Year, talk to you later.

Thursday, December 21, 2006

Cool Websites

So A couple guys at work found some cool things on the web and I thought i would pass them on.

The first a tool that will do searches of MP3s. By searches I mean you give it a phrase and it will actually search the entire song for it. For example, if you ask it to find "sparks fly from your finger tips" it will return Witchy Woman and any other song with those lyrics. This cool search can be found here.

The second cool thing is a website. Ever go to a mall or a bar or a friends and couldn't find a parking spot because someone has parked poorly either by laziness or on purpose to protect there car. Well here is your chance to get back at them. The website youparklikeanasshole.com is just the answer. here you can upload pictures of the offenders, and even download tickets you can print out and put on the vehicles.

I plan on making use of both these items in the future and I hope you do too.

Friday, December 15, 2006

Handheld Development

At work I have been doing quite a few hand held device projects. Although these project are fun, since they are different from the ordinary, however having to work with the Compact Framework (CF) is challenging.

The CF is really a subset of the .Net framework. What make it tough is the fact that things you expect to be in the framework are sometime missing. The example that took me by surprise was the Threading package. If you look at the two packages, you will notice the threading in the CF is rather lite. Some methods one would expect to find are missing, causing the developer (me) to have to find new ways to do tasks.

I don't want this to sound like the CF is crap, because it isn't. I am sure the reason the CF scales down is because of the devices it has to run on. Hand held devices have limited memory resources and processor speed. These limitations are what causes the CF to be scaled from the regular framework.

There are other things that cause this type of development to be challenging, but I think I will save those for another day.

Monday, December 11, 2006

Dot Net Nuke

So I have a client that wanted a DotNetNuke (DNN) Website. I haven't really done much with DNN in the past. For the most part DNN is capable of producing a very easy to manage website.

DNN is a content management solution for the web. It is built with ASP.NET 2.0. The basic install walks you through a simple wizard and once complete builds an initial site. To the site you can then easily add new pages with a few clicks of the mouse. These pages can handle any type of content.

DNN is also very expandable. It is easy to create new modules and even link to external resources. I know in the clients DNN site, we link to an ASP.NET web app from inside an ILINK module. The page looks like you never left the DNN site.

Now even though DNN was easy to work with and very expandable, I still prefer developing web apps without it. I like writing code and doing nice design work, but the content management part of DNN is hard to pass up.

Thursday, December 07, 2006

Microsoft Team System

Last night I started to dive into team system a little more. Since I have not worked with the tool I have been looking for content on the web to help guide me. Unfortunately there is a lot out there and I am having trouble knowing where to start. So I have been leaning on the web resource quite a bit.

So the first thing I did is create a new team server project. To do this I connected to my team server through the team explore window. Then I right click and chose new team project. The wizard will walk you through naming the project, entering a description, and then you get to pick a project process. I went with agile process. After completing the wizard, the tool goes to work.

Once you get control back, you find a new team project has been created, along with a project portal that can be found on on you team server. I also noticed it created me 15 work items, along with some documents that seem to be stubs for things like requirements, vision statements, testing and so on. It also created a lot of process guidance document to help you through the tasks.

The first 15 work items are relatively straight forward. They range from defining members and roles, setting up check in rules, code standards, and what not. Also in these early work items some ba type items like defining vision, and persona. Pm items include defining iteration length and create iteration plan, and even testers get some items create test approach. Of course most of the documents are already stubbed and just need you to check them out and modify them.

Once I am done fulfilling all these items, I will create anew blog talking about what I did to close them.

Wednesday, December 06, 2006

Agile and Music

Last night on HBO was a documentary about U2. It was a really an interview with Bono and Edge. Since I like U2's music I thought I would watch it.

During the interview Bono and Edge talked about the way they write music and it was very interesting. Although they never used the terms requirements, iterative development, and unit testing, those concepts were part of there process so to speak.

The way they discussed music was like this. Before recording they would have a general understanding of what they wanted to achieve. They usually entered the studio only with a bass line, or guitar riff. They would then use that and build on top of it. Perhaps adding a drum beet or maybe a verse like doing an iteration. After every addition they would playback what they did and decided it was correct. After a countless number of these iterations they would arrive to the finished product, another hit song.

I am not sure why I made this connection or found it interesting other than it is the same process I use at my job. I also wonder if other jobs follow a similar process to complete there jobs.

Friday, December 01, 2006

AJAX

So at work we have these meetings once in a while where we discuss technology. Well it was my turn to lead a discussion and I thought AJAX would be a good topic.

At a past client, I used AJAX for a on the fly rate form. Basically how it worked was when a user filled in a field, the updated line item and grand total was to be updated without a full page post back. Well when I did this project ATLAS, now AJAX.ASP.NET was not ready, so I had to do it the old school way.

So first before I go further let me talk about what AJAX is. AJAX, stands for asynchronous JavaScript and XML. AJAX is a web development technique for creating interactive web applications. The intent is to make web pages feel more responsive by exchanging small amounts of data with the server behind the scenes, so that the entire web page does not have to be reloaded each time the user makes a change. This is meant to increase the web page's interactivity, speed, and usability.

Some pros of using AJAX is bandwidth usage, and interactivity. With smaller request to the server, smaller amounts of data or subsets are transmitted. Some cons, are latency and usability. When part of a web page is being updated, some controls can become unusable.

So now that you know a little more about AJAX in general lets talk geek....

Basicly the guts of it all revolves around an object called XMLHttpRequest. This object will make a request to a url and collect the response from the request. the url could be anything, but web services work well. Then you can take the response usually and XML and manipulate it and set controls on the web page.

Now I find this a challenge since I am not a big fan of JavaScript and Microsoft Visual Studio does not give you great support for JavaScript. However I was still able to provide a good solution for my client, and I saw benefits to this technique.

Now lets fast forward to today. The people at AJAX.ASP.NET have release a beta of an AJAX framework. This framework wraps up the JavaScript and all you have to do is the ASP. Any regular asp control can be enabled to post back asynchronously. Also they released a toolkit extension that gives you additional support.

During our discussion one of the areas we decided we could really use this is in field validation. Validation is tough because a lot of times you need to duplicate your validation logic in JavaScript for the client side validation and then in you BLL for server validation. Using AJAX you can now validate fields as the user fills them out and keep you validation code only in your BLL.

As you can see, AJAX is a very useful tool. With the help of AJAX.ASP.Net (Atlas) you can really improve on the user experience at any website you have to build.

Wednesday, November 29, 2006

Blu Ray Vs. HD-DVD

Yesterday at work we were discussing the next generation of dvds. None of us really new the difference between Blu Ray and HD-DVD. All we really new was Sony was pushing Blu Ray and Toshiba seemed to be pushing HD-DVD. Microsoft jumped in the HD-DVD bandwagon with the XBox360 to compete with the Playstation 3 and it'd Blu Ray drive.

So what are the advantages of these technologies over regular DVDs?
Well mainly storage capacity. By using blue lasers in stead of red lasers, the disks are able to contain more rows. More rows means more data. I guess it has something to do with wavelengths properties of the laser beam. It is really technical and honestly I think I slept through that physics class.

So what are the difference between HD-DVD and Blu Ray?
Well the main difference is that Blu Ray disks can actually store more data, something like 50gb compared to HD-DVDs 30gb. So that has a lot of people excited, however the real advantage of HD-DVD is that it more closely mimics current DVD technology so the cost to manufacture is lower thus causing the technology to be cheaper.

So who will win?
Well I don't know. The fact that the Playstation 3 comes with Blu Ray drives, the fact that Sony owns licenses for something like 40% of all movies, and the extra storage capacity put a strong plus on Blu Ray's side, however considering the cost of HD-DVD to be way less and throw in the weight of Microsoft and their will to dominate the console market it is hard to pick a winner.

I think in the end, Sony and Blu Ray will win. The extra storage capacity is really hard to pass up on. I think in a year or even the next generation XBox you will see them offering a Blu Ray solution instead of HD-DVD.