Skip to content

Practicalli Articlesλ︎

FreeDesktop.org XDG standard for Clojure development tools

Debian Linux Logo

The 🌐 FreeDesktop.org XDG basedir standard defines specific locations to store all user configuration, data files and caches.

Without the XDG standard, these files and directories are often mixed together and stored in the $HOME of the users account, making it more challenging to backup or version control.

Development tools such as NeoVim, Emacs, Clojure CLI and Clojure LSP support the XDG specification, although some tools like Leiningen required a little help. There are simple approaches to work-around the limitations of tools that don't conform.

Building Emacs 28 on Ubuntu Linux

Practicalli Clojure Logo

Emacs 28.1 is a feature packed release and includes native compilation to significantly increase the speed of all Emacs software packages installed. This is a very noticeable difference, especially when Emacs is at the center of your developer workflow.

Ubuntu hasn't packaged Emacs 28.1 yet, although its usually straight forward to build Emacs yourself.

Automate Cryogen Clojure blog with GitHub Actions

Practicalli Clojure 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).

Web Scraping with Clojure - Scraping Hacker News

Practicalli Clojure Logo

Enlive is a Clojure library that can be used for generating dynamic server-side content as well as scraping websites.

Scraping websites is sometimes required when they do not provide an API. Although Hacker News does have an API, will show how to scrape its website using Enlive's selectors.

Clojure Advent Of Code - a fun way to learn

Practicalli Clojure Logo

Advent of Code is the annual coding challenge with a festive theme. Each day there is a new challenge in two parts, the first fairly easy the second a little more involved. The challenges are an investment of your time to complete them all, although even trying just a few is enough to help you think in different ways.

Every programming language requires regular practice to maintain your skills. A full time developer role gives you lots of opportunities to practice every day, however, its often focused in around solving problems within a specific business domain, with little time to explore others. The Advent of Code puts you in a different domain, so its great for extending your coding experiences.

Solving challenges in a different language is another great way to extend your experiences, so here are some tips and examples for solving the advent of code in Clojure.

Advent Of Parens 2019 - feast on Clojure this holiday season

Practicalli Clojure Logo

The holiday season is know for over indulge, so why not stuff your head full of Clojure and functional programming. Its far healthier than the alternatives :)

To help you indulge, Arne from LambdaIsland, Bobby Towers, Alexander Oloo and I are writing a blog post each day as part of the Advent Of Parens 2019 celebration. Every day we plan to publish a short posts that share tips and experiences with functional programming and Clojure.

You can find the articles I am planning to write on the practicalli blog project board.

While you wait to open these posts each day of December, I am kickstarting your feast of Clojure in this article.

I also encourage you to take some time over the holiday season to practice Clojure

Clojure powered blogging with Cryogen

Practicalli Clojure Logo

A blog website shouldnt need a complex content management system. A simple and lightweight static website generator can create engaging websites that are simple to manage with Git.

Cryogen is a static site generator written in Clojure, allowing content to be written in either markdown or asciidoc. Posts and pages are configured with Clojure hash-maps to manage the meta-data and layout information for each post.

Cryogen seems very quick to generate a site and a local server can be run to automatically generate an updated website when changes to posts and pages are saved.