<?xml version="1.0" encoding="UTF-8"?>
<!--Generated by Squarespace V5 Site Server v5.13.158 (http://www.squarespace.com) on Wed, 22 May 2013 00:19:25 GMT--><feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"><title>Journal</title><subtitle>Journal</subtitle><id>http://jamieonsoftware.com/journal/</id><link rel="alternate" type="application/xhtml+xml" href="http://jamieonsoftware.com/journal/"/><link rel="self" type="application/atom+xml" href="http://jamieonsoftware.com/journal/atom.xml"/><updated>2013-05-16T15:08:35Z</updated><generator uri="http://five.squarespace.com/" version="Squarespace V5 Site Server v5.13.158 (http://www.squarespace.com)">Squarespace</generator><entry><title>Death in Samarkand</title><category term="personal"/><category term="philosophy"/><id>http://jamieonsoftware.com/journal/2013/5/16/death-in-samarkand.html</id><link rel="alternate" type="text/html" href="http://jamieonsoftware.com/journal/2013/5/16/death-in-samarkand.html"/><author><name>Jamie Rumbelow</name></author><published>2013-05-16T10:51:27Z</published><updated>2013-05-16T10:51:27Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>I just heard this story - relevant to my philsophical studies about free will - and decided it was interesting enough to blog. It's about fate and the will of what is beyond your control.</p>
<p>It's an old Islamic parable called Death in Samarkand:</p>
<blockquote>
<p>The disciple of a Sufi of Baghdad was sitting in an inn one day when he heard two figures talking. He realised that one of them was the Angel of Death.</p>
<p>"I have several calls to make in this city," said the Angel to his companion.</p>
<p>The terrified disciple concealed himself until the two had left. To escape Death, he hired the fastest horse he could find and rode day and night to the far distant city of Samarkand.</p>
<p>Meanwhile, Death met the disciple's teacher, and they talked of this and that. "And where is your disciple, so-and-so?" asked Death.</p>
<p>"I suppose he is at home, where he should be, studying," said the Sufi.</p>
<p>"That is surprising," said Death, "for here he is on my list. And I have to collect him tomorrow, in Samarkand, of all places."</p>
</blockquote>]]></content></entry><entry><title>Catapult into PyroCMS</title><category term="efendi"/><category term="php"/><category term="programming"/><category term="pyrocms"/><id>http://jamieonsoftware.com/journal/2013/2/12/catapult-into-pyrocms.html</id><link rel="alternate" type="text/html" href="http://jamieonsoftware.com/journal/2013/2/12/catapult-into-pyrocms.html"/><author><name>Jamie Rumbelow</name></author><published>2013-02-12T13:11:27Z</published><updated>2013-02-12T13:11:27Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p><a style="border: 1px solid #CCC; display: block; width: 110px; margin: 0 auto;" href="https://efendibooks.com/books/catapult-into-pyrocms"><span class="full-image-inline ssNonEditable"><img style="width: 110px;" src="https://efendibooks.com/images/covers/catapult-into-pyrocms.png?__SQUARESPACE_CACHEVERSION=1360675184444" alt="" /></span></a></p>
<p><a href="https://efendibooks.com/books/catapult-into-pyrocms">Yesterday, Efendi Books released our latest title - Catapult into PyroCMS</a>. PHP guru <a href="http://philsturgeon.co.uk/blog/2013/02/catapult-into-pyrocms">Phil Sturgeon</a> has written a rather brilliant book about the popular open-source CMS, PyroCMS, that he created and develops.</p>
<p>The content is superb - it's a great introductory guide to a very good CMS, with enough in there for developers and designers to get used to building and developing applications and websites using it. It also looks <em>gorgeous</em>, with some wonderful illustrations by the <strong>amazing </strong><a href="http://www.jennythorne.co.uk/">Jenny Thorne</a>.</p>
<p>Here's some text from the introduction:</p>
<blockquote>
<div id="book-summary">
<p>In this book - from PyroCMS creator Phil Sturgeon - you&rsquo;ll learn the core concepts underpinning Pyro, create malleable templates and themes, utilise Streams for powering content-heavy sites and examine the basics of writing addons for the Pyro platform. You&rsquo;ll learn the theory behind the CMS, how to mould the system around your content and how to use the powerful, designer-friendly template layer.</p>
</div>
<div id="author_info" class="span7 alert-info alert"></div>
</blockquote>
<p>It's a fantastic title and it's already getting some great reviews, <a href="https://efendibooks.com/books/catapult-into-pyrocms">so be sure to grab your copy now!</a></p>]]></content></entry><entry><title>Twenty Thirteen</title><category term="goals"/><category term="life"/><category term="personal"/><id>http://jamieonsoftware.com/journal/2013/1/3/twenty-thirteen.html</id><link rel="alternate" type="text/html" href="http://jamieonsoftware.com/journal/2013/1/3/twenty-thirteen.html"/><author><name>Jamie Rumbelow</name></author><published>2013-01-03T14:37:46Z</published><updated>2013-01-03T14:37:46Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>Twenty twelve was a strange and surreal year for me. A lot of good happened. A lot of bad happened. I've seen and done more than I would ever have expected.</p>

<p>I've grown up more in the past year - developed more as a person, matured in outlook and attitude - than ever before. It's not all been good. I've said and done things I'm not proud of. But I shan't dwell.</p>

<p>Onward and upward, as they say. But where to?</p>

<p>My goals for twenty thirteen:</p>

<ul>
<li><strong>Train for, and run, the Cambridge Half Marathon.</strong> I'm in terrible shape and I can't wait to reap the rewards of a more active lifestyle. I also sincerely look forward to the look of shock on my friends' faces when they see me run 13.1 miles.</li>
<li><strong>Drink less caffeine and drink more water.</strong> Ahh I miss coffee SO MUCH.</li>
<li><strong>Apply to Oxford University.</strong> My studies are going well and I will be apply to read PPE or History and Politics, not sure which yet. I'll also be apply to several universities abroad.</li>
<li><strong>Travel somewhere new.</strong> I did lots of travel in twenty twelve. Due to financial and schedule restrictions I won't get to do as much this year, but I'd still like to travel somewhere remote, distant and exotic. Somewhere I've never been before.</li>
<li><strong>Get a tattoo.</strong> I'm going to get the Dark Side Of The Moon prism tattooed onto my arm.</li>
<li><strong>Quietly grow Efendi.</strong> I've built the foundations of a great company. It just needs more love.</li>
<li><strong>Learn to play the bass guitar properly.</strong> My father bought me an acoustic bass for my birthday and I can't wait to be able to play it better.</li>
<li><strong>Start saving some money.</strong> Much like many other aspects of my life, my finances are in a terrible shape. I earn and spend and earn and spend. I'd like to grow my Money Mustache.</li>
</ul>

<p>I'm proud of this list. I'll be prouder when I've acheived them.</p>

<p>Onward and upward.</p>

<p>Happy New Year.</p>
]]></content></entry><entry><title>On Gay Marriage</title><category term="england"/><category term="gay"/><category term="marriage"/><category term="politics"/><id>http://jamieonsoftware.com/journal/2012/12/13/on-gay-marriage.html</id><link rel="alternate" type="text/html" href="http://jamieonsoftware.com/journal/2012/12/13/on-gay-marriage.html"/><author><name>Jamie Rumbelow</name></author><published>2012-12-13T19:21:49Z</published><updated>2012-12-13T19:21:49Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>There are two arguments often levelled against allowing gay marriage, and in this blog-post-cum-essay I plan on explaining why I think they're both utterly invalid. I shall endeavour to do this in as reasonable and logical a way as possible, but will unashamedly admit that I believe marriage is a fundamental social right to anybody regardless of gender.</p>

<p>Some quick context: <a href="http://www.bbc.co.uk/news/uk-politics-20443718">there have been lively debates recently</a> over the role of the Church of England in government and policy making. The C of E recently voted against allowing women bishops. The reason why this is so relevant to British politics is that the C of E places 26 bishops in the House of Lords; giving the Church an active role in Westminster and allowing them to influence official policy. This is not an argument for secularist politics - although politics really ought to be secular - but I will talk about religion.</p>

<p>Recently, the UK's coalition government have been discussing and proposing a same-sex marriage bill. It's been pretty bloody controversial and <a href="http://www.guardian.co.uk/society/2012/dec/11/ukip-david-cameron-gay-marriage">UKIP leader Nigel Farage has even said</a> it may "rip apart the Conservative party". The bill outlined on Tuesday would legalise same-sex marriages but would also protect religious institutions that disagree. All sounds fair, right? The problem is twofold: allow religions discriminate is not fair, and there's a bunch of people who disagree with legalising it in the first place.</p>

<p>We must first touch on the Religious Argument. I was discussing my anger about the 120 or so MPs who will vote "No" with my Dad. He said that he understood why I thought they were wrong but that people have the right to their religion.</p>

<p>The thing is, the argument is utterly invalid. The Bible forbids same-sex relationships, but there are plenty of gay vicars. The Bible also states a bunch of other stuff that makes absolutely no sense in the context of a contemporary, liberal Britain.</p>

<p>If somebody says to me "I forbid gay marriages because my religion tells me to be against homosexuality" all I can possibly read that as is "I discriminate because my religion tells me to". Nothing more, nothing less. Now, this wouldn't be so much of an issue if nobody listened to it and exceptions weren't being made in law.</p>

<p>The problem is, exceptions are being made in law. And this undermines the entire purpose of legislating for equality.</p>

<p>Let's give a different example. I'm interviewing two candidates for a role at my company. One is black, the other is white. I choose the caucasian candidate because he's caucasian and dismiss the black candidate because of his ethnic background.</p>

<p>This is very, very illegal, not to mention immoral (but we'll leave morality out of this for the time being). I'd get arrested and publicly denounced pretty quickly. It's firmly against the law to discriminate in this way. So why should a religious body have the right to discriminate too?</p>

<p>Religious freedom is not an argument. The right to free exercise of religion must <em>never</em> be the right to discriminate on religious grounds. Religion should never be a way to justify bigotry.</p>

<p>The second argument is a civil one; that a marriage is a bond between a man and a woman, solely for procreation. We could step back to the origins of marriage, way before the institution of the Church, or even to religious bonds within the Judaism of a pre-Christianity world, but I won't.</p>

<p>There are those in the world that don't get married and have children nonetheless. There are those who get married, have children and have a divorce. I was raised by a single mother and am very proud of that fact. There is no evidence to suggest that children grow up to be "better" (however you define that) by heterosexual couples rather than homosexuals or, indeed, single parents. There is no evidence that lacking a mother or father figure does anybody any damage.</p>

<p>You see, people seem to ignorantly conflate the ideas of a marriage and of a home.</p>

<p>If you come from a loving home, the masters of the house have utterly no relevance. Whoever pays the mortgage doesn't matter. It's about the care and nurturing and love you receive when growing up. Sure, this manifests itself differently across genders, but so it does too across races, ethnic backgrounds, regions and indeed individuals.</p>

<p>There are heterosexual couples that are appalling parents. Why should a loving, genuine, honest family led by two men or two women be denied the same rights as a dismissive, cruel, ignorant heterosexual couple?</p>

<p>Somebody said to me today "you can't just wipe out thousands of years of institution". In this case, I cannot imagine a more flawed premise.</p>

<p>What will happen if gay people have the right to marry?</p>

<p>Oh yeah. Gay people will get married.</p>

<p>Heterosexuals won't wake up lusting after cock or vagina. The courts won't be inundated with divorce requests as the men ride off to San Francisco waving pride flags and fucking each other while the women rush out to spend their entire lives' savings on dildos and lesbian porn.</p>

<p>The world won't become corrupted. Children won't suddenly be indoctrinated to think that heterosexuality is a bad thing. No. </p>

<p>All that will happen is we will get a little closer to a society that doesn't give a shit what gender you prefer. We will get a little closer to a society where two consenting adults who adore each other get an equal chance to express that adoration. We will get a little closer to a society that teaches <strong>it's okay to be who you are</strong>.</p>

<p>I am so proud of my mother, because the most important thing she ever taught me was that it doesn't matter who you are or where you come from or what you look like. All that matters is how you treat others.</p>

<p>I've never been brilliant at being tempered or reasonable. I have moments of anger and jealousy and sadness like everyone else. But reading all the articles and opinion pieces about this bill have made me realise that it's only right to let people live their lives happily without discrimination or persecution.</p>

<p>This law does not alter the fabric of society or undermine what it means to be in a loving, caring relationship. It isn't trying to change society; it's simply recognising a society that changed a long time ago.</p>

<p>So for fuck's sake. Let gay people get married.</p>
]]></content></entry><entry><title>My Ideal Framework</title><category term="laravel"/><category term="php"/><category term="programming"/><id>http://jamieonsoftware.com/journal/2012/10/5/my-ideal-framework.html</id><link rel="alternate" type="text/html" href="http://jamieonsoftware.com/journal/2012/10/5/my-ideal-framework.html"/><author><name>Jamie Rumbelow</name></author><published>2012-10-05T12:00:18Z</published><updated>2012-10-05T12:00:18Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p><strong>My ideal framework would be easy to set up.</strong> Simply <code>git clone ... new_project &amp;&amp; cd new_project</code> and away I go</p>

<p><strong>My ideal framework would be built around Composer modules.</strong> Any component can be loaded or disabled at my whim.</p>

<p><strong>My ideal framework would be totally autoloaded.</strong> I hate <code>include</code>. I never want to write it again.</p>

<p><strong>My ideal framework would have application testing setup from day one.</strong> I should be able to run <code>phpunit</code> from  base directory - or <code>vendor/bin/phpunit</code>, to be more precise - and have all the tests across my application run.</p>

<p><strong>My ideal framework's app folder structure could/would look like this:</strong></p>

<pre><code>modules/
    authentication/
        assets/
        controllers/
        models/
        templates/
        routes.php
    profiles/
        assets/
        controllers/
        models/
        presenters/
        templates/
        routes.php
templates/
    application.lex
vendor/
composer.json
phpunit.xml
routes.php
</code></pre>

<p><strong>My ideal framework would have a clever template heirarchy.</strong> Template files would be loaded into layouts (that cascade) automagically.</p>

<p><strong>My ideal framework wouldn't ever generate code for me, because, ew</strong>.</p>

<p><strong>My ideal framework would use <a href="https://github.com/jamierumbelow/sherlock">Sherlock</a> for assets, obviously.</strong></p>

<p><strong>My ideal framework would treat HTTP as a first-class citizen.</strong></p>

<p><strong>My ideal framework's modules would be tested in isolation from one another.</strong> Using dependency injection to stub/mock out dependencies, I could write blazingly quick unit tests to ensure the stability of each small module.</p>

<p>Sounds a bit like <a href="https://github.com/illuminate">Laravel 4</a>.</p>
]]></content></entry><entry><title>The Trick to Writing Large PHP Applications</title><category term="php"/><category term="testing"/><id>http://jamieonsoftware.com/journal/2012/10/5/the-trick-to-writing-large-php-applications.html</id><link rel="alternate" type="text/html" href="http://jamieonsoftware.com/journal/2012/10/5/the-trick-to-writing-large-php-applications.html"/><author><name>Jamie Rumbelow</name></author><published>2012-10-05T12:00:00Z</published><updated>2012-10-05T12:00:00Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>The trick to writing large-scale, stable PHP applications? Don't.&nbsp;Write lots of small ones. Test each component in isolation with unit tests. Use <a href="http://getcomposer.org">Composer</a>. Lots. Get it on GitHub and use <a href="http://travis-ci.org">Travis</a> + a master / pull request flow model to handle collaboration. Listen to Jeff Buckley loudly. Rock out.</p>]]></content></entry><entry><title>Using Composer on (gs)</title><category term="composer"/><category term="mediatemple"/><category term="php"/><id>http://jamieonsoftware.com/journal/2012/10/4/using-composer-on-gs.html</id><link rel="alternate" type="text/html" href="http://jamieonsoftware.com/journal/2012/10/4/using-composer-on-gs.html"/><author><name>Jamie Rumbelow</name></author><published>2012-10-04T13:36:14Z</published><updated>2012-10-04T13:36:14Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>I love using MediaTemple for my simple sites. When I don't have complex hosting requirements, I know I can get my PHP applications up and running really quickly. Their support is great, their hosting fast and feature-rich and their prices competitive.</p>

<p>...but there's one problem. (gs), their shared hosting platform, has a limited PHP CLI binary. You can't configure it through a php.ini (see this tweet for more). This makes it impossible to use Composer. Since Composer is the future of PHP, this is quite worrying.</p>

<p>There is, however, a solution. We can use the <code>-d</code> flag to set the runtime config variables required to get Composer running.</p>

<p>Installing Composer:</p>

<pre><code>curl -s https://getcomposer.org/installer | php -d allow_url_fopen=1 -d suhosin.executor.include.whitelist=phar
</code></pre>

<p>...and then to run <strong>composer.phar</strong>:</p>

<pre><code>php -d memory_limit=512M -d allow_url_fopen=1 -d suhosin.executor.include.whitelist=phar composer.phar
</code></pre>

<p>This is ugly, so let's clean it up. We'll add an alias to the bash profile:</p>

<pre><code>$ vim ~/.profile
</code></pre>

<p>We'll alias get_composer to our install command and composer to our composer.phar file. This way we can set up new subdomains and such easily:</p>

<pre><code>alias get_composer="curl -s https://getcomposer.org/installer | php -d allow_url_fopen=1 -d suhosin.executor.include.whitelist=phar"
alias composer="php -d memory_limit=512M -d allow_url_fopen=1 -d suhosin.executor.include.whitelist=phar composer.phar"
</code></pre>

<p>Save, and reload the profile (this will be done automatically next login):</p>

<pre><code>$ source ~/.profile
</code></pre>

<p>Now, we can use Composer to our hearts' content:</p>

<pre><code>$ get_composer
All settings correct for using Composer
Downloading...

Composer successfully installed to: /blah/domains/efendibooks.com/composer.phar
Use it: php composer.phar

$ composer -V
Composer version cb2a0f4
</code></pre>
]]></content></entry><entry><title>Don't Just Roll The Dice</title><category term="business"/><category term="efendi"/><category term="elsewhere"/><category term="startups"/><id>http://jamieonsoftware.com/journal/2012/10/3/dont-just-roll-the-dice.html</id><link rel="alternate" type="text/html" href="http://jamieonsoftware.com/journal/2012/10/3/dont-just-roll-the-dice.html"/><author><name>Jamie Rumbelow</name></author><published>2012-10-03T14:00:54Z</published><updated>2012-10-03T14:00:54Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>Over at <a href="https://efendibooks.com/">Efendi Books</a>, we've been working hard and are thrilled to announce the immediate release of the second Efendi Minibook, <a href="http://neildavidson.com">Neil Davidson</a>'s sensational Don't Just Roll The Dice. <a href="https://efendibooks.com/minibooks/dont-just-roll-the-dice">Don't Just Roll The Dice</a> is a usefully short guide to software pricing from the CEO of a rather large software company. Its style is wonderful and content invaluable.</p>
<p>It's been given a lick of paint as well as gutted and given a bunch of brand new content. We're very proud of it and can't wait to spread it far and wide! It's available for free from the Efendi Books website.</p>
<p><a href="https://efendibooks.com/minibooks/dont-just-roll-the-dice">Head over there now and get your copy!</a></p>]]></content></entry><entry><title>Life lessons</title><category term="efendi"/><category term="personal"/><id>http://jamieonsoftware.com/journal/2012/9/24/life-lessons.html</id><link rel="alternate" type="text/html" href="http://jamieonsoftware.com/journal/2012/9/24/life-lessons.html"/><author><name>Jamie Rumbelow</name></author><published>2012-09-24T11:38:01Z</published><updated>2012-09-24T11:38:01Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>A few small business / personal things I've learnt over the past few days:</p>
<ol>
<li>Don't have a beer at lunchtime. You won't get anything done in the afternoon, even if you try.</li>
<li>Things always take longer than you'd expect to get done.</li>
<li>Your best work should only ever be your latest work.</li>
<li>Never compromise.</li>
<li>Lying is a linguistic tool, much like lists of three or alliteration, and should be used as such. But be very careful.</li>
<li><a href="http://en.wikipedia.org/wiki/Reality_distortion_field">Reality distortion fields</a> do exist, and you can use them to your advantage.</li>
<li>If you're not focusing at your desk, stop trying. Sit in a caf&eacute;, or in a park, or on a bridge, or something.</li>
<li>Never take up an offer, no matter how generous, if you've even the slightest reservation or feeling that you may be being rude.</li>
<li>Get a mentor.</li>
<li>This isn't the worst day of your life. It's the best day of your life with the most challenges.</li>
</ol>
<p>&nbsp;</p>]]></content></entry><entry><title>It's The Little Things</title><category term="ruby"/><id>http://jamieonsoftware.com/journal/2012/9/13/its-the-little-things.html</id><link rel="alternate" type="text/html" href="http://jamieonsoftware.com/journal/2012/9/13/its-the-little-things.html"/><author><name>Jamie Rumbelow</name></author><published>2012-09-13T15:00:49Z</published><updated>2012-09-13T15:00:49Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>An excellent talk from 37signals developer <a href="https://twitter.com/jamis">Jamis Buck</a> about what makes people passionate about Ruby. A very interesting chat that made me learn a lot about the language in a very short space of time.</p>
<p>Definitely recommended watching, even if you're not a Ruby person.</p>
<p><iframe width="560" height="315" src="http://www.youtube.com/embed/cRl4Yzjmt7w" frameborder="0" allowfullscreen></iframe></p>]]></content></entry></feed>