Monday, July 28, 2008

頭と体が重いよ

相変わらず風邪の後遺症というか体と頭が重い
夏バテかもしれない
まだ鼻をずるずるしている
まあ毎日少しづつは改善しているようだけど
外がこれだけ暑いとなんだかよくわからないな

Ruby Reference Manual Reading

やはりリファレンスは重要だということで最初から通読することにした
コマンド、言語仕様、文法を読んだ
はっきりしていなかったことがはっきりしてよかった
つぎは、本陣、組み込みライブラリ!

Thursday, July 24, 2008

Git Tutorial

## New Project Import
* cd new_project_folder
* git init

## Add and Modify Files
* git add file1 file2
* git diff --cached or git status or git log -p (--stat --summary)
* git add commit or(新規作成ファイルまたは修正ファイルの追加)
* git commit -a > add and commit(修正ファイルのaddのみ新規作成ファイルはadd commandが必要)
* git mv filename1 filename2

## Remove Files
* git rm file1 file2
* git commit

## History
* git log, git log -p, git log --stat --summary
* git-tag v1.0 commitID > make a tag
* git show v1.0, git diff v1.0 > usage of tag

## Make a Branch
* git branch new_idea
* git branch > list of branches
* git checkout new_idea or master > switch branch
* git merge new_idea
* git branch -d new_idea > delete branch

## Git with Shared Project
* git clone http://..../project myrepo > create local copy
* git clone --depth 1 > copy only newest version
* git pull http://.../myrepo master > pull & merge local modification to shared master
* git pull > renewal local copy
* git push > push local modification to the master

## Others
* git gc > cleanup for optimization

git チュートリアル (バージョン 1.5.1 以降用)

Gist by GitHub

最近登録したヴァージョン管理サービスのGitHubが
GistというCodeSnippetができるサイトを始めた
しかしただのCodeSnippetではなくて
なんと、それをヴァージョン管理できてしまう優れもの
早々いくつかのShoesアプリをSnippetしてみた
これからGitの使い方を学んでいこう

鼻風邪でダウン!そして回復

さちの咳が回復に向かう中
18日金当たりからのどに痛みがでた
原因ははっきりしている
就寝中の冷房だ

土曜日に圭一くんが遊びに来て
冷房を掛け続けていたりよくしゃべったり
体にはあまりよろしくないものを食べたりしたので
症状が悪化した

日曜日の夜だったかに37度後半の熱が出だしてダウン
ちょー久しぶりにの病気
以前に夏風邪になった記憶がない

初の自然療法(要するに薬を飲まないで直す試み)で熱が下がるのには時間が掛かる
頭痛が激しくちょっとつらい
さちがダイコン汁やはちみつドリンクを作ってくれる
氷枕や濡れタオルもしてもらう

布団を被ったり風呂に入ったりして
早期の発汗を試みるも熱は容易には下がらない

食事は二食を抜いたがその後は適当に食べた
それでも体重は2.2kgも減ってしまった

23日水になって熱が下がり頭痛も治まる
ただ微熱は続き体はだるいのでこの日もほぼ一日ベッドの上
鼻の痛みは消えたが鼻水もまだでる

今日24日になって大分体が楽になってきたので起きてみる
まだのどに若干の違和感があるのと体が重い
鼻詰まり、頭痛、熱は治まったようだ

(教訓)
  • 健康体になっても風邪は引く
  • 健康体になっても回復力はそんなに高まらない?
  • 自然療法は時間が掛かる(さちがいなかったら、薬を飲んじゃう)
  • 痩せたせいで寒さに弱くなっているので注意が必要
  • 就寝中の冷房対策が早急に必要

こちらの熱に連動するように冷めきっていた株式市場にも少し熱風が吹き出している

Friday, July 18, 2008

Ruby mode in emacs

i setup ruby mode to emacs on gOS followed by:

http://rubygarden.org/ruby/page/show/InstallingEmacsExtensions

gOSにRubyとRubyGemsをインストール

Rubyのインストールは問題ないが
RubyGemsのインストールのところで
zlibというファイルがないと言われる
いろいろしらべて
以下のサイトに従ってインストールをやり直したらうまくいった


ついでにRuby1.9もインストールした

GitHub

Ruby関係のコードを探していると
GitHubというサイトに突き当たることがある
GitとはLinuxのリナス・トーバルズが開発したバージョン管理システムで
GitHubはGitのWebインタフェースだ
自分のサンプル的なコードを投稿している人もいるようなので
自分もしてみようかと考える

Wednesday, July 16, 2008

gos trouble

netでgosのGUIにautologinする方法が書いてあったので試してみたら
GUIが立ち上がらなくなってしまった
macからSSHでログインはできるので
システムレベルでは動いているようだが
EntranceというGUIの設定がうまくいってないようだ
設定を戻してもそれがファイルに反映されない
困った

gOSの再インストールか?


entrance_config.cfgファイルを削除することで急場を凌げた

Tuesday, July 15, 2008

Shoesがおもしろい

ここ数日、RubyのGUIツールであるShoesをいろいろと試している
なかなか楽しい
特長点をあげると

  1. CanvasとWebPageを統合したような機能を持っている
  2. そのため一つのWindow上にWebのElementのようなWedgetを配置できる
  3. と共に、図形を描くことも出来る
  4. 個々のElementはオブジェクトとしてメソッドを呼び出せる
  5. 関数的なメソッド(Kernelメソッド)が多数用意されている
  6. Elementをグラフィカルに操作できるanimateなどの関数メソッドが用意されている
  7. 一つのWindowを一URLとして複数のWindowを遷移したり起動したりできる
  8. 画像や動画もオブジェクトとして配置できる
  9. 各Elementは、StackおよびFlowで配置制御できる
  10. 軽量RubyInterpriterを同梱しており、いくつかのgemがデフォルトで含まれている
  11. gemのインストールはsetupで他のRubyインスタンスから読み出して使える
試しに3つコードを書いた
  1. hilite_shoes.rb: hilite.rbのGUIインタフェース
  2. shoes_text_bounce.rb: textをサンプルをバウンスして表示するデモ
  3. ruby_meet_shoes.rb: rubyとshoesのテキストをマウスで移動して揃えるデモゲーム
こういうのが簡単にできるのがすばらしい

また、ShoesのTextMate Bundleを発見したのでDL
ちょっと出来は良くないけど、改良して使える
shoesを一発起動できるのがチョー便利

Monday, July 14, 2008

Project Folder move to Dropbox

ProgrammingのプロジェクトフォルダをDropboxに移動してみる
これでいちいちコミットなどしなくてもよくなるのか

Git install & Shoes TextMate Bundle

ShoesのTextMateBundleを早々作った人がいたのでゲットする
ファイルがGitで管理されているということで
まずはMacPortでGitのインストール
と、その前にMacPortを更新


Gitのインストール


そして、ShoesTMBundleのインストール


snippetにTabTriggerがセットされていなかったので適当にセット

Shoeの実行を⌘Rから⌘Eに変更

これはかなり快適だ

Sunday, July 13, 2008

Mighty Mouse電池交換

前回の記録は4月6日となっているけど
それじゃ3ヶ月持ったってこと?
いや、記録忘れだろうな
今回もAskul*2で

Saturday, July 12, 2008

Ruby Object#sendの使い方

methodを変数から呼び出したい場合がある
そのようなときはsendが使える
sendにはmethod名を文字列かシンボルで渡す
methodの引数は第2引数とする


class Salute
attribute_accessor :name
def hello
puts 'hello'
end
def goodbye
puts 'goodbye'
end
end

s = Salute.new(name)
name = case name
when 'kyo': :hello
when 'keyes': :goodbye
end
s.send(name)

Dropbox

Dropboxというファイルシェアリングサービスからベータの案内が来ていたのでちょっと試してみる
ファインダに専用のフォルダができて
そこに置かれたファイルは自動的にWeb上で同期管理される
すごいのはリビジョン管理までしてくれて
簡単に古いヴァージョンにリストアできる点だ

差し当たり2GB使えるようなので
Ruby関連のファイルを置いてみる
これでいちいちCVSとかでUpdateとかいらなくなるかも

Friday, July 11, 2008

Shoesがやばい

RubyのGUIキットはいくつか出ているけど
どれも移植物で使いづらいどころか
インストールもままならない

そんななか
ShoesというGUIキットを発見した
Rubyの構文に似た使いかってで
簡単にGUIアプリが作れる
サンプルも豊富だ
ただドキュメントがまだ整備されていないので
よくわからないことも多い点が問題ではある

今はサンプルのコードを追ってるけど
これがRubyの勉強にもなって一石二鳥だ
もう少し理解したら
ハノイの塔を書いてみようと思う

Ruby 変数の初期化

arrays.each_with_index do |arry, i|
   i += 1
   .....
end

pages ||= []

Thursday, July 10, 2008

そう、大事なのはプラットフォームなんだ

Wiiはプラットフォームである
このプラットフォームに多数のデベロッパーが集まる
そして多数の優良なゲームを作成する
そう、確かにWiiはプラットフォームだ

一方でWii上で作成された多数のゲームもまたプラットフォームである
このプラットフォームには多数のユーザが集まる
そしてそこに優良なコミュニティが作成される
ときにはユーザが優良なコンテンツを作成する
だからゲームもプラットフォームだ

クリエータの最大の関心事は
その作品に対するユーザの関心である
ユーザの関心は優良なコミュニティの存否で測ることが出来る
だからクリエータは優良なコミュニティを形成するような
プラットフォームを作ることに専心すべきである

Saturday, July 05, 2008

Terminalでの制御文字

ESCは\033

シーケンス 内容
ESC[x;yH 座標x,yにカーソルを移動
ESC[2J クリア
ESC[0J その行をカーソルから行末までクリア
ESC[0m 通常の文字
ESC[1m 太字文字
ESC[4m 下線つき文字
ESC[5m 点滅文字
ESC[7m 反転文字
ESC[30m 前景色:黒
ESC[31m 前景色:赤
ESC[32m 前景色:緑
ESC[33m 前景色:黄
ESC[34m 前景色:青
ESC[35m 前景色:紫
ESC[36m 前景色:水色
ESC[37m 前景色:白
ESC[40m 背景色:黒
ESC[41m 背景色:赤
ESC[42m 背景色:緑
ESC[43m 背景色:黄
ESC[44m 背景色:青
ESC[45m 背景色:紫
ESC[46m 背景色:水色
ESC[47m 背景色:白


Thursday, July 03, 2008

Rubyの特異クラス

なるほど、なるほど

lesson.rb with zenburnesque

   1  #!/usr/bin/env ruby
2
3 class Test
4 puts " 1: #{self.__id__} 基底クラスTest"
5 def meth
6 puts " 9: #{self.__id__} インスタンスa"
7 end
8 class << self
9 puts " 2: #{self.__id__} Testの特異クラス"
10 def meth2
11 puts " 4: #{self.__id__} TestのサブクラスATest"
12 sing = class << self
13 self
14 end
15 puts " 5: #{sing.__id__} TestのサブクラスAtestの特異クラス"
16 end
17 end
18 end
19
20 class Atest < Test
21 puts " 3: #{self.__id__} TestのサブクラスAtest"
22 end
23
24 Atest.meth2
25 puts " 6: #{Atest.__id__} TestのサブクラスAtest"
26
27 class << Atest
28 puts " 7: #{self.__id__} TestのサブクラスAtestの特異クラス"
29 end
30
31 a = Atest.new
32 puts " 8: #{a.__id__} TestのサブクラスAtestのインスタンスa"
33 a.meth
34
35 class << a
36 puts "10: #{self.__id__} インスタンスaの特異クラス"
37 end

yohasebe.com : Ruby の動的オブジェクト生成について
http://yohasebe.com/pages/trans-idiomatic-dynamic-ruby/