This site is an overview over the OSS and related projects that I (morimekta) are working on or contributing to. I mostly work in Java these days, but have pretty good experience with C++, Python and HTML5 / JS, too.

Current / Active Projects

I have a number of active open source projects, though I can’t develop on all of them at the same time. So I usually tend to focus on one project at a time. These days it’s these that receive most of my code-fu (not in any particular order). Current version of everything can be found here.

  • [Providence] A replacement Java library for Apache Thrift, but with a new class structure based on immutable objects with builders. It has also a different serialization model (not following the TTransport / TProtocol separation of thrift, but with simple “serializers”.
  • [providence-idea-plugin]: This is a plugin for JetBrains’ IntelliJ IDEA. Initially for handling providence-config config syntax in IntelliJ, but can also take care of thrift file syntax, proper source linking and how to combine the two.
  • [IDL tool] is a java port of Über’s node-based idl tool to java, including a number of changes. The tool should be more or less command line compatible with the original (as long as it works), and have also added some nits and whistles to the output. Also includes a ‘status’ command that shows all pending changes to the IDL.
  • [Morimekta Utilities] Utility classes mostly separated out from the providence project. Was initially for testing Android-specialized serialization and containment, but now it contains a varied set of utilities for testing, console apps, IO etc.

Getting Binaries

You can add morimekta currently via the following repositories. All the packages made should be effectively platform independent, and if not will only be linux / amd64 statically linked binaries distributed in the Deb / Yum repos. You can find downloads available here:

Docker images are available from their respective gitlab.com registry:

Future / Early Stage Projects

I also have planned projects (most likely with some code-in-progress) in the starting phase, which I have not put to a state where feel like I can publish the code. This includes unfinished but ongoing project starts.

  • providence-js: Full fledged js code generator and helper libraries. Should probably limit itself to JS serialization (see JsonSerializer in providence, but fully support thrift RPC (over http[s]), node.js, closure, typescript (defs) etc. Preliminary code at providence-js.
  • providence-python: (not started) A simple python generator for providence. Similar to JS that it is only built to handle simple JSON, not binary messages.

The Remaining Stuff

Old, incomplete, and scrapped projects. This is mostly just for reference, and I should not be dragged in to maintain, answer questions about or even have to mentioned or stand trial over anything here.

  • [accord] Was my master’s thesis back in 2005, titled “Consistent Lookup during Churn in Distributed Hash Tables”. It was later proven that what I tried (provisioning ACID properties to a DHT) was mathematically not possible, as there would always be a configuration that could break the system. The PDF can be found here.
  • [libsfu] At some point I tried to port gittool to C++11, which was mainly a major flop. It was abandoned around the end of 2014, but later I decided to clean up the project, and make some libraries out of it. This is the “general libs” part of that. I have deleted most of the rest as it was a general mess and largely never worked.
  • [gittool] One of my first projects where I made a simple git-helper utility for generating diff collections and see branch overview with status info in a console. Supported both linux and mac at some point.

    PS: Currently sits in a limbo place between python and java port, but has a limited working java implementation.

  • [generate_workspace] Is a shell script for generating bazel BUILD dependency files for a maven project. It has some odd quirks, but works just fine if you have exactly the same bazel setup as me.