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”

An answer to CircleCI’s “Why we’re no longer using Core.typed”

CircleCI has recently published a very useful post “Why we’re no longer using Core.typed” that raises some important concerns w.r.t. Typed Clojure that in their particular case led to the cost overweighting the benefits. CircleCI has a long and positive relation to Ambrose Bonnaire-Sergeant, the main author of core.typed, that has addressed their concerns in hisContinue reading “An answer to CircleCI’s “Why we’re no longer using Core.typed””

Refactoring & Type Errors in Clojure: Experience and Prevention

While refactoring a relatively simple Clojure code to use a map instead of a vector, I have wasted perhaps a few hours due to essentially type errors. I want to share the experience and my thoughts about possible solutions since I encounter this problem quite often. I should mention that it is quite likely thatContinue reading “Refactoring & Type Errors in Clojure: Experience and Prevention”

Notes From CodeMesh 2014

My consise highlights from CodeMesh 2014. Philip Potter has very good CodeMesh notes as well, as usually. TODO: Check out the papers mentioned in the  NoSQL is Dead talk. (<- slides) Tutorial: QuickCheck (John Hughes) General QC => Less code, more bugs found QC tests are based on models of the system under test –Continue reading “Notes From CodeMesh 2014”

Most interesting links of July ’14

Recommended Readings Video: The Unreasonable Effectiveness of Dynamic Typing for Practical Programs – a static-typing zealot turned friend of dynamic typing under the experience of real-world projects and problems shares thoughts about the limits of type systems (f.ex. both energy and torque are measured in N*m yet cannot be combined) and their cost: according toContinue reading “Most interesting links of July ’14”

Most interesting links of June ’14

Recommended Readings The emperor’s new clothes were built with Node.js – I know sadly little about Node.js but this goes against the hype and is thus interesting. So what does Node.js give us? Performance 1-5x slower than Java [like Clojure] according to the Benchmarks Game (contrary to other benchmarks with the opposite result as mentionedContinue reading “Most interesting links of June ’14”

Review: Clojure for Machine Learning (Ch 1-3)

Pack Publishing has asked me to review their new book, Clojure for Machine Learning (4/2014) by Akhil Wali. Interested both in Clojure and M.L., I have taken the challenge and want to share my impressions from the first chapters. Regarding my qualification, I am a medium-experienced Clojure developer and have briefly encountered some M.L. (regressionContinue reading “Review: Clojure for Machine Learning (Ch 1-3)”

Most interesting links of May ’14

Recommended Readings Monolith – from The Codeless Code – fables and koans for the SW engineer – the Monad monolth #Haskell #fun http2 explained (pdf, 27 pages) – cons of http 1 (huge spec / no full impl., wasteful use of TCP <=> latency [x spriting, inlining, concatenation, sharding]) => make it less latency sensitive,Continue reading “Most interesting links of May ’14”

Clojure/Java: Prevent Exceptions With “trace missing”

The other day I got this little helpful exception from Clojure: – no line number or anything to troubleshoot it. It turns out it is not Clojure’s failure but a HotSpot optimization that can apply to NullPointerException, ArithmeticException, ArrayIndexOutOfBoundsException, ArrayStoreException, and ClassCastException. The remedy is to run the JVM with From Oralce JDK release notes:Continue reading “Clojure/Java: Prevent Exceptions With “trace missing””

Most interesting links of April ’14

Recommended Readings The economics of reuse – developing code for reuse costs much more than for one need – it might cost 300% more to develop and save you 75% of work when (re)using it instead of developing from scratch (if one of the factors goes down, the other one typically goes down too). Summary:Continue reading “Most interesting links of April ’14”