<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet href="/templates/default/atom.css" type="text/css" ?>

<feed 
   xmlns="http://www.w3.org/2005/Atom"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/">
    <link href="http://johnjthomas.net/index.php?/feeds/atom.xml" rel="self" title="John's Blog" type="application/atom+xml" />
    <link href="http://johnjthomas.net/"                        rel="alternate"    title="John's Blog" type="text/html" />
    <link href="http://johnjthomas.net/rss.php?version=2.0"     rel="alternate"    title="John's Blog" type="application/rss+xml" />
    <title type="html">John's Blog</title>
    <subtitle type="html">A Technical Journal, and other writings</subtitle>
    <icon>http://johnjthomas.net/templates/bulletproof/img/s9y_banner_small.png</icon>
    <id>http://johnjthomas.net/</id>
    <updated>2009-10-29T21:01:45Z</updated>
    <generator uri="http://www.s9y.org/" version="1.4.1">Serendipity 1.4.1 - http://www.s9y.org/</generator>
    <dc:language>en</dc:language>

    <entry>
        <link href="http://johnjthomas.net/index.php?/archives/4-Wiive-been-hacked.html" rel="alternate" title="Wii've been hacked" />
        <author>
            <name>John J Thomas</name>
                    </author>
    
        <published>2009-10-28T22:20:01Z</published>
        <updated>2009-10-29T21:01:45Z</updated>
        <wfw:comment>http://johnjthomas.net/wfwcomment.php?cid=4</wfw:comment>
    
        <slash:comments>2</slash:comments>
        <wfw:commentRss>http://johnjthomas.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=4</wfw:commentRss>
    
            <category scheme="http://johnjthomas.net/index.php?/categories/1-Techno-Babble" label="Techno Babble" term="Techno Babble" />
    
        <id>http://johnjthomas.net/index.php?/archives/4-guid.html</id>
        <title type="html">Wii've been hacked</title>
        <content type="xhtml" xml:base="http://johnjthomas.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                Ok, I'm not a spring chicken, and I'm not as into gamming as I used to be. (back in the days of creating game Levels for UT2004, QUAKEII, Doom, and other such hot titles of yester-year) But I have to say I love my Wii. My biggest complaint about the unit, in fact all game consoles, is that I have to endlessly keep changing out the game disks. Lame. More over, being the father of a 6 year old boy and a 3 year old girl, I have to say I'm tired of replacing trashed $40.00-$60.00 game disks that get ruined because, well, kids are kids and have a hard time understanding the care of game disks, though my son is getting better and learning through Wii-Timeouts.<br />
<br />
I discovered that you can hack your Wii to use a USB Hard Drive, and through various 3rd party utilities, can also rip your games all down to the hard drive and have your Wii play them directly from hard drive. This sounded risky to me, but with 2 kids I figured one thing. If I do this and it works I will save the cost of a brand new Wii by eliminating the need for game disks to be out, and needed consistently. If it worked I would only need to use the game disk one time for the initial load, then I could store them neatly. My kids won't trash disks and I won't have to buy the fourth copy of Mario Kart Wii (I know, most parent say simply don't replace the disks...but I like to play too, and am technically inclined)<br />
<br />
I did it. It worked, holy cow this is the greatest thing in the known Wii universe. I loaded a program called USB Loader GX, and then used it to load my games on to the Hard Drive. It downloads the case art and the game disk art in just a few clicks, and here's the cool part. You get a awesome 3D Rolodex like view of all your game cases as the menu system. You just flip through them, pick the one you want, click on it and start gaming. As an added bonus the in-between level-loads and auto-saves go WAY faster as the HD and USB 2.0 interface are much faster than the DVD Drive.<br />
<br />
I have to say, if you think you can handle it go for it and hack your Wii today. I suggest visiting www.wiihacks.com to learn more.<br />
<br />
p.s. I haven't had to change out game disks for my three year old daughter in a few days now. Talk about a nice reprieve. <br />
<br />
p.p.s. Oh, if you damage you Wii, and you can, hacking it I really don't want to hear any complaints about it. Life is about knowing your limits. Mine allow me to hack my Wii.<br />
 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://johnjthomas.net/index.php?/archives/3-Adding-tail-to-Windows-context-menu..html" rel="alternate" title="Adding tail to Windows context menu." />
        <author>
            <name>John J Thomas</name>
                    </author>
    
        <published>2009-10-25T15:59:31Z</published>
        <updated>2009-10-26T17:29:44Z</updated>
        <wfw:comment>http://johnjthomas.net/wfwcomment.php?cid=3</wfw:comment>
    
        <slash:comments>2</slash:comments>
        <wfw:commentRss>http://johnjthomas.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=3</wfw:commentRss>
    
            <category scheme="http://johnjthomas.net/index.php?/categories/3-Windows-Tips" label="Windows Tips" term="Windows Tips" />
    
        <id>http://johnjthomas.net/index.php?/archives/3-guid.html</id>
        <title type="html">Adding tail to Windows context menu.</title>
        <content type="xhtml" xml:base="http://johnjthomas.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                  Many developers in the UNIX world have known for years, about a little utility called tail. Essentially tail would allow you too watch live log files by displaying the last 10 lines or so of any log file, actively updating the display as the log file was written to. Typically while at a bash or cshell prompt developers would type in, for instance if troubleshooting a web app, tail -f /usr/usr001/logs/httpd.log.<br />
 <br />
  Eventually tail was ported over to run under the Windows environment. This was awesome, but still required one to be at a dos prompt and to have to specify the full path to the log file you wish to tail. And as you would imagine, in an increasingly visual world, this was becoming more and more difficult. Well, no more. With this quick registry edit, you can instantly add Tail to Windows context-menu for text files (this includes any plain text format such as txt, diz, log, .properties, whatever).<br />
 <br />
  First, I've created a folder on my c:\drive called C:\BIN. I keep many DOS based and ported Unix-based utilities like grep in this folder. So for me tail.exe exists at c:\bin\tail.exe on my local hard-drive, with that in mind I simply created a new text file, using notepad, containing the following text:<br />
<br />
<blockquote><br />
Windows Registry Editor Version 5.00<br />
<br />
[HKEY_CLASSES_ROOT\txtfile\shell\Tail]<br />
<br />
[HKEY_CLASSES_ROOT\txtfile\shell\Tail\Command]<br />
@ = "\"C:\\bin\\tail.exe\" -f \"%1\""<br />
</blockquote><br />
<br />
I then saved it as a TAIL.REG. <br />
<br />
Once I saved it I browsed to it and double-clicked on it. Windows will warn you of the evil dangers of merging a REG file into your system registry, once you agree, thats it. Tail will now show up as an option whenever you right-click on a file that adhears to plain text formatting.  I use it daily now.<br />
<br />
<h3>You can download tail from</h3><br />
<br />
Sourceforge<br />
<a href="http://tailforwin32.sourceforge.net/" title="http://tailforwin32.sourceforge.net/">http://tailforwin32.sourceforge.net/</a><br />
<br />
Microsoft includes their own in the Windows Server 2003 RKT<br />
<a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=9d467a69-57ff-4ae7-96ee-b18c4790cffd&DisplayLang=en" title="http://www.microsoft.com/downloads">http://www.microsoft.com/downloads/</a><br />
 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://johnjthomas.net/index.php?/archives/2-Subversion,-Hudson,-Maven,-Archiva-make-a-nice-team..html" rel="alternate" title="Subversion, Hudson, Maven, Archiva make a nice team." />
        <author>
            <name>John J Thomas</name>
                    </author>
    
        <published>2009-10-24T14:33:46Z</published>
        <updated>2009-10-25T15:23:22Z</updated>
        <wfw:comment>http://johnjthomas.net/wfwcomment.php?cid=2</wfw:comment>
    
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://johnjthomas.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=2</wfw:commentRss>
    
            <category scheme="http://johnjthomas.net/index.php?/categories/2-Code-Complete" label="Code Complete" term="Code Complete" />
            <category scheme="http://johnjthomas.net/index.php?/categories/1-Techno-Babble" label="Techno Babble" term="Techno Babble" />
    
        <id>http://johnjthomas.net/index.php?/archives/2-guid.html</id>
        <title type="html">Subversion, Hudson, Maven, Archiva make a nice team.</title>
        <content type="xhtml" xml:base="http://johnjthomas.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                  Not so back in the past, our software development environment utilized jFrog Artifactory for artifact management, Apache Continuum continuous integration system to build our code, and a preponderance of batch files slung all over the place executing various Ant builds. To top that off there was also c# code that was being built at developers workstations and submitted into subversion source code repositories. The office mantra was "I don't understand, it worked on my workstation!". It was, in short, ugly and difficult to follow at best. We had scripts that mixed any given part process; products were built, gathered, downloaded, or packaged at just about any stage, and in any order. There was no separation of the various states of the build, and therefore complete and utter locked co-dependency on the current technologies being used in the process. An update in one place meant visiting many batch files, hoping not to miss one.  <br />
 <br />
  So how did we get here? Did we hire incompetence? Did we have issues making decisions? No; not at all. This is more of a symptom of sprawling software development. You start out with your software specification; this is in essence like the foundation of a house. Processes are set in place and development begins. Eventually the house is built, but development is still on-going as the product's potential is realized. And so the house grows to the point of exceeding the limits of the foundations. But not to worry; foundations can be changed, and expanded upon.<br />
<br />
 Enter Maven2 Project Management system, Hudson Continuous Integration Build System, Archiva Build Artifact management. The process was completely rebuilt from the ground up. Where we once had many interweaving batch files performing most of the work, we now had complete separation of processes. Maven allowed us to define project dependencies, codependences, relational hierarchies, and various build goals. Maven is everything Ant ever hoped to be, and more.<br />
<br />
 Now our programmers were checking in their code. Hudson would monitor our source code repositories every 10 minutes. If source code was checked in to a given project, be it c#, c++, or Java, then Hudson would build the code and perform (findbugs) code analysis, task analysis, junit tests and provide statistics lines of code, workspace size consumption and project size.  If Hudson detected any cross-project dependencies, it would then kick off their builds too. Hudson would then check in the resulting compiled binaries or assembled sources into Archiva artifact management system. <br />
<br />
 Next we have one batch file that simply simply gathers all the relevant binaries (or artifacts), assembling them in a working directory exactly as they would packaged into an installer. This process has no responsibility for building anything, and only cares about the most recent, successfully built artifacts published to Archiva. It doesn't care how the files are packed or what technology is used in the distribution process. Nor does it care how the binaries came to be.<br />
<br />
  Lastly the files would be packaged by our installer platform. This last step doesn't care about any previous steps. All it knows is that files at location X need to be packaged into an installer. The installer could be Install Shield, Jexpress, Wise, VSS Packaged and Deployment wizzard... whatever the technology, the basic workflow is the same. The nice part is that Hudson also allowed us to perform the last two steps as Jobs so end to end we were totally automated and monitored. <br />
<br />
  What is even better is that we have one process that simply builds our code base and assembles it.  We have a completely separate process that gathers all the necessary binaries for the installer. Lastly there is a completely separate process that actually packages all the binaries, and file dependencies. We can upgrade technologies in any part of the process with little to no effect in the other areas allowing us to be more agile and to be able to jump to newer better technologies as they become available at low risk to our product's stability and quality.<br />
<br />
<h3>Products worth looking into:</h3><br />
Hudson Extensible Continuous Integration System<br />
<a href="http://hudson-ci.org/" title="http://hudson-ci.org/">http://hudson-ci.org/</a><br />
<br />
Apache Archiva Artifact Management<br />
<a href="http://archiva.apache.org/" title="http://archiva.apache.org/">http://archiva.apache.org/</a><br />
<br />
Apache Maven2<br />
<a href="http://maven.apache.org/" title="http://maven.apache.org/">http://maven.apache.org/</a><br />
<br />
Subversion Source Code Repository<br />
<a href="http://subversion.tigris.org/" title="http://subversion.tigris.org/">http://subversion.tigris.org/</a> 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://johnjthomas.net/index.php?/archives/1-Take-a-deep-breath!.html" rel="alternate" title="Take a deep breath!" />
        <author>
            <name>John J Thomas</name>
                    </author>
    
        <published>2009-10-24T13:12:31Z</published>
        <updated>2009-10-24T15:32:44Z</updated>
        <wfw:comment>http://johnjthomas.net/wfwcomment.php?cid=1</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://johnjthomas.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=1</wfw:commentRss>
    
            <category scheme="http://johnjthomas.net/index.php?/categories/4-Website-News" label="Website News" term="Website News" />
    
        <id>http://johnjthomas.net/index.php?/archives/1-guid.html</id>
        <title type="html">Take a deep breath!</title>
        <content type="xhtml" xml:base="http://johnjthomas.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                Well there's nothing like a good old spring cleaning, in the fall.  Time to time its good to shake the tree and see what falls loose, and this time around it was my web-site.<br />
<br />
 I've moved out of the IT consulting business and have been a Informatics Engineer for about two years now, as I am sure many of you noticed my site has been inactive for about that long.  It's a great place to work and as such I find myself dedicating most of my time there now... as such I no longer have the time and resources to maintain a full-blown CMS system, a open-source project (WMI Asset Logger), and all the other electronic errata I was maintaining. So here we are, with a fresh new slate. It's a new era for me and so it is reflected here in my site.<br />
<br />
 I've been learning c#, Java, and the JSF framework lately and will hopefully find the time to post tips, tricks, and learnings that I gather along my journey to becomming a better engineer. I just love technology and I love having the opportunity to invent new ways of doing things, or finding cleaner, simpler ways of doing the same old thing. Who knows where my new journey will end up, we'll discover it together. I'm not a very active conversationalist so you'll all have to forgive me my style of writing, that is of you're even still here reading this.<br />
<br />
 
            </div>
        </content>
        
    </entry>

</feed>