42% indicated they contribute to #opensource regularly or from time to time

#Linux got a massive 40% share in operating systems, though 21% use #Windows and Linux simultaneously. This is a logical result, since web development pretty much requires using Linux at least virtually. And Linux is a much more popular choice among developers than it is for normal regular Joe users (where the market share is more like 2%).

Just over 50% indicated they sleep over 6 hours a night. 6% sleep less than 3 hours..

Only 11% indicated they don't have a hobby project

Python 3 is used by 53% of Pythonistas. Good riddance Python 2, we're moving on!

Attachments

Here's a little preview of our self-deployment app. We've worked hard to make the Pancrypticon install as hands-free as possible so that our clients can self-deploy their encrypted cloud platform. The app only has basic functionality ATM, but it gets the job done well enough for demonstration purposes.

Below, the user has logged in to the web app, typed in a few pieces of information, and clicked "Begin!". Here's what happens next:

All of the system's block devices are scanned, looking for devices with LUKS headers, as well as unformatted devices.

A small ramdisk is created and encrypted with a random key. This is used to temporarily stash a keyfile generated from the user's encryption passphrase.

All unused block devices are formatted as LUKS volumes and then over-written with AES-encrypted noise.

All LUKS volumes are unlocked and scanned for LVM volumes. Newly formatted devices are added to the volume group.

Two new logical volumes are created (if they don't already exist) and mounted at /opt and /srv ('opt' for the software and 'srv' for the container storage volumes).

eCryptfs is overlayed on /srv (this allows us to snapshot the underlying LV and take encrypted differential backups)

The ramdisk is unmounted and zeroed out.

Pancrypticon is cloned to /opt, a small config file is written, and then Docker takes it from there.

FIN

You can review the code here. If you think something needs improvement, please submit a pull request :)