From 137d65cc659461e425452c0d5bd47f712445a6fe Mon Sep 17 00:00:00 2001 From: "russell@unturf.com" Date: Mon, 26 Jan 2026 09:09:53 -0500 Subject: [PATCH] =?UTF-8?q?Consolidate=20blog=20tags:=2057=20=E2=86=92=202?= =?UTF-8?q?3=20unique=20tags?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Fix case duplicates (guide→Guide, project→Project, etc.) - Consolidate single-post tags into broader categories - Add technology tags (Python, AWS, Salt, Docker, Kubernetes) to 93 posts - Add lib/tag_stats.py tool for checking tag usage - Update CLAUDE.md with tag guidelines --- CLAUDE.md | 17 ++++++++++ ...rymores-stole-my-heart-then-crushed-it.rst | 2 +- ...1-four2go-a-new-spin-on-an-old-classic.rst | 2 +- ...-a-homegrown-python-bread-crumb-module.rst | 2 +- ...-backup-utility-for-kvm-xen-virtualbox.rst | 2 +- ...-attempts-to-crawl-shortest-urls-first.rst | 2 +- ...a-pyramid-project-using-4-simple-steps.rst | 2 +- content/2011-08-07-the-great-gist-heist.rst | 2 +- ...2011-08-22-python-image-grabber-pig-py.rst | 2 +- ...intaining-multiple-python-environments.rst | 2 +- ...configuration-in-a-pyramid-application.rst | 2 +- ...-com-webpage-to-image-was-a-by-product.rst | 2 +- ...c-cipher-and-inverse-written-in-python.rst | 2 +- ...ic-encryption-vs-public-key-encryption.rst | 2 +- ...ge-integrity-then-an-internet-checksum.rst | 2 +- content/2012-02-14-block-cipher-lab.rst | 2 +- ...sing-client-certificate-authentication.rst | 2 +- ...hat-do-you-name-your-python-virtualenv.rst | 2 +- ...miniuri-parser-and-ago-human-timedelta.rst | 2 +- ...-importance-of-test-driven-development.rst | 2 +- ...012-10-02-explaining-cache-with-python.rst | 2 +- ...-human-readable-timedelta0-0-4-release.rst | 2 +- ...ction-arguments-in-python-using-lambda.rst | 2 +- ...er-class-returns-doms-from-libvirt-api.rst | 2 +- ...pped-tornado-python-tulip-and-pep-3156.rst | 2 +- ...5-26-honey-i-just-deleted-linkpeek-com.rst | 2 +- ...ftbukkit-compared-to-vanilla-minecraft.rst | 2 +- ...files-using-pillar-and-jinja-templates.rst | 2 +- ...vers-with-digital-ocean-and-salt-cloud.rst | 2 +- ...g-salt-stack-user-and-group-management.rst | 2 +- ...uration-management-vs-remote-execution.rst | 2 +- ...collection-in-configuration-management.rst | 2 +- .../2013-10-17-postfix-salt-state-formula.rst | 2 +- ...ify-deployments-with-upstart-and-uwsgi.rst | 2 +- ...13-12-13-hackathon-2013-virtualization.rst | 2 +- content/2013-12-17-sensu-salt.rst | 2 +- ...-test-game-engine-with-python-and-sfml.rst | 2 +- content/2014-02-07-automatic-backups.rst | 2 +- content/2014-02-07-tar-back.rst | 2 +- ...ration-management-and-the-golden-image.rst | 2 +- ...ios-scheduler-and-nrpe-with-salt-stack.rst | 2 +- ...3-filter-salt-stack-return-data-output.rst | 2 +- ...ned-remote-executions-using-salt-stack.rst | 2 +- ...tbleed-openssl-defect-libssl-on-ubuntu.rst | 2 +- ...tent-errors-with-upstream-wsgi-servers.rst | 2 +- .../2014-05-15-you-can-hack-on-freenas-9.rst | 2 +- ...lpile-salt-states-for-ubuntu-or-debian.rst | 2 +- content/2014-08-23-heka-world2.rst | 2 +- ...ot-password-smartos-percona-mysql-zone.rst | 2 +- ...urn-python-dict-into-a-keyvalue-string.rst | 2 +- ...1-13-dealing-with-pagination-in-python.rst | 2 +- ...build-release-pipelines-on-s3-with-s3p.rst | 2 +- ...jenkins-build-artifacts-on-salt-master.rst | 2 +- ...tting-region-programmatically-in-boto3.rst | 2 +- ...ch-searches-for-available-interpreters.rst | 2 +- ...07-01-working-with-botocores-awsconfig.rst | 2 +- ...-02-filtering-aws-resources-with-boto3.rst | 2 +- ...-all-installed-package-names-in-python.rst | 2 +- .../2015-10-16-boto3-get-main-route-table.rst | 2 +- content/2015-11-29-bind9-on-joyent-triton.rst | 2 +- .../2015-12-16-set-dns-resolver-options.rst | 2 +- ...ance-identifiers-of-an-aws-vpc-to-json.rst | 2 +- ...atic-hostname-for-rhel-centos-7-on-aws.rst | 2 +- ...a-pyramid-cookie-with-flask-or-tornado.rst | 2 +- ...powers-with-pyramid-add-request-method.rst | 2 +- ...kages-for-nodejs-using-jenkins-and-fpm.rst | 2 +- content/2017-03-21-minikube.rst | 2 +- ...2017-03-23-selenium-grid-on-kubernetes.rst | 2 +- ...ocker-in-as-many-languages-as-possible.rst | 2 +- ...from-home-the-road-to-remote-chapter-1.rst | 2 +- ...3-16-fulfilling-childhood-dreams-solar.rst | 2 +- ...ckstart-to-dkim-sign-email-with-python.rst | 2 +- ...onsole-script-with-transaction-manager.rst | 2 +- ...-local-service-container-on-circleci-2.rst | 2 +- ...3-all-local-heros-need-a-gig-side-kick.rst | 2 +- ...etide-trains-and-homegrown-video-games.rst | 2 +- .../2019-01-19-aws-nvme-to-block-mapping.rst | 2 +- ...saves-69-percent-on-energy-consumption.rst | 2 +- ...-get-and-post-for-digital-ocean-spaces.rst | 2 +- .../2019-09-25-installing-unity-on-linux.rst | 2 +- ...because-of-invalid-ca-certificate-path.rst | 2 +- ...limited-home-computer-storage-capacity.rst | 2 +- ...9-15-weechat-on-boot-in-a-tmux-session.rst | 2 +- ...o-install-gitlab-on-truenas-and-failed.rst | 2 +- ...res-like-s3-gcp-and-spaces-using-boto3.rst | 2 +- ...r-operator-notes-quickstart-cheatsheet.rst | 2 +- ...-and-make-post-sell-into-public-domain.rst | 2 +- ...gitlab-server-for-as-cheap-as-possible.rst | 2 +- ...th-note-asking-u-to-cl0ne-ubuntu22-kvm.rst | 2 +- ...-ubuntu-22-04-letsencrypt-docker-hints.rst | 2 +- ...y-and-park-from-source-on-fedora-linux.rst | 2 +- ...agement-for-plausible-docker-on-ubuntu.rst | 2 +- ...ause-functionality-in-luckey-park-game.rst | 2 +- ...ating-openai-with-dry-sample-chat-game.rst | 6 ++-- ...-python-performance-with-openai-client.rst | 4 +-- ...phoenix-performance-with-openai-client.rst | 2 +- ...-exploring-battleship-board-generation.rst | 8 ++--- ...21-free-hermes-ai-unturf-com-uncloseai.rst | 20 +++++------ ...buted-model-inference-client-uncloseai.rst | 12 +++---- content/2025-03-21-introducing-slop.rst | 22 ++++++------ ...and-modding-multimower-with-dry-engine.rst | 12 +++---- ...engine-codebase-millions-lines-of-code.rst | 2 +- ...anguages-the-ultimate-programming-kata.rst | 2 +- ...-webwords-btrfs-cleanup-docker-volumes.rst | 2 +- ...words-code-golf-minimal-implementation.rst | 2 +- ...elican-theme-upgrade-right-sidebar-toc.rst | 2 +- ...growing-a-book-in-5-days-ml-and-devops.rst | 4 +-- content/2025-10-18-who-owns-yaml.rst | 2 +- ...2025-12-06-free-agent-looking-for-work.rst | 2 +- ...performance-variance-chaos-engineering.rst | 2 +- .../cover-letters/2026-01-25-cake-wallet.txt | 34 +++++++++++++++++++ litellm.sh | 3 ++ nohup.out | 8 +++++ 113 files changed, 207 insertions(+), 145 deletions(-) create mode 100644 content/uploads/cover-letters/2026-01-25-cake-wallet.txt create mode 100644 litellm.sh create mode 100644 nohup.out diff --git a/CLAUDE.md b/CLAUDE.md index 85db1aa..b41d5b4 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -188,6 +188,23 @@ Russell Ballestrini - Use `|` for vertical spacing before signature - Links use RST inline syntax: ```link text `_`` +## BLOG POST TAGS + +**Check existing tags before writing posts:** +```bash +venv/bin/python lib/tag_stats.py # all tags with counts +venv/bin/python lib/tag_stats.py 5 # only tags with 5+ posts +``` + +**Core tags (use these):** +- Code, DevOps, Python, Guide, Opinion, Salt, AWS, Project, Docker, Security, Machine Learning, Game Development, Kubernetes + +**Rules:** +- Always use existing tags when applicable +- Suggest new tags only if truly needed (new technology/topic area) +- Tags should be capitalized (e.g., "Python" not "python") +- Avoid single-use tags; consolidate into broader categories + ## DATE HANDLING FOR NEW CONTENT **CRITICAL: ALWAYS check the current date BEFORE creating ANY new documents** diff --git a/content/2010-11-30-the-barrymores-stole-my-heart-then-crushed-it.rst b/content/2010-11-30-the-barrymores-stole-my-heart-then-crushed-it.rst index c7174b4..2c44637 100644 --- a/content/2010-11-30-the-barrymores-stole-my-heart-then-crushed-it.rst +++ b/content/2010-11-30-the-barrymores-stole-my-heart-then-crushed-it.rst @@ -3,7 +3,7 @@ The Barrymores stole my heart then crushed it :date: 2010-11-30 04:37 :author: Russell Ballestrini -:tags: Music, Opinion +:tags: Opinion :tags: Barrymores, music :slug: the-barrymores-stole-my-heart-then-crushed-it :status: published diff --git a/content/2010-12-31-four2go-a-new-spin-on-an-old-classic.rst b/content/2010-12-31-four2go-a-new-spin-on-an-old-classic.rst index ef434fa..a437ef2 100644 --- a/content/2010-12-31-four2go-a-new-spin-on-an-old-classic.rst +++ b/content/2010-12-31-four2go-a-new-spin-on-an-old-classic.rst @@ -2,7 +2,7 @@ four2go!: A new spin on an old classic ###################################### :date: 2010-12-31 20:33 :author: Russell Ballestrini -:tags: Project +:tags: Project, Python :tags: four2go!, gumyum, programming, python :slug: four2go-a-new-spin-on-an-old-classic :status: published diff --git a/content/2011-01-02-a-homegrown-python-bread-crumb-module.rst b/content/2011-01-02-a-homegrown-python-bread-crumb-module.rst index 10ce6df..fcca899 100644 --- a/content/2011-01-02-a-homegrown-python-bread-crumb-module.rst +++ b/content/2011-01-02-a-homegrown-python-bread-crumb-module.rst @@ -3,7 +3,7 @@ A homegrown python bread crumb module :date: 2011-01-02 14:14 :author: Russell Ballestrini -:tags: Code, Project +:tags: Code, Project, Python :tags: bread, code, crumb, python :slug: a-homegrown-python-bread-crumb-module :status: published diff --git a/content/2011-03-20-virt-back-a-python-libvirt-backup-utility-for-kvm-xen-virtualbox.rst b/content/2011-03-20-virt-back-a-python-libvirt-backup-utility-for-kvm-xen-virtualbox.rst index 01de622..9453fa5 100644 --- a/content/2011-03-20-virt-back-a-python-libvirt-backup-utility-for-kvm-xen-virtualbox.rst +++ b/content/2011-03-20-virt-back-a-python-libvirt-backup-utility-for-kvm-xen-virtualbox.rst @@ -2,7 +2,7 @@ virt-back: a python libvirt backup utility for kvm xen virtualbox ################################################################# :date: 2011-03-20 11:32 :author: Russell Ballestrini -:tags: Code, DevOps, Greatest Hits, Guide, Project +:tags: Code, DevOps, Greatest Hits, Guide, Project, Python :slug: virt-back-a-python-libvirt-backup-utility-for-kvm-xen-virtualbox :status: published :summary: diff --git a/content/2011-06-25-google-bot-attempts-to-crawl-shortest-urls-first.rst b/content/2011-06-25-google-bot-attempts-to-crawl-shortest-urls-first.rst index f2df81b..ed032f1 100644 --- a/content/2011-06-25-google-bot-attempts-to-crawl-shortest-urls-first.rst +++ b/content/2011-06-25-google-bot-attempts-to-crawl-shortest-urls-first.rst @@ -2,7 +2,7 @@ Google Bot Attempts to Crawl Shortest Urls First ################################################ :date: 2011-06-25 09:37 :author: Russell Ballestrini -:tags: Code, Greatest Hits, Opinion, Project +:tags: Code, Greatest Hits, Opinion, Project, Python :slug: google-bot-attempts-to-crawl-shortest-urls-first :status: published :summary: diff --git a/content/2011-07-02-add-a-breadcrumb-subscriber-to-a-pyramid-project-using-4-simple-steps.rst b/content/2011-07-02-add-a-breadcrumb-subscriber-to-a-pyramid-project-using-4-simple-steps.rst index 919884b..5342bf5 100644 --- a/content/2011-07-02-add-a-breadcrumb-subscriber-to-a-pyramid-project-using-4-simple-steps.rst +++ b/content/2011-07-02-add-a-breadcrumb-subscriber-to-a-pyramid-project-using-4-simple-steps.rst @@ -2,7 +2,7 @@ Add a Breadcrumb Subscriber to a Pyramid project using 4 simple steps ##################################################################### :date: 2011-07-02 17:25 :author: Russell Ballestrini -:tags: Code, Guide +:tags: Code, Guide, Python :slug: add-a-breadcrumb-subscriber-to-a-pyramid-project-using-4-simple-steps :status: published :summary: diff --git a/content/2011-08-07-the-great-gist-heist.rst b/content/2011-08-07-the-great-gist-heist.rst index a634def..c75b970 100644 --- a/content/2011-08-07-the-great-gist-heist.rst +++ b/content/2011-08-07-the-great-gist-heist.rst @@ -2,7 +2,7 @@ The Great Gist Heist #################### :date: 2011-08-07 02:30 :author: Russell Ballestrini -:tags: Code, Project +:tags: Code, Project, Python :slug: the-great-gist-heist :status: published :summary: diff --git a/content/2011-08-22-python-image-grabber-pig-py.rst b/content/2011-08-22-python-image-grabber-pig-py.rst index 12d2578..6c0596c 100644 --- a/content/2011-08-22-python-image-grabber-pig-py.rst +++ b/content/2011-08-22-python-image-grabber-pig-py.rst @@ -2,7 +2,7 @@ Python Image Grabber pig.py ########################### :date: 2011-08-22 18:48 :author: Russell Ballestrini -:tags: Code, Guide, Project +:tags: Code, Guide, Project, Python :slug: python-image-grabber-pig-py :status: published :summary: diff --git a/content/2011-09-08-a-system-administrators-guide-to-installing-and-maintaining-multiple-python-environments.rst b/content/2011-09-08-a-system-administrators-guide-to-installing-and-maintaining-multiple-python-environments.rst index e8b2fcc..04a0c55 100644 --- a/content/2011-09-08-a-system-administrators-guide-to-installing-and-maintaining-multiple-python-environments.rst +++ b/content/2011-09-08-a-system-administrators-guide-to-installing-and-maintaining-multiple-python-environments.rst @@ -3,7 +3,7 @@ A system administrators guide to installing and maintaining multiple python envi :date: 2011-09-08 19:28 :author: Russell Ballestrini -:tags: DevOps, Guide +:tags: DevOps, Guide, Python :slug: a-system-administrators-guide-to-installing-and-maintaining-multiple-python-environments :status: published diff --git a/content/2011-11-30-how-to-incorporate-custom-configuration-in-a-pyramid-application.rst b/content/2011-11-30-how-to-incorporate-custom-configuration-in-a-pyramid-application.rst index 114dd39..3aee64e 100644 --- a/content/2011-11-30-how-to-incorporate-custom-configuration-in-a-pyramid-application.rst +++ b/content/2011-11-30-how-to-incorporate-custom-configuration-in-a-pyramid-application.rst @@ -2,7 +2,7 @@ How to Incorporate Custom Configuration in a Pyramid Application ################################################################ :date: 2011-11-30 22:47 :author: Russell Ballestrini -:tags: Code, Guide +:tags: Code, Guide, Python :slug: how-to-incorporate-custom-configuration-in-a-pyramid-application :status: published diff --git a/content/2011-12-19-linkpeek-com-webpage-to-image-was-a-by-product.rst b/content/2011-12-19-linkpeek-com-webpage-to-image-was-a-by-product.rst index f0ce7d9..676f43e 100644 --- a/content/2011-12-19-linkpeek-com-webpage-to-image-was-a-by-product.rst +++ b/content/2011-12-19-linkpeek-com-webpage-to-image-was-a-by-product.rst @@ -2,7 +2,7 @@ LinkPeek.com, webpage to image, was a by-product ################################################ :date: 2011-12-19 00:23 :author: Russell Ballestrini -:tags: LinkPeek, Opinion +:tags: LinkPeek, Opinion, Python :slug: linkpeek-com-webpage-to-image-was-a-by-product :status: published diff --git a/content/2012-02-13-monoalphabetic-cipher-and-inverse-written-in-python.rst b/content/2012-02-13-monoalphabetic-cipher-and-inverse-written-in-python.rst index 0a65310..7bba72e 100644 --- a/content/2012-02-13-monoalphabetic-cipher-and-inverse-written-in-python.rst +++ b/content/2012-02-13-monoalphabetic-cipher-and-inverse-written-in-python.rst @@ -2,7 +2,7 @@ Monoalphabetic Cipher and Inverse Written in Python #################################################### :date: 2012-02-13 22:39 :author: Russell Ballestrini -:tags: Code, Security +:tags: Code, Security, Python :slug: monoalphabetic-cipher-and-inverse-written-in-python :status: published diff --git a/content/2012-02-13-symmetric-encryption-vs-public-key-encryption.rst b/content/2012-02-13-symmetric-encryption-vs-public-key-encryption.rst index 67cd87f..c35ad46 100644 --- a/content/2012-02-13-symmetric-encryption-vs-public-key-encryption.rst +++ b/content/2012-02-13-symmetric-encryption-vs-public-key-encryption.rst @@ -2,7 +2,7 @@ Symmetric Encryption vs Public Key Encryption ############################################# :date: 2012-02-13 17:25 :author: Russell Ballestrini -:tags: Security +:tags: Security, Python :slug: symmetric-encryption-vs-public-key-encryption :status: published diff --git a/content/2012-02-13-why-does-a-hash-provide-better-message-integrity-then-an-internet-checksum.rst b/content/2012-02-13-why-does-a-hash-provide-better-message-integrity-then-an-internet-checksum.rst index e7d6c12..910ec5b 100644 --- a/content/2012-02-13-why-does-a-hash-provide-better-message-integrity-then-an-internet-checksum.rst +++ b/content/2012-02-13-why-does-a-hash-provide-better-message-integrity-then-an-internet-checksum.rst @@ -2,7 +2,7 @@ Why does a Hash provide better message integrity then an Internet checksum? ########################################################################### :date: 2012-02-13 19:19 :author: Russell Ballestrini -:tags: Code, Security +:tags: Code, Security, Python, Salt :slug: why-does-a-hash-provide-better-message-integrity-then-an-internet-checksum :status: published diff --git a/content/2012-02-14-block-cipher-lab.rst b/content/2012-02-14-block-cipher-lab.rst index 9e6af55..681e546 100644 --- a/content/2012-02-14-block-cipher-lab.rst +++ b/content/2012-02-14-block-cipher-lab.rst @@ -2,7 +2,7 @@ Block cipher lab ################ :date: 2012-02-14 01:36 :author: Russell Ballestrini -:tags: Code, Security +:tags: Code, Security, Python :slug: block-cipher-lab :status: published diff --git a/content/2012-02-26-zenoss-or-nagios-monitoring-of-https-using-client-certificate-authentication.rst b/content/2012-02-26-zenoss-or-nagios-monitoring-of-https-using-client-certificate-authentication.rst index 25c187b..87268c6 100644 --- a/content/2012-02-26-zenoss-or-nagios-monitoring-of-https-using-client-certificate-authentication.rst +++ b/content/2012-02-26-zenoss-or-nagios-monitoring-of-https-using-client-certificate-authentication.rst @@ -2,7 +2,7 @@ Zenoss or Nagios monitoring of HTTPS using client certificate authentication ############################################################################ :date: 2012-02-26 19:21 :author: Russell Ballestrini -:tags: Code, DevOps +:tags: Code, DevOps, Python :slug: zenoss-or-nagios-monitoring-of-https-using-client-certificate-authentication :status: published diff --git a/content/2012-03-07-what-do-you-name-your-python-virtualenv.rst b/content/2012-03-07-what-do-you-name-your-python-virtualenv.rst index c0b12de..2ccbb77 100644 --- a/content/2012-03-07-what-do-you-name-your-python-virtualenv.rst +++ b/content/2012-03-07-what-do-you-name-your-python-virtualenv.rst @@ -2,7 +2,7 @@ What do you name your python virtualenv? ######################################## :date: 2012-03-07 21:42 :author: Russell Ballestrini -:tags: Opinion +:tags: Opinion, Python :slug: what-do-you-name-your-python-virtualenv :status: published diff --git a/content/2012-06-29-miniuri-parser-and-ago-human-timedelta.rst b/content/2012-06-29-miniuri-parser-and-ago-human-timedelta.rst index abe07c8..109a38c 100644 --- a/content/2012-06-29-miniuri-parser-and-ago-human-timedelta.rst +++ b/content/2012-06-29-miniuri-parser-and-ago-human-timedelta.rst @@ -2,7 +2,7 @@ miniuri parser and ago human timedelta ###################################### :date: 2012-06-29 21:30 :author: Russell Ballestrini -:tags: Code, Project +:tags: Code, Project, Python :slug: miniuri-parser-and-ago-human-timedelta :status: published diff --git a/content/2012-09-22-the-pyramid-community-taught-me-the-importance-of-test-driven-development.rst b/content/2012-09-22-the-pyramid-community-taught-me-the-importance-of-test-driven-development.rst index f9d4d09..0e16536 100644 --- a/content/2012-09-22-the-pyramid-community-taught-me-the-importance-of-test-driven-development.rst +++ b/content/2012-09-22-the-pyramid-community-taught-me-the-importance-of-test-driven-development.rst @@ -2,7 +2,7 @@ The Pyramid community taught me the importance of test driven development ######################################################################### :date: 2012-09-22 14:03 :author: Russell Ballestrini -:tags: Opinion +:tags: Opinion, Python :slug: the-pyramid-community-taught-me-the-importance-of-test-driven-development :status: published diff --git a/content/2012-10-02-explaining-cache-with-python.rst b/content/2012-10-02-explaining-cache-with-python.rst index ebdd9ad..3d04c10 100644 --- a/content/2012-10-02-explaining-cache-with-python.rst +++ b/content/2012-10-02-explaining-cache-with-python.rst @@ -2,7 +2,7 @@ Explaining cache with python ############################ :date: 2012-10-02 15:22 :author: Russell Ballestrini -:tags: Code, Greatest Hits +:tags: Code, Greatest Hits, Python :slug: explaining-cache-with-python :status: published diff --git a/content/2013-01-09-ago-py-human-readable-timedelta0-0-4-release.rst b/content/2013-01-09-ago-py-human-readable-timedelta0-0-4-release.rst index 0de1a57..114343f 100644 --- a/content/2013-01-09-ago-py-human-readable-timedelta0-0-4-release.rst +++ b/content/2013-01-09-ago-py-human-readable-timedelta0-0-4-release.rst @@ -2,7 +2,7 @@ ago.py human readable timedelta 0.0.4 release ############################################# :date: 2013-01-09 00:04 :author: Russell Ballestrini -:tags: Code +:tags: Code, Python :slug: ago-py-human-readable-timedelta0-0-4-release :status: published diff --git a/content/2013-01-12-how-to-overload-default-function-arguments-in-python-using-lambda.rst b/content/2013-01-12-how-to-overload-default-function-arguments-in-python-using-lambda.rst index 77b34e7..a954966 100644 --- a/content/2013-01-12-how-to-overload-default-function-arguments-in-python-using-lambda.rst +++ b/content/2013-01-12-how-to-overload-default-function-arguments-in-python-using-lambda.rst @@ -2,7 +2,7 @@ How to overload default function arguments in python using lambda ################################################################# :date: 2013-01-12 11:22 :author: Russell Ballestrini -:tags: Code, Greatest Hits, Guide +:tags: Code, Greatest Hits, Guide, Python, AWS :slug: how-to-overload-default-function-arguments-in-python-using-lambda :status: published diff --git a/content/2013-03-02-virt-backs-domfetcher-class-returns-doms-from-libvirt-api.rst b/content/2013-03-02-virt-backs-domfetcher-class-returns-doms-from-libvirt-api.rst index 20ed145..07af9a6 100644 --- a/content/2013-03-02-virt-backs-domfetcher-class-returns-doms-from-libvirt-api.rst +++ b/content/2013-03-02-virt-backs-domfetcher-class-returns-doms-from-libvirt-api.rst @@ -2,7 +2,7 @@ virt-back's Domfetcher class returns doms from libvirt API ########################################################## :date: 2013-03-02 15:04 :author: Russell Ballestrini -:tags: Code, DevOps +:tags: Code, DevOps, Python :slug: virt-backs-domfetcher-class-returns-doms-from-libvirt-api :status: published :summary: diff --git a/content/2013-03-22-guido-name-dropped-tornado-python-tulip-and-pep-3156.rst b/content/2013-03-22-guido-name-dropped-tornado-python-tulip-and-pep-3156.rst index 2d7468f..45a433d 100644 --- a/content/2013-03-22-guido-name-dropped-tornado-python-tulip-and-pep-3156.rst +++ b/content/2013-03-22-guido-name-dropped-tornado-python-tulip-and-pep-3156.rst @@ -2,7 +2,7 @@ Guido name dropped tornado python tulip and pep-3156 ##################################################### :date: 2013-03-22 22:07 :author: Russell Ballestrini -:tags: Uncategorized +:tags: Uncategorized, Python :slug: guido-name-dropped-tornado-python-tulip-and-pep-3156 :status: published diff --git a/content/2013-05-26-honey-i-just-deleted-linkpeek-com.rst b/content/2013-05-26-honey-i-just-deleted-linkpeek-com.rst index 8ef054d..6b84408 100644 --- a/content/2013-05-26-honey-i-just-deleted-linkpeek-com.rst +++ b/content/2013-05-26-honey-i-just-deleted-linkpeek-com.rst @@ -2,7 +2,7 @@ Honey! I just DELETED LinkPeek.com ################################### :date: 2013-05-26 13:19 :author: Russell Ballestrini -:tags: DevOps, LinkPeek, Opinion +:tags: DevOps, LinkPeek, Opinion, Python :slug: honey-i-just-deleted-linkpeek-com :status: published diff --git a/content/2013-06-20-high-load-and-cpu-usage-craftbukkit-compared-to-vanilla-minecraft.rst b/content/2013-06-20-high-load-and-cpu-usage-craftbukkit-compared-to-vanilla-minecraft.rst index 2dd6b4c..92a2518 100644 --- a/content/2013-06-20-high-load-and-cpu-usage-craftbukkit-compared-to-vanilla-minecraft.rst +++ b/content/2013-06-20-high-load-and-cpu-usage-craftbukkit-compared-to-vanilla-minecraft.rst @@ -2,7 +2,7 @@ High load and CPU usage craftbukkit compared to vanilla minecraft ################################################################# :date: 2013-06-20 23:35 :author: Russell Ballestrini -:tags: Opinion, Project +:tags: Opinion, Project, Salt :slug: high-load-and-cpu-usage-craftbukkit-compared-to-vanilla-minecraft :status: published diff --git a/content/2013-07-01-add-a-custom-header-to-all-salt-managed-files-using-pillar-and-jinja-templates.rst b/content/2013-07-01-add-a-custom-header-to-all-salt-managed-files-using-pillar-and-jinja-templates.rst index aef23b1..156fe0b 100644 --- a/content/2013-07-01-add-a-custom-header-to-all-salt-managed-files-using-pillar-and-jinja-templates.rst +++ b/content/2013-07-01-add-a-custom-header-to-all-salt-managed-files-using-pillar-and-jinja-templates.rst @@ -2,7 +2,7 @@ Add a custom header to all Salt managed files using pillar and jinja templates ############################################################################## :date: 2013-07-01 14:11 :author: Russell Ballestrini -:tags: DevOps, Guide +:tags: DevOps, Guide, Salt :slug: add-a-custom-header-to-all-salt-managed-files-using-pillar-and-jinja-templates :status: published diff --git a/content/2013-07-02-create-your-own-fleet-of-servers-with-digital-ocean-and-salt-cloud.rst b/content/2013-07-02-create-your-own-fleet-of-servers-with-digital-ocean-and-salt-cloud.rst index e2c8c12..7d81600 100644 --- a/content/2013-07-02-create-your-own-fleet-of-servers-with-digital-ocean-and-salt-cloud.rst +++ b/content/2013-07-02-create-your-own-fleet-of-servers-with-digital-ocean-and-salt-cloud.rst @@ -2,7 +2,7 @@ Create your own fleet of servers with Digital Ocean and salt-cloud ################################################################## :date: 2013-07-02 22:20 :author: Russell Ballestrini -:tags: DevOps, Guide +:tags: DevOps, Guide, Python, Salt :slug: create-your-own-fleet-of-servers-with-digital-ocean-and-salt-cloud :status: published diff --git a/content/2013-07-08-understanding-salt-stack-user-and-group-management.rst b/content/2013-07-08-understanding-salt-stack-user-and-group-management.rst index 000abe5..bb3f453 100644 --- a/content/2013-07-08-understanding-salt-stack-user-and-group-management.rst +++ b/content/2013-07-08-understanding-salt-stack-user-and-group-management.rst @@ -2,7 +2,7 @@ Understanding Salt Stack user and group management ################################################## :date: 2013-07-08 13:51 :author: Russell Ballestrini -:tags: DevOps, Guide +:tags: DevOps, Guide, Salt :slug: understanding-salt-stack-user-and-group-management :status: published diff --git a/content/2013-07-11-configuration-management-vs-remote-execution.rst b/content/2013-07-11-configuration-management-vs-remote-execution.rst index b930db9..627d2cd 100644 --- a/content/2013-07-11-configuration-management-vs-remote-execution.rst +++ b/content/2013-07-11-configuration-management-vs-remote-execution.rst @@ -2,7 +2,7 @@ Configuration Management vs Remote Execution ############################################ :date: 2013-07-11 23:15 :author: Russell Ballestrini -:tags: DevOps, Greatest Hits, Opinion +:tags: DevOps, Greatest Hits, Opinion, Python, Salt :slug: configuration-management-vs-remote-execution :status: published :summary: diff --git a/content/2013-10-14-control-a-mongodb-collection-in-configuration-management.rst b/content/2013-10-14-control-a-mongodb-collection-in-configuration-management.rst index 34dc113..93fc55e 100644 --- a/content/2013-10-14-control-a-mongodb-collection-in-configuration-management.rst +++ b/content/2013-10-14-control-a-mongodb-collection-in-configuration-management.rst @@ -2,7 +2,7 @@ Control a MongoDB collection in configuration management ######################################################## :date: 2013-10-14 21:39 :author: Russell Ballestrini -:tags: DevOps, Guide +:tags: DevOps, Guide, Salt :slug: control-a-mongodb-collection-in-configuration-management :status: published diff --git a/content/2013-10-17-postfix-salt-state-formula.rst b/content/2013-10-17-postfix-salt-state-formula.rst index 6119869..237f079 100644 --- a/content/2013-10-17-postfix-salt-state-formula.rst +++ b/content/2013-10-17-postfix-salt-state-formula.rst @@ -2,7 +2,7 @@ Postfix Salt State Formula ########################## :date: 2013-10-17 21:28 :author: Russell Ballestrini -:tags: DevOps, Guide +:tags: DevOps, Guide, Salt :slug: postfix-salt-state-formula :status: published :summary: diff --git a/content/2013-10-19-simplify-deployments-with-upstart-and-uwsgi.rst b/content/2013-10-19-simplify-deployments-with-upstart-and-uwsgi.rst index 5f05e50..042b4f7 100644 --- a/content/2013-10-19-simplify-deployments-with-upstart-and-uwsgi.rst +++ b/content/2013-10-19-simplify-deployments-with-upstart-and-uwsgi.rst @@ -2,7 +2,7 @@ Simplify deployments with Upstart and uWSGI ########################################### :date: 2013-10-19 22:35 :author: Russell Ballestrini -:tags: DevOps, Opinion +:tags: DevOps, Opinion, Python :slug: simplify-deployments-with-upstart-and-uwsgi :status: published diff --git a/content/2013-12-13-hackathon-2013-virtualization.rst b/content/2013-12-13-hackathon-2013-virtualization.rst index 0e9f4b5..b02c3de 100644 --- a/content/2013-12-13-hackathon-2013-virtualization.rst +++ b/content/2013-12-13-hackathon-2013-virtualization.rst @@ -2,7 +2,7 @@ Hackathon 2013 Virtualization ############################# :date: 2013-12-13 20:56 :author: Russell Ballestrini -:tags: Project +:tags: Project, Python, Salt, Docker :slug: hackathon-2013-virtualization :status: published diff --git a/content/2013-12-17-sensu-salt.rst b/content/2013-12-17-sensu-salt.rst index 27d4690..b1731f1 100644 --- a/content/2013-12-17-sensu-salt.rst +++ b/content/2013-12-17-sensu-salt.rst @@ -2,7 +2,7 @@ sensu-salt ########### :date: 2013-12-17 11:35 :author: Russell Ballestrini -:tags: DevOps, Guide +:tags: DevOps, Guide, Salt :slug: sensu-salt :status: published diff --git a/content/2014-01-02-test-game-engine-with-python-and-sfml.rst b/content/2014-01-02-test-game-engine-with-python-and-sfml.rst index f69bce6..67f8252 100644 --- a/content/2014-01-02-test-game-engine-with-python-and-sfml.rst +++ b/content/2014-01-02-test-game-engine-with-python-and-sfml.rst @@ -2,7 +2,7 @@ Test Game Engine with Python and SFML ##################################### :date: 2014-01-02 00:30 :author: Russell Ballestrini -:tags: Art, Code +:tags: Art, Code, Python :slug: test-game-engine-with-python-and-sfml :status: published diff --git a/content/2014-02-07-automatic-backups.rst b/content/2014-02-07-automatic-backups.rst index 501a916..592db1a 100644 --- a/content/2014-02-07-automatic-backups.rst +++ b/content/2014-02-07-automatic-backups.rst @@ -2,7 +2,7 @@ Automatic Backups ################# :date: 2014-02-07 17:14 :author: Russell Ballestrini -:tags: Code, DevOps, Greatest Hits +:tags: Code, DevOps, Greatest Hits, Python :slug: automatic-backups :status: published :summary: My tools for creating automatic backups for various systems diff --git a/content/2014-02-07-tar-back.rst b/content/2014-02-07-tar-back.rst index 3bd02ee..dc52c90 100644 --- a/content/2014-02-07-tar-back.rst +++ b/content/2014-02-07-tar-back.rst @@ -2,7 +2,7 @@ tar-back ######## :date: 2014-02-07 16:49 :author: Russell Ballestrini -:tags: Code, DevOps +:tags: Code, DevOps, Python :slug: tar-back :status: published diff --git a/content/2014-02-21-configuration-management-and-the-golden-image.rst b/content/2014-02-21-configuration-management-and-the-golden-image.rst index 40c27e8..1a5746a 100644 --- a/content/2014-02-21-configuration-management-and-the-golden-image.rst +++ b/content/2014-02-21-configuration-management-and-the-golden-image.rst @@ -2,7 +2,7 @@ Configuration Management and the Golden Image ############################################# :date: 2014-02-21 17:19 :author: Russell Ballestrini -:tags: DevOps, Greatest Hits, Opinion +:tags: DevOps, Greatest Hits, Opinion, AWS, Salt, Docker :slug: configuration-management-and-the-golden-image :status: published diff --git a/content/2014-03-08-replace-the-nagios-scheduler-and-nrpe-with-salt-stack.rst b/content/2014-03-08-replace-the-nagios-scheduler-and-nrpe-with-salt-stack.rst index 8abfdef..9f360ff 100644 --- a/content/2014-03-08-replace-the-nagios-scheduler-and-nrpe-with-salt-stack.rst +++ b/content/2014-03-08-replace-the-nagios-scheduler-and-nrpe-with-salt-stack.rst @@ -2,7 +2,7 @@ Replace the Nagios Scheduler and NRPE with Salt Stack ##################################################### :date: 2014-03-08 15:53 :author: Russell Ballestrini -:tags: Code, DevOps +:tags: Code, DevOps, Python, Salt :slug: replace-the-nagios-scheduler-and-nrpe-with-salt-stack :status: published diff --git a/content/2014-03-13-filter-salt-stack-return-data-output.rst b/content/2014-03-13-filter-salt-stack-return-data-output.rst index 90c8128..cc62f34 100644 --- a/content/2014-03-13-filter-salt-stack-return-data-output.rst +++ b/content/2014-03-13-filter-salt-stack-return-data-output.rst @@ -2,7 +2,7 @@ Filter Salt Stack Return Data Output #################################### :date: 2014-03-13 18:21 :author: Russell Ballestrini -:tags: Code, DevOps +:tags: Code, DevOps, Python, Salt :slug: filter-salt-stack-return-data-output :status: published diff --git a/content/2014-03-15-irc-bot-foxbot-runs-canned-remote-executions-using-salt-stack.rst b/content/2014-03-15-irc-bot-foxbot-runs-canned-remote-executions-using-salt-stack.rst index 9da2b3d..477d07a 100644 --- a/content/2014-03-15-irc-bot-foxbot-runs-canned-remote-executions-using-salt-stack.rst +++ b/content/2014-03-15-irc-bot-foxbot-runs-canned-remote-executions-using-salt-stack.rst @@ -2,7 +2,7 @@ IRC Bot (Foxbot) runs canned remote executions using Salt Stack ############################################################### :date: 2014-03-15 16:33 :author: Russell Ballestrini -:tags: Code, DevOps +:tags: Code, DevOps, Salt :slug: irc-bot-foxbot-runs-canned-remote-executions-using-salt-stack :status: published diff --git a/content/2014-04-08-how-to-patch-heartbleed-openssl-defect-libssl-on-ubuntu.rst b/content/2014-04-08-how-to-patch-heartbleed-openssl-defect-libssl-on-ubuntu.rst index 31940f2..b59e00a 100644 --- a/content/2014-04-08-how-to-patch-heartbleed-openssl-defect-libssl-on-ubuntu.rst +++ b/content/2014-04-08-how-to-patch-heartbleed-openssl-defect-libssl-on-ubuntu.rst @@ -2,7 +2,7 @@ How to patch Heartbleed OpenSSL defect (libssl) on Ubuntu ########################################################## :date: 2014-04-08 22:42 :author: Russell Ballestrini -:tags: Guide, Security +:tags: Guide, Security, Salt :slug: how-to-patch-heartbleed-openssl-defect-libssl-on-ubuntu :status: published diff --git a/content/2014-05-08-nginx-with-ssl-and-mixed-content-errors-with-upstream-wsgi-servers.rst b/content/2014-05-08-nginx-with-ssl-and-mixed-content-errors-with-upstream-wsgi-servers.rst index 635ede6..607db68 100644 --- a/content/2014-05-08-nginx-with-ssl-and-mixed-content-errors-with-upstream-wsgi-servers.rst +++ b/content/2014-05-08-nginx-with-ssl-and-mixed-content-errors-with-upstream-wsgi-servers.rst @@ -2,7 +2,7 @@ Nginx with SSL and mixed content errors with upstream WSGI servers ################################################################## :date: 2014-05-08 16:28 :author: Russell Ballestrini -:tags: Code, Guide +:tags: Code, Guide, Python :slug: nginx-with-ssl-and-mixed-content-errors-with-upstream-wsgi-servers :status: published diff --git a/content/2014-05-15-you-can-hack-on-freenas-9.rst b/content/2014-05-15-you-can-hack-on-freenas-9.rst index 2b83e64..6f6156d 100644 --- a/content/2014-05-15-you-can-hack-on-freenas-9.rst +++ b/content/2014-05-15-you-can-hack-on-freenas-9.rst @@ -2,7 +2,7 @@ You can hack on FreeNAS 9 ######################### :date: 2014-05-15 01:06 :author: Russell Ballestrini -:tags: Code +:tags: Code, Python :slug: you-can-hack-on-freenas-9 :status: published diff --git a/content/2014-08-15-mailpile-salt-states-for-ubuntu-or-debian.rst b/content/2014-08-15-mailpile-salt-states-for-ubuntu-or-debian.rst index dc6a409..1144688 100644 --- a/content/2014-08-15-mailpile-salt-states-for-ubuntu-or-debian.rst +++ b/content/2014-08-15-mailpile-salt-states-for-ubuntu-or-debian.rst @@ -2,7 +2,7 @@ Mailpile Salt States for Ubuntu or Debian ######################################### :date: 2014-08-15 20:32 :author: Russell Ballestrini -:tags: DevOps +:tags: DevOps, Python, Salt :slug: mailpile-salt-states-for-ubuntu-or-debian :status: published diff --git a/content/2014-08-23-heka-world2.rst b/content/2014-08-23-heka-world2.rst index f3c46e3..55e4b21 100644 --- a/content/2014-08-23-heka-world2.rst +++ b/content/2014-08-23-heka-world2.rst @@ -2,7 +2,7 @@ Heka, World2! ############# :date: 2014-08-23 22:54 :author: Russell Ballestrini -:tags: DevOps, Guide +:tags: DevOps, Guide, Python :slug: heka-world2 :status: published diff --git a/content/2014-10-11-set-root-password-smartos-percona-mysql-zone.rst b/content/2014-10-11-set-root-password-smartos-percona-mysql-zone.rst index 387a546..1b1add0 100644 --- a/content/2014-10-11-set-root-password-smartos-percona-mysql-zone.rst +++ b/content/2014-10-11-set-root-password-smartos-percona-mysql-zone.rst @@ -2,7 +2,7 @@ Set Root Password SmartOS Percona MySQL Zone ############################################ :date: 2014-10-11 00:12 :author: Russell Ballestrini -:tags: DevOps, Guide +:tags: DevOps, Guide, Salt :slug: set-root-password-smartos-percona-mysql-zone :status: published diff --git a/content/2014-11-09-turn-python-dict-into-a-keyvalue-string.rst b/content/2014-11-09-turn-python-dict-into-a-keyvalue-string.rst index 86a3c86..9243d05 100644 --- a/content/2014-11-09-turn-python-dict-into-a-keyvalue-string.rst +++ b/content/2014-11-09-turn-python-dict-into-a-keyvalue-string.rst @@ -2,7 +2,7 @@ Turn python dict into a key=value string and back again ####################################################### :date: 2014-11-09 22:02 :author: Russell Ballestrini -:tags: Code, DevOps +:tags: Code, DevOps, Python, AWS :slug: turn-python-dict-into-a-keyvalue-string :status: published diff --git a/content/2014-11-13-dealing-with-pagination-in-python.rst b/content/2014-11-13-dealing-with-pagination-in-python.rst index e851a77..9b20aa4 100644 --- a/content/2014-11-13-dealing-with-pagination-in-python.rst +++ b/content/2014-11-13-dealing-with-pagination-in-python.rst @@ -2,7 +2,7 @@ Dealing with pagination in Python ################################# :date: 2014-11-13 21:06 :author: Russell Ballestrini -:tags: Code, DevOps +:tags: Code, DevOps, Python, AWS :slug: dealing-with-pagination-in-python :status: published diff --git a/content/2014-11-24-build-release-pipelines-on-s3-with-s3p.rst b/content/2014-11-24-build-release-pipelines-on-s3-with-s3p.rst index f930cc8..4a65e2e 100644 --- a/content/2014-11-24-build-release-pipelines-on-s3-with-s3p.rst +++ b/content/2014-11-24-build-release-pipelines-on-s3-with-s3p.rst @@ -2,7 +2,7 @@ Build release pipelines on S3 with s3p ###################################### :date: 2014-11-24 14:39 :author: Russell Ballestrini -:tags: Code, DevOps +:tags: Code, DevOps, Python, AWS :slug: build-release-pipelines-on-s3-with-s3p :status: published diff --git a/content/2015-02-22-securely-publish-jenkins-build-artifacts-on-salt-master.rst b/content/2015-02-22-securely-publish-jenkins-build-artifacts-on-salt-master.rst index e2b10ee..2c90948 100644 --- a/content/2015-02-22-securely-publish-jenkins-build-artifacts-on-salt-master.rst +++ b/content/2015-02-22-securely-publish-jenkins-build-artifacts-on-salt-master.rst @@ -2,7 +2,7 @@ Securely publish Jenkins build artifacts on Salt Master ####################################################### :date: 2015-02-22 12:39 :author: Russell Ballestrini -:tags: DevOps, Guide +:tags: DevOps, Guide, Salt :slug: securely-publish-jenkins-build-artifacts-on-salt-master :status: published :summary: diff --git a/content/2015-04-24-setting-region-programmatically-in-boto3.rst b/content/2015-04-24-setting-region-programmatically-in-boto3.rst index 9d1981f..8099ea3 100644 --- a/content/2015-04-24-setting-region-programmatically-in-boto3.rst +++ b/content/2015-04-24-setting-region-programmatically-in-boto3.rst @@ -2,7 +2,7 @@ Setting region programmatically in Boto3 ######################################## :date: 2015-04-24 14:07 :author: Russell Ballestrini -:tags: Code, DevOps +:tags: Code, DevOps, Python, AWS :slug: setting-region-programmatically-in-boto3 :status: published :summary: diff --git a/content/2015-05-08-a-python-script-which-searches-for-available-interpreters.rst b/content/2015-05-08-a-python-script-which-searches-for-available-interpreters.rst index 0146202..845bc5f 100644 --- a/content/2015-05-08-a-python-script-which-searches-for-available-interpreters.rst +++ b/content/2015-05-08-a-python-script-which-searches-for-available-interpreters.rst @@ -2,7 +2,7 @@ A Python script which searches for available interpreters ######################################################### :date: 2015-05-08 10:34 :author: Russell Ballestrini -:tags: Code, DevOps +:tags: Code, DevOps, Python :slug: a-python-script-which-searches-for-available-interpreters :status: published :summary: diff --git a/content/2015-07-01-working-with-botocores-awsconfig.rst b/content/2015-07-01-working-with-botocores-awsconfig.rst index 32de10e..d2995fc 100644 --- a/content/2015-07-01-working-with-botocores-awsconfig.rst +++ b/content/2015-07-01-working-with-botocores-awsconfig.rst @@ -2,7 +2,7 @@ Working with botocore's ~/.aws/config ##################################### :date: 2015-07-01 18:14 :author: Russell Ballestrini -:tags: Code, DevOps +:tags: Code, DevOps, AWS :slug: working-with-botocores-awsconfig :status: published :summary: diff --git a/content/2015-07-02-filtering-aws-resources-with-boto3.rst b/content/2015-07-02-filtering-aws-resources-with-boto3.rst index a5ba5bc..e306eeb 100644 --- a/content/2015-07-02-filtering-aws-resources-with-boto3.rst +++ b/content/2015-07-02-filtering-aws-resources-with-boto3.rst @@ -2,7 +2,7 @@ Filtering AWS resources with Boto3 ################################## :date: 2015-07-02 17:03 :author: Russell Ballestrini -:tags: Code, DevOps +:tags: Code, DevOps, AWS :slug: filtering-aws-resources-with-boto3 :status: published :summary: diff --git a/content/2015-07-04-list-all-installed-package-names-in-python.rst b/content/2015-07-04-list-all-installed-package-names-in-python.rst index ca22df9..c7b44e6 100644 --- a/content/2015-07-04-list-all-installed-package-names-in-python.rst +++ b/content/2015-07-04-list-all-installed-package-names-in-python.rst @@ -3,7 +3,7 @@ List all installed package names in Python :date: 2015-07-04 22:15 :author: Russell Ballestrini -:tags: Code, DevOps +:tags: Code, DevOps, Python, AWS :slug: list-all-installed-package-names-in-python :status: published :summary: diff --git a/content/2015-10-16-boto3-get-main-route-table.rst b/content/2015-10-16-boto3-get-main-route-table.rst index 7ffe4ff..adcfb68 100644 --- a/content/2015-10-16-boto3-get-main-route-table.rst +++ b/content/2015-10-16-boto3-get-main-route-table.rst @@ -2,7 +2,7 @@ Boto3 get main route table ########################## :date: 2015-10-16 12:15 :author: Russell Ballestrini -:tags: Code, DevOps +:tags: Code, DevOps, Python, AWS :slug: boto3-get-main-route-table :status: published :summary: diff --git a/content/2015-11-29-bind9-on-joyent-triton.rst b/content/2015-11-29-bind9-on-joyent-triton.rst index 983864e..cd62490 100644 --- a/content/2015-11-29-bind9-on-joyent-triton.rst +++ b/content/2015-11-29-bind9-on-joyent-triton.rst @@ -4,7 +4,7 @@ Bind9 on Joyent Triton :author: Russell Ballestrini :slug: bind9-on-joyent-triton :date: 2015-11-29 18:47 -:tags: Operations +:tags: DevOps, Docker :status: published :summary: Tricks to reduce Bind9's large memory footprint on Joyent Triton. diff --git a/content/2015-12-16-set-dns-resolver-options.rst b/content/2015-12-16-set-dns-resolver-options.rst index 20b1ac0..c9efe24 100644 --- a/content/2015-12-16-set-dns-resolver-options.rst +++ b/content/2015-12-16-set-dns-resolver-options.rst @@ -4,7 +4,7 @@ Set DNS resolver options :author: Russell Ballestrini :slug: set-dns-resolver-options :date: 2015-12-16 10:17 -:tags: Operations, Guide +:tags: DevOps, Guide :status: published :summary: The right way to persist resolver options across many Linux distributions. diff --git a/content/2016-06-21-output-all-instance-identifiers-of-an-aws-vpc-to-json.rst b/content/2016-06-21-output-all-instance-identifiers-of-an-aws-vpc-to-json.rst index 1cb4848..94b1de5 100644 --- a/content/2016-06-21-output-all-instance-identifiers-of-an-aws-vpc-to-json.rst +++ b/content/2016-06-21-output-all-instance-identifiers-of-an-aws-vpc-to-json.rst @@ -4,7 +4,7 @@ Output all instance identifiers of an AWS VPC to JSON :author: Russell Ballestrini :slug: output-all-instance-identifiers-of-an-aws-vpc-to-json :date: 2016-06-21 10:25 -:tags: Code, DevOps +:tags: Code, DevOps, AWS :status: published At work today I needed an easy way to collect private IP addresses of every instance in one of our production VPCs. diff --git a/content/2016-09-06-set-static-hostname-for-rhel-centos-7-on-aws.rst b/content/2016-09-06-set-static-hostname-for-rhel-centos-7-on-aws.rst index 0556666..4b578f3 100644 --- a/content/2016-09-06-set-static-hostname-for-rhel-centos-7-on-aws.rst +++ b/content/2016-09-06-set-static-hostname-for-rhel-centos-7-on-aws.rst @@ -4,7 +4,7 @@ Set static hostname for RHEL Centos 7 on AWS :author: Russell Ballestrini :slug: set-static-hostname-for-rhel-centos-7-on-aws :date: 2016-09-06 11:18 -:tags: Code, DevOps +:tags: Code, DevOps, AWS :status: published This took me about 2 hours to figure out, hopefully it saves you time. diff --git a/content/2016-11-21-sharing-a-pyramid-cookie-with-flask-or-tornado.rst b/content/2016-11-21-sharing-a-pyramid-cookie-with-flask-or-tornado.rst index 9740e89..2f92733 100644 --- a/content/2016-11-21-sharing-a-pyramid-cookie-with-flask-or-tornado.rst +++ b/content/2016-11-21-sharing-a-pyramid-cookie-with-flask-or-tornado.rst @@ -4,7 +4,7 @@ Sharing a Pyramid cookie with Flask or Tornado :author: Russell Ballestrini :slug: sharing-a-pyramid-cookie-with-flask-or-tornado :date: 2016-11-21 18:35 -:tags: Code +:tags: Code, Python, Salt :status: published Do you have a Pyramid application which authenticates users and uses a signed cookie as a session? diff --git a/content/2016-11-24-register-super-powers-with-pyramid-add-request-method.rst b/content/2016-11-24-register-super-powers-with-pyramid-add-request-method.rst index 72a0e4f..d347a1f 100644 --- a/content/2016-11-24-register-super-powers-with-pyramid-add-request-method.rst +++ b/content/2016-11-24-register-super-powers-with-pyramid-add-request-method.rst @@ -4,7 +4,7 @@ Register Super Powers with Pyramid add_request_method :author: Russell Ballestrini :slug: register-super-powers-with-pyramid-add-request-method :date: 2016-11-24 15:30 -:tags: Code, DevOps +:tags: Code, DevOps, Python :status: published The Pyramid web application framework uses a request object to hold state regarding an inbound HTTP connection. diff --git a/content/2016-12-01-rpm-deb-packages-for-nodejs-using-jenkins-and-fpm.rst b/content/2016-12-01-rpm-deb-packages-for-nodejs-using-jenkins-and-fpm.rst index 4da4058..77c6acd 100644 --- a/content/2016-12-01-rpm-deb-packages-for-nodejs-using-jenkins-and-fpm.rst +++ b/content/2016-12-01-rpm-deb-packages-for-nodejs-using-jenkins-and-fpm.rst @@ -4,7 +4,7 @@ Build RPM or DEB packages for Node.js using Jenkins and FPM :author: Russell Ballestrini :slug: rpm-deb-packages-for-nodejs-using-jenkins-and-fpm :date: 2016-12-01 15:30 -:tags: Code, DevOps +:tags: Code, DevOps, Python, AWS :status: published This blog post assumes you already have: diff --git a/content/2017-03-21-minikube.rst b/content/2017-03-21-minikube.rst index cccf921..f34f8dc 100644 --- a/content/2017-03-21-minikube.rst +++ b/content/2017-03-21-minikube.rst @@ -3,7 +3,7 @@ Minikube :date: 2017-03-21 12:38 :author: Russell Ballestrini -:tags: Guide, Kubernetes +:tags: Guide, Kubernetes, Docker :slug: minikube :status: published diff --git a/content/2017-03-23-selenium-grid-on-kubernetes.rst b/content/2017-03-23-selenium-grid-on-kubernetes.rst index be0977b..5f26b4c 100644 --- a/content/2017-03-23-selenium-grid-on-kubernetes.rst +++ b/content/2017-03-23-selenium-grid-on-kubernetes.rst @@ -4,7 +4,7 @@ Selenium grid on Kubernetes :author: Russell Ballestrini :slug: selenium-grid-on-kubernetes :date: 2017-03-23 16:48 -:tags: Code, DevOps +:tags: Code, DevOps, Docker, Kubernetes :status: published This post continues from where we left off on diff --git a/content/2017-10-24-webwords-is-a-minimal-viable-web-app-with-docker-in-as-many-languages-as-possible.rst b/content/2017-10-24-webwords-is-a-minimal-viable-web-app-with-docker-in-as-many-languages-as-possible.rst index e3b56c7..79f086f 100644 --- a/content/2017-10-24-webwords-is-a-minimal-viable-web-app-with-docker-in-as-many-languages-as-possible.rst +++ b/content/2017-10-24-webwords-is-a-minimal-viable-web-app-with-docker-in-as-many-languages-as-possible.rst @@ -4,7 +4,7 @@ webwords: a minimal viable web app with docker in as many languages as possible :author: Russell Ballestrini :slug: webwords-is-a-minimal-viable-web-app-with-docker-in-as-many-languages-as-possible :date: 2017-10-24 12:11 -:tags: Code, DevOps +:tags: Code, DevOps, Python, Docker :status: published **The companion** `webwords git repo `_ **lives here.** diff --git a/content/2017-11-09-how-to-work-from-home-the-road-to-remote-chapter-1.rst b/content/2017-11-09-how-to-work-from-home-the-road-to-remote-chapter-1.rst index 6575738..891d196 100644 --- a/content/2017-11-09-how-to-work-from-home-the-road-to-remote-chapter-1.rst +++ b/content/2017-11-09-how-to-work-from-home-the-road-to-remote-chapter-1.rst @@ -4,7 +4,7 @@ How-to Work From Home :author: Russell Ballestrini :slug: how-to-work-from-home-the-road-to-remote-chapter-1 :date: 2017-11-09 09:51 -:tags: guide +:tags: Guide, Python :status: published "I work from home" — a phrase I have uttered hundreds of times and is often met with instant amazement, envy, or jokes about pants. My goal for this book is to teach you the hacks I have learned in my career to help you land your dream job. If you feel stuck in the job market and you don't want to relocate, this is the book for you. diff --git a/content/2018-03-16-fulfilling-childhood-dreams-solar.rst b/content/2018-03-16-fulfilling-childhood-dreams-solar.rst index 7e7f615..bb911a5 100644 --- a/content/2018-03-16-fulfilling-childhood-dreams-solar.rst +++ b/content/2018-03-16-fulfilling-childhood-dreams-solar.rst @@ -4,7 +4,7 @@ Fulfilling Childhood Dreams: Solar :author: Russell Ballestrini :slug: fulfilling-childhood-dreams-solar :date: 2018-03-16 08:03 -:tags: Solar, Project +:tags: Solar, Project, Python :status: published Ever since I was an 8 year old boy I have wanted solar. I remember reading about the environment and alternative energy sources in a monthly "socal studies" flyer my school subscribed our classroom to. I questioned, even at my young age, why the world wasn't actively switching over to solar, water, and wind! diff --git a/content/2018-06-04-quickstart-to-dkim-sign-email-with-python.rst b/content/2018-06-04-quickstart-to-dkim-sign-email-with-python.rst index 0786128..94b3b5d 100644 --- a/content/2018-06-04-quickstart-to-dkim-sign-email-with-python.rst +++ b/content/2018-06-04-quickstart-to-dkim-sign-email-with-python.rst @@ -4,7 +4,7 @@ Quickstart to DKIM Sign Email with Python :author: Russell Ballestrini :slug: quickstart-to-dkim-sign-email-with-python :date: 2018-06-04 09:03 -:tags: Code +:tags: Code, Python :status: published For a long time I have put off DKIM signing email sent from my web services because I couldn't wrap my head around all the indirection Postfix requires to make it work. diff --git a/content/2018-06-15-pyramid-sqlalchemy-bootstrap-console-script-with-transaction-manager.rst b/content/2018-06-15-pyramid-sqlalchemy-bootstrap-console-script-with-transaction-manager.rst index 9b0b337..5bffcf5 100644 --- a/content/2018-06-15-pyramid-sqlalchemy-bootstrap-console-script-with-transaction-manager.rst +++ b/content/2018-06-15-pyramid-sqlalchemy-bootstrap-console-script-with-transaction-manager.rst @@ -4,7 +4,7 @@ Pyramid SQLAlchemy bootstrap console script with transaction.manager :author: Russell Ballestrini :slug: pyramid-sqlalchemy-bootstrap-console-script-with-transaction-manager :date: 2018-06-15 10:54 -:tags: Code +:tags: Code, Python :status: published So I've struggled for a while with the best way to properly setup a console script for my SQLAlchemy Pyramid apps. diff --git a/content/2018-07-18-running-dynamodb-local-service-container-on-circleci-2.rst b/content/2018-07-18-running-dynamodb-local-service-container-on-circleci-2.rst index 4ddfc92..4a532bf 100644 --- a/content/2018-07-18-running-dynamodb-local-service-container-on-circleci-2.rst +++ b/content/2018-07-18-running-dynamodb-local-service-container-on-circleci-2.rst @@ -4,7 +4,7 @@ Running DynamoDB Local service container on CircleCI 2.0 :author: Russell Ballestrini :slug: running-dynamodb-local-service-container-on-circleci-2 :date: 2018-07-18 11:56 -:tags: Code, DevOps +:tags: Code, DevOps, AWS, Docker :status: published **tl;dr** use a custom entrypoint in your CircleCI 2.0 config to limit Java memory to 1G. diff --git a/content/2018-08-03-all-local-heros-need-a-gig-side-kick.rst b/content/2018-08-03-all-local-heros-need-a-gig-side-kick.rst index 2caefe6..4c174e8 100644 --- a/content/2018-08-03-all-local-heros-need-a-gig-side-kick.rst +++ b/content/2018-08-03-all-local-heros-need-a-gig-side-kick.rst @@ -4,7 +4,7 @@ All Local Heros need a Gig Side Kick :author: Russell Ballestrini :slug: all-local-heros-need-a-gig-side-kick :date: 2018-08-03 11:20 -:tags: bootstrapping +:tags: Project :status: published Five months ago during my preparation and ramp up to gardening season, I started thinking about what it would be like to have a partner, a side kick, a secretary to keep me honest and on task. diff --git a/content/2018-12-25-yuletide-trains-and-homegrown-video-games.rst b/content/2018-12-25-yuletide-trains-and-homegrown-video-games.rst index 0694922..db5d910 100644 --- a/content/2018-12-25-yuletide-trains-and-homegrown-video-games.rst +++ b/content/2018-12-25-yuletide-trains-and-homegrown-video-games.rst @@ -4,7 +4,7 @@ Yuletide Trains and Homegrown Video Games :author: Russell Ballestrini :slug: yuletide-trains-and-homegrown-video-games :date: 2018-12-25 17:15 -:tags: Code, Games +:tags: Code, Games, Python :status: published .. image:: /uploads/2018/pixel-art-gift.png diff --git a/content/2019-01-19-aws-nvme-to-block-mapping.rst b/content/2019-01-19-aws-nvme-to-block-mapping.rst index 19c6d3b..49c9cb4 100644 --- a/content/2019-01-19-aws-nvme-to-block-mapping.rst +++ b/content/2019-01-19-aws-nvme-to-block-mapping.rst @@ -4,7 +4,7 @@ AWS nvme to block mapping :author: Russell Ballestrini :slug: aws-nvme-to-block-mapping :date: 2019-01-19 14:50 -:tags: Code, DevOps +:tags: Code, DevOps, Python, AWS :status: published Recently at work I transitioned our fleet from Ubuntu 14.04 LTS to Ubuntu 18.04 LTS. During the process I noticed an issue with our newer generation AWS EC2 "nitro" based instance types (specifically ``c5.2xlarge``). diff --git a/content/2019-02-05-hybrid-hot-water-heater-saves-69-percent-on-energy-consumption.rst b/content/2019-02-05-hybrid-hot-water-heater-saves-69-percent-on-energy-consumption.rst index 797a625..7f384f3 100644 --- a/content/2019-02-05-hybrid-hot-water-heater-saves-69-percent-on-energy-consumption.rst +++ b/content/2019-02-05-hybrid-hot-water-heater-saves-69-percent-on-energy-consumption.rst @@ -4,7 +4,7 @@ Hybrid Hot Water Heater Saves 69 Percent On Energy Consumption :author: Russell Ballestrini :slug: hybrid-hot-water-heater-saves-69-percent-on-energy-consumption :date: 2019-02-05 09:28 -:tags: solar, project +:tags: Solar, Project :status: published *Disclosure: This post contains affiliate links.* See `full disclosure page here `_. diff --git a/content/2019-07-12-pre-signed-get-and-post-for-digital-ocean-spaces.rst b/content/2019-07-12-pre-signed-get-and-post-for-digital-ocean-spaces.rst index 74e90b0..84d0e62 100644 --- a/content/2019-07-12-pre-signed-get-and-post-for-digital-ocean-spaces.rst +++ b/content/2019-07-12-pre-signed-get-and-post-for-digital-ocean-spaces.rst @@ -4,7 +4,7 @@ Pre-signed GET and POST for Digital Ocean Spaces :author: Russell Ballestrini :slug: pre-signed-get-and-post-for-digital-ocean-spaces :date: 2019-07-12 16:01 -:tags: Code, DevOps +:tags: Code, DevOps, Python, AWS :status: published A pre-signed request grants a semi-trusted user temporary access to a private resource. diff --git a/content/2019-09-25-installing-unity-on-linux.rst b/content/2019-09-25-installing-unity-on-linux.rst index bfabd54..b384953 100644 --- a/content/2019-09-25-installing-unity-on-linux.rst +++ b/content/2019-09-25-installing-unity-on-linux.rst @@ -4,7 +4,7 @@ Installing Unity on Linux :author: Russell Ballestrini :slug: installing-unity-on-linux :date: 2019-09-25 18:55 -:tags: Code, Games, gumyum +:tags: Code, Games, Project :status: published Russell, why are you installing Unity? I thought you were an open source developer and `homegrown video game engine builder `_?! diff --git a/content/2019-11-08-unity-collab-not-working-on-fedora-because-of-invalid-ca-certificate-path.rst b/content/2019-11-08-unity-collab-not-working-on-fedora-because-of-invalid-ca-certificate-path.rst index 48ca44d..842e289 100644 --- a/content/2019-11-08-unity-collab-not-working-on-fedora-because-of-invalid-ca-certificate-path.rst +++ b/content/2019-11-08-unity-collab-not-working-on-fedora-because-of-invalid-ca-certificate-path.rst @@ -4,7 +4,7 @@ Unity Collab not working on Fedora because of an invalid CA certificate path :author: Russell Ballestrini :slug: unity-collab-not-working-on-fedora-because-of-invalid-ca-certificate-path :date: 2019-11-08 12:19 -:tags: Code, Games, gumyum +:tags: Code, Games, Project :status: published This issue blocked me for about two days and prevented me from collaborating with another engineer at `gumyum co-operative video game studio `_. diff --git a/content/2019-12-15-ideas-for-unlimited-home-computer-storage-capacity.rst b/content/2019-12-15-ideas-for-unlimited-home-computer-storage-capacity.rst index d4a4ad9..aef6149 100644 --- a/content/2019-12-15-ideas-for-unlimited-home-computer-storage-capacity.rst +++ b/content/2019-12-15-ideas-for-unlimited-home-computer-storage-capacity.rst @@ -4,7 +4,7 @@ Dreaming of unlimited home computer storage capacity :author: Russell Ballestrini :slug: dreaming-of-unlimited-home-computer-storage-capacity :date: 2019-12-15 09:52 -:tags: Idea +:tags: Opinion, DevOps :status: published Unlimited computer storage capacity is a common science fiction trope and fun thought experiment. diff --git a/content/2020-09-15-weechat-on-boot-in-a-tmux-session.rst b/content/2020-09-15-weechat-on-boot-in-a-tmux-session.rst index de2b80b..efcfadd 100644 --- a/content/2020-09-15-weechat-on-boot-in-a-tmux-session.rst +++ b/content/2020-09-15-weechat-on-boot-in-a-tmux-session.rst @@ -4,7 +4,7 @@ WeeChat on-boot in a tmux session :author: Russell Ballestrini :slug: weechat-on-boot-in-a-tmux-session :date: 2020-09-15 13:32 -:tags: automation +:tags: Automation, Salt :status: published Chronicles of a washed up systems administrator. diff --git a/content/2020-10-25-i-tried-to-install-gitlab-on-truenas-and-failed.rst b/content/2020-10-25-i-tried-to-install-gitlab-on-truenas-and-failed.rst index a96aadc..eb4bbec 100644 --- a/content/2020-10-25-i-tried-to-install-gitlab-on-truenas-and-failed.rst +++ b/content/2020-10-25-i-tried-to-install-gitlab-on-truenas-and-failed.rst @@ -4,7 +4,7 @@ I tried to install GitLab on TrueNAS and failed :author: Russell Ballestrini :slug: i-tried-to-install-gitlab-on-truenas-and-failed :date: 2020-10-25 14:28 -:tags: Code, DevOps +:tags: Code, DevOps, Docker :status: published Ok, so a month ago I changed employment and the new company uses GitLab exclusively for centralized code version control system. diff --git a/content/2021-05-12-copying-files-between-cloud-object-stores-like-s3-gcp-and-spaces-using-boto3.rst b/content/2021-05-12-copying-files-between-cloud-object-stores-like-s3-gcp-and-spaces-using-boto3.rst index cd1f329..65b6a59 100644 --- a/content/2021-05-12-copying-files-between-cloud-object-stores-like-s3-gcp-and-spaces-using-boto3.rst +++ b/content/2021-05-12-copying-files-between-cloud-object-stores-like-s3-gcp-and-spaces-using-boto3.rst @@ -4,7 +4,7 @@ Copying files between cloud object stores like S3 GCP and Spaces using Boto3 :author: Russell Ballestrini :slug: copying-files-between-cloud-object-stores-like-s3-gcp-and-spaces-using-boto3 :date: 2021-05-12 18:50 -:tags: Code, DevOps +:tags: Code, DevOps, Python, AWS :status: published tl;dr if you just want something like ``aws s3 cp`` cli, try ``gsutil rsync``. diff --git a/content/2021-12-03-gnunet-gns-nameserver-operator-notes-quickstart-cheatsheet.rst b/content/2021-12-03-gnunet-gns-nameserver-operator-notes-quickstart-cheatsheet.rst index b0198d5..02065f1 100644 --- a/content/2021-12-03-gnunet-gns-nameserver-operator-notes-quickstart-cheatsheet.rst +++ b/content/2021-12-03-gnunet-gns-nameserver-operator-notes-quickstart-cheatsheet.rst @@ -4,7 +4,7 @@ GNUnet GNS Nameserver Operator Notes, Quickstart, & Cheatsheet :author: Russell Ballestrini :slug: gnunet-gns-nameserver-operator-notes-quickstart-cheatsheet :date: 2021-12-03 18:21 -:tags: Code, DevOps +:tags: Code, DevOps, Docker :status: published We GROW with Truth, Freedom, Love. diff --git a/content/2021-12-23-russell-open-sources-remarkbox-and-make-post-sell-into-public-domain.rst b/content/2021-12-23-russell-open-sources-remarkbox-and-make-post-sell-into-public-domain.rst index 0b251f5..0373a5f 100644 --- a/content/2021-12-23-russell-open-sources-remarkbox-and-make-post-sell-into-public-domain.rst +++ b/content/2021-12-23-russell-open-sources-remarkbox-and-make-post-sell-into-public-domain.rst @@ -4,7 +4,7 @@ Russell Open Sources Remarkbox & MakePostSell into Public Domain! :author: Russell Ballestrini :slug: russell-open-sources-remarkbox-and-make-post-sell-into-public-domain :date: 2021-12-23 12:08 -:tags: unturf. +:tags: Project, Python, AWS :status: published .. image:: /uploads/2018/pixel-art-yuletide-tree.gif diff --git a/content/2022-01-05-vertically-scaling-gitlab-server-for-as-cheap-as-possible.rst b/content/2022-01-05-vertically-scaling-gitlab-server-for-as-cheap-as-possible.rst index 1eb6da2..6c20669 100644 --- a/content/2022-01-05-vertically-scaling-gitlab-server-for-as-cheap-as-possible.rst +++ b/content/2022-01-05-vertically-scaling-gitlab-server-for-as-cheap-as-possible.rst @@ -4,7 +4,7 @@ Vertically Scaling GitLab Server For As Cheap As Possible :author: Russell Ballestrini :slug: vertically-scaling-gitlab-server-for-as-cheap-as-possible :date: 2022-01-05 19:13 -:tags: Code, DevOps +:tags: Code, DevOps, Salt, Docker :status: published Today's essay acts as a power-up love story for the underdog. diff --git a/content/2022-05-09-uncle-drops-off-server-with-note-asking-u-to-cl0ne-ubuntu22-kvm.rst b/content/2022-05-09-uncle-drops-off-server-with-note-asking-u-to-cl0ne-ubuntu22-kvm.rst index 5259dee..3712f52 100644 --- a/content/2022-05-09-uncle-drops-off-server-with-note-asking-u-to-cl0ne-ubuntu22-kvm.rst +++ b/content/2022-05-09-uncle-drops-off-server-with-note-asking-u-to-cl0ne-ubuntu22-kvm.rst @@ -4,7 +4,7 @@ Uncle Drops off server with note asking u to cl0ne ubuntu22 kvm :author: Russell Ballestrini :slug: uncle-drops-off-server-with-note-asking-u-to-cl0ne-ubuntu22-kvm :date: 2022-05-09 13:14 -:tags: Code, DevOps +:tags: Code, DevOps, Salt :status: published Imagine your uncle just dropped off a TrueNAS Core server with root credentials, & a preconfigured IP Address in the subnet space of 192.168.1.1/24. diff --git a/content/2022-05-20-ubuntu-22-04-letsencrypt-docker-hints.rst b/content/2022-05-20-ubuntu-22-04-letsencrypt-docker-hints.rst index 6911b24..325d4dc 100644 --- a/content/2022-05-20-ubuntu-22-04-letsencrypt-docker-hints.rst +++ b/content/2022-05-20-ubuntu-22-04-letsencrypt-docker-hints.rst @@ -4,7 +4,7 @@ Ubuntu 22.04 Letsencrypt Docker Hints :author: Russell Ballestrini :slug: ubuntu-22-04-letsencrypt-docker-hints :date: 2022-05-20 20:10 -:tags: Code, DevOps +:tags: Code, DevOps, Salt, Docker :status: published letsencrypt certbot is now installable via snap (the deb apt repository is no longer maintained). diff --git a/content/2024-02-03-building-dry-and-park-from-source-on-fedora-linux.rst b/content/2024-02-03-building-dry-and-park-from-source-on-fedora-linux.rst index d035778..883c7b4 100644 --- a/content/2024-02-03-building-dry-and-park-from-source-on-fedora-linux.rst +++ b/content/2024-02-03-building-dry-and-park-from-source-on-fedora-linux.rst @@ -3,7 +3,7 @@ Building 'Dry' and 'Park' from Source on Fedora Linux :date: 2024-02-03 09:19 :author: Russell Ballestrini -:tags: Programming, Game Development, Fedora, Dry, Park +:tags: Programming, Game Development, DevOps :slug: building-dry-and-park-from-source-on-fedora-linux :status: published :summary: Learn how to compile the 'Dry' game engine and the 'Park' game from source on Fedora Linux with debugging enabled, and how to analyze core dumps for debugging. diff --git a/content/2024-02-05-optimizing-memory-management-for-plausible-docker-on-ubuntu.rst b/content/2024-02-05-optimizing-memory-management-for-plausible-docker-on-ubuntu.rst index d94f58f..447a4dc 100644 --- a/content/2024-02-05-optimizing-memory-management-for-plausible-docker-on-ubuntu.rst +++ b/content/2024-02-05-optimizing-memory-management-for-plausible-docker-on-ubuntu.rst @@ -4,7 +4,7 @@ Optimizing Memory Management for Plausible Docker on Ubuntu :author: Russell Ballestrini :slug: optimizing-memory-management-for-plausible-docker-on-ubuntu :date: 2024-02-05 17:40 -:tags: Docker, Ubuntu +:tags: Docker, DevOps, Salt :status: published Running Docker containers on a server with limited memory can lead to out-of-memory (OOM) issues, which can disrupt services and lead to downtime. This guide will show you how to increase swap space on an Ubuntu server to provide a buffer against OOM errors, using a real-world example from a server running multiple Docker containers. diff --git a/content/2024-02-05-understanding-pause-functionality-in-luckey-park-game.rst b/content/2024-02-05-understanding-pause-functionality-in-luckey-park-game.rst index 8cf5bec..1465365 100644 --- a/content/2024-02-05-understanding-pause-functionality-in-luckey-park-game.rst +++ b/content/2024-02-05-understanding-pause-functionality-in-luckey-park-game.rst @@ -4,7 +4,7 @@ Understanding Pause Functionality in LucKey Park Built on Dry Engine :author: Russell Ballestrini :slug: understanding-pause-functionality-in-luckey-park-game :date: 2024-02-05 08:57 -:tags: Programming, Game Development, Dry, Park +:tags: Programming, Game Development :status: published :summary: Dive deep into the pause functionality of LucKey Park built on the Dry engine, exploring how the game's status is managed and toggled end-to-end. diff --git a/content/2024-02-17-integrating-openai-with-dry-sample-chat-game.rst b/content/2024-02-17-integrating-openai-with-dry-sample-chat-game.rst index 43784ed..39b0341 100644 --- a/content/2024-02-17-integrating-openai-with-dry-sample-chat-game.rst +++ b/content/2024-02-17-integrating-openai-with-dry-sample-chat-game.rst @@ -4,10 +4,10 @@ Integrating OpenAI with Dry's Sample Chat Game :author: Russell Ballestrini :slug: integrating-openai-with-dry-sample-chat-game :date: 2024-02-17 14:11 -:tags: C++, OpenAI, Dry, Chatbot +:tags: Code, Machine Learning, Game Development :status: published -This tutorial demonstrates enhancing `Dry's Sample Chat Game `_ by integrating OpenAI's language models, enabling the game to provide intelligent, AI-driven responses to user queries. Dry, the successor to Urho3D, offers a comprehensive framework for developing 2D and 3D games. Leveraging LLMs within the Dry engine opens up new possibilities. +This tutorial demonstrates enhancing `Dry's Sample Chat Game `_ by integrating OpenAI's language models, enabling the game to provide intelligent, Machine Learning-driven responses to user queries. Dry, the successor to Urho3D, offers a comprehensive framework for developing 2D and 3D games. Leveraging LLMs within the Dry engine opens up new possibilities. Background ---------- @@ -212,7 +212,7 @@ That means you need to run ``./bin/16_Chat`` at least twice in two different win What's Next? ------------ -You've now integrated OpenAI into Dry's Sample Chat game, enhancing it with AI-driven conversational capabilities. Explore further by customizing triggers, integrating other models using the same OpenAI client, or expanding the game's features. +You've now integrated OpenAI into Dry's Sample Chat game, enhancing it with Machine Learning-driven conversational capabilities. Explore further by customizing triggers, integrating other models using the same OpenAI client, or expanding the game's features. I think personally I will try to get the client communicating with vllm likely running openchat. diff --git a/content/2024-05-28-comparing-nodejs-and-python-performance-with-openai-client.rst b/content/2024-05-28-comparing-nodejs-and-python-performance-with-openai-client.rst index 5190e18..4b45b8f 100644 --- a/content/2024-05-28-comparing-nodejs-and-python-performance-with-openai-client.rst +++ b/content/2024-05-28-comparing-nodejs-and-python-performance-with-openai-client.rst @@ -4,7 +4,7 @@ Comparing Node.js and Python Performance with the Official OpenAI Client :author: Russell Ballestrini :slug: comparing-nodejs-and-python-performance-with-openai-client :date: 2024-05-28 08:49 -:tags: Node.js, Python, OpenAI, Performance +:tags: Code, Python, Machine Learning, Performance :status: published @@ -13,7 +13,7 @@ As a seasoned Python developer, I've always appreciated the versatility and powe Background ---------- -At `CourseMojo, we are scaling an AI assistant teacher for public schools `_ which provides real-time, intelligent responses to students' answers to open ended questions. During our load testing in my sandbox environment, we identified that heavy CPU utilization was primarily due to calls to the OpenAI API. This prompted me to explore different programming languages to see if the problem existed elsewhere. +At `CourseMojo, we are scaling an Machine Learning assistant teacher for public schools `_ which provides real-time, intelligent responses to students' answers to open ended questions. During our load testing in my sandbox environment, we identified that heavy CPU utilization was primarily due to calls to the OpenAI API. This prompted me to explore different programming languages to see if the problem existed elsewhere. The Experiment -------------- diff --git a/content/2024-08-30-comparing-elixir-and-phoenix-performance-with-openai-client.rst b/content/2024-08-30-comparing-elixir-and-phoenix-performance-with-openai-client.rst index 58d13e0..305773d 100644 --- a/content/2024-08-30-comparing-elixir-and-phoenix-performance-with-openai-client.rst +++ b/content/2024-08-30-comparing-elixir-and-phoenix-performance-with-openai-client.rst @@ -4,7 +4,7 @@ Comparing Elixir and Phoenix Performance with a Community-Driven OpenAI Client :author: Russell Ballestrini :slug: comparing-elixir-and-phoenix-performance-with-openai-client :date: 2024-08-30 17:26 -:tags: Code, elixir +:tags: Code :status: published As a developer exploring the capabilities of Elixir and Phoenix, I recently conducted a performance experiment using a community-driven OpenAI client. The goal was to evaluate how well Elixir, with its powerful concurrency model, handles high-volume API requests. The results were impressive, demonstrating Elixir's efficiency and robustness in managing concurrent tasks across multiple CPU cores. diff --git a/content/2024-09-14-exploring-battleship-board-generation.rst b/content/2024-09-14-exploring-battleship-board-generation.rst index 1bcdca3..4896c35 100644 --- a/content/2024-09-14-exploring-battleship-board-generation.rst +++ b/content/2024-09-14-exploring-battleship-board-generation.rst @@ -4,7 +4,7 @@ Efficient Battleship Board Generation and Data Management with Python :author: Russell Ballestrini :slug: exploring-battleship-board-generation :date: 2024-09-14 16:49 -:tags: Code, Python, Parallel Processing, AI +:tags: Code, Python, Machine Learning :status: published Important: In my research so far, nobody seems to have a definite answer for how many unique non-overlapping battleship configurations there truely are... @@ -176,7 +176,7 @@ The complete dataset for 30,000,000,000 game boards, stored as a JSONL file, is Artifact Description --------------------- -The JSONL file containing the complete dataset is a valuable artifact for researchers and developers interested in large-scale data analysis or machine learning applications. With sufficient storage space, this dataset can be used to explore various strategies for ship placement, analyze patterns, or train models for game AI development. The ability to sample from the dataset without full extraction further enhances its utility, allowing users to work with manageable subsets of data. +The JSONL file containing the complete dataset is a valuable artifact for researchers and developers interested in large-scale data analysis or machine learning applications. With sufficient storage space, this dataset can be used to explore various strategies for ship placement, analyze patterns, or train models for game Machine Learning development. The ability to sample from the dataset without full extraction further enhances its utility, allowing users to work with manageable subsets of data. Results ------- @@ -208,13 +208,13 @@ This experiment demonstrated the power of parallel processing in Python for gene If you're interested in exploring similar problems or optimizing computational tasks, consider using Python's multiprocessing capabilities to maximize performance and efficiency. -This post was inspired by a conversation with an AI assistant, highlighting the potential of AI in guiding and enhancing problem-solving processes. +This post was inspired by a conversation with an Machine Learning assistant, highlighting the potential of Machine Learning in guiding and enhancing problem-solving processes. Full conversation here: * `efficient-battleship-board-generation-data-management-python.json `_ -See `flask-socketio-llm-completions `_ for more AI tooling! +See `flask-socketio-llm-completions `_ for more Machine Learning tooling! .. contents:: diff --git a/content/2024-10-21-free-hermes-ai-unturf-com-uncloseai.rst b/content/2024-10-21-free-hermes-ai-unturf-com-uncloseai.rst index 94d31a3..373bc62 100644 --- a/content/2024-10-21-free-hermes-ai-unturf-com-uncloseai.rst +++ b/content/2024-10-21-free-hermes-ai-unturf-com-uncloseai.rst @@ -1,19 +1,19 @@ -Free Hermes AI ai.unturf.com & uncloseai.js +Free Hermes Machine Learning ai.unturf.com & uncloseai.js ################################################################ :author: Russell Ballestrini :slug: free-hermes-ai-unturf-com-uncloseai :date: 2024-10-21 20:52 -:tags: Code, DevOps, AI +:tags: Code, DevOps, Machine Learning, Python :status: published -Hey all I created `ai.unturf.com `_ and `uncloseai.js `_ over the past two weeks & this post introduces them to make AI more accessible to everyone. +Hey all I created `ai.unturf.com `_ and `uncloseai.js `_ over the past two weeks & this post introduces them to make Machine Learning more accessible to everyone. -The AI service is powered by the model Nous Research's `adamo1139/Hermes-3-Llama-3.1-8B-FP8-Dynamic `_. Our mission is to provide accessible AI tools for everyone, embodying the principles of both free as in beer & free as in freedom. You can interact with our model without any cost, and we encourage to contributions and building upon the open-source code & models. +The Machine Learning service is powered by the model Nous Research's `adamo1139/Hermes-3-Llama-3.1-8B-FP8-Dynamic `_. Our mission is to provide accessible Machine Learning tools for everyone, embodying the principles of both free as in beer & free as in freedom. You can interact with our model without any cost, and we encourage to contributions and building upon the open-source code & models. -One of the key features of ai.unturf.com is its compatibility with various programming languages. We provide examples in Python and Node.js, allowing developers to easily integrate our AI service into their applications. Moreover, we offer a web-client only solution using uncloseai.js, which enables static sites or CDNs hosting HTML content to interact with AI services directly from the browser without the need for an intermediary server/client. This approach eliminates the requirement for a valid API key, making it an efficient and accessible option for thin clients often on battery. +One of the key features of ai.unturf.com is its compatibility with various programming languages. We provide examples in Python and Node.js, allowing developers to easily integrate our Machine Learning service into their applications. Moreover, we offer a web-client only solution using uncloseai.js, which enables static sites or CDNs hosting HTML content to interact with Machine Learning services directly from the browser without the need for an intermediary server/client. This approach eliminates the requirement for a valid API key, making it an efficient and accessible option for thin clients often on battery. -To demonstrate the ease of use of our AI service, here is a cURL example: +To demonstrate the ease of use of our Machine Learning service, here is a cURL example: .. code-block:: bash @@ -26,9 +26,9 @@ To demonstrate the ease of use of our AI service, here is a cURL example: Also the coolest part is we found that because we don't require a valid API key, a tiny bit of javascript goes a long way to create a web client-only solution which is great for static sites and CDNs. -In this demo architecture, the browser serves as the client, directly interacting with the AI service without the need for an intermediary server/client. +In this demo architecture, the browser serves as the client, directly interacting with the Machine Learning service without the need for an intermediary server/client. -By using uncloseai.js, developers can create thin clients on battery-powered devices, making AI more accessible and efficient. +By using uncloseai.js, developers can create thin clients on battery-powered devices, making Machine Learning more accessible and efficient. Here is the HTML we needed to add to _this_ site, to make it work: @@ -36,9 +36,9 @@ Here is the HTML we needed to add to _this_ site, to make it work: -That's it! This single line provides a floating AI assistant button with page-aware contextual help, text-to-speech functionality, translation capabilities, conversation history storage, and compatibility with any CSS framework. +That's it! This single line provides a floating Machine Learning assistant button with page-aware contextual help, text-to-speech functionality, translation capabilities, conversation history storage, and compatibility with any CSS framework. -I invite you to explore the service for yourself. Consider using it as is or building your own app/client. Let's make AI more accessible and create a world where everyone can benefit from its power. +I invite you to explore the service for yourself. Consider using it as is or building your own app/client. Let's make Machine Learning more accessible and create a world where everyone can benefit from its power. Before you go, if you want to try it out live on this static site, `click here <#uncloseai-example>`_ and and ask a question about the post. it knows how to code. : ) diff --git a/content/2025-02-19-free-llm-endpoints-dynamic-distributed-model-inference-client-uncloseai.rst b/content/2025-02-19-free-llm-endpoints-dynamic-distributed-model-inference-client-uncloseai.rst index b8a9c2d..18cd856 100644 --- a/content/2025-02-19-free-llm-endpoints-dynamic-distributed-model-inference-client-uncloseai.rst +++ b/content/2025-02-19-free-llm-endpoints-dynamic-distributed-model-inference-client-uncloseai.rst @@ -4,17 +4,17 @@ Free LLM Endpoints & Dynamic Distributed Model Inference Client with UncloseAI.j :author: Russell Ballestrini :slug: free-llm-endpoints-dynamic-distributed-model-inference-client-uncloseai :date: 2025-02-19 21:28 -:tags: Code, DevOps, AI +:tags: Code, DevOps, Machine Learning, Python :status: published .. note:: - This post is a follow-up to our `original post published on 2024-10-21 `_. Over the last few months, we've partnered with **TDC** - `the disruptive collective `_ to make cutting-edge AI models accessible from any device, via our always available model servers to our new bot's for discord, matrix, & web! + This post is a follow-up to our `original post published on 2024-10-21 `_. Over the last few months, we've partnered with **TDC** - `the disruptive collective `_ to make cutting-edge Machine Learning models accessible from any device, via our always available model servers to our new bot's for discord, matrix, & web! Overview -------- -We’ve been pushing the boundaries of accessible AI. We built `ai.unturf.com `_ and `uncloseai.js `_ to provide you with free, state-of-the-art AI tools that are as *free as in beer* and as *free as in freedom*. A huge shout out to **TDC** for powering all the development work on the various bots on the telegram, discord, & matrix platforms! +We’ve been pushing the boundaries of accessible Machine Learning. We built `ai.unturf.com `_ and `uncloseai.js `_ to provide you with free, state-of-the-art Machine Learning tools that are as *free as in beer* and as *free as in freedom*. A huge shout out to **TDC** for powering all the development work on the various bots on the telegram, discord, & matrix platforms! Dynamic Model & Endpoint Discovery ------------------------------------ @@ -58,7 +58,7 @@ Below is a quick cURL example for interacting with our new `adamo1139/Hermes-3-L Integration Made Easy --------------------- -Our service supports any programming language. With client libraries available for Python and Node.js—and a web-client-only solution via `uncloseai.js`—integrating AI into your application or website has never been easier. Try to use the default openai client oin your native language. +Our service supports any programming language. With client libraries available for Python and Node.js—and a web-client-only solution via `uncloseai.js`—integrating Machine Learning into your application or website has never been easier. Try to use the default openai client oin your native language. The browser-based integration is ideal for static sites or CDNs, eliminating the need for a dedicated backend server or API key. @@ -68,7 +68,7 @@ Add the following HTML snippet to your site to get started: -That's it! This single line provides a floating AI assistant button with page-aware contextual help, text-to-speech functionality, translation capabilities, conversation history storage, and compatibility with any CSS framework. +That's it! This single line provides a floating Machine Learning assistant button with page-aware contextual help, text-to-speech functionality, translation capabilities, conversation history storage, and compatibility with any CSS framework. **Try It Out!** @@ -76,7 +76,7 @@ That's it! This single line provides a floating AI assistant button with page-aw There is a demo connected to this static page! -Dive in and explore our service—use it as-is or build your own custom client. Let's keep democratizing AI and empower everyone to harness its power. +Dive in and explore our service—use it as-is or build your own custom client. Let's keep democratizing Machine Learning and empower everyone to harness its power. We’ve also open-sourced `Matrix & Discord Bots `_ to showcase dynamic model loading in action. diff --git a/content/2025-03-21-introducing-slop.rst b/content/2025-03-21-introducing-slop.rst index 9900086..2377371 100644 --- a/content/2025-03-21-introducing-slop.rst +++ b/content/2025-03-21-introducing-slop.rst @@ -4,32 +4,32 @@ Introducing SLOP :author: Russell Ballestrini :slug: introducing-slop :date: 2025-03-21 10:22 -:tags: Code, DevOps, Machine Learning, LLM, AI -:tags: AI, SLOP, Open Source, Community, Python +:tags: Code, DevOps, Machine Learning, Python +:tags: Machine Learning, SLOP, Open Source, Community, Python :status: published -**Introducing SLOP: A Simple Language Open Protocol for AI Interaction** +**Introducing SLOP: A Simple Language Open Protocol for Machine Learning Interaction** -This post introduces the SLOP project, a community-driven effort to standardize AI API interactions. I'm Russell (fxhp), and I'm excited to share how this project came together and how you can get involved! +This post introduces the SLOP project, a community-driven effort to standardize Machine Learning API interactions. I'm Russell (fxhp), and I'm excited to share how this project came together and how you can get involved! A Community Effort Kicked Off by Nathan --------------------------------------- -First, a huge shoutout to Nathan from `agnt.gg `_ for spearheading the SLOP project. Nathan organized the initial repository and rallied the community through his Discord server. His vision laid the groundwork for what SLOP has become today. You can find both the main repository and join the vibrant Discord community here: `https://i-love-slop.com?ref=GXSKWN `_. If you're passionate about open AI standards, this is the place to connect and contribute! +First, a huge shoutout to Nathan from `agnt.gg `_ for spearheading the SLOP project. Nathan organized the initial repository and rallied the community through his Discord server. His vision laid the groundwork for what SLOP has become today. You can find both the main repository and join the vibrant Discord community here: `https://i-love-slop.com?ref=GXSKWN `_. If you're passionate about open Machine Learning standards, this is the place to connect and contribute! What is unturf. ? ------------------ -Before diving into SLOP, let’s talk about `unturf. `_ to break wheels & fostering open collaboration. While the main page `https://www.unturf.com `_ describes a possible vision for the future, the real action happens in the community driven subdomains & community spaces. We host free AI services like `ai.unturf.com `_ and supports projects like SLOP with infrastructure & a spirit of openness. It’s a loose-knit group of innovators—folks like me and you—working to make software as a service & AI accessible to everyone. +Before diving into SLOP, let’s talk about `unturf. `_ to break wheels & fostering open collaboration. While the main page `https://www.unturf.com `_ describes a possible vision for the future, the real action happens in the community driven subdomains & community spaces. We host free Machine Learning services like `ai.unturf.com `_ and supports projects like SLOP with infrastructure & a spirit of openness. It’s a loose-knit group of innovators—folks like me and you—working to make software as a service & Machine Learning accessible to everyone. What is SLOP? ------------- -SLOP stands for **Simple Language Open Protocol**, a lightweight, RESTful pattern for interacting with AI services. Think of it as a universal handshake for AI APIs, making it easy to integrate models, tools, and resources across platforms. SLOP defines well-known core endpoints so that orgainizations can interopt using standard endpoints. +SLOP stands for **Simple Language Open Protocol**, a lightweight, RESTful pattern for interacting with Machine Learning services. Think of it as a universal handshake for Machine Learning APIs, making it easy to integrate models, tools, and resources across platforms. SLOP defines well-known core endpoints so that orgainizations can interopt using standard endpoints. Ideally a SLOP server will be created in every programming language and placed into the ``examples`` directory of the main repo. -- **/chat**: Talk to AI models. +- **/chat**: Talk to Machine Learning models. - **/tools**: Use predefined utilities (e.g., calculator, greeter). This is where you can call public or private tools or algorithm to work on public or private data and return a result. @@ -55,7 +55,7 @@ Ideally a SLOP server will be created in every programming language and placed i - **/pay**: Simulate transactions (for fun or future monetization). -It’s all about simplicity: HTTP requests with JSON payloads, no fuss, no proprietary lock-in. SLOP lets any AI service—from big providers to homebrew setups—speak the same language. The community is still refining the spec, but it’s already proving its worth. +It’s all about simplicity: HTTP requests with JSON payloads, no fuss, no proprietary lock-in. SLOP lets any Machine Learning service—from big providers to homebrew setups—speak the same language. The community is still refining the spec, but it’s already proving its worth. My First Python Implementation @@ -76,7 +76,7 @@ Here’s a quick example of chatting with it using curl: -d '{"messages": [{"role": "user", "content": "Hello, SLOP!"}], "model": "adamo1139/Hermes-3-Llama-3.1-8B-FP8-Dynamic"}' \ https://slop.unturf.com/chat -The response will come back with an AI-generated message—try it out! +The response will come back with an Machine Learning-generated message—try it out! Optional Streamlit Frontend @@ -115,7 +115,7 @@ Play with `https://streamlit.slop.unturf.com If you are a web dev or designer feel free to come up with new applications or frontends that use our standard community powered endpoints! -SLOP is about democratizing AI interaction. Whether you’re a developer, a tinkerer, or just curious, there’s a place for you here. Let’s build something simple, open, and powerful together! +SLOP is about democratizing Machine Learning interaction. Whether you’re a developer, a tinkerer, or just curious, there’s a place for you here. Let’s build something simple, open, and powerful together! What's Next? diff --git a/content/2025-07-13-building-and-modding-multimower-with-dry-engine.rst b/content/2025-07-13-building-and-modding-multimower-with-dry-engine.rst index 9617f9a..692af02 100644 --- a/content/2025-07-13-building-and-modding-multimower-with-dry-engine.rst +++ b/content/2025-07-13-building-and-modding-multimower-with-dry-engine.rst @@ -1,9 +1,9 @@ -Building and Modding MultiMower with Dry Engine +Building and Game Development MultiMower with Dry Engine ############################################### :date: 2025-07-13 10:00 :author: Russell Ballestrini -:tags: Programming, Game Development, Dry Engine, MultiMower, C++, Modding +:tags: Programming, Game Development, Code, Game Development :slug: building-and-modding-multimower-with-dry-engine :status: published :summary: Learn how to download, compile, and mod MultiMower - a multiplayer lawn mower game built with the Dry Engine. We'll explore the codebase structure. @@ -304,7 +304,7 @@ If you want to follow this tutorial exactly, check out these specific commits: cd ~/git/MultiMower git checkout 60b5dcd6597fe6c7a480505f822a70e0a1469cda -Modding Tutorials +Game Development Tutorials ----------------- Here are three comprehensive mods that transform MultiMower into a proper tank combat game with realistic movement, damage systems, and spectacular explosions. @@ -990,7 +990,7 @@ Part 3: Death and Victory Effects **Result**: When you destroy the last enemy tank, a massive and exciting victory celebration appears around your mower with 50 sparkles, 20 trails, 3 lights, and victory sound - making you feel like a true tank commander with a spectacular fireworks display! -Complete Modding Results +Complete Game Development Results ~~~~~~~~~~~~~~~~~~~~~~~~ After implementing all three parts, you'll have: @@ -1047,7 +1047,7 @@ Engine and Game Size - **Final Executable**: 15 MB (statically linked with Dry) - **Build Time**: ~30-60 seconds -Our Modding Impact +Our Game Development Impact ~~~~~~~~~~~~~~~~~~ **Code Changes Made**: @@ -1084,7 +1084,7 @@ Scale Perspective **Development Effort**: - **Engine Development**: Years of work, complex graphics/physics systems - **Game Development**: Weeks of work, focused gameplay mechanics -- **Our Modding**: Hours of work, targeted feature additions +- **Our Game Development**: Hours of work, targeted feature additions **Build Performance**: - **Dry Engine**: Takes 5-8 minutes to compile from scratch diff --git a/content/2025-07-28-analyzing-godot-engine-codebase-millions-lines-of-code.rst b/content/2025-07-28-analyzing-godot-engine-codebase-millions-lines-of-code.rst index a63ef53..d35b4e2 100644 --- a/content/2025-07-28-analyzing-godot-engine-codebase-millions-lines-of-code.rst +++ b/content/2025-07-28-analyzing-godot-engine-codebase-millions-lines-of-code.rst @@ -4,7 +4,7 @@ Analyzing the Godot Engine Codebase: Millions of Lines of Code :author: Russell Ballestrini :slug: analyzing-godot-engine-codebase-millions-lines-of-code :date: 2025-07-28 09:00 -:tags: Code, Research, Open Source, Game Development +:tags: Code, Opinion, Project, Game Development, Python :status: published Overview diff --git a/content/2025-10-09-webwords-reaches-42-languages-the-ultimate-programming-kata.rst b/content/2025-10-09-webwords-reaches-42-languages-the-ultimate-programming-kata.rst index b95e7d6..b9dd014 100644 --- a/content/2025-10-09-webwords-reaches-42-languages-the-ultimate-programming-kata.rst +++ b/content/2025-10-09-webwords-reaches-42-languages-the-ultimate-programming-kata.rst @@ -4,7 +4,7 @@ webwords reaches 42 languages: the ultimate programming kata :author: Russell Ballestrini :slug: webwords-reaches-42-languages-the-ultimate-programming-kata :date: 2025-10-09 12:00 -:tags: Code, DevOps, Programming +:tags: Code, DevOps, Programming, Python, Docker :status: published **The companion** `webwords git repo `_ **lives here.** diff --git a/content/2025-10-10-unpotato-webwords-btrfs-cleanup-docker-volumes.rst b/content/2025-10-10-unpotato-webwords-btrfs-cleanup-docker-volumes.rst index 2d7ce09..c3b109a 100644 --- a/content/2025-10-10-unpotato-webwords-btrfs-cleanup-docker-volumes.rst +++ b/content/2025-10-10-unpotato-webwords-btrfs-cleanup-docker-volumes.rst @@ -4,7 +4,7 @@ unpotato webwords: cleaning up btrfs docker volumes after build-all :author: Russell Ballestrini :slug: unpotato-webwords-btrfs-cleanup-docker-volumes :date: 2025-10-10 14:00 -:tags: Code, DevOps, Docker, BTRFS +:tags: Code, DevOps, Docker :status: published So you ran ``make build-all`` on `webwords `_ and now your root filesystem is 100% full. BTRFS doesn't clean up Docker volumes the way you'd expect. Here's how to unpotato your system. diff --git a/content/2025-10-10-webwords-code-golf-minimal-implementation.rst b/content/2025-10-10-webwords-code-golf-minimal-implementation.rst index 1f3dc7d..c290f88 100644 --- a/content/2025-10-10-webwords-code-golf-minimal-implementation.rst +++ b/content/2025-10-10-webwords-code-golf-minimal-implementation.rst @@ -4,7 +4,7 @@ webwords code golf: minimal HTTP servers in multiple languages :author: Russell Ballestrini :slug: webwords-code-golf-minimal-implementation :date: 2025-10-10 16:00 -:tags: Code, Python, C, Golf +:tags: Code, Python, Docker :status: published The full webwords implementations have proper error handling, logging, and structure. But what's the absolute minimum code needed to implement the core functionality? diff --git a/content/2025-10-11-pelican-theme-upgrade-right-sidebar-toc.rst b/content/2025-10-11-pelican-theme-upgrade-right-sidebar-toc.rst index 0fa60eb..e4802ec 100644 --- a/content/2025-10-11-pelican-theme-upgrade-right-sidebar-toc.rst +++ b/content/2025-10-11-pelican-theme-upgrade-right-sidebar-toc.rst @@ -4,7 +4,7 @@ pelican theme upgrade: right sidebar table of contents :author: Russell Ballestrini :slug: pelican-theme-upgrade-right-sidebar-toc :date: 2025-10-11 12:00 -:tags: Code, Web, Design +:tags: Code, Python :status: published **The companion** `pelican-svbhack theme repo `_ **lives here.** diff --git a/content/2025-10-16-growing-a-book-in-5-days-ml-and-devops.rst b/content/2025-10-16-growing-a-book-in-5-days-ml-and-devops.rst index d1cae0a..0a4a63a 100644 --- a/content/2025-10-16-growing-a-book-in-5-days-ml-and-devops.rst +++ b/content/2025-10-16-growing-a-book-in-5-days-ml-and-devops.rst @@ -4,7 +4,7 @@ Growing a 454-page ML reference manual in 5 days: permacomputer harvest :author: Russell Ballestrini :slug: growing-a-book-in-5-days-ml-and-devops :date: 2025-10-16 12:00 -:tags: Machine Learning, DevOps, Automation, Python, unturf. +:tags: Machine Learning, DevOps, Automation, Python, Project, Docker :status: published We just harvested `uncloseai: Machine Learning Inference Client Reference Manual `_. 454 pages. 58 implementations across languages. 5 days from seed to harvest (October 11-16, 2025). @@ -151,7 +151,7 @@ Not one person writing code. A collective cultivating an ecosystem. -Disrupting wheels. Fostering open collaboration. Making AI accessible. +Disrupting wheels. Fostering open collaboration. Making Machine Learning accessible. The book grew in 5 days because we planted the right seeds in the right soil with the right automation & cultivation pipeline. diff --git a/content/2025-10-18-who-owns-yaml.rst b/content/2025-10-18-who-owns-yaml.rst index c4a422b..53014ca 100644 --- a/content/2025-10-18-who-owns-yaml.rst +++ b/content/2025-10-18-who-owns-yaml.rst @@ -4,7 +4,7 @@ who owns yaml? :author: Russell Ballestrini :slug: who-owns-yaml :date: 2025-10-18 12:00 -:tags: Code, DevOps, Programming +:tags: Code, DevOps, Programming, Python, AWS, Docker, Kubernetes :status: published .. image:: /uploads/2025/10/yaml-logo.svg diff --git a/content/2025-12-06-free-agent-looking-for-work.rst b/content/2025-12-06-free-agent-looking-for-work.rst index 29bcf51..f65fa07 100644 --- a/content/2025-12-06-free-agent-looking-for-work.rst +++ b/content/2025-12-06-free-agent-looking-for-work.rst @@ -4,7 +4,7 @@ Free Agent Looking for Work & JSONResume :author: Russell Ballestrini :slug: free-agent-looking-for-work-jsonresume :date: 2025-12-06 -:tags: Career +:tags: Opinion :status: published Free agent looking for work. diff --git a/content/2026-01-19-un-inception-performance-variance-chaos-engineering.rst b/content/2026-01-19-un-inception-performance-variance-chaos-engineering.rst index 306be35..a04ff19 100644 --- a/content/2026-01-19-un-inception-performance-variance-chaos-engineering.rst +++ b/content/2026-01-19-un-inception-performance-variance-chaos-engineering.rst @@ -4,7 +4,7 @@ un inception: performance variance & chaos engineering in ci/cd :author: Russell Ballestrini :slug: un-inception-performance-variance-chaos-engineering :date: 2026-01-19 12:00 -:tags: DevOps, CI/CD, Performance, Chaos Engineering, Testing +:tags: DevOps, Performance, Python, AWS, Docker, Kubernetes :status: published **The full** `AGGREGATED-PERFORMANCE.md report `_ **lives in the un-inception repo.** diff --git a/content/uploads/cover-letters/2026-01-25-cake-wallet.txt b/content/uploads/cover-letters/2026-01-25-cake-wallet.txt new file mode 100644 index 0000000..8b56146 --- /dev/null +++ b/content/uploads/cover-letters/2026-01-25-cake-wallet.txt @@ -0,0 +1,34 @@ +Status: Applied 2026-01-25 + +Subject: Application - Full Stack / Infrastructure Engineer + +Hi Cake Wallet Team, + +I'm a full stack engineer with 15+ years of experience scaling systems, building security-focused infrastructure, and shipping open-source software. I've implemented hot wallet payments for Monero, Dogecoin, Litecoin, and Bitcoin with auto-quoting based on cart totals. Your mission of making self-custody achievable and financial privacy approachable resonates deeply with my own work. + +My crypto payment integrations in production: + +- https://blog.makepostsell.com/c/91d9119d-9c8e-11f0-9d98-02dfe05770ee/how-to-accept-monero-payments - Technical writeup of my Monero integration with automated cash register, risk thresholds, and cold wallet sweeps +- https://unsandbox.com/pricing - Code execution API accepting XMR, DOGE, BTC, LTC with refund address management +- https://git.unturf.com/engineering/make-post-sell/make_post_sell - Open-sourced to public domain + +What I bring: + +- Direct crypto payment integration experience, including Monero +- Security engineering background (Mandiant, Cofense) with SOC2/FedRAMP experience +- SRE expertise scaling systems for millions of users (Remind during COVID lockdowns) +- DevOps depth: CI/CD pipelines, containerization, infrastructure-as-code +- Open-source contributor mindset with multiple public projects +- 12+ years of successful remote work + +I'm comfortable learning Flutter & Dart to contribute to the mobile codebase. My strength is breadth. I can own backend services, harden infrastructure, implement payment integrations, and improve developer workflows. With a small team, that versatility matters. + +I believe financial privacy is a fundamental right, not a luxury. I'd love to help Cake Wallet bring that freedom to more people. + +Portfolio: https://russell.ballestrini.net +LinkedIn: https://linkedin.com/in/russellballestrini + +Looking forward to connecting. + +Russell Ballestrini +russell@unturf.com diff --git a/litellm.sh b/litellm.sh new file mode 100644 index 0000000..c34de58 --- /dev/null +++ b/litellm.sh @@ -0,0 +1,3 @@ +source venv/bin/activate +export OPENAI_API_KEY=dummy +nohup litellm --model openai/hf.co/bartowski/NousResearch_NousCoder-14B-GGUF:Q8_0 --api_base https://qwen.ai.unturf.com/v1 --port 8000 --drop_params > /tmp/litellm.log 2>&1 & diff --git a/nohup.out b/nohup.out new file mode 100644 index 0000000..3b99b76 --- /dev/null +++ b/nohup.out @@ -0,0 +1,8 @@ +Usage: litellm [OPTIONS] +Try 'litellm --help' for help. + +Error: Got unexpected extra argument ( ) +Usage: litellm [OPTIONS] +Try 'litellm --help' for help. + +Error: Got unexpected extra argument ( )