<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-258878254209293537</id><updated>2010-02-24T00:45:16.973-06:00</updated><title type='text'>A How To for Me</title><subtitle type='html'>As of right now, this blog is just a way of letting myself write something useful.

By writing things down, I end up learning more about the subject as I have to cite my sources and fully think out my arguments.

It's kind of like doing homework.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://howto.jamescarnley.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/258878254209293537/posts/default'/><link rel='alternate' type='text/html' href='http://howto.jamescarnley.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>James Carnley</name><uri>http://www.blogger.com/profile/12762822590111775579</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>5</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-258878254209293537.post-8331570020826374982</id><published>2008-05-30T14:29:00.009-05:00</published><updated>2008-05-30T15:58:00.349-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Development'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Adding fields dynamically in ASP.NET</title><content type='html'>Adding a control to a page dynamically is a very powerful tool when you want to allow users to add varying amounts of data to their submission. These controls should keep their state through multiple postbacks.&lt;br /&gt;&lt;br /&gt;I recently had to solve this problem to allow professors to upload any number of files to our library server using a web form. It seemed simple enough to solve, but as I searched around the net, it seemed many people were having a lot of trouble with this topic or were using some pretty hackish things to get it working. I hope this post helps someone out there.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Using Session&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The main problem of adding new controls to a page is that the new controls will disappear whenever there is a new postback. To solve this problem we simply store the control in the users Session which allows them to keep their data as long as their session stays alive.&lt;br /&gt;&lt;br /&gt;We can store the controls in a List to keep track of them. When the page is first created, we store the list inside of the Session, then when the page is loaded, we get the list from the Session. Getting the list from the session when the page is loaded guarantees that we have the list of controls for the current user.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Adding Controls Back to Page After Postback&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;Whenever a postback occurs, all of the controls on a page are recreated. Since a control spawned within the page cycle is not bound to anything, it is simply destroyed.&lt;br /&gt;&lt;br /&gt;In order for the dynamically added controls to show up, they must be added at the beginning of each page in the Page_Load method. In this example, we simply iterate through the list and add the control to a placeholder.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Adding a New Control&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Whenever a new control is added inside of a button click method, it will not show up on the page immediately. What happens is that it is actually created and added to the array, but the page cycle is already past the Page_Load method, so there is no chance to add the control to the page from the array. To counter this, we simply have to add the control to the page manually inside of the method. In the next postback, the control will be added automatically like the others.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Example Files&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Unfortunately, I cannot host files on Blogger so I will copy the contents of the files directly to this post. These files were tested with ASP.Net 3.5 and Visual Studio 2008, but they are simple enough to work on pretty much any platform.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Default.aspx:&lt;/span&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;span class="asp"&gt;&amp;lt;%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;!&lt;/span&gt;&lt;span class="html"&gt;DOCTYPE&lt;/span&gt; &lt;span class="attr"&gt;html&lt;/span&gt; &lt;span class="attr"&gt;PUBLIC&lt;/span&gt; &lt;span class="kwrd"&gt;"-//W3C//DTD XHTML 1.0 Transitional//EN"&lt;/span&gt; &lt;span class="kwrd"&gt;"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;html&lt;/span&gt; &lt;span class="attr"&gt;xmlns&lt;/span&gt;&lt;span class="kwrd"&gt;="http://www.w3.org/1999/xhtml"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;head&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Adding Dynamic Controls to a Form&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;head&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;body&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;form&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;="form1"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:PlaceHolder&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="myPlaceholder"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:PlaceHolder&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;p&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Button&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="addControl"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;="Button"&lt;/span&gt;&lt;br /&gt;        &lt;span class="attr"&gt;onclick&lt;/span&gt;&lt;span class="kwrd"&gt;="addControl_Click"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;p&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;form&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;body&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;html&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Default.aspx.cs:&lt;/span&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web.UI;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web.UI.WebControls;&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;partial&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; _Default : System.Web.UI.Page&lt;br /&gt;{&lt;br /&gt; List&amp;lt;Control&amp;gt; controls = &lt;span class="kwrd"&gt;new&lt;/span&gt; List&amp;lt;Control&amp;gt;();&lt;br /&gt; &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Page_Load(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt; {&lt;br /&gt;     &lt;span class="kwrd"&gt;if&lt;/span&gt; (Page.IsPostBack == &lt;span class="kwrd"&gt;false&lt;/span&gt;)&lt;br /&gt;         Session[&lt;span class="str"&gt;"controls"&lt;/span&gt;] = controls;&lt;br /&gt;     &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;         controls = (List&amp;lt;Control&amp;gt;)Session[&lt;span class="str"&gt;"controls"&lt;/span&gt;];&lt;br /&gt;&lt;br /&gt;     &lt;span class="rem"&gt;/* The controls must be added back to the page each time there&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;         * is a postback, otherwise the controls disappear.*/&lt;/span&gt;&lt;br /&gt;     &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (Control control &lt;span class="kwrd"&gt;in&lt;/span&gt; controls)&lt;br /&gt;         myPlaceholder.Controls.Add(control);&lt;br /&gt; }&lt;br /&gt; &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; addControl_Click(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt; {&lt;br /&gt;     TextBox box = &lt;span class="kwrd"&gt;new&lt;/span&gt; TextBox();&lt;br /&gt;     box.ID = &lt;span class="str"&gt;"box"&lt;/span&gt; + controls.Count;&lt;br /&gt;     controls.Add(box);&lt;br /&gt;&lt;br /&gt;     &lt;span class="rem"&gt;/* We add the box manually first since the Page_Load &lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;           method has already finished. The box will only show up&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;           after the next postback otherwise.*/&lt;/span&gt;&lt;br /&gt;     myPlaceholder.Controls.Add(box);&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/258878254209293537-8331570020826374982?l=howto.jamescarnley.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://howto.jamescarnley.com/feeds/8331570020826374982/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=258878254209293537&amp;postID=8331570020826374982' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/258878254209293537/posts/default/8331570020826374982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/258878254209293537/posts/default/8331570020826374982'/><link rel='alternate' type='text/html' href='http://howto.jamescarnley.com/2008/05/adding-fields-dynamically-in-aspnet.html' title='Adding fields dynamically in ASP.NET'/><author><name>James Carnley</name><uri>http://www.blogger.com/profile/12762822590111775579</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17935025175180836394'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-258878254209293537.post-2522120361493293438</id><published>2007-06-17T21:10:00.004-05:00</published><updated>2008-05-30T14:28:12.835-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Games Explorer'/><category scheme='http://www.blogger.com/atom/ns#' term='Games'/><category scheme='http://www.blogger.com/atom/ns#' term='Vista'/><title type='text'>How to add games to the Windows Vista Games Explorer</title><content type='html'>&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;Note:&lt;/span&gt; There is an &lt;a href="#vgeupdate"&gt;update to this post&lt;/a&gt; regarding a program that automates this process at the bottom of this page.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It is a very arduous process to get all of your old games to show up correctly in the Vista Games Explorer. I hope this guide saves at least one person from all of the trial and error that I had to go through.&lt;br /&gt;&lt;br /&gt;These steps help prettify all of those games that aren't discovered automatically by Vista and also allows the games running on Steam to open nicely with the Games Explorer. After these steps, you will have a Games Explorer that looks something like this:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_LPlWmjRDgsc/RnXr62UXByI/AAAAAAAAAJ8/rhn8zDSQI1M/s1600-h/FullyConfiguredGamesExplorer.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_LPlWmjRDgsc/RnXr62UXByI/AAAAAAAAAJ8/rhn8zDSQI1M/s320/FullyConfiguredGamesExplorer.png" alt="" id="BLOGGER_PHOTO_ID_5077223551175952162" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I found &lt;a href="http://www.neowin.net/forum/index.php?showtopic=566743"&gt;this forum entry&lt;/a&gt; to be extremely helpful. This might be all you need to know, but my steps are a bit more concise.&lt;br /&gt;&lt;br /&gt;First find a game that Vista automatically finds and adds to the Games Explorer. I used the Steam shortcut that is created for most Half-Life 2 games named Half-Life: Source. It shouldn't matter what shortcut you use, as long as it gets regenerated if you delete it (not hide it, but rather delete the GUID folder). Also, the shortcut must be auto-generated by Vista and not added by the game itself. Games For Windows labeled games' shortcuts will not work.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Find the box art for the game you wish to add to the Games Explorer and place the image on the desktop.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Open the registry editor (Open the start menu and type regedit then hit enter)&lt;/li&gt;&lt;li&gt;Navigate to HKEY_LOCAL_MACHINE_\Software\Microsoft\&lt;br /&gt;Windows\CurrentVersion\GAMEUX\&lt;/li&gt;&lt;li&gt;You will see a few folders, one named Games and then a few others. Look through the other folders and you will find the games inside of the Games Explorer.&lt;/li&gt;&lt;li&gt;Find the game that was auto-generated (Half-Life: Source in my case)&lt;/li&gt;&lt;li&gt;Inside you should see various values describing the game. Look for the key named BoxArt and double click it.&lt;/li&gt;&lt;li&gt;Point the BoxArt key to the picture you put on the desktop. This will cause the Games Explorer to copy the picture into its own cache and update the image in the Games Explorer Window.&lt;/li&gt;&lt;li&gt;Now edit the other values to match the game you are adding. The important ones are Title (The name of the game) and AppExePath (Use the .exe file that the start menu shortcut for the game points to).&lt;/li&gt;&lt;li&gt;The changes should be applied to the Games Explorer soon. After it updates, you can run the game who's shortcut you just edited (Half-Life: Source) again and its shortcut should once again appear in the Games Explorer. This new shortcut may be used to perform the above steps for another game.&lt;/li&gt;&lt;/ol&gt;In order to get Steam games to work well you can use these steps after you complete the above:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Right click the game in Steam and select "Create desktop shortcut"&lt;/li&gt;&lt;li&gt;Right click the new shortcut and select properties. Leave this window open.&lt;/li&gt;&lt;li&gt;Go into Games Explorer and right click the new entry you created and select "Customize"&lt;/li&gt;&lt;li&gt;In the screen that comes up, make sure the top entry (Play) is selected and click "Edit"&lt;/li&gt;&lt;li&gt;This is a regular shortcut properties menu just like the other. Copy the "Target" and "Start in" entries from the desktop shortcut to the Games Explorer shortcut.&lt;/li&gt;&lt;li&gt;That's it. The Games Explorer entry should run fine now, with or without Steam running when you click it.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Tips on editing the values to match the new game:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Microsoft pulls its information from &lt;a href="http://www.allgame.com/"&gt;AllGame.com&lt;/a&gt;, so doing a quick search of this site will get you the developer, publisher, and box art for your game and hopefully match their data in the future.&lt;/li&gt;&lt;li&gt;If AllGame does not have the data, you should try looking at the &lt;a href="http://www.wikipedia.org/"&gt;Wikipedia&lt;/a&gt; article relating to your game. There is always good information and box art available.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a id="vgeupdate"&gt;&lt;span style="font-weight: bold;"&gt;Update:&lt;/span&gt;&lt;/a&gt; There is now a program named &lt;a href="http://vge.editor.googlepages.com/"&gt;VGE Editor&lt;/a&gt; that can complete these steps for you. It is currently in beta, but I have tried it out and it seems pretty stable.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/258878254209293537-2522120361493293438?l=howto.jamescarnley.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://howto.jamescarnley.com/feeds/2522120361493293438/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=258878254209293537&amp;postID=2522120361493293438' title='17 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/258878254209293537/posts/default/2522120361493293438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/258878254209293537/posts/default/2522120361493293438'/><link rel='alternate' type='text/html' href='http://howto.jamescarnley.com/2007/06/how-to-add-games-to-windows-vista-games.html' title='How to add games to the Windows Vista Games Explorer'/><author><name>James Carnley</name><uri>http://www.blogger.com/profile/12762822590111775579</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17935025175180836394'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_LPlWmjRDgsc/RnXr62UXByI/AAAAAAAAAJ8/rhn8zDSQI1M/s72-c/FullyConfiguredGamesExplorer.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>17</thr:total></entry><entry><id>tag:blogger.com,1999:blog-258878254209293537.post-3077942151874883722</id><published>2007-02-25T15:17:00.000-06:00</published><updated>2007-02-25T15:39:20.392-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Media Player'/><title type='text'>Windows Media Player kicks ass</title><content type='html'>I just transferred whats left of my music collection from my mobile phone to my PC. It's small but I spent a lot of effort hand picking good songs for my trip to Minnesota last spring break, so it represents my favorites.&lt;br /&gt;&lt;br /&gt;The mp3s consist of the usual grab bag of random eMule files, LAN party shares, and anonymous CD rips, so of course the names are all totally wrong and none of the meta data are worthwhile. I am a clicker (I just click on a random song that sticks out at the moment) so I never really used meta data for anything. I have finally seen the light; semantic mp3s are amazing!&lt;br /&gt;&lt;br /&gt;I started up WMP11 to play some music while configuring my system and while playing the song, WMP started downloading album art for the songs. I was like... whoa.&lt;br /&gt;&lt;br /&gt;So I looked into it further and found that you can have WMP search your entire library for meta data and "fix" all of your mp3s for you automatically. Wow!&lt;br /&gt;&lt;br /&gt;I went to &lt;span style="font-weight: bold;"&gt;Library--&gt;More Options&lt;/span&gt; and looked at the options under Automatic media information updates for files.&lt;br /&gt;&lt;br /&gt;I chose &lt;span style="font-weight: bold;"&gt;Overwrite all media information&lt;/span&gt; which corrects your meta data even if it was entered incorrectly already. Good for those weird Kazaa rips.&lt;br /&gt;&lt;br /&gt;Then I selected &lt;span style="font-weight: bold;"&gt;rename music files using rip music settings&lt;/span&gt; so that all of my music was correctly labeled and named. No more NiN-WiTH_teeTH(08)-jacktheripper.mp3 woohoo!&lt;br /&gt;&lt;br /&gt;And for good measure I went ahead and selected &lt;span style="font-weight: bold;"&gt;Rearrange music in rip music folder using rip music settings&lt;/span&gt;. Now my music directory under Windows is properly sorted and catagorized using industry standard titles and genres. Each band is given a folder and then inside that folder are albums holding mp3s for that album.&lt;br /&gt;&lt;br /&gt;I know you can do this with other media players, but I haven't actually tried it and WMP just kind of floored me with its simplicity and organization. I am so happy now that I have a properly labeled and searchable music library. It even changed me from a clicker to listening by genre. Nice.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/258878254209293537-3077942151874883722?l=howto.jamescarnley.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://howto.jamescarnley.com/feeds/3077942151874883722/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=258878254209293537&amp;postID=3077942151874883722' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/258878254209293537/posts/default/3077942151874883722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/258878254209293537/posts/default/3077942151874883722'/><link rel='alternate' type='text/html' href='http://howto.jamescarnley.com/2007/02/windows-media-player-kicks-ass.html' title='Windows Media Player kicks ass'/><author><name>James Carnley</name><uri>http://www.blogger.com/profile/12762822590111775579</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17935025175180836394'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-258878254209293537.post-5943062725120634138</id><published>2007-02-25T12:51:00.000-06:00</published><updated>2007-02-25T14:45:07.265-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vista'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Office 2007'/><title type='text'>Installing Vista Ultimate Edition 64-bit</title><content type='html'>Well, I have had a fun 16 hours.&lt;br /&gt;&lt;br /&gt;That is how long I have spent installing and configuring Vista and the applications I need. It's agonizing and I already miss the ease of Ubuntu.&lt;br /&gt;&lt;br /&gt;The first problem occurred as I boot up Windows setup for the first time. When it reached the drive partitioner, it reported that it found no disks on my system. I kind of scratched my head for a minute before I remembered that I had trouble with my Promise RAID controller in Windows XP.&lt;br /&gt;&lt;br /&gt;I previously had two 400GB drives connected in a RAID 0 array using my Promise chipset. One of them bit the dust so I was forced to switch the Promise controller into IDE mode. XP balked, but I got it working using a Promise SATA driver. On the other hand, Ubuntu refused to accept the RAID array, but the single SATA drive operated flawlessly. So I continued about my life.&lt;br /&gt;&lt;br /&gt;Well Vista ending up choking the same way XP did without the driver. I did not want to deal with this BS again, so I shut off my computer and reconnected my drive to one of the VIA SATA ports. This solved the problem. Yay. I feel stupid for not doing this earlier.&lt;br /&gt;&lt;br /&gt;So, with Vista now installed, I moved on to the exciting world of device drivers.&lt;br /&gt;&lt;br /&gt;Since I chose to install the x64 version of Vista (as any true geek should), I expected at least one device to refuse to work. To my amazement, my Logitech QuickCam (the one that looks like HAL) was setup automatically by a tiny file received from Windows Update. Pretty slick in my opinion. My printer, video card, and USB hubs all worked out of the box. I didn't even have to deal with any unsigned driver issues.&lt;br /&gt;&lt;br /&gt;I was feeling happy until I realized that I had absolutely no sound at all. Bleh. I have a Creative X-Fi Fatal1ty sound card and it wasn't even detected by Vista. It didn't even prompt me that it found an unrecognized device. Nothing.&lt;br /&gt;&lt;br /&gt;So I went to Creative's website to download the driver. Low and behold it was listed as a beta version. &lt;span style="font-style: italic;"&gt;&amp;lt;rant&amp;gt;&lt;/span&gt;WTF. I hate you Creative. Your shit doesn't work. Your drivers suck. Your cards don't even work in Linux!&lt;span style="font-style: italic;"&gt;&amp;lt;/rant&amp;gt;&lt;/span&gt; I downloaded it anyway and it installed smoothly.&lt;br /&gt;&lt;br /&gt;Now that the hard part is over, I moved on to the easy stuff: applications.&lt;br /&gt;&lt;br /&gt;I am tired of writing this blog entry for now. I will edit it later.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/258878254209293537-5943062725120634138?l=howto.jamescarnley.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://howto.jamescarnley.com/feeds/5943062725120634138/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=258878254209293537&amp;postID=5943062725120634138' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/258878254209293537/posts/default/5943062725120634138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/258878254209293537/posts/default/5943062725120634138'/><link rel='alternate' type='text/html' href='http://howto.jamescarnley.com/2007/02/installing-vista-ultimate-edition-64.html' title='Installing Vista Ultimate Edition 64-bit'/><author><name>James Carnley</name><uri>http://www.blogger.com/profile/12762822590111775579</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17935025175180836394'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-258878254209293537.post-385733593727774582</id><published>2007-02-02T17:27:00.000-06:00</published><updated>2007-02-02T17:48:52.765-06:00</updated><title type='text'>How to make a blog</title><content type='html'>Today I finally stopped procrastinating and started this blog.&lt;br /&gt;&lt;br /&gt;My idea for this blog started from a notion that whenever I tried to inform someone of how to do something, I would end up finding holes in my factual knowledge that I would be eager to correct. If I told more people, then my knowledge of the subject would start to correctly align with the truth.&lt;br /&gt;&lt;br /&gt;Also, I figured out that you can easily believe something is true without knowing all of the facts. It's easy to believe, but once you start asking others to believe, you end up needing many concrete facts.&lt;br /&gt;&lt;br /&gt;Writing my thoughts down will force me to absorb the facts so that I can form an accurate and articulate thought. There is a very slim chance anyone will read this, but that slim chance does keep me on my toes where I feel I must not slip up or fudge the truth.&lt;br /&gt;&lt;br /&gt;I hope this experiment works. If I continue after the novelty wears off and my classes get harder, then I will reap the fruits of my labor; better writing skills, more articulate thoughts, and proper understanding of subjects.&lt;br /&gt;&lt;br /&gt;I felt like I learned something already with my first post. Here goes nothing!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/258878254209293537-385733593727774582?l=howto.jamescarnley.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://howto.jamescarnley.com/feeds/385733593727774582/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=258878254209293537&amp;postID=385733593727774582' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/258878254209293537/posts/default/385733593727774582'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/258878254209293537/posts/default/385733593727774582'/><link rel='alternate' type='text/html' href='http://howto.jamescarnley.com/2007/02/how-to-make-blog.html' title='How to make a blog'/><author><name>James Carnley</name><uri>http://www.blogger.com/profile/12762822590111775579</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17935025175180836394'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>