サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
掃除・片付け
sandmark.hatenadiary.org
Ruby1.9系では Enumerable が組み込みライブラリとして用意されています。 1.8系では require "enumerator" とかしないと使えなかったのですが、*1 1.9系では明示的にロードしなくともデフォルトで使えます。*2 Enumerableについて端的に説明しておくと、 Enumerableは便利である Enumerableを知らなくても、Rubyを触ったなら一度は使ったことがある Enumerableは「いかにもRubyっぽい(楽、かつ楽しい)」 今回は Enumerableの基本的な説明 Enumerableの正体 Enumerableを自作クラスで使う ということを、自分の復習がてらつらつら書いていきます。 (本当に初歩的なことなので、裏技っぽいことはまったく無いです。) そもそもEnumerableとは何か。 簡単に言ってしまえば # Array#ea
タイトル通り vmware-tools が動かなかったのです。というより、 カーネルが 3.8 になったので vmware-tools をビルドしようとしたら linux-headers に version.h が無いと怒られ失敗し ln -s でリンクを貼ってビルドし直したんだけど カーネル 2.8 の方法でビルドしようとしやがるので当たり前のように失敗する というどうしようもない状態に陥っていました。 ちなみに vmware-tools のバージョンは 9.5.0.19712 (build-958366) だったらしい。 多分バージョンによってはビルドできる。 が、いまどき VMware Player で Ubuntu を動かすライトユーザーとしては いちいち VMware® さんに個人情報を送信して有料版体験版をダウンロードし、 そこから vmware-tools だけを失敬してアッ
当時、僕は10代のへなちょこでした。 計算機プログラムの構造と解釈も読んだけれど、実用レベルには達していない、そんなレベル。 だから今度は興味本位で 「CommonLispとかおもしろそー^q^」などと思っていろいろウェブ上の情報を集めていたら、 なんと Practical Common Lisp の全文がまるまる公開されているではありませんか。*1 しかし日本語版は出版されていない様子。つまり英語。 そのままリーディングして理解できるほど脳のスペックは良くないので、 一旦自力で翻訳してから読んで咀嚼しようと、そんなふうに思ったわけです。 Lispと言えばPaul Grahamの名前がまっさきに思い浮かぶかもしれませんが、 彼はどちらかというとSchemeよりで、彼のANSI Common Lispには CommonLispの代表的なマクロ loop について一言も触れられていなかったので
普段Linux(Ubuntu)で作業しているので、 Cygwin環境では新しくパッケージをインストールするために いちいち setup.exe を実行しなきゃならんのが苦痛でした。*1 仕方なく ~/bin/setup なんていうリンクを張ってその場をしのいでいましたが、 ふとしたことからこんなものを見付けました。 Google Code Archive - Long-term storage for Google Code Project Hosting. Google Code Archive - Long-term storage for Google Code Project Hosting. 後者は私の環境ではうまく動かなかったので、前者の apt-cyg を使ってみます。 名前的にけっこう紛らわしいんですが、コマンドの前方に "apt" が付いてるほうが 補完もしやすい(しかも
VMware Playerでポートフォワーディングしたかったんですが、 使用中のバージョンが 5 だったので vmnetcfg.exe がない。 以前はインストーラを展開して、さらにcabアーカイブを展開すると入っていたはずなのですが、 どうやらバージョン5になってから完全に削除されてしまったようです。 そこで、以下の記事を参考に VMware Workstation のパッケージから引っ張ってくることに。 http://alexduan.com/2012/10/15/vmware-player-5-0-network-editor/ VMware Workstation ダウンロードページ 便宜上cygwin: $ ./VMware-workstation-full-9.0.1-*****.exe /e .\\extract # cygwinだと \ を2つ打たないと展開先が .extr
ruby-2.0.0-devを使いたいのにrvmが対応してない。 というだけの理由で、rbenvに乗り換えることにしました。 rvmも便利だったのですが、cdコマンドを書き換えたりと 結構ブラックなこともやっていたので、いい機会かなと。 なんだか長くなっちゃったので省略されました。 rvmとrbenvの違い rvmはビルドからgemsetまで面倒を見てくれる でも結構多方面に影響するので怖い部分もある rbenv「ビルドツールなんてありません」 rbenv「でも ruby-build っていうのがあるからそれ使ってもいいよ」 rbenv「gemはbundleで各自管理してください」 rbenvさんは結構放任主義みたいです。 ※とっても語弊があるので詳細についてはGoogle先生にお尋ねください。 まずはrvmをアンインストール する前に注意事項。 端末はひとつだけ開いた状態で作業すること。
結論から言うと、ChromeのバグのせいでLinux環境で使えるマウスジェスチャ拡張がほぼ無いのです。 どうも右クリックイベントをうまく取れないらしく、 ジェスチャーと同時に右クリックメニューが開いてしまう。 唯一まともに動作していたのが Smooth Gestures だったのですが、 これもChromeウェブストアから「マルウェア/スパイウェア」認定されて消滅。*1 ではLinux環境ではマウスジェスチャは絶望的なのか、と思って調べたところ、 有志の方が以下のサイトで『情報送信しない版』と『Linux用パッチ』を公開されてました。 TELLY (TEST SITE, GO AWAY!) (音量注意) Smooth Gestures 0.15.4 - Hacked clean version (no malware) Smooth Gestures Linux Plugin 0.8 -
Ubuntu(11.10)では /etc/sudoers というファイルがあって、*1 「新しく定義を追加する場合は /etc/sudoers.d/ 以下に書くことをオススメするよ」 的なことが書いてあります。つまり sudo するたびにパスワードを聞かれるのが鬱陶しいので NOPASSWD 属性を付けようとしたんですが、あまりにもくだらない失敗をやらかしたのでメモ。 sudoers の書式は "man sudoers" すればとても詳しく出てくるんですが、 #(シャープ記号)で始まる行はコメントなんですね。 んで、Ubuntuの場合 /etc/sudoers の末尾に #includedir /etc/sudoers.dとか書いてある。 てっきり「これをコメントアウトすれば /etc/sudoers.d の中身が有効になるのかな」と思って 行頭の # を削除してドヤ顔で sudo してみ
気になる DSLs in Action にClojureのコードが載っているので、 今のうちに開発環境を整えておこうと思いました。 というのが動機です。Clojureやその周辺については素人です。 Emacs24に標準で搭載される(らしい)package.el。 様々なパッケージを、依存関係やら何やら自動的に解決して一発インストールしてくれるという、 なんていうか流行りっていうか、モダンですね。 ただうちのEmacsさんは23なので、23用のpackage.elをDLして使います。 アーカイブリストはELPAとMarmaladeを利用。*1 シェル: $ mkdir -p $HOME/.emacs.d/elpa/ $ cd $HOME/.emacs.d/elpa/ $ wget http://bit.ly/pkg-el23 .emacs.d/init.el: (when (load (ex
管理者用に "/admin/" というプレフィクスをURLにつけたいことはよくあります。 Rails3では namespace ディレクティブでそれを実現させていますが、 実はこれ、コントローラのみならずモデルまで名前空間にあることを前提にしています。 例えばscaffoldするとわかるんですが、 $ rails g scaffold admin/user name:string password:string なんてことをすると Admin::UsersController が app/controllers/admin/ に作成されます。 しかし同時に app/models/admin/user.rb に Admin::User クラスまで定義されてしまいます。 さらに、データベースのテーブル名にも名前空間を適用しているんです。 そりゃあ「そうしてください」って命令してるんで当然なんで
このテのエントリも何度目になるかわかりませんが、 実際に使ってきて「これだ!」という環境がある程度確立できた気がするので 一旦ここにまとめておきます。Ruby1.9.3、Rails3.2.2で動作確認。 参考: http://ja.asciicasts.com/episodes/285-spork http://d.hatena.ne.jp/akihito_s/20110701 (今更)RSpec2+Capybara-webkitでインテグレーションテスト - === SANDmark 19106 === beginning stress test RSpec2 + Capybara-Webkitでの注意点 - === SANDmark 19106 === beginning stress test 使うものリスト: ライブラリ名 ちょっとした解説 Spork テストの高速化をしてくれるD
昨日の記事 id:sandmark:20120324 に不備があったので補足です。 参考サイト: kinopyo blog - Learning through Writing RSpec2はテストをそれぞれ実行するときデータベースをクリアしてくれますが、 capybara-webkit を使ったとき(it "hoge", :js => trueのとき)は データが渡されない+クリアされない=テストが動かないので、何とかしてやる必要があります。 gem 'database_cleaner' を使ってRSpec2に設定をしてやります。 Gemfile: group :test, :development do gem "database_cleaner" end spec/spec_helper.rb:(2012-04-03: 間違いです。後述。) RSpec.configure do |c
なんだか最近流行りのBootstrap。 僕はもっぱらデザインが苦手で(かといってコーディングも得意ではないんだけど) そんな人にとっては大変ありがたい存在です。 しかし、「今風」の雰囲気になってSUGEEEEEEと興奮するのも最初だけ。 僕にはカスタマイズなんてとてもできない。 独自性をアピールするためには、Twitter Bootstrapはあまりにも有名すぎ、僕にはデザイン能力が無いんです。 そこで、Twitter Bootstrapのいろいろな "テーマ" を集めた Bootswatch: Free themes for Bootstrapに助けを乞うことにしました。 パッと見、いろんな意味で隙が無さそうですが、 Ruby1.9.3 + Rails3.2でハマったのでメモ。(バージョンはあんまり関係ないと思うけど一応) まずは、当然ですがRails先生にTwitterBootstr
今回参考にさせてもらったところ。 っていうかほとんどそのまんま。 capybara-webkit を headless(画面なし・Xなし)で動かした - babie, you're my home あのさみんな、Cucumberに関する情報が少なすぎると思わないかい。 胸熱なのはわかったよ、でも使い方を教えてくれよ。俺頭悪いからわからないよ。*1 というわけでCucumberはさっくり諦めてRSpec2をこれまで以上に愛していきます。 組み合わせは Ruby1.9.3, Rails3.2, Spork, autotest, RSpec2, Capybara-webkit, headless の7つ。 前半5つについては過去の記事を参照してもらうことにして、 今回はCapybara-webkitとheadlessでJavaScriptのテストを有効にするところまで。 ※今回は実際にJavaS
だいぶ前、7,8年くらい前ですかね。 http://cl-www.msi.co.jp/solutions/knowledge/lisp-world/articles/scheme CommonLisperである黒田さんのこの記事を読んで、 当時Schemerだった僕は完全にCommonLispへと宗旨替えしました。*1 端的に言えば前述記事の通り、たしかにCommonLispのシンボルはファーストクラスで、 Schemeにおけるシンボルはファーストクラスではない。 そう思っていました。*2 しかしTwitter上での僕のなんてことのないつぶやきに@を飛ばしてくれた方がいました。 @anohana: @sandmarkM 「シンボルがファーストクラスではない」は見解の違いで、Schemeではシンボルと識別子を意味的に分けて考えます。(後略) 上記ツイートに埋め込まれたURL: http://
前回の記事からの続きです。 変更点 GUIにしました マッチした分節をキャッシュするように GUIテーブルから分節番号クリックでジャンプできるように 置換前・置換後のプレビューを一覧表示するので見やすいかも にわかGroovy知識によるコードリファクタリング 使い方 前提として、このスクリプトは正規表現のグループ参照を用いた置き換えを行うものです。通常の正規表現検索・置換はOmegaTのみで可能です。 Gistにあるスクリプトをダウンロードします(こちら) OmegaTインストールディレクトリ/scripts/に保存します OmegaTで翻訳プロジェクトを開き、ツール->スクリプト->regexp_replacement.groovyと選択します。 regexp = /Sample segment named (.+) could be replaced with (.*)./ def r
このページを最初にブックマークしてみませんか?
『=== SANDmark 19106 === beginning stress test』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く