Axion5

The official example template of creating a blog with Bootstrap.

Little guide to my github repos
    publishedat: 10/April/2020
    comments: false
    published: true
    title: Little guide to my github repos
    tags: github

    There are basically 4 projects spread over multiple repos and a bunch of separate repos:

    • adea
    • bb-server stack
    • roster
    • aum

    First three projects are from 2013/2014 built mainly with nodejs and couchdb (probably outdated somewhat now), last one (aum) is a full stack clojure library building on and extending om.next.

    Adea is more of an idea, with some implementation. Relevant repos are: cape (main repo), authpages (demonstration of signup/forgotpwd/resetpwd/confirm using couchdb and cape as backend), deploy-demo (visualisation of adea deploy algorithm), node-haproxy (control haproxy from node with hot reload) and docker-rcouch. See adea blog post for more info.

    The blog on this site is actually put together using the bb-server stack. See

    pages, the site itself is generated by bb-blog.

    On the projects page there is some info on the roster app project, and see here for summary of repos . Again, grand plans, but at least there was a working roster app.

    Over the years I added miscellaneous repos such as answers to TEOCS and a Make A Lisp (in javascript), see here for more repos.

    Most of the above repos are from 2015 and earlier. In the beginning of 2015 I got a job at DigitaleChecklisten and most of my programming energy went into working on their mysql/rails/ember stack. There was no accompanying admin app but I got the chance to build this in clojure from 2016 onwards. This is a full stack app built from basic building blocks such as mysql, ring and om-next. A lot for it had to be built still such as database validation, backend and frontend parser, test framework, build scripts etc. I extracted the generic parts and bundled them in aum and a few accompanying repos. See here for a summary of them.

    Playing around with devops a bit in demo (One line deploy of branch to branch.somedomain.com by using git push, ala dokku) and mystack, a work in progress using the hashicorp tools to set up a cloud infrastructure.

    ------------------

    0.1Bb-server stack, my own nodejs web stack and blog engine

    To learn javascript and node I put together as best as I could a complete stack, from a nodejs server, to a template engine.

    A summary of the relevant github repos:

    0.1.0.1bootstrapjs
    Tech: javascript Year:2012

    "Organise javascript code in modules with automatic dependency resolution a la require.js."

    This was before ES6 modules were around. I kinda liked javascript, well, the good parts, but the frontend was really missing some kind of module system. I rolled my own which was very instructional. Used in a few later projects.

    0.1.0.2bb-server
    Tech: javascript, nodejs Year: 2013

    "Simple bare bones http server. With clothes on now though..",

    Some clothes:

    • Caching of all static resources, in memory (LRU) and on disk.
    • Transpiling, minifying and compressing of these assets on the fly, combine this with caching and only modified assets will be transformed on a request.
    • Prerendering. A phantomjs rendered version of a page will be served if page comes with a query for an escaped fragment. These are also cached then.
    • Can serves a single page application
    • Start a websocket and/or a https server alongside your http server
    • Add message and close handlers for the websocket server
    • Inject scripts into browser
    • Option to inject reload script will refresh the browser on reload msg.
    • Support for sessions (mostly copied from sessions npm module)
    • You can plugin your own GET and POST handlers triggered by route.
    • Deals with favicon.ico requests
    • Customized logging of all requests to a log file
    • Cache busting by automatically removing stamps
    • Standard server features such as setting cache headers and giving a 304 response to a if- not- modified- since header.
    • Most options can be set on the command line, all of them using a json configuration file.
    • Wrapping of js files from a modules directory to denodify them.
    • Implementation of server side of persona. Example angular version of client side included.
    0.1.0.3cachejs
    Tech: javascript year: 2013

    "Implementation of async LRU and ARC cache.",

    Plus some intuitions on how the ARC cache works in the readme. Used in bb-server.

    0.1.0.4html-builder
    Tech: javascript, logthis, bootstrapjs. Year: 2013

    "Don't write html, use a layout and and populate it with partials."

    Basically a static site builder, also see next few entries.

    javascript, 2012
    0.1.0.5recaster
    Tech: javascript Year:2013

    "Wrapper for miscellaneous transpilers, minifiers and compressors.",

    0.1.0.6denodify
    Tech: javascript Year: 2014

    "Organize javascript on the browser using the nodejs module system.",

    Like browserify, but a bit simpler.

    0.1.0.7denodify-core
    Tech: javascript Year: 2014

    "Nodejs core modules adapted for denodify",

    0.1.0.8vow.js
    Tech: javascript Year: 203

    "Douglas Crockford's vow.js wrapped up in a node module",

    This module is still on npmjs together with bb-server and some other ones. They also seem to get some traffic, but not sure if that's just noise.

    0.1.0.9logthis
    Tech: javascript Year: 2012

    "A little namespaced logging utility for node and the browser."

    0.1.0.10Scaffold using previous repos
    Tech: javascript, bb-server, denodify, logthis, html-builder etc Year: 2014

    "Scaffold for a new node or website project using html-builder, bb-server etc",

    0.1.0.11bb-blog
    Tech: javascript Year: 2014

    "Bare bones blog for bb-server",

    0.1.0.12seo_laundry
    Tech: javascript Year:2013

    "Server based creator of html cleansed of js by phantomjs",

    0.1.0.13url-washer
    Tech: javascript Year:2013

    "Pass in an url and get back the html cleansed of js..",

    0.1.0.14phantom-sitemap",
    Tech: javascript Year:2014

    "Crawls a site, extracts the links and returns the promise of either a sitemap or just a list of links"

    0.1.0.15bb-blog-example
    Tech: javascript, bb-server stack Year: 2014

    "Blog generated and served with bb-blog, bb-server and html-builder",

    0.1.0.16http://www.axion5.net
    Tech: javascript, bb-server stack Year: 2014

    "Repo of my personal site. Includes all posts and pages.",

    0.1.0.17Website built using bb-server stack: firstdoor
    Tech: bb-server and co, angular, bootstrap. Year: 2013

    "Website using angular and bootstrap",

    Website built for a client with a newly started business, using my bb-server/html-builder stack. They used it in production for a couple of years.

    0.1.0.18Idea for an app: personalinfo
    Tech: bb-server stack Year 2013

    Idea for an app: A tool for families to share detailed information about their family member with a disability:

    https://github.com/Michieljoris/personalinfo/blob/master/docofpersonalinfo.pdf

    Would need to be rather secure and privacy aware. Perhaps with controls to share only parts to selected accounts.

    0.1.0.19Dropbox file editor: dbeditor
    Tech: javascript, bb-server stack.dropbox api Year: 2013

    "Edit files in dropbox with a markdown or wysiwyg editor"

    This site allows you to connect to your dropbox, browse the contents and then edit text files using a markdown or wysiwyg editor.

    Probably obsolete now.

    0.2Roster, couchDB repos

    0.2.0.1validate_doc_update
    Tech: javascript, CouchDB Year: 2013

    "Automated couchdb document validator. "

    Has a little DSL + parser to get more flexible validation in CouchDB. Instead of pushing js to a database design doc to update the validation a standard script is loaded there. Then, by kinda abusing members.names and user roles you can set what kind of docs are allowed and who is allowed to write them when. Idea is that you encode these things in the role strings themselves and that the validate script parses and interpretes them. Used in some other CouchDB projects.

    0.2.0.2vouchdb
    Tech: javascript Year:2014

    "Use the same promise based api for CouchDB and PouchDB, on nodejs and in the browser.",

    wip

    0.2.0.3quilt
    Tech: javascript, CouchDB, Angular Year: 2013

    "Opiniated CouchDB manager, similar to Futon."

    0.2.0.4Roster app
    0.2.0.4.1roster
    Tech: javascript,CouchDB,PouchDB, SmartClient, bootstrapjs. Year: 2012

    "Web based database management framework. Plug in custom views and editors, at the moment a roster and shift management software."

    At the time I was doing some shiftwork and the system of managing time sheets was rather cumbersome. I put a spreadsheet together first which was adopted and then this app was also adopted to some degree.

    0.2.0.4.2roster_help
    Tech: javascript Year: 2013

    "Separate site documenting the roster app.",

    https://github.com/Michieljoris/roster_help/blob/master/build/markdown/security.md

    Mainly a long blurb about why and how I think the set up of CouchDB for the roster app is secure.

    0.2.0.4.3shift-calendar
    Tech: javascript Year:2014

    "Replacement calendar for the one in roster",

    0.3Misc repos

    0.3.0.1My answers for The Elements of Computing Systems",
    Tech: Common Lisp Year: 2012

    See https://www.amazon.com.au/Elements-Computing-Systems-Building-Principles/dp/0262640686

    From a review of the book: "You start with (software simulations of) basic logical circuits and use them to build a CPU. Then you build an assembly language, a VM and a high level language similar to Java"

    Very instructive, and was fun to implement in CL. Also my first repo on github it seems.

    0.3.0.2picoscript
    Tech: picolisp, javascript Year: 2012

    "The beginning of a version of picolisp that translates to javascript."

    Well, rather ambitious project. More of an idea. I did like picolisp.

    0.3.0.3sicp
    Tech: Scheme Year: 2012

    "Some answers for SICP"

    wip

    0.3.0.4ThoughtWorks
    Tech: javascript Year: 2014

    "Solutions of tasks you apparently need to do when applying for a job at ThoughtWorks"

    0.3.0.5improvfree
    Tech: keykit Year: 2006

    "An ear training tool written using keykit",

    I wrote it to practice ear training. I was dissatisfied with the ear training software going around at the time and combined the features of several. But not knowing java or javascript or any other language than c/c++, basic and pascal I found it hard to hook up to the midi hardware in the soundblaster cards. But keykit made it easy.

    0.3.0.6trello-export
    Tech: javascript Year: 2014
    0.3.0.7nonograms
    Tech: clojure Year: 2014
    0.3.0.8Make a lisp
    Tech:javascript Year: 2015

    "Implementation of a lisp in javascript.",

    0.3.0.9Archeology Inspired Database wip
    Tech: clojure Year: 2017

    "Archeology inspired database",

    0.3.0.10code-x
    Tech: javascript Year: 2014

    "Answers to exercises on codewars, codeeval and hackerrank"

    0.3.0.11imageopti
    Tech: javascript Year: 2013

    "Wrapper for linux image utilities",

    0.3.0.12firgilio
    Tech: javascript Year: 2014

    "Functional version of virgilio from icemobile",

    0.3.0.13CV
    Tech: bash, latex, emacs Year: 2014

    "Write emacs org cover letter, export to latex, then create pdf "

    0.3.0.14Angular: directive_objectEditor
    Tech: javascript, Angular Year: 2013

    "Visual javascript object inspector and editor as a Angularjs directive",

    Played around with Angular for a bit, but in the end was not a fan.

    0.4Aum, clojure

    0.4.0.1tail.boot
    Tech: clojure Year: 2017

    "Boot task: prints, tails and filters logs on the commandline. Works best with logstash logs. "

    0.4.0.2revolt-extra
    Tech: clojure Year: 2019

    "plugins and tasks for revolt",

    0.4.0.3tools-deps-poc",
    Tech: clojure, tools.deps Year: 2019

    "Proof of concept of tools.deps and revolt",

    Experimenting with tools.deps

    0.4.0.4dj-consumer
    Tech: clojure Year: 2018

    "Background jobs for clojure, modelled on Rails delayed jobs"

    0.4.0.5aum
    Tech: clojure Year: 2020

    "Set of libs to build a full stack app in clojure"

    0.4.0.6aum-starter-app
    Tech: clojure Year: 2020

    "Minimal full stack starter app using Aum"

    0.4.0.7clj-utils
    Tech: clojure Year: 2020

    "Set of generic clojure fns"