ソフトウェア設計とは何か?というとても良い論文の翻訳があるのだけど、いつのまにか記事が無くなっていた。手元にあるテキストデータを公開しようにも翻訳者の方との連絡手段がない。 幸いなことにarchive.orgに記事のアーカイブが残っている。ただ、このarchive.orgが検索でまともにヒットしないので、せめて今後この記事を探す人がいた時のことを考えてここにリンクを貼っておく。 ソフトウェア設計とは何か?
RailsDevCon2010、お疲れ様でした。主催かつ発表のお声をくれた@ysakakiさん、スタッフの方々、スピーカー、発表を聞いてくれたみなさま、どうもありがとうございました。 今回、「Railsプロジェクトを成功させるために現場ができること」というタイトルで話したけどびっくりするぐらいRailsに関係のない話。オマケ程度にちょこっと。以下、資料です。 テーマとしては、@ysakakiさんから声をかけて頂いた時に、[Railsの現場でまだまだバージョン管理すらしてないところあるよね。そういう基本的なところを改めて赤松さんの方から話して欲しい」と言うことだったので、個人的に基本的な所と言うと「TDD」と「バージョン管理」(できれば継続インテグレーションもいれたい)だったので、その変も踏まえて技術的負債というトピックを扱った。 具体的な話をしても、スクリーン上じゃコード読みづらいし、わか
OAuthの細かい説明は抜き。 まず、OAuthを使うためにはTwitterでアプリケーションの登録が必要なので、http://twitter.com/oauth_clientsで登録をしておいてください。 以下のコードの6行目の部分を取得したConsumer keyとConsumer secretをに置き換えてください。 適当なところからverifyアクションにリダイレクトしてくると、さらにTwitterにリダイレクトします。その後、callbackアクションに戻ってくるので、そこで認証して取得したトークンをUserモデルに保存します。(ここでは自分のサービスにログインしているユーザが認証を行っています。) その後、保存したトークンを使ってTwitterに発言をします。リクエストが受け入れられなかった場合の処理などは省いてます。 Twitterには取得したトークンに有効期限はありませんが
今の仕事についてつらつらと書く。今漠然と思ってることを書き出しただけなので、そんなに意味のある内容でもないかも。 アジャイル そもそも何をもってアジャイルと言うのか、中々難しいところではある。昨日から読んでる「間違いだらけのソフトウェア・アーキテクチャ」では僕はアジャイル(開発)というのは、できればアジャイル宣言を守るか、守る努力をしているものだけに、その名前を冠してほしいと思っているけど・・・。とある。そういう意味だと改めてうちのチームでもアジャイル宣言を確認するべきかもしれない。 何はともあれ、今うちのチームではCTOのちゃんとアジャイルな開発をしていきたいという想いからいくつかのプラクティスを実践している。イテレーション、プランニングポーカー、バーンダウンチャートなど。まだまだチームとして未熟な為、見積りの精度ややり方が少しうまくいっていない気はするけどこの辺りは徐々に改善されそう。
普段のプログラミングにgitを使用しているのだけど、実際の現場ではまだまだsvnが主流だったりする。svnを直接使ってもいいのだけど、やはりローカル上でコミットしたいとか、複数のコミットを1つにまとめたいとか、トピックブランチを切りたいとかあるのでそれはsvn単体だと厳しい。そんなわけでBetter SVNとしてのgit svnの紹介、と言うよりメモ。 リポジトリのクローン git svn clone repository_url これでsvnリポジトリをgitリポジトリとして取得できる。大きめのリポジトリだと結構時間がかかるのでのんびりと。svnリポジトリの構成がtrunk/branches/tagsという一般的な構成であればオプション-を付けるのがおすすめ。trunkをmaster、branches/tagsをremote branchとして扱うようになる。個別に指定する方法もあるので
9月からやる仕事がめでたく、Rails3.0 + Ruby1.9.2のお仕事なので色々と環境構築。とりあえず自動テストまわりやりました。 一応、環境を他と切り分けるために、rvmでアプリ用にgemsetを用意。アプリごとに簡単に環境を構築できるrvmマジ便利。 gem install bundler --pre gem install rails まずは、bundlerとrailsをインストール。次は適当なアプリを作って必要なgemのインストールなどを行う。テストはRSpecで書くので、-TをつけてTest/Unitは使わないようにする。 rails new demo -T 次に必要なgemをGemfileに記述。rspecとかを「テストだけだから」と思って、gropu :testにしたら、モデルを作成したときにTest/Unitのテストコードが作られたりしたので注意。githubのWik
今思っていることを整理するがてら書いておきます。 僕がここ最近ずっと「コードはきれいに書くべき」「読みやすいコードを」と言い続けています。16日のオブラブの発表もそうですし、WEB+DB Vol.56の記事もそうです。 ただ、僕が話すメリットも基本的には開発者側の視点です。もちろん、開発者がメリットを享受した結果、顧客にも何らかのメリットはあります。(バグが減る、仕様変更のコストが減るなど) とは言え、「コードをきれいに書ける」と言うのは「自分自身が書こうと思ったものを書ける」と言うことでしかないとも思うわけで、それはつまり「自分の脳内で思い描いたソフトウェアを具現化する」能力とも言えるのかなと思います。 じゃあ、仮に「顧客が思い描いたソフトウェア」と「開発者が思い描いたソフトウェア」でズレがあった場合はどうでしょう。当然そこに価値はありません。(価値が0とは言いませんが、理想よりは少ない
名前、長いよね。acceptsnestedattributes_for。以下、ネストしたって言います。長いので。 最近はもっぱら日本語化はi18nにしてるんですが、今回ちょこっとこのネスト関係ではまったのでメモ。 とりあえずモデルの作成までガッとやります。Railsのバージョンは2.3.2です。最下行はgemのインストールが必要です(http://github.com/amatsuda/i18n_generators/tree/master) それぞれアソシエーションとバリデーションのコードを追記しておきます。当然、acceptsnestedattributes_forの記述も必要です。その辺の詳細は省くので適当にググってみてください。 で、日本語化はモデルを作成した後に行なっているのでとりあえずカラムは日本語化されてる筈です。その辺の詳細も省きます。 されてるはずなのですが、一部日本語化
以前に一度設定はしていたのですがちょっとおかしなところ(screenがうまく起動しない、日本語が入力できないとか)がいくつかあったので再設定しました。 zsh-develをMacPortsでインストールする どうやら最初からインストールされているzshではバージョンの4.24のため日本語が入力できないみたいなのでMacPortsであらたに4.3以上のものをインストールしなおします。 $sudu port install zsh-devel Enter password: インストールが終わると、/opt/local/binにzsh-4.3.4があるはずです。 ログインシェルの変更 ユーティリティのNetInfoマネージャもしくは、Terminalからchshを実行してログインシェルを変更します。今回はchshを使用して変更します。ちなみにTerminalの環境設定でシェルを指定している場合
ちょっと大げさなタイトルかもしれないですが、個人的にはそれぐらいの感動。「これで勝つる!」な気分。何に勝つのか知らないけれど。 今までのRailsのテストはもっぱらRSpecで書いてて、確かにこれはこれで素晴らしい。採用当初はバグが減ってその時も「これで勝つる!」な気分でした。でもやっぱり受け入れテストがネックになるんですよね。Seleniumとかも使ったりしてましたけど、ブラウザががちゃがちゃ動くし、なんとなく面倒で結局手動で確認という感じになってしまいました。 そこでCucumberの登場ですよ。個人的に素晴しいと思うのは テストケースが自然文(っぽい) そんなに邪魔じゃない あたりかなぁ。テストケースが自然文っぽいというのは実はかなり大事で例えば お客さん: まずトップページにアクセスするとログインフォームがあって、そこにログインすると「ようこそ!ほげほげさん」と出すようにして欲しい
後々、また参照する気がするので記録しておく。この手の環境構築系のドキュメントってWikiかなんかにみんなで情報集めたらそこそこ便利そうな気がするのだけどどうだろう。 Ruby、RubyGemsのインストール yumでRubyをインストールしようとすると、1.8.5が入ってしまうので仕方なくソースからインストール。 $ cd /usr/local/src $ sudo wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p249.tar.gz $ sudo tar zxvf ruby-1.8.7-p249.tar.gz $ cd ruby-1.8.7-p249 $ sudo ./configure $ sudo make $ sudo make install $ cd /usr/local/src $ sudo wget http://
最近、実はプログラマという職業が「ふつう」の人には厳しいなーと思っていたりする。 業務外にコードを書いたり、技術書などを読むというのは素晴らしいことだと思う。けど、会社側がもし「業務時間外にコードを書いたり、技術書を読んだり、勉強会に参加しなさい」と言ったら、それは業務時間外労働と変わらないと思う。個人のたのしみとは別に会社側がそれらを求めたらそれは業務だ。 しかし、僕が思うにはそういう業務時間外に自主的に勉強をしないと、正直いってまともな品質なソフトウェアを作るのは難しい。 例えば良書と言われているものは結構な数あり、ある程度経験がありそれらの本を読んだことがある人は「プログラマならこの本は読んでおくべき」という本をいくつかあげたりもするだろう。けど、それらをいつ読むのか。業務時間内にそれらをじっくり読んだり、実際にコードを書いたりする時間があるところはないだろう。そうなると自分のプライ
セキュリティの教訓 - snow-bellの日記 snow-bellのところでgyazoのセキュリティが話題になってたので、ちょっとレスもかねてエントリー書く。 Skitch.com 今、オレが使ってるツールはgyazoじゃなくてSkitchというものを使ってる。デモが上で見れるのでそれを見てもらえばどんなものか大体わかるはず。 基本的な用途は、キャプチャ->編集->アップロード。大体gyazoと同じ。オレがgyazoを使わない理由は、画像の削除と公開範囲が指定できないってところが大きい。嘘です、先にSkitchを使ってたからです。 Skitchでできることは大体下記のとおり。 スクリーンキャプチャ 簡単な編集 アップロード 公開(非公開設定も可能) アップロードした画像の削除 アップロードした画像はskitch.comにログインすると自分のページから一覧することができる。 Uploade
適当に思い付いたものを書いてみる。 CTRL-X CTRL-L 行単位での補完。まぁ該当の行でyyしてpして貼り付けでもいいかもしれないけど、移動するの面倒な場合もあるし。 以下、自分のvimrcで「n CTRL-X CTRL-L」した例。 ちなみに俺がこれを一番使うときはRSpecのdescribeの行を補完する時かな。こんな感じ。 describe "hogehoge" do end desCTRL-X CTRL-L ↓ describe "hogehoge" do んで、hでちょこちょこっと”の中に移動してdi”で”の中を削除する感じ。 di" こっそり上で登場してるけど"で囲まれた文字列をd(削除)する。da"だと"も含めて削除。ちなみにこれはテキストオブジェクトっていうVim7からの機能で他にも色々パターンがあって、個人的にVimの機能の中でも特別気に入っている。ちゃんと説明する
11月21日にRails2.2が正式リリースされた。 RCなどでチェックしてた人は既に知っているかもしれないけど、2.2からデフォルトでi18n(国際化)対応がされている。 ちなみにi18nというのはinternationalizationの頭と後ろのiとn、文字数が18文字というところから来てるらしい。 とりあえず、まずはアプリの作成。 $ rails i18n_demo 作成されたファイル群の中にconfig/locales/en.ymlというファイルが出来ていると思うけど、これが翻訳ファイルになる。今回は英語と日本語を用意しようと思うので、en.ymlをコピーしてja.ymlを作成する。 $ cp config/locales/en.yml config/locales/ja.yml 翻訳ファイルを修正しようにも、そもそもアプリケーションが出来ていないので、scaffoldで簡単に作
ここは、Rubyistである赤松 祐希の個人サイトです。Digital Gardenを意識して作っていますが、作り直しはじめたばかりなのであまり手入れが行き届いていません。不便だとは思いますが、気ままにのぞいてもらえれば幸いです。 著者について about 著者およびこのサイトについて now 著者の近況 おすすめ このサイトは検索も時系列による一覧も提供していません。なので私の方からいくつか記事をピックアップしリンクしました。 ソフトウェア開発 私とRuby 思い出話です ソフトウェアテスト ソフトウェア開発の中でも割と継続して興味をもっているトピック イテレーション開発においてゴールは変わるもの こちらもかなり前に書いた記事ですが、作ることだけを目的にしないというのは今でも忘れないようにしたいなと思っています 哲学 越境する 所属するクックパッドのマニフェストについてです 趣味 ちょっ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く