ravelll の日記

よしなに

tech

アクティブな PHP の php.ini をピッと開くコマンド

php.ini を一時的に編集したいことがしばしばあって、そのたびに php -i の出力から php.ini の場所を特定してエディタで開く、としている流れが面倒に思えてきたので簡単な alias を zshrc に登録した。 alias vpi='$EDITOR $(php -i | grep "Loaded Config…

スーファミミニの予約に失敗した

午前9時ごろから Twitter に流れる情報を見つつ幾つかの Web サイトを張っていた。しかしながら、予約には失敗した。 一度ノジマでリンクタイプのクレカ決済を入力するところまで行ったのだけど、リクエスト元のページに戻ってこれず、再度サイトが表示でき…

RFC4180 を読んだ

CSV についての RFC である RFC4180 を読んだのでメモ。 導入 CSV が広く普及したあとでも正式なドキュメントは作られてこなかった TSV については専用の MIME type がある(text/tab-separated-values)けど、CSV は作られてこなかった この RFC は CSV の…

PHPカンファレンス福岡で大規模Webアプリケーションの言語バージョンアップについてトークしてきた

PHP カンファレンス福岡にて「1人から始める大規模Webアプリケーションの言語バージョンアップ」という題で登壇してきた。 speakerdeck.com 内容は少し前に終わったバージョンアップ業の終始をまとめたもの。 登壇した会場は600人収容のホールの半分ほどに椅…

WEB+DB PRESS Vol.99 の特集記事の執筆に参加しました

6/24 発売の WEB+DB PRESS vol.99 の特集1「Rubyで学ぶ!良いコードって何だろう?現場で光る変数、メソッド、クラス、モジュール活用法」を、GMO ペパボの有志たちで執筆しました。 変数・定数、関数、クラス、モジュール、またチーム開発といった視点から …

tmux 2.4 に合わせて .tmux.conf を直した

数日前に homebrew で install できる tmux のバージョンが 2.4 になった。 https://github.com/Homebrew/homebrew-core/commit/04c280961f568c8fcd25aa35d58834e016ccbd64 tmux 2.4 では幾つかのコマンドが廃止された。特に vi-copy, emacs-copy の廃止は多…

オブジェクト指向設計実践ガイド 第7章

7章はモジュールの話。SOLID 原則の L であるリスコフの置換原則が出てきます。 第7章 モジュールでロールの振る舞いを共有する クラスによる継承はあくまで解法の1つでしかなく、クラスによる継承で解決できる問題には必ず他の解法も存在する 7.1 ロールを…

レガシーソフトウェア改善ガイドを読んだ

いくつかの書評を読んで、自身が所属するチームの活動に役立てられそうに思ったので読んでみた。 レガシーソフトウェア改善ガイドを読んだ - hakobe-blog ♨ レガシーソフトウェア改善ガイド読んだ - hitode909の日記 『レガシーソフトウェア改善ガイド』を読…

pixiv Night #02 に行ってきた

pixiv さんが話す画像処理技術、こりゃ面白そう!ということで connpass のページを見つけて即申し込んだ会でした。 pixiv Night #02 - 画像処理技術(go, blender, C++ライブラリ等) - connpass - 画像処理は大学の頃に研究で OpenCV で動画像処理をやって…

Mackerel で金の買取相場を監視する

去年末、社員旅行での抽選会で純金が当たった。 社員旅行の抽選会で純金当たった…— 谷口 (@ravelll) 2016年12月27日 これが金です。 https://t.co/mivJigz8LO— 谷口 (@ravelll) 2016年12月28日 まだしばらく売る気はないのだけど、ひとまず金相場が見たい、…

オブジェクト指向設計実践ガイド 第6章

6章は継承の話。既知の内容も多かったけど、フックメソッドのテクニックは知っておらず、なるほど〜という感じだった。 徐々にサンプルコードのコンテキストが厚くなってきたので写経しつつ読み進めた。 transcriptional_codes/guide_for_object_orient_desi…

オブジェクト指向設計実践ガイド 第5章

5章はダックタイピングの話。Ruby の特徴としてよく語られますね。 勘所がつかめると設計が洗練されるだけでなく OSS プロダクトのコードリーディングが捗って良さそうだな〜と思いました。 動的/静的型付け言語の話はなかなか強い口調で語られていて、読ん…

第110回 PHP 勉強会に行ってきた + LT してきた

phpstudy.doorkeeper.jp 久しぶりの PHP 勉強会。最後に行ったのは第96回で、調べてみたらもう1年以上も前のことだった。当時に比べれば随分と PHP に詳しくなったと思う。 LT は最近踏んだバグについて話してきた。そこそこ盛り上がって安心しました。 spea…

オブジェクト指向設計実践ガイド 第4章

パブリックインターフェースについての話。デメテルの法則についても触れていました。 第4章 柔軟なインターフェースを作る オブジェクト指向アプリケーションは「クラスから成り立ち」「メッセージによって定義される」 オブジェクトの責任 = オブジェクト…

オブジェクト指向設計実践ガイド 第3章

読み進めるうちにしばしば「あのプロダクトのあの実装はこういう意図だったのでは!」と気づいて、その瞬間が気持ち良い。 第3章では特に「他クラスへのあるメッセージ送信についての依存を、そのメッセージに応答できるダックタイプへの依存に変えるとき、…

"オブジェクト指向設計実践ガイド ~Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方" を読み始めた

2度目のパーフェクト PHP の読了を果たした一昨日から、オブジェクト指向設計実践ガイドを読み始めた。 オブジェクト指向設計実践ガイド ~Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方作者: Sandi Metz,?山泰基出版社/メーカー: 技術評論社発…

Let's Encrypt を利用して ravelll.org を HTTPS 化した

Amazon EC2 上で動かしている自身のポータルサイトを Let's Encrypt を利用して HTTPS 化したので手順をメモ。思った以上に簡単にできてびっくりした。 まず Let's Encrypt のクライアントを入手し、証明書を取得します。 Amazon Linux は公式にサポートされ…

"【ペパボ×プレイド】Tech Meetup 〜自動テスト・CI編〜" にてトークしてきました

ウェブ接客プラットフォーム Karte を運営する株式会社プレイドさんと合同で行われた勉強会 "【ペパボ×プレイド】Tech Meetup 〜自動テスト・CI編〜" にてトークしてきました。 プレイドさんのテックブログにも開催エントリが公開されています。 tech.plaid.…

macOS Sierra の tmux + vim でコピーができなくなった

OS を Sierra にアップグレードしたところ、tmux 上で起動した Vim だとヤンクしてもレジスタに何も登録されなくなってしまい、コピーもペーストもできなくなった。 あれこれやったところ解決できたんだけど、問題が明確にならないまま解決されたのでどれが…

RubyKaigi 2016

RubyKaigi 2016 に参加してきた。今年は開催地が京都だったので旅行を兼ねられて良かったし、会もとても楽しかった。 今回ペパボはお菓子スポンサーをしていて、自分はその設営を担当していた。設営後はだいたいトークを聞きに行っていたのでブースにはあま…

社内 ISUCON に参加した

今週火曜に開催された社内向け ISUCON に参加してきた。これが、まあなんともなかなかに堪える体験だった。 〜開催日 個人では本家 ISUCON のまとめページにある解説や参加した方々のエントリを眺めて押さえるべきポイントを知ることから始めた。 まとめ : I…

新卒エンジニアたちに計算量の話をした

今年も弊社は新卒エンジニア向けに座学をする季節になりました。 自分は毎回興味はあるけど知識がない分野を教えることにして無理やり学習機会を作るスタイルでやっていて、今回は計算理論について教えることにした。 speakerdeck.com 1時間で教えるには無理…

担当サービスの Issue を 600 個くらい Close した

この1週間くらいで 600 個くらい Issue を Close した話です。 やっていたところたまたま id:hitode909 さんが Issue を閉じる話をされていて、弊社もアウトプットする気持ちとなりました。 古いissueをとりあえず閉じる - hitode909の日記 背景 今携わって…

PHPBLT#5 で LT します

7/20 (水) にある PHPBLT#5 で LT することにしました。(抽選なのでまだ未確定) phpblt.connpass.com 応募時点で話す内容は全く浮かんでなくて、最近興味のある PHP のコード解析に関して知見を集めて5分間をやっていこうかと考えているところ。 まだ LT …

Recruit Technologies Open Lab #03 に行ってきた

最近会社で puppet をいじってることが多かったり、これからの Infrastructure as Code(以後IaC)を考えるのは面白そうで、ならばまずは界隈の有識者のビジョンを聞くのがよかろう、ということで参加してきた。 atnd.org どの話も、新たな知見が得られたり…

Peco 経由で特定のタグバージョンに git checkout するやつ

git リポジトリの特定のタグバージョンへのチェックアウト方法を良く忘れるので peco でバッとやる関数を書いた。 function peco_git_tags () { local selected_tag="$(git tag -l | peco)" if [ -n "$selected_tag" ]; then BUFFER="git checkout refs/tags…

YAPC::Asia Hachioji 2日目

2日目はタスクへの知見が溜まりまくっていた上にネット担当スタッフの人数も増えて余裕ができたので幾つかトークを聞いてきた。 yusukebe さん:スマホ時代のBotアプリのつくり方 uzulla さん、そーだいさん:PHPの話(飛び入りトラック) fuku2015 さん:レ…

YAPC::Asia Hachioji 1日目 + トークしてきました

YAPC::Asia Hachioji 1日目 + トークしてきました スタッフは朝8時過ぎに集合となっていたのにトークの準備が前日深夜まで押してしまって、眠い目擦りながら行ってきました。 トークは PHP のバージョンアップについてで、個人的に PHP5.3 アプリを 7.0 で動…

Alfred から Wi-Fi を再起動できるようにした

最近ときどき無線が不調になっては Wi-Fi を再起動して解決していた。以前作った wifi-workflow で再起動できたらいいな〜と思ったので restart サブコマンドを追加した。 Alfred から wifi restart で再起動できます。便利。 github.com ref シンプルに Wi-…

Vim で NERD Tree のウインドウもまとめて閉じたい

NERD Tree 以外に1つしかウインドウがないときはウインドウを閉じたら NERD Tree も一緒に閉じられて欲しいという気持ちがしばらく前からあった。毎度2回ウインドウを閉じていられるほど人生は長くない。 それを設定するパラメータが存在するのではとリポジ…

『クラウド開発徹底攻略』(WEB+DB PRESS plus シリーズ)をご恵投いただきました

普段オフィスで3メートルの距離に座られている@hsbtさんより、『クラウド開発徹底攻略』(WEB+DB PRESS plus シリーズ)をご恵投いただきました。恐縮しつつも大変感謝しております。 クラウド開発徹底攻略ということで、PaaS・IaaS としては昨今知らずには…

WEB+DB PRESS Vol.92「Web開発新人研修」に寄稿しました

明後日4月23日は WEB+DB PRESS Vol.92 の発売日でありますが、4つ掲載される特集の1つ目である「Web開発新人研修」にペパボのエンジニアで寄稿させていただきました。 この35ページをなぞることで、Webエンジニアという種の多様さやそれぞれの生業について、…

vim-quickrun からサッと javascript の動作を確認する

渋谷で仕事をしていても vim で小さな javascript コードを書いて quickrun でサッと動作確認ができるとやはり便利です。 まず Gjs をインストールしましょう。Gjs は GNOME のために javascript をバインディングする何かです。homebrew を使ってインストー…

LPICレベル1を取得した

LPICレベル1とはこのような試験です。社内の高まり集団に介入して高まった結果、迂闊にも社の目標設定に書いてしまったため、昨日取得してきました。ちなみに同様の理由から6月までに201/202の少なくともどちらか1つに合格する必要があり、やはり迂闊と言え…

CentOS7.2 で PHP5.3.29 をビルドする

そんな必要あるのか!時は2016年だぞ!という話かもしれませんが、実際必要になったのでメモしておきます。 $ cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) まずビルドに必要なツールを入れます。 $ sudo yum install pkg-config libtool …

続 cpsm で Vim: Cought deadly signal ABRT が出てしまう

会社で使っている Mac でも同様の問題が発生し、記事の方法に従ったところ解決しなかったので改めて調査して解法を探りました。 検証環境 OS X Yosemite 10.10.5 Homebrew で python, boost を入れている Pyenv で python 2.7.11 を入れている python の実行…

cpsm で Vim: Cought deadly signal ABRT が出てしまう

ほぼ下の Issue と同じ問題です。解決方法も概ね Issue のコメントにある通り。 何度か手元で発生していて、その度に解決方法を忘れていて手間取るのでメモ。 ちなみに OS は Yosemite で、バージョン10.10.5です。 OS X building? · Issue #3 · nixprime/cp…

色弱でも多少安心な Vim colorscheme を作った

自分は赤緑色弱で、そのせいか、いや全然原因違うのではとも思っているんだけど、多くのカラースキームが自身にはカラフル過ぎて、見てると気持ち悪くなってくる。そんな事もありここしばらくは vim-monochrome を使っていたんだけど、会社でペアプロしてい…

開発環境のモダン化について勉強会でLTした話

このエントリは gussan Advent Calendar 2015 の16日目のエントリです。 301: Moved Permanently gussan Advent Calendar 2015 明日は id:ravelll が担当です。

重かった vim-multiple-cursors の Insert がヌルッヌルになった

このエントリは gussan Advent Calendar 2015 の15日目のエントリです。 vim-multiple-cursors はその名前が表す機能を提供するプラグインで、1週間に5回くらい使ってる。 github.com ただ、Insert モードで 5~6行を同時に編集すると処理がかなり遅かった。…

LEOPOLD の FC660C を買った

このエントリは gussan Advent Calendar 2015 の14日目のエントリです。 しばらく前、会社の開発環境を見なおした。具体的には、デスクの上に直に置いて操作していた Macbook を台の上に置いて、外付けの操作機器を使うようにした。このおかげで、作業中に首…

第4回ペパボテックカンファレンスに行ってきた

今回で第4回目となるペパボテックカンファレンスに参加してきた。 イベントタイトルにEC編とあるように、今回の登壇者は全員ECサービス(カラーミー、カラメル)に従事する方々。 ただ各々がコミットしている箇所はバラバラで、同じ会社の同じ部署で働いてい…

surround.vim でスペース無しに括弧を付ける

surround.vim っていう Vim で括弧を付けるときに 便利なプラグインがあることは多くの人が知ってることと思うけど、 これで括弧を付けるとき自身とっては不要なスペースまで付いてしまって毎度落ち込んでいた。 で、Github 上の説明を読み返したら、ちゃん…

ターミナルのフォントを Inconsolata に換えた

Vim 上のコードを見ながら Atom でメモを取ってたら Atom からモダンオーラを感じてだんだん悔しくなってきた。 モダンに感じた原因はそのフォントで、調べてみると Inconsolata というフォントが Atom のデフォルトフォントとして使われているようだった。 …

PHP のバグレポートを投稿した

PHP 7.0.0RC5 で出ている(RC4 でも出てた)Opcache のエラーが気になってソース読んでみたら include の path が間違っている箇所が見つかった。 社の Slack の php チャンネルで話したところバグレポートしてみたら、という話になって同じ内容の投稿もなか…

Laravel をいじり始めた

結構前のことだけど、10/3 に開催された PHP カンファレンス 2015 に参加してきた。 あんまり多くの話は聞けなかったんだけど、PHPer の空気感を味わえてよかった。 Laravel はそのときに話が少し出ていて気になっていたフレームワークだった。 手元に個人的…

Soft Skills: The Software Developer's Life Manual を読んでる

何の本にしても手にとったときの熱を保って数日のうちに読み終えることは稀で、多くは途中で他の本に熱が移って読まなくなる。熱を保って読み切る努力は大変なので、せめて少しでも感想なりなんなり書いて知識を留める方向に努力を向けようと思った。 冒頭か…

cd 履歴ファイルから現存しないディレクトリを消す

cd した先をファイルに記録しておいて昔 cd したディレクトリには peco 経由で簡単に移動できるようにしてる。 dotfiles/jump.zsh at master · gs3/dotfiles · GitHub これが本当に便利で日に100回くらい実行してるんだけど、現存しないディレクトリも候補に…

シンプルに Wi-Fi を ON/OFF する Alfred Workflow を作った

会社で自分のデスクにいるときは有線 LAN を繋いでいて、Wi-Fi 設定はトラフィックを減らすべく off にしてる。 けど毎日席を立つごとにメニューバーにある無線アイコンをクリックして設定を変えることに疲弊し、Alfred からぺぺッと切り替えたい気持ちにな…

bundler v1.10.6 で Vagrant マシンへのテストが落ちる

とある puppet リポジトリで vagrant マシンに向けて Serverspec のテストを実行したところ、すべてがFになった。 どうやら vagrant のプラグインがコンフリクトしていて、bundler のバージョンもサポート外の様子。 $ bundle exec rake spec Vagrant experi…