Java Enthusiast

3 Billion Devices Run Java

ES6 Classの小ネタ

当たり前っちゃ当たり前なんだけど、以下のような状況でselfもといthisがundefinedだと怒られる。実体はprototypeと何も変わらない。

class Foo {
	constructor() {
		this._foo = "Hello";
	}
	funcA() {
		let self = this;
		console.log(self._foo);
	}
}

function gFunc(func) {
	func();
}

var foo = new Foo();
gFunc(foo.funcA);

インスタンスから呼んでるんだからbindしといてくれてもいいのにと思ったんだが、そうはいかないみたい。次のように明示的にbindするとうまくいく。

class Foo {
	constructor() {
		this._foo = "Hello";
	}
	get funcA() {
		return this._funcA.bind(this);
	}
	_funcA() {
		let self = this;
		console.log(self._foo);
	}
}

function gFunc(func) {
	func();
}

var foo = new Foo();
gFunc(foo.funcA);

Ubuntu 14.04 on Fake RAID

普通の人はLinux Software RAIDを使えば楽だと思いますがどうしてもFake RAIDを使いたいという奇特な人のためにメモ。

  • Live CDから普通にインストールしようとするとコケる。デモ環境に移行したあと、GPartedで手作業でパーティションを切ること。ちなみにLive CDはdmraidがデフォルトで機能している。
  • インストーラから予め切ったパーティションを使ってインストール。GRUBはdmraidでマッピングされたRAIDドライブにそのまま入る。
  • インストール終了後、インストール先にchrootしてapt-get install dmraid。(←これを忘れると起動できない。)

無事動きましたとさ。おしまい。

Debugging FRDM-KL02Z with Eclipse

FRDMボードをEclipseデバッグしてみた。たまたま珍しいKL02Zボードが手に入ったのと、GNU ARM Eclipse Pluginという便利なものを発見したので使ってみたメモ。

プラグインは非常に優秀で、プロジェクト作成も楽ちん。

プロジェクト作成時のメモ。

  • デフォルトで小文字sの拡張子アセンブリファイルとして認識しないので、C/C++ General -> File Typesで追加しておく。
  • デフォルトでCPUがcortex-m3になってるので気をつける。

デバッグの設定時のメモ。

  • Device nameはMKL02z32xxx4のようにzを小文字にするらしい。
  • Enable SWOのチェックを外す。

Ubuntuでやりましたが、たぶんWindowsMacでも出来るでしょう。

Iguana Radioactive Atomic Pepper Sauceレビュー

太陽をいっぱいに浴びたトマト畑が現れた - トマト、清潔なトイレ、病院、洗いたてのシーツ、枯れた草、そしてトフィーを感じる。

口に含むと、私たちは森のなかのバーベキュー会場へ招待される!- 焼いたカニ、ホタテ、焦げたズッキーニ、ソーセージ(ハーブをふんだんに使った)、ラム肉。焼きたてのうちにオレンジかライムを絞った。

味は鉄、焼きそば、トフィーを伴った。

フロリダ州アトランティック・ビーチのメーカーから。

http://www.halfmoonbaytrading.com/sauces/iguana-radioactive-atomic-pepper-sauce

OpenJFX8 on Pandaboard

やったこと(OpenJFX 8 b118時点で):

  • RobClark神が書かれたkmscubeを参考にDRM/KMS関連のコードをlensport内のwrapped_functions.cに突っ込んだ。元々wrapped_functions.cはRPiで動かすためにEGLのいくつかのコールをフックしてBroadcom関連の初期化ルーチンを呼び出している。ので、この仕組を使えば基本的にどんなデバイスでもポーティングは容易にできるようになっている。
  • 特にeglSwapBuffersをフックするためにその他のヘッダ等に数行手を入れた。

基本的にkmscube以上のことはしてないです。というかこれで動くんだ・・・RobClarkすげえ・・・という感想しかないです。

https://github.com/robclark/kmscube

パンダのカーネルは3.4(ti-ubuntu-3.4.0-1491.3)、ディストリビューションはPokyですが、たぶんUbuntuでもいいでしょう。

パッチはそのうちGistあたりにupすると思います。

*追記:パッチをうpしました

https://gist.github.com/FantomJAC/9126012