Ruby

もっと短くかけないものかな:ハッシュが存在していない時はハッシュ値を入れ、存在しているときはハッシュ値+"X"で更新する、

最近Code Golfに目覚めて、その簡潔なコーディングに日々感銘を受けています。Rubyでは、たとえば、Aという変数がすでに定義済みであればなにもせず、定義されていなければ"B"という値をいれる、というのを自己代入演算子を用いて短く表現できます。 A||="B"…

MeCabとRubyで日本語の頻出単語を調べる

こちらのサイトに影響を受けて、日本語の頻出単語を調べてみたくなった。http://blog.fenrir-inc.com/jp/2011/10/ruby-mecab-japanese-keyword.htmlこのサイトにRubyのスクリプトが乗っているのですが、なぜか一行になっていて、うまく動かない。だから頑張…

gem install json でVirtualAlloc なんとやらのエラー

MinGWは入ってるし、DevKitも入ってるし、ということで、Windowsでgem install jsonしたら次のようなエラー。 $ gem install json Fetching: json-1.8.1.gem (100%) Temporarily enhancing PATH to include DevKit... Building native extensions. This coul…

いろんな人の真似をしてrbenvをシステムワイドに入れる

下のエントリーを参考にrbenvをシステムワイドに入れてみました。 http://office.tsukuba-bunko.org/ppoi/entry/systemwide-rbenv http://qiita.com/semind/items/8e973a544b592376a07e http://qiita.com/s-yamaz@github/items/c2377c45d6c4fbfd775f http://…

proglangはとうとう終わりました

FinalExamも終わりました。100点は当然とれなかったが、80点とれたからまあいいや。 大変しんどいコースでしたが、終わって一安心。 一方posaは相変わらず小論文で大変です同時に「Learn to Program: Crafting Quality Code 」「Web Intelligence and Big Da…

VImでRubyの開発環境を整える

最近Emacsに心奪われていたが、やはり軽さでいえばVimなので、何かといえばVimを使うことが多いです。EmcasでRubyはシンプルに、rcodetoolsとruby-electronicだが、それでも十分です。 Vimではvim-endwiseとneocomplcache。neocomplcacheは本当は入れたくな…

ziprubyをRuby1.9.3ではインストール出来ない → 出来た(インストール方法は最後に追記)

proglangにて1.9.3にRubyをアップグレードしたため、一部のgemを入れ直す必要が出てきた。仕事でよく使うziprubyも1.9.3で改めて入れなおします。しかしながら、さてインストールしよう、と思ったら出鼻を挫くかんとする下記のエラー。 C:\> gem install zip…

POSA2の小論課題に追い込まれている状態、proglangのFinalExamも佳境

前回おPOSA2の小論が惨憺たる状況だったので、こんかいは早め早めにビデオは見終わった。しかし課題にはまだ手を付けていない。とにかく始めねば。POSA2はネットワーキング+コンカレンシー(同時性)のサンプルとしてAndoridアプリを取り上げるらしい。しら…

課題としては単純な幾何を表現する言語の実装である。点、線、線分を各々インターセクション(積?)をとり、結果を表示するというミニ言語で、たとえば、

Intersect(Line(1,2),Point(1,3)) の結果は Point(1,3)となるような。ここでLineの第1パラメータは傾き、第2パラメータは切片である。Pointはx座標とy座標。SMLのコードはほとんど実装済みで残りをちょろっとかくだけだったので比較的簡単であった。Rubyは結…

proglangのWeek8の問題および、posaのWeek1にて

かなり重ためのものが2つかさなって厳しい状況です。 Posaは300-400ワードのショートエッセイを4つ。これがかなり厳しい。いま見たら最初に書いた小論文はまったく見当はずれのことを書いていた。1.パターンやフレームワークとソフトウェアの再利用につ…

Week07に備えてRubyのEmacs環境構築、まだ途中

ECBみたいなIDEチックにしたい気持ちはあったが、まずはすかさず評価/実行結果を表示してくれればいいやと思い、以下を参照に、smart-comple.elとrcodetool.elと入れた。Emacs における快適な Ruby 開発環境を求めて - QiitaしかしEmacs起動時に以下設定を…

Week06終わった(期限切れで)、Week07始まった、Pattern Oriented Software 始まった

Racket最後回、Week06での簡単な関数型言語の実装は終わった。正直うまくできないところが一箇所あった。それで100点は当然とれてない。もういいや。よく頑張ったよ。本当に本当に難しかった。 Week07はRuby。使い慣れている言語なので嬉しい。しかしながら…

Week07のテトリス改造は終わった

やはり使い慣れている言語ではいろいろと楽だ。テトリスをサブクラスで拡張して機能追加するという宿題はいがいとあっさり終わった。といっても3時間くらいはかかっている。Pattern Oriented Software Architectureやらないと、、、月曜中に期限が来てしまう…

Redcarのインストールについて、その1 〜インストール先をホームディレクトリ以外にするには〜

Redcarをインストールすると、C:\My Documents\云々の下にいろいろつくってしまう。 が、ポータブルHDDに全てをいれている自分にとってはこれは嬉しくない仕様だ。これを回避するのはすごく簡単で、redcar.bat install --home-dir=J:\development\my_profile…

pikをビルドするには

pikをここからとってきて、rakeでビルドしようと思ったのだが、いろいろエラーが出てきます。慣れた人なら別にたいしたことじゃないのかもしれませんが、rakeビルド初心者の自分には、いろいろわからないことだらけでつまづきまくりました。そこで、自己流な…

Windowsへのhpricotのインストールではまった。

pikをビルドしようとしたら、hpricotがなくて怒られた。 そこで、hpricotを入れようとしたのだが、単純にgem install hpricotとしても、以下のようなエラーがでてくる。 $ gem install hpricot -v 0.8.3 Building native extensions. This could take a whil…

SafariからダウンロードしたHTMLファイルをマージするRubyスクリプト、その3。Safari以外も対応するように

Safariだけでなく、いろんなサイトにも対応するようにした。 全体のスクリプトはこっち--> http://gist.github.com/6008231. HtmlMergerというクラスを作った。 class HtmlMerger def initialize(header_height = 0, footer_height = 0) @en_header = heade…

SafariからダウンロードしたHTMLファイルをマージするRubyスクリプト、その2

変更点1.<pre>〜</pre>内部で、行頭のスペースを、&emsp;に変換、行末に<br/>を付けるように変更。 2.引数が一個与えられた場合は、与引数でディレクトリを作成する。そして、元のHTMファイルやディレクトリを全部、そのディレクトリに移動する。globalstyle.cssはコピー</br/>…

自分のFireFoxに入っているアドオンなど

Application: Firefox 3.6.10 (20100914125854) Operating System: WINNT (x86-msvc)September 30, 2010Total number of items: 36 Auto Copy 1.0.1 September 28, 2010 17:07:48 Firefox 1.0 - 3.6.* Copies selected text to the clipboard automatically.…

SafariからダウンロードしたHTMLファイルをマージするRubyスクリプト

オライリーのSafariというサイトは、オンラインで書籍を読める。ファイルをページごとにHTML形式でローカルにダウンロードして、それをマージするというスクリプトをRubyで描いてみた。 require "fileutils" mergedFile = "hogehoge1.html" File.delete(merg…