VirtualBoxのゲストOSからホストのWebカメラを使う
VirtualBox 4.3から、Webカメラを仮想化して利用する機能が追加されました。
何が嬉しいかと言うと、MacBookに付いているFaceTimeカメラなどのホストOSが抱えているWebカメラをゲストOSからも使用できるようになることです。
このおかげで、ゲストOSでSkypeのビデオチャットなどができるようになる、という訳です。
ところがこの機能は、コマンドラインのツールを叩かないと使えないようです。
環境
- ホストOS: Mac OS X 10.8.5
- VirtualBox 4.3.6
- ゲストOS: Windows 8.1
手順
ホスト側の作業です。
まずはVirtualBoxにExtension Packを導入します。
VirtualBoxのサイトからダウンロードして来てください。
ダウンロードしたら、VirtualBoxの環境設定画面からExtensionをインストールします。
ここで一度、Webカメラを導入したいゲストOSを起動します。
Google Test と Travice CI で、C言語で書いたライブラリの継続的インテグレーションをしてみた結果
アクセス解析によるこのブログのアクセス数アップ方法を本気出して考えてみた(12月号)
今までに比べてちょっと更新が遅くなりました。
の続きです。
過去三ヶ月と11月の解析結果を比べて、もっと多くの人に見てもらうにはどうしたら良いのか考えます。
行動予定
- 分析
- 改善策の仮説と、施策を立てる
- 施策を実行
- 仮説の当たり外れを検証
先月号で1と2を行い、10月も3を実行しました。
今月も、先月の数字と比較を行い、この記事で1と2を行って、今月も3を行います。
目的
何度だっておさらいです。
直接的な目的は、もっと多くの人にこのブログを読んでもらうことです。
こんな目的を設定した理由は以下の通り。
- 何か困ったことがあったときの解決法を探す一助にしてもらう
- kikuchyの名前を覚えてもらう(パーソナルブランディング)
- 酢ろぐさんみたく、技術系のHow Toをまとめていてなおかつたくさんの人に読んで頂きたい
ちなみにこのブログは、
プログラミングに関するマイナーなトラブルシュートやハウツーを掲載しているブログ
というテーマになっています。
アイデアを公開しない理由2つに対する反論
作りたい物が増えても作業に当てられる時間がないのもあって、「やりたいこと・作りたいものリスト」を作って公開することにしました。
kikuchy のやりたいこと・作りたいものリスト #fromEvernote https://t.co/Bf9wnQllSA masuidriveさんに習って公開してみることに。これから随時追加予定。
— 菊池紘 (@kikuchy) 2013, 11月 29
「こんな感じのものをどこかで見た!」
「一緒に作りたいから詳しい事教えて!」
「作っちゃった!」
とかありましたら、是非教えてください。 @kikuchy にリプライを飛ばしていただくか、Facebookでメッセージを送っていただくかしていただければ喜びます。
ちなみに、元ネタは @masuidrive さんのmasuidriveの作りたい物&試作品リストです。
さて、 @masuidrive さんみたくアイデアを公開する人も居れば、一方でアイデアを公開したがらない方もいらっしゃいます。
どうしてアイデアを公開しないのでしょうか。
実際に私が聞いた事、よく言われることについて、私なりの反論をしたいと思います。
理由1: 折角お金になりそうなのに、他の人に見せて盗られたらもったいない
反論: 「それ本当にお金になるの? あなたが勝手に『価値がある』と思い込んでいるだけじゃないの?」
Objective-C で、読み取り専用になるメンバを用意したい
データを管理していて、外部からは変更不可能なメンバ変数(プロパティ)を用意したいと思ったことがあると思います。
通常は、データを内部に隠蔽して、getterを通して外部に公開するというアプローチをとりますね。
Objective-Cではどのようにして行うのか、調べました。
想定読者
- オブジェクト指向については知識がある
- C#, C++, JavaScript のいずれかで、読み取り専用のメンバを持つオブジェクトを作ったことがある
- Objective-C を始めてから日が浅い
例えば、書籍を表現するクラスがあったとします。
そこら辺に置いておいた本のタイトルなどはコロコロ変わってもらっては困るので、本が作られたときのタイトルから変化しない物とします。
すると、タイトルなどは読み取り専用である必要があります。
C#では
C#でしたら、以下のように実装します。
getter
構文を使うと綺麗に実装できます。
class Book { // 内部に隠しておくための変数 private String _title; private String _author; public String Title { get { return this._title; } } public String Author { get { return this._author; } } // コンストラクタでデータをセット public Book(String title, String author) { this._title = title; this._author = author; } }
このように定義する事で、外部からは Book.Title
と Book.Author
は読み取り専用になります。
Book aBook = new Book("アジャイルサムライ", "Jonathan Rasmusson"); // 読み取りは可能 String title = aBook.Title; // 書き込みは不可能(コンパイルエラーになる) aBook.Title = "アート・オブ・プロジェクトマネジメント";
Objective-Cでは
.h ファイルと .m ファイルにファイルを分けて実現します。