<?xml version="1.0" encoding="UTF-8" ?><rdf:RDF 
  xmlns="http://purl.org/rss/1.0/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xml:lang="ja">
  <channel rdf:about="http://w.atwiki.jp/xronia/">
    <title>xronia @ ウィキ</title>
    <link>http://w.atwiki.jp/xronia/</link>
    <atom:link href="https://w.atwiki.jp/xronia/rss10.xml" rel="self" type="application/rss+xml" />
    <atom:link rel="hub" href="https://pubsubhubbub.appspot.com" />
    <description>xronia @ ウィキ</description>

    <dc:language>ja</dc:language>
    <dc:date>2015-05-10T13:31:24+09:00</dc:date>
    <utime>1431232284</utime>

    <items>
      <rdf:Seq>
                <rdf:li rdf:resource="https://w.atwiki.jp/xronia/pages/24.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/xronia/pages/23.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/xronia/pages/22.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/xronia/pages/21.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/xronia/pages/20.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/xronia/pages/19.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/xronia/pages/18.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/xronia/pages/17.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/xronia/pages/16.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/xronia/pages/14.html" />
              </rdf:Seq>
    </items>
	
		
    
  </channel>
    <item rdf:about="https://w.atwiki.jp/xronia/pages/24.html">
    <title>ubuntu</title>
    <link>https://w.atwiki.jp/xronia/pages/24.html</link>
    <description>
      *GCC-4.9を使う
ubuntu 14.04のGCCは4.8でregexとか使えないので、4.9に上げる。

# GCC4.9のインストール(Testパッケージからもってくる)

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install g++-4.9

# リンクの張替(GCCへのリンクが4.8のままなので張り替える)

sudo su -
cd /usr/bin
rm cpp g++ gcc gcc-ar gcc-nm gcc-ranlib
ln -s cpp cpp-4.9
ln -s g++ g++-4.9
ln -s gcc gcc-4.9
ln -s gcc-ar gcc-ar-4.9
ln -s gcc-nm gcc-nm-4.9
ln -s gcc-ranlib gcc-ranlib-4.9
exit

以上    </description>
    <dc:date>2015-05-10T13:31:24+09:00</dc:date>
    <utime>1431232284</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/xronia/pages/23.html">
    <title>java3Dマウスでごりごり</title>
    <link>https://w.atwiki.jp/xronia/pages/23.html</link>
    <description>
      **サンプルコードはいろいろあるが
せっかく3Dなのに視点も変えられないものばかり
とりあえずはマウスでゴリゴリ動かせるようにしないと3Dの面白さはないでしょう。
自然にくるくる回るってのもあるが、やっぱ拡大縮小して欲しい。
てなわけでマウスで動くようにしたい！
いじるのは、Canvas3D。こいつを継承してマウスのイベントを足してしまえばできるっぽい。
ちなみに、ここでのマウスでゴリゴリの仕様は
右ドラッグ：回転
左ドラッグ：視点移動
マウスホイール：拡大・縮小
結構贅沢な仕様である。

そしてできたソースがこれ。

#highlight(linenumber, java){{
package jp.xronia.j3d;

//******************************************************************************
//マウスのドラッグで視点移動を行うCanvas3D拡張クラス“Canvas3DMouseMove”
//
//Canvas3Dを継承
//MouseMotionLisenerを実装
//
//コンストラクタの引数はカメラの距離
//さらに，コンストラクタの引数にはGraphicsConfigurationが必要（Canvas3Dと同じ仕様）
//******************************************************************************

import java.awt.Dimension;
import java.awt.GraphicsConfiguration;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import java.awt.event.MouseWheelEvent;
import java.awt.event.MouseWheelListener;

import javax.media.j3d.Canvas3D;
import javax.medi    </description>
    <dc:date>2013-08-17T22:24:10+09:00</dc:date>
    <utime>1376745850</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/xronia/pages/22.html">
    <title>ログを出す</title>
    <link>https://w.atwiki.jp/xronia/pages/22.html</link>
    <description>
      *ログを出す(Java)
CLIならおざなりにprintlnで標準出力に出しても良いのだが、
多くはwebアプリやGUIなので、無駄にprintlnされても困る。
せっかくだから&amp;s(){赤い扉を選ぶぜ}ログを出してみよう。

**標準ライブラリのjava.util.loggingを使う
v1.4からJREに入っているjava.util.loggingとかいうライブラリがあるのでこれを使おうかと思ったんだが
Logger.getGlobal()とか意味がわかんねーよ
さらに、log.finest()とかlog.severe()とか。
僕は昔っから使っているlog.debug()とかlog.error()とかがいい。なにをとってるのかわかんなくなっちゃうし。

**おざなりにLog4j
てなわけで、おざなりにLog4jである。
お約束でcommons-loggingから使う。ubuntu-eclipse環境では、お約束で/usr/share/java/に
commons-logging.jarがあるのでこれを参照ライブラリに追加する。
※当然事前にaptでlog4jをインストールしておく事。
すると、log4jも一緒に参照される。
なぜかservlet-api.jarも参照されるのが気に入らないが背に腹は変えられない
java.util.loggingを使うとなると、デバックはfinestに出すとか、エラーはsevereに出すとか言うラッパークラスを作らないとないんだぜ？
ってられっかっ！    </description>
    <dc:date>2013-08-17T22:17:26+09:00</dc:date>
    <utime>1376745446</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/xronia/pages/21.html">
    <title>Linuxでeclipse</title>
    <link>https://w.atwiki.jp/xronia/pages/21.html</link>
    <description>
      *環境を整えてみる
うちの環境はwinではなくてLinux(ubunts)なので、まずは環境面から。

**eclipse&amp;pleiades
事前に、eclipseとpleiadesをインストールしておこう。
eclipseの方はソフトウェアセンタとかからインストールできるが、
pleiadesの方はsynpaticとかを利用してインストールする。
pleiadesはeclipseに勝手に組み込まれるかとおもいきや、全然なんにもしてくれないので
synpaticでプロパティからインストール先を探したらこんなところにいた

 $ ls /usr/share/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/
	META-INF    about.ini         conf          featureImage.png  plugin.properties
	about.html  about.properties  epl-v10.html  pleiades.jar      plugin.xml

んでeclipse.iniはどこにいるかというと、/etcの直下にいらっしゃるので、おざなりに書き換えてしまった。

 $ sudo vi /etc/eclipse.ini
	-startup
	plugins/org.eclipse.equinox.launcher_1.3.0.dist.jar
	--launcher.library
	plugins/org.eclipse.equinox.launcher.gtk.linux.x86_1.1.200.dist
	#-showsplash
	#org.eclipse.platform
	--launcher.XXMaxPermSize
	256m
	--launcher.defaultAction
	openFile
	-vmargs
	-Xms40m
	-Xmx384m
	-javaagent:/usr/share/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar
	-Dorg.eclipse.equinox.p2.rec    </description>
    <dc:date>2013-08-07T13:01:36+09:00</dc:date>
    <utime>1375848096</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/xronia/pages/20.html">
    <title>java3D</title>
    <link>https://w.atwiki.jp/xronia/pages/20.html</link>
    <description>
      *Java3Dを使ってみる。
**キッカケ
2Dで無理やりクオータービューにして3Dっぽく見せてるフリーのゲームを見てて
なぜ3Dにしないのか！などと不満に思ったのでちょっと3Dの勉強をしてみようなどと

**なぜJava?
仕事でやたらと使うから。
環境依存が少ないから。
性能面はそりゃCとかに劣る可能性は否定できないが、最近は差があんまり無さそうだし
GJCのようなコンパイラもあるし。
Javaがなぜ遅いかというと、現代の工場制手工業によるただ納期に追われて馬鹿みたいにコピペしまくり
動けばいいやというコーディングが平気でまかり通り、実績があるからという理由で改善しないためであり
別にJavaが遅い訳ではない。

**でJava3D?
JOGLを使ってみたが、CでGLを使うのとあまり変わらない。
ならもちっと使いやすそうなものはということでたどり着いただけ。

**インストール
うちはUbuntuなので、synapticとかで検索してJava3D周りのパッケージをもってくればOK
docパッケージはただのJavaDocしかも英語なので好みに応じて
Ubuntu以外の人のことは知らんｗ

**プロジェクトを作る
Ubuntuの場合、導入したJarは、/usr/share/javaの下に配置されるので、
Java3D用のプロジェクトを作ったらビルドパスにこれらのjarをいきなり足してしまう。
足すのは、j3dcore.jar,j3dutils.jar,vecmath.jarの３つとなる。
使うかどうか謎だが、java3ds-fileloader.jarも入れておくか。
その他必要に応じて、
log4j Logを出したいなら
CommonsLang 文字列加工したいとかなら
Junit テストしたいなら・・・    </description>
    <dc:date>2013-08-17T17:49:28+09:00</dc:date>
    <utime>1376729368</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/xronia/pages/19.html">
    <title>スクリプト畑</title>
    <link>https://w.atwiki.jp/xronia/pages/19.html</link>
    <description>
      基本JavaScript。時々Perl

+サクラエディタマクロ
-かたっぱしからGrep
textに書いた条件のGrep結果をひたすら追記する。
GrepにはWindowsのFinsStrコマンドを利用。
やりすぎ注意

&gt;MAX_LINE = 10;
&gt;CRLF = &quot;\r\n&quot;;
&gt;switch(Editor.GetLineCode()) {
&gt;	case 1: CRLF = &quot;\n&quot;; break;
&gt;	case 2: CRLF = &quot;\r&quot;; break;
&gt;}
&gt;
&gt;while(1) {
&gt;	var path = [];
&gt;	var mode = &quot;&quot;;
&gt;	var matcher = [];
&gt;	var exp = [];
&gt;	var case_flag = false;
&gt;	var regexp_flag = false;
&gt;	var result_row = 0;
&gt;	var err_flag = false;
&gt;	//**************************************************************************
&gt;	// 編集中ファイルから検索条件パラメータを取得する
&gt;	//**************************************************************************
&gt;	for(var i = 1; i &lt;= Editor.GetLineCount(0); i++) {	// 行をループ
&gt;		// 1行取得
&gt;		var str = Editor.GetLineStr(i);
&gt;		// 行頭と行末の余分なスペースをけずる
&gt;		str = str.replace(/^\s*(.*?)\s*?$/, &quot;$1&quot;);
&gt;		// コメント(#)を削る
&gt;		str = str.replace(/#.*$/, &quot;&quot;);
&gt;		if(str == null || str.length == 0) continue;
&gt;		// []で囲まれた文字の取得
&gt;		if(str.match(/^\[(\w+)\]$/)) {
&gt;			// []の中身の文字を英小文字で前後のス    </description>
    <dc:date>2013-04-03T17:03:28+09:00</dc:date>
    <utime>1364976208</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/xronia/pages/18.html">
    <title>c++</title>
    <link>https://w.atwiki.jp/xronia/pages/18.html</link>
    <description>
      [[page1]]
[[page2]]    </description>
    <dc:date>2011-11-11T15:45:48+09:00</dc:date>
    <utime>1320993948</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/xronia/pages/17.html">
    <title>javascriptt2</title>
    <link>https://w.atwiki.jp/xronia/pages/17.html</link>
    <description>
      &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot;&gt;
&lt;html lang=&quot;ja&quot;&gt;
&lt;head&gt;
	&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=shift_jis&quot;&gt;
	&lt;title&gt;ソース解析&lt;/title&gt;
&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--

var doc = new Array();
var OpenClose = function (val) {
	this.openString  = &quot;(&quot;;
	this.closeString = &quot;)&quot;;
	this.val = val;
	this.matchString = &quot;&quot;;
	this.leftString  = &quot;&quot;;
	this.rightString = &quot;&quot;;
	this.leftIndex  = 0;
	this.rightIndex = 0;
	
	this.clear = function () {
		this.matchString = &quot;&quot;;
		this.leftString  = &quot;&quot;;
		this.rightString = &quot;&quot;;
		this.leftIndex  = 0;
		this.rightIndex = 0;
	}

	this.exec = function (val) {
		
		if(typeof(val) != &quot;undefined&quot;) this.val = val;
		this.clear();
		
		for(this.leftIndex = 0; this.leftIndex &lt; this.val.length; this.leftIndex++) {
			if (this.val.substr(this.leftIndex, this.openString.length)==this.openString) {
				this.rightIndex = this.leftIndex;
				var node = 1;
				while(node != 0) { // 括弧の終端探    </description>
    <dc:date>2009-07-10T20:02:16+09:00</dc:date>
    <utime>1247223736</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/xronia/pages/16.html">
    <title>javascriptt</title>
    <link>https://w.atwiki.jp/xronia/pages/16.html</link>
    <description>
      &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot;&gt;
&lt;html lang=&quot;ja&quot;&gt;
&lt;head&gt;
	&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=shift_jis&quot;&gt;
	&lt;title&gt;ソース解析&lt;/title&gt;
&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--

var doc = new Array();
var OpenClose = function (val) {
	this.openString  = &quot;(&quot;;
	this.closeString = &quot;)&quot;;
	this.val = val;
	this.matchString = &quot;&quot;;
	this.leftString  = &quot;&quot;;
	this.rightString = &quot;&quot;;
	this.leftIndex  = 0;
	this.rightIndex = 0;
	
	this.clear = function () {
		this.matchString = &quot;&quot;;
		this.leftString  = &quot;&quot;;
		this.rightString = &quot;&quot;;
		this.leftIndex  = 0;
		this.rightIndex = 0;
	}

	this.exec = function (val) {
		
		if(typeof(val) != &quot;undefined&quot;) this.val = val;
		this.clear();
		
		for(this.leftIndex = 0; this.leftIndex &lt; this.val.length; this.leftIndex++) {
			if (this.val.substr(this.leftIndex, this.openString.length)==this.openString) {
				this.rightIndex = this.leftIndex;
				var node = 1;
				while(node != 0) { // 括弧の終端探    </description>
    <dc:date>2009-06-29T17:17:45+09:00</dc:date>
    <utime>1246263465</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/xronia/pages/14.html">
    <title>perll</title>
    <link>https://w.atwiki.jp/xronia/pages/14.html</link>
    <description>
      #!/usr/bin/perl

use strict;
use FileHandle;


my $file = $ARGV[0];
my $lines=[];
my $num;
{
	my $line=&quot;\r&quot;;
	my $fh = FileHandle-&gt;new($file);
	(chomp, $line .= &quot;$_\r&quot;) while &lt;$fh&gt;;
	$fh-&gt;close;
	$_ = $line;

	s {/\*.*?\*/} [\r]gsx;		# コメント
	s/\/\/.*\r/\r/gsm;			# コメント(C++)
	s/\r\s*([^\r])/\r$1/gsm;	# ブランク削除
	s/([^\r])\s*\r/$1\r/gsm;	# ブランク削除
	s/[\t ]*\\\r//gsm;			# \cr を消す
	
	# インクルードを消す
	s/\#(include|undef)[^\r]*//gsm;
#	print(&quot;$_\n&quot;) foreach(/(\#define[^\r]*)/gsm);
#	print(&quot;$_\n&quot;) foreach(/\#define[^\r]*\{[^\r]*\}/gsm);
	s/\#define([^\r]*)\{([^\r]*)\}/define$1\{\r$2\r\}/gsm;
	s/\#define[^\r]*//gsm;

	# 変数宣言を消す
	s/\r\w+(?:\s+\w+)*(?:\s+|\s*\*\s*)[\w\[\]]+;//gsm;
	# キャストを消す
	s/(?:\*\s*)?\([\w\s\*&amp;]*\)\s*&amp;//gs;
	# 変数宣言+初期化
	s/\r\w+\s+([\w\[\]]+\s*=\s*[\w\{\}]+\s*[\w\[\]]*\s*;)/\r$1/gsm;
	s/(?:\*\s*)?\([\w\s\*&amp;]*\)\s*([\(&amp;a-zA-Z])/$1/gsm;

	s/\r\}\s*([^\r])/\r\}\r$1/gsm;
	
	#ifマクロの後ろに{をつける
	s/\r(\#if[^\r]*)/\r;\r$1\r\{\r/gsm;
	#endifマクロを}に変換
	s/    </description>
    <dc:date>2009-03-24T00:43:23+09:00</dc:date>
    <utime>1237823003</utime>
  </item>
  </rdf:RDF>
