Reminder — Zeta isn’t the last letter in the Greek alphabet. Alpha, Beta, Gamma, Delta, Epsilon, Zeta, Eta, Theta, Iota, Kappa … so don’t think you missed a dozen tropical storms when you see Zeta in the news.
Bypassing Civil Service
Great – a new classification of federal employee that doesn’t go through the civil service process *and* don’t terminate with the end of an administration.To advice on policy issues?!
List Extensions Within Folder
It didn’t occur to me that Apache serves everything under a folder and the .git folder may well be under a folder (you can have your project up a level so there’s a single folder at the root of the project & that folder is DocumentRoot for the web site). Without knowing specific file names, you cannot get anything since directory browsing is disabled. But git has a well-known structure so browsing to /.git/index or really scary for someone who stuffs their password in the repo URL /.git/config is there and Apache happily serves it unless you’ve provided instructions otherwise.
A coworker brought up the intriguing idea of, instead of blocking the .git folder so things subordinate to .git are never served, having a specific list of known good extensions the web server was willing to serve. Which … ironically was one of the things I really didn’t like about IIS. Kind of like the extra frustration of driving behind someone who is going the speed limit. Frustrating because I want to go faster, extra frustrating because they aren’t actually wrong.
But configuring a list of good-to-serve extensions means you’ve got to get a handle on what extensions are on your server in the first place. This command provides a list of extensions and a count per extension (so you can easily identify one-offs that may not be needed):
find /path/to/search/ -type f | perl -ne 'print $1 if m/\.([^.\/]+)$/' | sort | uniq -c
Dueling Town Halls
It struck me, while watching the dueling town hall events, how normalized it has become that the national news talks about the president every.single.day. I get that it’s news because he’s the president … but, for most of American history, the president did his thing. Some people didn’t agree with his choices, some did. But it wasn’t so outrageous as to warrant being broadcast to the entire country on the national news. I don’t mean the cable-news plenty-of-time-to-fill stations — I mean the half hour daily news on the national networks.
Chicken Coop Down
Success! We removed the plywood around the playhouse base and tried pulling the playhouse down. Nothing. It’s an odd combination of flimsy and sturdy, but sturdy won out. Scott wrapped a chain around the front 4×4’s and cut through them. For safety, he tacked in two non-cut 4x4s to act as braces while he cut the structure. Pulled again and nothing — those two braces held the entire building.
Then the took other dimensional lumbar and threw it like a javelin at the two braces. A single brace still held the whole building, but after the second brace was removed … we finally have success. It came down in one piece — there are a few dings and the front porch was damaged. But we’ve got a little building at ground level. Now to flip it, clean it up, and get the chickens moved in.
On Patriotic History
Tar Excluding Git Folders
You can, of course, use –exclude and avoid adding the .git folders to your tar archive, but I discovered a really cool option that excludes the folders created by a whole host of version control systems:
--exclude-vcs
Which, as of version 1.32, means excluding CVS, RCS, SCCS, git, SVN, Arch, Bazaar, Mercurial, and Darcs as follows:
- CVS/ — recursive
- RCS/ — recursive
- SCCS/ — recursive
- .git/ — recursive
- .gitignore
- .gitmodules
- .gitattributes
- .cvsignore
- .svn/ — recursive
- .arch-ids/ — recursive
- {arch}/ — recursive
- =RELEASE-ID
- =meta-update
- =update
- .bzr
- .bzrignore
- .bzrtags
- .hg
- .hgignore
- .hgrags
- _darcs
Chicken Coop
Cyberark — Error Listing Accounts
I was getting an odd error from my attempt to list accounts in Cyberark — “Object reference not set to an instance of an object”. Searching the Internet yielded a lot of issues that weren’t my problem (ampersands in account names in an older version, issues with SSL {and, seriously, someone says disable SSL on the connection they use to retrieve passwords!?! And not just random someone, but RAND?!?}). My issue turned out to be that I was copy/pasting code and used requests.post instead of requests.get — attempting to POST to a GET URL generates this error too.
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): cyberark.example.com:443
DEBUG:urllib3.connectionpool:https://cyberark.example.com:443 “POST /PasswordVault/API/auth/Cyberark/Logon HTTP/1.1” 200 182
Before request, header is {‘Content-Type’: ‘application/json’, ‘Authorization’: ‘5TQz5WVjYm5tMjBh5C00M5YyLT50MjYt5Tc2Y5I2ZDI5…AwMDA5MDA7’}
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): cyberark.example.com:443
DEBUG:urllib3.connectionpool:https://cyberark.example.com:443 “POST /PasswordVault/api/Accounts?search=sample_account&searchType=contains HTTP/1.1” 500 97
{“ErrorCode”:”CAWS00001E”,”ErrorMessage”:”Object reference not set to an instance of an object.”} 500 Internal Server Error
DigiMash Unboxing
Our beer-brewing equipment arrived today! The packaging was not robust — every box had some fairly substantial damage. There’s a dent inside the kettle and one of the fermenters has a pushed in section (supposedly this will pop right out when we fill it). My first surprise was that we got a DigiBoil in a box and the mash upgrade kit in another box. The kettle is even branded as DigiBoil. Which … from a manufacturing / material standpoint makes sense. Why would they have two different sets of packaging and product labels? And three different SKU’s — DigiBoil, DigiMash kit, DigiBoil Mash Upgrade. It was a better deal buying the DigiBoil package — the DigiMash 65L was $259.99 and the mash upgrade $89.99, so we saved ten bucks ordering



