🎉 Welcome! 🎉

This site was built to host a random smorgasborg of content that I develop in a variety of places! The posts here will likely be fairly raw, and likely written while I’m working in parallel on a project. You can think of this place as a sort of scratchpad of wanderings.

Puezgruppe, Wolkenstein in Gröden, Südtirol, Italien

Firewalld

So I’ve been playing with Fedora Workstation and Server now for a bit and they seem to be great?! Never thought I’d say that, and I’m sure Fedora’s future 100% adoption of Wayland will make it a no-go, but until then, it works! Out of the box Fedora uses firewalld and Cockpit has an integration with Firewalld, enabling you to manage or at least view your server’s firewall from a nice little web UI....

April 12, 2021 · 4 min · Alan Scherger
Sydney Opera House sails during sunset.

100 Days of Python: Day 7

Today’s lesson comes from Python Program Lexical Structure. Python Statements Like the Ruby interpreter, the Python interpreter when loading a file loads the file one line at a time, executing the states of those lines accordingly, until the end-of-file is encountered. Line Continuation PEP 8: Maximum Line Length “limits” all lines to be no longer than 79 characters long, with the exception that docstrings/comments be limited to 72 characters in length....

March 16, 2021 · 2 min · Alan Scherger
Coffee next to a laptop

100 Days of Python: Day 6

Habit Building It turns out building new habits is hard. Without carving out purposeful time each day, it’s very easy to let new habits get swallowed by daily habits. It also seems important to let go of the guilt or failure of not meeting an immediate expectation and rather to keep reinforcing the good behavior. i.e. get back on the horse. So, here we are Day 6 ? whatever that means now 😂 and moving ahead....

March 15, 2021 · 2 min · Alan Scherger
Vibrant scenery at Joshua Tree National Park.

100 Days of Python: Day 5

Dictionaries Are: mutable keys must be hashable this meaning functions can actually be keys have fun methods like pop() and popitem() for removing keys support nesting don’t support nested membership tests 1 2 3 4 5 f = {1: 'value', len: 1, 'str': (1j-3) } self.assertEqual(f[1], 'value') self.assertEqual(type(f[1]), str ) self.assertEqual(type(f[len]), int ) self.assertEqual(type(f['str']), complex ) Sets Oh. boy. First class support for sets 🤩 wow, I’m so excited!...

February 25, 2021 · 2 min · Alan Scherger
Snow covered ground with white air balloons hovering

100 Days of Python: Day 4

Booleans We started the morning off with this article. True and False are also integers 1 and 0: 1 2 True == 1 False == 0 This means that can be used to count things with sum(). Python uses shortcutting when evaluating logical expressions, so if it already knows the answer, the other statements will never be executed. The is operator validates the identity of an object....

February 23, 2021 · 3 min · Alan Scherger