はてなキーワード: プロパティとは
javascript:window.open('http://b.hatena.ne.jp/add?mode=confirm&is_bm=1&title=はてなブックマーク - '+escape(document.title)+'&url=http://b.hatena.ne.jp/entry/'+escape(location.href),%20'_blank',%20'width=550,height=600,resizable=1,scrollbars=1');undefined;
ダウンロード必要じゃないですか。
http://anond.hatelabo.jp/20070914213754
http://anond.hatelabo.jp/20070914204359
はてなブックマーカーなら「ブックマークする」のプロパティにURLで
javascript:window.open('http://b.hatena.ne.jp/add?mode=confirm&is_bm=1&title='+escape(document.title)+'&url='+escape(location.href),%20'_blank',%20'width=550,height=600,resizable=1,scrollbars=1');undefined;
ってなってるところを一部書き換えたような感じ。
エディタなしでも大丈夫。アドレスバーでJavaScriptを実行してみよう!
アドレスバーに入れた場合、最後の値が表示されます。
javascript:"Hello world!"
サンプルでは良くあるけれど、実際、ダイアログはほとんど使いません。でもちょっとしたデバッグには便利です。
javascript:alert("Hello alert() world!")
このとき「alert()」とは「window.alert()」を表します。windowオブジェクトはブラウザの表示ウィンドウを表すオブジェクトです。windowオブジェクトのプロパティやメソッドを使用する場合は、alertに限らず「window.」が省略できます。
これが「print "Hello world!"」に一番近と思います。
javascript:document.write("Hello document.write() world!"); document.close()
documentオブジェクトは表示中のドキュメント全体を表すオブジェクトです。
Document Object Modelを利用して要素を追加します。
javascript:document.write("<html><body></body><html>"); document.close(); var p = document.createElement("p"); p.appendChild(document.createTextNode("Hello DOM world!")); document.body.appendChild(p);
現在のドキュメントがHTMLであれば、先ほどの「document.write()」はHTMLを扱うことになります。これを使用してbody要素を作っておき、そこへp要素を追加しています。
[追記] createTextNodeを使用するように変更しました。
javascript:document.write("<html><body>Hello world!</body><html>"); document.close(); p = document.createElement("p"); p.innerHTML = "Hello javascript world!"; document.body.appendChild(p); p.addEventListener("click", function(){this.style.borderStyle="solid"}, false)
イベントハンドラの使用方法は幾つかありますが、ここでは「addEventListener」を使用します(申し訳ありませんがIEでは動きません)。この例では、イベントに対するコールバック関数として無名関数の「function(){……}」が登録されます。p要素がクリックされたとき「function(){……}」が呼び出されます。このとき、this(変数ではありません!)が、要素pを示します。
Ruby,Windows COM APIの知識がそれなりにあることを前提としています。あしからず。
あと、用語の使い方は結構いい加減です。訂正ヨロ。
まずは、GoogleEarthをインストールしよう。http://earth.google.co.jp/ から無料でダウンロードできます。
次に、COM APIの登録。コマンドプロンプトで、GoogleEarthをインストールしたフォルダ(通常は、c:\Program Files\Google\Google Earth)に移動して次のコマンドを実行します(>は入力する必要はありません)。
>googleearth.exe /RegService
これを実行することによりCOM APIを介して外部から操作することが可能になります。
次にRubyの実行環境を整えます。が、説明が面倒なので省きます。ActiveScriptRubyでぐぐれ!
さて、ここから実際にGoogleEarthを動かしてみます。こういうときはirbが便利ですね。ActiveScriptRubyが正しくセットアップされていれば、デスクトップにRuby Consoleというショートカットができているはずです。これを起動すると、Rubyにパスが通った状態でコマンドプロンプトが起動するはずです。そこでirb(Enter)と入力してみましょう。
irb(main):001:0>
というふうに表示されればOKです。
どんどんいきましょう。irbで、
>require 'win32ole'
と入力してください(>は入力しません。プロンプトがでているという意味のお約束です)。これで、COM APIをRuby上で取り扱うことが出来るようになります。
次に、
>ge = WIN32OLE.new('GoogleEarth.ApplicationGE')
と入力しましょう。変数geがGoogleEarthのCOM APIのインタフェースのインスタンスになります。geのメソッドを呼び出すことによりGoogleEarthを操作します。GoogleEarthを起動していない場合、ここで起動されます。
では、いよいよGoogleEarthを動かします。GoogleEarthでは、視点情報をCameraと呼称しています。カメラを移動させるために、カメラ情報へのインタフェースを生成します。
>cam = WIN32OLE.new('GoogleEarth.CameraInfoGE')
この、camのプロパティを設定することによりカメラ情報を設定することが出来ます。
>cam.FocusPointLatitude = 35.0 =>35.0 >cam.FocusPointLongitude = 135.0 =>135.0
実際に入力するのは、1行目と3行目です。Latitude:緯度、Longitude:経度です。緯度は赤道を中心として+90(北方向)から-90(南方向)の値をとります。経度は+180(東方向)から-180(西方向)の値をとります。日本の場合、どちらも+になります。
実際に視点を移動させるには、先ほどのgeのメソッドを呼び出します。
>ge.SetCamera(cam,1)
GoogleEarthでの表示が切り替われば成功です。場所は日本どこかです。岡山のあたりでしょうか。
(つづく?)
getter/setterを関数で書くと、後ろに()を付けないといけないから格好悪い!!
って人にオススメ?
template<typename T>struct _property{
virtual operator T() = 0;
typedef T _t;
};
class asdf{
int foo;
public:
struct __foo : _property<int>{
asdf &parent;
operator _t(){
printf("親クラス(?)のメンバへのアクセスが面倒...");
return parent.foo;
}
__foo(asdf &p) : parent(p){}
}y;
struct : _property<char*>{
operator _t(){
printf("ここに副作用付き処理を書ける!?\n");
printf("この関数が参照を返せばgetもどきも実装できる!?\n");
return "ふひひひ!やったね!!";
}
}x;
asdf(int v) : y(*this){ foo = v * v - v - v; }
};
void p(char*s){ printf("\n増田はこちらを振り返ると、\n悲しそうな顔をしてこう言った\n「%s」\n", s); }
int main(){
asdf a(127);
//生でprintfに渡すと型推論が行われない
//それ以外の関数だったら問題ないかも
p(a.x);
printf("\n");
//どうしてもと言うならキャストすべし
printf("\n%d\n", (int)a.y);
return 0;
}
VC8で動作確認してるよ!
はっきり言って普通にgetter/setter書くよりも手間多いね!
ちょっと前に大学が麻疹で休講だったので前から気になっていた&最近Windows重いよバカーってことでLinuxをインストールしてみました。
選んだディストリビューションは最近話題のUbuntu Linux。
インストール手順は WinXPとUbuntuのデュアルブート まったり東京+を見ると幸せになれるはずです。
今回はそれに自分が困ったところを補足。
日本語ローカライズ版Desktop CDのダウンロード | Ubuntu Japanese Team
バージョンによってサポートされている期間が違うので好きな方を選んでください。
isoファイルをダウンロードしたら、それをCD-Rに焼きます。isoファイルを焼けるソフトを持っていない方は
かんべ(Windows95/98/Me / ユーティリティ)から「かんべ」というソフトをダウンロードしてください。
このソフトを使用することでisoファイルをCD-Rに焼くことができます。
焼くことができたらまずは試しに焼いたCD-Rを入れたままパソコンを再起動してみてください。すると今まで見たこと無い画面が出てきたと思います。
そこでUbuntuの起動とインストールを選択。するとCDをがりがり読み込んで起動してくれます。
しばらくすると起動するはずです。これでUbuntuが起動できました。でも、これだと毎回CDが必要&デスクトップに保存しても電源を切るとアウトなのであくまでもお試しor他人のPCを借りているなどの状況に限られるかと思います。それでも、起動してすぐにOpenOfficeやFirefox、メッセンジャー、メールクライアントが入っているので大体の作業ってかほとんどの作業ができます。
ちなみに、インターネットはこのままでもLANケーブルが刺さっていればできると思います。無線は、画面上部のシステム>システム管理>ネットワークからできます。設定方法は「無線LAN接続」を選択して右のプロパティ(P)をクリック。そこで、無線LANのアクセスポイントとWEPキーを入力(WEPキーはパスワードみたいな物で、それを設定していない人はもちろん入れなくてかまいません。)
まぁ、これを使ってUbuntuいいんじゃね?インストールしてみようかな・・・とか思ったらインストールをどうぞ。
ただし、以下のことに気を付けてください。
最近のパソコンは購入時の状態に戻すプログラムがパソコンに内蔵されていますが、万が一の際はそのプログラムが作動しないことがあります。特に、Ubuntu Linuxをインストールする際など、システムに手を入れる場合はなおさらです(これはUbuntuやLinuxに限ったことではありませんが。)。なので、PCのリカバリディスクを必ず作成してから以下の作業に取りかかってください。
リカバリディスクの作成方法はソニーのVAIO typeGの場合、スタート>全てのプログラム>VAIOリカバリユーティリティーを実行してください。
後はそのプログラムの流れに沿ってリカバリディスクを作成してください。
タイトルのまんまです。つまり、今使っているパソコンのハードディスクがWindowsでは書き込みができるけど、新しく入れようとしているUbuntuでは書き込みができないのです。つまり、Ubuntuに入っているワープロソフトで保存しても記録できないのです。また、Ubuntuで書き込みができるファイルシステムにしても今度はWindowsでは標準ではそのファイルシステムで読み書きができないという問題が発生します。
これを解決するのが、WindowsとLinuxどちらでも読み書きできるようにするファイルシステムを使うって手です。んで、そのファイルシステムに音楽やMy Documentsをおけば良いって話です。
・・・することはファイルを全部消さずにはできません・・・。なので、今使われている領域を一部まっさらにして、そこをNTFSからFAT32にします。
なので、必要なデータをなんらかの方法でバックアップしてください。外付けHDDを買ってそこにまとめてコピーが理想的。
ファイルをバックアップしたら、まずデフラグをします。デフラグとは、HDDの中を整理することです。例えると本棚の中にある本がバラバラだったのを巻数順に並べてとりやすくするって感じです。
ちなみに、このデフラグがきちんとできていないと大変まずいことになります。下手するとWindowsが起動しなくなります。僕はこれをする前にPCをリカバリ(買ったときの状態にデータを戻す作業)をしたのであまり心配ではありませんでした。まぁ、参照元のBlogではきちんとデフラグすればOKみたいなことは書いてありましたが。
ここからはわたしのVAIO(Vaio type G VGN-G1KAP)を例に説明します。このパソコンにはHDDドライブは1つしか付いていないので、その中で
Windows xpシステム用(NTFS)
という風に分割して使用します。なお、PCのリカバリ領域はリカバリディスクを作成した方は削除してもかまいませんが、リカバリの早さを考えるとHDD上にある方が便利&リカバリディスク持っていない出先でも直せる可能性があるなどというメリットもあるので僕は消していません。まぁ、お好きにどうぞ。
さて、そのようにしたいのですが、わたしのパソコンは、
Windows xpシステム用(NTFS)
Windows xpデータ用(NTFS)
で既に場所が埋まっているので、それを変更します。具体的には、Windows xpデータ用の部分をまっさらにして、それで空いた部分に
を割り当てるわけです。
割り当て方は、Ubuntu LinuxをCDから起動したときに入っているプログラムであるG Partedを使用します。
G Partedは、画面上部のシステム>システム>設定かシステム管理のどちらかの中。あれ・・・、名前違ったっけ・・・とにかくパーティーションとか書いてあったらそれを起動。
パーティーションをいじってください・・・。
あ、でもおそらくその画面を見てもさっぱりだと思うので解説しておきます。(本当はこの部分だけBlogに書こうと思ってた。)
で、いいたいのは、sda1 とか何かってことです。
sd a 1
┃ ┃ ┗1番目の分割部分
そして、1などの分割部分なのですが、これがまた厄介です。
分割の方法には、いくつかありますが、今回のように5つ以上に分割するときは、
┏━━━┳━━━┳━━━┳━━━━━━━━━━━━━━━━┓ ┃ ┃ ┃ ┃hda3 ┃ ┃ ┃ ┃ ┃┏━━━━━━━┓┏━━━━━┓┃ ┃ hda1 ┃ hda2 ┃ hda4 ┃┃hda5 ┃┃hda6 ┃┃ ┃ ┃ ┃ ┃┃ ┃┃ ┃┃ ┃リカ ┃Win xp┃ 共有 ┃┃ / Linuxの ┃┃スワップ ┃┃ ┃ バリ┃ ┃ ┃┃インストール先┃┃ ┃┃ ┃ NTFS ┃ NTFS ┃FAT 32┃┃ ext3 ┃┃ swap ┃┃ ┃ ┃ ┃ ┃┗━━━━━━━┛┗━━━━━┛┃ ┗━━━┻━━━┻━━━┻━━━━━━━━━━━━━━━━┛
としないといけません。なんか入れ子状になっていますが。入れ子状を使わずに仕切りを入れられるのは4分割までという決まりがあるためです。
なので、5つ作りたいときは分割しましょう。
とりあえず疲れたからひとまず終了・・・だれか代わりに続き書いて・・。
Linuxに感動したから少しでも多くの人に感動してもらいたいって気持ちで書いた。
わたしは参考にしてインストールしただけなのでほぼそのままです。
あ、なるほど。ありがとうございます。
ついでにもうひとつ聞いてみたいんですけど
パラメータってなんでもかんでもメンバ変数にしてしまうのがclassの設計作法としてあるんですかね?
このプログラムの場合、startとlastは外部から与えられそうな値ですが
fizzとbuzzはどっちかというとロジックの仕様として組み込まれている感じの値ですよね。
これが同じように並んでいることに、なんとなく気持ち悪い感じを受けるんですけど…(そもそもclassの設計が悪い?)。
割る数と割られる数と余りが0の時に返す文字列をプロパティに持って
割り切れるかどうかのチェックを行うメソッドと
割り切れないときには数字、割り切れる時には文字を返すメソッドをもつようなclassを作って
それに委譲するようにすればいいのかな?
「-Wno-なんちゃら」と浮かんだ私にとって、
「警告レベル」を「Off」
ってのは新鮮。C/C++というかコンパイラ全般、もう何も年触ってないからなんだろうけど。
でもこれって、すべての警告が出なくなるんじゃないの?使ったことないからはずしてるかもしれんが。
[Win]+[Break]で「システムのプロパティ」が表示されると知っての狼藉か!ええーい出会え出会え!
とか言いつつ、右の[Win]キーあたりが怪しい気がする。[Insert]もわざわざ押されることは少なさそうだ。アプリケーションキー(右Winキーの右のキー)もどうかな。
※この話題、「自分の環境では…」とか「自分の場合…」みたいな方向に進んでいきそうな気がする。
スタイルシート ソース理解クイズ - [ホームページ作成]All About
まあ「仕様書で規定されていない部分については、IEおよびFirefoxの実装に従うものとします」などといった注意書きをもっとしっかりつけてくれれば大体は間違ってない。
しかし、Q7に関しては明らかに間違っている。選択肢の中に正解がない。
'margin-left' + 'border-left-width' + 'padding-left' + 'width' + 'padding-right' + 'border-right-width' + 'margin-right' + scrollbar width (if any) = width of containing block
CSS 2.1では通常フローにあるブロックレベル非置換要素の幅の算出に上の等式が使われる。しかし、問題の例では、この等式の左辺のすべての項がauto以外の算出値を持っている。この状態を「制約しすぎ」(over-constrained)であるといい、(包含ブロックのdirectionプロパティの値がltrならば)margin-rightプロパティの指定値が無視され、上の等式を基にmargin-rightの値が再計算される。よって正解は「包含ブロックの幅に等しいピクセル数」だ。
それから、Q9にも大きな不備がある。「同じ位置」「移動する」と回答中にあるが、これらが何に対してなのかが明言されていないのだ。固定配置の要素はスクリーンメディアにおいて、表示領域に対しては同じ位置にあるが、通常フローの要素に対してはスクロールに応じて移動するといえるので、このままでは正解をひとつに絞りきれない。
仕事場にノートパソコン(VersaPro.VY22X/RX-L)が持ち込まれる。使用OSはWindows XP Pro.
起動するとWindows XPのロゴ表示の後「SHELL32が見つかりません。」と表示され、次に「ライブラリ SHLWAPI.DLL から見つかりませんでした。」と出て、最後にはメッセージ「ログオンユーザーインターフェイスDLL MSGINA.DLLを読み込めませんでした。システム管理者に問い合わせてDLLを置き換えるかまたは元のDLLを復元してください。」となる。[再起動]ボタン表示で唯一の選択肢が示される状況。リブートしてセーフモード起動を試すもログオン画面の手前で上記メッセージが表示され同じ状況に。
毎度の事ながら今回も「Windows回復コンソール」のお世話になって復旧を試みる。とりあえずWindowsXPのCD-ROMからブートし、R[復旧]を選んで回復コンソール起動、C:\WINDOWS\SYSTEM32に入ってみると「dir shell32.dll」を実行しても「ファイルが見つかりません」という表示。そこで健康な別PCからのSHELL32.DLLの移植を試みる。ついでにSHLWAPI.DLLとMSGINA.DLLも壊れている可能性が高いので一緒にコピーする事に決定。
方法としてはKNOPPIX5.0.1-CDから起動、/dev/hda1 が /media/hda1にオートマウントされているので、右クリック-プロパティのメニュー内で「Read Only」にチェックが入っているのを外し、別WindowsマシンでFATフォーマットして上記3つのDLLを放り込んでおいた手持ちのUSBメモリ(128M)を差し込んで、/dev/sda1から/media/hda1にコピー(作業を簡便にしたいのと面倒くさいのでルートフォルダに)
KNOPPIXはログオフ-シャットダウンし、Windows XP CD-ROMに入れ替えて再び「Windows回復コンソール」にて以下を実行。
cd \windows\system32 ren msgina.dll msgina.bak ren shlwapi.dll shlwapi.bak cd \ copy SHELL32.DLL c:\windows\system32 copy MSGINA.DLL c:\windows\system32 copy SHLWAPI.DLL c:\windows\system32 EXIT
これで無事起動できれば御の字だったのだが。改善されたのは「SHELL32.DLL…」のエラーメッセージのみで後2つは相変わらず。ログオン画面へ移行せず再起動の選択肢しか無い状態は変化なし。
いろいろ考えあぐねた末、「元々の正常起動時のバージョンと同一のDLLをコピー」してやる事で解決した。具体的には、起動しなくなったPCは「Windows XP Pro. Service Pack 1」だった(!)ので、移植するDLLは最新の「SP2」でもWindows XP CD-ROMの中の「無印」でも駄目だという事だったようだ(無事にログオン画面が表示されてもその後フリーズ)。たまたま過去に作成していたWindowsXP-SP1統合インストールCD-Rを発掘し、そこからSHELL32.DLL、MSGINA.DLL、SHLWAPI.DLLを抽出、移植作業をやり直し再起動すると「何事も無かったかのように」ようこそ画面が表示されて元通りのデスクトップ画面を復活させる事ができた。
※追記:公式情報で既出だったようだ。無駄に 時間を 浪費していた かもしれない。
Windows Update Web サイトから Windows XP の更新をインストールすると、エラー メッセージが表示される