ゔぉいす れこ〜だぁ らいと

Device20130427134112_2長らく更新が滞っておりました。大変久しぶりの更新です。

娘と遊んでいる中でうまれたアプリを公開したので、ここで紹介します。

とても単純なアプリで、音声を録音して再生するだけです。例えば、次の4コマ漫画みたいな遊び方…。
Recapp_comic

他にも、漫画と同じように「○○ちゃんです。」と子供の名前を録音して、「パパ、ママの言う事を聞くとっても良い子は誰?」とスマフォに話しかけた後、再生ボタンを押すなんて遊び方も…。すると、白雪姫に出てくる魔法の鏡のごとく、子供の名前が流れます。それを聞いて、子供はこれでもかというほど誇らしげな顔をしたり、逆に、「悪い子はだれ?」などとすると、「違うよぉ〜」とはしゃぎます。

アプリは無料です。単純なだけに遊び方はいろいろ、お子さんと楽しい時間をお過ごしください。

TORITORI

| | コメント (0) | トラックバック (0)

ようやくスマートフォン デビュー!?

Rimg0001Androidを購入した。いわゆるスマートフォンである。日本にいた頃も、アメリカに来てからも、携帯や携帯のアプリに特に興味がなかった。その理由が今分かった気がする。気軽に手作りのソフトを組み込めなかったから。

Androidはおもしろい。iPhoneよりもおもしろい。気軽にいろいろ組み込めるから(iPhoneへは気軽とはいかない)。いろんなセンサーがついていて、自分の書いたプログラムが外界とコミュニケーションして動いてるのは圧巻である。市販のアプリを使い込むよりも、楽しいのである。ちまたには、きれいなデザインの優秀なアプリがごろごろあるが、その中から自分にあった物を探しているより、作っちゃった方がはやかったりする。自分が使うだけならデザインはしょぼくても問題ないし…coldsweats01

とりあえずは、趣味のサイクリングで楽しめそうな物を作りつつ、試しつつ、の日々が続きそう。マンネリになりがちな、自転車通勤のモチベーションも保てそう。

ところで、先ほどスマートフォンと書いたが、じつは電話としては機能させていない。契約してないのである。携帯電話は、白黒ディスプレイのプリペイドを使っている。今のところ、それで事足りているので…。足りていたので、スマートフォンに手を出すの遅れたというのも事実かも。ただ、音声認識がオンラインじゃないと使えないのが、ちょっと残念だった。でも、それだけの為に電話の契約するのも、もったいない(音声認識は、Wi-Fiでオンラインにすれば使える)。

昨年購入したiPadは、娘のおもちゃになりつつあるが、Androidはもうしばらくパパのおもちゃだね。

TORITORI

| | コメント (0) | トラックバック (0)

三目並べ

Rimg0002すっかり雪化粧をして寒くなったミネソタ。久しぶりにバスで通勤したが、バスを待っている間、とても寒くて辛かった。

さて、話は変わるが1ヶ月程前、将棋ソフトがプロの棋士を破ったと言う記事を目にした。それが、昔やろうとして出来なかった試みを思い出させた。学習するプログラムである。三目並にチャレンジした。ただ、縦横斜めいずれかに並べたら勝ちだという事だけ、プログラミングして、あとは自分で勝ち方を学ぶようにしたのだ。

三目並べなら、簡単に必勝プログラムを書けるくらい単純なのだが、だからこそ学習するプログラムを試してみるのにはいい題材だった。前回試みたのは、20年以上前だったか…。今回はあっさりうまく行った。ハード、プログラミング言語は格段に進歩している。そして、自分自身もそれなりに進歩していたという事かな。

TORITORI

| | コメント (1) | トラックバック (0)

温度グラフの復活

ミネアポリスこのページの、左サイドバーに表示していた温度変化のグラフを復活させた。昨年の8月から休止していたので、約7ヶ月ぶり。ミネソタがどれだけ寒くなるのか見るためにはじめたけれど、意外と実用的だったので復活させてみた。

一見、温度変化を表示するだけの事だけれど、Webに関連する技術全般をそれなりに駆使する必要があり、なかなか勉強になった。

東京周辺ではサクラの便りも聞こえてきそうな時節だが、ミネソタでは今日も雪が積った。地元のTVやラジオでは、「春はすぐそこ」としきりに繰り返すが、気温を見る限りでは、TORITORIには「まだまだ…」と思えて仕方がない。

TORITORI

| | コメント (0) | トラックバック (0)

ルビーにてんてこ舞い

Mn_726サイドバーにあるリンクがいくつか機能していなかったのを、ようやく直した。原因は、大きく2つ。1つは、リンク先のアプリケーションが置いてあるサーバーが、利用者の知らないうちにアップデートされ、既存のものが動かなくなっていた事。もう一つは、アプリケーションの作成に使われているRuby On Railsがバージョンアップして、これまた既存のコードが動かなくなった事。

例えてみれば、いつの間にか、道路が新しくなっていて、持っている車では、そこを走れなくなったようなもの。「走れるように車を直すのは、自分でやってね」と。

と、愚痴だけ並べた投稿では、世の役には立たないと思うので、建設的な情報も付け加えたい。と言うわけで、以下は、技術的な情報。Ruby On Railsのバージョンアップに伴って、既存のソースコードに変更を加えた部分です。

  • form_end_tagが利用できなくなった。かわりにendを用いる。
    以前の記述:
    <%= form_tag ...省略... %>
    ...省略...
    <%= form_end_tag %>

    新しい記述:
    <% form_tag ...省略... do %>
    ...省略...
    <% end %>

    イコール(=)が不要になっている点に注意

  • render_actionが利用できなくなった。本来のコマンドを使って、render :action => "アクション名"とする。

  • 検索結果をページ毎に表示する機能、paginateが利用できなくなった。この変更は影響が大きかった。なぜなら、とても利用する機能だから。Ruby
    On Railsの標準機能ではなくなり、プラグインを利用しなければならない。今回、利用させてもらったのは、will_paginateというもの。

    1. 開発中のrailsアプリケーションのあるルートディレクトリで、will_paginateをインストール。vendorという フォルダーにインストールされる。
      prompt%> ruby script/plugin install http://tools.assembla.com/svn/breakout/breakout/vendor/plugins/will_paginate/
      URLの後半部分は…/breakout/vendor/plugins/will_paginate/です。隠れて見えなかった場合の参考までに

    2. コントローラーに記述されている以前の paginateの部分を変更。 参考までに、変更例を以下にあげます。

      以前の記述 :
      @album_pages, @albums = paginate(:albums, :per_page => 8)

      新しい記述 :
      @albums = Album.paginate :page => params[:page], :per_page => 8

      ここで、Albumはサンプルのモデルクラス。各アプリケーションで利用するモデルクラスに置き換えてください。各モデルクラスで利用可能なfindメソッドと似た使い方ができるようです。

    3. 次にビューの変更。上記コントローラーでの変更例を元にすると、
      <%= will_paginate @albums %>

      と、なるようだ。その結果、
      « Previous 1 2 3 4 Next »

      日本語にしたい場合は、
      <%= will_paginate @pages, @prev_label="前", @next_label="次" %>



    ビューの記述は、以前より楽になったが、このように動いていたコードを変更しなければならないのは、困りものだ。

  • params,flash,headers等が、インスタンス変数ではなくなった。@params、@flash、@headersと記述していたが、頭に@マークをつける必要が無くなった。

  • RoR 2.0になって、「ファイルのアップロード方法が以前の方法でできなくなった。」という記述をウェブ上で見かけた。今回の作業中、アップロードが確かにできなくなっていたが、私のケースの場合、サーバーに問題があっただけで、RoRのコードには何も変更をする必要は無かった。

  • TORITORI

    | | コメント (0) | トラックバック (0)

    ハリウッド映画の弊害

    インターフェースソフトウェアデザインで有名なニールセンさんの記事で、「そう!それっ」と思ったので、記事を書いてみる。

    要約すると、映画に出てくるコンピューターのインターフェース(画面のデザインや操作方法)が「変だ!」「ありえない!」という10個の例を挙げている。「映画に出てくるコンピュータは、使う人ではなく、観客のために設計されているのだから、しょうがない一面もある。」といった感じかな。

    TORITORIも、そういったエンタメ向けの派手なインターフェースに、けちをつけるような野暮はしないが、結論のところで問題にしていることの一点にはとても共感した。

    映画に出てくるヒーローがいとも簡単にコンピューターを使いこなしてしまう事の問題だ。はじめてみるソフトウェアをいとも簡単に使いこなし、ピンチを切り抜けるヒーロー達。この結果、コンピューターでトラブルにあったユーザーは自分の能力のなさが原因だと思い込んでしまう下地を作っているというのだ。WindowsをMacを、そしてUnixを知っていたとしても、その上で動いているソフトウェアを使うためには、そのソフトに関する知識が必要になり、学習期間が必要になる。だから、もし、そのソフトを使ってトラブルにあったとすると、責められるべきは、ユーザーではなく、ミスを誘発するようなソフトウェアのデザインの可能性もあるはずなのだ。

    車の運転席は、ミスを防ぐように進化してきたはずである。また、ミスを防ぐために奇抜なデザインは避けられてきたはずである。その結果、どのメーカーの車に乗っても、運転できる。一方、コンピュータのソフトウェアは、目的が大きく異なるものが多いのと、歴史もまだ浅いため、そのデザインが収束してきているとは言い難い。

    コンピューターを使ってトラブルに遭遇しても、自分を責める事なかれ。TORITORIは自分でソフトウェアを作っているので、自分を責める。これは、日々の精進である。

    TORITORI

    | | コメント (0) | トラックバック (0)

    ミネソタ まっぷ

    レールに乗ってしばらく前から、このブログの左側サイドバーに、「ピーナッツを探せ!」のリンクを載せている。今回はその紹介。

    ここミネソタに来て1年になるが、最初の頃は、右と左どころか上も下もわからない状態だった。そんな中、氷点下の街を自転車でめぐって、徐々に行動範囲を広げてきた。それはそれは大変だった。また、人の入れ替わりも激しい。せっかく知り合えた人々も別のところへ行ってしまったり、新たにやって来た人々とお知り合いになれたり…。新しくやって来た人たちもきっと、似たような苦労をするはずである。ならば、その苦労を減らす事は出来ないか?役に立つか未知数だけれども、そんな思いで作ってみたのが、この「ピーナッツを探せ!」である。

    まだまだ、利用者は少なく、ほとんどがTORITORIの入力したデータである。でも、他の人からの情報も徐々にではあるが集まってきている。ミネソタでの生活に必要な場所の情報共有サイトに育てばいいなと思っている。「ミネソタ○ォカーみたいになればいいね!」なんて励ましの言葉も頂いた。

    使い勝手の悪いところも多々あるようで、利用者の増えない原因かもしれない。徐々に改善していくつもりである。ミネソタにいる人以外には関係ない情報かもしれないけれど、観光に来たくなってくれたりでもしたら、それはそれで作った甲斐があるというものだ。そんな事はまずないだろうけど、夢はでっかく語りたい。

    スタンプラリーのノリで、街中にちらばるスヌーピー関連の人形の情報も載せてある。これが、このサイトの名前の由来でもある。スヌーピーの原題は「ピーナッツ」だからだ。一緒に集めてくれる人が出たら、これまた作った甲斐があるというものだ。

    さて、これはRuby On Railsで作ってある。その生産性の高さには驚かされる。これだけのウェブサイトが人手をかけずにサクサクと作れるのには感動すら覚えた。出来上がったサイトのテストをするための仕組みもちゃんと準備されており、これまた、人手をかけずに動作確認が出来る。仕事の合間にやったにもかかわらず、半月ほどで出来たのだから驚きだ。

    ただ、画像を扱う部分はまだ弱く、従来の技術に頼らざるを得ない部分もあり、PHPやPerlなどを使わざるを得ず、不本意ながら勉強する破目になった。(サーバーの設定を自由に出来ないため、そうなった。100%自分で触れるサーバーなら問題なかっただろう…。)

    開発時のサクサク感とは裏腹に、いざ出来上がったサイトを使ってみると、お世辞にも「サクサクで快適!」とはいえない。安いレンタルサーバーだからしょうがないのかな。使っているサーバを速いものに換えればいいのかもしれない。でも、それでは何でも金で解決しようとする悪い大人のようで、いただけない。Rubyというプログラム言語がインタプリターであるのも原因かもしれない。ロジック部分でループを極力減らしたりするなど工夫次第では、多少良くなるかもしれない。いずれにしても、開発人件費を大幅に節約できるだろうから、商用で使うなら、浮いたお金でサーバーにお金をかけるのは選択肢としてありえると思った。

    Ruby On Railsでのもう一つの隠れた問題点は、設置である。作ったはいいけど、いざWebサーバーに置こうとすると、一筋縄ではいかないようだ。実は、本職の方でもRuby On Railsで1つサイトを作ったが、Webサーバーに設置できずに放置されたままになっている。サーバ管理者がサボっているのか、一生懸命やっているのかは知らないが、そういう問題もあるようだ。

    TORITORI


    | | コメント (0) | トラックバック (0)

    本来怠けもの

    Rubyプログラマーに必要な素質、それは『怠けもの』であることらしい。TORITORIは、その例外ではない。めんどくさい事はコンピューターにやらせるためにプログラムを書いている。そして、できるだけプログラムを書き直さなくてもいろいろな事が出来るようにプログラムを書く。上手にプログラムさえすれば、コンピュータは言われた事を何度でも愚直に繰り返す。
    Javaというプログラム言語がある。よくデザインされたプログラム言語である。でも、それで作られたプログラムがよくない。プログラマーに怠けさせてくれないのだ。
    そんな中、最近Ruby(ルビー)というプログラム言語で書かれたRuby On Railsというプログラムが脚光を浴びつつある。よくデザインされていて、プログラマーをしっかりと怠けさせてくれる。そして、怠けたいがために、プログラムを書く気にさせてくれる。Ruby On Railsを開発した人は、真のプログラマーに違いない。

    TORITORI

    | | コメント (4) | トラックバック (0)

    かめさんのルート案内

    かめさんのルート案内おすすめサイクリングイベントで紹介している「ツール・ド・おおすみ」「センチュリーライド上信越」のページをバージョンアップした。写真のように『かめ』さんが軌跡をなぞってコースを紹介してくれる。
    なぜ『かめ』さんかって?このおすすめのイベントは、レースではないので、順位も、タイムも関係ない。だから、敢えて『かめ』さんなのです。景色を楽しみながら、制限時間いっぱいサイクリングを楽しめる。どちらのコースも景色は抜群!

    さらにもう一つ!イベントではないけれど、おすすめのサイクリングコース。日本人なら、その魅力はわかってもらえるはず。「富士山の一周」だから。これも、『かめ』さんの案内付き。興味ある方はご覧あれ!

    こんなホームページを、特に難しいプログラミング知識が無くても、簡単に作れるツール「PictureMap」のバージョンアップ版は、後日、ここでまた紹介の予定。TORITORIワークスで現在仕上げの作業中。データさえあれば、極端な話、ボタン一つ押すだけで作れてしまう。このような旅行先でのサイクリングも、携帯GPSで記録しておけば、このツールを使って、地図に残せ、後でじっくり思い出にひたれる!お楽しみに。

    TORITORI

    | | コメント (4) | トラックバック (0)

    ソースコードは契約書!?

    契約書の出だし最近、契約書について勉強する機会があった。契約書は、非常によく構造化されており、部分的にも再利用可能なように構成されている。その再利用可能な部品を組み合わせれば、別の契約書が出来上がるわけだが、部品をよく理解しないで使うと、不利な内容になってしまったりする。また、やりたいことが単純でも、契約書自体は長くなる。「誰と誰の契約か?」「契約はいつから始まるのか?」「どうなったら契約が終わるのか?」など、非常に基本的なことまで明文化するからだ。

    おや?それって、コンピュータプログラムのソースコードとそっくりではないか。やりたいことが、単純な四則演算だとしても、いろいろとややこしいことを書かなければならない。でも、そういう部分は、共通化されていて、構造化してあるものだ。再利用しやすくなっている。さらに、ソースコードの開発で最も大変なのは、「もしも…の対策」である。これが不十分だと、厄介なことになる。実際、「プログラムを作ると」は、そう言った例外をどれだけ効率的に書き上げるかだといっても過言ではないように思う。
    契約書にも「もしも…の対策」がたくさん書かれている。そう考えてみると、ソースコードは、コンピュータと人間の契約書なのかもしれない。この"契約書"の質が悪いと、コンピュータは思ったように動いてくれない。本物の契約書も、質が悪ければ、思ったように事が運ばないかもしれない。どちらも、質が悪ければ、もしものときにひどい目にあうことは間違いない。

    TORITORI

    | | コメント (0) | トラックバック (0)