bloggalleryaboutcontact

LTで100枚超えのスライドを喋るための役に立たないライフハック

というわけで、OSCで何故かバスケの話をすることになったので枚数勝負に持ち込みました。
資料はこちら。

http://www.slideshare.net/debility/bitshifters

見てもらえばわかるんですが、100枚と言っても100枚分の中身はなかったりします。
箇条書き部分とか、アニメーションを頑張れば1枚で収まりますし。

この方式の利点いくつか。

・文字の多いスライドを分けることで、見る側に与える圧力を減らす
文字いっぱいのスライドは、一気に出してしまうとちょっと疲れてしまうのです(個人的に)。
1行ずつなら比較的流れを追いやすくなります。多分。
今回は既出部分の文字色をグレーにして、より分かりやすくしたつもり。
・なにげに作るのは楽
箇条書きスライドを一枚作って、あとは削ったり色変えたりして量産。
・時間調整がやりやすい
すっとばしてもいいかな、ってところはクリック連打で流したりしてます。
例えば自己紹介の「○○で一度喋りました」なんかはまとめて「いろいろ喋ったよ」とか言いつつどんどん流してます。
・「LTで100枚超えた」とか言うと、皆なんとなくびびる
「何考えてんだこのアホウは。でも気になるからちょっと覗いてやるか。」とか効果があったかどうかは知りません。

これを持ってOSC Fukuoka 2009の勉強会勉強会セッションで喋ってきました。
LTは初めてだったんですが、4分20秒くらいと公言して4分25秒で終わったのでおおよそ狙い通り。
「慣れてるんですねー」とかちらほら言われたのがちょっと面白かったです。
その後大LTのほうにも飛び込みで突撃したのですが、こっちは時間をさらに削った(3分)のと右側下側が写ってなかったので大惨敗でした。
画面端が切れてしまうと、見切れスキー派には辛いです。
でも懇親会で「あーバスケの人!」とか言われたので、それはそれで狙い通り。

ビジネスの場で使う説明資料なんかはいろんな本が出ているのでそっちを参考にしてください。
表とかグラフとかを効果的に使うのがいいらしいです。うわーざっくりすぎる。

えーと、来年はちゃんとオープンソースの話をします。
Comments (0)  Permalink

bitshiftersの会合に行ってきたとかそういう話

要は飲んできたよーって話。
Q. bitshiftersって何? A. 右のバナーをぽちっとな。
Q. 会合って何? A. http://atnd.org/events/1996

会自体のまとめは他の人におまかせる形で。
- soraなりの日々
http://sora2hs.blog70.fc2.com/blog-entry-493.html
- clipdesign
http://blog.clipdesign.jp/2009/11/22/bitshifters/
- 我流天性 – がらくた屋
http://blog.cgfm.jp/garyu/archives/1526

soraの人の行動力には感心しきりです。
夏以降にやたら体動かすようになったのはこの人のおかげですね。
体が凝り固まると頭も凝り固まりがちなので、非常に助かっております。

取り急ぎ来週も練習あるので、興味ある人もあんましない人もぜひご参加ください。
Comments (0)  Permalink

Fukuoka Perl Workshop #14に行ってきた

牧さん(id:lestrrat)ご来福の巻。
http://fukuoka.pm.org/2009/10/fukuoak-perl-workshop-14.html
fukuoka.pmのIRCに垂れ流したやつを取り急ぎ貼っておきますね。

・dragon3: Cacoo-Deployerの話
Cacoo紹介 -> http://cacoo.com/
buildは一発でできるので、複数台サーバへのdeploy作業をツールで -> 自作
要求 -> 1つのサーバにファイル置いたら他のサーバに勝手に展開してサーバ再起動やら何やらやってくれる
ディレクトリ監視 -> Linux::Inotify2 -> inotifyのperlインタフェース
サーバ(Tomcat)操作 -> コマンド投げる
他 -> Moose使ってる
MooseX::ConfigFromfileもいいよ -> 最近SimpleFileばっか使ってる(牧さん)
Cacooもうちょっと: Wordpressのplugin作ってるよ

・s-aska: 使いやすいWebMail
windowsアプリっぽいWebMailほしい -> クロスブラウザ対応死ねる -> ExtJSみつけた
サーバから受け取るデータ -> JS側でJSONなりXMLなりで処理する
ExtJSいいよーいいよー
ExtJSのライセンスってどうなの -> デュアルライセンス -> http://extjs.co.jp/products/license.php


・lestrrat: Fukuoka.pm #14
Moose, Catalyst, DBIx::Classでどうテスト開発してんの的質問が事前にあった
-> ビジネスな話やろう -> endeworksな話するよ
今: 100% Perl案件 (8割は僕ですとの弁)
2008年: Perlコード5万行. Moose, Catalyst, DBIC -> 初めてプロジェクトにMoose採用
EBP2009 -> endeworks best practice 2009
Moose -> 全面的に採用 -> OOPやる以上は使う
使う使わないはほとんど宗教戦争の域 -> pjに合ったツールを使うべき
「最適化は後で」YMMV
Moose本体については長いので次の機会に
[Mooseお作法]
- lazy_build シンプルな値の時以外はdefaultのattribute使わない -> 継承とかするときに困る
 has foo => ( lazy_build => 1, );
- BUILDARGS: around modifyを使う -> 親クラスのBUILDARGSを使ってくれる -> 親クラスのほうが実装がきれい
 BUILDARGSで変なエラー出すと後でわかりにくい
- namespace::clean -> 推奨モジュール
 DSLは「ゴミ」を残す -> use Mooseした時点でhasが使えるようになる -> ちゃんと処理しなきゃ
 -> namespace::clean使うとscope内に閉じてくれる
 -> 裏で関数の出所を調べてくれる
[DBIx::Class]
DBIより重いとか勉強コストかかるとか -> 覚えてしまえば全てオブジェクトで扱えるので便利
-> 特にDBICには拘っていない -> 開発者に対する信頼で使っている -> 今日(11/14)新バージョンでたよ!
注意点: Catalyst等からは直接使わないようにしている -> 「便利なハッシュ」状態 -> 基本的には主キーだけで操作
[Catalyst, API]
APIレベルでの抽象化を守ってる(後述)
-> コメントしっかり書いてから壊してもいいルールですよ
スピード: DBICを使い続けながら一部で高速化したい場合 -> HashRefInflactor
API: Web等、環境から切り離したアプリケーションロジックとして作成する
APIを独立させる -> Modelに対してAPIコールを要求 -> とか
なので: Catalyst::Modelほとんど使ってない -> アクセサとして使ってる
APIの理由 -> あるアクションにはDB挿入以外の操作があるかも(キャッシュを追加削除するかも、とか)
問題点: API単体で動かしたいのに他のリソースへの依存関係があったりするので設定が面倒
[DI]
DI -> 依存関係を外出し
Bread::Boardを使いたかった -> パッチ適用してくれない -> 自分で作った -> Orochi
普通に書くとめんどくさい -> MooseX::Orochi書いた -> http://search.cpan.org/~dmaki/Orochi-0.00005/lib/MooseX/Orochi.pm
Orochi用途: API部分のbootstrap
Catalystとは別のレイヤでオブジェクト生成
# 参考 http://blog.eorzea.asia/2009/10/post_74.html
注意点: 循環依存の解決は実装できない
Constructorの代わりにSetterを使う
[テストの話]
「やっぱ嫌いですね」
自動セットアップ: テストで一番面倒なとこ -> がんばると後が楽 -> Fixtures, Text::mysqld
CPAN形式 -> Makefile.PL書いておけばmake test
MyApp::Text -> 環境の設定とかテスト中によく使うidiomをモジュールにまとめる
Test:: mysqld -> mysqldを起動してくれる -> 普通に使うと.tファイルごとにmysqldが起動してしまう
-> 1回だけ起動するようにした -> 多分後でモジュール化するよ -> Makefile書き変えてる
基本的にAPIをテスト: APIとCatalystを切り離した状態でテスト -> ブラウザを介する必要がなく、機能に集中してテストできる
統合テスト: まだ手作業 -> テンプレート変更とアプリ開発が同時だと難しい -> JSTAPd(JSをPerlからTestする by Yappo)とか使ってみたい
「使えるなら使いたいけどYappoさんだしなー」 -> Yappo: 「ひどいひどい」「すっげーちゃんと仕事で使ってるというのに!」
[git]
git使ってます
svn: 完全に捨てました -> pj大きくなるとレイアウトがひどくなる -> branch管理/mergeが面倒
「10コミットくらいあるとmergeしたくなくなる」
git: branch/mergeがすばらしい -> セットアップ簡単/小さいpjでもOK -> pjが大きいほどgit++
質問:「速いの?」->「すごく速いよ!」
Deplloy: サーバの数が多い -> rpmなど / 少数 -> git cloneが簡単
デプロイ後 -> ついやっちゃうproduction側でのちょっとした変更 -> 開発ブランチと別ブランチを切っておく
-> 万が一pushしてしまわないように
git pull --rebase -> pullと変更がステキにバッティングしない(conflictしない前提なら)
git stash -> 一旦pullしてあとでstash apply -> 他の人のbug fixとかと仲良くできる
git++ -> commitにしろpullにしろコピーしたクローンから簡単に試せる
[ドキュメント]
一番最後にやってます。。。 -> マネジャー向けのドキュメントのほうを優先しちゃいます。。。
コードのドキュメント -> POD -> 納品用にはPod::XhtmlでHTMLに変換したものを出力
[Pixisの話]
「no コピペ主義」
あれもこれも継承 -> i18nもデフォルト装備。継承
ベースアプリ -> git submoduleでアプリのリポジトリ内にlocal clone作成 -> baseの変更に惑わされずにカスタマイズ可能
-> 「このcloneだけの変更」
オレオレware -> CatalystX::AppBuilder, CatalystX::VirtualComponents, Data::Localize, Orochi, ...
Pixisデモ
- rootディレクトリがない
- テンプレも継承
- Catalystのpluginとかあらかじめ入れてる
- カスタマイズするならControllerのSubClass作る
現在 -> endeworks以外のユーザがいないので汎用ではないと思う -> documentがない -> endeworksではこれ使って開発効率が大幅にup
[おまけ]
スライドのコード部分 -> github(gist)++
本当はAnyEvent+Mooseなプロダクトが今のHot topic
次回は 8時間
[質問]
Q.最適なチーム編成像は? A.5人くらいかなー
Q.開発環境 A.うちはvimしか使わない
今のところvimとemacsだけでなんとかなってる
- .vimrcが意外とシンプルだった
perl -Ilocal::lib でpjに含めたperlを使う -> バージョン違いな問題を回避できる
OS -> CentOS最近使ってる -> コード書くときはmac
Orochi -> 裏方で勝手にobjectを作ってくれるkey-value storeな風味

てな感じで懇親会へGO。2次会まで全員参加のステキな参加率。
Perl界隈の人はサーバとかも普通に触りまくってる人が多いので、非常に喋りやすいです。
あと経験値の高い人が多いので、歴史をひもとくような話を聞けて大変貴重。
僕は僕で昔の先輩様とかと大量再会したりして恐縮でございました。
とりあえず、誤解してもらえるような福岡懇親会風景を貼って締めときます。

fukuoka-pm-with-beer

Fukuoka.pmまとめのsugmakさん、懇親会他まとめていただいたZAIONさん、発表者のお二人、そして牧さんありがとうございましたー。
そんなこんなで皆様おつかれさまでした。
Comments (0)  Permalink

YAPC::Asia 2009に行ってきた個人的まとめ(Day 1)

というわけで書くのが遅れましたが、行ってきたのですよ。
わーっと書きなぐったノートをめくりつつ個人的まとめ。

PSGI - Perl Server Gateway Interface
[スライド]
id:tokuhirom + id:miyagawaでごりごりしゃべりまくってました。
「PSGIは仕様、Plackは実装」
WebサーバとWAFの間を取り持つ「仕様」がPSGIでその実装が「Plack」。Rubyで言うところのRack。
Rack超便利、とはよく聞くのでPSGI/Plackもほどなくして浸透するのかなと。
他のスピーカーさんもぎんぎんに意識してる印象を受けました。

シックス・アパート・フレームワーク
[スライド]
Sixapartのプロダクトの変遷と、それに伴って変わっていく社内フレームワークの話。
自社開発フレームワークから徐々にCPANモジュールに寄せていく感じ。
最近のはCatalystがしっかり組み込まれている、と。
あと周辺環境としてドキュメントなりバージョン管理なりバグトラックなりで何使ってるー的な話。
Review Board は良さげなので社内導入を斡旋してみます。
Q「英語話せないとSixapart入れないのん?」→A「んなーこたない」

・ランチ
配ってるサンドイッチうまー。お茶うまー(有料)。
よく名前を聞く人たちがそこらでサンドイッチほうばりながらだらだらしてたりしゃべり倒してたり。
一方で野外でもノートPCがそこかしこで開いてたり。
のんびりなのかしゃかりきなのかよくわからん感じがステキでした。

Perlハッカーのための遊べるPostgreSQL
dankogaiが来て一番前の一番いい席にどっかり座ってました。
PostgreSQL8.4の話と、PL/Perlな話。
PostgreSQL8.4については何回か他所のPostgreSQL勉強会で聞いた話。
PL/Perlについては自分がFukuoka.pmで話した内容 とあんま変わりはなかったです。

prettyfs 分散ファイルストレージ
[スライド]
MogileFSについての話から、「MogileFSの不満点がある」→「じゃあ作っちゃおう」でprettyFSな話。
MogileFSで問題になるところを改善して、よりシンプルに使える形になっているーと。
別セッションでペパボの人がちらちと触れてました。<prettyFSも検討しよっかな的な話
公開されたらMogileFSと比較しつつ触ってみます。

Event programming fun with AnyEvent
id:miyagawa曰く、「POEとか書くな、AnyEvent書け」ってことでAnyEvent紹介とかデモとか。
既存のEvent loopに対して追加ができるってのは非常に魅力的だよなーと。
あとは使う上でのTipsとして、condvarとかwatcherのスコープとかの話。
そういや誰かが「今回のYAPC::AsiaはAnyEventとCoroが代表格」的な話をちらっとしてました。確か。

Perl で圧縮
[スライド込みエントリ]
圧縮技術に関する話と、CPANの圧縮モジュールリストアップ。
テキストならZlibかLZMAあたり。
整数の単調増加数列なら差分取ってpack('w*', @values) でおk。

Booking.com and Perl [スライド]
http://www.booking.com/ の中身の話と会社紹介。
珍しく非Catalyst。Class::DBIにHTML::MasonにHTML::Template。
memcachedとかgitとか使ってるのをみると、便利なもんはさっさと使っちゃう感じなんですかね。
ちなみにスライドのP9は「日本初めて来た。人大杉。」って写真です。

ペパボでの Perl のつかいかた
id:mizzy + id:hiboma。ドクペの人と弟の人。
id:mizzyは発表途中でドクペの差し入れを受けてました。
- 採用面接で合い言葉を言うといいとおもうよ。
- MogileFS、ストレージAPIはPerl+Catalyst。
- Gearman, TheSchwartzで後ろでごりごり。処理追いつかなくなったら横にサーバ増やす感じ。
- 画像処理はImage::Imlib2が速い。
- デプロイ→Archer
- 「Web開発者にサーバ都合を意識させたくない(ユーザ情報の位置についても同様)」
- qpsmtpdがいじりやすい。プラグインとかフック機構とか。→ドキュメント少ない→ソース読め
- 開発者募集
コーポレートトラックの割にはやたら濃くて楽しかったです。
qpsmtpdあたりは直近で使うネタがありそう。

『Ficia』インフラとPerlにまつわるエトセトラ
[スライド込みエントリ]
mod_perl2のTipsあれこれと構成・運用支援ツールな話。
先forkで領域確保とかよく思いつくなーと。
「1ミリでもswap食ったらメール飛ばすようにしている」で全員爆笑。鬼ですか。
ArchtypとComplex、それをハンドリングするMATRIXの話。
MATRIXは以前DSASの話あたりで出てきたので、すんなり聞けた。

How Danga::Socket handles asynchronous processing and how to write asynchronous Perlbal plugins
[スライド]
発表前にまたドクペもらってた。
日本Perl会の子だくさん。4人目おめでとうございます。
Danga::SocketとPerlbal話。
特にPerlbalのところが動きを丁寧に図示してもらったのでわかりやすかったです。

・LT
Server::Startermiyagawanize が強烈すぎた。特に後者。なにそれずるい。

・懇親会および飲み会
- zaionさんは気がついたらAcme大全を買っていたらしい。
- c9sの人にエディタ何使ってるか聞かれてvimって答えたら満面の笑みで握手された。
- id:hirataraの名字がひらたではないと知った。衝撃。
- id:hibomaと「どうも弟です」「いやいやどうも弟です」名刺交換をした。
- id:hirose31に「この後は朝までコース」と聞かされて帰ろうと思ってid:yusukebeに聞いたら「自己責任で」と言われたのでのみかいに行った。
- id:yusukebeとpen2netの方といろいろ話した。感謝。
- みんなペンギン好き。みんなペンギン蘊蓄はいっぱいしゃべれる。らしい。
- のみかいで正面に座った人がたまたまid:acotieの人だった。
- id:nipotanのdankogaiものまねがうますぎる。あれは無形文化財に指定していいと思います。
- id:nipotan「nipotanさんって呼ばないと本当は失礼なんだけどどうせみんなにぽたんって呼ぶんだよね」。

てな感じでざざざっくりと書いて疲れたのでDay 2は後ほど。
Comments (0)  Permalink

bitshifters

=弊社バスケ部。
てことでやってきました→肺が全く持ちませんでした。
bitshfters

とにかく肺ですよ。肺。
酸素が全く足りなくなる点をどうにかすればもうちょっとましなんです。多分。
運動神経云々の前に基礎体力です。ええ、ええ。
Comments (1)  Permalink

RBCで喋ったEucalyptus+RightScaleの話とか

立て込みまくりでエントリ書くのが遅れましたが。
先日のフクオカRuby DaysでEucalyptus+RihtScaleについてだらだら喋ってきました。
スライドはこちら。
http://www.slideshare.net/debility/ss-1762091
当初80人と聞いてて、行ってみたら余裕で100人超えてて鼻毛が伸びきりそうでした。

一応普通に立てて動くところまで。
key使って外部からログインするところまで見せたかったんですが、ちょっとトラブルがあったのと時間的な都合でカット。
内部からログインするのを見せるところまでに留めました。

いちお1.6のリリースを待って再度検証に動くつもりです。
基本的なところは終わったので、次は複数クラスタと最近出たeuca**なコマンド周りとJavaVM周りの検証とWakame試してみるところですかね。
この辺の情報をうまく落としていきたいなーといった所存であります。

WakameにしろScalrにしろ今回取り上げたRightScaleにしろ、共通しているのはオレオレクラウドに対するアプローチはこれからなんですよね。
というわけでうまーく絡めたら楽しそうだなーと。

で、スライドに載ってる祭りのリンクも。
http://pudding.jp/
福岡のノリの良さが伝染して協賛まで取れたのは凄いお話。
周りの皆さんが機敏すぎてありがたいやら恐ろしいやらです。ガクブル。
Comments (0)  Permalink

Ubuntu 9.04でIPv6を無効化

したかったんですが。

これまでの/etc/modprobe.d/aliasesでどーたらではなく、/etc/sysctl.confに
net.ipv6.conf.all.disable_ipv6 = 1
と書くらしい。
# 検索して見つかる「net.ipv6.all.disable_ipv6 = 1」の記述は多分間違い(conf.が抜けてる)。だよね?

で、「らしい」となってる理由。
これ書いてもipv6が死んだ様子が見られない。
/proc/sys/net/ipv6/conf/all/disable_ipv6
はちゃんと1になってるんだけどなー。
というわけでざっくり調べてみると
http://ohioloco.ubuntuforums.org/showthread.php?t=1140536
とあって、どうにもkernelのバグでちゃんと死んでくれないらしい。
betaのほうでこれ試してうまくいかなかったんだけど、リリース版ならうまくいくんだろーか。
というのは多分明日くらいに試します。

うまくいかない理由の切り分けのために、一応IPv6切ってみっかーくらいで調べた結果。
なのでリンク先で挙がっているパッチの適用まではやんないかもしんないですしやるかもしんないです。

[以下5/27追記]
リリース版でもだめでしたっと。
launchpadのリンクも一応貼っておこう。
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/351656
調べてた分の原因はCPUの問題だと分かったので、またなんか困ったら検証するかもですが期待はしないでください。
Comments (1)  Permalink

Symfony+PostgreSQLで、ORM側でcascade deleteしたい

そもそもPostgreSQLなら、ORMでやらんでもいい話なんですが。
かつSymfonyのソース見ると「遅いからORMにcascadeさせんじゃねー」って書いてはいるものの。
いかんせんそういう場面ってあるじゃないですか。

schema.ymlに
onDelete: cascade
なんて書けばさっくりうまくいくかと思いきや全然うまくいかない。
隣を見る気配もない。
あれれーと思って調べてみたら、「MySQLのMyISAMとかSQLiteなら動くよ」って書いてある。
逆にDBでCASCADE持ってるんならそっちでやれと。

でもSQL流すの嫌だなーORM頑張れよーとか思って探したら、propel.iniに
propel.emulateForeignKeyConstraints = true
と書けばちゃんとdoOnDeleteCascade()が生成されてた。よしよし。

が、結局動かず。
なんでだろーなんでだろーとdebug吐いたらそもそもdoDeleteを通ってない。
あれれーと思ってsfPropelParanoidBehaviorPluginを挟んでいることに気づく。
要は論理削除が全部doUpdateで動いているので、そもそもかみ合わないと言う。orz

結論:Doctrine使おう。
Comments (0)  Permalink

PHP in Fukuoka 第13回勉強会で喋ってきた

てことで、ざっくりと喋ってきました。
http://php.fww.cc/archives/22 

資料は以下。
メモあり:http://www.slideshare.net/debility/ss-1082162
メモなし:http://www.slideshare.net/debility/ss-1082140
例のごとくメモありのほう見てもらったほうがなんとなくいい感じだと思います。
ちなみに資料は70ページくらいですが、1行ずつ出したりしたので実質コマ数は300弱とかです。多い。
ビール飲みながら、途中からはピザも食いながら喋ってました。サーゼン。

初PiFだったんですがすごく常連っぽいふりをしてすみませんでした。
だってみんなお会いしたことあるんだもん。僕悪くない。

というわけで、喋る機会を与えていただいてありがとうございました。ぺこり。>id:devworks
Comments (0)  Permalink

CentOSの最小構成をもっと突き詰めようの巻その3

id:k1LoWに言われるがままにPuddinuxなる名前が付いたわけで。
そっちにいろいろ追記したりしてるんですが、とり急ぎなるほどふむふむほへーと思ったのを2点。
そのうち↑にも反映すると思いたいですがここに書いて疲れたのでリンクだけにするかも。

・PuTTY使ってるとportmapに引っ張られる形でssh接続できなくなる怪現象
認証の流れとして
1. publickey
2. gssapi
3. password
てな順番なのですが、portmap切るとGSSAPI営業してるかどうかの返答具合が変わる、んだと思う。
# 多分portmap動かしてるとさくっと返答してくれる
で、ここでpuTTY使ってると返答待ちなんだか問い合わせがループしてるのかわかんないんですが返ってこなくなる。
結果だけ見ると「portmap切ったらssh繋がらなくなった!なぜ!」となるのです。

/etc/ssh/sshd_configがデフォルトで

#GSSAPIAuthentication no
GSSAPIAuthentication yes

になってるんですが、これを

GSSAPIAuthentication no
#GSSAPIAuthentication yes

に変えてsshd再起動したらさくっと解決。
しかも繋がるのがかなり速くなった。ステキ。
codecheck.inのIRCでいろいろ教えてくれたid:dragon3には足を向けて寝れません。足向けて寝たことないですが。
とにかく感謝感謝なのです。

ついでに/var/log/secureにBindどーたらのエラーが出てて、これは
http://pcmemoofdkuro.blogspot.com/2008/05/sshd2001-error-bind-to-port-22-on-0000.html
の通りにIPV4指定すれば解決。

上記が全体的になんとなくぼやけた記述なのは、puTTY側のログ取り損ねたからなのです。
学習したのかどうかわからんのですがいまいち再現してくれんのですよ。しくしく。

・CPUの割り込み回数がVMだけみょーに高い
vmstatで見るとinの値が1000前後とかで推移してて、いやーな感じで放置してたんですが。
/proc/interrupts見てみるとtimerがやたらめったら割り込んでるなと。
そういやなにげにブクマったなーと思い出して
http://d.hatena.ne.jp/sh2/20081207
の通りにカーネルパラメータを変更するとさっくり100前後に落ち着いた。ステキ。
VM上でKernel 2.6を動かす上で、これは割と必須じゃなかろうかと思うのですよ。
まあとにかくid:sh2にはしばらく足を向けて寝れません。方角分かりませんが。
とにかく感謝感謝なのです。
Comments (0)  Permalink
Next1-10/222