Oracle Solaris Studio 12.2をSolaris 11 Expressで使う

パッケージインストーラから入れようとするとこけるので、メモ。

最初はInstalling Oracle Solaris Studio 12.2 (tarfile) on Solaris 11 Express の通りの手順で足りないパッケージを入れておく。

GUIでインストールしようとすると下記のような画面が出てなぜかインストールできない。

しかし、./SolarisStudio12.2-solaris-x86-pkg-ML.sh –tempdir ~/tmp –extract-installation-data ~/dataとしてパッケージを抽出して手動でpkgaddすれば問題なくインストールできる。

パッケージがたくさん展開されるので、展開されたディレクトリで ls|sed ‘s/$/ all/g’|xargs -L 1 pkgadd -d ってな具合でやっつけた。

X201s買った

X61tの液晶の端に謎の泡が入るようになって,こりゃとても使えないということでX201sを買いました.X201のタブレットは,解像度が高いものがないので,やむなく今回はタブレットを諦めることにしました.適当に安いAndroidタブレット買って遊ぶかなあ.

横が広がって,縦が縮まったので(1400×1050から1440×900に変わった),Bagel2の必要性が久々に高まっている.

CIDから作成したHTMLDocumentでもCanvasが問題なく扱える

CIDからHTMLDocumentが作成できるのはnanto_viさんが書いているとおり.DonutGにサムネイル機能を搭載するにあたって,nsICanvasRenderingContextInternalのインスタンスを作って,そこからコンテキストを作るのがいいらしいとなったのだけれど,風博士のソースを見る限り,MOZILLA_INTERNAL_APIというマクロをオンにしないとたぶん使えない.んで,それを回避するために,CIDから空のHTMLDocumentを作ってCanvas要素を作ればいいんじゃね?と考えた.試したところ問題なく動いた.以下はExtension Developer上で試したコード.Shell.enumWinsという変数で,今開いているウィンドウの配列が取得できる.

const NS_HTMLDOCUMENT_CID =  '{5d0fcdd0-4daa-11d2-b328-00805f8a3859}';
var doc = Components.classesByID[NS_HTMLDOCUMENT_CID].createInstance();
var canvas = doc.createElement("canvas");
var ctx =  canvas.getContext('2d');
ctx.drawWindow(Shell.enumWins[1].content, 0,0,300,300,  "rgb(255,255,255)");
var str = canvas.toDataURL();

これがstrの内容の画像:

昨日はいろんなものが目についた

  • 三四郎池前で足がつぶれたバッタがもがいていた.
  • 三四郎池前でカナヘビさんがうろついていた.
  • 理学部一号館二階に鳩が入っていくのが見えた.おそらく巣がある.
  • 総合図書館前でアオスジアゲハが飛んでいくのが見えた.よく見かけるけど,クスノキでも生えてるのかな.
  • 中型のジェット機が俺んち近くで飛んでいくのが見えた.

IHTMLDocument2も順調に減っている

IWebBrowser2に続きIHTMLDocument2も4箇所に減った.

今困っているのは,Windowのサムネイルを取得する方法と,nsIWebBrowserFocus::Activateしているのに実際にはActivateされないという怪現象.

サムネイルのほうは,MOZILLA_INTERNAL_APIをオンにしないでやる方法を探している.なので,本当に困ったらそれを使えばよく,クリティカルではない.

フォーカスは…どうしたものか.前WTLでGecko組み込んだときはこんなこと起こらなかったぞ?

粛々と実装を進める

いつの間にかv0.1.8になっていた.残りの

  • nsIPromptService
  • 名前をつけて保存・印刷関連
  • ページ内検索・ハイライト

をどうにかすれば,一通り使えるようになる.しかしすごいな,ソースコード中で「IWebBrowser2」が登場する箇所が4箇所にまで減ったwww 次はIHTMLDocument2を撲滅していこう.

目下のところ困っているのは,nsIWebBrowserFocus::activateを呼んでいるのに,実際にはactivateされないこと.いったんタブを切り替えたり,リンクをクリックしたり,テキストボックスをクリックしたりすると,やっとactivateされる.ウィンドウズプログラミングムズカシイネー

unDonut+modをGeckoエンジンベースにすることは可能か

いつのまにかVS9でコンパイルが通るソースが出ていたのね。

Donutの肝はDonutView, IWebBrowserEvents2Impl, CWebBrowser2, ChildFrameあたり.で,CWebBrowser2はIWebBrowser2の単なるラッパ.IWebBrowserEvents2Implがイベントリスナ.IWebBrowserEvents2Implを継承したクラス(ChildFrame)からWebBrowserEvents2Adviseを呼び出すと,IWebBrowser2と接続されるというわけか.

骨は折れるけれども,Geckoを使うようにすることはそんなに難しくないんじゃないかって気がしてきた.

再開したUVB-76をインターネット経由で聴く

GlobalTuners という、世界各国に配置された無線の受信機をインターネット経由で使えるサイトがあるのですが、こいつを使って、停止した後再開したという話が出ているUVB-76を聴くのを試みてみました。

Vienna 3 という名前の受信機を使い、周波数を4.625MHz, そしてAMにセット。時間帯を変えていろいろ試したところ、先ほどブザー音を聴くことに成功しました。いつか実際に機材を買って、自宅で聴いてみたい物です。