<?xml version="1.0" encoding="UTF-8" ?>
<rss version="0.91">
  <channel>
    <title>私の生き方にタイトルなど要らない</title>
    <description>プログラマ、ララ・ベル子さんのゆるふわ奮闘記。</description>
    <link>http://peacock.ky-3.net/</link>
    <language>ja</language>
    <copyright>Copyright (C) NINJATOOLS ALL RIGHTS RESERVED.</copyright>

    <item>
      <title>CarbonのdiffIn系のやつでUTCに変換されてうまくdiffできない問題の解決策</title>
      <description>&lt;a href=&quot;http://peacock.ky-3.net/php/watchout_carbon_bug&quot; title=&quot;&quot; target=&quot;_blank&quot;&gt;Carbon使っていて3月にバグがたくさん出る問題&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;uarr;これでも話したんですが、「diffInMonthsなどの差分系メソッドはUTCに変換されてから計算されるため1日だと予想した結果にならない場合がある」んですね。&lt;br /&gt;
それでdiffInMonthsの場合に安全な日付10日とかにしてからdiffInするという方法を紹介しました。&lt;br /&gt;
ただ、これだと月単位じゃなくて日にち単位でdiffしたいときなどに困ります。&lt;br /&gt;
具体的にはdiffInYearsとかの場合です。&lt;br /&gt;
&lt;br /&gt;
そういう場合は、インスタンス作るときに最初からtimezoneをUTCに設定してやればよいです。&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;&lt;br /&gt;
$year_month = Carbon::parse($year_month, 'UTC');&lt;br /&gt;
$hikaku_shitai_date = Carbon::parse($hikaku_shitai_date, 'UTC');&lt;br /&gt;
$diff = $year_month-&amp;gt;diffInYears($hikaku_shitai_date);&lt;br /&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
こんな感じです。&lt;br /&gt;
&lt;br /&gt;
日付の扱いはいろんな言語で結構やっかいなこと多いですよね。。&lt;br /&gt;
ということで短いですが、今日はこれで終わりです。</description> 
      <link>http://peacock.ky-3.net/laravel/watchout_carbon_difin</link> 
    </item>
    <item>
      <title>あれ？Laravel Valetでなんかうまく表示されないねってとき</title>
      <description>どうも、こんんちは！！ベル子です。&lt;br /&gt;
&lt;br /&gt;
最近、ベル子は小説を書いています。&lt;br /&gt;
その昔ケータイ小説全盛期の頃にはよく書いていたんですが、最近はめっきり時間もなくなり書かなくなりました。&lt;br /&gt;
趣味と言えそうなものは小説を書くことくらいなので、また再開して長編を書いていこうと思うます。&lt;br /&gt;
&lt;br /&gt;
すごくふざけたギャグ小説を書いたこともあるんですが（本来の作品よりふざけて書いたものが歴代7位くらいになってしまったという思い出したくない過去。）、サイトをお引っ越ししたこともあり、本来の私の作風である中二病的な短編をいくつかリリースしました。&lt;br /&gt;
読んだら悲しくて暗い気分になるものばかりです&amp;larr;&lt;br /&gt;
&lt;br /&gt;
なので、読んでくれる人がいたらすごいなーくらいだったんですが、結構、読んでくれる人がいてランキングにも表示されました。今は流れちゃいましたが。&lt;br /&gt;
文章を書くのは、いい気晴らしになります。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ということで本題です。&lt;br /&gt;
&lt;br /&gt;
Laravel 5.4で導入されたDuskという機能があるんですが、&lt;br /&gt;
こちらをお試ししてみたかったので久々にローカル環境にLaravelアプリを構築してみようと思ったのですが、あれ？そういえばValetの設定ってどうすんだっけ？と思って&lt;br /&gt;
valet parkだの valet linkだのvalet restartだのいろいろしてみたけど502か404になって&lt;br /&gt;
全然表示されないT Tという事象にぶち当たりまして、&lt;br /&gt;
一旦アンインストールしてもう一度入れ直したら直ったよという話です。&lt;br /&gt;
&lt;h3&gt;まずValetをアンインストールする。&lt;/h3&gt;valet uninstallがうまくいかないという記事を見つけたので手作業でアンインストールすることにする。&lt;br /&gt;
&lt;br /&gt;
composer global remove laravel/valet&lt;br /&gt;
&lt;br /&gt;
~/.valetディレクトリを削除&lt;br /&gt;
&lt;br /&gt;
php7とか入ってたらアンインストールする&lt;br /&gt;
brew uninstall php70&lt;br /&gt;
&lt;br /&gt;
dnsmasqとnginxを同様にアンインストールする&lt;br /&gt;
brew uninstall dnsmasq&lt;br /&gt;
brew uninstall nginx&lt;br /&gt;
&lt;h3&gt;そして１から出直す。&lt;/h3&gt;brew update brew install homebrew/php/php71&lt;br /&gt;
&amp;uarr;ポイントはhomebrewのphpを入れること。多分これが原因&lt;br /&gt;
&lt;br /&gt;
composer global require laravel/valet&lt;br /&gt;
&lt;br /&gt;
valet install&lt;br /&gt;
&lt;br /&gt;
pingでvaletが有効になってるかチェク&lt;br /&gt;
&lt;br /&gt;
ping foobar.dev&lt;br /&gt;
&lt;br /&gt;
アプリケーションのディレクトリを作成し&lt;br /&gt;
&lt;br /&gt;
mkdir ~/Sites&lt;br /&gt;
&lt;br /&gt;
cd ~/Sites&lt;br /&gt;
&lt;br /&gt;
valet park&lt;br /&gt;
&lt;br /&gt;
laravel new hoge&lt;br /&gt;
&lt;br /&gt;
そしてから以下にアクセスするとローカルでLaravelがもう見られる状態になってます。&lt;br /&gt;
&lt;br /&gt;
http://hoge.dev/&lt;br /&gt;
&lt;br /&gt;
静的なhtmlページを表示したい場合は以下のようにやると&lt;br /&gt;
&lt;br /&gt;
valet link app-name&lt;br /&gt;
&lt;br /&gt;
http://app-name.dev/&lt;br /&gt;
&lt;br /&gt;
で表示されるようになります。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ほとんど&lt;strong&gt;公式ドキュメントからコピペしただけ&lt;/strong&gt;ですが、valet便利だねと改めて思いました。&lt;br /&gt;
ちなみに自分が設定したドメインとかparkしてるパスとかは以下のjsonで確認できます。&lt;br /&gt;
自分で直にディレクトリを書き換えても反映されました。&lt;br /&gt;
&lt;br /&gt;
~/.valet/config.json&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
本当はDuskを使ってみてブログ書こうと思ったけど&lt;br /&gt;
それはまた次回につづく！！</description> 
      <link>http://peacock.ky-3.net/laravel/lets_unistall_valet</link> 
    </item>
    <item>
      <title>Carbon使っていて3月にバグがたくさん出る問題</title>
      <description>Carbonてすごく便利ですよねー。&lt;br /&gt;
Carbonが何なのかは&lt;a href=&quot;http://qiita.com/yudsuzuk/items/ff894bd0b76d4657741d&quot; title=&quot;&quot; target=&quot;_blank&quot;&gt;こちらの記事&lt;/a&gt;を読んでもらうとして、引用させてもらうと、&lt;br /&gt;

&lt;blockquote&gt;&lt;span style=&quot;color: #4a4a4a; font-family: -apple-system, system-ui, 'Segoe UI', 'Helvetica Neue', 'Hiragino Kaku Gothic ProN', メイリオ, meiryo, sans-serif; font-size: 16.1px;&quot;&gt;CarbonとはPHPのDateTimeクラスをオーバーラップした日付操作ライブラリです。&lt;/span&gt;&lt;/blockquote&gt;
だそうです。&lt;br /&gt;
&lt;br /&gt;
Laravel使いのみんなは、すでに使ってると思います。&lt;br /&gt;
&lt;br /&gt;
JavaScriptだと&lt;a href=&quot;https://momentjs.com/&quot; title=&quot;&quot; target=&quot;_blank&quot;&gt;Moment.js&lt;/a&gt;は非常に使いやすいですね。&lt;br /&gt;
&lt;br /&gt;
ということで今日は時間がないので本題です。&lt;br /&gt;
Carbonは便利なのですが、いろいろ落とし穴があって、気をつけて書かないと3月29日とか7月とかになるといろいろバグが出てきます。&lt;br /&gt;
ひとまず思い出したものをまとめておきます。&lt;br /&gt;
また思い出したら追記します。&lt;br /&gt;
&lt;br /&gt;

&lt;h3&gt;diffInMonthなどの差分系メソッドはUTCに変換されてから計算されるため1日だと予想した結果にならない場合がある&lt;/h3&gt;
10日とか安全な日にしてからdiffする。&lt;br /&gt;
&lt;br /&gt;

&lt;h3&gt;Carbon::now()-&amp;gt;subMonth()みたいにすると3/29に2月が取得できない&lt;/h3&gt;
Carbon::now()-&amp;gt;subMonthNoOverflow()にする。&lt;br /&gt;
加えるときはCarbon::now()-&amp;gt;addMonthNoOverflow()にする。&lt;br /&gt;
基本、Carbon::now()からaddMonth()とsubMonth()は使ってはいけない。&lt;br /&gt;
&lt;br /&gt;
※ 2017/5/23加筆：addMonthNoOverflowなどのNoOverflow系のメソッドはインスタンスをコピーして別のインスタンスを返すため、$date-&amp;gt;subMonthNoOverflow()などのように書いた場合は必ず戻り値を元のインスタンスに代入してやる必要がある。&lt;br /&gt;
&lt;br /&gt;
$date =&amp;nbsp;$date-&amp;gt;subMonthNoOverflow();&lt;br /&gt;
&lt;br /&gt;
こんな感じ。&lt;br /&gt;
&lt;br /&gt;

&lt;h3&gt;createFromFormat('Y-m', '2017-02')を指定して日付を作った場合に、現在のシステム日付が29~31だと2月が3月になってしまう&lt;/h3&gt;
&lt;h3&gt;&lt;span style=&quot;font-size: 14px; font-weight: normal;&quot;&gt;createFromFormatではなくCarbon::parse('2017-02')を使用する。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
なんか他にも時間の何かがあったような気がしますが、&lt;br /&gt;
とりあえず以上です。&lt;/span&gt;&lt;/h3&gt;</description> 
      <link>http://peacock.ky-3.net/php/watchout_carbon_bug</link> 
    </item>
    <item>
      <title>Git pullしたらGitから怒られた場合の対処法</title>
      <description>どうも！いつも妖気なベル子です☆&lt;br /&gt;
&lt;br /&gt;
「ようき」って打ったら一番最初に「妖気」って出るのおかしいと思うの。&lt;br /&gt;
そんなに日常的に「妖気」って使わないよねー。&lt;br /&gt;
それともあれか、お前はこっちだろ的なG○○gleからの圧力かな？&lt;br /&gt;
&lt;br /&gt;
ということで、最近ベル子も大人の女性になってきたので、&lt;br /&gt;
「プルリクしたんでチェックおなしゃーす！」と言われることがあります。&lt;br /&gt;
&lt;br /&gt;
プルリクって何かな？という人のために解説すると&lt;br /&gt;
「あなたの作ってるコードをこういうふうに修正してみたんだけど、これをマージして欲しいの！見てみて！」&lt;br /&gt;
というリクエストを投げることです。&lt;br /&gt;
&lt;br /&gt;
詳しいことは私のブログなんかより、詳しい記事を参照してくれたまえ。&lt;br /&gt;
&lt;a href=&quot;http://www.backlog.jp/git-guide/pull-request/pull-request1_1.html&quot; title=&quot;&quot; target=&quot;_blank&quot;&gt;http://www.backlog.jp/git-guide/pull-request/pull-request1_1.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
そして、そのコードがよさ気だったらマージできるし、&lt;br /&gt;
「ダサくて汚いからムリ！」だったら却下できるという画期的なシステムです。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
というわけで、プルリクが来たのでひととおりチェックし、コメントします。&lt;br /&gt;
&lt;br /&gt;
べ「もうーちょっと男子ー。そこマジックナンバーじゃーん。変数に入れてよー。」&lt;br /&gt;
男子「・・・修正しました。」&lt;br /&gt;
&lt;br /&gt;
よしよし、それでまたgit pullして、、、、と思ったらgitに怒られる。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;pre&gt;You asked me to pull without telling me which branch you want to merge with, 
and 'branch.new_branch.merge' in your configuration file does not tell me, either.
 Please specify which branch you want to use on the command line and try again
 (e.g. 'git pull &lt;repository&gt; &lt;refspec&gt;'). See git-pull(1) for details.&lt;/refspec&gt;&lt;/repository&gt;
&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
べ「ふが！また、やっちまったぜ」&lt;br /&gt;
&lt;br /&gt;
そうです。&lt;br /&gt;
私がよくやってしまうミスとして&lt;br /&gt;
リモートブランチに出来た新しいブランチのコードを以下のように持ってきてしまいgit pull時に怒られるというミスがあります。&lt;br /&gt;
&lt;br /&gt;

&lt;pre&gt;$ git fetch
$ git checkout -b new_branch
$ git pull origin new_branch
&lt;/pre&gt;
&lt;br /&gt;
何度もやっているのに、ついついやってしまうので、&lt;br /&gt;
戒めのためにブログに記しておきます。&lt;br /&gt;
&lt;br /&gt;
git pullのみ（引数なし）でリモートのブランチをpullするには&lt;br /&gt;
上流ブランチが設定されていないとなりません。&lt;br /&gt;
&lt;br /&gt;
そして、&lt;br /&gt;
リモートブランチを上流ブランチに設定する方法は以下の３つだ！！&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;h3&gt;設定方法 1.&lt;/h3&gt;
怒られたから上流ブランチを後からちゃんと設定してやりたいとき&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Git 1.7.0&lt;/strong&gt;&lt;br /&gt;

&lt;pre&gt;$ git branch --set-upstream new_branch origin/new_branch&lt;/pre&gt;
&lt;br /&gt;
&lt;strong&gt;Git 1.8.0&lt;/strong&gt;&lt;br /&gt;
カレントブランチを紐付ける場合：&lt;br /&gt;

&lt;pre&gt;$ git branch -u origin/new_branch&lt;/pre&gt;
or&lt;br /&gt;

&lt;pre&gt;$ git branch --set-upstream-to=origin/new_branch&lt;/pre&gt;
&lt;br /&gt;
カレントブランチじゃないブランチを紐付ける場合：&lt;br /&gt;

&lt;pre&gt;$ git branch -u origin/new_branch new_branch&lt;/pre&gt;
or&lt;br /&gt;

&lt;pre&gt;$ git branch --set-upstream-to=origin/new_branch new_branch&lt;/pre&gt;
&lt;br /&gt;

&lt;h3&gt;設定方法 2.&lt;/h3&gt;
自分で作ったブランチのとき&lt;br /&gt;
&lt;br /&gt;

&lt;pre&gt;$ git push -u origin new_branch&lt;/pre&gt;
&lt;br /&gt;
※-uで上流ブランチの設定をするのは初回の1回でよい。その後はgit pushで引数いらない。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;h3&gt;設定方法 3.&lt;/h3&gt;
プルリクされたときや、人が作ったブランチをリモートからもってくるとき&amp;larr;これが正解！！！！&lt;br /&gt;
&lt;br /&gt;

&lt;pre&gt;$ git checkout -b new_branch origin/new_branch&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;h2&gt;教訓&lt;br style=&quot;font-size: 14px; font-weight: normal;&quot; /&gt;&lt;br /&gt;
ブランチ作成後の初回pushの際は-uオプションをつけよう&lt;br /&gt;
リモートのブランチを持ってくる際にpullしてくるのはやめよう&lt;/h2&gt;
これで怒られなくなり一安心です。&lt;br /&gt;
&lt;br /&gt;
ついでに、チェックしてマージしてリモートブランチを削除したあと&lt;br /&gt;
自分のローカルをキレイにする手順を紹介します。&lt;br /&gt;
&lt;br /&gt;
これをやらないと、プルリクをたくさんもらうようになるとローカル環境がわけ分からなくなります。&lt;br /&gt;
プルリクのトピックブランチをマージ＆削除したら必ずローカルもリモートと同じようにブランチを削除しておきましょう。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
１．どんなブランチがローカルにあるのか確認
&lt;pre&gt;$ git branch -a
* pull_req_no_branch
 develop
 master
 remotes/origin/pull_req_no_branch
 remotes/origin/develop
 remotes/origin/master&lt;/pre&gt;
&lt;br /&gt;
２．リモートで削除されたブランチをローカルのリモートブランチからも削除する
&lt;pre&gt;$ git fetch -p
〜省略〜
   123456..78910  develop    -&amp;gt; origin/develop
 x [deleted]         (none)     -&amp;gt; origin/pull_req_no_branch&lt;/pre&gt;
&lt;br /&gt;
３．どうなったか確認する&lt;br /&gt;

&lt;pre&gt;$ git branch -a
* pull_req_no_branch
 develop
 master
 remotes/origin/develop
 remotes/origin/master&lt;/pre&gt;
リモートのpull_req_no_branchが消えた！！&lt;br /&gt;
&lt;br /&gt;
４．develop（開発本流）に切り替える&lt;br /&gt;

&lt;pre&gt;$ git checkout develop&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
５．マージされたリモートのコードを落としてくる&lt;br /&gt;

&lt;pre&gt;$ git pull&lt;/pre&gt;
&lt;br /&gt;
※ここでマージされたコードをgit pullしておかないと次のブランチ削除コマンドで以下のように怒られる&lt;br /&gt;
&lt;br /&gt;

&lt;pre&gt;error: The branch 'pull_req_no_branch' is not fully merged.&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
６．プルリクに使ったトピックブランチをローカルから削除&lt;br /&gt;

&lt;pre&gt;$ git branch -d pull_req_no_branch
Deleted branch pull_req_no_branch (was 1234567).&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
７．どうなったか気になる&lt;br /&gt;

&lt;pre&gt;$ git branch -a
* develop
 master
 remotes/origin/develop
 remotes/origin/master&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
なーーーーーーーーーーーーい！！！！！！！！！全部きれいさっぱりなくなったよ！！&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ということで、この手順で昔のことはキレイさっぱり忘れてしまいましょう。&lt;br /&gt;
そうです。&lt;br /&gt;
昔の彼のことなんて思い出してもいいことなんて何もない。&lt;br /&gt;
あのとき別れなければと思って、また付き合ったとしてもどうせ別れることになるんです。&lt;br /&gt;
花はミツバチを追いかけますか？&lt;br /&gt;
NO!!!!否!!!!!!&lt;br /&gt;
飛んでったミツバチのことなんて、追いかけない。&lt;br /&gt;
そう、35億。Yes、35億。&lt;br /&gt;
&lt;br /&gt;
ということで皆さんも、&lt;br /&gt;
gitに怒られないハッピーライフを送ってくださいねーー♪</description> 
      <link>http://peacock.ky-3.net/git/git_pull_okorareru</link> 
    </item>
    <item>
      <title>Emmet職人技をご紹介</title>
      <description>どうも！&lt;br /&gt;
&lt;br /&gt;
昨日、Emmetの分かりやすいデモGIFアニメを探していたら、自分で作ったほうが早いことに気がついたのでGIFアニメを撮影してみました。&lt;br /&gt;
が、よく見るような気持ちいいGIFアニメじゃなくて、普通に間違えたりしてます。&lt;br /&gt;
気持ちいいってことをアピールしようと思って作った動画なのにｗｗ&lt;br /&gt;
もう眠いからどうでもよくなったのでそのままアップします。&lt;br /&gt;
&lt;br /&gt;
Emmet以外にもText Pastryという連番を作り直せるパッケージも使ってみたりしてます。&lt;br /&gt;
Text Pastryは他の便利な使い方もあります。&lt;br /&gt;
そのへんはGGRKSでお願いします。&lt;br /&gt;
&lt;br /&gt;
その昔のZen-Codingのときより^で階層が上がれるようになっていたり、便利になってます。&lt;br /&gt;
たぶんAtomとかにもあると思うので、ぜひインストールしてみてください。&lt;br /&gt;
今の会社は使ってない人が多いようなんですが、フロントのエンジニアはスピードを求められるのでEmmetは定番ツールです。&lt;br /&gt;
サーバーサイドの人は大量にコーディングすることがあまりないので馴染みないのかもしれないですね。文化の違いなんでしょうか。&lt;br /&gt;
私のようにタグとか打つの面倒くさい症候群＆一瞬でどかっと作られるのが気持ちい体質の人は気に入ると思います。お試しあれ。&lt;br /&gt;
&lt;br /&gt;
コーダー職人の職人技をご堪能ください。&lt;br /&gt;
&lt;br /&gt;
展開はctrl+eでラップはctrl+wです。&lt;br /&gt;
&lt;br /&gt;
▼bootstrapのグリッドレイアウトを一気に作るよ&lt;br /&gt;
&lt;img src=&quot;http://file.peacock.ky-3.net/sublime_demo0.gif&quot; alt=&quot;&quot; /&gt; &lt;br /&gt;
&lt;br /&gt;
▼すでにある文字からリスト作るやつ&lt;br /&gt;
&lt;img src=&quot;http://file.peacock.ky-3.net/sublime_demo.gif&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
▼inputとかも簡単に作れるし、タグ名の修正とかタグ削除とか便利&lt;br /&gt;
&lt;img src=&quot;http://file.peacock.ky-3.net/sublime_demo2.gif&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
▼!ビックリマークでびっくりする例&lt;br /&gt;
&lt;img src=&quot;http://file.peacock.ky-3.net/sublime_demo3.gif&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
▼cssも適当に頭文字打ってctrl+eすればいい感じに展開してくれる&lt;br /&gt;
&lt;img src=&quot;http://file.peacock.ky-3.net/sublime_demo4.gif&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
はいいいいいいいい！&lt;br /&gt;
エスパーベル子でしたー。</description> 
      <link>http://peacock.ky-3.net/sublime_text/emmet_demo</link> 
    </item>
    <item>
      <title>マイ・ベスト・オブ正規表現リアルタイム便利ツール</title>
      <description>暇なのではないです。&lt;br /&gt;
ネタが溢れ出てくるのです。&lt;br /&gt;
&lt;br /&gt;
ということで、さっきグルメンで&lt;br /&gt;
「そういえばベル子っちさ、前に正規表現のツール紹介してくれたじゃん。&lt;br /&gt;
Youどんなツールつかってたっけ？ ねーねー、教えて」&lt;br /&gt;
とGMから聞かれたので、私の推しツールを皆さんにゴリ押ししてみたいと思います。&lt;br /&gt;
&lt;br /&gt;

&lt;h2&gt;PHP Live Regex&lt;/h2&gt;
対応言語はPHP。&lt;br /&gt;
リアルタイム。&lt;br /&gt;
preg_matchやpreg_replaceの結果も同時に表示してくれる。&lt;br /&gt;
マッチ結果のハイライトはしてくれない。&lt;br /&gt;
&lt;a href=&quot;http://www.phpliveregex.com/&quot; title=&quot;&quot; target=&quot;_blank&quot;&gt;http://www.phpliveregex.com/&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;img src=&quot;http://file.peacock.ky-3.net/php_live.png&quot; alt=&quot;&quot; /&gt; &lt;br /&gt;
&lt;br /&gt;

&lt;h2&gt;Regex Pal&lt;/h2&gt;
対応言語はJavaScript、PHP。&lt;br /&gt;
リアルタイム。&lt;br /&gt;
マッチ結果のハイライトあり。&lt;br /&gt;
ツールチップによる正規表現チートあり。&lt;br /&gt;
&lt;a href=&quot;http://www.regexpal.com/&quot; title=&quot;&quot; target=&quot;_blank&quot;&gt;http://www.regexpal.com/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;img src=&quot;http://file.peacock.ky-3.net/regex_pal.png&quot; alt=&quot;&quot; /&gt; &lt;br /&gt;

&lt;h2&gt;RegExrv2.1&lt;/h2&gt;
対応言語はJavaScript。&lt;br /&gt;
リアルタイム。&lt;br /&gt;
マッチ結果のハイライトあり。&lt;br /&gt;
ツールチップによる正規表現チートあり。&lt;br /&gt;
チートや表現例、リファレンスが充実。&lt;br /&gt;
ビデオチュートリアルあり。&lt;br /&gt;
&lt;a href=&quot;http://regexr.com/&quot; title=&quot;&quot; target=&quot;_blank&quot;&gt;http://regexr.com/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;img src=&quot;http://file.peacock.ky-3.net/regexr.png&quot; alt=&quot;&quot; /&gt; &lt;br /&gt;

&lt;h2&gt;Regulex&lt;/h2&gt;
正規表現ビジュアライザー。&lt;br /&gt;
対応言語はJavaScript。&lt;br /&gt;
リアルタイム。&lt;br /&gt;
&lt;a href=&quot;https://jex.im/regulex/#!embed=false&amp;amp;flags=&amp;amp;re=%5E(a%7Cb)*%3F%24&quot; title=&quot;&quot; target=&quot;_blank&quot;&gt;https://jex.im/regulex/#!embed=false&amp;amp;flags=&amp;amp;re=%5E(a%7Cb)*%3F%24&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;img src=&quot;http://file.peacock.ky-3.net/regulex.png&quot; alt=&quot;&quot; /&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
いかがでしたか？&lt;br /&gt;
&lt;br /&gt;
リアルタイムでチェックできるのみならず、&lt;br /&gt;
ツールチップで表現のチートを出してくれるので&lt;br /&gt;
どこかのブログで書いてあった複雑な正規表現の中身を解析したりするのに&lt;br /&gt;
とても重宝しますよー。&lt;br /&gt;
使ってみてねー。&lt;br /&gt;
&lt;br /&gt;
regexp realtime とかで検索するといっぱい出てくるので&lt;br /&gt;
自分の推しツールを探して見ましょう！&lt;br /&gt;
では★</description> 
      <link>http://peacock.ky-3.net/regexp/best_online_regex_testers</link> 
    </item>
    <item>
      <title>あ、sudoつけ忘れたってときに便利なやつ</title>
      <description>おはようございマンモス！&lt;br /&gt;
いまだに『君の名は』を見られていないベル子です。&lt;br /&gt;
見たいなー見たいなー。私も誰かと入れ替わりたいなー。&lt;br /&gt;
&lt;br /&gt;
今日は、少し前にジェフリーに教えてもらった便利技をみんなに教えてあげようと思います。&lt;br /&gt;
ジェフリーって誰だよと思った人も多いと思いますが、&lt;br /&gt;
ベル子愛用のスクリーンキャスト「&lt;a href=&quot;https://laracasts.com/&quot; title=&quot;&quot; target=&quot;_blank&quot;&gt;Laracasts&lt;/a&gt;」のマスターです。&lt;br /&gt;
Laracastsという名前ですが、内容は非常に多岐に渡っていてLaravel以外にPHPの基礎から始まり、オブジェクト指向プログラミングとかPHPのデザインパターンとかVimマスターコースとかES2015とかVue.js 2.0コースとか、&lt;br /&gt;
とにかくカバー範囲が広くてほぼ毎日のように更新があるというのが特徴です。&lt;br /&gt;
フリーで見られる動画も多いのですが、あまりにも充実してるので感謝の気持ちを込めて私は購読しています。&lt;br /&gt;
&lt;br /&gt;
Laracastsで私が一番好きなポイントは、実はカバー範囲が広いという以外に、ジェフリーのコーディングの速さです。&lt;br /&gt;
私は人がコーディングしているのを見るのが大好きという、少しアレな性質を持ち合わせているので、見てるだけでとてもワクワクして時間を忘れてしまいます。うっとり。&lt;br /&gt;
あと、コーディング中のちょっとしたTipsも本筋とは関係なくさりげに教えてくれます。&lt;br /&gt;
そういうところも好きです。&lt;br /&gt;
&lt;br /&gt;
という感じで先日ジェフリーがこっそり教えてくれた便利技です。&lt;br /&gt;
&lt;br /&gt;
$ rm -rf kuro_rekishi&lt;br /&gt;
&lt;br /&gt;
とかした場合に&lt;br /&gt;
&lt;br /&gt;
rm: cannot remove `kuro_rekishi/yonaka_no_tweet.json': 許可がありません&lt;br /&gt;
&lt;br /&gt;
とか出て、「あ、sudoつけ忘れた」と思ったりラジバンダリすることがあると思います。&lt;br /&gt;
&lt;br /&gt;
そんなときは&lt;br /&gt;
&lt;br /&gt;
$ sudo !!&lt;br /&gt;
&lt;br /&gt;
と打ち込みエンターを叩き込むと&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 30px;&quot;&gt;ドーーーーーーーーん&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt; $ sudo rm -rf kuro_rekishi&lt;br /&gt;
&lt;br /&gt;
前のコマンドーにsudoが追加されて蘇ります。&lt;br /&gt;
なんて便利なんや！！&lt;br /&gt;
&lt;br /&gt;
このビックリマーク戦法(専門的には履歴展開history expansionというらしい)には他の使い方もあるようで&lt;br /&gt;
&lt;br /&gt;
たとえばhistory打って直近が以下のような履歴になってるとして&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;&lt;code&gt;10021 &amp;nbsp;git remote -v&lt;br /&gt;
&lt;/code&gt;&lt;/code&gt;
&lt;div&gt;10022 &amp;nbsp;history&lt;/div&gt;
&lt;div&gt;10023 &amp;nbsp;history 10&lt;/div&gt;
&lt;div&gt;10024 &amp;nbsp;ls -al&lt;/div&gt;
&lt;div&gt;10025 &amp;nbsp;ls app&lt;/div&gt;
&lt;div&gt;10026 &amp;nbsp;ls -al app&lt;/div&gt;
&lt;h3&gt;直前のコマンドを展開&lt;/h3&gt;
$ !!&lt;br /&gt;
$ ls -al app&lt;br /&gt;

&lt;h3&gt;hogeから始まる直近のコマンドを展開&lt;/h3&gt;
一番最近 ls 使ったときのオプションと引数を展開&lt;br /&gt;
$ !ls&lt;br /&gt;
$ ls -al app&lt;br /&gt;

&lt;h3&gt;history番号を指定して展開&lt;/h3&gt;
$ !10022&lt;br /&gt;
$ history&lt;br /&gt;

&lt;h3&gt;n個前のコマンドを展開&lt;/h3&gt;
2個前のコマンドを展開&lt;br /&gt;
$ !-2&lt;br /&gt;
$ ls app&lt;br /&gt;

&lt;h3&gt;コマンドの一部を検索して展開&lt;/h3&gt;
一番最近のgit remote -vのような間にある文字で検索して展開&lt;br /&gt;
$ !?remote?&lt;br /&gt;
$ git remote -v&lt;br /&gt;

&lt;h3&gt;n番目の文字を展開(0始まり)&lt;/h3&gt;
$ !!:1&lt;br /&gt;
$ -al
&lt;h3&gt;lsをcdにしたい&lt;/h3&gt;
ls -alの場合は引数は2番目となるので&lt;br /&gt;
$ cd !!:2&lt;br /&gt;
$&amp;nbsp;cd app&lt;br /&gt;

&lt;h3&gt;最後の引数&lt;/h3&gt;
もっと簡単に最後の引数を代入したいときは$を使えばいい&lt;br /&gt;
$ cd !!:$&lt;br /&gt;
$&amp;nbsp;cd app&lt;br /&gt;

&lt;h3&gt;最初の引数&lt;/h3&gt;
$ cd !!:^&lt;br /&gt;
$ cd -al&lt;br /&gt;

&lt;h3&gt;コマンド以外全部持ってくる&lt;/h3&gt;
$ !!:*&lt;br /&gt;
$ -al app&lt;br /&gt;
&lt;br /&gt;

&lt;h3&gt;1番目以降全部持ってくる&lt;/h3&gt;
$ !!:1*&lt;br /&gt;
$ -al app&lt;br /&gt;

&lt;h3&gt;拡張子を除いたファイル名&lt;/h3&gt;
圧縮ファイルを解凍して展開しcdでディレクトリに入る&lt;br /&gt;
直前のコマンドの最後の引数の拡張子を削除(:r)&lt;br /&gt;
$ tar xzvf keshite_aketehaikenai.tgz&lt;br /&gt;
$ cd !!:$:r&lt;br /&gt;

&lt;h3&gt;&lt;br /&gt;
直近のコマンドの一部を置換&lt;/h3&gt;
そのようなディレクトリはないと怒られたときは^置換前^置換後で直近のコマンドを置換できる&lt;br /&gt;
$ cd ppap&lt;br /&gt;
cd: そのようなファイルやディレクトリはありません: ppap&lt;br /&gt;
$&amp;nbsp;^ppap^app&lt;br /&gt;
$&amp;nbsp;cd app&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ここまで書いたけど、もっと詳しくまとまってるページがあったので&lt;br /&gt;
▼詳しいことは以下を参照&lt;br /&gt;
&lt;a href=&quot;http://d.hatena.ne.jp/zariganitosh/20131108/bash_history_expansion&quot; title=&quot;&quot; target=&quot;_blank&quot;&gt;http://d.hatena.ne.jp/zariganitosh/20131108/bash_history_expansion&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ということで、とりまsudoを忘れたときは&lt;br /&gt;
sudo !!&lt;br /&gt;
「すーどぅーべんべん」と覚えましょう！&lt;br /&gt;
&lt;br /&gt;
Goodbye Everyoneのフランス語を調べたら、&lt;br /&gt;
Au revoir tout le mondeと出てきたのでやっぱりフランス語は難しい。&lt;br /&gt;
&lt;br /&gt;
アデュー皆様。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
</description> 
      <link>http://peacock.ky-3.net/shell/woops_i_forgot_sudo</link> 
    </item>
    <item>
      <title>MacローカルにNodeとnpmをバージョン指定してインストールする手順</title>
      <description>★Step.1&lt;br /&gt;
Xcodeをインストール&lt;br /&gt;
App Storeで検索してインストール&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
【参考】Xcodeインストールからやる手順&lt;br /&gt;
&lt;a href=&quot;http://qiita.com/_daisuke/items/d3b2477d15ed2611a058&quot; title=&quot;&quot; target=&quot;_blank&quot;&gt;http://qiita.com/_daisuke/items/d3b2477d15ed2611a058&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
★Step.2&lt;br /&gt;
Homebrewをインストール&lt;br /&gt;
公式サイトにあるコマンドをコピってターミナルに貼り付けてインストール&lt;br /&gt;
以下は例
&lt;pre&gt;$ ruby -e &quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)&quot;&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;darr;Homebrew公式&lt;br /&gt;
&lt;a href=&quot;http://brew.sh/index_ja.html&quot; title=&quot;&quot; target=&quot;_blank&quot;&gt;http://brew.sh/index_ja.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
★Step.3&lt;br /&gt;
Nodeをインストール&lt;br /&gt;
HomebrewでNodeをインストール&lt;br /&gt;
&lt;br /&gt;
以下の２行のコマンドを実行。&lt;br /&gt;

&lt;pre&gt;$ brew update
$ brew install node&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
★Step.4&lt;br /&gt;
Nodeのバージョン管理nをインストール&lt;br /&gt;

&lt;pre&gt;$ npm install -g n&lt;/pre&gt;
&lt;br /&gt;
&lt;a href=&quot;http://qiita.com/bigplants@github/items/2d75bf552e0da4a7e822&quot; title=&quot;&quot; target=&quot;_blank&quot;&gt;http://qiita.com/bigplants@github/items/2d75bf552e0da4a7e822&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
★Step.5&lt;br /&gt;
特定バージョンのNodeをインストール&lt;br /&gt;
&lt;br /&gt;

&lt;pre&gt;$ n 5.5.0&lt;/pre&gt;
&lt;br /&gt;
★Step.6&lt;br /&gt;
node 5.5.0をインストールするとnpmが3.3.12でインストールされると思うので、&lt;br /&gt;
npmをupdateする。&lt;br /&gt;
&lt;br /&gt;
特定バージョンのnpmをインストール&lt;br /&gt;
&lt;br /&gt;

&lt;pre&gt;$ npm install -g npm@3.5.3&lt;/pre&gt;
&lt;br /&gt;
最新にupdateしたいなら&lt;br /&gt;
&lt;br /&gt;

&lt;pre&gt;$ npm update -g npm&lt;/pre&gt;
&lt;br /&gt;
★Step.7&lt;br /&gt;
バージョンを確認する&lt;br /&gt;
&lt;br /&gt;

&lt;pre&gt;$ node -v
v5.5.0
$ npm -v
3.5.3&lt;/pre&gt;</description> 
      <link>http://peacock.ky-3.net/nodejs/install_node</link> 
    </item>
    <item>
      <title>gitのlogを美しくtree表示するエイリアスを設定する</title>
      <description>公式Twitterの中の人業務をやっている関係で、&lt;br /&gt;
ツイートするネタを探していたら&lt;br /&gt;
gitのlogがtree表示できることを知ったのでエイリアスを設定してやりました。&lt;br /&gt;
だので手順をまとめます。&lt;br /&gt;
&lt;br /&gt;
ちなみに、自分はエイリアス使わない派です。&lt;br /&gt;
理由は「タイピングを無駄にいっぱいして打鍵音を響かせることにより、テレビで見たことあるハッカー感を出す」ためと&lt;br /&gt;
「コマンドを思い出すことで脳活も兼ねる」ためと&lt;br /&gt;
「端末ごとにいちいち設定してやらないといけないのが面倒」なためと&lt;br /&gt;
「いっぱい打たないといけないから誤爆なさそう」というビビリ体質のためです。&lt;br /&gt;
&lt;br /&gt;
ただ、このコマンドーを覚えて打つには、ピアニストバリの指の鍛錬と記憶力が必要そうなので、&lt;br /&gt;
今回はエイリアスを設定してやります。&lt;br /&gt;
&lt;br /&gt;
まずはコマンド打ってどんなもんか表示してみます。&lt;br /&gt;
&lt;br /&gt;

&lt;pre style=&quot;overflow: auto;&quot;&gt;git log --graph --date=short --decorate=short --pretty=format:'%Cgreen%h %Creset%cd %Cblue%cn %Cred%d %Creset%s'&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
美しすぎるーーー！&lt;br /&gt;
とても気に入りました。&lt;br /&gt;
&lt;br /&gt;
では、エイリアスに登録いたします。&lt;br /&gt;
&lt;br /&gt;

&lt;pre style=&quot;overflow: auto;&quot;&gt;git config --global alias.tr 'log --graph --date=short --decorate=short --pretty=format:&quot;%Cgreen%h %Creset%cd %Cblue%cn %Cred%d %Creset%s&quot;'&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
そして、いよいよ、エイリアスを打ち込みます。&lt;br /&gt;

&lt;pre style=&quot;overflow: auto;&quot;&gt;git tr&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
わーい！ゴイスーだよー♪&lt;br /&gt;
&lt;br /&gt;
これでいつでもlogを美しく確認することができます。&lt;br /&gt;
&lt;br /&gt;
ヤフーー ジャパニーズ ワビサビーー♪&lt;br /&gt;
&lt;br /&gt;
参考にさせていただいたのは、こちらの記事です。&lt;br /&gt;
&lt;a href=&quot;http://paiza.hatenablog.com/entry/2016/06/23/%E3%80%90%E5%87%84%E8%85%95Web%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A27%E4%BA%BA%E3%81%AB%E8%81%9E%E3%81%84%E3%81%A6%E3%81%BF%E3%81%9F%E3%80%91%E3%81%A9%E3%82%93%E3%81%AA%E9%96%8B%E7%99%BA%E7%92%B0&quot; title=&quot;&quot; target=&quot;_blank&quot;&gt;【凄腕Webエンジニア7人に聞いてみた】どんな開発環境や便利ツール使って仕事してるの？ &lt;/a&gt; &lt;br /&gt;
ありがとうございます！ &lt;br /&gt;
記事を書いてる人のギャグセンがめっちゃよくて大好きです。&lt;br /&gt;
&lt;br /&gt;
</description> 
      <link>http://peacock.ky-3.net/git/git_log_tree</link> 
    </item>
    <item>
      <title>FFでposition:relativeにするとbackground-color設定してあるtdのborderが消える</title>
      <description>表題のとおりですが、&lt;br /&gt;
&lt;br /&gt;
Firefoxでtableのtdにbackground-colorとposition:relativeとborderを同時に設定すると&lt;br /&gt;
borderが消えます。&lt;br /&gt;
&lt;br /&gt;
百聞は一見にしかず。&lt;br /&gt;
これをFFで見てみてください。&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://codepen.io/anon/pen/PbbyvN/&quot; title=&quot;&quot; target=&quot;_blank&quot;&gt;http://codepen.io/anon/pen/PbbyvN/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
はい、borderが消えてます。&lt;br /&gt;
&lt;br /&gt;
tdにposition:relativeなんて設定してるからじゃん、と思いますね。&lt;br /&gt;
私もそう思います。&lt;br /&gt;
&lt;br /&gt;
ただ、tdにキレイに下付きにボタンを配置したい＆tdの中の高さが変わる場合は、&lt;br /&gt;
tdにボタン分のpadding-bottomをつけてやって、absoluteで配置したいということがあると思います。&lt;br /&gt;
&lt;br /&gt;
何の話をしてるのか分からない人は、&lt;br /&gt;
どういう状況のことかcodepenでどうぞ。&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://codepen.io/anon/pen/RooqbP&quot; title=&quot;&quot; target=&quot;_blank&quot;&gt;http://codepen.io/anon/pen/RooqbP&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
これでborderが消えてるよ！とのご指摘がありました。&lt;br /&gt;
&lt;br /&gt;
困ったなーと思っていろいろやった結果、解決策が見つかりました！&lt;br /&gt;
&lt;br /&gt;
borderの消えているtdに以下のスタイルを追加してみてください。&lt;br /&gt;
background-clip: padding-box;&lt;br /&gt;
&lt;br /&gt;
直ったー♪&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.htmq.com/css3/background-clip.shtml&quot; title=&quot;&quot; target=&quot;_blank&quot;&gt;http://www.htmq.com/css3/background-clip.shtml&lt;/a&gt;
&lt;pre&gt;引用：
background-clipプロパティは、背景の適用範囲を指定する際に使用します。
padding-box
背景をパティングボックスに適用する&lt;/pre&gt;
&lt;br /&gt;
paddingから背景を適用することにより、borderが消えるのを回避できました。&lt;br /&gt;
&lt;br /&gt;
皆さんも、こんな現象に出会ったら、使ってみてください。&lt;br /&gt;
ブラウザサポートもIE9から対応しています。&lt;br /&gt;
&lt;a href=&quot;http://caniuse.com/#search=background-clip&quot; title=&quot;&quot; target=&quot;_blank&quot;&gt;http://caniuse.com/#search=background-clip&lt;br /&gt;
&lt;br /&gt;
&lt;/a&gt;では！さらばだ！</description> 
      <link>http://peacock.ky-3.net/_css/ff_td_position-relative</link> 
    </item>

  </channel>
</rss>