dev

Android For GitOps Writing Workflow

My sister got me a Logitech K480 Bluetooth keyboard for Christmas! What makes me truly excited about this gift is the mental exercise of using my Android phone as a content creation device. It’s a bit of a stretch, but with this kind of powerful technology in our pockets, we should be able to leverage these devices more productively. My writing workflow is focused around markdown stored in git (backed by Gitlab or Github), rendered using Hugo, and leveraging Netlify’s platform for integration and deployment.

Ansible Configuration

Use Ansible http://http://ansible.github.com/ [[http://infrastructure.fedoraproject.org/cgit/ansible.git/|Fedora Ansible GIT Repository]]: Good example of GIT usage. Roles are not heavily used, as that is a 1.2 feature. Fedora Reasoning for Ansible: https://fedoraproject.org/wiki/User:Skvidal/Ansible http://www.stavros.io/posts/example-provisioning-and-deployment-ansible/ Method of having multiple distro variable: http://blog.trifork.com/2013/04/02/ansible-example-playbook-to-setup-jenkins-slave/ Ansible Configuration Basic Security Lockdown (minimum services, sudo configuration, etc) Useful scripts (automatic update, or maybe a nice “motd” generator with number of packages to update, system load, etc.) Customization for site (local users, sudo config, sshd config, webmin configuration) Ansible Roles ansiblemaster (bootstrap an environment) ansiblepull deployment (pxe/tftp/dhcp for PXE config) pkgcache (apt-cacher) pkgcache-feeder (for yum primarily…makes sure RPMs never removed) authmaster (https://help.

Quotes

‘‘when you don’t create things, you become defined by your tastes rather than ability. your tastes only narrow & exclude people. so create.’’ - Why the Lucky Stiff Source ‘‘Fashion is a form of ugliness so intolerable that we have to alter it every six months.’’ - Oscar Wilde ‘‘Those who don’t understand UNIX are doomed to reinvent it, poorly’’ - Henry Spencer ‘‘Luck is what happens when preparation meets opportunity.

Web Development Resources

JAM Stack JamStack Examples Six tools for a Static E-commerce Site Walkthrough For a Subscription Email Site Authentication See Security/Authentication Captcha hCaptcha: More privacy focused Captcha mCaptcha: Open source PoW Captcha mCaptcha Source CMS NetlifyCMS: SPA that allows for committing markdown changes to version control Communication Disqus: Emable comments on any webpage Twilio: Interact with customer via web UI, SMS, What’s App, etc Utterances: Leverage Github issues for blog comments Dashboards Vizzlo Databases FaunaDB E-commerce Trolley Snipcart Icons Iconify: Open source icons useful for web development.

Web 0

Recently have discovered a diverse community of individuals rejecting the current Web2 (social media) and Web3 (Blockchain/NFT/metaverse/whatever else is bucketed in Web3) and back to the non-commercial, unique roots of the Internet that existed before the widespread centralization of the Internet. A time when site’s goals were not to get you addicted to the dopamine hits of likes and aggravation, but to simply express the creativity and interest of their creators.

Verify

Tools to verify for development. Testing Toolsets - Documentation RunMe.dev: Run code from README.md files Testing Toolsets - Kubernetes Kink - Run KinD clusters as a Pod on an existing Kubernetes cluster Testing Toolsets - Infra/Ops TerraTest and Terratest, even without Terraform ServerSpec: Perhaps start for TDD for entire stack.

Software Development For Children

A collection of links that useful for introducing children to technology. MicroBlocks - Child development also focused around easy to use electronics. Scratch - Children’s coding environment, focused on more graphic/game like development

Scripting

Captures ad-hoc scripting and process needs. Also includes resources making these ad-hoc scripts more robust and part of an automation framework. Shell Minimally Safe Bash Shell Script Template Bash Style Guidelines Bash - Using Loops - Nice example of several looping and conditional structures. Debugging Bash Like a Sire: A stacktrace like mechanism for Shell! Gum - Pretty Shellscript Addon Testing Shell Scripts/CLI leveraging Go’s Testing Framework Higher Level Python Shell-like Scripting In Go - Might be a nice bridge when a shell script gets complex enough that you want to use a more robust langauge, but maintain a lot of “shell-like” features Cheatsheet Passing variables to curl bash (Example from coder)

Python Language Resources

CookieCutter - PoetryA cookiecutter recipe to setup a Modern Python project: Poetry for depenency management Github actions for CI/CD Pre-commit hooks Code quality with black, ruff, etc Pytest and Codecov Mkdocs documentation Docker containerization Hypermodern Python Python Fire: Quick way to add a CLI interface to any Python object Cheatsheets Python Cheatsheet (Source) Compiling/Distributing Python PyOxidizer: Method for “compiling” Python Cordon: A true Python “Compiler”, results in a fast executable.

Plan

Planning for a DevOps Cycle Architecture Platform Engineering: Home for Platform Engineers. Includes a comprehensive tech library of stacks/solutions. Backstage: Open source developer portal Krato: Potentially lighter-weight solution to Backstage, but also seems heavily tied into ArgoCD and Crossplane Keeping Code Simple Questions for a new technology Redhat Demo Central - Architectures for a wide range of cloud infrastructures and problems. Who Cares If It Scales - Avoiding pre-mature optimization.

Package

Topics related to packaging of software to prepare for deployment. Also general collecdtion of CI/CD pipeline info Infrastructure as Code Digger: Run Terraform from native CI/CD runners (think Atlantis, without the runtime requirements) Github Actions Running a new workflow dispatch from a PR GitHub Actions Dynamic Matrix: Methodology to define a dynamic matric in Github Actions Container Package Builds Zarf: Primarily for airgap or limited k8s environemnts.

OpenSCAD Coding Guidelines

OpenSCAD is a 3D CAM/CAD environment. Instead of GUI design utilities, a coding environment is used to describe objects. Parametrized designs allow for easy customization. Overall Goals Parameters in the design should be minimal. Individual statements should be clear in what they do…calculations should be done with separate variable assignments. Follow procedural as best as possible. Each module should be given ALL variables as input fields (clear separation of global and local variables).

Javascript Development

CS50: Web Programming with Python and JavaScript (Harvard University): Free course covering Python, JavaScript, and SQL using frameworks like Django, React, and Bootstrap. 10 Github Repositories To Achieve Javascript Mastery

Go Language Resources

Development A tour of Go Go by example Katacoda Golang Playground Makefiles for Golang Go For Ops: A bit older, but might be useful. Errors are values: Great discussion on good error handing in Go Libraries Script: Framework for development shell/pipe link constructs in Go. Useful for moving shell scripts/small programs over to Go. Articles 5 keys to create a killer CLI in Go bpcli: Great example of a Go CLI utility leveraging a RESTful API Free Courses On Go Why Go and Not Rust?

Git Cheatsheet

To save myself searching for common it commands Git Ignores gitignore.io: Quick was to generate gitignore files. Source code Debug why a file is being ignored (Source): git check-ignore --verbose <file> Good General Advice on Git Mistakes Oh Shit, Git!?! Fixing Divereged Branches Also see Git Rebase versus Git Merge below # Rebase - preferred for cleaner history git merge --rebase git push # If failed, and pushing to a branch NO ONE ELSE HAS DOWN git push -- Great Overview From Julia Evans Accidently Committed to Wrong Branch!

Embedded Systems

Concentrating on embedded systems that can run Linux or other “full” OSes. Inveotory of non-Linux embedded systems Device Arch Use Arduino - (many) avr Many Arduino Mega x 2 avr MooMachine BBC Microbit arm (Cortex M0 on a nRF51822 SoC) Inventory of “Linux” Based Embedded Systems Device Arch Use Rasp Pi 3 with 7" LCD and 8GB SD arm Mini “computer”, but no battery… Rasp Pi 3 arm Pi-TopCEED (desktop form factor) Rasp Pi 2 (2011.

Electronics

Electronics is an interesting hobby that tends to intersect with my interest in sysadmin and programming. Most of that interest is centered around Arduino, but I have been branching out to Raspberry Pi/Beaglebone styled systems as well. Electronics Electronics Club Unbrick an AVR Microprocessor AVR Based Parental Countdown Timer, Capacitive Touch Buttons AVR RFID Tag Five ways to communicate via wireless Embedded Hardware Laser Cutter ECheapo Laser cutter design for attaching to existing 3D printer.

Development/DevOps Advocate Resources

Developer Relations Developer Evangelism Handbook The Three Pillars of Developer Relations Tools Reveal.js Javascript based presentation framework. Supports writing presentations in Markdown. The primary tool used for my presentation site at https://present.r15cookie.com Excalidraw - Nice tool for building graphics that look hand-drawn. Source AsciiFlow - ASCII Flowchart Tool ASCIInema - Embed console recordings in a webpage, that are copy/pastable!

Development/Architecture

Architecture/Engineering The Platform Engineer Example Applications Open Telemetry Demo: A modification of Google’s Online Boutique, but with more integrations with Open Telementry RealWorld - The ultimate demo app, with multiple frontend and backend frameworks Google’s Online Boutique - True Microservice e-commerce app, written as a pologot style service covering most modern development languages today (Node, Go, Python, C#, Java) Google’s Bank of Anthos - A lighter microservice example app - only Python and Java.

AI

With the Hype around ChatGPT, good to gather some resources Prompt Engineering Awesome ChatGPT Prompts Pre-prime ChatGTP You’re Using ChatGPT Wrong! Here’s How to Be Ahead of 99% of ChatGPT Users Why you (probably) Don’t Need to Fine Tune an LLM: Seems like advance prompt engineering might get you there. Github Copilot Copilot Quickstart Copilot Alternatives HuggingFace VSCode Plugin. - leveraging the StarCoder model FauxPilot: Attempt for locally-hosted Copilot (nVidia GPUs required) LocalPilot: Another attempt for a locally-hosted Copilot Alternative Models A List of Billion+ Parameter Models GPT4All: An ecosystem of open-source chatbots trained on a massive collections of clean assistant data including code, stories and dialogue OpenAssistant: Open source ChatAI Hello Dolly: Democratizing the magic of ChatGPT with open models Local LLMs LocalGPT: Based on PrivateGPT, but replaced the GPT4ALL model with Vicuna-7B model and we are using the InstructorEmbeddings instead of LlamaEmbedding OnPrem.

3D Printing

Getting Started Starting with a new 3D printer can be exciting, but also scary! Here are some incredibly helpful links. Fixes/Calibration My prints look like this, let’s fix them! 3D Calibration Guide: Excellent guide to calibrating your printer How to Calibrate Your Extruder: A little focused around Matter Controls, but show be helpful for most printers Layer Shifting Guide Unclog a 3D Print Nozzle Ultimaker Visual Troubleshooting Guide Delta Printer Guides Generic Delta Printer Calibration or Rostock Calibration Guide Dimensional Accuracy for Delta Printers GCode The 10 Most Common Commands in 3D Printing OpenSCAD OpenSCAD Coding Guidelines Forum Post to Fix STLs using Meshlab 3D Rendering The objective is to render STL into more realistic images.
Steve Miller BY-NC 4.0 | Rendered by Hugo | Subscribe