<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>patorjk.com &#187; Personal</title>
	<atom:link href="http://patorjk.com/blog/category/personal/feed/" rel="self" type="application/rss+xml" />
	<link>http://patorjk.com/blog</link>
	<description>web apps, programming talk, and random thoughts</description>
	<lastBuildDate>Fri, 04 May 2012 13:45:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Cracking MaGuS&#8217; Fate Zero Encryption</title>
		<link>http://patorjk.com/blog/2012/05/03/cracking-magus-fate-zero-encryption/</link>
		<comments>http://patorjk.com/blog/2012/05/03/cracking-magus-fate-zero-encryption/#comments</comments>
		<pubDate>Fri, 04 May 2012 03:53:15 +0000</pubDate>
		<dc:creator>patorjk</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://patorjk.com/blog/?p=1718</guid>
		<description><![CDATA[I&#8217;m getting ready to upgrade my computer, and while going through some old files I stumbled upon a copy of Fate Zero, the last version of the infamous Fate-X program, which was released by MaGuS and FunGii in the late 90&#8242;s. Fate-X was a tool which added extra functionality to AOL, some of which AOL [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m getting ready to upgrade my computer, and while going through some old files I stumbled upon a copy of Fate Zero, the last version of the infamous <a href="http://wiki.docdroppers.org/index.php?title=Fate_X">Fate-X</a> program, which was released by MaGuS and FunGii in the late 90&#8242;s. Fate-X was a tool which added extra functionality to AOL, some of which AOL was ok with, and some of which it wasn&#8217;t very fond of. After Da Chronic (known for <a href="http://en.wikipedia.org/wiki/AOHell">AOHell</a>), MaGuS was probably the most widely known AOL hacker. Even though Fate-X 2.5 and 3.0 had a much bigger impact, Fate Zero was the most extensive in regards to features.</p>
<p>To maintain its status at the top of the heap, Fate Zero had to protect its external data, and this meant encrypting it so that other developers couldn&#8217;t snatch it up for their own progs. The prog scene of that time, however, is now long dead. Seeing these files today, I got curious. MaGuS was only 16 when he wrote Fate Zero. When I was 16, I knew almost nothing about encryption. It wasn&#8217;t until I was in college that I got a good exposure to the field of cryptography. Even though MaGuS seemed like a pretty smart guy, at that point in time he probably also didn&#8217;t know much about encryption. This made me think that the files might be easy to crack. It seemed like a fun way to spend a few hours, so I decided to see if I could decode them.</p>
<p>Interestingly (or not interestingly, depending on how you feel about it), the biggest source of external data for Fate Zero was AOL ASCII Art (ASCII Art done in 10pt Arial). This was typically used for scrolling into chat rooms. Fate Zero had over 500 files dedicated to this. You can see an example piece of art and its corresponding file encoding, below.</p>
<pre style="font-family:Arial;font-size:13px;white-space:pre;">
                         .--··´¯¯¯¨˜`·-.,
            .---··· ´¨¨¨                      `·.
       .·´                                        ',
    ,'                                               ',
   ¦             /|        |        /                  |
    ',     (     \\:\  |   /|      /''\     .|          |
      '·.  \|\ \.,'.|::\|\/ |¸,.-·´¨¨`·/.·´  |           |
         ` ·-\\|'/|¨`,     `|˜¨|¨˜`·„¸      |   |´¯`,    |
           ,'/||', \:'| ,     |_\::':/      |    |,  ,'     |
         ,'//|  ',¯¯·',                    |    | ¯        |
        ,'/  |  | ` ·.  --·´               |     |           |
        |´  |   |   _ ` ·.__ .·´        |      |/_        |
        |   |   |¨¯  ¯¯///,··\     ,.--·|      |  ',¯¨¨˜˜``'
        |.·´|   |--,··´¯//\ \ \    //   Aeka  _¸'·-By KioNe
</pre>
<p>File data for the above picture:</p>
<pre class="brush:js">
MDRæ”…f”…f”…f”…f”…f”…f¡’ý)õý¦¡“rn~f”…f”…f”“sŽ¡ý”î
…f”…f”…f”…f”…f”…fÁ,“Sk…f”…f,f”…f”…f”…f”…f”…f”…f”…f”…f”…f”…moæ”…rˆ”…f”…f”…f”…f”…f”…f”…f”…f”…f”…f”…f”…fˆ rP”…ì”…f”…f”…f£áf”…f”…Â”…f”…f”…f”…f”…f”…f”…Ân~f”Œr”…fœ…f”…¢½®Áfð…f£áf”…f£Œm½”…f”“Â”…f”…f”áSk…f”…m¢…f½ðÁf½¢‘mðŸ€½ðÁuðr¡ú
Åý¢ú”áf”…f”…f”áSk…f”…f”Åf¡Á¢Ý›”Â
Ô‘f”…fÁðýîÝý¦øf”…fð…fðõÁ …f”áSk…f”…f”…f›”ÂÝ›‘f½®ŒÂ …f”…ÂÀÐŸ€ˆ®”f”…fð…f”ár”‘m”…fðrP”…f”…f Œuð…fˆ õ›‘f”…f”…f”…f”…f”…Â”…fÝ”f”…f”…Ân~f”…f”‘m”…Â”áfÁ”t”’s)…f”…f”…f”…fð…f”…Â”…f”…f”…Ân~f”…f”áú”áf”áf”ÄfÁ”tÀÓ…t)…f”…f”áf”…fð”¥”…f”…fÝoæ”…f”…Â”…Â”…Â
$…f$”u ý½”…f”‘tŽ¡Â”…f”áf›‘õ
ýÞÁÔŒSk…f”…fð“ýð…fð’s,ú£”¢Ð…¢”…f£…fµÊ±Â”…¥›s£í…‘Êã³«n~
</pre>
<p>So right away it&#8217;s clear he&#8217;s not using a <a href="http://en.wikipedia.org/wiki/Substitution_cipher#Simple_substitution">simple substitution cipher</a>, yet due to the repeated use of white space in the source data, a pattern does seem to emerge in the encoded data. I compared the file sizes and found MaGuS&#8217; encoded *.mdr files to be 5 bytes larger than their decoded counter parts. I chalked this up to the &#8220;MDR&#8221; that prefixed all the files, and the ending carriage return and line feed that seemed to end all of the files.</p>
<p>That meant there was probably one-for-one character encoding going on. After trying a few things out, I realized every 4th character seemed to use the same encoding. My guess was that he was combining 4 simple substitution ciphers, and using a different cipher depending on the index of the character. I created a quick script that read in an input/output combination and then tried to use that information to decode an encrypted file. To my delight, the script (mostly) worked! This was great, however, without knowing the full map of each cipher, I would only be able to get partial results.</p>
<p>I looked further and found each cipher was simply doing a character offset, meaning each cipher was a <a href="http://en.wikipedia.org/wiki/Caesar_cipher">Caesar Cipher</a>. The offsets were 70, 97, 116 and 101, respectively. If you look up the corresponding ASCII code for those numbers, you get the word &#8220;Fate&#8221;. I tried out this new decoding strategy and was able to successfully decode a directory of MaGuS&#8217; files. I had broken the code! MaGuS was using what is known as the <a href="http://en.wikipedia.org/wiki/Vigen%C3%A8re_cipher">Vigenere Cipher</a>, and for that particular directory, &#8220;Fate&#8221; was the pass-phrase.  </p>
<p>In another interesting twist, I noticed certain types of files used different Vigenere keywords. For his *.mdf data files, the keyword &#8220;12151981&#8243; was used. My guess was that this was his birthday, since this date would have made him 16 when the prog was released and he mentions that he was 16 in the app&#8217;s about section. In this same about section he also mentions that he&#8217;s Asian and what high school he went to. This narrows down who he is to almost a T. </p>
<p>This got me thinking: &#8220;I wonder if I can track down who MaGuS was?&#8221; With the aid of some crafty googling, email addresses taken from webpages mentioned inside of Fate (if you dig through the machine code, you&#8217;ll find a dozen or so URLs), Rapportive (which can be used to look up social profiles based on email addresses), the internet archive, and leads taken from Fate Zero itself, I was able to pin point an individual who fit all of the criteria and was friends with people who got shout outs in Fate. I plugged their name and the &#8220;12-15-1981&#8243; birthday into <a href="http://dobsearch.com">dobsearch.com</a>, and only one result came back, and it was from the state and city MaGuS said he lived in. I was stunned, I had found MaGuS.</p>
<p>I feel like it&#8217;d be wrong to out him, but at the same time I know it&#8217;d be a cop-out to not say anything. So I&#8217;ll just say that according to his LinkedIn and Facebook, he works for a consulting firm in the Washington DC area and is specializing in web related work. The rumors of him working for a security firm or of being <a href="http://en.wikipedia.org/wiki/Adrian_Lamo">this guy</a> are false. He also seems to be somewhat of world traveler, and has a side hobby of being a photographer. </p>
<p>Part of me wondered for a second if I should contact him. He was a big inspiration to me back in the day, and Fate-X and its ilk are what led me to learn how to program. However, after talking with my wife, we thought that&#8217;d be too creepy. He made some cool progs a long, long time ago, no need to freak him out with some elaborate story that involves breaking some encryption he wrote over a decade ago. </p>
<p>Anyway, after I&#8217;d finished my little side quest, and I realized I still had 500+ decrypted AOL ASCII Art files, many of which haven&#8217;t seen the light of day in over a decade. Since some of that stuff is kind of cool, I decided to create a <a href="http://patorjk.com/arial-ascii-art/">gallery for it</a>. If you have a few moments check it out. Also, feel feel to grab and host any art there that you like, just be sure to leave in any artist signatures. It&#8217;s kind of strange to think that era is so far away, but also kind of neat to find remnants of it every so often.</p>
]]></content:encoded>
			<wfw:commentRss>http://patorjk.com/blog/2012/05/03/cracking-magus-fate-zero-encryption/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>I Handed in My Letter of Resignation</title>
		<link>http://patorjk.com/blog/2010/08/15/i-handed-in-my-letter-of-resignation/</link>
		<comments>http://patorjk.com/blog/2010/08/15/i-handed-in-my-letter-of-resignation/#comments</comments>
		<pubDate>Mon, 16 Aug 2010 00:18:10 +0000</pubDate>
		<dc:creator>patorjk</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://patorjk.com/blog/?p=758</guid>
		<description><![CDATA[Last week I handed in my letter of resignation to Northrop Grumman, the company I&#8217;ve worked at for the past 4 years. I was both excited and nervous at the same time. Nervous because it was a big step, and excited because I was starting a new job as a subcontractor at a small company [...]]]></description>
			<content:encoded><![CDATA[<p>Last week I handed in my letter of resignation to Northrop Grumman, the company I&#8217;ve worked at for the past 4 years. I was both excited and nervous at the same time. Nervous because it was a big step, and excited because I was starting a new job as a subcontractor at a small company in two weeks.</p>
<p><div class="wp-caption alignright" style="width: 310px"><img alt="" src="http://patorjk.com/images/blog-2010/chess-beach.png" width="300" height="187" /><p class="wp-caption-text">Photo by <a href='http://www.flickr.com/photos/gabork/6855740/'>gabork</a></p></div>The past three years I&#8217;ve spent most of my time creating and maintaining Java and Tcl/Tk applications, with the majority of my time going to Tcl/Tk development. Both of these are fun languages, but I kind of wanted to get away from these as my primary focus and move into doing web development. Northrop is a pretty huge company and allows people to move around, but from the inside it looked like my future involved mostly C/Java/Tcl, so I decided it was time to see what was available outside of the company.</p>
<p>I&#8217;ve had a few friends successfully change jobs within the past year and decided to hit up one of them about possible jobs in his company. I ended up interviewing for and landing a job as a PHP developer. Since I&#8217;ll be a subcontractor, what I work in will vary from project to project (just like at Northrop, actually), but I&#8217;m in a position to take on a more diverse set of projects that I think will be geared more towards my interests. I also think getting to see how smaller companies work will be an interesting experience.</p>
<p>Lastly, I&#8217;ve decided to carry on with my rule of not talking about work on this blog, with the exception of big announcements, so this will probably be my last work themed entry for a while. Hopefully it helps me pick up some cool new skills and I&#8217;m am able to apply some of what I&#8217;ve picked up making the content for this site professionally. Also, I know I&#8217;ve sort of been neglecting this site due to perparing for the new job, but I think this site will benefit from it in the long run. If you&#8217;re interested in changing jobs and have any questions feel free to shoot me an email me or post in the comment section below. </p>
]]></content:encoded>
			<wfw:commentRss>http://patorjk.com/blog/2010/08/15/i-handed-in-my-letter-of-resignation/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Married!</title>
		<link>http://patorjk.com/blog/2010/06/10/married/</link>
		<comments>http://patorjk.com/blog/2010/06/10/married/#comments</comments>
		<pubDate>Thu, 10 Jun 2010 05:07:18 +0000</pubDate>
		<dc:creator>patorjk</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://patorjk.com/blog/?p=659</guid>
		<description><![CDATA[On Saturday I got married . The past couple of months have been a little hectic, though probably not as much for me as for my wife. I&#8217;ve had a lot of stuff going on and I do feel a little bad that this site has been put on hold a little bit. However, weddings [...]]]></description>
			<content:encoded><![CDATA[<p><div class="wp-caption alignleft" style="width: 310px"><img alt="" src="http://patorjk.com/images/blog-2010/cake-cutting.png" title="My wife and I cutting our wedding cake" width="300" height="225" /><p class="wp-caption-text">My wife and I cutting our wedding cake</p></div>On Saturday I got married <img src='http://patorjk.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . The past couple of months have been a little hectic, though probably not as much for me as for my wife. I&#8217;ve had a lot of stuff going on and I do feel a little bad that this site has been put on hold a little bit. However, weddings are crazy and I had no idea how much energy goes into them (including this wedding, I&#8217;ve only ever been to 5 weddings &#8211; 4 of them have been in the past year and a half). Our wedding was held at the Engineer&#8217;s Club in Baltimore and there were 130-something attendees. </p>
<p>Since the wedding is now over, activity on this site will probably pick up some. I&#8217;ve been reading a lot of books in my spare time so I may do a few book reviews, however, I don&#8217;t want to turn this page into a book review site, so if I do go that route I&#8217;ll space them out somewhat.</p>
<p><div class="wp-caption alignright" style="width: 210px"><img alt="" src="http://patorjk.com/images/blog-2010/super-mario-bros-grooms-cake.png" title="Super Mario Bros Groom&#039;s Cake" width="200" height="267" /><p class="wp-caption-text">Super Mario Bros Groom&#039;s Cake</p></div>Also, before I forget, my advice to anyone getting married soon would be this:</p>
<ul>
<li>Wear comfortable shoes. My feet were killing me at the end of the night.</li>
<li>Dance lessons were well worth it. Take them!</li>
<li>Try to talk to everyone during dinner and don&#8217;t get stuck at one table.</li>
<li>If there&#8217;s some food you want, have someone get you some or have it set aside (I missed out on the delicious strawberry layer of our cake &#8211; and on the delicious pigs in a blanket finger food).</li>
<li>The day will be a lot of fun, don&#8217;t sweat it!</li>
</ul>
<p>Lastly, the cake to the right was a groom&#8217;s cake that my bride had made for me <img src='http://patorjk.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . She gave them some pics of other Mario wedding cakes so it&#8217;s similar to them, but toned down since it was just for a rehearsal diner. Mario and Peach were a little pudgy, but I thought it was a really, really cool cake. At the time of its making I was kind of obsessed with the New Super Mario Bros game for the Wii, which is why she had it done.</p>
]]></content:encoded>
			<wfw:commentRss>http://patorjk.com/blog/2010/06/10/married/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Monk-E-God</title>
		<link>http://patorjk.com/blog/2010/02/15/monk-e-god/</link>
		<comments>http://patorjk.com/blog/2010/02/15/monk-e-god/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 06:21:22 +0000</pubDate>
		<dc:creator>patorjk</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://patorjk.com/blog/?p=577</guid>
		<description><![CDATA[Monk-E-God, one of the most prominent figures from the AOL add-on programming scene of the late 90&#8242;s, has died. Initially someone emailed me about &#8220;Tom&#8221; dying and I had no idea who they were talking about. I&#8217;m really bad with names so I always feel a little bad when someone from that era emails me. [...]]]></description>
			<content:encoded><![CDATA[<p>Monk-E-God, one of the most prominent figures from the AOL add-on programming scene of the late 90&#8242;s, has died. </p>
<p>Initially someone emailed me about &#8220;Tom&#8221; dying and I had no idea who they were talking about. I&#8217;m really bad with names so I always feel a little bad when someone from that era emails me. However, I remembered the &#8220;moorpark&#8221; location they mentioned and a discussion about it at knk4life.com &#8211; and that&#8217;s when it hit me that they were talking about Monk-E-God. I remember talking with him at what I think was knk&#8217;s old forums (and possibly later GPX&#8217;s forums, though I can&#8217;t remember if he was a member of that forum) and checking out his work at knk&#8217;s website.</p>
<p>I wasn&#8217;t really close to the guy, but I remember him as being one of the best programmers from those days. He was one of those people who&#8217;s reputation preceded them, it&#8217;s really sad to hear he&#8217;s gone. Thinking about that era brings back a lot of memories. If it wasn&#8217;t for that community and those days on AOL, I wouldn&#8217;t have become the programmer I am today. </p>
<p>There&#8217;s some more information about him at the <a href="http://digitalgangster.com/4um/showthread.php?t=114532">digitalgangster.com forums</a>, including a neat story about him meeting the Olsen Twins.</p>
]]></content:encoded>
			<wfw:commentRss>http://patorjk.com/blog/2010/02/15/monk-e-god/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Merry Christmas and Happy Holidays!</title>
		<link>http://patorjk.com/blog/2009/12/24/merry-christmas-and-happy-holidays-2/</link>
		<comments>http://patorjk.com/blog/2009/12/24/merry-christmas-and-happy-holidays-2/#comments</comments>
		<pubDate>Fri, 25 Dec 2009 02:08:32 +0000</pubDate>
		<dc:creator>patorjk</dc:creator>
				<category><![CDATA[Introspective]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://patorjk.com/blog/?p=532</guid>
		<description><![CDATA[I&#8217;ve been bad about updating the past couple of months, I should have some interesting stories for next year though. It&#8217;s been a pretty amazing year. I got engaged, bought a house, wrote a couple of new web apps, learned a lot about Tcl and JavaScript, visited Northern California (and then got stranded in Phoenix [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been bad about updating the past couple of months, I should have some interesting stories for next year though. </p>
<p>It&#8217;s been a pretty amazing year. I got engaged, bought a house, wrote a couple of new web apps, learned a lot about Tcl and JavaScript, visited Northern California (and then got stranded in Phoenix on my way back &#8211; due to the blizzard going on in Maryland), worked over 180 hours of overtime, and gained a lot of weight (the last one&#8217;s not a good thing, but it&#8217;ll give me a goal of losing weight for the new year).</p>
<p>I looked up my resolutions for this past year and I think I did ok. Here&#8217;s the list:</p>
<ul>
<li><strong>Get good at JavaScript:</strong> I feel like I&#8217;ve accomplished this one. There&#8217;s more for me to know, but I feel like I really know my way around the language.</li>
<li><strong>Learn jQuery:</strong> Didn&#8217;t even look at it this year. There are a lot of cool JavaScript frameworks out there though. I&#8217;ll probably get around to learning jQuery at some point, but I don&#8217;t think knowing it is as important as I used to.</li>
<li><strong>Develop More Web Apps:</strong> The Typing Speed Test, the HTML Canvas game, the Blog Stylometry Tool, and lots of updates to the Keyboard Layout Analyzer. I was sort of quiet near the end of the year, but I expect for things to pick up again here soon.</li>
<li><strong>Read At Least 4 Programming Books:</strong> Learning Dojo, Learning ExtJS, JavaScript: The Good Parts, and Code: The Hidden Language of Computer Hardware and Software. JavaScript: The Good Parts and Learning ExtJS were the best of that group, and after thinking more about it, probably the only two I&#8217;d recommend from the list.</li>
<li><strong>Join A Programming Community:</strong> I did not do this, unless you count my subscription to the Programming Sub-Reddit at reddit.com. I&#8217;ll give myself half credit here.</li>
<li><strong>Write A WordPress Plug-In:</strong> I had a couple of ideas, but I lost interest.</li>
<li><strong>Release Some Programming Examples:</strong> I still want to do this.</li>
</ul>
<p>So I achieved 3.5 of my 7. Not too shabby, I feel like I accomplished what was important to me, and that&#8217;s probably better than meeting the goals I think up at the beginning of the year.</p>
<p>This probably wont be my last post of the year (I&#8217;ve got a book review coming), but I hope everyone out there has a great holiday and a happy new year!</p>
]]></content:encoded>
			<wfw:commentRss>http://patorjk.com/blog/2009/12/24/merry-christmas-and-happy-holidays-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dogs Days of Summer and Web App Versioning</title>
		<link>http://patorjk.com/blog/2009/06/17/web-app-versioning/</link>
		<comments>http://patorjk.com/blog/2009/06/17/web-app-versioning/#comments</comments>
		<pubDate>Wed, 17 Jun 2009 05:22:30 +0000</pubDate>
		<dc:creator>patorjk</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Web Apps]]></category>

		<guid isPermaLink="false">http://patorjk.com/blog/?p=382</guid>
		<description><![CDATA[I can&#8217;t remember a time when I was so exhausted. I&#8217;ve moved into my new townhouse, though it still feels like there&#8217;s a ton of stuff to do for it. I also got engaged recently, and even though the date is a year away it seems like there is a lot to do for it. [...]]]></description>
			<content:encoded><![CDATA[<div class="wp-caption aligncenter" style="width: 510px"><img alt="Rising Sun" src="http://patorjk.com/images/blog-2009/clip-art-rising-sun.png" title="Rising Sun" width="500" height="154" /><p class="wp-caption-text">Rising Sun</p></div>
<p>I can&#8217;t remember a time when I was so exhausted. I&#8217;ve moved into my new townhouse, though it still feels like there&#8217;s a ton of stuff to do for it. I also got engaged recently, and even though the date is a year away it seems like there is a lot to do for it. I&#8217;ve also been working 50-55 hour weeks at work the past few weeks, usually leaving work around 10pm. That last one isn&#8217;t too bad, since I&#8217;m getting overtime and I know people who&#8217;ve done much worse (I have a friend who told me he once did a 27 hour a day). However, it&#8217;s all left me a little worn out. However, I&#8217;ve still kept this site in my thoughts.</p>
<p>One behind the scenes thing I decided to look into was web app versioning. Sometimes I want to make a small update a program like <a href="http://patorjk.com/software/taag/">Text Ascii Art Generator (TAAG)</a>, where I might need to change 3 or 4 files, yet if the user has certain files cached, the mish-mash of certain new and old files could cause the program not to work. There may be some obvious way of doing versioning that I&#8217;m just not aware of, but its something that&#8217;s bugged me for a while. I had been getting around this issue by naming the files I wanted to update something different (ex: font-settings-v1.htm became font-settings-v2.htm, etc), however, this seemed a rather messy way of doing it. </p>
<p>Recently I decided to put the whole app except for its index.htm file under a directory representing its version, and having the index.htm point to the sub-directories under the latest version. So the apps contents would be placed in a structure like this:</p>
<p>patorjk.com/software/taag/1.0.0/pages/ &#8211; Pages for the app<br />
patorjk.com/software/taag/1.0.0/css/ &#8211; CSS files<br />
patorjk.com/software/taag/1.0.0/scripts/ &#8211; Scripts<br />
patorjk.com/software/taag/ &#8211; Where the index.htm file would go</p>
<p>This is nice because it allows me to go back in time if I screw something up. For example, if I decided I didn&#8217;t like version 1.0.1 of the app, I could go back to version 1.0.0 by just changing the index.htm file. This method also prevents any kind of awkward file combination due to cached files. However, it&#8217;s down sides are that I have to upload a whole new version of the app every time I update and I need to make sure users aren&#8217;t linking to or bookmarking pages underneath the version sub-folder. The app has to be set up so that the version folder is invisible &#8211; everything has to happen through the page at the base directory. This is so search engines wont index every single little version of the app.</p>
<p>So far this system seems to work pretty well, however, if anyone has any suggestions let me know.</p>
<p>In the weeks to come&#8230;</p>
<p>I imagine my free time to be kind of scarce for a while, but I have some ideas I want to work on, so updates will keep coming, but probably in a more sporadic manner.</p>
]]></content:encoded>
			<wfw:commentRss>http://patorjk.com/blog/2009/06/17/web-app-versioning/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Two Years Since The Relaunch&#8230;</title>
		<link>http://patorjk.com/blog/2009/03/21/two-years-since-the-relaunch/</link>
		<comments>http://patorjk.com/blog/2009/03/21/two-years-since-the-relaunch/#comments</comments>
		<pubDate>Sat, 21 Mar 2009 05:22:10 +0000</pubDate>
		<dc:creator>patorjk</dc:creator>
				<category><![CDATA[Introspective]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://patorjk.com/blog/?p=315</guid>
		<description><![CDATA[As of March 21st, it&#8217;s officially been two years since I decided to relaunch this website. On the opening day there wasn&#8217;t any hype and the site had been down for 2 months &#8211; and before that, I think I&#8217;d only updated twice in the previous two years. Plus, on this new day, all I [...]]]></description>
			<content:encoded><![CDATA[<p>As of March 21st, it&#8217;s officially been two years since I decided to relaunch this website. On the opening day there wasn&#8217;t any hype and the site had been down for 2 months &#8211; and before that, I think I&#8217;d only updated twice in the previous two years. Plus, on this new day, all I had up was a message saying I&#8217;d be back. I couldn&#8217;t post up anything because my previous host had deleted all of my content and my hard drive had just recently crashed, taking with it everything I had saved. Other than being a lesson in routinely backing up files, this gave me a chance to start fresh.<div class="wp-caption alignright" style="width: 260px"><img alt="This site, shortly before being deleted" src="http://patorjk.com/images/patorjk_online_2006.png" title="This site, shortly before being deleted" width="250" height="133" /><p class="wp-caption-text">This site, shortly before being deleted</p></div></p>
<p>It&#8217;s been two years and I think this site is currently as successful as its ever been. I don&#8217;t have a community like I used to, but I do have a decent amount of traffic and links coming in. The site, as a whole, currently gets around 2,700 visitors a day. So I feel good that I&#8217;ve been able to come back with something that people (hopefully) find useful and/or entertaining. I suppose it&#8217;s just a different site now than it used to be. I&#8217;m still steering the ship, and I&#8217;m still programming, but I&#8217;m using different tools and doing different things.</p>
<p>I think the thing I&#8217;ve enjoyed the most over the past two years is seeing the stuff I make or post up actually being used. When working in a big company, sometimes you program something up, hand it in, and then move onto your next assignment. You don&#8217;t really get to find out the experiences of the end user or what they thought of the program. You don&#8217;t know if they struggled to understand what you did or if they loved it. Well, sometimes you find out, but not always.</p>
<p>The cool thing about the web is that anyone can see the stuff you make. And to get feed back one can just google around or look at their referral logs and see where people are coming from. Sometimes this leads to some interesting info about how people are preciviing and using what you have up. Check out these Stumbleupon reviews I found of my <a href="http://patorjk.com/misc/chainletters/179waystoannoypeople.htm">179 Ways to Annoy People</a> chain letter page:</p>
<div class="wp-caption aligncenter" style="width: 430px"><img alt="Annoyed Visitors" src="http://patorjk.com/images/annoy_people_stumbleupon_reviews.png" title="Stumbleupon Reviews" width="420" height="304" /><p class="wp-caption-text">Annoyed Visitors</p></div>
<p>I think a certain number of visitors were thinking it was a real list. I thought it was obviously a joke, but you never really know what people are thinking when they come across your site, so I added in note at the top of the page letting people know it was just a joke list. Though I suppose some of the reviewers might have realized it was a joke and were just plain offended by it, however, calling a joke list &#8220;Asshole Training&#8221; seems a bit odd. [As a side note: I'm thinking of getting rid of this page entirely, since it doesn't really go with the rest of the site, though maybe I just wont link to it and let its only source of traffic be 3rd party services like search engines and Stumbleupon]</p>
<p>Another interesting observation I was able to make, this time via my stats, was that a decent number of people were going to my <a href="http://patorjk.com/software/taag/">Text Ascii Art Generator</a> program and then just exiting via one of the out going links on the About page. This seemed like a rather strange behavior so I changed the program to automatically display the message &#8220;Type Something&#8221; once the page was loaded. This ended up causing a big increase in the usage of the program. My guess is that people were visiting the app&#8217;s main page and then getting confused as to what they were looking at, so they&#8217;d just skim the page and click on one of the out going links. It&#8217;s stuff like this, as a developer, that I&#8217;d never catch unless I had access to usage stats or user feed back.</p>
<p>Anyway, for those of you who&#8217;ve decided to follow this site for whatever reason, I thank you for checking in every so often. It definitely is nice to see stuff I make being used and to get feed back on it.</p>
]]></content:encoded>
			<wfw:commentRss>http://patorjk.com/blog/2009/03/21/two-years-since-the-relaunch/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

