Jekyll2017-03-01T12:46:56+00:00http://www.alanbradburne.com/Alan BradburnePersonal site of Alan Bradburne.Alan Bradburnealan@alanbradburne.comhttps://alanbradburne.comRuby’s Reputation2015-05-24T00:00:00+00:002015-05-24T00:00:00+00:00http://www.alanbradburne.com/Rubys-reputation<h3 id="rubys-reputation">Ruby’s Reputation</h3>
<p><a href="http://hawkins.io/2015/05/the-ruby-community-the-next-version/">This blog post</a> by Adam Hawkins stuck a chord with me. The current state and the trend of Rails as an industry has been on my mind a lot recently.</p>
<p>In ten short years we’ve gone from the ’<a href="https://www.youtube.com/watch?v=Gzj723LkRJY">How to build a blog in 15 minutes’ demo</a> (wups!) to it becoming a major part of the web infrastructure and the basis of tens (hundreds?) of thousands of careers - mine included. It’s simply mind-blowing how far we’ve come. And it’s happened because of the sheer hard work and dedication of a (relatively) small number of individuals who are obsessed with making web development better, smarter and more fulfilling and rewarding.</p>
<p>But with the massive growth of Rails comes a huge responsibility for us as developers who build and maintain Rails apps, and even more so those of us that train and mentor upcoming Rails developers.</p>
<p>I’m sure anyone who has been working with Rails for any amount of time has inherited apps with absolutely enormous Gemfiles. Of course, Rails itself is just a collection of gems, but when auditing these applications it seems to be also guaranteed that there will be numerous out-of-date and abandoned gems, gems that are essentially one-liners or monkey patches, completely untested (or worse, <em>badly</em> tested) gems, or very worryingly, gems that appeared new and shiny - often with too-clever-for-their-own-good DSLs - that have influenced the design and architecture of the entire application so much that removing them would require major rewrites (how’s your test coverage looking?)</p>
<p>This reflects very badly on Rails as a whole and does serious damage to the reputation of Ruby and Rails developers and, more seriously, Rails and Ruby itself.</p>
<p>How did we get here and what do we do to begin to improve things?</p>
<p>I think part of the reason we arrived as this point is that Ruby and Rails make it so easy to play! In that way they’ve somewhat been a victim of their own success. I firmly believe that play is the absolute best way to learn and experimentation with new techniques is essential to becoming a better developer. But being a developer for a client (whether it’s as a freelancer, contractor or employee) carries large responsibilities. As developers who care about the products we build, the happiness and success of our clients, and also the reputation of Ruby, Rails and Web Developers, we need to ensure that we both practice and preach good, responsible development. That means taking responsibility for the code you write and also for the code you include.</p>
<p>Just because there’s a Gem that appears to solve your problem doesn’t mean you should immediately add it to your project. Read the code, read the tests, understand how it works, what it does, what it <em>doesn’t</em> do, what dependencies it has, how well it is supported, is the developer responding to issues and pull requests? And very importantly, consider how difficult it would be to remove it. If it is going to change the way the application is coded in ‘clever’ ways, it may not be a good choice. Carefully consider all of these things before dropping it into your Gemfile.</p>
<p>Ask yourself how you think the problem should be solved. If you used it in an application, is it’s use clear and explicit? When you’ve moved on from the project and some poor soul has inherited your code, are the new developers going to understand what’s happening, or are they going to start checking git logs and cursing your name?</p>
<p>We need to consider how we encourage responsible development practices in people just starting out in Rails development while also not discouraging play and experimentation.</p>
<p>I was recently speaking with a CEO of a successful, rapidly growing company whose business is based around a large Rails app. Up to this point, Rails has delivered on all of it’s promises, allowing him to get the company to where it is now. But now, development choices that seemed innocuous a long time ago are beginning to impede the company’s ability to develop new features and test new business ideas. This is most definitely <em>not</em> the first time I’ve heard exactly this problem.</p>
<p>As I said earlier, this is beginning to impact the reputation of Ruby and Rails developers. Maybe my concern about this is just me being selfish, but if Rails gets a bad name, by affiliation I do too. Ruby is better than this. Rails is better than this. WE are better than this.</p>
<p>I fully support all of the points Adam makes in his post. If you are a Rails developer, I <em>highly</em> recommend you read it and consider the suggestions. But <em>please</em> don’t stop playing, experimenting and, most importantly, <em>enjoying</em> working in Ruby.</p>Alan Bradburnealan@alanbradburne.comhttps://alanbradburne.comRuby’s ReputationNoSQL Talk At Reading Geek Night2010-03-10T00:00:00+00:002010-03-10T00:00:00+00:00http://www.alanbradburne.com/NoSQL-Talk<ol>
<li>NoSQL Talk At Reading Geek Night</li>
</ol><p>Last night I gave a brief introduction to NoSQL at the <a href="http://readinggeeknight.com/">Reading Geek Night</a> . I hope it was interesting and informative and whet your appetite for learning more about some of the the alternative datastores out there.</p>
<p>You can download my <a href="http://alanbradburne.com/assets/NoSQL.pdf">slides</a> or find them on <a href="http://www.scribd.com/doc/28134821/No-SQL">scribd</a></p>
<p><a title="View No SQL on Scribd" href="http://www.scribd.com/doc/28134821/No-SQL" style="margin: 12px auto 6px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block; text-decoration: underline;">No <span class="caps">SQL</span></a> <object id="doc_997038904984237" name="doc_997038904984237" height="600" width="100%" type="application/x-shockwave-flash" data="http://d1.scribdassets.com/ScribdViewer.swf" style="outline:none;" > <param name="movie" value="http://d1.scribdassets.com/ScribdViewer.swf"> <param name="wmode" value="opaque"> <param name="bgcolor" value="#ffffff"> <param name="allowFullScreen" value="true"> <param name="allowScriptAccess" value="always"> <param name="FlashVars" value="document_id=28134821&access_key=key-1bzwz1wicuwlpauwpdd6&page=1&viewMode=slideshow"> <embed id="doc_997038904984237" name="doc_997038904984237" src="http://d1.scribdassets.com/ScribdViewer.swf?document_id=28134821&access_key=key-1bzwz1wicuwlpauwpdd6&page=1&viewMode=slideshow" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="600" width="100%" wmode="opaque" bgcolor="#ffffff"></embed> </object></p>Alan Bradburnealan@alanbradburne.comhttps://alanbradburne.comNoSQL Talk At Reading Geek NightRails, MySQL and friends on Snow Leopard2009-09-08T00:00:00+00:002009-09-08T00:00:00+00:00http://www.alanbradburne.com/Rails-MySQL-etc-on-Snow-Leopard<ol>
<li>Rails, MySQL and friends on Snow Leopard</li>
</ol><p><em>These are just my notes for my archive, your mileage may vary. For the ultimate guide, see Mike Gunderloy’s Definitive Guide on <a href="http://afreshcup.com/2009/09/02/migrating-to-snow-leopard-for-rails-development-a-definitive-guide/">A Fresh Cup</a></em></p>
<p><strong>XCode from SL disk</strong><br />
Install straight from the Snow Leopard disk.</p>
<p><strong>iPhone <span class="caps">SDK</span></strong><br />
Install new Snow Leopard iPhone <span class="caps">SDK</span> from <a href="http://developer.apple.com/iphone">http://developer.apple.com/iphone</a><br />
(um, yeah, nothing to do with Rails, just a reminder to me that it’s different from the Leopard version)</p>
<p><strong>Ports</strong><br />
blow away ports since they’re broken and we’re going to install stuff from source<br />
<a href="http://trac.macports.org/wiki/FAQ#uninstall">http://trac.macports.org/wiki/<span class="caps">FAQ</span>#uninstall</a></p>
<p><strong>ImageMagick</strong><br />
(from source, not ports):<br />
<a href="https://github.com/maddox/magick-installer/tree">https://github.com/maddox/magick-installer/tree</a></p>
<p><strong>git</strong><br />
<a href="http://www.icoretech.org/2009/08/install-git-from-source-on-snow-leopard-64-bit/">http://www.icoretech.org/2009/08/install-git-from-source-on-snow-leopard-64-bit/</a> or <a href="http://code.google.com/p/git-osx-installer/">http://code.google.com/p/git-osx-installer/</a><br />
First link (make from source) worked well for me.</p>
<p><strong>ruby</strong><br />
Install <span class="caps">RVM</span> <a href="http://rvm.beginrescueend.com/">http://rvm.beginrescueend.com/</a></p>
<p><strong>MySQL</strong><br />
<a href="http://dev.mysql.com/downloads/mysql/5.1.html#macosx-dmg">http://dev.mysql.com/downloads/mysql/5.1.html#macosx-dmg</a> (get 64 bit version)</p>
<p><strong>MySQL pref pane</strong><br />
A nice chap made a 64 bit version of the MySQL preference pane. Make sure you’ve installed the startup items from above package first.<br />
<a href="http://www.swoon.net/site/software.html">http://www.swoon.net/site/software.html</a></p>
<p><strong>MySQL gem</strong><br />
(from <a href="http://gist.github.com/177368">http://gist.github.com/177368</a>)<br />
<code>
sudo gem uninstall mysql</p>
<p>sudo env <span class="caps">ARCHFLAGS</span>=“-arch x86_64” gem install mysql — —with-mysql-config=/usr/local/mysql/bin/mysql_config<br />
</code></p>
<p><strong>Update gems</strong><br />
(from <a href="http://gist.github.com/177368">http://gist.github.com/177368</a>)<br />
<code>
irb> `gem list`.each_line {|line| `sudo env ARCHFLAGS="-arch x86_64" gem install #{line.split.first}`}
</code><br />
or… <br />
<a href="http://gist.github.com/178178">http://gist.github.com/178178</a> (better, I think)</p>
<p><strong>Passenger</strong><br />
<code>
sudo gem install -r passenger</p>
<p>sudo passenger-install-apache2-module<br />
</code></p>
<p><strong>Passenger Preference Pane</strong><br />
New updated version of Passenger Preference Pane that is Snow Leopard compatible:<br />
<a href="http://www.fngtps.com/2009/09/new-os-more-pane-passenger-preference-pane-v1-3">http://www.fngtps.com/2009/09/new-os-more-pane-passenger-preference-pane-v1-3</a></p>Alan Bradburnealan@alanbradburne.comhttps://alanbradburne.comRails, MySQL and friends on Snow LeopardMoving blog to github2009-08-09T00:00:00+00:002009-08-09T00:00:00+00:00http://www.alanbradburne.com/moving-blog<ol>
<li>Moving blog to github</li>
</ol><p>My Wordpress install has been hacked for the last time. In process of moving blog over to github pages…</p>Alan Bradburnealan@alanbradburne.comhttps://alanbradburne.comMoving blog to githubThe Future of Web Apps, London2008-10-14T00:00:00+00:002008-10-14T00:00:00+00:00http://www.alanbradburne.com/future-of-web-apps-london<ol>
<li>The Future of Web Apps, London</li>
</ol><p>I spent Thursday and Friday of last week at the <a href="http://london2008.futureofwebapps.com/">Future of Web Apps</a> conference in London. The event was organised by <a href="http://carsonified.com">Carsonified</a> and I have to say, they did a spectacular job. The event was possibly the smoothest-run and slickest events I’ve been too. That’s not to say I thought it was perfect, but it was an impressive event overall.</p>
<p>Videos of a bunch of the talks are up on the <span class="caps">FOWA</span> site. Hopefully more videos will be up soon, but they’ve done a great job of getting content up there so quick. He’s my pick of the talks, and my brief thoughts on the conference.</p>
<p>Kevin Rose of Digg opened the event (at least for me, I arrived a bit late to see the ‘official’ opening). It wasn’t really the most powerful way to start the event. Kevin is a smart and engaging speaker, but to be fair to him, I don’t think putting him on first was a great move. I’ve been the first speaker at a conference and god is it hard. You have a good boost of adrenaline as you get up on stage, but it soon fizzles and it’s really difficult to get people excited at that time of the morning. Maybe he just needed a few more shots of caffeine in him. It was however an interesting talk, but I think Kevin would have shone more in a more sociable timeslot. <a href="http://events.carsonified.com/fowa/2008/london/videos/kevin-rose/">Watch Kevin’s talk</a>.</p>
<p>I bounced around between the business and developer tracks throughout the day. There were some pretty interesting talks, but nothing that really got me too excited, with the notable exception of lolcat tamer, Ben Huh from icanhazcheezburger.com and failblog. He seems like one smart cookie and delivered an engaging talk (peppered with lolcats of course!) about how he wrangles and builds his communities. Fun, interesting and inspiring.</p>
<p>Francisco Tomalsky talked briefly about Objective-J and Cappuccino, the framework they built to power <a href="http://280slides.com/">280slides</a>. As a web developer, i.e. someone who believes in the power of html, css and javascript, I can’t say that I’m going to start using their framework, but the fact that they are pulled off, leveraging the browser in a different way and produced a different way of building a true cross platform desktop-class application is astounding. Fascinating stuff. I can see some folks getting all upset that it’s not compliant html and whatnot, but who cares – that’s not their intention, nor necessary for what they are building. Impressive stuff.</p>
<p>For me, Day 2 was the big highlight though. Quite a spectacular lineup of people.</p>
<p>It kicked off with the always-interesting Tim Bray talking about his thoughts on riding the incoming economic disaster and the effect it will have on our industry. Nothing particularly new, but a really good way to kick off the day and get the brain working. <a href="http://events.carsonified.com/fowa/2008/london/highlights/tim-bray/">Highlight reel</a>.</p>
<p>Bret Taylor, founder of FriendFeed was surprisingly open and frank about how they were building their service, both on a business and technological level. Very refreshing for someone in his position to be so open and not cagey about details. Great speaker and very interesting talk. <a href="http://events.carsonified.com/fowa/2008/london/videos/bret-taylor/">Full video</a>.</p>
<p>Jason Calacanis and Tom Nixon both spoke for a little while about their thoughts on working. I’ve spun off my thoughts on this talk into a separate post, since it ended up being almost as long as the rest of this post! Great talk and very motivating. <a href="http://events.carsonified.com/fowa/2008/london/highlights/jason-calcanis-and-tom-nixon/">Watch the highlights</a>.</p>
<p>Surviving outside of the valley was a fun talk about whether it’s possible to build a successful startup outside of Silicon Valley. Of course we know it is, and the talk focused on how we can turn some of these perceived disadvantages into advantages and also how we can try to work a little smarter. Good, not too heavy talk, both Michael Galpert (of Aviary) and Andy McLoughlin (of Huddle) were good speakers and I’m hoping the video will up up soon, if only to get the links that Andy posted for networking events in London!</p>
<p>Mark Zuckerberg had a sit-down chat with Ryan Carson. It’s interesting that Mark doesn’t give regular keynote-style talks, but I think this format worked well this time, especially at the end of two pretty exhausting days. Ryan seemed to relax him a bit (well, as much as I think it possible as Mark does seem a very nervous little bunny). I am somewhat curious just how comfortable the dev team are with their <span class="caps">CEO</span> occasionally working on their code! He made some interesting comments about the ‘other platform’ aka OpenSocial and I think he has a good point. They are without doubt the leader in this space and if you were in their position, how would you feel about being held back from implementing APIs or features? Having a common open standard is obviously the ultimate goal for everyone, but Facebook is ahead of the curve in what they can offer to developers. From what Mark said, I’m pretty confident that they will eventually adhere to the standards. <a href="http://events.carsonified.com/fowa/2008/london/videos/mark-zuckerberg/">Video is here</a>.</p>
<p><a href="http://headrush.typepad.com/">Kathy Sierra’s talk</a> was the perfect end of the day. As I was an avid reader of her blog I’ve wanted to hear Kathy talk for a long time and she didn’t disappoint. Entertaining, practical and incredibly motivating. Awesome stuff. Hopefully video will be up soon.</p>
<p>After the talks finished, we hung around for the filming of <a href="http://revision3.com/diggnation/">DiggNation</a>. What a bizarre experience. The hall quickly filled up with Digg fans that were there only for Diggnation, not the conference and then things turned weird. It was like being transported to a rock concert for geeks. Cheering, whooping and whatnot. All kinda fun, albeit more than a little weird. The thing that suddenly struck me sometime in the middle of the show was that all this fuss was about a web site. Kevin and Alex are web-site superstars. Amazing. <a href="http://www.bringingnothing.com/the-fringe-of-web-apps-beer-and-beatboxing-in-docklands/">Paul Carr</a> commented that it was “everything that’s wrong with the tech scene”. I couldn’t disagree more. I build web apps both for a living and for fun. I love what I do, but that thing that makes me the happiest is when someone else gets excited about a site I’ve built or something I’ve created. Here in this hall we had hundreds of people excited about a couple of guys talking about stories on a web site. OK, I know, there’s more to it, Kevin and Alex are both experts at playing to a crowd, but still, pretty damn amazing.</p>
<p>So all in all, a fun couple of days. Many thanks for Ryan and the team at Carsonified for putting it together.</p>Alan Bradburnealan@alanbradburne.comhttps://alanbradburne.comThe Future of Web Apps, LondoniTunes Goodies2008-09-14T00:00:00+00:002008-09-14T00:00:00+00:00http://www.alanbradburne.com/itunes-goodies<ol>
<li>iTunes Goodies</li>
</ol><p>This post is a not-very-subtle plug for two mind blowingly awesome things that have recently appeared in the iTunes store.</p>
<p><strong>Ashmore – 1000 Mile Stare</strong></p>
<p><img src="/images/ashmore.jpg" alt="" /></p>
<p>First up is my brother Colin’s band, Ashmore. Their album, 1000 Mile Stare was released at the beginning of September worldwide on iTunes.</p>
<p>Col plays rhythm guitar, bass and keyboards and also recorded, engineered and mixed the album.</p>
<p>It rocks. Go buy it now and support my little brother! (ha – ‘little’ – he’s way taller than me)</p>
<p>You can buy the album on <a href="http://bit.ly/ashmoremusic">iTunes</a>, <a href="http://www.amazon.com/dp/B001CQQTE2?tag=alabrasblo-20">Amazon MP3 store</a> and various other download services (does anyone actually use Napster anymore?)</p>
<p>Read more about the band on <a href="http://ashmoremusic.co.uk">http://ashmoremusic.co.uk</a></p>
<p><strong>Txtwist</strong></p>
<p><img src="/images/txtwist.jpg" alt="" /></p>
<p>My good friend Paul’s first iPhone app hit the store over the weekend.</p>
<p>It’s a anagram game called <a href="http://bit.ly/txtwist">txtwist</a>. Very fun, addictive, and a steal at 59p</p>
<p>My claim to fame is that created the logo for the app. Don’t laugh, please. You know I’m not a graphic designer in any way!</p>
<p>I hope you can spare a moment to take a look at both of these. Both of them have put in huge amounts of time, effort, bloody, sweat and tears into their respective projects. I’m so proud of them.</p>Alan Bradburnealan@alanbradburne.comhttps://alanbradburne.comiTunes GoodiesEddie Loves You (aka Psycho Elmo!)2008-02-28T00:00:00+00:002008-02-28T00:00:00+00:00http://www.alanbradburne.com/eddie-loves-you<ol>
<li>Eddie Loves You (aka Psycho Elmo!)</li>
</ol><p><img src="/images/ely.jpg" alt="" /></p>
<p>My bestest-buddy <a href="http://www.darklineonline.co.uk/">Karl</a> has finally released his award-winning short film <a href="http://www.darklineonline.co.uk/ely.html">Eddie Loves You</a> onto the net. It’s seriously good. Bloody funny stuff.</p>
<p><span class="caps">FYI</span>, it’s not exactly kid-friendly – Elmo goes psycho!</p>
<p><a href="http://www.darklineonline.co.uk/ely.html">GO <span class="caps">WATCH</span> <span class="caps">NOW</span>!</a> :)</p>Alan Bradburnealan@alanbradburne.comhttps://alanbradburne.comEddie Loves You (aka Psycho Elmo!)Rails, MySQL and ImageMagick on OS X Leopard2007-10-29T00:00:00+00:002007-10-29T00:00:00+00:00http://www.alanbradburne.com/rails-mysql-imagemagic-on-leopard<ol>
<li>Rails, MySQL and ImageMagick on OS X Leopard</li>
</ol><p><em><span class="caps">EDIT</span>: This most likely completely out of date. I’ll update when I have the chance to do a clean install. Although that’s likely to be on Snow Loepard.</em></p>
<p>Just a note to myself for getting my other machines Rails environments up and running properly. Basically a collection of info from the <a href="http://weblog.rubyonrails.com/2007/10/26/today-is-leopard-day">Rails Weblog</a> <a href="http://angry-fly.com/index.cfm/2007/10/26/Fix-for-MySQL-on-Leopard">Angry Fly</a> and <a href="http://nullstyle.com/2007/10/27/how-to-build-imagemagick-and-install-rmagick-with-macports-on-mac-os-x-leopard/">NullStyle</a></p>
<p>Thanks guys!</p>
<p>Rails 1.2.3 comes pre-installed on Leopard. To get the rest of the environment up:</p>
<p><strong>Update gems</strong></p>
<p><code>
sudo gem update
</code></p>
<p>Install MySQL package<br />
From the <a href="http://dev.mysql.com/downloads/mysql/5.0.html">usual place</a></p>
<p><strong>Install the Ruby MySQL bindings</strong></p>
<p><code>
sudo env RC_ARCHS=i386 gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
</code></p>
<p>Update: If you’re on PowerPC, instead of the above, use one of the following commands (depending if you’re 32 or 64bi). Thanks to Henry for the tip in the comments!</p>
<p><code>
sudo env RC_ARCHS=ppc gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
sudo env RC_ARCHS=ppc64 gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
</code></p>
<p><strong>Fix MySQL for Leopard</strong></p>
<p><code>
cd /usr/local/mysql/lib
sudo mkdir mysql
cd mysql
sudo ln -s /usr/local/mysql/lib/lib* .
</code></p>
<p>Start MySQL with: (the sys prefs box doesn’t work yet)</p>
<p><code>
sudo /usr/local/mysql/bin/safe_mysqld
</code></p>
<p><strong>Now make a link to the MySQL socket</strong></p>
<p><code>
sudo mkdir /var/mysql/
sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock
</code></p>
<p><strong>Install MacPorts</strong></p>
<p>From <a href="http://www.macports.org/">here</a></p>
<p><strong>Install ImageMagick + RMagick</strong></p>
<p><code>
sudo port install tiff -macosx
sudo port install ImageMagick
sudo gem install rmagick
</code></p>
<p>I think that hits the main things that tripped me up. I’ll update if anything else crops up.</p>Alan Bradburnealan@alanbradburne.comhttps://alanbradburne.comRails, MySQL and ImageMagick on OS X LeopardiPhone Apps2007-07-01T00:00:00+00:002007-07-01T00:00:00+00:00http://www.alanbradburne.com/iphone-apps<ol>
<li>iPhone Apps</li>
</ol><p>Cory Doctorow came to me in a dream last night (in his steampunk van, obviously. He was a wearing a top hat too) and we talked about an iPhone app that should be written. Damn fine idea too, simple, but incredibly useful… Hacking in progress…</p>
<p>I think I should seek help. Seriously.</p>Alan Bradburnealan@alanbradburne.comhttps://alanbradburne.comiPhone AppsBook Published!2007-06-25T00:00:00+00:002007-06-25T00:00:00+00:00http://www.alanbradburne.com/book-published<ol>
<li>Book Published!</li>
</ol><p>Looks like my book is finally shipping!</p>
<p><a href="http://www.amazon.com/dp/1590598415?tag=alabrasblo-20"><img src="/images/book.gif" alt="" /></a></p>Alan Bradburnealan@alanbradburne.comhttps://alanbradburne.comBook Published!