Skip to content

Instantly share code, notes, and snippets.

View giautm's full-sized avatar
😍
Nice to meet you ʕ◔ϖ◔ʔ

Giau. Tran Minh giautm

😍
Nice to meet you ʕ◔ϖ◔ʔ
View GitHub Profile
package httputil
import (
"bytes"
"io"
"io/ioutil"
"net/http"
"github.com/golang/snappy"
)
@giautm
giautm / compound-to-unicode.js
Last active September 11, 2023 03:39 — forked from redphx/compound-to-unicode.java
[Javascript] Chuyển tiếng Việt tổ hợp sang dựng sẵn
function compoundUnicode(str) {
return `${str}`
.replace(/\u0065\u0309/g, '\u1EBB') // ẻ
.replace(/\u0065\u0301/g, '\u00E9') // é
.replace(/\u0065\u0300/g, '\u00E8') // è
.replace(/\u0065\u0323/g, '\u1EB9') // ẹ
.replace(/\u0065\u0303/g, '\u1EBD') // ẽ
.replace(/\u00EA\u0309/g, '\u1EC3') // ể
.replace(/\u00EA\u0301/g, '\u1EBF') // ế
.replace(/\u00EA\u0300/g, '\u1EC1') // ề
@giautm
giautm / app.go
Created November 1, 2018 17:21 — forked from delphinus/app.go
example to encode/decode gob in gin https://github.com/gin-gonic/gin/issues/1357
package main
import (
"bytes"
"encoding/gob"
"net/http"
"github.com/gin-gonic/gin"
)
@giautm
giautm / Dockerfile
Created October 26, 2018 14:07
Dockerfile for Golang, using at TiKi@Ops
FROM golang:1.11.1-stretch as builder
WORKDIR /ops-golang
COPY . ./
RUN CGO_ENABLED=0 \
GOOS=linux \
go build -mod=vendor -o app
@giautm
giautm / hashcode.go
Created October 26, 2018 13:50
Golang implement of `java.lang.String` hashCode() https://en.wikipedia.org/wiki/Java_hashCode()
package hashcode
import "hash"
const Size = 4
func NewHash() hash.Hash32 {
var s sum32 = 0
return &s
}
@giautm
giautm / phone-carriers.js
Created September 20, 2018 11:15
VN phone carriers detector
const MOBILE_REGEXP = /^(\+84|0)(3[2-9]|5[2689]|7[06-9]|8[1-5])[0-9]{7}$/
const PREFIX_CARRIERS = {
viettel: ["32","33","34","35","36","37","38","39"],
mobifone: ["70","79","77","76","78"],
vinaphone: ["83","84","85","81","82"],
vietnamobile: ["52","56","58"],
gmobile: ["59"]
};
function phoneCarrier(phone) {
@giautm
giautm / Firechat.js
Last active September 15, 2018 07:53
Real-time chat with firebase, support groups & direct chat.
import firebase from 'firebase'
export function defaultDirectKey(users) {
return users.sort().join('-')
}
class Firechat {
constructor(firebaseRef, options = {}) {
this.directKey = options.directKey || defaultDirectKey
this.maximumMessagesFetch = options.maximumMessagesFetch || 100
import { vec2 } from 'gl-matrix';
const ZERO_VECTOR = vec2.create();
function linePerpendicularToLine(out, vec, middlePoint, weight) {
if (weight <= 0 || vec2.equals(vec, ZERO_VECTOR)) {
vec2.copy(out[0], middlePoint);
vec2.copy(out[1], middlePoint);
} else {
const perpendicular = vec2.fromValues(vec[1], -vec[0]);
@giautm
giautm / build-id.js
Created June 14, 2018 08:09
Next.JS Build-ID with last git commit
const fs = require('fs')
const path = require('path')
const { execFile } = require('child_process')
function lastCommitId(dir) {
return new Promise((resolve, reject) => {
const gitArgs = [
`--git-dir=${path.join(dir, '.git')}`,
`--work-tree=${dir}`,
'rev-parse',