pockestrap

Programmer's memo

作ったもの

$ sl | twice # => Run SL twice!

github.com なにこれ 標準出力をリピートするコマンドです。 Installation $ go get github.com/pocke/twice Usage $ echo -n 'hoge' | twice # => hogehoge $ sl | twice # => Run SL twice! また、オプションで繰り返す回数を指定することが出来ます。 $ s…

コマンドを打ち間違えるとコマンドが走るコマンド

Installation 1. banner コマンドをインストールする パッケージマネージャでインストール出来ると思います。 # Arch Linux の例 $ sudo pacman -S banner 2. flowterm という gem をインストールする。 github.com $ gem install flowterm 3. ~/.zshrc に以…

db/schema.rb のコンフリクトを勝手に解決する git merge driver を作った

解決したい課題 Ruby on Rails を使って開発している方の中で、db/schema.rbがコンフリクトした経験がある方は多いのではないでしょうか? 特にスキーマのバージョンはよくコンフリクトします。 diff --cc db/schema.rb index bdb07db,da150fc..0000000 --- …

StrongJSON の高速化実装、MightyJSON を作っている話

soutaro さんが作っている StrongJSON をより高速に実行する MightyJSON を作っています。 github.com github.com StrongJSON とは StrongJSON とは、JSON の型チェックを行う便利Gemです。 # スキーマ定義 s = StrongJSON.new do let :item, object(id: num…

Ruby用オンラインパーサーのBacon Cannonに、URLのシェア機能を追加しました

Bacon Cannon とは? bacon-cannon.herokuapp.com Ruby 用のオンラインパーサーです。Web上から Ripper 及び Parser gem を使用して Ruby のコードをパースし、AST を眺めることが出来ます。 シェア機能 今回は、この Bacon Cannon にパース結果をシェアする…

Mry を使って RuboCop のアップデートを楽しよう

TL;DR GitHub - pocke/mry: Mry Migrates .Rubocop.Yml Mry を使うと、コマンド一発で非互換にやられた.rubocop.ymlをアップデート出来る 前置き RuboCop のバージョンをご存知でしょうか? 現在(2017/04/24)の RuboCop の最新バージョンは、0.48.1 です。バ…

コマンドの出力結果をコピーするコマンドを作った

TL;DR GitHub - pocke/recc: Record command and output. recc ls -laで、ls -laが実行され、結果がクリップボードにコピーされる。 欲求 私は普段コマンドラインツールの開発をしていることが多いです。 そのため、コマンドラインツールの出力をコピーした…

デバッグのためにコメントアウトして死ぬのをやめたい

タイトルのようなバグと戦うためのツールを作成した。 この記事はその宣伝である。 TL;DR github.com バグとの出会い 先日、おもしろバグに出会った。 Rails を使用しているプロジェクトで、本来必要なbefore_actionがコメントアウトされていた。 # こんなか…

Bacon Cannon のアーキテクチャ

先日、Bacon Cannon というアプリケーションをリリースしました。 bacon-cannon.herokuapp.com 一言で説明すると、Ruby のオンラインパーサーです。アプリケーションについては以下の記事をご覧ください。 pocke.hatenablog.com この記事では、Bacon Cannon …

Ruby 用オンラインパーサーを作っている

Ruby のソースコードを Ripper(1.9 ~ 2.4) or parser gem(1.8 ~ 2.4)を使ってパースした結果を眺められる Web サービスを作った— Pocke (@p_ck_) 2017年4月8日 その名も Bacon Cannon です。こちらからアクセスできます。 https://bacon-cannon.herokuapp.co…

lib/hogehoge/version.rb の編集に消耗しない為のツールを作った

github.com Rubygems に gem を公開していると、当然バージョンを上げたくなることがある。 その際に発生するオペレーションの一つとして lib/hogehoge/version.rb を編集する必要がある。 例 class Hogehoge # この数値を上げたい! VERSION = '0.1.0' end …

IME でも :muscle: みたいに Emoji を入力したい!

やりたいこと :something: を解釈しないサービスでもこの形式で Emoji を入力出来るようにする。 こんな感じ 最高に便利なものが出来たぞ pic.twitter.com/Apbeoc1XPA— Pocke (@p_ck_) 2017年3月5日 やりかた IME のローマ字テーブルを書き換える 環境 Mozc …

GitHub の芝でオリジナルTシャツを作れるサービス Shibart に 3D芝機能を追加しました!

今日はプレミアムフライデーですね。いかがお過ごしでしょうか。 本日、Shibart に新機能をリリースしました!3Dの芝です! shibart.pocke.me Shibart とは? Shibart は、GitHubの芝からオリジナルのTシャツなどのグッズを作ることが出来るサービスです。 …

Shibartで作ったグッズが届いた

先日、ShibartというGitHubの芝グラフをTシャツなどのグッズにするサービスをリリースしました。 shibart.pocke.me ブログ記事 pocke.hatenablog.com pocke.hatenablog.com このサービスで作成した商品が届いたので、それの写真などをレポートします。 なお…

プログラムのコードを書き換えずにRubyプログラムをStackprof付きで実行する、stackprof-run というGemを作りました。

github.com こんにちは。 id:Pocke です。 Stackprofを便利に使うGemを作成したので紹介しようと思います。 Stackprof とは 下記参照 github.com Stackprof を使う際の問題点 コマンドラインツールに対してStackprofを使用する際、通常だと以下のようなコー…

Shibart 作成の軌跡

あけましておめでとうございます。 id:Pocke です。 今年の目標は、人の顔を覚えることです。人のことを服の色で覚えてしまうので、この季節はコートを脱ぎ着すると人の判別ができなくなってしまうのを今年こそは直そうと考えています。 昨年末、Shibartとい…

GitHubに芝を生やすだけで満足していませんか? 芝を着るサービス、Shibartをリリースしました!

追記 2016年12月31日 22時40分 2016年12月31日 22時(JST)頃まで、プログラムのバグにより生成される芝が7段ではなく6段になってしまっている不具合がありました。 今後新規に作成されたTシャツなどでは問題なく7段の芝になります。 既にTシャツ等をご購入頂…

Performance/RegexpMatch Cop の概要と実装

こんにちは。id:Pocke です。 先日、RuboCop に Performance/RegexpMatch という Cop が追加されました。 Add new Performance/RegexpMatch cop by pocke · Pull Request #3824 · bbatsov/rubocop このCopは、Ruby 2.4 で追加された match? メソッドに対応す…

tmuxinator の代替ツールを作っている話

github.com ptmux の p は pocke の p です。 何故作っているのか 私はずっとtmuxを使っているのですが、tmuxinatorなどのツールは使わずにいました。 最近、遅ればせながらtmuxinatorへの興味が高まったので試してみたところ、下記の不満点があることが分か…

Firefoxでgithub-greedy-collectorを使う

Google Chrome には、GitHubのレポジトリのページに訪れた際に自動的にgit cloneしてくれるExtensionがあります。 moznion.hatenadiary.com 便利そうなのですが、宗教上の理由でFirefoxを使っているため、このExtensionを使うことが出来ません。 そのため、F…

go get / ghq get でのアドレス形式の違いから人類を解放した

こんにちは。最近Lintツールにお熱なPockeです。 表題の通り、go getとghq getの際にアドレス形式の違いの悩みから人類を解放しました。 go getとは go getはGo言語で記述されたソフトウェアをダウンロード/インストールする際に使用するコマンドです。 例え…

Railsのマイグレーション生成をもっともっとImprovementする! mi gem version 1.0.0 をリリースしました!

こんにちは! RuboCop大好きpockeです。 最近はRuboCopにPRを投げるのが趣味みたいになってきました。 Railsにおけるマイグレーションファイルの生成をもっともっと楽にするGem、miのバージョン1.0.0をリリースしたので、今回はその紹介をしようと思います! g…

テストの際にいい感じにbinding.pryするGem PryTestcase を作った

github.com Rubygems: pry_testcase | RubyGems.org | your community gem host 前置き # Twitter にメッセージを投稿する def say(msg, param) opt = to_opt(param) opt.message = msg send_to_twitter(opt) end describe '#say' do context 'case1' do it …

Ripperをコマンドラインから簡単に使うラッパー rpr を作った

github.com RubyGems: rpr | RubyGems.org | your community gem host 作った動機 私は現在仕事としてSideCIというコードレビューを自動化するサービスを開発しています。 SideCIではRubocopなどの静的解析ツールを使用しています。 静的解析ツールの拡張の…

もっと便利に rails g migration する

前置き Railsには、DBのマイグレーションファイルを作成する為のジェネレータ、rails g migrationがあります。 例えば、usersテーブルにemailカラムを追加したい場合、このジェネレータは以下のように使います。 $ bin/rails g migration AddEmailToUsers em…

lemonade v1.0.0をリリースした

:tada: github.com Release v1.0.0 · pocke/lemonade · GitHub lemonade については、以前書いた記事をご覧ください。 リモートのPCのブラウザやクリップボードを操作するツール Lemonade を作った - pockestrap リモートユーティリティーツール、Lemonade v…

都道府県のマスタテーブルを作るGemを作った

つくりました github.com todofuken | RubyGems.org | your community gem host Ruby on Rails 用に、都道府県のマスタテーブルを作成するGemです。 Rails の generator を利用しています。 Installation 普通のGemと同じように、Gemfileに以下を記載します…

www v0.3.0 をリリースした

www のバージョン 0.3.0 をリリースしました。 :tada: github.com www 自体の説明は以前別の記事(楽々静的HTTPサーバー - pockestrap)でしているので、もしご存知なければそちらをご覧ください。 --binding オプション このリリースでは、--bindingオプショ…

ruby の begin-resuce-end で囲むVimプラグイン作った

こんな感じ Installation GitHub で公開されているので、NeoBundleなどを使用してインストールすることが出来ます。 github.com NeoBundle "kana/vim-operator-user" NeoBundle "pocke/vim-operator-ruby-rescue" Usage Vim の Operator プラグインとして動…

Rails のモデル内のメソッドをソートするRubocop Extension を作った

Rubocop、使っていますか? RubocopはRubyコードを静的に解析して問題を指摘します。 更にauto-correct機能を使うことで、指摘した内容を自動で修正することも可能です。 bbatsov/rubocop RuboCopの自動修正がSideCI上から行えるようになりました。 - SideCI …