2011-01-01から1年間の記事一覧

IBM ServeRaid M1015 を IT Firmware化する

zfs

先日、IBM ServeRaid M1015というRAIDカードをヤフオクで落札しました。 SAS/SATAで8玉まで挿せて、SAS Expander等を噛ませば32玉まで認識可能。 というか中身は、LSI MegaRAID 9240-8iの機能限定版OEMらしいですが。 しかし、これRAID0ボリューム作らないと…

nginx-gridfsを使ってcarrierwaveで作ったサムネイルを表示する

RailsやSinatraで画像をアップロードしたり、DBやAmazonS3に保存したりするためのライブラリとして、carrierwaveがあります。 あまり一般的では無いかもしれませんが、carrierwave-mongoidという拡張ライブラリを利用することで、 MongoDBのGridFSに画像を格…

ActiveSupportを読んでみよう & テストコードに感謝する

この記事はRuby Advent Calendar 2011の15日目になります。 14日目の記事は、ongaeshi007さんによる、RubyGemsはrequireの裏で何をやっているのか? - ブログのおんがえしです。 タイトルと関係無い話 全くの私事で恐縮ですが、本日、2年半とちょっと勤めて…

rspecをvim-quickrunから非同期で実行する

quickrunはデフォルトでいろんなファイルを実行してくれますが、rspecまではカバーしてくれていないので、 hogehoge_spec.rb等のファイルを開いて、quickrunすると普通にrubyコマンドで実行されてしまいます。 ソースコード自体でrspecライブラリをrequireし…

P4Dハッカソンに参加してきた

12/4は、P4Dハッカソンに参加してきました。 イベント概要 P4Dハッカソンとは、satococoaさんが主催されている、 デザイナーのためのプログラミング勉強会(P4D)の一貫として、 エンジニアとデザイナがペアを組んで、一日で何か作ってリリースしよう、という…

RubyでTDDをやる際に、ちょっと便利になるVimの設定

先日のTDDBC繋がりで、Vimネタを一つ。 Railsを書く時は、rails.vimがRSpecのシンタックスハイライトや、 関連ファイル間の移動を面倒見てくれますが、 Railsの世界から出ると(ディレクトリ構成、命名規則が変わると) rails.vimが使えなくなるため、そのあた…

TDDBC横浜にスタッフとして参加してきた

TDD

11/5に開催されたTDDBC横浜にスタッフ、そしてRubyのTAとして参加してきた。 ちょくちょく出席しているYokohama.rbというRubyの地域コミュニティで、 協力してくれるスタッフの募集があったため、手を挙げさせてもらったのが、参加の経緯。 内容の詳細につい…

TDDBC横浜 t_wada基調講演メモ

TDD

バージョン管理 セーブポイント 安心 CVS 2004年当時 昔は手で アナログ管理の限界 Linuxカーネルのプロジェクトがgithubに、膨大な人間が関わった時の管理のモデル scmbcもあるよ テスティング 安心の土台 自分が書いたコードをすぐに試す 自動化 合理化 浮…

細・Haskellを使ってmarkdownをパースして... [Parsecライブラリの使い方]

今回書いてみたmarkdownパーサの中身を使って、私が学んだParsecの使い方について書いてみる。 GitHub - joker1007/markdown2hatena: markdown記法をはてな記法に変換する 文字のストリームをパースする markParser :: Parser Bool markParser = do isMark r…

続・Haskellを使ってmarkdownをパースしてはてな記法に変換する

前回に続き、Haskellでmarkdown -> はてな記法の変換パーサを書いてみた話。 前回の最後に書いたToDoは以下の通り。 リスト表記のインデント表記に対応 インライン記法への対応 昨日、今日と帰宅してからの数時間を費やしたところ、 意外にあっさりと解決で…

Haskellを使ってmarkdownをパースしてはてな記法に変換する

haskell勉強するとか言ってても、何か書かなきゃ全然身に付かないので、 markdown記法をはてな記法に変換するパーサを書いてみようと思う。 はてな記法も覚えられて一石二鳥だ。 というわけで、今日の夕方からHaskellのパーサコンビネータであるParsecについ…

Yokohama.vimの成果を晒してみる

vim

Yokohama.vim #2から、既に1ヶ月ぐらい経過している気がするが、 そこで得た成果、教えてもらったことを元に更に進化したvimrcを晒してみる。 (注: 冗長な設定を書いていたりするので、結構長いです。) あんまり独特の設定は無いので、更新のネタぐらいにし…

アジャイルサムライ他流試合でLT発表してきました。そして今後の身の振り方について。

9/18に開催されたアジャイルサムライ他流試合に参加してきました。 アジャイルサムライ他流試合 : ATND http://www.flickr.com/photos/54475936@N05/6161513458 アジャイルサムライとは、今年の7月に発売された、 アジャイル開発について非常にコンパクトに…

Git使いの10レベル -Gitマスターへの道-

git

Lv.1 git add; git commit -m "Lv.1 Commit!!", git clone バージョン管理に入門。 Lv.2 git diff, git log, git checkout --, git rm, git reset 差分・履歴の表示、ステージングとコミットを覚える。 Lv.3 git checkout -b level3, git merge, git pull, g…

Ruby on Rails Guides: Ruby on Rails 3.1 Release Notesを自分用に和訳してみた

英語の勉強兼、自分への備忘録としてRails 3.1 のリリースノートを和訳してみました。 ところどころ、良く分かってないので直訳になってたり、微妙に不可解な日本語になってたりする箇所があります。 ご容赦ください。 間違いに気付いた方はご指摘していただ…

動画管理用ローカルWebアプリをNode.js & CoffeeScriptで書いてみた

Node.jsで書く理由が全く無いんですが、勉強のために、 ローカルで起動して動画の管理をするためのサーバーを書いてみました。 ビューと使ったライブラリ以外は、全てCoffeeScriptで書いてます。 一応、「BlackAlbum」と名前を付けました。 ネーミングは、二…

mongooseでMapReduceを実行する

mongooseでMapReduceを実行しようとして試行錯誤。 ググって最初に出てきたこのコードは何故か動かなかった。 mongoose = require 'mongoose' mapFunc = -> emit(this.md5_hash, 1) reduceFunc = (key, values) -> count = 0 values.forEach (value) -> coun…

今月は勉強会充かもしれない

今月の勉強会出席予定 8/6(前) qpstudy & hbstudy & まっちゃ445 8/6(後) Yokohama.rb 8/7 開発環境勉強会 8/21 Rails勉強会@東京 8/24 スタートアップHaskell 後、勉強会系ではないが、 8/20 LL Planet あちこち参加してる人にとっちゃ普通かもしれないが、…

最も多く出現する文字をO(n)で調べる方法を考えてみた

今日、TwitterのTLで以下のエントリを見かけた。 サマーインターン2011問題 : Preferred Research http://research.preferred.jp/2011/07/intern2011_problem/ インターンの応募選考で以下のような問題が出されたらしい。 長さnの文字列中で出現回数が最大の…

node.jsでUTF-8-MACを扱う

node.jsをMacで動かした際に、軽くハマったので書いておく。 UTF-8の文字コードでファイルにアクセスしようとした場合、 MacOSは内部で勝手に変換して、UTF-8-MACとしてファイルにアクセスするので、 意識せずにファイルを操作できる。 一方で、ファイル名を…

最後のrubykaigiに行ってきた

7/16〜18は、最後のrubykaigiに参加していた。 rubykaigiは関西に居たころから行ってみたくて、いつもWeb上のレポート記事を見ながらやきもきとしていた。 関東に来てからも予定が合わなくて去年は行けず。 今回、最後のrubykaigiについに行くことが出来て本…

闇rubykaigiでカラオケとRailsの組み合わせについて発表

初参加した最後のrubykaigiで感極まったので、勢いで闇rubykaigiの当日応募枠に申し込んでみたら、抽選とか全然無かったので、普通に壇上に上がることになってしまった。 闇rubykaigi2011 「カラオケとRailsと私」 発表内容についての補足 カラオケ通の中で…

Sunspotでsolrのクエリを直接投げる方法のメモ

Sunspotでsolrのrawクエリを投げる方法で詰まったので、メモしておく。 Sunspot.search Post do adjust_solr_params do |p| p[:q] = "title:SearchWord" end end Sunspotはrubyのオブジェクトと上手く組み合わせてsolrで検索できるようにするライブラリ http…

Windows環境でvimfilerの内部関連付けを利用してファイルを開けない

vim

[2011/5/16] 現在では以下の問題は修正されています。 4/24のYokohama.vimに参加して触発され、 最近vimfilerを使い始めた。 とりあえずWindowsで動作検証をしている時に、 どうにも思うように行かない箇所に遭遇。vimfilerのdocに書いてあるように、 call v…

そんなに良い人間でありたいのだろうか

3.11の震災以降、やたらと被災地への配慮とか自粛ムードが漂ってるようです。 謹慎が不自由なことに憤るとかね。 企業・自治体レベルで活動の自粛を行ったり、自粛要請を出したりというのは、分からなくはないです。 節電の要請とかありますし。 しかし、個…

停電にならなかったことに怒る人間 4タイプ

停電を避けるために節電しているにも関わらず、いざ停電しませんでしたとなると、 怒る人が少なくないようだ。 何考えてるんだろうと思いを巡らせていると、いくつかのタイプを思いついた。 文句言いそうレベルの高い順に並べてみよう。 文句言いたいだけの…

OSC 2011 Tokyo/Springに行ったと思ったら、何かを間違えた件

先週土曜日は、OSC 2011 Tokyoに行ってきましたー! 人生初のOSC参加です。 今回は、仮想化の濃い話や、仮想化向けストレージのセッションをメインで聞いてました。 こういう技術系コミュニティの大きなイベントって初めてなので、 ワクワク新鮮な気持ちで一…

iPadの防水ケースで風呂が超快適に!

DRiPROのiPad用防水ケースをポチってみた。 主な動機は、風呂で音楽が聞きたい&漫画を読みたいから。 近所迷惑なことに風呂でよく歌うので、やっぱり音が欲しいw Amazon CAPTCHA ティッシュ中に詰めて実験してから本投入。 写真分かりにくいですが、風呂に浮…

FreeNASでZFSなストレージサーバを構築する 運用編

前回のFreeNAS構築日記に、 sambaの反応が鈍いのは何故だろうと書いたが、 原因が分かったので、現在の運用状況と合わせて続きを書いてみようと思う。 sambaが遅かった原因 sambaの反応が鈍かったのは、store dos attributesが有効になっていたからだった。 …

Linux-HA Japan勉強会 heartbeat v3とPacemaker

先週末の1/21に秋葉原UDXで開催されたLinux-HA Japan勉強会に行ってきました。 いきなり、結構な有名声優のアナウンスからスタートし、 イベント会場間違えたかと思いましたが、 中身は、ちゃんとlinuxでクラスタを組むためのPacemakerについての勉強会でし…