Skip to content

Instantly share code, notes, and snippets.

View kietnguyen's full-sized avatar
🎯
Focusing

Kiet Nguyen kietnguyen

🎯
Focusing
View GitHub Profile
@oboxodo
oboxodo / README.md
Last active September 15, 2024 15:31

Avoid has_many/one + belongs_to circular dependency

This is based on the use of Shopify's packwerk.

Asuming we have a posting pack with a Post model and a commenting pack with a Comment model, and we want the commenting pack to have a declared dependency on the posting pack, then here's a pattern to avoid the has_many :comments usual declaration on the Post model while still being able to have very similar functionality to the dependent option to react/restrict when a post is destroyed.

If you need to fetch a post's comments, you can simply use Comments.where(post: @post) instead of the

# Okasaki style Functional Red Black Tree
# https://www.cs.tufts.edu/comp/150FP/archive/chris-okasaki/redblack99.pdf
#
# leaves and root are black
# BST
# No red node has a red child
# Every path from the root to a leaf has the same number of black nodes
module RBTree
class Leaf
// get all tweets from @prisma
from:prisma
// tweets between two accounts
from:ryanchenkie to:chris__sev
// tweets by a hashtag but only with images
#InaugurationDay filter:images
// keywords by people on a specific list
@ProGM
ProGM / arel_cheatsheet_on_steroids.md
Last active January 20, 2026 18:30
Arel cheatsheet on Steroids

Arel Cheatsheet on Steroids

A (more) complete cheatsheet for Arel, including NamedFunction functions, raw SQL and window functions.

Tables

posts = Arel::Table.new(:posts)
posts = Post.arel_table # ActiveRecord

Table alias

@karstengresch
karstengresch / Podman-on-MacOS.md
Created December 20, 2019 15:14 — forked from rbo/Podman-on-MacOS.md
Podman on Mac OS
$ export PATH=$(pwd):$PATH
$ podman-machine create box
Podman machine "box" already exists
$ podman-machine start box
Starting "box"...

Install Android SDK on macOS

Install homebrew https://brew.sh/

brew cask install homebrew/cask-versions/adoptopenjdk8
brew cask install android-sdk
@ivanvermeyen
ivanvermeyen / HOWTO.md
Last active June 8, 2025 14:55
Multiple MySQL versions on MacOS with Homebrew

Update - 4 september 2020

Making multiple MySQL versions work with Homebrew was tricky to say the least. Fortunately there are 2 new easy ways that I learned of to achieve this.

DBngin app

As @4unkur and @henrytirla commented below, there is this extremely easy to use app called DBngin, which lets you setup multiple databases (not only MySQL) simultaneously using different ports:

https://dbngin.com/

@robertpainsi
robertpainsi / commit-message-guidelines.md
Last active May 5, 2026 10:18
Commit message guidelines

Commit Message Guidelines

Short (72 chars or less) summary

More detailed explanatory text. Wrap it to 72 characters. The blank
line separating the summary from the body is critical (unless you omit
the body entirely).

Write your commit message in the imperative: "Fix bug" and not "Fixed
bug" or "Fixes bug." This convention matches up with commit messages
@bf4
bf4 / ams.rb
Created April 3, 2017 02:17 — forked from sineed/ams.rb
Upgrade AMS from 0.9.0 to 0.10.0
module AMS
module V09
class Serializer < ActiveModel::Serializer
def serializable_hash(adapter_options = nil,
options = {},
adapter_instance = self.class.serialization_adapter_instance)
object.nil? ? nil : super
end
end
@LoyEgor
LoyEgor / gulpfile.js
Last active November 3, 2025 05:41
best image compression settings (gulp-imagemin)
// install
// npm i gulp-cache gulp-imagemin imagemin-pngquant imagemin-zopfli imagemin-mozjpeg imagemin-giflossy -f
// node node_modules/jpegtran-bin/lib/install.js
// node node_modules/gifsicle/lib/install.js
// node node_modules/zopflipng-bin/lib/install.js
// node node_modules/mozjpeg/lib/install.js
// node node_modules/giflossy/lib/install.js
// node node_modules/pngquant-bin/lib/install.js