Skip to content

Instantly share code, notes, and snippets.

View y13i's full-sized avatar
☘️

Yoriki Yamaguchi y13i

☘️
View GitHub Profile
provider "aws" {
region = "us-east-1"
}
data "tls_certificate" "tfc" {
url = "https://${var.tfc_hostname}"
}
resource "aws_iam_openid_connect_provider" "tfc" {
url = data.tls_certificate.tfc.url
@y13i
y13i / delete_history.sh
Created November 20, 2024 07:03
history警察です
# 誤った歴史は削除する!!
sed -i '' '/AWS_SECRET/d' $HISTFILE
@y13i
y13i / sortKeys.md
Last active December 11, 2024 08:45
オブジェクトのキーをソートするやつ

一年半くらい前に作ったやつの背景を書きたくなったので書く。


JSON で表現できる複雑度をもった任意のオブジェクトについて、それのキーがソートされているがバリューはそのままのオブジェクトがほしい。もしバリューがオブジェクトだったり配列だったりするのであれば、その内容についても再帰的に同じように処理してほしい。

例えば手動での編集が重なり混沌とした JSON/YAML であったり、処理系によっては出力される JSON のキーが順不同(毎回順番が違う)になる場合もあるらしい。キーの順序を一定にできればふたつの JSON の diff も読みやすくなるし、このような需要は常に一定程度あると思われる。

sort-keys というそのままの名前の NPM パッケージがすぐに見つかったのだが、個人的にもう少しやりたいことがあったので新しいツールを作った。

Keybase proof

I hereby claim:

  • I am y13i on github.
  • I am y13i (https://keybase.io/y13i) on keybase.
  • I have a public key whose fingerprint is 0553 2BCB D638 F001 178D 1EFC 4913 E132 5A60 DE8E

To claim this, I am signing this object:

@y13i
y13i / README.md
Last active January 26, 2021 21:16
Example: AutoMuteUs on AWS

automuteus-aws

Deploys AutoMuteUs to ECS/Fargate/EFS/Route53 as cheap as possible.

Instruction

  1. Put secrets to SSM Parameter Store.
$ aws ssm put-parameter \
@y13i
y13i / default.ahk
Last active October 21, 2019 19:55
#SingleInstance force
#NoEnv
#Warn
SendMode Input
SetWorkingDir %A_ScriptDir%
sc03A & a::Send {Home}
sc03A & b::Send {Left}
sc03A & c::Send ^{c}
{
"Parameters": {
"InstanceType": {
"Type": "String",
"Default": "t3a.micro"
},
"ImageId": {
"Type": "AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>",
"Default": "/aws/service/ecs/optimized-ami/amazon-linux-2/recommended/image_id"
},
{
"Parameters": {
"VpcCidr": {
"Description": "VPC network range. https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html#VPC_Sizing",
"Type": "String",
"Default": "10.0.0.0/16",
"AllowedPattern": "^(10\\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|172\\.(1[6-9]|2[0-9]|3[01])|192\\.168)\\.0\\.0/(1[6-9]|2[0-8])$"
},
"SubnetCidrBits": {
"Type": "Number",
// todo: use https://github.com/transitive-bullshit/random
function rnorm() {
return (
Math.sqrt(-2 * Math.log(1 - Math.random())) *
Math.cos(2 * Math.PI * Math.random())
);
}
function textpand(text, length = text.length, sd = 0) {
@y13i
y13i / file1.txt
Last active December 26, 2018 06:51
Cursor-based Pagination な API を RxJS でリアクティブに処理してみる ref: https://qiita.com/y13i/items/1fdd33a49bce80712fe8
await listObjectsAsObservable(s3, {
Bucket: bucket,
Prefix: prefix,
MaxKeys: 50
})
.pipe(
tap(listObjectsResult => {
console.log(
`!!! list contains ${listObjectsResult.Contents!.length} items.`
);