Skip to content

Instantly share code, notes, and snippets.

import * as AWSXRay from "aws-xray-sdk";
import { logger } from "./logger";
export function trace(name: string) {
return (target: any, key: string, descriptor: PropertyDescriptor) => {
const originalMethod = descriptor.value;
descriptor.value = async function() {
let segment: AWSXRay.Subsegment | null = null;
try {
try {
@khoatran
khoatran / PhoneNumber.java
Last active May 13, 2019 03:42
Liskov - violation - hashCode example
/*
* From Effective Java book - 2nd Edition - Author: Joshua Bloch
*/
public final class PhoneNumber {
private final short areaCode;
private final short prefix;
private final short lineNumber;
public PhoneNumber(int areaCode, int prefix,
int lineNumber) {
rangeCheck(areaCode, 999, "area code");
@khoatran
khoatran / parse-json.sh
Created April 3, 2019 07:07
Bash parse JSON key
#!/bin/bash
function jsonValue() {
KEY=$1
num=$2
awk -F"[,:}]" '{for(i=1;i<=NF;i++){if($i~/'$KEY'\042/){print $(i+1)}}}' | tr -d '"' | sed -n ${num}p
}
KEY_TO_PARSE=$(curl -s -X GET "JSON_URL" | jsonValue KEY_TO_PARSE 1)
echo $KEY_TO_PARSE
@khoatran
khoatran / git-log-with-time.sh
Created March 5, 2019 08:23
Git log one line with time
git log --oneline --pretty=format:"%h%x09%an%x09%ad%x09%s"
@khoatran
khoatran / Plugin.php
Last active January 24, 2019 15:34
OctoberCMS add fields under secondary tabs
<?php
class Plugin extends PluginBase
{
public function boot()
{
parent::boot();
$this->extendRainlabPost();
}
protected function extendRainlabPost() {
@khoatran
khoatran / switch-php-version-ubuntu.sh
Created April 10, 2018 16:48
Switch between PHP version on Ubuntu
sudo update-alternatives --set php /usr/bin/php7.1
sudo update-alternatives --set phar /usr/bin/phar7.1
sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.1
sudo update-alternatives --set phpize /usr/bin/phpize7.1
sudo update-alternatives --set php-config /usr/bin/php-config7.1
@khoatran
khoatran / ModelNeedToValidate.php
Created January 2, 2018 07:49
OctoberCMS model validation
<?php
use Carbon\Carbon;
use Model;
use Validator;
/**
* Model
*/
class WorkingSchedule extends Model
{
@khoatran
khoatran / october-deployment.sh
Last active November 3, 2018 20:21
Bamboo deployment script
export DEPLOYMENT_FOLDER=/deployment-folder
export RELEASE_ROOT_FOLDER=$DEPLOYMENT_FOLDER/releases
export RELEASE_FOLDER=$DEPLOYMENT_FOLDER/releases/intermediate
cd $DEPLOYMENT_FOLDER/build
tar -xvf artifact.tar
rm -rf artifact.tar
cd $DEPLOYMENT_FOLDER
shopt -s dotglob
# Unzip and copy all files in artifact into the release folder
mkdir $RELEASE_FOLDER
@khoatran
khoatran / laravel-echo-fix-sqlite3.sh
Created October 3, 2017 07:47
Fix Cannot find module node_sqlite3.node when running Laravel Echo Server
cd /usr/local/lib/node_modules/laravel-echo-server/
npm install sqlite3 --save
@khoatran
khoatran / upgrade-node.sh
Created October 3, 2017 06:40
Upgrade nodejs
sudo npm cache clean -f
sudo npm install -g n
sudo n stable
sudo ln -sf /usr/local/n/versions/node/<version>/bin/node /usr/bin/node
sudo ln -sf /usr/local/n/versions/node/<version>/bin/npm /usr/local/bin/npm