Blogging About My Repositories to Guide Interest
Tags: showdev, github, blogging, opensource
Published: 2020-03-21 10:25:00

---
title: Blogging About My Repositories to Guide Interest
published: true
date: 2020-02-21 06:00:00 UTC
tags: showdev, github, blogging, opensource
series: Creating a GitHub Repository Showcase
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/d7mdw9e663g2txphp0or.jpg
canonical_url: https://jhermann.github.io/blog/misc/development/2020/02/21/projects_guided_tour.html
---
> *How and why I publish a maintained list of my (software) projects as part of my developer blog.*

I added [A Guided Tour of My Projects](https://jhermann.github.io/blog/misc/development/2020/02/21/projects_guided_tour.html) to my [Snakes on Callisto](https://jhermann.github.io/blog/) developer blog, as part of a revamp of my [GitHub pages](https://jhermann.github.io/). It replaces the former homepage, which mainly consisted of such a list besides the list of blog posts, which is now also separate – the homepage now just being a guidepost to other pages.

The guided tour complements the automatically generated GitHub portfolio page [I already wrote about](https://dev.to/jhermann/how-i-built-a-github-portfolio-site-the-easy-way-4ioc), providing some context and order about repository content and intent, instead of just a stars-sorted repository list. That allows people to get an overview of what might be of interest to *them* much more quickly than digging through all the repositories one by one themselves.

Technically, I put it into the blog so that I can easily maintain it as a Jupyter notebook, published by the [fastpages](https://github.com/fastai/fastpages) wrapper around [Jekyll](https://jekyllrb.com/).

So, to show you how this can look like, let's go on a tour… (but you could also stop reading here, and do your own 😀)


## For Python Developers

The [Springerle](https://github.com/Springerle) GitHub organization is a collection of [cookiecutter project templates](https://github.com/cookiecutter), with templates for these types of project:

- single-file scripts ([py-minimal-script](https://github.com/Springerle/py-minimal-script)),
- fully equipped packages and applications ([py-generic-project](https://github.com/Springerle/py-generic-project)),
- DEB packaging of existing projects ([dh-virtualenv-mold](https://github.com/Springerle/dh-virtualenv-mold) · [debianized-pypi-mold](https://github.com/Springerle/debianized-pypi-mold)),
- and more.

Fundamental elements for any Python project, like configuration handling, are in the [rudiments](https://github.com/jhermann/rudiments) package It is used for runtime support in the _Springerle_ templates mentioned above.

On the project automation side of things, [rituals](https://github.com/jhermann/rituals) is a library of _Invoke_ tasks that are needed again and again. The _Springerle_ templates use it to add management tasks that are updateable via `pip`, independently of the template.

[dependency-check-py](https://github.com/jhermann/dependency-check-py) is a shim to easily install [OWASP dependency-check-cli](https://jeremylong.github.io/DependencyCheck/dependency-check-cli/arguments.html) into Python projects, by adding it to your `dev` requirements.

The collection of Jupyter notebooks in [whats-new-in-python3](https://github.com/jhermann/whats-new-in-python3) summarize the _“What's new in Python3?”_ documentation, with live code in the notebooks. Right now, it is unfinished and work in progress.


## Data Science & Jupyter

[jupyter-by-example](https://github.com/jhermann/jupyter-by-example) has learning resources and practical tips on how to use Jupyter notebooks for fun & profit. The [Today I Learned about Data Science…](https://github.com/jhermann/til-about-data-science/wiki#today-i-learned-about-data-science) wiki contains similar information, with an extended scope (beyond Jupyter).


## Software Design & Architecture

In [c4-notation](https://github.com/1and1/c4-notation) I collect technical resources about using the C4 model for visualizing software architecture. This is so far rather small and unfinished. See also my [Diagrams as Code](https://github.com/jhermann/jhermann.github.io/wiki/Diagrams-as-Code) wiki page for similar resources.


## Debian Packages

I'm a contributor to [dh-virtualenv](https://github.com/spotify/dh-virtualenv), and I use it for all my Debian packaging needs. Especially when it comes to deploying applications with lots of dependencies, or services needing tight integration with the host (i.e. systemd units). For pure command line tools, [pex](https://github.com/pantsbuild/pex) and [shiv](https://github.com/linkedin/shiv) can be a better alternative.

There are several projects using _dh-virtualenv_ as the basic packaging tool:

- [1and1/debianized-jupyterhub](https://github.com/1and1/debianized-jupyterhub) packages JupyterHub, a multi-user server for Jupyter notebooks, It also comes with a Python3 kernel, populated with an extensive data science stack.
- [1and1/debianized-sentry](https://github.com/1and1/debianized-sentry) puts all _sentry.io_ 9.x services into one package using systemd as a supervisor, you just need to add a PostgreSQL databasse.
- [devpi-enterprisey/debianized-devpi](https://github.com/jhermann/devpi-enterprisey/tree/master/debianized-devpi) allows easy deployment of the _devpi_ package repository and proxy. This doesn't get updated that often, it basically chugs along silently on my workstations, speeding up virtualenv creation and allowing off-line work.

Note that these are typically [built in a Docker container](https://dockyard.readthedocs.io/en/latest/packaging-howto.html#dpkg-in-docker).

See the [For Python Developers](https://jhermann.github.io/blog/misc/development/2020/02/21/projects_guided_tour.html#For-Python-Developers) section on how to easily roll your own projects of this type. The [dput-webdav plugin](https://github.com/jhermann/artifactory-debian/tree/master/dput-webdav#readme) then allows you to use `dput` to comfortably upload created packages to a WebDAV repository like Artifactory (BinTray).

Also check out [(Dead) Snakes on a… Debian System](https://jhermann.github.io/blog/python/deployment/2020/02/26/deadsnakes_on_debian.html) for being able to install newer Python versions on all major Debian-like releases.


## Docker & Kubernetes

[dockyard](https://github.com/jhermann/dockyard) offers basic Dockerfile templates and other Docker build helpers. It contains some experiments regarding [Python base images](https://dockyard.readthedocs.io/en/latest/python-images.html), shows how to [build Debian packages within a container](https://dockyard.readthedocs.io/en/latest/packaging-howto.html) for repeatable builds, and comes with [extensive documentation](https://dockyard.readthedocs.io/en/latest/index.html) also showing how to optimize your Dockerfiles.


## Miscellaneous

The README of [awesome-python-talks](https://github.com/jhermann/awesome-python-talks) is an opinionated list of videos related to Python, with a focus on training and gaining hands-on experience. The [awesome-tech-talks](https://github.com/1and1/awesome-tech-talks) repository is very similar, but about software development and general IT topics.

[confluencer](https://github.com/1and1/confluencer) contains a CLI tool that automates common _Atlassian Confluence_ maintenance tasks and content publishing.

There's no place like home… [ruby-slippers](https://github.com/jhermann/ruby-slippers) is my dotfiles repository (and I found “dotfiles” way too boring as a name). It also includes setup scripts for installing a bunch of developer tools and packages, [installing the Python tools using ‘dephell’](https://dev.to/jhermann/installing-cli-tools-using-dephell-3jk7).