• 279月

    ある人が、日本のケータイのことを「ガラパゴスケータイ」と呼んでいた。
    思わず吹き出してしまったが、外国で言われている「ゲテモノケータイ」よりはまだ可愛い。

    日本のケータイの技術は世界の最先端を行く。世界もそれを認めている。
    またキャリアが、少ないロイヤリティでクラウドとコネクション、マーケットを担ってきた。よく考えたら、これは今世界で繰り広げられようとしているモデルそのものではないか。世界が日本をパクッテいる。それくらい日本のケータイビジネスは進んでいるということだ。だが、オープンではなかった。世界は日本に入って来れなかった代わりに、日本は世界へ出て行けなかった。

    これだけ日本のケータイが進化してこれた(進化しなくてはいけなかった)のは、メーカーがしっかりとキャリアに守られてきたからだ。着メロから始まって、次から次へと新しいコンテンツに対応して行き、仕舞には携帯とは何の関係も無いキャッシュ機能やワンセグといった機能まで付け始めた。
    しかし、ここまで来ると開発に必要な莫大な時間とコストがメーカーを苦しめる。さらにバリエーションを揃えなくてはならず開発費が分散する。そろそろこの辺が限界らしい。コンテンツもビデオが出た時点で、出尽くした感がする。

    この先日本のケータイを面白くするのはデベロッパーのイノベーションではないだろうか。
    であればやはり日本のケータイのオープンになって行くのか。
    KDDIにはずいぶん前向きな姿勢を感じる。もしかしたら来春にも Android ケータイが日本に登場するかもしれない。
    DoCoMoは微妙だ。いずれはオープンソースモデルを出すのだろうが、プラットフォームと時期については良く見えない。個人的には、DoCoMo では iPhone の取り扱いは無いと思う。

    いずれは日本のケータイもオープンになっていくが全てがそうなるわけではない。もしかしたらスマートフォンというジャンルでオープンケータイを出していくのかもしれない。そして機能に特化したケータイはそのまま残るだろう。
    本当にオープンソースプラットフォームが欲しいのはケータイメーカではないだろうか。現在のネイティブアプリを外してオープンソースにアプリを組み込むことで開発工数を下げられるのではないか。

    オープン化していくとキャリアのマーケットとしての魅力が薄れていく。「私たちは本来パイプなのです」と言い切るが、ならばもっと積極的にオープン化を考えてもいいはず。
    しかしながら、「利便性と安全性のバランス」を唱えるキャリアに、どことなく安心感を覚えるのは、やはり日本人だからなのだろうか。(^^;

    Tags:

  • 279月

    iPhone と Android を比べる前に、Google、Apple、Microsoft、Nokia といった4大勢力を見てみる。
    Nokia は端末メーカーで、世界の40%のシェアを誇る巨人だ。Microsoft は云わずと知れた OS メーカーで、組み込まれている端末はPCも含めると世界1位。それに対して Apple はとりあえず端末メーカーとすると、そのシェアは1%にも満たない。Googleは広告会社で Android というモバイルOSを作っただけだ。
    これだけ見ていると携帯業界としては Nokia の一人勝ちだ。既に Symbian の買収も済ませ、オープンソースプラットフォームの条件をも満たしてきている。
    ではなぜ Android が騒がれるのだろう。それは1000億ドルを超えようとする広告市場だ。広告市場を制覇することは単に広告収入が増えるだけでなく目に見えない様々なメリットととてつもない権力を手にすることになる。業界はその独占に脅威を感じている。

    Google は広告業界ではトップに君臨している。しかし、PC の台数とは比べ物にならない携帯端末で自社のサービスを提供できないことに焦りを感じた Google は、端末メーカーにフルブラウザを提供する。が、その組み込み自体にコストがかかりほとんど採用されなかった。では OS ごと作ってしまえと出てきたのが Android 。
    ところが、Google の動きに触発されてか、各メーカーの技術者は Google にそこまでされなくてもと、フルブラウザを組み込んでしまった。実はこの時点で Google は携帯でも自社のサービスをという目標を達成してしまった。Android はもう用済みなのか。
    先ほど、Googleは Android というモバイルOSを作っただけだと書いたが、OS を作るには莫大な資金を投じているはずだ。既に目標を達成した Google に新たな野心が芽生えたかどうかは分からない、いや、最初から目標はここに有ったのかも知れない。Google は Android を完成させ、まだ若いモバイルオープンソースの分野でも虎視眈々と勢力を狙っているように見える。

    Apple はオープンソースプラットフォームのビジネスモデルを既に実現してしまった。それもたった1社で。
    驚くのは一番乗りしたことではなく iPhone の UI だ。iPod Touch では既に登場していたが、安い値段で携帯として出たことで一気にユーザーを魅了してしまった。これは競合他社の関係者が iPhone を持ち歩いていることからもその人気を伺える。日本では、テキストの入力のし辛さを知ってか知らないでか、女子高生の今一番気になっているものベスト1らしい。つまらないアプリがそこそこ売れてしまうのは、アプリを使いたいのではなく、UI を周りに自慢したくてダウンロードしているのではないか。当社も現在そのつまらないアプリをせっせと作っているが・・・(笑)。
    しかし同じようなUIを持ったスマートフォンは既に他社から発売されている。この UI がユーザーにとって珍しくなくなるのは時間の問題。後はデベロッパーが如何に面白い、役に立つアプリを作ってくれるかに iPhone の将来がかかってくる。なにしろ App Store に登録するだけで、全世界に配信できるのはデベロッパーにとっても魅力だ。しかし、将来がデベロッパー次第でいいのだろうか。少し不安が残る。

    いずれ4大勢力はすべてこの iPhone と同じ形態のモデルになる。つまり App Store のようなマーケットを用意してくる。
    ではデベロッパーはどのプラットフォームでの開発を優先させるべきか。それを予想することはできないが、巨大なクラウドと自由度の高いプラットフォームを持つ Google は1デベロッパーとして未来を感じさせる。
    結局、各プラットフォームごとの移植版をせっせと作らなくてはいけなくなりそうなのは現在と変わらないが、相当の待遇を受けていない日本のプログラマーには絶好の機会が訪れてくるのだろうと思う。

  • 279月

    「 iPhone アプリデベロッパーは小作農か」と言う記事を見つけた。
    App Store が30%のロイヤリティー取ることからそういう発想が出ているようだ。

    iTunes では音楽などのコンテンツがひしめき合っているが、アップルはこの販売に際して巨額の著作権料を払っている。これはアップル自身のアセットを販売しているのではなく、他人のアセットを代行して販売していると言うことであり、アップルは著作権者に年貢を納めていることになる。

    アプリケーションでも同じことが言える。
    デベロッパーはいわば地主であり、App Store はその土地で種まきから収穫販売までやって、なんと地主に70%の年貢を納めることになるのだ。
    アプリケーション開発にはコストがかかるが、できた製品を販売するにも相当なコストがかかる。それを App Store が全て代行してくれる。しかも市場は全世界だ。これを利用することでデベロッパーはアプリケーション開発に専念できるのだ。

    30%という数字も妥当な線だと思う。インドは60%、中国は20%~50%といわれている。
    さらに中国などは一括して支払われ、何がどれだけ売れたかなど明細が分からず数字の根拠も無い。聞くところによると中国のロイヤリティーに幅があるのは中間業者の業績次第で取り分が変わるという理由らしい。
    これらを考えても、世界市場を相手に販売代行してくれる App Store の役割は、中小企業や個人レベルにとっては大きな存在だ。

    利益を与えて利益を得る。これはビジネスの鉄則だ。
    Give & Take の精神でいかなければ自らを成長させることはできない。

  • 219月

    悲しいかな、Mac の使い方が分からない。
    オーディオ編集のための Mac が当社にも有るが避けてきた。
    Windows使いと明言してきた自分が Mac を使うことになるとは・・・

    でも、触ってみると Mac って結構いい感じ。
    アイコンひとつとってみても洗練されてるって言うか、さすがデザイナーにユーザーが多いと言うだけはある。
    しばらく Mac を触った後にふと Windows を見ると妙にショボク見えるほどだ。
    プライベートに一台欲しくなる。

    さて、使い方にもだいぶ慣れてきたところで、いよいよ iPhone SDK のインストールだ。
    圧縮状態で約1.4Gbのファイルだ。インストールにも時間がかかる。
    ひたすら言われるがまま操作を続けようやくインストールも完了。

    おー、Xcode だ。これからこれでコーディングして行くんだなあなどと思いつつ起動させるがさっぱりわからん。
    まずはチュートリアルからか、とほほ。
    ほんとに年内にアプリ1本できるのか・・・。

  • 209月

    「All in One SEO Pack」の文字化けの原因が分かった。

    カテゴリ 又は タグ から Title が生成されたときに先頭文字(全角)が文字化けしていた原因は
    strtoupper と ucwords にあった。
    やはり完全にアジア圏を無視したスクリプトだったということか。

    なぜかカテゴリは ucwords(先頭を大文字に)、タグは strtoupper(先頭を小文字に)といった
    変換を行っている。英語ではSEOに有効なのだろうか。日本語では余計なお世話なのだ。

    実際の対処法は、”all_in_one_seo_pack.php” をそれぞれのキーワードで検索して該当箇所を
    修正(ucwords と strtoupper を使わないように)する。数箇所ある。

    これで気持ちよくこのプラグインが使えるぞ!!
    このプラグインの作者に敬意を表する。

    Tags: ,

  • 209月

    前回、関数を作ったが、その関数を別ファイルにしてメンテナンス性を向上させよう。

    まずは前回作った関数の部分だけがコーディングされたファイル ”func_library.php” を作成する。

    [func_library.php]
    <?php
    function char_counter($str)
    {
     $str_temp = mb_convert_kana($str, “CHKV”);
     $str_temps = mb_split(”ガ”,$str_temp);
     $num_count = count($str_temps) – 1;
     return $num_count;
    }
    ?>

    そしてそのLibraryファイルは include して使用することになる。

    [main.php]
    <?php
    include “./func_library.php”;

    $strs[0] = “あさがお”;
    $strs[1] = “ゴアイサツガアリマセン″;
    $strs[2] = “ガンバリマショウ″;
    $score = 0;     //スコアの初期化
    for($i=0; $i<count($strs); $i++) $score += char_counter($strs[$i]);
    echo ‘「ガ」と発音する文字は全部で ‘ . $score . ‘個 有りました。’;
    ?>

    main.php  と func_library.php は同じディレクトリにあるものとして書いてある。

    こんなふうに関数をインクルードすることで、複数のプログラムで使用されている関数も func_library.php を
    修正するだけで、全てのファイルを修正したのと同じ効果が出る。

    何十もあるファイルをキーワード検索して虱潰しに修正していくなんてことはもうやめよう。
    初心者を脱出するのだ。

    include と同じ効果のある requireinclude_oncerequire_once も調べてみると良い。

    Tags: , , ,

  • 149月

    この登録により実機でのテストや App Store からの配布が可能になる。
    しかしこれは有料。個人(通常のアプリ製作)であるなら スタンダードプログラム ¥10,800 が必要。

    この登録に関しては特に難しいことは無い。
    前回の記事で名前が変えられないと書いたが、この登録の際変更が出来るようだ。  

    多分、知る限りここが最後の変更可能な場所だと思う。

    申し込みが終わると数日後にメールで Activation Code が届く。
    Activation が済むとサンキューメッセージが出るはず・・・が出ない。
    なんだか意味不明なことが書いてある。
    メールで問い合わせてみたが、iPhone Dev Center  へログインをして、画面の右上に [Program Portal] が表示されていれば、Program が正常に有効となっているらしい。

    確かに Program Portal に入れた。

  • 149月

    iPhone、iPhone と騒がれて3ヶ月が経った。
    やはりモバイル関連会社としては黙って観てはいられない。
    発売1ヵ月後、本当に買えるのかなあと言う状況の下、無理して実機をGETしてもらった。

    実際に操作してみてそのユーザーインターフェイスに改めて驚いた。
    これならブラウジングできると言うのが実感だった。
    またアプリ、特にホビー系のソフトは面白いものができると感じた。
    しかも、作ればすぐに全世界に配信できる App Store の仕組みも見逃せない。
    これはもうやらなくちゃだめだろう!

    しかーし、Mac 何だよなあ、開発ベースが。
    プログラミングどころか、ほとんどMac に触ったことが無いんだよなあ・・・。

    ええい、そんなことを言っていてもしょうがない。とにかくやるぞ。Mac 1台買ってこーい!

    ってなわけで始まった iPhone アプリ開発。
    五里霧中、見えているのは年内に一本という無謀な目標のみ。
    はてさて、どうなることやら。

    Tags:

  • 139月

    =>All in One SEO Pack」の文字化け解消(2008/09/20)

    ざっとコードを見てみたが、この文字化けは一筋縄では行かない気がするなあ。
    あまり時間をかけたくないので次期バージョンに期待したい。

    とりあえず応急処置として、カテゴリとタグで全角を使用する場合は ”-”(半角ハイフン) を
    頭につけることにした。とりあえずこれで文字化けは解消される。
    この程度で使えるんだったら使った方がいいよね。たぶんSEOには問題ないと思う。

    カテゴリに説明文が入っていれば、そのカテゴリをクリックして表示された記事にも
    Description: が生成される。

    Tags: ,

  • 119月

    PHPのプログラミングに慣れてきた初心者のコードを見ると、ひたすら上から下へと書き連ねられていて、やたらに長い。思いつくままのコーディングはバグが出ても原因の発見に時間がかかる。また、書いてから時間の経ったコードは書いた本人でさえ思い出すのに苦労する。
    理路整然としたコードを書くにはクラスなどオブジェクトという概念も必要だが、ここでは初心者を脱皮するために自作関数の有効性と注意点を記しておこうと思う。

    下の<サンプルコード1>は、3つの文字列変数の中に含まれる「ガ」と発音する文字の数を求めるもの。
    実行すると見事に「・・・3個有ります。」と表示される。結果オーライだ(ヤッター!)。
    しかし、初心者を脱皮するにはこれではいけない。
    例えば、上司から変更命令が出た。内容は「ガ」では無く「サ」の数を、しかも ’サ’ では無く ’さ’ で検索するようにというわけだ。このコードだけならば数箇所直すだけですむが、こっちのページあっちのページといろんな所にこの処理が入っていたとしたら、あなたはきっと上司を恨むでしょう。(簡単に変更変更って言うなよぅ)

    確かに、仕様の変更なんて度々あってはたまらん。でも大小問わず変更はプログラミングには付き物。だからこそメンテしやすいコーディングが必要となる。
    では<サンプルコード1>をどのようにすれば中級と呼ばれるコードになるか。

    このコードをじっくり眺めると、ちょっとだけ違う同じようなことを3回繰り返している。
    この ”同じような” ところを関数にできないか、またどうしたら保守性がアップするかを常に頭に置くようにしたい。
    慣れてくれば自然にコーディングの手順が見えるようになる。

    <サンプルコード1>
    <?php
    $str1 = “あさがお”;
    $str2 = “ゴアイサツガアリマセン”;
    $str3 = “ガンバリマショウ”;

    $str1_temp = mb_convert_kana($str1, “CHKV”);
    $str1_temps = mb_split(‘ガ’,$str1_temp);
    $num1_count = count($str1_temps) – 1;
    $score = $score + $num1_count;

    $str2_temp = mb_convert_kana($str2, “CHKV”);
    $str2_temps = mb_split(‘ガ’,$str2_temp);
    $num2_count = count($str2_temps) – 1;
    $score = $score + $num2_count;

    $str3_temp = mb_convert_kana($str3, “CHKV”);
    $str3_temps = mb_split(‘ガ’,$str3_temp);
    $num3_count = count($str3_temps) – 1;
    $score = $score + $num3_count;

    echo ‘「ガ」と発音する文字は全部で ‘ . $score . ‘個 有りました。’;
    ?>

    関数を利用したコードが下の<サンプルコード2>だ。
    上から順に解説すると・・・

    文字列はループ処理しやすいように配列に入れた。
    配列の初期化・代入の方法はいくつかあるので調べてみると良い。

    $score = 0; は無くても結果は変わらない。
    PHP は変数宣言が必要ない。これは楽なのだが、変数が増えてくるとどれが何を意味していたのかわからなくなってくる。
    そこで、主要な変数は変数宣言の意味で初期化しておくと後でメンテしやすい。

    <サンプルコード1>の12行分がこの for文 たった1行に集約されている。自作関数のお陰だ。
    もっともこの for文 は省略形式で書いているので1行だが、ちゃんと{}を使って改行してコーディングする方が見やすい。

    function からが自作関数の宣言になる。関数名は char_counter と付けた。
    () の中の $str が 引数 と呼ばれるもの。ここでは対象の文字列が入る。
    return は 戻り値 を指定している。この 関数 は実行すると数値を返してくることがわかる。

    今回の関数は引数と戻り値の有るパターンを紹介したが、無いパターンも存在する。
    引数の無いものや戻り値の無い関数の解説はまたの機会に。

    <サンプルコード2>
    <?php
    $strs[0] = “あさがお”;
    $strs[1] = “ゴアイサツガアリマセン”;
    $strs[2] = “ガンバリマショウ”;
    $score = 0;     //スコアの初期化

    for($i=0; $i<count($strs); $i++) $score += char_counter($strs[$i]);

    echo ‘「ガ」と発音する文字は全部で ‘ . $score . ‘個 有りました。’;

    //文字を検索してその数を求める
    //($str=対処の文字列、戻り値=文字の数)
    function char_counter($str)
    {
     $str_temp = mb_convert_kana($str, “CHKV”);
     $str_temps = mb_split(“ガ”,$str_temp);
     $num_count = count($str_temps) – 1;
     return $num_count;
    }
    ?>

    もう一度 for文 の行を見て欲しい。
    char_counter に文字列を一つ入れると数値が返ってくる。それを $score に加算している。
    関数はよくブラックボックスに例えられる。黒い箱(関数)に文字列(引数)を入れて振る(実行)と数値(戻り値)が出てくる。関数の完成度が高ければその内容を意識する必要は無い。つまり利用者にとってはその関数の使い方だけを知っていれば良いという事になる。echo や mb_split といった関数と同じように。

    次回は、このコードをさらにメンテし易いように function 宣言部を別ファイルにして、インクルードして関数を使用する方法を記したい。

    Tags: , ,

« Previous Entries   

Recent Comments

  • Welcart素晴らしいPluginですね。 デモサイト作って色々デザインしてみようと 思っています。...