Get in touch
Email us at info@buildbrighton.com
Tweet us at @buildbrighton
Check out our Facebook page
Join our Google Group
Chat to us on IRC
Phone us on (01273) 358 263Newsletter
We send out a newsletter via email around once a month, sign up below
Upcoming Events
- Events on May 25, 2013
Hack the Space
From: 6:30 pm
to 10:00 pm
Description: Chip in to make our Hackspace more fun, more usable, and of course, superfrickenawesome.
- Events on May 28, 2013
Brighton Pi meetup
From: 7:00 pm
to 10:00 pm
Description: Monthly meetup of the Brighton Raspberry Pi user group, featuring guest speakers, show and tells, and Pi-based workshops.
See the Brighton Pi mailing list for more info: https://groups.google.com/forum/#!forum/brightonpi - Events on May 30, 2013
Open Evening
From: 7:30 pm
to 11:00 pm
Description: We'll be open for the evening. Feel free to pop in and see what we're about.
We are here
Build Brighton
Rodhus (back entrance)
Freehold Terrace
Brighton
BN2 4AB
Author Archives: Philip Cunningham
How We See Ourselves
When I was kid we drew pictures of ourselves and our school put them on a tea towel to sell to parents. Strange that even as a ten year old I knew I wanted to be a programmer (3, 10).
LittleLGP – Linear Genetic Programming in Clojure

LittleLGP is a little genetic programming (GP) project written in Clojure. It evolves populations of two distinct classes of programs that have a typical predator prey relationship. One class of program seeks to destabilize the environment whilst the other seeks to bring order.
This project was my first attempt at writing a GP program and my first program written in Clojure. Overall, I really enjoyed working on it, even if the final product isn’t great! The code is available to peruse on Github.
LittleLGP – Linear Genetic Programming in Clojure

LittleLGP is a little genetic programming (GP) project written in Clojure. It evolves populations of two distinct classes of programs that have a typical predator prey relationship. One class of program seeks to destabilize the environment whilst the other seeks to bring order.
This project was my first attempt at writing a GP program and my first program written in Clojure. Overall, I really enjoyed working on it, even if the final product isn’t great! The code is available to peruse on Github.
Computer Science and Religion
I have said that computer science is a lot like magic. And it is really good that it is like magic, because there is also a bad part in computer science that is a lot like religion.
– Harold Ableson (1985)
Computer Science and Religion
I have said that computer science is a lot like magic. And it is really good that it is like magic, because there is also a bad part in computer science that is a lot like religion.
– Harold Ableson (1985)
A Real Code Retreat
A real code retreat would be a month of slow hacking + tea brewing. No one would speak. We’d lake swim. We’d delete all the code at the end.— Alex McLean (@yaxu) March 25, 2013
A Real Code Retreat
A real code retreat would be a month of slow hacking + tea brewing. No one would speak. We’d lake swim. We’d delete all the code at the end.— Alex McLean (@yaxu) March 25, 2013
Grossperskys Credit && Aw, Shucks
I wrote these tracks a while back, but they didn’t really fit with the stuff I’d written before now. Writing them helped get me up to speed with Ableton, which I really do miss.
Grossperskys Credit && Aw, Shucks
I wrote these tracks a while back, but they didn't really fit with the stuff I'd written before now. Writing them helped get me up to speed with Ableton, which I really do miss.
Decorating Active Record Scopes
I recently ran into a problem in work where I wanted serialize the same Active Record model to JSON differently depending on context.
The solution I ended up going with was to wrap objects inside an Active Record scope in another object and proxy unknown messages to the internal object.
The example here is somewhat trivial but having these little objects helped add clarity to our JSON API.
class JSONDecorator attr_reader :instance def self.decorate(instances) instances.map {|instance| new(instance) } end def as_json(opts={}) raise "define as_json method on subclass" end def initialize(instance) @instance = instance end def method_missing(method, *args, &block) instance.send(method, *args, &block) end end
class ComedianAvailability < JSONDecorator def as_json(opts={}) json = Hash.new json["id"] = id json["name"] = title json["rating"] = url json["available"] = available json end def available active ? "yes" : "no" end end
json_response = ComedianAvailability.decorate(Comedian.scoped).to_json