nがひとつ多い。

えぬなおの技術的なことを書いていくとこ。

【WSL2】WSL2でgitが遅いのをなんとかする

WSLとgit 理由は単純 どうする? デモ WSLとgit WSL2を普段使っているが、大きなプロジェクトになるとgit statusが非常に遅いのがストレスになってきた。 ❯❯❯ time git status git status 0.05s user 2.60s system 44% cpu 6.010 total ❯❯❯ date '+%Y-%m-%dT…

某CS大学院に合格しました

2020年10月から恐らく僕は学生となります。 大学院行く動機 作戦 研究テーマ セキュリティ? 面接前 面接 締め 大学院行く動機 今までの自分の知識基盤が歪で、体系立ってない自分の雑魚さに遂に嫌気が刺した 洋書読むと英語/数学/CSの知識が当然のように要…

【Vue】【CSS】Vue.jsで"""最初から開いた状態"""でアコーディオンしたい

アコーディオン?? へえ、じゃあそれでいいじゃん。 試行錯誤 そもそもどうアニメーションしているのか。 なにが悪いのか 問題点を洗い出す 結論 感想 アコーディオン?? 元々jQueryで実現されていたアニメーションで、 イベントに応じて、隠れた要素が伸…

【EKS】【CDK】eksctlからcdkにEKSのデプロイ機構を移した

はじめに サービスで使用しているEKSのデプロイをクラスターバージョンを変えるのを機に、 デプロイだけCDKでやることにしたのでその話を備忘録としてまとめておく。 はじめに eks eksctl cdk cdkのeksリソースってどうなの? なんでeksctlからcdkに変えたの…

OSXでfzf(peco) + ghq + Intellijでコマンドラインからintellij IDEAを呼ぶ

TL;DR peco + ghq + VS Codeとかでやってるのと変わらんけど。 VS Codeでもghq - Qiita ghq, peco, hubで快適Gitライフを手に入れよう! - Qiita ghqでインストール済みのレポジトリをIntellij IDEAで開く gi() { local REPO=$(ghq root)/$(ghq list | fzf) …

【Scala】catsのValidatedの使い所、及びValidatedNecとValidatedNelについて

初めに 本記事は Scala Advent Calendar 2019の12日目の記事の代行です。 仕事でなんとなく使っていた、 Scalaの関数型ライブラリのcatsのバリデーションモナドのValidatedNecとValidatedNelの違いについて勉強していきます。 typelevel.org catsのValidate…

【Kubernetes】KubernetesのCronJobのcronスケジュールはどう管理されているのか?

はじめに 本記事は Kuberenetes Advent Calendar 2019の17日目の記事です。 Kubernetesのリソースの中に、定期的に揮発性のあるジョブを生み出すCronJobについての記事です。 はじめに 本題 ソースを読む。 syncAll syncOne getRecentUnmetScheduleTimes cro…

【kotlin】kotlinで書いたスクリプトを叩きたい人生だった

はじめに 本記事は Kotlin Advent Calendar 2019の9日目の記事です。 はじめに この記事で書くこと ①ktsファイルを書いて実行する。 ②kotlinで書いてgradleで叩く。 ③kscriptを使う。 おわりに この記事で書くこと kotlinのプロジェクトを管理していると、 …

【kotlin】kotlin製ORM Exposed小技集

はじめに 本記事は Kotlin Advent Calendar 2019の8日目の記事です。 Jetbrain社製のkotlinで書かれたORMについて話していきます。 github.com はじめに Exposedの軽い紹介 やっていき そもそもSELECT文で取り出したEntityをData Classに射影するのどうする…

kotlinのコードにReturn Resultを組み込む

はじめに 本記事は Kotlin Advent Calendar 2019の1日目の記事です。 今回は前回当該ブログでも紹介しました、https://github.com/michaelbull/kotlin-resultについて事例をつけてご紹介させていただければと思います。 はじめに michaelbull/kotlin-result…

【Kotlin】kotlinでmichaelbull/kotlin-resultを使うススメ

関数型プログラミングによくあるResultって便利だよね 例えばRustでは標準で搭載されているFunctionalなエラーハンドリングの表現の一つで、 fn hoge() -> Result<String, Error> { match huga() { 0 -> Ok("OK".to_string()) _ -> Err(Error("error occured")) } } みたい</string,>…

【Vue.js】【Nuxt.js】cookie-universal-nuxtで複数の値をcookieのキーとする。

cookie-universal-nuxt? nuxtでcookieを使うライブラリ www.npmjs.com cookieを入れるときはこんな感じ export default { created() { this.$cookies.set('isVisited', true, { path: '/', maxAge: 60 * 60 * 24 * 7 }) } } もらうときは data () { return …

【Scala】関数型初心者のカリーの勉強

カリー この事らしい。 def curry[A,B,C](f: (A, B) => C): A => (B => C) = (a: A) => (b => f(a, b)) // curry: [A, B, C](f: (A, B) => C)A => (B => C) 異なる型パラメータA,B,Cに対してA,Bを引数に取り戻り値がCとなるような関数をAを引数にして戻り値…

botkubeへのプルリクが無事マージされた

botkube? botkubeはinfracloud社が出している、kubernetes上で動くChatOpsをするためのbot。k8s上での必要最低限欲しいイベントをフックしてslackとかに投げてくれたり、 @botkube get node みたいにkubectlみたいにchat上でコマンドを投げればその情報を取…

【Rust】連続した文字列を1個にする。

TL;DR fn main() { println!("{}", space_replacer("hello world dayo e?".to_string().as_mut_str())); } fn space_replacer(src: &mut str) -> String { let dst = &mut src.replace(" ", " "); match dst.find(" ") { Some(_) => { space_replacer(dst) }…

【Rust】【Docker】Cargoプロジェクトで素直に書いたDockerfileをdocker buildするとソースが書き換わるたびにフルビルドが走って滅茶苦茶遅いのを対策する方法を改良してもっとキャッシュさせる。

目次 目次 ソース 問題点 おさらい 対策:ダミーのCargo.toml Cargo.lockを作ってDockerfileに仕込んでおく。 dummy-cargo-toml-createrは何をしている? 最後に ソース RustのCargoプロジェクトで素直に書いたDockerfileをdocker buildするとソースが書き換…

【Kubernetes】【Network】GKEの1.14で追加されるIPマスカレード出来るアドレス範囲について。

ある日、こんな記事が。 Release notes (Rapid channel) | Kubernetes Engine Documentation | Google Cloud GKE Sandbox is supported on v1.14.x clusters running v1.14.2-gke.2 or higher. The following IP ranges have been added to default non-IP-m…

【AWS】【Python】Botoでs3の署名バージョン4でAPI叩くのをソースコード変えるだけでやる

TLDR; botoを対応バージョンにしてから、 $ pip install -U boto==2.49.0 boto.config で指定してやる。 if not boto.config.get('s3', 'use-sigv4'): boto.config.add_section('s3') boto.config.set('s3', 'use-sigv4', 'True') s3 = boto.s3.connect_to_r…

【Docker】指定したDockerのイメージを全部消す

TL;DR docker-rmi-all(){ if [ -z ${1} ]; then echo "Usage: ${0} <docker image name>" return 1 fi docker images | grep ${1} | tr -s ' ' | cut -d ' ' -f 2 | xargs -I {} docker rmi ${1}:{} } docker image prune? docker image pruneだと「システムに利用されてないイ</docker>…

【Rust】Twitterのstream apiの現状とRustでの実装について

とある嫁案件が事の発端 要件と成果物 要件 成果物 Twitterまわり TwitterのStreamって廃止されたんじゃないの? Twitter APIを叩くのに開発者用のアカウントを作らなきゃいけない。 Rustまわり 使ったライブラリについて 420コード 420コードへの対処 420コ…

【zsh】ZshrcやZshのプラグインの開発環境のdockerイメージを作った。

Zshrcの開発環境・・・? zshrcやzshのプラグインの開発環境として、dockerイメージを作成した。 github.com hub.docker.com まぁなんで作ったかって言ったらなかったからだけど。 Dockerfile # 1st stage, for development container FROM centos:7.6.1810 …

【AWS】【Go】GoのSDK(guregu/dynamo)を使ったDynamoDBのテーブル定義とコード設計

DynamoDBとは。 DynamoDBはNoSQLで、速くてサーバレスな奴だが、詳しい説明は他所に任せたい。 www.ketancho.net dev.classmethod.jp DynamoDBをGoで扱うには。 どうやら guregu/dynamo を使ってやるのは一般的らしい。 qiita.com しかし、↑やREADMEにはINDE…

【Fluentd】fluentdでdockerのlogを直接読み込む時にfluent-plugin-dockerが使いやすい

dockerのログのデフォルトのフォーマットはjsonな事が多いね ってか今もデフォルトでjsonだっけ?とりま今現状GKEとかEKSとかECSとかで、アプリがどっかに吐いたJSON形式のログをfluentdのdaemonsetでログを見に行って出力してみるとこんな感じになってる。 …

【Go】zapで出力時のLevelに色をつける

Go

zapって? uber社が作っているgolangで使う超いけてるログドライバ。 github.com 基本というかほとんどの日本語情報は以下を見ればいい。 qiita.com 構造化されたログを吐き出す癖にあらゆる非構造化ログドライバより速いらしい。 (真面目な話、非構造化って…

【Rust】コードで理解するトレイト

はじめに 主に僕は書籍を通じてRustを勉強していたが、はっきり言って全く理解できなかったので生存期間に引き続きコードで記述する事で理解しようと思った。 Rustのモジュールの考え方について Rustは任意の型に対して通常 impl を用いて以下のようにモジュ…

【Go】Go言語で指数表記の文字列型を数値型にパースする。

Go

指数表記の文字列型???何それ? これ。 package main import ( "fmt" ) func main() { fmt.Println(float64(1000000)) //-> 1e+06 } play.golang.org goで浮動小数点数型をデフォルトではフォーマットした時に 1e+06 のように出力され、こういう表記を指…

【Rust】コードで理解する生存期間

はじめに。 Rustの言語機能の核に、所有権、参照、そして生存期間とあります。 個人的に生存期間が特に理解が難しかったので、復習がてらブログを書きます。 生存期間とは? Rustコンパイラは全ての参照型に対して、その参照の使われ方によって生じた制約を…

【Rust】nightlyでrlsなどの開発ツールがインストール出来ない時にする事。

Rustのバージョンには。 stable beta nightly という三種類があり、nightly は最新の開発版で、stable がリリース版です。beta では nightly でのテストが終わりリリースに向けた機能が利用できます。普通の感覚では、 stable を皆手に取るでしょうが、例え…

multipassでOSX上にmicro-k8sを立てる。

はじめに この記事はCyberAgent Advent Calendarの20日目の記事になります。 adventar.org ローカルにkuberentesを立てる時、皆さんどうしてますか? うん、多くの人は minikube をたてて試していることでしょう。 github.com しかし minikube は色々なプラ…

Goでxo/xo入門

はじめに この記事はGo Advent Calendar 2018の19日目の記事です。 結構今更ですが、僕は本番環境で投入しているものの、あんまり知られてないようなので改めて書いてみます。 自動DBモデリングツールxo/xoの紹介 github.com ラーメンを美味しく料理するため…