2009/06/30 | 15:57 pm

心を亡くす

「忙しい」とは「心を亡くす」と書くっと、今日知った。

確かに、あまりの忙しさに自分に対する余裕を失い、その結果、色々なものを捨てたり、犠牲にしてしまう事もあったと思う。
それでも笑顔が作り、やさしく接する事ができるのは、その人の経験からくる大きさなのか。それとも生まれ持ったものなのか。
前者であれば、自分はそこまで大きな人間なれるのだろうか??

いやー、まだまだ遠いなー

COMMENT

CATEGORY

POSTED

jam

2009/06/29 | 20:45 pm

PekiPeki

あら、渋谷にもボルダリングジムが出来てたようで。
知らなかったス、こんど行ってみよう。

これで恵比寿の J&S も含めて、近場にジムが2つになった、よかったー


PekiPeki

なんか、青山玲建築設計事務所って著名なトコが設計したみたいス。

COMMENT

CATEGORY

POSTED

jam

2009/06/24 | 13:27 pm

プリンターを起動する

flash.printing パッケージに PrintJob ってクラスがあるので、それを使えば簡単でした。

import flash.display.Sprite;
import flash.evetns.MouseEvent;
import flash.printing.PrintJob;
import flash.printing.PrintJobOptions;

public class PrintJobTest extends Sprite {

	private var pJob:PrintJob;
	private var pOption:PrintJobOptions;
	private var container:Sprite;

	public function PrintJobTest() {
		container = new Sprite();
		pJob = new PrintJob();
		pOption = new PrintJobOptions;
		pOption.printAsBitmap = true;	// デフォルトは false で、そのままだとベクター出力してくれる

		init();
	};

	private function init():void {
		container.graphics.beginFill( 0x000000 );
		container.graphics.drawRect( 0, 0, 120, 30 );
		container.endFill();

		stage.addEventListener( MouseEvent.MOUSE_DOWN, mouseDownHandler );
	};

	private function mouseDownHandler( e:MouseEvent ):void {
		pJob.start();

		try {
			pJob.addPage( container, null, options );
		} catch( e:Error ) {
			trace("プリンターに追加できませんでした。: " + e);
		}

		try {
			pJob.send();
		} catch( e:Error ) {
			trace ("プリント出来ませんでした。: " + e);
		}
	};

};

これで、120px x 30px の黒の四角がプリントアウトされます。

縦と横の向きを設定するときは、flash.printing.PrintJobOrientation; を使う。
あとは、プロパティの値とかを色々いじれば大丈夫(って信じてる)。

COMMENT

CATEGORY

POSTED

jam

2009/06/24 | 1:59 am

ZipされたJPEGを扱う(複数)

別件で忘れてましたが、とりあえず、暫定的な処理になりますが、
こんな感じで解凍を確認したので。。。

まず、ZipLoader はやめて、nochump.util.zip.*; を使用しました。
Unknown Quality の ll_koba_ll さんが、分かりやすく書かれていたのでそれを参考に。


ref Unknown Quality – ActionScript 3.0 でZIPの圧縮と解凍

↓ ZIP圧縮した「uploads」フォルダに画像が何枚か入ってる想定です。

package
{
	import flash.display.*;
	import flash.events.*;
	import flash.net.*;
	import flash.utils.ByteArray;

	import nochump.util.zip.*;

	public class MultiZipLoader extends Sprite
	{

		private var byteArray:ByteArray;
		private var loader:Loader;

		private var idx:int = 0;
		private var lg:Number = 0;
		private var bmpArray:Array = [];

		public function ZipLoaderMulti()
		{
			var uLoader:URLLoader = new URLLoader();
			uLoader.dataFormat = URLLoaderDataFormat.BINARY;
			uLoader.addEventListener( Event.COMPLETE, zipLoadComplete );
			uLoader.load( new URLRequest("uploads.zip") );
		}

		private function zipLoadComplete(e:Event):void
		{
			trace("zipファイルのロード完了");
			byteArray = e.target.data;
			var zip:ZipFile = new ZipFile( byteArray );

			for( var i:int = 0; i < zip.size; i++ ) {
				var entry:ZipEntry = zip.entries[i];
				var zipData:ByteArray = zip.getInput( entry );

				// 余計なものが入らないようにする
				if( zipData.length != 0 && zipData.bytesAvailable > 0) {
					lg++;

					loader = new Loader();
					loader.contentLoaderInfo.addEventListener( Event.COMPLETE, getBitmapData );
					loader.loadBytes( zipData );
				}
			}
		};

		private function getBitmapData( e:Event ):void
		{
			trace("BitmapData のロード完了");
			bmpArray[idx] = Bitmap( e.target.content );
			idx++;
			if( idx == lg ) display();
		};

		private function display():void
		{
			trace("表示します");
			for( var i:int = 0; i < bmpArray.length; i++ ) {
				var bmp:Bitmap = bmpArray[i] as Bitmap;
				bmp.y = i * 300;	// 300は適当です。

				addChild( bmp );
			}
		};

	};

};

MACユーザーの方は、右クリックで圧縮するとリソースフォークとかのアーカイブが含まれてしまうので、zip.size を trace() すると不可思議な数が出力されます。。。
なので、Clean Archiver とか使えば大丈夫です。

COMMENT

CATEGORY

POSTED

jam

2009/06/23 | 13:27 pm

おぉ、これは!

ちょっと吉祥寺にいってきます。


フェネック3兄弟と井の頭便り

COMMENT

CATEGORY

POSTED

jam

2009/06/22 | 17:06 pm

ZipされたJPEGを扱う

Spark Project にコミットされてる tarotarorg さんの ZipLoader 使って zip ファイルをロードして、そのなかにある JPEG ファイルを表示するサンプル

↓ とりあえず、コミットされてるサンプルをそのまま改造したヤツです。
同階層に sample_image.jpg って画像を格納した uploads という zip されたフォルダがあるのが想定です。

/*
 *  Copyright 2008 tarotarorg
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */
package
{
	import flash.display.Bitmap;
	import flash.display.BitmapData;
	import flash.display.Loader;
	import flash.display.Sprite;
	import flash.events.IOErrorEvent;
	import flash.net.URLLoaderDataFormat;
	import flash.net.URLRequest;
	import flash.utils.ByteArray;
	import flash.events.Event;

	import org.tarotaro.flash.pv3d.ZipLoader;

	[SWF(width="640", height="480", backgroundColor="#ffffff")]
	/**
	 * ZipLoaderの使用例
	 * @see org.tarotro.flash.pv3d.ZipLoader
	 * @author 太郎
	 */
	public class ZipLoaderSample extends Sprite
	{

		private var byteArray:ByteArray;
		private var loader:Loader;
		private var bmpd:BitmapData;

		public function ZipLoaderSample()
		{
			var zipLoader:ZipLoader = new ZipLoader();
			zipLoader.addEventListener(Event.COMPLETE, zipLoadComplete);
			zipLoader.addEventListener(IOErrorEvent.IO_ERROR, function(e:IOErrorEvent):void {
				trace("IOエラー:", e);
			});
			zipLoader.dataFormat = URLLoaderDataFormat.BINARY;
			zipLoader.load(new URLRequest("uploads.zip://uploads/sample_image.jpg"));
		}

		private function zipLoadComplete(e:Event):void
		{
			trace("zipファイルのロード完了");
			byteArray = e.target.data;

			loader = new Loader();
			loader.contentLoaderInfo.addEventListener( Event.COMPLETE, getBitmapData );
			// ここで取得した ByteArray を loadBytes() にぶち込む
			loader.loadBytes( byteArray );
		};

		private function getBitmapData( e:Event ):void
		{
			trace("ByteArrayファイルのロード完了");
			bmpd = Bitmap( e.target.content ).bitmapData;
			addChild( new Bitmap( bmpd ) );
		}

	}

}

あぁ、なんてステキライブラリ!
でも、このままだと、画像の名前とかを自分で指定しないといけないので、要改造ですね。
papervision3d で使われてる nochump.utils.zip.*; とかを見てみたら分かりそうな気がしますです。

COMMENT

CATEGORY

POSTED

jam

2009/06/18 | 17:35 pm

bit shiftしたカラーをGraphicsで使う

ちょいメモ。

var sp:Sprite = new Sprite();
var color:uint = COLOR << 16 | COLOR << 8 | COLOR;

sp.graphics.beginFill( Number("0x" + color.toString(16)), 1 );
sp.graphics.drawRect( 0, 0, 10, 10 );
sp.graphics.endFill();

addChild( sp );

っと最初に uint 型で作成した変数 color を
"0x" と一緒に16進法に変換した color をストリングして結合して
最終的に Number 型でキャストする。

そうすると、とりあえずは大丈夫。
けど、無駄にややこい事してる気がしなくもない。。。

COMMENT

CATEGORY

POSTED

jam

2009/06/17 | 17:51 pm

xml and namespace

RSS 1.0 を読もうとしたらエラー出たス。

RSS 2.0 の仕様だと、<xml>で始まるのだけれども、
RSS 1.0 の仕様でいくと<rdf>で始まるのでちょいと勝手が違うようです。

なので、default xml namespace して rdf を認識(??)させてあげないとダメみたい。
注) ↓ は、BulkLoader 使って読み込んだあとです。

var feedData:XML = bulkLoader.getXML( "feed_data" );
var feedList:XMLList;
// RSS 1.0 のときと RSS 2.0 のときで分ける
if(feedData.name() == "http://www.w3.org/1999/02/22-rdf-syntax-ns#::RDF") {
	var ns:Namespace = new Namespace("http://purl.org/rss/1.0/");
	default xml namespace = ns;
	feedList = feedData.item;
} else {
	feedList = feedData.channel.item;
}

っで、これでも Runtime Error #1025 喰らったのでさらに調べると
どーやら、ローカル変数で default xml namespace させるとダメのようです。

private var ns:Namespace = new Namespace("http://purl.org/rss/1.0/");
private function onLoaded( e:Event ):void {
	var feedData:XML = bulkLoader.getXML( "feed_data" );
	var feedList:XMLList;
	// RSS 1.0 のときと RSS 2.0 のときで分ける
	if(feedData.name() == "http://www.w3.org/1999/02/22-rdf-syntax-ns#::RDF") {
		default xml namespace = ns;
		feedList = feedData.item;
	} else {
		feedList = feedData.channel.item;
	}
}

もしくは変数宣言しないでそのまま記述しても大丈夫

private function onLoaded( e:Event ):void {
	var feedData:XML = bulkLoader.getXML( "feed_data" );
	var feedList:XMLList;
	// RSS 1.0 のときと RSS 2.0 のときで分ける
	if(feedData.name() == "http://www.w3.org/1999/02/22-rdf-syntax-ns#::RDF") {
		default xml namespace = new Namespace("http://purl.org/rss/1.0/");
		feedList = feedData.item;
	} else {
		feedList = feedData.channel.item;
	}
}

COMMENT

CATEGORY

POSTED

jam

2009/06/17 | 16:24 pm

iPhone on 24 inch display

24 inchのディスプレイで iPhone OS を動かした愛すべき変態GEEK。
さすがです ww


via idea*idea

CATEGORY

POSTED

jam

2009/06/15 | 13:09 pm

Sheep LED Art

牧羊犬を使って、LEDのライトをいっぱい着けた羊を導いていろんなアートしてます。
花火とかエアホッケーとか、すごいス。

CATEGORY

POSTED

jam

2009/06/13 | 23:20 pm

BBQ ‘09

今年のBBQの買い出しで、本日もまたまた築地へ。
何かしらの買い出しって言ったら築地が一番です。

とりあえず朝から何も食ってなくて、腹減ってたので場外市場のラーメン屋(中華そば屋っていうのかな??)に行って、腹ごしらえ。
えらい行列出来てたので、ドキドキしてたら結構普通でした。
何とかラーメンとかじゃなくて、ホントに近所の中華料理屋で出てきそうなベタな醤油ラーメン。
だから「ラーメン」と書かずに「中華そば」と書かれていたのか。。。

そして、本日もあの街のレベルの高さを思い知らされました。
「SALE」って書きたかったんだろうけど、一字よけいに加えてしまって「SCALE」って値札を発見してしまったり、真空パックみたいにしたかったのだろうか、袋の入り口に口をつけて、思いっきり吸い込んでる兄ちゃん見つけたり、かと思えば、「真空パックなので触らないで下さい」っと意味不明な注意書きを見つけてしまったり。

相変わらず、あの街はすごいデス。
なんだか自分の悩みが小さく感じました。

明日は雨との予報だそうですが、いっぱい買っちゃったので、もちろん雨天決行です。
連絡行ってる方、ちゃんと来て下さいましー

あー、ずっと曇りがいいなー

COMMENT

CATEGORY

POSTED

jam

2009/06/09 | 14:25 pm

記録媒体

カリフォルニア大学バークレー校の研究チームがカーボン・ナノチューブを用いた新しいデータ保存技術を考案したそうな。


via Wired Vision

今の記録媒体だと、もって数十年らしいんですが、新しい保存技術だと10億年保つそうです。
0が多すぎて全然想像出来ないけど、それはそれで腑に落ちない点もあると思うのです。

ヒエログリフとか紀元前に書かれた記録だとしても、今でもちゃんと読める(解読出来ればの話だけど)。
ってことは、前者(今の技術)は実際には手に触れるために何かの媒体(パソコンとか)を介してじゃないと解読出来ない上に、そんなに保たないっと。
でも、後者(ヒエログリフなど)は多量の情報を保存するためには、その場所が比例して必要になるっと。

もう一個比較すると、
前者は保存出来ているのかそれとも壊れてしまったのかは、媒体を通してじゃないと判別出来ない。修復は可能かもしれないし、不可能かもしれない。
後者は保存状態がすぐ目に見えるので、修復が可能(度合いによるけど)。

っということは、10億年の間に何かあっても媒体を通さないと気づかれないってことになる。
前者のこれは、実は非常に危険なんじゃないかな。。。
もしかしたら、数億年後には今普通に記録されている情報も解読出来るのかどうか微妙だし www

どちらもメリットとデメリットがあるから絶対こっちがいいっとは言い切れない。
むむー、モヤモヤする。

COMMENT

CATEGORY

POSTED

jam

2009/06/08 | 18:45 pm

携帯のソフトウェアアップデート

初めてみた。

何かケータイが光ってるなーって思ったら、「ソフトウェアアップデート中」って表示されてビックリです。
パソコン使ってるとよく見るけど、ケータイでは初めて。

どーやらこういう事らしいス。
シャープ製品がね、アレらしいね。
って、フルブラウザで画像保存もバーコードリーダーも使った事ないけど、アップデートのキャンセルって出来ないのだろか??

COMMENT

CATEGORY

POSTED

jam

2009/06/08 | 13:18 pm

wikipedia book

wikipedia が本になったらこんなになるのか www


by Rob Matthews

CATEGORY

POSTED

jam

2009/06/07 | 5:31 am

消臭用品

ボルダリングシューズって裸足で履く人が多くて、自分もその一人なのですが、やっぱ暖かくなってくると不可思議なニオイを醸し出してくれます。。。

色々調べてみたら靴の中で、汗をかいたあとに雑菌類(バクテリアとか)の代謝によって発生するイソ吉草酸という脂肪酸が原因が繁殖するかららしいス。

とりあえず、試してみたい方法:
・10円玉を3〜4枚入れとく(← 銅がバクテリアをやっつけるらしい)
・新聞紙つめとく(← 湿気を吸い取り雑菌が繁殖しにくい環境になるらしい)
・茶殻を入れておく(← 物理吸着剤としての働きがあるらしい)

あと、こんなんに Google でヒットした。

「イオンの効果でニオイ一発解消」だって。
今なら小売り希望価格5,800円がなんと90%OFFで578円とのこと www
ちなみに、やはりというか送料は600円らしい。。。


追記:09.06.08

会社の隣の席のステキな方が、ブーツとかの消臭に炭使うと良いよって教えてくれました。
多分、これが最有力候補になるんじゃないだろうか。
あと、くすの木がいいって話も。
megさん、あざっす。

COMMENT

CATEGORY

POSTED

jam

2009/06/06 | 5:41 am

繋がり

普段は、全然その手の事はまったく考えていないし、意識もしていなかったのだけれども、自分の中というか周りというか、環境面で大きな変化をしてみようとしていまして。

そしたら、そしたですごい偶然なのか、ここ数週間でものすごい数の人と偶然会ってます。

帰り道に自転車で友達と遭遇したり、仕事帰りによく行くカフェで飯食ってたら、前職のときの社長(← アメリカ人でアメリカ在住)が偶然来日してて遭遇したり(← これ一番ビックリした。二年ぶりくらい)。お話できる良い機会はないかなーっと思っていた友人から急に誘いがあったり(← 普段そんなに会ってない人なのだけれど)。

あとは、自分の周りの人たちも自分の意志とは無関係に色々な方向に進んでいて、気がついたら大切にしていた物や事、場所がなくなってしまったり。

いろんなジャンルの話で、タイミングが大事って言われるけど、そういうものなのだろうか。
ホントに、今までは「いや、関係ないっしょ!」っとかって言ったけど、ここまで偶然が重なると否応無しに「繋がり」というモノを意識させられるものです。

CATEGORY

POSTED

jam

2009/06/03 | 12:05 pm

my space | art

MySpace にてアーティストやイラストレーター、グラフィックデザイナーなどなどのための新しいコミュニティが出来たそうな。
自分の作品を投稿できるみたいなので、ポートフォリオ兼コミュニティってスタンスを持たせてくれるのだろか??
なんとなく最近、そういうのが増えてきた気がする。

今まで MySpace って見た目がうるさい印象があったので疎遠でしたが、今回のは割ときれいに収まってる感じです。
ちょっとダークな印象なイラストが多い気がしないでもないのだけれども。。。


MySpace Arts & Culture – A Place For Artists, Illustrators and Designers.

COMMENT

CATEGORY

POSTED

jam

JUN NAKAJIMA
Tokyo, Japan.
member of Onawatobi.
contact@brooklyn.jp