jp.mobster.eclipse.utilitiesをサルベージして公開しました

もう7年ぐらい前に作ったEclipseプラグインです。結構まだ使われている人もいるみたいだったのですが、少し前からリンク切れになっていました。
以下にとりあえず置いていますので、ご利用くださいませ。
http://dl.getdropbox.com/u/373213/jp.mobster.eclipse.utilities_1.0.2.zip

ReadMeより
Mobsterユーティリティプラグインとは?
Windows専用のEclipseプラグインです。

Eclipseのファイルエクスプローラの右クリックメニューから
以下のことができます。

  • Windowsエクスプローラを開く。
  • DOSプロンプトで開く。
  • ディレクトリに移動して実行。バッチファイルの実行に便利!
  • 拡張子が「.txt」のファイルにnative2asciiをかけて、「.properties」で保存する。

Mobster Utility Plugin 1.0.2
http://d.hatena.ne.jp/agt/20040715

Mobster・・・

Cubby 1.1.4をリリースしました

久々のCubbyのバージョンアップです。http/httpsなどのプロトコルを指定してリンクやフォームが作成できるようになりました。小粒ですが結構便利な機能ではないでしょうか。

Cubby 1.1.4 をリリースしました。
http://cubby.seasar.org/download.html

今回のリリースは新規機能が1件です。

formタグ、linkタグでプロトコルとポートを指定できるようになりました。
これを使うとログイン画面などにおけるhttp/httpsの切り替えが簡単に
できるようになります。

詳細はformタグ、linkタグのタグリファレンスをご覧下さい。
http://cubby.seasar.org/cubby/tagreference.html#t:form
http://cubby.seasar.org/cubby/tagreference.html#t:link

cubby-examplesのlink生成サンプルにも使用例を追加しています。
https://www.seasar.org/svn/cubby/tags/1.1.4/cubby-examples/src/main/webapp/link/index.jsp

リリースノート
https://www.seasar.org/issues/secure/ReleaseNote.jspa?projectId=10122&styleName=Html&version=10900

バージョン移行の注意点については、移行ガイドを参照ください。
http://cubby.seasar.org/migration.html

tenjin.web/5が開催されます

「Web周辺におけるアプリケーション設計・開発シリーズ」と銘打って「State」「JavaScript OOP」ときたこのシリーズもいよいよ第3回。
今回は「JavaScriptによるMVCを使ったリッチアプリケーションの設計と実装に関する話」です(いわゆるWebのMVCMVC2」の話ではありません)。
JavaScript/Flash/Flex/AIR/Silverlight/などの言語を壁を超えて知っておいて損はない内容だと思います。みなさまの参加をお待ちしています。
tenjin.webの過去の内容はこちら

tenjin.web/5

  • 日程: 2009/03/07 (sat)
  • 時間: 14:00 - 18:00
  • 参加人数:10人程度
  • 参加費:お菓子など
  • 参加方法:MLで応答していただくか、

  tenjin.web5 at kiwanami.net まで参加希望のメールをお送りください。

  • 内容:「クライアントサイドにおけるMVCの設計と実装」

〜Web周辺におけるアプリケーション設計・開発シリーズその3〜

    • MVC概論
    • WebのMVCとの違い
    • 設計方法
    • 演習 / 発表
    • 実装・適用についての議論いろいろ

対象: すでにWebアプリケーションでJavaScriptを使ったことがある人

  • JavaScript, HTML について少しでも知識・経験があることを仮定しています
  • JavaScriptオブジェクト指向については中ですこし説明します
  • エディタやIDEなどを準備しておいてください(Apacheなどのサーバーは不要です)

備考

ちょっとした処理でも複雑になりがちなクライアントサイドの実装ですが、昔からGUIアプリの複雑さについては多くの研究やノウハウが数多く蓄積されています。そこで、今回はデザインパターンの一つであるMVCを紹介し、Webとの考え方の違いを中心に設計や実装の解説・実習を行う予定です。
最近はjQueryなどのライブラリによって記述の工夫が進み、以前と比べて楽にかけるようになっては来ましたが、今回紹介するMVCの考え方・デザインパターンにより、さらにすすんだアプリケーションをきれいに実装できるようになるのではないかと考えています。
皆様のご参加をお待ちしております。

Backlog開発者Blogはじまりました。

遅ればせながらBacklog開発者Blogが始まりました。記念すべき第1回目の記事ではBacklogのUIの変遷を見ることができます。詳細はこちらです。


2006年頃のBacklog
WEB+DB PRESSにこの絵と同じ広告を掲載したのもこのころでした。

Twitterのページもありますので、よろしければフォローお願いします!

Flash Text Engineでボールドとか斜体とか

試してみました。

FTEでフォントを指定する際は以前のFlashで使用してたFontクラスではなくFontDescriptionクラスを使用します。FontDescriptionのコンストラクタやプロパティで「fontPosture」「fontWeight」を指定することで、ボールドや斜体を指定できます。

ボールドや斜体が適用されるかどうかはフォントやプラットフォームによって挙動が異なりました。

  • Windows:MSゴシックやメイリオをはじめほとんどのフォントでボールドや斜体が有効でした。
  • Mac OSX:Osaka、ヒラギノなどほとんどの日本語フォントでボールドや斜体が無効です。メイリオは有効でした。Arialなど基本的な欧文フォントはボールドや斜体が有効でした。

Mac版はもしかするとFTEのバグかもしれません。欧文圏ではあまり問題ないと思いますが、FTEで日本語を扱う場合、Mac対応をどうするか?が問題になりそうです。


フォントのプレビューは以下のコードで確認しました。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
        layout="vertical"
        verticalAlign="top"
        backgroundColor="white"
        >

<mx:Script>
  <![CDATA[
    import mx.events.ListEvent;
    import mx.controls.Alert;
    import flash.text.engine.FontWeight;
    import flash.text.engine.FontPosture;
    import flash.text.engine.TextBlock;
    import flash.text.engine.TextLine;
    import flash.text.engine.TextElement;
    import flash.text.engine.FontDescription;
    import flash.text.engine.ElementFormat;

function updateSampleFont(event:mx.events.ListEvent ):void {
  try {
   updateTextLine(normalFont, comboBox.selectedItem.fontName, FontPosture.NORMAL, FontWeight.NORMAL, "Normal font ノーマルフォントです。");
   updateTextLine(boldFont, comboBox.selectedItem.fontName, FontPosture.NORMAL, FontWeight.BOLD, "Bold font ボールドフォントです。");
   updateTextLine(italicFont, comboBox.selectedItem.fontName, FontPosture.ITALIC, FontWeight.NORMAL, "Italic font イタリックフォントです。");
   updateTextLine(boldItalicFont, comboBox.selectedItem.fontName, FontPosture.ITALIC, FontWeight.BOLD, "Bold Italic font ボールドイタリックフォントです。");
  } catch (e) {
    Alert.show("" + e);
  }
}

function updateTextLine(parent:UIComponent, fontName:String, posture:String, weight:String, text:String):void {
    try {
      parent.removeChildAt(0);
    } catch (e) {
    }
    var font:FontDescription = new FontDescription(fontName, weight, posture);
    var format:ElementFormat = new ElementFormat(font);
    format.fontSize = 50;
    var str:String = text;
    var textElement:TextElement = new TextElement(str, format);
    var textBlock:TextBlock = new TextBlock();
    textBlock.content = textElement;
    var textLine:TextLine = textBlock.createTextLine(null, 600);
    textLine.rotation = 0;
    parent.addChild(textLine);
    textLine.x = 0;        
    textLine.y = 50;
}
  ]]>
</mx:Script>

    <mx:ArrayCollection id="arrColl"
            source="{Font.enumerateFonts(true)}">
        <mx:sort>
            <mx:Sort>
                <mx:fields>
                    <mx:SortField name="fontName" />
                </mx:fields>
            </mx:Sort>
        </mx:sort>
    </mx:ArrayCollection>

    <mx:List id="comboBox"
            dataProvider="{arrColl}"
            labelField="fontName"
            fontSize="20"
            rowCount="5"
            change="updateSampleFont(event)" width="400">
        <mx:itemRenderer>
            <mx:Component>
                <mx:Label fontFamily="{data.fontName}"
                        toolTip="{data.fontName}" />
            </mx:Component>
        </mx:itemRenderer>
    </mx:List>
    <mx:VBox>
      <mx:UIComponent id="normalFont" height="100"></mx:UIComponent>
      <mx:UIComponent id="boldFont" height="100"></mx:UIComponent>
      <mx:UIComponent id="italicFont" height="100"></mx:UIComponent>
      <mx:UIComponent id="boldItalicFont" height="100"></mx:UIComponent>
    </mx:VBox>
</mx:Application>

Mac OS Xのもっさり感を解消するチューニングまとめ

1年前に手に入れたMacBook Pro(OS 10.5.6、メモリ4G)ですが、最近やけに動作がもっさりしてきました。特にpallarelsとアプリを少し多めに立ち上げると遅くなったまま。アプリの切り替えもままならなくて、最後は強制終了するしかない、ってことが多々ありました。

このままだと「Macって使えないじゃん」という話になりかねません。そこで、Webに落ちているチューニング方法の中から特に効果がありそうなものを実行してみました。結果、体感速度が相当改善し快適になり「Mac最高ですね」という状態に戻れました。特にアプリの切り替えがさくさく行えます。もっさり感でお困りの方は(自己責任で)お試し下さいませ。

(1)AppleJack
ディスクの修復などいろいろメンテナンスしてくれます。詳細はt0moriBlog 究極のメンテソフト? AppleJack

  1. AppleJack 1.5をダウンロードしてインストール
  2. 再起動して、起動時に「コマンド+S」で「シングルユーザーモード(ターミナルのような画面)」に入る
  3. 「autojack AUTO」と入力してenter。10分ほど待ちます。

(2)スワップファイルを抑制
404 Blog Not Found Mac OS X Leopard - dynamic_pager を骨抜きにを使ってスワップファイルを64Mに押さえるようにします。
物理メモリがたくさんないと逆効果かもしれません。

(3)noatimeを設定してファイルアクセス時の最終アクセス時間を書き込まないようにする
blog@browncat.org Macの動作が遅くなる。スワップとかnoatimeとかをいじってみた

「/etc/rc.local」に以下を書き込みます。再起動が必要です。

#!/bin/sh
 
mount -u -o noatime /

(4)Libera Memoryの導入

メモリの解放ソフトLibera Memoryを使って、「ちょっと遅いな=物理メモリ使いきりそう」というタイミングでメモリを解放します。Libera Memoryなら10秒ほどでメモリが解放されるので気軽に利用することができます。

特に(2)が効果が高かったのではないかと思われます。他にも良いチューニング方法がありましたら、ぜひ教えてください。

追記その1:しばらく使ってみましたが、物理メモリを全て消費するとほとんど何もできなくなる現象が発生しています。メモリに余裕があるうちは快適なんですが。。。
追記その2:「(4)Libera Memoryの導入」を追記。気をつければ「追記その1」の現象はほとんど起きなくなりました。この状況でしばらく利用してみます。