2月中に公開すると言っていた、iPhone や iPod Touch 向けのソフトウェア開発キット(SDK)ですが、3月に公開されるとか、公開されるのはまだβ版だとか、色々な噂が飛び交っているみたいです。正式発表まであとわずかですが、どうなるのでしょう。
さらなる噂として、アップル、iPhone向けアプリの開発に制限を課す計画か--米サイト報道というものもある模様。
サードパーティによるソフトは、iTune での配布になりそう、とのことですが、個人的にはそれも NG だと思っていました。確かに配布するには楽な方法だとは思いますが、開発者が気ままに作って公開できるような自己満足の世界で完結できず、iTune という Apple 社の管理下に置かれてしまうのが非常に迷惑な話です。セキュリティの観点で公開するアプリを管理せざるを得ない、という理由ももちろんありますが、ちょっと残念な結果です。というか、Apple 社が管理するとして、公開する全てのアプリの挙動について、どうやって確認・保証するつもりなのでしょう?サードパーティのアプリの安全性等については無保証として、単純にインストーラによる配布が良かったです。結局、SDK は公開されたとしても、ソフトの配布については従来の Jailbreak (脱獄、と訳されていますがやはり似合わないと思います!)で行うのが便利な気がします。
Mac を所有していない自分にとっては、Mac 用のバイナリを作成する手段がないため、iPod Touch を買って SDK で遊んでみる予定はないのですが、動向についてはずっとみていたのでつまらない結果になったと感じています。そんなわけで個人的には Google の Android (オープンソースの携帯プラットフォーム)に期待。Linux カーネルと Java ベースということもあって、開発環境を選ばない点や、開発中とはいえすでに SDK が公開されている点が評価できると思っています。あとは、各社がサードパーティアプリの扱いをどうするかが問題でしょうか。遊べる携帯が出てきて欲しいこの頃。
Excel 2000 等で「リンクの設定」には色々列挙されているものの、リンクの設定を解除しようとしてリンクの対象を自分自身にして誤魔化そうとしてもダメ、そのリンク設定の実体がどれかも分からない、という場合の Tips。
他の人が作った資料のフォーマットだけを再利用した場合などに、よくごみっぽいリンクの設定が残っている場合があります。しかもリンクされているファイルがなかったり、そもそもそのパス自体が残っていない場合もよくあります。それでもリンクの設定を解除したい!そんな時は、エクセル ワークブック診断の診断ツールを使ってみてはいかがでしょう?
診断ツールにも書かれていますが、私の経験上では、Excel のメニューから「挿入」-「名前」-「定義」に色々残っている場合にそういった状況になっているようです。使っていないと確信できるのならばっさり消してしまってすっきり。
Excel マクロでの検索処理です。
Excel のヘルプ(VBの方)の使用例に少し手を加えたものです。
ソースコード中のコメントでも記載してありますが、検索にヒットするセルが1つしかなく、そのセルが結合セルである場合、ヘルプの使用例のままでは、FindNext の結果が Nothing になるため、Loop While ~ の行でエラーになります。検索にヒットするセルが2つ以上あったり、ヒットするセルが1つでもそのセルが結合セルでなければ問題ありません。
FindNext メソッドは、検索範囲内の最後のセルまで検索すると、検索範囲の最初のセルに戻って再検索を行うため、検索にヒットするセルが1つしかない場合は、同じセルがひたすらヒットするはずなのです。それなのに検索にヒットするセルが1つしかなく、それが結合セルの場合には、再度同じ結合セルが検索にヒットするわけでなく、なぜか Nothing になります。この挙動を本来の FindNext の挙動に合わせるように手を加えています。
ソースコードは以下の通り。
なお、検索結果は該当範囲の左上のセルの位置をイミディエイトウィンドウに出力しています。
Option Explicit Sub test() Dim find_range As Range '検索範囲 Dim find_value As String '検索する値 Dim find_cell As Range '検索でヒットした範囲 Dim prev_find_cell As Range '前回の検索でヒットした範囲 Dim findAddress As String '範囲参照値 Set find_range = ActiveSheet.Range("A1:F5") '検索範囲 find_value = "あ" '検索する値 With find_range Set find_cell = .Find(find_value, LookIn:=xlValues) If Not find_cell Is Nothing Then findAddress = find_cell.Address Do '検索されたセルの位置をイミディエイトウィンドウに出力 Debug.Print "(" & find_cell.Column & "," & find_cell.Row & ")" Set prev_find_cell = find_cell Set find_cell = .FindNext(find_cell) '結合セルのみがヒットするとなぜかNothingになるためそれを回避 If find_cell Is Nothing Then Set find_cell = prev_find_cell '前回ヒットしたRangeが唯一の該当Rangeのはず Set prev_find_cell = Nothing Exit Do End If Loop While find_cell.Address <> findAddress End If End With Set find_range = Nothing End Sub
Rockbox の Subversion のソースコードに適用できるパッチが公開されていたので、パッチを適用してカスタムビルドしてみました。
適用したいパッチがいくつかあるのですが、パッチの公開時期がものによってバラバラのため、公開された時には他のパッチは適用できない状態になっていたりして、なかなかカスタムビルドするタイミングがありませんでした。今回、ちょうどパッチの同期が取れたので(作成者に感謝!)適用してみました。
適用したパッチは以下の通り。公式サイトで公開されている WPS (いわゆるスキン) を、(*.wps ファイルの書式が古くて修正が必要なものを除いて)ほぼ使用できるようにすることを目的にパッチを適用しています。もっとも、英語のみのフォントを使用する WPS ばかりなので、フォント設定を変えないとまともに使えたものではないですが(笑)
シミュレータでの動作例はこんな感じ。(もちろん実機でも同様に表示されてます。)
※WPS のフォント設定についてはいじってあります。
カスタムビルドした iPod Video(Memory 32MB)用バイナリとソースコード(パッチを含む)を公開しておきます。
※パッチの適用以外に、apps/lang/japanese.lang ファイルについても、週や月の日本語訳を英語に戻したものを使用してビルドしています(WPS で日付を表示すると、Oct, 17 → 10月, 17 となるため見た目がおかしくなります(笑))。
※パッチについては、公式で公開されているものから一部手を加えて適用できるようにしてあります。(動作保証なし)
パッチの適用順序に注意して、順に patch -p0 < <filename> で適用できると思います。
※bootloader に iPL Loader を利用する場合、2.5 以降を使用してください。2.4 では起動しませんでした。
バイナリ
ソースコード & パッチ
少し前からエントリのカテゴリを何とかしようと思っていて、ようやく実行しました。
なんとなく、PC Life に突っ込みすぎた感があったので、ちょっとだけカテゴリを増やして、多少カテゴリを入れ替えました。
ちなみに、カテゴリにある、mess with とは、~をいじくる、という意味です。
意外とあちこちのエントリ中でリンクを張られていたりしているので、ひょっとするとリンクが切れてしまっているかもしれませんが、ご容赦ください。また、writeback のデータも移動したりしているので、最近のコメントとトラックバックの順序がおかしくなっていますが、気にしないでください。
で、そのついでとして、blosxom のバージョンも 2.0.2 にあげてみました。修正内容も確認しているので、設定ミスさえなければ従来通り動くと思います。(右の powered のところもちゃんと 2.0.2 になってますよ!)
また、ついでに、CSS が微妙に Invalid になっていた(powered のところを追加した時のものだったのでかなり前からですね(汗))ので、これも修正しました。