I love Ceph to pieces! I don't love it's docs that much though, and I find the multi-level subcommands unintuitive at times. Quick, is it "ceph pg query x.y" or "ceph pg x.y query"? There's some good docs out there, but to me they feel scattered and it's …
Peterlog
Clojure: Functional
It's been awhile, but finally I've found some time to play with Clojure again.
Now on for some more functional programming techniques: partials, closures, higher order functions, and so on.
Recap: composite types as functions
Composite types can be used as functions of their elements, I wrote about this previously …
Clojure: Set for a Lazy Life
I'm now reaching Pt. III of "The Joy of Clojure". The first part is about immutability and lazy evaluation.
Recap: Benefits of Immutability
Values are set in constructors and don't change thereafter. Makes it easier to debug and reason about programs. Implementing invariants is easier: invariants only need to be …
Clojure: Collecting things
Last time I've explored scalar data types. There are a lot of details to discover there, but on the whole that was dry stuff.
Now for something a bit more complex: collection data types (putting the List in Lisp).
Persistence and Terminology
Immutable sequences are called persistent in The Book …
Logstash
When I was a System Integrator in Zug, I really learned to love log files. Indispensable for troubleshooting; and over time you learned to visualize the internal state of the trading programs just by looking at the traces.
However, most of those logs were local. The most critical log messages …
Clojure: Scale those scalars
Now for some more details on fundamental data types. The fourth chapter of "The Joy of Clojure" 2nd ed. deals with some scalar data type topics. I'll cover integer overflow, keywords, symbols, metadata, regular expressions, and others.
Overflow and Promotion
By default, we get Longs:
user> (def regular 23) #'user …
Clojure Pool: more things deep and shallow
I've been beginning to dig into Clojure, and this time I'll go through the third chapter of "The Joy of Clojure" 2nd ed.
Truth
0 and 1, that's what I've been tought. Clojures notion of truth is almost as simple: there are two values that are considered false, false and …
This Clojure Firehose
Previously, I've been starting my foray into Clojure-land with some pretty basic stuff, an intro to some datastructures. Now I'm going into more interesting territory: functions, namespaces, blocks & scope.
Functions make the Lisp go round
Functions Anonymous
Defining anonymous functions is done with this 'special form' ie. builtin primitive:
user …
This Clojure Thing
I like languages. I don't have much of an ear for natural languages, but after some decades of playing around with computers I do know a little bit about programming languages. Once in a while I set out to learn a new one.
So why learn Clojure? First, the learning …
Btw., Todoist
I'm now happily using Todoist. The free version is somewhat limited (no task notes, no reminders), and paid is a bit pricey (US$ 29,- / year). But on the other hand, I've come to really appreciate some of its features, such as breaking up tasks into subtasks, further grouping in projects …