Tag: Clojure

  • jar-copier 0.1.0 released

    jar-copier 0.1.0 released

    jar-copier is a Leiningen plug in to copy jars from your dependencies to your source tree. It’s a very small simple utility that proved to be necessary to have a sane setup with Java agents (New Relic for example). It’s very simple to use. Put [jar-copier “0.1.0”]  into the :plugins  vector on your project.clj. To […]

  • Limiting threads (workers) with Jetty in Clojure

    Limiting threads (workers) with Jetty in Clojure

    While trying to understand the behaviour of my implementation of server side JavaScript execution for pre-rendering SPAs (Single Page Applications), something I’ll write about later on, I quickly run out of memory on Heroku. What I believe was going on is that my Heroku machine was trying to handle too many requests at the same […]

  • No-hashes bidirectional routing in re-frame with bidi and pushy

    No-hashes bidirectional routing in re-frame with bidi and pushy

    Note: this is a bidi counterpart to the silk article: No-hashes bidirectional routing in re-frame with silk and pushy. The content is very similar, only the code changes. I recently replaced secretary with bidi and pushy in a re-frame project that was created fresh out of leiningen template and this is how I did it, but first, the […]

  • to-jdbc-uri 0.3.0 released

    to-jdbc-uri 0.3.0 released

    We just released a new version of to-jdbc-uri, 0.3.0, with MySQL support (courtesy of Joe Kutner). Grab it while it’s hot: https://clojars.org/to-jdbc-uri We also improved the documentation: https://github.com/carouselapps/to-jdbc-uri

  • No-hashes bidirectional routing in re-frame with silk and pushy

    No-hashes bidirectional routing in re-frame with silk and pushy

    Update: there’s a version of this article that uses bidi instead of silk: No-hashes bidirectional routing in re-frame with bidi and pushy. The content is very similar, only the code changes. I recently replaced secretary with silk and pushy in a re-frame project that was created fresh out of leiningen template and this is how I did it, but […]

  • Macros, the Lisp advantage

    Macros, the Lisp advantage

    Learning about macros in Lisps was one of my biggest whoa-moments in my programming career and since then I’ve given presentations about them to audiences ranging from 1 to 100 people. I have a little script that I follow in which I implement a custom form of the if-conditional. Unfortunately, I don’t think I’ve managed […]

  • Forcing SSL in a Luminus application

    Forcing SSL in a Luminus application

    We tend to be very security conscious at Carousel Apps and one thing we often do is force all our applications to run over TLS (aka SSL), that is, when you go to http://example.com we redirect you to https://example.com. This little article will show you how to do it in a Luminus application. First, add Ring […]

  • Falling in love with Clojure, all over again

    Falling in love with Clojure, all over again

    You know when after a few months of dating someone, they do something that touches you and fall in love all over again. It just happened to me and Clojure. I was playing with Korma and I had the following namespace declaration: (ns carouselapps.db.core (:require [korma.core :refer :all] [korma.db :as db] [environ.core :refer [env]] [to-jdbc-uri.core […]

  • How to use Lobos with Heroku

    Lobos is a Clojure library to create and alter tables which also supports migrations similar to what Rails can do. I like where Lobos is going but it’s a work in progress, so the information here might be out of date soon, beware! Let’s imagine a project called px (for Project X of course) with […]

  • Why I love Lisp

    This post was extracted from a small talk I gave at Simplificator, where I work, titled “Why I love Smalltalk and Lisp”. There’s another post titled “Why I love Smalltalk” published before this one. Lisp is an old language. Very old. Today there are many Lisps and no single language is called Lisp today. Actually, […]