Automate Cryogen Clojure blog with GitHub Actions

August 28, 2021
cryogen logo

Practicalli uses Cryogen static site generator for its blog website. Cryogen is fast and simple to use thanks to the Clojure EDN file used for configuration.

Cryogen documentation shows how to publish a Cryogen blog to GitHub pages using Git command. The deployment can be automated using GitHub actions, so that a new version of the site is deployed when Pull Requests are merged to the specified branch (or on direct commits to that branch).

Continue reading →

Overview of Language Server Protocol LSP for Clojure development

March 20, 2021
clojure-lsp logo

Microsoft Language Server Protocol, LSP, is exactly what the name says it is. Its a (JSON RPC) protocol. Its no more and no less than that. LSP is however a big strategy peace for Mircrosoft to encourage developers to adopt VS Code, which naturally provides support for the LSP protocol. The implementation of tooling that uses LSP is left to companies and communities that develop editor and related tools.

Standards can be an opportunity to focus development work and provide a rich set of tools that are far easier to integrate. There are many examples of where a protocol has provided a huge amount of diversity, such as TCP/IP, DNS, HTTP and HTML protocols that drove the creation of the web we know today. Standard protocols in themselves did not make the web, but allowed developers to build on top of them and create the rich and diverse experience on the web that we see today.

LSP is no different. By itself LSP provides no benefit. However, when adopted as a standard by tooling developers it has the potential to help grow an even richer experience for the whole developer community.

Continue reading →

Brave Clojure redux - part 1 - the REPL

February 16, 2021
learning-clojure logo

Brave Clojure redux is series that revisits the code examples and tooling covered in the book: "Clojure for the Brave and the True". The good news is you do not need to be brave or true to read the book or learn Clojure either. It does help if you have some time and motivation though.

Brave Clojure redux uses Clojure CLI tools rather than Leiningen as used in Brave Clojure. Code examples will be used from the book, complemented with additional examples where relevant.

Part 1 covers the Clojure REPL process, a vital part of Clojure development. The basics of building and running a project are also included.

Continue reading →

Clojure CLI tools - To jack-in or connect, that is the question

December 31, 2020
clojure-cli logo

To jack-in or connect, that is the question. Whether it is more effective to relying on the editor to auto-inject the required dependencies for every workflow, or assemble your own aliases them include any editor - William "Hacker" Shakespear

A REPL is the central part of Clojure development. For the full workflow, an editor connects to the REPL to evaluate code and show instant results.

The developer can be in control of how the REPL starts, managing libraries and tools used alongside the REPL. Or the editor can automate the process and control how the REPL is started.

Continue reading →

Clojure CLI tools aliases deserve good design too

December 11, 2020
clojure-cli logo

Aliases in Clojure CLI tools are an important way to configure how to work with a Clojure project effectively, so they deserve the same attention and clean design applied to source code, test code and other configuration.

practicalli/clojure-deps-edn provides examples of over 50 aliases crafted to use over multiple projects and providing access to a wide range of Clojure CLI community tools.

One way to kill the excellent experience that Clojure CLI tools bring is to write aliases that conflate concepts and are just a catch all for loosely related configuration. Without applying a little thought and design to aliases it just makes more work later on.

Continue reading →