2009年3月24日火曜日

EclipseNSISを試してみる

NSISでインストーラを作ってみることを思い立ち、久しぶりにしらべてみたところ、EclipseNSISという便利そうなプラグインが開発されていることを発見。早速試してみることにする。

手元にあったEclipseはEuropa(3.3.2 M20080221-1800)で、EclipseNSISは3.4以上でないと動かないとのこと。早速eclipse.orgからeclipse-jee-ganymede-SR2-win32.zipをダウンロード&インストール&アップデート。(3.4.2 M20090211-1700)
※jeeは163Mもある。Eclipse IDE for C/C++ Developers (68 MB)こっちでも良かったかも。

そして、EclipseのSoftware Updates and Add-onsでhttp://eclipsensis.sf.net/updateからインストールする。EclipseNSIS(0.9.7.2)とEclipseNSIS InstallOptions Editor(0.9.7)の2つを選択した。

NSISを使うためには当然ながらNSISをインストールしなければいけない。NSISのウェブサイトからNSIS 2.44 Feb 21, 2009(現時点での最新版)をダウンロード&インストール。

以上で環境構築完了。

プロジェクトの作成は、EclipseのFile>New>Other...からEclipseNSIS>NSIS Scriptを選択するとWizardが起動するので必要な情報を入力していくだけ。

驚くほど簡単だ。

2009年3月23日月曜日

Bloggerにコードを載せる(2)

スタイルを変更してみた。

CSS
/* MyCode
----------------------------------------------- */
.mycodeT, .mycodeB {
font-family: consolas, "Courier New", courier, monospace;
padding: 3px 3px 3px;
}
.mycodeT {
margin: 1em 1em 0;
color: black;
background: #ffc080;
font-weight: bold;
}
.mycodeB {
margin: 0 1em 1em;
color: black;
background: papayawhip;
border-width: 1px;
border-color: #ffc080;
border-style: solid;
overflow-x: auto;
word-wrap: normal;
}

Xmlを便利に扱えるXmlSimple

いままでXMLはREXMLで扱っていたけど、XmlSimpleの方が便利そうだ。

Bloggerにコードを載せる

以前のものを改良してみた。
CSS
/* MyCode
----------------------------------------------- */
.mycodeT, .mycodeB {
font-family: consolas, "Courier New", courier, monospace;
padding: 3px 3px 3px;
}
.mycodeT {
margin: 1em 1em 0;
color: #e04000;
background: #ffc080;
font-weight: bold;
}
.mycodeB {
margin: 0 1em 1em;
color: black;
background: papayawhip;
border-width: 1px;
border-style: dashed;
border-color: maroon;
overflow: scroll;
word-wrap: normal;
}
ついでにAIRで成型用のツールを作ってみた。
BloggerStyle
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication
xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
title="Sample"
invoke="invokeHandler()">
<mx:Style>
WindowedApplication
{
background-color:"0xffffff";
font-size:"12";
}
</mx:Style>
<mx:Script>
<![CDATA[
private static var TEMPLATE_TEXT:String = '<pre class="mycodeT">%name%</pre><pre class="mycodeB">%text%</pre>';

private function invokeHandler():void {
_srcName.setFocus();
}
private function changeHandler(event:Event):void
{
_dstText.text = format();
}
private function format():String
{
var name:String = escape(_srcName.text);
var text:String = escape(_srcText.text);
return TEMPLATE_TEXT.replace(/%name%/, name).replace(/%text%/, text);
}
private function escape(x:String):String
{
x = x.replace(/&/g, '&amp;');
x = x.replace(/</g, '&lt;');
x = x.replace(/>/g, '&gt;');
x = x.replace(/"/g, '&quot;');
return x;
}
]]>
</mx:Script>
<mx:HDividedBox width="100%" height="100%">
<mx:VBox width="50%" height="100%">
<mx:TextInput id="_srcName" width="100%" change="changeHandler(event)"/>
<mx:TextArea id="_srcText" width="100%" height="100%" change="changeHandler(event)"/>
</mx:VBox>
<mx:TextArea id="_dstText" width="50%" height="100%" editable="false"/>
</mx:HDividedBox>
</mx:WindowedApplication>

2009年3月19日木曜日

Flex_SDKでAIRアプリを作る

AIRアプリは無料で作れる。
手順は次の通り。

1. Javaをダウンロード&インストールする。
2. Adobe® Flex® 3 SDKをダウンロード&インストールする。
3. Sample.mxmlを書いてコンパイルする。
$ amxmlc Sample.mxml
4. Sample-app.xmlを書いて実行してみる。
$ adl Sample-app.xml
5. パッケージングする。
$ adt -certificate -cn SelfSigned 1024-RSA Sample.pfx password
※自己署名証明書は1回作れば使い回せる
$ adt -package -storetype pkcs12 -keystore Sample.pfx -storepass password Sample.air Sample-app.xml Sample.swf icons
※この例ではアプリケーションにアイコンを設定しているのでパッケージにiconsディレクトリを含めている。

Sample.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication
xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
title="Sample"
invoke="invokeHandler()">
<mx:Style>
WindowedApplication
{
background-color:"0xffffff";
font-size:"12";
}
</mx:Style>
<mx:Script>
<![CDATA[
private static var PROLOGUE:String = '<div class="mycode1"><pre class="mycode2">';
private static var EPILOGUE:String = '</pre></div>';

private function invokeHandler():void {
_srcText.setFocus();
}
private function changeHandler(event:Event):void
{
_dstText.text = toMyCode(_srcText.text);
}
private function toMyCode(x:String):String
{
x = x.replace(/&/g, '&amp;');
x = x.replace(/</g, '&lt;');
x = x.replace(/>/g, '&gt;');
x = x.replace(/"/g, '&quot;');
return PROLOGUE + x + EPILOGUE;
}
]]>
</mx:Script>
<mx:HDividedBox width="100%" height="100%">
<mx:TextArea id="_srcText" width="50%" height="100%" change="changeHandler(event)"/>
<mx:TextArea id="_dstText" width="50%" height="100%" editable="false"/>
</mx:HDividedBox>
</mx:WindowedApplication>

Sample-app.xml
<?xml version="1.0" encoding="utf-8"?>
<application xmlns="http://ns.adobe.com/air/application/1.5">
<id>com.blogspot.takumakei.Sample</id>
<version>0.1</version>
<filename>Sample</filename>
<initialWindow>
<content>Sample.swf</content>
<visible>true</visible>
<!--<systemChrome>none</systemChrome>-->
<!--<transparent>true</transparent>-->
<width>320</width>
<height>240</height>
</initialWindow>
<icon>
<image16x16>icons/icon_016.png</image16x16>
<image32x32>icons/icon_032.png</image32x32>
<image48x48>icons/icon_048.png</image48x48>
<image128x128>icons/icon_128.png</image128x128>
</icon>
</application>


Adobe Developer Box

気になる。あ~気になる。でも今は時間がないから試せない。気になるぅ~。

Adobe Developer Box

成型用スクリプト

Bloggerは記事をHTMLで編集することができる。それに独自のCSSを編集することもできる。

記事にコードを書く時に使うスタイルを定義してみたので、ついでに、コードを投稿する時に整形するためのスクリプトも作ってみた。

カスタマイズのHTMLの編集のテンプレートの編集で定義したスタイルと成型用スクリプト。

/* MyCode
----------------------------------------------- */
.mycode1 {
border-width: 1px;
border-style: dashed;
border-color: maroon;
background: papayawhip;
}
.mycode2 {
color: black;
padding: 0 0 0 5px;
}

#!/usr/local/bin/ruby -Ku
print '<div class="mycode1"><pre class="mycode2">'
while line = gets
line.gsub!(/&/, '&amp;')
line.gsub!(/</, '&lt;')
line.gsub!(/>/, '&gt;')
line.gsub!(/"/, '&quot;')
print line
end
puts '</pre></div>'