std::stack
VS2008以降は、stack::cの属性がprotectedに変更され、外部から内部コンテナにアクセスできなくなっているのね。。。
Youtube APIのはまり事
自作のYoutubeプレーヤーを作成してたら、API経由の動画制御ができずにはまる。起動時の動画読込はできるが、下記問題事象が起きていた。
- プレーヤーオブジェクトにメソッドが定義されておらず例外発生
- 動画読込後に呼び出されるはずのonYouTubePlayerReady()も呼び出されない
どうやらWebサーバー上で実行されないといけなかった。ドキュメントにもそう書いてある。
注: Flash Player ではローカル ファイルとインターネット間での呼び出しが制限されているため、これらの呼び出しをテストするには、Web サーバー上でファイルを実行する必要があります。
Webサーバーから呼び出したらうまく実行できた。が、小さい画面で常に最前面表示にして、別作業したいと思っていたけどWebサーバー経由かと思うと、、、これからどうするか悩む。
<html> <head> <link rel="stylesheet" href="./js/themes/base/jquery.ui.all.css"> <link rel="stylesheet" href="../demos.css"> <script src="./js/jquery-1.5.1.js"></script> <script src="./js/ui/jquery.ui.core.js"></script> <script src="./js/ui/jquery.ui.widget.js"></script> <script type="text/javascript" src="js/swfobject.js"></script> <script type="text/javascript"> ///////////////////////// // player settings ///////////////////////// var playerAreaId = "playerArea"; var playerId = "ytplayer"; var params={ allowScriptAccess: "always" }; var atts={ id: playerId }; var options = "enablejsapi=1&playerapiid=" + playerId + "&border=0&autoplay=1&loop=1"; // default options var youtubeUrl = "http://www.youtube.com/v/"; var currentVideoId = ""; // 任意のビデオID ///////////////////////// // methods ///////////////////////// function makePlayer(playerAreaId, options){ var url = youtubeUrl + currentVideoId + "&" + options; swfobject.embedSWF(url, playerAreaId, document.body.clientWidth, document.body.clientHeight, "8", null, null, params, atts); } ///////////////////////// // initial page settings ///////////////////////// $(function(){ // play default movie makePlayer(playerAreaId, options); }); </script> </head> <body> <!-- player --> <div id="playerArea"></div> </body> </html>
VBAでファイルダイアログを利用する
エクセル、ワードから起動するのではなく、VBプロジェクトのフォームからファイルダイアログを起動したい場合、フォームにコモンダイアログコントロールを貼り付ける必要がある。貼り付け後、コードにCommonDialogを利用することができる。
コモンダイアログコントロールがファイルダイアログに貼り付けられていない場合、ランタイムエラーが発生する。
1. ツールボックスに「Common Dialog」を追加
ツールボックス上で右クリック。「Additional Controls...」を押下。下ダイアログで「Microsoft Common Dialog Control, version6.0」にチェックをつけてOKボタンを押下。
ツールボックスに「Common Dialog」が追加されている事を確認。
2. フォームに「Common Dialog」を貼り付け
ツールボックスの「Common Dialog」をフォームへドラッグ。フォームに「Common Dialog」アイコンが追加されていることを確認。ちなみにフォーム起動時には、このアイコンは表示されません。
3. フォームのコードに「CommonDialog1」を利用したファイルオープンのためのコードを追加
例:
Private Sub OpenDocFileButton_Click() CommonDialog1.Filter = "Word Files(*.doc; *.docx)|*.doc; *.docx|" & "All Files(*.*)|*.*|" CommonDialog1.FilterIndex = 1 CommonDialog1.FileName = "" CommonDialog1.InitDir = App.Path CommonDialog1.ShowOpen DocFilePathText = CommonDialog1.FileName End Sub
上界 / 下界 / タイトバウンド
アルゴリズムの計算量などに利用する表現。下記の表現のうち、f(n)の最高次項のみ考慮する。
上界(upper bound)
全てのn >= n0に対して、0 <= g(n) <= cf(n)であるような正の定数c, n0が存在するならば関数g(n)は高々オーダーf(n)であるといい、記号O(f(n))で表す。
このとき関数g(n)の上界はO(f(n))
下界(lower bound)
全てのn >= n0に対して、0 <= cf(n) <= g(n)であるような正の定数c, n0が存在するならば関数g(n)は少なくともオーダーf(n)であるといい、記号Ω(f(n))で表す。
このとき関数g(n)の下界はΩ(f(n))
タイトバウンド(tight bound)
全てのn >= n0に対して、0 <= c1f(n) <= g(n) <= c2f(n)であるような正の定数c1, c2, n0が存在するならば関数g(n)は少なくともオーダーf(n)であるといい、記号Θ(f(n))で表す。
このとき関数g(n)のタイトバウンドはΘ(f(n))