2018-01-01から1年間の記事一覧

cfn-lint で CloudFormation のテンプレートの検証をする

CloudFormation のテンプレートを作っている時、 いちいちコンソールにアップして確認していたら時間がかかってしまう。 そんな時に便利なのが cli でテンプレートファイルの チェックをしてくれるcfn-lint。 使い方も簡単で $ cfn-lint validate ./cf-templ…

shell で tap 関数を作ってみた

ruby にtap メソッドというものがあって、 メソッドチェーンしてる時のデバッグに便利なんですが、 shell でパイプライン使ってる時の デバッグにも使えそうなので、作ってみました。 ただし、処理を入れる事はできなくて 標準エラーに内容を表示するだけで…

Swagger を試してみた

そろそろ手書きで API の仕様を作るのやめたいと思って swagger を試してみました。 swagger は別に単一のソフトではなくて、 Swagger Spec という仕様で書かれた定義書を 元にドキュメントを書いたり、コードを生成したりできるものみたいです。 Swagger Ed…

loadtest, httperf でお手軽負荷テスト

go で作った WebAPI サーバの速度検証をしてみました。 単に GET リクエストを投げるだけでよいので、JMeter でなくて お手軽にできるツールでやりました。 loadtest node.js 用のテストツールで 自分でリクエストを好きに定義できるのが特徴です。 例えば、…

python のスーパーセットな関数型言語 Coconut を試す

パイプライン演算子が使える言語がないか探していたところ Coconut というものを見つけました。 公式の説明を見ると 関数型言語で Python にコンパイルされる Python のスーパーセット なにそれ面白そう。 という事で、ちょっと触ってみました。 インストー…

インストール不要のチートシートツール cheat.sh

要は man の代わりに使うツールなんですが、 こいつのすごいところはインストールしなくても使えるところで、 例えば、ls の使い方を知りたい場合 $ curl cheat.sh/ls だけで OK です。 DL して使うコマンドラインツールもあるみたいなんですが、 サーバーが…

Go で errgroup を使って直列 vs 並列

直列 vs 並列シリーズ第 3 弾。 あんまり errgroup を使ったサンプルがなかったのでやってみた。 package main import ( "fmt" "io/ioutil" "net/http" "sync" "time" "golang.org/x/sync/errgroup" ) func createUrl(sec int) string { return fmt.Sprintf(…

PHP の Guzzle で直列 vs 並列

前やった node.js の Promise で直列 vs 並列を php でやってみた。 素の php だと非同期処理はめんどくさいので 今回は Guzzle を使ってみた。 Guzzle は非同期もできる http クライアントだけど、 Guzzle Promises を使えば 一般的な処理も非同期で書ける…

AWS の ECS & Fargate でゆるいバッチ環境を作る

仕事で以下のようなバッチを作る事になったのでその記録をメモしとく。 月 1 回実行 内容は手動でやってた作業を自動でやって結果をメールするだけ 実行には 30 分ほどかかる 全然クリティカルじゃない エラーが発生しても連絡があってから再実行すればよい …

typescript の async/await で直列 vs 並列

typescript でちょっとやってみました。 http://httpbin.org/delay/{delay} というのは delay 秒待ってからレスポンス返してくれる URL です。 /* * serial vs parallel */ import request from 'request-promise-native'; function createUrl(sec: number):…

コマンドラインで json を作る

json をパースするツールとして jq というのがありますが、 その反対、json を作るツールとして jo というのがあります。 使い方 引数でキーと値を指定する $ jo key=value {"key":"value"} 配列を作るときは -a オプションをつける $ jo -a 1 2 3 [1,2,3] …

fselect で SQL ライクにファイルを検索する

fselect という ツールを見つけて、面白そうだったんで触ってみた。 主な機能はこんな感じ SQL like な検索 正規表現も使える 出力フォーマットの変更可能(json, csv...) mp3 対応 早速インストールして fselect のリポジトリで試してみる。 $ fselect name,…

Elixir がよかった件

昨年は いま学ぶべき第二のプログラミング言語はコレだ! 未来のために挑戦したい9つの言語とその理由 の記事がきっかけで Rust, Haskell をやって非常によかったので この流れで残りの Elixir もやってみた。 テキストはもちろんこれ 最速で知る! Elixirプ…

色々な言語で偶数自乗和 その2

TL;DR Haskell ならパイプライン演算子を自分で定義できるよ java8 import java.util.stream.IntStream; public class Main { public static Integer evenSquareSum(Integer n) { return IntStream.range(1, n) .filter(n1 -> n1 % 2 == 0) // variable n is…

色々な言語で偶数自乗和

TL;DR パイプライン演算子いいね このごろ新しく言語を見る時、Hello world の次くらいに偶数自乗和を 作る関数を定義してる。Ruby で書くとこんな感じ。 def even_square_sum(n) (1..n) .select {|n| n % 2 == 0} .map {|n| n * n} .inject {|acc, n| n + a…