Clojure – comparison of gnuplot, Incanter, oz/vega-lite for plotting usage data

What is the best way to plot memory and CPU usage data (mainly) in Clojure? I will compare gnuplot, Incanter with JFreeChart, and vega-lite (via Oz). (Spoiler: I like Oz/vega-lite most but still use Incanter to prepare the data.) The data looks like this: ;; sec.ns | memory | CPU % 1541052937.882172509 59m 0.0 1541052981.122419892Continue reading “Clojure – comparison of gnuplot, Incanter, oz/vega-lite for plotting usage data”

How I got fired and learned the importance of communication and play time

When I came to the office one late autumn morning in 2005, I have been shocked to find out that – without any warning signs whatsoever – I hd been fired. That day I have learned the importance of communication. Their criticism was justified but the thing is, nobody bothered to tell me anything duringContinue reading “How I got fired and learned the importance of communication and play time”

Beware the performance cost of async_hooks (Node 8)

I was excited about async_hooks having finally landed in Node.js 8, as it would enable me to share important troubleshooting information with all code involved in handling a particular request. However it turned out to have terrible impact of our CPU usage (YMMV): This was quite extreme and is likely related to the way howContinue reading “Beware the performance cost of async_hooks (Node 8)”

Troubleshooting javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure

Re-published from the Telia Tech Blog. The infamous Java exception javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure is hardly understandable to a mere mortal. What it wants to say is, most likely, something like this: Sorry, none of the cryptographic protocols/versions and cipher suites is accepted both by the JVM and the server. For instance the serverContinue reading “Troubleshooting javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure”

Why we love AWS Beanstalk but are leaving it anyway

Cross-posted from Telia’s Tech Blog. We have had our mission-critical webapp running on AWS Elastic Beanstalk for three years and have been extremely happy with it. However we have now outgrown it and move to a manually managed infrastructure and CodeDeploy. AWS Beanstalk provides you with lot of bang for the buck and enables youContinue reading “Why we love AWS Beanstalk but are leaving it anyway”

Pains with Terraform (perhaps use Sceptre next time?)

Cross-posted from Telia’s Tech Blog We use Amazon Web Services (AWS) heavily and are in the process of migrating towards infrastructure-as-code, i.e. creating a textual description of the desired infrastructure in a Domain-Specific Language and letting the tool create and update the infrastructure. We are lucky enough to have some of the leading Terraform expertsContinue reading “Pains with Terraform (perhaps use Sceptre next time?)”

How to patch Travis CI’s deployment tool for your needs

Travis CI is a pretty good software-as-a-service Continuous Integration server. It can deploy to many targets, including AWS BeanStalk, S3, and CodeDeploy. However it might happen that the deploy tool (dpl) has a missing feature or doesn’t do exactly what you need. Fortunately it is easy to fix and run a modified version of theContinue reading “How to patch Travis CI’s deployment tool for your needs”