<?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-6837494</id><updated>2008-05-08T23:59:45.915-04:00</updated><title type='text'>Games, Life, and Stuff</title><link rel='alternate' type='text/html' href='http://www.gameslifeandstuff.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default?start-index=26&amp;max-results=25'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default'/><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.gameslifeandstuff.com/atom.xml'/><author><name>Derek Quenneville</name><uri>http://www.blogger.com/profile/06057984454261804546</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>81</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6837494.post-5318170979300835647</id><published>2008-05-08T23:34:00.002-04:00</published><updated>2008-05-08T23:59:45.948-04:00</updated><title type='text'>Digital Comic Viewer part 2</title><content type='html'>I'd planned to pay for the feature I wanted in &lt;a href="http://www.bytescout.com/swftoimage.html"&gt;SWF To Image&lt;/a&gt;, but it turned out to already exist! There's a method called LoadFromBinaryImage that is intended to process FlashMovie objects created by &lt;a href="http://www.bytescout.com/swfscout.html"&gt;SWF Scout&lt;/a&gt; (a commercial SWF generation library), but I can throw my byte array at it like this: (hIssueData is a hashmap, and imageX_lfile is the byte array for the modified lettering file of a specific page)&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;object objSwf = hIssueData["image" + x.ToString() + "_lfile"];&lt;br /&gt;renderFlash.LoadFromBinaryImage(ref objSwf, "http://www.google.com");&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;For some reason LoadFromBinaryImage requires a non-empty string as second parameter called BaseURL... I guess it gets used if there are external resources called from the SWF.  Anyway, I can then take renderFlash.BinaryImage and pass it through the ImageMagick routines to end up with the final combined image.&lt;br /&gt;&lt;br /&gt;The end result is that I've now got a working viewer that writes no assets to disk. However I've still got to do the full-screen mode, keyboard navigation, and a better way of selecting comics before I do a release. Due to &lt;a href="http://www.rockstargames.com/IV/"&gt;Grand Theft Auto IV&lt;/a&gt; that could mean at least a week. :)</content><link rel='alternate' type='text/html' href='http://www.gameslifeandstuff.com/2008/05/digital-comic-viewer-part-2.html' title='Digital Comic Viewer part 2'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6837494&amp;postID=5318170979300835647' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.gameslifeandstuff.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/5318170979300835647'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/5318170979300835647'/><author><name>Derek Quenneville</name><uri>http://www.blogger.com/profile/06057984454261804546</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6837494.post-5786419219538299955</id><published>2008-05-02T01:53:00.002-04:00</published><updated>2008-05-02T03:01:25.471-04:00</updated><title type='text'>Digital Comic Viewer part 1</title><content type='html'>I did some preliminary work on Digital Comic Viewer today. Instead of writing files to disk, I'm able to load them as byte arrays that can be displayed on-screen:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.gameslifeandstuff.com/uploaded_images/dcv1-1-786133.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://www.gameslifeandstuff.com/uploaded_images/dcv1-1-786129.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So far this only works with pages that don't have any Flash text layered on them. As I changed things around I ran into a limitation of the excellent &lt;a href="http://www.bytescout.com/swftoimage.html"&gt;SWFToImage library&lt;/a&gt;... Although the final image output can be a byte array instead of a file, the SWF input cannot. That's not too surprising, as only crazy people would even have a modified byte array of their SWF to begin with! I sent an email to the SWFToImage author though, so hopefully we can work something out.&lt;br /&gt;&lt;br /&gt;Once the basic features are re-implemented without any writes to disk I'll release a preliminary version for people to play with. After that will come a proper full-screen viewing mode, and finally a good user interface.</content><link rel='alternate' type='text/html' href='http://www.gameslifeandstuff.com/2008/05/digital-comic-viewer-part-1.html' title='Digital Comic Viewer part 1'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6837494&amp;postID=5786419219538299955' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.gameslifeandstuff.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/5786419219538299955'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/5786419219538299955'/><author><name>Derek Quenneville</name><uri>http://www.blogger.com/profile/06057984454261804546</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6837494.post-7436085125985222940</id><published>2008-04-21T01:53:00.006-04:00</published><updated>2008-04-25T17:32:40.190-04:00</updated><title type='text'>Digital Comic Downloader discontinued</title><content type='html'>&lt;p&gt;&lt;strong&gt;Update: 2008-04-25 17:15&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I've decided to take down Digital Comic Downloader. I'm all about digital distribution as where comics need to go, so I'm afraid of making it less palatable to companies like Marvel (and others in the future) by causing any cold feet... As I said when I launched DCD, the purpose is not piracy but I have to admit that it is capable of enabling it. (It's probably a bit unrealistic for me to think that because the images are not perfect that users would never choose to spread them around.)&lt;br /&gt;&lt;br /&gt;However, I'm going to start working on a new application able to view comics in a nice full-screen mode, but not able to save files to disk. My hope is that this approach will be viewed as a good balance between user needs and corporate interests.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Update: 2008-04-24 02:48&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Fixed! I was staring at the logs trying to figure out where the new dynamic "secret" value came from when I realized that I was looking at an MD5 hash. After that it was easy to run the viewer SWF file through &lt;a href="http://www.sothink.com/product/flashdecompiler/index.htm"&gt;Sothink SWF Decompiler&lt;/a&gt; to see how it was generated. They concatenate the issue id, your session id, and a salt value of "tcbsqudqm23rue4pnvcja86tl4" with pipes and take the md5sum of that. The &lt;a href="#dcd-download"&gt;download links&lt;/a&gt; are now updated to the new versions.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Update: 2008-04-23 10:55&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Broken again. That was pretty fast! I'll see what I can do at lunch, otherwise any fix will be later this evening.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Update: 2008-04-23 02:27&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Fixed! Marvel changed issuedata.php to only return metadata when you POST (not GET) this to it:&lt;br /&gt;onLoad=%5Btype%20Function%5D&lt;br /&gt;&amp;secret=r586io7qu60mops19em15688j6&lt;br /&gt;&amp;session%5Fid=[sessionid]&lt;br /&gt;&amp;dc%5Fid=[issueid]&lt;br /&gt;&lt;br /&gt;Perhaps they will change the value of "secret" a lot to make things annoying? Anyway, the &lt;a href="#dcd-download"&gt;download links&lt;/a&gt; below have been updated with the new versions. Marvel, you are welcome to download these too. :)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Update: 2008-04-22 18:55&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Whatever Marvel did on their side seems to have broken their own viewer, too. It works fine in Firefox, but as of today doesn't work in Internet Explorer 7 under Windows Vista for me. Anyone else have the same problem? Also they were the first ones to download the DCD source code so there's no telling what further changes might be made on their side. If the current avenue becomes impractical I do have some ideas for automated screen captures... But I'd rather not go down that road.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Update: 2008-04-22 13:03&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Broken again. issuedata.php is no longer returning the necessary metadata. If you try it and get a message saying that "such and such directory exists, do you want to delete it?", say no.&lt;br /&gt;&lt;br /&gt;I won't be able to troubleshoot this change until I get home tonight, so I've decided to release the source code. Get it here: &lt;a href="#dcd-download"&gt;source code&lt;/a&gt;. If you can make it work again faster than me, go for it!&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Update: 2008-04-21 18:07&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Welcome to anyone coming from this week's &lt;a href="http://www.comicbookresources.com/?page=article&amp;id=16123"&gt;Lying In The Gutters&lt;/a&gt;! Marvel downloaded the new version described below just minutes after it was posted. So if you use it and it stops working suddenly, please be patient while I research a fix. For now though, enjoy! (To be fair, the issue earlier is suspicious but still might've been a coincidence. No one from Marvel has contacted me, so there isn't necessarily a conspiracy afoot.)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Update: 2008-04-21 16:52&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Nevermind, it was an easy fix. The MDCU server started rejecting requests from browsers with a blank agent-string. I've set a proper one in the program and the download link below has been updated. I am committed to providing an alternative to Marvel's unusable web viewer.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Update: 2008-04-21 16:42&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Hmm. Someone from a Marvel IP address downloaded DCD this afternoon... And now it can't communicate with the server! I'll see what I can do later tonight.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Original:&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I'm pleased to announce the availability of Digital Comic Downloader 1.0.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;What it is&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;If you're a subscriber to &lt;a href="http://www.marvel.com/digitalcomics/"&gt;Marvel Digital Comics Unlimited&lt;/a&gt;, you know how awful the official web viewer is. It displays pages, sure, but it is basically useless for reading. Digital Comic Downloader brings the selected comic down to your hard drive, allowing you to choose which viewing software to use. This makes reading issues a pleasant experience, letting you make the most of your subscription. It can even combine the separate text and art layers of newer comics into flat files!&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;What it is not&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Digital Comic Downloader is not meant for piracy. The issues that you download should be the ones that you're actually about to read (and later delete). Marvel has been very kind in not using encryption or DRM and that needs to be respected.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Further, the downloads produced are &lt;a href="http://www.gameslifeandstuff.com/2008/04/image-manipulation-progress.html"&gt;not perfect copies&lt;/a&gt;, so even if you had a mind to infringe copyright, what you've got is useless for archiving... But great for reading.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Screenshot&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;a href="http://www.gameslifeandstuff.com/uploaded_images/dcdscreenshot-761891.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://www.gameslifeandstuff.com/uploaded_images/dcdscreenshot-761886.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Requirements&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;- An active, paid &lt;a href="http://www.marvel.com/digitalcomics/"&gt;Marvel Digital Comics Unlimited&lt;/a&gt; subscription&lt;br /&gt;- Windows 2000/XP/Vista (only tested on Vista so far)&lt;br /&gt;- Microsoft &lt;a href="http://msdn.microsoft.com/netframework/downloads/"&gt;.NET Framework 3.5&lt;/a&gt; &lt;br /&gt;- &lt;a href="http://www.adobe.com/products/flashplayer/"&gt;Adobe Flash&lt;/a&gt; plug-in &lt;br /&gt;- A standalone comic reader like &lt;a href="http://www.geocities.com/davidayton/CDisplay.html"&gt;CDisplay&lt;/a&gt; or any other image-viewing application&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a name="dcd-download"&gt;&lt;/a&gt;&lt;strong&gt;Download&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Downloads are disabled. Thanks for everyone's support!&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;How to use&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;This is early, &lt;u&gt;unsupported&lt;/u&gt; software. Only rudimentary error-checking exists.&lt;/em&gt; However: Once you've installed the program and any prerequisites, click on the Digital Comic Downloader entry in your Start Menu to begin. The fields should mostly be self-explanatory... Fill them in and click Download and you're off to the races.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;One thing that might might confuse is the &amp;quot;Issue ID&amp;quot; field. To find this number, access the Marvel Digital Comics Unlimited &lt;a href="http://www.marvel.com/digitalcomics/hq"&gt;catalogue&lt;/a&gt; as normal. When you pick something you want to read, mouse over the &amp;quot;OPEN&amp;quot; button and look at your web browser's status bar:&lt;/p&gt;&lt;br /&gt;&lt;a href="http://www.gameslifeandstuff.com/uploaded_images/dcdissueid-797968.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://www.gameslifeandstuff.com/uploaded_images/dcdissueid-797945.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;As you can see in the screenshot, Astonishing X-Men #9 is Issue ID number 1454. Use that when filling out the fields in DCD.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Feedback&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Please leave feedback with any problems you encounter and any ideas you have for further development.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Here are features that I already plan to implement, so don't worry about suggesting them: &lt;br /&gt;- Auto-compress the download folder into a zip/cbz. Probably in the next version. No rar/cbr support though, because there aren't any free libraries for creating rar archives. (only for decompressing them)&lt;br /&gt;- Proxy support (at the moment it uses whatever Internet Explorer is set to... I think) &lt;br /&gt;- Store the metadata that Marvel provides. There's all sorts of information like whether a page is a double spread, an advertisement, what year the series started, etc... This could be useful for future comic reading software. &lt;br /&gt;- There &lt;em&gt;will not&lt;/em&gt; be a full-series download function. I don't want to position this application as anything but a &amp;quot;hey, I want to read this issue but the official viewer sucks&amp;quot; sort of helper. So don't ask, thanks!&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Credits&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;SWFToImage library by ByteScout, from &lt;a href="http://www.bytescout.com/swftoimage.html"&gt;http://www.bytescout.com/swftoimage.html&lt;/a&gt;&lt;br /&gt;MagickNet library by ?, from &lt;a href="http://midimick.com/magicknet/"&gt;http://midimick.com/magicknet/&lt;/a&gt;&lt;/p&gt;</content><link rel='alternate' type='text/html' href='http://www.gameslifeandstuff.com/2008/04/digital-comic-downloader-10-released.html' title='Digital Comic Downloader discontinued'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6837494&amp;postID=7436085125985222940' title='6 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.gameslifeandstuff.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/7436085125985222940'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/7436085125985222940'/><author><name>Derek Quenneville</name><uri>http://www.blogger.com/profile/06057984454261804546</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6837494.post-7507189377895531369</id><published>2008-04-17T22:57:00.004-04:00</published><updated>2008-04-18T00:22:22.868-04:00</updated><title type='text'>Image manipulation progress</title><content type='html'>Some progress on the comic downloader.&lt;br /&gt;&lt;br /&gt;I've got programmatic image manipulation largely done. The process is basically this:  Render the SWF text layer at twice the size of the JPG background layer, then make it transparent and scale down to fit. (That makes the output quality a bit better.)&lt;br /&gt;&lt;br /&gt;To test things out I used the command-line &lt;a href="http://www.imagemagick.org/script/index.php"&gt;ImageMagick&lt;/a&gt; tools:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;convert -fuzz 115 foreground.png -transparent "#ff00ff" -resize 1000x1500 foreground-transparent.png&lt;br /&gt;&lt;br /&gt;composite foreground-transparent.png background.jpg final.png&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Then I added the &lt;a href="http://midimick.com/magicknet/"&gt;MagickNet&lt;/a&gt; DLL (a .NET wrapper for the ImageMagick libraries) to my project and rewrote the steps in C#:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;MagickNet.Magick.Init();&lt;br /&gt;MagickNet.Image imgForeground = new MagickNet.Image(Application.StartupPath + @"\foreground.png");&lt;br /&gt;&lt;br /&gt;imgForeground.ColorFuzz = 115;&lt;br /&gt;MagickNet.Color imgColour = new MagickNet.Color(255, 0, 255);&lt;br /&gt;imgForeground.Transparent(imgColour);&lt;br /&gt;Size imgSize = new System.Drawing.Size(1000, 1500);&lt;br /&gt;imgForeground.Resize(imgSize);&lt;br /&gt;imgForeground.Write(Application.StartupPath + @"\foreground-transparent.png");&lt;br /&gt;&lt;br /&gt;MagickNet.Image imgBackground = new MagickNet.Image(Application.StartupPath + @"\background.jpg");&lt;br /&gt;MagickNet.Image imgForegroundTransparent = new MagickNet.Image(Application.StartupPath + @"\foreground-transparent.png");&lt;br /&gt;&lt;br /&gt;imgBackground.Composite(imgForegroundTransparent,0,0,CompositeOperator.AtopCompositeOp);&lt;br /&gt;imgBackground.Write(Application.StartupPath + @"\final.png");&lt;br /&gt;&lt;br /&gt;MagickNet.Magick.Term();&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Much to my surprise, it worked! Here's what the input and output images look like:&lt;br /&gt;&lt;br /&gt;Foreground&lt;br /&gt;&lt;img src="http://www.gameslifeandstuff.com/nxax8-foreground.jpg"/&gt;&lt;br /&gt;&lt;br /&gt;Transparent foreground (note: some browsers can't render transparent PNG files correctly)&lt;br /&gt;&lt;img src="http://www.gameslifeandstuff.com/foreground-transparent.png"/&gt;&lt;br /&gt;&lt;br /&gt;Background&lt;br /&gt;&lt;img src="http://www.gameslifeandstuff.com/nxax8-background.jpg"/&gt;&lt;br /&gt;&lt;br /&gt;Final&lt;br /&gt;&lt;img src="http://www.gameslifeandstuff.com/nxax8-final.jpg"/&gt;&lt;br /&gt;&lt;br /&gt;It's not &lt;span style="font-style:italic;"&gt;perfect&lt;/span&gt;, because if you zoom in 1200% you can see some purple left on the edges of the speech balloons:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.gameslifeandstuff.com/zoom1200.jpg"/&gt;&lt;br /&gt;&lt;br /&gt;However the goal is not in creating pristine archive copies for hoarding, but temporary copies for convenient reading. So it's fine. :)&lt;br /&gt;&lt;br /&gt;Next up is to see if I can replicate the full &lt;a href="http://www.marvel.com/digitalcomics/"&gt;MDCU&lt;/a&gt; login process. The current method involves: logging in normally, opening a comic, then viewing the HTML source of the page to get the session id and issue id, then pasting those into my program. Not terribly convenient.</content><link rel='alternate' type='text/html' href='http://www.gameslifeandstuff.com/2008/04/image-manipulation-progress.html' title='Image manipulation progress'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6837494&amp;postID=7507189377895531369' title='2 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.gameslifeandstuff.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/7507189377895531369'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/7507189377895531369'/><author><name>Derek Quenneville</name><uri>http://www.blogger.com/profile/06057984454261804546</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6837494.post-6393495722178366694</id><published>2008-04-13T06:18:00.001-04:00</published><updated>2008-04-13T06:18:44.962-04:00</updated><title type='text'>More about the comic download tool</title><content type='html'>&lt;p&gt;I expected to release a downloading tool for &lt;a href="http://www.marvel.com/digitalcomics/"&gt;Marvel Digital Comics Unlimited&lt;/a&gt; at the end of last week but ran into some last-minute troubles.&lt;/p&gt;  &lt;p&gt;The comics online at MCDU exist in two different formats: Older issues that appear to have been scanned from paper, and newer issues that appear to have come directly from a digital workflow. The old ones are plain JPG files that are easy enough to use in a third-party application. The new ones however, are JPG files of background art with SWF files containing speech balloons layered on top.&lt;/p&gt;  &lt;p&gt;To convert the SWF text layer into an image I've been using &lt;a href="http://bytescout.com/"&gt;ByteScout&lt;/a&gt;'s &lt;a href="http://bytescout.com/swftoimage.html"&gt;SWF To Image library&lt;/a&gt;. It's a decent, free tool but there have been some hiccups. The text SWF files have an overall movie background colour of white, or #FFFFFF. So if you convert them as-is, you get white speech balloons on top of a white background:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/techknight/SAHd--35PhI/AAAAAAAAAgg/TKb-lMWsXF0/s1600-h/image%5B10%5D.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="125" alt="image" src="http://lh3.ggpht.com/techknight/SAHd_O35PiI/AAAAAAAAAgo/PDDS1BrAtCo/image_thumb%5B4%5D.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;That's no good, because if you deleted all of the white and put it on top of the background you'd have this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/techknight/SAHd_u35PjI/AAAAAAAAAgw/jAIVtRnFCyw/s1600-h/image%5B9%5D.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="125" alt="image" src="http://lh6.ggpht.com/techknight/SAHd_-35PkI/AAAAAAAAAg4/hgjofHN9Gcg/image_thumb%5B3%5D.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;So as a solution I tried creating my own SWF that would load the JPG and text SWF in layers and then convert all that into a single image. It worked... Sort of. SWF To Image executes and captures an image too quickly for the loadMovie commands in my custom SWF to finish loading Marvel's SWF and JPG. The only time it worked was when I used an example VBScript with a MsgBox prompt as an interruption, or in my actual program by writing the final image to disk several times in a row. That's not a hack I'm willing to live with.&lt;/p&gt;  &lt;p&gt;I messed around with various ways of loading content in Flash with events that determine whether or not the content has finished loading but in the end I couldn't reliably render the correct final image. For a different approach I looked into the SWF format itself. &lt;a href="http://www.m2osw.com/en/swf_alexref.html#tag_setbackgroundcolor"&gt;This reference&lt;/a&gt; to the SetBackgroundColor command being an RGB value set in every movie got me thinking... If I altered the downloaded SWF files to use a different background colour, it could easily be replaced.&lt;/p&gt;  &lt;p&gt;By changing this series of bytes &amp;quot;43 02 FF FF FF&amp;quot; in the header of the text SWF to &amp;quot;43 02 FF 00 FF&amp;quot;, I'm left with exactly what I need:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/techknight/SAHeAO35PlI/AAAAAAAAAhA/CuJvMB01scg/s1600-h/image%5B13%5D.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="125" alt="image" src="http://lh4.ggpht.com/techknight/SAHeAe35PmI/AAAAAAAAAhI/UphbHF9UJPM/image_thumb%5B5%5D.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Now that the background isn't white, purple is deleted instead, leaving this on top of the background:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/techknight/SAHeA-35PnI/AAAAAAAAAhQ/epKXBFM2jxk/s1600-h/image%5B16%5D.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="125" alt="image" src="http://lh3.ggpht.com/techknight/SAHeBO35PoI/AAAAAAAAAhY/Z6YcUwoePBs/image_thumb%5B6%5D.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;However this new method has not been done programmatically yet. (Only with a hex editor, some screenshots, and Photoshop.) There won't be an issue replacing bytes representing the background colour, but going on to cleanly remove that new purple background may require some fine-tuning.&lt;/p&gt;  &lt;p&gt;More to come...&lt;/p&gt;  </content><link rel='alternate' type='text/html' href='http://www.gameslifeandstuff.com/2008/04/more-about-comic-download-tool.html' title='More about the comic download tool'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6837494&amp;postID=6393495722178366694' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.gameslifeandstuff.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/6393495722178366694'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/6393495722178366694'/><author><name>Derek Quenneville</name><uri>http://www.blogger.com/profile/06057984454261804546</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6837494.post-5929269994123484033</id><published>2008-04-09T19:18:00.001-04:00</published><updated>2008-04-09T19:18:36.021-04:00</updated><title type='text'>Ikaruga on Xbox Live Arcade</title><content type='html'>&lt;p&gt;Ikaruga has its detractors, but I am extremely grateful to Microsoft and Treasure for supporting monitor rotation and the 16:10 aspect ratio. There's nothing like playing a vertical &lt;a href="http://en.wikipedia.org/wiki/Shoot_'em_up"&gt;shmup&lt;/a&gt; the way it was meant to be played:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/techknight/R_1Oymp6NjI/AAAAAAAAAgQ/YFzQL49zV0E/ikaruga%5B5%5D.jpg?imgmax=800"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="480" alt="Ikaruga" src="http://lh3.ggpht.com/techknight/R_1Oy2p6NkI/AAAAAAAAAgY/vtiMgULvZLk/ikaruga_thumb%5B3%5D.jpg?imgmax=800" width="307" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  </content><link rel='alternate' type='text/html' href='http://www.gameslifeandstuff.com/2008/04/ikaruga-on-xbox-live-arcade.html' title='Ikaruga on Xbox Live Arcade'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6837494&amp;postID=5929269994123484033' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.gameslifeandstuff.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/5929269994123484033'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/5929269994123484033'/><author><name>Derek Quenneville</name><uri>http://www.blogger.com/profile/06057984454261804546</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6837494.post-2889902424207781574</id><published>2008-04-03T16:47:00.001-04:00</published><updated>2008-04-03T16:47:14.150-04:00</updated><title type='text'>Marvel Digital Comics Unlimited security</title><content type='html'>&lt;p&gt;This is something I discovered a few months ago but never got around to writing about here. &lt;a href="http://www.marvel.com/digitalcomics/"&gt;Marvel Digital Comics Unlimited&lt;/a&gt; is a subscription service that allows one to read scanned versions of Marvel comic books online. The issues that one can read are never current with those on the shelves, but I suppose Marvel had to make some concessions to retailers.&lt;/p&gt;  &lt;p&gt;It's a decent enough service, but the Flash applet used for reading the books in your web browser is nigh unusable. So just after Christmas I started working on a Firefox extension that would allow me to read the books in an offline reader like &lt;a href="http://www.geocities.com/davidayton/CDisplay.html"&gt;CDisplay&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;In researching how the Flash applet communicated with Marvel's server, I discovered that although an authentication value was being passed with every request, it was being completely ignored. The upshot being that a request for an image file like &lt;a href="http://www.marvel.com/dotcomics_issues/ASM093_1963/hi_res_col/02.jpg?stdi=ckfq35k8nfep915892v1nsift2dgr"&gt;http://www.marvel.com/dotcomics_issues/ASM093_1963/hi_res_col/02.jpg?stdi=ckfq35k8nfep915892v1nsift2dgr&lt;/a&gt; didn't actually require the &amp;quot;stdi&amp;quot; variable to be passed, effectively making every comic open to subscribers and non-subscribers alike.&lt;/p&gt;  &lt;p&gt;I decided to inform Marvel, but I had no interest in wading through a phone tree trying to explain security vulnerabilities to receptionists. Unfortunately, Marvel's contact information page is fairly useless unless you want to book Spider-Man for your next corporate function. So I contacted Rich Johnston of &lt;a href="http://www.comicbookresources.com/?page=column&amp;amp;id=11"&gt;Lying In The Gutters&lt;/a&gt;, a long-running comic book rumour column.&lt;/p&gt;  &lt;p&gt;In the &lt;a href="http://www.comicbookresources.com/?page=article&amp;amp;id=15734"&gt;January 7th, 2008 edition&lt;/a&gt; of LITG (under &amp;quot;Marvel Comics Unpaid&amp;quot;), Rich reported my findings and asked Marvel for comments. Apparently they never responded, but the security hole was fixed that very day. My guess is that Marvel was aware of the issue but hadn't pushed a fix out to production yet. I know how that can go sometimes.&lt;/p&gt;  &lt;p&gt;Anyway, the reason I got around to writing this is that I expect to have a proof-of-concept of my downloading utility later this week. It won't be a Firefox extension as I'd originally hoped, but I will try to make it as convenient as possible.&lt;/p&gt;  </content><link rel='alternate' type='text/html' href='http://www.gameslifeandstuff.com/2008/04/marvel-digital-comics-unlimited.html' title='Marvel Digital Comics Unlimited security'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6837494&amp;postID=2889902424207781574' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.gameslifeandstuff.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/2889902424207781574'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/2889902424207781574'/><author><name>Derek Quenneville</name><uri>http://www.blogger.com/profile/06057984454261804546</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6837494.post-8724104143875765256</id><published>2008-03-28T12:46:00.001-04:00</published><updated>2008-03-28T12:46:09.664-04:00</updated><title type='text'>Fileserver fun</title><content type='html'>&lt;p&gt;This week, when I noticed that 500GB drives had gone down to &lt;a href="http://www.canadacomputers.com/index.php?do=ShowProduct&amp;amp;cmd=pd&amp;amp;pid=014525&amp;amp;cid=HD.443.877"&gt;$99 at Canada Computers&lt;/a&gt;, I decided to upgrade my file server.&lt;/p&gt;  &lt;p&gt;I use &lt;a href="http://neil.brown.name/blog/mdadm"&gt;mdadm&lt;/a&gt;, a Linux-based software &lt;a href="http://en.wikipedia.org/wiki/RAID"&gt;RAID&lt;/a&gt; solution, to handle the array. For the non-technical, this means that if I have four hard drives I can combine them into one big drive with a certain percentage of the space reserved for parity data. This parity data acts as a safety net: if any one of the hard drives die, the missing contents of that drive can be calculated from the data on the remaining drives. It's magic!&lt;/p&gt;  &lt;p&gt;When the two extra drives were installed, the array had to be grown to use them. The documentation for doing this is kind of scattered all over the place so I wanted to record the steps I went through in one place:&lt;/p&gt;  &lt;p&gt;Notes&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;My raid device:      &lt;br /&gt;/dev/md0 (ext3 filesystem)       &lt;br /&gt;Existing drives in the array:       &lt;br /&gt;/dev/sdb, /dev/sdc, /dev/sdd, /dev/sde       &lt;br /&gt;Newly installed drives:       &lt;br /&gt;/dev/sdf, /dev/sdg&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Add the two extra drives&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;mdadm --add /dev/md0 /dev/sdf      &lt;br /&gt;mdadm --add /dev/md0 /dev/sdg&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Grow the array&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;mdadm --grow /dev/md0 --raid-devices=6&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Increase the default speed of the growth (For me this meant the difference between taking 125 hours to complete and just 12 hours)&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;echo 1000000 &amp;gt; /proc/sys/dev/raid/speed_limit_max      &lt;br /&gt;echo 50000 &amp;gt; /proc/sys/dev/raid/speed_limit_min&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Watch and wait for the growth of the array to finish&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;watch cat /proc/mdstat&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Do a filesystem check&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;e2fsck -f /dev/md0&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Resize the filesystem to match the new array size&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;resize2fs /dev/md0&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Isn't Linux ridiculously simple? If you're using /etc/mdadm.conf don't forget to update it with the new value for num-devices.&lt;/p&gt;  </content><link rel='alternate' type='text/html' href='http://www.gameslifeandstuff.com/2008/03/fileserver-fun.html' title='Fileserver fun'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6837494&amp;postID=8724104143875765256' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.gameslifeandstuff.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/8724104143875765256'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/8724104143875765256'/><author><name>Derek Quenneville</name><uri>http://www.blogger.com/profile/06057984454261804546</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6837494.post-3495923624506915034</id><published>2008-03-02T20:48:00.001-05:00</published><updated>2008-03-02T20:48:02.048-05:00</updated><title type='text'>XNA Game Studio</title><content type='html'>&lt;p&gt;Last week I bought a copy of &lt;a href="http://www.wrox.com/WileyCDA/WroxTitle/productCd-0470261285.html"&gt;Professional XNA Programming (2nd edition)&lt;/a&gt; by &lt;a href="http://abi.exdream.com/"&gt;Benjamin Nitschke&lt;/a&gt;. I'd like to get back into making games, and Microsoft's recent community distribution &lt;a href="http://www.gamasutra.com/view/feature/3545/sponsored_feature_democratizing_.php"&gt;announcement&lt;/a&gt; has me excited to make them.&lt;/p&gt;  &lt;p&gt;For fun, I'll be writing about my progress through the book along with any games I make here: &lt;a href="http://www.techknight.com/blog"&gt;http://www.techknight.com/blog&lt;/a&gt;.&lt;/p&gt;  </content><link rel='alternate' type='text/html' href='http://www.gameslifeandstuff.com/2008/03/xna-game-studio.html' title='XNA Game Studio'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6837494&amp;postID=3495923624506915034' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.gameslifeandstuff.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/3495923624506915034'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/3495923624506915034'/><author><name>Derek Quenneville</name><uri>http://www.blogger.com/profile/06057984454261804546</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6837494.post-6161248335690798209</id><published>2007-12-17T23:57:00.001-05:00</published><updated>2007-12-18T00:00:05.290-05:00</updated><title type='text'>Spider on the Web</title><content type='html'>&lt;p&gt;Since September, writer Spider Robinson has been doing a wonderful weekly podcast called &lt;a href="http://www.spiderrobinson.com/podcast.html"&gt;Spider on the Web&lt;/a&gt;. It started out with essays written for the &lt;a href="http://www.hrmacmillanspacecentre.com/"&gt;HR MacMillan Space Centre&lt;/a&gt; and chapters of &lt;a href="http://www.amazon.com/Variable-Star-Robert-Heinlein/dp/076531312X"&gt;Variable Star&lt;/a&gt;, alternating each week. Now the podcast has expanded to include original material, op-ed columns from &lt;a href="http://www.theglobeandmail.com/"&gt;The Globe And Mail&lt;/a&gt;, and even music.&lt;/p&gt;  &lt;p&gt;In some ways, SOTW feels more like a radio production than a podcast (I mean that in a nice way). It wouldn't sound out of place coming from the &lt;a href="http://www.cbc.ca/radio/"&gt;CBC&lt;/a&gt; or &lt;a href="http://www.wbai.org/"&gt;WBAI&lt;/a&gt; and doesn't have the aimless uh, &amp;quot;podcastyness&amp;quot; that so many other shows have. I encourage everyone to &lt;a href="http://www.spiderrobinson.com/podcast.html"&gt;give it a try&lt;/a&gt;. And if you like it, use one of the handy monthly PayPal subscription options show your support.&lt;/p&gt;  &lt;p&gt;I also want to share this lovely Robert Heinlein-designed greeting card that I received from Spider and his wife Jeanne a few weeks ago:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.gameslifeandstuff.com/uploaded_images/SpiderontheWeb_150D8/safe_lunar_landing.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="222" alt="safe_lunar_landing" src="http://www.gameslifeandstuff.com/uploaded_images/SpiderontheWeb_150D8/safe_lunar_landing_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  </content><link rel='alternate' type='text/html' href='http://www.gameslifeandstuff.com/2007/12/spider-on-web.html' title='Spider on the Web'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6837494&amp;postID=6161248335690798209' title='1 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.gameslifeandstuff.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/6161248335690798209'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/6161248335690798209'/><author><name>Derek Quenneville</name><uri>http://www.blogger.com/profile/06057984454261804546</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6837494.post-701212594992821438</id><published>2007-11-17T03:17:00.001-05:00</published><updated>2007-11-17T03:17:27.412-05:00</updated><title type='text'>Testing Windows Live Writer</title><content type='html'>&lt;p&gt;&lt;a href="http://windowslivewriter.spaces.live.com/"&gt;Windows Live Writer&lt;/a&gt; is surprisingly good. Not only does it support non-Microsoft blogging services but even detects and handles non-standard configurations. The preview function also shows posts as they will look when published - something Google's own &lt;a href="http://www.blogger.com"&gt;Blogger&lt;/a&gt; service doesn't do correctly.&lt;/p&gt;  &lt;p&gt;I've been thinking about moving off of Blogger to something completely hosted on my own server... I've tested a few free tools like &lt;a href="http://www.joomla.org"&gt;Joomla&lt;/a&gt; and &lt;a href="http://www.pligg.org"&gt;Pligg&lt;/a&gt; (and even use &lt;a href="http://www.wordpress.org"&gt;WordPress&lt;/a&gt; for &lt;a href="http://www.escapearchive.com"&gt;Escape Archive&lt;/a&gt;) but they all strike me as being more trouble than they're worth. Joomla's initial setup and customization experience is especially awful.&lt;/p&gt;  &lt;p&gt;There's also theming to think about. Although Blogger lacks many features, it does have some reasonably decent templates that are easy to personalize. Joomla and WordPress on the other hand are terribly ugly out of the box.&lt;/p&gt;  &lt;p&gt;If anyone has had a good experience with an open source CMS please let me know... If not for this blog, then perhaps one would be appropriate for another project.&lt;/p&gt;  </content><link rel='alternate' type='text/html' href='http://www.gameslifeandstuff.com/2007/11/testing-windows-live-writer.html' title='Testing Windows Live Writer'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6837494&amp;postID=701212594992821438' title='3 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.gameslifeandstuff.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/701212594992821438'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/701212594992821438'/><author><name>Derek Quenneville</name><uri>http://www.blogger.com/profile/06057984454261804546</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6837494.post-7932353367166318338</id><published>2007-10-11T20:58:00.000-04:00</published><updated>2007-10-11T21:05:52.575-04:00</updated><title type='text'>Puzzle Quest mods</title><content type='html'>It looks like making changes to the PC version of &lt;a href="http://www.infinite-interactive.com/puzzlequest/"&gt;Puzzle Quest&lt;/a&gt; really is easy. Basically you get an Assets.zip full of xml and lua files to be tinkered with to your heart's content.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.infinite-interactive.com/index.php"&gt;Infinite Interactive&lt;/a&gt; made some balance changes for the PC, Xbox 360, and all future versions. However, I prefer to use the Warrior's Deathbringer spells from the older PSP/DS versions of PQ.&lt;br /&gt;&lt;br /&gt;Here's how to put the classic Deathbringer back in the game:&lt;br /&gt;&lt;br /&gt;1. Open up your Puzzle Quest folder (probably C:\Program Files\Puzzle Quest)&lt;br /&gt;2. Make a backup copy of Assets.zip&lt;br /&gt;3. Inside of the zip, edit Assets\Spells\SDBR.xml and change: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&amp;lt;Data  cooldown="3" /&amp;gt;&lt;/blockquote&gt;&lt;br /&gt;into&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&amp;lt;Data  cooldown="0" /&amp;gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;4. Next edit Assets\Spells\SDBR.lua and change: &lt;br /&gt;&lt;blockquote&gt;if (amt &gt; 10) then&lt;br /&gt;  amt = 10;&lt;br /&gt;end&lt;br /&gt;&lt;/blockquote&gt; into &lt;blockquote&gt;if (amt &gt; 64) then&lt;br /&gt;  amt = 64;&lt;br /&gt;end&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;You could probably just delete those three lines.. But it is probably best to set the upper bounds to no more than the actual number of gems on the board. :)&lt;br /&gt;&lt;br /&gt;5. Overwrite the files in Assets.zip with your new copies and you're done.</content><link rel='alternate' type='text/html' href='http://www.gameslifeandstuff.com/2007/10/puzzle-quest-mods.html' title='Puzzle Quest mods'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6837494&amp;postID=7932353367166318338' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.gameslifeandstuff.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/7932353367166318338'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/7932353367166318338'/><author><name>Derek Quenneville</name><uri>http://www.blogger.com/profile/06057984454261804546</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6837494.post-8391605983217680192</id><published>2007-10-01T02:40:00.000-04:00</published><updated>2007-10-01T03:31:10.696-04:00</updated><title type='text'>Liquid Rescale plug-in for The GIMP</title><content type='html'>Ever since the &lt;a href="http://www.youtube.com/watch?v=c-SSu3tJ3ns"&gt;Content-Aware Image Resizing presentation&lt;/a&gt; at &lt;a href="http://www.siggraph.org/s2007/"&gt;SIGGRAPH 2007&lt;/a&gt;, there has been excitement around finally getting to play with the underlying software. Some developers have gone so far as to implement their own version of the techniques described in &lt;a href="http://www.faculty.idc.ac.il/arik/imret.pdf"&gt;the paper by Shai Avidan and Ariel Shamir&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Yesterday, I saw a &lt;a href="http://digg.com/linux_unix/Liquid_rescale_feature_now_available_as_a_GIMP_plugin"&gt;a post on Digg&lt;/a&gt; about to one such implementation: the &lt;a href="http://liquidrescale.wikidot.com/"&gt;Liquid Rescale GIMP plugin&lt;/a&gt; by Carlo Baldassi.&lt;br /&gt;&lt;br /&gt;So I've installed &lt;a href="http://www.gimp.org/"&gt;The GIMP&lt;/a&gt; (open source image editing software similar to Photoshop) and tried out Liquid Rescale on a some images from &lt;a href="http://www.flickr.com"&gt;Flickr&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Original (Photo by &lt;a href="http://flickr.com/photos/chuqui/"&gt;Chuq Von Rospach&lt;/a&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.gameslifeandstuff.com/uploaded_images/1465893801_0050677cfd_o-776686.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://www.gameslifeandstuff.com/uploaded_images/1465893801_0050677cfd_o-776679.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;80% width&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.gameslifeandstuff.com/uploaded_images/1465893801_0050677cfd_o_80percent-748854.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://www.gameslifeandstuff.com/uploaded_images/1465893801_0050677cfd_o_80percent-748850.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;50% width&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.gameslifeandstuff.com/uploaded_images/1465893801_0050677cfd_o_50percent-787770.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://www.gameslifeandstuff.com/uploaded_images/1465893801_0050677cfd_o_50percent-787767.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;45% width, 80% height&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.gameslifeandstuff.com/uploaded_images/1465893801_0050677cfd_o_45_80percent-717389.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://www.gameslifeandstuff.com/uploaded_images/1465893801_0050677cfd_o_45_80percent-717386.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The plugin is in early stages, so there is currently no way to select areas of importance. That means people sometimes get mangled:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Original (&lt;a href="http://flickr.com/photos/boltron/"&gt;Photo by Boltronic&lt;/a&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.gameslifeandstuff.com/uploaded_images/1466152417_f92530be8a_o-781050.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://www.gameslifeandstuff.com/uploaded_images/1466152417_f92530be8a_o-780559.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;80% width&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.gameslifeandstuff.com/uploaded_images/1466152417_f92530be8a_o_80width-729614.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://www.gameslifeandstuff.com/uploaded_images/1466152417_f92530be8a_o_80width-729270.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Even though they've hired Shai Avidan, Adobe hasn't confirmed that the technique will make its way into Photoshop. However, it will be interesting to see third-party implementations grow and become more optimized.</content><link rel='alternate' type='text/html' href='http://www.gameslifeandstuff.com/2007/10/liquid-rescale-plug-in-for-gimp.html' title='Liquid Rescale plug-in for The GIMP'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6837494&amp;postID=8391605983217680192' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.gameslifeandstuff.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/8391605983217680192'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/8391605983217680192'/><author><name>Derek Quenneville</name><uri>http://www.blogger.com/profile/06057984454261804546</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6837494.post-6202807839025155397</id><published>2007-07-13T18:20:00.000-04:00</published><updated>2007-07-13T18:22:50.990-04:00</updated><title type='text'>Toronto Street Treats</title><content type='html'>Today at lunch I went to Nathan Phillips Square for &lt;a href="http://www.toronto.ca/health/torontostreeteats.htm"&gt;Toronto Street Treats&lt;/a&gt;, a preview of what we could be seeing on new food carts come August 1st. Until last week, Ontario was pretty much limited to hot dogs and sausages. But a revision of the law means that next month will mark the beginning of delicious variety.&lt;br /&gt;&lt;br /&gt;The square was packed with tourists and the Bay St. lunch crowd, and many stalls sold out of food before even an hour had passed.&lt;br /&gt;&lt;br /&gt;I was even interviewed on TV - finally I got the chance to share my vision of a taco cart on every corner with the world!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.gameslifeandstuff.com/uploaded_images/CIMG0910-754274.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://www.gameslifeandstuff.com/uploaded_images/CIMG0910-754258.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.gameslifeandstuff.com/uploaded_images/CIMG0933-731318.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://www.gameslifeandstuff.com/uploaded_images/CIMG0933-731298.jpg" border="0" alt="" /&gt;&lt;/a&gt;</content><link rel='alternate' type='text/html' href='http://www.gameslifeandstuff.com/2007/07/toronto-street-treats.html' title='Toronto Street Treats'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6837494&amp;postID=6202807839025155397' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.gameslifeandstuff.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/6202807839025155397'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/6202807839025155397'/><author><name>Derek Quenneville</name><uri>http://www.blogger.com/profile/06057984454261804546</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6837494.post-4055786925242429925</id><published>2007-06-12T02:39:00.000-04:00</published><updated>2007-06-12T03:02:16.227-04:00</updated><title type='text'>Microsoft Photosynth</title><content type='html'>I just watched a really &lt;a href="http://www.ted.com/index.php/talks/view/id/129"&gt;interesting presentation&lt;/a&gt; of a technology called Seadragon that was acquired by Microsoft:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.ted.com/index.php/talks/view/id/129"&gt;&lt;img style="cursor: pointer;" src="http://www.gameslifeandstuff.com/uploaded_images/seadragon1-780103.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In the presentation, we find out that Seadragon can be used to process and visually work with many gigabytes of photographic images without any slowdown.&lt;br /&gt;&lt;br /&gt;Further, the technology is used in &lt;a href="http://labs.live.com/photosynth/"&gt;Photosynth&lt;/a&gt; to spatially map thousands of photos into a navigable virtual space. In the picture above, the presenter shows an example of what happens when every photo on &lt;a href="http://www.flickr.com/"&gt;Flickr&lt;/a&gt; &lt;a href="http://www1.flickr.com/photos/tags/notredame/"&gt;tagged "Notre Dame"&lt;/a&gt; is thrown at the Seadragon technology.&lt;br /&gt;&lt;br /&gt;Anyone on a decent connection can try out Photosynth for themselves here:&lt;br /&gt;&lt;a href="http://labs.live.com/photosynth/"&gt;http://labs.live.com/photosynth/&lt;/a&gt; (It didn't work in Firefox for me but IE7 was fine.)&lt;br /&gt;&lt;br /&gt;Be sure to check out the Grassi Lakes collection where you can see climbers ascend the Rocky Mountains:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.gameslifeandstuff.com/uploaded_images/seadragon2-772836.jpg"&gt;&lt;img style="cursor: pointer;" src="http://www.gameslifeandstuff.com/uploaded_images/seadragon2-772830.jpg" alt="" border="0" /&gt;&lt;/a&gt;</content><link rel='alternate' type='text/html' href='http://www.gameslifeandstuff.com/2007/06/microsoft-photosynth.html' title='Microsoft Photosynth'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6837494&amp;postID=4055786925242429925' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.gameslifeandstuff.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/4055786925242429925'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/4055786925242429925'/><author><name>Derek Quenneville</name><uri>http://www.blogger.com/profile/06057984454261804546</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6837494.post-2088549736741299066</id><published>2007-05-31T22:43:00.000-04:00</published><updated>2007-06-01T00:19:55.772-04:00</updated><title type='text'>Forza 2</title><content type='html'>Here's my first car design in &lt;a href="http://forzamotorsport.net/"&gt;Forza Motorsport 2&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.gameslifeandstuff.com/uploaded_images/987acaf0-1e7d-4884-bf76-23d28c196880-781653.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://www.gameslifeandstuff.com/uploaded_images/987acaf0-1e7d-4884-bf76-23d28c196880-781648.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.gameslifeandstuff.com/uploaded_images/c93c8916-ddac-4838-8c27-c44cbba52d93-725636.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://www.gameslifeandstuff.com/uploaded_images/c93c8916-ddac-4838-8c27-c44cbba52d93-725630.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.gameslifeandstuff.com/uploaded_images/40e9874f-78f2-4c13-abe7-7529bbbe2b42-777170.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://www.gameslifeandstuff.com/uploaded_images/40e9874f-78f2-4c13-abe7-7529bbbe2b42-777164.jpg" border="0" alt="" /&gt;&lt;/a&gt;</content><link rel='alternate' type='text/html' href='http://www.gameslifeandstuff.com/2007/05/forza-2.html' title='Forza 2'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6837494&amp;postID=2088549736741299066' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.gameslifeandstuff.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/2088549736741299066'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/2088549736741299066'/><author><name>Derek Quenneville</name><uri>http://www.blogger.com/profile/06057984454261804546</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6837494.post-709204038836271917</id><published>2007-05-19T12:46:00.000-04:00</published><updated>2007-05-19T12:50:00.953-04:00</updated><title type='text'>Not the safest thing I've ever seen...</title><content type='html'>A crane truck seen on stilts this morning in the process of building the &lt;a href="http://www.rom.on.ca/crystal/webcam.php"&gt;Michael Lee-Chin Crystal&lt;/a&gt; at &lt;a href="http://www.rom.on.ca/"&gt;the ROM&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.gameslifeandstuff.com/uploaded_images/CIMG0874-781968.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://www.gameslifeandstuff.com/uploaded_images/CIMG0874-780442.JPG" border="0" alt="" /&gt;&lt;/a&gt;</content><link rel='alternate' type='text/html' href='http://www.gameslifeandstuff.com/2007/05/not-safest-thing-ive-ever-seen.html' title='Not the safest thing I&apos;ve ever seen...'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6837494&amp;postID=709204038836271917' title='1 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.gameslifeandstuff.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/709204038836271917'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/709204038836271917'/><author><name>Derek Quenneville</name><uri>http://www.blogger.com/profile/06057984454261804546</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6837494.post-7812623957249797021</id><published>2007-04-16T03:28:00.000-04:00</published><updated>2007-04-16T03:39:53.757-04:00</updated><title type='text'>Installing an SSH daemon on Windows Vista</title><content type='html'>I used to bash my head against the wall trying to set up an SSH daemon on Windows Vista with &lt;a href="http://www.cygwin.com/"&gt;Cygwin&lt;/a&gt; or &lt;a href="http://sshwindows.sourceforge.net/"&gt;OpenSSH for Windows&lt;/a&gt;. Both of them have some messy workarounds and are basically a load of frustration. (Though it is technically possible to make them work.)&lt;br /&gt;&lt;br /&gt;But today I came across &lt;a href="http://www.itefix.no/phpws/index.php?module=pagemaster&amp;PAGE_user_op=view_page&amp;PAGE_id=12&amp;MMN_position=149:149"&gt;copSSH&lt;/a&gt;, which has great support for Windows Vista. It was easy to set up and should definitely be used instead of Cygwin or OpenSSH.</content><link rel='alternate' type='text/html' href='http://www.gameslifeandstuff.com/2007/04/installing-ssh-daemon-on-windows-vista.html' title='Installing an SSH daemon on Windows Vista'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6837494&amp;postID=7812623957249797021' title='4 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.gameslifeandstuff.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/7812623957249797021'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/7812623957249797021'/><author><name>Derek Quenneville</name><uri>http://www.blogger.com/profile/06057984454261804546</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6837494.post-385458027959955840</id><published>2007-04-12T04:32:00.000-04:00</published><updated>2007-04-12T04:37:00.139-04:00</updated><title type='text'>Mortal Kombat II</title><content type='html'>Just in time for today's PlayStation Network release of &lt;a href="http://www.1up.com/do/gameOverview?cId=3156775"&gt;Mortal Kombat II&lt;/a&gt;, the new sister site to &lt;a href="http://www.umk3.net"&gt;UMK3.net&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.mortalkombatii.net"&gt;MortalKombatII.net&lt;/a&gt;</content><link rel='alternate' type='text/html' href='http://www.gameslifeandstuff.com/2007/04/mortal-kombat-ii.html' title='Mortal Kombat II'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6837494&amp;postID=385458027959955840' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.gameslifeandstuff.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/385458027959955840'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/385458027959955840'/><author><name>Derek Quenneville</name><uri>http://www.blogger.com/profile/06057984454261804546</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6837494.post-124008694436212845</id><published>2007-04-11T22:27:00.000-04:00</published><updated>2007-04-11T23:23:22.693-04:00</updated><title type='text'>The crane across the street just collapsed</title><content type='html'>There is a condo being built on the site across the street from my apartment. However about 20 minutes ago the large construction crane collapsed in the wind:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.gameslifeandstuff.com/uploaded_images/crane_adjusted-754813.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://www.gameslifeandstuff.com/uploaded_images/crane_adjusted-754785.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;More pictures here at Flickr:&lt;br /&gt;&lt;a href="http://flickr.com/photos/tech_knight/sets/72157600067652295/"&gt;http://flickr.com/photos/tech_knight/sets/72157600067652295/&lt;/a&gt;</content><link rel='alternate' type='text/html' href='http://www.gameslifeandstuff.com/2007/04/crane-across-street-just-collapsed.html' title='The crane across the street just collapsed'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6837494&amp;postID=124008694436212845' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.gameslifeandstuff.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/124008694436212845'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/124008694436212845'/><author><name>Derek Quenneville</name><uri>http://www.blogger.com/profile/06057984454261804546</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6837494.post-8928054787899325170</id><published>2007-02-11T17:01:00.000-05:00</published><updated>2007-02-11T17:15:08.244-05:00</updated><title type='text'>Xbox 360 Wireless Gaming Receiver for Windows</title><content type='html'>Today I bought the &lt;a href="http://www.xbox.com/en-US/hardware/x/xbox360wirelessgamingreceiver/"&gt;Wireless Gaming Receiver for Windows&lt;/a&gt; at &lt;a href="http://www.google.com/maps?num=100&amp;hl=en&amp;safe=off&amp;client=firefox-a&amp;rls=org.mozilla:en-US:official&amp;hs=DXM&amp;q=game+centre&amp;near=Toronto,+ON,+Canada&amp;radius=0.0&amp;latlng=43723057,-79392486,6412874054078541080&amp;sa=X&amp;oi=local&amp;ct=authority&amp;cd=1"&gt;Game Centre&lt;/a&gt;, a local video game store. I'm not entirely sure that it's supposed to be out yet, but there it was for CAD$19.99.&lt;br /&gt;&lt;br /&gt;Here's how it works: You plug the receiver into your PC, then sync it with any Xbox 360 wireless accessory. (The gamepad, the steering wheel, or the headset.) The wireless devices work just like any wired USB device - so the gamepad shows up under the same spot in the control panel, the headset is just another sound device, etc.&lt;br /&gt;&lt;br /&gt;A problem I noticed is that the included driver CD doesn't work in Windows Vista... But if you plug the receiver in, Windows will find a driver for it online.&lt;br /&gt;&lt;br /&gt;One nice feature is that the wired headset will also be detected if you plug it into your wireless controller.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.gameslifeandstuff.com/uploaded_images/360wireless-755779.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://www.gameslifeandstuff.com/uploaded_images/360wireless-753212.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.gameslifeandstuff.com/uploaded_images/360wireless2-777299.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://www.gameslifeandstuff.com/uploaded_images/360wireless2-773929.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.gameslifeandstuff.com/uploaded_images/360wireless3-706924.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://www.gameslifeandstuff.com/uploaded_images/360wireless3-704478.jpg" border="0" alt="" /&gt;&lt;/a&gt;</content><link rel='alternate' type='text/html' href='http://www.gameslifeandstuff.com/2007/02/xbox-360-wireless-gaming-receiver-for.html' title='Xbox 360 Wireless Gaming Receiver for Windows'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6837494&amp;postID=8928054787899325170' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.gameslifeandstuff.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/8928054787899325170'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/8928054787899325170'/><author><name>Derek Quenneville</name><uri>http://www.blogger.com/profile/06057984454261804546</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6837494.post-4377684136272742154</id><published>2007-02-02T19:15:00.001-05:00</published><updated>2007-02-02T19:18:19.415-05:00</updated><title type='text'>Microsoft Digital Ice House</title><content type='html'>&lt;div style="float: right; margin-left: 10px; margin-bottom: 10px;"&gt; &lt;a href="http://www.flickr.com/photos/tech_knight/377839687/" title="photo sharing"&gt;&lt;img src="http://farm1.static.flickr.com/158/377839687_3672e18944_m.jpg" alt="" style="border: solid 2px #000000;" /&gt;&lt;/a&gt; &lt;br /&gt; &lt;span style="font-size: 0.9em; margin-top: 0px;"&gt;  &lt;a href="http://www.flickr.com/photos/tech_knight/377839687/"&gt;Ice bed&lt;/a&gt;  &lt;br /&gt;  Originally uploaded by &lt;a href="http://www.flickr.com/people/tech_knight/"&gt;tech_knight&lt;/a&gt;. &lt;/span&gt;&lt;/div&gt;I visited the Microsoft Digital Ice House after work today. It was set up at the end of January to promote the release of Windows Vista and Office 2007.&lt;br /&gt;&lt;br /&gt;Outside, a group of people from &lt;a href="http://ubuntu-ca.org/"&gt;Ubuntu Canada&lt;/a&gt; were giving out free Linux CDs and information pamphlets. Security watched them carefully to make sure that they didn't actually set foot in Dundas Square, but it wasn't possible to miss the cries of "Free operating system! Don't buy Windows!".&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/tech_knight/sets/72157594514684939/"&gt;Click here&lt;/a&gt; for the full set of pictures (camera phone, sorry).&lt;br clear="all" /&gt;</content><link rel='alternate' type='text/html' href='http://www.gameslifeandstuff.com/2007/02/microsoft-digital-ice-house.html' title='Microsoft Digital Ice House'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6837494&amp;postID=4377684136272742154' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.gameslifeandstuff.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/4377684136272742154'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/4377684136272742154'/><author><name>Derek Quenneville</name><uri>http://www.blogger.com/profile/06057984454261804546</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6837494.post-10150961667192782</id><published>2007-01-24T01:22:00.000-05:00</published><updated>2007-01-24T01:55:22.809-05:00</updated><title type='text'>Unmarked reminder</title><content type='html'>Last December, I visited my family in Lynchburg, Virginia for Christmas. Thanks to the warm weather we got to spend time outdoors exploring the city. At a nearby park in the historical district, I was introduced to this:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.gameslifeandstuff.com/uploaded_images/CIMG0679-736530.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://www.gameslifeandstuff.com/uploaded_images/CIMG0679-732189.JPG" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It kind of looks like a bare garden now, but what it used to be is a swimming pool. My stepfather told me that sometime during desegregation, the city filled in the pool with concrete to prevent blacks (and presumably any other non-whites) from using it.&lt;br /&gt;&lt;br /&gt;To say that such a situation seems unreal is an understatement. I contacted the Legacy Museum of African American History in Lynchburg for more information, and this is what the museum's administrator Cheryl R. Stallings had to say:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;This information is correct.&lt;br /&gt;&lt;br /&gt;Early in the afternoon on Independence Day, July 4, 1961, a black gentleman named Olivet C. Thaxton, with six young boys, came to the segregated Miller Park swimming pool and attempted to purchase tickets for entrance into the dressing room.  It is said that the City Manager, Recreation Department Supervisor, and the Chief of Police were present, because they had been forwarned.  Also, additional law enforcement was present.  Mr. Thaxton was told at this time that all city pools, the white Miller Park and Riverside Park pools and the black Jefferson Park pool would be closed if the group entered.  Mr. Thaxton insisted that he be let in.  The pools were closed, and soon after filled in.  I beleive that Miller Park pool did not open until 1986.&lt;br /&gt;&lt;br /&gt;There are two great books that you can purchased (1) Lynchburg: A City Set On Seven Hills by Clifton &amp; Dorothy Potter; (2) Lynchburg, Virginia: The First Two Hundred Years 1786-1986 by James M. Elson.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;What surprises me, besides the fact that the pools were filled in at all, is that in this park with several sites of interest there isn't a single plaque to inform visitors of the important history that they might just be walking on.&lt;br /&gt;&lt;br /&gt;More photos:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.gameslifeandstuff.com/uploaded_images/CIMG0682-768968.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://www.gameslifeandstuff.com/uploaded_images/CIMG0682-766687.JPG" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.gameslifeandstuff.com/uploaded_images/CIMG0685-702569.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://www.gameslifeandstuff.com/uploaded_images/CIMG0685-798190.JPG" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.gameslifeandstuff.com/uploaded_images/CIMG0687-728883.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://www.gameslifeandstuff.com/uploaded_images/CIMG0687-726500.JPG" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.gameslifeandstuff.com/uploaded_images/CIMG0688-759024.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://www.gameslifeandstuff.com/uploaded_images/CIMG0688-756709.JPG" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Links:&lt;br /&gt;&lt;a href="http://www.legacymuseum.org/"&gt;Legacy Museum of African American History&lt;/a&gt;&lt;br /&gt;&lt;a href="http://search.barnesandnoble.com/booksearch/isbninquiry.asp?EAN=9780738524610&amp;x=42012401"&gt;Lynchburg, Virginia&lt;/a&gt;  by Clifton Potter, Dorothy Potter (Barnes &amp; Noble)&lt;br /&gt;&lt;a href="http://search.barnesandnoble.com/booksearch/isbninquiry.asp?EAN=9781890306724&amp;x=42012401"&gt;Lynchburg, Virginia: The First Two Hundred Years, 1786-1986&lt;/a&gt; by James M. Elson (Barnes &amp; Noble)&lt;br /&gt;&lt;a href="http://www.lynchburgva.gov/"&gt;Official City of Lynchburg, Virginia site&lt;/a&gt;</content><link rel='alternate' type='text/html' href='http://www.gameslifeandstuff.com/2007/01/unmarked-reminder.html' title='Unmarked reminder'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6837494&amp;postID=10150961667192782' title='2 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.gameslifeandstuff.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/10150961667192782'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/10150961667192782'/><author><name>Derek Quenneville</name><uri>http://www.blogger.com/profile/06057984454261804546</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6837494.post-116267600384632785</id><published>2006-11-04T16:19:00.000-05:00</published><updated>2006-11-04T16:33:23.863-05:00</updated><title type='text'>Ultimate Mortal Kombat 3</title><content type='html'>While playing UMK3 on Xbox Live I found it inconvenient to scroll through a large text FAQ every time I switched characters. So I created &lt;a href="http://www.umk3.net"&gt;UMK3.net&lt;/a&gt; to host a simple move and combo list for each character on their own separate page:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.gameslifeandstuff.com/uploaded_images/umk3example-775600.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://www.gameslifeandstuff.com/uploaded_images/umk3example-772139.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.umk3.net"&gt;Visit UMK3.net&lt;/a&gt;</content><link rel='alternate' type='text/html' href='http://www.gameslifeandstuff.com/2006/11/ultimate-mortal-kombat-3.html' title='Ultimate Mortal Kombat 3'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6837494&amp;postID=116267600384632785' title='1 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.gameslifeandstuff.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/116267600384632785'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/116267600384632785'/><author><name>Derek Quenneville</name><uri>http://www.blogger.com/profile/06057984454261804546</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6837494.post-116042838264864000</id><published>2006-10-26T22:04:00.000-04:00</published><updated>2006-10-26T10:12:15.263-04:00</updated><title type='text'>Sound in Windows Vista</title><content type='html'>Windows Vista has a lot of new features, but it's hard to point to any single one and recommend an upgrade. Here is one of the things I've noticed so far that will keep me from going back to XP:&lt;br /&gt;&lt;br /&gt;Per-application volume levels&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.gameslifeandstuff.com/uploaded_images/vista-volume-709903.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://www.gameslifeandstuff.com/uploaded_images/vista-volume-799769.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is something that I never realized how much I needed until I tried it. The problem is that Flash content in a browser seems to be a million times louder than anything else - so whenever I looked at a Flash animation or a YouTube video I would have to remember to turn down the volume before it finished loading. Now I can set Firefox to have its own low volume level relative to the main volume level.</content><link rel='alternate' type='text/html' href='http://www.gameslifeandstuff.com/2006/10/sound-in-windows-vista.html' title='Sound in Windows Vista'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6837494&amp;postID=116042838264864000' title='1 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.gameslifeandstuff.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/116042838264864000'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6837494/posts/default/116042838264864000'/><author><name>Derek Quenneville</name><uri>http://www.blogger.com/profile/06057984454261804546</uri><email>noreply@blogger.com</email></author></entry></feed>