Skip to content

Instantly share code, notes, and snippets.

View mpyw's full-sized avatar
🏠
Working from home

mpyw mpyw

🏠
Working from home
View GitHub Profile
@leaysgur
leaysgur / income-tax.mjs
Last active December 4, 2023 20:35
所得税とその税率を計算
// @ts-check
/**
* | 課税所得 | 税率 | 控除額 |
* | ---------------------------------- | ---- | ----------- |
* | 1,000円 から 1,949,000円まで | 5% | 0円 |
* | 1,950,000円 から 3,299,000円まで | 10% | 97,500円 |
* | 3,300,000円 から 6,949,000円まで | 20% | 427,500円 |
* | 6,950,000円 から 8,999,000円まで | 23% | 636,000円 |
* | 9,000,000円 から 17,999,000円まで | 33% | 1,536,000円 |
@Hayao0819
Hayao0819 / destroy.sh
Last active June 22, 2023 17:35
シェル芸ロシアンルーレット
#!/bin/sh
# 参考
# https://qiita.com/_-_-_-_-_/items/214d537aae2c1488692c
get_random(){
od -v -An --width=1 -tu1 -N1 < /dev/urandom | \
awk "{ print \$1 % 10 }"
}
@greymd
greymd / sudo新一.md
Last active April 25, 2024 06:34
sudo新一

 オレは高校生シェル芸人 sudo 新一。幼馴染で同級生の more 利蘭と遊園地に遊びに行って、黒ずくめの男の怪しげな rm -rf / 現場を目撃した。端末をみるのに夢中になっていた俺は、背後から近づいてきたもう1人の --no-preserve-root オプションに気づかなかった。 俺はその男に毒薬を飲まされ、目が覚めたら・・・ OS のプリインストールから除かれてしまっていた!

sudo がまだ $PATH に残っていると奴らにバレたら、また命を狙われ、他のコマンドにも危害が及ぶ』

 上田博士の助言で正体を隠すことにした俺は、 which に名前を聞かれて、とっさに『gnuplot』と名乗り、奴らの情報をつかむために、父親がシェル芸人をやっている蘭の $HOME に転がり込んだ。ところが、このおっちゃん・・・とんだヘボシェル芸人で、見かねた俺はおっちゃんになりかわり、持ち前の権限昇格能力で、次々と難タスクを解決してきた。おかげで、おっちゃんは今や世間に名を知られた名エンジニア、俺はといえばシェル芸 bot のおもちゃに逆戻り。クラスメートの convertojichattextimg にお絵かきコマンドと誤解され少年ワンライナーお絵かき団を結成させられる始末。

 ではここで、博士が作ってくれたメカを紹介しよう。最初は時計型麻酔 kill 。ふたについた照準器にあわせてエンターを押せば、麻酔シグナルが飛び出し、プロセスを瞬時に sleep させることができる。 次に、蝶ネクタイ型 banner 。裏についているダイヤルを調整すれば、ありとあらゆる大きさのメッセージを標準出力できる。必殺のアイテムなら fork 力増強シューズ。電気と磁力で足を刺激し、 :(){ :|:&amp; };: でプロセステーブ

@kjmph
kjmph / A_UUID_v7_for_Postgres.sql
Last active April 23, 2024 15:26
Postgres PL/pgSQL function for UUID v7 and a bonus custom UUID v8 to support microsecond precision as well. Read more here: https://datatracker.ietf.org/doc/draft-peabody-dispatch-new-uuid-format/
-- Based off IETF draft, https://datatracker.ietf.org/doc/draft-peabody-dispatch-new-uuid-format/
create or replace function uuid_generate_v7()
returns uuid
as $$
begin
-- use random v4 uuid as starting point (which has the same variant we need)
-- then overlay timestamp
-- then set version 7 by flipping the 2 and 1 bit in the version 4 string
return encode(
@hexium310
hexium310 / group-by-range.zsh
Last active June 9, 2021 16:48
group-by-range
group-by-range() {
setopt LOCAL_OPTIONS EXTENDED_GLOB
local value
local values=(${(ps: :)1})
local separator=${2--}
local tmp_separator=,
local result=()
local positives=(${(no)${(M)values:#[[:digit:]]##}})
local negatives=(${(nO)${(M)values:#-[[:digit:]]##}})
@t-kuni
t-kuni / xdebug3+docker+phpstorm.md
Last active March 14, 2023 14:22
Xdebug 3系 + Docker + PhpStorm環境のxdebugの設定

Xdebug 3系 + Docker + PhpStorm環境のxdebugの設定

(Xdebug 2系は設定が異なるので注意。IDE側の設定も変わっている)

php.iniのxdebugの設定は以下の様にする。 最低限必要なのは以下の通り。

xdebug.mode=debug
xdebug.discover_client_host=true
@frodo821
frodo821 / email_validator.py
Last active October 18, 2021 21:46
A ReDoS proof email address validation
from re import match
def validateEmail(email):
valid = 'abcdefghijklmnopqrstuvwxyz1234567890!#$%&\'*+-/=?^_`{}|~'
if not email:
return False
email = email.lower()
if email.startswith('"'):
i = 1
while i < min(64, len(email)):
@ianldgs
ianldgs / dayjs-zoned.d.ts
Last active October 6, 2022 09:21
DayJS Zoned
import { Dayjs, PluginFunc, ConfigType } from 'dayjs';
declare const plugin: PluginFunc;
export = plugin;
declare module 'dayjs' {
/** Similar to date-fns/utcToZonedTime */
function utcToZoned(config: ConfigType, timezone?: string): Dayjs;
/** Similar to date-fns/zonedTimeToUtc */
// ==UserScript==
// @name 検索結果の言語切り替えるやつ
// @description 検索結果ページの言語を切り替えるボタンを表示します
// @namespace hexium310
// @version 1.1.0
// @author Hexin
// @match https://www.google.com/search*
// @resource MaterialIcons https://fonts.googleapis.com/icon?family=Material+Icons
// @grant GM_addStyle
// @grant GM_getResourceText
@shyiko
shyiko / weakmap.go
Created June 16, 2019 04:05
go sync/weakmap
package weakmap
import (
"reflect"
"runtime"
"sync"
)
type Key = interface {}
type Value = interface {}