tagged by:ruby


API bet188足球design·academia·agile·agile adoption·analysis patterns·application architecture·application integration·bad things·big data·board games·build scripting·certification·clean code·collaboration·computer history·conference panels·conferences·continuous delivery·database·bet188足球·dictionary·distributed computing magazine·diversions·diversity·documentation·domain driven bet188足球design·domain specific language·domestic·encapsulation·enterprise architecture·estimation·event architectures·evolutionary bet188足球design·expositional architectures·extreme programming·gadgets·ieeeSoftware·infodecks·internet culture·interviews·language feature·language workbench·lean·legacy rehab·legal·metrics·microservices·microsoft·mobile·model-view-controller·noSQL·object collaboration bet188足球design·parser generators·photography·podcast·popular·presentations·privacy·process theory·productivity·programming platforms·project planning·projects·recruiting·188足球比分直播·188足球比分直播refactoring boundary·requirements analysis·retrospective·ruby·scrum·security·software craftsmanship·talk videos·team environment·team organization·technical debt·technical leadership·test categories·testing·thoughtworks·tools·travel·uml·version control·web development·web services·website·writing


All Content

Is TDD Dead?

Kent Beck,188bet足球充值Martin Fowler,and David Heinemeier Hansson

David Heinemeier Hansson,the creator of Ruby on Rails,gave a keynote at RailsConf where he declared that TDD is Dead.This caused a predictably large amount of controversy in both the Rails and wider software development community.It also led to some interesting conversations between David,Kent,and myself.We decided that these conversations were interesting enough that others might like to watch them too,so recorded a series of video hangouts where we discuss the role of TDD in software development.

9 May 2014


Using the Rake Build Language

Rake is a build language,similar in purpose to make andant.使和蚂蚁是一个领域特定语言,unlike thosetwo it's an internal DSL programmed in the Ruby language.In thisarticle I introduce rake and describe some interesting things thatcame out of my use of rake to build this web site: dependency models,synthesized tasks,custom build routines and debugging the buildscript.

29 December 2014


Ruby Rogues Podcast on 188足球比分直播Refactoring

The Ruby Rogues is a popular podcast on programming in the Ruby world.They invited me back to discuss theRuby editionof188足球比分直播.We talked about the definition of 188足球比分直播refactoring,why we find we don't use debuggers much,what might be done to modernize the book,the role of 188足球比分直播refactoring tools,whether comments can be used for good,the trade-off between 188足球比分直播refactoring and rewriting,modularity and microservices,and how the software industry has changed over the last twenty years.

22 October 2014


Three Years of Real-World Ruby

For a talk at QCon London 2009 I surveyed ThoughtWorks use of Ruby from 2006-2008 in which time we did 41 projects.My talk covers our views on Ruby's producitivity,speed,and maintainability.I conclude that Ruby should be taken seriously as a development environment.I also have anarticlethat covers the same material if you prefer reading to watching.

March 2009


Collection Pipeline

Collection pipelines are a programming pattern where you organize some computation as a sequence of operations which compose by taking a collection as output of one operation and feeding it into the next.(Common operations are filter,map,and reduce.) This pattern is common in functional programming,and also in object-oriented languages which have lambdas.This article describes the pattern with several examples of how to form pipelines,both to introduce the pattern to those unfamiliar with it,and to help people understand the core concepts so they can more easily take ideas from one language to another.

25 June 2015



Perhaps I was being naive but I never expected quite the chatterthat my post onHumaneInterfaceopened up.Sadly most ofit ended up being arguments about the relative merits of Ruby'sArray and Java's List rather than the underlying points I was tryingto make,but despite that I think some nice conversationaltributaries appeared.

One of these conversational threads brought out that there areother reasons for the differences between Array and List than thehumane/minimal philosophies.One of these reasons has to do with theway similar functionality plays different roles in the twolanguages.

21 December 2005



I've long been loath to write any contributions on the debatebetween static and dynamic typing in programming languages.This isone of those emotive topics where people seem driven to debaterather than listen.But since I've been asked a few times about it,I will contribute my personal experiences.I'm not trying toconvince anyone of anything,but I hope someone finds some food forthought in them.

14 March 2005



If you're reading this I assume you're aware of the fact thatthere's been a huge amount of fuss about the Ruby programminglanguage,and in particular the Rails framework for developing webapplications.Some see it as the future of programming,others as adangerous diversion.

10 May 2006



If I want to teach people object-orientation,which language shouldI use?

23 May 2003



One of Ruby's most popular features is its support formetaprogramming,that is features that act like they change thelanguage itself - introducing things like new keywords.

26 October 2006



As any regular reader of mine should know,I've been a keenrubyist for several years.I like theruby languagefor its rich yetuncluttered syntax and the well bet188足球designed frameworks that come withit.It's become my regular workhorse language for personal projects,including most of this web site.

25 September 2005



A couple of weeks ago there was a Ruby conference in San Francisco called GoGaRuCo (Golden Gate Ruby Conference).This conference has grabbed attention due to a talk at which the presenter illustrated a discussion of CouchDB by using sexually suggestive pictures of women.Unsurprisingly the result has been a fair bit of heated,and occasionally offensive,debate.

30 April 2009


Hexagonal Architecture and Rails

Badri Janakiraman and 188bet足球充值Martin Fowler

A couple of videos of a conversation between me and my colleague Badri about hexagonal architecture and its role in a Rails application.In the first video we talk about what Hexagonal Architecture means and how this leads into the choice between the Active Record and Data Mapper patterns for a persistance framework.In the second we move more broadly into the architectural role Rails should play in an application - should you see it as a platform,or a suite of components.

5 June 2014


Ruby Rogues episode discussing P of EAA

The Ruby Rogues are a popular podcast where a regular panel discusses topics in the Ruby programming community.They have a regular book club and recently selectedP of EAAas their featured book.Consequently they asked me to appear as a guest on their show to discuss the book and the patterns that it describes,in particular the interesting relationship between these patterns and the Rails framework.

20 March 2013


Ruby at ThoughtWorks

ThoughtWorks started using Ruby for production projects in 2006,from then till the end of 2008 we had done 41 ruby projects.In preparation for a talk at QCon I surveyed these projects to examine what lessons we can draw from the experience.I describe our thoughts so far on common questions about Ruby's productivity,speed and maintainability.So far our conclusions are that Ruby is a viable platform that should be seriously considered for many forms of applications - in particular web applications using Ruby on Rails.I also go through some technical lessons,including some thoughts on testing with Active Record.

11 June 2009


Keynote for RailsConf 2006

As with most of my keynotes,this is anextemporarytalk.Given the conference,this one has a theme of how rails impactssoftware development.

July 2006



When you learn about objects,you usually learn that they can capture two kinds of data: instance and class.Instance variables are the most common case,the data varies with each instance of the object.Class variables,often referred to as static variables,are shared across all instances of a class.Every instance points to same value and any changes are seen by all.Class variables are much less common than instance variables,especially mutable class variables.

9 January 2007



Recently some of our developers ran into the accusation that with a dynamic language like ruby you use so many dynamic type checks that you end up effectively writing your own type system.So they thought,since we've written a lot of real ruby code - how often do we make dynamic type checks?Michael Schubert gathered up the data.

2 June 2009



In the newly formed Rails community,the word 'enterprise' isbecoming a dirty word.For many people the Rails framework,with itsaggressive simplicity,is the antithesis of over-complex'enterprisey'frameworks.

11 July 2006



Currently there's quite a debate raging over the relative meritsof Groovy and JRuby as scripting languages running on the Javavirtual machine.Curious minds want to know - which of theselanguages will win this upcoming language war?People want to knowwhich language to pick for a project,or which language to commit tolearn.

28 November 2007



I don't go to as many conferences as I used to,but the advantage of that is that I have time to go to ones that take my fancy.I've long had a particular fondness for the Ruby community,so I turned up as an attendee at this year's RailsConf.

22 May 2007



AtRailsConf2007there was a lot of excitement over JRuby.This small team had taken a moribund project and turned it into what looks like a first class implementation of the Ruby platform on the JVM.They got a lot of cheers and deserved them all.

So with JRuby pretty much here,the spotlight moves onto the othercommon managed code runtime - .NET.Microsoft's intentions for Rubyare currently much less clear.They have announced Ruby as alanguage for scripting Silverlight - but that still leaves a lot ofopen questions.Is this a full implementation of the ruby language,or is some form of Ruby++ - an enhanced subset of Ruby?

30 May 2007



In my recent post onEvaluatingRubyI mentioned that a colleaguehad put together a web app with some fancy numerical graphs.Someoneemailed to ask how he did that.I added my short answer,ploticus,to the original bliki entry,but that led to the question of how heinterfaced ruby with ploticus?

19 June 2006