Alligator Swamp

技術メモ

Obsidianを使い始めたのでCSSスニペットを使って自分好みにカスタマイズした

技術メモとかやることリスト、ブログネタなどを残すために色々アプリを使ってきたが、最近はObsidianをメインにしている。 過去にはmemolist.vim、inkdrop、Quiverを使ってきたが、今の所Obsidianで落ち着きそう。 obsidian.md 外観 heading要素のフォントサ…

fern.vimが便利

普段はVimを使っていて、左側にディレクトリツリーを表示したいのでNERDTreeを使っていたが、最近気になっていたfern.vimに乗り換えてみた。 github.com ついでにNerd Fontsも導入して見た目を良い感じにしてみた。 https://github.com/miiton/Cica https://…

複数のログファイルをtd-agentを使ってCloudWatch Logsに送る時にログファイル名をログストリーム名にする方法

ひと手間加える必要があったのでメモ。 バージョン td-agent v3.8.1 fluent-plugin-cloudwatch-logs v0.13.0 方法 まずファイル名をタグに入れるために、 tag にワイルドカードを指定する。こうすることで、フルパスが tag の末尾に追加される。(デリミタは…

ISUCON10予選にk02で参加して敗退しました

ISUCON10予選にいつものメンバー(kyokomi, yasu)で参加して敗退した。 最終スコアは1,188で、全チーム(468チーム)の中では129番目。 初期スコアが500前後、予選通過ラインは2,100ぐらいだったので、良いとは言えないスコアかなと......。 ISUCON10 オン…

ISUCON9予選にk02で参加して惨敗しました #isucon

いつものメンバーでISUCONに参加して惨敗しました。いつもどおりインフラ面を担当。 最大スコアは3,120で、最終結果は fail でした。 事前にやったこと チームで集まって打ち合わせとISUCON8予選を軽く解く Prometheus + Grafana を使うことに決めたので、使…

ISUCON8本戦にk02で参加し惨敗しました(15位)

初の本戦出場、スコアは5,124で順位は30組中15位でした。 シェアボタンを有効に出来ず勝負の土俵に立てなかったので、非常に悔しいです。 当日やったこと [10:00 - 10:30] ポータルサイトにログインしてレギュレーションを読む 初期状態でベンチ実行 isucon…

ISUCON8にk02で参加し予選突破しました

k02 (kyokomi, yasu, waniji) で参加するのは4回目で、今回は初の予選突破をしました。とても嬉しい。スコアは 39,282 で、528組中16位でした。 ISUCON8 2日目の結果と本選出場者決定のお知らせ : ISUCON公式Blog ISUCON8 オンライン予選 全ての順位とスコア…

YAPC::Asia Tokyo 2015 に行ってきた

1日目(+懇親会)、2日目と参加してきた。 参加したトークは以下。 1日目 Opening メリークリスマス! 【sponsored contents】若手エンジニア達の生存戦略 Perl6 on JVM: It works?? Lightning Talks Day 1 2日目 ISUCONの勝ち方 Perl 5.22 and You Adventures…

EC2上のログをtd-agent使ってCloudWatch Logsに投げようとしたらSSL認証エラーになった話

EC2上のログを、td-agentとfluent-plugin-cloudwatch-logsを使ってCloudWatch Logsに送信しようとしたところ、SSL認証エラーが発生したので、エラーの解決方法を調べたのでまとめてみた。間違っている箇所があれば指摘ください! before_shutdown failed err…

2014年振り返り

各月ざっくり 1月 AsakusaSatellite導入した 各種通知をAsakusaSatelliteに流す対応をする 2月 Developers Summit 2014に参加 Perlのテスト結構書く 3月 Perl 5.8.8から5.18.2への移行対応 CartonとかApp::FatPackerとか試す Coroを使って非同期処理を書く …

ある範囲内の日付時刻を、指定間隔で反復するTime::Piece::Iteratorというモジュールを作った

この記事はPerl Advent Calendar 2014の18日目の記事です。 17日目の記事はid:kfly8さんの間接オブジェクト記法のアンチパターンでした。 Time::Piece::Iterator Time::Piece::Iterator 指定した範囲内の日付時刻を、指定した間隔で反復するモジュールが欲し…

Chefでdirectoryをrecursive trueで作成するときの注意点

階層の深いディレクトリを作成するとき、mkdir -pのように一気に作ろうとrecipeを作った。 directory '/home/user/foo/bar' do owner 'user' group 'user' mode '0755' recursive true end しかし、これだとownerとgroupとmodeの指定が、一番深い階層のディ…

Time::Pieceを使って月末判定

日付が月末かどうか判定する処理、今までもっと無駄に書いてた気がするけど、こんな感じで良かった。 use Time::Piece; my $now = localtime; if( $now->mday eq $now->month_last_day ) { print "月末!", "\n"; }

Chiba.pm #5 に行ってきた #chibapm

Chiba.pm #5に参加し、LTもして来ました。 初めてこういった場でLTをさせて頂いたので、とても緊張しましたが、良い経験になりました。 Path::Tiny from waniji (reveal.jsで作った資料をPDFエクスポートしたらレイアウト崩れてしまいました) 内容は、最近…

ISUCON4の予選に参加してきた #isucon

ISUCON4の予選にkyokomiとyasuunとチームを組んで参加してきました。 1日目に参加し、最終送信結果は15107、benchmark v2では17124と予選通過には程遠いスコアでした。 しかも、AMI審査方法の通りに実行してみたら見事にレギュレーション違反! 来年リベンジ…

YAPC::Asia 2014に参加してきた #yapcasia

去年初めて参加したYAPC::Asia。2回目の参加です。 ちゃんと感想を書いて、今年のYAPCを終えようと思います。 印象に残ったセッション Releasing perl ドキュメントの充実や開発プロセスの簡略化にかなり力を入れていて、 長く続けていくにはこういった地道…

Vimでヤンクした内容を複数行にペーストする

参考にさせていただいた記事 検索・置換に便利なヤンク(レジスタ)【Vimコマンド】にさん追加7/3 - YKMbPP やりかた Ctrl+rを押した後"を入力すると、入力モードやコマンドラインモードでもヤンクした内容をペースト出来るようなので、以下の手順で複数行ペ…

HerokuにHubotをデプロイしてSlackと連携&Travis CIで自動デプロイ

やること Heroku上でHubotを動かす SlackとHubotを連携する Hubotリポジトリに変更があればTravis CIに検知させて自動デプロイ デプロイ完了したらSlackに通知 以上を無料枠で 前提 Mac OSX 開発環境として使用 以下のアカウントは作成済み Slack GitHub Her…

Capture::Tinyを使ってSTDERRに何も出力されていないことをテストする

経緯 数千万行あるファイルに対して1行ごとに処理するようなバッチを書く utf8フラグ付きの文字列をencode_utf8せずに処理してしまう 大量のWide character in ...という警告がログに出力される 気付かずに本番リリースされ、それが原因で障害発生 悲しみに…

Path::ClassからPath::Tinyに移行した時に書き換えた処理

バージョン Path::Class 0.33 Path::Tiny 0.056 オブジェクト生成 Path::Classで生成したオブジェクトは、ファイルはPath::Class::File、ディレクトリはPath::Class::Dirとなる。Path::TinyはどちらもPath::Tinyとなる。 # Path::Class $file = file($path);…

ディレクトリ構成を保ったままn日以前のファイルを移動する

移動先のディレクトリ作成 find /from -type f -mtime +31 | xargs -I {} dirname {} | sort | uniq | sed 's!/from!/to!g' | xargs mkdir -pv ファイルを移動 find /from -type f -mtime +31 | sed 's!\(/from\)\(.*\)!\1\2 /to\2!g' | xargs --max-args=2 …

Perl 5.10.0以前だとFile::Spec 3.40以降のインストールに失敗する

Perl 5.8.8で試してみた。 waniji@localhost:~$ plenv versions system 5.18.2 * 5.8.8 (set by /home/waniji/.plenv/version) waniji@localhost:~$ cpanm -lextlib File::Spec --> Working on File::Spec Fetching http://www.cpan.org/authors/id/S/SM/SMU…

Carpは継承関係のモジュールを信頼する

初めに 以下のドキュメントにCarpの詳細説明があるので、それを読めば挙動が分かります。 Carp - モジュールのための warn と die の代替 この記事では、実際に継承してるコードを例に出して説明しようと思います。 コードと実行結果 client.pl #!/usr/bin/e…

Perl 5.8.8でfatpacked cartonを頑張って作った

carton bundleを実行すると、App::FatPackerを用いて、cartonを1ファイルのスクリプトにまとめてくれます。 このfatpacked cartonをCentOS5のsystem perl(5.8.8)で使用したかったのですが、carton bundleで生成されたfatpacked cartonを実行すると、エラーが…

AsakusaSatelliteを導入した

先月からAsakusaSatelliteというチャットアプリケーションを使い始めた。 今のところ、とてもいい感じに運用出来ているので、色々とまとめ。 なぜ導入したか 社内のコミュニケーションはHipChatを用いて行っているが、 業務を行っている場所では深遠な理由で…

GitLabのタイムゾーンをTokyoにする

環境 GitLab 6.4.3 タイムゾーンの初期値 GitLabは、Railsのタイムゾーンの初期値であるUTCとなっている。 OSのタイムゾーンを使用してくれないので、設定ファイルを修正する必要がある。 タイムゾーンの変更 config/application.rbを編集 cd /home/git/gitl…

2013年振り返り

2013年をまとめ。 Perl Perlを本格的に学び始めた。 はじめてのPerlを読みながら例題を解いて基礎を学び、一枚岩のスクリプトをガリガリとコーディング。 DBI使ってDBと連携、packageの作成、blessを使ったOOP、OrePANを使ったCPANのローカルミラー作成など…

GitLab 6.4にアップデートする際、libv8のインストールに失敗する

環境 CentOS 5.6(32bit) GitLab 6.3(アップデート前) 問題 GitLabを手順に従って6.4にアップデートすると、 bundle install時にlibv8のインストールエラーが発生する。 エラー内容 Installing libv8 (3.16.14.3) Gem::Installer::ExtensionBuildError: ERROR…

YAPC::Asia Tokyo 2013 の1日目に参加してきた

YAPC::Asia Tokyo 2013に参加してきました。YAPC初参加! 予定があったので1日目しか参加できませんでしたが、それでも楽しむことが出来ました。 運営、スタッフ、スピーカーの皆様、ありがとうございます。 参加したセッションの感想や自分メモなどをつらつ…

CentOS5系でGitLab5.2にアップデートするとbundle installでこける

環境 CentOS 5.6 GitLab 5.1 (アップデート前) 問題 GitLabのバージョンを5.1から5.2にアップデートすると、 bundle install時にcharlock_holmsのインストールエラーが発生する。 原因 CentOS5系の標準リポジトリで提供されているICUは3.6だが、 GitLab 5.2…