Categories
Archives
Category Archives: Code
Upgrading from Spring 3.0.x to Spring 3.1.x
I recently had the pleasure of upgrading our Java code base from a Spring-3.0.6 base to the latest Spring-3.1.2 libraries. There were a couple unexpected hiccups I encountered that didn’t have a ton of solutions on stackoverflow or the google, so I thought I’d capture some of them here. Additionally, it’s pretty useful to look [...]
Spring Configuration and Library Decomposition
Opower’s evolved rapidly in the last 24 months and nowhere is that more true than in our code base. Two years ago we had 2 flagship applications that shared model objects, DAOs and a handful of utility classes with one common JAR. Since then we’ve expanded to the point where (not even counting all the [...]
Our Scala DSL for testing our web product
This is actually a fairly old bit of tech for us, but I’ve been reading Martin Fowler’s DSL Book, and thought it might be good to talk about what we’ve done. Our Domain-Specific Language is probably more domain-specific than you might be used to. Frameworks like Ruby-on-Rails or ScalaTest are DSLs for very broad domains [...]
Attentive Programming
Attentive Programming I’m currently reading Matthew Crawford’s Shop Class as Soulcraft who writes about how manual labor can make you spiritually whole. To get us to look at work in new ways, he describes work using the categories: assertiveness and attentiveness. Crawford writes that work is not exclusively assertive or attentive and that to obtain the spiritualism that [...]
Boxed primitives and ==
One part of programming culture at OPOWER is to program defensively, providing useful information when contracts are violated. What does this have to do with boxed primitives? Getting an assertion message of “Person 1001′s customer id 109032 didn’t match the passed-in customer’s id of 109032″ seemed logically impossible, but was somehow true. But first, let’s [...]
Dave’s Talk at ScalaDays 2010
OPOWER graciously sent me to Switzerland this year for ScalaDays 2010. I was lucky enough to be asked to present on “Sneaking Scala into the Enterprise”. OPOWER sponsored the videography. My talk, on starting to use Scala in your organization (based on my experience at OPOWER), is linked below; all the talks are online here. [...]
Alfresco 3.3 Lunch & Learn
OPOWER attended the Reston, VA "Alfresco 3.3 lunch & learn" seminar this week, hosted by the generous folks over at SiteWorx. Alfresco 3.3 looks support the CMIS 1.0 spec and head further into the ECM space.
When adding more threads makes it all slower
I’ve been working on a new feature that requires analysis of each individual’s entire energy-use history. In other words, I have a process that will touch every single bit of data in our database. This should be a rare thing, so if it takes a while, it’s not that big of a deal. My initial [...]
Timeshifting in HBase