Author Archive

今週は Ruby の拡張ライブラリ作成にハマる

土曜日, 4月 18th, 2009

今回も技術ネタ。毎週何かにハマってます。

Debian Lenny に tarball から ruby 1.8.7 をインストールして、zlib の拡張ライブラリを作成しようとするとエラー。

ext/zlib$ sudo ruby extconf.rb
checking for deflateReset() in -lz… yes
checking for zlib.h… yes
checking for kind of operating system… Unix
creating Makefile
ext/zlib$ make
make: ‘all’に対して行うべき事はありません

zlib1g-dev パッケージは入っているのになー、と思いつつググると rails ML で回避策発見。

> zlibでエラーが出てるのでrails zlibでググって見ました。
>
> Vine3.2の例ですがこんなのが引っかかりました。
>
> $ cd ruby-1.8.5/ext/zlib
> $ ruby extconf.rb –with-zlib-include=/usr/include -with-zlib-lib=/usr/lib
> $ make
> $ su
> # make install

このスレ主さんはまだエラー出ているようでしたが私は回避できました。

ext/zlib$ sudo ruby extconf.rb
checking for deflateReset() in -lz… yes
checking for zlib.h… yes
checking for kind of operating system… Unix
creating Makefile
ext/zlib$ sudo ruby extconf.rb –with-zlib-include=/usr/include -with-zlib-lib=/usr/lib
checking for deflateReset() in -lz… yes
checking for zlib.h… yes
checking for kind of operating system… Unix
creating Makefile
ext/zlib$ sudo make
gcc -I. -I. -I/usr/local/lib/ruby/1.8/i686-linux -I. -DHAVE_ZLIB_H -DOS_CODE=OS_UNIX -I/usr/include -D_FILE_OFFSET_BITS=64 -fPIC -g -O2 -c zlib.c
gcc -shared -o zlib.so zlib.o -L. -L/usr/local/lib -Wl,-R/usr/local/lib -L. -rdynamic -Wl,-export-dynamic -lz -ldl -lcrypt -lm -lc
ext/zlib$ sudo make install
/usr/bin/install -c -m 0755 zlib.so /usr/local/lib/ruby/site_ruby/1.8/i686-linux

ライブラリのディレクトリを指定しないで extconf.rb で Makefile 作ると /usr/local/lib や /usr/local/include を見に行くと推測。Debian パッケージでライブラリやヘッダをインストールすると /usr/lib や /usr/include を見に行くので明示的に指定しないといかんかったようです。

そもそも ruby の拡張ライブラリ自体知らなかったので結構時間かかりました。

Django 管理画面作成でハマる

土曜日, 4月 11th, 2009

技術ネタです。ハマったので備忘録的に記します。

Django という Python 製のウェブフレームワークで hdknr さんとゆっくりながら勉強兼ねてアプリケーションを作成しています。管理画面の機能がよくできており、現在管理画面を作成しているのですがハマりまくってました。

管理画面でユーザー(author)のフィルタ(list_filter)を使いたかったのですが、管理画面には表示されず。ユーザーフィールドは ForeignKey で外部テーブルから持ってきているのですが表示されませんでした。Django 公式ドキュメントを見ても対応しているはずなので表示されないのはおかしい! と思ってあれこれ悩んでいたのですが、単にデフォルトの admin 以外のユーザーがいなかっただけというオチ。ここでハマる人は余りいないんですかねぇ。ユーザー追加したらあっさりフィルタが表示されました。コードは以下になってます。

class NoteOptions(admin.ModelAdmin):
list_display = (‘id’,’author’,’text’,’writed_at’,’votes’,’status’,’selected_tags’)
date_hierarchy = ‘writed_at’
list_filter = (‘author’,’writed_at’,’status’,’tags’)
search_fields = [‘text’,’author__username’]
filter_horizontal = [‘tags’]

つづいてハマったのがやはり管理画面で search_fields です。author を検索したかったのですが、author を追加しても検索できず。こちらは公式ドキュメントを見たらあっさり答えが書いてありました。

フィールドは CharField や TextField のような何らかのテキストフィールドでなければなりません。 DB API の「リレーションを追跡する」表記を使えば、 ForeignKey を介したフィールドの指定も行えます:

search_fields = [‘foreign_key__related_fieldname’]

実際のコードは前述のものと同じです。”__”で繋げるんですね。

トライ&エラーを繰り返しつつドキュメントを当たったりなどして解決できました。時間はかかったけどその分理解もできました。身に着けることが第一目標なので時間かかったけど気にしない。Django はドキュメントがしっかりしているので助かります。

(さらに…)

忍城祉見学

土曜日, 4月 4th, 2009

私にしては珍しく出かけてきました。出不精なので週末はあまり出かけません。

行き先は埼玉県行田市の忍城祉。現在は行田市郷土博物館となっています。

忍城といえば、成田氏が築いた城で秀吉の北条攻めの際、石田三成が担当した城です。水攻めしたけど落ちなかった城です。先に主家の本城小田原城が降伏したので開場した城です。現在は殆ど埋められてしまってますが、当時は沼地で、沼に浮かぶ小さな島に本丸や櫓などを作った水の要塞でした。普通に攻めようとしても陸路が限られているし、出入り口(虎口)への道は狭いから力攻めしようにもままならない地形。じゃあ水攻めしようぜ、と周囲に堤を築いて利根川や荒川から水を引き入れて、秀吉が高松城攻めで行った水攻めしたのですが、もともと水に強い城なので大した効果はありませんでした。その上湿地帯の土で堤を築いたもんだから堤が決壊して自軍に被害が出たりするなど。結局落とせなかったので「三成は戦下手」というレッテルが貼られるようになりました。三成の水攻めは秀吉からの指示という説もあるようなので、三成が積極的に水攻めしたかったかというと疑問。太閤に指示されれば断れないよね、という感じだったんじゃないかなぁ、と思います。

そんな城なので実際どんなところか興味があったので行ってきました。戦国時代が好きなので城めぐりはいつかしたいなぁ、と思っていたのですが、関東って余り城がないんですよね。小田原城はあるけど、「行ったらがっかり」という話を聞くので敬遠しています。西の方だと姫路とか隈本とかかっこいい城があるのに。羨ましい限りです。
(さらに…)

そろそろ私物 Mac が欲しい

土曜日, 3月 28th, 2009

OSX になったころ辺りに Mac に興味を持ち始め Intel CPU になると物欲となった Mac。いつかは買おうと思い続けて結局買わずじまい。Windows 機や Linux 機は増えるのですが Mac だけは未だ手が出ず。

というのもなんだかんだで Windows 機に比べると Mac は高いというイメージが残っているため。hdknr さんがそれまで使用していた Mac が壊れて Mac を買い直したので聞いてみたのですが、今ではそんなに高くないようですね。Macbook の 2.0GHz モデルならおよそ 10 万円で買えるようです。ずいぶん安くなりましたね。これならちょっと奮発すれば買えそうです。

とはいえ最近はすっかり Thinkpad キーボードに慣れてしまっているので Mac のキーボードは厳しいんですよね。普通の 104 フルサイズキーボードを自宅では使っているのですが、そちらですら typo 率が高いです。慣れの問題なんでしょうが併用が続くと結局慣れないじゃないかと思っています。

とまれ、昔はキートップが低いキーボードは押した感じが余りしなくて使いづらいなんて思っていましたが、最近はキートップが高いキーボードが使いづらいです。Macbook を購入しても慣れればなんとかなるんでしょうね。

と Macbook 欲しいなんて書いていたけど、先に Vodafone から Softbank に携帯を変えないと。

Mercurial で大いにハマる

土曜日, 3月 21st, 2009

社内 Django 勉強会で hdknr さんと投票システムを作りながら勉強しています。Mercurial というバージョン管理システムでリポジトリを管理しているのですが、コミットする際に混乱した話を記します。

Mercurial は分散管理なのでリポジトリは公開リポジトリとローカルリポジトリがあります。私の commit を公開リポジトリに push しようとしたら

ssk@debonvm01 tohyo $ hg push
Enter passphrase for key ‘/home/ssk/.ssh/id_rsa’:
pushing to ssh://hg@bitbucket.org/hdknr/tohyo/
searching for changes
abort: push creates new remote heads!
(did you forget to merge? use push -f to force)

と言われました。merge か強制的に push しろとのことです。hdknr さんのリビジョン持ってないからだな、と思ったので pull して update すればいいんだな、と思ったので実行。

ssk@debonvm01 tohyo $ hg pull
Enter passphrase for key ‘/home/ssk/.ssh/id_rsa’:
pulling from ssh://hg@bitbucket.org/hdknr/tohyo/
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 3 changes to 4 files (+1 heads)
(run ‘hg heads’ to see heads, ‘hg merge’ to merge)
ssk@debonvm01 tohyo $ hg update
abort: crosses branches (use ‘hg merge’ or ‘hg update -C’)

ああ、merge するか -C つけて update しなさい、とのこと。では merge しましょう。

ssk@debonvm01 tohyo $ hg merge
abort: repo has 3 heads – please merge with an explicit rev

んん? 見たこと無いメッセージでした。 head が3つあります。 merge する際は明示的にリビジョンを指定しなさい、とのこと。まずは head を確認します。

ssk@debonvm01 tohyo $ hg heads
changeset: 32:aba5296ed68f
tag: tip
user: naoto
date: Sat Mar 21 16:57:22 2009 +0900
summary: added Tag table in microblog/models.py. added Tags editor in admin site. #29

changeset: 30:6603fe6fa57b
user: naoto
date: Sat Mar 21 16:50:32 2009 +0900
summary: added tags editor in admin. related #29 .

changeset: 15:394bfbc17e5c
user: ssk
date: Tue Mar 10 03:02:58 2009 +0900
summary: added username line in .hgrc

確かに3つあります。最新のリビジョン 32 にしたいので明示的に merge してみます。

ssk@debonvm01 tohyo $ hg merge -r 32
abort: can’t merge with ancestor

失敗します。今度はリビジョンを 30 にします。

ssk@debonvm01 tohyo $ hg merge -r 30
merging trunk/tohyo/microblog/admin.py
merge: warning: conflicts during merge
merging trunk/tohyo/microblog/admin.py failed!
0 files updated, 0 files merged, 0 files removed, 1 files unresolved
There are unresolved merges, you can redo the full merge using:
hg update -C 32
hg merge 30

またもやエラー。今度はこのコマンド打ちなさいと言われたのでやってみます。

ssk@debonvm01 tohyo $ hg merge 30
abort: outstanding uncommitted merges

またもや失敗。どうすれば……。
いったん head を確認してみます。

ssk@debonvm01 tohyo $ hg heads
changeset: 31:74a91ce0a085
tag: tip
parent: 28:cfe09cdb9e4a
user: hdknr
date: Sat Mar 21 16:09:32 2009 +0900
summary: re-created database and syncdb after addring Tag model which ManyToMany to Note

changeset: 30:6603fe6fa57b
user: naoto
date: Sat Mar 21 16:50:32 2009 +0900
summary: added tags editor in admin. related #29 .

changeset: 15:394bfbc17e5c
user: ssk
date: Tue Mar 10 03:02:58 2009 +0900
summary: added username line in .hgrc

リビジョン 32 が消えています。状況に変化がありましたが後退している気がします。
pull してリビジョン32を改めて持ってきます。

ssk@debonvm01 tohyo $ hg pull
Enter passphrase for key ‘/home/ssk/.ssh/id_rsa’:
pulling from ssh://hg@bitbucket.org/hdknr/tohyo/
searching for changes
no changes found

32 が落ちてきません。これでなんだか分からなくなりました。
ここで一気にごちゃごちゃ打ち込んでみることにしました。

ssk@debonvm01 tohyo $ hg merge
abort: repo has 3 heads – please merge with an explicit rev
ssk@debonvm01 tohyo $ hg merge 30
abort: outstanding uncommitted changes
ssk@debonvm01 tohyo $ hg merge 31
abort: can’t merge with ancestor
ssk@debonvm01 tohyo $ hg merge -r 31
abort: can’t merge with ancestor
ssk@debonvm01 tohyo $ hg update -C 31
2 files updated, 0 files merged, 0 files removed, 0 files unresolved

リビジョン 31 は成功した模様。31 は自分のコミット分なのでローカルリポジトリから持ってきたことになります。
mercurial の本を見ていたら resolve コマンドで複数 head を状態を解消できるようなことが書いてあったので試してみます。

ssk@debonvm01 tohyo $ hg resolve -l
hg: unknown command ‘resolve’
Mercurial Distributed SCM

basic commands:

add add the specified files on the next commit
annotate show changeset information per file line
clone make a copy of an existing repository
commit commit the specified files or all outstanding changes
diff diff repository (or selected files)
export dump the header and diffs for one or more changesets
imerge interactive merge
init create a new repository in the given directory
inserve start an inotify server for this repository
log show revision history of entire repository or files
merge merge working directory with another revision
parents show the parents of the working dir or revision
pull pull changes from the specified source
push push changes to the specified destination
qdiff diff of the current patch and subsequent modifications
qimport import a patch
qinit init a new queue repository
qpop pop the current patch off the stack
qpush push the next patch onto the stack
qrefresh update the current patch
remove remove the specified files on the next commit
serve export the repository via HTTP
status show changed files in the working directory
strip strip a revision and all later revs on the same branch
update update working directory

use “hg help” for the full list of commands or “hg -v” for details

resolve コマンドなんてない、と言われました。バージョンを確認してみます。

ssk@debonvm01 tohyo $ dpkg -l |grep mercurial
ii mercurial 1.0.1-5.1 Scalable distributed version control system
ii mercurial-common 1.0.1-5.1 Scalable distributed version control system (Common files)

Debian Lenny の mercurial は 1.0.1 なのでした。resolove は 1.1 からの機能です。これで落胆します。

その後 これまで打ち込んだコマンドを途方にくれながら繰り返しましたが変化なし(pull,merge,head)。
push したいディレクトリを ls してみました。

ssk@debonvm01 tohyo $ ls microblog/
__init__.py admin.py.orig backends.pyc mails.py models.pyc views.py
__init__.pyc admin.pyc forms.py mails.pyc urls.py views.pyc
admin.py backends.py forms.pyc models.py urls.pyc

admin.py.orig という .orig のついたファイルがあります。merge する際のファイルですね。これがあるからかな、と思い手動でコピーします。ついでに merge。

ssk@debonvm01 tohyo $ mv microblog/admin.py.orig microblog/admin.py
ssk@debonvm01 tohyo $ hg merge
abort: repo has 3 heads – please merge with an explicit rev
ssk@debonvm01 tohyo $ hg merge -r 31
abort: outstanding uncommitted merges

やっぱり変化ないですね。最初の頃から push してないから commit して push してみようかな、とエラー覚悟でやってみました。

ssk@debonvm01 tohyo $ hg ci -m “added Tag table in microblog/models.py. added editor for Tag in microblog/admin.py. #29”
ssk@debonvm01 tohyo $ hg push
Enter passphrase for key ‘/home/ssk/.ssh/id_rsa’:
pushing to ssh://hg@bitbucket.org/hdknr/tohyo/
searching for changes
remote: adding changesets
remote: adding manifests
remote: adding file changes
remote: added 3 changesets with 4 changes to 2 files
remote: bb/acl: naoto is allowed. accepted payload.
remote: quota: 595.4 KB in use, 150.0 MB available (0.39% used)

あれ、できた。head も確認します。

ssk@debonvm01 tohyo $ hg heads
changeset: 32:011ae90a4b6d
tag: tip
parent: 31:74a91ce0a085
parent: 15:394bfbc17e5c
user: naoto
date: Sat Mar 21 17:31:01 2009 +0900
summary: added Tag table in microblog/models.py. added editor for Tag in microblog/admin.py. #29

changeset: 30:6603fe6fa57b
user: naoto
date: Sat Mar 21 16:50:32 2009 +0900
summary: added tags editor in admin. related #29 .

head も2つになっています。
結局何が push できなかった原因かは分からず。ただ、これまで pull したあとは merge しないで update ばかりしていたので複数 head になってしまった気がします。pull したら merge する癖をつければこんなことにはならなかったかもしれません。

pull したら merge しましょう。

たまにはランチ画像などを

土曜日, 3月 14th, 2009

09-03-13_12-50-small
09-03-13_12-50-small posted by (C)noten

3/13 のランチです。会社近くの千駄谷食堂というところの生姜焼き丼です。

千駄谷食堂は初めて行きました。「食堂」と聞いたので庶民的な食堂をイメージしていたのですが、行ってみたらおしゃれな感じで自分の「食堂」とはイメージが異なりました。おそるべし先入観。

豚の生姜焼き大好きなのですが、今回食べたのは少々固め。焼きすぎたのか、暖め直したような感じでしたのでちと残念。正直なところ、自分で豚肉買ってきて市販の生姜焼きのタレ使って焼いた方がおいしいですね。肉よりも添え物のカレーで味付けしたじゃがいもがおいしかったです。いや、カレーで味付ければ大抵おいしくなるんでしょうね。カレー万歳。

それとスープおいしかったです。メインの生姜焼きよりもそれ以外がおいしかったなぁ。

Firefox アドオン

土曜日, 3月 7th, 2009

私のメインブラウザは Firefox です。素の状態では機能不足で使い勝手がよくないのでアドオンと呼ばれる機能拡張機能を使って機能追加をしています。開発者も多く、アドオンの数も多いので一度使い始めると他のブラウザに乗り換えるのが難しくなります。

では、私が主に使っているアドオンを紹介します。

PDF Download

PDF のリンクをクリックするとブラウザで PDF を開きますが、このアドオンを入れるとリンククリック時に開くか保存するかなどを選択できます。PDF ファイルを開くのには時間かかりますから間違ってクリックしてしまった際にキャンセルすることもできます。待ち時間のイライラを軽減できますね。

https://addons.mozilla.org/ja/firefox/addon/636

FireBug

ウェブ開発者には必須と思われるアドオン。表示されているページの編集ができます。HTML や CSS などの静的ファイルならエディタで編集してブラウザで確認、ということもできますが、ブログなどの動的ウェブサイトですとそうもいきません。このアドオンを使うとサーバへ影響を与えずに編集できますので、納得のいく編集ができたらファイルに反映させることができます。

https://addons.mozilla.org/ja/firefox/addon/1843

Greasemonkey

ユーザースクリプトと呼ばれる JavaScript を実行することでクライアント側だけですが、ウェブページになんらかの処理を実行できるアドオンです。これ単体では何もできません。いろいろな方が作成しているスクリプトを導入して意味をなします。まとめサイトの Greasemonkey のページにいろいろ紹介されています。

私は AutoPagerize を重用しています。検索サイトなどの検索結果で「次のページ」をクリックしなくても画面下までスクロールすれば次のページを画面遷移なしで先読みして表示してくれます。

https://addons.mozilla.org/ja/firefox/addon/748

Download Statusbar

ファイルをダウンロードすると別ウィンドウでダウンロードマネージャが起動します。毎回ウィンドウが出るので消すのが面倒になってくることがあります。このアドオンはステータスバーに表示するので別ウィンドウが起動する煩わしさから解放されます。

https://addons.mozilla.org/ja/firefox/addon/26

他にも Twitter 用、gmail 用、2ch 用、del.icio.us 用などウェブサービスに対応したアドオンが多数ありますので、自分に合うものを探すのも楽しいと思います。Firefox を素の状態で使って「使いにくいからもう使わない」とさよならするのも寂しいのでアドオン未導入の方はお試しあれ。

なぜ私は iPhone を買わないのか

土曜日, 2月 28th, 2009

via: なぜ、日本人はiPhoneを嫌うのか
via: らばQ:無料なのに売れない?どうして日本人はiPhoneが嫌いなのか…海外サイトで話題沸騰

私の周りでは iPhone ユーザは比較的多いですね。あまり交友関係が広くないので対象となる延べ数が少ないということもありますが。

私の場合は iPhone に限らず携帯に興味がありません。電話ができて天気予報と乗り換え情報が確認できれば問題なし。ということで数年前に買った携帯を延々と使用し続けております。塗装も剥げて年期が入った状態です。

機能は少なくて問題ないので、多機能携帯は不要。よって iPhone も不要です。小さな電子デバイスは好きなので(電子手帳とか PDA)iPhone に通信機能がなければ買ってもいいか、とは思うのですが、使わない通信料を毎月払うとなると欲しくはありませんね。

とはいえ、通信モデムとしてのスマートフォンは欲しいと思っています。e-mobile のスマートフォン端末には惹かれるものがあります。モデム+携帯として使えるなら、現在携帯とカードモデムと2つの契約をしているものが1つに収まります。機種代0円キャンペーンが始まりましたが iPhone にモデム機能がつかなければ購入には至らないでしょう。

Twitter クライアントの話

土曜日, 2月 21st, 2009

web からつぶやいたりフォロワーの呟きを見ることも可能ですが、あったら便利な Twitter クライアント。常駐して発言があったらポップアップしてくれるので発言を眺めるだけでもブラウザを立ち上げなくて済みます。返信するのも右クリックメニューからでもできますので、タイプミスすることも少なくなるでしょう。フィルター機能があるクライアントならフォロワーが増えて発言を見逃す可能性も減りますね。

ちょうど TechCrunch でクライアントのランキングをやってました(
Twitterクライアント、トップ21(TwitStatによる)、 Twitterアプリケーション、トップ21(Competeによる))。私は TwitTween を使っています(使っているPCによって異なる)。Windows だとクライアントがたくさんあるのでいろいろ試して自分に合うものを使えばいいかな、と思います。

Mac は持っていないので分かりませんが、Linux では何にしようか迷っています。Python + Qt の Twitturn をとりあえずインストールして特に不満もないのですが、.Net(C#)の MetaTweet が気になります。

統一的な利用
MetaTweet は、複数サービス、複数アカウントを統一的に扱います。これはつまり、複数サービスの発言を一纏めにして扱ったり、マルチポストを可能にするということです。MetaTweet は、bot 化しつつあるユーザの機能要求に応えます。

おお、なんか凄そうですね。ただまだバイナリで配布されていないので、ソースコードを落としてローカルでビルドする必要があります。Linux 上では .NetFramework は Mono でやりますよね、ということで Debian Lenny に mono 1.9.1 をインストールして monodevelop(IDE) でビルドしたけどエラー多発。メッセージ読んでも門外漢なのでさっぱり。mono は現在 2.2 がリリースされていますが、debian パッケージは sid ですら追いついてない状態。mono プロジェクトは novell が関わっているなぁ、と思い出したので「だったら openSUSE だよね」ということで使わなくなっている Thinkpad に openSUSE インストールして mono も最新版に。しかし 「Mono.Data.Sqlite(C# では System.Data.SQLite) がないよ」と言われてビルド失敗。 Mono.Data.Sqlite.dll はあるんですけどね。ここで立ち往生してしまったので諦めました。Linux では Twitturn を使います。

本を購入

土曜日, 2月 14th, 2009

本日は hdknr さんと社内 Django 勉強会。じっくりやるとチュートリアルも難しいものですね。Python の基礎知識が不足しているので手元の本を読み直そうと思いました。

で、帰り道に書店に寄って本を購入。

子どもの貧困―日本の不公平を考える (岩波新書)
阿部 彩
岩波書店
売り上げランキング: 47
おすすめ度の平均: 4.5

4 「少子化政策」の誤りを突く
4 日本は子どもを大切にする?
5 「貧困」を「子ども」中心の視点で論じた本

dankogai さんが「まさかここまでひどいとは – 書評 – 子どもの貧困」という記事で紹介していた新書。

本書「子どもの貧困」は、日本の子どもの貧困がいかにひどいかを、情ではなく理で説いた渾身の一冊。

とあるようにデータを示しながら日本の子どもの貧困について記述していきます。帰りの電車の中で読んでいたのでまだまだ序盤なのですが、今の自分では子どもは養えないなぁ、と思いながら読んでおります。「貧しくても明るい家庭」とは言いますが、それなりの経済力がないと明るい家庭にするには難しいですしね。私の場合は転職多くて無職期間が多いので、経済力がないわけですが(反省)。

入門Mercurial Linux/Windows対応
藤原 克則
秀和システム
売り上げランキング: 19972

こちらは技術書。バージョン管理システムの主流は CVS から Subversion に移行して、その次は? となったらこの Mercurial もその候補です(他は git とか)。Python で書かれているので OS プラットホームを選ばないところも素敵ですが、オフラインでもローカル環境でバージョン管理できるのもよいですね。ウェブ上のドキュメント眺めるのもよいのですが、なんだかんだで書籍を手元においておきたいと思いましたので購入しました。試しに登録している Bitbucket でも使えるので使い方覚えないといけませんし。

Django×Python
Django×Python

posted with amazlet at 09.02.14
露木 誠
技術評論社
売り上げランキング: 58972

最後のはこの記事を書いている時点では未発売の Django 本。このシリーズは薄くて版型も小さいので携行に便利。ということで期待しています。入門者向けらしいので私にはぴったりですね。