The official example template of creating a blog with Bootstrap.
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:
- bb-server stack
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. Seepages, the site itself is generated by bb-blog.
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.
A summary of the relevant github repos:
"Simple bare bones http server. With clothes on now though..",
- 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.
"Implementation of async LRU and ARC cache.",
Plus some intuitions on how the ARC cache works in the readme. Used in bb-server.
"Don't write html, use a layout and and populate it with partials."
Basically a static site builder, also see next few entries.
"Wrapper for miscellaneous transpilers, minifiers and compressors.",
Like browserify, but a bit simpler.
"Nodejs core modules adapted for denodify",
"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.
"A little namespaced logging utility for node and the browser."
0.1.0.10Scaffold using previous repos
"Scaffold for a new node or website project using html-builder, bb-server etc",
"Bare bones blog for bb-server",
"Server based creator of html cleansed of js by phantomjs",
"Pass in an url and get back the html cleansed of js..",
"Crawls a site, extracts the links and returns the promise of either a sitemap or just a list of links"
"Blog generated and served with bb-blog, bb-server and html-builder",
"Repo of my personal site. Includes all posts and pages.",
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:
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
"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
"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.
"Use the same promise based api for CouchDB and PouchDB, on nodejs and in the browser.",
"Opiniated CouchDB manager, similar to Futon."
"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.
"Separate site documenting the roster app.",
Mainly a long blurb about why and how I think the set up of CouchDB for the roster app is secure.
"Replacement calendar for the one in roster",
Tech: Common Lisp Year: 2012
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.
Well, rather ambitious project. More of an idea. I did like picolisp.
Tech: Scheme Year: 2012
"Some answers for SICP"
"Solutions of tasks you apparently need to do when applying for a job at ThoughtWorks"
Tech: keykit Year: 2006
"An ear training tool written using keykit",
Tech: clojure Year: 2014
0.3.0.8Make a lisp
Tech: clojure Year: 2017
"Archeology inspired database",
"Answers to exercises on codewars, codeeval and hackerrank"
"Wrapper for linux image utilities",
"Functional version of virgilio from icemobile",
Tech: bash, latex, emacs Year: 2014
"Write emacs org cover letter, export to latex, then create pdf "
Played around with Angular for a bit, but in the end was not a fan.
Tech: clojure Year: 2017
"Boot task: prints, tails and filters logs on the commandline. Works best with logstash logs. "
Tech: clojure Year: 2019
"plugins and tasks for revolt",
Tech: clojure, tools.deps Year: 2019
"Proof of concept of tools.deps and revolt",
Experimenting with tools.deps
Tech: clojure Year: 2018
"Background jobs for clojure, modelled on Rails delayed jobs"
Tech: clojure Year: 2020
"Set of libs to build a full stack app in clojure"
Tech: clojure Year: 2020
"Minimal full stack starter app using Aum"
Tech: clojure Year: 2020
"Set of generic clojure fns"