Category Archives: Software Development

My “cloud” tool chain

Recently Mike Amundsen posted a list of the tools he uses for developing cloud applications. He also asked for others to provide their lists. So here goes: Emacs The one true development environment that all others aspire to be like when they grow up. Mike has been using Cloud9 and really seems to like it. [...]

Developing software as if quality matters

When we started developing CloudSwing we decided to develop CloudSwing as if quality actually matters. By quality i don’t just mean that the code functions as designed. High quality products also meet the needs of the business and customers. In the past there has been a sense of disconnection between the business, QA and development [...]

RDF vocabulary design issues โ€” checksums

The SPDX technical team recently encountered and interesting situation while developing our RDF vocabulary. The exact scenario was as follows, the information we store about a file is potentially invalidated with every change to the contents of that file. For example, some code might be added that has different licensing requirements. Or all the code [...]

RDFa as interchange format

The tension between human and machine readability is never greater than when developing interchange formats. Formats that are easy and efficient for computers to read tend to be rather difficult for people to understand. When developing an interchange format you know that there will be few tools supporting it when it is released tools so [...]

Javascript

From the coffeescript homepage: Underneath all of those embarrassing braces and semicolons, JavaScript has always had a gorgeous object model at its heart. That sums up my feelings about javascript almost exactly.

Saml SP announce

Saml-sp provides support for being a SAML 2.0 service provider in an HTTP artifact binding SSO conversation. Synopsis This library provides parsing of SAML 2.0 artifacts. For example. artifact = Saml2::Type4Artifact.new_from_string(params['SAMLart']) # => #<Saml2::Type4Artifact …> artifact.source_id # => 'a314Xc8KaSd4fEJAd8R' artifact.type_code # => 4 Once you have an artifact you can resolve it into it’s associated [...]

Resque-multi-step

I’ve been developing using asynchronous jobs quite a bit lately.1 There is only one reason to do work asynchronous. It takes too long to do it synchronously. Fortunately, it turns out that many of these very large work loads are embarrassingly parallel problems. And look, you have several (dozen) workers just waiting to do your [...]

resque-fairly

I have been using Resque quite a bit recently. It is a really nice asynchronous job system based on Redis. Resque checks the queues for jobs to process in a fixed order. (In alphabetic order, to be precise.) This turns out to be a problem is you want predictable handling time for jobs. For example, [...]

Vertical Slicing

I am a fan of polylithic architectures. Such architectures have many advantages related to enhancing evolvability and maintainability. When you decide to create a system composed of small pieces how do you decide what functionality goes into which component? Principles The goal is to sub-divide the application into multiple highly cohesive components which are weakly [...]

Is ruby immature?

A friend of mine recently described why he feels ruby is immature. I, of course, disagree with him. There is much in ruby that could be improved, but the issues he raised are a) intentional design choices or b) weaknesses in specific applications built in ruby. Neither of those scenarios can be fairly described as [...]