<?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/" version="2.0">

<channel>
	<title>Equivalence</title>
	
	<link>http://equivalence.co.uk</link>
	<description>Technical Blog for Software Developers</description>
	<lastBuildDate>Wed, 04 Apr 2012 22:32:52 +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/Equivalence" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="equivalence" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><image><link>www.equivalence.co.uk</link><url>http://www.equivalence.co.uk/eq.png</url><title>Equivalence</title></image><item>
		<title>writing code used to be simple</title>
		<link>http://equivalence.co.uk/archives/1944</link>
		<comments>http://equivalence.co.uk/archives/1944#comments</comments>
		<pubDate>Wed, 04 Apr 2012 08:36:05 +0000</pubDate>
		<dc:creator>Gregg</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[code libraries]]></category>
		<category><![CDATA[complex]]></category>
		<category><![CDATA[reinventing the wheel]]></category>
		<category><![CDATA[ruby on rails]]></category>

		<guid isPermaLink="false">http://equivalence.co.uk/?p=1944</guid>
		<description><![CDATA[Not that many years ago, though more than I care to remember, the process of writing code started with pen on paper. I&#8217;m not talking about 1970 here where you had to apply for compute time on some mainframe to see your ideas come alive, rather 1995 where it seemed the normal practice was to [...]]]></description>
			<content:encoded><![CDATA[<p>Not that many years ago, though more than I care to remember, the process of writing code started with pen on paper. I&#8217;m not talking about 1970 here where you had to apply for compute time on some mainframe to see your ideas come alive, rather 1995 where it seemed the normal practice was to encouraging us disobedient students to first distil our ideas (and code) on paper. I&#8217;m gathering that this practice is largely forgotten? Despite its disappearance this can still be good practice but is made difficult by the increasing complexity of modern code libraries and frameworks.</p>
<p>Take Ruby on Rails for example. This used to be the poster child of getting an application up and running quickly. This might be still be true if you have years of experience developing Rails applications but for a newbie, forget it, you are going to struggle. The introduction of the asset pipeline, amongst other things, has made learning how to use Rails a labour of love.</p>
<p>It&#8217;s not just Rails though. A lot of the code that you need will already be wrapped up in a library written by someone else. Creating a modern software application is essentially just a case of rearranging these packages into a new unique order. In fact, the need for the order to be unique can probably be dropped.</p>
<p>Using these libraries is good though? Right? I mean we should never &#8220;reinvent the wheel&#8221;? </p>
<p>So how many times do you find yourself spending more time trying to figure out how the fuck to use some library than if you had written it yourself? No-one really expects there to be detailed documentation, which is just as well, as in general you&#8217;d be thoroughly disappointed. Maybe it&#8217;s because I&#8217;m dumb, but figuring out how to use a library can be a complete time sink. I mean, I hate to encourage this, as it seems like I&#8217;m committing a heinous crime, &#8217;cause that&#8217;s what I&#8217;m told I&#8217;m doing, but just write the code yourself if it gets it working quicker for you. Obviously don&#8217;t rewrite the exact library that you are shying away from using, that is just stupid, but if you only need a subset of it&#8217;s functionality then go for it.</p>
<p>Never forget though, there will be a team of astronauts telling you that&#8217;s not what you should be doing. They will be spouting dogma, about this and that. However, if abandoning some well written (and not so well written) rules allows you to create a product that people use and love then tell the astronauts there are people who want to hear their shit on the moon and let them go there.</p>
<img src="http://feeds.feedburner.com/~r/Equivalence/~4/Xb5tzxSAJlk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://equivalence.co.uk/archives/1944/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>managing people like they do in the movies</title>
		<link>http://equivalence.co.uk/archives/1926</link>
		<comments>http://equivalence.co.uk/archives/1926#comments</comments>
		<pubDate>Thu, 22 Mar 2012 11:52:31 +0000</pubDate>
		<dc:creator>Gregg</dc:creator>
				<category><![CDATA[Observations]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[micro-management]]></category>
		<category><![CDATA[stress]]></category>

		<guid isPermaLink="false">http://equivalence.co.uk/?p=1926</guid>
		<description><![CDATA[Blogging about how hard you are to &#8220;manage&#8221; is possibly not top of the list of the smartest things I&#8217;m likely to do. The day will no doubt come when I&#8217;ll be contacting Google begging, pleading and grovelling to get this damn article removed from its cache. Serendipity will mean this is likely to bite [...]]]></description>
			<content:encoded><![CDATA[<p>Blogging about how hard you are to &#8220;manage&#8221; is possibly not top of the list of the smartest things I&#8217;m likely to do. The day will no doubt come when I&#8217;ll be contacting Google begging, pleading and grovelling to get this damn article removed from its cache. Serendipity will mean this is likely to bite me, and bite me hard.</p>
<p>It&#8217;s been a while since I&#8217;ve taken my place in that ageing behemoth of corporate management structure. Occasionally I&#8217;m thrown back there when either I think too hard or I&#8217;m told a story of the woes and misery bestowed upon a leaders minions as he marches forward &#8220;managing&#8221; those below his threshold. It&#8217;s like everyone heard that the do-as-I-say-or-I&#8217;ll-make-your-life-shit style of management doesn&#8217;t exactly work but someone forgot to tell those in management. It&#8217;s not a pretty sight to see.</p>
<p>So yes, people still manage like it&#8217;s the 1920s, &#8217;cause that&#8217;s how they see it done in the movies, man! Just like how having sex like it&#8217;s done in a porno is probably not what you want to do when you&#8217;re tucked up in bed for a night of love with your other half. However, what these two things do share in common is that bringing up the topic doesn&#8217;t seem to result in an optimal outcome.</p>
<p>Have the gall to bring this up with your manager and you&#8217;re likely to be branded, then derided, and finally sent with your tail between your legs to your (now) wall facing desk. Even the thought of saying no or questioning management is likely to lead to stress and anxiety in those that live with this day in day out. So much so that I&#8217;m even banned from bring up this topic of conversation with certain people.</p>
<p>How hard can it be to realise that you (presumably) were employed because you could do the job? You know more about what you are doing than those managing you? Therefore you are going to be the best person to make any decisions. Sure, there are jobs where this may not make sense, there are exceptions to everything, but micro-managing an intelligent workforce is the worst management decision of all.</p>
<p>Joel Spolsky <a href="http://www.avc.com/a_vc/2012/02/the-management-team-guest-post-from-joel-spolsky.html">wrote about the very same topic</a> and suggested that management should actually be called administration. This makes sense.</p>
<p>People being stressed out about their manager is so wrong on so many levels. Actively reducing the quality of someone&#8217;s life is not something to be proud of. You should be damn well fucking ashamed of yourself if you are. If there is a problem, talk about it, try to sort it out, advise them that the job might not be suitable. Leave your ego at the door, you don&#8217;t need to control everyone&#8217;s life, settle for controlling your own. </p>
<img src="http://feeds.feedburner.com/~r/Equivalence/~4/TBM0zeTl0E8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://equivalence.co.uk/archives/1926/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>the budget VPS dilemma</title>
		<link>http://equivalence.co.uk/archives/1895</link>
		<comments>http://equivalence.co.uk/archives/1895#comments</comments>
		<pubDate>Fri, 16 Mar 2012 00:30:58 +0000</pubDate>
		<dc:creator>Gregg</dc:creator>
				<category><![CDATA[Amazon EC2]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[UK VPS]]></category>
		<category><![CDATA[VPS]]></category>

		<guid isPermaLink="false">http://equivalence.co.uk/?p=1895</guid>
		<description><![CDATA[My time with the free Amazon EC2 micro instance drew to a close in the last few weeks, that coupled with a few minor instance freezes in the last couple of months got me interested in moving the sites that I run elsewhere. Traffic to my sites is relatively low, maybe a few hundred hits [...]]]></description>
			<content:encoded><![CDATA[<p>My time with the free Amazon EC2 micro instance drew to a close in the last few weeks, that coupled with a few minor instance freezes in the last couple of months got me interested in moving the sites that I run elsewhere. Traffic to my sites is relatively low, maybe a few hundred hits a day max. Given this, a cheap VPS package looked to be exactly what was required.</p>
<p>First up, I done a rough calculation that showed that if I wanted to keep my EC2 micro instance running then if I took out a 3 year reserved instance it was likely to cost me (on average) around £50 per year for a US West instance over the next 3 years and closer to £65 per year for an EU based instance. Both of these are pretty good value for money &#8211; and since these sites are essentially a cost sink this is of at least some importance.</p>
<p>However, given the hassle I&#8217;d been having with my instance freezing I thought #1 is this going to keep happening and #2 if I take a reserved instance for 3 years then I&#8217;m kind of tied down.</p>
<p>In the past I&#8217;d been slightly ambivalent about what country the server was hosted in. With Amazon I&#8217;d thought screw it, I&#8217;ll host it in the US West as it was cheaper, thinking that my traffic tends to be spread throughout the world with maybe a slight leaning towards the US. However lately while creating some backups and trying to copy them locally, I released that this might be OK in terms of people viewing a site but it was a solid pain in the ass when taking full backups off the server to my local drive. So I started looking at VPS providers in the UK.</p>
<p>Surprisingly the cost of having your own VPS has nose-dived &#8211; I presume this is due to Amazon driving down prices, cheaper hardware and advances in virtualisation software. After looking around I managed to find a decent deal (~£47 a year with <a href="http://www.burstnet.eu">www.burstnet.eu</a>) for a VPS with 512MB RAM, 20GB hard disk, and 1GHz CPU speed on a UK based server &#8211; I&#8217;ll stress again how much better it is to have servers in your own country when using SSH and copying files.</p>
<p>Now some might be asking why not just go for shared hosting? Well for many this is likely to be a good option. However, when you are running more than 2-3 sites I found that using a VPS is likely to come in at the same price if not cheaper. Plus, I rather enjoy installing the software, setting up the servers, admin of the server, etc. Sure, I may screw it up from time-to-time, but over the years I have learned quite a bit from doing things like this myself. This knowledge has been useful on many occasion. If you write software then you really should know at least something about the platform it runs on &#8211; maybe this is old fashioned now I dunno.</p>
<p>Anyway I actually started this post aiming to discuss how I set up WordPress, PHP, nginx, etc on my budget VPS but I&#8217;ve gone on way too long already. That&#8217;ll have to be a topic for another day. Instead I&#8217;ll wrap this up by summerising that:</p>
<ol>
<li>Amazon may not always be the cheapest &#8211; except in the first year where a micro instance is free, and you can&#8217;t beat free;</li>
<li>Check <a href="http://www.lowendbox.com">www.lowendbox.com</a> to see if there are any nice deals going;</li>
<li>Try to find a server that is geographically close to you if possible;</li>
<li>If you&#8217;re a developer, get a Linux VPS, even if it does costs you, call it an investment in your career &#8211; OK, you can do this stuff on a local Linux machine but it ain&#8217;t the same. It&#8217;s good to know how to set up a web server, configure it, and other general server admin tasks. If you ever plan to scale something one day these things will be important. It even gives you a chance to use vi or vim and wonder why the fuck people put themselves though that <img src='http://equivalence.co.uk/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> ;</li>
<li>Having your own server also allows you to make mistakes without that stomach churning moment you get when you realise you&#8217;ve screwed something up at work &#8211; you can now screw up on your own time first;</li>
<li>Running your own server also gives you a better idea on what the performance of your application is. I&#8217;m pretty sure it will surprise you. I thought 512MB was a crazy amount of RAM for a few simple sites. It&#8217;s amazing how it all adds up when you are running a DB and a web server with several websites on one VPS. However that&#8217;s the post I was trying to write when I started this. That&#8217;ll be next.</li>
</ol>
<img src="http://feeds.feedburner.com/~r/Equivalence/~4/_LituJKaf-8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://equivalence.co.uk/archives/1895/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>the internet and i</title>
		<link>http://equivalence.co.uk/archives/1836</link>
		<comments>http://equivalence.co.uk/archives/1836#comments</comments>
		<pubDate>Wed, 01 Jun 2011 16:34:31 +0000</pubDate>
		<dc:creator>Gregg</dc:creator>
				<category><![CDATA[Observations]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[history]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[productivity]]></category>

		<guid isPermaLink="false">http://equivalence.co.uk/?p=1836</guid>
		<description><![CDATA[If you are able to read this please keep it to yourself, don&#8217;t tell anyone about it. Your ability to possess information that others do not have access to is crucial to moving only in the forward direction. Yet there is very little information now that is not readily available to everyone. The internet is [...]]]></description>
			<content:encoded><![CDATA[<p>If you are able to read this please keep it to yourself, don&#8217;t tell <strong>anyone</strong> about it. Your ability to possess information that others do not have access to is crucial to moving only in the forward direction. Yet there is very little information now that is not readily available to everyone. The internet is almost ubiquitous. Rewind a mere 15 years though and observe how the landscape has changed so dramatically.</p>
<p>Back then a PC was the something only the posh kids had.  My school was fully laden with BBC micros that you could only use to control some piece-of-shit-circuit-board that you had cobbled together to light up a few LEDs in the form of a traffic light. </p>
<p>I still remember to this day getting my first PC &#8211; a (big) Compaq laptop of sorts. It was purchased second-hand from a shop that specialized in guns, knifes and guitars &#8211; I still have it somewhere. They probably didn&#8217;t even know what it was. When I read stories of people in the 80s having PCs it makes me laugh as, in my world, this stuff was sooo out of reach that you wouldn&#8217;t believe.</p>
<p>Still, what would the general public have done with the PC back then anyway (apart from gaming)? The internet was a luxury goods item at this point. Even at university only a few computers had internet access. However, between &#8217;95 and &#8217;97 it exploded. You were faced with a computer lab full of students looking up porn and printing out the pictures (I mean they were not much use unless you printed them out, right)! Those were the days of looking up what you wanted with reckless abandon without feeling that someone or something was watching you &#8211; soon to be quashed with the corporate firewall and government legislation. Make no mistake though, we are still in the golden age of the internet. Laws and legislation will likely mean that the freedom we associate with the internet now will not be the same 30 years down the line.</p>
<p>What puzzles me most is how we got by programming without the internet? If tonight I decided that I wanted to learn OCaml to build some super useful web service, then I would start by searching Google. I&#8217;d get binaries, sample programs and documentation in minutes. If I had a problem, I could search on Google or ask a question on Stackoverflow. The barrier to entry is just non-existent. I struggle to remember exactly what we had to do all those years ago. It must have been ridiculously hard compared to the present day. But this is good. We got information easily and moved forward. That said, the internet does have its bad points. </p>
<p>We now struggle to get things done because we can listen to music online, watch videos, read blogs, not to mention the ease with which we can communicate with friends using social networks. What the internet gives with one hand it takes away with the other.</p>
<p>I&#8217;m often tempted to unplug the router and see how I get on with work minus the internet. Invariably at the last minute though I find some compelling reason to have it switched on, then the thought of uplugging it fades into nothing and time just slips away again.</p>
<img src="http://feeds.feedburner.com/~r/Equivalence/~4/fMqZ0Ua1uJ8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://equivalence.co.uk/archives/1836/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>on being open to change</title>
		<link>http://equivalence.co.uk/archives/1824</link>
		<comments>http://equivalence.co.uk/archives/1824#comments</comments>
		<pubDate>Fri, 15 Apr 2011 15:35:53 +0000</pubDate>
		<dc:creator>Gregg</dc:creator>
				<category><![CDATA[Observations]]></category>
		<category><![CDATA[startup]]></category>
		<category><![CDATA[change]]></category>
		<category><![CDATA[dhh]]></category>
		<category><![CDATA[json fried]]></category>
		<category><![CDATA[opinions]]></category>
		<category><![CDATA[rework]]></category>

		<guid isPermaLink="false">http://equivalence.co.uk/?p=1824</guid>
		<description><![CDATA[How easy is it just to say no? I think you&#8217;ll probably find just about as easy as it is to always say yes. In the past I have often found myself entrenched in that no camp. It&#8217;s so easy to hate a company, a stance or an ideology without even attempting to think of [...]]]></description>
			<content:encoded><![CDATA[<p>How easy is it just to say no? I think you&#8217;ll probably find just about as easy as it is to always say yes. In the past I have often found myself entrenched in that no camp. It&#8217;s so easy to hate a company, a stance or an ideology without even attempting to think of the why.</p>
<p>I recently decided to try out an approach where instead of following my five second gut instinct assessment, I would instead spend some time trying to overcome my own (possibly) over zealous opinions.</p>
<p>My test subjects for this were the guys at 37signals. I frequently found myself disagreeing with most things these guys were saying for no reason other than the aggressive way they generally put forward a point. This is a real stupid thing to do &#8211; even more so when you see it in writing!</p>
<p>Anyway, in this new era of love and enlightenment I picked up the book Rework by Jason Fried and DHH. I was immediately surprised how much I identified with the things these guys were saying about running a business, from focusing on products that can make a profit from day one, to abandoning long range forecasts (or to paraphrase &#8220;elaborate guessing&#8221;) about your business. So two guys I thought I &#8220;hated&#8221; actually hold opinions pretty close to my own, i.e. I was being an asshole!</p>
<p>Before anyone gets the impression that I&#8217;ve now turned into the &#8220;super fanboi&#8221;, I should say that I don&#8217;t think that Rework described THE way to run a business. It&#8217;s simply A way to go about things, and one that happens to be close to what I believe. For example, the books contains ideas that may fall apart when it comes to dealing with large enterprises or when trying to build &#8220;uber&#8221; companies like Google and Facebook &#8211; who can argue with their success. However most of the ideas seem spot on if you are trying to build a small to medium B2B business.</p>
<p>So the moral of this story is try to see past the way information is being presented to you and look at what the information is actually telling you &#8211; this is true for both the hater and the fanboi.  However, it should also not be overlooked that if something is shit, then say it&#8217;s shit.</p>
<img src="http://feeds.feedburner.com/~r/Equivalence/~4/MhemE6AD1uI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://equivalence.co.uk/archives/1824/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>an afternoon with Don Knuth</title>
		<link>http://equivalence.co.uk/archives/1792</link>
		<comments>http://equivalence.co.uk/archives/1792#comments</comments>
		<pubDate>Thu, 17 Feb 2011 01:09:27 +0000</pubDate>
		<dc:creator>Gregg</dc:creator>
				<category><![CDATA[Algorithms]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Glasgow]]></category>
		<category><![CDATA[Knuth]]></category>
		<category><![CDATA[Zukerberg]]></category>

		<guid isPermaLink="false">http://www.equivalence.co.uk/?p=1792</guid>
		<description><![CDATA[It&#8217;s not often you get the chance to spend an afternoon with probably the most famous hacker/developer/computer scientist the world has ever seen. However, last week I got the chance to do just that when myself and three colleagues had the great fortune to spend some time with Don Knuth. For the uninformed IT &#8220;professionals&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s not often you get the chance to spend an afternoon with probably the most famous hacker/developer/computer scientist the world has ever seen. However, last week I got the chance to do just that when myself and three colleagues had the great fortune to spend some time with <a href="http://www-cs-faculty.stanford.edu/~uno/">Don Knuth</a>.</p>
<p>For the <del datetime="2011-02-16T21:30:36+00:00">uninformed</del> IT &#8220;professionals&#8221; that have never heard of Don Knuth this is the guy that brought to us the idea of <a href="http://en.wikipedia.org/wiki/Analysis_of_algorithms">analysis of algorithms</a> and asymptotic notation (big-O notation), the <a href="http://en.wikipedia.org/wiki/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm">Knuth-Morris-Pratt</a> string searching algorithm, the <a href="http://en.wikipedia.org/wiki/The_Art_of_Computer_Programming">Art of Computer Programming</a> book series, the list goes on. However, he is not only an &#8220;algorithm&#8217;s guy&#8221;, he also developed the <a href="http://en.wikipedia.org/wiki/TeX">Tex</a> typesetting system and the <a href="http://en.wikipedia.org/wiki/Metafont">METAFONT</a> language used to define vector fonts. So basically he is the most famous computing guy out there.</p>
<p>Knuth is a surprisingly easy guy to talk to. Sure, he can really lose you pretty quickly in a conversation, but he also has some great insights. </p>
<p>Our conversations tended to centre around stuff to do with algorithms. His next volume of the Art of Computer Programming will likely focus on <a href="Constraint satisfaction problem">constraint satisfaction problems</a> and <a href="http://en.wikipedia.org/wiki/Boolean_satisfiability_problem">satisfiability problems</a> &#8211; the former being something I worked on myself in the not to distant past. I asked what he thought was a good algorithm to teach people and he said he thought the <a href="http://en.wikipedia.org/wiki/Hopcroft-Karp_algorithm">biparite graph matching algorithm</a> was a nice one in terms of beauty (he did mention another which escapes me now). Not everyone will find the algorithms stuff that interesting (you should!) but his view of beauty is maybe something more universal.</p>
<p>He also expressed a love for writing code, he said that when he gets up in the morning he thinks about writing code and misses it on days when he doesn&#8217;t get the chance. That is pretty cool by me and sits in stark contrast to many academics. I got the feeling that he wasn&#8217;t too keen on the &#8220;apps&#8221; developers as he called them. My guess is that his thoughts lie with more meaningful problems than fart apps &#8211; however people download them so who are we to say. Still, there was definitely some lamenting going on about the fact that people use software without ever trying to understand what the software is actually doing. That is, have at least a high-level view of the data structures and algorithms used that make the said piece of software useful. Having this kind of understanding allows you to select the right tools for the job. In my experience people that tend to have this knowledge and understanding are far better developers and is likely why Google, Microsoft, Facebook et al. try to attract developers with this kind of knowledge.</p>
<p>He was telling us that he watched The Social Network on the way over on the plane. He said he thought it was great how Mark Zuckerberg was also someone who just liked building stuff like him &#8211; this was something Zuckerberg said himself at Startup School 2010. What is even cooler is Mark Zuckerberg actually sent him a copy of the latest Art of Computer Programming book and asked him if he would sign it for him.</p>
<p>So Don Knuth himself will have long forgotten who I am but at least I will be able to recollect years down the line this encounter with a computing genius.</p>
<img src="http://feeds.feedburner.com/~r/Equivalence/~4/IMZOiEaUbnI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://equivalence.co.uk/archives/1792/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>is ruby killing your career?</title>
		<link>http://equivalence.co.uk/archives/1757</link>
		<comments>http://equivalence.co.uk/archives/1757#comments</comments>
		<pubDate>Tue, 15 Feb 2011 00:09:05 +0000</pubDate>
		<dc:creator>Gregg</dc:creator>
				<category><![CDATA[jobs]]></category>
		<category><![CDATA[Observations]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.equivalence.co.uk/?p=1757</guid>
		<description><![CDATA[I&#8217;m probably at the point with Ruby where I consider it my programming language of choice (I program in both Ruby and C++ in my day job). Over the last few years I&#8217;ve kind of grown to love Ruby but I&#8217;m not really one to get passionate over someone else&#8217;s choice of programming language &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m probably at the point with Ruby where I consider it my programming language of choice (I program in both Ruby and C++ in my day job).</p>
<p>Over the last few years I&#8217;ve kind of grown to love Ruby but I&#8217;m not really one to get passionate over someone else&#8217;s choice of programming language &#8211; apart from Java, which, I&#8217;m sorry, I hate. However, when it comes to employment, there is no doubt in my mind that being competent in a particular programming language can strongly influence A) getting an interview and B) getting the job.</p>
<p>This is why ruby developers, like me, are killing their career. Sure Ruby is cool and Rails is awesome but do a quick check on job boards and see how many people are looking for a ruby developer. Actually, let me save you the time I&#8217;ve done some of the work already.</p>
<p>I&#8217;m not claiming this to be scientific in anyway what-so-ever but it does warrant some thought. I only searched using the programming language as a  keyword, which, I know, may not give the full story but should convince you there is some merit in the point that I&#8217;m trying to make. Additionally (and I suppose somewhat importantly) my search area was restricted to Scotland.</p>
<p>First up I carried out a search on s1jobs.com. The table below gives a summary of the results:</p>
<table class="long-table">
<tr>
<th>Language</th>
<th>Number of jobs matching keyword</th>
<tr>
<td>Ruby</td>
<td>3</td>
</tr>
<tr>
<td>Java</td>
<td>18</td>
</tr>
<tr>
<td>C#</td>
<td>26</td>
</tr>
<tr>
<td>C++</td>
<td>9</td>
</tr>
<tr>
<td>PHP</td>
<td>7</td>
</tr>
</table>
<p>I then tried a cwjobs.co.uk:</p>
<table class="long-table">
<tr>
<th>Language</th>
<th>Number of jobs matching keyword</th>
<tr>
<td>Ruby</td>
<td>2</td>
</tr>
<tr>
<td>Java</td>
<td>35</td>
</tr>
<tr>
<td>C#</td>
<td>45</td>
</tr>
<tr>
<td>C++</td>
<td>45</td>
</tr>
<tr>
<td>PHP</td>
<td>4</td>
</tr>
</table>
<p>As you can see, the job prospects for Ruby developers here in Scotland are somewhat dire. Sure, people don&#8217;t always look for a particular programming language when employing someone (which is a decent policy) but, as I said above, it helps a lot.</p>
<p>I decided to take my crude search a little further as I thought &#8220;Hell, there will be waaaaaaay more cool Ruby jobs in London&#8221;. Below we have the results, just cwjobs this time:</p>
<table class="long-table">
<tr>
<th>Language</th>
<th>Number of jobs matching keyword</th>
<tr>
<td>Ruby</td>
<td>57</td>
</tr>
<tr>
<td>Java</td>
<td>792</td>
</tr>
<tr>
<td>C#</td>
<td>838</td>
</tr>
<tr>
<td>C++</td>
<td>611</td>
</tr>
<tr>
<td>PHP</td>
<td>196</td>
</tr>
</table>
<p>That was kind of disappointing! Ruby still doesn&#8217;t do that great &#8211; even worse when you realise there were over 200 that mentioned Perl and 150 Python. By the looks of it if you want to maximise your chances of getting a job in the UK, and already doing Java or C# in your day job, you&#8217;d be better off learning C/C++ in your spare time.</p>
<p>Is all this going to stop me coding in Ruby? Probably not. Is it worth thinking about for a minute? Yes sure. If I was starting my own company and was hoping to get some developers in then I&#8217;m likely to be faced with a problem. Yes you can train people up, but that costs time and money. When they leave it may be worse, as the chances of finding replacements at the required skill level will be difficult. Finding a Java/C#/C++ programmer is bound to be far easier.</p>
<p>So is it all bad news for us Ruby developers? Well not if you plan to move to California &#8211; yeah yeah I know I&#8217;ve went on about it before. I&#8217;m not exactly sure of the popular job boards in the US so I went with the only one I knew off the top of my head, careers.stackoverflow.com. The results for the Bay Area are as follows:</p>
<table class="long-table">
<tr>
<th>Language</th>
<th>Number of jobs matching keyword</th>
<tr>
<td>Ruby</td>
<td>27</td>
</tr>
<tr>
<td>Java</td>
<td>33</td>
</tr>
<tr>
<td>C#</td>
<td>10</td>
</tr>
<tr>
<td>C++</td>
<td>23</td>
</tr>
<tr>
<td>PHP</td>
<td>17</td>
</tr>
</table>
<p>Maybe this was a skewed sample set but impressive all the same. So moral of the story is if you want to be a well paid Ruby hacker make sure you don&#8217;t stay in Scotland <img src='http://equivalence.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .</p>
<img src="http://feeds.feedburner.com/~r/Equivalence/~4/lCVnblAUV_g" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://equivalence.co.uk/archives/1757/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>what’s it like in silicon valley?</title>
		<link>http://equivalence.co.uk/archives/1736</link>
		<comments>http://equivalence.co.uk/archives/1736#comments</comments>
		<pubDate>Mon, 15 Nov 2010 21:21:05 +0000</pubDate>
		<dc:creator>Gregg</dc:creator>
				<category><![CDATA[jobs]]></category>
		<category><![CDATA[scotland]]></category>
		<category><![CDATA[silicon valley]]></category>
		<category><![CDATA[tech companies]]></category>

		<guid isPermaLink="false">http://www.equivalence.co.uk/?p=1736</guid>
		<description><![CDATA[As a computer geek Silicon Valley can almost be seen as the point around which our world spins. For those that haven&#8217;t been there I can&#8217;t recommend enough heading out to see what all the fuss is about. I mean forget that the climate is, well, pretty fucking special and that cycling to work (in [...]]]></description>
			<content:encoded><![CDATA[<p>As a computer geek Silicon Valley can almost be seen as the point around which our world spins. For those that haven&#8217;t been there I can&#8217;t recommend enough heading out to see what all the fuss is about. I mean forget that the climate is, well, pretty fucking special and that cycling to work (in any season) doesn&#8217;t mean making sure everything you buy is windproof and waterproof. What blew me away most of all was the staggering number of tech companies.</p>
<p>Within walking distance of my accommodation there was a Yahoo!, McAfee, Cisco, Intel (this place seemed to stretch for miles), not to mention hundreds of other smaller tech companies scattered around the area. If you can&#8217;t get a job as a developer in the Valley then you must really question your hygiene.</p>
<p>So is there any chance of this sort of thing happening in this country (the UK) or in particular Scotland? Ehhhh, no chance. Why?</p>
<p>Well I don&#8217;t claim to know exactly why, in fact, I admit it&#8217;s somewhat of a guess. One thing that I&#8217;m certain matters is the number of people who are studying computing at university. In recent years this number has plummeted. For me this is a key point. Until you have got talent, and lots of it, pouring out of universities there is no chance that the Google, the Microsofts and Facebooks of this world are going to even consider a small office, never mind a campus. It&#8217;s just not worth it.</p>
<p>There is also a different mindset amongst the graduates here than there is at, say, Standford. It&#8217;s just staggering how many undergraduates are considering coming straight out of collage and starting their own business (<a href="http://startupschool.org/">Startup School</a> was just full of them). It&#8217;s ingrained into their psyche. I&#8217;d almost guarantee you that if I went to a lecture theatre full of final year students here in Glasgow tomorrow and asked how many are seriously considering starting their own business I&#8217;d be able to count them on the one hand and have four fingers left over.</p>
<p>Most students will be happy getting a job at JP Morgan or some other mundane banking establishment where you are simply a cost centre. </p>
<p>This is a vicious circle as the reason that Google, Yahoo!, Twitter, Facebook (to an extent) all have large campuses in Silicon Valley is because this is where they were born. So without this embryonic growth pattern it&#8217;s hard to see how places like Scotland can create and attract these large software companies. The fact is the talent is just not here in sufficient numbers.  To get the gist of the situation, just ask yourself how many people in your current job are really really smart and productive, it will be low, now imagine how you get 500+ more of them.</p>
<p>I hate to be knocking us as a nation but something has to change and it has to be BIG for there to be any hope of being part of this technical revolution. Or maybe that boat has already well and truly sailed.</p>
<img src="http://feeds.feedburner.com/~r/Equivalence/~4/gy9jmIOvQis" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://equivalence.co.uk/archives/1736/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>observations from academia</title>
		<link>http://equivalence.co.uk/archives/1733</link>
		<comments>http://equivalence.co.uk/archives/1733#comments</comments>
		<pubDate>Sun, 17 Oct 2010 19:50:56 +0000</pubDate>
		<dc:creator>Gregg</dc:creator>
				<category><![CDATA[jobs]]></category>
		<category><![CDATA[academia careers]]></category>

		<guid isPermaLink="false">http://www.equivalence.co.uk/archives/1733</guid>
		<description><![CDATA[I&#8217;m going to sum up this post before I&#8217;ve barely started it: only pursue a career in academia if your goal in life is to fill out grant applications forms. Academia, in the UK at least, is going further and further down the line of basing performance of academics on research grant filling stamina. Teaching, [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m going to sum up this post before I&#8217;ve barely started it: only pursue a career in academia if your goal in life is to fill out grant applications forms.</p>
<p>Academia, in the UK at least, is going further and further down the line of basing performance of academics on research grant filling stamina. Teaching, and student satisfaction are easily second and third in the list of contributing factors to the success of your academic career which I think is wrong. In actual fact these points are so insignificant in the sliding scale of your career at a university it’s almost worth not even stating they contribute to your career at all.</p>
<p>I’m lucky, I’m only a default academic in that I’m doing a post-doc but have no plans to pursue a career in this beyond the completion of this work, but looking on in from close up it certainly doesn’t look pretty for the future.</p>
<p>So what can we do about this? Honestly I think that the problem has maybe gone to far down the line for any form of redemption.&#160; However, the only people that have any chance of halting this trend are the actual students.</p>
<p>Students hold the power at universities they just don’t use it effectively. Their power arises from the fact that their fees pay for the running of a university. Economics states that if less students apply for specific courses then that department has less money. Student numbers are *key* to an academic department. The fewer students, less money, and less lecturers, it’s as simple as that.</p>
<p>If a department can correlate a reduction of student numbers to bad teaching practices then maybe something can change. Maybe this is all a bit idealistic, I don’t know.</p>
<p>I’m not sure if their are any social networking tools out there at allow students to rate lecturers in such a way – I expect their is. However, looking out from the inside, there use is largely being ignored if they are. Maybe someone can change this. I’d like to think so.</p>
<img src="http://feeds.feedburner.com/~r/Equivalence/~4/x4p1dtKoTCU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://equivalence.co.uk/archives/1733/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>back to the future with c plus plus</title>
		<link>http://equivalence.co.uk/archives/1702</link>
		<comments>http://equivalence.co.uk/archives/1702#comments</comments>
		<pubDate>Wed, 21 Apr 2010 22:30:08 +0000</pubDate>
		<dc:creator>Gregg</dc:creator>
				<category><![CDATA[C Plus Plus]]></category>
		<category><![CDATA[Boost]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Google Mock]]></category>
		<category><![CDATA[Google Test]]></category>

		<guid isPermaLink="false">http://www.equivalence.co.uk/?p=1702</guid>
		<description><![CDATA[Around 6 years ago I was steadily programming away in C++ in Unix using a Sun Workstation and I quickly followed this up with some Windows programming using MFC. During this time I also experimented with PHP creating a small &#8220;MVC&#8221; style framework long before Rails was even a twinkle in it&#8217;s daddy&#8217;s eye. Now [...]]]></description>
			<content:encoded><![CDATA[<p>Around 6 years ago I was steadily programming away in C++ in Unix using a Sun Workstation and I quickly followed this up with some Windows programming using MFC. During this time I also experimented with PHP creating a small &#8220;MVC&#8221; style framework long before Rails was even a twinkle in it&#8217;s daddy&#8217;s eye. Now since then I&#8217;ve managed to have quite a varied experience with languages such as Java, C#, and most recently Ruby. However, I now find myself running back 6 years and working with good old C++ again.</p>
<p>So why am I back here? Well to be honest, performance. The stuff that I&#8217;m currently working on (<a href="http://www.uktransplant.org.uk/ukt/about_transplants/organ_allocation/kidney_(renal)/living_donation/paired_donation_matching_scheme.jsp">Kidney Exchange Problem</a>) requires a fair bit of it &#8211; it&#8217;s NP-hard optimization problem that that we <strong>really</strong> do need to find an optimal solution for using an exponential-time algorithm. Anyway, maybe more details on this another day.</p>
<p>With C++ being decidedly &#8220;yesteryear&#8221; with the cool kids, I was pleased to find that it still seems to have a large user base, a moderately active community, and with Google being heavily invested, it would appear that it ain&#8217;t going to die as quickly as people may have though. Despite this, I wasn&#8217;t holding out too much hope for finding a wealth of &#8220;modern&#8221; programming tools, and first on my list was a JUnit/NUnit clone.</p>
<p>After some searching and experimentation (which resulted in some moderate surprise)  I came across <a href="http://code.google.com/p/googletest/">Google Test</a> &#8211; good old Google! In my opinion this is the best C++ unit test framework out there. I did try others (CppUnit, CppUnitLite, and another which I now can&#8217;t remember) but Google Test was the easiest to use, has everything I need, and seemed to be the most active in terms of development.</p>
<p>Also, now very old hat, is <a href="http://www.boost.org/">Boost</a>. Although this has been around for quite some time, back when I was first invested in C++, this just didn&#8217;t exist (or if it did it was in its infancy). I just love things like <code>shared_ptr</code> and the <a href="http://www.boost.org/doc/libs/1_42_0/libs/graph/doc/index.html">Boost Graph Library</a>. I&#8217;m sure there will be much much more I will find to use in the coming months in Boost.</p>
<p>Finally, for just now, I also have to put out an honerable mention to <a href="http://code.google.com/p/googlemock/">Google Mock</a>.  I&#8217;ve not had a chance to use this much at the moment but, like Google Test, it looks as if it will come in pretty handy.</p>
<p>It&#8217;s nice to see that C++ is still living and breath, even if it ain&#8217;t so cool any more. However, with the community and <a href="http://en.wikipedia.org/wiki/C%2B%2B0x">C++0x</a> it looks as if it may well just have some sort of future.</p>
<img src="http://feeds.feedburner.com/~r/Equivalence/~4/x24yCQNJInA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://equivalence.co.uk/archives/1702/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss><!-- Dynamic page generated in 0.793 seconds. --><!-- Cached page generated by WP-Super-Cache on 2012-05-13 18:37:46 -->

