Platter

Platter is a simple file server for direct file transfers. It's basically woof but with a GUI and some useful features.

Screenshot

Screenshot

Features

  • GUI (Qt). While I generally avoid GUIs, qrcodes don't display very well on terminals.
  • Displays the download progress of connected clients.
  • Displays a QRCode (for transfering files to phones).
  • Can bundle multiple files/directories into Zip archives.
  • Can add and remove files/archives at runtime.
  • Files/archives may be added at runtime.
  • Single instance (additional invocations add files to the original instance)

Overkill

I have been working on a project I call overkill for the past few months or so. Overkill is a publish-subscribe framework for collecting and distributing information on a local machine.

So why should anyone care? It's a great tool for generating status bar text (hence the name, overkill). Basically, I have a bunch of system monitors that watch various data sources (number of files in a directory, commands that print system statistics, etc.).

This is an approximate diagram (with quite a few data sources/sinks omitted for clarity) of my current setup:

(bspc control --subscribe)   (conky)    [clock]     [inotify]
           |                    |          |             |
           v                    v          v             v
      BSPWMSource          ConkySource TimeSource MailCountSource
           |                    |          |             |
           +---------+----------+----------+-------------+
                     |
                     v
                  Manager
                     |
         +-----------+------------+----------------+------------+
         |           |            |                |            |
         v           v            v                v            v
  DesktopWidget   CpuWidget   MailCountWidget  ClockWidget MailCountNotifier
         |           |            |                |            |
         |           +------------+----------------+            v
         |                        |                      (notification daemon)
         |                        v
         |                  LayoutWidget
         |                        |
         +------------+-----------+
                      |
                      v
                LayoutWidget
                      |
                      v
                   BarSink
                      |
                      v
             (bar-aint-recursive)

New GPG Key

It's been a while but I figured I should probably make a new GPG key with increase security (1024 to 4096 bits) and expiring subkeys.

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

As of 'Tue, 07 May 2013 00:50:01 -0400', I have transitioned from my old key
to a new one in order to increase the security and sign with expiering
subkeys instead of my secure master key.

My old key fingerprint was:

    8F12 8D02 2B69 004E 8CF3  1890 D854 9F57 252B A385

My new key fingerprint is:

    327B 20CE 21EA 68CF A774  8675 7C92 3221 5899 410C

And the full new key:

    -----BEGIN PGP PUBLIC KEY BLOCK-----
    Version: GnuPG v2.0.19 (GNU/Linux)

    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
    MXJjnYZCKLva+UJATvt09dQ=
    =hRIT
    -----END PGP PUBLIC KEY BLOCK-----
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (GNU/Linux)

iQIcBAEBAgAGBQJRiI01AAoJEHySMiFYmUEMZzIP/Asu/YJ6QloHkLso3rT4ihFP
suVLXWouks6IyiCLr96Erf/+50D36KXd07/aMD54rNrvIPiq7RNhcQasyH7zAQtq
bGJIQqZATLfp3EjVvHx3H4szHyA+pW+HU1uzh6HigAfQMGTpOsZsvf8SLmB8sohj
HzMyJdQCzDKXQLotGaSQ4n79Xr2K7lQATz10aOc0qGZBENHkFvYJ7MNEFv+LuWio
vVwduuStvBOYRts6z8pHv7M3ZgzOiqSx7vtRCXRwuRLAzisc09ogNRp9CXKWkO9F
bkiMKOhHvRWMpthPcgVxbA9151n8LNDL02hdSJ2LhJm10I6XKX1dhzqVtaVLXkbd
pLRvkyNg4PbFD5bd5TPmsDoVI3mW/CsNgDlCHDeMf8aS1fGxhBQVO6+X/YmiUc9o
lqSdOnt2Kf1gTWSFFjJ32GgpLD6ajAkvxqcDZTCXbdaqr83jBbAaZ4EiHIKruOqT
slIEI8KbY9LItMVZk55435H2MzDvazPOPrW0uRrWExnE5A4n6szcLrkEIaG99AS3
YVC+ycEHWNtaDyvyXb2mbJICtIs8y/Nhrz2WT52fDYFJLakVp04Zgvdbn732ISpg
AW+sJ6Sg/sHpX4V2SV290W4wDCJ6LBqxPzb0zs/2JvGR+J/ByIQpoD5W6XdaHJn5
tTcsGtiQ0e7BNC/poqLViEYEARECAAYFAlGIjTUACgkQ2FSfVyUro4W2wwCcCEEf
kUu9EqFYq0Vdrhqsd5bOIp0An237odqQt2MFZVNM7YtsH6cPwk2z
=/NJg
-----END PGP SIGNATURE-----

© 2014

honeypot@stebalien.com