Dec 23, 2012

Apple System Status Notifier released

I have released a chrome extension Apple System Status Notifier. This extension is quite simple. It periodically checks Apple System Status and displays number of issues recently happened.

This extension uses event pages feature. It consumes less resources than background pages. I hope many other extensions adopt this feature.

Dec 18, 2012

monogusa Released

Last Sunday, I have released monogusa gem.

Its purpose is to list your usage of AWS resources. When you use Management Console, you have to click and click the icons of AWS services you would like to check. If you are running instances across the regions, you have to click more.

Monogusa is trying to make it easier. At the moment is does not list statuses across regions, next version will do it. This is screen shot of next version.

Dec 1, 2012

Create a URL Signature for Amazon CloudFront Using Python

There is no official document to create a url signature for Amazon CloudFront in Python. I found an easy way to do it.

from tlslite.utils import keyfactory
from base64 import b64encode
import time

url = ""
expires = int(time.time() + 60)
privkey_file = "pk-APKAJ4YNPASFVCNBXK3A-cloudfront.pem"
key_pair_id = "APKAJ4YNPASFVCNBXK3A"

policy = '{"Statement":[{"Resource":"%s","Condition":{"DateLessThan":{"AWS:EpochTime":%d}}}]}' % (url, expires)
privkey = keyfactory.parsePrivateKey(open(privkey_file).read())            
print '%s?Expires=%d&Signature=%s&Key-Pair-Id=%s' % (url, expires, b64encode(privkey.hashAndSign(policy)), key_pair_id)

The library tlslite is very easy to use. boto also has a method to create signed url but it uses M2Crypto. To install M2Crypto, swig command is required but my OSX does not have it. If you do not like to install swig, tlslite is a good option.

Nov 19, 2008

Alchemy has arrived eventually !

Today the timeline of twitter was filled by the tweets about Adobe Alchemy. This project is quite impressive for me because I am used to C/C++, and relatively new to Flash. Then I began to install it to my Ubuntu 8.04 in the VirtualBox.

There is a zip file of Alchemy Toolkit for Linux which contains README.ubuntu. At first I thought this file is valuable for me, but it was not. README.ubuntu did not help me. I read the install steps for Mac that is not so different from Linux's one.

After that the second problem has come. llvm-gcc is not found. when I tried following command;

gcc stringecho.c -O3 -Wall -swc -o stringecho.swc
there was no output in the console. I checked gcc.
vim `which gcc`
gcc is not a binary executable but a perl script for Alchemy from the time alc-on command is executed until the time alc-off is executed. I put some checkpoints in gcc and found that this script exits when trying to run llvm-gcc command. The reason of that is quite simple. There is no command named llvm-gcc.

$ALCHEMY_HOME/bin/llvm-gcc is a symbolic link to $ALCHEMY_HOME/bin/llvm-gcc4-ubuntu-install/bin/llvm-gcc that does not exist. I need this file or link llvm-gcc to somewhere appropriate.

Apr 3, 2008


I have published VaporVision3D for this year's April fool. I am writing articles about 3D representation on Flash from scratch, so this VaporVision3D does not depend on Papervision3D or such 3D graphics framework.

I do not think that Reinvention of the Wheel has no meaning, but reinvention of 3-D graphcis framework is a heavy task. Who want to use 3D graphics on Flash should use Papervision3D or such however implementing 3D engine gives you lots of experiences. But I am seriously interested in performance problems on 3D engines. It is a well-known fact that drawing of FlashPlayer is very slow. What we can do is to reduce drawing. For now, my articles intentionally cut performance problems for simplicity. The time to argue the problems will come soon.

Mar 5, 2008

Long path handling of JSFL File API

Copy function of JSFL File API can not handle long URI, for example a URI consists 300 characters. I've wrote extended copy function that can handle such long URI. This is first time to write a extension for Flash in C language, but I found that it is not difficult to implement it. The sample extension really helped me to understand how the extension works.

Nov 21, 2007

AS3 3D and physics engines

2D physics engines:
This engine may be the most well-known one. It has been ported to C++ and Java. MIT license.
Crayon Physics Deluxe made the people attracted to this engine. Box2D was written in C++, now ported to AS3 as Box2DFlashAS3. zlib/ligpng licence.
It was lately released, but seems worth trying. MIT license.
Perhaps you do not know this engine because of its own license. Let's check the demo.
Motor Physics
This one is expected to join the AS3 physics engine list. Some demos are already available. zlib/libpng license.
This seems a little complicated compared with C++. In C++, there are practically two choices of 3D physics engine, PhyX and Havok. Which engine will survive? 3D graphics engine:
I think that I do not need to explain about this most known 3D engine. MIT License.
This engine is Papervision3D based one, but has has better visual quality.
I immediately understood this name because I am a Japanese (see why). The API resembles Java3D, e.g. TransfomGroup class.
Corrected the name of Box2DFlashAS3. (Nov. 23)