2011年9月4日日曜日

A Pivotal Pivot

先日参加したAndroid友の会沖縄支部で縁のあった@yasulabこと安川さんに紹介してもらったTechCrunchの記事

環境の変化に対する対応性・順応性、そしてコア・コンピタンスを持つことの重要性を改めて強く感じる機会となった。

記事では、日本でも近年facebookやtwitter等と同様に普及している「Instagram」をテーマに、サンクス・コストにとらわれない状況に応じた戦略の切換えと、特にスタートアップ企業における選択と集中の重要性が主張されている。

Instagramは始めから今の形を目指していたわけではない。
Twitterも、Youtubeも、Paypalも始めから今の姿を描けていたわけではない。
(※これは同じく紹介してもらった書籍より)

今では世界規模でサービスを展開しているこれら企業だが、それは
様々な課題やチャンスに巡り会う度に、はじめに描いた未来の自分たちの姿を変え、ある時は捨て、その状況を最大限に活かす選択の中で脱皮を繰り返してきた結果だ。

しかし、その選択は決してでたらめで、運任せな無責任なものではなかったと思う。不確定な要素が全く無かったとまでは言わないが、厳しい市場競争の中で、そうした変化を遂げ生き残っていく為には、機敏に環境に対応していく確かな技術力、そして何より起業に至った核となる情熱といった揺るがない強い軸がバックグラウンドとしてあったはずだ。

急速にいろいろなモノが壊れ、いろいろなモノが進化する今、この切り替えと選択・集中の基盤となる軸の重要性は、我々日本の組織と個人にも当てはまることだと思う。

最近、県内の開発者コミュニティやイベントごとに参加するようになった。そこでは若く、情熱を持ったエンジニア達が様々な先端的な技術やサービスを学び合いそして競い合っている。組織に属するにせよ、起業するにせよ、そうした強さを持った人材が多く育ち
業界のメインストリームとなった時、日本も沖縄もようやく本格的に「Pivot」できるのではないかと感じた。

当然自分もその流れについていけるよう、強い軸を固めていかなくてはいけない。



2011年1月5日水曜日

AndroidのWebViewでHTML5 Web Database

はまったはまった。

WebViewでHTML5のWeb Database試したかっただけなのに。
2日間で計8時間くらいかかりました。(--;

まとめ。

以下、動作したActivityのmainクラスそのまま。


package my.app.travelNote;


import java.io.File;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebStorage;
import android.webkit.WebStorage.QuotaUpdater;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class main extends Activity {

WebView mWebView;

/** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        mWebView = (WebView) findViewById(R.id.webview);
        String databasePath = this.getApplicationContext().getDir("database", Context.MODE_PRIVATE).getPath();

        WebSettings settings = mWebView.getSettings();
        settings.setJavaScriptEnabled(true);
        settings.setJavaScriptCanOpenWindowsAutomatically(true);
        settings.setDatabaseEnabled(true);
        settings.setDatabasePath(databasePath);
      
        mWebView.setWebChromeClient(new MyWebChromeClient());
        mWebView.loadUrl("file:///android_asset/html/index.html");
    }
    final class MyWebChromeClient extends WebChromeClient {
     @Override
public void onExceededDatabaseQuota(String url,
String databaseIdentifier, long currentQuota,
long estimatedSize, long totalUsedQuota,
QuotaUpdater quotaUpdater) {
            quotaUpdater.updateQuota(10 * 1000 * 1000);
}
}


また、登録したデータベースを確認するには
eclipseで


[Window]-[Show View]-[Other]-[File Explorer]でFile Explorerビューを表示。