Skip to content

Instantly share code, notes, and snippets.

View jwkicklighter's full-sized avatar

Jordan Kicklighter jwkicklighter

View GitHub Profile
@peterc
peterc / CONVENTIONS.md
Last active March 8, 2026 00:42
CONVENTIONS.md file for AI Rails 8 development
  • You MUST NOT try and generate a Rails app from scratch on your own by generating each file. For a NEW app you MUST use rails new first to generate all of the boilerplate files necessary.
  • Create an app in the current directory with rails new .
  • Use Tailwind CSS for styling. Use --css tailwind as an option on the rails new call to do this automatically.
  • Use Ruby 3.2+ and Rails 8.0+ practices.
  • Use the default Minitest approach for testing, do not use RSpec.
  • Default to using SQLite in development. rails new will do this automatically but take care if you write any custom SQL that it is SQLite compatible.
  • An app can be built with a devcontainer such as rails new myapp --devcontainer but only do this if requested directly.
  • Rails apps have a lot of directories to consider, such as app, config, db, etc.
  • Adhere to MVC conventions: singular model names (e.g., Product) map to plural tables (products); controllers are plural.
  • Guard against incapable browsers accessing controllers with `allo
@fernandoaleman
fernandoaleman / mysql2-m1.md
Last active January 5, 2026 07:29
How to install mysql2 gem on m1 Mac

Problem

Installing mysql2 gem errors on Apple silicon M1, M2 or M3 Mac running macOS Sonoma.

Solution

Make sure mysql-client, openssl and zstd are installed on Mac via Homebrew.

Replace mysql-client with whichever mysql package you are using

@kaspermeyer
kaspermeyer / alias_controller.js
Created January 19, 2019 18:33
Stimulus controller to alias other Stimulus controllers
import { Controller } from "stimulus";
export default class extends Controller {
initialize() {
this.registerAliasedControllers()
}
registerAliasedControllers() {
for (let [alias, original] of this.controllerIdentifiersByAlias) {
if (!this.moduleForIdentifier(alias)) {
@edco
edco / mc-server.yaml
Created March 14, 2018 02:28
Create a Minecraft server on Google Cloud Platform in moments. Running this script amounts to accepting the Minecraft EULA. Based on https://cloud.google.com/solutions/gaming/minecraft-server but without the dedicated storage and backups.
resources:
- type: compute.v1.address
name: mcs-ip
properties:
region: australia-southeast1
- type: compute.v1.instance
name: mc-server
properties:
zone: australia-southeast1-c
machineType: zones/australia-southeast1-c/machineTypes/n1-standard-1
@troyharvey
troyharvey / .gitlab-ci.yml
Last active March 6, 2026 08:33
Deploy Google Cloud Functions: GitLab CI/CD Pipeline Config File
# Update Jan 2024
# Deploying Cloud Functions is much simpler than it was 6 years ago.
# I'm leaving the gist in it's original 2018 state for now,
# but skip the the recent comments below for a simpler solution.
variables:
GCP_ZONE: us-central1-a
stages:
- npm-install
@tanyuan
tanyuan / smart-caps-lock.md
Last active March 1, 2026 09:25
Smart Caps Lock: Remap Caps Lock to Control AND Escape

Smart Caps Lock: Remap to Control AND Escape (Linux, Mac, Windows)

Caps Lock 變成智慧的 Control 以及 Escape

  • 單獨輕按一下就是 Escape
  • 若按下時同時按著其他鍵,就會是 Control

這應該是 Vim 和 Emacs 的最佳解了!(Emacs? Bash 的快捷鍵就是 Emacs 系列的)

  • Send Escape if you tap Caps Lock alone.
# Put this in your .zshrc or .bashrc file
# Install `tree` first — brew install tree
function t() {
# Defaults to 3 levels deep, do more with `t 5` or `t 1`
# pass additional args after
tree -I '.git|node_modules|bower_components|.DS_Store' --dirsfirst --filelimit 15 -L ${1:-3} -aC $2
}
@cbednarski
cbednarski / factorio.md
Last active January 25, 2025 20:14
Host a factorio server
@technovangelist
technovangelist / setup.md
Created February 12, 2016 23:17
Setting up Pushover.net and Datadog
  1. Create Pushover account
  2. Create a new Application in the Pushover site.
  3. You should now have a token and user id. You will need this for the webhook
  4. Go to the Datadog webhooks integration
  5. Enter Pushover for the name.
  6. Under URL enter `https://api.pushover.net/1/messages.json?token=YOURPUSHOVERAPPTOKEN&user=YOURPUSHOVERUSERID
  7. Under Custom Payload, enter {"title":"$EVENT_TITLE","message":"$EVENT_MSG"}
  8. Check both Use Custom Payload and Encode as form
  9. Create a monitor that notifies @webhook-pushover
  10. Boom, you are done