ruby_pack8

74件のRuby関連ブログ記事

僕はこの一年間でこの記事を含め全部で77件のブログ記事を書いた。そしてそのうちRubyに関係のない記事は以下の3件のみだった。

僕にもできた!フェルトで作るKindleケース

feedburner設置のお知らせ

2013年、ITエンジニアは英語を学ぶべきか?

残りの74件はすべてRubyに関連する記事だ。「Ruby愛どんだけw」という声が聞こえてくる。しかし僕はRubyを愛しているわけではない。Matzを愛してるわけでもない(キリッ1。「自分の表現の手段として僕はRubyしか持ち合わせていない」、というのが僕の意識だ。日本人としての日本語のような存在、それが僕にとってのRubyだ(流暢に使えるという意味ではない)。こう言うと「なんだ言語は単なる道具か」と言う人がいるが、言語は思考の一部なのだ。コードを書き始めるとそこにコードの種となる思考が生まれる2。文章もそうだよね?つまりそれは自分の一部といっていい。僕にとってRubyはそういう存在である。

さて、hatebu_entryを使って、今年の人気記事を並べてみよう。

% hatebu_entry merge $BLOG_URL $BLOG_URL2 | grep 2013

ギットハブの事情によりこのブログのURLが途中で変わってしまったので、2つのURLをマージして2013年ものだけを抜き出す。結果は次の通りだ(数字は総はてブ数)。

698 僕が考えた最速・最小投資でRubyを学ぶ方法またはステマ乙
681 知って得する!55のRubyのトリビアな記法
624 Rubyのcaseを〇〇(言語名)のswitch文だと思っている人たちにぼくから一言ガツンと申し上げたい
254 Excelデータを最速でWebアプリ(Heroku)にする10のステップ
186 Rubyを使って「なぜ関数プログラミングは重要か」を読み解く(改定)─ 前編 ─ 但し後編の予定なし
185 Ruby標準添付ライブラリcsvのCSV.tableメソッドが最強な件について
162 Jekyllいつやるの?ジキやルの?今でしょ!
111 メソッドの使い方もRubyに教えてほしい
97 CSVデータをデータベース化するツール「CtoD」の紹介
87 分別のあるRubyモンキーパッチャーになるために
79 あなたのプロジェクトを美しく視覚化する
64 Ruby製WebSocketアプリを最速でHerokuにデプロイする5つのステップ
63 RubyistたちのDRY症候群との戦い
61 ええ、ハッキリ言います。私はRubyのArray#unshiftが嫌いです。
33 RubyユニバースをGraphvizで視覚化する

ステマ記事が1位!スマン。

まあ、今年も結構書いたなあという印象だが、これも読んでくれるブクマしてくれるツイートしてくれる人たちがいるからだ。感謝です。自分のお気に入りの記事はやっぱり「Rubyのcaseを〇〇(言語名)…」だな。

5冊のRuby関連電子書籍

M’ELBORNE BOOKSにおいて以下の5冊のRuby関連電子書籍を出版した。

ruby_object ruty_tutorial

電子書籍「オブジェクトの理解から始めるRuby」EPUB版

電子書籍「Rubyチュートリアル ~英文小説の最頻出ワードを見つけよう!」EPUB/MOBI版

trivia rack

電子書籍「知って得する!55のRubyのトリビアな記法」EPUB/MOBI版

電子書籍「30分のチュートリアルでJekyllを理解する」EPUB/MOBI版

ruby_pack8

電子書籍「Ruby入門パッケージ8」EPUB/MOBI版

ここにもしっかりリンク貼る。

5冊といってもJekyllは改訂版で最後のはパッケージ版なので実質3冊だ。しかも全部過去ネタ…。まあ去年の暮にmaliq作った勢いで始めたプロジェクトだからねぇ。

売れ行きだが、毎月ちょろちょろとは買ってくれる人たちがいて、先日のステマ乙記事でちょっと跳ねた。もちろんビジネスというには程遠いが僕のkindle paperwhiteや電子書籍購入の原資にはなっている。兎に角、中途半端なRuby使いの書いたタダで読める信頼ならないコンテンツにお金を払う、僕はそういう人たちの心意気に感謝せずにはいられない。ありがとう!良かったら、もう一冊買ってね。

9個のRubygems

今年は8個の新しい宝石(Gem)を作った。

date gem
1/14 yampla
1/29 flippy
10/15 money_exchange
10/16 hatebu_entry
10/28 dir_friend
11/10 ctoD
11/18 itunes_track
12/12 sinatra_websocket_template

これで僕の作ったGemは全部で13個になった([my gems](https://rubygems.org/profiles/melborne ‘’))。まあ小石ばかりだが。10月に入ってから「兎に角作ったものはGemの形で残そう」ということで数が増えた。僕にとって今年は「Gemの年」と言っていい。

各Gemの解説記事を貼っておこう。

Yampla

YamplaはYAMLファイルからLiquidで書かれたテンプレートに基いてXMLのようなファイルを出力するツールだ。商品リストのような頁を作るために使う。これはM’ELBORNE BOOKSの頁を用意するために作った。

Rubyで商品リストのようなものを作るときあなたはいつもどうしていますか?

Ruby製ドキュメント生成ツール「Yampla」でYAMLファイルからXMLファイルを生成する

Flippy

FlippyはᏗəʇʇɪʍʇのような上下反転文字を生成するツールだ。Terminalの出力を完全に反転するconsoleという機能も作った。縦書きツイートする機能も作った。Termtter用のpluginも書いた。縦ついについてはEarthquake.gem用のpluginを@no6vさんが書いてくれて、このときのTwitterでのやりとりがよかった。勉強になった。

RubyのコードをFlipして暗号化する?

flippy consoleで上下反転文字の不思議な感覚を味わってみませんか?

縦書きツイートの時代が来たようなので、わたし、RubyでTermtterで「縦つい。」します

Colorable

Colorableは去年作ったツールだが、今年大幅に機能を強化したので一応ここに上げておく。Gvizで色を簡単に扱えるようにしたかったから作った。色変換、色合成、色の環状リストの生成が簡単にできる。

Rubyで色を扱うライブラリ「Colorable」をアップデートしましたのでお知らせいたします

MoneyExchange

MoneyExchangeはGoogle Currency APIを使ってターミナルで簡単に通貨換算するためのツールだ。でも、いま試したら動かない..。Google Currency APIは非公式のものだったからこれが使えなくなったのかもしれない。まあ作ったのはmethod_missing使いたかっただけという話もある。

やっぱり通貨換算もターミナルでしたいよね - Google Currency APIをRubyで使う

HatebuEntry

HatebuEntryは渡されたURLのはてブ数をターミナルで出力するツールだ。上で見たようにこのブログのように途中でURLが変わってしまったサイトのはてブ数をマージする機能がある。

はてなブックマークの人気エントリーもターミナルでみたいよね - ブクマ取得APIをRubyで使う

DirFriend

DirFriendはファイル・ディレクトリをGrahphvizを使ってビジュアライズするためのツールだ。Gvizでディレクトリを視覚化しようとしたら結構手間が掛かることがわかったので作った。Graphvizを自動でopenする機能ができないと泣きを入れていたら、@rosylillyさんが助けてくれたのがよかった。configファイルで予め出力スタイルを設定できるようにもした。

あなたのプロジェクトを美しく視覚化する

あなたはファイルシステムに美を見るか?

CtoD

CtoDはCSVデータからデータベーステーブルを生成するツールだ。奥さんの韓ドラ視聴EXCELデータをWebアプリ化するために作った。実は密かに「パーフェクトRuby」のすがまさおさんのチュートリアルをかなり参考にしている。テストを一行も書いていなかったところ@twitt__さんが書いてくれたのがよかった。

Excelデータを最速でWebアプリ(Heroku)にする109のステップ

CSVデータをデータベース化するツール「CtoD」の紹介

ItunesTrack

ItunesTrackはrb-appscriptを使って、音楽ライブラリをCSV化するツールだ。CtoDと組合せて自分の音楽ライブラリをブラウザ上で眺めて見るために作った。

iTunes.appの音楽ライブラリを最速でWebアプリにするたった3つのステップ

iTuneの音楽ライブラリにアクセスしてCSV化できる「iTunesTrack」の紹介

SinatraWebsocketTemplate

SinatraWebsocketTemplateはWebSocketアプリのひな形を簡単に作れるようにするために作った。後に書くOtoTweというWebアプリとかを作ったときに、無駄に反復作業が多いと思ったので作った。

Ruby製WebSocketアプリを最速でHerokuにデプロイする5つのステップ

以上だが、これらのGemを作るに際し今年は「Thor」の使い方を学んだのがよかった。Thorを使うとサブコマンド付きCLIツールのインタフェースが簡単にできる。SinatraWebsocketTemplateでテンプレートを生成するのにも大いに使っている。

2個のRuby製Webアプリ

2個のRuby製Webアプリを作った。まあいずれも簡単なデモアプリだが。

OtoTwe

OtoTweは、Twitterで#ototweタグを付けてつぶやくと音が出るというサイトだ。音はサイトを開いている人全員にブロードキャストされる。さっちゃん(@ne_sachirou)に誘われて参加することになった、FuniSaya Advent Calendar 2013 - Adventarに併せて作った。最初WebSocketを使うつもりだったが、後に”Server-Sent Events”という技術があるのを知ってこれを使ってみた(Userカウンタの更新に激しい遅延があるのはそのため)。HTML5 Web Audioに触れたのがよかった。

ただサイトとしては今ひとつ盛り上がれなかったのが残念だった。リアルタイムWebの難しさを垣間見た。いまでも生きているのでサイトを開いて、’hello #ototwe #C3’などとつぶやいてみてほしい。待ってるから。

つぶやきで合奏したいだと?そんなやつは一昨日(おとつい)きやがれ!

Typewr

Typewrは、タイプライターのようなチャットシステムだ。なんのことやらだが、これもWebSocketを使っているので一人のタイプが全員にブロードキャストされる。各人の文字は一応色分けで区別できる。

個人的には気に入ってるんだが、みんなシャイなのでちょっとタイプして直ぐ去ってしまうのが残念だ。今でも生きているので、遊びに来てほしい。vimperatorとかをOFFにして。待ってるから。できればSafariがいい。ChromeはBackSpaceが効かないようだ。

WebSocketで実現する未来型チャットシステム?!

チャット? タイプライター? 音? 何?

まとめ

そんなわけで、この1年の成果というか活動を振り返ってみた。来年はどういう年になるかな。来年もよろしく!

  1. 感謝と愛は別次元の脳の作用です
  2. これがいつまでもテストファーストできない理由ですかね?


blog comments powered by Disqus
ruby_pack8

100円〜で好評発売中!
M'ELBORNE BOOKS