前回は、Prototypeパターンの基本的な実装を紹介した。その結果、ある意味当然だが、Prototypeパターンではオブジェクトのコピーが重要な事が分かったと思う。 そこで、今回はObjective-CとCocoaにおける、コピー機能の紹介をしよう。非常に基本的な機能なのだが、議論すべき点はたくさんある。 単純なコピー まず、最も単純なコピーから考えてみよう。コピーする対象はオブジェクトなのだが、いくらオブジェクトといっても所詮はメモリ上のデータなので、同じサイズのメモリ領域を確保して値をコピーしてやれば、コピーは完了する。Objective-CはC言語とのハイブリッドなので、mallocとmemcpyを使えばいい。 といっても、それでは原始的すぎるので、Cocoaではオブジェクトの単純なコピーをサポートする関数が用意されている。NSCopyObjectだ。定義は次のようになる。 Lis
1. keytool コマンドを使い、鍵を生成 keytoolコマンドは javac とかと同じディレクトリ (${JAVA_HOME}/bin/) に転がっているはず。 > keytool -genkey -alias tomcat -storepass changeit 姓名を入力してください。 [Unknown]: www.oreore.com 組織単位名を入力してください。 [Unknown]: OreOre CA Services 1 組織名を入力してください。 [Unknown]: OreOre Japan K.K. 都市名または地域名を入力してください。 [Unknown]: Shinagawa 州名または地方名を入力してください。 [Unknown]: Tokyo この単位に該当する 2 文字の国番号を入力してください。 [Unknown]: JP CN=www.oreor
Google TV STB(Logitech Revue)がHoneycombになったので遊んでみる 気づいたらGoogle TV STB(Logitech Revue)を米国amazonで買ってました(笑)(そのあたりのいきさつ) 長くなったので,目次 Honeycombへのアップデート (Honeycomb 3.2へのアップデート) Android Market 野良アプリと他のマーケットアプリ 試したアプリ 偉大なるお方による,OpenWnnで日本語入力 /sdcard 配下へのアクセスはftpで Logitech Harmony Remoteアプリの利用 Logitech Media Playerはどうなったか 静的IPアドレスの設定 Google TVで現在地を人工的に設定する Portraitモードにしか対応していないアプリをGoogle TVで動かす Pandora Inte
Googleは、Android開発者向けのWebサイト「Android Developers」において、Android OSのバージョン別シェアの最新データを公表した。 このデータは、Androidマーケットにアクセスした端末数の集計にもとづくもので、1月3日までの直近14日間の数字となっている。同サイトが発表するデータでは、今回、Android 4.0(Ice Cream Sandwich)が初めて取り扱われた。 公表されたデータによると、もっとも使われているバーションは、Android 2.3(Gingerbread)で、Android 2.3~2.3.2とAndroid 2.3.3~2.3.7を合わせると、55.5%を占める。次いで、Android 2.2(Froyo)が30.4%となり、Android 2.3とAndroid 2.2が搭載された端末が全体の85%以上を占めていること
ソースコードのなかでバグが多いのは、より高頻度に、かつ最近になって集中的に直している部分。これが、グーグルで採用された「バグ予測アルゴリズム」であることを、先月の記事「グーグルはコードの品質向上のため「バグ予測アルゴリズム」を採用している」で紹介しました。 そのバグ予測アルゴリズムを実装したツール「bugspots」がオープンソースとして公開されています。 gitのレポジトリを分析 bugspotsはRubyで記述されており、gitのレポジトリから履歴を読み込んで分析し、どのモジュールにバグが含まれている確率が高いかを示してくれます。 以下のようにインストールして実行(説明ページから引用)。 $> gem install bugspots $> git bugspots /path/to/repo $> git bugspots . # (in current git directory)
Googleで実施されているというバグ予測の方法がブログで公開され(こちら)、ツールも利用できるようです(こちら)。Publickeyの記事での紹介で端的に紹介されていますので、時間がない方にお勧めします。ソースコードの変更(コミット)履歴から高い頻度でバグ修正されているコードは今後もバグが出る可能性が高いというものです。 類似の研究結果がたくさん報告されているので、この分野の研究者の1人として紹介したいと思いエントリを書きました。興味のある方には本エントリ末尾に示すこの分野の論文も読んでいただきたいです。 一例として2000年にICSMで発表された以下の論文を紹介します。 Mockus A, Votta LG. Identifying reasons for software changes using historic databases. International Conferen
続:Androidブラウザでviewportのwidth指定 1年ほど前にAndroidブラウザでviewportのwidth指定という記事を書いたのですが、1年間いろんな端末や状況に対応しているうちに今は結構違うスクリプトを利用しています。 var portraitWidth,landscapeWidth; $(window).bind("resize", function(){ if(Math.abs(window.orientation) === 0){ if(/Android/.test(window.navigator.userAgent)){ if(!portraitWidth)portraitWidth=$(window).width(); }else{ portraitWidth=$(window).width(); } $("html").css("zoom" , por
毎度リクエストあるのでスクリーンーショットの取り方。 Mac編。windows編は予定無し。 結論から言うと、普通のandroid端末と一緒。 本体だけでは(たぶん)とれず、PCにつないでDDMSから。 以下、手順 本体の設定 「設定」->「アプリケーション」->「開発」で「USBデバッグ」にチェック。 Macの設定 android SDKのダウンロード Android SDK | Android Developers からMacOSX(intel)の最新版をダウンロード。(今ならandroid-sdk_r15-macosx.zip) ダウンロード後、zipを解凍して、出来たフォルダ(android-sdk-macosx)を /Developer にコピー(コピー先はどこでも良いけど。) いろいろインストール ターミナルからandroidを起動 $ /Developer/and
NSCopyingプロトコルについて RMGWindowControllerの「モデルオブジェクトを追加、削除、複製する」-「MasterMotifオブジェクトを追加、削除、複製する」で、さりげなくMasterMotifクラスのインスタンスオブジェクトにcopyメッセージを送っていますが、このメッセージに対応するにはそれなりの処理が必要です。 NSObjectのcopyメソッドの説明を読んでみましょう。大体以下の様な事が書いてあります。 copyメソッドはcopyWithZone:メソッドが返したオブジェクトを返す。引数のzoneはnilを指定して呼んでいる。 copyWithZone:はNSCopyingプロトコルのメソッドである。 copyメソッドはNSCopyingプロトコルに準拠するクラスにとって便利な様に用意したメソッドである。copyWithZone:メソッドを実装していないと
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く