ぶていのログでぶログ

思い出したが吉日

Ruby

#isucon 11にチーム大和田純愛組で参加してきた

ISUCON11に @pyama86 と @osamtimizer と3人で参加した。 ベストスコアはリーダーボード上で15977。その後ポータル上で記録はされなくなたけど、@pyama86がRedisでのキャッシュを入れたのが反映されて16128になっていた。 感想 12:00くらいにGET /api/trend…

reddish-shell v0.10.0 開発進捗 | mruby3.0対応, GithubActionsの設定, READMEのアップデート

v0.9.0のアップデートから1日くらいしか経っていないけどmruby3.0に対応したので新バージョンリリース。 commit一覧: 7e9242c v0.10.0 e5ef68b Merge pull request #3 from buty4649/readme e03874d Add notes on using iruby. 0319149 Update README.md 373…

reddish-shell v0.9.0 開発進捗 | 内蔵Rubyコマンド/break,continueの実装/for文の追加/シグナルハンドラーの見直し | mruby3.0対応の予定

reddish-shellのバージョンアップ報告。 粛々と開発つづけてきて、やっと普通のシェルくらいの機能にはなってきたかな?しかし、まだ実用までは長い。。 今回は特にシグナルハンドリング周りがとても大変だった…。 commit一覧 ba37780 Include all core gems…

reddish-shell v0.8.0 開発進捗 / 複数行サポート,バグ修正,コマンド補完,コマンド置換,while/until文の追加

前回から間が空いてしまったが久しぶりのバージョンアップ。 間が空いてしまったのは、あまりいい実装案が思いつかなかったのが原因。ooo このままだ、ズルズル開発が止まってしまうと思ったので、一旦実装したいやつを後回しにしてできるところから作ってい…

reddish-shell v0.7.0 開発進捗 / hisotryの有効化とthenの省略と$IFSの見直し

前回、if文におけるthenキーワードを省略できないと書いたが、画期的なアイディアをひらめいて解決したので嬉しくなってバージョンアップした。 そして、この記事を書いている途中でunless文のthenを省略できるようにすることを失念したことに気がついた…。 …

reddish-shell v0.6.0 開発進捗 | parser/lexerの見直しとif文/unless文の追加

期限のあるなにかに迫られていると、別のことが捗るわけでreddish-shell v0.6.0になった。 一区切りついたので、もう1つの進捗も上がるだろうたぶん・・・ commit一覧 * f4d5f0a Improve parser * 69a3c3c Improve lexer * 33e0a64 Add if statement * ced3…

reddish-shell v0.4.0とLinuxシスプロの学び

先月からほそぼそと作っているシェルのv0.4.0をリリースした。 github.com 追加した機能としては リダイレクト機能 コマンド制御演算子 && / || / ;' /&` パイプ機能 cmd1 | cmd2 ビルトインコマンド builtin / cd / echo / puts %記法 %Q / %q bintestの追…

RubyでOpenStack APIを扱うYaoとyao-yrbの紹介

この記事はペパボアドベントカレンダー2019の1日目の記事です。 今年も残り1ヶ月。早いものです。 ペパボでは、OpenStackを使ってプライベートクラウドを構築しています。 OpenStackを運用するうえで、APIを利用して情報を取得したり、インスタンスを作成し…

Nginxの真偽値とmruby_setの戻り値について

ngx_mrubyを使ってNginxを制御するときに、 mruby_set と if を使うことが多いと思います。 例えばiPhoneからのアクセスの場合のみ特定の処理をしたいとします。 その場合以下の様なコード(nginx.conf)になると思います。 mruby_set_code $is_iphone ' hin =…

貴様は今までにSlackで審議リアクションを付けられた数を覚えているのか?

貴様は今までにSlackで審議リアクションを付けられた数を覚えているのか?— ぶてい (@buty4649) 2016年5月25日 A. 85 Slack APIでリアクションが取れることを知ったので実際にカウントしてみた。 最初 reactions.list で取ろうと思ったけど、これはリアクシ…

AtCoder034のA,BとAtCoder038のA,B,Cを解いた

先週サボってしまったので社内で課題になっていたAtCoder034と、来週までの宿題のAtCoder038を解いた。 AtCoder034 A: Submission #748515 - AtCoder Beginner Contest 034 | AtCoder B: Submission #748523 - AtCoder Beginner Contest 034 | AtCoder 特筆…

AtCoder035を解いた(その2)

buty4649.hatenablog.com 前回解いたAtCoder035をもう一回解き直した。 まず最初に作ったのはテストを追加した。 例題の問題を突っ込んで、答えがあっているかを確認するだけ。 https://github.com/buty4649/atcoder/tree/master/035/spec 次に、Aを直した。…

AtCoder035を解いた

最近社内でAtCoderを解いて、互いにレビューしよう!みたいなことをやっている。今週のお題は035。 abc035.contest.atcoder.jp 1時間1本勝負で解いてみた。 といっても、1時間で解けたのはAとBだけで、Cは途中まで手をつけて回答を送信したのが1時間20分くら…

100行あったmod_rewirteを ngx_mrubyで書き換えた話というタイトルで発表しました!

speakerdeck.com 第5回ペパボテックカンファレンス〜インフラエンジニア大特集〜 - connpassという会社のカンファレンスで発表しました! 発表後に id:matsumoto_r から補足いただきました! ありがとうございます m( )m luaを積極的に使う場合はブロックす…

オブジェクトが多すぎて削除できないS3バケットを削除するツールを作った

github.com 不要なS3バケットを削除しようと思って、 s3cmd rb --recursive --force s3://foobar を叩いたけど全然削除されなかった。。。 WebUIから削除しても エラー としか表示されずなぜか削除できない。。 ネットで調べるとどうやらオブジェクトが多す…

YAMLを入力してerbを使って出力する奴を作った

2015/07/27追記 id:lamanotrama さんから * JSONじゃなくてYAMLでは? * それglidenote(さん)が作ってるよ - glidenote/genecon · GitHub っていうことを教えてもらいました!あざまっす! やっぱり車輪の再発明だった!つくりこまなくてよかったー サーバか…

csvawkなるフィルタを作りたいと思った

csvprintf とか csvfilter とか試したけどしっくりこず。 awkな感じでさっくりCSVをいじれたらいいなぁっと思って作ってみた。 けど、イマイチ感。 $ csvawk() { eval "ruby -rcsv -lne 'CSV.parse(ARGF){|r| \$_=r.join(\",\");\$F=r;$1}' $2"; } $ cat hog…

git browseでリポジトリのリモートURLをブラウザで開く奴

作った。 alias git=hub すればいいのだけど、これだとGH:Eなリポジトリだとうまくいかない。 なので、てきとーにラッパースクリプトを作った。 https://github.com/buty4649/dotfiles/blob/master/bin/git-browse

rubyで文字列->数値参照文字変換(ただしUnicodeのみ)

str = "ほげhoge" p str.gsub(/[^\u0000-\u007f]/).each{|m| sprintf("&#x%04x;",m.unpack("U")[0])'} //-> "ほげhoge" まぁ、普通にhtmlentitiesライブラリ使った方がいいと思います。

rbenvとplenvのセットアップ

AMIのUbuntu 13.04にrbenvとplenvをインストールした時のログ 下書きのまま放置してた… rbenv $ sudo apt-get install gcc make git libssl1.0.0 libssl-dev $ cd /usr/local $ sudo git clone --depth 1 https://github.com/sstephenson/rbenv $ sudo vi /e…