2009-05-01 :-)
_ 朝ッ
0500 起床
_ kennak さんに会ったときにプログラミングの心理学を持参するのを忘れていた
も、もう一度チャンスを...!
_ 物事を抽象的にとらえる
「アレしといて」
_ キーボードのテンキーが邪魔
それ
_ FriendFeed からたくさん subscribe メールが来たので何が起きたのかと思ったら
friendfeed - HsbtDiary(2009-04-30)
Twitter の follower リストからインポートできるようになったから?
あー。そういう
Twitter アカウントつながりを検索してみた。
169 人か。
_ 飯
ホイコーロー 肉なし
_ おやつ
月餅
_ けいおん! #5 を見た
「むぎ、さわ子先生のこと、好きなのか?」
「えっ」
「えっ」
「ばか!」
「えっ」
「えっ」
「ああ、いえ。ただ、女の子どうしっていいなあ、って」
「なあんだ、よかった」
「いいのかよ」
「本人たちが良ければ良いんじゃないでしょうか」
「えっ」
「えっ」
_ ゲーム音楽の管弦楽団 リトルジャックオーケストラ
( via ゲーム音楽を聴こう )
パイプオルガンを使用できる会場を探していて、見つかったのがみなとみらい大ホールとなったわけですが、ココは「消防法の規定による危険防止と定員厳守のため」自由席の使用が出来ないのです。
こぴぺというか
曲目・演目:植松伸夫作曲 FINAL FANTASY6
- 予兆
- 戦闘
- 勝利のファンファーレ
- 魔導士ケフカ
- 迷いの森
- 街角の子供たち
- 幻獣を守れ!
- 決戦
- ティナのテーマ
- 婚礼のワルツ~決闘
- 大団円
- レストインピース
- 仲間を求めて
- 墓碑名
- 妖星乱舞
- 蘇る緑
- プレリュード
これは...!
「レストインピース」以降の流れなんてサントラ disc3 じゃないか...! ( いくつか抜けてるけど )
しかもパイプオルガン...だと...?
「妖星乱舞」か!パイプオルガンで「妖星乱舞」を演奏するんだな!
むしろ「幻獣を守れ!」なんてよく演奏できるな。期待し
つまりこの曲 → YouTube - FF6 LLG Narshe Battles
2009-05-03 :-)
_ 朝ッ
0700 起床
_ おやつ
いもとコーヒー
_ [いっしょにとれーにんぐ]いまさらながら「いっしょにとれーにんぐ」を開封した
手元の計算機で見ようとしたら「エンコーダが足りなかったりします><」と言われたので PS3 を使った。
腕立てx12、腹筋x12、スクワットx12 という単位で ひなこが乳を揺らしながら筋トレする様子を見て楽しもう、というもの。まともに筋トレやるならこの作品では不足なんだが、この作品に食らいつくような人種(オレだ)ならばアニメダイエットが適しているだろう。
アニメダイエットとは、アニメを見てる時間を利用してダイエットしよう、というもの。上記サイトでは踏台昇降を実施している。オレは踏台昇降してないけどアニメを見ながらいつも筋トレしてる。むしろ筋トレをするためにアニメを見る。手段のためには目的を選ばない。
「いっしょにとれーにんぐ」のキャプチャ画像などは megu^2 のところが詳しい
さて、全く未発表の声優ですが本編クレジットでも触れられていません。ただ、どう聞いても門脇舞以(Fateのイリアとかの声)さんです。
だそうだ。
音楽は @lisa_rec が担当とのこと。
B0025MGLTA
_ 題名のない音楽会を見ている
マーティフリードマンが居る
2009-05-04 :-)
_ 朝ッ
0730 起床
_ 図書館へ寄贈した
重かった
_ ちょっと休憩
近所の喫茶店。わからないMPEG
_ [デザインパターン][Strategy]Head First デザインパターンを写経する - 1章 Strategy パターン
サンプルコードをそのまま Ruby で書いたつもり。Java でいう interface は Ruby に存在するの?
#!/usr/bin/ruby -Ks class Duck @@quackBehavior = nil @@flyBehavior = nil def initialize end def performFly @@flyBehavior.fly end def performQuack @@quackBehavior.quack end def swim puts "すべての鴨は浮かびます。おとりの鴨でも!" end end class FlyBehavior def fly end end class FlyWithWings < FlyBehavior def fly puts "飛んでいます!" end end class FlyNoWay < FlyBehavior def fly puts "飛べません!" end end class QuackBehavior def quack end end class Quack < QuackBehavior def quack puts "ガーガー" end end class MuteQuack < QuackBehavior def quack puts "<沈黙>>" end end class Squack < QuackBehavior def quack puts "キューキュー" end end class MallardDuck < Duck def initialize @@quackBehavior = Quack.new @@flyBehavior = FlyWithWings.new end def display puts "本物のマガモです" end end def main mallard = MallardDuck.new mallard.performQuack mallard.performFly end main
% ./duck.rb ガーガー 飛んでいます!
4873112494
_ おやつ
グーテデロワのラスク
_ [Observer][デザインパターン]Head First デザインパターンを写経する - 2章 Observer パターン
Mix-in を使うといいのかしら。Observer に関しては lib/ruby/1.8/observer.rb が Ruby での Observer 実装のようだ。
#!/usr/bin/ruby -Ks module Subject def registerObserver( observer ) end def removeObserver( observer ) end def notifyObservers end end module Observer def update( temp, humidity, pressure ) end end module DisplayElement def display end end class WeatherData include Subject @temprature @humidity @pressure def initialize @observers = [] end def registerObserver( observer ) @observers << observer end def removeObserver( observer ) @observers.delete( observer ) end def notifyObservers @observers.each {|o| o.update( @temprature, @humidity, @pressure ) } end def measurementsChanged notifyObservers end def setMeasurements( temprature, humidity, pressure ) @temprature = temprature @humidity = humidity @pressure = pressure measurementsChanged end end class CurrentConditionDisplay include Observer include DisplayElement def initialize( weatherData ) @weatherdata = weatherData @weatherdata.registerObserver( self ) end def update( tempreture, humidity, pressure ) @tempreture = tempreture @humidity = humidity display end def display puts "現在の気象状況: 温度#{@tempreture}度 湿度#{@humidity}%" end end def main weatherdata = WeatherData.new currentDisplay = CurrentConditionDisplay.new( weatherdata ) weatherdata.setMeasurements( 27, 65, 30.4 ) weatherdata.setMeasurements( 28, 70, 29.2 ) weatherdata.setMeasurements( 26, 90, 29.2 ) end main
% ./weather.rb 現在の気象状況: 温度27度 湿度65% 現在の気象状況: 温度28度 湿度70% 現在の気象状況: 温度26度 湿度90%
4873112494
2009-05-05 :-)
_ 朝ッ
0600 起床
_ チャリった
朝はすいておる
_ おやつ
ロールケーキ
_ [M3]M3 行ってきた
都合により開場直後に行って霜月はるか( Maple Leaf )に挨拶しようとしていたんだが人が多すぎてサークルブースに近寄れないし流された。むしろこの様子ではチンタラと会話してる場合じゃなさそうだ。今度は午後に行くとしよう。ミッションインコンプリート
2 枚だけ購入
_ [Decorator][デザインパターン]Head First デザインパターンを写経する - 3章 Decorator パターン
Mix-in の使いどころがいまいち理解できてない。
#!/usr/bin/ruby -Ks class Beverage @description = "不明な飲み物" def getDescription @description; end def cost end end class CondimentDecorator < Beverage def getDescription end end class Espresso < Beverage def initialize @description = "エスプレッソ" end def cost 1.99 end end class HouseBlend < Beverage def initialize @description = "ハウスブレンド" end def cost 0.89 end end class DarkRoast < Beverage def initialize @description = "ダークロースト" end def cost 0.99 end end class Decaf < Beverage def initialize @description = "カフェイン抜き" end def cost 1.05 end end class Mocha < CondimentDecorator @beverage def initialize( b ) @beverage = b end def getDescription @beverage.getDescription + "、モカ" end def cost 0.20 + @beverage.cost end end class Whip < CondimentDecorator @beverage def initialize( b ) @beverage = b end def getDescription @beverage.getDescription + "、ホイップ" end def cost 0.10 + @beverage.cost end end class Soy < CondimentDecorator @beverage def initialize( b ) @beverage = b end def getDescription @beverage.getDescription + "、豆乳" end def cost 0.15 + @beverage.cost end end def main beverage = Espresso.new puts "#{beverage.getDescription} $#{beverage.cost}" beverage2 = DarkRoast.new beverage2 = Mocha.new( beverage2 ) beverage2 = Mocha.new( beverage2 ) beverage2 = Whip.new( beverage2 ) puts "#{beverage2.getDescription} $#{beverage2.cost}" beverage3 = HouseBlend.new beverage3 = Soy.new( beverage3 ) beverage3 = Mocha.new( beverage3 ) beverage3 = Whip.new( beverage3 ) puts "#{beverage3.getDescription} $#{beverage3.cost}" end main
% ./beverage.rb エスプレッソ $1.99 ダークロースト、モカ、モカ、ホイップ $1.49 ハウスブレンド、豆乳、モカ、ホイップ $1.34
4873112494
2009-05-06 :-)
_ 朝ッ
0730 起床
_ おやつ
柏餅
_ [デザインパターン][Factory]Head First デザインパターンを写経する - 4章 Factory パターン
#!/usr/bin/ruby -Ks class PizzaStore def orderPizza( type ) @pizza @pizza = createPizza( type ) @pizza.prepare @pizza.bake @pizza.cut @pizza.box @pizza end def createPizza( type ) end end class NYPizzaStore < PizzaStore def createPizza( item ) case item when "チーズ" NYStyleCheesePizza.new ## when "野菜" ## NYStyleVeggiePizza.new ## when "クラム" ## NYStyleClamPizza.new ## when "ペパロニ" ## NYStylePepperoniPizza.new else nil end end end class ChicagoPizzaStore < PizzaStore def createPizza( item ) case item when "チーズ" ChicagoStyleCheesePizza.new ## when "野菜" ## ChicagoStyleVeggiePizza.new ## when "クラム"Head First デザインパターンを写経する - 3章 Decorator パターン ## ChicagoStyleClamPizza.new ## when "ペパロニ" ## ChicagoStylePepperoniPizza.new else nil end end end class CaliforniaPizzaStore < PizzaStore def createPizza( item ) case item when "チーズ" CaliforniaStyleCheesePizza.new when "野菜" CaliforniaStyleVeggiePizza.new when "クラム" CaliforniaStyleClamPizza.new when "ペパロニ" CaliforniaStylePepperoniPizza.new else nil end end end class Pizza @name @dough @sauce @toppings def prepare puts "#{@name}を下処理" puts "生地をこねる..." puts "ソースを追加..." puts "トッピングを追加:" @toppings.each {|t| puts " #{t}" } end def bake puts "350度で25分間焼く" end def cut puts "ピザを扇形に切り分ける" end def box puts "PizzaStore の正式な箱にピザを入れる" end def getName @name end end class NYStyleCheesePizza < Pizza def initialize @name = "ニューヨークスタイルのソース&チーズピザ" @dough = "薄いクラスト生地" @sauce = "マリナラソース" @toppings = [] @toppings << "粉レッジャーノチーズ" end end class ChicagoStyleCheesePizza < Pizza def initialize @name = "シカゴスタイルのディープディッシュチーズピザ" @dough = "極厚クラスト生地" @sauce = "プラムトマトソース" @toppings = [] @toppings << "刻んだモッツァレラチーズ" end def cut puts "ピザを四角形に切り分ける" end end def main nyStore = NYPizzaStore.new chicagoStore = ChicagoPizzaStore.new pizza = nyStore.orderPizza( "チーズ" ) puts "イーサンの注文は#{pizza.getName}" pizza = chicagoStore.orderPizza( "チーズ" ) puts "ジョエルの注文は#{pizza.getName}" end main
% ./factory.rb ニューヨークスタイルのソース&チーズピザを下処理 生地をこねる... ソースを追加... トッピングを追加: 粉レッジャーノチーズ 350度で25分間焼く ピザを扇形に切り分ける PizzaStore の正式な箱にピザを入れる イーサンの注文はニューヨークスタイルのソース&チーズピザ シカゴスタイルのディープディッシュチーズピザを下処理 生地をこねる... ソースを追加... トッピングを追加: 刻んだモッツァレラチーズ 350度で25分間焼く ピザを四角形に切り分ける PizzaStore の正式な箱にピザを入れる ジョエルの注文はシカゴスタイルのディープディッシュチーズピザ
_ [デザインパターン][Abstract Factory]Head First デザインパターンを写経する - 4章 Abstract Factory パターン
素材クラスは途中で挫折したので全部は書いてない。
#!/usr/bin/ruby -Ks module Veggies def to_s end end class Garlic include Veggies def to_s "Garlic" end end module Dough def to_s end end class ThinCrustDough include Dough def to_s "ThinCrustDough" end end class ThickCrustDough include Dough def to_s "ThickCrustDough" end end module PizzaIngredientFactory def createDough end def createSauce end def createCheese end def createVeggies end def createPapperoni end def createClam end end class NYPizzaIngredientFactory include PizzaIngredientFactory def createDough ThinCrustDough.new end def createSauce # MarinaraSauce.new end def createCheese # ReggianoCheese.new end def createVeggies # veggies = [ Garlic.new, Onion.new, Mushroom.new, RedPepper.new ] end def createPapperoni # SlicedPepperoni.new end def createClam # FreshClams.new end end class ChicagoPizzaIngredientFactory include PizzaIngredientFactory def createDough ThickCrustDough.new end def createSauce # PlumTomatoSauce.new end def createCheese # MozzarellaCheese.new end def createVeggies # veggies = [ BlackOlives.new, Spinach.new, Eggplant.new ] end def createPapperoni # SlicedPepperoni.new end def createClam # FrozenClams.new end end class PizzaStore def orderPizza( type ) @pizza = createPizza( type ) @pizza.prepare @pizza.bake @pizza.cut @pizza.box @pizza end def createPizza( type ) end end class NYPizzaStore < PizzaStore def createPizza( item ) pizza = nil ingredientFactory = NYPizzaIngredientFactory.new case item when "チーズ" pizza = CheesePizza.new( ingredientFactory ) pizza.setName( "ニューヨークスタイルチーズピザ" ) ## when "野菜" ## pizza = VeggiePizza( ingredientFactory ) ## pizza.setName( "ニューヨークスタイル野菜ピザ" ## when "クラム" ## pizza = ClamPizza( ingredientFactory ) ## pizza.setName( "ニューヨークスタイルクラムピザ" ## when "ペパロニ" ## pizza = PepperoniePizza( ingredientFactory ) ## pizza.setName( "ニューヨークスタイルペパロニピザ" else pizza = nil end pizza end end class ChicagoPizzaStore < PizzaStore def createPizza( item ) pizza = nil ingredientFactory = ChicagoPizzaIngredientFactory.new case item when "チーズ" pizza = CheesePizza.new( ingredientFactory ) pizza.setName( "ニューヨークスタイルチーズピザ" ) ## when "野菜" ## pizza = VeggiePizza( ingredientFactory ) ## pizza.setName( "ニューヨークスタイル野菜ピザ" ## when "クラム" ## pizza = ClamPizza( ingredientFactory ) ## pizza.setName( "ニューヨークスタイルクラムピザ" ## when "ペパロニ" ## pizza = PepperoniePizza( ingredientFactory ) ## pizza.setName( "ニューヨークスタイルペパロニピザ" else pizza = nil end pizza end end class Pizza @name @dough @sauce @toppings = [] @veggies = [] @cheese @pepperoni @clam def prepare end def bake puts "350度で25分間焼く" end def cut puts "ピザを扇形に切り分ける" end def box puts "PizzaStore の正式な箱にピザを入れる" end def setName( name ) @name = name end def getName @name end end class CheesePizza < Pizza @ingredientFactory def initialize( ingredientFactory ) @ingredientFactory = ingredientFactory end def prepare puts "#{@name}を下処理" @dough = @ingredientFactory.createDough @sauce = @ingredientFactory.createSauce @cheese = @ingredientFactory.createCheese end end class ClamPizza < Pizza @ingredientFactory def initialize( ingredientFactory ) @ingredientFactory = ingredientFactory end def prepare puts "#{@name}を下処理" @dough = @ingredientFactory.createDough @sauce = @ingredientFactory.createSauce @cheese = @ingredientFactory.createCheese @clam = @ingredientFactory.createClam end end def main nyStore = NYPizzaStore.new chicagoStore = ChicagoPizzaStore.new pizza = nyStore.orderPizza( "チーズ" ) puts "イーサンの注文は#{pizza.getName}" pizza = chicagoStore.orderPizza( "チーズ" ) puts "ジョエルの注文は#{pizza.getName}" end main
% ./abstractfactory.rb ニューヨークスタイルチーズピザを下処理 350度で25分間焼く ピザを扇形に切り分ける PizzaStore の正式な箱にピザを入れる イーサンの注文はニューヨークスタイルチーズピザ ニューヨークスタイルチーズピザを下処理 350度で25分間焼く ピザを扇形に切り分ける PizzaStore の正式な箱にピザを入れる ジョエルの注文はニューヨークスタイルチーズピザ
2009-05-07 :-)
_ 朝ッ
0800 起床
_ 仕事
休み
_ [俺の妹がこんなに可愛いわけがない]俺の妹がこんなに可愛いわけがない(3)
彼氏?
あたり前にいる
てか
いないわけないじゃん
みたいな
ガッシボッカ
アタシは死んだ
スイーツ(笑)
という話。
電撃文庫が電撃文庫をネタにする、というところは注目できる( 週刊少年ジャンプをネタにしている「バクマン。」と同じようなもん )。相変わらず Pixiv や Twitter や Skype といったキーワードが出てきて最近の中学生は発達していますね。あと沙織を follow したいんですが。
次が最終巻か?
4048677586
_ [デザインパターン][Singleton]Head First デザインパターンを写経する - 5章 Singleton パターン
むしろ lib/ruby/1.8/singleton.rb といったものが用意されてるので素直に require 'singleton' して使ったほうがいい。singleton.rb なら同期にも対応している。
#!/usr/bin/ruby -Ks class Singleton @@singleton = nil private_class_method :new def Singleton.getInstance @@singleton = new if @@singleton == nil return @@singleton end end def main obj1 = Singleton.getInstance obj2 = Singleton.getInstance puts "同じ" if obj1 == obj2 end main
% ./singleton1.rb 同じ
_ [デザインパターン][Command]Head First デザインパターンを写経する - 6章 Command パターン
#!/usr/bin/ruby -Ks class Light def on puts "親方さま!照明を点灯させます!" end def off puts "親方さま!照明を消灯させます!アッー" end end module Command def execute end end class LightOnCommand include Command def initialize( light ) @light = light end def execute @light.on end end class SimpleRemoteControl def initialize end def setCommand( command ) @slot = command end def buttonWasPressed @slot.execute end end def main remote = SimpleRemoteControl.new light = Light.new lightOn = LightOnCommand.new( light ) remote.setCommand( lightOn ) remote.buttonWasPressed end main
% ./command1.rb 親方さま!照明を点灯させます!
安直に実装してこんな感じにもなる
#!/usr/bin/ruby -Ks module Command def execute end end class Command1 include Command def execute puts "ねんがんの アイスソードをてにいれたぞ!" end end class Command2 include Command def execute puts "殺してでも うばいとる" end end class Command3 include Command def execute puts "な なにをする きさまらー!" end end class IceSword def initialize @slot = [] end def add( command ) @slot << command end def run @slot.each { |cmd| cmd.execute } end end def main ice = IceSword.new cmd1 = Command1.new cmd2 = Command2.new cmd3 = Command3.new ice.add( cmd1 ) ice.add( cmd2 ) ice.add( cmd3 ) ice.run end main
% ./command2.rb ねんがんの アイスソードをてにいれたぞ! 殺してでも うばいとる な なにをする きさまらー!
_ [リッジレーサー7]リッジレーサー7
JUJAK 練習。JUJAK に ROLLING THUNDER+3 を履かせてみたんだがさっぱり操作できん。こんなのよく操作できるなあ。BOSCONIAN+3 ならだいぶマシになるんだが。
- 走行距離 18658.962 km
- RSGP 進行度 100.0 %
- 名声 18443 FP
_ PlayStation@Network からサインアウトされることが頻発する
ううむ。
2009-05-08 :-)
_ 仕事
休み
_ ちょっと休憩
レアチーズケーキ
_ [デザインパターン][Adapter]Head First デザインパターンを写経する - 7章 Adapter パターン
#!/usr/bin/ruby -Ks module Duck def quack end def fly end end class MallardDuck include Duck def quack puts "ガーガー" end def fly puts "飛んでいます" end end module Turkey def gobble end def fly end end class WildTurkey include Turkey def gobble puts "ゴロゴロ" end def fly puts "短い距離を飛んでいます" end end class TurkeyAdapter include Duck def initialize( turkey ) @turkey = turkey end def quack @turkey.gobble end def fly 5.times do @turkey.fly end end end def main duck = MallardDuck.new turkey = WildTurkey.new turkeyAdapter = TurkeyAdapter.new( turkey ) puts "Turky の出力..." turkey.gobble turkey.fly puts "\nDuck の出力..." testDuck( duck ) puts "\nTurkeyAdapter の出力..." testDuck( turkeyAdapter ) end def testDuck( duck ) duck.quack duck.fly end main
% ./duck.rb Turky の出力... ゴロゴロ 短い距離を飛んでいます Duck の出力... ガーガー 飛んでいます TurkeyAdapter の出力... ゴロゴロ 短い距離を飛んでいます 短い距離を飛んでいます 短い距離を飛んでいます 短い距離を飛んでいます 短い距離を飛んでいます
_ [デザインパターン][Template Method]Head First デザインパターンを写経する - 8章 Template Method パターン
#!/usr/bin/ruby -Ks class CaffeineBeverage def prepareRecipe boilWater brew pourInCup addCondiments end def brew end def addCondiments end def boilWater puts "お湯を沸かします" end def pourInCup puts "カップに注ぎます" end end class Tea < CaffeineBeverage def brew puts "紅茶を浸します" end def addCondiments puts "レモンを追加します" end end class Coffee < CaffeineBeverage def brew puts "フィルタでコーヒーをドリップします" end def addCondiments puts "砂糖とミルクを追加します" end end def main tea = Tea.new coffee = Coffee.new puts "\n紅茶を作っています..." tea.prepareRecipe puts "\nコーヒーを作っています..." coffee.prepareRecipe end main
% ./beverage.rb 紅茶を作っています... お湯を沸かします 紅茶を浸します カップに注ぎます レモンを追加します コーヒーを作っています... お湯を沸かします フィルタでコーヒーをドリップします カップに注ぎます 砂糖とミルクを追加します
2009-05-09 :-)
_ 朝ッ
0500 起床
_ [富士山][芝桜]富士山の近くで芝桜を撮影するなどした
あーん。富士山の雪の白さと周囲の景色の関係がうまくできなくて残念な画像になった。
2009-05-10 :-)
_ 朝ッ
0930 起床
_ おひる
そうめん
_ DreamCastTV Festival2
@渋谷GUILTY
@bliss_of_life を眺めるために行こうとしたんだがなんだかんだで最初から入った。再入場可能というのがありがたい。途中で休憩できる。正面衝突も見ようとしたんだけど時間が良い感じに遅くなってしまったので Lucy! を見て帰った。
_ 飯
塩鮭のカマ
_ おやつ
黒糖薄皮饅頭
2009-05-11 :-)
2009-05-12 :-)
_ 朝ッ
0500 起床
_ 仕事
0830 出勤。
_ [Twitter]Going My Way: 自分がいつ Twitter を始めたかがわかる、When Did You Join Twitter?
やってみた。
8 April 2007
おや
kengo さんと同じだった
_ 飯
鮭とイクラの親子丼
_ おやつ
箱根献上
_ [Iterator][デザインパターン]Head First デザインパターンを写経する - 9章 Iterator パターン
面倒なので Enumerable を使う。手抜き
#!/usr/bin/ruby -Ks class Menu include Enumerable def initialize( item ) @item = item end def each @item.each do |menu| yield menu end end end def main menuItems = [ "K&Bのパンケーキ朝食", "通常のパンケーキ朝食", "ワッフル"] menu = Menu.new( menuItems ) menu.each {|n| puts n } end main
% ./menu.rb K&Bのパンケーキ朝食 通常のパンケーキ朝食 ワッフル
_ [mixi][Plagger][tdiary]日記と mixi日記を同期させる
takumi がやってたので( tdiaryとmixiの日記を同期させる )真似してみた。
Pla
PlaggerでBlogとmixi日記を同期させた(完全版) - 偏読日記@はてな
ここのそのまま
以下を貰っておく。
% cd ~/plagger/plugins % wget http://coderepos.org/share/export/33260/lang/perl/plagger/lib/Plagger/Plugin/Filter/Reverse.pm % wget http://coderepos.org/share/export/33260/lang/perl/plagger/lib/Plagger/Plugin/Publish/MixiDiary.pm
あとこれも
cpan> install Atompub::Client
yaml はそのままコピペ
global: assets_path: /home/rin/plagger/assets timezone: Asia/Tokyo plugin_path: - /home/rin/plagger/plugins log: level: debug encoding: euc-jp cache: base: /home/rin/plagger plugins: - module: Subscription::Config config: feed: - url: http://www.area51.gr.jp/~rin/diary/no_comments.rdf ←コメント無しフィード - module: Filter::Reverse - module: Filter::Rule rule: module: Deduped #エントリ内の画像を取得して最初の3枚を投稿 - module: Filter::FindEnclosures - module: Filter::FetchEnclosure config: dir: /home/rin/plagger #エントリ内の<a> <img>を変換 - module: Filter::Regexp config: regexp: s/<img.*?src=[\'\"](.*?)[\'\"].*?>/([m:133]$1)/g - module: Filter::Regexp config: regexp: s/<a.*?href=[\'\"](.*?)[\'\"].*?>(.*?)<\/a>/$2:($1)/g - module: Publish::MixiDiary config: username: USERNAME password: PASSWORD
実行
連続アクセスしたので制限された。
Plagger::Plugin::Publish::MixiDiary [info] updating mixi diary Plagger::Plugin::Publish::MixiDiary [info] sleep 3. Plagger::Plugin::Publish::MixiDiary [info] updating mixi diary Plagger::Plugin::Publish::MixiDiary [info] sleep 3. Plagger::Plugin::Publish::MixiDiary [info] updating mixi diary Plagger::Plugin::Publish::MixiDiary [info] sleep 3. Plagger::Plugin::Publish::MixiDiary [info] updating mixi diary Plagger::Plugin::Publish::MixiDiary [info] sleep 3. Plagger::Plugin::Publish::MixiDiary [info] updating mixi diary Plagger::Plugin::Publish::MixiDiary [info] sleep 3. Plagger::Plugin::Publish::MixiDiary [info] updating mixi diary Plagger::Plugin::Publish::MixiDiary [info] sleep 3. Plagger::Plugin::Publish::MixiDiary [info] updating mixi diary Plagger::Plugin::Publish::MixiDiary [info] sleep 3. Plagger::Plugin::Publish::MixiDiary [info] updating mixi diary Plagger::Plugin::Publish::MixiDiary [info] can't submit: 503 Service Temporarily Unavailable Limit of post count Plagger::Plugin::Publish::MixiDiary [info] sleep 3. Plagger::Plugin::Publish::MixiDiary [info] updating mixi diary Plagger::Plugin::Publish::MixiDiary [info] can't submit: 503 Service Temporarily Unavailable Limit of post count Plagger::Plugin::Publish::MixiDiary [info] sleep 3. Plagger::Plugin::Publish::MixiDiary [info] updating mixi diary Plagger::Plugin::Publish::MixiDiary [info] can't submit: 503 Service Temporarily Unavailable Limit of post count Plagger::Plugin::Publish::MixiDiary [info] sleep 3. Plagger::Plugin::Publish::MixiDiary [info] updating mixi diary Plagger::Plugin::Publish::MixiDiary [info] can't submit: 503 Service Temporarily Unavailable Limit of post count Plagger::Plugin::Publish::MixiDiary [info] sleep 3. Plagger::Plugin::Publish::MixiDiary [info] updating mixi diary Plagger::Plugin::Publish::MixiDiary [info] can't submit: 503 Service Temporarily Unavailable Limit of post count Plagger::Plugin::Publish::MixiDiary [info] sleep 3. Plagger::Plugin::Publish::MixiDiary [info] updating mixi diary Plagger::Plugin::Publish::MixiDiary [info] can't submit: 503 Service Temporarily Unavailable Limit of post count Plagger::Plugin::Publish::MixiDiary [info] sleep 3. Plagger::Plugin::Publish::MixiDiary [info] updating mixi diary Plagger::Plugin::Publish::MixiDiary [info] can't submit: 503 Service Temporarily Unavailable Limit of post count Plagger::Plugin::Publish::MixiDiary [info] sleep 3. Plagger::Plugin::Publish::MixiDiary [info] updating mixi diary Plagger::Plugin::Publish::MixiDiary [info] can't submit: 503 Service Temporarily Unavailable Limit of post count Plagger::Plugin::Publish::MixiDiary [info] sleep 3.
こんな感じ。画像は投稿できんか。
2009-05-13 :-)
_ 朝ッ
0500 起床
_ 仕事
0830 出勤。
_ Flickr でカメラ機種別の画像を見れるようになった
( via @sekiyuji )
こちら
キヤノンやニコンなどメーカーごと、機種ごとに見れるようになってる。
上位機種を見るとプロの犯行としか思えない。
- Flickr: Camera Finder: Canon: EOS 5D Mark II
- Flickr: Camera Finder: Canon: EOS 1Ds Mark III
- Flickr: Camera Finder: Nikon: D3
- Flickr: Camera Finder: Nikon: D300
私が持ってるのと同じ機種 30D の画像を見て自分のスキルの低さに絶望した。
さらに night や landscape など場面ごと?に分類した写真も見れる。まるでファイナルファンタジーとかドラゴンクエストの世界のような写真がたくさんある。わお
_ 買い物
amazon
週刊少年ジャンプで西尾維新原作の新連載が始まったが西尾維新をさっぱり知らない、とつぶやいたら まずは戯言シリーズから始めなされ と助言を貰ったのでひとまず読んでみる。
4094510869
4062754304
4894714353
2009-05-14 :-)
_ 朝ッ
0500 起床
_ [yak shaving][ヤクの毛を刈る]C++ のコードを C へ書き換えるだけの簡単なお仕事です
事前に「template 使いまくってるっすよ」と聞いていたので予習のために Modern C++ Design を買ったんだが話を聞いてみたらそうでもなかった。ゴブリンを討伐するためにアルテマの本( レベル2 )を入手してしまったような感じだ。ウヴォアー。むしろこの辺りのほうが重要 → C 言語によるオブジェクト記述法 COOL
4894714353
_ 飯
鶏の唐揚げ
_ おやつ
紀の国屋の最中
2009-05-15 :-)
_ 朝ッ
0500 起床
2009-05-16 :-)
_ 朝ッ
1200 起床
_ おひる
きのこのバターしょうゆスパゲティ
_ おやつ
わらび餅
_ おやつ
味一番のチョコレート
_ 飯
カツオの漬け丼
_ [リッジレーサー7]リッジレーサー7
オンラインバトル。WILD GANG チームが居た。「ぷりりん」などどうも勝てないと思ったらオンラインバトルでチーム交流戦してるひとだった → 第4回リッジレーサーグランプリ。歯が立たないわけだ
- 走行距離 19316.748 km
- RSGP 進行度 100.0 %
- 名声 18476 FP
2009-05-17 :-)
_ 朝ッ
1000 起床
_ おひる
ジェノヴェーゼぽいもの
_ おやつ
コーヒーなど
_ 仕事場の動画なひとたちとの会話についていけない
「オレにも @beakmark ほどのスキルがあれば...! 」と歯がゆい思いをしている。くそ
_ [cron][crontab]Plagger -> mixi -> feed の周期を毎時に変更した
man 5 crontab したら @hourly というのがあった
Instead of the first five fields, one of eight special strings may appear: string meaning ------ ------- @reboot Run once, at startup. @yearly Run once a year, "0 0 1 1 *". @annually (same as @yearly) @monthly Run once a month, "0 0 1 * *". @weekly Run once a week, "0 0 * * 0". @daily Run once a day, "0 0 * * *". @midnight (same as @daily) @hourly Run once an hour, "0 * * * *".
こんな crontab 。PATH は要らないんじゃないか
MAILTO="" SHELL=/bin/sh PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/pkg/bin @daily /home/rin/usr/local/bin/crondaily @hourly /home/rin/usr/local/bin/cronhourly
cronhourly を実行する。samidare はもはや使ってない
#!/bin/sh PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/pkg/bin:/usr/pkg/lib/perl5/site_perl/bin ## cd /home/rin/usr/local/bin; ./samidare cd /home/rin/plagger; plagger -c config.mixi.yaml 2>&1 /dev/null /home/rin/usr/local/bin/checkmadoka
_ 飯
きのこご飯
_ おやつ
イチゴのショートケーキ
2009-05-18 :-)
_ 朝ッ
0500 起床
_ 仕事
0830 出勤。
_ [Composite][デザインパターン]Head First デザインパターンを写経する - 9章 Composite パターン
疲れた。
#!/usr/bin/ruby -Ks class MenuComponent def add( menuComponent ) raise "unsupported operation" end def remove( menuComponent ) raise "unsupported operation" end def getChild( i ) raise "unsupported operation" end def getName raise "unsupported operation" end def getDescription raise "unsupported operation" end def getPrice raise "unsupported operation" end def isVegetarian raise "unsupported operation" end def Print raise "unsupported operation" end end class Menu < MenuComponent def initialize( name, description ) @name = name @description = description @menuComponents = [] end def add( menuComponent ) @menuComponents << menuComponent end def remove( menuComponent ) @menuComponents.delete( menuComponent ) end def getChild( i ) @menuComponents[ i ] end def getName @name end def getDescription @description end def Print puts "\n#{getName}" puts " #{@getDescription}" puts "---------------------" @menuComponents.each{ |menuComponent| menuComponent.Print } end end class MenuItem < MenuComponent def initialize( name, description, vegetarian, price ) @name = name @description = description @vegetarian = vegetarian @price = price end def getName @name end def getDescription @description end def getPrice @price end def isVegetarian @vegetarian end def Print print " ", getName if isVegetarian print "(v)" end puts ", #{getPrice}" puts " -- #{getDescription}" end end class Waitress def initialize( allMenus ) @allMenus = allMenus end def printMenu @allMenus.Print end end def main pancakeHouseMenu = Menu.new( "PANCAKE HOUSE MENU", "Breakfast" ) dinerMenu = Menu.new("DINER MENU", "Lunch") cafeMenu = Menu.new("CAFE MENU", "Dinner") dessertMenu = Menu.new("DESSERT MENU", "Dessert of course!") coffeeMenu = Menu.new("COFFEE MENU", "Stuff to go with your afternoon coffee") allMenus = Menu.new("ALL MENUS", "All menus combined") allMenus.add( pancakeHouseMenu ) allMenus.add( dinerMenu ) allMenus.add( cafeMenu ) pancakeHouseMenu.add(MenuItem.new( "K&B's Pancake Breakfast", "Pancakes with scrambled eggs, and toast", true, 2.99)) pancakeHouseMenu.add(MenuItem.new( "Regular Pancake Breakfast", "Pancakes with fried eggs, sausage", false, 2.99)) pancakeHouseMenu.add(MenuItem.new( "Blueberry Pancakes", "Pancakes made with fresh blueberries, and blueberry syrup", true, 3.49)) pancakeHouseMenu.add(MenuItem.new( "Waffles", "Waffles, with your choice of blueberries or strawberries", true, 3.59)) dinerMenu.add(MenuItem.new( "Vegetarian BLT", "(Fakin') Bacon with lettuce & tomato on whole wheat", true, 2.99)) dinerMenu.add(MenuItem.new( "BLT", "Bacon with lettuce & tomato on whole wheat", false, 2.99)) dinerMenu.add(MenuItem.new( "Soup of the day", "A bowl of the soup of the day, with a side of potato salad", false, 3.29)) dinerMenu.add(MenuItem.new( "Hotdog", "A hot dog, with saurkraut, relish, onions, topped with cheese", false, 3.05)) dinerMenu.add(MenuItem.new( "Steamed Veggies and Brown Rice", "Steamed vegetables over brown rice", true, 3.99)) dinerMenu.add(MenuItem.new( "Pasta", "Spaghetti with Marinara Sauce, and a slice of sourdough bread", true, 3.89)) dinerMenu.add(dessertMenu) dessertMenu.add(MenuItem.new( "Apple Pie", "Apple pie with a flakey crust, topped with vanilla icecream", true, 1.59)) dessertMenu.add(MenuItem.new( "Cheesecake", "Creamy New York cheesecake, with a chocolate graham crust", true, 1.99)) dessertMenu.add(MenuItem.new( "Sorbet", "A scoop of raspberry and a scoop of lime", true, 1.89)) cafeMenu.add(MenuItem.new( "Veggie Burger and Air Fries", "Veggie burger on a whole wheat bun, lettuce, tomato, and fries", true, 3.99)) cafeMenu.add(MenuItem.new( "Soup of the day", "A cup of the soup of the day, with a side salad", false, 3.69)) cafeMenu.add(MenuItem.new( "Burrito", "A large burrito, with whole pinto beans, salsa, guacamole", true, 4.29)) cafeMenu.add(coffeeMenu) coffeeMenu.add(MenuItem.new( "Coffee Cake", "Crumbly cake topped with cinnamon and walnuts", true, 1.59)) coffeeMenu.add(MenuItem.new( "Bagel", "Flavors include sesame, poppyseed, cinnamon raisin, pumpkin", false, 0.69)) coffeeMenu.add(MenuItem.new( "Biscotti", "Three almond or hazelnut biscotti cookies", true, 0.89)) waitress = Waitress.new(allMenus) waitress.printMenu() end main
% ./menu.rb ALL MENUS --------------------- PANCAKE HOUSE MENU --------------------- K&B's Pancake Breakfast(v), 2.99 -- Pancakes with scrambled eggs, and toast Regular Pancake Breakfast, 2.99 -- Pancakes with fried eggs, sausage Blueberry Pancakes(v), 3.49 -- Pancakes made with fresh blueberries, and blueberry syrup Waffles(v), 3.59 -- Waffles, with your choice of blueberries or strawberries DINER MENU --------------------- Vegetarian BLT(v), 2.99 -- (Fakin') Bacon with lettuce & tomato on whole wheat BLT, 2.99 -- Bacon with lettuce & tomato on whole wheat Soup of the day, 3.29 -- A bowl of the soup of the day, with a side of potato salad Hotdog, 3.05 -- A hot dog, with saurkraut, relish, onions, topped with cheese Steamed Veggies and Brown Rice(v), 3.99 -- Steamed vegetables over brown rice Pasta(v), 3.89 -- Spaghetti with Marinara Sauce, and a slice of sourdough bread DESSERT MENU --------------------- Apple Pie(v), 1.59 -- Apple pie with a flakey crust, topped with vanilla icecream Cheesecake(v), 1.99 -- Creamy New York cheesecake, with a chocolate graham crust Sorbet(v), 1.89 -- A scoop of raspberry and a scoop of lime CAFE MENU --------------------- Veggie Burger and Air Fries(v), 3.99 -- Veggie burger on a whole wheat bun, lettuce, tomato, and fries Soup of the day, 3.69 -- A cup of the soup of the day, with a side salad Burrito(v), 4.29 -- A large burrito, with whole pinto beans, salsa, guacamole COFFEE MENU --------------------- Coffee Cake(v), 1.59 -- Crumbly cake topped with cinnamon and walnuts Bagel, 0.69 -- Flavors include sesame, poppyseed, cinnamon raisin, pumpkin Biscotti(v), 0.89 -- Three almond or hazelnut biscotti cookies
_ 飯
ほうとう
_ おやつ
イチゴのショートケーキ。昨日の残り。乾いておる
2009-05-19 :-)
_ 朝ッ
0500 起床
_ おやつ
まんじゅうなど
_ [題名のない音楽会]題名のない音楽会公開収録
@昭和女子大学 人見記念講堂
当選したので行ってきた。女子大学なんて初めて入ったよ。女子ばかりですね。
題名のない音楽会 45 周年( 8/2 放送予定 )とハイドン没後 200 年記念( 9/20 放送予定 )のコンサートだった。また佐渡裕 48 歳の誕生日祝いの歌をうたい、祝うなどした。
昭和女子大学から三軒茶屋まで道が細いのでかなり混雑する。
_ [リッジレーサー7]リッジレーサー7
JUJAK 練習。ダイナミック難しいっすとつぶやいたら 滑るのと反対にハンドル切ればいいじゃないですか と助言を貰った。イイネ。Old Central では BISONTE と同じ程度にはチャージできるようになった。
- 走行距離 19645.569 km
- RSGP 進行度 100.0 %
- 名声 18500 FP
2009-05-21 :-)
_ 朝ッ
0500 起床
_ 仕事
0830 出勤。
_ [英会話][イーオン]英会話レッスン VOYAGE 1A 13
「俺、この戦いが終わったら車でドリフトしまくるんだ...」
「ドリフトするなら群馬県の榛名山がいいよ」
「あは?」
「イニシャルDという作品があってね以下略」
といったことを話すなどした。
_ 飯
牛丼
2009-05-22 :-)
2009-05-23 :-)
_ 朝ッ
1030 起床
_ おひる
うどん
_ たまに本を読んでる途中に妄想していまい読書が止まる
ちなみに(因みに)いま(今)はどどんぱち(怒首領蜂)のサントラ(オリジナルサウンドトラック)を聴いてるんだがそこで画面を埋め尽くす弾幕(薄いよ!なにやってんの!)を想像しつつ鵜沼さん(D)から怒首領蜂(縦スクロール型シューティングゲーム)を借りたままだったことを思い出した。イケネ(いけね)
_ おやつ
ロールケーキ
_ [戯言][クビキリサイクル]クビキリサイクル - 青色サヴァンと戯言遣い
話の大筋は良いのだけど、登場人物全員が自分語りしていて説明的な会話ばかりであり読むのに疲れた。簡単にいうと面倒くさい。「もっと平易な文章にしてくれ」「ドカ バキ ヴバババババババ どっこーん という簡単な展開にしてくれ」と言ってるのではなくて、物事ひとつひとつをいちいち登場人物が説明するので鬱陶しい。いや面白いんだけどね。
4061822330
_ 非コミュ指数テスト
判定結果
非コミュ指数: 51(レベル2/中度非コミュ/オタク型)
【タイプ説明】
1)不器用型
空気が読めなかったり社会的適応能力が低いタイプ。いわゆる本来の「非コミュ」。アスペルガー症候群の可能性もある。
2)無関心型
遁世的で、他人とのコミュニケーションに余り価値を見出せないタイプ。「孤独力」が高く、ひとりでも全く気にならない。
3)人間不信型
家族以外の原初的な他者承認(当サイトでは「基本的承認感」と呼んでいる)が十分でないため、他人を信頼し、深い関係を結ぶことが難しいタイプ。
4)オタク型
興味が偏っていたり、一般的ではないために、他人と共通の話題を見出しにくいタイプ。
2009-05-24 :-)
_ 朝ッ
0600 起床
_ チャリった
少し雨ってきた
_ [2ch][リッジレーサー7]track feed を眺めていたら ime.nu からのアクセスがあったでござる
http://ime.nu/www.area51.gr.jp/~rin/diary/?date=20090516
site:2ch.net area51.gr.jp
とグーグル検索したら以下がヒットした
【RIDGERACER 7】リッジレーサー7 ONLINE BATTLE 13
どもども。
なお三輪は JUJAK も WILD GANG も乗りこなせないくらいのスキルなので ちゃU などのひとたちに挑むなんてことはしないくらいのヘタレであるよ。
_ [オクトーバーフェスト]オクトーバーフェスト2009日比谷
@日比谷公園
@miwarin、@yo_1、@daresore、@studio5
行ってきた。日比谷公園なんて遠い昔に國府田マリ子コンサート[ 20030906#p03 ]で来たきりだ。懐かしい
@daresore のシフォンケーキ( ふわふわ。ちょーうまい )をつまみにしつつビールを飲んだくれた。ライブで叫んだり写真を撮ったり人間列車に巻き込まれるなどした。うい
2009-05-26 :-)
_ 朝ッ
0500 起床
_ 仕事
0830 出勤。
_ CJK とは
チャイニーズ女子高生のこと
_ [リッジレーサー7]リッジレーサー7
JUJAK 練習。ROLLING THUNDER+2 を履かせてみた。これくらいならなんとか操作できる。
- 走行距離 20218.388 km
- RSGP 進行度 100.0 %
- 名声 18539 FP
_ 飯
バケット
_ おやつ
信玄餅
2009-05-27 :-)
2009-05-28 :-)
_ 朝ッ
0500 起床
_ Google Chrome を起動しようとしたら 0xC0000005 のエラーが起きる
Symantec Endpoint Protection を使ってると発生するらしい。回避策 → Google開発の新しいブラウザGoogle Chrome、β版公開
"C:\Documents and Settings\miwa\Local Settings\Application Data\Google\Chrome\Application\chrome.exe" --no-sandbox
これで OK
_ 飯
生姜焼き
2009-05-29 :-)
_ 朝ッ
0500 起床
_ つうきん!
南武線車内で takumi に遭遇した。
_ 仕事
0830 出勤。
_ [シエナ・ウインド・オーケストラ]シエナ・ウインド・オーケストラ 第29回定期演奏会
@ミューザ川崎
仕事場から近いので楽ちん。
入場前に ohguchi と合流して物を渡したあとに別れたんだがじつはすぐ後ろの座席だった。
指揮:金聖響、ゲスト:伊東たけし( T-SQUARE のひと )。ビッグバンドと云うのかね。伊東たけしによる「ウインドシンセサイザーはブレスセンサーの感度を上げるために血圧計( だっけ? )をヒントにしたのだよ」といった解説を交えつつの演奏が新鮮だった。すげえ
_ [コンガボーイがやってきた][植松伸夫]コンガボーイがやってきた・ウエマツノビヨと犬耳家の一族
先日の犬耳家親族会議[ 20090426#p04 ]のときに植松さんが「新曲作ってるんだよ」と紹介していたアレ。
脊髄反射で購入した。
_ この投稿は不適切な表現を用いていたため削除されました
-
_ ついカッとなってamebloに登録した
miwarinのブログ http://ameblo.jp/m-i-w-a-r-i-n/
miwarin という ID はすでに使われており( でも退会済みらしい )取得できなかったために妙な URI になっている。
2009-05-30 :-)
_ おひる
ナポリタン
_ [かんざきひろ][LINEAR]LINEAR vol.32
@Heavysick ZERO
行ってきた。会場で上司に遭遇した。
今回はなんといっても 鼻そうめんP こと かんざきひろさん による DJ が楽しみであった。初音ミクの曲はひととおりプレイしてくれたもよう。最前列でひたすら叫びつつ跳んできた。疲れた。1 週間ぶんくらい運動した。
DJ が初めてとは思えない。
プラグアウトは PV 使ってた。VJ のひとぐっじょぶ!
YOUTHFUL_DAYS'_GRAFFITI は Atsushi Ohara さんがプレイしてた。
2009-05-31 :-)
_ おひる
カルボラーナぽいもの
_ Seirios01
上司から Rita の名前を聞いたので少し前から Rita のブログをウォッチしてるんだがその Rita が SHAFT という団体と一緒に Seirios01 という何かをおこなうらしい。
ふうん?
とりあえず history を眺めてみたら公演のいくつか見たことがあるじゃないか。
- 仙神奇祭 -オワタリ祭異聞-[ 20040718#p03 ]
- 白南風の空 夢の伽詞[ 20070615#p04 ][ 20070616#p02 ][ 20070617#p05 ]
最初に戻って
CAST
梶田 夕貴
川瀬 ゆう子
高下 三佳 (ケンユウオフィス)
土方 健太郎 (宴劇団ホームカミング)
山﨑 雅也 (ぷろだくしょんバオバブ)
ああ。
_ コーヒーを飲むなど
また最初のお湯を捨て忘れた
_ コーヒー薄い
薄いぜー 超薄いぜー
_ [デザインパターン][State]Head First デザインパターンを写経する - 10章 State パターン
だいぶ間があいた。
#!/usr/bin/ruby -Ks module State def insertQuarter end def ejectQuarter end def turnCrank end def dispense end def to_s end end class HasQuarterState include State def initialize( gumballMachine ) @gumballMachine = gumballMachine end def insertQuarter puts "もう一度25セントを投入することはできません" end def ejectQuarter puts "25セントを返却します" @gumballMachine.setState( @gumballMachine.getNoQuarterState ) end def turnCrank puts "クランクを回しました..." @gumballMachine.setState( @gumballMachine.getSoldState ) end def dispense puts "販売するガムボールはありません" end def to_s "waiting for turn of crank" end end class NoQuarterState include State def initialize( gumballMachine ) @gumballMachine = gumballMachine end def insertQuarter puts "25セントを投入しました" @gumballMachine.setState( @gumballMachine.getHasQuarterState ) end def ejectQuarter puts "25セントを投入していません" end def turnCrank puts "クランクを回しましたが、25セントを投入していません" end def dispense puts "まず支払いをする必要があります" end def to_s "25セントが投入されるのを待っています" end end class SoldOutState include State def initialize( gumballMachine ) @gumballMachine = gumballMachine end def insertQuarter puts "25セントを投入することはできません。このマシンは売り切れです" end def ejectQuarter puts "返金できません。まだ25セントを投入していません" end def turnCrank puts "クランクを回しましたが、ガムボールがありません" end def dispense puts "販売するガムボールはありません" end def to_s "売り切れです" end end class SoldState include State def initialize( gumballMachine ) @gumballMachine = gumballMachine end def insertQuarter puts "お待ちください。すでにガムボールを出しています" end def ejectQuarter puts "申し訳ありません。すでにクランクを回しています" end def turnCrank puts "2回回してもガムボールをもう1つ入手することはできません!" end def dispense @gumballMachine.releaseBall if @gumballMachine.getCount > 0 @gumballMachine.setState( @gumballMachine.getNoQuarterState ) else puts "おっと、ガムボールがなくなりました!" @gumballMachine.setState( @gumballMachine.getSoldOutState ) end end def to_s "dispensing a gumball" end end class GumballMachine def initialize( numberGumballs ) @soldOutState = SoldOutState.new( self ) @noQuarterState = NoQuarterState.new( self ) @hasQuarterState = HasQuarterState.new( self ) @soldState = SoldState.new( self ) @state = @soldOutState @count = numberGumballs if numberGumballs > 0 @state = @noQuarterState end end def insertQuarter @state.insertQuarter end def ejectQuarter @state.ejectQuarter end def turnCrank @state.turnCrank @state.dispense end def setState( state ) @state = state end def releaseBall puts "ガムボールがスロットから転がり出てきます" if @count != 0 @count = @count - 1 end end def getCount @count end def refill( count ) @count = count @state = @noQuarterState end def getState @state end def getSoldOutState @soldOutState end def getNoQuarterState @noQuarterState end def getHasQuarterState @hasQuarterState end def getSoldState @soldState end def to_s result = "" result << "\nMighty Gumball, Inc." result << "\nJava対応据付型ガムボール モデル #2004" result << "\n在庫: #{@count} 個のガムボール" result << "\nマシンは#{@state.to_s}" result end end def main gumballMachine = GumballMachine.new( 5 ) puts gumballMachine gumballMachine.insertQuarter gumballMachine.turnCrank puts gumballMachine gumballMachine.insertQuarter gumballMachine.turnCrank gumballMachine.insertQuarter gumballMachine.turnCrank puts gumballMachine end main
% ./state.rb Mighty Gumball, Inc. Java対応据付型ガムボール モデル #2004 在庫: 5 個のガムボール マシンは25セントが投入されるのを待っています 25セントを投入しました クランクを回しました... ガムボールがスロットから転がり出てきます Mighty Gumball, Inc. Java対応据付型ガムボール モデル #2004 在庫: 4 個のガムボール マシンは25セントが投入されるのを待っています 25セントを投入しました クランクを回しました... ガムボールがスロットから転がり出てきます 25セントを投入しました クランクを回しました... ガムボールがスロットから転がり出てきます Mighty Gumball, Inc. Java対応据付型ガムボール モデル #2004 在庫: 2 個のガムボール マシンは25セントが投入されるのを待っています
_ [おやつ][バニラシフォンケーキ]おやつ
バニラシフォンケーキ(ref. シンプルなお菓子 pp.87-88 )。あと @daresore の sets にある動画 20090504シフォンケーキ - a set on Flickr。メレンゲと卵黄生地を混ぜたときにメレンゲの塊が出来てしまう。メレンゲが硬すぎるか?
_ リッジレーサー7 の装備
ここをまとめただけ → RIDGERACER7
BOSCONIAN+マイルド3 でブレーキドリフトすると曲がりきれない所がいくつかあったりなかったりする。あと ROLLING THUNDER は使わない。使いこなせない (´・ω・`)
マシン | エンジン | ニトロ | プラグイン | タイヤ・サスペンション |
ABEILLE | DRUAGA | ノーマルチャージU | ニトロタンク100 | BOSCONIAN+マイルド3 |
BAYONET | DRUAGA | ノーマルチャージU | ニトロタンク100 | BOSCONIAN+マイルド2 |
BISONTE | DRUAGA | ノーマルチャージU | ニトロタンク100 | ASTAROTH+グリップ3 |
CENTELLE | DRUAGA | ノーマルチャージU | ニトロタンク100 | BOSCONIAN+マイルド3 |
EO | DRUAGA | ノーマルチャージU | ニトロタンク100 | ASTAROTH+グリップ1 |
ESPERANZA | DRUAGA | ノーマルチャージU | ニトロタンク100 | ASTAROTH+グリップ3 |
FATALITA | DRUAGA | ノーマルチャージU | ニトロタンク100 | BOSCONIAN+マイルド2 |
FIERA | DRUAGA | ノーマルチャージU | ニトロタンク100 | ASTAROTH+グリップ3 |
HIJACK | ZOLGEAR | ノーマルチャージU | ニトロタンク100 | ASTAROTH+グリップ3 |
JUJAK | DRUAGA | ノーマルチャージU | ニトロタンク100 | BOSCONIAN+マイルド3 |
MAGNIFICO | DRUAGA | ノーマルチャージU | ニトロタンク100 | ASTAROTH+グリップ3 |
MELTFIRE | DRUAGA | ノーマルチャージU | ニトロタンク100 | BOSCONIAN+マイルド3 |
PROPHETIE | DRUAGA | ノーマルチャージU | ニトロタンク100 | ASTAROTH+グリップ3 |
RAGGIO | DRUAGA | ノーマルチャージU | ニトロタンク100 | BOSCONIAN+マイルド3 |
RC410 | DRUAGA | ノーマルチャージU | ニトロタンク100 | BOSCONIAN+マイルド3 |
STARNOSE | DRUAGA | ノーマルチャージU | ニトロタンク100 | BOSCONIAN+マイルド3 |
WILDGANG | DRUAGA | ノーマルチャージU | ニトロタンク100 | BOSCONIAN+マイルド3 |
_ 堀内 [ご来場どうもですー。 長丁場ありがとうございました。]
_ みわ [お疲れ様でしたん。 客の入り具合がすげーですねい]