ブログ移転しました

http://blog.m4i.jp/2015/09/01/from-hatenablog-to-jekyll

Rails 4.0 にアップグレードした

最近、Rails 1.2 で開発をスタートした Rails 3.2 のアプリケーションを Rails 4.0 にアップグレードした。 その時に修正が必要になったところのメモを残しておく。 ActiveSupport ActiveSupport::JSON.encode でマルチバイト文字が escape されなくなった R…

ブログ名を @m4i's blog に変更した

http://banyan.me/2013/05/26/1/ この記事に倣いブログ名を変更した。

Git の annotated tag を lightweight tag に変換する

Git

grep 'refs/tags/.*\^{}$' .git/info/refs | while read line; do hash=${line:0:40} tag=${line##*/} tag=${tag%^*} git tag -d $tag git tag $tag $hash git push origin :$tag done git push --tags clone 済みのリポジトリでは git fetch --tags 経緯 古…

tee という gem をリリースした

https://rubygems.org/gems/tee https://github.com/m4i/teetee コマンドみたいにファイルに書き込みつつ標準出力にも表示したいということが今まで何回かあって、そのたびに適当なクラスを作っていたのだけど、今回それを gem 化してみた。それにしてもこん…

Slim3Scala を作った(1年半前に)

Slim3 の Scala 版を作りかけて、途中で時間がとれなくなり、いつかリリースしようと思いつつも、Google App Engine への興味を失い放置されていたコード片をアップしました。https://github.com/m4i/slim3scala結構な時間をかけて Scala のコンパイラとか、…

Rails + Pow + pry/ruby-debug(Ruby 1.9.3)

pry Gemfile group :development, :test do gem 'plymouth', require: false gem 'pry-exception_explorer' gem 'pry-nav' gem 'pry-remote' gem 'pry-stack_explorer' end breakpoint binding.pry_remote connect $ bundle exec pry-remote ruby-debug Gemf…

omniauth-runkeeper を公開しました

もう2ヶ月近く前ですが、omniauth-runkeeper を公開しました。https://rubygems.org/gems/omniauth-runkeeper https://github.com/m4i/omniauth-runkeeperOmniAuth の作者(社)が作った omniauth-github と同じ OAuth 2.0 なのでそれをベースにしました。Nike…

tmux での1行コピー または man tmux に載っていないコマンド

screen から tmux に乗り換えて2ヶ月ほど立ちますが、不便なことが4つありました。 copy した文字列を直接ファイルやプログラムに渡せない 2ストロークの key bind が定義できない cdd が動かない copy mode で1行コピーがない (1), (2) は未だに未解決です…

はてなブログサイドバーにカテゴリ一覧を自動表示する

コピペ用 以下のコードをサイドバーとして追加 <script> (function($) { var $module_body = $('.hatena-module-body:last'); $module_body.parent() .removeClass('hatena-module-html') .addClass('hatena-module-categories') .prepend($('<div>').addClass('hatena-mo</div>…

はてなブログで「続きを読む」記法

はてなブログでははてな記法の実装がはてなダイアリーと違うようで、動かない記法がいくつかあります。*1続きを読む記法 もその内の一つです。 はてなダイアリーで書いていたときは使ったこともなかったんですが、最近立て続けに長めの記事を書いたら、トッ…

Gyazo の URL はどこまで短くできるか

序論 Gyazo というサービスがあります。 スクリーンショットを共有するためのウェブサービスで、撮ったあとにその URL を共有したい人に送るだけで画像を簡単に共有することができます。その際の画像の URL は次のようになっています。 http://gyazo.com/587…

cdd を tmux, bash, multi session +α に対応した

screen を使う上でほぼ必須とも言っていいコマンド cdd を tmux 対応にし機能をいくつか追加しました。https://github.com/m4i/cddオリジナルの cdd はこちら http://d.hatena.ne.jp/secondlife/20080218/1203303528 利用方法 cdd をすでに利用している方 フ…

Twitter の Feed の URL

http://twitter.com/statuses/user_timeline/USER_ID.atom http://twitter.com/statuses/user_timeline/USER_ID.rss毎回忘れるのでブックマークレットにした。 USER_ID の部分は Username でもアクセスできるが、変更されるとリンク切れになってしまうので数…

Twitter の Following のページでフォローされているかどうかを表示する

Twitter の Following のページでフォローされているかどうかを表示するブックマークレットを作った。このブックマークレットをブックマークして http://twitter.com/following で実行するだけ。 https だと警告出ます followers が 5001 人以上の場合正常に…

WordPress をたった3分で3倍高速化する方法 [MO Cache]

PHP

3分しか時間がない人向け WordPress の管理画面を開く WP File Cache をインストールする MO Cache をインストールする 完了!設定の必要はありません もう少し時間がある人向け この記事は WordPress Advent Calendar 2011 の10日目の記事です。今日は MO C…

はてなブログで DISQUS

コピペ用 全記事の最後に改行なしでこれを貼り付ける <script src="https://raw.github.com/m4i/hatenablog-disqus/master/disqus.js">DISQUS_SHORTNAME</script> DISQUS_SHORTNAME の部分は自分の disqus_shortname に置き換えてください。こんな感じで <script src="https://raw.github.com/m4i/hatenablog-disqus/master/disqus.js">m4i</script> 解説 はてなブログで Google Analy…

あふwで Cygwin のシンボリックリンクを辿れるようにする

あふwで Cygwin の symlink を透過的に扱えるようなスクリプトを書いた。https://raw.github.com/m4i/afx-tools/master/follow-symlink.js使い方はソースのヘッダ参照。以下に抜粋しました。 /** * あふw で Cygwin のシンボリックリンクを扱うためのスク…

mintty の青色を見やすくする

2011-12-26 追記 .minttyrc で設定できるようです。 Blue=64,64,207 BoldBlue=112,112,255 なので以下のコンパイル作業は一切必要ありません。 mintty では ANSI color の変更ができないみたいなのでコンパイルが必要Cygwin の場合 setup.exe で curl, gcc-c…

はてなブログで Google Analytics

2012-02-04: サイドバー機能追加に伴い全面的に見直し コピペ用 サイドバーに追加 (function() { var account = 'UA-XXXXX-X'; if (!window._gaq) return; if (/^\/preview\b/.test(location.pathname) || /[&?]preview=/.test(location.search)) return; va…

rvm + cron/sudo

cron * * * * * bash -c '. ~/.rvm/scripts/rvm && command' sudo $ rvmsudo command cron + sudo user ALL = NOPASSWD: SETENV: /path/to/command * * * * * bash -c '. ~/.rvm/scripts/rvm && sudo GEM_PATH=$GEM_PATH GEM_HOME=$GEM_HOME BUNDLE_PATH=$BU…

「vim で、特定ファイル全部を、確認しながら置換する」の wrapper を書いた

Vim

vim で、特定ファイル全部を、確認しながら置換する - 冬通りに消え行く制服ガールは、夢物語にリアルを求めない。 - subtechこれほんと追い求めてました。ただ **/*.pm の部分で指定したファイルの内、置換対象のファイルが少ないと、無駄に遅く、"-- More …

Vim, Screen, Mac/Windows 間でクリップボードを同期する(前編)

前編 現状と問題点 Vim A Vim B Vim -> Screen Screen -> Vim Mac/Windows Vim (ssh/plink編) 後編(予定) Mac/Windows Vim (PortForward編) Vim -> Mac/Windows (inotifyを利用した履歴ファイル監視による自動転送) Windows -> Vim (ClipboardViewerを利用…

「ふつうのコンパイラをつくろう」が届いた!

本当に「ふつうのコンパイラをつくろう」が届いた!参考: Ruby 会議 2008 に行ってきた

退職しました

本日付で4年半勤めた会社を退職しました。 最高の職場でした。今まで本当にありがとうございました。 しばらくは無職を満喫する予定です。

TopCoder はじめました

半年前くらいからずっとやりたいなぁと思っていた TopCoder に先週 SRM 425 で初挑戦しました。言語は C#, C++, Java のどれもまともに書いたことなかったので、どうせ覚えるならと言うことで C++ を選択。C++ の知識は「vector は聞いたことあるけど、それ…

SBI証券の先物取引の注文をしやすくする UserScript

タイトルの通り、需要が全くないであろう UserScript を作り CodeRepos Gist にあげました。sbisec_future_trade_support.user.js (Greasemonkey 0.8+)機能は 気配値をクリックして価格をセット 注文パターンをセレクトボックスからラジオボタンに変更 執行…

Linode vs. Slicehost

今日は Rails勉強会@東京第34回 に行ってきたのですが、そこで「Rails を動かすレンタルサーバのお勧めは?」という質問に対してVPSの Slicehost がお勧めされるという場面がありました。 まあまあ確かに Slicehost もすばらしいとは思うのですが、VPS とい…

cidr-mobilejp を修正

「PHPで高速に携帯ゲートウェイのIPから携帯キャリアを判別する」 で cidr-mobilejp という素晴らしいスクリプトが CodeRepos で公開されています。しかし、いつからか正確にはわかりませんが、Softbank の IP アドレス帯域取得の URL が http://developers.…

PHPカンファレンス2008と前日Hackathon

PHP

今週末はPHPカンファレンス2008とPHPCon前日Hackathonに参加します。PHP系のイベントは第10回PHP勉強会以来。あの頃はノートPCもまだ持ってなかったんだなぁ。Hackathonは例によって勢いです。勢い重要。というかPHPは仕事でたまに書くぐらいなのでよくわか…