Welcome to NCLVerse Code

Here you'll find the source code for all the applications in NCLVerse. For quick start, choose one of the applications from the sidebar and you are good to go.

Where AM I?

If you are a casual websurfer and it's your first time around in the NCLVerse, it's totally normal to feel a bit lost in the space. Try reading about this universe on the documentation websites that paints the big picture of the overall ecosystem.

Design Language

If you are a designer and is interested in knowing about the visual language that is used for communicating with the user, check the Design website.

Dissertation

If you are more interested in the theoretical grounding of this project, have a dekko at the dissertation websites which describes the metaphors and principles that guided the creation of NCLVerse.

What can a developer find here?

If you are a software developer who is around here for the first time, consider reading the following guidelines for a fuller experiences.

An Ecosystem in Lisp

All of NCLVerse is coded in a dialect of Lisp known as Clojure. This decision was driven by the fact that coding in Clojure allowed me to concentrate on both the front-end and back-end with a single language. This means significantly reduced cognitive overload from a development perspective and I'll be honest, I wanted to see why everyone was marketing functional programming as the next best thing.

Literate Programming

All the code is written in literate programming style. This means that I try(and fail) to tell a story through my codebase. The story changes when I refactor the codebase.

Code Organization

The codebases are separated based on the namespaces of the files. Each catering to a certain concern.

As for the organization, the style here mimics that of marginalia with a large margin. But where it diverges is that it has more organization when it comes to the code base.

Everything is segragated into sections with an overview system diagram presented initially. As mentioned in the book Thinking in Systems, I found such diagrams to vastly improve the comprehensibility of the system. Please consult the hairball section of actual dissertation for more about the design decisions.

Also tags where I thought there is more to do with the codebase is labelled as having TODO tags and the code that I think to have very bade form labelled as SMELL.

Most of the stuff is in a state of flux, so a versioning system is followed:

Code Statistics

Lines Written: Lines Deleted: Time Spent: