Home

Google の UI

2011-06-30 21:34:38

Google の UI が微妙に変わりましたが、何かあんまりいい感じではなく。とくにヘッダ部分の黒いのが気になります。こういうときは、ユーザースタイルシートの出番ですよね。とりあえず、こんな感じでそれなりにいい感じになったみたいです。


  div#gbx4 {
    background-color: whitesmoke !important;
  }
  span.gbts {
    color: gray !important;
    font-size: 12px !important;
    font-family: meiryo !important;
  }

このユーザースタイルシートを適用すると、↓みたいな見た目になります ( メニューバーは出す派です! )。ユーザースタイルシートを変更した後、リロードしただけじゃ変更が適用されないのに気づかず、えらい悩んでました。あと、マウスオーバー時の背景色が JavaScript で指定されてますが、そこの変え方がわからず...。( そもそも変えられるのかなぁ? )

image/google-ui.jpg

うーむ。なんか google-code-prettify で CSS がきれいにハイライトされないのはなんでだろう...? ちょっと時間ができたら調べてみることにしようっと。

Go to TopGo to Top

TrackPoint 付きキーボード

2011-06-29 20:34:36

このカテゴリは、ほんとは『技術的な話題』用だったんですが、今回はアイコンどおり『キーボード』のお話。だいぶ前から Thinkpad 使いでして、もう 10 年以上になると思います。Thinkpad のポインティングデバイス『TrackPoint』はその中毒性で知られていて、いったんハマるとなかなか逃れられないことで有名なのはご存じのとおり。

その中毒性から抜けるひとつの手段に『デスクトップをメインで使う』ってのがあるんですが、そういう中毒の人向けに、外付けキーボードが用意されていたりします。で、数年前に販売中止になっちゃって ( 今は後継機が売られてます )、路頭に迷う人が続出した、というのが前回まで ( ? ) の話。

わたしもそのタイミングでキーボードを三枚ほど買いだめしたんですが、現在使っているのがへたってきて、『将来的にどうしよう...』なんてことを考えてしまいました。まぁ、ほんとに無くなったら有無を言わさず移行するしかないんですが、MINIGURU も『小規模販売するかも?』なステータスにはなったものの、実際にどうなるかはまったく見えない状況と。

しょうがないので、Amazon でサーバー向けの NetBAY 1U モニター・キット というのを二枚ほど購入 ( 『ドライバが見当たらない』とかいう話もありますが、USB キーボード & 3 ボタンマウスとして認識さえしてくれれば何とかなります )。あわせて、こちらも単体売りが無くなってしまった ( しくしく ) トラックポイントキャップを eBay で 250 個ほど購入と。

これで、あと 10 年くらいは戦えますかね。

Go to TopGo to Top

なぜ IUSR は IIS_IUSRS に所属していないのか?

2011-06-25 20:41:39

ことの発端は、Windows Server 2003 / IIS 6.0 で動かしていた ASP アプリケーションが、Windows Server 2008 R2 / IIS 7.5 ではうまく動かない、というよくあるやつ。ま、いまどき ASP でもないわけですが、過去資産の流用ということを考えると仕方がありません。

こういうときは、たいてい権限周りです。エラーとして ERROR_ACCESS_DENIED が出てますし。今回、この動作についていろいろ調べていたんですが、それなりに面白いことがわかったのでまとめておこうというのが今回の記事になります。

まず、IIS 6.0 の方。こっちはワーカープロセス分離モードでは、Network Service の権限でワーカープロセス ( w3wp.exe ) が実行され、ASP 自体は IUSR_< マシン名 > というユーザーで実行されます。

それに対して、IIS 7.5。こっちのワーカープロセス ( w3wp.exe ) は、DefaultAppPool というアプリケーションプール ID と同じ名前のユーザーの権限で実行されます。動的にユーザーが生成されるイメージでしょうかね。アプリケーションが ASP.NET の場合は、そのまま DefaultAppPool の権限で実行されるんですが、ASP の場合は、NT AUTHORITY\IUSR という権限になると。

IUSR は IUSR_< マシン名 > とは異なり、BUILTIN\Guest とかに所属していないので、リソースにアクセス許可を与える際に注意が必要と。たいていの場合、アクセス許可は最小限に与えるのが基本なので、グループに対して与えるのではなく、そのユーザーに与えるわけですが、手抜きをすると痛い目を見る、ってやつです。

ここで不思議なのは、BUILTIN\IIS_IUSRS というそれっぽいグループがあるのにもかかわらず、『IUSR が所属してない』という点。当然、IUSR は含まれているんだろうと思って IIS_IUSRS に権限を与えてたんですが、うまく行かないということでしばらく悩むことになってしまいました。

『何でだろう?』ということで、検証をしてみたわけですが、ASP を実行しているスレッドのトークングループには確かに BUILTIN\IIS_IUSRS がありません。DefaultAppPool とかちゃんと所属してるのに。こんな検証のために、GetCurrentThread() 関数GetThreadToken() 関数GetTokenInformation() 関数 とかを実行する COM コンポーネントを ATL で作りました...。 ま、無駄といえば無駄なんですけど、そういうのが楽しいわけです。

もう一点、タスクマネージャで見ると、w3wp.exe は DefaultAppPool なユーザーで実行されているわけですが、この仕組みがよくわかっていませんでした。これについては、ASP の実行スレッドを起こす際に『偽装』されてる、って理解でいいんだろうと思ってます。当初はプロセスのトークンを ( 外部から ) 取得して確認してましたが、当然それでは確認できないと。

結論として、タイトルの疑問に合理的な解答は得られませんでしたが、その辺はあんまり気にしてもしょうがない派です。悩んでもしょうがないので、NT AUTHORITY\IUSR に権限を与えて対処することにします。

Go to TopGo to Top

VSUG Day 2011 Summer

2011-06-13 20:57:51

ということで、わたしは諸事情 ( マンションの管理組合がどーのこーの、らしいです ) により不参加ですが、VSUG Day 2011 Summer です。今週末の日曜日 ( 6 月 19 日 )、品川のマイクロソフトで開催とのこと。ぜひぜひ、みなさまお誘い合わせのうえ、ご参加ください。


image/VSUGDAY2011S.jpg

福井さんのセッションは面白そうだなぁ...。PPT の公開を楽しみにしておこうっと。

Go to TopGo to Top

Mango とか iOS 5 とか

2011-06-08 23:34:56

今年の WWDC は iOS 5 ということで、新しいハードウェアに関する情報はなしと。Windows Phone Arch なんて Web サイトができてたりで、いよいよ Mango が楽しみになってきました。とはいえ、スマートフォン全般に言えることなんですけど、似たり寄ったりな大きさなんだろうなぁと。

正直、iPhone 4 でも大きいなぁと思ってるわたしにとっては、それより大きいスマートフォンには食指が動きません。といった辺りで考えると、Xperia X10 Mini くらいしか選択肢がないです。これも解像度を考えるとちょっとそそられませんけど。

そう考えると、薄くてちっちゃいガラケー&何か、って辺りが現実的なのかも。John's Phone くらい割り切った小さい携帯、どこかのメーカーが出してくれないかなぁ ( John's Phone も実はそれほど小さくないんですけどね。シンプルなだけで )。相変わらずカバンを持たない手ぶら派なので、荷物が増えるのは困りものなんですが、どうしたものやら。

だいぶ海外から携帯も買いやすくなってきたのはいいんですが、そそられるものがなければあんまり意味がないと思う今日この頃。ガジェットはそれなりに好きな方ですが、買いたくなるほど魅力的なものが見当たりません。Mango とか Amazon Kindle タブレットとかに期待しときます。

Go to TopGo to Top

Job オブジェクト

2011-06-06 20:39:29

今日はちょっと Job オブジェクトの検証をやろうと思って、CreateJobObject() だとか、AssignProcessToObject() とかの関数を使ったサンプルを作ってました。が、なぜか、Windows XP で動くコードが Windows 7 で動きません。AssignProcessToJobObject() 関数で ERROR_ACCESS_DENIED が出ます。

Process の access right だとか、Job オブジェクトの access right だとか、UAC だとかをいろいろやっててもうまく動かず。30 分くらい悩んだ末、CreateProcess() 関数を呼び出すとき、dwCreationFlags 引数に CREATE_BREAKAWAY_FROM_JOB を指定する必要がある、ってことに気づきました。うーん。はまったはまった。

ふと思い浮かんだので、IsProcessInJob() 関数で試してみると、何もしてないプロセスでも何らかの Job に含まれているようで。へー。知りませんでした。気づかないとはまりポイントになりそうなので、メモとして残しときます。

Go to TopGo to Top

ポキンと

2011-06-03 21:10:46

久しぶりに、ほんと久しぶりに心が折れました。ポキンと。というわけで、やけ食いです。そしたら、どうにもエビがやばかったらしく ( 半生? )、のどから胃にかけてピリピリしてます。踏んだり蹴ったり。

年をとってから、生の甲殻類アレルギーになったらしく、最近じゃお鮨を食べに行っても『エビ以外でお願いします』って感じです。ゆでてあれば大丈夫なんですけどね。なので、エビフライやら蟹クリームコロッケは全然平気です。

何というか、気を張りつめすぎると折れやすくなるんでしょうかね? その辺のメカニズムは、相変わらずよくわかりません。今後どうするか、ってあたりは多少考えてないわけでもないんですが、この週末ですっかり憑きモノが落ちる可能性もありますし、とりあえず、いつものように出たとこ勝負です。

なんというか。もう少し楽に 逝きたい 行きたいです。はい。


Go to TopGo to Top