pockestrap

Programmer's memo

2019-01-01から1年間の記事一覧

:terminal を使ってDenite.nvimのシンプルな代替Vimプラグインを作った

Problem Denite.nvim という便利なVimプラグインがあります。 Deniteの解説は他に譲りますが、私は主にファイル名のインクリメンタルサーチや、git grepに使っていました。 github.com Uniteの頃からとても便利に使っていたのですが、DeniteはPythonに依存し…

Meguro.rb#27 でFizzbuzzだけできるRuby to JavaScriptコンパイラを書いた

github.com Meguro.rb#27のLTで、ライブコーディングでFizzbuzzができるRuby to JavaScriptコンパイラを書きました。 ライブコーディングだけをしたので、資料は↑のGitHubリポジトリのみです。 このコンパイラを使うと、次のFizzbuzzのコードがJavaScriptの…

Vimでカーソル位置のRubyVM::AST::Nodeを表示する

quickrunを使って、RubyVM::ASTを使ってパースしたASTからカーソル下のノードをサッと表示できるようにしてみた pic.twitter.com/EkpYdP669j— Pocke(ぽっけ) SW-1309-2807-5790 (@p_ck_) May 27, 2019 次のコードをprint-focused-ast.rbとして適当なところに…

Roppongi.rb#10 で「Self-hosting Whitespace」というタイトルでLTをした

タイトル通り、Roppongi.rb#10 でSelf-hosting WhitespaceというタイトルでLTをしました。ディープな話題ですが楽しんでもらえたようでよかったです。 roppongirb.connpass.com speakerdeck.com docs.google.com この記事では、発表の際に話せなかったことや…

Rubyでメソッドのインライン展開をする

Rubyでメソッドのインライン展開をするRinlineというgemを作って、RubyちこくKaigiで発表した。 github.com speakerdeck.com docs.google.com 見るならSpeakerdeckよりもGoogle slidesの方がオススメ。オリジナルデータだし、URLがリンクになっている。 この…

Ruby Puzzle その2

その1はこちら pocke.hatenablog.com 解答、ヒント、解説などは充分な余白を開けた上で表示するので、安心して読んでください。 問題 class String def to_proc puts self -> { self } end end ->(&b){b.()}.(&("Hello world" * 42)) このRubyプログラムに1…

Ruby Puzzle その1

解答、ヒント、解説などは充分な余白を開けた上で表示するので、安心して読んでください。 問題 gist.github.com このRubyプログラムに1文字追加して、"Hello world\n"を出力するプログラムにしなさい。 なお、例外などで異常終了するものは正答とはみなしま…

Itamaeのテストを壊してしまっていた話

本日、Itamae v1.10.4がリリースされました。 Itamae v1.10.4 released! thanks @p_ck_ !https://t.co/rcUOukG0Ag— うなすけ (@yu_suke1994) May 10, 2019 このリリースには私のPull Requestがいくつか含まれています。 この記事ではそのうちの1つのPull Req…

10連休

10連休でできたこと、できなかったことを書く。 英語でもだいたい同じような記事を書いた。 til.hatenablog.com やったこと プログラミング RubyKaigiでRubyVM::ASTをみんな楽しそうに使っているのを見て、遊びたくなって色々やっていた。 このへんが成果物…

RubyをWhitespaceにトランスパイルする

前回までのお話 pocke.hatenablog.com Whitespaceというプログラミング言語があります。 Whitespaceは空白文字だけで構成されたプログラミング言語です。 空白文字だけで構成されているので、当然Whitespaceでプログラムを記述するのは大変です。 そこで、Ru…

WhitespaceをRubyに埋め込む

Whitespaceというプログラミング言語があります。 この言語はスペースとタブと改行文字だけで構成された言語です。 たとえばHello, world!を出力するプログラムは次のようになります。 gist.github.com このWhitespaceをRubyで実装してみました。Akazaという…

Rubyでoverloadをする

Rubyは言語仕様としてはoverloadを提供していませんが、ライブラリを使うことでoverloadできます。 github.com 使い方 まずgemをインストールします。 $ gem install overloader クラスにOverloaderモジュールをextendし、overloadメソッドを呼び出すことでo…

最近querlyに投げたpull request 2019-04

ここ最近querlyにいくつかPRを投げる機会があったので、ブログにまとめてみる。 Add documentation for as syntax #60 github.com これはドキュメントの更新である。 使いたい機能がドキュメントに書かれていなかったので追加した。 querlyにはinterpolation…

遅延評価とRSpecとActive Record

仕事をしていて面白いコードを見たので紹介する。 次のコードについて話す。適当に書いているし、適宜コードも書き換えているので、間違っていたら適当に補完して読んで欲しい。 # app/models/user.rb class User < ApplicationRecord scope :admin, -> { wh…

髪の長い生活

髪の長さ 腰まであるロング。 床に正座をしてピンと背筋を伸ばしても、必ず床に髪が付く程度に長い。 髪の量も少なくはないと思う。 伸びるまでの期間 おおよそ5年ぐらい伸ばしていると思う。 髪型 最近はほとんどの場合でバナナクリップを使ってポニーテー…

Webサービスのアカウント作成に性別が必須であることに対する気持ち

TL;DR 嫌い 性別を入力させたい気持ちはわかることもある でも嫌い 前置き、もしくは予防線 私のセクシャリティは明示しません。 これはめちゃくちゃ不親切でこんな記事を書くならセクシャリティを明示してどの視点から見るとこういう気持ちになるかはっきり…

Vim in Vim しない :terminal

PoCを作っている。 なに Vimには:terminalという便利なコマンドがあり、これを実行するとVimの中でターミナルが開く。1 これは多分便利で、例えばターミナルからgfしやすかったりすると思う。 :terminalコマンドで開かれるのはターミナルなので、もちろんそ…

2018年の支出(新卒1年目)

note.mu 上記の記事を読んで面白かったので。 生活スタイルが全く同じ人間なんていないので大して参考になるとは思わないけど、見せ物としては面白いのではないか。 前提 2018年中の支出をまとめた マネーフォワードに記録されている値からの抜粋 現金支出は…

Cuculus.vimを作った

github.com なにこれ Rubyのdef-endなどの対応を%でジャンプするためのVimプラグイン。Parser gemを使っているので、Parser gemが正確にパースできるコードであれば正確な位置にジャンプできる。 動機 vim-jpのSlack1でmatchup.vimがうまく動かないという話…

RuboCopの次のバージョンから、.rubocop.ymlの重複エントリが警告されます

RuboCopの次のバージョンから、.rubocop.ymlの重複エントリが警告されます。Pull Requestはこちら。 github.com Problem RuboCopでは、.rubocop.ymlに重複したエントリがあることが原因であるIssueが度々上がってきていました。 例えば#6728などです。これは…

近況

最近アラサーになりました。pockeです。 前回までのお話: 近況 – Masataka Pocke Kuwabara – Medium TL;DR 2018年11月末付でクックパッド株式会社を退職しました。 2019年2月1日付で株式会社ビットジャーニーに入社しました。 何故退職したのか 働く時間を減…

毎日新鮮なRubyを使う

rbenv global trunkしていても気が向いた時にしかRubyをビルドしていなかったので、trunkと言いつつ結構古いRubyが動いていることが多かった。 そのため毎日Rubyをビルドして、trunkとしてインストールするようにした。 環境 Arch Linux systemdが動いている…

GitHubのIssue Readerを作っている

とりあえずぐだぐだと現状を書いておくだけの記事。 リポジトリはこのへん。 github.com github.com 2018年の夏頃に開発をはじめたのだけど、途中止まってしまって最近開発を再開した。 自分がGitHubのNotificationsから乗り換えるぐらいにはできてきたので…

arpry: どこでもpryでActive Record

Rails Console、便利ですよね。これさえあればデータの表示や簡単なデータの修正、作成などが簡単にできてしまいます。 ところがそんな便利なRails Consoleにも1つ大きな欠点があります。Rails ConsoleはRailsでしか使えません。 当然です。ですが、不便です…

VimでGoのコードをコントラスト高く表示する

Problem なんかGoを書いていると「のっぺりしている」と感じる。のっぺりしていて、どこが何をしているコードなのかパッと理解することがむずかしい。Rubyだとその正反対で、コードのコントラストがはっきりしているように感じる。この違いが言語自体なのかS…