programming
を作った。L, Wの表記にまだ対応できてなかったり、期間が長くなると計算量が増え遅くなるなどイケてないのだけれど、自分の利用用途においての必要最低限まで実装した。 github.com
この記事は、裏freee Developers Advent Calender 2018の5日目です。 時がすぎるのは早いもので、freeeに入社していつの間にか1年4ヶ月経っていました。現在私はfreeeのサービス基盤というチームでマイクロサービスをつくったり、サービスの改善のための足回…
私の周りで情報共有のためのツールとしてesa.ioというサービスを深く愛用させていただいております。最近使い始めて1年が経ちました。サービスを使っていく中で最近あったちょっとした出来事とそれを改善するために作ったchrome extensionについて紹介しま…
nginxでメンテナンスモード時の503と通常時の503でhtmlを分ける方法について書きました。
nginxには定義した特定のcontent-typeの時にレスポンスの中の文字列を書き換えるsub_filterという機能があります。 こちらですね。Module ngx_http_sub_module できることは文字列の書き換えで、 sub_filter 'example.com' 'www.example.com'; と定義すると…
github.com 雑ですが、必要に迫られて作ってみました。 作成の経緯 RDS上でMyISAMの暖気がしたかったのです。RDSだとデータディレクトリcatでOSのキャッシュに載せるとかできないからクエリなどでできないか調べつつ作りました。先人の方々で作っていらっし…
mackerel-agentをecsで使う
書いた gist.github.com
ECSでSpotFleetを使うための設定です。
ESCへの自動デプロイの設定をやったのでその備忘録です。ecrにリポジトリを作って、コンソール上から手動プロイできる状態まではできている前提で話します。 circleciへ環境変数を設定する ますcircleciのwebコンソールのtarget-project -> settings -> Envi…
最近kramdownというgemを触る機会が増えてきたのですが、使い方など参考にしようとググっても実際に使ってみた例などあまり多くはないようなので公式のドキュメントを参考にしつつ、実際に使ってみようと思う。長くなりそうなので今回は簡単な紹介だけします…
私は新規で作成するテーブルにはほぼ必ずidカラムを作成しています。定義は以下のような感じです。 `id` int(11) NOT NULL AUTO_INCREMENT, ... PRIMARY KEY (`id`) 自分がidカラムつけるのは主に、データ量が膨大なテーブルを扱う時にシーケンシャルな処理…
先日勤怠のChrome拡張を作ったというブログを書きましたが、一人でしばらく使ってみて便利だったので今回社内向けに公開しようとおもって調べました。 macotasu.hatenablog.jp 社内向けに公開する方法 社内向け = 一部のユーザに限定して公開とした時に現状…
会社の出勤時にいつも Chrome起動 -> ブックマーク開く -> 勤怠のページ開く -> 出勤ボタンを押す としていてこの操作に20秒 ~ 30秒ぐらいかかっていた。会社の出勤時間ギリギリでついた時とかこの時間がちょっと煩わしくてChrome拡張を作った。Chrome拡張に…
Railsとかに限った話じゃなくて、開発中のサーバー時刻を任意の時間に変更したいといったことはよくあると思う。 そうかの有名なアニメ、「時をかける少女」でいうタイムリープをしたいということである。 タイムリープする方法は アプリケーションの内部時…
多段SSHの設定いつも忘れるのでブログる。 まず設定の例から書くと Host fumidai HostName hoge User macotasu Port 10022 Host target-server HostName fuga User macotasu Proxycommand ssh -CW %h:%p fumidai こんな感じでsshの設定をかいて多段sshにする…
前にダミーデータサクッとつくりたいわっておもって、便利ストアドプロシージャつくったのでブログにも書いておく。 gist.github.com SELECTして結果をINSERTするところをコピペしていけば、ストアドプロシージャなんかつかわないでもいいんだろうけど、DRY…
丸一日かかってしまったけど、ちゃんと作ってみた github.com 構成 Kossy DBIx::Sunny etc... DBIx::Sunny初めて使ったけど、シュッと使えて便利だった 感想 今まで一人で一からアプリケーションを書くことは、あまりなかったから良い経験になった それと共…
ISUCON5の本戦をchatzmersとして参戦してきました。 結果からいうと惨敗でした。 敗因としてRobert C. Pike氏の下記の言葉に全て詰まっていると思います。 推測するな、計測せよ どういうこと? 今回使用されていたデータベースがpostgresでした。 僕たちは …
社内ISUCONには何度か参加したことあるものの、社外の人も参加するISUCONには初めての参加でした。 チーム名は「chatzmers」で、弊社の2013年新卒同期の @m0t0k1ch1 と @rg_gs と 僕 で出場し、最終スコア 21242 で予選総合4位で通過しました。 isucon.net …
ふと気になったのでベンチマーク取ってみた。 ベンチマーク #!/usr/bin/perl use strict; use utf8; use warnings; use DateTime; use Benchmark qw(:all) ; my $now_1 = DateTime->now; my $now_2 = $now_1->clone; my @times = ($now_1, $now_2); my $toda…
golangっぽいコードに整形してくれるgofmtをcommit直前に実行し、 gofmtの結果追加の差分がでたら、1度commitを取りやめるようなcommit hookを書きました。 gofmtは差分があってかつ、拡張子が.goのファイルにのみ実行されます。 デモ コード gist.github.co…
ローカルPCで新しく追加したり、修正加えたテストを実行する時 prove -v t/hoge.t t/fuga.t ... みたいに普通にやっていたんだけど、 git使ってるし、変更あったファイルをテストするのもっと楽にできるやんって思って #!/bin/sh git diff --name-only HEAD …
go-irceventでbotを作成しました。 本当は既にあるperlで書かれたbot使えば良かったのだけれども、 どうぜやるならgolangでbot書きたいなって思って勢いで作りました。 気にした点とか 何も考えずにgo-ircevent使うとif Aというコマンドの時はみたいな条件分…
容量がいっぱいになってmysqlが落ちたました。 もちろんテスト環境です。 落ちた時の状況としては テストデータ作成スクリプト流している 突然のRollback、mysqlに繋がらなくなる エラーログに'full~'みたいなエラーででてる っていった感じです。 サーバー…
AwsConsoleでS3からファイル落とそうとすると,一個ずつポチポチしなきゃいけなくて辛いなーって思ったのでGoで書いてみました。※1 github.com 導入 1.aws configureでaccess_key_idとsercret_keyを設定 $ aws configure AWS Access Key ID [NONE]: *** AWS S…
SELECTで取ってきたレコードをソートして、ソートした結果に連番でidふるみたいなことできないかなーとおもってmysqlのドキュメント読んでたら変数を使えることを知りました。 MySQL :: MySQL 5.7 Reference Manual :: 9.4 User-Defined Variables 変数使え…
この間他の人が作ったコードを実行したのけれど、そこにバグがあってつらーってなりました。 でもそのコード自分もレビューしてたし、なんで見つけられなかったのかなーって考えたことをまとめます。 作成した実装が本番で動くまで まず、実装したものが本番…
最近single_or_createというメソッドをつかっていて、つらくなったのでメモ。 まずsingle_or_createとがどういうコードかというと、 sub single_or_create { my $self = shift; my $row = eval { #…insertの処理を走らせる }; if (my $e = $@) { # ..depulic…
wookmarkというpintarest風なタイル上のUIを実現するplugin使おうとしたけど、使い方がいけなかったらしくハマった。 やっていたことはhead内でjsの定義とjqueryの定義かいてたんだけど、実際はbodyに定義されている要素に対して動くものだから、bodyの閉じ…