pockestrap

Web Programmer's memo

作業記録

AOJ 0506 をゴルフした

http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0506 久しぶりにゴルフをやりたくなったのでやった。AOJの仕様上、コードを短くしても自分の他の解答より実行時間が速くなければランキングにのらない様で、悲しかったのでブログ記事にした。 な…

tmux sessions ❤ peco

peco を使って tmux の session にいい感じにアタッチ出来るようにした。 想定する tmux の使いかた セッションを沢山生やす 私は、だいたい1 git repository 毎に tmux の session を生やしている。 仕事だとメインで 4 git repositories + 色々 の為に tmu…

RuboCop の Lint/UnreachableCode を直した

なにそれ RuboCop には Lint/UnreachableCode という便利 Cop がある。 その名の通り、unreachable な code を検出してくれる。 def foo do_something return do_anything # このコードは絶対に実行されない! end 上記のような絶対に実行されないコードをつ…

RuboCop で `#each` がブロックの戻り値を使わないことを思い出せるようにした

問題 以下のようなコードは、恐らくバグになります。 json = users.each do |user| id = user.id full_name = user.full_name { id: id, full_name: full_name, } end render json: json これはidとfull_nameをもったオブジェクトの配列をjsonでrenderするよ…

Gem として提供されているコマンドのベンチマーク

github.com 先程、RuboCop にパフォーマンス改善の Pull-Request を投げました。3%ぐらい速くなります。 この Pull-Request の効果を検証する際に用いたベンチマークの方法が、わりと面白くて便利(自画自賛)だったので、紹介します。 そもそもの問題 Gem で…

Rails 5.1 の System test を試した

bacon-cannon.herokuapp.com bacon-cannon で試した。 該当の Pull-Request はこれ。 github.com 環境 Ruby 2.4.1 Ruby on Rails 5.1.0.rc1 Webpacker 1.1 capybara-webkit 1.14.0 Travis CI やったこと Pull-Request に書いてあるけど、その背景とかの補足…

Bacon Cannon のアーキテクチャ

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

vim-go + gocode でインポートしていないパッケージも補完したい

TL;DR Add let g:go_gocode_unimported_packages = 1 to your .vimrc 欲求 通常、gocode ではインポートしていないパッケージの関数等は補完されない。 例えば、strings.Spと打ってstrings.Split()が補完されるためには、import "strings"が必要である。 git…

Heroku で1つの GitHub リポジトリで複数バージョンの Ruby を使う

目的 Heroku を使いたい 同じコードを複数のバージョンの Ruby で実行したい そのためにバージョンの数だけレポジトリを作るとかはやりたくない 解決法 手順1 Gemfileに以下を追記する if v = ENV['CUSTOM_RUBY_VERSION'] ruby v end 手順2 Heroku の管理画…

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

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

Vim からいい感じに tig blame する

TL;DR git blame しない人は読まなくていい。 nnoremap <F3> :silent! !tig blame +<C-r>=line('.')<CR> %<CR>:redraw!<CR> .gvimrc では nnoremap <F3> :silent! !sakura -x 'tig blame +<C-r>=line('.')<CR> %'<CR> sakura は適当なターミナルエミュレータの名前に置き換える。 <F3> は完全に趣味なの</f3></cr></cr></c-r></f3></cr></cr></cr></c-r></f3>…

Shibart 作成の軌跡

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

Rails Best Practices を3~4倍ぐらい速くした話、あるいはStackProf入門

github.com TL;DR StackProf でボトルネック検出 String#present?は遅いから使わない。 何度も呼び出される毎回同じ値を返すメソッドをメモ化 上記により3~4倍のパフォーマンス改善 はじめに Rails Best PracticesはRailsに特化したコードメトリックツールで…

Rails 4, 5 両方対応のGemをTravisでテストした話

先日、Railsのマイグレーションファイルをもっと便利に生成するGem、miのバージョン1.0.0をリリースしました。 github.com pocke.hatenablog.com このGemではRailsの4と5両方に対応しており、また4と5では挙動が異なります。 このため4と5両方のバージョンで…

rails-apiでcookieを使う

最近、rails-apiでcookieを使うような機会が何度かあったので、その方法をメモしておきます。 tl;dr rails-api with cookie · pocke/rails-api-with-cookie-sample@11ccaf1 前置き rails-apiのデフォルトでは、cookieが無効化されています。 そのため、セッ…

Railsで、Layoutを適用した静的なエラーページを生成してみた

こんにちは。私は現在 bearfruits という GitHub と連携した就活支援Webサービスを作成、運営しています。 bearfruits はRuby on Railsで開発しています。 エラーページがRailsデフォルトのままだったのを改善したので、手順をまとめます。 環境 Ruby on Rai…

mikutter から ActiveRecord の validates を使う

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

たまたま家にあったWiFiルータが PPTP 対応だったので、自宅 VPN を構築した。

動機 最近PCを組みました。 そこそこ性能のいいやつです。 (PC を組んだ時の記事はこちら パソコンくんだ - pockestrap) 当然の如くノートPCよりもデスクトップのスペックが高いので、出先で作業するのがつらくなってきました。 ノートPCは RAM が 8GB しか…

makepkg する人は、今すぐxzがマルチコアを使うよう設定すると幸せになれるかもしれない

Arch Linux でパッケージをビルドする際、makepkgしたら-> Compressing package...で永遠に待たされた経験のある人は多いと思います。 android-ndk とか最悪ですね。何であんなに遅いんだろう… これはxzコマンドがシングルスレッドで動いているのが原因なの…

パソコンくんだ

メモリ8GB環境に嫌気がさしたのでPCを組みました。自作PCは初めてです。 いろいろ書いておかないと多分忘れるので書いておきます。 パーツ CPUとマザボはツクモで、ほかはドスパラで買いました。 画像がババーンって出てわかりやすいのでAmazonのリンク載せ…

4k 40インチのディスプレイ BDM4065UC/11 を買った。

買いました。 PHILIPS(ディスプレイ) 40型4K対応ワイド液晶ディスプレイ 5年間フル保証 BDM4065UC/11出版社/メーカー: Philips(フィリップス)発売日: 2014/12/27メディア: Personal Computersこの商品を含むブログ (4件) を見る 環境 OS: Arch Linux PC: Thi…

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

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

HHKB用のカラーキートップを買った

かっこいい。 HHKB 用のカラーキートップ買いました。 かっこよくてテンション上がります。こういうの大事。 ついでにキーを外して埃を掃除しました。 Pro 2 と Type S の2台持っているのですが、Pro 2 だけお掃除したらめんどくさくなったので Type S はま…

vim から環境変数を削除する

結論 silent !unset '$HOGEHOGE' で$HOGEHOGE環境変数を削除できた。 やりたかったこと vim-scripts/javacomplete · GitHub をいれたけど、Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on ってWarning(?)がでるせいでエラー扱いされてうまく補…

Arch Linux で M705 のちっちゃいボタンを中クリックにした

同僚が使っているのを見ていいなーって思って M705 を買いました。 ホイールがびゅーんってなるマウスが欲しかったんです。 Logicool ロジクール ワイヤレスマラソンマウス M705t出版社/メーカー: ロジクール発売日: 2013/08/02メディア: Personal Computers…

tmuxで直前にいたWindowを行き来する

私の使っている Window Manager の awesome では、<Mod4> + Esc で直前にいたワークスペースに移動することが出来ます。 これと同じようなことを tmux でもやったのでメモ。 File: ~/.tmux.conf bind Escape last-window これで、 awesome と同じように Prefix + E</mod4>…

grepで検索結果をハイライトしつつ全行表示

$ ps f | grep 'zsh' treeが切れてよくわからない! $ ps f | grep -E 'zsh|$' treeが切れなくてわかりやすい! 最初これを車輪の再発明しようとしちゃったって話でした。

(続) Arch Linux on ThinkPad x240 で輝度調整

Arch Linux on ThinkPad x240 で輝度調整 - pockestrap で不具合が出てきたので書き直します。 上記事を実践して快適な輝度調整をしていたのですが、いつからか以前と同じように輝度調整がうまく効かなくなっていました。 ぐぐったら、解決方法を見つけたの…

Arch Linuxで最新のVimをパッケージ化した

最新のVimを使いたかったのですがPacmanでは最新でないVimしかなかったため、自分で最新のものをパッケージにしました。 PKGBUILD を落とす まずは、PKGBUILDが必要です。yaourtかabsで落としてきましょう。 $ yaourt -G vim $ cd vim # もしくは $ sudo abs…

Github pages + jekyll を使って、Markdownで静的Webページを書いた

作ったページ レポジトリ Github pagesでホスティングされた静的Webページを、Jekyllを使ってMarkdownで書いてみました。 ページを作成して、Githubにレポジトリを作成して、独自ドメインを割り当てるまでのまとめ。 ローカルにWebページを作成する まずは、…

Linuxで縦置きディスプレイにした。

環境 Arch Linux ThinkPad x240 awesome WM 方法 # 普通にマルチディスプレイ $ xrandr --output DP2 --auto --left-of eDP1 # 外付けを縦置き $ xrandr --output DP2 --auto --left-of eDP1 --rotate right # 解除 $ xrandr --output DP2 --off 結論 ながい

Awesome Window Manager にアプリケーションメニューを表示させる

そういえばないと思ってたんですよ、アプリケーションメニュー。 UbuntuでUnityを使っていた頃や、ArchでXfceを使っていた頃にはありました。 でも、awesomeにしてからは見ないなーと思っていました。 まあ、Mod4 + rとかターミナルとかから直接起動していた…

ibus-mozc から fcitx-mozc にした

なんとなく。 環境 Arch Linux ThinkPad x240 awesome Window Manager 手順 ibus を使っていたので、それ関係のパッケージを削除 $ sudo pacman -Rsc ibus mozc fcitx をインストール $ sudo pacman -S fcitx fcitx-mozc .xinitrc を編集 diff --git a/.xini…

Arch Linux に Pandoc で PDF 出力できる環境を整えた

Markdown で書いたものをPDFにして印刷したかったので、Pandocの環境を整えました。 ghc のインストール haskell が必要らしい $ pacman -Ss haskell extra/ghc 7.8.2-4 The Glasgow Haskell Compiler ....... $ sudo pacman -S ghc cabal が必要らしい。Has…

Arch Linux on ThinkPad x240 で輝度調整

2014/07/31 追記 記事を書き直しました。 (続) Arch Linux on ThinkPad x240 で輝度調整 - pockestrap Fn+(F5|F6)キーで輝度調整をできるはずなのですが、今まで3段階ぐらいしか動いていませんでした。 なので、ぐぐっててきとーに解決。 Ubuntu12.10 ノート…