2011年12月15日木曜日

ubuntuでruby - rvmでrubyをインストールする

前回はrvmのインストールをしたので今回は

rvmでrubyのいんすこチャレンジ


rvmでなにかをインストールする

rvmでのインストールは
$>rvm install ほげほげ


みたいにかくみたい。

と、その前に・・・


rubyをいんすこするときには、いろいろオプションつけておかないといけません
あとで困ります
あとでってのは、herokuを使おうとしたときですが

せっかくだからheroku使おうかな、なんて思ってるひとは準備をおこたりなく

ここで、rubyをインストールしたいところですが、あとでいろいろ困るので、必要なものをインストールしておこう
rubyを入れて適当に触るだけならいらないかもしれないので、飛ばしても良いのかな?


ここから準備

rubyインストールしていて、途中で「ねぇよ!」って言われた

  • bison
  • autoreconf
apt-getでいんすとしてください。
$>sudo apt-get install bison

$>sudo apt-get install autoconf



heroku使おうとおもったら、「ないからダメ」って言われた

  • openssl
  • readline
  • zlib
こいつらが厄介なのは「もう入れたよー」とか思っていても「rvm的に見えないからだめ」と言われることです rvmでいんすこしてください
大事なのでもう一度

rvmでいんすこしてください

パッケージのインストールは
$>rvm pkg install oppenssl

$>rvm pkg install readline

$>rvm pkg install zlib


ってな具合です。

ここまで準備



さて、それではお待ちかねの

rubyいんすこたーいむ


$>rvm install ruby-head -C --with-openssl-dir=$HOME/.rvm/usr --with-readline-dir=$HOME/.rvm/usr --with-zlib-dir=$HOME/.rvm/usr
準備でいんすこしたパッケージを指定してください
これをやっとかないと、herokuのとき泣きます
てか泣きました
もう一度

準備でいんすこしたパッケージを指定してください


これでインストールは完了です
お疲れ様でした

それでは

入ったもの、確認


$>rvm listrvm rubies

ruby-1.8.7-p352 [ x86_64 ]
ruby-head [ x86_64 ]

へー、1.8系が入ったんだ
じゃ、1.9系も入れとこ

$>rvm install ruby-1.9.2 -C --with-openssl-dir=$HOME/.rvm/usr --with-readline-dir=$HOME/.rvm/usr --with-zlib-dir=$HOME/.rvm/usr

yamlがmakeできないとか表示されるも、インストールは完了

$>rvm list

rvm rubies
ruby-1.8.7-p352 [ x86_64 ]
ruby-head [ x86_64 ]
ruby-1.9.2-p290 [ x86_64 ]

これで、1.8系と1.9系が好きなように選択できるようになりました
最後に、選択してみましょうか

1.8系
$>rvm 1.8.7



1.9系
$>rvm 1.9.2



バージョン確認してみよう

ってところで、今日は終了です

2011年12月13日火曜日

ubuntuでruby - rvmをインストールする

導入

Ruby環境をつくろうと思いましたが、
1.8系と1.9系とあって、どっちもインストールするにはどうしたら良いのだろう?

とか思っていたら、直接インストールするのは過去の出来事だったようで、
バージョン管理してくれるのがあるじゃないですか

その名も

RVM

みなさん、知ってました?

今回は、これをインストールするところをメモです

準備

なにごとも準備が肝心ですね
RVMインストールに必要らしいので、GitとCurlをインストール

$>sudo apt-get install git

$>sudo apt-get install curl

RVMインストール

$>bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)

このまましばらく待っていると、なんとなく終了するので、バージョン確認

$>rvm -v

No command 'rvm' found, but there are 19 similar ones
rvm: command not found

あれ?
みつからない?

ちょっとぐぐったら、.bashrcに、追記しなきゃ行けない呪文があるとか

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"

さっそく書いてみよう

$>vi ~/.bashrc

あれ、書いてある
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM
into a shell session *as a function*

てことは、再読み込みか

$>source ~/.bashrc

$>rvm -v

rvm 1.10.0-pre by Wayne E. Seguin (wayneeseguin@gmail.com) [https://rvm.beginrescueend.com/]

お、おっけーじゃん

ということで、ここまでは無事にたどり着きました
次はRubyとかRailsとかインストールしていこうかな

2011年12月9日金曜日

enumってベンリかな

みなさま、こんにちは。
なかなかブログの更新速度があがらないnouzui2007です。
すっかりごぶさたしておりますが、平常運転すぎてあまり気になりませんねw

さて、今回のお題ですが、enumいってみたいと思います。

enumって、列挙型なんて日本語があてられてます。

列挙型

なんか、わかったような気がしてきませんか?
よく知っている表現というのは大切ですねw

これ、なんのために使うかっていうとですねぇ

  • カレンダーの1月から12月を定数にして、まとめておく
  • トランプのスーツ(スペードとかハートとかのあれです)を定数にしておく
  • コーラの種類を定数化したい
とか、みたいな場合に使います。

なんとなくわかったかもしれませんが、

あらかじめ要素数がわかっている定数たちを、まとめておける

のがenumです。

単純なenumは、書き方がCやC++とそっくりです。

enum CocaCola { NORMAL, ZERO,・・・ }

でも内側はちがっていて、Cとかみたいに整数で定数を保持するのではなくて、実態はクラスです。

この列挙型で何がうれしいか。



プログラム中のswitchであつかえる

地味にうれしくなるこの機能ですが、どうでしょう。
分岐は値でやられると、あとで読むとわからなくなるんですよねぇ。
自分で書いててもだめです。
いろいろ覚えていられる期間中は定数化したりするほうが面倒なんですが、いろいろ忘れ始めると「なんだっけ、これ?」の連続です。

覚えていられるうちにenum
ですw


独自のメソッドとか入れられる

単純なenumだと、NORMALとかZEROとかにどんな値が設定されているかは秘密になってます。
でも、それじゃ困る場合もあります。
たとえば、カレンダーでの月をenumにしたい場合、JANUARYを1にしたいですよね。
そんな場合は、メソッドを入れてしまって対応しましょう

enum Calendar {
    JANUARY(1),
    FEBRARY(2),
          ・
          ・
          ・

    private int value;

    private Calendar(int value) {
        this.value = value;
    }

    private int getValue() {
        return this.value;
    }
}

こんな感じにかけちゃいます。

これはベンリ!

参考:







githubでいこう

gitについてかるく調べてみましたが、セットでただよっていたのがgithub。
これ、同じものだと思ってました。短縮形、みたいなねw

正式サービス名:github
略称:git

ホントすいませんm(_ _)m

githubはgitリポジトリを提供してくれるサービスだす。
特徴はこんな感じでしょうか。
  • オープンソースなら無料
  • 他人のリポジトリを勝手にダウンロードできちゃう
  • ダウンロードしたものを改造して公開だっておk
  • パッチをあててください、とゆーお願いだって大丈夫
  • wikiつかえる

いいですねぇ。
プログラマにやさしい世界が広がっている感じです。

それではさっそく登録です。

ちょっと英語ですが、気にしないでいきましょう。


http://github.com/



中央に「Plans, Pricing and Signup」とあるので、ここをクリックしてください。



ページが表示されると、$マークが見えますね。
なんだか有料のように見えますが、ちょっと上に色が薄い枠がありませんか?
$0/moと表示してありますね。
オープンソース用の無料プランですので、これを選んでください。
あ、内緒にしたいソースしかない場合は、他のプランを選択してくださいね。



必要な内容を記入してください。
Create Acountしたらば、あなたもgithubで仲間です。
・・・えらそうですが、自分も初めてです(〃´・ω・`)ゞえへ

一緒にがんばりましょう

続きます

2011年11月29日火曜日

Aptana Studio3をいんすこしたらGit入れろといわれた

みなさん、こんにちは。
今日はだめ人間なnouzui2007です。

nouzui2007の普段使っているマシンは、Ubuntuくんですが常日頃会社とかで使っているマシンは、残念ながらWindowsだったりします。
別に不満はないのですが、たまにWindowsだと出る現象とかがあって、ちょっと困るので、今日はそんなメモ。

今回は、Aptana Studio3のインストールです。

railsをやりたくてインストールしてみました。
下のリンクからダウンロードできるので、興味があればダウンロードしてインストールしてみてください・・・って興味なかったら、見てないか
Aptana


が、Gitが見つからんとか言われました。

いやいや、入ってないっすよ。
個人PCじゃないもん、Git使ってないもん( ̄ε ̄ )
それにしても、なんでGitさ、と調べてみたら、Gitを使ってるみたいなんですよ。
Getting Startに書いてありました。

さいしょっから読めよ、といったコメントは受け付けません!
なぜなら、マニュアルは読まないタイプなので( ̄^ ̄ )

msysgitっつーのが必要らしいんですわ。しかもWindowsの場合は~なんて言われてるし。
ま、いじけてても仕方がないので入れて見ましょう、msysgit。

msysgit
ここからダウロードできます。
左側のFeaturedってとこに最新版があるので、そこからどうぞ。
ちなみに、この時点での最新版は、Git-1.7.7.1-preview20111027でした。

でふぉでいんすこ完了!

ダイアログを出しっぱなししていたので、「use portable git」をクリックしたが、NG。
しかたなく、Browsして、インストールしたmsysgitを指定。
でふぉでインストールすると、C:\Program Files\Git\bin\git.exeにあるので、これを指定してください。

これで、OK!
Aptana Studioを起動して、Railsプロジェクト作成!

おお!なんか、下にViewが出てきた。
コマンド打ってるよー!!
なんか、かっちょいー

とか、わくわくして待ってたら・・・エラーかよorz

railsコマンドがないとか言われた。
えー、入ってないのー?

仕方ないので、Ruby入れた
Ruby Installer

これは、RubyとGemをいんすこしてくれるし、GUIだし、楽チンです。

この間、Aptana Studioは起動したままだったわけですが、そのままgemコマンドを実行してみた。
$>gem update --system

gemしらねっていわれた(´・ω・`)
なんでた?もしかして再起動?

とゆーわけで、Aptana Studio再起動してみた。
今度こそ
$>gem update --system

やった、成功!
って、まだまだrailsができないじゃん。

railsインストール
$>gem install rails -v 2.3.14

だって、rails3でわかんなかったらやじゃん
とりあえず、インストールがすんだら、railsコマンドに再チャレンジ!

$>rails .

こんどは成功。
これで開発できるね


2011年11月23日水曜日

UbuntuからAndroidへファイルを転送する(SFTP)

UbuntuのPCから、Androidへファイルを転送する方法のご紹介です。
つなげばいいじゃん、だと話にならないので、ネットワークを使います。

方法はいたってシンプルで、SSHを使って、SFTPで転送しましょう、ということです。


Android側の設定

設定といっても、インストールするだけですが。
マーケットでSSH系のアプリを探してインストールしてください。

今回使ってみたのは、SSHDroidです。
こいつは、なかなかお手軽なやつで、起動と同時にSSHサーバになりやがります。で、接続のための情報を表示しておいてくれます。


Ubuntu側の設定

コマンドでやるなら、インストールするものはSSH関連だけですが、今回はGUIです。
FileZillaをインストールしてください。
Ubuntuソフトウェアセンターにあるので、インストール!


接続しよう!

SSHDroidを起動します。サーバ情報が表示されます。
FileZillaを起動します。
SSHDroidに表示されたサーバ情報を入力します。
FileZillaの接続ボタンをクリック
接続!

・・・とならなかった方、いらっしゃいますか?
nouzui2007は、この時点で重大なエラーがあるとかなんとか言われました。

ホストの先頭に、sftp://をつけたら接続できました。
どうやってつなぐか迷ったのかな?
よくわかりません。

とゆーことで、いかがでしたでしょうか。
今度は、Android側からUbuntuにつないで、ファイルを取っていけるようにしたいなぁ

ではでは

UbuntuでSSHを活用してファイルを転送する(SFTPのおはなし)

問題

nouzui2007は、PCを2台持っています。
1台はHDDが大きく、持ち運びが楽なもので、よく持ち歩いています。こちらがメインのPCです。
1台はHDDが小さく、古いものなので、寝室に据え置いて、寝る前とかに使う程度です。
寝る前にnouzui2007はおもしろいファイルを見つけたのでダウロードしました。
これを持ち運ぶメインのPCに移すには、どうしたら良いでしょうか。
OSは両方ともUbuntuとします。



さて、答えの前に、Windowsだった場合を考えてみましょう。
Windowsだったら、

  1. コピー先のPCに共有フォルダを作る
  2. コピー元のPCで、ネットワークコンピュータから、接続先のPCを見つける
  3. コピー元のPCから、コピー先のPCに接続する
  4. コピー先のPCのフォルダ(共有フォルダ)にファイルをコピーする

こんな感じですね。
コピーしたファイルを別の場所(お気に入りやポリシーに従ったフォルダ)に移動する作業が発生するかもしれません。

じゃあ、Ubuntuだったら?
これは、結構悩みましたよ、実際。
Windowsとの接続については、難しいとゆーか、手応えがあるとゆーか、ちょいむずなせいか、解決のネタが結構転がってるんですよ。

ところが、ですよ。
Ubuntu同士になると、なかなか思うような解決策がない。
それもそのはず、接続のための機能がはじめっから、いろいろ用意されてたのね。
そこで、SSHですよ。

nouzui2007的には、SSHはコマンドオンリーでした。
ここが、間違いの出発点ね。
SSHでの通信には、SCPとSFTPとかもあって、これにGUIがあるのだ!!
と、先日しりましたf(^^;

GUIでは、FileZillaを使ってみました。これ、FTPだけじゃなくて、SFTPもできたのね。
これ、接続がちょっとおもしろい感じのFTPツールですわ。
ローカルとリモートが並べて表示できて、ドラッグ&ドロップでファイルの転送ができるやつです。

SFTPは、ログインしたユーザに設定されたパーミッションに従ってファイルが配置できるので、結構便利です。特別な設定をしなくても、ホームから出れたりしてね。

使ったソフトウェアのインストールなどをまとめておきますか。
初めから入ってたような気もするけど、念のため。


SSH関連

$>sudo apt-get update
※まぁ、おまじないかな。やらなくてもいいかも

$>sudo apt-get install ssh
※これでSSH関連が入ります。opensshを使ってます。openssh-serverとか、個別に指定しても良いかも知れませんが、面倒なので。


FileZilla

アプリーション -> Ubuntuソフトウェアセンターから、FileZillaを検索してインストール

または

$>sudo apt-get install FileZilla

公開鍵とか、その辺の設定はしていませんので、お使いになる環境にご注意くださいませ。
家庭内のLANなので、その辺はずぼらですw

2011年11月19日土曜日

SSH使ってみた

ubuntuをクライアントにしたものの、ぼっちユーザなので他のマシンにつなぐことがあまりなかったし、つないでもWindwosだったので、SSHをクライアントで使ったことがなかった

今回使って見たので、メモ

$>ssh -p ポート ユーザ@ホスト名

ついでに、ファイルの授受のscpも

$>scp -P ポート ユーザ@ホスト名:コピー元 ユーザ@ホスト名:コピー先

ローカルを対象にするときは、ユーザ@ホスト名:は不要


2011年11月17日木曜日

rails2.3.11からmysqlがつながらなかったので

みなさん、こんにちは。nouzui2007です。
今日はRuby on Railsについてのお話しです。

なぜ、Railsかは置いておくとして、久しぶりに新しいプロジェクト作って試してみたらばmysqlにつながんなくて困ったので、メモ

どこで困ったってゆーと、とりあえずscaffoldしてみたので、テーブルを作っちゃおうとおもったとこね。

$>rake db:migrate

そしたら、エラーになった
mysqlがロードできないんだと

mysql.rbは、Rails2.2からなっくなってしまったとかなんとか
あ、でも、gemでインストールすればいいよ

と言ってきたので、やってみた
$>gem install mysql

だめだった
ERROR: Error installing mysql:

困るじゃん
インストールには、mysql_configが必要らしい
これはどこにあるかってーと、実際コマンドしてみたらいいよ

$>mysql_config
プログラム 'mysql_config' は以下のパッケージで見つかりました:
 * libmysqlclient-dev
 * libmysqlclient15-dev
次の操作を試してください: sudo apt-get install <選択したパッケージ>

やってみた
$>sudo apt-get install libmysqlclient-dev

それではもう一度
$>gem install mysql

今度はうまく行ったみたい

それではmigration
$>rake db:migrate

まただめだったorz
rake aborted!
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13)

あー、なんか前にもこんなエラーが出たかもしれない
けど覚えてないなぁ

で、調べたら、mysqlのサーバが指定しているところと違うっぽい
サーバが指定している場所はmy.cnfを見よう!
って、どこだよ

うちの子はubuntuですが、こんなところにあった
/etc/mysql/my.cnf

なかを見ていくと[mysqld]にありました、ソケット
socket=/var/run/mysqld/mysqld.sock

database.ymlの設定をこれでかえて、もう一度
$>rake db:migrate

やった、成功!

2011年11月15日火曜日

eclipseでソースを取り込む

今日、聞かれたのでメモ代わりに。

eclipseで、新しいプロジェクトを作って、空のsrcの下にパッケージを含んだソースファイルをインポートしたい、らしい。

ま、よくある話だよね。
友達の作ったソースを取り込んだりね。

方法はいたって簡単

Step1.コピー
取り込みたいソースのパッケージに該当するディレクトリごとsrcディレクトリにコピーする

Step2.更新
ソースを取り込みたいプロジェクトを選択して、おもむろにF5キーを押す

すると、あらフシギ、パッケージがわいて出ます
非力なマシンでやると、わいて出るところがゆっくりで面白いよw

2011年11月3日木曜日

unrarメモ

そういえば、rarを解凍するような機会が増えてきたので、忘れっぽいnouzui2007はメモをとってみる。
べつにページをかせぐためじゃないんだからね!

とかツンデレっぽく開始してみる

さて、本題

これまでは単純に展開できれば良かったので、こんな感じで使ってきた

$>unrar e hoge.rar

これだと、全部フラットに解凍されます。
気が利いてる

ところが、ディレクトリを再現してもらったほうがよいことが発生することもある
・・・ってゆーか、フラットでokだったのはだめだめ?

ディレクトリを再現するのは簡単で、eのかわりにxを使えば良かったのです
フルパスってそーゆーことかぁ
いやね、ヘルプに載ってはいたんですよ。
xオプションだと、フルパスだって。
でも、フルパスの意味がわからんくて、いままで使ってませんでした。
実際に使うと、こんな感じです。

$>unrar x hoge.rar

これだと、rarファイル内にあるディレクトリを再現しながら解凍してくれました。

やれやれ

2011年10月30日日曜日

サブディレクトリを含めてファイルを消したい

うわっ、気づけば10月終わりです。
ブログはこれで2件目です・・・orz

もうちょっと頑張らないといかんかなぁ


ま、そこそこがんばりましょうか。ぽつりぽつりだし


ところで、サブディレクトリにある、特定のファイルを消してしまいたいことってないですか?
nouzui2007は、忘れた頃にそんなニーズが発生します。
そして調べる、忘れる、また調べる
こんなループです

今回は、ちょっと予想外の方法がわかったので、メモめも

findで、ファイル消せるって知ってました?
まにゅある読めよ、という空気が流れているかも知れませんが、さくっとムシしておきます
・・・実際にそんな空気になったら半泣きか全泣きですw

$>find . -name "Thumbs.db" -delete

カレントディレクトリ以下のThumbs.dbを消しています。
これ、結構びっくりしました。へー

知らなかった人、一緒にびっくりしておいてくださいね

では、また

2011年10月13日木曜日

XOOMをWindowsにつないでみた

XOOMを入手して早3ヶ月。
いままでずっとUbuntuにつないでいたけども、ここに来てWindowsにつなぐことになった。

とりあえず、USBでつないでみた。

ドライバの要求をされた。

一昔前は、デバイスをつなげばドライバの要求は当然だったのに、なにこの理不尽な感覚。
ひさしぶりな感じです。

うーむ、なぜドライバ。

といっても、仕方がないので、ドライバをダウンロード。
Motorola社のサイトに転がってますが、備忘のためにメモしておきます。

USB AND PC CHANGING DRIVER

必要なのはUSB Driverですよ。
ページ中ほどにある「Download Motorola 5.2.0 Driver with MotoHelper*」をクリックしてください。
インストーラ、ゲットです。

そしたら、あとはいつも通り、インストールをしましょう。
ウィザードで次、次ですね。
簡単です。

と・こ・ろ・がっ

そんなに簡単にはいきませんでした。
エクスプローラに出てきません。

あれ、ちゃんと認識されてないのかな?
と思いつつ、adbコマンドでデバイス確認

>adb devices

ちゃんと認識していました。
ついでにshell

>adb shell
>ls

うむ、XOOMのだ。

とゆーことは、エクスプローラに出てこないだけ?
なぜ?

と、ここにいたって、何のドライバを要求されてるの?とか気になりました。
要求されてるのは、MTPだそうです。

MTPの詳細はまた次の機会に譲るとして(次はこないかもしれませんが・・・)、
MTPのドライバがあればうまくいくっぽいじゃないですか。
なら、ドライバインストールすればいいじゃん。

とゆーことで、調べました。
そしたら、なんと、Windows Media Playerの10以降がインストールすればOKらしいじゃない。
え、じゃーこのマシンのバージョンはいくつなの?って9だよ・・・

Windows Media Player11、インストールしました。
ことによったら、再起動が必要かも知れません。

ようやくXOOMが見えました。

あ、ちなみにXOOM側が画面真っ黒な状態だとなにも見えないので、お気をつけくださいまし。




2011年9月30日金曜日

android実機テスト準備(Ubuntu)

10月になる前に、もう一ネタ。

PCをかえてから忘れてたことが一つあったので、備忘録。
それは、実機でのデバッグさ!

この前設定したのはいつだっけかねぇ、ってほどむかしじゃありませんが、一度設定すればOKなものは結構忘れがちですねw

Windowsのやり方は知りません、すいませんm(_ _)m

Ubuntu では、設定ファイルを作成して、中身を書けばOKです。

$>cd /etc/udev/rules.d
$>sudo touch 51-android.rules

先頭の51は51でなくてもOK。
複数の実機をつなぐような場合では、52になったり53になったりします。
とはいえ、nouzui2007はxoomのみですが。

viで開いて、中身を書きます。

$>sudo vi 51-android.rules

内容は、こんな感じ。

SUBSYSTEM=="usb",SYSFS{idVendor}=="22b8",MODE="0666"

22b8はUSB Vendorによって変わります。xoomなのでmotorolaの番号になってます。

あとは、これを全ユーザが読み取れれば良いので、設定してくださいね。

$>sudo chmod a+r 51-android.rules

ここまでやったら、あともう少しです。

実機側のデバッグオプションをONにして、USBで接続。
その後、おもむろにadb devices実施

$>adb devices

なんか表示された?
List of Devices attached の下に何か表示されていれば、OKです。

それでは、また次回お会いしましょう

2011年9月22日木曜日

Android開発環境の作り方

Android開発はすでにはじめているわけだが、突然環境をつくることになったりすると困るので、ちょっとメモしておこうかな

必要なのは、3つ
リンク先で適当にダウンロードしてください・・・だと終わってしまうので、もう少し書きますw


ダウンロード

Android SDK
リンク先で迷うことはないと思うけど、プラットフォームにあわせてダウンロードしてちょうだい

Eclipse
これは迷うかも知れない。ってゆーか迷った。
とりあえず、classsicを選択した。Java Developersでもおっけーでした。
その他については、用途に合わせてダウンロードしてください

Java
これがないとはじまんないよねw
プラットフォームにあった最新版をダウンロードしてちょ


インストール

それでは、いんすこサ行作業開始!

Java
といっても、ウィザードに従って処理しちゃってください。

Eclipse
解凍して、好きなところに配置してくださいな
たとえば、
C:\Android
とか
~/android
とか。

Android SDK
Eclipseと一緒ね。
解凍して、好きなところに配置。
C:\Android
とか
~/android
とか。
ちなみに、nouzui2007は、Eclipseと同じフォルダにおいています
用途が同じなら、いっしょの場所にあってほしいのですよw


設定とか

Android SDKのtoolsにパスを通してくらさい
知ってると思うけど、一応設定のやりかたメモ
Windows
・マイ コンピュータ -> プロパティ -> 詳細設定 -> 環境変数ボタン
環境変数: Path : C:\Android\android-sdk-windows\tools
※ユーザ環境変数でも、システム環境変数でもどっちでもいいみたいなので、好き好きで

Eclipse起動!
Workspaceは、プロジェクトの保存フォルダなので、ここで決めてください
後でも決められるけどね
起動のときにまた聞かれるのメンドウ、とか思ってるひとは、チェックをつけてOKしてください。
二度と聞かれません

Eclipseが起動したら、Android Toolsをインストールしちゃいます
  1. Help -> Install New Software...
  2. Add
  3. Name:Android Plugin Location:https://dl-ssl.google.com/android/eclipse/
  4. OKすると、Installダイアログの真ん中ぐらいに、Developer Toolsって出てくるので、チェック!
  5. Next -> Next -> Accept -> Finish
あとは、のんびり待ってください。
途中でSecurity Warningとか出るけど、きにしないーい
ADTのインストールが終わると、Eclipseの再起動をしてほしそうなので、やってあげてね

Eclipseが再起動してから、Window -> Preferencesで設定画面を開くと、Androidが追加されていますね?
されてなかったら大事ですよw
いままで、この時点でAndroidがなかったことがないので、対処法は知りません。すいませんが、そんなことになったら、解決方法を教えてくださいm(_ _)m

で、Androidを選択しよう。
SDKの場所がわからん、と言われているので、ここは気前よく教えてあげましょう。
困るのわしらだしw
教えてあげるのは、SDKのフォルダ
Windowsなら
C:\Android\android-sdk-windows

Applyボタンをクリックすると、Platform Toolsが云々とか言ってきますが、いったん無視
OKしてけしちゃいましょ

素のEclipseに戻ったら、Androidのマネージャを起こします。
Window -> Android SDK and AVD Manager

起動したら、左側のリストに「Available packages」とあるので、選択
すると、右側のリストに選択肢が現れてくるはず
地図とか使わなければ、Android RepositoryだけでOK
ほかにもいろいろやりたい場合やメーカ別のAPIなのかな、そういったものが必要なら、Third party Add-onesをどうぞ

これ、結構時間かかると思うので、気長にお待ちくださいませ

終わったら仮想端末をつりましょう。

右側のVirtual devicesを選択しましょう
右側のリストが変わります。なにもなくて寂しいですが、いまだけです
Newボタンをクリックすると、仮想端末の作成画面になるので、適当に入れといてくださいw

Name:hogehoge2.3(バージョン入れておくと便利かも)
Target:Android 2.3.3 - API Level 10(バージョン3シリーズはタブレットなので仮想端末でかいです)
SD Card:32MiB(これくらいあれば。ま、お好きにどうぞ)

Create AVDで作成!
成功したら、Startで仮想端末を動かそう

あ、そだ。
ひとつ忘れてました。
ADTをインストールすると、Adnroid SDKフォルダにPlatform-toolsとゆーフォルダが出来上がっています。
これもパスを通しておいてください。

それでは、また




https://dl-ssl.google.com/android/eclipse/

2011年9月18日日曜日

TortoiseSVNライクなクライアントをUbuntuで

バージョン管理をコマンドでやるには、勉強不足なようで、仕事で使っているTortoiseSVNが恋しくなってきました。

そこで探してみタラバ、見つかりました。

RabbitVCS

とりあえず、インストール手順。

$>sudo add-apt-repository ppa:rabbitvcs/ppa
$>sudo apt-get update
$>sudo apt-get install rabbitvcs-core rabbitvcs-nautilus rabbitvcs-thunar rabbitvcs-gedit rabbitvcs-cli

なんの問題もなく、あっさりいんすこ完了

ログアウトして、ログインしないと、表示が変わらないので注意してね

2011年9月16日金曜日

かっぱ巻きLT 反省

また放置しちゃったよ、このブログ・・・orz

でも、気を取り直してがんばっていきましょう。

すでに1週間以上の時間が経過してしまいましたが、かっぱ巻きでのLTの反省など少し

初めてのLTにしては、自分的によくまとまっていたかな、と自画自賛したり・・・
初めてのLTであることを言わないで発表できたのは、良い点ではなかったかと思います。
まぁ、初めてが武器になるような外見でもないわけですが・・・

あと、ちゃんと声が出たのがよかった。
高座とか舞台とかと違って、控え室で発生練習みたいなことができるわけではないので、ちょっと心配だったですよw
みんなよく声でるなぁ、なんて思ってました。
発表までにできるだけしゃべるように気をつけたりしてみた。

使い慣れないPCで発表に望んだのはちょっとマチガイでした。
解像度の問題だとは思うんだけど、幅が小さくなって表示されてまして、すぐにどうにかできるとも思えなかったので、そのまま発表!
かっぱ巻き参加の皆様、申し訳ありませんm(_ _)m

席の取り方にも、失敗したかな
細長い会議室の中央に机があって、両サイドが席になっていて、短い辺の一方にスライドを映す形式でずっとやってきたので、発表するときの状況はわかっていたはずなのに、真ん中に座ってしまったのは失敗だった
スライドを見ながら話すと、ほとんどの人に背を向けることになっちゃうし、
PC見ながらだと、うつむいちゃって声が聞こえなくなっちゃいそうだし、
聞いてる人を見てると、スライドの内容わかんないし。
スライドとPCと皆さんを順繰りに見ながら話してしまって、ちょっと落ち着かなかったかなw

スライドの操作も細かく間違えていたのはちょっとマイナスポイントだった。
あと、話を追加してしまって、時間がわからなくなっちゃった。
ちゃんと5分で終われたかな?心配っす

次やるときには、気をつけヨット

こんな感じでしたが、懇親会とかでは、過分な評価を頂いちゃいましたw
うれしいっすね。
聞いてもらえるのって、やっぱり楽しいので、これからどんどんいっちゃおうかな

2011年9月8日木曜日

かっぱ巻きLTの作り方メモ

かっぱ巻き行ってきた。
楽しい読書会と言うか、勉強会と言うか、まぁ、すごく楽しかった。

最終回ということもあって、ちょっと調子にのってLTしてみた。
立候補さ、ふふん

で、LTねたを作ってたとき、ちょっと気づかされたことがあったので、まとめておこうかな。
ちなみに、作ったスライドはこっちねw
興味があったらどぞ
https://docs.google.com/present/edit?id=0ASkUIbcN-11GZGdjN3htM3JfMjloZjlya3ZkMw&hl=ja


ねた作りにマインドマップを使ってみた。
久しぶりに書いてみたけど、面白いねぇ。
絵かいたり、色ぬったりはしなかったけど、シナプスつなげていくのは面白い。
考えていたことの再現が簡単だったような気がするね。

いま、マインドマップはブラウザでかけちゃうんだけど知ってた?
EasyStepってゆーんだけど、興味があったらどぞ


本番前々日

LTは5分
最初は思いつくままに広がっていった
まぁ、ここで制限すると、小さな話になっちゃいそうだったんでとにかく広げた
最初に選択するサイズを間違っちゃって、おおきくとびだしたけどねw

頭のなかにあったねたを書いていくと、追加ねたが出てくる
メモ代わりに追加

LTには自己紹介があったっけ、とゆーことで、自己紹介も追加
導入部なんで、軽めに、ちょっと面白いのとかいれて

この時点で、ストーリーはまったくできてなくて、ちょっと不安だったりした。

とりあえず、一晩寝かせた。


本番前日

前日に作ったマインドマップを開いて俯瞰してみた
前日考えていた内容がおおよそロードされる

全体を見て、どんな順番で、どの辺を話していくか検討

最初の自己紹介は決まっているので、ここは迷わず
自己紹介で剣道やってることを伝えて、剣道の話にもってく
「こわい」をキーワードにして、プロジェクトの話につなげて

・・・オチがない

けど、スライドは作っちゃお
とにかくスライド作り

実はLTはこれが初めてなんだけど、プレゼンはしたことが無いわけではない。
ここでは通常のプレゼン資料的な作り方をした
1枚のスライドに、たくさんしゃべる内容を書いてくっていうやつ
なれてる方でやって、とにかく考える方に重点をおきたかったので
書きやすさ優先で、LTにこだわらず作ってみた

でもオチが・・・

不安を抑えつつ、スライド作り
頭にあるものをとりあえず書き出していくんだけど、
フシギなもんで、スライドを作っているうちに、ストーリーが浮かんできた
ストーリーがあれば、オチも考えやすいってもんさ

手を動かすって重要!
  • ストーリーにあわせて、スライドの移動
  • 足りないスライドを追加
  • いらないスライドの削除
  • まよったら、マインドマップを俯瞰
こんな感じでサイクルしてたら、初版完成!

オチもきれいにまとまって、これなら安心

あ、でも、あんまり剣道寄りなのはどうかな、とか、これじゃあきれいすぎるとか、なやみも尽きず

ちょっと無理やりつながってる部分もなくはないけど、いったん完成


本番当日

寝て起きると、本番当日
いやいや、緊張しますなw

頭の片隅にずっとLTが張り付いている感じ
ちょっと時間があると、ねたについて考えてるの、ちょっとわらったwww

で、ひらめきますよ、そんなときは!
前日作ったLT、全体的にぼやっとしてる、と思った。
内容がプロジェクト全体に広がっていて、聞く人がどういう場面を想像するかが想定しにくものになっている気がした。

そこで、見直し

もっと場面を絞ることにした。
剣道ねたは、怖い瞬間を打ち込まれるときに限定
プロジェクトねたは、進捗失敗のときの報告に限定

そうすると、全体がきゅきゅっとしまる感じがして、良いのではないかと

このとき、スライドをLTっぽくしていった
分割して、文字を大きくして

5分で話せるボリュームになっているか、最終確認
よし!ぴったり
いや、ほんとに、ぴったりだったんだって。

発表のこととか、反省とかは、また次回で。

2011年9月5日月曜日

第3回スマドラ会議

月に一度の開催となってきましたが、どうにか参加してきました。

今回は、リアルなお知り合いがゲスト参加しました。
のに、遅刻しました。すいませんm(_ _)m

ゲストは帰るころには正式に加入しました。


パッケージ変更

前回からかなりクラス構成がかわったBump Recorderですが、さらにパッケージが変更になりました。
コアの計算部分は、やはり簡単には手を入れられないので、コアな部分とその他の部分をきっちりわけて、パッケージ化しました。
これでUI部分とかアップロード部分とか、機能単位でソースに手を入れることが簡単になりました。


画面への要求固まる

今回は画面への要求がはっきりとした形になったところが大きな前進でした。
前々からグラフ表示したいよね、と語られていたものの、イメージが固まらなかったのですが、画面のイメージと要求がドキュメントになりそうなところまで到達です。
お仕事のときには、吸収して書き出すだけなので、あまり大変だとおもったことがないのですが、自分たちで作っているときって、結構ドキュメントになりにくいのね。


やることリスト作成

みんなで進めていくには、やっぱり必要かな。
今回の打合せで出てきた要求をまとめて、担当者を振ってみました。
だんだんシステム開発的な感じになってまいりました。
トラッキングできると良いのですが、XP-Devであとからトラッキングを追加する術がみつからず、あえなく断念。一旦エクセルで管理することにしました。


横で表示すると起動しないバグ修正

これは初参加の方が発見したバグですが、タブレットで横表示している状態でBump Recorderを起動させると起動しないというバグです。
これは結構苦労したみたいですが、なんとか修正されました。
これも大きな成果です。

ちょっとよくわかっていないのですが、onCreateイベントが横方向のときに限って2度発生していることが原因のやうでした。
では、なぜダブってイベントがコールされたのか?

理解していることを列挙すると、

  1. 横方向でアプリが起動する
  2. onCreateが発生する
  3. その後、onPauseが発生する
  4. 別アプリが立ち上がったときのために、ここでfinish()していた
  5. またonCreateが発生
onPauseでfinish()したのがいけなかったようで、この処理をなくしたら、縦と同じように動作しました。
横にしていると、どこかでonPauseが呼ばれるのかしら?
難しいですね。


スマドラの情報はこのページを見てくださいね。
https://sites.google.com/site/smartdrivemeter/home
   
それではぁ~

2011年9月2日金曜日

eclipseの謎

もしかしたら、簡単なことなのかもしれないけど、ちょっとなぞな現象が発生したので、めも。
だれか同じことで困ってっかもないからさ。

現象

  • インポートしたプロジェクトがコンパイルできない
  • type java.lang.Object cannot be resolvedとか出る


原因

  • これっていうのはないけど、エラーが出る前にやったことは以下の通り
  • eclipseのworkspaceに設定されているディレクトリを~/workspace/eclipseにしたままで、対象のプロジェクトの格納ディレクトリを~workspace/androidにリネーム
  • その後、~/workspace/eclipseを新たにmkdirしたことが原因ではないかと思われる。

全然違うかもしれないけんど


対応

  • 新しいプロジェクト(JavaでOK)を作って、コンパイルして実行した


本当に治っているのかどうかは不明
とりいそぎ、メモってことで

2011年8月31日水曜日

[Android]Local Service

ああ、またブログかいてない・・・orz

気を取り直していきましょう!

今回はAndroidねた。しかもサービス。
これ、よくわかんないんだよね。なので、自分まとめ。

そもそも、ServiceはLocalとRemoteとあって、Remoteはいろいろ面倒らしい。
Serviceがよくわかってないので、簡単なほうから着手。

Serviceの特徴?
  • 状態は3つ
    • onCreate
    • onStartCommand
    • onDestroy
  • 生きている期間は、動き始めるときの号令の掛け方によって違ってくる
  • 号令の掛け方は2つ
    • startService
    • bindService
  • startServiceで始まった場合は、
    • 起動後はActivity側からの口出しはお断り
    • 号令をかけたActivityがいなくなったて平気
  • bindServiceで始まった場合は、
    • bindでつながってる
    • つながってるから、Activityから口出しできる
    • つながってる間だけ生きられる。
    • つなりが切れちゃうと死んでしまうなぁ
  • Service -> Activity の口出しはいつでもできるけど、Intent使ってね

サンプルないとだめかな?

2011年8月17日水曜日

64bit ubuntu adbが動かなかった

いつまでも古いPCでAndroidでもないので、新しいPCにAndroid環境構築。
新しいPCは64bit。
ま、あまり影響ないよね、と油断してたら、adbまわりでエラーがでた。

ADTインストール中にも、adb kill failureとか見たような気が・・・
すんだ事を気に病んでもしかたがない、ポジティブシンキングで行こう!

症状は、エミュレータ作成しようとするとエラーになって作れない。


tools/mksdcard: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
Failed to create the SD card.
Failed to create sdcard in the AVD folder.

libstdc++.so.6?

ldd adb 実施。なにが足りないのか、分かるかな。

linux-gate.so.1 =>  (0xf779a000)
librt.so.1 => /lib32/librt.so.1 (0xf7781000)
libncurses.so.5 => not found
libpthread.so.0 => /lib32/libpthread.so.0 (0xf7767000)
libstdc++.so.6 => not found
libm.so.6 => /lib32/libm.so.6 (0xf7741000)
libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0xf7725000)
libc.so.6 => /lib32/libc.so.6 (0xf75ca000)
/lib/ld-linux.so.2 (0xf779b000)

libncurses.so.5
libstdc++.so.6

両方分かりませんが。
ググったら、g++-multilibが必要らしい

インストールした。

Ubuntu ソフトウェアセンターで、「g++」で検索したら、いくつか出てきた。
ぐぐる先生の言う通りに g++-multilibと書いてあったものをインストールした。

ldd adb よもう一度。

linux-gate.so.1 =>  (0xf7728000)
librt.so.1 => /lib32/librt.so.1 (0xf770f000)
libncurses.so.5 => not found
libpthread.so.0 => /lib32/libpthread.so.0 (0xf76f5000)
libstdc++.so.6 => /usr/lib32/libstdc++.so.6 (0xf760a000)
libm.so.6 => /lib32/libm.so.6 (0xf75e4000)
libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0xf75c8000)
libc.so.6 => /lib32/libc.so.6 (0xf746d000)
/lib/ld-linux.so.2 (0xf7729000)

libncurses.so.5が相変わらずない。

普通にncursesをインストールしてもダメ。
上のldd結果をよーく見ると、/lib32というのが見えますね。
32bit版が必要なのです。

そこで、32bit版のncurses5を探します。

Ubuntuソフトウェアセンターにはありません。
探し方が悪いかもしれませんが、ないのでコマンドで。

apt-cache search ncurses

おぉ!たくさんある。

apt-cache search ncurses | grep lib32

これでOK
見つかったncursesの32bit版をインストール

sudo apt-get install lib32ncurses5

linux-gate.so.1 =>  (0xf774f000)
librt.so.1 => /lib32/librt.so.1 (0xf7736000)
libncurses.so.5 => /lib32/libncurses.so.5 (0xf76fd000)
libpthread.so.0 => /lib32/libpthread.so.0 (0xf76e3000)
libstdc++.so.6 => /usr/lib32/libstdc++.so.6 (0xf75f8000)
libm.so.6 => /lib32/libm.so.6 (0xf75d2000)
libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0xf75b6000)
libc.so.6 => /lib32/libc.so.6 (0xf745b000)
/lib/ld-linux.so.2 (0xf7750000)

お、全部埋まった。

エミュレータ作成・・・成功!
動くかな
エミュレータ実行・・・まさかの失敗。

SDL init failure, reason is: No available video device

なんと!
しらべていったら、32bit版のライブラリがいろいろ足りないらしい。
そんなときは、ia32なんていう便利なものがあるので、いれるといいよ。

sudo apt-get install ia32-libs

よし、エミュレータ実行

動いた!
64bitっていろいろこまかく発生するねぇ

動いてよかった。


2011年8月11日木曜日

LogCatにログが表示されていなければDevices

あるとき、ログがLogCatに表示されていないことに気づいた。

サンプル作りばかりやっているので、基本的にToastを使っていたので気づかなかった。
めずらしくLogを使ったので、ログ表示したら、こんなことになっていた。

あら?

Google先生に聞いてみました。

解決方法は、Devicesでエミュレータを選択する、とのこと。
あー、選択するとは思ったけど、LogCatにそんなのないなぁと思っていたら、Devicesかぁ・・・

Devicesは、メニューバーの Window -> Show View でダイアログを表示、それから、Androidカテゴリをクリックすると、出てきます。
なれないうちは、便利機能を見逃すよねぇ


2011年8月8日月曜日

AmaterasUML

チンさむアプリソースから、現状をクラス図とシーケンス図におとした。
前々から使用しているツールを使った。
とっても使いやすいし、コード読みながら書くと、けっこうちゃんと読むので重宝している。
文章とか絵とかからモデリングしていくのも好きなんだけど、コード読みながら書いていくのも好きなんですよ。

ところで、チンさむは個人のものではないので、UMLなんてやってない方もいらっしゃるかも知れない。
それに、正確に詳細にしようとすると、手作業は面倒だ。

せっかくeclipse使ってるわけだし、プラグインでも探すか!

で、やってきました。

とりあえず、みんな使ったこと無いので、フリーの先頭のものをチョイス。
スケッチ的に使えるみたいなのも好みなので。

さっそくインスコ・・・と行きたいとこですが、ちょっと手順あり。

1.GEFインストール

AmaterasUMLはGEFが必要とのこと。
GEFはGraphical Editing Frameworkのことらしい。
まずは、こいつをインスコ!

いつも通り、Installダイアログを召還

Help -> Install New Software...

Installダイアログをだしたら、すべてのサイトを選択して、GEFをみつけるべし!

[Work with:]--All Available Sites--
[Name]Graphical Editing Framework GEF SDK


2.AmaterasUMLインストール

ご本尊です。拝んでくださいw

これは、ここからダウンロード。
ページ前半にあるダウンロードのところから、AmaterasUML_1.3.2.zip(2011/8/7現在)をダウンロードする。
解凍すると3つファイルがあるので、eclipseのdropinsへコピー。
直下でも良いけど、気持ち悪いって人はフォルダを掘ってちょうだい。
たとえば、AmaterasUML_1.3.2/eclipse/plugins とか。
eclipse/pluginsは必須なので、お忘れなく

コレでいんすこ完了っす。


使い方を簡単にめも

File -> New -> Other といって、AmaterasUMLからダイアグラムを選択して、UML開始!
ここにAmaterasUMLがないというあなた!
いんすこ失敗です。
失敗の原因になりそうなのを列挙しましたが、nouzui2007は失敗しなかったので、想像です。
  • GEFいんすこしましたか?
  • dropinsフォルダにjarをコピーしましたか?
  • dropinsフォルダ下に、フォルダ掘った人は、eclipse/pluginを掘りました?
楽しいUML Lifeを

2011年8月4日木曜日

アジャイルサムライ読書会 in 湯島道場 2回目

アジャイルサムライの読書会に行ってきたので、思ったことを記録。

良いものを作るという思い、みたいなものを共有する、これが大事なんだと思う。
ポイントは共有


みんなそれぞれに思いはあるわけだけど、
議論してすりあわせていくと、同じ方向を向くようになってくるし、
そうなれば、結論に対して共感できたり、愛着がわいたりするのかもしれない。

良いものを作るというのは、きっとみんなやりたいことなんだと思う。
今はそう思っていない人だって、むかしはそう思っていたんじゃないかな。
ちょっとしたことで挫折することだってあるわけだから、何かで諦めたのかもしれない。
そんな良いものを作るなんて考えてない人だって、悪いものを作るとは考えていないだろうから、良いものを作る思いが共有されれば、事態が変化するのではないか、と期待したりする。

今はちょっとした規模のプロジェクトの一部に組み込まれているのだけども、このプロジェクトが何をしようとしているのかを知ろうともしない方々を見かける。
この方々とお話しすると、たいていイライラさせられるわけだが、考えてみれば、彼らだって別にプロジェクトの邪魔をしようとか、お客さんに悪いものを提供しようとかの悪事を考えているわけではない、と思う。
積極的な参加をしていないだけではないのか、と考えた。
そうであれば、思いが共有できたら、あのチームだって変わるんじゃないか、なんて熱く思った夜だった。

まぁ、こっちがあっちを悪く思っているので、あっちだってこっちを悪く思っているかもしれない。
その変はぶっちゃけて話し合えばいいんだと思う。
それこそ河原でなぐりあうみたいなノリで。

ところで、今回の読書会では、ドーナツが出た。
ごちそうさまでした。

ドーナツとコーヒーで「ご近所さん」にご挨拶、というくだりがあるが、知らない人より知った人によくするのはどこでも同じなんだな。
であれば、ちょっとしたことを惜しんで知らない人同士でいるよりは、知った人になっちゃったほうが良いよね
って、けっこう難しいんだよね。声をかけるタイミングとか。
はかっていると大抵逃してしまうのがタイミングってやつなので、先の先で攻めるのが良いのかもしれない。

あ、「先の先」は剣道で良く使われる言葉で、とにかく相手より先に動くこと。
相手が攻めきていても守っていてもお構いなし!
空気を読まないのも案外重要なスキルかもしれない。

いろいろと考えたし、話したし、聞いたしで、楽しい読書会でした。
みなさん、お疲れ様でした&ありがとうございました

#agilesamurai #湯島道場

2011年8月1日月曜日

エミュレータでセンサーテスト

このページを参考にしました。ありがたや、ありがたや
http://technopocket.sakura.ne.jp/tips/android_sensorsimulator.html

では、早速

センサーエミュレータをセットアップする

1.ダウンロード&インストール
このサイトにいって、sensorsimulatorをダウンロードしよう
http://code.google.com/p/openintents/downloads/list

2011/6/22時点での最新版はこれ
sensorsimulator-1.1.1.zip

インストールは簡単
適当なところに解凍するだけです。
例)C:\Dev\sensorsimulator-1.1.1

解凍先のディレクトリ(例だと、C:\Dev\sensorsimulator-1.1.1)を$SS_HOMEとしましょう。

解凍がすんだら、シミュレーターを動かしてみましょうか

> cd $SS_HOME\bin
> java -jar sensorsimulator-1.1.1.jar

Windowsだと、ダブルクリックで起動しますよ
あ、Javaはインストール済みの予定です。あと、Android開発環境もね。

動いたら、携帯(ちょっとしょぼい感じの箱の絵)をぐりぐりしてください。
いろいろ数値が変わった?


2.デバイスへのセットアップ

エミュレータを起動しましょう
デバイスは、テストに使うものでお願いしますね

> start emulator -avd hogehoge

hogehogeには、作成済みのデバイスを指定してください

起動したら、パッケージインストールっす
($SS_HOME\binにいるよね?)

> adb install SensorSimulatorSettings-1.1.1.apk

こんな感じになると、インストール成功です

> 290 KB/s (60397 bytes in 0.203s)
>         pkg: /data/local/tmp/SensorSimulatorSettings-1.1.1.apk
> Success

デバイスにSensorSimulatorがあるはず!!

SensorSimulatorを起動してください。

IPアドレスがありますね?
そこに、エミュレータに表示されてたIPアドレスを入力してください。
ポートも同じです。

入力した?
そしたらね、Testingをクリックしましょう。
Connectボタンをクリックすると、有効になっているセンサーが一覧されるので、試したいものをチェックしちゃってください。

そしたら、おもむろに、エミュレータの携帯をぐりぐりしましょう
デバイスの数値が変わった?
そしたら、セットアップ完了っす

でもこれ、作っているほうのソースをテスト用に変えないといかんのだよね~
なんとか解決方法ないもんかな

おつかれ~

第2回スマドラ会議

ブログの更新が・・・

気を取り直して行きましょう。

7/31(日)は、スマドラ会議の第2回目でした。

Bump Recorderについては、こっち
スマドラについては、こっち

日曜に出かけるのはなかなか大変ですが、今回の目玉はBump Recorderの構造説明なので、
これからソースいじろうってぇのに、行かないわけには行きません。
家庭内のキーマンに交渉して、なんとか行ってまいりましたw

やっぱりちゃりで行きましたよ。
そして、迷いました。
ええ、自信満々で逆に曲がりましたとも!!

それはともかく。

前半は、簡単な物理の時間です。
お題は「加速度から距離を取得する」です。
久しぶりの勉強です。
拒否る頭をなだめすかして、お話についていきました。

簡単にまとめると、

  • A⇒Bの距離が90kmあって、1時間で到着すると、スピードは90km/時間 = 1500m/分
  • A⇒B間のある地点aでは、400m/分で、2分後には700m/分になっていたとすると、加速度は300m/分・分←(分・分が気に入りましたw)
  • センサーは、加速度を教えてくれるので、逆算していけばいいと思うよ

逆算のためには、いろいろと準備とか前提とかが必要になってしまうわけですが、それはまぁ、それとして・・・

大変なのは、逆算中に誤差が出るので、キャンセルする仕組みがないといかん、と言うことらしいですわ。

あとは、傾きね。
このアプリ、端末をダッシュボードあたりに固定して車を走らせて使うのだけども、このとき路面に対して水平かどうかがポイントになってくるとのこと。
水辺でなければ、その分補正しないといかんわけですよ。

いろいろと刺激的でした。重力加速度なんて、久しぶりに聞いたよw


さてさて、後半はもくもく会となりました。
みんなでソースをいじってみました。さすがにコミットはできなかったけど。
やってみたら、みんな手をつけるところがばらばらになって、なんか楽しかったな。
コミットする手順とか、方法とか、なんかその辺をうまく決めてかないと、混乱しちゃったりするかも。
次回課題にでもどうかな?

いろんなことを知った一日でした。
あ、帰り道も勢い良く間違えましたwww

2011年7月14日木曜日

DVDコピーの手順

DVDコピーの手順をちょっとまとめようと思ったので、やってみました。
ツールの使い方や初期セットアップなんかは、またの機会にします。

1.DVD→HDDへISO形式で出力
2.ISOファイル→DVD 焼き

これだけです。

DVD→HDDはDVD Shrinkでできると思いますが、
エラーが出ちゃうような場合は、DVD Decrypterで吸い出しましょう。

焼きは何でやっても変わりませんが、ディスクがもったいないので、
それなりに信頼性の高いものを選びましょう。
あと、情報が多いほうが良いです。

マルチドライブがついていたなら、B's Recorderとかついてきた可能性大。
よく探しましょう。
このツールも簡単です。
なければ、DVD Decrypterかな?

では、がんばってください。

参考サイト

DVD Shrinkインストール&セッティング
http://www.backupstreet.com/tools/dvd_shrink.html

DVD Shrinkでコピー
http://www.backupstreet.com/backupTec/dvd/dual-shrink.html


DVD Decrypter
http://www.geocities.jp/dvdcopy1015/soft/decrypter.html#1

2011年7月13日水曜日

ATNDの自分参加分をGoogle Calendarに表示できたんだ

知ってるよ!
とゆーツッコミは軽く流して。

知らないとゆー人は見ていってよ。

ATNDのカレンダーマーク、気になってた人いませんか?
nouzui2007はうかつにも、最近まで、このマークに気づきませんでした。

これは、Google Calendarに登録できるかも!
と、遅ればせながら思ったわけですよ。

調べてみたらば、あるじゃないですか。
http://d.hatena.ne.jp/Ehren/20091225/1261758685

2009年ですよ、どーゆーことですか#

で、書いてある通りにやってみました。

http://api.atnd.org/events/?user_id=[ATNDのユーザーID]&count=100&format=ics


不発です。
出てきやしません。
http://api.atnd.org/events/?user_id=xxxxx&count=100&format=ics


やっぱ古いからダメなのかねぇ、なんて思いながら、ユーザIDにイベントIDを指定していることに気づいたりしました。
これは、nouzui2007なの?

http://api.atnd.org/events/?user_id=nouzui2007&count=100&format=ics


変えて登録しました。
やっぱり不発。

うぬぅ~

で、APIを調べました。
http://api.atnd.org/

TwitterIDで検索できるようにしました、ってなにこれ、これなんじゃないの?

http://api.atnd.org/events/?twitter_id=nouzui2007&count=100&format=ics


やったー

出てきましたよ、カレンダーに!
よくやった、よくやったよぉ(T T)

これで少し楽ができるね

Google Apps API顔見せ会?

7/12は六本木。
どれくらいぶりですか?
ってゆーか、ヒルズができたときにはすでに行かなくなって久しいわけですが。。。

とゆーわけで、今回が初ヒルズ。
えーえー、ちゃりで行きましたとも。

麻布十番とか、坂を覚悟していましたが、たいした坂もなく無事到着
と思いきや、最後、六本木通りまでの少しがすごい坂でした。やられた

Googleへお勉強にやってきました。

今日は、Google Apps API。
なに、それ?

と思った人!

同じです。nouzui2007も分かりませんでした。

いろいろと思うところがありましたよぉ
Googleって知らないうちにとってもエキサイティング

とりあえず、ここでGoogle Apps Scriptをやってみてちょーだい
おもしれーから

http://code.google.com/intl/ja/googleapps/appsscript/articles.html

ちなみに、nouzui2007は、Beginnerが終わったところです

2011年7月7日木曜日

Hangar Fight行ってきたよ

チョー久しぶりの勉強会に行ってまいりました。
ってゆーか、何年ぶりだろ?

ここんとこ、技術関係にはご無沙汰でしたが、昨日はDevLOVEのHangar Flight Ruby編に行ってきました。

会場は、渋谷マークシティ・ウェスト18F IBMイノベーションセンター(?かな)
渋谷ですよ。
こっちも何年ぶりですかねぇ

渋谷駅で降りて、たぶんこっち、とゆー方へ突進!
階段を上り、エスカレーターを上り、ウェスト方面へ行くにつれて、上へ上へと連れて行かれます。
ちょっとずつ不安になるも、先へ先へ

結局、ウェストのオフィスエリアに着いたときには、4Fにいました。

まだ奥があるようでしたが、奥まで行って、18Fについたら戻らなきゃいけません、ってなことになると悔しいので、一番手前のエレベータに乗りました。

あー、ハズレました・・・
5Fまでしか行かないエレベータにのりました・・・しょーがないじゃん!知らないんだから!!
ま、いいけど

さて、到着したらば、受付です。
エントランスにはIBMの人がいて、「DevLOVEはこちらです」と案内してくれていました。
ひとつしか入り口はありませんが、親切です。

入り口を入るとすぐにDevLOVEの人に声をかけられて受付です。

会場に入ると、広いセミナールームでした。
席は自由とのことなので、今いる人の近くに座ります。
話かけやすいときに、すぐ話せるようにしとかないとね。

どうやって話かけようか迷っているところに、会場の人から
「ミッションを呼んで実行してくださいね」
と声がかかりました。

ミッション?

見ると、机の上に紙がのっています。
なにこれ?
「後から席についた人に、お菓子を手渡して自己紹介する」

っえーーーー

ちょっと、初参加でハードル高くないですか?
あ、でもきっかけはもらえるわけか・・・じゃ、やってみよ。

とゆーことで、近くにいた人に自己紹介です。
この自己紹介は、受付のときにもらう自己紹介カード&名札で行います。
さっき「まっきー」とか書いちゃったよ。

さて、そんなことをやっているうちに、いよいよ開始です。
今回のお題は「おすすめ本」でした。

かぶっていたのは、メタプログラミング Ruby なので、これが一番気になったかな?
近くに座っていた人も、おすすめ本にしてたし、読んでみるかな

本以外にも気になるキーワードがあったので、まとめておきましょう。

Rails情報源の歩き方
Railの情報をネットで集めるための方法についてまとめているサイトです。
ぐぐってみてね

品質よりスピード
バグは客にばれる前に直せればおk
それよりスピード追求 というポリシー
極端だけど、ポリシーとしてはありだと思った

非忠誠の誓い
これは面白かったね。
「特定の方法論や考え方への信念のために、他人の意見に耳を貸さない」のはやめて「今の課題にとってうまい方法かどうか」で議論しましょう、という宣誓です。

オリジナルはこちら→http://alistair.cockburn.us/Oath+of+Non-Allegiance
日本語はこちら→非忠誠の誓い(Oath of Non-Allegiance)
誓ったので、ワッペンゲット!


エキサイティングな夜でした。
とりあえず、Rubyでなにか作ろう!!

2011年6月20日月曜日

HandBrakeをインスコしてみた

ちゃんと見たい映画は、大きな画面でみたほうが良いかもしれないが、
ちょっと見たい映画は、iPhoneでどこでも見れると良いと思う

どや

そんなこんなで、こんばんは。nouzui2007の混沌とした記録が始まりました。
今日はiPhoneねた。

巻数の多いドラマやアニメ、ちょっと見てみたい映画など、ちょっとした時間で
見れれば良いや的な映像はiPhoneで持ち歩くと良いです。
なんとなれば、どこでも見られるから。
どこでもはトイレも含まれますが、いろいろと差し障るので気をつけてください。

とりあえず、WindowsでもUbuntuでもつかえるツールがあったので、ご紹介。

HandBrake

使い方は今後の展開に任せるとして、まずはインストールです。
このソフトはリポジトリ登録しないといけません。
まずは、場所の確認です。

HandBrakeのリリース版情報は、このページにあります。
一応尋ねてみてくださいね。
https://edge.launchpad.net/~stebbins/+archive/handbrake-releases

さて、リポジトリへの登録情報をゲットしたら、登録しちゃいましょう。
登録したら、HandBrakeゲットです。

$ sudo add-apt-repository "ppa:stebbins/handbrake-releases"
$ sudo apt-get update
$ sudo apt-get install handbrake-gtk

尾張です。
あ、間違えた。
:s/尾張/終わり/g

アプリケーション→サウンドとビデオ→HandBrake で起動できればOKかな。

使ったら教えるね。

ではでは

2011年6月19日日曜日

jpegをまとめて圧縮

ubuntuばんざい!
おはようございます、nouzui2007です。

今回は、ubuntuねたです。鮮度はnouzui2007的に最高です。

ImageMagickでjpeg圧縮

これ、知ってました?
nouzui2007は、今日まで知らずに生きてまいりました、恥ずかしながら。
いやいやいや、すばらしいですね、コマンドライン。
いろいろできちゃって、嬉しくなっちゃいます。

さて、さっそくインストールですが、いつもの感じで簡単です。

$ sudo apt-get install imagemagick

マニュアルが欲しい人は、マニュアルもインストールしときましょうか。

$ sudo apt-get install imagemagick-doc

次は、使い方です。
圧縮する方法ですが、1コずつ圧縮するには、こんな感じです。
page001.jpgを90%に圧縮しています。

$ convert page001.jpg -quality 90 page001.jpg

あ、でも、これやっちゃうと元のファイル消しちゃうんで、出力側のファイル名に何かつけるとか、バックアップ取っとくとかしたほうが良いですよ。
こんな感じ。

$ convert page001.jpg -quality 90 converted_page001.jpg

「それじゃぁ、GIMPとか使って、1コずつ圧縮してくのと変わんないじゃん」
と突っ込んだ人、ありがとうございますm(_ _)m
突っ込めなかった人、次回頑張ってください。
お待たせしました、まとめて処理する時間です。

$ ls *.jpg | xarg -I{} convert {} -quality 90 converted_{}

これは、カレントディレクトリの拡張子がjpgのファイルを取得して、それぞれのファイル名に"converted_"をつけながら、90%に圧縮してくれます。

xargって使ってみました。
おもしろいね、これ。いい感じです。
for使って処理しても良かったけど、新しい方法をゲットしました。

2011年6月17日金曜日

Code Eval (コードをさらすのでご注意ください)

Fizz Buzzはこんな感じでしたの巻

あ、コードをさらしちゃうので、自分でがんばりたい人はパスしてください。
ちなみに、Rubyです。

class FizzBuzz

 attr_accessor :a, :b, :num 

 def initialize(a, b, num)
  self.a = a
  self.b = b
  self.num = num
 end

 def generate
  arr = []
  num.to_i.times { |i|
   str = "" 
   if ((i + 1) % a == 0)
    str = "F"
   end
   if ((i + 1) % b == 0)
    str += "B"
   end
   if (str.size == 0)
    str = i + 1
   end
   arr << str
  }
  arr
 end

 def print
  puts generate.join(" ")
 end
end

f = ARGV[0]
if File::file?(f) && File::exists?(f)
 begin
  File::open(f).each { |l|
   arr = l.split(" ")
   fb = FizzBuzz.new(arr[0].to_i, arr[1].to_i, arr[2].to_i)
   fb.print
  }
  exit 0
 rescue
 end
end
exit -1

Code Eval

Code Evalって知ってる?
知ってたら別にいいです(・ε・)ブーブー

http://www.codeeval.com/

知らない人で、プログラムやる人、必見です!
面白いです。すごいです。

このサイトの目的は、エンジニアを力量を効率的に、専門的に確認することみたいです。
なんとなれば、採用担当者がプロなエンジニアでないことが間々あることだから。

そんなあなたに、Code Eval!!


って、関係者じゃないですよ。

面白そうだったので、登録してみました。
無料でOKです。

ログインすると、ダッシュボードがありますが、説明は割愛です。
早速、OpenChallengeへ行きましょう。

ここには、難易度3つに分かれた課題が一覧されています。
難易度はお任せします。
nouzui2007はチキンなので、いきなり高難度にはチャレンジしません。
とりあえず、Easyの1番目をやるタイプです。

Easyの1番目は、Fizz Buzzです。
クリックすると、仕様の説明があります。
次の仕様は、書いてある内容とは違って、勝手に要約しました。
つくるプログラムがイメージできればOKです。
残念ながらイメージできなかったぁ、とゆー方は、本文を読んでくださいな。

このプログラムはテキストファイルを取得します。
テキストファイルは、数字A、数字B、数字Cの順序で、スペース区切りです。
テキストファイルから数字Aから数字Cまで取得したら、1から順番に数字Cまでカウントアップしていきます。
途中、数字Aで割り切れる数の場合は、その数字を「F」に置き換えます。
また、数字Bで割り切れる数の場合は、その数字を「B」に置き換えます。
数字A、数字Bのどちらでも割り切れる数の場合は、その数字を「FB」に置き換えます。
結果は、1から順番にスペース区切りで出力します。
Input
3 5 10
Output
1 2 F 4 B F 7 8 F B
どうですか?
イメージできました?

このサイトのすごいところは、こんな問題が全部で30問以上も用意されているところです。
簡単にプログラムする課題って、以外と思いつかないもんじゃないですか?

Σ( ̄ロ ̄lll) もしかして、nouzui2007だけですか?
nouzui2007は、課題作成は苦手なんです。なので、このサイト、とってもすばらしいです。

それだけじゃないんです。
言語は限られますが、チェックまでしてくれるんですよ。
いたせりつくせりじゃないですかヽ(∇⌒ヽ)(ノ⌒∇)ノ

やってみましたよ。

チェックしてもらうのに、いくつか注意点があります。
submitするページに書いてありますが、一応お知らせです。


言語はこんな感じです。
Python 2.6, C 4.3.4, C++ 4.3.4, Java 1.5, Ruby 1.8.6, Perl 5.8.8, PHP 5.2.6, tcl 8.5, clojure 1.2, JavaScript 1.8.5


正常終了時には、exit code 0 を返してください
実行中のまま、タイムアウト扱いにされるかも知れません。

rubyでやる人は、実行部に、if __FILE__ == $0 はつけないでください
しばらく悩みました。
ローカルで実行してみたときは、正しい結果が出てると思ったのですが、submitしたら0点。
いやいや、落ち込みましたよ。
気をつけてください(って、もしかして、そんなこと、普通はやらない?)

javaの人は、クラス名が指定されているので、ご注意ください
javaではやってませんが、気をつけてね

javascriptの人は、codeEvalExecute(line) をエントリーポイントにしてください
書いてあるまんまです。よくわかりません

あぁ、プログラムっておもしろい(∩゜∀`∩)
ちなみに、nouzui2007の書いたコードはこんな感じです。
コードさらしてるので、ご注意ください。

有料版もあります。
独自の内容が追加できるみたいですが、そこまでやらなくても十分面白いです。

ではまた

2011年6月16日木曜日

二段合格(*^ー゚)b

準備運動で、会場まで歩いてきたのはムダになりましたが、
そんなことでぶーたれてても、開始時間は変わらないので、気を取り直していきましょう。

開会式が終わると、しばらくやることがなくなるので、会場外へ行こうとしたところ、
思わぬところから「ご無沙汰してます」と声を掛けられました。
同じくらいの年に見えますが、誰だっけ?

・・・あ、初段のときに一緒に受けた人!

こっちを覚えていてくれたことにびっくりです。
しばらく再会の挨拶をしていると、もう一人見覚えがあるような人が・・・
やっぱり昨年の初段審査で一緒に受けた人でした。
こーゆーの、うれしいですね。


審査直前には、形のおさらいをしました。
形だけではないですが、受審番号で組み合わせが決まるので、
nouzui2007の相方とやりたかったのですが、会場に見当たらないので仕方ありませんね。
高校生なので、一度はやっときたかったんですが・・・
大人の受信者は2段は少なくて、再会した3人だけだったので、3人仲良くかわりばんこに練習しましたw

さて、いよいよ審査開始です。
って、順番みたら、相手はすべて高校生ですよ。
若いですよ、たくさん動くですよ!バンバン打ってますよ!!
こんなの相手にしてたら、いつもの剣道なんてできないじゃないですか!!
と、叫びたい気分でいっぱいだったので、大人の受信者にぐちっときました。ごめんなさい(>人<)

いよいよ出番です。
久しぶりの緊張です。考えてみたら、こんなに緊張することって、そうないよなぁ。
逃げ出したい気もするけど、やっててよかったかも知れない、とも思ってる自分がおかしかった。

さて、自分の出番がくるまでは、ひたすら待ちです。
いままでも十分待ちましたが、大人は最後のほうに配置されるので、若い子たちの審査をずっと見ています。
見ているときは、いろいろ思うことがあったり、気をつけるポイントが復習できたりしているんですよ。
でも、いざ自分の番になると、プツンとなにかが切れてなくなります。
やれやれ

もう、ね、ちゃんばらですよ。
相手が間合いを無視して打ってるのわかってるんですよ。でも、だめです。
いっしょになってうっちゃいましたよ。
いやいや、これはいつもの稽古じゃないですよ、とか思いながらひたすら打っちゃいました。

いままでやってきたことを出す、とゆーのは、案外難しいものです、とゆーことを学びました。

ここで、審査のことについてお伝えしておきます(いまさら?)

審査は、実技と形に分かれています。
実技は、切り返しと1分弱の稽古×2になっています。

解説終わり。

2回目の稽古は、足が動いていないことが何度かあったりして、nouzui2007的にう~んな感じでした。
いや、まあ、そもそもムダに動き回っちゃったのがいかんのですが。。。

とりあえず、実技が終わったので、気持ちを形に切り替えねばなりません。
相方がそこにいるしね。
声かけましたよ、形の稽古しよって。
快諾してくれました。ありがと、いいやつだね(∩_∩)

形をやってみて、ちゃんとできているので安心しました。
人づてに、高校生とかは、ちゃんと教えられていないことがあるので、要注意、と聞いていたので。
nouzui2007もしっかり出来上がっているわけではないので、お互いにちゃんと動けないと、
タイミングが合わなかったりして、見苦しくなってしまうのですよ。
あわせてあげられるほど熟達していないので、心配だったですよ。

ところが

形の審査がはじまって、いよいよnouzui2007まであと3組ぐらいになってきたときのこと。
ほかの会場が空いたので、突然そっちに移動させられ、すぐに審査開始となりました。
気分的にはあと少しまってから、と思っていたので、おどろきました。

余裕をなくすようなことはやめて欲しいです(ノД`)・゜・。

これでてんぱっちゃったのが、相方ですよ。
木刀を逆に持ってる。
木刀を持っているときは、刃を上向きにして右手で持つのですが、彼は刃を下向きにして持っちゃってます。
顔がこっちを向いていたので、木刀を動かして、口で「木刀、逆」と伝えようとしましたが、こっちを見ていないのか、気づかないのか、反応なしです。
礼をして、ソンキョしているときに、木刀をみると、やはり逆になっています。
刃の向きを逆にしていたので、当然でせう。
これで気づくかと思ったのですが、彼の目にはなにが映っているのか、不自然なそりの木刀を気にせずソンキョしています。
木刀を審査員から見えないように払ってみましたが、気づいてもらえませんでした(_ _|||)

どーしよー、と思っていると、主審が合い方に、木刀が逆であることを注意していました。
ここでようやく気づいた彼は、木刀を逆に構えなおしました。

あー、ちゃんとできるかなぁ?
自分のことは棚に載せた上に、カバーをかけて目隠しをしているようなもんで、自分の心配ではなくて、相方の心配をしていました。

形はまあ、可もなく不可もなく。
初段のときのように足を間違えることもなく、無事終了です。
ちゃんと最後までやり遂げた相方君に拍手です。


どきどきの発表ですが、
大人の受審者は全員合格!nouzui2007も合格しておりました\(≧▽≦)/\(≧▽≦)/
相方の高校生君の合否は確認できませんでした。

一日がかりで、ほぼ待ち時間だったけど、楽しい審査でした。

2011年6月13日月曜日

二段を受けに行ってきたました

昨日、6/12はnouzui2007の誕生日でした。
が、同時に剣道二段の昇段審査の日でもあったのでした。

受付は9時ですが、会場となる体育は、
電車で1時間弱、その後、徒歩で30分くらいの場所にあります。
バスがないか調べると、最寄り駅の先に行くと、体育館までバスが出ていました。
バスにするか、徒歩にするか、悩むところです。

昨年、初段を受審したときのことですが、初段から三段まで同時に審査したので、
会場につくのがギリギリだと、すぐに受付、着替え、開会式、審査開始で、
準備運動もままならなかったことを思い出しました。

そこで、今年は準備運動をかねて、駅から歩くことにしました。

会場までの30分、途中森みたいなところに行き着いてしまい、泣きそうになりましたが、
なんとか無事に会場に到着することができました。
いい準備運動になりましたし、狙い通り、
合格もらったー!
と、直前に泣きそうだったことはすっかり忘れて、意気も上がって参りました。

ちなみに、会場までの距離から、30分くらいとGoogle先生がおっしゃっていましたが、
Google先生は迷わないでしょうが、残念ながらnouzui2007は迷うこともあります。
とゆーか、迷うに違いありません。なので、倍の1時間を想定時間としていましたが、
あっさり到着したので、開場の30分以上前に到着していました。
ありがとう、Google先生。森は罠ではなかったんですね。

さて、開場までのあいだは、特になにもすることはないのですが、
それにしても、学生剣士の多いこと。
初三段は中学生が受審できるためか、すごく多かったです。
剣道人口の減少が叫ばれている(?)昨今ですが、これで少ないのかぁ、と思いましたよ。

子供と一緒に剣道を再開して3年になりますが、ちょこちょこ知り合いも増えていて、
顔見知りの中学生が何人かいたり、
会場がそんなところなので、親御さんもいたりで、
挨拶したり、おしゃべりしたりして、開場を待ちました。

体育館に入ると、まずは着替えポイント探しですが、通路が狭くて、すれ違うのが大変です。
奥には行きたくないなぁ、と思いつつも、流され流され、結局最奥まで運ばれてしまいました。
nouzui2007は一人なので、どこでもよかったので、空いている場所に防具を下ろして、
さ、着替えです・・・と思ったら、女の子が行き来します。
別に照れる年でもないですが、おっちゃんの裸をさらすのも悪い気がしてちょっとモジモジ
してました。

着替えたら、審査開場のほうに行って、受審番号ゲットです。
剣道も学科があってですねぇ、出さないといかんのですよ。
と言っても、レポート形式で、事前に出題されているので、書き上げたレポートを出すだけですが。
そのレポート提出に受審番号が必要なのですよ。
受付は、レポートの提出で行われます。
そのときに、受審番号の印刷されたシールをもらいます。大きさは6つ切りの写真くらいでしょうか。
これを垂れにはって審査にGo!って感じです。

無事受付を済ませて、開場を見渡すと、受審の順序が張り出されていました。
どれどれ、どこでやるのかなぁ。

午前中・・・初段実技、初段剣道形
午後・・・二三段実技、二三段剣道形

・・・・・・・・Σ゛(´・ω・ノ)ノうそーん
いま受付しましたよ?
9時半になっていませんよ?

こうして、準備運動をかねて歩いてきたことが、ほぼ無に帰すことになりました(ノ∀`)アチャー

つづく

2011年6月11日土曜日

ブログでソースコードをきれいに表示しよう の続きみたいな

コードを表示するプレタグですが、背景色とか変更できるんですよ。
ま、言われてみれば、できるよね。

でも!
せっかく自分で気づいたので、記念とゆーことで

<pre class="prettyprint"  style="background:#D306FF">

こんな感じで、タグ中にstyleを埋め込むと、背景色なんかも変えられます
って、普通じゃんorz

#!/usr/bin/ruby

class HelloWorld
 def say
  p "Hello"
 end
end

・・・・・・・・・・・・・・・・・

すごい色になってますね。
適当にやっちゃいけないね、ごめんなさいm(_ _)m

メモだと思って、許してやってちょうだいな

ではでは~

Ruby de PDF~インストール編~

青Pで作ったPDF、すばらしいんですが、Dropboxからダウンロードして、iPhoneのStanzaで読むと、txtnameになっちゃって、いちいち面倒です。

他にも方法はあるかも知れませんが、手っ取り早くPDFの情報を書いちゃうことにしました。

で、なんでRubyかとゆーと、今Rubyがやりたいからですww

見つけましたよ、PDFらいぶらり。


さっそくインストールです。

Haru Free PDF Library2
http://libharu.sourceforge.net/index.html

ダウンロードしてね

本体をインストールしました。

tar xvf libharu_2_0_8.tgz
cd libharu-2.0.8/
./configure --cflags=-fPIC
make clean
make
sudo make install

次に、Ruby用のインターフェースを

cd if/ruby
ruby extconf.rb

あれ?
mkmfがないって言われてる?
なにそれ?

どうやら、Rubyの拡張ライブラリをmakeするための手順の一つで、Makefileを作り出すものらしい。
mkmfを使って、extconf.rbでMakefileを作るのが習慣みたい。
え、じゃぁなんで入ってないの?
実は、Ruby-devパッケージにあるのです(ありがと、ぐーぐる先生)

devをインストールせねば!!

aptitude install ruby1.8-dev

では、改めて

ruby extconf.rb
mak
sudo make install

おぉ!問題なし

では、demo実施

cd demo
ruby demo.rb

おぉぉぉぉぉ!!!!!
demo.pdfが作成されている。

2011年6月10日金曜日

Scalaのきほんのき(再帰関数だよぉ)

だんだん難しいことになってまいりましたが、nouzui2007の頭がついていける範囲でがんばってみたいと思います。

再帰関数は、自分自身を呼び出す関係です。
って、わかるかー
ちゃぶ台があったら、ひっくりかえしたい気分です。

とりあえず、サンプル見てちょうだい。
有名なところで、1~100まで足す問題を解いてみたいと思います。
あ、これって、そろばんの準備運動でもやるみたいです。

nouzui2007的に一番簡単なのは、ループでまわして加算する方法なので、まずはそのサンプル
scala> var total = 0
total: Int = 0

scala> for (i <- 1 to 100) {
     | total += i
     | }

scala> total
res28: Int = 5050

これを、本日のお題で書き直し
なんか、大喜利みたいです。
scala> def Recursive(n: Int): Int = n match {
     | case 1 => 1
     | case _ => n + Recursive(n - 1)
     | }
Recursive: (n: Int)Int

scala> Recursive(100)
res29: Int = 5050

今日は、こっから解説です。
・・・大丈夫かなぁ?

大事なことを忘れないうちに言っておきますが、
戻り値の指定は、絶対に必要です。

このサンプルの処理は、こんな感じで動いています、とゆーのを感じてください

  • 引数100がきたら、デフォルトにマッチするので、その処理を行う
  • マッチした処理では、引数100から1を減算したものを引数に渡して、自分自身を呼び出している
  • 今度は、引数99で来るので、やっぱりデフォルトにマッチ
  • 引数99から1減算して、また自分を呼び出す
  • ・・・って順番で2まで処理すると、自分自身への引数が1になる
  • 引数が1だったら、なにも足さないので、1を返す
  • 引数が2だったら、1が戻ってくるので、引数の2と戻り値の1を加算する
  • 引数が3だったら、3が戻ってくるので、引数の3と戻り値の3を加算する
  • ・・・100まで、繰り返し
わかる?
がんばってみましたが、いかがでしょうか。nousui2007はもうだめです。
また今度。

2011年6月8日水曜日

日曜参観はお父さんのためなんだよ

日曜日のことですが、娘の通う幼稚園で、日曜参観がありました。
日曜を選んでくれていることが、お父さんのためだったのは、すでに昔の話かもしれませんが、いまでも平日に働いているお父さんのほうが、平日に働いていない、または、まったく働いていないお父さんよりも多いと思うので、お父さんのためだということで、理解しておきましたw
それに、父の日も近いしね。

もちろん、行ってきました。

そこで、ちょっと思ったんですが、お父さんたちはシャイだよね。
普通の参観日も行ったりするんだけど、お母さんメインのときって、開始前からお母さんが教室に入ったりしてるんだよね。
禁止したりしてないし。

でも、お父さんメインだと開始前どころか、参観開始後も廊下にいるお父さんがいたりしたんだよ。
あと、出欠確認のときに、子供は名前を呼ばれると「はい、元気です」と言うのが慣わしなんだけど、子供のあとに、お父さんにも同じことをさせたのね。
「○○ちゃんのおうちの方(<-この言い方、かなり気を使ってるよね。ちょっと関心しました)」と先生がゆーので、おうちの方(メインはお父さんです)は「はい、元気です」といわされます。
声が小さいお父さんが多かったかな。
堂々と手を上げて、太い声で返事してたお父さんたち、Good Job!

あとねぇ、似顔絵を子供と一緒に書くとゆーイベント(メインイベントとですよ、これ)後、教室から出て行っちゃったりするのはどうなんでしょう?
父親メインの参観とはいえ、母親たちもたくさんいて、普段見ない子供たちがたくさんいて、照れくさいとゆーか、ひるんでしまう気持ちはわからんでもないです。
わからんではないですが、少しがんばれば、ヒーローですよ、たぶん。

nouzui2007は、わりかし幼稚園に顔を出しているので、照れたりしませんでした。
お母さんたちにも知り合いいるし、アドバンテージがありましたので、参観のメインイベントが終わった後の紙芝居読みも立候補しましたともさ。

これなんですけど、親が目立つことをあまり好まない子供もいるんですが、知ってましたか?
nouzui2007は、自分の上の子ではじめて知りました。
なので、娘に立候補して良いか確認しましたよ。

いやぁ、たのしい参観でした。
紙芝居の最初と最後に盛大な拍手をもらいました。拍手されるのって気持ちいいよね。大好きです。
あと、終わった後に、何人かが「紙芝居、おもしろかった」と言いに来てくれたのがうれしかったですよ。

帰り際に先生と少し話したんですが、「助かりました」と言ってました。
紙芝居読ませるのも、お父さん相手だと大変なんですかね?

楽しい日曜日でした。

Scalaきほんのき(今日はパターンマッチング)

対象 match {
 case パターン1 => 処理1 or 値1
 case パターンn => 処理n or 値n
 case _ => default処理 or default値
}

ここにもありました、魔法の言葉。

魔法の言葉はおいといて(おい!)
これって、case文みたいなもん?
使い方は、こんな感じです。
scala> val n = 10
n: Int = 10

scala> n match {
     | case 10 => println("ten")
     | case _ => ()
     | }
ten

文字列でもできちゃったりします。
scala> val str = "hello"
str: java.lang.String = world

scala> str match {
     | case "hello" => println("hello world")
     | case _ =>  ()
     | }
hello world
VBみたいですね。

そー思った人、あまーい( ̄ー ̄)

なんと、関数でもOKなんです。
この例だと、Listの要素をabcdそれぞれに割り当てていて、処理で合計しています。
scala> List(1,2,3,4) match {
     | case List(a,b,c,d) => a+b+c+d
     | case _ => ()
     | }
res15: AnyVal = 10
すごくないですか?

それと、型にマッチさせることもできやがるんですよ、こいつは
scala> val v: Any = "hoge"
v: Any = hoge

scala> v match {
     | case i: Int => i * 100
     | case s: String => s.size
     | }
res16: Int = 4
すごくないですか!?

興奮しすぎたので休みます。

2011年6月7日火曜日

Scalaのきほんのき

Windows EclipseへのScala IDE導入をあきらめたnouzui2007です。
日和ってすいませんm(_ _)m

Ubuntu版はあっさり使えたのに、なぜかWindows版がだめでした。
コンパイルして、実行すると、mainがないと怒られます(T T) うう

ま、それはそれとして
コマンドラインから使うことにして、とにかく勉強開始です。

簡単にセットアップ

  • Scalaご本尊をダウンロード&解凍して、適当なディレクトリに配置
  • 環境変数追加
    • SCALA_HOME=Scalaを配置した場所
    • PATH=%PATH%;%SCALA_HOMNE\bin


Dos窓登場
Scalaと入れてエンター
さー、開始です。


変数の定義

val・・・値型
var・・・変数型
scala>val n: Int = 1
n: Int = 1

scala>var m: Int = 2
m: Int = 2

scala> n = 1
:8: error: reassignment to val
       n = 1
         ^

scala> m = 3
m: Int = 3
ここ、大事
n = 4・・・error:再代入できないっす
m = 5・・・変数なのでOK
Scala推奨は、valでの定義です。

関数の定義

def 関数名(引数: 型, ・・・): 戻り値の型 = {
処理
}
scala> def greater(x: Int, y: Int): Int = {
     | if (x > y) x else y
     | }
greater: (x: Int, y: Int)Int

scala> greater(3, 9)
res0: Int = 9
型推論してくれるので、戻り値は省略可能
あくまで、コンパイラが推測できるなら、ね

制御構造

if (条件) 値1(絶対指定してね) else 値2
scala> if (true) 5 else 6
res1: Int = 5

scala> if (false) 5 else 6
res2: Int = 6

for (ブロック引数 <- コレクション; ・・・) 処理内容
for (ブロック引数 <- コレクション; ・・・) yield 値
scala> for (i <- 1 to 9) print (i + " ")
1 2 3 4 5 6 7 8 9

高階関数

高階関数ってゆーのはね、関数を引数にとる関数のことです。
なんのこっちゃ、ってゆー人は、nouzui2007と同じですので、がんばってくださいm(_ _)m 

mapとかfilterとかは、引数に関数を要求します。
書き方は、下をみてくださいね。
nで指定しているのが、=>以降の関数の引数になっています。
scala> List(1,2,3,4).map(n => n+1)
res5: List[Int] = List(2, 3, 4, 5)

scala> List(1,2,3,4).filter(n => n%2==0)
res6: List[Int] = List(2, 4) 
mapのほうは、Listに指定した要素ごとに、1を加算していって、結果をListにして返します。
filterのほうは、Listに指定した要素のうち、偶数になる要素をListにして返しています。

_ は魔法のことばです。
scala> List(1,2,3,4).map(_*2)
res7: List[Int] = List(2, 4, 6, 8)

クロージャ

無名関数について、おベンキョしましょう
scala> val sq = (n: Int) => n * 100
sq: (Int) => Int = 

scala> sq(9)
res9: Int = 900
無名関数はsqとゆー変数にセットしてますね。
ここはポイントです。
変数と関数に区別がないことに気づいたでしょうか?
私は気づきませんでした・・・orz

気づいた人は、こんなことができちゃうことがわかるかと思います。
scala> val sq = (n: Int) => n * 100
sq: (Int) => Int = 

scala> sq(9)
res9: Int = 900

scala> val alias = sq _
alias: (Int) => Int = 

scala> alias(10)
res10: Int = 1000
ここでもでました、魔法の言葉。
これは、仮引数です。
仮引数のときに括弧は省略できるようです。

ちょっと、頭が重くなってきたのでこの辺で。

ブログでソースコードをきれいに表示しよう

ポイントは、きれいにです。
いや~、いろいろあるもんですねぇ。

google-code-pretty

ソースコードに色をつけて、きれいに表示してくれちゃいますよ。


さっそくやってみましょう。

Bloggerの場合は、デザインページで、HTMLを編集しましょう。

headタグに、このタグを追加してください。

<link href="http://blog-imgs-22.fc2.com/k/e/v/kevinjohnson2/prettify.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="http://blog-imgs-22.fc2.com/k/e/v/kevinjohnson2/prettify.js"></script>

bodyのonloadイベント指定

<body onload="prettyPrint()">

ソースコードを以下のタグで囲む

<pre class="prettyprint"></pre>



class HelloRuby
    def hello
        p "Hello World"
    end
end

h = Hello.Ruby.new
h.hello

Cygwinをいれてみた

ので、メモ

CygwinのSetup.exeを取得

http://www.cygwin.com/
setup.exeのリンクをクリックしてね

setup.exeを実行して、インストール開始

defaultでインストールを進めると、いろいろ入っていないので、注意が必要


  • vi <- なぜ?
  • ssh
今回は、Rubyを入れておきました。


インストールしてからのお話

あとから、パッケージをインストールするときは、setup.exeをもう一度実行すると良いよ

あと、Windows用のviエディタのVIM32をインストールしていると、ホームディレクトリがVIM32のディレクトリになっちゃいます。
これは、HOMEという環境変数が設定されているためです。
消しちゃえば、問題ありません。
VIM32で問題ないかは不明です。



クラスタってなんだろう

Twitterでたびたびみかけるクラスタってなんだろう。

調べてみても、はっきりしたものはないようで、「~な人」的な感じなんだろうなぁ、ということがわかったくらい。


と、思っていたところに、こんなページが

クラスタ判定

判定結果が面白いので、Twittererはやってみては?

2011年5月31日火曜日

ログイン楽々

Githubであれこれやってたら、.netrcとゆーのを発見!
ホームディレクトリにおいておくと、ログインをお助けしてくれるのだ

どこまでできるかは、今後の調査をお待ちいただくとして(←あやしい
簡単な設定をごらんください。

machine github.com
login hoge
password hogehoge

こんな感じです。簡単でしょ?
こうしておくと、認証時のユーザやパスワード入力が省略されます。

あ、重要事項をひとつ

パスワード書いてあるので、他人に見えないようにしましょうね
chmod 600 ~/.netrc

では、また。

2011年5月30日月曜日

ぼっちでgitってどうよ -修正したり付け足したり-

コミットしたファイルを修正したりするのは、当たり前のことだね。
あと、ファイル追加になったりね。

その辺をやってこう

①修正したら、add して
②commit これはセットになってるので、気をつけてください。
③もし、add しないで commit すると、修正がないと言われます

これは何故かと尋ねたら

  • add は、スナップショットを一時領域(索引という名前を持ってる)に保存するコマンド
  • commit は、索引の内容をリポジトリに登録するコマンド
なので、修正→commitだと、索引に修正内容が保存されていないので、commitする内容がない、ちゅーわけです。

修正したファイルだったら、オプション付きで一発よ

git commit -a -m "hogehoge"

ちょっとは簡単かな?

ここで、もうひとつ注意!

新しいファイルは -a オプションで追加されません

たとえば、source2.rbとゆーファイルを追加したとしましょう。
追加して、オプションつけて一発OK!!

おや?
コミットするものなんてねぇよ的なこと言われてますね
こういう場合は、addしてあげないといけません

ほら、ね?

2011年5月27日金曜日

ぼっちでgitってどうよ -はじめてのコミット-

最初はTortoiseGitを使って、GUIでサクサク、とか思ってたんだけども、そうは問屋がおろしてくれませんでした。
Gitってこんな感じってのがなくて、どこに何を設定すればいいのか全くわからなかったorz

なので、まずはコマンドラインでやってみよう

Gitbashを起動すると、Tminalっぽい画面がでるので、プロジェクトを作るところから開始

sample_projectディレクトリを作成して、sample_projectに移動
git init コマンドで、リポジトリ作成
③ブランチ master が出来上がったとこ


source1.rbファイルを追加して、add コマンドでスナップショット
スナップショットは、ファイルを指定しても良いし、. で全ファイル指定しても良い
⑤commit コマンドでコミットします。-m はメッセージオプションです。メッセージ書かないと怒られます。

ここまではOK

2011年5月25日水曜日

TortoiseGitって

gitチャレンジ中ですが、とにかくさわりたいので、GUIインストールです。

Git GUIは、Cygwinでgit選択すればついてくるものもあるらしいが、Cygwinをインストールしていないので、もっとお手軽にできないかがんばってみた。
Cygwinやってないから、お手軽にすんだかどうかわからんが、手順を残そう。

1.TortoiseGitのダウンロード
ここから、一式ダウンロードしてください。
今回はめんどうなので、日本語化はしていません。

2.インストール
TortoiseGit→msysgitの順序でインストールしてね

2-1.TortoiseGit
・デフォルト選択で最後まで行っておk







インストール完了!
再起動するかきいてくるが、とりあえず無視


2-2.msysgit
・デフォルトおk









インストールはこれで完了です。
次回は、TortoiseGitをいじってみたいと思います。

まずはここまで<(_ _)>


2011年5月24日火曜日

let me Google that for you

おもしろサイト発見。その名も

邦題:ググレカス(うそ

このサイト、Googleっぽい画面ですが、なんかヘン。
検索を実行すると、リンクが生成されます。

このリンクを使うと、面白いので、やってみて(〃´・ω・`)ゞえへへ

iPhoneで読書とか

最近、iPhoneでいろいろやっているので、妻から怒られました。
iPhone禁止令が出そうな雰囲気です。

ところで、青空文庫っちゅーの、知ってますか?
青空文庫は、利用に対価を求めない、インターネット電子図書館です。著作権の消滅した作品と、「自由に読んでもらってかまわない」とされたものを、テキストと XHTML(一部は HTML)形式でそろえています。
(詳しくは、こちらでどうぞ)


だれだか知りませんが、いいもん考えてくれました。
私は、文字を読んでいると、比較的幸せになれるので、たまりません。

青空文庫形式のファイルを読むにはリーダーが必要ですが、ちゃんとあります、しかもタダのが。
ですが、せっかくなのでスマートフォンで読んでみたい!とゆー方向でがんばってみました。
ちなみにandroid開発とか言ってるくせに、個人もちはiPhoneなnouzui2007です(〃´・ω・`)ゞえへ

iPhoneアプリにStanzaがありますが、青空文庫も読めるともっぱらのうわさです。
なぜ「うわさ」かとゆーと、nouzui2007のiPhoneでは読めませんでしたorz
なにかを表示しようとしているのはわかるのですが、残念ながら操作できるところまでたどり着けませんでした。

そこで

PDFにすることを思いつきました!!

で、ツールをさがしてみたわけですよ。
そしたら、あるもんですねぇ、青空文庫PDF化計画に対応できそうなツールが。
しかも縦書き完璧です。

その名は青P 


・・・ちょっと違う方面(主に18禁)へ流れていきそうなネーミングですが、すごいですコレ。
青Pについての詳細はグーグル先生に任せるとして、青空文庫のテキストを指定すると、おそるべきスピードでPDF変換しやがります。
いやホント、やってみてよ、マジすごいから。

インストールや使い方はこちら

そだ、Ver2からは、シェアになったようなので、気をつけてください

gitでいこう

よくわからないけど、最近gitというキーワードがまわりにふわふわしている。
なんでしょうね、これ?

わからなければ、やってみればいいじゃん。

と、ゆーことで、gitをGoogle先生に聞いてみました。
みんなも聞いてみよう(不精者ですいません<(__)>)

簡単に、そして乱暴にまとめると、gitはこんな感じみたいです。
  • バージョン管理
  • 分散型
  • リーナスさん(Linuxカーネル作者さん)開発
  • スピード重視
Linuxカーネルのソース管理で実績が多いのもポイントかも知れません。
リーナスさんの名前をこんなところで目にするとは、という感じですね(^^

「分散型」ってなんですかね?
これ、なんでもリポジトリ情報をローカルに持っちゃうことらしいです。
サーバにつながんなくてもコミットできちゃうとか。

なんだか便利そうですが、もうちょっと調べてたいね。
てゆーか、調べてるだけじゃわからんので、使いたい!!

とりあえず、使ってみる、と言うことで、次回へ

2011年5月20日金曜日

[android]Toast

Androidやってて、ちょっと便利なもの、発見したので、メモ

みなさん、Toastってクラス知ってます?
ちょっとの間メッセージしたいときに使うらしいです。
開発中の値確認とか、画面作るまでもない動作確認とか、使い道はありそうです。
アプリだと、どう使うのかな?

使い方は超簡単!
Activityに書くなら、こんな感じです

Toast.makeText(this, "文字モジ", Toast.LENGTH_LONG).show();

もしかして常識?
ここが今一番心配なところです

2011年5月16日月曜日

φ(。_。*)めもめも 便利サイト

ちょっと便利なサイトをメモ

サイト URL 備考
調整さん(beta) http://chouseisan.com/schedule 日程調整できます
Backlog http://www.backlog.jp/ 課題管理、SVN、Wikiあります

2011年5月10日火曜日

最近、算数の計算が速くなっているようで、やり始めたら、すぐに終わるようになっています。
やり始めるまでが長いのは相変わらずですが。

それでも苦にはなっていないようなので、マンガ読んだり、ゲームしたりしてなければ、素直に宿題を開始するようになってきたみたい。
自分にも覚えがあるので、あんまり文句は言えない。
ここが難しいところです。
怒ってでもやらせないと、約束が守れない子になりそうで怖いし、
自分もそうだったけど、怒られたからって、しっかりと宿題ができるわけでもない。
む~( -`ω-)

いつもそんな葛藤してます。

ところで、算数の宿題はまるつけをするんですが、これが意外と楽しいです。
まだまだ簡単な計算問題なので、一緒になって解いてる感じですね。
ドリル買っちゃおうかな、とか真剣に考えました。
買ったらやらないんでしょうけど( ̄ー ̄)

そのまるつけしてるときに発見しました。

25÷5=ら
_, ._
(;゚ Д゚) …!?


いやいやいやいや


父:「ねえ、25÷5はいくつ?」
上:「ん~、5?」
父:「だよねぇ」
上:「なんで?」
父:「ここに ら って書いてあるから・・・」
上:「え?」

上の子が見に来て、二人で大爆笑。
楽しい発見でいっぱいです

2011年5月2日月曜日

なく

水域というマンガ、知ってますか?
蟲師描いた人のマンガです。

(※ネタバレしてしまうかもしれませんので、ご注意ください。)





恥ずかしながら、号泣しました。
これまでの人生で最大級です。
もう、こんなに泣いたことないんじゃないか、というか、ないです(`・ω・´)

そのときの自分、こんな感じです。

涙はあふれ出てくるわ
胸はくるしいわ
声を出したいのに、出せないわ

大変な騒ぎですよ、ホントに

なんでそんなになっちゃったかというのは、じつははっきり分かっていたりするんです。

作中に、男の子とそのお父さんが再開するシーンがあるんですが、
ここに上の子と自分を投影してしまったんですよ。

男の子が「どこ行ってた」と言う場面では、上の子の声が聞こえるようでした。いえ、聞こえました。
もうだめです。ここから先は、しばらくの間、涙でくもって読めない状態でした。

その場面までは、上の子を思い描くことはなかったのですが、なぜかその場面では、はっきりと上の子とシンクロしちゃってました。

これはきました(´;ω;`)

これでも一応、こんな想いはさせたくない、と思っているわけですが、力不足から悲しい想いをさせることもあるでしょう。
どうにもならない無力感とか反省とか、もっとなんとかできたんじゃないか、という悔しさとか。。

そんなときの悲しみをきっちり、いやというほどたっぷり疑似体験しました。

自分、こういうのに弱いんだなぁ、と初めて知りました。
自分の反応がとっても新鮮で、そんな場面を作り出した作者に感謝でした。

2011年4月27日水曜日

けが、くっついたよ(*^ー゚)b

上の子の怪我、くっついた(*^▽^*)

昨日医者に行って、傷がくっついたと、奥さんから教えてもらいました。
安心しました。

気になる点といえば、怪我がどんな状態で回復しているのか、かな?

実は、怪我の状態は一度も見てないんだよね。。。
帰ったら、大きな絆創膏はった姿だったので。

同じ大きさの絆創膏なんて持ってないので、

絆創膏をはがして傷を見てみたい!

という欲求を我慢したのでした。


その後は、上の子が普段通り過ぎて、怪我してるの忘れてました。

日曜は剣道行ったのでちょっと思い出したんだけど、
自分の稽古に夢中になってしまったので、
剣道終わったころにはきれいに忘れてマシタ(ノ∀`) アチャー

ごめんね、上の子。

これからも、大怪我でなければ、たぶんこんな感じですが、許してね。
心配してないわけじゃないからね。