2012年9月13日木曜日

[iPhone] iPhone5発表


ついに正式発表されましたな。

個人的にはNFCにも対応してないし、目立った新機能が無いので肩すかし食らった気分だったのですが

ついにテザリング解禁か?という記事もあったり、よく見たら4Sより30gも軽くなってたり、ついでにiPod Touchの新型に思ったより食指が動いたり

さすがAppleだなぁという感想です。

4Sからの変更点は以下

ディスプレイ:4インチ、画面比率16:9、1136 x 640px(326ppi)
CPU:Apple A6
Wifi:Wi-Fi (IEEE 802.11a/n: 5GHz対応)
付属品:nanoSIM、Lightningコネクタ、Earpods(新型イヤホン)
カメラ: 背面:8メガピクセルiSightカメラ、ビデオ撮影中の写真撮影、パノラマ
リアカメラ:正面:1.2メガピクセルFaceTime HDカメラ、720pHD動画撮影対応(30fpsまで)
サイズ:123.8×58.6×7.6mm(4.87×2.31×0.30in)
重量:112g




au iPhone5に関するお知らせ

http://www.kddi.com/corporate/news_release/2012/0913a/index.html

SoftBank 「iPhone 5」について

http://www.softbankmobile.co.jp/ja/news/press/2012/20120913_01/

2012年9月7日金曜日

[android] SQLiteOpenHelperをシングルトンにする

ActivityとWidgetを併用するようなアプリ

もしくはActivityの裏でDBのデータを頻繁に更新するような、Serviceを動かすアプリ



このようなアプリを作る場合、SQLiteへのアクセスが頻発し、トランザクションをかますような

処理をした時に、参照系のSQLがエラーでアプリが落ちる。という事があります。


このような場合、SQLiteOpenHelperを継承したクラスをシングルトンにすることで対応できます。


class DatabaseHelper extends SQLiteOpenHelper {
    // 唯一のクラスインスタンス
    private static DatabaseHelper instance = null;
    
    /**
     * コンストラクタをprivateにすることで、外部からはインスタンス化できないようにする
     */
    @Override
    private DatabaseHelper(Context context) {
        super(context, "DBNAME", null, 1);
    }

    /**
     * このstaticメソッドからインスタンスを得る
     * 多数のクラスから参照されても、常にインスタンスは1つになる
     */
    public static synchronized DatabaseHelper getInstance(Context context) {
        if (instance == null) {
            instance = new DatabaseHelper(context);
        }
        return instance;
    }

    @Override
  public void onCreate(SQLiteDatabase db) {
  }

  @Override
  public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  }
}

このクラスは他の常用クラスとまとめてjarにしてもいいかも。

2012年9月3日月曜日

[音楽] ブルースハーブのHowTo

実家でいつぞやに買ったブルースハーブを見つけたので、吹けるように成る為のHowToサイトをメモしておく。

平松悟のブルースハープ講座

Blues Harpことはじめ

Harp Vortrag(ブルースハープの吹き方講座)

2012年9月2日日曜日

2012年8月19日日曜日

[android] スクラップリーダーVer1.2.3更新

SC-02CをICSにアップデートした事によって判明した

このバグを修正した版を更新しました。


ダウンロードはこちらから

スクラップリーダー(google play)


twitterのコールバックスキーマの件は、スキーマに英字の大文字があったため

対象のactivityを呼べずにエラー画面となっていた様です。



android:ellipsize="end"

の件はICSでそもそも未対応?になっていた様で、android:lines="1"を

追加する事によって対応。(機種依存な気もする)


検証端末が少ないので、利用者のフィードバックが大切だよなぁと感じた今日この頃。

※勿論利用者がフィードバックしやすい様な仕組みを考える必要があるのは当然

[Linux] Debianのランレベル

久々にLinuxネタを

RedHat系は仕事で、Debian系は私用でよく使っていたのだけど

今更ながらランレベルに関して両ディストリで違う仕様になっているのに気づいた。

Debian系
0 = 停止
1 = シングルユーザーモード
2 = マルチユーザーモード(X起動)
3 = 2に同じ
4 = 2に同じ
5 = 2に同じ
6 = 再起動



RedHat系
0 - 停止
1 - シングルユーザー
2 - 未使用/ユーザー定義可能
3 - マルチユーザー、コンソールログインのみ
4 - 未使用/ユーザー定義可能
5 - ランレベル 3 + Xディスプレイマネージャ起動
6 - リブート

なのでDebianの場合、RedHatと同じようにCUIのみでマルチログインさせるべく
ランレベルを3にしただけではXが起動してしまうので、あれ?という事態になる。

Debianの場合はランレベルに応じたディレクトリ(rc1.d~rc6.d)内の
起動スクリプトを削除するなりして、Xの起動を止めないといけないのである。


ついでに他のディストリ&OSのランレベルの定義をのせておく

Slackware
0 - 停止
1 - シングル
2 - マルチユーザー(Xディスプレイマネージャ無)
3 - マルチユーザー(Xディスプレイマネージャ無)
4 - マルチユーザー(Xディスプレイマネージャ有)
5 - 未使用/ユーザー定義可能
6 - リブート

Gentoo Linux
0 - 停止
1 - シングル
2 - マルチユーザー、ネットワーク無し
3 - マルチユーザー、ネットワーク+Xディスプレイマネージャ
4 - ランレベル 3 と同じ
5 - ランレベル 3 と同じ
6 - リブート

Solaris
0 - オペレーティングシステムを停止。SPARCの場合、OpenBootのプロンプトに移行
S - シングルユーザー、root ファイルシステムのみマウント(リードオンリー)
1 - シングルユーザー、全ローカルファイルシステムをマウント(リード/ライト)
2 - マルチユーザー、ほとんどのデーモンを起動
3 - マルチユーザー、ランレベル 2 の動作に加えて、ファイルシステムのエクスポート、その他のネットワークサービスを起動
4 - 予備のマルチユーザーモード。ユーザー定義
5 - シャットダウンし、ハードウェアがサポートしていれば電源を切る。
6 - リブート

HP-UX
0 - システム停止
S - シングルユーザー、コンソールのみ起動、root ファイルシステムのみをマウント(リードオンリー)
s - シングルユーザー、S とほぼ同じだが、現在の端末がコンソールとなる。
1 - シングルユーザー、全ローカルファイルシステムをマウント(リード/ライト)
2 - マルチユーザー、ほとんどのデーモンと Common Desktop Environment を起動
3 - マルチユーザー、2 に加えて、NFS のエクスポートを行う。
4 - マルチユーザー、CDE ではなく VUE を起動
5 - ユーザー定義
6 - ユーザー定義