May 2020 Monthly Update

By Alyssa Parado

Fireplace

Cider

May 1-15

nREPL:
cider-nrepl:
Piggieback:
CIDER:
inf-clojure:

May 16-31

nREPL:
Orchard:
cider-nrepl:
CIDER:
Misc:

Figwheel

May 16-31

Thanks!

This last couple of weeks have been fun and productive. I’m grateful to have had the time to work on the new :bundle target and simplify how figwheel integrates with the larger NPM eco-system. As a result, the NPM workflow in Figwheel has been vastly improved.

The following dev.cljs.edn config is enough to get you started with the new bundle target and webpack.

^{:auto-bundle :webpack}
{:main example.core}

Thanks to everyone who contributed to Clojurists Together and to those great early adopters of the new :bundle target who’ve helped me understand what folks are needing.

If you use these new features in Figwheel please reach out with any comments/questions on the #figwheel-main Slack channel as I’d like to really understand what folks are running into.

Overview

I spent the last two weeks continuing to improve the :bundle target support in figwheel-main.

You can see this work reflected it the com.bhaumsn/figwheel-main 0.2.7 release and the newly updated documentation for working with NPM.

If you head over to that page you will see a vastly improved document that details the improvements. You will also see that I spent a weekend updating the look of the Figwheel website. The site is still a work in progress as I only implemented about half of Lubov Soltan’s design.

To ensure that I wasn’t doing anything that would complicate working with React Native and the new :bundle target, I spent some time looking at react-native-figwheel-bridge. I ended up spending some time updating it so that it works with the new ClojureScript compiler. In addition I refactored RNFB and added support for expo. During that work I formulated a decent plan to bring React Native support directly into figwheel-main.

I also spent some time on Devcards and removed its dependency on a global js/React object. It now works much better when using NPM dependencies for React.

Itemized
Future work

During the course of this work my Figwheel to-do list has grown quite large so stay tuned, there are more changes to come.

Practicalli

May 1-15

Unfortunately illness caught up with me towards the end of this period, but otherwise I have been busy with the weeekly broadcasts and improvements to the Practicalli Clojure book, updating the install guides to Clojure CLI tools and repl driven development sections.

Practicalli Study Group

The weekly live broadcasts continue, finalizing the data science series and starting a new series on clojure.spec

Visualising data science

Concluded the series of 7 live broadcasts on Visualising data science.

The series started with extraction of data from various sources and how to transform data into more relevant structures for the task required. Initially using ascii-graph to visualize data in the REPL before moving on to create a professional looking dashboard usings Oz and Bulma CSS framework.

The dashboard project was developed around the continually changing coronavirus data available in the UK. The broadcasts has several examples of how to deal with things when the data format changes (which it did several times).

The later broadcasts includes tips and examples on how to refactor a project as it grows.

Introduction to clojure.spec.alpha

Started a new video series covering how to use spec in the REPL and with Clojure projects

Initially covering the foundation functions of the clojure.spec.alpha library and why its called alpha. practicalli/leveraging-spec project was created, covering Clojure predicates, spec/conform, spec/valid?, literal values (Clojure sets), the spec registry, fully qualified namespaces, map literal syntax, spec/def and spec/explain.

Started a spec for an online bank account that will be used in further episodes of the series.

Practicalli Clojure

Continued to migrate the book to Clojure CLI tools and deps.edn projects. The overall book content design is being refactored.

Update install guide to use Java 11 and added more editor options to the install guides, including NeoVim Conjure and Atom.io Chlorine.

Updated the practicalli/clojure-deps-edn repository with also contains a collection of commonly used aliases. This repository greatly simplifies the installation of Clojure CLI tooling.

Started creating transcripts for videos. Creating transcripts first helps increase the quality of videos created and reduces the amount of effort required post processing videos.

Added basic introduction to spec which will be expanded as Practicalli study group video series continues

Practicalli Spacemacs

Supported the community with issues on Spacemacs gitter and #spacemacs channel of Clojurians Slack.

Practicalli Clojure WebApps

Refactor overall book content design for Practicalli Clojure WebApps - plan to extend the scope of the book.

May 16-31

Unfortunately I was ill for most of this period, so not as much achieved this time. I am (and always intended to) extending the work passed the Clojurists Together sponsor period.

Summary

Continuing the weekly broadcasts on Clojure spec, a topic that will be added to the Practicalli Clojure book.

Added GitHub issues / PR shields for each book on the website to make tracking and contributing more convenient.

Pages on how to use Magit forge to list and create issues and pull requests as well as fork repositories on GitHib, all from within Spacemacs (Emacs).

Practicalli Website

Added Shields for each book with links to content ideas and pull requests on the respective repositories. Aids in the tracking of book progress and providing another way for others to contribute.

Added YouTube playlists to the Practicalli website to make specific video content easier to find.

Updated the Creative commons license notice on the front pages of all books and GitHub README files, ensuring compliance with the Software Freedom Conservancy.

Add favicon to each book website

Practicalli Study Group

Continuing the new series on clojure.spec.alpha, this time comparing function definition validation with :pre / :post conditions and spec fdef.

Practicalli Spacemacs

Several updates on using the Magit client

Guide on using Magit Forge to list and create issues and pull requests on GitHub, including forking remote repositories on GitHub. https://practicalli.github.io/spacemacs/source-control/magit/forge.html

Updated and tested the Magit Forge configuration page https://practicalli.github.io/spacemacs/source-control/forge-configuration.html

Add page on how to staging changes with Magit, including the scope of changes that can be selected, from multiple files, hunks or individual lines.

Video to how to update an existing pull request added to the contributing section, to complement the existing video showing how to contribute a pull request to Spacemacs (which can be used for any other project).

Practicalli Spacemacs playlist updated with related Spacemacs videos from jr0cket channel.

Supported the community with issues on Spacemacs gitter and #spacemacs channel of Clojurians Slack.

Practicalli Clojure WebApps

Add the high level plan to extend the book contents to the Clojure WebApps book, along with project ideas to implement.

Updated the cover of the book to use the new Practicalli ClojureWebApps book banner

Improvements to various content sections based on feedback from the community. * Updated webapps overview with additional project links * Completely revised the introduction to sets and hash-maps * Improved descriptions for the ring introduction, creating a project, creating a webserver, defining handlers, compojure defroutes and using the let function * Clarified use of Heroku for deploying applications

Re-frame

**May 1-15

Based on https://github.com/day8/re-frame/issues/589

Progress on the early, low-hanging-fruit step:

Closed with explanations: - #553 - #572 - #555 - #112 - #481 - #164 - #554 - #480

Picked Fruit, so far:

Issues arising: - #588

Building a grown-up website #582: - [x] A review of options and likely paths has commenced.

New website progress

New docs include the following: - Reusable Components - Addresses issue #264 - On Dynamics - Subscriptions - Previously a neglected area.

We’re down to about 18 issues and 3 PRs. When we started, I think it was 30 issues and 9 PRs.

**May 16-31

Based on https://github.com/day8/re-frame/issues/589

The task of addressing meatier issues is now slightly delayed.

New FAQ item added which closes #538

#478 - cljs-oss/canary build support has been done, but not yet enabled.

We are down to 13 open issues and 2 PRs.

In light of some negative feedback we have received of the initial release, we are reworking the new website. Goal is to present code earlier and require less initial reading.

Clojars

May 1-31

I continued working on deploy tokens, adding:

I also implemented the bulk of two-factor authentication. This wasn’t released in May, but will be released by mid-June.

Part of the two-factor implementation is an internal eventing system that will make it easier to add additional email notifications in the future.