Projects

Currently Active Projects

lchat

Local chat is a very simple ‘irc-ish’ chat system over a Unix socket for a single computer/server. The target for this software is for headless servers allowing admins or other users to easily communicate on the console.

Development: Git Repository

cutlet

Inspired by Tcl, Cutlet is designed to be a small and simple utility language to be used by other programs and projects.

Development: Git Repository

meat

Meat is designed to be a very simple, high level and cross platform computer programming language for any with computer experience can learn and use.

This project is currently on hold. Unfortunately I was spending more time debugging the C++ code than developing features so I’m doing some testing with Cutlet and LLVM to create a language better suited for this project.

Development: Git Repository

Software repositories are available for Debian. Currently only lchat has been packaged but cutlet should be joining it soon.

# Download and install the public key to verify deb packages.
sudo apt-key adv --keyserver keys.openpgp.org \
  --recv-keys 7B86848C194CE861

# As root add the repository to apt.
# For Debian 9 (Stretch)
echo "deb https://apt.digitalcombine.ca/ stretch main" > \
  /etc/apt/sources.list.d/digitalcombine.list
# For Debian 10 (Buster)
echo "deb https://apt.digitalcombine.ca/ buster main" > \
  /etc/apt/sources.list.d/digitalcombine.list
# For Debian 11 (Bullseye)
echo "deb https://apt.digitalcombine.ca/ buster main" > \
  /etc/apt/sources.list.d/digitalcombine.list

chmod 0644 /etc/apt/sources.list.d/digitalcombine.list

# Update apt!
sudo apt update
sudo apt install lchat

FreeBSD package repositories are now available. To enable the repository in pkg run the following as root.

# Create /usr/local/etc/pkg/repos/digitalcombine.conf file.
mkdir -p /usr/local/etc/pkg/repos
cat > /usr/local/etc/pkg/repos/digitalcombine.conf << EOF
digitalcombine: {
      url: "http://pkg.digitalcombine.ca/${ABI}",
      signature_type: PUBKEY,
      pubkey: "/usr/local/share/keys/digitalcombine.pub",
      enabled: yes
}
EOF

# Download and install the public key.
mkdir -p /usr/local/share/keys
curl -o /usr/local/share/keys/digitalcombine.pub \
  https://pkg.digitalcombine.ca/digitalcombine.pub

# Update pkg!
sudo pkg update
sudo pkg install lchat

Contributing

Each project is currently hosted and managed on GitHub. Any issues, feature requests and security advisories are all managed there.

Contributing Source Code

With the projects being open source, source code contributions are welcome and encouraged. Before submitting source code here’s a small check list.

  • Comment your code and changes. It doesn’t matter how incredible your code may be, if we can’t understand it, it will not likely be added to the project. We have to be able to manage and maintain all the source code.
  • Being ad-hoc development, test suites tend to be an after thought, but before submitting a patch make sure it passes all the tests. If new tests are required, please feel free to add them.
  • Always be kind, courteous, helpful, friendly, welcoming…

Code is contributed through GitHub pulls. Basically a pull is a git branch off the development branch. If the code is accepted it will be merged back into the development branch. To understand the development flow for a project the git branches are used as follows.

  • Master branch (Releases only)
    • Development branch (Currently developed software, to be merged into a release branch)
      • Feature branches (GitHub pulls, to be merged back into the development branch)

There are also branches in between the master branch and development branch to prepare the software for release. For the curious, these branches are release-1.2, release-1.3, release2.0 an so on.

To create a pull, you create a fork of the project then create the pull (branch) from there. This gives you write access to the newly created pull branch. This is a very simplified explanation. More details are found at GitHub documents.