Wandering Thoughts archives

2021-12-31: Why I (still) use ext4 for my Linux root filesystems
2021-12-30: Checking what features your ext4 filesystems have
2021-12-29: Pipx's 'reinstall' command works right by reinstalling injected packages too
2021-12-28: A realization of why email is critical infrastructure for the Internet
2021-12-27: Link: Eric Rescorla's "DNS Security, Part II: DNSSEC"
A thesis: large, significant open source projects must keep moving or die
Security systems and requiring attacks instead of accidents to evade them
2021-12-25: Our webmail is a surprisingly popular service
2021-12-24: Sadly, my experience is that big commercial anti-malware detection is better
2021-12-23: Running your own email is increasingly an artisanal choice, not a practical one
2021-12-22: Using pipx in a PyPy installation more or less just works
2021-12-21: Our internal network access authentication needs
2021-12-20: Some usage notes for the Linux ss program
2021-12-19: My Firefox bookmarklet to see links I've visited more reliably
Some brief notes for myself on growing a LVM root filesystem
2021-12-17: Our never-used system for user-provided NFS accessible storage
In Go 1.18, generics are implemented through code specialization
2021-12-15: User runtime directories on modern Linux, aka /run/user/<uid>
2021-12-14: Finding Ubuntu (and Debian) packages that are in odd states
2021-12-13: A bit on compilation's changing number of stages (and assembly)
2021-12-12: How Vim's visual mode has wound up being useful for me
2021-12-11: Some numbers from ZRAM swap on my two Fedora machines
2021-12-10: The question (and some answers) of modern day partition sizes for Linux
2021-12-09: Why it's good to explicitly document the purposes of things, illustrated
Some NVMe drive temperature things from my drives
2021-12-08: NVMe drives and the case of opaque bandwidth limits
2021-12-06: Linux's vm.admin_reserve_kbytes sysctl is both not big enough and not sufficient
2021-12-05: A bit on what Unix system pre-boot environments used to look like
2021-12-04: Most computer standards broadly require good faith implementations
2021-12-03: My views so far on bookmarklets versus addons in Firefox
2021-12-02: On servers maybe moving to M.2 NVMe drives for their system drives
2021-12-01: Unfortunately, damaged ZFS filesystems can be more or less unrepairable
2021-11-30: Prometheus will make persistent connections to agents (scrape targets)
2021-11-29: The long term relative prices of M.2 NVMe drives and 2.5" SSDs
2021-11-28: The problem I have with Pip's dependency version handling
2021-11-27: Two stories of how and why simultaneous multithreading works
2021-11-26: How we use the SLURM job scheduler system on our compute servers
Why region based memory allocation help with fragmentation
2021-11-25: Computation that needs to be "secure" is everywhere in practice
2021-11-23: I wish systemd logged information about the source of "transactions"
2021-11-22: Why it matters to us if exploits are available for security issues
2021-11-21: Why V7 Unix matters so much
2021-11-20: Linux has no fair-share scheduling that really works for compute servers
Why your Go programs can surprisingly be dynamically linked
2021-11-18: What data about your NVMe drives Linux puts in sysfs
2021-11-17: Why we have a split-horizon DNS setup
2021-11-16: Why we have public websites on private IPs (internally)
2021-11-15: Chrome may start restricting requests to private networks
2021-11-14: Go 1.18 will let you set the version of the "AMD64" architecture to target
2021-11-13: Considering "iowait" CPU time and CPU utilization
2021-11-12: A linear, sequential boot and startup order is easier to deal with
2021-11-11: I'm unsure of the security of simultaneous multithreading on modern x86 CPUs
2021-11-10: People will always exploit presentation, because presentation matters
2021-11-09: Our new way of waiting for the network to be "up" in systemd's world
2021-11-08: Soon to expire TLS certificates aren't necessarily a problem
2021-11-07: Systemd timer units don't have much appeal for us (over crontab entries)
2021-11-06: Thinking about when our crontab entries run
2021-11-05: If we use PyPy, we'll likely use our own install of it
2021-11-04: Two different worldviews of version control systems
2021-11-03: Thinking through the threat models when encrypting your backups
2021-11-02: Why I maintain my private changes to upstream projects via rebasing
2021-11-01: Rebasing changes can be common when working with version control systems
2021-10-31: Linux puts a bunch of DMI information into sysfs for you
Python 3 forced its own hand so that standard input had to be Unicode
2021-10-29: Why browsers are driven to offer some degree of remote control
Things to do in Python 3 when your Unix standard input is badly encoded
2021-10-27: We're seeing increasingly targeted and dangerous phish spam attempts
2021-10-26: Vim visual mode and an unfortunate restriction on the filter operation
Go 1.18 will embed source version information into binaries
2021-10-24: Companies and their stewardship of open source projects
Your SMART drive database of attribute meanings needs regular updates
2021-10-22: Python 2's status in various Linux distributions (October 2021 edition)
2021-10-21: The easy way to see underneath NFS mount points on Linux
2021-10-20: In the beginning, there was no way to expand C's stack size
2021-10-19: VCS history versus large open source development
2021-10-18: The cut and paste irritation in "smart" in-browser text editing
Getting some hardware acceleration for video in Firefox 93 on my Linux home desktop
2021-10-16: My wish for a way to activate one systemd unit when another one started
2021-10-15: You may not want to require all of your bind mounts (in systemd)
2021-10-14: Systemd (v237) can do quite odd things with /etc/fstab bind mounts
2021-10-13: Web browsers drive what Certificate Authority root certificates are accepted
2021-10-12: Reasons to limit your stack size even in non-threaded environments
2021-10-11: Unknown NMIs and counting hardware CPU events in eBPF programs
2021-10-10: TLS Certificate Transparency logs let us assess Certificate Authorities
V7 Unix had no stack size limit, and when Unix acquired one
2021-10-08: We've migrated from Yubikey 2FA to the university's MFA
What Linux kernel "unknown reason" NMI messages mean
2021-10-06: The OpenSSH server has limits on what user authentication you can use
2021-10-05: Some early notes on using pipx for managing third-party Python programs
2021-10-04: The "why" problem with on-host (host-based) firewalls on your machines
2021-10-03: Modern TLS has no place left for old things, especially clients
Desktops don't always use NetworkManager's programs
2021-10-01: Firefox on Unix is moving away from X11-based remote control
2021-09-30: Moving averages (and rates) for metrics in Prometheus (and Grafana)
2021-09-29: My changing (citation) style of external links here on Wandering Thoughts
2021-09-28: Avoiding flawed server ACPI information for power monitoring
2021-09-27: Stack size is invisible in C and the effects on "portability"
2021-09-26: The shifting view of two factor authentication at the university
2021-09-25: Notes on updating OpenBSD machines to current, supported versions
2021-09-24: Understanding EGL, GLX and friends in the Linux and X graphics stack
Link: Examining btrfs, Linux’s perpetually half-finished filesystem
Go generics have a new "type sets" way of doing type constraints
2021-09-22: It's probably not the hardware, a sysadmin lesson
2021-09-21: Why we care about being able to (efficiently) reproduce machines
2021-09-20: What the 'proto' field is about in Linux 'ip route' output (and input)
2021-09-19: Microsoft's Bingbot crawler is relentless for changing pages (it seems)
2021-09-18: One major obstacle to unifying the two types of package managers
2021-09-17: At least from an outside perspective, Ubuntu is Canonical's thing
2021-09-16: Use virtual environments to install third-party Python programs from PyPI
2021-09-15: Some notes on upgrading programs with Python's pip
2021-09-14: There are (at least) two types of package managers
2021-09-13: The rc shell's nice feature for subdirectory searching of $PATH
Why I'm mostly not a fan of coloured text (in terminals or elsewhere)
2021-09-11: How many Prometheus metrics a typical host here generates
Some things to reduce background bandwidth usage on a Fedora machine
2021-09-09: TLS Certificate Transparency logs come and go over time
2021-09-08: The "web" TLS world is different from the non-public one in practice
2021-09-07: My long-lived personal Linux installs
2021-09-06: Why Nutch-based web spiders are now blocked here
2021-09-05: Firefox on Linux is still not working well with WebRender for me (again)
2021-09-04: Adding a "host" label to all of your per-host Prometheus metrics
2021-09-03: How I try out and test new versions of Grafana
2021-09-02: Go multi-module workspace mode, a forthcoming feature in Go 1.18
2021-09-01: Large Unix programs were historically not all that portable between Unixes
2021-08-31: Go doesn't have a stack the way that some other languages do
2021-08-30: How ZFS stores symbolic links on disk
2021-08-29: Some notes on OpenZFS's new 'draid' vdev redundancy type
In Go, pointers (mostly) don't go with slices in practice
2021-08-27: What my first Linux was, and its context
Using our metrics system when I test systems before deployment
2021-08-25: I'm turning off dnf-makecache on my Fedora machines
My interest in Intel's future discrete GPUs (and my likely disappointment)
2021-08-23: Notes on deliberately invoking actions controlled by systemd timers
2021-08-22: What we'll likely do when Linux distributions drop Python 2 entirely
Setting up Python LSP support in GNU Emacs is reasonably worth it
2021-08-20: A home UPS has been more handy and useful than I expected
Seeing what all Cinnamon keyboard shortcuts are
2021-08-19: Configuration (and configuration files) is not and cannot be generic
2021-08-17: It's surprising how many things assume you have available bandwidth
2021-08-16: Browsers listening to developers or users requires them to be humble
2021-08-15: Chrome's automatic updates and the power it holds on the web
2021-08-14: Our experience with IPP-based, PPD-less CUPS printing
2021-08-13: Some of my views on using YAML for human-written configuration files
Prometheus alerts and the idea of "deadbands" (or maybe hysteresis) (with an implementation)
Learning that Vim has insert mode keystrokes that do special things
Go keeps surprising me with its careful design and specification
2021-08-12: Prometheus, Alertmanager, and maybe avoiding flapping alerts
2021-08-11: The meaning of "hysteresis" and how it relates to alerts
2021-08-09: The Firefox uMatrix addon is not quite dead (so far)
2021-08-08: The xterm terminal emulator can do a lot more than just display text
2021-08-07: Some thoughts on new top-level domains being used for spam
2021-08-06: Some bits of how Bash and GNU Readline's "bracketed paste" mode behaves
2021-08-05: Using journalctl's ability to show only one service
2021-08-04: I have mixed views on new DNS top level domains (TLDs)
When you do and don't get stuck query results from a down Prometheus
2021-08-02: Anonymous ("transparent") structures are a good thing in programming languages
2021-08-01: Unix APIs are where I first saw C #define used to rename struct fields
2021-07-31: Learning that you can use unions in C for grouping things into namespaces
2021-07-30: Hardware and (Linux) driver quality can be invisible to non-specialists
XHTML pages cause problems for some Firefox addons
2021-07-29: How Go maps store their values (and keys)
2021-07-28: Modern email is hard to search, which encourages locked up silos
2021-07-26: Understanding plain Linux NVMe device names (in /dev and kernel messages)
2021-07-25: I should probably learn command-line NetworkManager usage
The tiny irritation of ZFS's 'zpool status' nagging you about upgrades
2021-07-23: Why it matters that map values are unaddressable in Go
2021-07-22: Apache's mod_wsgi and the Python 2 issue it creates
Improving my web reading with Martin Tournoij's "readable" Firefox bookmarklet
2021-07-21: It's nice when programs switch to being launched from systemd user units
2021-07-19: Making a Go program build with Go modules can be not a small change
2021-07-18: On sending all syslog messages to one file
2021-07-17: The minimum for syslog configurations should be to log (nearly) everything
2021-07-16: The WireGuard VPN challenge of provisioning clients
Setting up a WireGuard client with NetworkManager (using nmcli)
2021-07-14: Making two Unix permissions mistakes in one
Some ways to get (or not get) information about system memory ranges on Linux
2021-07-12: Problems in the way of straightforward device naming in operating systems
Understanding something about udev's normal network device names on Linux
2021-07-10: Why Bash and GNU Readline's "bracketed paste" mode is not for us
University computer accounts are often surprisingly complicated
2021-07-08: Redirecting paths that start with two slashes in Apache
A semi-surprise with Python's urllib.parse and partial URLs
2021-07-07: The initramfs for old kernels can hide old versions of things
2021-07-06: Unused hardware in computers can now be distinctly inactive
2021-07-05: Losing track of part of our Amanda configuration and then recovering it
2021-07-04: Two ways to have Amanda always make full backups of a filesystem
2021-07-03: Some brief notes on turning Firefox bookmarklets into convenient buttons
2021-07-02: Dealing with CSS fixed position headers and footers in Firefox
2021-06-30: Giving your Linux network interfaces fixed names (under udevd and networkd)
2021-06-29: Monitoring the status of Linux network interfaces with Prometheus
2021-06-28: Be careful when matching on Ethernet addresses in systemd-networkd
I should keep track of what Python packages I install through pip
2021-06-27: Some notes on what's in Linux's /sys/class/net for network interface status
2021-06-26: Ethernet network cables can go bad over time, with odd symptoms
2021-06-25: A couple of Linux top-like programs for network traffic
2021-06-24: Go 1.17 is deprecating the traditional use of 'go get'
2021-06-22: I like WireGuard partly because it doesn't have 'sessions'
2021-06-21: A realization about our VPN and IPv6 traffic
Some notes on building Firefox from source on Ubuntu
2021-06-20: A bit on ZFS's coming raidz expansion and ZFS DVAs
2021-06-19: The Unix background of Linux's 'file-max' and nr_open kernel limits on file descriptors
2021-06-17: Apache directory indexes will notice and exclude blocked URLs in them
In Prometheus queries, on and ignoring don't drop labels from the result
2021-06-16: The challenge of what to set server BIOSes to do on power loss
2021-06-14: Some notes on Firefox's media autoplay settings as of Firefox 89
2021-06-13: A strong commitment to backwards compatibility means keeping your mistakes
Rust 1.x seems to not always be backward compatible in practice
2021-06-11: How we're dealing with our expiring OpenVPN TLS root certificate
TLS certificate durations turn out to be complicated and subtle
2021-06-10: Early notes on using the new python-lsp-server (pylsp) in GNU Emacs
2021-06-09: The modern web design aesthetic of hiding visited links
2021-06-07: My failure to arrange a graceful TLS root certificate rollover with OpenVPN
2021-06-06: TLS certificates have at least two internal representations of time
The case of the very old If-Modified-Since HTTP header
2021-06-04: HTTP/3 needs us (and other people) to make firewall changes
New versions of Bash (and readline) default to special handling of pasting into the shell (or other programs)
2021-06-02: Fedora co-mingles its source packages with Red Hat Enterprise Linux
Simple use of Let's Encrypt on OpenBSD is pleasantly straightforward (as of 6.8)
2021-05-31: It'd be useful if TLS libraries had better and more detailed error messages
I've come to like date-based names for log rotation
2021-05-30: Go 1.17 will still support the old GOPATH mode (as well as modules)
2021-05-28: Less can filter what it shows to you (a thing I recently learned)
2021-05-27: Some thoughts on having set up a personal Alertmanager instance
Being able to see links I've visited in Firefox is startlingly better
2021-05-26: Working around an AMDGPU automatic fan control problem on my Radeon RX 550
2021-05-24: Rust is a wave of the future
Why we don't have management connections to our switches (an old story)
2021-05-23: Our three generations of network implementations (over the time I've been here)
2021-05-22: I don't know how much memory our Prometheus setup needs
2021-05-20: The temptation to start using some Python type hints
2021-05-19: Fedora has significantly fumbled DKMS handling for Linux kernel modules
Speculating on why DKMS and other Linux things are large shell scripts
2021-05-17: Unix job control has some dark corners and challenging cases, illustrated
2021-05-16: Unix job control and its interactions with TTYs (and shells)
2021-05-15: Downsampling your metrics data is a compromise (what we could call a 'hack')
The size of our Prometheus setup as of May 2021
2021-05-14: The Bourne shell and Bash aren't the right languages for larger programs
2021-05-12: The Bourne shell lets you set variables in if expressions
Firefox and the challenge of trying to make visited links clearly visible
2021-05-10: Errors during SMTP conversations aren't trustworthy, illustrated
2021-05-09: DKMS built one of my kernel modules for the wrong kernel
Storing ZFS send streams is not a good backup method
2021-05-08: It's pleasantly easy to install PyPy yourself (from their binaries)
2021-05-07: Understanding OpenSSH's various options around keys and key algorithms
2021-05-06: The different types of modern (2021) SSH keys (and some opinions)
2021-05-05: It's possible for Firefox to forget about:config preferences you've set
2021-05-03: Our future upgrade wave of Ubuntu 18.04 machines
Understanding OpenSSH's future deprecation of the 'ssh-rsa' signature scheme
2021-05-02: Realizing one general way to construct symmetric ciphers
2021-04-30: Discovering outside people attempting to do dynamic DNS updates to us
There's plenty of our work that's not being done from home
2021-04-29: The shift from "two factor" to "multi-factor" authentication
2021-04-28: Firefox's slow takeover of the address bar's space
2021-04-26: The question of how to do non-annoying multi-factor authentication for SSH
Maybe a local, on-machine caching DNS resolver should be standard (for us)
2021-04-25: The question of having SATA drives behind modern SAS expanders
2021-04-24: Why people care about SAS despite not being 'enterprise'
2021-04-23: How I want to use pip with PyPy to install third party programs
2021-04-21: Go 1.17 will allow converting a slice to an array pointer (some of the time)
2021-04-20: PyPy starts fast enough for our Python 2 commands
2021-04-19: Trying out learning more Vim on demand
2021-04-18: Using NVMe SSDs over SATA SSDs in basic servers is an awkward sales pitch
My view of Wayland here in 2021
2021-04-16: A Firefox surprise from disabling dom.event.clipboardevents.enabled
2021-04-15: Learning about the idea of the HTTP self-post
Link: "a2d<C-V>3gE: Vim normal mode grammar
2021-04-14: Some things on ZFS (on Linux) per-dataset basic IO statistics
2021-04-13: Getting NVMe and related terminology straight (for once)
2021-04-12: SSD versus NVMe for basic servers today (in early 2021)
Counting how many times something started or stopped failing in Prometheus
2021-04-11: Vendors put varied and peculiar things in system DMI information
2021-04-09: Why NFS servers generally have a 'reply cache'
What NFSv3 operations can be in the Linux nfsd reply cache
2021-04-07: Rust's rustup tool is surprisingly nice and well behaved
2021-04-06: Modern Linux can require a link signal before it configures IP addresses
2021-04-05: A stable Unix updating its version of Go isn't straightforward
2021-04-04: Some uses for Prometheus's resets() function
You need a version of Go with module support (ideally good support)
2021-04-02: ZFS on Linux is improving the handling of disk names on import
Programs that read IPMI sensors tell you subtly different things
2021-03-31: Understanding Prometheus' changes() function and what it can do for me
Systemd's NSS myhostname module surprised me recently
2021-03-29: Nil in Go is typed in theory and sort of untyped in practice
2021-03-28: What tool you use to read IPMI sensor information can matter
2021-03-27: Internet routing can now vary based on things you wouldn't expect
The attractions of reading sensor information from IPMIs
2021-03-26: Linux's hardware monitoring can lie to you
2021-03-24: HTTPS is really multiple protocols these days
2021-03-23: Discovering Vim's Visual (selection) mode
2021-03-22: Portability has ongoing costs for code that's changing
2021-03-21: My uncertainty about swapping and swap sizing for SSDs and NVMe drives
My experience with x2go is that it's okay but not compelling
2021-03-20: Paging out memory can be 'global' or 'local' these days
2021-03-19: Remote X versus 'seamless windows' in remote desktop software
2021-03-18: Safari is now probably the influential wild card browser for user privacy
2021-03-17: Remote X has been a life saver over this past year
2021-03-16: The fading HTTP Referer header and (Google) Search paywall bypasses
2021-03-15: Different views of what are basic and advanced Vim features
2021-03-14: I wish Prometheus had some features to deal with 'missing' metrics
2021-03-13: Prometheus and the case of the stuck metrics
2021-03-11: Wrangling HTTP and HTTPS versions of the same Apache virtual host
What OpenSSH sshd logs when a session disconnects (on Linux)
2021-03-10: The tradeoffs of Go version behavior in go.mod module files
2021-03-09: Go version directives in go.mod files: some notes and crude usage numbers
2021-03-08: Packaging Python 2 doesn't mean that Linux distributions support it
2021-03-06: Some views and notes on ZFS deduplication today
2021-03-05: How not to use Apache's RewriteRule directive in a reverse proxy
2021-03-04: Systemd needs (or could use) a linter for unit files
2021-03-03: What signal a RJ-45 serial connection is (probably) missing
2021-03-02: The Python ctypes security issue and Python 2
2021-03-01: Link: Taking This Serially
The balance of power between distributions and software authors
2021-02-28: Dot-separated DNS name components aren't even necessarily subdomains, illustrated
2021-02-27: My Firefox addons as of Firefox 86 (and the current development version)
My pragmatic sysadmin view on subdomains and DNS zones
2021-02-25: The HTTP Referer header is fading away (at least as a useful thing)
2021-02-24: How convenience in Prometheus labels for alerts led me into a quiet mistake
How (and where) Prometheus alerts get their labels
2021-02-22: The mhbuild directives I want for sending MIME attachments with MH
How I set up testing alerts in our Prometheus environment
2021-02-20: Modern software controls dependencies because it helps software authors
2021-02-19: ZFS pool partial (selective) feature upgrades are coming in OpenZFS
2021-02-18: Understanding what 'systemctl restart' means and when I want to use it
2021-02-17: TLS certificates specifying hosts via their CommonName field is more or less gone
When browsers (or at least Firefox) send HTTP Basic Authentication headers
2021-02-15: How ZFS on Linux brings up pools and filesystems at boot under systemd
2021-02-14: Some observed read latencies for SSDs and NVMe drives under Fedora 32
Link: What was the original reason for the design of AT&T assembly syntax?
2021-02-13: Where the default values for Python function arguments are stored
2021-02-12: An interesting issue around using is with a literal in Python
2021-02-11: Getting high IOPS requires concurrency on modern SSDs and NVMe drives
2021-02-10: Let's Encrypt is preparing for an emergency and that's good for TLS in general
The issue of IOPS versus latency on SSDs and NVMe drives
2021-02-09: Normal situations should not be warnings (especially not repeated ones)
2021-02-07: Strict SameSite web cookie policies probably don't do much for us
2021-02-06: Talkd and 'mesg n': a story from the old Unix days
2021-02-05: Limiting what branches I track from an upstream Git repository
2021-02-04: There are limitations to what expendable addresses can help with
2021-02-03: Junk email as a cover for more nefarious things
2021-02-02: The small oddity in the Unix exec*() family
2021-02-01: Go 1.16 will make system calls through libc on OpenBSD
2021-01-31: The limitations on find's -exec option and implementation convenience
2021-01-30: I wish every program that wanted 'a SQL database' would let me use SQLite
2021-01-29: Illustrating the importance of fully multi-core program building today
Forecasting drive failures is not always as useful as it sounds
2021-01-27: Making tracking upstream Git repositories a bit quieter
find mostly doesn't need xargs today on modern Unixes
2021-01-25: Time for Python 2 users to make sure we have a copy of Pip and other pieces
2021-01-24: Your monitoring and alerts remember things for you
Thinking through what can go badly with databases on ZFS
2021-01-22: SMART Threshold numbers turn out to not be useful for us in practice
2021-01-21: A lingering sign of old hopes for ZFS deduplication
Real email has MIME attachments that are HTML
2021-01-20: A realization about the Linux CPU pressure stall information
2021-01-18: Where Firefox's text encoding menus are
2021-01-17: Password managers automate checking the website address for you
One reason to not trust SMART attribute data for consumer drives
2021-01-15: SMART attributes can predict SSD failures under the right circumstances
2021-01-14: Understanding WireGuard's AllowedIPs setting (and a bit of tcpdump)
2021-01-13: Installing Pip in Python 2 environments that don't provide it already
What you can and can't build in Go's module mode
2021-01-11: How to make Bash fail badly on Ubuntu 16.04 by typo'ing a command name
2021-01-10: Thinking through why you shouldn't use plaintext passwords in authentication, even inside TLS
What timestamps you get back along with Prometheus query results
2021-01-08: How to extract raw time series data from Prometheus
2021-01-07: I got to experience the march of storage technology today
2021-01-06: In modern email, it's easy for plaintext and HTML parts to drift apart
Link: ARM support in Linux distributions demystified
Unix shell pipelines have two usage patterns
2021-01-05: TLS Certificate Authority root certificate expiry dates are not how trust in them is managed
2021-01-03: TLS Certificate Authority root certificates and their dates
The modern web and (alleged) software stagnation in the past few decades
2021-01-01: An interesting and puzzling bit of Linux server utilization

Page tools: See As Normal.
Login: Password:
Atom Syndication: Recent Pages, Recent Comments.

This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.