タグ

ブックマーク / pocke.hatenablog.com (13)

  • 私にPull Requestとレビューを見せてください - pockestrap

    TL;DR RuboCopプラグインの開発の為にPull Requestを見たいです 仕事としてでもそうでなくても構いません TwitterGitHub Issueやメール( kuwabara (at) pocke(dot)me )までご連絡お待ちしています 背景 現在私はRuboCop Typed (仮)というRuboCopプラグインの開発をしています。 github.com pocke.hatenablog.com このRuboCopプラグインでは、Ruby 3で導入される予定の静的型の情報を使って、従来ではできなかった解析をRuboCopで行うことを目的にしています。 私は現在この解析を実装しつつ、型情報によって解決できるようになる問題にはどのようなものがあるのかを探しています。 そして、この「型情報によって解決できるようになる問題」を探すために多くのPull Requestを読み

    私にPull Requestとレビューを見せてください - pockestrap
    michael26
    michael26 2020/02/06
  • Vimでカーソル位置のRubyVM::AST::Nodeを表示する - pockestrap

    quickrunを使って、RubyVM::ASTを使ってパースしたASTからカーソル下のノードをサッと表示できるようにしてみた pic.twitter.com/EkpYdP669j— Pocke(ぽっけ) SW-1309-2807-5790 (@p_ck_) May 27, 2019 次のコードをprint-focused-ast.rbとして適当なところに置く #!ruby # Usage: print-focused-ast.rb --line 3 --column 5 path # line is 1 origin # column is 0 origin require 'optparse' OPTION = {} def line OPTION[:line].to_i end def column OPTION[:column].to_i end def has_target?(n

    Vimでカーソル位置のRubyVM::AST::Nodeを表示する - pockestrap
    michael26
    michael26 2019/05/29
  • Vim in Vim しない :terminal - pockestrap

    PoCを作っている。 なに Vimには:terminalという便利なコマンドがあり、これを実行するとVimの中でターミナルが開く。1 これは多分便利で、例えばターミナルからgfしやすかったりすると思う。 :terminalコマンドで開かれるのはターミナルなので、もちろんそのターミナルからVimを起動することもできる。 これは面白いのだけど面白い以上の価値はあまりないと思っていて、何故ならばVimの中でVimを開くと単純に混乱する。 Vim in VIm そこで、Vimの:terminalの中でVimコマンドを実行すると、外側のVimでファイルを開くようにしてみた。 Vim in Vimではない GIFを見てもいまいち分かりづらいと思うが、前者のGIFではVimの中のターミナルの中でVimが開いているのに対して、後者のGIFでは外側のVimの中で新しくWindowが立ち上がってファイルが開か

    Vim in Vim しない :terminal - pockestrap
    michael26
    michael26 2019/05/01
  • 最近Swiftを書きはじめた - pockestrap

    ポエムです。 TL;DR Arch LinuxSwift をビルドした コマンドラインツール作った Linux上のVimSwiftのオムニ補完出来るようにした 背景 バイト先で社内勉強会に参加していたところ、突然Swift部が発足しました。 軽くググったところLinuxでもSwiftが動くことがわかったので、Swift部に参加することにしました。 環境 Arch Linux Swift 2.2.1 Vim 7.4 Swift のインストール Arch LinuxSwiftをインストールする - Qiita 最初にこの記事を参考にインストールしました。 しかし、Foundation(Obj-Cの標準ライブラリ?)や、後述するswift-ide-testが必要になったため、swiftパッケージからビルドすることにしました。 Foundationなどを入れるには_experimenta

    最近Swiftを書きはじめた - pockestrap
    michael26
    michael26 2018/06/08
  • Rails Best Practices を3~4倍ぐらい速くした話、あるいはStackProf入門 - pockestrap

    github.com TL;DR StackProf でボトルネック検出 String#present?は遅いから使わない。 何度も呼び出される毎回同じ値を返すメソッドをメモ化 上記により3~4倍のパフォーマンス改善 はじめに Rails Best PracticesはRailsに特化したコードメトリックツールです。 github.com 仕事柄このようなツールをよく扱うのですが、Rails Best Practicesは実行が遅いと言う問題点がありました。 と言うわけでなんとなくプロファイリングして高速化してみました。 プロファイリング 使用ツール まずは、ボトルネックを探すためにプロファイリングします。 それでは、プロファイリングのためにRailsプロジェクトを用意しましょう。 ある程度大きめのプロジェクトが必要なため、今回はgitlabhq/gitlabhqを使用します。 適当な場所

    Rails Best Practices を3~4倍ぐらい速くした話、あるいはStackProf入門 - pockestrap
    michael26
    michael26 2018/06/08
  • tmuxinator の代替ツールを作っている話 - pockestrap

    github.com ptmux の p は pocke の p です。 何故作っているのか 私はずっとtmuxを使っているのですが、tmuxinatorなどのツールは使わずにいました。 最近、遅ればせながらtmuxinatorへの興味が高まったので試してみたところ、下記の不満点があることが分かりました。 windowの名前を設定されてしまう 実行プロセス名が出てほしいので困る ~/.tmuxinator/下に設定ファイルが作られる(~/.config/下を使って欲しい) 設定ファイルがなんか気持ち悪い 感情 コマンドラインツールにわざわざgem installしたくない 気分 上記の不満を解消するために新しくツールを自作することにしました。 つくりかた tmuxinatorの実装を軽く見てみたところ、設定ファイルからいい感じにシェルスクリプトを吐いているようでした。 例えば、以下のように

    tmuxinator の代替ツールを作っている話 - pockestrap
    michael26
    michael26 2018/06/08
  • db/schema.rb のコンフリクトを勝手に解決する git merge driver を作った - pockestrap

    解決したい課題 Ruby on Rails を使って開発している方の中で、db/schema.rbがコンフリクトした経験がある方は多いのではないでしょうか? 特にスキーマのバージョンはよくコンフリクトします。 diff --cc db/schema.rb index bdb07db,da150fc..0000000 --- a/db/schema.rb +++ b/db/schema.rb @@@ -10,7 -10,7 +10,11 @@@ # # It's strongly recommended that you check this file into your version control system. ++<<<<<<< HEAD +ActiveRecord::Schema.define(version: 20170701103541) do ++======= + Act

    db/schema.rb のコンフリクトを勝手に解決する git merge driver を作った - pockestrap
    michael26
    michael26 2017/12/05
  • require を忘れる - pockestrap

    Ruby のコードをちょっと試したい時、requireを煩わしく感じることがあります。 例えば素数が小さい順に10個欲しくなった時、Rubyist は Ruby でワンライナーを書くでしょう。 $ ruby -e 'require "prime"; require "pp"; pp Prime.take(10)' [2, 3, 5, 7, 11, 13, 17, 19, 23, 29] もしくは、-rオプションを使用してrequireを行うかもしれません。 $ ruby -rprime -rpp -e 'pp Prime.take(10)' [2, 3, 5, 7, 11, 13, 17, 19, 23, 29] ですが、これはちょっと面倒ですね。何故私達は-rprimeや-rppなどといったオプションを指定しなければいけないのでしょうか? Prime定数と言ったらprimeライブラリです

    require を忘れる - pockestrap
    michael26
    michael26 2017/10/07
    愚直に定義されたものが最後rubyっぽく展開されていってる
  • Git で Pull-Request を fetch する alias - pockestrap

    GitHub で Pull-Request を fetch する為に、以下の特殊なブランチ名を使うことが出来ます。 sinsoku.hatenablog.com $ git fetch origin pull/ID/head # 42番の PR を fetch する $ git fetch origin pull/42/head 毎回これを打つのはめんどくさい、また checkout するのがめんどくさい為、alias にしました。 以下を .gitconfig に追記すると動きます。 [alias] fpr = "!f(){ git fetch origin pull/$1/head:$1; git checkout $1; };f" Usage: # 42 番の PR を fetch して、42 というブランチを作成しそこに checkout する $ git fpr 42 前の例に比

    Git で Pull-Request を fetch する alias - pockestrap
    michael26
    michael26 2017/06/19
  • IME でも :muscle: みたいに Emoji を入力したい! - pockestrap

    やりたいこと :something: を解釈しないサービスでもこの形式で Emoji を入力出来るようにする。 こんな感じ 最高に便利なものが出来たぞ pic.twitter.com/Apbeoc1XPA— Pocke (@p_ck_) 2017年3月5日 やりかた IME のローマ字テーブルを書き換える 環境 Mozc Arch Linux 説明は上記の環境で行いますが、ローマ字テーブルをいじることが出来る IME であれば同様のことが可能だと思います。 手順 ローマ字テーブルのバックアップ まずは、既存のローマ字テーブルをバックアップします。 今回は Mozc を想定していますが、Google 日本語入力でもだいたい同じだと思います。 Arch Linux だと/usr/lib/mozc/mozc_tool --mode=config_dialogのようにして Mozc の設定ダイアロ

    IME でも :muscle: みたいに Emoji を入力したい! - pockestrap
    michael26
    michael26 2017/03/06
  • neocomplete用にRubyの辞書を作った(るりま編) - pockestrap

    vim用にrubyの辞書が欲しかったので用意した | blog: takahiro okumura などを読んでRubyの辞書を作りたくなりました。 しかし、先ほどのコードはrbenv前提であり私はrbenvを使っていないため、るりまから辞書を作成しました。 「辞書」とは 単語を改行区切りで羅列したファイルです。 辞書ファイルに書かれた単語が対象のファイルタイプで補完されます。 作り方 Rubyリファレンスのダウンロード まずは、bitclust gem をインストールします。 そして、bitclustからRubyのリファレンスをダウンロードします。 ちなみに、bitclustに依存しているrefe2 gemをインストールすると、Ref.vimで便利に使えます。 $ gem install bitclust $ bitclust setup --versions=2.1.0 version

    neocomplete用にRubyの辞書を作った(るりま編) - pockestrap
    michael26
    michael26 2016/04/19
  • My NeoComplete settings - pockestrap

    普段 NeoComplete にとてもお世話になっているので、自分の設定を晒そうと思います。 参考にしてくれる人がいれば嬉しいです。 Plugins Shougo/neocomplete.vim · GitHub 言わずと知れた補完ブラグイン。 今回の主題 NeoBundle 'Shougo/neocomplete' if neobundle#tap('neocomplete') call neobundle#config({ \ 'depends': ['Shougo/context_filetype.vim', 'ujihisa/neco-look', 'pocke/neco-gh-issues', 'Shougo/neco-syntax'], \ }) " 起動時に有効化 let g:neocomplete#enable_at_startup = 1 " 大文字が入力されるまで大文字

    My NeoComplete settings - pockestrap
  • Vim で Ruby を書くならこれを使え! - pockestrap

    私は開発環境を整えるのが大好きなのですが、今まであまり発信をすることがなかったのでこの記事を書きました。 少しでも VimRuby を書くのが快適になれば幸いです。 なお、煽り気味のタイトルですが、それだけ私の独断と偏見で便利だと思っているものです。 私は Ruby では Rails をメインに書いているので、Railsを書いている人には特に便利かも知れません。 mikutter plugin も時々書きます。 この記事では、Ruby に特化したプラグイン/設定の紹介をしたいと思います。 汎用的なものに関しては、簡単な説明とレポジトリへのリンクに留めます。 また、インストール方法は、NeoBundleを使用する方法を紹介します。 私がNeoBundleを使用しているので。 github.com neocomplete 用 Ruby 辞書 github.com neocomplete

    Vim で Ruby を書くならこれを使え! - pockestrap
    michael26
    michael26 2015/10/17
  • 1