jgoamakfプログラミングメモ

プログラミング学習中に気がついたことのメモ。 プログラミングに関係しないITやAndroid周辺、ゲームの話題は jgoamakfのブログ に書いています。

IntelliJでGradleが「The newly created daemon process has a different context than expected.」とログに表示されて上手く動かない記事タイトル

Android: Gradle build fails with "The newly created daemon process has a different context than expected" : IDEA-162389によると、ホームディレクトリにあるGradleの設定ファイル(USER_HOME/.gradle/gradle.properties)に
org.gradle.java.home=
と書くとトラブルが解消したそうです。

私が試したところでは、プロジェクトごとのgradle.propertiesに書いてもIntelliJからGradleを使うことができるようになりました。

Gradleの解説動画

Androidの開発環境ではGradleが採用されていますが、全く意味が分かっていなかったので解説動画を見てみました。









build.gradle自体がGroovyの文法に従って書かれているなんて、今知りました……。

Unreal Engine 4のActorにはタグの設定をする場所が2か所ある

Unreal Engine 4でActorにタグを設定しようとするとき、詳細パネルには「Tags」と書かれている場所が2か所あります。

1つめ「Tags」セクションのタグ

ue_tag_tags

2つめ「Actor」セクションのタグ

ue_actor_tags

Javaの拡張forでコレクションの処理中に、コレクションの要素を増やした場合

Javaの拡張for文でコレクションをループする場合、そのループ対象のコレクションに要素を足したり引いたりしてはいけないのです。

例えば次のようなプログラムがあったとして、
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class CollTest {

	public static void main(String[] args) {
		list_add();
		map_put();
	}

	private static void list_add() {
		List ints = Arrays.asList(1, 2, 3);
		
		for(Integer i : ints) {
			ints.add(i * 2);
		}
	}
	
	private static void map_put() {
		Map map = new HashMap<>();
		map.put("a", "b");
		map.put("c", "d");
		
		for (Map.Entry e : map.entrySet()) {
			map.put(e.getKey() + "x", e.getValue() + "x");
		}
		
	}
}
list_add()を実行した場合はUnsupportedOperationExceptionが、
Exception in thread "main" java.lang.UnsupportedOperationException
	at java.util.AbstractList.add(Unknown Source)
	at java.util.AbstractList.add(Unknown Source)
	at CollTest.list_add(CollTest.java:17)
	at CollTest.main(CollTest.java:9)
map_put()を実行した場合はConcurrentModificationException
Exception in thread "main" java.util.ConcurrentModificationException
	at java.util.HashMap$HashIterator.nextNode(Unknown Source)
	at java.util.HashMap$EntryIterator.next(Unknown Source)
	at java.util.HashMap$EntryIterator.next(Unknown Source)
	at CollTest.map_put(CollTest.java:26)
	at CollTest.main(CollTest.java:10)
が発生します。環境は
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)


「ループ対象のコレクションを操作してはいけない」というルールは意識しているのですが、実際に操作すると例外が発生するという動作の事は完全に忘れており、ちょっとハマってしまいました。

「最初に学ぶプログラミング言語は『C++以外』にしよう!」という27分の動画

ゲームを作りながらプログラミングを学習するシリーズの1つに「最初に学ぶプログラミング言語は『C++以外』をオススメします」という動画がありました。



C++をdisっているわけではないです。実際、動画の中ではC++は覚える価値があると言っています。

プログラミングはプログラムを自分で書いて実行することで覚えて行きますが、C++はプログラムを書いて実行するまでにやることが多いので、初心者にとってはハードルが高いという内容でした。

nVidiaとBlenderで、実行が遅くなる場合があるとか

Blender 2.78 with Windows 10 lags when interacting with the UIによると、Geforce Experienceでデバイスドライバーを最新版にするとBlenderの実行が非常に遅くなるらしい。

私がこれに該当して困っていたのでした。

Rでタブ譜を描く

ggguitarという、ggplot2でギター(guitar)のタブ譜が描けるというRのパッケージが公開されています。

Package ggguitar on CRAN

インストールしてサンプルをそのまま打ち込んでみました。
ggguitar1
ggguitar2


役には立たないです。

YouTubeでRを学ぶ

YouTubeには、Rの操作と基本的なコマンドを説明する動画がたくさんアップロードされています。
次の3つのシリーズは1回分の動画が
  • 基本的には10分以内と短くまとめられている
  • 1つのトピックを集中して解説している
という構成になっています。

動画の数こそ20以上と多めなのですが、毎日少しずつというスタイルで見ることができるので、英語ネイティブではない私でも消化しやすかったです。








YouTubeのおすすめ動画に出てきて見つけてしまったので、追記しておきます。



そのほか
Rの紹介。

sqldfの紹介


dplyr、ggvisの紹介

Rのパッケージを学習する(?)斬新な遊び

Rのパッケージ名で をしよう!という斬新な提案が Mini R Quizzes でされている。

面白いのだろうか。

Intel HAXMがMac OS 10.9で不具合がある

最近Androidアプリケーションの作り方を勉強してます。

developer.android.com で配布しているSDKに含まれるIntel HAXMですが、Mac OS 10.9で実行すると画面がフリーズする不具合がありました。

Intelで配布している「Hotfix for OS X 10.9 only」をインストールしたらエミューレータが正常に実行出来るようになったので、Mac OS 10.9の人は、SDKが新しくなるまではIntelからダウンロードしたHAXMを使うとよいです。

http://software.intel.com/en-us/articles/intel-hardware-accelerated-execution-manager
Recent Comments
Recent TrackBacks
  • ライブドアブログ
このブログではGoogle Analyticsを使用しています。Google AnalyticsはCookieを使用して情報を収集します。
アクセスしたページや時間などの情報を収集しますが、個人を特定できるものではありません。