Skip to content

Instantly share code, notes, and snippets.

View sangdth's full-sized avatar
📖
Docendo discimus

Sang Dang sangdth

📖
Docendo discimus
View GitHub Profile
@sangdth
sangdth / redis-commands.md
Last active December 14, 2023 12:56
My list of most used Redis commands
@sangdth
sangdth / fmain.md
Last active December 13, 2023 20:15
If you can’t measure it, you can’t improve it. – Peter Drucker

Config

git config --global alias.fmain '!git checkout -b master && git branch -D main'

Usage

git fmain
@sangdth
sangdth / auto-generate-git-branch-from-jira.md
Last active April 6, 2023 16:59
Generate git branch based on Jira tasks

Required:

Setup:

  1. Install Jira CLI, generate the API token and follow the initiation process. Make sure you can see a list of issues by using jira issue list.
  2. Install fzf and setup some default configs if you like.
  3. Put this code below into your .zshrc (I'm not sure about .bashrc, did not test it.
@sangdth
sangdth / ErrorBoundary.tsx
Created February 25, 2023 08:59
Implementation of an error boundary in React functional component
import { useState, useEffect } from 'react';
function ErrorBoundary({ fallback, children }) {
const [error, setError] = useState(null);
useEffect(() => {
if (error) {
// log the error or send it to a server
console.error(error);
}
@sangdth
sangdth / fnm2.md
Last active September 28, 2022 21:09
Auto install current global npm packages after fnm install

The fnm still does not support -reinstall-packages-from like nvm, so I wrote this script for me while waiting.

#!/bin/sh

# Remember to alias fnm='fnm2' for convinient

# TODO: How to make the (which fmn) work here instead of hard coded path?
/opt/homebrew/bin/fnm $*
@sangdth
sangdth / ssh-add.md
Created June 20, 2022 02:53
ssh-add

Still don't know why I have to do this once in a while

Error message:

# Access denied.
# fatal: Could not read from remote repository.

# Please make sure you have the correct access rights
# and the repository exists.
@sangdth
sangdth / prepare-commit-msg
Created May 24, 2022 19:16
Extract Jira code from branch name
#!/bin/bash
# Copy this file into .git/hooks/prepare-commit-msg file
# Usage: Your branch must follow the name convention: `CODE-123-Lorem-ipsum-telnet`
# This hook will try to extract the `CODE-123` and add it into your commit message.
# For example, `git commit -m "fix something"` will create a commit message content:
# `CODE-123 fix something`
COMMIT_MSG_FILE=$1
@sangdth
sangdth / config
Created April 24, 2022 19:11
ssh config
Host sangdth-github
HostName github.com
User sangdth
PreferredAuthentications publickey
IdentityFile /path/to/.ssh/id_ed25519_github
UseKeychain yes
AddKeysToAgent yes
@sangdth
sangdth / general-guidelines.md
Last active January 30, 2022 06:59
For my projects management

Some good practices I'd like to stick with it

  • Recommend using Sourcetree client, but you can choose anything.
  • We use GitHub flow for simplicity. Reason here. In short:
    • Always branch from master.
    • Name the branch accordingly, read below for more information.
    • After passing all tests, ask for reviews.
    • Merge back to master. Enjoy productivity!
  • PR’s name format: CODE-123-Descriptive-task-name-here
@sangdth
sangdth / nextjs-google-app-engine.md
Last active October 18, 2021 12:03
Google App Engine problem with read-only file system error

If you are using type-graphql in your project, and trying to deploy to Google App Engine, you probably will encounter the read-only file system error: Error: EROFS: read-only file system, open './src/schema.gql'

This is because Google App Engine has quite different way to handle file system: https://cloud.google.com/appengine/docs/standard/python3/using-temp-files

In my Nestjs app, I'm using @nestjs/graphql module wrapper, in which automatic generate schema.gql file at /src folder by default, and Google App Engine allows only /tmp folder.