Sean Corfield's blog articles

0
comment
on 11/2/2011 2:36 PM
Release 0.1.0 removed the dependency on (deprecated) structmap, with rows using regular maps now. Release 0.1.1 incorporates patches from Phil Hagelberg that allow the database connection spec to be provided as a URI (either a string or an actual URI instance) as well as allowing the driver class name to be deduced from the subprotocol for common databases. It should hit Maven Central later today (0.1.0 has been up there for a couple of weeks).
>> Read the full article
.
0
comment
on 11/2/2011 12:13 AM
I covered email tracking a little when I wrote about how we parse PowerMTA account files but I didn't go into what we actually do with our delivered / bounced data. We track the current status of an email as: updated, valid, bouncing or invalid. An email address that bounces a certain number of times is marked as invalid. An email address is considered valid whenever we record an email view (via an embedded image) or the member clicks a link we sent them in an email. An email is updated when [...]
>> Read the full article
.
0
comment
on 11/1/2011 12:13 AM
Clojure provides a nice, consistent interface for logging via clojure.tools.logging (one of the new, modular contrib libraries). It automatically wraps slf4j, commons logging, log4j and java.util.logging but you can override the implementation, if needed. At World Singles, we wanted to log some levels to a data store (initially MySQL, but later on to MongoDB) so we needed to write a custom log appender. I talked a bit about writing a custom log4j appender in Clojure in an earlier blog post but didn't go be[...]
>> Read the full article
.
0
comment
on 10/31/2011 12:12 AM
With a name like World Singles, you won't be surprised to know that our dating platform supports several different languages so our (non-Clojure) code is littered with calls like i18n.getResource( keyText, user.getPreferredLocale() ) and i18n.formatRBString( translation, [ arg1, arg2, arg3 ]). The former returns the localized translation for the keyText and the latter replaces substitution patterns like {1}, {2}, {3} with the matching argument from the supplied list. We actually manage the translations in [...]
>> Read the full article
.
0
comment
on 10/30/2011 12:11 AM
Persistence is core to pretty much every real world application. Side Story: One of the strengths of CFML is that it has a <cfquery></tt> tag built-in that makes it drop-dead simple to work with SQL. Only recently has CFML gotten a built-in ORM (based on Hibernate) so that what Java programmers have taken for granted for years is finally an option for CFML developers. That's not to say there weren't ORM-like data mappers in CFML for years but they were written in CFML and had a lot of limitations. At World[...]
>> Read the full article
.
IntelliFactory Offices Copyright (c) 2011-2012 IntelliFactory. All rights reserved.
Home | Products | Consulting | Trainings | Blogs | Jobs | Contact Us | Terms of Use | Privacy Policy | Cookie Policy
Built with WebSharper