<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Leons Tech Blog</title>
	
	<link>http://lpetr.org/blog</link>
	<description>Musings about technology</description>
	<lastBuildDate>Tue, 08 May 2012 14:00:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/leotech" /><feedburner:info uri="leotech" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>leotech</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2Fleotech" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/leotech" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fleotech" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2Fleotech" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><item>
		<title>How to access web console from Greasemonkey userscripts</title>
		<link>http://feedproxy.google.com/~r/leotech/~3/Oca_RNl6S84/how-to-access-web-console-from-greasemonkey-userscripts</link>
		<comments>http://lpetr.org/blog/archives/how-to-access-web-console-from-greasemonkey-userscripts#comments</comments>
		<pubDate>Tue, 08 May 2012 14:00:57 +0000</pubDate>
		<dc:creator>Leons Petrazickis</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://lpetr.org/blog/?p=658</guid>
		<description><![CDATA[Userscripts are helper Javascript programs that you can add to your browser to automate and optimize the web pages you visit. Greasemonkey is a Firefox extension to run userscripts. The web console is a tool built into Firefox and other browsers that can be helpful during userscript development. How can you access the web console [...]]]></description>
			<content:encoded><![CDATA[<p><a href="https://userscripts.org/">Userscripts</a> are helper Javascript programs that you can add to your browser to automate and optimize the web pages you visit. Greasemonkey is a Firefox extension to run userscripts. The web console is a tool built into Firefox and other browsers that can be helpful during userscript development.</p>
<p>How can you access the web console from Greasemonkey userscripts? First of all, <a href="http://wiki.greasespot.net/UnsafeWindow">you should not do this</a> in production. However, logging to the web console can be a useful tool during development.</p>
<p>Here&#8217;s how you do it:</p>
<pre class="brush:js">// Put this at the top of your userscript
var console = unsafeWindow.console;</pre>
<p>Bonus: How to access your userscript&#8217;s <a href="http://wiki.greasespot.net/Third-Party_Libraries#jQuery">jQuery</a> from the web console</p>
<pre class="brush:js">// Expose userscript's jquery to the web console
unsafeWindow.$ = $;</pre>
<p>Again, do not do this in production.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/leotech?a=Oca_RNl6S84:7skS_fFtbYg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/leotech?i=Oca_RNl6S84:7skS_fFtbYg:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leotech?a=Oca_RNl6S84:7skS_fFtbYg:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/leotech?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/leotech/~4/Oca_RNl6S84" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://lpetr.org/blog/archives/how-to-access-web-console-from-greasemonkey-userscripts/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://lpetr.org/blog/archives/how-to-access-web-console-from-greasemonkey-userscripts</feedburner:origLink></item>
		<item>
		<title>Userscript for faster deletion of MediaWiki spam</title>
		<link>http://feedproxy.google.com/~r/leotech/~3/l7FEVdZfc1E/userscript-for-faster-deletion-of-mediawiki-spam</link>
		<comments>http://lpetr.org/blog/archives/userscript-for-faster-deletion-of-mediawiki-spam#comments</comments>
		<pubDate>Mon, 07 May 2012 14:00:09 +0000</pubDate>
		<dc:creator>Leons Petrazickis</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[MediaWiki]]></category>

		<guid isPermaLink="false">http://lpetr.org/blog/?p=664</guid>
		<description><![CDATA[A couple weeks ago I posted a userscript that makes banning MediaWiki spammers easier by setting good defaults for the user ban form. Since then, I&#8217;ve had to ban a lot of spammers, so I thought I should remove another point of friction. For some reason, MediaWiki chooses to not provide direct deletion links on [...]]]></description>
			<content:encoded><![CDATA[<p>A couple weeks ago I posted <a href="http://lpetr.org/blog/archives/userscript-to-make-banning-mediawiki-spammers-easier">a userscript that makes banning MediaWiki spammers easier</a> by setting good defaults for the user ban form. Since then, I&#8217;ve had to ban <em>a lot</em> of spammers, so I thought I should remove another point of friction.</p>
<p>For some reason, MediaWiki chooses to not provide direct deletion links on the User Contributions page, so after banning a spammer you have to click through to each piece of spam before deleting it. This may have been an acceptable user experience in Web 1.0 days, but it&#8217;s a ridiculous set of hoops to jump through today.</p>
<p>My goal is to eventually make banning a spammer and deleting all the spam they&#8217;ve posted a one-click process. If there&#8217;s an existing solution for this, I&#8217;d love to hear about it.</p>
<p>Since I needed to do some DOM manipulation, I chose to use jQuery in the userscript. This was also a lot easier than I might have expected. Userscripts really are a very solid technology.</p>
<pre class="brush:js">// ==UserScript==
// @name           Mediawiki - Fast delete on user contributions view
// @namespace      https://userscripts.org/users/457667
// @description    Adds a delete link for every page on the user contributions view
// @include        http://example.com/index.php/Special:Contributions/*
// @require        https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
// ==/UserScript==

// Add page delete links to the user contributions page
function enhanceHistory() {
  "use strict";

  // Find the history link for each revision
  $('#bodyContent ul li')
    .find('a[href*="action=history"]')
    .each(function(i) {
      // Append a page delete link after each history link
      var url = this.toString().replace('action=history', 'action=delete');
      $('&lt;span&gt; | &lt;/span&gt;&lt;a href="' + url + '"&gt;del&lt;/a&gt;').insertAfter($(this));
  });
}

enhanceHistory();</pre>
<p>I passed the above through JSHint to make sure there&#8217;s nothing silly in it, but I haven&#8217;t consulted the jQuery style guide so it may not conform to the usual formatting.</p>
<p>The page delete links still lead to a standard confirmation form, so this doesn&#8217;t violate the RESTful practice of only using links for reading content rather than changing it.</p>
<p>Here&#8217;s a screenshot of what it adds to the user interface:</p>
<p><a href="http://lpetr.org/blog/wp-content/uploads/2012/05/delete_links.png"><img class="alignright  wp-image-665" title="MediaWiki with delete links added" src="http://lpetr.org/blog/wp-content/uploads/2012/05/delete_links.png" alt="" width="418" height="290" /></a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/leotech?a=l7FEVdZfc1E:zj8_WiKz-OM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/leotech?i=l7FEVdZfc1E:zj8_WiKz-OM:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leotech?a=l7FEVdZfc1E:zj8_WiKz-OM:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/leotech?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/leotech/~4/l7FEVdZfc1E" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://lpetr.org/blog/archives/userscript-for-faster-deletion-of-mediawiki-spam/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://lpetr.org/blog/archives/userscript-for-faster-deletion-of-mediawiki-spam</feedburner:origLink></item>
		<item>
		<title>Userscript to make banning MediaWiki spammers easier</title>
		<link>http://feedproxy.google.com/~r/leotech/~3/72Avvf3-UOU/userscript-to-make-banning-mediawiki-spammers-easier</link>
		<comments>http://lpetr.org/blog/archives/userscript-to-make-banning-mediawiki-spammers-easier#comments</comments>
		<pubDate>Fri, 20 Apr 2012 14:00:58 +0000</pubDate>
		<dc:creator>Leons Petrazickis</dc:creator>
				<category><![CDATA[DB2]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[MediaWiki]]></category>

		<guid isPermaLink="false">http://lpetr.org/blog/?p=647</guid>
		<description><![CDATA[Somehow, I&#8217;ve come to be responsible for administering two MediaWiki-powered wikis. The main burden is having to ban spammers, which sometimes sign up in batches of 20 at a time. To help with process, I&#8217;ve put together the following browser userscript. On Firefox, you can easily set it up using the Greasemonkey extension. Opera and [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://lpetr.org/blog/wp-content/uploads/2012/04/mediawiki_medium.png"><img class="alignright size-full wp-image-650" title="MediaWiki logo" src="http://lpetr.org/blog/wp-content/uploads/2012/04/mediawiki_medium.png" alt="" width="135" height="135" /></a>Somehow, I&#8217;ve come to be responsible for administering two MediaWiki-powered wikis. The main burden is having to ban spammers, which sometimes sign up in batches of 20 at a time.</p>
<p>To help with process, I&#8217;ve put together the following browser <a href="https://userscripts.org/">userscript</a>. On Firefox, you can easily set it up using the <a href="https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/">Greasemonkey</a> extension. Opera and Chrome have their own facilities.</p>
<p>The script basically makes the default values on the user ban form sane, so I can just click through without fiddling with dropdown and checkboxes. Obviously, the ban has to be permanent. Obviously, I don&#8217;t want spammers emailing anyone.</p>
<pre class="brush:js">// ==UserScript==
// @name           Blocker
// @namespace      https://userscripts.org/users/457667
// @include        http://example.com/index.php/Special:Block/*
// ==/UserScript==

// Set default expiry to 'infinite' or 'indefinite', depending on MediaWiki version
function makeExpiryInfinite () { "use strict";
  // Get the element
  var elExpiry = document.getElementById('wpBlockExpiry');
  if (!elExpiry) { elExpiry = document.getElementById('mw-input-wpExpiry'); }

  // Abort if element not found
  if (!elExpiry || !elExpiry.children) { return; }

  // Find the infinite option
  var expiryNodes = elExpiry.children;
  var index = 0;
  for (var i in expiryNodes) {
    if (expiryNodes[i].label &amp;&amp; expiryNodes[i].label in {infinite:1, indefinite:1}) {
      index = i;
    }
  }

  // Set dropdown to the infinite option
  elExpiry.selectedIndex = index;
}

// Automatically prevent user from sending e-mail
function preventEmail() { "use strict";
  // Find check box
  var elEmailBan = document.getElementById('wpEmailBan');
  if (!elEmailBan) { elEmailBan = document.getElementById('mw-input-wpDisableEmail'); }

  // Abort if it's not there
  if (!elEmailBan) { return; }

  // Check the box
  elEmailBan.checked = true;
}

// Automatically prevent user from sending e-mail
function reallyBanThatIP() { "use strict";
  // Find check box
  var elHardBlock = document.getElementById('mw-input-wpHardBlock');
  if (!elHardBlock) { elHardBlock = document.getElementById('mw-input-wpHardBlock'); }

  // Abort if it's not there
  if (!elHardBlock) { return; }

  // Check the box
  elHardBlock.checked = true;
}

makeExpiryInfinite();
preventEmail();
reallyBanThatIP();</pre>
<p>I&#8217;ve been hearing wonderful things about userscripts for years, but this is the first one I&#8217;ve put together for myself. It&#8217;s actually very easy to write these, assuming you know Javascript and have tools like Firefox&#8217;s Web Console and the <a href="https://addons.mozilla.org/en-US/firefox/addon/web-developer/">Web Developer extension</a> handy.</p>
<p>I&#8217;m planning to enhance it a little so that it handles the slightly different form for banning anonymous users, but I&#8217;m not sure if it makes sense to submit to any official repository. It helps with running small wikis that have open memberships, so there isn&#8217;t any one site I can identify it with. Obviously, it&#8217;s not suited for Wikipedia, as they have a very different set of problems.</p>
<p><strong>Edit</strong>: Updated the script with better handling for banning anonymous users by IP address.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/leotech?a=72Avvf3-UOU:Xub7JNFdc1c:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/leotech?i=72Avvf3-UOU:Xub7JNFdc1c:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leotech?a=72Avvf3-UOU:Xub7JNFdc1c:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/leotech?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/leotech/~4/72Avvf3-UOU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://lpetr.org/blog/archives/userscript-to-make-banning-mediawiki-spammers-easier/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://lpetr.org/blog/archives/userscript-to-make-banning-mediawiki-spammers-easier</feedburner:origLink></item>
		<item>
		<title>Setting up a fresh Windows system</title>
		<link>http://feedproxy.google.com/~r/leotech/~3/1M3Sdv6D1Ss/setting-up-a-fresh-windows-system</link>
		<comments>http://lpetr.org/blog/archives/setting-up-a-fresh-windows-system#comments</comments>
		<pubDate>Thu, 15 Mar 2012 22:58:45 +0000</pubDate>
		<dc:creator>Leons Petrazickis</dc:creator>
				<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://lpetr.org/blog/?p=637</guid>
		<description><![CDATA[I&#8217;m setting up a new primary system and I thought I&#8217;d jot down some notes. Ninite is probably the quickest way to install all the necessary software (Chrome, 7-zip, Dropbox, iTunes, Picasa, etc). You click the checkboxes and it rolls you a custom, hands-off installer. They upsell to an auto-update service, but there are free [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://lpetr.org/blog/wp-content/uploads/2012/03/Windows8.png"><img class="alignright  wp-image-638" title="Windows8" src="http://lpetr.org/blog/wp-content/uploads/2012/03/Windows8.png" alt="" width="128" height="128" /></a>I&#8217;m setting up a new primary system and I thought I&#8217;d jot down some notes.</p>
<p><a href="http://ninite.com/">Ninite</a> is probably the quickest way to install all the necessary software (Chrome, 7-zip, Dropbox, iTunes, Picasa, etc). You click the checkboxes and it rolls you a custom, hands-off installer. They upsell to an auto-update service, but there are free alternatives like <a href="http://www.filehippo.com/updatechecker/">FileHippo Update Checker</a>.</p>
<p>Speaking of <a href="http://db.tt/Ec4HiD2">Dropbox</a>, it proved a lifesaver. If you aren&#8217;t familiar with it, it&#8217;s a service that automatically syncs (and backups) a folder between all your machines. My last hard drive failed, but because all my personal files are on Dropbox I didn&#8217;t lose any of them. They have a free 2GB account available, and <a href="http://db.tt/Ec4HiD2">if you join</a> they&#8217;ll toss some extra free space my way as well.</p>
<p>I also set up a few Firefox extensions. With extensions, the goal is always is to have as few as possible, as there is a history of extensions slowing down Firefox performance. Here are the ones I chose:</p>
<ul>
<li>AdBlock Plus</li>
<li><a href="https://www.eff.org/https-everywhere">HTTPS Everywhere</a></li>
<li><a href="https://lastpass.com/">LastPass</a></li>
<li>TabSubmit</li>
<li>Tree Style Tab</li>
<li><a href="https://www.xmarks.com/">Xmarks</a></li>
</ul>
<p>HTTPS Everywhere is of course a great security boon. LastPass is a secure cross-browser way to manage the hundreds of passwords we all have. Xmarks is a bookmarks synchronizer which I prefer over Firefox Sync because it&#8217;s cross-browser.</p>
<p>I have a few goals with the new system:</p>
<ul>
<li>Keep the desktop empty of files</li>
<li>Keep all personal files in a single location (e.g. \Dropbox)</li>
<li>Keep all work files in a single location (e.g. \Projects)</li>
</ul>
<p>The last one might be the trickiest, as all the different Eclipse-based IDEs I&#8217;ll need to install will all try to grab a workplace for themselves.</p>
<p>&nbsp;</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/leotech?a=1M3Sdv6D1Ss:qqRJX9B2OuA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/leotech?i=1M3Sdv6D1Ss:qqRJX9B2OuA:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leotech?a=1M3Sdv6D1Ss:qqRJX9B2OuA:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/leotech?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/leotech/~4/1M3Sdv6D1Ss" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://lpetr.org/blog/archives/setting-up-a-fresh-windows-system/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://lpetr.org/blog/archives/setting-up-a-fresh-windows-system</feedburner:origLink></item>
		<item>
		<title>DB2 Express-C 9.7.5 released with Oracle compatibility</title>
		<link>http://feedproxy.google.com/~r/leotech/~3/JFXYVBSyiU4/db2-express-c-9-7-5-released-with-oracle-compatibility</link>
		<comments>http://lpetr.org/blog/archives/db2-express-c-9-7-5-released-with-oracle-compatibility#comments</comments>
		<pubDate>Tue, 22 Nov 2011 14:00:37 +0000</pubDate>
		<dc:creator>Leons Petrazickis</dc:creator>
				<category><![CDATA[DB2]]></category>

		<guid isPermaLink="false">http://lpetr.org/blog/?p=628</guid>
		<description><![CDATA[My team just put out DB2 Express-C 9.7.5. The big new feature is Oracle compatibility, which is now available in the free edition. It includes PL/SQL, CLPPlus, and other related things. DB2 Express-C is a free database. It&#8217;s fairly straightforward to install on your own machine or deploy on a public cloud like Amazon EC2 [...]]]></description>
			<content:encoded><![CDATA[<p>My team just put out <a href="http://db2express.com/download?S_TACT=LP_BLOG_01&amp;S_CMP=ECDDWW01">DB2 Express-C 9.7.5</a>. The big new feature is Oracle compatibility, which is now available in the free edition. It includes PL/SQL, CLPPlus, and other related things.</p>
<p>DB2 Express-C is a free database. It&#8217;s fairly straightforward to install on your own machine or deploy on a public cloud like Amazon EC2 or IBM SmartCloud Enterprise. Disclaimer: I&#8217;m the guy who puts together the DB2 virtual images for SCE.</p>
<p><a href="http://www.db2university.com/">DB2 University</a> is a good place to learn how to use DB2 at your own pace.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/leotech?a=JFXYVBSyiU4:ISRKhIL_N24:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/leotech?i=JFXYVBSyiU4:ISRKhIL_N24:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leotech?a=JFXYVBSyiU4:ISRKhIL_N24:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/leotech?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/leotech/~4/JFXYVBSyiU4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://lpetr.org/blog/archives/db2-express-c-9-7-5-released-with-oracle-compatibility/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://lpetr.org/blog/archives/db2-express-c-9-7-5-released-with-oracle-compatibility</feedburner:origLink></item>
		<item>
		<title>Materials for the Hadoop workshop at CASCON</title>
		<link>http://feedproxy.google.com/~r/leotech/~3/lGoR0Ub5ezU/materials-for-the-hadoop-workshop-at-cascon</link>
		<comments>http://lpetr.org/blog/archives/materials-for-the-hadoop-workshop-at-cascon#comments</comments>
		<pubDate>Fri, 28 Oct 2011 16:12:35 +0000</pubDate>
		<dc:creator>Leons Petrazickis</dc:creator>
				<category><![CDATA[CASCON]]></category>

		<guid isPermaLink="false">http://lpetr.org/blog/?p=615</guid>
		<description><![CDATA[This is the syllabus for the workshop I&#8217;m chairing at CASCON 2011 with @mariusbutuc and @bsteinfe. If you&#8217;re interested, you can also take the course at your own pace online at BigDataUniversity. SSH Attendees will be provided with access to machines running Hadoop in a cloud environment. The necessary SSH credentials will be provided in [...]]]></description>
			<content:encoded><![CDATA[<p>This is the syllabus for <a href="https://www-927.ibm.com/ibm/cas/cascon/displayWorkshop?PublicView=true&amp;Num=132">the workshop</a> I&#8217;m chairing at CASCON 2011 with <a href="https://twitter.com/#!/mariusbutuc">@mariusbutuc</a> and <a href="https://twitter.com/#!/BSTEINFE">@bsteinfe</a>. If you&#8217;re interested, you can also take the course at your own pace online at <a href="http://bigdatauniversity.com/">BigDataUniversity</a>.</p>
<p><strong>SSH</strong></p>
<p>Attendees will be provided with access to machines running Hadoop in a cloud environment. The necessary SSH credentials will be provided in class.</p>
<p><strong>Materials</strong></p>
<ul>
<li><a href="http://www.slideshare.net/leonsp/hadoop-slides-10-welcome-to-the-workshop">Hadoop Slides 1.0 &#8211; Welcome</a></li>
<li><a href="http://www.slideshare.net/leonsp/hadoop-slides-11-what-is-big-data">Hadoop Slides 1.1 &#8211; What is big data?</a></li>
<li><a href="http://www.slideshare.net/leonsp/hadoop-slides-12-what-is-hadoop">Hadoop Slides 1.2 &#8211; What is Hadoop?</a></li>
<li><a href="http://www.slideshare.net/leonsp/hadoop-slides-13-working-with-biginsights">Hadoop Slides 1.3 &#8211; Working with BigInsights</a></li>
<ul>
<li><a href="http://www.slideshare.net/leonsp/hadoop-lab-0-instructions">Hadoop Lab 0 &#8211; Basic Instructions</a></li>
</ul>
<li><a href="http://www.slideshare.net/leonsp/hadoop-slides-14-hadoop-architecture-and-hdfs">Hadoop Slides 1.4 &#8211; Hadoop Architecture and HDFS</a></li>
<ul>
<li><a href="http://www.slideshare.net/leonsp/hadoop-lab-1-hdfs-instructions">Hadoop Lab 1 &#8211; HDFS</a></li>
</ul>
<li><a href="http://www.slideshare.net/leonsp/hadoop-slides-15-hadoop-and-mapreduce">Hadoop Slides 1.5 &#8211; MapReduce</a></li>
<li><a href="http://www.slideshare.net/leonsp/hadoop-slides-16-biginsights-web-console">Hadoop Slides 1.6 &#8211; BigInsights Web Console</a></li>
<ul>
<li><a href="http://www.slideshare.net/leonsp/hadoop-lab-2-mapreduce">Hadoop Lab 2 &#8211; MapReduce</a></li>
</ul>
<li><a href="http://www.slideshare.net/leonsp/hadoop-slides-17-pig-hive-and-jaql">Hadoop Slides 1.7 &#8211; Pig, Hive, and JAQL</a></li>
<ul>
<li><a href="http://www.slideshare.net/leonsp/hadoop-lab-3-pig-hive-and-jaql">Hadoop Lab 3 &#8211; Pig, Hive, and JAQL</a></li>
</ul>
<li><a href="http://www.slideshare.net/leonsp/hadoop-slides-18-next-steps">Hadoop Slides 1.8 &#8211; Next Steps</a></li>
</ul>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/leotech?a=lGoR0Ub5ezU:ml1zaoF5bWU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/leotech?i=lGoR0Ub5ezU:ml1zaoF5bWU:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leotech?a=lGoR0Ub5ezU:ml1zaoF5bWU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/leotech?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/leotech/~4/lGoR0Ub5ezU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://lpetr.org/blog/archives/materials-for-the-hadoop-workshop-at-cascon/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://lpetr.org/blog/archives/materials-for-the-hadoop-workshop-at-cascon</feedburner:origLink></item>
		<item>
		<title>SQL6048N A communication error occurred during START or STOP DATABASE MANAGER processing</title>
		<link>http://feedproxy.google.com/~r/leotech/~3/IRZkaiw9Xp8/sql6048n-a-communication-error-occurred-during-start-or-stop-database-manager-processing</link>
		<comments>http://lpetr.org/blog/archives/sql6048n-a-communication-error-occurred-during-start-or-stop-database-manager-processing#comments</comments>
		<pubDate>Fri, 21 Oct 2011 14:00:20 +0000</pubDate>
		<dc:creator>Leons Petrazickis</dc:creator>
				<category><![CDATA[DB2]]></category>

		<guid isPermaLink="false">http://lpetr.org/blog/?p=612</guid>
		<description><![CDATA[I&#8217;ve written about issues related to &#8220;SQL6048N A communication error occurred during START or STOP DATABASE MANAGER processing&#8221; before, but I thought I&#8217;d add a few short notes. Your machine needs to be able to ping itself. If it can&#8217;t ping itself, it can&#8217;t DB2 itself either. The output of hostname, db2set -all, and cat [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve <a href="http://lpetr.org/blog/archives/moving-db2-from-one-hostname-to-another">written about issues related</a> to &#8220;SQL6048N A communication error occurred during START or STOP DATABASE MANAGER processing&#8221; before, but I thought I&#8217;d add a few short notes.</p>
<ol>
<li>Your machine needs to be able to ping itself. If it can&#8217;t ping itself, it can&#8217;t DB2 itself either.</li>
<li>The output of hostname, db2set -all, and cat /home/db2inst1/sqllib/db2nodes.cfg needs to match.</li>
</ol>
<p>If your machine can&#8217;t ping itself, cat /etc/hosts. Chances are, you need to add a line like the following:</p>
<pre>127.0.0.1 myhostname.mydomain myhostname</pre>
<pre></pre>
<p>If DB2SYSTEM is set to the wrong value, db2set -g DB2SYSTEM=`hostname` will fix it on Linux.</p>
<p>If db2nodes.cfg has the wrong value, overwrite it with the right one.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/leotech?a=IRZkaiw9Xp8:2Q7dMZM2LVc:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/leotech?i=IRZkaiw9Xp8:2Q7dMZM2LVc:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leotech?a=IRZkaiw9Xp8:2Q7dMZM2LVc:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/leotech?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/leotech/~4/IRZkaiw9Xp8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://lpetr.org/blog/archives/sql6048n-a-communication-error-occurred-during-start-or-stop-database-manager-processing/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://lpetr.org/blog/archives/sql6048n-a-communication-error-occurred-during-start-or-stop-database-manager-processing</feedburner:origLink></item>
		<item>
		<title>Chairing a Hadoop workshop at CASCON 2011</title>
		<link>http://feedproxy.google.com/~r/leotech/~3/zTP2pMZcazc/chairing-a-hadoop-workshop-at-cascon-2011</link>
		<comments>http://lpetr.org/blog/archives/chairing-a-hadoop-workshop-at-cascon-2011#comments</comments>
		<pubDate>Wed, 05 Oct 2011 20:06:27 +0000</pubDate>
		<dc:creator>Leons Petrazickis</dc:creator>
				<category><![CDATA[Big Data]]></category>
		<category><![CDATA[CASCON]]></category>

		<guid isPermaLink="false">http://lpetr.org/blog/?p=608</guid>
		<description><![CDATA[I&#8217;ll be chairing the Crunching Big Data in the Cloud with Hadoop and BigInsights workshop at CASCON 2011 in Toronto on Wednesday, November 9th. @BSteinfe and @MariusButuc will be joining me as co-chairs. The workshop will be an all day hands-on introduction to Hadoop, HDFS, MapReduce, Hive, and JAQL. The plan is to have ready Hadoop clusters [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-609" title="cascon" src="http://lpetr.org/blog/wp-content/uploads/2011/10/cascon.png" alt="" width="174" height="374" />I&#8217;ll be chairing the <a href="https://www-927.ibm.com/ibm/cas/cascon/displayWorkshop?PublicView=true&amp;Num=132">Crunching Big Data in the Cloud with Hadoop and BigInsights</a> workshop at <a href="https://www-927.ibm.com/ibm/cas/cascon/">CASCON 2011</a> in Toronto on Wednesday, November 9th. <a href="https://twitter.com/#!/BSTEINFE">@BSteinfe</a> and <a href="https://twitter.com/#!/mariusbutuc">@MariusButuc</a> will be joining me as co-chairs.</p>
<p>The workshop will be an all day hands-on introduction to Hadoop, HDFS, MapReduce, Hive, and JAQL. The plan is to have ready Hadoop clusters running in the cloud for the various exercises.</p>
<p>Hadoop is a parallelized data processing framework. It lends itself very nicely to running in cloud environments like Amazon EC2 and IBM SCE, as the core concept is to split sophisticated queries across clusters of commodity hardware. On a basic level it&#8217;s an implementation of MapReduce in Java, but a great many tools in its eco system make it easy to formulate and execute queries on the fly.</p>
<p>The material will have some things in common with the free Hadoop Fundamentals course you can take on <a href="http://bigdatauniversity.com/">Big Data University</a> today, though naturally adapted for the CASCON themes and with added hands-on instruction.</p>
<p><strong>Next steps</strong></p>
<ul>
<li><a href="https://www-927.ibm.com/ibm/cas/cascon/displayWorkshop?PublicView=true&amp;Num=132">Register for the workshop</a></li>
<li><a href="http://bigdatauniversity.com/">Check out the self-paced course on Big Data University</a></li>
</ul>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/leotech?a=zTP2pMZcazc:axnsCBVl_CI:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/leotech?i=zTP2pMZcazc:axnsCBVl_CI:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leotech?a=zTP2pMZcazc:axnsCBVl_CI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/leotech?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/leotech/~4/zTP2pMZcazc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://lpetr.org/blog/archives/chairing-a-hadoop-workshop-at-cascon-2011/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://lpetr.org/blog/archives/chairing-a-hadoop-workshop-at-cascon-2011</feedburner:origLink></item>
		<item>
		<title>Run Firefox 5+ and Firefox 3.6 side by side on Windows</title>
		<link>http://feedproxy.google.com/~r/leotech/~3/mruCnDSJQ3E/run-firefox-5-and-firefox-3-6-side-by-side-on-windows</link>
		<comments>http://lpetr.org/blog/archives/run-firefox-5-and-firefox-3-6-side-by-side-on-windows#comments</comments>
		<pubDate>Tue, 26 Jul 2011 14:00:44 +0000</pubDate>
		<dc:creator>Leons Petrazickis</dc:creator>
				<category><![CDATA[Web browsers]]></category>

		<guid isPermaLink="false">http://lpetr.org/blog/?p=590</guid>
		<description><![CDATA[(Edit: Corrected instructions so that HTTP links in other apps will still open in Firefox.) There&#8217;s an intranet application that I need to use that does not work in Firefox 4, Firefox 5, Chrome, Opera, or Safari. It also runs painfully slowly in Microsoft Internet Explorer 8. Since it does support Firefox 3.6, I thought [...]]]></description>
			<content:encoded><![CDATA[<p>(<strong>Edit</strong>: Corrected instructions so that HTTP links in other apps will still open in Firefox.<a href="http://lpetr.org/blog/wp-content/uploads/2011/07/firefox309-300x300.jpg"><img class="alignright size-thumbnail wp-image-593" title="Firefox icon" src="http://lpetr.org/blog/wp-content/uploads/2011/07/firefox309-300x300-150x150.jpg" alt="" width="150" height="150" /></a>)</p>
<p>There&#8217;s an intranet application that I need to use that does not work in Firefox 4, Firefox 5, Chrome, Opera, or Safari. It also runs painfully slowly in Microsoft Internet Explorer 8. Since it does support Firefox 3.6, I thought I&#8217;d try running two different versions of Firefox side by side.</p>
<ol>
<li><a href="https://www.mozilla.com/en-US/firefox/fx/">Install Firefox</a> if you don&#8217;t have it. At the time of writing, the latest stable version is Firefox 5.</li>
<li><a href="https://www.mozilla.com/en-US/firefox/all-older.html">Download Firefox 3.6</a>.</li>
<li>Start the installation and choose the Custom installation type.</li>
<li>Install it to a non-standard location such as &#8220;C:\Program Files\Mozilla Firefox 3.6\&#8221;</li>
<li>I recommend telling it to not create any shortcuts, as it will otherwise overwrite the Firefox 5 shortcuts.</li>
<li>Open up the folder where you keep your Firefox shortcuts. Make a copy of one of them.</li>
<li>Right-click -&gt; Properties and add -ProfileManager to the target path (not the &#8220;Start in&#8221; field)</li>
<ul>
<li><tt>"C:\Program Files\Mozilla Firefox\firefox.exe" -ProfileManager</tt></li>
</ul>
<li>Make sure Firefox is closed and launch that shortcut. It will open up the Firefox Profile Manager.</li>
<li>Create a new profile. Name it something like: Firefox36</li>
<li>Close the Profile Manager.</li>
<li>Configure the main shortcut as follows:</li>
<ul>
<li>Mozilla Firefox</li>
<li><tt>"C:\Program Files\Mozilla Firefox\firefox.exe" -P default</tt></li>
<li><tt>"C:\Program Files\Mozilla Firefox\"</tt></li>
<li><strong>Note:</strong> An earlier version of this post added the <tt>-no-remote</tt> parameter to the command line above. This prevented HTML links in other applications (e.g. Outlook, Lotus Notes) from using this browser. You only need to set it on one of the two shortcuts, and I&#8217;ve modified the instructions accordingly with the assumption that this shortcut is to your primary browser.</li>
</ul>
<li>Configure the other shortcut as follows:</li>
<ul>
<li>Mozilla Firefox 3.6</li>
<li><tt>"C:\Program Files\Mozilla Firefox 3.6\firefox.exe" -P Firefox36 -no-remote</tt></li>
<li><tt>"C:\Program Files\Mozilla Firefox 3.6\"</tt></li>
</ul>
<li>Voila!</li>
</ol>
<p><a href="http://lpetr.org/blog/wp-content/uploads/2011/07/firefoxes-2.png"><img class="aligncenter size-medium wp-image-592" title="firefoxes-2" src="http://lpetr.org/blog/wp-content/uploads/2011/07/firefoxes-2-300x105.png" alt="" width="300" height="105" /></a><a href="http://lpetr.org/blog/wp-content/uploads/2011/07/firefoxes.png"><br />
</a><strong>Links</strong></p>
<ul>
<li><a href="http://kb.mozillazine.org/Command_line_arguments">Firefox command line arguments</a></li>
</ul>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/leotech?a=mruCnDSJQ3E:uTH4zNKubhI:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/leotech?i=mruCnDSJQ3E:uTH4zNKubhI:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leotech?a=mruCnDSJQ3E:uTH4zNKubhI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/leotech?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/leotech/~4/mruCnDSJQ3E" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://lpetr.org/blog/archives/run-firefox-5-and-firefox-3-6-side-by-side-on-windows/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://lpetr.org/blog/archives/run-firefox-5-and-firefox-3-6-side-by-side-on-windows</feedburner:origLink></item>
		<item>
		<title>Example of #BigData: Social Media Counts</title>
		<link>http://feedproxy.google.com/~r/leotech/~3/VUCPhqSU-c8/example-of-bigdata-social-media-counts</link>
		<comments>http://lpetr.org/blog/archives/example-of-bigdata-social-media-counts#comments</comments>
		<pubDate>Thu, 21 Jul 2011 14:38:30 +0000</pubDate>
		<dc:creator>Leons Petrazickis</dc:creator>
				<category><![CDATA[Big Data]]></category>

		<guid isPermaLink="false">http://lpetr.org/blog/?p=581</guid>
		<description><![CDATA[Here&#8217;s an interesting example from the InfoSphere BigInsights/Hadoop class I&#8217;m attending right now. Note that Social, Mobile, Games, and Heritage are tabs that you can switch between.]]></description>
			<content:encoded><![CDATA[<p><object id="Garys Social Media Count" width="450" height="488" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="quality" value="high" /><param name="src" value="http://www.personalizemedia.com/media/socmedcounter.swf" /><embed id="Garys Social Media Count" width="450" height="488" type="application/x-shockwave-flash" src="http://www.personalizemedia.com/media/socmedcounter.swf" quality="high" /></object></p>
<p>Here&#8217;s <a href="http://www.personalizemedia.com/garys-social-media-count/">an interesting example</a> from the InfoSphere BigInsights/Hadoop class I&#8217;m attending right now. Note that <strong>Social</strong>, <strong>Mobile</strong>, <strong>Games</strong>, and <strong>Heritage</strong> are tabs that you can switch between.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/leotech?a=VUCPhqSU-c8:_EQJOw6BkrE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/leotech?i=VUCPhqSU-c8:_EQJOw6BkrE:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leotech?a=VUCPhqSU-c8:_EQJOw6BkrE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/leotech?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/leotech/~4/VUCPhqSU-c8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://lpetr.org/blog/archives/example-of-bigdata-social-media-counts/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://lpetr.org/blog/archives/example-of-bigdata-social-media-counts</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 0.384 seconds. --><!-- Cached page generated by WP-Super-Cache on 2012-05-17 14:30:51 --><!-- Compression = gzip -->

