An Architect's View

CFML, Clojure, Software Design, Frameworks and more...

An Architect's View

Entries Tagged as programming

World Singles is Hiring!

April 09, 2012 ·

World Singles is looking for a smart, motivated developer to join our small, fully distributed team of engineers, working on our multi-lingual, multi-tenant Internet dating platform. We're after someone with strong data management skills who can help us mine and analyze data in both MySQL and MongoDB, as well as help us leverage both more effectively. For more details:

The World Singles code base is a blend of CFML and Clojure - this role would be mainly on the Clojure side of the house but the primary skills needed are MySQL / MongoDB.

Tags: clojure · coldbox · coldfusion · mongodb · programming · worldsingles

Want to learn Clojure, online?

November 30, 2011 ·

Starting on December 5th and running for six weeks, the author of "Clojure in Action", Amit Rathore, is leading an online introduction to Clojure course for just $325. See the CodeLesson web site for more details on this Clojure course.

I'm fortunate that Amit is local to me so I've attended two of his one-day training courses already. In fact my first real introduction to Clojure was Amit's "ProClojure Bootcamp" back in May 2010 and it was a great jumpstart. More recently I attended his "Day of Macros" course which was pretty mind-blowing. Each of those cost $199, so the six week online course is great value since it will cover all of that and more!

If you're at all interested in Clojure, this would be an excellent way to come up to speed and find out what all the hype is about - for a very reasonable price!

Tags: clojure · programming

Happy Programmers' Day!

September 13, 2011 ·

Yes, it's the 256th day of 2011 which means it's Programmers' Day! Want something fun to do by way of celebration? Hop over to and take part in one of their cash prize competitions to create a video or graphical homage to programmers! Thanx to Josh Davis of for letting me know about that.

Tags: programming

The Last Programming Language

July 16, 2011 ·

On July 13th, 2011 Robert C. Martin (aka "Uncle Bob") gave a talk at Skills Matter in London called The Last Programming Language. He was scheduled to give a version of it as the keynote for ACCU 2011, a conference I remember with fondness from my days back in England as a member of the Association of C and C++ Users! You can read Martin's blog post about the talk here but note there's a $2 charge to watch the version linked from that blog post - the Skills Matter version linked above is free.

TL;DR: He asks whether we've exhausted all possible programming paradigms and languages and whether we should now consider a single standardized programming language (and offers a suggestion of what that might be). Preposterous?

[

Tags: clojure · programming

The Joy Of Clojure

March 19, 2011 ·

The final "Early Access" version of Manning's "The Joy Of Clojure" by Michael Fogus and Chris Houser is now available with the print edition becoming available on March 25th. I bought this back at the beginning of September 2010 and it's been wonderful to watch the book evolve through the early access program. It's a very entertaining and, at times, challenging book that really gets into the "why" of functional programming and the fun you can have with a language in the Lisp family. I find myself re-reading chapters over and over again to really soak in the concepts and approaches - and functional programming is pretty much what I started with back in the early- to mid-80's. It's very rewarding!

This final version now includes the foreword by Steve Yegge of Google (a very entertaining and thought-provoking blogger whom I've highlighted a couple of times here on this blog). I'd like to quote the closing paragraph of Steve's foreword:

"Lisp - the notion of writing your code directly in tree form - is an idea that’s discovered time and again. People have tried all sorts of crazy alternatives, writing code in XML or in opaque binary formats or using cumbersome code generators. But their artificial Byzantine empires always fall into disrepair or crush themselves into collapse while Lisp, the road that wanders through time, remains simple, elegant, and pure."

And that, to me, is why Lisp, Clojure and this book are such a "Joy" to work with!

Tags: clojure · programming

Are Objects Bad? Revisited

December 20, 2010 ·

Michael Long posted a comment on my "Are Objects Bad?" post which I wasn't really sure how to answer effectively. Michael feels that if you're just working with functions, and grouping them so each file deals with specific concepts, you're starting down the road to OOP anyway so why not "bite the bullet" and use full-on OOP...

[

Tags: clojure · programming

Seven Languages: Io, Day 2

December 16, 2010 ·

Unlike Ben Nadel, I don't intend to post my homework from each day of this exploration but I said in a comment on Ben's blog that I'd post some of my solutions. Today, I'm posting part of my Io Day 2 homework.

fibhelper := method( a, b, c,
   if( c <= 1,
      fibhelper( b, a+b, c-1 )
fib := method( n,
   fibhelper( 1, 1, n )
   writeln( "fib(", i, ")=", fib( i ) )

It's weird. This was one of the standard examples everyone always wrote in every new language they learned, back in the day. Yet faced with it yesterday, I drew a complete blank. I wanted to create an infinite lazy sequence of fibonacci numbers and then just walk to the Nth number. It actually took me a while to come up with the code above - and that was after several attempts at a straightforward loop. The recursive version is just the natural way I think, I guess!

I'll try to convert the recursive version into a loop and post that.

OK, now I have the recursive version, here's my iterative version:

fibr := method( n,
   f1 := 1
   f2 := 1
   for( i, 1, n-1,
      f := f1 + f2; f1 := f2; f2 = f
   writeln( "fib(", i, ")=", fibr( i ) )

Meanwhile, here's Ben Nadel's version of the Io Day 2 homework.

Tags: programming

Are Objects Bad?

December 08, 2010 ·

I've had a number of people criticize me for 'pushing' OOP as the One True Way(tm). Some people have even raised the somewhat infamous "tablizer" OOP-is-bad page (sorry, I'm not going to link to it!). Whilst I am a big fan of OO as a good way to model the real world in software, I try to be pragmatic about what works and I don't believe in One True Way(tm). Heck, I've become famous (notorious?) for saying "It depends!" when asked about the 'right' way to do something!

[

Tags: architecture · coldfusion · programming

Fun with Zodiac signs

November 22, 2010 ·

Here's a little puzzler for you! Given the twelve signs of the zodiac, write some code to print out a list of all the valid keys / pairs such that:

  • The keys have the form: zodiac.firstsign.secondsign (all lowercase)
  • The values have the form Firstsign and Secondsign (correct case on the sign names)
  • firstsign and secondsign are in alphabetical order
  • There are no duplicates

The result will have lines like:

  • [zodiac.aquarius.aquarius Aquarius and Aquarius]
  • [zodiac.aquarius.pisces Aquarius and Pisces]
  • ...
  • [zodiac.aries.pisces Aries and Pisces]
  • [zodiac.aries.aries Aries and Aries]
  • [zodiac.aries.taurus Aries and Taurus]
  • ...

Click through to see the solution I came up with (in Clojure because I expected it to be easier).

[

Tags: clojure · coldfusion · programming

Object-Oriented Programming in ColdFusion

October 08, 2010 ·

A lot of people have been asking for this: a book on Object-Oriented Programming in ColdFusion! Matt Gifford is the author (@coldfumonkeh) and Packt is the publisher - following on from their Developer Tutorial books for ColdFusion 8 and ColdFusion 9. Great to see Packt supporting ColdFusion by continuing to publish books, where some other publishers seem to have withdrawn their support.

Tags: architecture · coldfusion · programming