<?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>Itsacon&#039;s Log</title>
	<atom:link href="http://www.itsacon.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.itsacon.net</link>
	<description>Where I vent my cupboards and my anger</description>
	<lastBuildDate>Mon, 06 May 2013 10:50:09 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Using GMirror as a rollback tool.</title>
		<link>http://www.itsacon.net/computers/unix/using-gmirror-as-a-rollback-tool/</link>
		<comments>http://www.itsacon.net/computers/unix/using-gmirror-as-a-rollback-tool/#comments</comments>
		<pubDate>Mon, 06 May 2013 10:50:09 +0000</pubDate>
		<dc:creator>Itsacon</dc:creator>
				<category><![CDATA[Unix]]></category>

		<guid isPermaLink="false">http://www.itsacon.net/?p=560</guid>
		<description><![CDATA[<p>On Thunderflare, which predates affordable solid-state drives, the OS is run from two small laptop drives in RAID 1. The RAID 1 is there so that if one of them crashes, I won’t have to do a complete reinstall. I’m lazy, sue me. Besides, a reinstall would take a lot of time, while setting up [...]</p><p>The post <a href="http://www.itsacon.net/computers/unix/using-gmirror-as-a-rollback-tool/">Using GMirror as a rollback tool.</a> appeared first on <a href="http://www.itsacon.net">Itsacon&#039;s Log</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>On Thunderflare, which predates affordable solid-state drives, the OS is run from two small laptop drives in RAID 1. The RAID 1 is there so that if one of them crashes, I won’t have to do a complete reinstall. I’m lazy, sue me. Besides, a reinstall would take a lot of time, while setting up the mirror is a few minutes work, so the time investment <a href="http://www.xkcd.com/1205/">is validated</a>, in my opinion.</p>
<p>To run the mirror, I’m using GMirror, a part of the GEOM kit that does most disk operations on FreeBSD. Setting one up is trivial. Let’s assume the current system disk is ada0 <sup>[<a href="#using-gmirror-as-a-rollback-tool-n-1" class="footnoted" id="to-using-gmirror-as-a-rollback-tool-n-1">1</a>]</sup>:<br />
Add this line to /boot/loader.conf:</p>
<pre>geom_mirror_load="YES"</pre>
<p>On the command line, type:</p>
<pre># sysctl kern.geom.debugflags=16
# gmirror label -v -b round-robin gm0 /dev/ada0
# gmirror insert gm0 /dev/ada1</pre>
<p>The first line allows us to make changes to mounted drives. The second line creates a mirror called gm0, with disk ada0 as basis, and round-robin scheduling to determine which disk is read from. The last line adds ad1 as a second disk, since a one-disk mirror is pretty useless.<br />
To make sure FreeBSD uses the mirror, and not the individual disks, change /etc/fstab to mount the mirror. To do this, replace each instance of /dev/ada0 with /dev/mirror/gm0. Since the fstab will generally refer to slices, not disks, you’ll have to replace just the /dev/ada0 part. An example:<br />
If /etc/fstab reads:</p>
<pre>/dev/ada0s1a  /     ufs   rw  1  1
/dev/ada0s1b  none  swap  sw  0  0</pre>
<p>You replace that with:</p>
<pre>/dev/mirror/gm0s1a  /     ufs   rw  1  1
/dev/mirror/gm0s1b  none  swap  sw  0  0</pre>
<p>After inserting the second disk, you’ll have to wait a bit for the disks to synchronize, the progress of which you can watch by typing:</p>
<pre>gmirror status</pre>
<p>After the rebuild completes, reboot the system to make sure everything works, and presto, you are running your OS on RAID 1.</p>
<h5>But what about using the mirror as a rollback tool?</h5>
<p>As I already mentioned in the title, there’s another advantage of using a mirrored setup for your system. It allows you to do a rollback when a big change (such as an operating system update) goes wrong. To do this, you disconnect one drive from the mirror before doing the update. If the update goes as planned, you simply reconnect the disk, let the mirror rebuild, and you’re done. If it fails, you swap the connectors of the two drives, boot from the pre-update state, then create a new mirror and add the other disk to it.</p>
<p>Here’s how it works:</p>
<p>Disconnect the secondary disk from the mirror:</p>
<pre># gmirror remove gm0 ada1</pre>
<p>Then, if the update succeeds, you simply re-add the ada1 back into the mirror:</p>
<pre># gmirror insert gm0 ada1</pre>
<p>If the update fails, the process is slightly more complex. Easiest and most reliable is to physically swap the two drives. Mine are still running on old-fashioned PATA, so I just swap the master/slave jumpers, but for SATA drives you swap the cables.</p>
<p>Boot the machine. You’ll get an error that device gm0 can’t be found. It should ask you what slice to boot from, tell it to boot from /dev/ada0s1a.<br />
This will give you access to your root folder, which is all you should need right now. By default however, it is mounted in read-only mode, so you’ll have to remount root for writing:</p>
<pre># mount -o rw /</pre>
<p>After that, wipe the old mirror metadata from what is now /dev/ada1:</p>
<pre># gmirror remove gm0 ada1</pre>
<p>You can then recreate the mirror as listed earlier in this article.</p>
<p>If you are fairly sure your update is going to fail, you can make your life easier by prepping the backup disk after disconnecting it from the mirror. To do this, mount /dev/ada1s1a in a location of your choice, and edit the /etc/fstab located on that drive to remove the references to gm0. Basically the reverse of what is done in step three when creating the mirror (see above). The advantage of this is that the system should boot successfully after you swap the drives around. The disadvantage is that you will have to edit /etc/fstab twice, giving more opportunities for mistakes.</p>

<ol class="footnotes">
	<li class="footnote" id="using-gmirror-as-a-rollback-tool-n-1"><strong><sup>[1]</sup></strong> Starting this post, I’ll be using the CAM-compatible device names in my FreeBSD posts, as used in FreeBSD 9.1 and newer. If you’re using an older version, replace each reference to adaX with adX. <a class="note-return" href="#to-using-gmirror-as-a-rollback-tool-n-1">↩</a></li></ol>
<p>The post <a href="http://www.itsacon.net/computers/unix/using-gmirror-as-a-rollback-tool/">Using GMirror as a rollback tool.</a> appeared first on <a href="http://www.itsacon.net">Itsacon&#039;s Log</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.itsacon.net/computers/unix/using-gmirror-as-a-rollback-tool/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Machine army and Penelope timeline</title>
		<link>http://www.itsacon.net/computers/hardware/machine-army-and-penelope-timeline/</link>
		<comments>http://www.itsacon.net/computers/hardware/machine-army-and-penelope-timeline/#comments</comments>
		<pubDate>Tue, 09 Apr 2013 10:29:11 +0000</pubDate>
		<dc:creator>Itsacon</dc:creator>
				<category><![CDATA[Hardware]]></category>

		<guid isPermaLink="false">http://www.itsacon.net/?p=429</guid>
		<description><![CDATA[<p>I’ve updated the Machine Army page with a list of my current and past machines. I’ll expand this page further as I have the time. I’ve also published the full upgrade timeline for Penelope, my main workstation.</p><p>The post <a href="http://www.itsacon.net/computers/hardware/machine-army-and-penelope-timeline/">Machine army and Penelope timeline</a> appeared first on <a href="http://www.itsacon.net">Itsacon&#039;s Log</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>I’ve updated the <a href="http://www.itsacon.net/machine-army/">Machine Army</a> page with a list of my current and past machines. I’ll expand this page further as I have the time. I’ve also published the full upgrade timeline for <a href="http://www.itsacon.net/machine-army/penelope/">Penelope</a>, my main workstation.</p>

<p>The post <a href="http://www.itsacon.net/computers/hardware/machine-army-and-penelope-timeline/">Machine army and Penelope timeline</a> appeared first on <a href="http://www.itsacon.net">Itsacon&#039;s Log</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.itsacon.net/computers/hardware/machine-army-and-penelope-timeline/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SSH connections without a password</title>
		<link>http://www.itsacon.net/computers/unix/ssh-connections-without-a-password/</link>
		<comments>http://www.itsacon.net/computers/unix/ssh-connections-without-a-password/#comments</comments>
		<pubDate>Mon, 01 Apr 2013 09:13:16 +0000</pubDate>
		<dc:creator>Itsacon</dc:creator>
				<category><![CDATA[Unix]]></category>

		<guid isPermaLink="false">http://www.itsacon.net/?p=515</guid>
		<description><![CDATA[<p>One of the basic ways of connecting to a FreeBSD server is through a secure shell, commonly referred to as ssh. The most basic usage of an ssh connection is to give you a full-fledged command prompt on the remote machine. However, the ssh connection can also be used as a tunnel for countless other [...]</p><p>The post <a href="http://www.itsacon.net/computers/unix/ssh-connections-without-a-password/">SSH connections without a password</a> appeared first on <a href="http://www.itsacon.net">Itsacon&#039;s Log</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>One of the basic ways of connecting to a FreeBSD server is through a secure shell, commonly referred to as ssh.</p>
<p>The most basic usage of an ssh connection is to give you a full-fledged command prompt on the remote machine. However, the ssh connection can also be used as a tunnel for countless other things, such as file transfer, rsync, or even accessing systems on the network of the remote machine, by tunneling ports from the ssh server to the local machine.</p>
<p>By default, any ssh client requires the password of the remote account. However, by setting up a public/private key pair and storing the public key on the server, any client in possession of the private key can connect automatically. This is especially useful if the connection is to be used by an automated script, such as a backup service. In this post, I’ll explain how to set up such a connection between two FreeBSD machines.</p>
<h5>Creating the public/private key pair</h5>
<p>This is easy. Go to the home directory of the account from which you want to connect to the remote machine, and type:</p>
<pre>[root@thunderflare ~]# ssh-keygen</pre>
<p>It will prompt you for a filename and a passphrase. The filename can be anything you want, but make sure to put it in the ~/.ssh/ directory. The passphrase should remain blank (otherwise you’ll still need a password).</p>
<p>You should now have a {keyname} and {keyname}.pub file. The .pub file is the one you’ll store on remote machines, while the other key (the private one) should be kept securely on that machine. Make sure the ~/.ssh directory only has read permissions for the user, with all other permissions at zero.</p>
<h5>Storing the public key on the remote machine</h5>
<p>We now need to store the public key on the remote machine and make sure that machine knows to accept connections using that key.</p>
<pre>[root@thunderflare ~]# cat ~/.ssh/{keyname}.pub \
| ssh remoteuser@remote.example.com \
'cat >> ~/.ssh/authorized_keys'</pre>
<p>This is a composite command that pipes the contents of the public key file through an ssh connection and appends it to the authorized_keys file on the remote machine. The authorized_keys file is where the remote ssh server looks to see if the user trying to connect has a public key available.</p>
<p>However, right now, everyone in possession of your private key is able to connect using that key. If you know that you’ll only be connecting from a single IP address (for example, if you’re using this in an automated script), you can increase security by telling the remote server to only accept connections using that key from certain addresses. To do this, first connect to the remote server, this should now be possible by just typing:</p>
<pre>[root@thunderflare ~]# ssh remoteuser@remote.example.com</pre>
<p>Now edit the ~/.ssh/authorized_keys file using your editor of choice. If there are multiple keys in the file, find the one that ends with the username and servername from which you created the public key. On the <em>beginning</em> of that line, add</p>
<pre>from="{IP_ADDRESS}" ssh-rsa ...etc</pre>
<p>Where {IP_ADDRESS} is a comma-seperated list of IP addresses that you want to connect from.</p>
<p>Save the file, close the connection, and you’re done. You can now connect free of passwords to the remote machine.</p>

<p>The post <a href="http://www.itsacon.net/computers/unix/ssh-connections-without-a-password/">SSH connections without a password</a> appeared first on <a href="http://www.itsacon.net">Itsacon&#039;s Log</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.itsacon.net/computers/unix/ssh-connections-without-a-password/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2013</title>
		<link>http://www.itsacon.net/miscellaneous/2013/</link>
		<comments>http://www.itsacon.net/miscellaneous/2013/#comments</comments>
		<pubDate>Thu, 03 Jan 2013 09:27:40 +0000</pubDate>
		<dc:creator>Itsacon</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://www.itsacon.net/?p=564</guid>
		<description><![CDATA[<p>Once again, I’d like to wish all my readers (there’s more than one, right?) a very happy new year. My resolution is to keep using this place as a drop-off for stuff I need to store outside my own head.</p><p>The post <a href="http://www.itsacon.net/miscellaneous/2013/">2013</a> appeared first on <a href="http://www.itsacon.net">Itsacon&#039;s Log</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Once again, I’d like to wish all my readers (there’s more than one, right?) a very happy new year. My resolution is to keep using this place as a drop-off for stuff I need to store outside my own head. </p>

<p>The post <a href="http://www.itsacon.net/miscellaneous/2013/">2013</a> appeared first on <a href="http://www.itsacon.net">Itsacon&#039;s Log</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.itsacon.net/miscellaneous/2013/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hitman Absolution</title>
		<link>http://www.itsacon.net/entertainment/games/hitman-absolution/</link>
		<comments>http://www.itsacon.net/entertainment/games/hitman-absolution/#comments</comments>
		<pubDate>Wed, 12 Dec 2012 15:15:41 +0000</pubDate>
		<dc:creator>Itsacon</dc:creator>
				<category><![CDATA[Games]]></category>

		<guid isPermaLink="false">http://www.itsacon.net/?p=532</guid>
		<description><![CDATA[<p>Rant power: Activated! I just finished playing Hitman Absolution, the latest installment in the Hitman series. I’ve been a big fan of the series since the beginning, and eagerly pre-ordered it when it was announced. I must say that after the first few missions, I was disappointed, but now that I’ve finished it all the [...]</p><p>The post <a href="http://www.itsacon.net/entertainment/games/hitman-absolution/">Hitman Absolution</a> appeared first on <a href="http://www.itsacon.net">Itsacon&#039;s Log</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Rant power: Activated!</p>
<p>I just finished playing Hitman Absolution, the latest installment in the Hitman series. I’ve been a big fan of the series since the beginning, and eagerly pre-ordered it when it was announced. I must say that after the first few missions, I was disappointed, but now that I’ve finished it all the way through I’ve mellowed down a bit. Let me give you the good and the bad.</p>
<p>Lets start with the positive stuff:</p>
<p>The game looks great. It should, with the engines available now, but still, it deserves mentioning.</p>
<p>I also liked the new ‘Instinct’ mechanic. Having 47 sense enemies through a wall is, while not very realistic, certainly more believable, and gives more immersion than the magic ‘Marauder’s map’ from previous games. I also liked the way they implemented hiding and sneaking, and the way you can extend the life of your disguises by acting in character. I also absolutely <em>love</em> that when you sneak around while in disguise, when you don’t have to be sneaking, guards call you out on it. “Stop sneaking around idiot, what do you think you are, a lizard?” (The generic aversion of running people, even when you’re out in the pouring rain, still mystifies me though). Disguises were also a lot more realistic than previous games.</p>
<p>It’s also nice that they’ve finally put the option back in to choose whether you want to single– or dual wield pistols you’re carrying two of. Why that was removed after the first game was always a mystery to me. Obviously, the first game was still better in that you could a) mix two <em>different</em> pistols and b) carry more than two of a single weapon (Why would you only take the ammo with you? Switching weapons is much faster than reloading), but at least we’re getting there.</p>
<p>The cinematic point shooting mechanic is nice, but not really something I’d go for in a game like this. But then, gunning down multiple enemies was never really my Hitman playstyle. I did use it a lot in the orphanage mission though. Fuck those guys.</p>
<p>Please note, from here on down, this post contains a shitload of spoilers, so if you are bugged by stuff like that, stop reading <em>now</em>.</p>
<p>Still here? Good.</p>
<p>You know what sucks about this game? The missions.</p>
<p>First there is the mission preparation. Or rather, the goddamn lack of it. When I’m a top-rate assassin, what I do <em>before</em> I go out on a job, is look at a map of the area, and decide what gear to bring. So I don’t end up overlooking a big square with my target on the other side, wishing I’d brought my sniper rifle. All the other Hitman games allowed you to pick your own equipment, but here, you’re just dropped in with nothing but a wire and your Silverballers.</p>
<p>What I <em>really</em> hated, and made me question the game after the first few missions, is the sheer goddamn overload of ‘sneak from A to B’ missions. The game is called Hitman, guys, not Sneakman. There are 20 named missions in the game, all but a few of which are split up into multiple sections. In total, there are less than 30 targets you can actually kill (not counting cutscene kills). There are many cases where you get two or three targets in a single mission, which leaves a lot of missions that are simply ‘Get there, preferably undetected’. Of course, you can do so by taking out guards, but it is made very clear by the scoring system that you shouldn’t.</p>
<p>All these ‘sneakthrough’ missions are extremely linear. There are usually only one or two paths, with the only options being killing everyone, or throwing bottles around and sneaking past everyone. That’s pretty much the only choice. The free world with tons of ways of getting the job done we saw in the previous games is replaced by a simple obstacle course. </p>
<p>The few missions where you actually get to kill people are usually better, and come a lot closer to the previous games. I really enjoyed the ‘Streets of Hope’, ‘Chinese New Years’ and the Penthouse mission, to name a few. they were large, with lots of different sections and hidden opportunities. Some are just as bad though. Operation Sledgehammer was crap, for example, and its only saving grace was the fact that you could grab an easy disguise all the way at the start, and then just run through it.</p>
<p>The worst offenders here are the Chicago missions at the start, made even worse by the hamfisted way you get forced into that waferthin storyline. I literally yelled at my screen when on the third mission, after having sneaked for three sections through a hotel full of guards, I finally get to the room with the target <em>and a cutscene takes over</em>. That in itself wouldn’t be so bad, if it weren’t for the fact <em>that in the cutscene I fail to kill a target I’m behind, who’s completely unaware of me</em>. <span class="pullquote">Stupid game, the guy has a neck like a bull, don’t use a piano wire on him! Stab him in the ear goddammit!</span></p>
<p>Of course, all this is just to set you up for a gazillion fucking missions of sneaking around police officers (which means you don’t even have the choice of shooting your way out, as shooting the cops is a surefire way of getting your score down the drain), who somehow think you committed a murder, despite the fact that they didn’t see you do it, the (fake) evidence burned up, and they have no idea who you are. This doesn’t stop them from sending every cop in the tri-state area after you though. Seriously, how the hell do they blanket all of goddamn Chicago <em>all at once</em>? Is everyone in that city employed as a police officer?</p>
<p>Then there are the silly incongruities, like when the idea behind a mission is that you’re escaping from a burning building, but you’re free to take as long as you want, since the building won’t collapse before you’ve passed a certain checkpoint. Developers, let me explain: Either the building is collapsing, or it isn’t. We’re not children, we can deal with a time limit on our missions, don’t worry. It makes it <em>more exciting</em>. (They did this twice, for fucks’ sake. At least they did this right on the rooftop mission in Blackwater).</p>
<p>Other points I disliked:</p>
<ul>
<li>Checkpoints. I know this game is also available on the Playstation, but really? Are savegames for PC users that hard to implement? We had them in, well, <em>all</em> of the previous Hitman games, didn’t we?</li>
<li>The lack of maps. Like I mentioned before, I like the fact you no longer have a magic map that shows everyone. But a simple map of the area would be nice. Especially on the larger missions. 47 carries a laptop, maybe install Google Maps on it?</li>
<li>Loss of continuity. Whenever you cross a mission boundary, you automagically lose any disguise and collected weapons you had, and are back in your suit, with nothing but a wire and your Silverballers. Except for the mission where you visit your tailor.</li>
<li>The fact that some missions can’t be done without taking down or pacifying non-targets. If you give us deduction points for doing so, don’t force us to do it! Either it’s OK to knock guards unconscious, and we don’t get penalized for it, or it’s not OK, and every mission can be done without harming anyone but the target. You got this right on previous games, why fuck it up here?</li>
<li>Not a single sniping mission? After they promoted the game with that Sniper challenge thing? Seriously?</li>
<p>Other points I <em>did</em> like:</p>
<ul>
<li>The shooting match against the cowgirl was funny, and pretty well executed.</li>
<li>The dress up as a Samurai statue option.</li>
<li>The fact that you can get bonus points for finishing 3 missions in a bathrobe. Very Arthur Dentish.</li>
<li>A lot of the NPC dialogue you can overhear is very good. I especially loved the stripper mentioning “I’m really a dude, do you see the hair on my upper lip?”, There’s also some real gems in the Blackwater rooftop scene: One of Dexter’s guards observes “Two units, one chopper. Am I the only one doing the math here?”, to which the guy taking a leak on the pedestrians below remarks that he’ll at least die with an empty bladder.</li>
</ul>
<h5>Conclusion:</h5>
<p>If you are a fan of the Hitman games, get this, play it once or twice and try to remember the good parts. I’d advise against the easy mode, by the way, the handholding is a bit too extreme. It’s what other games would call a tutorial. But for the entire game.<br />
If they took the mechanics and AI from this game, and made a metric shit-ton of good missions, you’d have one pretty awesome game. As it stands, it doesn’t even come close to earlier games, but it looks great, and the few missions that <em>are</em> good, are really good. And the story is pretty decent, all together. </p>
<p>Except for the Chicago police evasion shit. That’s just idiotic.</p>

<p>The post <a href="http://www.itsacon.net/entertainment/games/hitman-absolution/">Hitman Absolution</a> appeared first on <a href="http://www.itsacon.net">Itsacon&#039;s Log</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.itsacon.net/entertainment/games/hitman-absolution/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Expanding a ZFS pool</title>
		<link>http://www.itsacon.net/computers/unix/expanding-a-zfs-pool/</link>
		<comments>http://www.itsacon.net/computers/unix/expanding-a-zfs-pool/#comments</comments>
		<pubDate>Tue, 09 Oct 2012 08:39:31 +0000</pubDate>
		<dc:creator>Itsacon</dc:creator>
				<category><![CDATA[Unix]]></category>

		<guid isPermaLink="false">http://www.itsacon.net/?p=361</guid>
		<description><![CDATA[<p>In an earlier post, I explained how it was possible to grow a ZFS pool by replacing all disks one-by-one. In that post, I also mentioned that if you have enough spare connectors available, you can easily expand the pool by adding another array of disks. A while back, I had replaced a bunch of [...]</p><p>The post <a href="http://www.itsacon.net/computers/unix/expanding-a-zfs-pool/">Expanding a ZFS pool</a> appeared first on <a href="http://www.itsacon.net">Itsacon&#039;s Log</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>In an <a href="http://www.itsacon.net/computers/unix/growing-a-zfs-pool/">earlier post</a>, I explained how it was possible to grow a ZFS pool by replacing all disks one-by-one. In that post, I also mentioned that if you have enough spare connectors available, you can easily expand the pool by adding another array of disks.</p>
<p>A while back, I had replaced a bunch of older drives in several other computers, so I had quite a pile of different SATA drives lying around, of varying sizes. All were working, but they were nearing or past their warranty expiration<sup>[<a href="#expanding-a-zfs-pool-n-1" class="footnoted" id="to-expanding-a-zfs-pool-n-1">1</a>]</sup>. </p>
<p>My main fileserver has quite a surplus of drive connectors, so I decided to use a set of them as a simple way to increase storage space. If any of the drives would fail, I’d be just a few minutes work to swap it out for another drive from the pile. </p>
<p>here’s are the pool and the array before I started:</p>
<pre>[root@thunderflare ~]# zpool status
  pool: data
 state: ONLINE
 scrub: scrub completed after 15h35m with 0 errors on Thu Jul 28 09:39:34 2011
config:

        NAME        STATE     READ WRITE CKSUM
        data        ONLINE       0     0     0
          raidz1    ONLINE       0     0     0
            ad4     ONLINE       0     0     0
            ad6     ONLINE       0     0     0
            ad8     ONLINE       0     0     0
            ad10    ONLINE       0     0     0

errors: No known data errors

[root@thunderflare ~]# zfs list
NAME                          USED  AVAIL  REFER  MOUNTPOINT
data                         3.51T   502G  40.4K  /data</pre>
<p>The pool consists of four 1.5TB drives in raidz, giving me roughly 4 TiB of real diskspace to play with.</p>
<p>I shut down the machine and added four drives to the system: three 250 GB drives and a 500 GB drive. After rebooting the server, I gave the following command:</p>
<pre>[root@thunderflare ~]# zpool add -f data raidz /dev/ad12 /dev/ad14 /dev/ad16
 /dev/ad18</pre>
<p>After which I checked the array:</p>
<pre>[root@thunderflare ~]# zpool status
  pool: data
 state: ONLINE
 scrub: scrub completed after 15h35m with 0 errors on Thu Jul 28 09:39:34 2011
config:

        NAME        STATE     READ WRITE CKSUM
        data        ONLINE       0     0     0
          raidz1    ONLINE       0     0     0
            ad4     ONLINE       0     0     0
            ad6     ONLINE       0     0     0
            ad8     ONLINE       0     0     0
            ad10    ONLINE       0     0     0
          raidz1    ONLINE       0     0     0
            ad12    ONLINE       0     0     0
            ad14    ONLINE       0     0     0
            ad16    ONLINE       0     0     0
            ad18    ONLINE       0     0     0

errors: No known data errors

[root@thunderflare /data/multimedia]# zfs list
NAME                          USED  AVAIL  REFER  MOUNTPOINT
data                         3.51T  1.16T  40.4K  /data</pre>
<p>As you can see, the pool now consists of two raidz arrays, and the free disk space has grown by roughly 685 GiB, the sum of three 250 GB drives. Of the 500 GB drive, only 250 GB will be used, until I replace all the 250 GB drives with larger ones.</p>
<p>So there you have it, growing an array by adding disks. Just add drives, and give a single command.</p>
<p>An advantage of this contruction is that in many cases, the pool can sustain two drive failures at the same time without data loss (in those cases where the drives are from different arrays). Another advantage is that I can grow both arrays seperately, so if I need more space, I only need four bigger drives, not eight at the same time.</p>
<p>A drawback is that I lose two drives worth of storage space to parity. Personaly, this doesn’t bother me, as with an eight-drive array, I would probably have chosen raidz2 (RAID 6), and not raidz. This way, I’m more flexible in my drive sizes and upgrade steps.</p>

<ol class="footnotes">
	<li class="footnote" id="expanding-a-zfs-pool-n-1"><strong><sup>[1]</sup></strong> It is generally advisable to replace drives around the time their warranty expires (generally 3 years, nowadays), unless they’re in a redundant setup you trust, or they contain data you don’t mind losing or restoring from backups. <a class="note-return" href="#to-expanding-a-zfs-pool-n-1">↩</a></li></ol>
<p>The post <a href="http://www.itsacon.net/computers/unix/expanding-a-zfs-pool/">Expanding a ZFS pool</a> appeared first on <a href="http://www.itsacon.net">Itsacon&#039;s Log</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.itsacon.net/computers/unix/expanding-a-zfs-pool/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Instant onChange with IE checkboxes</title>
		<link>http://www.itsacon.net/computers/web-development/instant-onchange-with-ie-checkboxes/</link>
		<comments>http://www.itsacon.net/computers/web-development/instant-onchange-with-ie-checkboxes/#comments</comments>
		<pubDate>Wed, 14 Dec 2011 13:46:51 +0000</pubDate>
		<dc:creator>Itsacon</dc:creator>
				<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://www.itsacon.net/?p=387</guid>
		<description><![CDATA[<p>Browser differences are a daily fact of life for webdevelopers. It is something you either learn to deal with, or it kills you before 40. Some of these are just plain stupid, but some are simply different ways of interpreting the standard. A good example is the onChange event. This is a simple event, commonly [...]</p><p>The post <a href="http://www.itsacon.net/computers/web-development/instant-onchange-with-ie-checkboxes/">Instant onChange with IE checkboxes</a> appeared first on <a href="http://www.itsacon.net">Itsacon&#039;s Log</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><span class="pullquote">Browser differences are a daily fact of life for webdevelopers. It is something you either learn to deal with, or it kills you before 40.</span></p>
<p>Some of these are just plain stupid, but some are simply different ways of interpreting the standard. A good example is the onChange event. This is a simple event, commonly attached to &lt;input /&gt; elements, that fires when the state or value of the element has changed.</p>
<p>For normal text fields, this event fires when the element loses focus. This is logical, since you don’t want it to fire after every keypress. However, for other types of field, the behaviour differs between browsers. Internet Explorer is consistent between types, and always waits till the element loses focus, regardless of the type attribute. Most other browsers however fire the event immediately if the states of the element are clearly defined. Radiobuttons and checkboxes for instance, are either on or off, so the event can fire as soon as the state changes, but IE still waits till the focus is moved to another object.</p>
<p>This leads to problems when the state of a checkbox or radiobutton has influence on other fields in the form. Take for example a situation where the state of a checkbox determines whether a submit button is enabled or not. In IE, the user has to click the checkbox, then click somewhere else in the form, and only then can he submit the form.</p>
<p>The most common workaround for this is to use the onClick event instead of the onChange event, but this will fire on every click, not just if the click actually changes the content.<br />
I recently solved the problem much more elegantly: In addition to the normal onChange event, add an onClick event that removes focus from the element: <code>onclick="this.blur()"</code>. When the user clicks the element, it is changed, and focus is immediately moved elsewhere. This means the onChange event is always called immediately, regardless of browser.</p>
<p>An even more advanced version would move the focus to the next element in the form: <code>onclick="focusNext(this)"</code>, with the function defined as:</p>
<pre>function focusNext(elem)
{
	var formElems = elem.form.elements.length;
	var thisIndex = $.inArray(elem, elem.form.elements);
	var nextIndex = Math.min(formElems-1, thisIndex+1);
	elem.form.elements[nextIndex].focus();
}</pre>
<p>Note that this version requires <a href="http://jquery.com/">JQuery</a>. Some browsers support the <code>Array.indexOf()</code> method, in which case you could use: </p>
<pre>function focusNext(elem)
{
	var formElems = elem.form.elements.length;
	var thisIndex = elem.form.elements.indexOf(elem);
	var nextIndex = Math.min(formElems-1, thisIndex+1);
	elem.form.elements[nextIndex].focus();
}</pre>
<p>However, this method is very sparsely supported, and while you can add it yourself via prototype, I find that JQuery is useful enough that I usually add it to my site anyway.</p>

<p>The post <a href="http://www.itsacon.net/computers/web-development/instant-onchange-with-ie-checkboxes/">Instant onChange with IE checkboxes</a> appeared first on <a href="http://www.itsacon.net">Itsacon&#039;s Log</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.itsacon.net/computers/web-development/instant-onchange-with-ie-checkboxes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Making sense of ‘Over the hills and far away’</title>
		<link>http://www.itsacon.net/entertainment/music/making-sense-of-over-the-hills-and-far-away/</link>
		<comments>http://www.itsacon.net/entertainment/music/making-sense-of-over-the-hills-and-far-away/#comments</comments>
		<pubDate>Sat, 12 Mar 2011 08:13:54 +0000</pubDate>
		<dc:creator>Itsacon</dc:creator>
				<category><![CDATA[Music]]></category>

		<guid isPermaLink="false">http://www.itsacon.net/?p=280</guid>
		<description><![CDATA[<p>You may or may not know the song ‘Over the hills and far away’ by Gary Moore (there’s also an excellent cover by Nightwish). Instrumentally, this is a very enjoyable song, with good tempo and some great guitar bits. The lyrics however, are slightly odd, and the more you listen to them, the less sense [...]</p><p>The post <a href="http://www.itsacon.net/entertainment/music/making-sense-of-over-the-hills-and-far-away/">Making sense of ‘Over the hills and far away’</a> appeared first on <a href="http://www.itsacon.net">Itsacon&#039;s Log</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>You may or may not know the song ‘Over the hills and far away’ by Gary Moore (there’s also an excellent cover by Nightwish). Instrumentally, this is a very enjoyable song, with good tempo and some great guitar bits. The lyrics however, are slightly odd, and the more you listen to them, the less sense they make.</p>
<p>Let’s start at the beginning:</p>
<blockquote><p>They came for him one winter’s night.<br />
Arrested, he was bound.<br />
They said there’d been a robbery,<br />
his pistol had been found.</p></blockquote>
<p>This part is pretty clear. Our main protagonist is picked up by the cops, after his weapon has been found at the scene of a crime. It goes on to tell us that this person is worried, because he has no alibi for the evening in question. But then:</p>
<blockquote><p>He knew that it would cost him dear,<br />
but yet he dare not say.<br />
Just where he’d been that fateful night,<br />
a secret it must stay.<br />
He had to fight back tears of rage.<br />
His heart beat like a drum.<br />
For with the wife of his best friend,<br />
he spent his final night of freedom.</p></blockquote>
<p>So the guy <em>does</em> have an alibi, he just doesn’t want to tell the cops about it. This is pretty odd, since in the UK<sup>[<a href="#making-sense-of-over-the-hills-and-far-away-n-1" class="footnoted" id="to-making-sense-of-over-the-hills-and-far-away-n-1">1</a>]</sup>, adultery isn’t a felony, unlike armed robbery. But ok, maybe his best friend is very dear to him, (though apparently not so dear that he’d keep his hands of his old lady), and he’d rather do time than lose his friend. I’ve seen people choose their daily smoke over food for their children, so questionable priorities exist.</p>
<p>But then we get the next refrain:</p>
<blockquote><p>Over the hills and far away,<br />
he swears he will return one day.<br />
Far from the mountains and the seas,<br />
back in her arms again he’ll be.<br />
Over the hills and far away.</p></blockquote>
<p>Followed by:</p>
<blockquote><p>Each night within his prison cell,<br />
he looks out through the bars.<br />
He reads the letters that she wrote.<br />
One day he’ll know the taste of freedom.</p></blockquote>
<p>So, while he’d rather go to prison than have his best friend find out who’d been keeping his wife warm at night, he’s still planning to get back with her after his time is done. And judging from the letter-writing, so is she. Now, if they both want to be together that bad, surely dumping the cuckoo’d husband <em>now</em> would be better than her playing mommy and daddy with the poor sod for years while he is in prison?</p>
<p>Nonetheless, so far we’re still only talking about people with a lot of trouble getting their priorities straight. They’re mostly hurting themselves: The guy is in prison and the wife is getting it from a man she doesn’t love. While the husband is being betrayed, right now he is blissfully unaware, and ‘no harm, no foul’ is certainly appropriate here, considering the guy who betrayed him is actually doing time for it.</p>
<p>But we’re forgetting one thing: A crime was committed. From the first verse, we already learned there was an armed robbery, but shortly after that, we got this:</p>
<blockquote><p>Over the hills and far away,<br />
for ten long years he’ll count the days.<br />
Over the mountains and the seas,<br />
a prisoner’s life for him there’ll be.</p></blockquote>
<p>Looking at the British <a href="http://www.sentencingcouncil.org.uk/docs/web_robbery-guidelines.pdf">sentencing guidelines for robbery</a>, we see that 10 years for robbery is in the heaviest category of verdicts for that crime, meaning either someone was seriously injured, a very large sum was stolen, or both. </p>
<p>So while the subject of the song is languishing in jail for being too much of a coward to own up to his best friend, a very violent criminal is on the loose, enjoying his ill-gotten gains.</p>
<p>But it is even worse than that. Remember why the guy was arrested? <em>His weapon was at the scene</em>. Now, I don’t own a gun, but I imagine it’s not something you leave lying around. Call it a hunch, but I dare suggest that, should the bloke cooperate with the police, there is a good chance they’d be able to find out how and by whom the weapon was stolen, thus leading the police to the real criminal. This could, quite probably, even be done while keeping his real whereabouts of the night a matter between him and the police, in exchange for his help in getting the real felon, something the police will probably prefer over sending an innocent man to gaol.</p>
<p>So, to recap, we not only have two persons with considerably twisted priorities, one of them serving time for the wrong crime (I’d submit that while he might be innocent of robbery, he should still be persecuted for obstruction of justice), we also have a violent criminal walking free because of the illogical actions of those two. Well done!</p>
<h5>Making sense of it all</h5>
<p>In the title, I promised I’d make sense of it all, so now I will. I have devised a small script that is, according to me, the only reasonable explanation for the story described in the song.</p>
<p>Our main characters:</p>
<p>Bob: A hapless video-rental clerk with the approximate IQ of a Venus Flytrap, but without the killer instinct. Bob spends his days watching the store’s porn collection and dreaming of one day meeting a woman who’ll fall hopelessly in love with him. </p>
<p>Clyde: A slick con-man and part-time crook. Took Bob under his wing during childhood, as a sidekick who does as he’s told was a good thing to have around when appointing blame for one of his failed antics. Bob in turn was honoured by being included, and has always looked up to Clyde.</p>
<p>Debbie: Clyde’s voluptuous wife. She knows what she wants, and is not afraid of getting dirty to get it. Debbie is one of the many reasons for Bob’s hopeless adoration for Clyde, as well as the subject of many of his wet dreams.</p>
<p>The movie starts with Debbie and Clyde planning their retirement. The following evening, Debbie knocks on Bob’s door, dressed in her skimpiest outfit, and upon being let in, explains to him how she’s always been turned on by the fact that his manhood is bigger than his brain (which Bob mistakenly takes as a compliment). She proceeds to undress herself in a sensual manner, until Bob’s pants burst open from arousal, at which point she excuses herself to go to the bathroom. On the way there, she slips into his closet and takes his firearm. In the bathroom, she opens the window where her hubby is waiting outside, and passes him the gun, as well as one of her stockings. She then returns to Bob and proceeds to take one for the team, after which she pressingly reminds him that Clyde can never, ever, <em>ever</em> find out about this.</p>
<p>Meanwhile, Clyde pulls the stocking over his head and uses the gun to stick up the local bookkeeper. This being the night before the Derby, the bookie is understandably pissed off, and responds to Clyde’s request for the contents of the safe by saying ‘Over my dead body’, to which Clyde wittingly replies by shooting him twice through the frontal lobe. Clyde busts the safe, leaves the gun and makes his way home, where he joins his wife in the shower.</p>
<p>The following day, the local constabulary, having successfully looked up the weapon’s serial number, knock on Bob’s door, and, concluding that his intelligence matches that of someone who would leave a registered firearm at the scene of a murder, take him in.</p>
<p>Bob’s brain, being slightly out of its depth, latches on to the last thing said to him that made sense: Debbie’s persistent demand that Clyde never finds out about their (very brief) liason. Clinging to that like a drowing sailor to a piece of driftwood, Bob keeps his mouth shut and is soon escorted off to the local slammer.</p>
<p>Meanwhile, Clyde and Debbie have caught the earliest first-class flight out to paradise, and are enjoying the spoils of Bob’s sacrifice. Together they send Bob the occassional letter to remind him how much Debbie loves him, and can’t wait for his sentence to be over so they can elope together, thus making sure all Bob’s blood remains in his pants, and not in his head where it might cause his brain to work long enough for him to wonder why the letters are postmarked in the Bahamas and realize he’s being played.</p>
<p>The movie ends with Clyde and Debbie toasting their Margaritas overlooking an idyllic sunset on a white beach. Credits roll<sup>[<a href="#making-sense-of-over-the-hills-and-far-away-n-2" class="footnoted" id="to-making-sense-of-over-the-hills-and-far-away-n-2">2</a>]</sup>.</p>
<p>There you have it, next time you hear the song, you finally know what is going on.</p>

<ol class="footnotes">
	<li class="footnote" id="making-sense-of-over-the-hills-and-far-away-n-1"><strong><sup>[1]</sup></strong> Gary Moore is from Northern Ireland <a class="note-return" href="#to-making-sense-of-over-the-hills-and-far-away-n-1">↩</a></li>
	<li class="footnote" id="making-sense-of-over-the-hills-and-far-away-n-2"><strong><sup>[2]</sup></strong> For casting I was thinking: George Bush Jr. as Bob, Pierce Brosnan as Clyde, Jessica Rabbit as Debbie, Robert De Niro as the bookie and John Cleese as the detective to arrest Bob. As director I was hoping to get Michael Bay, though that might mean replacing Bob’s revolver with a bazooka. <a class="note-return" href="#to-making-sense-of-over-the-hills-and-far-away-n-2">↩</a></li></ol>
<p>The post <a href="http://www.itsacon.net/entertainment/music/making-sense-of-over-the-hills-and-far-away/">Making sense of ‘Over the hills and far away’</a> appeared first on <a href="http://www.itsacon.net">Itsacon&#039;s Log</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.itsacon.net/entertainment/music/making-sense-of-over-the-hills-and-far-away/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Growing a ZFS pool</title>
		<link>http://www.itsacon.net/computers/unix/growing-a-zfs-pool/</link>
		<comments>http://www.itsacon.net/computers/unix/growing-a-zfs-pool/#comments</comments>
		<pubDate>Mon, 17 Jan 2011 14:41:22 +0000</pubDate>
		<dc:creator>Itsacon</dc:creator>
				<category><![CDATA[Unix]]></category>

		<guid isPermaLink="false">http://www.itsacon.net/?p=158</guid>
		<description><![CDATA[<p>I run several fileservers using the excellent ZFS filesystem. While originally a Solaris invention, it was successfully ported to FreeBSD for version 7. It is extremely well suited for large fileservers due to a combination of reliable software RAID (modes 1, 5, and 6), checksumming and snapshots. Combined with the option of nested filesystems and [...]</p><p>The post <a href="http://www.itsacon.net/computers/unix/growing-a-zfs-pool/">Growing a ZFS pool</a> appeared first on <a href="http://www.itsacon.net">Itsacon&#039;s Log</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>I run several fileservers using the excellent <a href="http://en.wikipedia.org/wiki/Zfs">ZFS</a> filesystem. While originally a Solaris invention, it was successfully ported to FreeBSD for version 7.</p>
<p>It is extremely well suited for large fileservers due to a combination of reliable software RAID (modes 1, 5, and 6), checksumming and snapshots. Combined with the option of nested filesystems and the ability to set options on each of these filesystems seperately this means it’s extremely scalable, as well as endlessly configurable.</p>
<p>A quick introduction: ZFS works on two levels, pools and filesystems. All pool configuration is done through the <a href="http://www.freebsd.org/cgi/man.cgi?query=zpool&#038;sektion=8">zpool</a> command, while filesystem configuration is done through the <a href="http://www.freebsd.org/cgi/man.cgi?query=zfs&#038;apropos=0&#038;sektion=8&#038;manpath=FreeBSD+8.1-RELEASE&#038;format=html">zfs</a> command.</p>
<h4>Pools</h4>
<p>Pool configuration is generally only done once, and after that the zpool command is only used for either maintenance, repairs or expansion. Before you can use any ZFS filesystem, you need to create a pool, a collection of one or more disks or partitions ZFS can use to store data. The most basic pool is of course a single disk, but this wouldn’t give you any redundancy whatsoever. Using two disks, you can create a mirrored pool, using three or more disks, you could create a RAID 5 pool (called raidz by ZFS), and with four or more disks, RAID 6 (raidz2) becomes an option. It is possible to combine multiple multiple RAID sets into a single pool, so you could for example have a single pool consisting of two mirrorred 500GB drives, and five terabyte drives in a RAID 5 configuration. </p>
<p>Note that building blocks can be either complete disks, partitions or files, but since using a drive as two partitions means you lose two blocks if the drive fails, this doesn’t really add security, and using files makes you dependent on another filesystem. It is not possible to nest RAID levels, so building a RAID 5 set out of 3 mirrors is not an option.</p>
<h4>Expansion</h4>
<p>But what happens if your pool is getting full? Lets say we have a three-disk RAID 5 pool, consisting of three 500 GB disks, giving us about 1TB of usable space. Ideally, we’d add a single 500GB disk to grow that RAID set to 1.5 TB. Unfortunately, this is one of the few things not yet supported by ZFS. There are some alternatives though:</p>
<p>Adding a new RAID set. If your system has enough free connectors and bays, simply add several more disks to the system, and add them to the pool as a new RAID set. For example, we could add three 1.5TB disks in a raidz configuration to the pool, growing it by an effective 3TB. ZFS will automatically spread any new data over all disks to optimize performance.</p>
<p>If your system doesn’t have the available hardware to add more disks, you can grow the existing RAID set by replacing the disks one by one, allowing the array to rebuild after each swap. This is what I recently did in one of my servers. It was running the above mentioned three disk raid setup with 500GB disks, and one of them had failed. I purchased three new 1.5TB disks, shut down the system, and replaced the damaged one.</p>
<p>After rebooting, I gave the command:</p>
<pre>[root@honeycomb /honeycomb/]# zpool replace honeycomb ad6</pre>
<p>Where honeycomb is the name of the zpool, and ad6 the drive to be replaced. By indicating only one device, I’m telling ZFS to replace the device with a new one at the same location. Once it’s done, shut down, replace the next disk, and repeat.</p>
<p>While the rebuilding is in progress, you can use the status command to see how far along the rebuilding of the array is:</p>
<pre>[root@honeycomb /honeycomb/]# zpool status -v
  pool: honeycomb
 state: DEGRADED
status: One or more devices is currently being resilvered.  The pool 
        will continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
 scrub: resilver in progress for 4h35m, 93.59% done, 0h18m to go
config:

        NAME            STATE     READ WRITE CKSUM
        honeycomb       DEGRADED     0     0     0
          raidz1        DEGRADED     0     0     0
            ad6         ONLINE       0     0     0  229M resilvered
            ad8         ONLINE       0     0     0  229M resilvered
            replacing   DEGRADED     0     0     0
              ad10/old  OFFLINE      0  137K     0
              ad10      ONLINE       0     0     0  337G resilvered

errors: No known data errors
</pre>
<p>Here you see the last disk in the array being replaced. Note that because the old disk is offline, the rebuilding is done by recalculating the data from the other disks in the array. If the old disk is still operational, and you have a spare SATA port, you could replace the disk while the old one is still connected, possibly speeding up the process.</p>
<p>After all disks have been replaced, you need to export and import the pool, after which ZFS will see the larger disk size, and grow the system accordingly:</p>
<pre>[root@honeycomb /honeycomb/]# zfs list
NAME                                  USED  AVAIL  REFER  MOUNTPOINT
honeycomb                            908G  23.3G  5.26M  /honeycomb

[root@honeycomb /honeycomb/]# zpool export honeycomb
[root@honeycomb /honeycomb/]# zpool import honeycomb
[root@honeycomb /honeycomb/]# zpool status
  pool: honeycomb
 state: ONLINE
 scrub: resilver completed after 4h56m with 0 errors on Mon 
  Jan 17 11:21:38 2011
config:

        NAME        STATE     READ WRITE CKSUM
        honeycomb   ONLINE       0     0     0
          raidz1    ONLINE       0     0     0
            ad6     ONLINE       0     0     0
            ad8     ONLINE       0     0     0
            ad10    ONLINE       0     0     0

errors: No known data errors
[root@honeycomb /honeycomb/]# zfs list
NAME                                  USED  AVAIL  REFER  MOUNTPOINT
honeycomb                            908G  1.84T  5.26M  /honeycomb
</pre>
<p>As you can see, the pool is complete again, with no trace of the failed drive, and the diskspace is grown by little over 1.8TB<sup>[<a href="#growing-a-zfs-pool-n-1" class="footnoted" id="to-growing-a-zfs-pool-n-1">1</a>]</sup>. </p>
<p>Next time, I’ll go deeper into the zfs command and creating filesystems.</p>

<ol class="footnotes">
	<li class="footnote" id="growing-a-zfs-pool-n-1"><strong><sup>[1]</sup></strong> Not by 2TB, as you would expect, since for marketing reasons, harddrives are specified in powers of 10, not powers of 2, as computers see them. <a class="note-return" href="#to-growing-a-zfs-pool-n-1">↩</a></li></ol>
<p>The post <a href="http://www.itsacon.net/computers/unix/growing-a-zfs-pool/">Growing a ZFS pool</a> appeared first on <a href="http://www.itsacon.net">Itsacon&#039;s Log</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.itsacon.net/computers/unix/growing-a-zfs-pool/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Holy Wars: Mac vs PC</title>
		<link>http://www.itsacon.net/computers/windows/holy-wars-mac-vs-pc/</link>
		<comments>http://www.itsacon.net/computers/windows/holy-wars-mac-vs-pc/#comments</comments>
		<pubDate>Thu, 06 Jan 2011 10:09:16 +0000</pubDate>
		<dc:creator>Itsacon</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.itsacon.net/?p=212</guid>
		<description><![CDATA[<p>I recently got drawn into another ‘Mac vs PC’ argument , which is a bit silly, as I don’t really like Windows, and don’t really mind Macs (to be clear: I’m always on the Windows-side of the argument). The only real problem I have with Macs, are the users. For some reason, pretty much all [...]</p><p>The post <a href="http://www.itsacon.net/computers/windows/holy-wars-mac-vs-pc/">Holy Wars: Mac vs PC</a> appeared first on <a href="http://www.itsacon.net">Itsacon&#039;s Log</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>I recently got drawn into another ‘Mac vs PC’ argument <sup>[<a href="#holy-wars-mac-vs-pc-n-1" class="footnoted" id="to-holy-wars-mac-vs-pc-n-1">1</a>]</sup>, which is a bit silly, as I don’t really like Windows, and don’t really mind Macs (to be clear: I’m always on the Windows-side of the argument).</p>
<p>The only real problem I have with Macs, are the users. For some reason, pretty much all Mac users excibit a brand-loyalty that borders on the aggresive, while I’ve yet to meet a PC user that won’t admit his PC crashes, and generally isn’t all that great. (I’m currently in an ongoing struggle to get my system to remember its screen resolutions when restarting. AARG!)</p>
<p>So why aren’t we all using Macs? Several reasons:</p>
<h4>Price</h4>
<p>However you put it, Macs cost a lot of money. The question whether they are expensive is debatable. You generally get some pretty good components, and the systems are invariably stable and easy to use for beginners. But even if they’re good, they still might be out of reach for many people. (A good example of the <a href="http://wiki.lspace.org/wiki/Sam_Vimes_Theory_of_Economic_Injustice">‘Boots’ theory of economic injustice</a> at work). </p>
<p>Side note: While to somebody who builds his own systems, all pre-build computers look fairly expensive, the markup on the ‘options’ when you buy a Mac really <em>are</em> ridiculous. My advice: buy the basic model, and let a tech-savvy nephew upgrade the memory and disks if required. That’ll save you several hundred bucks right off the bat.</p>
<h4>Choice</h4>
<p>Compared to Windows PCs, Apple doesn’t offer a whole lot of choice. This isn’t necessarily a bad thing. Most ‘options’ in the PC world are mostly marketing differences, and hardly noticable in daily use situations.<br />
It’s also worth to note that these limited choices are part of the reason why Macs are so stable: By limiting the number of devices that can be used on the system, Apple can develop all drivers in-house, or at least keep close control over them. Most Windows instability issues are not caused by Windows, but by third-party applications and drivers, and Microsoft generally works very hard to keep up with all the problems arising from this.</p>
<p>A big pet peeve of mine however is the non-existence of a ‘normal’ Mac. There are laptops, SFF machines, all-in-ones and overpowered super computers, but there simply is no normal desktop machine. This pretty much forces people to buy either the all-in-one, which is a shame, as they’ll have to throw out some pretty good components when they want to upgrade (environmental aspects anyone?), or the small-form-factor, which is generally a bit underspecced. I think the first is the worst of the two evils. Displays have historically always been long-time investments, and especially if, like me, you work with images, a good display can easily cost more than your computer. Being forced to buy a new one each time you upgrade is just ridiculous. There is a reason all-in-ones never took off in the Windows world: They combine the bad traits of laptops (bad upgradability/expandability) with the bad traits of desktops (bad portability), without <em>any</em> redeeming features.</p>
<h4>Compatibility</h4>
<p>Sad as it is, most of the world is still stuck using Windows+MS Office. Most Mac users I know still use MS Office on their Macs <sup>[<a href="#holy-wars-mac-vs-pc-n-2" class="footnoted" id="to-holy-wars-mac-vs-pc-n-2">2</a>]</sup>. Nearly all of them also have Parallels or VMWare installed so they can run Windows when needed (which in turn forces Macs to have much more memory than a similar Windows-only PC, as virtualization is a real memory-hog). Aside from the graphical sector, very few companies will consider Macs as their primary system. If you have a PC at work, having a Mac at home throws up an extra hurdle many people don’t want.</p>
<p><span class="pullquote">But for Grungni’s sake, Apple: <em>Two button mice are useful</em>, look into them!</span></p>
<h4>What about Windows?</h4>
<p>What about Windows? Windows PCs are cheap, there are more options than you can wave a stick at, and since they’re still the most common system, inherently compatible. Their problems? The most cited issue is instability, but I think part of this problem, and part of the reason people like Macs, is the amount of options, and the necessity of a certain level of technical understanding in order to use those options. And of course, the two issues are related.</p>
<p>
<a href="http://www.itsacon.net/wp-content/gallery/messages/unsigned-driver-install.jpg" title="If you've ever seen this message, and clicked `Continue anyway', you can no longer complain that Windows is unstable." class="shutterset_singlepic29" >
	<img class="ngg-singlepic ngg-right" src="http://www.itsacon.net/wp-content/gallery/cache/29__200x_unsigned-driver-install.jpg" alt="Unsigned driver installation" title="Unsigned driver installation" />
</a>
If you’ve ever had the message dialog shown on the right, and you clicked ‘Continue Anyway’, you are no longer allowed to complain about windows being unstable. What that message means, is that the hardware you are about to install was made by a company that was too cheap to pay Microsoft to check whether their drivers would actually work with the OS. The difference between Mac and Windows? Mac doesn’t give you the ‘Continue Anyway’ button. Windows tried that approach with Vista, but was forced to change the policy after too many complaints. Apparently Windows users like the ability to destroy their PCs. </p>
<p>In a similar vein, the Windows configuration gives you so many options, that most users hardly know how to set them. A good example of this is the way how people jumped on TFT screens when they first came around, ‘because they didn’t flicker’. If they’d just adjusted the refresh ratio on their CRT, the flicker would’ve gone. But that setting is hidden four levels deep, so most of them didn’t even know it was there.</p>
<p>Of course, the Mac kernel is more stable than the Windows kernel (which is hardly surprising, considering Apple ripped most of it from FreeBSD and NetBSD). But this is in part because Microsoft has been working very hard to keep up with all those ‘bad drivers’ I mentioned earlier. And even then, if you look closer, you’ll notice that nowadays it usually isn’t Windows that crashes, but the software you’ve installed on it. Ever since they switched to the NT kernel (Windows 2000/Windows XP), Windows itself has been a very reliable system, provided you took care of what you installed on it.</p>
<h4>Me?</h4>
<p>So, why am I not a Mac user? A bit of all, but mostly choice. To illustrate: Penelope, my main workstation, runs a triple-screen setup, currently has 6 harddisks and 4 CD players. The only machine Apple sells that would be able to do that, is the Mac Pro, and even the cheapest model costs more than I have spend on the base system, all of the updates and all of the replacements <sup>[<a href="#holy-wars-mac-vs-pc-n-3" class="footnoted" id="to-holy-wars-mac-vs-pc-n-3">3</a>]</sup> on Penelope since I first built her <em>in 2000</em>. That’s over 10 years of keeping a system current, and I’m still out ahead. I like the ability to pick and choose my components, but if I’m brutally honest to myself, I wouldn’t notice the difference between most components in my daily use.</p>
<p>Of course, my choice of software is heavily Windows-based, but I’m sure that if I really were to switch, I’d be able to find alternatives. The only Microsoft software I use is Windows itself, most of the rest is open source, or at least free, and usually available for the Mac. I’d really miss Winamp, and I’d be a bit sad about having to exchange ACDSee for the more expensive Lightroom, but I’d get over that eventually.</p>
<p>There <em>is</em> the fact that I don’t really like the Mac-OS interface, but that’s completely personal, and I’d probably get used to it over time.</p>
<h4>So, what to do?</h4>
<p>Depends on what you want. If you’re looking for a good laptop, and like the Mac interface, seriously consider a Macbook or a Macbook Pro. They’re not that much more expensive than a similarily specced Windows laptop, are very well built (especially the Pros) and you get Unix-grade stability. (Do see my earlier remark about the nephew-upgrade-path).</p>
<p>If you’re looking for a normal PC to do email, office-related tasks and browsing on, and really would like the whole Mac experience, go for a Mac Mini.</p>
<p>But if you want a powerful system, want to be able to upgrade in the future without having to fork over the price of a new system, and want more than the basics (extra disks, lots of RAM, etc). Seriously consider getting a Windows PC.</p>
<p>Horses for courses, people. Horses for courses.</p>

<ol class="footnotes">
	<li class="footnote" id="holy-wars-mac-vs-pc-n-1"><strong><sup>[1]</sup></strong> Aside from the one I have weekly with my father, which is just our way of saying ‘hello’. <a class="note-return" href="#to-holy-wars-mac-vs-pc-n-1">↩</a></li>
	<li class="footnote" id="holy-wars-mac-vs-pc-n-2"><strong><sup>[2]</sup></strong> Which I think is a bit strange, I use Windows, and I haven’t used MS Office since Windows 3.1. If you really want to be free from Microsoft, there’s your chance. <a class="note-return" href="#to-holy-wars-mac-vs-pc-n-2">↩</a></li>
	<li class="footnote" id="holy-wars-mac-vs-pc-n-3"><strong><sup>[3]</sup></strong> If you run that many disks, replacing them when they wear out becomes a serious budget issue. <a class="note-return" href="#to-holy-wars-mac-vs-pc-n-3">↩</a></li></ol>
<p>The post <a href="http://www.itsacon.net/computers/windows/holy-wars-mac-vs-pc/">Holy Wars: Mac vs PC</a> appeared first on <a href="http://www.itsacon.net">Itsacon&#039;s Log</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.itsacon.net/computers/windows/holy-wars-mac-vs-pc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
