meeting-minds.org 3.9 KB

Meeting of the Minds

COMMENT Export

  (save-buffer)
  (let ((org-confirm-babel-evaluate
         (lambda (lang body)
           (declare (ignorable lang body))
           nil)))
    (org-latex-export-to-pdf))

COMMENT Tangle

  (save-buffer)
  (let ((python-indent-offset 4))
    (org-babel-tangle))

Introduction   nonum

CLOSED: [2016-04-02 Sat 21:24]

As time has gone on, I've started seeing the "Slack" chat platform become more and more popular. I see this as both a good thing, in that it promotes communication within teams, and a bad thing, in that it's not controlled by the company that actually subscribes to it, and it isn't free software. Because of the benefit, and as a response to the issues, I've decided to build this application, "Meeting of the Minds", built on standards and free software so it's likely to stay around for a long time. Thus, the goal is to produce an application that gives the following features:

  • Archival

  • Group Messaging

  • Easily Defined Groups

  • User-to-user Messaging

  • Simple Management

  • Freedom

To accomplish this task, I've decided to build using the following tools and suites:

IRC

The Internet Relay Chat protocol. I've chosen this as the transport protocol as it's been around for quite some time, and is well supported.

PostgreSQL

An SQL storage backend. This will be a way to store metadata about conversations, topics, users and projects, allowing for data archival. I've chosen PostgreSQL as it has many advanced features and is very space efficient.

Common Lisp

The server implementation language. I've chosen to use Common Lisp to implement Meeting of the Minds for the following reasons:

  • Familiarity

  • Flexibility

  • Library availability

TOC   ignore

WORKING Packaging [0/2]

The packages file

  (defpackage #:meeting-minds
    (:use #:cl))

The ASDF System Definition

  (asdf:defsystem #:meeting-minds
      :description "Describe meeting-minds here"
      :author "Samuel W. Flint <swflint@flintfam.org>"
      :license "GNU GPLv3 or Later"
      :depends-on (#:ningle
                   #:clack-errors
                   #:clsql
                   #:stefil
                   #:ironclad
                   #:babel
                   #:uiop
                   #:cl-mustache
                   #:birch
                   #:irc-logger)
      :serial t
      :components ((:file "package")
                   (:file "meeting-minds")))