Skip to content

Instantly share code, notes, and snippets.

View socheatsok78's full-sized avatar
πŸ––
ΰΌΌ ぀ β—•_β—• ༽぀ is having a baby

Socheat Sok socheatsok78

πŸ––
ΰΌΌ ぀ β—•_β—• ༽぀ is having a baby
View GitHub Profile
if (typeof registerPaint === 'function') {
class DotGridWorket {
static get inputProperties() {
return ['--dot-size', '--dot-spacing', '--dot-color'];
}
parseProps(props) {
const dotSize = props.get('--dot-size');
const dotSpacing = props.get('--dot-spacing');
const dotColor = props.get('--dot-color');
{
"basics": {
"name": "Socheat Sok",
"label": "Senior Software Developer",
"picture": "https://avatars.githubusercontent.com/u/4363857?v=4",
"email": "[email protected]",
"website": "https://socheat.dev",
"summary": "I'm a Full-Stack Software Developer. I got my bachelor degree on Management Information System at SETEC Institute. I was previously working at Open Institute, my work focused on inproving User Experience and optimizing website performance using new standard of frontend development by switching the existing code base of using jQuery to using modern JavaScript libraries such as VueJS and Webpack. I also work with the backend team to improve performance of the backend service as well by using standard Eloquent and ORM for handling database transaction instead of using raw SQL queries.",
"location": {
"address": "292 St",
@socheatsok78
socheatsok78 / generate-gradient-string.js
Created February 17, 2022 04:27
Vue.js style gradient string
var fs = require('fs')
var gradientString = require('gradient-string')
var out = gradientString([
{ color: '#42d392', pos: 0 },
{ color: '#42d392', pos: 0.1 },
{ color: '#647eff', pos: 1 }
])('Vue.js - The Progressive JavaScript Framework')
var data = out.replace(/\x1B/g, '\\x1B')
@socheatsok78
socheatsok78 / go-arch.md
Created February 6, 2022 09:33 — forked from zfarbp/arch.md
Golang - Building Executables for Different Architectures

Golang - Building Executables for Different Architectures

env GOOS=target-OS GOARCH=target-architecture go build package-import-path

# Example
env GOOS=darwin GOARCH=amd64 go build
env GOOS=darwin GOARCH=amd64 go build main.go
env GOOS=darwin GOARCH=amd64 go build github.com/zoo/york/foo/bar
@socheatsok78
socheatsok78 / golang-tls.md
Created February 4, 2022 02:03 — forked from 6174/golang-tls.md
Simple Golang HTTPS/TLS Examples
Generate private key (.key)
# Key considerations for algorithm "RSA" β‰₯ 2048-bit
openssl genrsa -out server.key 2048
    
# Key considerations for algorithm "ECDSA" β‰₯ secp384r1
# List ECDSA the supported curves (openssl ecparam -list_curves)
openssl ecparam -genkey -name secp384r1 -out server.key
#!/bin/bash
OS=linux
ARCH=x64
RUNNER_VERSION=2.287.1
mkdir ${HOME}/actions-runner
echo "[Info] Downloading GitHub Action Runner"
curl -o actions-runner-${OS}-${ARCH}-${RUNNER_VERSION}.tar.gz \

Opening and closing an SSH tunnel in a shell script the smart way

I recently had the following problem:

  • From an unattended shell script (called by Jenkins), run a command-line tool that accesses the MySQL database on another host.
  • That tool doesn't know that the database is on another host, plus the MySQL port on that host is firewalled and not accessible from other machines.

We didn't want to open the MySQL port to the network, but it's possible to SSH from the Jenkins machine to the MySQL machine. So, basically you would do something like

ssh -L 3306:localhost:3306 remotehost

@socheatsok78
socheatsok78 / starship.toml
Last active May 15, 2022 06:13
My personal starship.rs config
# Move the directory to the second line
# format = "$all$directory$character"
# Disable the blank line at the start of the prompt
add_newline = true
# Timeout for commands executed by starship
command_timeout = 2500
# [env_var.ITERM_PROFILE]
@socheatsok78
socheatsok78 / 00-README.md
Last active June 23, 2023 10:13
The Twelve Factors Extended - https://12factor.net/

The Twelve Factors

https://12factor.net/

In the modern era, software is commonly delivered as a service: called web apps, or software-as-a-service. The twelve-factor app is a methodology for building software-as-a-service apps that:

  • Use declarative formats for setup automation, to minimize time and cost for new developers joining the project;
  • Have a clean contract with the underlying operating system, offering maximum portability between execution environments;
  • Are suitable for deployment on modern cloud platforms, obviating the need for servers and systems administration;
  • Minimize divergence between development and production, enabling continuous deployment for maximum agility;