Android 1.5/1.6 のsampleのビルドエラー
Android 1.5/1.6 のsample(ApiDemo)を、最新のAndroidSDKでビルドするとエラーが出るようだ。
以下のように、res/values/strings.xml のアポストロフィー(')の前に、バックスラッシュ(/)を入れれば解決するっぽい。
例:
変更前: <string name="summary_on_advanced_toggle_preference">I'm on! :)</string> 変更後: <string name="summary_on_advanced_toggle_preference">I\'m on! :)</string>
まだまだAndroid1.5端末は生き残ってるので、当分は対応が必要そうだなぁ
http://developer.android.com/resources/dashboard/platform-versions.html
スマートフォンまみれ
ふと気づけば、机の上がスマートフォンまみれだ。(iPod touch含む)
ほんの2〜3年前までは、ガラケーまみれの環境でFlash Lite開発の日々だったのになぁ。
(2007年に撮った写真)
今から3年後は、どんな環境で開発してるんだろうか。
とりあえず、iPhone7には3D液晶と指紋センサと心拍計ぐらいはついてそうだな。
CPUは32コアぐらいになって、並列処理向け言語のErlangやgoとかでソフト開発してたりするのかな。
Windows(cygwin)で、SSH, Subversion, Git サーバを立てる
Windows(cygwin)で、SSH, Subversion, gitosis(Git)サーバを立てるときに、色々調べたのでメモ
続きを読むInterfaceBuilderで作ったUIの色が変わる
追記1:どうも、常にこの問題が起こるわけではないみたい。新しいプロジェクトを作って試してみたら、この問題は発生しなかった。iPhoneSDK 2.0の時に作った古いプロジェクトを使いまわしているので、それが原因かもしれない。 →下の追記2も参照
iPhone SDKのInterfaceBuilderでゲームのタイトル画面を作ったのだが、同じソースファイルでビルドしたにもかかわらず、タイトル画面の背景色が微妙に変わってしまうことがあった(上図)。
詳しく調べてみると、どうもXCodeでビルドする時のディスプレイプロファイル(システム環境設定>ディスプレイ>カラー)によって、InterfaceBuilderで指定した色が変換されてしまうようだ。その結果、ビルド時に外付けディスプレイをつなぐかどうかで色が変わったりしてしまう。
実際に、実行時にbackGroundColorの値を表示してみると、以下のようにビルド時のディスプレイプロファイルによって若干変化している。
ビルド時のディスプレイプロファイル | 実際に表示される色 |
---|---|
カラーLCD | kCGColorSpaceModelRGB 0.736403 0.2621 0.125456 1 |
カラーLCD (色温度をD50にカスタマイズ) | kCGColorSpaceModelRGB 0.81819 0.337517 0.189591 1 |
DELL E207WFP | kCGColorSpaceModelRGB 0.822632 0.210778 0.0575691 1 |
一般RGBプロファイル | kCGColorSpaceModelRGB 0.839216 0.298039 0.0196078 1 |
実際に指定した色はRGB=(0xD6,0x4C,0x05)なので、上記の「一般RGBプロファイル」の場合が正しい値のはず。
というわけで、色の微妙な変化が気になる場合は、提出する実行ファイルをビルドする時に、ディスプレイプロファイルを「一般RGBプロファイル」に変更してからリビルド(クリーニングしてからビルド)したほうがよさそう。あるいは、下記のように色の値をハードコーディングしてしまうとか。
self.backgroundColor=[UIColor colorWithRed:(0xD6/255.f) green:(0x4C/255.f) blue:(0x05/255.f) alpha:1.f];
追記2:どうやら、xibファイルをテキストエディタで開いたときに「
Remember the Milkのタスク画面に、週間スケジュールを表示する
Remember the Milkのタスク一覧画面に、週間スケジュールを表示するgreasemonkeyスクリプトを作ったので、置いておきます。(iframe要素を埋め込んで週間スケジュールページを表示しているだけ)
以下の内容をコピペして、var username="〜"; の所を、RTMのユーザ名(URLに表示されているもの)に変更して、add_weeaky_schedule.user.js というファイル名で保存し、Firefoxにドラッグ&ドロップすればインストールできるはず。
SSLを使わない場合は、https:// を http:// に置換する。
タスク一覧を表示する時は、https://www.rememberthemilk.com/home/ユーザ名/#section.tasks というURLにアクセスする。
追記:今日の日付を冒頭に表示させました
追記:Google Chrome でも動作しました
// ==UserScript== // @name add weekly schedule to RTM // @namespace http://sunflat.net/ // @include https://www.rememberthemilk.com/home/*/#section.tasks // ==/UserScript== (function(){ // configuration var username="ユーザ名"; // var d1=document.getElementById("list"); if (d1==null) return; var ifr=document.createElement("iframe"); ifr.src="https://www.rememberthemilk.com/printplanner/"+username+"/"; ifr.width="100%"; ifr.height="400px"; ifr.style.border="none"; ifr.addEventListener('load', function(){ // modify inner page var idoc=ifr.contentDocument; var d2=idoc.getElementById("printheader"); d2.style.display="none"; var d3=idoc.getElementById("content").getElementsByTagName("div")[0]; var d=new Date(); var w=["日","月","火","水","木","金","土"]; var daye=idoc.createElement("h1"); daye.appendChild(idoc.createTextNode("今日: "+(d.getMonth()+1)+"月"+d.getDate()+"日("+w[d.getDay()]+")")); d3.replaceChild(daye, d3.getElementsByTagName("h1")[0]); }, false); d1.appendChild(ifr); })();