読者です 読者をやめる 読者になる 読者になる

pockestrap

Web Programmer's memo

mikutter から ActiveRecord の validates を使う

mikutter とは、Ruby で書かれた Linux 向け Twitter クライアントです。 というのは表向きの顔で、実際は Plugin で高度に拡張可能な Twitter アプリケーションフレームワークです。 ともなれば、mikutter で Web アプリケーションを作りたくなるのは必然で…

My NeoComplete settings

普段 NeoComplete にとてもお世話になっているので、自分の設定を晒そうと思います。 参考にしてくれる人がいれば嬉しいです。 Plugins Shougo/neocomplete.vim · GitHub 言わずと知れた補完ブラグイン。 今回の主題 NeoBundle 'Shougo/neocomplete' if neob…

Vim で Ruby を書くならこれを使え!

私は開発環境を整えるのが大好きなのですが、今まであまり発信をすることがなかったのでこの記事を書きました。 少しでも Vim で Ruby を書くのが快適になれば幸いです。 なお、煽り気味のタイトルですが、それだけ私の独断と偏見で便利だと思っているもので…

一定間隔でコマンドを再起動するコマンド Mayfly を Golang で作った

つくりました。 pocke/mayflygithub.com Mayfly は「かげろう」って意味です。虫のほうです。 Installation go get github.com/pocke/mayfly バイナリは用意していないのでgo getしてください。 Usage このようにすると、gulpを起動した上で10分おきにgulpを…

リモートユーティリティーツール、Lemonade v0.2.0 をリリースした

pocke/lemonadegithub.com バージョンアップしました。 公開した時の記事はこちらです。 リモートのPCのブラウザやクリップボードを操作するツール Lemonade を作った - pockestrappocke.hatenablog.com 使い方 簡単な使い方に関しては、上記記事をご覧くだ…

最近作ったわりとどーでもいいもの3つ

気がついたらどーでもよいものを3つほど作っていたので、まとめてブログに書くことにしました。 hex pocke/hexgithub.com hex です。名前の通り、8進数です。 go getでインストールできます。 go get github.com/pocke/hex 以下のようにコマンドラインツール…

リモートのPCのブラウザやクリップボードを操作するツール Lemonade を作った

pocke/lemonadegithub.com 作りました。 Lemonadeといいます。 Go言語で書かれています。 インストール go getでインストールすることが出来ます。 go get github.com/pocke/lemonade また、リリースページから圧縮ファイルをダウンロードし、PATHの通ったと…

有理数を計算する電卓を作った

レポジトリ pocke/dentaku · GitHub 経緯 バイトに行ったら同僚が課題で分数として計算する電卓を作ったと言っていて、面白そうだから作ってみた。 言語を作ってみたくてちょうどyaccを触ったりしていた。 やってること yacc でパースしてごにょごにょした。…

benchcmp-vcs つくった

pocke/benchcmp-vcs · GitHub Go 言語には、benchcmp というベンチマークテストの結果を比較するツールが存在します。 しかし、このツール単独では使用者が比較したいバージョン同士でテストコマンドを叩き、その結果をファイルとして保存する必要があります…

コマンドラインからTwitterのアクセストークンを取得するツール書いた

Source pocke/twtoken · GitHub Usage $ go get github.com/pocke/twtoken $ twtoken -ck CONSUMMER_KEY -cs CONSUMMER_SECRET go get でコマンドをインストールして、twtoken で起動できます。 Twitter の Consummer Key と Consumer Secret を引数に渡して…

Rubyでdo-while

TwitterのTLでdo-whileが賑わっていたので。 調べてみたらbegin-endとwhile修飾子で出来るらしい。キモい(かなり) 制御構造 while 修飾子 (中略) 左辺の式が begin 節である場合にはそれを最初に一回評価してから繰り返します。 cond = false begin puts 'fo…

paiza で pizza もぐもぐしてきた

12月14日【IT系就活生向けプログラミング試験対策勉強会】開催決定! - paiza開発日誌 これいってきました。ピザおいしかった。 で、事前課題で 天才火消しエンジニア霧島「もしPMおじさんが丸投げを覚えたら」|paizaオンラインハッカソンLite を解くとのこ…

RubyのArray#include?, Array#bsearch, Set#include? をベンチマークしてみた

2014-11-28 追記. Rubyのバージョンを記すのを忘れていました。 $ ruby -v ruby 2.1.5p273 (2014-11-13 revision 48405) [x86_64-linux] 追記ここまで コード Array#include?, Array#bsearch, Set#include? benchm ... 計測方法 偶数の集合に対して、同じ範…

ghqで管理しているレポジトリを全てアップデートする

motemen/ghq · GitHub ghq便利です。 ghqで管理しているレポジトリを全部update(git pull)したかったのですが、標準でなさそうな気がしたのでちょろっと書いてみました。 $ ghq list | sed -E 's/^[^\/]+\/(.+)/\1/' | xargs -n 1 -P 10 ghq get -u xargsの-…

speak-jsが面白そうだから使ってみた

speak-js mattytemple/speak-js · GitHub 作ったもの pocke/speak.js-sample · GitHub speak-js とは クライアントサイドJavaScriptだけで喋る。 speak('foo')でfooって喋る。 楽しい感じがしますね。 作ったもの Speak.js Sample テキストエリアに入力した…

jQuery.ajaxのラッパー書いた

pocke/ajax_set.js · GitHub 何故作った 会社で先輩が作ってて便利そうだなーって思っていました。 けれどもRailsプロジェクトに向かなさそうだしプルリク投げようかなーと思ってフォークしたら全部自分で書きたくなってしまった。以上。 使い方 READMEのコ…

neocomplete用のjQueryの辞書を作った

辞書の使い方とかはneocomplete用にRubyの辞書を作った(るりま編) - pockestrapを見れば良いと思います。 Script require 'open-uri' require 'json' url_base = 'https://api.github.com' owner = 'jquery' repo = 'api.jquery.com' ep_base = "#{url_base}…

paiza Online Hackathon 解いてみた

天才火消しエンジニア霧島「もしPMおじさんが丸投げを覚えたら」|paizaオンラインハッカソンLite 以下ネタバレ注意 Rubyで解いてみました。早い人で0.02秒とか出てるの、どうやってるんだろう… pockeさんの採点結果[100点] 完璧ぃぃ!|paizaオンラインハッ…

:nohlsearch に少しハマった

結論だけ言うと、「:nohlsearch はautocmdとユーザー定義関数内で使用できない」 私はvim-watchdogsというシンタックスチェックプラグインを愛用しています。 また、vim-hierというプラグインを使って、エラー箇所をハイライトしています。 そして、nnoremap <Esc><Esc></esc></esc>…

pecoからプロセスをkillするアレ書いた

pecoめっちゃいい。 peco/peco · GitHub ターミナル上で unite.vim っぽいことをする peco が大変便利 - 反省はしても後悔はしない function peco-kill-process() { local ps_cmd='ps aux' local get_pid_cmd='sed -E s/^\S+\s+([0-9]+).+$/\1/' local ps_li…

markdownでもタグにclassや属性を付けたい!!

kramdownならできるよ、それ。 class [hoge](http://example.com){: .fuga} # => <a class="fuga" href="http://example.com">hoge</a> id [hoge](http://example.com){: #fuga} # => <a id="fuga" href="http://example.com">hoge</a> attributes [hoge](http://example.com){: target="_blank"} # =>

Vimで標準入力から読み込まれているかを判別する

数日悩んだのでメモ。 vim は、標準入力をバッファとして読み込むことが出来ます。 $ echo 'hoge' | vim - のように-をつけて起動すると、標準入力がバッファとして読み込まれます。 上の例では、バッファにhogeが入った状態でVimが起動します。 この標準入…

mv hoge hoge.bak したあと元に戻したい。

やりたい $ mv hoge hoge.bak # 何らかの作業 $ mv hoge.bak hoge とか、一時的にバックアップして元に戻すことって割とあると思います。 そんな時に、一々打ち直すのはめんどくさい。なので、てきとーにシェルの関数を書きました。 やった function swap_la…

vimのautocmd、augroupを便利に使う

vimrc には、augroupを書くことが一般的です。 augroup MyVimrc autocmd! augroup END vimrcの上の方にこの3行を書いて、autocmdを使用する度に以下のように書きます。 autocmd MyVimrc FileType help nnoremap <buffer> q <C-w>c こうすることにより、vimrcを複数回読み</c-w></buffer>…

vim-operator-gitrebase つくった

タイトルのoperatorとtextobj間違えてました…orz pocke/vim-operator-gitrebase · GitHub git rebase の使い方についてはこちらがわかりやすいです。 初心者でも分かる!git rebaseの使い方を解説します | 株式会社LIG $ git rebase -i @~~~~~~ とかするじゃ…

Vim戦闘力を計測するWebページ つくった

世の中には、Vim戦闘力と言う概念があります。 Vim-users.jp - Hack #39: Vimの戦闘力を計測する 簡単に言うと、.vimrcの行数です。 ただし、単純に行数で見てしまうとコメントや空行、行継続などでいくらでも戦闘力を水増し出来てしまいます。 そのような点…

:help する Vim の operator かいた <Vim Advent Calendar 2013>

この記事は Vim Advent Calendar 2013 176日目の記事です。 175日目は、 Vim Advent Calendar 2013 175日目: 横幅が統一ではない矩形をヤンクしたり削除したりするプラグインをつくった - C++でゲームプログラミング でした。 前置き的な 先日、vim plugin …

自動Poke返し つくった

Javascriptむずかしい。無名関数で出来ないんかな。 半日うごかして飽きた

vim-quickrunのテンポラリファイルを、編集しているファイルと同じディレクトリに置く

vim-quickrun quickrun とは、vim のプラグインである。 vimで編集しているファイルをそのまま実行できるものであり、大変便利である。 問題点 保存されていないファイルで quickrun を実行すると、一旦テンポラリファイルに書きだされてから実行される。 そ…

階乗を計算するQuine(もどき)書いた

前置き 昨日、DentooLT #7に行ってきました。面白いLTばかりで楽しかったです。 そこで、RubyでQuineを書いたってLTを見ました(Slideshareとかに上がってないのかな…)。 クワイン(英: Quine)は、コンピュータプログラムの一種で、自身のソースコードと完全…

【黒魔術】binding_of_caller gem でメソッド呼び出し元の binding を手に入れる

banister/binding_of_caller · GitHub この gem を使うと、メソッド呼び出し元の binding で eval することができます。 binding とは class Binding ローカル変数やオブジェクトを保持するクラスです。 def a x = 'Hello' b(binding) end def b(bi) puts bi…

NyaoBundle つくった

NyaoBundle とは pocke/NyaoBundle · GitHub NeoBundle を汎用的にしてみたような感じ。 NyaoBundle という変な名前は、ねこが好きだから。にゃお。 使い方 mikutter のプラグインを管理する例です。 ### file: ~/.mikutter/plugin/.nyaobundlerc get 'pocke…

mikutter-sub-parts-clientを魔改造した

toshia/mikutter-sub-parts-client · GitHub 多分みんな入れてるプラグインじゃないでしょうか。 viaを表示するプラグインです。ただ、このプラグイン、クライアント名をクリックしても何も起きないのですよね。 ブラウザでクライアントのページを開いてほし…

ブロックしている人をミュートするmikutterプラグインを作った

作った後に調べたら似たようなプラグインが既にあったんだよなぁ…(真顔 Phenomer / mfilter — Bitbucketというわけでプラグイン作りました。わいわい pocke/mikutter_blocked_user_mute · GitHub ブログを書いた時点でのコードはこちら pocke/mikutter_block…

mikutterでGETなAPIを叩いて結果を手に入れる

TwitterのAPIリファレンスを見れば,実際にAPIを叩くことができるようになります.ここでは例としてプロフィールアイコンと名前を設定してみます.APIは https://dev.twitter.com/docs/api/1.1/post/account/update_profile_image にまとめられています.こ…

神mikutterプラグイン作った

神プラグイン作った http://t.co/M06777cKaA— ぽけっと -Syua (@p_ck_) 2014, 1月 10 Plugin.create :mikumiku do on_favorite do system('mikutter &') end end 'mikutter &'で呼び出さないと、呼び出し元のmikutterが操作できなくなります。

REXML::Document#to_hash したい!

Rubyの標準ライブラリにあるxml、hashにするメソッドがないのよねー。 ということで作りました。 と入っても、殆ど http://rhysd.hatenablog.com/entry/20120504/1336155621 のコピペです。to_hashしたかっただけ。 # public domain require 'rexml/document…

slコマンドが走りました

$ sl ==== ________ ___________ _D _| |_______/ \__I_I_____===__|_________| |(_)--- | H\________/ | | =|___ ___| _________________ / | | H | | | | ||_| |_|| _| \_____A | | | H |__--------------------| [___] | =| | | ________|___H__/__|_____…

fizzbuzzするmikutter plugin

こんな感じでコマンド打って pic.twitter.com/rLHHpVH5ki— ありか (@arik_a_) 2013, 12月 8 FizzBuzz, 31, 32, Fizz, 34, Buzz, Fizz, 37, 38, Fizz, Buzz, 41, Fizz, 43, 44, FizzBuzz, 46, 47, Fizz, 49, Buzz, Fizz, 52, 53, Fizz, Buzz, 56— ありか (@ar…

はじめてのぶれいんふぁっく

今までBrainFuckを書いたことがなかったので書いてみました。 Rubyです。てきとーです。汚いです。ぐぬぬ。

ヒアドキュメント

#!/bin/sh cat <

bash, zshで挙動が違う、そして謎

a='ls -l' $a これ、実行するとどうなると思いますか? bashでは drwxr-xr-x 2 pocke users 4096 6月 14 20:13 Desktop drwxr-xr-x 8 pocke users 4096 10月 25 10:47 Document drwxr-xr-x 15 pocke users 4096 11月 18 21:13 Download ....みたいに出力され…