Category Archives: Software Engineering

What is AngularJS – the key is client-side

After working with AngularJS for a couple of months now, I can finally express a concise answer to “What is AngularJS?” It is: MVC where the model is on the client side MVC where the view is a template based … Continue reading

Posted in Software Engineering | Comments Off on What is AngularJS – the key is client-side

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