<?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>Index out of Bounds &#187; java</title>
	<atom:link href="http://www.jonathanfritz.ca/tag/java/feed" rel="self" type="application/rss+xml" />
	<link>http://www.jonathanfritz.ca</link>
	<description>the personal portfolio of Jonathan Fritz</description>
	<lastBuildDate>Mon, 12 Dec 2011 03:22:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Reinventing the Wheel: A Better Media Player</title>
		<link>http://www.jonathanfritz.ca/software/reinventing-the-wheel-a-better-media-player</link>
		<comments>http://www.jonathanfritz.ca/software/reinventing-the-wheel-a-better-media-player#comments</comments>
		<pubDate>Sun, 22 Nov 2009 17:42:22 +0000</pubDate>
		<dc:creator>Jon</dc:creator>
				<category><![CDATA[Music]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[blackberry]]></category>
		<category><![CDATA[cross platform]]></category>
		<category><![CDATA[flac]]></category>
		<category><![CDATA[itunes]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[juce]]></category>
		<category><![CDATA[last.fm]]></category>
		<category><![CDATA[m3u]]></category>
		<category><![CDATA[media monkey]]></category>
		<category><![CDATA[media player]]></category>
		<category><![CDATA[meta-data]]></category>
		<category><![CDATA[mp3]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[pls]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[rating]]></category>
		<category><![CDATA[sfml]]></category>
		<category><![CDATA[smart playlist]]></category>
		<category><![CDATA[Songbird]]></category>
		<category><![CDATA[streaming]]></category>
		<category><![CDATA[subsonic]]></category>
		<category><![CDATA[sync]]></category>
		<category><![CDATA[visual studio]]></category>
		<category><![CDATA[windows media player]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://www.jonathanfritz.ca/?p=157</guid>
		<description><![CDATA[As I&#8217;ve posted in the past, I am a picky media player user. I&#8217;ve tried most every free player under the sun, along with some not so free solutions and have yet to be entirely satisfied with any of the available products. To that end, I&#8217;ve started to think about the possibility of writing my [...]]]></description>
			<content:encoded><![CDATA[<p>As I&#8217;ve posted in the past, I am a picky media player user. I&#8217;ve tried most every free player under the sun, along with some not so free solutions and have yet to be entirely satisfied with any of the available products. To that end, I&#8217;ve started to think about the possibility of writing my own media player. The following are some of the considerations that I&#8217;ve been mulling over:</p>
<p><strong>Base Requirements:</strong></p>
<ul>
<li>Playback of both mp3 and flac files. Support for other formats could be added as required by me or other users, possibly with us of some sort of plugin engine.</li>
<li>Some kind of a rating system, preferably with a high level of granularity. I&#8217;m not married to the standard 5-stars idea, and may explore alternative ideas, including tagging.</li>
<li>Truly smart playlists that allow for the standard global AND/OR rules, as well as more advanced expressions that support brackets and branching logic.</li>
<li>Smart importing from existing iTunes, Songbird, Media Monkey, and Windows Media Player libraries, various playlist formats, and other types of media collections.</li>
</ul>
<p><strong>Feature Wish List:</strong></p>
<ul>
<li><em>Blackberry Sync</em>: When not at home, I listen to music from a flash card on my Blackberry Curve. The device can be filled with media by simply dumping it all on the media card, which appears as a removable drive. As previously mentioned, I listen to a mix of mp3 files and lossless flac files. When dumping these files to the Blackberry, I would like to see one thread dedicated to converting the flac files to mp3s, while another thread actually fills the device, resulting in a sync process that is not significantly slowed by media conversions. Additionally, since I have hard drive space to spare, I would like to cache some or all of the resulting mp3 files so that they don&#8217;t have to be converted again on the next sync. I would also like to see the ability to import files from the Blackberry to the library so that I could pick up media on the go and bring it home with me.</li>
<li><em>Library Export/Backup</em>: With a library of 10K+ tagged and rated songs, losing the library of meta data about my music would be a traumatic experience indeed. To solve my paranoia over losing this data, I would like to implement the export of single playlists and entire libraries to all of the major playlist formats, as well as to a structured XML document, similar to the one that iTunes maintains. Some kind of automated backup feature like the one that iTunes has would also be nice.</li>
<li><em>Online Integration:</em> I currently report all of my song plays to last.fm, which is an excellent resource for discovering new music. I would like my media player to link in with last.fm and other online resources, but am also open to developing my own online resource that lets users to easily compare and organize their collections, correct their meta data, and actively discover new music that other users have rated.</li>
<li><em>Library Sharing/Streaming:</em> We run a large network with lots of computers, and I&#8217;d like the ability to listen to my music from anywhere in the house. I really like the work that <a href="http://subsonic.sourceforge.net/" target="_blank">Subsonic</a> has done in this area, and hope to implement some or all of it&#8217;s features, while at the same time linking it into my database so that I can see my playlists and edit my meta data from anywhere in the house, and indeed, from anywhere in the world.</li>
<li><em>Cross-Platform and Open-Sourced:</em> Given all of my recent experience with Debian Linux, I&#8217;d like to see my media platform running on both Windows and Linux. This one might take me awhile to accomplish, but is definitely a goal of mine, given that I am now a confirmed Linux user who still keeps a couple of Windows platforms lying around.</li>
</ul>
<p><strong>Implementation:</strong></p>
<p>Of course, with all of these goals in mind, the next step is to consider which platform I&#8217;d like to build on. This basically comes down to a number of choices, some cross-platform, some not:</p>
<ul>
<li><em>Visual Studio .NET:</em> My development IDE of choice, Visual Studio provides extremely quick GUI creation and a great number of useful libraries that cut out a lot of the nitty gritty time consuming base code necessary for a project as large as a media player. Additionally, the Windows Media Player control allows for drop-in playback of media, and I have a ton of example code lying around that implements most of the features listed above. Unfortunately, while .NET 2.0 is supported on Linux under the Mono platform, I don&#8217;t know how far that support goes in terms of media management and playback.</li>
<li> <em><a href="http://www.sfml-dev.org/index.php" target="_blank">SFML</a>:</em> The Simple Fast Media Library is available as libraries that are pre-compiled to run on Windows, Linux, and Mac, with support for Visual Studio, C/C++, Python, and Ruby. It includes packages for windowing, graphics, networking, and most importantly, audio capture and playback. This is a definite contender as it is open source, meaning that I could build the libraries directly into my code, and simply recompile for different platforms. Of course, the downside is that I&#8217;ll have to code in C++, and without any kind of graphical interface builder.</li>
<li><em><a href="http://www.rawmaterialsoftware.com/juce.php" target="_blank">Juce</a>:</em> Jules Utility Class Extensions is like a more featured version of SFML that provides packages for just about every conceivable task, including some serious audio libraries that support all kinds of playback, effects, and hardware accelerated features. In addition, it does audio CD reading and writing out of the box on Mac and PC platforms. If I were to strike out from Visual Studio, this would probably be my library of choice, as it can do nearly everything that VS can do, but is fully open sourced and supported on just about every available platform.</li>
<li><em>Java</em>: I have no idea how realistic this idea is. I do know that in the past, I&#8217;ve created Java apps that can play both wav and mp3 files, and stream those files over a network connection. That said, as much as I enjoy coding in Java, it is widely regarded as being slow and clunky &#8211; not exactly traits that I&#8217;d like associated with a media player that will be running all day. On the other hand, Java is not C/C++ (a huge bonus as far as I&#8217;m concerned), is fully object oriented, has decent audio support, and makes networking extremely easy. That said, programming GUI&#8217;s of any kind of complexity in Java is not a task to be taken on lightly.</li>
</ul>
<p>Well, that about sums it up. This project is definitely something that I intend to undertake in the coming months, and until then, I&#8217;ll keep thinking about my requirements and what library I&#8217;d like to use to implement it. If anybody else has experience with some useful audio libraries that they&#8217;d like to share, please do so in the comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jonathanfritz.ca/software/reinventing-the-wheel-a-better-media-player/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Of iPhones, Blackberries, and Opera Mini</title>
		<link>http://www.jonathanfritz.ca/software/of-iphones-blackberries-and-opera-mini</link>
		<comments>http://www.jonathanfritz.ca/software/of-iphones-blackberries-and-opera-mini#comments</comments>
		<pubDate>Sun, 23 Aug 2009 01:24:35 +0000</pubDate>
		<dc:creator>Jon</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[2G]]></category>
		<category><![CDATA[3G]]></category>
		<category><![CDATA[8310]]></category>
		<category><![CDATA[blackberry]]></category>
		<category><![CDATA[curve]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[opera mini]]></category>
		<category><![CDATA[rendering]]></category>
		<category><![CDATA[rogers]]></category>
		<category><![CDATA[safari]]></category>
		<category><![CDATA[system keys]]></category>
		<category><![CDATA[web browser]]></category>
		<category><![CDATA[webkit]]></category>
		<category><![CDATA[WiFi]]></category>

		<guid isPermaLink="false">http://jonathanfritz.ca/?p=118</guid>
		<description><![CDATA[A good friend of mine recently picked up an iPhone 3G, and I have to say that it is an absolutely gorgeous device. I&#8217;ve been a smart phone user since picking up a Blackberry Curve 8310 about a year ago, and would never even consider returning to a &#8216;normal&#8217; phone. While I love my Blackberry, [...]]]></description>
			<content:encoded><![CDATA[<p>A good friend of mine recently picked up an <a href="http://en.wikipedia.org/wiki/Iphone" target="_blank">iPhone 3G</a>, and I have to say that it is an absolutely gorgeous device. I&#8217;ve been a smart phone user since picking up a <a href="http://reviews.cnet.com/smartphones/rim-blackberry-curve-8310/4505-6452_7-32693541.html?tag=prod.txt.1" target="_blank">Blackberry Curve 8310</a> about a year ago, and would never even consider returning to a &#8216;normal&#8217; phone. While I love my Blackberry, but I must admit that the iPhone really ups the ante in a couple of respects.</p>
<p>For me, the most obvious difference in the two phones is the web browsing experience. The iPhone runs <a href="http://www.apple.com/safari/" target="_blank">Safari</a>, built on top of <a href="http://webkit.org/" target="_blank">Webkit</a>, and pages actually look and act like the real thing. The Blackberry, on the other hand, uses a proprietary browser built on Java (like everything else on the platform), and provides a distinctly last-generation experience. While his pages look like the real thing, mine are often butchered, missing functionality, and hard to read.</p>
<p>Wanting an iPhone but not willing to pay $700 for the device, and being limited by rumours of Roger&#8217;s new 2 year minimum hardware upgrade policy, I decided to take a shot at improving my mobile experience with Opera Mini for the Blackberry instead. I had heard excellent things about this app from a friend, and while Opera only claims <a href="http://www.w3schools.com/browsers/browsers_stats.asp" target="_blank">about 2% of the browser market</a>, I&#8217;ve read some excellent reviews, and encountered a few rabid fans.</p>
<p>After <a href="http://www.opera.com/mini/" target="_blank">downloading</a> and installing the browser, I was immediately greeted by the best web experience that I&#8217;ve ever had on a mobile device (short of the iPhone of course). Pages render beautifully, Javascript runs fast, and the entire page is displayed on load. You can choose the section of the page that you&#8217;re interested in, and the browser zooms in to an appropriate size for reading. While browsing the page, each link is highlighted so that you can easily see where they are, and the view automatically shifts and resizes so that the entirety of the current paragraph is in view. The user can choose to download low, medium, or high quality copies of images depending on the speed of their connection (I chose low because my phone does not support 3G or WiFi), so even image-heavy pages look great while loading fast.</p>
<p>While using the browser, the idea that gets into your head is that it was designed by people who had actually used mobile browsers for a long period of time, and thought really hard about features that made sense on a low-bandwidth connection with a smallish screen. As an example, I often bookmark RSS feeds from sites that I like to follow, because it&#8217;s faster to browse the headlines and then click through to interesting stories than to load up each page individually on my 2G connection. Opera Mini places a link to a listing of all RSS feeds available from a particular site in the top corner of every page, making it fast and easy to add new pages to my bookmarks list.</p>
<p>The only complaint that I have so far about this program is that it seems to eat the keypress events from my system keys, meaning that I can&#8217;t raise or lower the volume or pause my music while simultaneously browsing the web. No matter, as a quick tap on the end key minimizes the app, after which the keys work as expected.</p>
<p>All in all, I am incredibly impressed with this application and highly reccomend it to anybody looking to add a little love to their mobile browsing experience without shelling out for a steve-phone just yet.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jonathanfritz.ca/software/of-iphones-blackberries-and-opera-mini/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Areca: The Open Sourced Backup Solution</title>
		<link>http://www.jonathanfritz.ca/software/areca-the-open-sourced-backup-solution</link>
		<comments>http://www.jonathanfritz.ca/software/areca-the-open-sourced-backup-solution#comments</comments>
		<pubDate>Tue, 20 Jan 2009 05:40:26 +0000</pubDate>
		<dc:creator>Jon</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[areca]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[backupdirectorycleanup]]></category>
		<category><![CDATA[batch file]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[hash verifier]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[local drive]]></category>
		<category><![CDATA[network drive]]></category>
		<category><![CDATA[TrueCrypt]]></category>
		<category><![CDATA[tyler burton]]></category>
		<category><![CDATA[windows vista]]></category>
		<category><![CDATA[windows xp]]></category>

		<guid isPermaLink="false">http://jonathanfritz.ca/?p=70</guid>
		<description><![CDATA[Readers will recall the issues that I&#8217;d had some time ago in trying to force Windows Backup to play ball with an external hard drive encrypted by TrueCrypt. For some reason or another, Windows Backup refused to recognize the mounted drive as a valid backup location. One reader recommended that I try Acronis True Image [...]]]></description>
			<content:encoded><![CDATA[<p>Readers will recall <a href="http://www.jonathanfritz.ca/software/windows-backup-doesnt-play-nicely-with-truecrypt" target="_blank">the issues that I&#8217;d had some time ago</a> in trying to force Windows Backup to play ball with an external hard drive encrypted by TrueCrypt. For some reason or another, Windows Backup refused to recognize the mounted drive as a valid backup location. One reader recommended that I try Acronis True Image out. Seeing as I like free stuff, I&#8217;ve found a free solution that solves the problem entirely.</p>
<p>Now it should be said from the outset that this process is a little bit ugly and a tad long winded, but that it does a really swell job and is full of opportunities to improve upon and to customize it for your particular situation.</p>
<p>Read on for the full tutorial &#8211; now with pretty pictures!<br />
<span id="more-70"></span></p>
<h2>What You&#8217;ll Need:</h2>
<ul>
<li>A Windows computer, prefferably running Vista (Windows is necessary, but this can be done on XP)</li>
<li>A copy of <a href="http://sourceforge.net/project/showfiles.php?group_id=171505" target="_blank">Areca Backup</a> (I grabbed the v6.1 stable release)</li>
<li>The <a href="http://java.com/en/download/manual.jsp" target="_blank">Java Runtime</a> (Optionally, you might already have this; run the Areca installer and it will automatically direct you to the correct download if necessary)</li>
<li>Some free space to put your backup, optionally encrypted and mounted with <a href="http://www.truecrypt.org/downloads.php" target="_blank">TrueCrypt</a> for extra-lucky-fun-security-time.</li>
<li>About a half hour of free time</li>
</ul>
<h2>Setting Up Areca:</h2>
<p>Lets begin by opening up Areca. This utility will allow you to easily create scripted backup events to any location on your machine. We are going to use it to create a couple of these batch scripts and then use Windows Task Scheduler to automatically execute them on a daily basis.</p>
<p>We need to start by creating a workspace. Click the <strong>Workspace</strong> menu and select <strong>Open Workspace</strong>. Choose some folder that you aren&#8217;t going to delete where Areca can store it&#8217;s configuration files. I chose <strong>C:\Users\Jonathan\Documents\Areca\</strong> for mine.<br />
<a href="http://www.jonathanfritz.ca/files/areca/areca_scr2.jpg"><img class="alignleft" title="Areca2" src="http://www.jonathanfritz.ca/files/areca/areca_scr2.jpg" alt="" width="220" height="244" /></a></p>
<p>Next, we need to create a backup group. Click the <strong>Edit</strong> menu and select <strong>New Group</strong>. Enter a title and description (optional) for your group and hit Save.<br />
<a href="http://www.jonathanfritz.ca/files/areca/areca_scr3.jpg"><img class="alignright" title="Areca3" src="http://www.jonathanfritz.ca/files/areca/areca_scr3.jpg" alt="" width="250" height="166" /></a></p>
<p>Now, you&#8217;ll see that group you just created has appeared in the right hand panel of the Areca main screen.</p>
<p>Right click on it and select <strong>New Target </strong>from the context menu. This brings up the <strong>Target Edition</strong> dialogue box, where we define where and how our backup should take place. Give the target a name, make sure that <strong>Local Repository</strong> is selected, and hit the <strong>Browse</strong> button.</p>
<p>The <strong>Local Repository </strong>is where you want your backups to be saved. Mine are being saved to an external hard drive that I&#8217;ve encrypted with <a href="http://www.truecrypt.org/downloads.php" target="_blank">TrueCrypt</a>. Ideally, you want to put your backups on a different physical disk than the one that you work off of every day. This way, if your disk crashes, gets a virus, or gets otherwise corrupted, your backups should not be affected. You can choose a hard drive that you have installed in your machine, an external drive plugged in via USB or Firewire, or a network drive that is shared from another machine in your house.</p>
<p>Finally, ensure that the Storage Mode is set to Standard. At this point, your screen should look something like this:<br />
<a href="http://www.jonathanfritz.ca/files/areca/areca_scr4.jpg"><img class="alignleft" title="Areca4" src="http://www.jonathanfritz.ca/files/areca/areca_scr4.jpg" alt="" width="278" height="181" /></a>Select <strong>Sources</strong> from the left side panel of the <strong>Target Edition</strong> dialogue box. This where you want to add all of the files and folders that you would like to backup.</p>
<p>When you hit the <strong>Add</strong> button, Another box pops up that gives you the option to add either a <strong>Directory</strong> or a <strong>File</strong>. If you want to backup an entire Folder, like for example <strong>C:\Users\Jonathan\Music</strong>, then choose <strong>Directory</strong>. If instead, you want to backup a specific file, like <strong>C:\Users\Jonathan\Documents\Secret Spaghetti Sauce Recipe.txt</strong>, then choose <strong>File</strong>. After selecting the file or folder that you want to backup, hit the <strong>Save</strong> button to add that file or folder to the backup set. Repeat for as many items as you would like to have backed up.</p>
<p>One note to make here is that these backup folders are recursive. This means that if you add the folder <strong>C:\Users\Jonathan\Documents</strong> to your backup set, all files and folders within that one are also automatically included in your backup. So, if you are a normal user who doesn&#8217;t have a lot of large files like video or music files lying around, adding the folder <strong>C:\Users\YourName\</strong> <em>(Vista) </em>or <strong>C:\Documents and Settings\YourName\</strong> <em>(WinXP)</em> to the backup set should ensure that all of your important files are backed up.</p>
<p>For reference, my backup set looks something like this:<br />
<a href="http://www.jonathanfritz.ca/files/areca/areca_scr5.jpg"><img class="alignleft" title="Areca5" src="http://www.jonathanfritz.ca/files/areca/areca_scr5.jpg" alt="" width="278" height="182" /></a>As you can see, I have included a mix of folders and files. If you find yourself adding more than 10 files to the backup set, you should probably consider reorganizing your documents folder before continuing. The worst thing in the world is to restore your files from a backup set, only to realize that you forgot that one really important file.</p>
<p>Ok, just two more settings and we can get on to the fun stuff.<br />
Select <strong>Compression</strong> from the left side panel of the <strong>Target Edition</strong> dialogue box. In this window, we just want make sure that the compression mode is set to <strong>Zip 64</strong> and that the <strong>Add .zip Extension to Filenames</strong> box at the bottom is checked. This will make sure that if for whatever reason you want to restore your files without using Areca, you can do so with any zip utility, and that your zip files can grow to be more than 4GB in size (in case you have media in there). Finally, select <strong>Description </strong>from the side panel, and type in a description of this backup set. Mine just says &#8220;My Backup.&#8221; Alright, now you can hit the <strong>Save </strong>button.</p>
<p>At this point, if you would like to, you can repeat the above instructions to make another backup set for awesome customizability action. You could, for example, create one backup that runs just your normal small files daily, and another set that backs up your large music and video files just once a week. This can be a time and space saver in your backup location, while still making sure that the most recent copy of all your important files are backed up.</p>
<h2>Makin&#8217; Scripts:</h2>
<p>So we&#8217;ve created a workspace, a group, a backup set, and defined what files should be put in that backup set. This is where Areca ceases to be useful and we turn to Windows Task Scheduler to do our dirty work. We are going to use Areca to create two scripts that will perform <strong>full </strong>and <strong>differential </strong>backups respectively, and then use Windows Task Scheduler to schedule those scripts to run when we arent using the computer. This lets us automate the backup process so that we (almost) don&#8217;t have to worry about it until your hard drive chews on a brick.</p>
<p>Back in Areca, right-click on your backup set, and choose <strong>Wizards-&gt;Generate Backup Shortcut</strong> from the context menu. This dialogue lets you create the batch scripts that I just mentioned. Choose a location on your hard drive that you aren&#8217;t going to delete (I chose the same folder that I put my backup group in so that everything is in the same place), and call the first script <strong>backup_full.bat</strong>. Change the type to <strong>Full Backup</strong>, and make sure that the <strong>Scope </strong>is <strong>For the Selected Item Only</strong>. This will create a batch script that performs a full backup of your files &#8211; a copy of every byte of every file in your backup set.<br />
<a href="http://www.jonathanfritz.ca/files/areca/areca_scr6.jpg"><img class="alignleft" title="Areca6" src="http://www.jonathanfritz.ca/files/areca/areca_scr6.jpg" alt="" width="277" height="194" /></a><br />
Hit <strong>Save </strong>to get back to the main screen. Now, right-click on your backup set, and choose <strong>Wizards-&gt;Generate Backup Shortcut</strong> again to create the second script. Select the same folder as last time, but this time call the script <strong>backup_diff.bat</strong>, and change the type to <strong>Differential</strong>. Again, make sure that the <strong>Scope </strong>is set to <strong>Selected Item Only</strong>. This will create a batch script that performs a differential backup of your files by comparing their current state to that of the last full backup and only including new or changed files in the backup set.</p>
<h2>Task Scheduling Action:</h2>
<p>We are going to set up Windows Task Scheduler to run the full backup once a week, and the differential backup on the other six days of the week. This means that once a week, we will make a full copy of all of our files, and on each of the other six days of the week, we will copy only the files that have been added or changed since the last full copy. This allows us to keep the time spent on backups relatively short, while still providing the security of a good backup set. The instructions below deal with how to set up Task Scheduling on Windows Vista installations. For Windows XP instructions, see this <a href="http://support.microsoft.com/kb/308569" target="_blank">Microsoft Knowledge Base article</a>.</p>
<h3>Task Scheduling for Vista:</h3>
<p style="text-align: left;">Open up the <strong>Control Panel</strong>, click <strong>Classic View</strong> on the left side panel, and double-click on the <strong>Administrative Tools</strong> icon. In this folder, double-click on the <strong>Task Scheduler </strong>icon. This will bring up the Task Scheduler window. Open the <strong>Action</strong> menu and select <strong>Create Basic Task</strong>. In the window that appears, enter Full Backup for the name, and an optional description:</p>
<p style="text-align: center;"><a href="http://www.jonathanfritz.ca/files/areca/areca_scr8.jpg"><img class="aligncenter" title="Areca8" src="http://www.jonathanfritz.ca/files/areca/areca_scr8.jpg" alt="" width="346" height="242" /></a><br />
Click <strong>Next </strong>and choose <strong>Weekly</strong>, then click <strong>Next </strong>and set up your recursion options like this (Where the start date is today&#8217;s date):</p>
<p style="text-align: center;"><a href="http://www.jonathanfritz.ca/files/areca/areca_scr9.jpg"><img class="aligncenter" title="Areca9" src="http://www.jonathanfritz.ca/files/areca/areca_scr9.jpg" alt="" width="346" height="242" /></a><br />
Click <strong>Next</strong>, choose <strong>Start a Program</strong>, and click <strong>Next </strong>again. Now browse for the <strong>backup_full.bat</strong> file that we created earlier. Leave the <strong>Arguments </strong>and <strong>Start In</strong> boxes blank. The form should look like this:<br />
<a href="http://www.jonathanfritz.ca/files/areca/areca_scr10.jpg"><img class="aligncenter" title="Areca10" src="http://www.jonathanfritz.ca/files/areca/areca_scr10.jpg" alt="" width="345" height="240" /></a><br />
Hit <strong>Next </strong>and then <strong>Finish</strong>.</p>
<p style="text-align: center;">Now we want to (almost) repeat the above process to schedule our differential backup. Open the <strong>Action</strong> menu and select <strong>Create Basic Task</strong>. In the window that appears, enter <strong>Differential Backup</strong> for the name, and an optional description:<br />
<a href="http://www.jonathanfritz.ca/files/areca/areca_scr11.jpg"><img class="aligncenter" title="Areca11" src="http://www.jonathanfritz.ca/files/areca/areca_scr11.jpg" alt="" width="349" height="244" /></a><br />
Click <strong>Next </strong>and choose <strong>Weekly</strong>, then click <strong>Next </strong>and set up your recursion options. This time, we&#8217;re scheduling our differential backup to run on every day that our full backup does not. So before, I set my full backup to run on Monday. Now, I want my differential backup to run on every other day of the week:<br />
<a href="http://www.jonathanfritz.ca/files/areca/areca_scr12.jpg"><img class="aligncenter" title="Areca12" src="http://www.jonathanfritz.ca/files/areca/areca_scr12.jpg" alt="" width="348" height="242" /></a><br />
Click <strong>Next</strong>, choose<strong> Start a Program</strong>, and click <strong>Next </strong>again. Now browse for the <strong>backup_diff.bat</strong> file that we created earlier. Leave the <strong>Arguments </strong>and <strong>Start In</strong> boxes blank. The form should look like this:<br />
<a href="http://www.jonathanfritz.ca/files/areca/areca_scr13.jpg"><img class="aligncenter" title="Areca13" src="http://www.jonathanfritz.ca/files/areca/areca_scr13.jpg" alt="" width="347" height="241" /></a><br />
Hit <strong>Next </strong>and then <strong>Finish</strong>.</p>
<p>Now, if you click on the <strong>Task Scheduler Library</strong> node underneath the <strong>Task Scheduler</strong> node on the left side panel, you will see the two tasks that you just created.</p>
<p>Congratulations! Your backup is scheduled and ready to run. If you would like to run it right away, go to the Areca folder where you saved the <strong>backup_full.bat</strong> file, and double click on it. A console window will pop up with a bunch of gross stuff inside of it. When it closes, the backup is finished.</p>
<h2>To Recap:</h2>
<p style="text-align: left;">We used Areca to create a backup set, along with two batch files:</p>
<ol>
<li><strong>backup_full.bat</strong> creates an exact copy of all files in your backup set once a week. This will be a huge zip file because it contains everything.</li>
<li><strong>backup_diff.bat</strong> creates a copy of any files that have been created or modified since the last time backup_full.bat was run. This happens on every day of the week that backup_full.bat does not run, resulting in incremental backups created throughout the week.</li>
</ol>
<h2>Won&#8217;t This Create an Awful lot of Big Files?</h2>
<p style="text-align: left;">In a word, yes. Neither of these scripts will ever clean up their messes &#8211; so you&#8217;ll eventually have backups years old in your backup folder. This is no big deal if you&#8217;re backing up Word documents or your family photo albums, but if you&#8217;re backup up music or video files, you may fill up your destination drive within a matter of weeks.</p>
<p>If this is the case, you should either manually delete old backups once in awhile, or use this handy tool that deletes zip files that were created more than three weeks ago in your backup directory (Requires Microsoft .NET Framework Runtime):</p>
<h3>Download: Backup Directory Cleanup Tool</h3>
<p style="text-align: left;">Compiled Executable: <a href="http://www.jonathanfritz.ca/files/areca/BackupDirectoryCleanup.exe" target="_self">[BackupDirectoryCleanup.exe]</a> (28K)<br />
<strong>MD5:</strong> E3B0F840BC68D73A160D0551971188DE<br />
<strong>SHA1: </strong>37D8B1F3F652EDC01685EC5AE43B5F9F1C10B6AB</p>
<p>Source Code: <a href="http://www.jonathanfritz.ca/files/areca/BackupDirectoryCleanupSource.zip" target="_self">[BackupDirectoryCleanupSource.zip]</a> (46K)<br />
<strong>MD5:</strong> 6F8E4691D2B2B554154C90E757B3BD37<br />
<strong>SHA1:</strong> EFD815F867D3319CF6779F10691F0DC417DA50E2</p>
<p style="text-align: left;">I suggest using <a href="http://www.tylerburton.ca/2009/09/hash-verifier/" target="_blank">Tyler Burton&#8217;s Hash Verifier</a> tool to ensure the integrity of this download.</p>
<p style="text-align: center;">To add this application to our tasks, download it to a location where it won&#8217;t be deleted and open up the <strong>Control Panel</strong>. Click <strong>Classic View</strong> on the left side panel, and double-click on the <strong>Administrative Tools</strong> icon. In this folder, double-click on the <strong>Task Scheduler</strong> icon. This will bring up the <strong>Task Scheduler</strong> window. Open the <strong>Action</strong> menu and select <strong>Create Basic Task</strong>. In the window that appears, enter <strong>Directory Cleanup</strong> for the name, and an optional description. Click <strong>Next </strong>and choose <strong>Monthly</strong>, then click <strong>Next </strong>and set up your recursion options like this (Where the start date is today&#8217;s date):<br />
<a href="http://www.jonathanfritz.ca/files/areca/areca_scr15.jpg"><img class="aligncenter" title="Areca15" src="http://www.jonathanfritz.ca/files/areca/areca_scr15.jpg" alt="" width="350" height="247" /></a><br />
As you can see, I chose to run the application every three months on the first day of the month. That should be sufficient to prevent too much clutter on your backup drive, but you can run it more often if you like. Click <strong>Next</strong>, choose <strong>Start a Program</strong>, and click <strong>Next </strong>again. Now browse for the <strong>BackupDirectoryCleanup.exe</strong> file that we downloaded earlier. In the <strong>Arguments </strong>text box, enter <strong>-p path<em> </em></strong><em><strong> </strong></em>where <strong>path </strong>is the full path to your backup folder. In my case, it is <strong>E:\</strong> because I&#8217;m backing up to an external drive:<br />
<a href="http://www.jonathanfritz.ca/files/areca/areca_scr16.jpg"><img class="aligncenter" title="Areca16" src="http://www.jonathanfritz.ca/files/areca/areca_scr16.jpg" alt="" width="349" height="241" /></a><br />
Click <strong>Next </strong>and then <strong>Finish</strong>. Note that this application may encounter some serious problems with permissions. It does request information about your file system, and has the capacity to delete files. If windows moans, either figure out how to launch it as an administrator (that&#8217;s in the advanced settings for a task), or clean out your directory manually, because this article is already way too long to discuss permissions as well.</p>
<h2 style="text-align: left;">In Conclusion:</h2>
<p style="text-align: left;">Backing up your files is something that we should all take just a little more seriously. In my setup, where all of my computers are protected with full disk encryption from TrueCrypt, having an unencrypted backup lying around somewhere pokes a big hole in my security policy.</p>
<p style="text-align: left;">While this solution may be a little messy and requires you to fool with batch files and control panel items, it is fairly straightforward and results in a simple, robust, and reliable backup system that is secure and easy to set up and maintain. I hope that this article helped you solve your backup issues. May your hard drive not suck a lemon,</p>
<p style="text-align: left;">Jonathan</p>
<p style="text-align: left;">
<p style="text-align: left;"><strong>Edit: </strong>Fixed a couple links, corrected some grammar, and cursed WordPress for failing to format my stuff properly.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jonathanfritz.ca/software/areca-the-open-sourced-backup-solution/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

