ももらぼっ!にっき


2008年06月03日 [長年日記]

_ NVIDIAがスマートフォンの能力を劇的にアップさせる「Tegra」プロセッサを発表

今回発表された「Tegra」を使用すれば、小型携帯機器、例えばスマートフォン上などで130時間のオーディオ再生、30時間のHDビデオ再生などが可能になり、さらに高画質で激しく高速な動きを要求されるゲームも動作可能になるとのこと。

なんと! これが実用化すると、いろいろもっさりでバッテリに余裕が無いW-ZERO3シリーズも楽しいことになりそうですね。

1000g以下の小さなノートPCも増えるかも? とも思ったんですが、MSにはWindows Mobile以外のOSをサポートする気は無いよなぁ…きっと。

_ [W-ZERO3] uGReader。

FEEDBRINGER.netがサービス停止して以来RSSリーダを使ってなかったんだけど、最近Google Readerに移行しました。 なかなか快適です。

で、そうなるとAd[es]でもこのRSSフィードを読みたいじゃないですか。そう思って調べてみると、uGReaderっていうGoogle Readerの情報を使うソフトを発見したので早速導入してみました。

…んが、起動してみると下の方になにやらエラーが出てしまっています。 どうもデータの読込に失敗している?らしいのですが、エラーメッセージが途中で切れてしまって、「Unreadcount loading...」の後ろのメッセージが読めません。

使うのあきらめるかなーと思っていたのですが、ソースを公開してくれているようでしたので、デバッグしてみることにしました。

そしたら、デバッグ実行すると普通に動いてくれちゃいました。あれ? リリースビルドするとおかしくなるのかと思って、リリースモードでビルドし直して配置したのですがやっぱり動作します。 おかしいなと思って、普通にダウンロードしたCabから再インストールしたのですがやっぱり動作します。

最初に動かなかったのはなんだったんだー!(T-T)

…と思わす叫んでしまいましたが、とりあえず無事動作したので良しとします。

そうそう。 使い勝手は良好ですね。 このまま常用してみたいと思います。

_ [W-ZERO3] uGReaderでリストのトグルを行うパッチ。

使ってみると、早速気になる動作があったので修正してみました。

未読のフィードを読む場合、「すべてのアイテム」からたどることが多いのですが、 その度にカーソルを一番下まで持っていかないといけません。 どこかのキーをEndキーに割り当てればよいのかもしれませんが、 そんなことをしていないため、リストの一番上にカーソルがある場合、 上キーでリストの一番下へトグルするようにしてみました。

diff -ur uGReader_orig/uGReader/MyListBox.cs uGReader/uGReader/MyListBox.cs
--- uGReader_orig/uGReader/MyListBox.cs	Fri Apr 25 00:19:58 2008
+++ uGReader/uGReader/MyListBox.cs	Tue Jun 03 20:19:39 2008
@@ -244,11 +244,23 @@
                         EnsureVisible(++this.SelectedIndex);
                         this.Refresh();
                     }
+                    else
+                    {
+                        this.SelectedIndex = 0;
+                        EnsureVisible(this.SelectedIndex);
+                        this.Refresh();
+                    }
                     break;
                 case Keys.Up:
                     if (this.SelectedIndex > this.vs.Minimum)
                     {
                         EnsureVisible(--this.SelectedIndex);
+                        this.Refresh();
+                    }
+                    else
+                    {
+                        this.SelectedIndex = this.m_items.Count - 1;
+                        EnsureVisible(this.SelectedIndex);
                         this.Refresh();
                     }
                     break;

ソースコードが見やすかったおかげで、すぐにパッチを作ることができました。 コードを公開してくださっているおとーぽんさんありがとうございますm(_ _)m

本日のツッコミ(全4件) [ツッコミを入れる]

Before...

_ ももたろ [おぉ。取り込んでくださってありがとうございますm(_ _)m 言われて試してみれば、フィードの一覧で上下をトグルさせ..]

_ おとーぽん [あっ、一番最初のリスト表示の事ですか なんか勘違いしてました 例えば、すべてのアイテムを選択してfeedのリストが..]

_ ももたろ [StartHearってそういう意味だったんですね。 早速やってみましたが、私の用途の場合これで十分かもです(^^;;..]


2008年06月05日 [長年日記]

_ momo-lab.netの移転。

いままで(7年くらい?)momo-lab.netのサイトはSPPDを利用していたのですが。 別でさくらインターネットも使っていて、コンテンツが2箇所に分散してしまっていたのでした。 …とはいっても、さくらのドメインを使って公開していたコンテンツはほとんど無かったのですが。

で、やっとこさ、借りているレンタルサーバをひとつにまとめる決心をしまして、コンテンツをさくらのサーバに移行していたわけです。 移行自身は完了し、現在はmomo-lab.netのアクセスは全てさくらのサイト(momo-lab.sakura.ne.jp)にリダイレクトするように設定されています。

今日、ドメインの移管申請をしたので、今月の中ごろくらいからはさくらに一本化できる見通しです。 二つのレンタルサーバ会社と同時にやり取りをしなきゃいけなく、いろいろと面倒だと思い込んでいたのですが、申請申し込みはあっけなく終わってちょっと拍子抜けです。 …途中AUTHCODEを間違えて申請してしまうハプニングはありましたけどね。

なんにせよ、このまま無事ドメイン移管できることを祈っているところです。

ってまぁ、全部こちら内部の話で、ウチのサイトを見に来てくださっている皆様にはまったく影響の無い(ハズの)話なんですけどね。 とはいえ、もしかしたらサイトが見られなくなったりなど、不都合をお掛けするかもしれませんが、ご了承くださいm(_ _)m

_ Excelに貼り付けた画像サイズを簡単に調整するマクロ。

インストールマニュアルを作ったり、テスト結果のハードコピーを保存したり。 私の環境ではExcelに画面のハードコピーを貼り付けることが多いです。 というか、作成するドキュメントは何もかにも全てExcelです。基本的に。

そんなExcel大好きな環境の是非はさておき、 Excelに画像ファイルを貼り付けた後に印刷用に調節するため、 画像のサイズを調整することがよくあります。 しかも、同じサイズの画像を同じサイズに拡大・縮小することが多いです。

今までずっと、

  • 「Ctrl+1」で「図の書式設定」ダイアログを出して、
  • 「Ctrl+PageUp」で「サイズ」タブに移動して、
  • 「Alt+H」で「倍率」の「高さ」項目に移動して、
  • 倍率を入力して「Enter」。

なんてことをやってました。 マウスでやるよりはよっぽど速いのですが、やっぱり面倒くさいです。

ということで、面倒くさいことはコンピュータに任せようと こんなマクロを作ってみました。 PERSONAL.XLSにでも標準モジュールを作成して貼り付けてください。

Private 画像サイズを調整_倍率 As Double

Sub 画像サイズを調整()
    '画像じゃなければ終了
    If Not TypeOf Selection Is Picture Then
        Exit Sub
    End If

    '倍率を求める
    If 画像サイズを調整_倍率 = 0 Then
        画像サイズを調整_倍率 = 100
    End If
    Dim buff As String
    buff = CStr(画像サイズを調整_倍率)
    buff = InputBox("倍率を百分率(%)で指定してください。", "倍率の設定", buff)
    If buff = "" Or Not IsNumeric(画像サイズを調整_倍率) Then
        Exit Sub
    End If
    画像サイズを調整_倍率 = CDbl(buff)

    '画像サイズを変更
    Dim pic As Picture
    Set pic = Selection
    With pic.ShapeRange
        Call .ScaleHeight(画像サイズを調整_倍率 / 100, msoTrue)
        Call .ScaleWidth(画像サイズを調整_倍率 / 100, msoTrue)
    End With
    Set pic = Nothing
End Sub

実行すると、画像を選択している場合は「倍率の設定」ダイアログがでるので そこに倍率を百分率で入力してあげると、その倍率に画像サイズが変更されます。 一度入力した倍率は保存されるので、何度も同じサイズに変更したい場合は そのままEnterでOKです。

いまだにOffice2000なウチの環境でしか動作確認していないため、 最近のOfficeで正しく動くかは分かりませんが、多分大丈夫でしょう。きっと。

Excelマクロって、もっと仰々しく作成してツールとして提供するのにしか使ってなかったのですが、 こういうちょっとした作業の効率化にも使えるんですよね。 ちょびっと忘れていました。

なんにせよ、これで私の作業効率が少しだけ向上したのでした。


2008年06月06日 [長年日記]

_ [WM5] Windows Mobileのショートカットファイル(.lnk)のフォーマット。

W-ZERO3向けにExecなんちゃらシリーズを公開しているわけですが、ものによってiniファイルの指定の仕方が違うのがずっと気になってました。 ExecMultiはセクション名を指定するのに、それ以外はiniファイル名を指定するところとか。

で、その辺をうまく共通的にできないかなーと考えているときに、そもそもiniファイルを使って設定を定義するのではなく、ショートカットファイル内に設定を埋め込めないかと思いついたのでした。

とりあえず、ショートカットファイルのフォーマットを調べないといけません。 いろいろ試してみて分かったことを以下に列挙しておきます。

  • Windows Mobileのショートカットファイルは単なるテキストファイル。

    53#"\Program Files\ShortcutMaster\ShortcutMaster.exe" -a
  • 形式は以下の通り。"と{パラメータ}の間にはスペースが無くてもいいみたい。

    {#以降の文字サイズ}#"{実行ファイルのフルパス}"{パラメータ}
  • 文字サイズは無くても、実際の文字サイズと違っていても動作してしまう。
  • #が無いとエラーになる。
  • パラメータは改行していても引き渡される。 例えばこんなのも。

    53#"\Program Files\ShortcutMaster\ShortcutMaster.exe" -a
    b
  • #以降は259文字までしか認識しない。 MAX_PATHが260だから…かな。

これらは、星羽さんとこShortcutMasterを使って実行した結果を前提にしています。 もしかしたら、他のソフトだと違う動きをするかも?いや、しないかも。


2008年06月07日 [長年日記]

_ 無事に。

DNSが浸透してきたようで、momo-lab.netのドメインをさくらのサーバに移行できました。

なにやらおかしな所があったら指摘してくれると嬉しいです。

…そういえば、Googleの検索結果がほとんどmomo-lab.sakura.ne.jpに置き換わっていたなぁ…。 しばらくするとまたmomo-lab.netに戻るのかしら。


2008年06月20日 [長年日記]

_ [WM5][Tips] VB.NETで実行ファイル名を取得する。

普通のWindows用アプリとしてVB.NETを使う場合は、 My.Application.Infoあたりを使えば実行ファイル名が取得できたのですが、 Windows Mobile上の場合にどうすればよいか分からず悩んでしまいました。 (My.Applicationが無いんですよね…)

いろいろ試行錯誤したところ、ちょっと面倒ですが、以下のようにすることで実行ファイル名 (…というか、その拡張子を.xmlに変換したもの)を取得できました。

Private Function GetSettingFileName() As String
  Dim asm As System.Reflection.Assembly = System.Reflection.Assembly.GetExecutingAssembly()
  Dim exePath As String = asm.ManifestModule.FullyQualifiedName
  Dim fileName As String = System.IO.Path.ChangeExtension(exePath, "xml")
  Return fileName
End Function

忘れないようにメモとして残しておきます。

_ [WM5][W-ZERO3] ConvUnit Ver.0.90 暫定リリース。

ハードコピー まだまったくドキュメントが無い状態ですが、とりあえず公開します。

これは、海外旅行に行ったときなどに、現地通貨と日本円を相互変換するために使ったりするソフトです。 画面を見てもらうと分かるとおり、直感的に使えるかなーと思っています。 レート登録画面のハードコピーが無いのですが、実際の為替額に合わせなくとも、3万円を$280に両替したよ、なんてことを登録しておけるので、実際に手元にある現地通貨が日本円でいくらの価値なのかが分かるのが強み…だと勝手に思ってます。 お金に限らず、ある単位と単位の相互変換が可能ですので、そのようなことを日常行っている人には重宝されるかな、と。

ずいぶん昔に作って、海外旅行のたびに役に立っていたのですが、レートの登録をXML直編集しないといけない、という万人にとって優しくないソフトだったのでそのまま放置されていました。 やっとこさ重い腰を上げて、レートの登録画面を作成したのでココに暫定ではありますが公開します。

おいおいドキュメント等を整備してVer.1.00とするつもりではいますが、いつになることやら…。

あ、.NET CF 2.0が必要ですので、別途インストールしておいてくださいね。

本日のツッコミ(全2件) [ツッコミを入れる]

_ APO [はじめまして。ショートカットの記事を見にきたら、欲しいなぁと思っていたレート変換ソフトがあったんでConvUnitい..]

_ ももたろ [ご利用いただきありがとうございますーm(_ _)m そうです。為替に限らず、メートル⇔インチの変換とかも設定さえすれ..]


2008年06月23日 [長年日記]

_ [WM5] Windows Mobileのショートカットファイル(.lnk)のフォーマットの続き。

ショートカットファイルのアイコンを変更する方法を見つけたので、忘れないようにメモメモφ(.. )

ショートカットのアイコンを変更するより。

エディタで開いて、?の後にアイコンの入ったdllやexeファイルを書いて 
,の後にアイコンの位置を示す数字を入れるといいよ。 

2008年06月24日 [長年日記]

_ [WM5][W-ZERO3] ExecCtrl Ver.0.10 暫定リリース。

こないだの案をふまえて、ExecMulti+ExecIfの機能を持った、ExecCtrlを作成しました。

これまでと違い、iniファイルではなく、ショートカットファイル(.lnk)内に 設定を書き込むため、以下のような特徴があります。

  • ファイルマネージャ上でタップするだけで、起動できる。
  • アイコンを任意のものに変更できる。
  • なので、「プログラム」メニューに配置できる。

…が、設定画面が無いため、使いこなすのがとても難しくなってますorz 2chソフト関連スレでも、難しいってツッコまれて ますし。*1

いずれ設定画面が作成される予定ですので、それまでは 気合でエディタ編集してくださいませm(_ _)m

*1  つーか、「もも様」とはなんつー呼び方だ(笑)

_ websvn導入。

すっかり忘れてたんですが、websvnを入れ直しました。 こちらから私の作成した各種ソフトのソースを参照することができます。

websvn-2.0を入れてみたんですが、以前に比べて日本語周りが強化されてるっぽいですね。 まったく問題なく、日本語のlogが表示されています。

便利な世の中になったものです(^^;;

_ websvnでparentPathを使用したときに、除外するリポジトリを指定できるようにするパッチ。

…で、最近はアプリケーション毎にリポジトリを分けるようにしていたので、 websvnでも、

$config->parentPath('/path/to/repos');

なんてやって、全てのリポジトリを見えるように設定しました。

…設定したのですが、ローカルで使用しているだけで、一般に公開したくない リポジトリもここに置いていたので、websvnで見えるようになってしまいました。 まぁ、リポジトリパスを変えれば済む話なのですが、手元全てのワーキングコピーも 参照先を変えなきゃいけないのがしゃくだったのでwebsvn側に手を入れてしまいました。

こんなパッチを当ててやることで、除外するリポジトリを指定できます。

diff -ur websvn-2.0/include/configclass.php websvn/include/configclass.php
--- websvn-2.0/include/configclass.php  Mon Aug 13 15:51:09 2007
+++ websvn/include/configclass.php      Tue Jun 24 17:53:53 2008
@@ -1016,13 +1016,15 @@
    //
    // Automatically set up the repositories based on a parent path

-   function parentPath($path, $group = NULL)
+   function parentPath($path, $group = NULL, $excludeList = NULL)
    {
       if ($handle = @opendir($path))
       {
          // For each file...
          while (false !== ($file = readdir($handle)))
          {
+            if (in_array($file, $excludeList)) continue;
+
             // That's also a non hidden directory
             if (is_dir($path.DIRECTORY_SEPARATOR.$file) && $file{0} != ".")
             {

設定例はこんな感じ。

$config->parentPath('/path/to/repos', NULL, array('hoge', 'moge'));

これで、hogeとmogeのリポジトリがwebsvn上から見えなくなります。 多分これで大丈夫だとは思っているのですが、使う際は当然のごとく自己責任でどうぞ。