はらへり日記

腹に弾丸

Babel + Browserifyで環境変数を使用する

前提 Babel6系でES2015のJSをBrowserifyを使用してコンパイルします。 願い JSをコンパイルする際、Ajax通信で使用するURIを開発と本番で分けたい場面がありました。 なので以下の様なことがしたい。 let uriPrefix = '/api'; if (process.env.APP_ENV === '…

Laravel5.1でsuperagentを使用する際の注意点

環境 Laravel 5.1 superagent 1.7.2 ajax通信にsuperagentを使用したい JS弱者なりに「jQueryから自立したい…!」と感じ、Ajax通信を$.ajaxでなくsuperagentというものを採用しました。 かのexpressやstylusを開発したTJ作ということもあり、とても使いやす…

雑兵MeetUp #3でLTしました

雑兵MeetUpに行って来た 詳しくはイベントページをどうぞ。 zohyo.connpass.com 第一回目でもLTしたのだけど、2回目飛ばしての参加でした。 LTをした 年末ポエムでも言ってたが人前で喋る機会を増やしたく、LTした。 スライドはこちら。 speakerdeck.com DB…

2015年振り返り

振り返る。 卒業・入社 4年間お世話になった大学を卒業しました。 卒業してからもなんだかんだ友人と飲んでる気がするので引き続きオナシャス!! 勉強したこと 一部抜けてるが、読んだ本達はこちら 主に以下のものたち。 Git JavaScript React PHP Laravel データ…

Gitのコミットメッセージをまとめて修正する

Git

前提 Shell上でコマンドを叩いて修正する人向けです。 ある日 普段、GitHubのIssue駆動開発をする際はIssueトラッカーを使いたい派なのでコミットメッセージにIssue番号をつけるようにしている。 そんなある日、直近の6コミットぐらいのIssue番号を間違えて…

オール◯ター感謝祭もどきアプリで社内イベントを乗り切る

はじめに この記事はアイスタイルアドベントカレンダー24日目の記事です。 qiita.com 納会の紹介 弊社では毎年、夏と冬に社員を労う納会なるものが開催されます。 (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(…

レビュアーを選ぶ話

はじめに この記事はアドベントカレンダー15日目の話です。 qiita.com 大遅刻になってしまったのは社内宴会での新卒芸を用意していたからで、まぁいろいろ言い訳はあるのですがそちらのことはアドベントカレンダーの24日目に…。 コードレビューの話をしよう …

LaravelのテストをPHPUnitで書く時にやってる工夫

はじめに この記事はアイスタイルアドベントカレンダー4日目の記事です。 1日目に記事を書いたばかりな気もしますがたぶん気のせいですね。 qiita.com 弊社については2日めに先輩の@ktarow氏が書いたこちらの記事をどうぞ! アドベントカレンダー - 複数の言…

JSでカスタムイベントを作る

はじめに qiita.com この記事は株式会社アイスタイルアドベントカレンダーの1日目の記事です。 今日のお話 新卒研修でSinatraで作られた社内向けツールをLaravel5でフルスクラッチで改修するというものを行いました。 その際、フロントJSの実装はほぼ私が担…

Babelで書いたReactのJSXがNo Display Nameになる

困ったこと 最近今更ながらReact.jsを書いているのだがその際に困ったことについて書く。 コンパイルにはGulpを使う前提です。環境としては以下のとおり React.js v0.14 babelify v7.2.0 問題 GulpでES2015で書いたjsxファイルをコンパイルをすると各コンポ…

Guzzleのレスポンスをモック化する

ユニットテスト ユニットテストを書く際、依存してるクラスやライブラリをモックに差し替えると思うが、PHPのHTTPライブラリであるGuzzleにはテスト用のモックを作る機能があらかじめ用意されている。 公式ドキュメントにもちょろっと案内されているが、レス…

Laravelでアプリケーションテストをする際のモックの話

アプリケーションテスト 要するに結合テストのことです。 Laravelでの単体テストは基本的にPHPUnitとLaravelによるヘルパーメソッドを使用することで楽に書けます。 アプリケーションテストもまた、ヘルパーが用意されており直感的に書くことができると個人…

LaravelのAjax通信でCSRFトークンを扱う

LaravelにおけるCSRFトークン Laravel5.1(おそらく以前のバージョンも)ではデフォルトでCSRFトークンによる認証ミドルウェアが有効になっています。 なのでフォームを書くときは以下のようなBladeファイルを書く必要がある。 <form method="POST"> <input type="text"> <input type="submit"> {{ csrf_token() }} </form> こうす…

Laravelのアプリケーションテストでコケた

Laravelのアプリケーションテスト LaravelでPHPUnitを使うとLaravelによる拡張でアプリケーションテストを行うことが出来る(Laravel 5.1以上) テスト 5.1 Laravel なので上記ドキュメントに従って以下の様な感じでテストを書いてみた。

ua-parser-jsでブラウザ判定をする

楽したい ua-parser-jsなるライブラリを使って何も考えずにブラウザ判定できる関数を作ります。 インストール 今回はbowerでインストールします。 $ bower install ua-parser-js --save bowerの他に、npmでも配布されているようです。 自分の作成するスクリ…

PHPUnitでファサードモックに例外を投げさせる

例外を投げたいマン こんなコードをテストしたいとする。 andThrow(n…

dotfilesを作った

dotfilesを作った 今までずっとoh-my-zshに甘えさせてもらって開発をしていたのだがShellに慣れるにつれて痒いところに手が届かなかったり高機能がゆえに動作が重い時に悲しくなったりしてたので、自前のdotfilesをコツコツ育ててきた。 それが結構ほぼ(僕は…

Google Map APIのMap生成をjQueryで行う

困ったこと 例えば以下のようなHTMLを作り、<div id="map_canvas"></div>の部分にMapを生成しようと思う。 <html> <head> <title>Google Map Sample</title> <script src="js/jquery.min.js"></script> <script src="http://maps.googleapis.com/maps/api/js?key={Your Google Map API Key}&amp;sensor=true"></script> </head> <body> <p>Google Map Sample…</p></body></html>

YAPC::2015に行って来ました

行って来た YAPC::2015に行って来ました。 大きなカンファレンスに参加したのは初めてだったのですが、本当に行ってよかったと思いました! 特に1日目の懇親会ではいろんな人と話すことができて、とても刺激的でした。 イベントの大小関わらず、カンファレン…

CentOS7とOS X Mavericksのechoコマンドの違いについて

8/9(日) @bataさんにご指摘いただいて追記しました! 研修でこれから書く予定のWebアプリの開発環境がCentOS7なのでそれに合わせてしこしこdotfilesを書いて、つい先日完成させた。 GitHub: sota1235/dotfiles それを手元のMacで動かしたところ、インストー…

【翻訳】Gitで様々なUndoを行う方法

はじめに この記事はThe GitHub BlogのHow to undo (almost) anything with Gitを和訳したものです。 書こうと思った動機は Gitで様々な処理をロールバックする方法がわかりやすくまとまっているので自分用に整理 英語が超苦手で克服したいから って感じです…

tmuxを起動するとvimの色が変になる時

tmux起動した状態でVim起動したら色がめちゃくちゃになってた話

hubot choiceに変数機能をつけた

hubot choiceとは 名前の通り、与えられた引数の中から1つをランダムにchoiceするスクリプトです。 大学の先輩がゼミ用に実装していたものを拝借し、会社でコードレビュアーを決めるために導入していました。 masuilab/slack-hubot 実装は至極シンプルなので…

HerokuでHubotを指定の時間に寝かせる

Heroku料金体系 Herokuの料金体系が変わり、18h/Dayしか動かせなくなったのでオレオレHubotが24時間稼働できなくなった。 Heroku | Beta Pricing Heroku公式によると無料プランは以下のような仕様らしい。 30分間活動がないとSleepする 1日、6時間はSleep状…

CSSで均等割り付けを実現する方法

研修中、社内のツールに対して問題点を探し、改善策を提案しろというのがあった。 その際、運用フロー、機能等いろいろケチをつけたのだが、その1つにテキストの右端がでこぼこしていて見づらいので均等割り付けにしたほうがよいと指摘した。 その際、「この…

Gitのコミットメッセージに接頭語をつけてる話

Git

Gitのコミットメッセージのルールで何かいいのないかなぁとなんとなく思っていて 丁寧にまとまってる記事がすごくたくさんあって「お!これええやん!」ってなるものの使ってみると僕の場合は以下の2つの壁にぶち当たった ルールを覚えられない 選択肢が多…

print("Hello World")

ブログ移転します(予告) Middleman + GitHub Pagesという運用でかれこれ半年やってきて、ブログを手元で書いてbundle exec middleman deploy!ッターン!みたいなのすごい快適だったんだけど、 痒いところが異常に増えてきて、その中でも特に思ったのが いい…