Category Archives: Software Engineering

Amazon SDK broken dependencies

If you have received this error message: java.lang.IllegalStateException: Unsupported cookie spec: default It is because Amazon made their SDK dependency look like this: +— com.amazonaws:aws-java-sdk | +— org.apache.httpcomponents:httpclient:[4.1, 5.0) -> 4.4-beta1 | | +— org.apache.httpcomponents:httpcore:4.4-beta1 i.e. they made an open-ended … Continue reading

Posted in Software Engineering | Comments Off on Amazon SDK broken dependencies

Use a DSA to implement your DSL (insipired by Cucumber)

This post was inspired by The Training Wheels Came Off by Aslak Hellesøy, author of The Cucumber Book. TL;DR – Use a Domain Specific (testing) API to implement your Domain Specific Language That article describes the motivation behind removing web_steps.rb … Continue reading

Posted in Software Engineering | Comments Off on Use a DSA to implement your DSL (insipired by Cucumber)

Computer Science Hard Things

There is a popular saying about Computer Science (see here and here): There are only two hard things in Computer Science: cache invalidation and naming things. — Phil Karlton There is a funny variation that makes it “There are only … Continue reading

Posted in Software Engineering | Comments Off on Computer Science Hard Things

Agile non Evolutionary Stable Strategy

Starting with a quotation I saw at a rest stop while on vacation: Dryland farming works best when in a wet year. This was on a placard explaining that Dryland farming had a string of successful years when it was … Continue reading

Posted in Software Engineering | Comments Off on Agile non Evolutionary Stable Strategy

Choose Your Path Wisely

This article was inspired by a strangely acting Gradle build script. (Unimportant details: it worked fine locally, and it worked in Jenkins the first time, but when I renamed the job, it mysteriously started failing with a compile error every … Continue reading

Posted in Software Engineering | Comments Off on Choose Your Path Wisely

Gradle with Local Archiva Publish

This shows the way to get gradle to use a local Archiva server to publish your project artifacts. IMPORTANT: You must configure your “guest” user in Archiva to have the correct permissions (roles) to publish to the Archiva server. To … Continue reading

Posted in Software Engineering | Comments Off on Gradle with Local Archiva Publish

Gradle with Local Archiva

This shows the way to get gradle to use a local Archiva server to resolve dependencies (where the Archiva server in turn resolves to maven central). (Side comment: documentation for gradle is sparse, incomplete and out-of-date – e.g. ‘mavenRepo’ shows … Continue reading

Posted in Software Engineering | Comments Off on Gradle with Local Archiva

Oracle Adds License to oracle-java7-installer and Now It Fails

For automatic provisioning that installs the official Oracle Java package, many paths lead to WebUpd8Team/java PPA and www.webupd8.org. Currently, the apt-get-install oracle-java7-installer command will fail, leaving a file at /var/cache/oracle-jdk7-installer/jdk-7u51-linux-*.tar.gz that is a plain .html file that contains “Sorry! In … Continue reading

Posted in Software Engineering, Ubuntu | Comments Off on Oracle Adds License to oracle-java7-installer and Now It Fails

Groovy Badness: Turn a List into a Map

I’ve always enjoyed finding bugs in languages. I still fondly recall finding a bug in Perl concerning the “while () { .. }” construct and file names that evaluate to ‘false’, like a file named “0”, for example. More recently, … Continue reading

Posted in Software Engineering | Comments Off on Groovy Badness: Turn a List into a Map

Tim’s Rule on Agile

Tim’s Rule on Agile: If you read a description of Agile practices and do not find at least one thing wrong per page, then you do not have enough experience to make Agile work. Tim’s first corollary to the Rule … Continue reading

Posted in Software Engineering | Leave a comment