<?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>OJ's rants &#187; Technology</title>
	<atom:link href="http://buffered.io/category/tech/feed/" rel="self" type="application/rss+xml" />
	<link>http://buffered.io</link>
	<description>What would OJ do?</description>
	<lastBuildDate>Tue, 06 Jul 2010 20:32:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Dave Thomas at YOW! Nights Brisbane</title>
		<link>http://buffered.io/2010/05/22/dave-thomas-at-yow-nights-brisbane/</link>
		<comments>http://buffered.io/2010/05/22/dave-thomas-at-yow-nights-brisbane/#comments</comments>
		<pubDate>Sat, 22 May 2010 13:30:20 +0000</pubDate>
		<dc:creator>OJ</dc:creator>
				<category><![CDATA[Being in the Industry]]></category>
		<category><![CDATA[Functional Programming]]></category>
		<category><![CDATA[NoSQL]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://buffered.io/?p=830</guid>
		<description><![CDATA[Two nights ago I was fortunate enough to attend a YOW! Nights conference held at the local Microsoft Office here in Brisbane. The speaker for the session was none other than Dave Thomas, the man behind the likes of ObjectMentor. Not only is this guy incredibly switched on, he is thought-provoking and very entertaining to [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://buffered.io/wp-content/uploads/2010/05/haskell-logo-variation.png" alt="Haskell Logo" title="Haskell Logo" width="128" height="128" style="float:right;margin-left:5px;margin-bottom:5px" />Two nights ago I was fortunate enough to attend a <a href="http://yownightbrisbanemay.eventbrite.com/" title="YOW! Nights Brisbane - May 20th">YOW! Nights</a> conference held at the local Microsoft Office here in Brisbane. The speaker for the session was none other than <a href="http://www.davethomas.net/" title="Dave Thomas">Dave Thomas</a>, the man behind the likes of <a href="http://objectmentor.com/" title="Object Mentor">ObjectMentor</a>. Not only is this guy incredibly switched on, he is thought-provoking and very entertaining to boot. I've been to a few of these sessions in the past but I've never seen one as packed out as this one. It was great to see such a turn-out, which no doubt was boosted by the presence of both the <a href="http://www.qmsdnug.org/" title="QMSDNUG">Queensland MSDN Users Group</a> and the <a href="http://bfpg.org/" title="BFPG">Brisbane Functional Programming Group</a>. </p>
<p>The talk was covering <a href="http://en.wikipedia.org/wiki/Functional_programming" title="Functional Programming">Functional Programming</a> and the <a href="http://en.wikipedia.org/wiki/NoSQL" title="NoSQL">NoSQL</a> movement (which, as Dave himself puts it, should be called <em>NoRDB</em>). These are two areas of computing that are currently key interests of mine, so it won't come as a surprise to find that I thoroughly enjoyed the talk. I certainly wasn't the only one. Dave did such a great job of covering the positives of these two movements that we're already seeing more and more people signing up for membership to <a href="http://bfpg.org/" title="BFPG">BFPG</a>.</p>
<p>I'm not going to go into the gory details about what Dave covered in his talk as I don't want to spoil it for other people if he plans on doing it again elsewhere. There are a few things I would like to mention though:</p>
<ul>
<li>Functional Programming is here to stay. If you're not familiar with it, or haven't yet taken a look at it, I suggest you get started!</li>
<li>If you're looking to get involved with FP and you're in or around the Brisbane area, be sure to come to one of our <a href="http://bfpg.org/" title="BFPG">BFPG</a> meetups.</li>
<li>Don't fall into the trap of assuming that if your system needs a back-end data store that an <a href="http://en.wikipedia.org/wiki/Relational_database_management_system" title="Relational Database Management System">RDBMS</a> is the only option, because it's not!</li>
</ul>
<p>This talk has inspired me to not only continue checking out the likes of <a href="http://haskell.org/" title="Haskell">Haskell</a>, <a href="http://erlang.org/" title="Erlang">Erlang</a> and <a href="http://riak.basho.com/" title="Riak">Riak</a>, it's pointed me at some languages that I never knew existed. Languages which are insanely powerful, very dense, yet still extremely useful. Some examples are <a href="http://en.wikipedia.org/wiki/J_(programming_language)" title="J">J</a>, <a href="http://en.wikipedia.org/wiki/K_(programming_language)" title="K">K</a> and <a href="http://en.wikipedia.org/wiki/Q_(programming_language_from_Kx_Systems)" title="Q">Q</a>. <a href="http://www.kx.com/products/database.php" title="KDB+">KDB+</a> in particular is very interesting as it ties in with the use of another type of technology that I was aware of but knew nothing about: <a href="http://en.wikipedia.org/wiki/Column-oriented_DBMS" title="Column Database">Column Databases</a>. Crazy stuff.</p>
<p>After seeing so many people excited by the prospect of Functional Programming after Dave's talk had concluded, I decided to set up a new website for <a href="http://bfpg.org/" title="BFPG">BFPG</a> so that we had a proper home rather than just a spot on <a href="www.meetup.com/Brisbane-Functional-Programming-Group-BFG/" title="BFPG @ Meetup.com">Meetup.com</a>. Check it out and feel free to send through some feedback if you have any, or <a href="http://bfpg.org/contact/" title="Contact BFPG">drop us a line</a> if you have any ideas for talks or would like to present something yourself.</p>
<p>That's it for today's brain-fart <img src='http://buffered.io/wp-content/plugins/smilies-themer/Silk/emoticon_smile.png' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://buffered.io/2010/05/22/dave-thomas-at-yow-nights-brisbane/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Wrong Decision by the Wrong Person</title>
		<link>http://buffered.io/2010/01/28/the-wrong-decision-by-the-wrong-person/</link>
		<comments>http://buffered.io/2010/01/28/the-wrong-decision-by-the-wrong-person/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 12:35:29 +0000</pubDate>
		<dc:creator>OJ</dc:creator>
				<category><![CDATA[Being in the Industry]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[WTF]]></category>
		<category><![CDATA[bad decisions]]></category>
		<category><![CDATA[software developer]]></category>

		<guid isPermaLink="false">http://buffered.io/?p=796</guid>
		<description><![CDATA[There is one thing about my industry that I still find truly amazing (and not in a good way). This is despite the fact that it has happened to me so many times that you think I'd be used to it! I'm talking about non-technical people making technical decisions. For some reason, it's a very [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://buffered.io/wp-content/uploads/2010/01/pizza.jpg" title="The wrong tool." rel="lightbox"><img src="http://buffered.io/wp-content/uploads/2010/01/pizza.jpg" alt="The wrong tool." title="The wrong tool." style="float:right; margin-left:5px; margin-bottom:5px;"  width="150"/></a>There is one thing about my industry that I still find truly amazing (and not in a good way). This is despite the fact that it has happened to me so many times that you think I'd be used to it! I'm talking about non-technical people making technical decisions.</p>
<p>For some reason, it's a very common practice for those people who don't have expertise in a certain field to make decisions for people working in that field. The best example I can think of off the top of my head is the answer to the question: <em>"Which technology should we use?"</em></p>
<p>Let me take a step back in time for a moment. </p>
<p>I applied for a job with a certain company (which shall remain nameless) that was looking for a number of C#/.NET developers of a certain level of experience. After confirming an interview date and time, I turned up to find myself facing a panel of 3 interviewers. One of those people held a technical position, though I found out later that the position he held was self-appointed and certainly not an indication of the person's level of technical knowledge or expertise. The other two were in non-technical positions.</p>
<p>During the interview we had the usual discussions and questions around technial knowledge, depth of understanding of certain areas of the .NET framework, views and approaches to dealing with people in teams, agile experience, etc. It all went very well. At the end of the interview I was given my chance to ask a few questions. The main one I wanted to ask was <em>"Why did you decide to use .NET for this project?"</em></p>
<p>For the record, the <em>previous</em> version of the system was written using an older Microsoft technology stack. The decision had been made to go with .NET for this new version. Can you see the correlation?</p>
<p>The answer was quite stunning. The only reason the project was using .NET was because the previous version was a Microsoft-based solution.</p>
<p>The first thing I thought was "surely that can't be it?". As a matter of fact, that wasn't the <em>only</em> reason for it, but it was the <em>main</em> reason. The decision wasn't made by a technical person, it was made by someone in upper management.</p>
<p>Scary huh!?</p>
<p>In my personal opinion, there is one particular technology that I think would have done a much better job of solving this particular problem, and it's not a Microsoft solution. It's not a Sun solution, or any other mainstream option for that matter. In my view, <strong>Erlang</strong> would have been perfect.</p>
<p>I don't think that a company like that would have ever even considered Erlang as a viable option. Mainly for two reasons. The first is that the amount of skilled Erlang developers available on the East Coast of Australia is extremely small. The second is fear of the unknown/non-mainstream tech. That is, companies like to go with what other companies are going with.</p>
<p>The crazy thing about this scenario is that management go to market to hire people who are domain experts, and then proceed to tell them which technologies to use. Surely you would be better off hiring people to know how to solve problem X really well, and then listen to what they have to say about the technology stack that should be put in place? No, not in this industry. Probably not in my lifetime either!</p>
<p>So if you're a non-tech person leading a team of techies, please PLEASE listen to what they have to say. Ask them what they think is the right approach and the right toolset. Don't take control of the technical decisions. Let them do what you hired them to do: Solve the problem, and use the right tool for the job. If they don't know the answer, or the answer is always the same, then you've got the wrong developers.</p>
<p>Thanks for listening <img src='http://buffered.io/wp-content/plugins/smilies-themer/Silk/emoticon_smile.png' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://buffered.io/2010/01/28/the-wrong-decision-by-the-wrong-person/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>It&#8217;s OK to Fail</title>
		<link>http://buffered.io/2009/12/11/its-ok-to-fail/</link>
		<comments>http://buffered.io/2009/12/11/its-ok-to-fail/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 05:42:38 +0000</pubDate>
		<dc:creator>OJ</dc:creator>
				<category><![CDATA[Being in the Industry]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Fail]]></category>
		<category><![CDATA[ignorance]]></category>
		<category><![CDATA[stagnation]]></category>

		<guid isPermaLink="false">http://buffered.io/?p=775</guid>
		<description><![CDATA[Yes. You read that right. It's OK to fail. Yes, I am talking to you. You... that guy who is part of every team. The one who seems to feel the need to be right about everything. The one who thinks that everything new has already been done 15 years prior. The one who believes [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://buffered.io/wp-content/uploads/2009/12/EpicFail02.jpg" title="Epic Fail" rel="lightbox[775]"><img src="http://buffered.io/wp-content/uploads/2009/12/EpicFail02.jpg" alt="Epic Fail" width="160" style="float:left;padding-bottom:5px;padding-right:5px;" /></a><em>Yes. You read that right. It's OK to fail. Yes, I am talking to you. You... that guy who is part of every team. The one who seems to feel the need to be right about everything. The one who thinks that everything new has already been done 15 years prior. The one who believes that every project they have participated in has been a profound success, and that a project-level failure (which includes missing deadlines or blowing the budget) is something they have never experienced. Failure is not only OK, it's something that you <strong>must</strong> experience somewhere along the way so you know when you've succeeded.</em> </p>
<p><em>It's safe to admit that you just don't know! In fact, it's <strong>better</strong> if you do admit it. Pretending that you know what you don't not only makes you the butt of the jokes, but you end up being detrimental to the success of the project.</em></p>
<p><em>Stop trying to be a know-all. Let go of the idea that you need to be the one to approve everything. Take a step back and be honest to yourself and the rest of the team. You aren't a one-man-band. You aren't the technical guru that you think you are. You aren't even a specialist in a particular area, let alone a jack-of-all-trades.</em></p>
<p><em>When you attempt to do something and you fail, stop trying to make it sound like you haven't failed. Please stop yourself from trying to turn your wrong into a right. <strong>Everyone</strong> fails in one way or another during their working life, and as much as you don't want to admit it, it does include you.</em></p>
<p><em>Change your attitude. You'll be doing yourself a favour.</em></p>
<p><em>And while you're at it, how about you get up to speed with the technology you're working with. Then you won't have to pretend, and the likelihood of you failing will start to decrease.</em></p>
<p><em>Thanks for listening.</em></p>
<hr />
This might seem like an angry rant. I admit it is a little. It's not directed at one particular person. It's aimed at a particuar type, or breed, of person. One that seems to appear in every gig that I work on. This kind of individual can be a bad apple in a barrel of good apples who over time causes long-term rot and frustration amongst the team. Velocity can be seriously affected. Productivity can plummet.</p>
<p>Remember, it's not about you, it's all about the <strong>software</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://buffered.io/2009/12/11/its-ok-to-fail/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>The Future is Erlang</title>
		<link>http://buffered.io/2009/10/31/the-future-is-erlang/</link>
		<comments>http://buffered.io/2009/10/31/the-future-is-erlang/#comments</comments>
		<pubDate>Sat, 31 Oct 2009 10:28:10 +0000</pubDate>
		<dc:creator>OJ</dc:creator>
				<category><![CDATA[Databases]]></category>
		<category><![CDATA[Erlang]]></category>
		<category><![CDATA[Functional Programming]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Mercurial]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Webmachine]]></category>

		<guid isPermaLink="false">http://buffered.io/?p=769</guid>
		<description><![CDATA[For quite a while I've been using my spare cycles to chew over a problem. This problem is not one that hasn't been solved before, but one that I feel can be solved in a much better way. From the bit of research that I've done, I can see at least three areas which can [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://buffered.io/wp-content/uploads/2009/10/erlang.png" alt="erlang" title="erlang" style="float:left;margin-right:5px;margin-bottom:5px;" />For quite a while I've been using my spare cycles to chew over a problem. This problem is not one that hasn't been solved before, but one that I feel can be solved in a much better way. From the bit of research that I've done, I can see at least three areas which can be improved on dramatically. So I've decided, after a long period of deliberation, to go ahead and build my solution and release it to the world as a service!</p>
<p>I know, this kind of thing happens thousands of times a day. Some arbitrary geek decided to build the next killer app and expects to make a crapload of cash out of it. While that would be nice, the ultimate goal isn't the cash. The goal for me is to build something that gets used, and for me to begin to master an area of technology that I've had a quiet passion for for a long period of time now.</p>
<p>My plan is simple. While learning the technologies that I will be using I'll be building another application and blogging about it so that all of you can learn with me. Meanwhile, I shall use my learnings to build this other application at the same time.</p>
<p>The final result should be a series of posts which help other people learn the technology stack, give better coverage and visibility to languages and technologies that a lot of the geek world doesn't know about (and really should!), and for me to carve myself a bit of a niche here on the East coast of Ozland. I am hoping to be able to consult my services out to other businesses as a result.</p>
<p>For those that are interested in following along, here is the full tech stack and toolset that I'll be using:</p>
<ul>
<li><a href="http://erlang.org/" title="Erlang">Erlang</a> - A fantastic cross-platform functional programming language that has some amazing features.</li>
<li><a href="http://bitbucket.org/justin/webmachine/" title="Webmachine HTTP toolkit">Webmachine</a> - A HTTP toolkit which sits on top of <a href="http://code.google.com/p/mochiweb/" title="Mochiweb">Mochiweb</a> that makes it easy to build well-behaved HTTP applications.</li>
<li><a href="http://nitrogenproject.com/" title="Nitrogen Framework">Nitrogen</a> - An Erlang-based framework that makes it easy to build websites.</li>
<li><a href="http://riak.basho.com/" title="Riak">Riak</a> or <a href="http://couchdb.apache.org/" title="CouchDB">CouchDB</a> - Both of these amazing pieces of tech are potential candidates for the back-end storage. I'm not yet sure which one I'll go with.</li>
<li><a href="http://jquery.com/" title="jQuery">jQuery</a> - A great JavaScript library for the front-end.</li>
<li><a href="http://vim.org/" title="VIM text editor">VIM</a> - My favourite text editor <img src='http://buffered.io/wp-content/plugins/smilies-themer/Silk/emoticon_smile.png' alt=':)' class='wp-smiley' /> </li>
<li><a href="http://www.xubuntu.org/" title="Xubuntu">Xubuntu</a> - Ubuntu <a href="http://ubuntu.com/" title="Ubuntu 9.10">Karmic Koala</a> with <a href="http://www.xfce.org/" title="XFCE">XFCE</a> as the window manager.</li>
<li><a href="http://mercurial-scm.org/" title="Mercurial SCM">Mercurial</a> - My favourite version control system.</li>
<li><a href="http://trac.edgewall.org/" title="The Trac Project">Trac</a> - A project tracking tool.</li>
<li><a href="http://www.virtualbox.org/" title="VirtualBox">VirtualBox</a> - My choice for virtualisation. I tend to run Windows 7 as my primary OS, so most of my dev will be in a VM. When I get my desktop machine back up and running (with all three monitors!) it'll most likely multiboot Win 7 and Xubuntu.
<li><a href="http://wave.google.com/" title="Google Wave">Google Wave</a> - I'll be using this for communications with some really switched on people in the Erlang community who have kindly offered to help me with questions and whatnot specific to some of the areas of tech I've mentioned above.</li>
</ul>
<p>During the course of my blogging/learning I'll be focussing on Webmachine, Riak/CouchDB, Erlang and Nitrogen. All the other tools will probably get mentioned along the way, but the primary goal is to focus on these things.</p>
<p>I'm really excited! I'm currently in the process of documenting my goals and the design for the main application. Once that's done, I'll get started with the fun stuff. I've got a lot to do and it should be a fun ride. I hope you enjoy following along!</p>
]]></content:encoded>
			<wfw:commentRss>http://buffered.io/2009/10/31/the-future-is-erlang/feed/</wfw:commentRss>
		<slash:comments>27</slash:comments>
		</item>
		<item>
		<title>Now Running Nginx</title>
		<link>http://buffered.io/2009/09/10/now-running-nginx/</link>
		<comments>http://buffered.io/2009/09/10/now-running-nginx/#comments</comments>
		<pubDate>Thu, 10 Sep 2009 07:52:05 +0000</pubDate>
		<dc:creator>OJ</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://buffered.io/?p=756</guid>
		<description><![CDATA[For the last couple of years, the server which has powered this site (and a few other sites) has been running the free version of Litespeed web server. After feeling the resource burden of Apache, Litespeed was a breath of fresh air! The fact that the "full" version wasn't free didn't bother me, I was [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://buffered.io/wp-content/uploads/2009/09/slow_snail.jpg" rel="lightbox"><img src="http://buffered.io/wp-content/uploads/2009/09/slow_snail.jpg" alt="clarkson_face" title="clarkson_face" width="150" style="float: right; margin-bottom: 5px; margin-left: 5px;" /></a>For the last couple of years, the server which has powered this site (and a few other sites) has been running the free version of <a href="http://litespeedtech.com/" title="Litespeed">Litespeed</a> web server. After feeling the resource burden of <a href="http://httpd.apache.org/" title="Apache Httpd">Apache</a>, Litespeed was a breath of fresh air! The fact that the "full" version wasn't free didn't bother me, I was happy to stick with the standard edition as it seemed more than capable of handling the meagre traffic that this site generates. </p>
<p>After a year or so of serving up content, it managed to handle a <a href="http://www.reddit.com/r/programming/comments/6ngfy/an_interesting_little_problem/" title="An Interesting Little Problem">couple</a> <a href="http://www.reddit.com/r/programming/comments/6tsbf/a_better_nub/" title="A better nub">of</a> <a href="http://www.reddit.com/r/haskell/comments/8whp6/pointfree_style_what_is_it_good_for/" title="Point-free style - What is it good for?">Reddit</a> <a href="http://www.reddit.com/r/haskell/comments/8v95i/data_crunching_in_haskell/" title="Data crunching in Haskell">submissions</a> without much of a bother! I was suitably impressed.</p>
<p>But there comes a time when you can't help but wonder what else is out there. For me, that time came a little while ago when I boosted the number of plug-ins that I use on this site. Litespeed took longer to serve pages up and I couldn't help but notice it. I'm certainly not blaming Litespeed, because the obvious solution is to remove the plug-ins! But I didn't want to do that as those plug-ins provide features for this site that I don't want to lose. So my quest to find another web server began.</p>
<p>Then recently I started researching ideas for developing software in Erlang. I've been reading up on the language for quite a while and I'm getting to the point where I intend to build something. My first effort is going to be a web application that uses <a href="http://code.google.com/p/mochiweb/" title="Mochiweb">Mochiweb</a>, <a href="http://bitbucket.org/justin/webmachine/wiki/Home" title="Webmachine">Webmachine</a> and <a href="http://couchdb.apache.org/" title="CouchDB">CouchDB</a>. I know that at some point I'm going to want to have this thing run on the web so that other people can play with it and that would mean that I would have to have a web server available that could also route requests to my Erlang server. Of course, I want it to be <em>quick</em>.</p>
<p><a href="http://buffered.io/wp-content/uploads/2009/09/clarkson_face.jpg" rel="lightbox"><img src="http://buffered.io/wp-content/uploads/2009/09/clarkson_face.jpg" alt="clarkson_face" title="clarkson_face" width="150" style="float: left; margin-bottom: 5px; margin-right: 5px;" /></a>So after a bit of deliberation and research, I followed the footsteps of some big players and ended up installing <a href="http://nginx.net/" title="Nginx">Nginx</a> (which I believe is pronounced <em>"Engine-X"</em>). I kid you not, this thing is amazing! I'm not going to give a full review of it here because I haven't used it enough to know how good it is. But the speed-up for this site in particular is obvious (at least for me).</p>
<p>My mate Dan's <a href="http://shiftperception.com/blog/" title="Shiftperception">site</a> <strong>absolutely flies</strong>!</p>
<p>On the whole, <a href="http://wiki.nginx.org/Main" title="Nginx wiki">Nginx</a> gets a huge thumbs up from me thus far. If you're looking for a speedy web server that can do reverse proxying, dish up static content like a maniac and handle forwarding of requests to a variety of other servers then you should seriously consider taking a look at Nginx.</p>
<p>Thank you, <a href="http://sysoev.ru/en/" title="Igor Sysoev">Igor</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://buffered.io/2009/09/10/now-running-nginx/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>The Value of a Technical Community</title>
		<link>http://buffered.io/2009/07/29/the-value-of-a-technical-community/</link>
		<comments>http://buffered.io/2009/07/29/the-value-of-a-technical-community/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 21:30:29 +0000</pubDate>
		<dc:creator>OJ</dc:creator>
				<category><![CDATA[Being in the Industry]]></category>
		<category><![CDATA[Haskell]]></category>
		<category><![CDATA[Mercurial]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[anger]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[irc]]></category>
		<category><![CDATA[value]]></category>

		<guid isPermaLink="false">http://buffered.io/?p=737</guid>
		<description><![CDATA[This post was inspired by an experience I had recently in an IRC channel. To protect the innocent, I'll refrain from naming and shaming the channel and individual as those details aren't important. Communities are arguably the life blood of technology. Without a good community the likelihood of the technology catching on is drastically reduced. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://buffered.io/wp-content/uploads/2009/07/community.jpg" title="Cricket Team Holding Hands --- Image by © Royalty-Free/Corbis" rel="lightbox[737]"><img src="http://buffered.io/wp-content/uploads/2009/07/community-150x150.jpg" alt="Cricket Team Holding Hands --- Image by © Royalty-Free/Corbis" title="Cricket Team Holding Hands --- Image by © Royalty-Free/Corbis" width="150" style="float: left; margin-right: 5px; margin-bottom: 5px;" /></a>This post was inspired by an experience I had recently in an IRC channel. To protect the innocent, I'll refrain from naming and shaming the channel and individual as those details aren't important.</p>
<p>Communities are arguably the life blood of technology. Without a good community the likelihood of the technology catching on is drastically reduced. Those communities which lack individuals that are happy to put time and effort in to help get others up to speed tend to stagnate. Any community which involves members that are abrasive, rude and downright offensive is destined to suffer long term. </p>
<p>The level of suffering will vary depending on quite a few things. Those things include existing user base, the age of the technology and the number of different ways that a given <acronym title="New person">n00b</acronym> can get information about that technology.</p>
<p><a href="http://en.wikipedia.org/wiki/Internet_Relay_Chat" title="IRC">IRC</a> is a very common and popular means for members of communities to interact. It provides a real-time element that you don't get with blogs, forums and other media like <a href="Twitter" title="http://twitter.com/">Twitter</a>. It satisfies every geek's desire to get the answer and get it <strong>now</strong>. Experiencing support in real time via IRC can be extremely helpful and rewarding. It can work wonders for the popularity and image of the community and the technology itself.</p>
<p>If you're interested in seeing some active and extremely helpful communities, you should take a look at <a href="irc://chat.freenode.net/haskell" title="#haskell on freenode">#haskell</a> and <a href="irc://chat.freenode.net/mercurial" title="#mercurial on freenode">#mercurial</a>. Both of these channels are generally very active. The people that spend time in them are both helpful and friendly. Both of these channels indicate to me that there is a very healthy and vibrant community behind each of these pieces of technology.</p>
<p><a href="http://buffered.io/wp-content/uploads/2009/07/anger.jpg" title="ARGH!" rel="lightbox[737]"><img src="http://buffered.io/wp-content/uploads/2009/07/anger.jpg" width="200" alt="ARGH!" title="ARGH!" style="float: right; margin-left: 5px; margin-bottom: 5px;"/></a><br />
Unfortunately, this kind of communication also has a downside. The real-time nature of IRC allows people to vent anger on newcomers without any means of moderation. The net result of this is that other individuals become to scared to offer their view or provide support for fear of receiving the same treatment. This goes for members with any level of skill or knowledge. There are some community channels out there containing hundreds of people, and yet there is no conversation. When questions are asked, nobody responds.</p>
<p>After my recent experience in a channel that fist this description, it's easy to see why. In less that half an hour of asking for clarification on certain points, I received a barrage of abuse which, in my view, was <strong>totally unjustified</strong>.</p>
<p>But let's say, for the sake of argument, that it was justified. That for some reason I annoyed someone in such a way that bombarding me with many 4 and 5-letter expletives was acceptable. Do <em>you</em> think that it paints a good picture of the community?</p>
<p><strong>I think <em>not</em>.</strong></p>
<p>In less than half an hour I went from excited to deflated. I lost interest in the piece of technology and lost faith in the community around it. Was my response justified or understandable?</p>
<p>I'm not sure about the answer to this <img src='http://buffered.io/wp-content/plugins/smilies-themer/Silk/emoticon_smile.png' alt=':)' class='wp-smiley' /> </p>
<p>I feel that it's the job of the community to moderate other members of their community. If people get abusive then other members should step in and prevent it. In my case this wasn't possible due to the fact that the person in question was abusing me via a private chat so that the channel couldn't witness his venting. I'm guessing this wasn't the first time that he's done this to someone, nor will it be the last. I wonder how many others have suffered the same fate? If the silence of the channel is anything to go by, I'm guessing quite a few.</p>
<p>I guess what I'm trying to say here is this: don't underestimate the value and importance of your community. It's one of the most frequented faces of your technology. If it's bitter, unwelcoming and unsupportive, you will not only lose valuable newcomers who come looking for information and support, you will also lose future users due to the poor reputation. Ultimately, your tech will suffer.</p>
<p>If you're part of a community, do your bit to police it. Help those who need help. Stop those people who are abusive.</p>
<p>.. and if you don't have anything nice to say, then <em>don't say anything at all</em>!</p>
<p>
<!-- Begin Google Adsense code -->
<p><center>
<script type="text/javascript"><!--
google_ad_client = "pub-5662448744756930";
/* 468x60, created 2/11/09 */
google_ad_slot = "8047929723";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></center></p>
<!-- End Google Adsense code -->
</p>
]]></content:encoded>
			<wfw:commentRss>http://buffered.io/2009/07/29/the-value-of-a-technical-community/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Server Refresh</title>
		<link>http://buffered.io/2009/02/16/server-refresh/</link>
		<comments>http://buffered.io/2009/02/16/server-refresh/#comments</comments>
		<pubDate>Sun, 15 Feb 2009 21:24:46 +0000</pubDate>
		<dc:creator>OJ</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Shortcuts]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[gentoo]]></category>
		<category><![CDATA[maintenance]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://buffered.io/?p=634</guid>
		<description><![CDATA[Over the weekend I revamped the webserver. Over the last month or two I've been bummed about the amount of overhead in maintaining a Gentoo install as my webserver. Now before any of you Gentoo zealots have a whinge, let me explain. Yes, Portage is cool. It's quick, it builds stuff from source, etc. While [...]]]></description>
			<content:encoded><![CDATA[<p>Over the weekend I revamped the webserver. Over the last month or two I've been bummed about the amount of overhead in maintaining a <a href="Gentoo" title="http://www.gentoo.org/">Gentoo</a> install as my webserver. Now before any of you Gentoo zealots have a whinge, let me explain.</p>
<p>Yes, <a href="Portage" title="http://en.wikipedia.org/wiki/Portage_(software)">Portage</a> is cool. It's quick, it builds stuff from source, etc. While that power is great, it's a pain in the butt at the same time. Especially when you're running on a <a href="VPS" title="http://en.wikipedia.org/wiki/Virtual_private_server">VPS</a>. I am tired of the underlying bits and pieces changing constantly and me having to muck around with masking and unmasking packages just to get things to update and play nicely together.</p>
<p>I made the decision to switch to <a href="Debian" title="http://www.debian.org/">Debian</a> and I am happy I did it. I don't think the time I'll have to spend maintaining the server will be as high as before. This is all about productivity and as far as I'm concerned this is going to reduce my workload. Given that my software installs don't change once I've got the server up and running, I shouldn't have to spend that amount of time keeping things running.</p>
<p>As always, there's a risk of teething problems when you do a full reinstall. So if anyone out there is having issues then please <a href="Contact me" title="http://buffered.io/contact-me/">let me know</a>. Cheers! <img src='http://buffered.io/wp-content/plugins/smilies-themer/Silk/emoticon_smile.png' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://buffered.io/2009/02/16/server-refresh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Assembly Signing Article Translated into Italian</title>
		<link>http://buffered.io/2009/01/14/assembly-signing-article-translated-into-italian/</link>
		<comments>http://buffered.io/2009/01/14/assembly-signing-article-translated-into-italian/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 08:16:05 +0000</pubDate>
		<dc:creator>OJ</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[italian]]></category>
		<category><![CDATA[translation]]></category>

		<guid isPermaLink="false">http://buffered.io/?p=618</guid>
		<description><![CDATA[You may remember a little while ago I wrote a post on signing assemblies that you don't have the source code to. It got a bit of attention and was reproduced in full on dzone's dotnet site. That was pretty exciting. This, however, I find more exciting. This article has now been translated into Italian! [...]]]></description>
			<content:encoded><![CDATA[<p>You may remember a little while ago I wrote a post on <a href="http://buffered.io/2008/07/09/net-fu-signing-an-unsigned-assembly-without-delay-signing/" title=".NET-fu: Signing an Unsigned Assembly (without Delay Signing)">signing assemblies</a> that you don't have the source code to. It got a bit of attention and was reproduced in full on <a href="http://dotnet.dzone.com/news/net-fu-zero-delay-signing-of-a" title=".NET-Fu: Zero Delay Signing Of An Unsigned Assembly">dzone's dotnet site</a>. That was pretty exciting.</p>
<p>This, however, I find <em>more</em> exciting. This article has now been <strong>translated into Italian</strong>! This is the first time an article of mine has been reproduced in another language, which I think is just fantastic.</p>
<p>My colleague, <a href="http://www.otherbit.com/modules/blog/" title="otherbit - New Media &#038; Software">Cosimo</a> has been hard at work making the Italian version for the last couple of weeks. From what I can see it looks like he's done a marvellous job.</p>
<p>So for those of you who are looking for the Italian version of this article, you can find it over <a href="http://www.otherbit.com/modules/blog/BlogContent.aspx?ID=174" title=".NET-FU : come trasformare in SIGNED un assembly UNSIGNED (senza ricorrere al DELAY SIGNING)">here on Cosimo's blog: .NET-FU : come trasformare in SIGNED un assembly UNSIGNED (senza ricorrere al DELAY SIGNING)</a>. Thanks very much Cosimo!</p>
<p>If there's anyone else out there who is interested in translating articles into your home language then please feel free to contact me.</p>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://buffered.io/2009/01/14/assembly-signing-article-translated-into-italian/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>The Sales Pipeline</title>
		<link>http://buffered.io/2009/01/13/the-sales-pipeline/</link>
		<comments>http://buffered.io/2009/01/13/the-sales-pipeline/#comments</comments>
		<pubDate>Tue, 13 Jan 2009 09:21:08 +0000</pubDate>
		<dc:creator>OJ</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[coming soon]]></category>

		<guid isPermaLink="false">http://buffered.io/?p=615</guid>
		<description><![CDATA[Here's a brief list of what's coming down the pipe on this blog in the coming weeks. I thought I'd post this info as I've had a few people ask what's up next and I'm tired of telling the same story over and over So here it is! Sorting - Yes this series is still [...]]]></description>
			<content:encoded><![CDATA[<p>Here's a brief list of what's coming down the pipe on this blog in the coming weeks. I thought I'd post this info as I've had a few people ask what's up next and I'm tired of telling the same story over and over <img src='http://buffered.io/wp-content/plugins/smilies-themer/Silk/emoticon_smile.png' alt=':)' class='wp-smiley' /> So here it is! </p>
<ol>
<li><a href="http://buffered.io/2008/08/13/sorting-things-out/" title="Sorting things Out">Sorting</a> - Yes this series is still very much alive. I am working through the content of the post on the Quick Sort algorithm. It's quite a tricky algorithm to describe <em>well</em> while not being overly confusing or using too much jargon. Most of the work that I am doing here is around trying to make the information easier to digest. After that, there are still many other algorithms that I'll be covering.</li>
<li>Debugging .NET in Production Environments - Experience and skill in this area is surprisingly rare. I've had a bit of experience with it, but was inspired by <a href="http://www.acorns.com.au/Blog/" title="Parallel Thinking">Corneliu's</a> Tech.Ed AU 08 presentation to take some time to blog about it. A few posts are in the pipe which I hope will aid in exposing the innards of this "black art".</li>
<li>Thoughts on <a href="http://www.microsoft.com/windows/windows-7/beta-download.aspx" title="Download Windows 7 Beta">Windows 7 Beta</a> - I'll be installing this shortly and playing with it a fair bit over the coming weeks. No doubt I'll have a few things to say. My goal isn't to list features, like so many other sites, but to talk about my views on usability, stability and performance.</li>
<li>Thoughts on <a href="http://www.ndepend.com/" title="NDepend">NDepend</a> - This is a tool that I've read up on but have never used. I have a pro license now and am ready to give it a good run. I'll be posting my thoughts down the track when I feel I'm at a point where I can give a solid appraisal.</li>
<li><a href="http://projecteuler.net/" title="Project Euler">Project Euler</a> solutions - Yes I'm still working through them. It's hard to find the time to go through them at the rate that I used to, but I still do them from time to time. Yes I'm still using <a href="http://haskell.org/" title="Haskell">Haskell</a>, and yes I'll be posting the source in the hope that someone can point out how bad it is and help me learn more. The next post will cover the solution to <a href="http://projecteuler.net/index.php?section=problems&#038;id=11" title="Problem 11">problem 11</a>. I've got two different approaches that I will be talking about as I found both of the fun and interesting.</li>
<li>Some "niche" posts - That is, posts which hit a specific point of pain (such as the <a href="http://buffered.io/2008/07/09/net-fu-signing-an-unsigned-assembly-without-delay-signing/" title=".NET-fu: Signing an Unsigned Assembly (without Delay Signing)">assembly signing</a> post) but aren't the run-of-the-mill post containing information or value that can be utilised every day. The goal is to share bits of info which might only be useful once in a blue moon, but you're grateful for knowing it when you do need it!</li>
<li>Random bits and pieces - Whatever else takes my fancy or pops up along the way.</li>
</ol>
<p>My aim is to get a good mix of stuff on here to make it enjoyable for a big audience.</p>
<p>Suggestions are also welcome <img src='http://buffered.io/wp-content/plugins/smilies-themer/Silk/emoticon_wink.png' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://buffered.io/2009/01/13/the-sales-pipeline/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>OpenDNS is Wicked</title>
		<link>http://buffered.io/2008/08/18/opendns-is-wicked/</link>
		<comments>http://buffered.io/2008/08/18/opendns-is-wicked/#comments</comments>
		<pubDate>Mon, 18 Aug 2008 12:03:42 +0000</pubDate>
		<dc:creator>OJ</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Tips/Tricks]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[Freeware]]></category>

		<guid isPermaLink="false">http://buffered.io/?p=508</guid>
		<description><![CDATA[Over the last couple of weeks the DNS timeouts and lags I've been experiencing at home have made the web experience a little dire. My ISP is actually pretty darned good, but for some reason they seem to have glitches with their DNS servers every now and then. The last time it happened I wasn't [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Use OpenDNS to make your Internet faster, safer, and smarter." href="http://www.opendns.com/share/"><img src="http://images.opendns.com/buttons/use_opendns_155x52.gif" width="155" height="52" style="border:0; float:right; margin-left:5px;margin-bottom;5px" alt="Use OpenDNS" /></a>Over the last couple of weeks the DNS timeouts and lags I've been experiencing at home have made the web experience a little dire. My <a href="http://internode.on.net/" title="Internode">ISP</a> is actually pretty darned good, but for some reason they seem to have glitches with their DNS servers every now and then. </p>
<p>The last time it happened I wasn't able to get <em>any</em> sites to respond. I ended up popping some manual DNS server entries into my router which I had archived in a "welcome" email that I had received when I first signed up for my Internet account. These worked well for a while, but eventually ended up going offline and so I had to look for another option.</p>
<p>Enter <a href="http://opendns.org/" title="OpenDNS">OpenDNS</a>. A free DNS service with a stack of features that anyone can use. I'll go over a few of them.</p>
<p>First up is <strong>Content filtering</strong>. What a fab idea! Offsite content filtering that stops dodgey and unwanted stuff before it even hits your modem. OpenDNS supports content filtering in a couple of ways which makes it really easy to generally filter out particular sites and content.</p>
<p><a href="http://buffered.io/wp-content/uploads/2008/08/opendns_content_filtering_levels.png" rel="lightbox[508]"><img src="http://buffered.io/wp-content/uploads/2008/08/opendns_content_filtering_levels-150x150.png" alt="Content Filtering" title="Content Filtering" width="150" style="float:left; margin-right:5px; margin-bottom:5px;" rel="lightbox[opendns]" /></a>The content filtering mechanism is quite extensive. You have the option of choosing a predefined "filtering level", each of which defines a set of site categories which will be filtered out for viewers on your network. The options go from <em>Minimal</em>, which simply blocks known <a href="http://en.wikipedia.org/wiki/Phishing" title="Phishing">phishing</a> sites, through to <em>High</em> which covers everything from porn and illegal activities to video sharing sites.</p>
<p><a href="http://buffered.io/wp-content/uploads/2008/08/opendns_content_filtering_custom.png" rel="lightbox[508]"><img src="http://buffered.io/wp-content/uploads/2008/08/opendns_content_filtering_custom-150x150.png" alt="Custom Content Filtering" title="Custom Content Filtering" width="150" style="float:right; margin-left:5px; margin-bottom:5px;" rel="lightbox[opendns]" /></a>There is also a <em>Custom</em> level which allows you to choose the categories that you want filtered. This is the long-hand version of the predefined levels mentioned above, which is great as it let's you pick and choose if you want finger-grained control.</p>
<p><a href="http://buffered.io/wp-content/uploads/2008/08/opendns_site_block.png" rel="lightbox[508]"><img src="http://buffered.io/wp-content/uploads/2008/08/opendns_site_block-150x150.png" alt="Site Blocking" title="Site Blocking" width="150" style="float:left; margin-right:5px; margin-bottom:5px;" rel="lightbox[opendns]" /></a>Lastly, as far as filtering goes, you have the option of allowing or blocking sites as a hard rule. This is handy if you know that a particular site is getting caught in your filter but you know for sure that it's safe. This happens surprisingly often, so having a whitelist is very handy. Being able to block a stack of ad sites before they even hit your browser is also a winner, hence the blacklist feature is great too.</p>
<p><a href="http://buffered.io/wp-content/uploads/2008/08/opendns_client.png" rel="lightbox[508]"><img src="http://buffered.io/wp-content/uploads/2008/08/opendns_client-150x150.png" alt="OpenDNS Client" title="OpenDNS Client" width="150" style="float:right; margin-left:5px; margin-bottom:5px;" rel="lightbox[opendns]" /></a>Thankfully OpenDNS supports <strong>IP address auto-update</strong>. Over time, you'll no doubt get different IP addresses from your ISP as your DHCP leases expire or when you reconnect your modem to your service. Given that OpenDNS needs to have some way of determining who you are, IP address really is the only way. So to help keep OpenDNS up-to-date with your current IP (and hence, keep applying your filtering rules), there is a client application that you can have running in your system tray which contacts the service periodically and makes sure that it has the latest IP. While this is a great idea it's a bit crap that you have to run a client application. It's a shame that they didn't decide to support the use of another dynamic addressing system such as <a href="http://dyndns.org/" title="DynDns">DynDns.org</a> (lots of modems have built-in support for updating services like DynDns automatically).</p>
<p><a href="http://buffered.io/wp-content/uploads/2008/08/opendns_customisation.png" rel="lightbox[508]"><img src="http://buffered.io/wp-content/uploads/2008/08/opendns_customisation-150x150.png" alt="Customisation" title="Customisation" width="150" style="float:left; margin-right:5px; margin-bottom:5px;" rel="lightbox[opendns]" /></a>For those who like to make their services feel cosey, OpenDNS supports <strong>customisation</strong> of various bits of functionality. For example, you're able to change the logo picture (this is more of an interest to site admins). You can also modify messages that are displayed when sites are blocked for various reasons. For those of you on home networks, specifying more meaningful messages for those, shall we say, "less technical" family members will no doubt be beneficial in reducing the number of support calls.</p>
<p><a href="http://buffered.io/wp-content/uploads/2008/08/opendns_shortcuts.png" rel="lightbox[508]"><img src="http://buffered.io/wp-content/uploads/2008/08/opendns_shortcuts-150x150.png" alt="Shortcuts" title="Shortcuts" width="150" style="float:right; margin-left:5px; margin-bottom:5px;" rel="lightbox[opendns]" /></a><strong>Network shortcuts</strong> are another nifty feature. A network shortcut is essentially a bookmark which works across the entire network. All you have to do is specify a name for your shortcut, and the site that it redirects to, and you're done. Once the shortcut has been saved, all you have to do to get to the site is type in the name of the shortcut. When the DNS request is made, OpenDNS looks for any shortcuts by that name that exist in your list, and if found, it will redirect the user to the appropriate site. Groovey!</p>
<p>At first you don't believe it, but OpenDNS is <strong>surprisingly quick</strong>. I wouldn't say that I have conducted a huge set of performance tests and benchmarks, but I would say that it by far outperforms my ISP's DNS servers as far as responsivity is concerned. Not just that, but <strong>it works</strong>. I am yet to see a DNS lookup fail requiring me to retry.</p>
<p>The final redeeming feature of OpenDNS is that it's constantly updated and secure. <a href="http://www.doxpara.com/?p=1185">Flaws in the DNS system</a>, for example, have already been patched. This reduces the chances of you dealing with an insecure DNS server (such as the one sitting at your ISP) and ending up at a site that might be a little unsavoury.</p>
<p>To sum up, I really think OpenDNS is a great service. It's fast, feature-rich and very handy. For anyone with a family/kids or a need/desire to filter out some of the f**ked up content that lives on the web (such as this site ;)), this service is for you. Give it a spin!</p>
]]></content:encoded>
			<wfw:commentRss>http://buffered.io/2008/08/18/opendns-is-wicked/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>
