LLfutureこと、 Lightweight Language Futureサイコー?!フレームワーク のセッションで、Ruby on Rails担当ということで講演いたしました。 お聞きくださった皆様、ありがとうございました。

プレゼンで使った資料を公開いたします。

llfuture.pt

ファイル形式は自作のPuTTY用プレゼンテーションアプリ(Ruby製) のものですが、テキストファイルとして読めるようになっています。 プレゼンテーションアプリは、そのうちGitHubにUpします。

それでは、よろしくお願いします。

posted by Png genki on Sun 31 Aug 2008 at 00:49

以前git-svnについて記事を書いたのですが、最近s21gでもGitでリポジトリができたので、pure gitにしてみることにしました。

よく使うコマンド達

   1  #リモートやブランチを確認・追加
   2  git remote #リモート一覧
   3  git branch #ブランチ一覧
   4  git remote add origin ssh://git.s21g.com/mnt/git/muji.git
   5  git config --get remote.origin.url #リモートoriginのURLを表示
   6  
   7  #変更を確認してマージ
   8  git fetch origin
   9  git log -p master..origin/master # -pをつけるとdiff状態を見せてくれる
  10  git merge origin/master
  11  
  12  #コミット
  13  git push origin master

  • 以前に書いたgit stash, git stash apply, git checkout -- filenameなどももちろん使っています。

git-pullは二つの動作をまとめてやってくれる

"pull" コマンドは次の2つの操作を実行します:
(1) リモートブランチから変更を取得。= fetch
(2) それらを現在のブランチにマージ。= merge
http://www8.atwiki.jp/git_jp/pub/Documentation.ja/tutorial.html

git-logはややこしい

   1  git log test..master  # master から到達可能だが、test からは到達可でないコミット
   2  git log master..test  # test から到達可能だが、master からは到達可能でないコミット
   3  git log master...test # test または master から到達可能だが、両方からは到達可能でない...
http://www8.atwiki.jp/git_jp/pub/Documentation.ja/user-manual.html#browsing-revisions

posted by Png satoko on Sat 30 Aug 2008 at 01:53

債権」は代金を回収する権利、「債務」は代金を支払う義務のことです。
その一部に前払金と前受金があります。
今回は前払金について説明します。

前払金」は一部代金を事前に支払うものです。手付金、内金とも言います(仕訳では必ず「前払金」勘定を用います)

たとえば、500,000円の商品を仕入れるために、100,000円を手付金として約束手形で支払ったとします。

その場合の仕訳は、

借方貸方
前払金100000支払手形100000

と、なります。

現金で支払えば貸方の勘定科目が「現金」、小切手で支払えば「当座預金」となります。

その後、実際に商品を仕入れる際に残りの金額を現金で支払ったとします。

その場合の仕訳は、

借方貸方
仕入500000前払金100000
現金400000

と、なります。

前払金を支払った後、仕入をする前に相手の会社から取引の中止を求められた場合は、前払金は返してもらえます。
前払金を小切手で返してもらったとすると

その場合の仕訳は、

借方貸方
現金100000前払金100000

と、なります。

前払金は資産です。

posted by Png mari on Thu 28 Aug 2008 at 20:03

rabbitのソースコードハイライトをするために必要なruby.stを探していたのですが、 各所でデッドリンクになっていたので、見つけたファイルの場所をメモしておきます。

http://support.rubyforge.org/svn/trunk/support/ruby.st

See Also

posted by Png genki on Thu 28 Aug 2008 at 19:50

例えばselect結果をinsertするような場合は効率面からActiveRecordを通さずそのままSQLを実行したい。select結果が数千件ある場合ARで素直に書くとそのまま数千回insert実行しなきゃならんので。

Railsでは基本ARで操作できるけど必要があればSQL書ける柔軟な所がある。 今回の場合ActiveRecord::Base::connection::executeを使用する。 Railsレシピブックで言うとP239の例。

   1  Class Entry < ActiveRecord::Base
   2    def self.select_insert_hogehoge
   3      sqlstr = "hogehoge"
   4      return connection.execute(sqlstr)
   5    end
   6  end

posted by Face ysakaki on Thu 28 Aug 2008 at 16:01

http://www.railsenvy.com/2008/8/27/rails-envy-podcast-episode-044-08-27-2008

耳慣らしに聞いてみました。サイトには話題になった各トピックスへの(ブログ等の)リンクがあるので手掛り+フォローアップになります。
面白そうなところだけカバーしておきます。

Bossman Gem

Yahoo! BOSS Web Serviceを使えるようになるgem
http://github.com/jpignata/bossman-gem/tree/master

RSpecが便利らしい:it_should_behave_like

瀧内さんが前に絶賛してたのだけど、最近はit_should_behave_likeというものが存在するようで、かつEnvyPodcastでも一度に3つリンクを挙げているので今Hotなのだなと思います。

http://www.robbyonrails.com/articles/2008/08/19/rspec-it-should-behave-like
http://edspencer.net/2008/08/drying-up-your-crud-controller-rspecs.html
http://www.joesniff.co.uk/ruby/telling-a-good-story-rspec-stories-from-the-trenches.html

[メモ] 日本語でのRSpecの解説:
http://jp.rubyist.net/magazine/?0021-Rspec
http://jp.rubyist.net/magazine/?0023-Rspec

EnvyCasts

Rails Envy Podcastのホスト二人が出演するビデオ。1エピソード$9。
http://envycasts.com/

第1回の内容は以下

  • Loading Large Data Sets
  • Foreign Keys
  • Using and Abusing Include
  • Counter Caching Properly
  • Polymorphic Associations
  • Single Table Inheritance
  • New Rails 2.1 Features
posted by Png satoko on Thu 28 Aug 2008 at 14:24

やっつけで作ってみました。

Gist Ubiquitifier

Gist上のJavaScriptコードをUbiquityコマンド化してインストール可能にするサービスです。これを利用することで、Ubiquityコマンドインストール用のHTMLファイルを設置するサーバを持っていない場合でも、 コマンドを公開することができます。

USAGE:

まずは、Gist上でUbiquityコマンドをJavaScriptで登録します。 例えば、Gist上のURIが

http://gist.github.com/7630

の場合、

http://ubiquity.s21g.com/7630

がインストールページなります。 コマンド名は、nameパラメータで指定できます。

http://ubiquity.s21g.com/7630?name=s21g-blog-search

使えそうであれば、もうちょっとちゃんとしたデザインにしようと思います。

posted by Png genki on Thu 28 Aug 2008 at 13:54

自分用にUbiquityコマンドを登録する場合は、Ctrl+SpaceでUbiquityを起動してから、command-editorコマンドを実行し、コマンドを実装するためのJavaScriptを登録すればOkです。 これを一般に公開するためには、以下のようなLINKタグをHEAD内に含むHTMLページを用意する必要があります。

   1  <link rel="commands" href="http://url-to-jsfile.js" name="タイトル"/>

このjsファイルは、'application/x-javascript'のMIME TYPEで配信される必要があります。'text/javascript'の場合は無視されてしまいます。 jsファイルの中には、自分用のコマンドで作ったものと同じ形式のJavaScriptを記述可能です。

上述のHTMLページを閲覧した閲覧者は、コマンドをインストールするかどうか質問され、Subscribeボタンを押すと購読画面に遷移します。 いまのところ、購読する気がない場合に「×」ボタンを押して無視しても、 次回訪問時に何度も確認されてしまうため、 Ubiquityコマンドのインストールページは、通常のページとは別に用意したほうがいいかもしれません。

See Also

posted by Png genki on Thu 28 Aug 2008 at 07:42

s21gブログの検索を Ubiquity から行えるようにしました。 Ubiquity commandのSubscribeは以下のページから行えます。

フッタのリンク「Ubiquity」からJumpすることもできます。

コマンドをインストールした後は、 Ctrl+SpaceもしくはAlt+Spaceキーを押してUbiquityを立ち上げた後、 以下のようなコマンドでs21gブログ内の記事をどこからでも検索できるようになります。

   1  s21g-blog-search search word

コマンド名は省略可能(abbrev)なので、

   1  s21g search word
のように使うこともできます。

s21g blogのubiquity commandを利用するためには、Ubiquityをインストールする必要があります。

See Also

posted by Png genki on Thu 28 Aug 2008 at 07:27

git でファイルの復活

  • コミット後に勢いよくリファクタリングするも途中で挫折
  • p なデバッグコードを埋め込んでいくも修正箇所を忘れた

なんてとき、指定した一部のファイルだけをコミット後の綺麗な状態に戻したいときがある。

svn の場合

svn は楽だった。消して update するだけでよかったから。 具体的には、モデルを全部戻したくなった場合は

% rm -rf app/models
% svn update

で楽に復旧できる。

git の場合

でも、git では fetch しても削除ファイルは華麗にスルーされて困っていた。 git は超便利だが、ここの一点で svn の方が使いやすいと思っていた。 が、checkout が所望のコマンドだと知った。 (Rails勉強会++)

% rm -rf app/models
% ls app/models
ls: cannot access app/models: No such file or directory
% git checkout app/models
% ls app/models
user.rb

あぁ、もうgitでいいです。 クゥ~ン♪

posted by Png maiha on Thu 28 Aug 2008 at 05:47 with 2 comments