進・日進月歩

IT, Jazz, study, engineering, すべての真実とクリエイティビティのために

Sunday
Sep 7,2008

プログラミングができるようになるためにはというのが最近よく話題になってるっぽい。twtter:tamuken,プログラミング未経験者がJavaScriptでプログラミングをするために必要なこと
そういえば自分はどうだったのかなー?と思っていろいろ考えてみた。
たぶん自分の場合何段階かあったような気がする。

  1. 親になんとなく勧められた
  2. インターネット登場
  3. しばらくさわらなかった
  4. ベンチャーへの興味
  5. コンピュータへの興味

気づいたころには、なんで書けてるのかよくわかんない感じになってたので、どうやったらできるようになるのかという質問が一番難しいのですが。
ただ、自分は目的があってそこで初めて言語を覚えるタイプなので、実はプログラミング的にきれいに書くとか、プログラミング自体にはそれほど詳しくありません(デザインパターン?副作用?関数?だからなに?的な)
よくいろんな人が言っていますが、プログラミングは自己表現の一環であって、もちろん言語に関して詳細な知識を持っているほうが流暢な言葉がしゃべれるんでしょうが、別にそうでなくてもいいわけです。

まぁなんやかんや言ったところであれですが、ようは俺が小学生のころに書けたんだから、書けないことはないでしょう。

howto系は他の人に任せるとして、体験談から。プログラミングかけるようになるコツとか書いてないかも?

親になんとなく勧められたベーシック

小学校2年の頃だったかな。pc9801の青白液晶のPCがたぶん人生初のPCとの出会いでした。青白って何?って感じでしょうが、昔はなんだか知らないけど液晶は青白だったんですよ。コントラストが悪かったんでしょうか?

そのときにN88Basicなんてものがあったんですが、親になんとなく本を渡され色々教えてもらいました。もはや中身は思えてないですが。

たぶん人生初のプログラミングはautoexec.batです。はい、これまた何なの?って感じでしょうがunixのshみたいなものです。今でもwindowsだと.batのファイルとかありますよね。
昔はフロッピーをいれて電源を入れると、フロッピーに入ってるプログラムが動くということがありました。いわゆる起動フロッピーというやつです。
そこにDOSのシステムとconfig.sysとautoexec.batというのを書くと、環境を設定してくれてautoexec.batに書かれているプログラムを起動してくれるわけです。

中身はたとえばこんな感じです。

omoshiroi_game.exe

こんだけ。もうちょい中身はありますが、要はゲーム起動するだけ。当時何も仕組みわかりませんでしたが、どうやらこうするとゲームができるというのは覚えたので、こんな感じでやってました。当時インターネットなんかなく情報源といえばパソコン通信と父親。やっぱし父親が詳しかったのは大きいかもしれないです。

で、当然自然な成り行きとして、今度はゲームを作りたくなるわけです。だってタダですからね。アイスクリーム買うのにも躊躇するのに、タダでゲームができるわけです。やらないわけがない。

詳細な話は省きますが、N88Basicというと今みたいにビジュアルなゲームを作るのには色々ねたっぽい事をしないとだめです。たとえばキャラクターひとつ書くにもピクセルごとに色を指定して全部配列みたいにして書いたりします。
関数なんてない(あったかも知れんけど使わんかった・・・)ので、全部GOTOとかで書いたりとか。結果的にこういうところでコンピュータの仕組みが帰ってわかった気がします。
関数がなんだかんだとやるより、Goto 100とかやると100行目に飛ぶとかいうほうが100倍わかりやすいですよね。ある意味最近のプログラミングは複雑になりすぎたのかもしれないです。

まぁさしてプログラミングなんか興味なかった(いまもそれほど興味ないんだけど)わけですが、ゲームをしたいって衝動とありあまる時間でプログラミングしてました。

インターネットとの出会い

これも小学校の頃ですね。まぁ最初はホワイトハウスのwebを見たりしてきゃいきゃいさわいでただけですが。(当時のインターネット入門本はyahooとホワイトハウスが鉄板でした)
中学校の頃webページを公開したくなり、HTMLとjavascriptとperlとjavaを覚えました。なに作ってたかってブラクラとか某ゲーム機から履歴をぶっこ抜くとかそういうプログラミングをしてました。中学生というと、なんというか、サブカルチャーにあこがれますよねw(当時から厨房という言葉はあり、「ほんとに中学生ですがなにか?」というのはよく使ってましたね・・・・)

こんなページ(まだあったよこれ・・・・)

中学から高校の頃まで管理してました。なんつーか、恥ずかしいことたくさんあってなえた・・・・
内容は趣味で作ったプログラム公開とかそんなんですね。あとは友達との交流とか。ライトノベルなんかもよく読んでたので、そういうのも書いてあります。

プログラミング自体の話になると左上のカラスっぽい絵。とうじホワイトボードみたいなソフトウェアで全うにwebで動くのがなかったため自分で作ろうと思ったんですね。ないもんはしょうがない。
で、フラッシュとかもあったんだかなかったんだかという時代なのでjava appletで入力インターフェースをつくり、サーバへの保存をperlで書いています。
で、これまた残念なことにCPANとかがあったのかなかったのか当時よく知らなかったので、GIFの圧縮処理も自力で書いてます。
LZWの仕様書とか読んでましたね。ここで、ついでに英語も読めるようになりました。

なんかいろんな都合でHTTPとかFTPやSMTPのRFCとかを読んだりしていろんなプロトコルとかも実装しました。チャットソフトとかもjavaで作りましたね。最近1000speakersでflashで作ってた人いましたが、ほとんど同じ実装だったので懐かしい感じでした。

しばらくさわらなかった

高校受験をはさんで、たいしてプログラミングしなくなりました。何ででしょうね。謎です。一説によるともてたかったんじゃないかという噂がありますが、大してもてたわけでもないので謎です。
けどなんだかんだで高校のwebつくったり、VJなんかもしました。CPU500MHzとかで動画編集するのは地獄でしたねー。composite stationをはじめて触ったときには感動ありました。だって当時のスペックであんだけさくさく動画動くんですよ?びびりましたね。
高校の紹介ビデオをフルデジタル編集して、2年間くらいは学校の公式行事で使われたりしました。プログラミングらしいプログラミングはほとんどしてません。

ベンチャーへの興味

はなしは大学まで飛びます。プログラミングの商業的側面について考えるようになったのはこの頃です。
ITベンチャー!シリコンバレー!大金持ち!ぐへへへへ。何気に幼少の頃からNHKとかでやってるシリコンバレーの話を延々と聞かされていたせいか強くベンチャーに興味がありました。
で、インターン紹介のなんとかって会社経由でチームラボという会社にバイトをしに行きました。2004年の2月くらいかな?
初日からいきなり「PHPとかSQLとか知ってる?書いて(ハート」という展開。ぜんぜん知らなかったわけですが、他人のプログラム直したりテストしたりしてるうちに、なんとなーく書けるようになりました。知らないもんを何で直せるんだって話はあるんですが、割とそこにプログラムがあるとわかるものです。というか、直したというよりは直るまでいじくりまわしてたという感じですが。

結構個人的にはここがターニングポイントで、やっぱし自分より詳しい人がいるという環境は結構重要でした。linuxとかサーバとかテストとかデバッグとかIDEとか。知らないこと盛りだくさん。これは感動的。
もともとあんま大学行ってなかったですが、延々と何回も高校の頃もやったような微分積分とか、いまさらな美術論とかやられるよりは、新しい情報があるほうが楽しい!まぁ大学もっと無視するようになりましたね。(あとで、研究室とかに行くのもありだったなと思うようになりましたが)

で、ほんとにこの辺からプログラミングで独立しようと考え始め、ドリームゲートなど起業系のイベントにも行き始め、プログラミングもどちらかというとコストカットについて考えるようになりました。
フレームワークとかライブラリとか。オブジェクト指向とかも基本的に生産性の問題で覚えました。

で、色々あって一人で仕事もらうところまでやりました。はじめて請求書に自分の名前書いて出したときは結構感動ありましたね。

ここもひとつポイントですね。生産性。利便性。あと、お客さんのことでしょうか。ぶっちゃけた話、プログラムのきれいさとか美しさなんてのはどうでもよくて、そのシステムを使う人、サービスを受ける人の利便性を考えることが重要だということ。
最終的には、その利便性を担保しつつ、コストを抑えるための仕事の選び方やフレームワーク選定、ライブラリ、バージョン管理などなど。
商業的な側面としてプログラミングを捉えるようになったのはこのころなきがしました。

コンピュータへの興味

なんというか、今まで手段としてのプログラミングをよく考えてきてたわけなんですが、ここにきてコンピュータそのものにも興味が出てきました。

O倉君との出会いが少しプログラミングへの考え方を変えました。ひいては大学院行ってもいいかなと思うきっかけになったのですが。

ある日プログラミングで関連検索のようなものを実装する必要が出たわけですが、どうも自分がやるとうまくできそうにない。と、いうわけで、その部分だけ頼んだわけです。すると、あっという間に作り上げてしまいました。これはすごい。

最近保守の関係で久しぶりに見たのですが、今見てみれば単にTF/IDFによる特徴語抽出と、そこからの関係だけをみてるだけなんですが、当時はまったくそんなことわかりませんでした。
しかもお客さんはこれにたいそうな名前をつけて売ろうとかするわけです。これはすごいなー。

この辺からアルゴリズムやコンピュータそのものに対する興味が出てきました。単純にサイト構築でも一日あたり数十~百万件のデータ処理をするものとかを作るようになり素朴に実装すると動かなくなり始めたというのもあります。もはやGOTO100とかやってたころのテンションじゃ無理です。自分が提案している内容もデータの分析とかそっちのほうに自然とシフトして行ったのですね。

しかし困った。知恵がねぇ。もはや自頭で考え続けるのには限界な感じがしてきてました。残念ながら天才ではないのでみんなが必死に勉強してるようなもんを普通に思いつくほどには頭よくないわけです。
というところで、今はコンピュータアーキテクチャそのものやアルゴリズムにすごく興味が出てきて勉強しています。

もちろん動機は「お金になるから」とか「笑えるから」とかそういうゴミな発想なのですが。だけど、一番大きいのはそこには越えられない壁があるなと感じたのが大きいです。
なので超える努力をしようというのが最近です。

プログラミングできるようになるためには?

個人的には、書こうと思ってかけるもんじゃないと思うんですよね。自分を客観的に考えてプログラミングの才能がある気がしません。
単にいろんな理由で、商業的にとか、趣味的にとかで色々研究してるので、なんとなくその延長でかけてるだけといえばそうです。

実例として、起業した友達とかはECサービスをやりたい一心で結局自分でもある程度PHPやflashをかけるようになりました。あの根性はすごい。
それで経営もやってますからね。

動機が必要というとありきたりですが、もしプログラミングせずにあなたの目標が達成できるなら別にしなくていいんだと思います。
趣味ではじめたいなら、本でも買って読めばいいわけです。最近iPhone出ましたね。じゃぁobjective-cとか。iPhone用のhtmlなんか書いてみてもいいかもしれないですね。これも本はあります。

プログラミングのためのプログラミングは好きな人のみができる話だと思います。haskellとか興味ありますし、ちょっと触りましたがあれを今おぼえる気にはなりません。

私個人の話をするなら、やっぱり「これがしたい!」という動機でしょうか。いまメディアサイトの立ち上げなどを計画してサーバ借りたりCMS選定したりしてますが、全部一から調べています。それなりに時間とお金かかってますが、まぁ要はやりたいかやりたくないかです。

CMSなんかぜんぜん知らないですが、本を買ったりネットで調べたりするわけです。一から作ってもいいわけですがスケールの問題と管理コストの問題などを総合的に評価してCMSを今回は「使ってみる」という判断をしたわけです。
別にサイト作るだけなら何でもいいと思います。

はっきりいえば、自分はお金大好きです。はい。あと手を動かすのも嫌いです。働いたら負けですね。そう思ったときにシステム作れたほうがいいと思っただけです。
だから第一義的なコンピュータそのものに対する興味はいまだに疑問です。が、すべては関係していてそれが最終的にコンピュータそのものへの興味へとつながっているわけです。コンピュータについて、プログラミングについて、たくさんのことを知っていれば最終的に手間をかけずに色々実現できますよね?

根本的に言えば、数学が好きです。これは趣味ですね。論理学とかああいうはっきりしていて議論しやすいものは好きです。だからコンピュータとかの発想もなじむといえばそうなのかもしれません。

なんだか、ばらばらかいてますが。だいたい、プログラミングするときになに考えてるかとか、プログラミングなんでできるようになったかとかをまとめるとこんな感じ。

ブログをslicehostに移動

  • Filed under: 雑記
Friday
Sep 5,2008

移動しっぱなしですね。

さくらに移動したんですが、mysqlのバージョンの問題などで、slicehostという海外のvpsサービスに変えました。
今のところ快調。

ご報告:院試終わりました

  • Filed under: 雑記
Sunday
Aug 31,2008

終わりましたね。

試験は二科目で、プログラミングと筆記があったのですが、プログラミングはまぁまぁそこそこ。筆記はいまいちという感じであわせたらとんとんかちょっと悪いかくらいかなぁという感じです。
結果は神のみぞ知る。

Sunday
Aug 10,2008

なんかすごくよく使うので実装してみた。よく考えると単純に再帰で実装できることにきづいて10分くらいでちょちょっとかいてみた。

def make_comb(array, num)
return [[]] unless num > 0

size = array.size
ret_arr = []
(size-num + 1).times{|ind|
ret_arr += clonecker([array[ind]],make_comb(array[(ind+1)..-1],num-1))
}

ret_arr
end

def clonecker(array1, array2)
array2.map{|item|
array1 + item
}
end

例えば、make_comb([1,2,3],2)とやると[1,2][1,3][2,3]が得られます。ほとんど同じ方法で順列も作れます。

Tuesday
Aug 5,2008

言われて、コンピュータ科学の問題を見てみたら見慣れた問題がたくさんあって、いまさら若干後悔してます。
こんにちは。はらじゅんです。

受験科目にプログラミングというものがありまして、あんまし深いこと考えずにそれを選択したわけですが、システム作るのとかは得意ですが、正直あまりアルゴリズムとかに詳しいわけでもなく、どうしたもんかなーと思いとりあえず対策をすることにしました。
ICPCの問題を解くといいらしいといううわさを聞きつけ、ICPCに挑戦した友達に聞いたところPKUをお勧めされました。
いわゆるオンラインでプログラムを採点してくれるあれです。あとはtop coderとかその辺。

とりあえず、全問題を紙に印刷して傾向分析からいこうと思います。こんなことするの大学受験以来だな・・・・

あとiPhone Developer programに登録しました。これでiPhoneアプリが開発できます。しかし一ページ目から穴だらけで、「さすがアップル・・・・この突っ込みどころの多さ・・・!」と思う一方で、どんな人でも使えるiPhoneという存在をキープしつつ自由に開発させるという若干矛盾した命題をクリアするのは大変なんだろうなぁとか思いました。

とりあえずNDAがあるらしいので深いこというのはやめましょう。

ちょいちょいいじっていきたいと思います。

で、何の宣言かというと、結局プログラミングの試験というのはアルゴリズムの試験なので、勉強したアルゴリズムをちょいちょい書いていこうかなと思います。
ん?けど敵に塩送ってもしょうがないんだよなー。んー。まぁアルゴリズムだけかくならいいか。

そんな感じでゆるいけどもしばらくそういう感じでいきたいと思います。

iPhoneとcoreserver

  • Filed under: 雑記
Friday
Aug 1,2008

iPhone買ったのでメールサーバをimapにしようと思い新しくレンタルサーバを借りました。

coreserver.jp

まずimapサーバって何ですか?という話ですね。

メールサーバには大きくpopとimapというという仕組みが存在しています。
popはたくさんの人に使われている方式で、基本的にメールサーバからローカルにメールをダウンロードし、サーバ上のメールを削除する使い方をします。
メールサーバ上の領域をあまり食わないので多くのレンタルサーバでこっちが採用されています。

一方でimapは基本的にサーバからメールを削除しません。
既読/未読の管理もサーバ上で行います。フォルダわけなどもすべてサーバ上で行われます。
送信済みのメールなどもすべてサーバ上に残ります。
そのため私のように常時2,3台のPCでメールを書いたりiPhoneでメールの送受信をする人にとっては大変便利です。

実はこのimapはgmailでも対応していて、普通のメーラ+gmailで同じことができたりします。なのでわざわざサーバ借りることなんかないのですが、まぁそこは趣味の問題です。

そして先にあげたcoreserver。ディスク15GBで年間6000円という激安サーバな上、imapにも対応ています。一週間テスト運用でメールのやり取りをしてみましたが問題なく動作するので契約しちゃいました。

このコアサーバはvaluedomainと運営会社が同じです。domainも爆安なので自分が持っているドメインは大体ここでとっています。

ただ、この会社は玄人向けであることが若干否めません。他社のVPSなら簡単クリックで終わりそうなものとかも全部自分で設定しなくてはいけません。
自分は趣味でDNSサーバ立ててわけわかんない設定とか一時期やってたのでそんなに苦はなかったですが。

ちょっとPCに自信があるという人でiPhoneをお持ちの方は、この組み合わせはお勧めです。

テストと雑感と綾戸智恵

  • Filed under: 雑記
Thursday
Jul 24,2008

テスト中ですね(ほとんどの人には関係なさそうですが・・)

どうでもいいけど綾戸智恵が好きです。
とても楽しそうに歌うんですよね。なんかゴスペルとかと同じ感じがする。楽しいことも悲しいことも楽しくしてしまえるという感じがすごくする。

テストとか社会の何チャラとか、いやだいやだとそんな話ばかり聞きますが・・・・・って、なんか俺の周りはそうでもない気がしないでもない気がするけど・・・・こういう感じに気持ちよく物事が進めばいいのになといつも思います。

ちょっと幸せな瞬間ですね。

雑感。テストの出来があまりよくない気がするorz先学期結構取れたからちょっと油断してるな・・・・

レポート返却がなぜか俺だけ指導教官に呼び出され「くっ・・・・手抜きにもほどがあったか・・・・!」とビクビクしながらいったら、そういうわけでもなくて、「ここってこういうわけじゃなくて?」という、根本的になんかの論理的誤りでした。反省。
遠くから見ると非常に卒論風なレポートです。近くで見ないでくださいw

report

一応俺もちゃんと勉強してたんだなぁ・・・・

雑感2

今日久しぶりに考えてるシステムもろもろを話してみたところ、「それは面白い!」ということになったものの、「ぜってー売りにくいよなそれ」という話になった。
とりあえず自分が持ってれば非常にすばらしいツールであることは間違いないんだけど、ぶっちゃけ「もっと便利になろう」というのはよほどモチベーションある人だけなので、そういう意味では売れる気がしないというのは本となんだよな。むー。
ただ、なんかいろいろとヒントを得ることができた。ありがたし。
久しぶりに大ヒットだった。
まぁグーグルがやるのはビジネス上(多分)無理なのがわかってるので、あのうっとおしい質問「グーグルがそのうちやるんじゃないの?」には明確に答えられそうでよかった。
と、いうか、冷静に考えればぐーぐるだって無尽蔵にお金を持ってるわけじゃないので「物理的な可能不可能」と「ビジネス上実行可能」とかは分けて考えないとだめだとおもうんだよな。
それ聞くほうはちゃんとわかってるんだろうか?

Monday
Jul 21,2008

どうせまた聞かれるんだろう(ぉぃ)と思うのでpwnage(jailbreak)について簡単に警告というか、注意点を書いておこうかなと思います。

  • 違法行為(刑事)になる可能性がある。未確認だけど
  • iPhoneが全損したときのリスクが多少高い(上の違法の可能性に加え、金銭的リスクもiPod touchの倍以上)
  • メモリが少ないので、iPhoneが不安定になる可能性がある

主には以上3点です。

まずiPodTouchをjailbreakするだけなら、少なくとも日本であれば、appleが訴えてこない限り大丈夫なわけですが、iPhoneの場合携帯なのでそれを改造した場合電波法だかなんとか通信法だかに抵触する可能性があるみたいです。(うわさレベルなので未確認ですが)
少なくとっもハードウェア的に改造する場合はアウトで、ソフトウェアはグレーゾーンなんだそうな。
いちいちつかまることはないと思いますが、余計なことはしないほうが身のためでしょう。すくなくともjailbreakの話をするときはそっと身内でしたほうが無難そうです。

これにともなってiPhoneがpwnageに失敗した場合のリスクも若干高めです。金銭的リスクだけならたいしたことないですが、上の件と絡めると少々リスクが高いように感じます。

CPUが云々言う人いますが、メモリサイズが小さい(らしい)ところも注意です。
jailbeakすると常駐アプリを起動することができますが、もちろん常駐するということはメモリを食います。
safariがよく落ちたりするのは、何が原因なのかはわかりませんが、大量にメモリ消費すると落ちる傾向があるように感じます。
少なくともiPhoneの安定運用を考えるなら、アプリケーションのインストールには気を使ったほうがよさそうです。

最終的に「リセット」という最終手段が使えるのなら大丈夫ですが、使えなかった場合に少々ディザスターです。
とりあえず、jailbreakした人で、iPhoneの全機能が安定して使えることがわかるまでは、素人の方にはあまりすすめません。

追記:

すべからく自己責任なので、止めることも特にしないんだけどね・・・・

iPhoneメールのimap化と自由な発想

  • Filed under: 雑記
Sunday
Jul 20,2008

一応まだレポート終わってないので詳細なのは再来週くらいにまとめるとして、格安のimapサーバ(15GB!)を発見したのでそこを実験で使っています。
とりあえず全部のメールのコピーを転送して様子見中。
やっぱりiPhoneはimapでこそ進化を発揮する。gmailでもいいジャンって話もあるし、それはまったくそのとおりなんだけども、そこは単に趣味の問題。
「そんなのめんどいしお金かかるじゃん」とか言われるけど、そこは単に感覚の違いで、「その程度めんどくさくない(設定するだけ20分くらい)し、お金もかからない(imap使えるだけのレンタルサーバ代はごみ)」という感じです。
だったら好きなドメイン使えて、好きなサブドメインまで設定できて、無尽蔵にメアド作れるほうがお得じゃないか!(ほんとか?)

まぁなんにしても、おれはサーバ何台持ってても使い道はあるんだよね・・・・最近時間ないから3台(と、言っても自作のPCだけど)ほど放置されてるけど・・・

自由な発想の話。
ちょっとネタですがこの動画を知り合いに教えてもらった。

http://www.nicovideo.jp/watch/sm3515017

なんと言ったらいいのか。ほとんどのことは用意されてるAPIつかって箱庭の上でプログラミングしてればたいていのことはどうにかなるし、それで評価される世の中なのに、こういう発想をして作ってしまうところにすごく個人的に感動を覚えた。
これがなんの役に立つのかとかよく知らないけど、こういう発想力と行動力が世の中の人全員に身につくと世界がもっと愉快になる気がした。

Saturday
Jul 19,2008

キャズムを超えろ

変換スピードが遅いとかそのへんの話がいろいろ出てるけど、根本的に連文節変換がないケータイとか(文字を色々入れる人なら)ありえない

はて。これは本当なんだろうかという話。「必要」というのが「これなけりゃiPhoneとか買う価値なさ過ぎる」とかいう意味ならそんなことはないと思う。
(個人的に「必要」ということばは数学的な何かを思い起こさせるのでかなり強い単語に聞こえる)
実は学科の友達も「連文節変換ないのがだめだ」と言っていたのだけど、言われるまで気づかなかったくらいに自分には不便がなかった。
というかPCとか電子機器に対してユーザビリティの点を期待したことがなかったのはあるかもしれないが・・・・たいていの場合人間がUIに順応していくもので、個人的には人間の操作を矯正するのもひとつのUIの設計なんじゃないかなと思っていた時期もあります。

そんなはなしはどうでもよくて。

先のリンク先のブログの書いてあることに誤りはないし、文句もない。しかし、「じゃぁ予測変換があったら使いやすかったのか?」に対する考察がないのはいただけないよね。と、思った。
(例に漏れず駄目だしだけしたところで、それってただの感想文だよねという話。大学で一番怒られる点。)

とりあえず、連文節変換がなくて不便であることは認める。長い文章打って一発で変換してくれればそれはそれは気持ちいいと思う。
まさにDOSの時代に一太郎+ATOKに出会ったときの一発で変換できたときの気持ちよさに似ている。
けど、じゃぁ一発変換できなかったらどうするんだろうね?
もちろん単語の区切りを再設定して、そこから変換することになるんでしょう。

では、ここからが問題です。「どのくらいの精度で一発変換できると思いますか?」「あのiPhoneのインターフェースで区切りの再設定って容易だと思いますか?」

まず一発変換の精度。定量的な比較は難しそうですが、いくつかの文章をmacのことえりで変換してみましょう。

○もももすももももものうち → 桃もスモモも桃のうち

○となりのきゃくはよくかきくうきゃくだ → 隣の客はよく柿食う客だ

×論文投稿の期限を延長した旨メールさせていただきました → 論文投稿の期限を延長した胸メールさせていただきました

△申し込みを完了する → 申し込み・申込み・申込 などのバリエーションがある

○はっせいほうとせっとくりょく → 発声法と説得力

×工学研究科機械工学専攻 → 光学研究か機械工学専攻

これ以外にもやりましたが、ほとんどの文章でいけました。×になったのは適当にメールから拾った文章で、とりあえず意地の悪そうなのを適当にピックアップしただけなので、かなり恣意的であります。
次に「iPhoneで区切りの再設定は容易か?」という問題。

「変換が誤っている」というのはいくつかのケースに分けられることが観察できます。

  • 区切りはあっているが字が違う「光学」「研究か」→「工学」「研究科」
  • 区切りがあっていない

今回簡単に試したレベルではほとんどが前者でした。後者もたまにありますが、よくわかんない長い長い学術用語みたいのか、口語っぽい文章で無い限りは無いようです。ひょっとすると若い人の文章は後者多いかもしれませんね。

前者の場合はどうやって修正するのでしょうか?iPhoneには矢印キーがないので、おそらくタッチしてカーソルの場所を動かすことになるでしょう。
該当の区切り箇所にもって行き、そこでスペース(変換)をタッチして正しい候補を選ぶ。たとえばこういうインターフェースが想像できます。

では後者の場合はどうでしょう。
ことえりではshift+矢印キーで単語の境界を切り替えることができます。ではiPhoneではどうしたらいんでしょうか?
まず、iPhoneには矢印キーがないのでことえりと同じ方法は使えません。

次に単語の区切りの再設定モードを作ることを考えてみます。たとえばダブルタッチした場合とか。
すると指でなぞった部分が単語の切れ目として再設定されるというのが想像できます。しかし、iPhoneのタッチの精度は高いと思うものの、テキスト編集エリアで正しく選択できるほどセンシティブではないように感じます。(少なくとも私は)

こういうことから考えると、連文節変換の一番のネックは「一発で変換できなかった場合で、かつ、単語の区切りがあっていない場合」であることが想像できます。

もし、人間が連文節変換のないインターフェースに順応することが可能であるとすると、こんなややこしいインターフェース実装するより、連文節変換実装しないほうが便利であるという可能性が出てくるような気がします。
なんにしても、連文節変換で正しい変換がされなかったときの修正を簡単にやる方法が思いつきません。逆に言えばこれさえあればiPhoneに実装されるんじゃないでしょうか?

以上は仮説なので、所詮実証実験するまでは仮説なんですが・・・・

まとめると、

  • 多くの文章で正しい連文節変換が一発でできそう
  • ただし、正しくなかった場合の修正が容易ではないことが想像できる
  • 予測変換でことが足りるなら、それに人間を合わせるほうが有効

これら3つのことは仮説でしかないのですが、実証実験をすることは可能です。実験の仕方もいくつかアイディアがあります。
だれか批判ばかりではなくてこういう建設的な実験してくれる人っていないのかなぁ?(タダでやる人は神な気がするけど)

なんにしても、「連文節変換がないと不便」であることは認めるものの、「あったとしても有効かどうかはかなり疑問」というのが個人的な意見です。
すくなくとも人間が順応で着るならそっちのほうが便利そうであることは確かです。

追記:

なんにしてもiPhoneが最初から不便であろうことはわかっていたのに、そこをつっつくのはなんかなぁというきがする。
自分の周りでは「まず契約の時点でソフトバンクが落ちて契約が手間取る」とかいうあたりから、ネタではあるけど、予想してた。

なんにしても、プログラムが組めて、ある程度浅くではあるがITにかかわっている身として注目しているのはandroidです。
あれはビジネス的な点でフワフワしてるのでいまだになぞですが、携帯OSのなかでは一番リナックスに近い存在です(まぁリナックスなんだけど、ライセンスやオープンソースという点で。iPhoneってappですらおーぷんにできないよねぇ?)
世間も3Gの登場で世界的に通信方式が統一してきたし、少なくとも国内は統一しつつあります。
携帯の価格あたりのハードスペックも上昇しアプリケーションが自由に開発できるところまで着ました。
じゃぁあとはPCと同じ展開になるんじゃないでしょうか?
キャリアごとの設定部分(SIM?PCだとBIOSとか)とOSが分離して、OSも自由に入れ替えられる。インターフェースもマルチタッチが普及しちゃえば、どのOSでも扱えるようになりますよね?
そもそもOSの低レイヤー部分でインターフェースの差異を吸収しちゃえば大丈夫でしょう。PCだっていろんなキーボードつなげるのと一緒です。

昔の汎用機とかの時代に詳しいわけではないですが、なんかおじさまがたの昔話を聞いてると同じことがおこっているように感じました。

あなたはどう思いますか?

追記2:

現状、app入れた程度でなにもカスタマイズしてないので、iPhoneの有用度とことん低いです。
とりあえず何人かに自慢して優越感に浸ったとかでしょうか・・・・

自分の場合、情報端末として使う目的が高いので、その辺のカスタマイズを徹底的に(時にはコーディングもして)やらないと役に立たないという・・・・
たぶん作ったものは公開しないけど。(iTunes storeに出すほどクオリティあげるのめんどくさい)

about me

原田 惇

応用数学や統計、ITなどを利用していろんなことをしています。
自己紹介はこちら

adsense

amazonお勧め