<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Disqus - Latest Comments for paulleader</title><link>http://disqus.com/by/paulleader/</link><description></description><atom:link href="http://disqus.com/paulleader/comments.rss" rel="self"></atom:link><language>en</language><lastBuildDate>Sun, 23 Oct 2016 14:09:43 -0000</lastBuildDate><item><title>Re: Lessons in developing with Vagrant</title><link>http://rdallasgray.github.io/blog/2015/08/03/lessons-in-developing-with-vagrant/#comment-2965209140</link><description>&lt;p&gt;Ahah, thanks, that looks awesome :)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">paulleader</dc:creator><pubDate>Sun, 23 Oct 2016 14:09:43 -0000</pubDate></item><item><title>Re: Lessons in developing with Vagrant</title><link>http://rdallasgray.github.io/blog/2015/08/03/lessons-in-developing-with-vagrant/#comment-2932722969</link><description>&lt;p&gt;Thanks for the great article, but I can't for the life of me get this to work.&lt;/p&gt;&lt;p&gt;When I try to do an `vagrant up` I get the following errors:&lt;/p&gt;&lt;p&gt;==&amp;gt; default: Executing command "listen -f 127.0.0.1:4000 &amp;gt; /dev/null 2&amp;gt;&amp;amp;1 &amp;amp;"...&lt;br&gt;==&amp;gt; default: ERROR: "listen start" was called with arguments ["&amp;gt;", "/dev/null", "2&amp;gt;&amp;amp;1", "&amp;amp;"]&lt;br&gt;==&amp;gt; default: Usage: "listen start"&lt;br&gt;==&amp;gt; default: Command execution finished.&lt;/p&gt;&lt;p&gt;It appears that Listen dropped the TCP support after 2.10, so the latest version doesn't like those options. But I can't work out how to install listen 2.10 in a way that actually works. For context I'm using rbenv.&lt;/p&gt;&lt;p&gt;I've done `gem install listen:2.10` in the project directory but the problem persists. `gem list listen` shows only a single version installed (2.10)&lt;/p&gt;&lt;p&gt;Any suggestions? I'd really like to have guard work reasonably well in Vagrant.&lt;/p&gt;&lt;p&gt;Thanks&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">paulleader</dc:creator><pubDate>Tue, 04 Oct 2016 09:37:14 -0000</pubDate></item><item><title>Re: Why Dry January Is The Worst</title><link>http://firstwefeast.com/drink/dry-january-is-the-worst-rant/#comment-2442584042</link><description>&lt;p&gt;Brill. Dry January is up there with doing crunch challenges in the "things that won't make a damn difference by this time next year".&lt;/p&gt;&lt;p&gt;There is good research that your body needs a bit of time to recover from alcohol, but that's like two alcohol free days in a row, not a whole damn month. By January 3rd your liver has already dealt with everything you threw at it on NYE. Most of the benefits people get from things like Dry Jan are just the result of getting more sleep because you're not staying out late and getting battered.&lt;/p&gt;&lt;p&gt;People have this weird idea that the human body is incapable of dealing with stuff unless we purge ourself for an extended periods, in reality it's amazingly good at sorting itself out if you give it a bit of a rest of just don't treat it like total crap all the time.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">paulleader</dc:creator><pubDate>Wed, 06 Jan 2016 09:27:14 -0000</pubDate></item><item><title>Re: Cloudinary - Blog - Uploading, converting and generating thumbnails for PDF documents</title><link>http://cloudinary.com/blog/uploading_converting_and_generating_thumbnails_for_pdf_documents#comment-2320771331</link><description>&lt;p&gt;Is there a way to work out how many pages the PDF has?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">paulleader</dc:creator><pubDate>Thu, 22 Oct 2015 09:11:23 -0000</pubDate></item><item><title>Re: Paul Leader — An old Q&amp;A where I got a really insightful answer...</title><link>http://www.paulleader.co.uk/post/108574514070#comment-2231794172</link><description>&lt;p&gt;Agreed.&lt;/p&gt;&lt;p&gt;My general rule in life is: Anyone who claims to solve every problem/disease with their one approach/cure/architecture is almost certainly not worth listening to because they don't understand most problems, and they probably don't understand really their own solution.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">paulleader</dc:creator><pubDate>Wed, 02 Sep 2015 09:23:26 -0000</pubDate></item><item><title>Re: 
          Elegant tests with Truth Tables
        </title><link>http://brewhouse.io/blog/2015/04/13/elegant-tests-with-truth-tables.html#comment-1967666447</link><description>&lt;p&gt;I definitely agree this is a great pattern to use in a lot of situations.&lt;/p&gt;&lt;p&gt;I've been using a similar kind of pattern for a while, but I really like the way you lay out the data.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">paulleader</dc:creator><pubDate>Tue, 14 Apr 2015 17:16:11 -0000</pubDate></item><item><title>Re: Why I don't like open source: my thoughts</title><link>http://remysharp.com/2015/01/09/dont-like-open-source/#comment-1782301468</link><description>&lt;p&gt;Spot on.&lt;/p&gt;&lt;p&gt;Where did this idea come from that being a developer meant you were supposed to do it all the time, every day, that it's supposed to be your work and your hobby?&lt;/p&gt;&lt;p&gt;Almost no one else does that. There are a lot of industries where people work long hours, but when you leave work you stop and do something else. Even when people take their work home they don't do it as their hobby.&lt;/p&gt;&lt;p&gt;Even most artists, if their art becomes there job, have a split between work and not-work.&lt;/p&gt;&lt;p&gt;I've a five month old son and I've come to the conclusion that while I'd love to do the odd side-project, after a day at work, playing with him and putting him to bed, the last thing I'm in the mood for after  is opening my laptop and spending another few hours writing code. I just want to sit and read a book with a glass of wine in my hand and relax for a bit.&lt;/p&gt;&lt;p&gt;And you know what? I no longer give a crap if people look down on me for it.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">paulleader</dc:creator><pubDate>Fri, 09 Jan 2015 09:11:51 -0000</pubDate></item><item><title>Re: 7 reasons why I'm sticking with Minitest and Fixtures in Rails | Brandon Hilkert</title><link>http://brandonhilkert.com/blog/7-reasons-why-im-sticking-with-minitest-and-fixtures-in-rails/#comment-1713465248</link><description>&lt;p&gt;I think point 2 is my main reason for moving away from RSpec. In theory all that fancy RSpec magic should make your test more readable, but in reality I found it was the opposite, you have to read the whole thing, mentally parse it and work out what's acting on what. A simple assert statement is really clear, it's very obvious what we are expecting and what we are testing.&lt;/p&gt;&lt;p&gt;No matter how long I used RSpec for all those different magic matchers just never stuck in my brain. Having a small number of very simple assertions with very obvious semantics is just so much less cognitive load, and anything that makes writing test less stressful is a win.&lt;/p&gt;&lt;p&gt;The fact that my entire test set doesn't break every six months because some gem updated and subtly changed the way all the magic worked or became incompatible with another bit of magic is an added bonus :)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">paulleader</dc:creator><pubDate>Wed, 26 Nov 2014 06:54:49 -0000</pubDate></item><item><title>Re: solnic.eu</title><link>https://solnic.codes/2012/07/09/single-responsibility-principle-on-rails-explained/#comment-717336651</link><description>&lt;p&gt;A nice balanced post.&lt;/p&gt;&lt;p&gt;I think one of the things that has annoyed many people about the "SRP Police" is the perception that you should do all the things, all the time, right from the start.&lt;/p&gt;&lt;p&gt;The mark of experience isn't knowing al the OO patterns and principals, it's knowing when and how to apply them. If you have one callback on a simple model, moving it into an observer doesn't simplify things, it just means you have two short files a maintainer has to look in to find some logic. When that code grows you may hit the point where moving callbacks out into an observer.&lt;/p&gt;&lt;p&gt;However I've been going off callbacks more and more recently, and prefer using service objects. Callbacks create implicit control flow that gets increasingly difficult to debug, your model ends up breaking the principle of least surprise. My rule of thumb is that callbacks should never have side-effects outside of the model. Using a before_save to ensure the integrity of the model and its relations or update caches/accumulators is fine, but using them to send emails, or poke Facebook etc is bad.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">paulleader</dc:creator><pubDate>Fri, 23 Nov 2012 02:25:42 -0000</pubDate></item><item><title>Re: Texas student suspended for refusing RFID&amp;nbsp;tracker</title><link>http://boingboing.net/2012/11/22/texas-student-suspended-for-re.html#comment-717188494</link><description>&lt;p&gt;Thanks, I was hoping someone might actually answer my question eventually :)&lt;/p&gt;&lt;p&gt;That really is a whole other kettle of fish. That's really quite sinister.&lt;/p&gt;&lt;p&gt;What saddens me most about many of these sorts of stories, as well as the way young people are being acclimatised to the idea of being tracked, is the utter lack of trust that school administrators show in their students.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">paulleader</dc:creator><pubDate>Thu, 22 Nov 2012 17:31:57 -0000</pubDate></item><item><title>Re: solnic.eu</title><link>https://solnic.codes/2011/08/01/making-activerecord-models-thin/#comment-716280173</link><description>&lt;p&gt;Interesting article. I like the fundamental message about working from the outside in. Getting away from thinking about database tables and persistance is an important step that I think all Rails devs go through at some point.&lt;/p&gt;&lt;p&gt;I also came to the same conclusion a while back about having an API you can use on the console. Nothing annoys me more in my own code when I find I can't do something relatively straight-forward with a model on the console, without having to write complex AR statements.&lt;/p&gt;&lt;p&gt;As with all things, the trick is to learn when and where to apply techniques like this. The danger I've seen is a lot of relatively inexperienced developers who are prematurely architecting (prefactoring?) their code, splitting trivial models into presenters/decorators/watchers etc, etc without really understanding why they are doing it.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">paulleader</dc:creator><pubDate>Wed, 21 Nov 2012 17:26:13 -0000</pubDate></item><item><title>Re: Twitter and UK libel&amp;nbsp;law</title><link>http://boingboing.net/2012/11/21/twitter-and-uk-libel-law.html#comment-716061549</link><description>&lt;p&gt;Definitely. I like that analogy.&lt;/p&gt;&lt;p&gt;We are at a very odd point in history, where everyone (well, a lot of people) has tools that let them broadcast to the world, but they mostly use them to talk to their friends.&lt;/p&gt;&lt;p&gt;I think this is where celebrities get caught out, they use it as a personal medium to chat to their friends, and then forget that the rest of the world is watching.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">paulleader</dc:creator><pubDate>Wed, 21 Nov 2012 14:06:36 -0000</pubDate></item><item><title>Re: Why Ruby Class Methods Resist Refactoring</title><link>http://blog.codeclimate.com/blog/2012/11/14/why-ruby-class-methods-resist-refactoring/#comment-711963166</link><description>&lt;p&gt;After skim-reading in a rush and completely miss-understanding this post (and then tweeting my idiocy to the world*, sorry about all that), I actually encountered exactly this situation today :)&lt;/p&gt;&lt;p&gt;Your approach worked like a charm. It was *significantly* easier to refactor by switching to instance methods. The resulting code is much, much more readable. If you add a class method interface as well you get the best of both worlds.&lt;/p&gt;&lt;p&gt;Definitely something I'll considering in the future.&lt;/p&gt;&lt;p&gt;* Reminds me of the quote "Better to remain silent and be thought a fool than to speak out and remove all doubt."&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">paulleader</dc:creator><pubDate>Fri, 16 Nov 2012 12:43:07 -0000</pubDate></item><item><title>Re: solnic.eu</title><link>https://solnic.codes/2012/06/25/get-rid-of-that-code-smell-primitive-obsession/#comment-710760594</link><description>&lt;p&gt;This is one of those code smells that I've been very guilty of over the years. I think the problem is that the Ruby primitives are so powerful that it's easy to forget that adding an abstraction can have real benefits.&lt;/p&gt;&lt;p&gt;Like all patterns you can take it too far, but it's definitely something to consider.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">paulleader</dc:creator><pubDate>Thu, 15 Nov 2012 02:06:59 -0000</pubDate></item><item><title>Re: solnic.eu</title><link>https://solnic.codes/2012/06/25/get-rid-of-that-code-smell-primitive-obsession/#comment-710760080</link><description>&lt;p&gt;With the availability of things like the Enumerable mixin I'm not sure I'd really call this duplication of functionality. It's not as if you have to rewrite all the methods of Hash.&lt;/p&gt;&lt;p&gt;The advantage is that you now have an abstraction that can be extended to provide additional facilities without totally breaking the existing interface. In a large system that could be incredibly useful.&lt;/p&gt;&lt;p&gt;A simple example would be Rails' HashWithIndifferentAccess, which is a relatively small extension on the Hash primitive, but provides a really useful improvement.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">paulleader</dc:creator><pubDate>Thu, 15 Nov 2012 02:04:59 -0000</pubDate></item><item><title>Re: An Insomniac's Guide to Sleep</title><link>http://www.paulleader.co.uk/blog/2012/09/10/02-sleeping-tips-from-an-insomniac/#comment-646468385</link><description>&lt;p&gt;With perfect timing, the night I finally posted this I got a grand total of 4 hours sleep. That's what happens when I stay up late working on my laptop...&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">paulleader</dc:creator><pubDate>Tue, 11 Sep 2012 01:59:26 -0000</pubDate></item><item><title>Re: Weighthacker: weight-loss for&amp;nbsp;geeks</title><link>http://boingboing.net/2012/05/02/weighthacker-weight-loss-for.html#comment-517388701</link><description>&lt;p&gt;Yeah, learning how to track your weight properly over time using rolling averages was a big part of it for me, not stressing over short term changes. &lt;br&gt;--&lt;br&gt;Paul Leader&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">paulleader</dc:creator><pubDate>Thu, 03 May 2012 02:16:54 -0000</pubDate></item><item><title>Re: Weighthacker: weight-loss for&amp;nbsp;geeks</title><link>http://boingboing.net/2012/05/02/weighthacker-weight-loss-for.html#comment-517098856</link><description>&lt;p&gt;Reminds me of John Walker's classic The Hacker's Diet which helped me lose weight.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.fourmilab.ch/hackdiet/www/hackdiet.html" rel="nofollow noopener" target="_blank" title="http://www.fourmilab.ch/hackdiet/www/hackdiet.html"&gt;http://www.fourmilab.ch/hac...&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">paulleader</dc:creator><pubDate>Wed, 02 May 2012 18:12:18 -0000</pubDate></item><item><title>Re: 
Complete guide to serving your Rails assets over S3 with asset_sync

Apr 17

</title><link>http://blog.firmhouse.com/complete-guide-to-serving-your-rails-assets-over-s3-with-asset_sync#comment-513536976</link><description>&lt;p&gt;A quick tip for anyone using non-US buckets:&lt;/p&gt;&lt;p&gt;In addition to the other Fog environment variables, you should also set FOG_REGION&lt;/p&gt;&lt;p&gt;Example: FOG_REGION = 'eu-west-1' for the Ireland region.&lt;/p&gt;&lt;p&gt;I had a devil of a job getting my S3 bucket policies right.  If anyone else has problems with their S3 permissions, grab an S3 client (I use Transmit), and confirm that the user can create/rename directories in the bucket, and can upload and delete files.&lt;/p&gt;&lt;p&gt;I finally got there and the load time on &lt;a href="http://lostpetalerts.org" rel="nofollow noopener" target="_blank" title="http://lostpetalerts.org"&gt;http://lostpetalerts.org&lt;/a&gt; is now blindingly fast. Almost everything on the page is being loaded from a different hostname, so there's a massive concurrency win :)&lt;/p&gt;&lt;p&gt;However, I do now have an odd problem with Heroku.  I can do a "heroku run rake assets:precompile" and it runs just fine.  However, the automatic precompile step when I push new code fails with "Fog provider can't be blank, Fog directory can't be blank", despite both being set in the heroku app :/&lt;/p&gt;&lt;p&gt;&amp;gt; heroku config | grep FOG&lt;br&gt;FOG_DIRECTORY         =&amp;gt; lostpetalerts&lt;br&gt;FOG_PROVIDER          =&amp;gt; AWS&lt;/p&gt;&lt;p&gt;Has anyone else had a similar problem?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">paulleader</dc:creator><pubDate>Sun, 29 Apr 2012 11:42:53 -0000</pubDate></item><item><title>Re: 
Complete guide to serving your Rails assets over S3 with asset_sync

Apr 17

</title><link>http://blog.firmhouse.com/complete-guide-to-serving-your-rails-assets-over-s3-with-asset_sync#comment-512318584</link><description>&lt;p&gt;This is fantastic, thanks for the well written walk-through :)&lt;/p&gt;&lt;p&gt;I'm working on a site hosted on heroku, and I moved all my image assets to cloudfront and it improved load time considerably.  I also use Google's CDN hosted versions of jQuery and jQuery-UI, which helped a lot too.&lt;/p&gt;&lt;p&gt;Moving all my CSS and other JS assets to CF will mean that the only thing loading directly from Heroku will be the base HTML :)&lt;/p&gt;&lt;p&gt;Between this and Rails view fragment caching, load times should be stupidly quick.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">paulleader</dc:creator><pubDate>Fri, 27 Apr 2012 19:34:49 -0000</pubDate></item><item><title>Re: Origami stroller: electrified $850 self-extracting&amp;nbsp;stroller</title><link>http://boingboing.net/2011/12/01/origami-stroller-electrified.html#comment-376660894</link><description>&lt;p&gt;That's a pretty neat piece of engineering, although I'd be interested to see how it looks in real-time, rather than the speeded up version.&lt;/p&gt;&lt;p&gt;But yeah, $850 is a heck of a lot just to save you a minute or two of folding. But then I'm not a parent so maybe it's worth it :)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">paulleader</dc:creator><pubDate>Thu, 01 Dec 2011 09:09:22 -0000</pubDate></item><item><title>Re: UK warns of riots if Euro&amp;nbsp;fails</title><link>http://boingboing.net/2011/11/28/uk-warns-of-riots-if-euro-fail.html#comment-374247329</link><description>&lt;p&gt;Remind me not to move to Detroit. &lt;/p&gt;&lt;p&gt;Not sure what four people dying in a riot not getting covered in the papers says more about, Detroit or the papers there.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">paulleader</dc:creator><pubDate>Mon, 28 Nov 2011 11:17:45 -0000</pubDate></item><item><title>Re: UK warns of riots if Euro&amp;nbsp;fails</title><link>http://boingboing.net/2011/11/28/uk-warns-of-riots-if-euro-fail.html#comment-374245702</link><description>&lt;p&gt;I wouldn't be so sure. They might not string up the bankers, but it could get messy.&lt;/p&gt;&lt;p&gt;Wikipedia lists four deaths from the 2010-2011 riots, and over 270 injuries.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">paulleader</dc:creator><pubDate>Mon, 28 Nov 2011 11:14:46 -0000</pubDate></item><item><title>Re: UK warns of riots if Euro&amp;nbsp;fails</title><link>http://boingboing.net/2011/11/28/uk-warns-of-riots-if-euro-fail.html#comment-374242783</link><description>&lt;p&gt;Sounds sensible, given that there have already been full blown riots in Greece (complete with deaths)&lt;/p&gt;&lt;p&gt;This is what embassies are supposed to do, prepare for the worst.  That doesn't mean they think it's definitely going to happen, but significant civil unrest in parts of Europe is a possibility.  And if the banking system suffers another collapse you could have a lot of people stuck overseas with no access to funds.&lt;/p&gt;&lt;p&gt;If you only go though life being prepared for things you know are going to happen, you'll spend a lot of your time being surprised.&lt;/p&gt;&lt;p&gt;The motto of all governments (and everyone right now) should be "prepare for the worst and hope for the best".&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">paulleader</dc:creator><pubDate>Mon, 28 Nov 2011 11:10:55 -0000</pubDate></item><item><title>Re: Installing Ruby, Rails, and MySQL on OS X Lion</title><link>http://thinkvitamin.com/code/ruby-on-rails/installing-ruby-rails-and-mysql-on-os-x-lion/#comment-370857384</link><description>&lt;p&gt;Another tip: if you are planning on deploying to Heroku then you'll want to dump mysql and install Postgres, since that's what they use (unless you pay extra for the MySQL addon).&lt;/p&gt;&lt;p&gt;Having said that, you should only ever need something like that on your dev box if you are doing something that requires DBMS specific features.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">paulleader</dc:creator><pubDate>Wed, 23 Nov 2011 11:11:03 -0000</pubDate></item></channel></rss>