Kikuchy's Second Memory

技術のこととか、技術以外のこととか、思ったことを書き留めています。

VirtualBoxのゲストOSからホストのWebカメラを使う

VirtualBox 4.3から、Webカメラを仮想化して利用する機能が追加されました。
何が嬉しいかと言うと、MacBookに付いているFaceTimeカメラなどのホストOSが抱えているWebカメラをゲストOSからも使用できるようになることです。
このおかげで、ゲストOSでSkypeビデオチャットなどができるようになる、という訳です。


ところがこの機能は、コマンドラインのツールを叩かないと使えないようです。

環境

手順

ホスト側の作業です。

まずはVirtualBoxにExtension Packを導入します。
VirtualBoxのサイトからダウンロードして来てください。

f:id:kikuchy:20140223092336j:plain

ダウンロードしたら、VirtualBoxの環境設定画面からExtensionをインストールします。

f:id:kikuchy:20140223092548p:plain

ここで一度、Webカメラを導入したいゲストOSを起動します。

続きを読む

Google Test と Travice CI で、C言語で書いたライブラリの継続的インテグレーションをしてみた結果

f:id:kikuchy:20140112002331p:plain

結果

たのしい!

出来上がったものはこちら。


以下、行ったことです。

C言語Google Test を使う

Google TestC++で書かれている単体テストライブラリです。
C++で書かれている、ということで、気合いを入れればC言語でも使えます。

とは言っても、入れる気合いは

extern "C"
{
#include ( C のヘッダファイル)
}

これだけでした。

後はマニュアル通りにGoogle Testを使った単体テストを書きます。

続きを読む

アクセス解析によるこのブログのアクセス数アップ方法を本気出して考えてみた(12月号)

f:id:kikuchy:20131207154256j:plain

今までに比べてちょっと更新が遅くなりました。

の続きです。

過去三ヶ月と11月の解析結果を比べて、もっと多くの人に見てもらうにはどうしたら良いのか考えます。

行動予定

  1. 分析
  2. 改善策の仮説と、施策を立てる
  3. 施策を実行
  4. 仮説の当たり外れを検証

先月号で1と2を行い、10月も3を実行しました。
今月も、先月の数字と比較を行い、この記事で1と2を行って、今月も3を行います。

目的

何度だっておさらいです。
直接的な目的は、もっと多くの人にこのブログを読んでもらうことです。
こんな目的を設定した理由は以下の通り。

  • 何か困ったことがあったときの解決法を探す一助にしてもらう
  • kikuchyの名前を覚えてもらう(パーソナルブランディング
  • 酢ろぐさんみたく、技術系のHow Toをまとめていてなおかつたくさんの人に読んで頂きたい

ちなみにこのブログは、
プログラミングに関するマイナーなトラブルシュートやハウツーを掲載しているブログ
というテーマになっています。

Google Analytics分析の結果

10月と11月のデータを比較しました。

数字の比較

以下の画像をご覧下さい。

続きを読む

アイデアを公開しない理由2つに対する反論

http://www.flickr.com/photos/34199992@N06/5409924690
photo by Will Hastings



作りたい物が増えても作業に当てられる時間がないのもあって、「やりたいこと・作りたいものリスト」を作って公開することにしました。



「こんな感じのものをどこかで見た!」
「一緒に作りたいから詳しい事教えて!」
「作っちゃった!」

とかありましたら、是非教えてください。 @kikuchy にリプライを飛ばしていただくか、Facebookでメッセージを送っていただくかしていただければ喜びます。

ちなみに、元ネタは @masuidrive さんのmasuidriveの作りたい物&試作品リストです。


さて、 @masuidrive さんみたくアイデアを公開する人も居れば、一方でアイデアを公開したがらない方もいらっしゃいます。
どうしてアイデアを公開しないのでしょうか。

実際に私が聞いた事、よく言われることについて、私なりの反論をしたいと思います。

理由1: 折角お金になりそうなのに、他の人に見せて盗られたらもったいない

http://www.flickr.com/photos/62563393@N00/17185281
photo by clvrmnky




反論: 「それ本当にお金になるの? あなたが勝手に『価値がある』と思い込んでいるだけじゃないの?」

続きを読む

Objective-C で、読み取り専用になるメンバを用意したい

http://www.flickr.com/photos/36352331@N08/3962410821
photo by mh.xbhd.org


データを管理していて、外部からは変更不可能なメンバ変数(プロパティ)を用意したいと思ったことがあると思います。
通常は、データを内部に隠蔽して、getterを通して外部に公開するというアプローチをとりますね。

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.TitleBook.Author は読み取り専用になります。

Book aBook = new Book("アジャイルサムライ", "Jonathan Rasmusson");

// 読み取りは可能
String title = aBook.Title;

// 書き込みは不可能(コンパイルエラーになる)
aBook.Title = "アート・オブ・プロジェクトマネジメント";

Objective-Cでは

.h ファイルと .m ファイルにファイルを分けて実現します。

続きを読む