キッズプレート、パスタおかわり

プログラミングやデジモノについてあれこれ

カレンダーマーチ

0 Comments
ひらくん
 社会人になれば当然のことではあるが、いわゆる童謡と呼ばれる「こどもの歌」に触れることはほとんど無くなる。保育士や教員など、子供達とすごす職につけば別であるがそれらを除く大人達はこどもの歌にふれる機会が少ない。ただし、その生活が変わるきっかけがある。それが子育てだ。

 子育てを始めると幼児番組や保育園、幼稚園などでこどもの歌に触れる機会が格段に増える。自分がこどもの歌を卒業して子育てを始める迄、私の場合は10年以上こどもの歌と離れていたことになる。十年一昔とはよく言ったもので、自分が幼かった頃に定番だった歌に加えて新しい定番曲というものがいくつか増えていることを知る。そんないくつか増えた定番ソングの中の一曲がカレンダーマーチだ。

 私が初めてカレンダーマーチを聴いたのは半年ほど前。保育園で開催されたちょっとしたイベントでのことである。

 そのイベントでは人形劇の後に、ギターを持ったお兄さんが歌を歌うコーナーがあった。「手のひらを太陽に」や「チューリップ」などいくつかの歌に続いて、

「よーし、じゃあ次が最後の歌だよ、みんな知ってるかな? カレンダーマーチ!」

 と言った瞬間、子供達全員が、

『わーっ!!』

 と大きな声で喜んだ。あまりの反応に私はびっくりした。子供達がこんなに反応するなんて、一体どんな歌なのだろうか。ただその時はこのカレンダーマーチを聴いてもそれほどの歌とは思わなかった。1月から12月まで、それぞれの月をイメージする言葉で紡いでいく、メロディも軽快で親しみやすくはある。ふーん、まあいい歌っちゃあ良い歌だね、くらいの感想だった。

 ところが娘の卒園式でのこと。卒園式で卒園児と在園児が一緒に歌う歌としてこのカレンダーマーチが合唱された。卒園式というイベントのせいもあるだろうが、それ以上に私はこの歌に感動を覚えた。他にもいくつかの歌が歌われたが、このカレンダーマーチこそがもっとも心に響いたといっていいだろう。

 カレンダーマーチという歌は非常にシンプルだ。軽快なメロディにのせて、一年の移り変わりを表現した歌詞が流れる。この歌詞をよくみると解るのだが歌詞の中には「嬉しい」だとか「悲しい」だとか「ありがとう」とか「ごめんなさい」などの言葉は無い。友達もでてこなければ家族もでてこない、あくまでもその月その月をイメージさせるイベント等を歌っているだけだ。そしてさびでは「一年たったら、またおいで」としめる。

 日々の風景を淡々と歌い上げることで、聴く人それぞれの思い出が蘇る。一月に良い事が有った人も悲しい事があった人も、同じ一月という時間が蘇る。喜びも悲しみも、良い事も悪い事も、何があっても時はすぎるものだ。過ぎ去った季節に「また来年もよろしくね」と伝えて新しい明日を迎える。この歌を卒園式できいた私の頭の中には娘と過ごした通園の日々が瑞々しく弾けては消え、消えては現れ、見事にフラッシュバックされていた。そして、これほど迄に聴く人の思い出を蘇らせる歌があったのかとカレンダーマーチという歌の魅力を実感する事になったのである。この卒園式での体験のおかげで私は何故子供たちがあんなにもこの歌を気に入っていたのかが解った気がした。

 カレンダーマーチの魅力に気がつく為に、私は卒園式という「感性のカンフル剤」を必要とした。おそらく子供達にはこのカンフル剤が必要無い。

 このブログを読んでくださっている方の多くが共感していただけると思うが「大人の一年と、子供の一年は違う」。ましてや小学校にも行っていない幼児の一年は、驚きと発見が宝物のように満ち溢れていることだろう。そんな豊かな毎日をカレンダーマーチを歌う子供達は無意識のうちに思い描いているに違いない。

 子供たちの宝物は大人にとってはどうでもいいことの方が多い。公園の小石や、帰り道で拾った落ち葉。窓に付いている水滴や、トイレットペーパーの芯...etc。

 きっと、子供たちはカレンダーマーチと共に沢山の宝物を抱えて生活し、カレンダーマーチを忘れるころには何も考えずにトイレットペーパーの芯をゴミ箱に捨てるようになるだろう。飛ぶように流れる毎日の中で小さな宝物はどんどんと色褪せていく。それが大人になるということだ。ただ願わくば、ふとした瞬間にカレンダーマーチを思い出して、口ずさんで欲しい。小さな宝物を思い出して、ふわっと心を暖かくして欲しい。そして、自分の子供たちにもこの素晴らしいカレンダーマーチを歌ってあげて欲しい。そう願わずにはいられない。私もこれからは、

「一年たったらまたおいで」

と、たまには口ずさんで日々を送っていこうと思っている。

[Perl]連番出力ワンライナーでサンプルファイル生成

0 Comments
ひらくん
 こんちゃー、久し振りに更新。今日はちょいネタでいきますよー。なんかアクセス解析見てたら「連番テキスト スクリプト」なんて感じでいくつかアクセスがあったのでこんなんできますよーっていうやつね。

 連番テキストの生成を Perl のワンライナーでやってみます。環境は OS X 、とくにこれといって何もなくこいつを Terminal で実行していください。

perl -e 'for (1..10) {print $_ . "\n"}'

 へーい、これで1〜10までの連番が表示されましたね。ただこれだけだと面白みに欠けるのでこいつを使ってサンプルファイルを作ってみましょう。

 プログラミングの動作テストをやっているとたまにサンプルファイルが欲しくなったりします。しかも中身はどうでも良くって「拡張子txtがついてるファイルが100ファイル欲しい」なんて時。まあコピー元ファイルを一個作ってコピペコピペで作ってもいいんですが、数百ファイル以上になれば大変だし可能ならファイル名が連番になってたりするとテストもしやすい。

 さてそこで考えてみると OS X には Finder 上で空のファイルを作るって処理が無いんですよね。そんな時に便利なのが Terminal で実行する touch コマンドです。まあ、Terminal を使うのが便利なのか? という疑問はありますが今回の処理ではこいつを使います。

 touch コマンドは指定された文字列で空ファイルを作成することができるコマンドです。本来はタイムスタンプ等を修正するコマンドなのですが存在しないファイル名を指定すると空のファイルを作成することができます。

 それでは先ほどの連番を出力するワンライナーと touch を合わせてサンプルファイル生成する処理を行ってみましょう。

 まず作成するファイル名を決めます今回は test[連番].txt という名前のファイルを作成することにしましょう。一番最初に紹介したワンライナーを以下のようにして実行してみます。

perl -e 'for (1..10) {print "test" . $_ . ".txt\n"}'

 うまく連番ファイル名のテキストが生成されました。え? 数字部分の桁を揃えたい? くー、そんな時には printf を使っちゃいます。

perl -e 'for (1..10) {printf("test%04d.txt\n",$_)}'

 わお、ばっちり。それではこの出力結果を touch コマンドに与えてみましょう。それにはバッククオートという記号を使用します。日本語キーボードの場合は「shift + @」で入力できる文字です。これはコマンドを展開して実行結果の文字列を返してくれるという機能を持っています。touch に値を渡すには次のようにします。

touch `perl -e 'for (1..10) {printf("test%04d.txt\n",$_)}'`


 うまくファイルが作成できましたか? 本日はこれにて失礼〜♪

読書と再び巡り合う ~ 一年使った Lideo を改めてレビューというか感想

0 Comments
ひらくん
 恐らく一年以上前に発売されたガジェットをレビューなんて、ほとんど需要がないだろう。まあ今回はレビューというか、Lideoと電子書籍に触れて一年間過ごした感想をお届けしようと思う。ニッチさ加減がたまりませんなあ。

 では、一年間、Lideoを使った感想 ※ちなみに私の所持Eペーパー端末は Lideo と kobo glo

Lideoは、
1)抜群の安定感で安心
2)いつでも使える通信機能はやっぱりいいものだ
3)すっかり私の相棒と言える存在になった
4)私の生活の中に読書というものを蘇らせてくれた

 この一年使ってみて一言で言えば、買ってよかったです。まあ新しもの好きなんで次世代モデルが出るなら買っちゃうだろうけど、シンプルな読書体験という点では現行モデルで私にとっては必要十分です。もし BookLive! を使ってて、Lideo をお安く買える機会があるなら是非お勧めしますよ。では、ちょいと1)~4)の感想を細かく書いていきましょう。

1)抜群の安定感で安心
 これはですね、私の持っている iPod touch 4th にも問題があるんですけど、もういい加減動きが不安定なんです。やっぱりカラーの漫画なんかはたまに iPod touch で読もうかなあと思って起動するんですけど BookLive! Reader がすぐに落ちます(苦笑 そもそも、落ちるアプリが悪いんですがストレスがたまって駄目ですね。しかも特に何もない普通の小説でさえたまに落ちます。それに比べるとそこは読書専用端末として作られている Lideo ですから、この一年間で一度も落ちるというかフリーズしたりしたことがありません。こんなところで比較するのも気がひけますが Lideo と比較して次世代機といえる Kobo glo。購入して数か月ですが複数回一時的なフリーズや再起動を体験しています。読書専用端末ですから「安心して読める」というのは本当に重要だと思います。

2)いつでも使える通信機能はやっぱりいいものだ
 私は基本的に BookLive! のコンテンツは Web 上のオンライン書店を利用して購入しています。当たり前ですけど Lideo 単独で買うより断然操作しやすいですし、クーポンやセール情報にも素早くアクセスできます。ですので Lideo の書店機能でコンテンツを買ったのは最初の一冊と、出かけ先で読んでた本が実は上下巻構成だったという衝撃を受けながら下巻を買った二冊だけです(苦笑

 さて、Web で買ったコンテンツを Lideo で読むには当然データを端末に入れなければいけません。そこで俄然便利なのがいつでも使える WiMAX 回線です。

 WiMAX 回線については自分の生活エリアの関係もあるので、一概に全ての人にお勧めできるとは言えません。ただ、私のように都内から滅多に出ることが無い人はほとんど回線が使えないなんてことは無いと思います。出先でちょっと時間が出来た時などに、

「あー、そういえばあれ買ってたよなあ」

 と思いだした時にいつでもコンテンツがダウンロードできます。常時回線の無い端末ではこうはいきません。スマホのテザリングやモバイルルータの設定、ログインパスワードなんて悩むこともなくいつでも手軽に通信できるのは本当に便利です。この点で言えば Kindle も 3G モデルがあるので端末の比較検索なんかでここにたどり着いた方には 3G 付きを激おすすめします。価格はちがいますが常時回線付ってのはまさしく「お値段以上の価値がある」と思いますよ。ただ Kindle の 3G を使ったことがないので速度の問題で結局 WiFi とかいう事にもなるかもしれませんが。。。 その点 Lideo は WiMAX ですのでそんなに遅いと感じることはありません。

3)Lideo はすっかり私の相棒と言える存在になった
 これはもうね、他の端末を買っていたらそれが相棒になっていたかもしれませんが少なくともこの Lideo は私の相棒になってくれました。出かける時はいつも鞄に入れています。WiFiルータを忘れても iPod touch を忘れても Lideo を持っていれば外出先で隙間時間ができた時に、

「まあ Lideo で本でも読むかー」

 となりますがたまに Lideo を忘れたりすると、

「わー、Lideo忘れちゃったよ。ちっきしょー」

 と思っちゃいます。Lideo での読書に慣れてしまうともう iPod touch で本を読む気になれません。常時回線付きってのはやっぱりここども効果があって Kobo glo も持ってて WiMAX のルーターを持ちあるいてますがやっぱり出かける時に持って出るのは Lideo ですね。

4)Lideo は、私の生活の中に読書というものを蘇らせてくれた
 これについては Lideo というよりは電子書籍を本格的に利用し始めて一年間の感想というべきかもしれません。

 小学生のころ、私はとても本が好きでいわゆる児童文学の類を一日一冊ペースで読んでいました。「大泥棒ホッツェンプロッツ」や、私にとっての金字塔である佐藤さとる氏著の「誰も知らない小さな国」などなど。図書館で毎日本を借りては家に帰ってろくに宿題もせずにずーーっと、本を読んでいました。いまでも幼いころの、

「読書はなんて楽しいんだろう」

 という瑞々しい感動を記憶しています。ただ、この読書習慣も任天堂が発売したファミリーコンピューター、略してファミコンの登場でほぼ終わりを告げました。

 いままで読書に費やしていた時間をゲームに費やすようになったのです。このことを特に後悔はしていません。ゲームはゲームで、読書とは違った素晴らしい体験をさせてくれるものでした。ドラゴンクエストⅢのオリビアの岬のエピソード、ウィローという映画を元にしたアクションRPGでの幽霊ジェナーの話など、幼心に涙を流したものです。

 ゲームの他にも中高生になればドラマや映画、さまざまなコンテンツを楽しむようになり読書は完全に生活の中で影を薄めてしまいました。そして社会人になり部屋には何台ものTVゲーム機、インターネットの普及、それらは私の読書離れにますます拍車をかけていきました。

 私がどれだけ本を読んでいなかったのかを具体的に言いいますと、Lideoを購入する前の一年間で読んだ小説は「0(ゼロ)」です、ナッシング。一冊の小説も読んでいません。しかも過去に自分で購入した小説でもっとも最近の本は家族が、

「買って買ってー」

 と頼んできた2010年、齋藤智裕(水島ヒロ)氏の「KAGEROU」だけです。いかに私が読書から離れて生活していたかがわかっていただけるかと思います。そしてこんな私に Lideo、というより電子書籍は「本を読む楽しさ」を取り戻してくれました。

 Lideoを買って1年で読んだ小説は38冊。前の年に1冊も読んでいなかった私がこんなにも本を読むとは、正直驚いています。しかも既に購入済みで読んでない本が大量(数百冊!)に積まれている状態です。まあ電子書籍なので正確には積んでいるという表現は当てはまらないのですが、状況的には同じ。さて、私がこんなにも読書出来たのも電子書籍端末とそれを取り巻くシステムが、読書体験そのものをサポートしてくれるようになっているからです。

●指一本でページめくり、片手で手軽に読める
 単純に楽。画面に触れるだけでページがめくれるし、端末も軽量なので片手だけで楽々。正直片手だけで読書できるってのがこれほど楽だとは思いませんでした。電車でもごろ寝でも楽ちんなことこの上ないです。

●画面をつければすぐ続きが読める
 ただ聞くだけだと「ふーん」と思ってしまうのですが、これはしおりの煩わしさが無いということなんです。ページをばらばらっと開いてしおりを探さなくいいし、誰もが経験したことがある「ページを開いたらしおりがポロっと落ちてひらひら飛んで行く」なんてこともありません。本を開こう思ったら「しおり用の紐が紙に引っかかってビリッと破れて大ショック」なんて事もありません。ボタンを押したら即読みたいページ、素晴らしいです。

●持ってる本はいつでも何処でもダウンロード
「手のひらに何千冊!」と聞くと「何千冊もいらねーよ」と突っ込みたくなりますよね。ただ何千冊もいらないけどシリーズ物を数巻なら持ち歩きたい。外出時に思いのほか読書が捗ってしまい読了「あー、次の巻持ってきとけばよかった〜」なんて時でもタッチ一つで次巻が画面に表示されます。気になるシリーズがいつでもシームレス。万が一、次巻を買ってなくても電車の中ですぐ買えてしまいますが、これは私に取っては財布の敵でしかありません。

「電子書籍端末を持ち歩く」というのは「本を一冊持ち歩く」という今迄の労力と同等の負荷にも関わらず、得られるメリットが格段に多いです。この電子書籍端末の「読書をサポートする力」が私に、

“読書と再び巡り会う”

 という素晴らしい体験をさせてくれました。

 最後になりますが漠然と私が感じていたことと同じ感覚をお持ちの方がいらしたので Tweet を引用させていただきます。


 正直 Liddeo はスタイリッシュとはとても言い難いです。ただ何故か不思議な魅力を持っています。Lideo の機能は BookLive! のコンテンツをダウンロードして読むだけです。他の端末のように自炊本が読めたり、WEBが見れたりパズルができたりなんて機能はありません。ただ、私が電子書籍端末に求める最も重要な機能は本を読むこと。今迄のように「本屋で本を買って読む」といアナログな行為を電子書籍というメディアで最もシンプルに体験させてくれる端末が Lideo なのではないかと感じています。

 スマートフォンやタブレット、いわゆるモバイル端末というのは非常に移り変わりが激しいものです。電子書籍端末も同様に、技術の移り変わりに合わせて毎年のように新モデルが発表されます。そういった視点で言えば Lideo はすでに過去のプロダクトと言えるかもしれません。でも、1年たった今でも私はとても快適に Lideo で読書を楽しんでいます。今日もカバンに入っていますし、明日も明後日も、きっと私と一緒に街を歩いてくれることでしょう。私がお部屋に忘れない限りは、ですが。

 長文お読みいただきありがとうございました。それではみなさんも良い読書体験を!

Perl でホワイトクリスマス

0 Comments
ひらくん
 おはこんばんちは。久しぶりの更新です。XojoDojoの第二回も実は記事を準備はしているんですが、たった二行のソースを追加する説明が1万字超になってしまったのでちょっと推敲しています。

さ、いいかげん未更新広告もうざいのでちょっとしたネタを投稿。イヴだしねー。ギークなあなたにホワイトクリスマス。

Twitterでも呟いたんだけどブログでちょっと手順をご紹介いたします。ターミナルにちょっとクリスマスらしい雰囲気を醸し出してもらおうという Perl のワンライナーです。元ネタはこちらで紹介されているのRubyのワンライナー。Perl で書き直してみたというパクリ感満載のネタです。

それではさっそく行ってみましょう。ちなみに私は OS X 10.6 で確認しましたがたぶん OS X なら問題ないと思います。

①まずはターミナルを起動します
起動
アプリケーション→ユーティリティの中に「ターミナル.app」が入っているのでダブルクリックで起動します

②起動したら表示されるウィンドウを使ってもいいんですけど雰囲気を出すためにProという設定のウィンドウを表示します
起動

③表示されたウィンドウに次のテキストをコピーペーストでペーストしてください

実行
 ペーストしてReturn」キーで実行です


③わーい、雪だ雪だ!
わーい、雪だ雪だ

 それでは、またー!

[Xojo] たった4行! あっという間に作れる画像ビューワー

2 Comments
ひらくん
XojoDojo

※Windows版はこちらの内容では画像が表示されませんでした。動画をアップロードしましたのでそちらを参考にしてやってみてください。

 みなさまこんにちは。ニッチな道をひた走る XojoDojo の記念すべき第一回をお届けします。栄えある第一回のテーマは、

「たった4行! あっという間に作れる画像ビューワー」

 です。まあ4行で作るくらいなので過度な期待は禁物です。目指すのは、

「ウィンドウにファイルをドロップしたら画像が表示される」

 というシンプルなものです。Xojo を使えば労力的に Hello World くらいの負荷で出来ちゃいます。

 いろいろと文章で手順を書こうかと思ったのですがあまりにも面倒になったのでスクリーンキャストを作成しました。動画内でやっていることの手順は以下です。

1:Xojo を起動
2:プロジェクトファイルの作成(名前決めてOKクリック)
3:Window1にImageWellを配置
4:ImageWell1にOpenイベントを追加
5:ImageWell1のOpenイベントにコードを記入
  me.AcceptFileDrop("picture/*")
6:ImageWell1にDropObjectイベントを追加
7:ImageWell1のDropObjectイベントにコードを記入
  if obj.FolderItemAvailable then
    me.Image = Picture.Open(obj.FolderItem)
  end if
8:デバッグラン(実行ボタンをクリック)
9:表示されたアプリに画像ファイルをドロップ
10:画像が表示されることを確認

 記入するコードは手順5と7にある4行だけ。それでは皆様レッツトライ。

Windows版は上記手順でうまくいかなかったので、手順を動画でアップしておきます。まあ内容は簡単なので理解していただけるかと


XojoDojo ここがポイント!
「GUIは初めてなんだよね。そんなあなたに」
 スクリプトプログラミングを行ってきた人が初めて GUI アプリケーションを作る際に感じる違和感が、

「プログラムのスタートはどこなの?」

 というものです。DOS のバッチファイルや perl などに代表されるスクリプトプログラミングは先頭から順番に記述した命令が実行されていきます。まあ最近はそうでもないようですが基本的にはそんなもんです。書いた順番に実行されるシンプルな動きなので大変わかりやすいです。一方、Visual Studio や Eclips などでアプリケーション開発をしようとするとここでつまずきがちです。そう、

「処理のスタートがどこかイメージできずに気持ち悪い」

 ですです。起動して上手く動いてるけどなんだか気持ち悪いんですよね。ここはしっかりアプリケーションの起動イメージを頭に入れておくことにしましょう。

 GUIアプリを作る際に使われる IDE(総合開発環境)を使った開発ではソリューションやプロジェクトと呼ばれる単位でアプリケーションを開発します。しかしながら、これがまたひな形を作っただけでもファイルが沢山あって、

「一体、どこから何をすればいいの?」

 という状態になります。アプリケーションの動きがイメージできていないのでどこで何の処理をすればいいのかが掴めず、なんだかわかんない? となってしまうわけです。ただ動きさえ解ってしまえばこの違和感が払拭されて楽しく開発を進めることができます。

 今回紹介した動画では Xojo のプロジェクトにある「Appが一番最初に処理されますよ」と紹介させていただきました。Appとは言うなればアプリケーション本体です。アプリケーションを起動するとAppが生成されその中から他の処理が呼び出されます。デフォルトウィンドウを表示するというのもAppが生成されてから処理される一連の流れに含まれているわけです。今回のアプリケーションの流れとしては、

アプリケーションを実行
 →Appが生成される
  →AppからWindow1が生成される
   →Window1が表示されることでImageWell1のOpenイベントが発生
    →ImageWell1がOpenイベントでファイルドロップ可能であることを宣言(手順5のコード)

 となります。処理はいったんここで止まります。この止まった状態はアイドル状態と言われます。いわゆる「イベント待ち」という状態です。動画のなかでもイベント駆動型という言葉を使いましたがアプリケーションは一連の動きが終わるとイベント待ち状態になり、次に自分が動くべきイベントが発生するのをおとなしく待っている訳です。この状態でWindow1の中にあるImageWell1にファイルをドロップするとImageWell1の「DropObject」のイベントが発生します。

ImageWell1にファイルをドロップ
 →DropObject イベントが発生が発生
  →手順7のコードが実行されます
   ・objにFolderItem(ファイルやフォルダ)が入っているか?
   ・ドロップされたFolderItemを画像として開きImageWell1のイメージとして設定

 このイベントの処理でImageWell1に画像が表示され、再度アイドル状態へと移行します。ファイルをドロップする度にイベントが発生し、その都度処理が行われるわけです。

 このようにイベントをきっかけに「処理が動く=駆動」するので「イベント駆動型」と呼ばれるわけです。これは他の IDE で GUI アプリケーションを開発する際にもほぼ共通する考え方なのでしっかりと頭でイメージできるようにしましょう。