ubuntu 10.04でVNC

2010 年 9 月 13 日 zet-engine コメント 1 件

vnc4serverとxinetdをインストール。

apt-get install vnc4server xinetd

rootでxinetdの設定。
パスワードファイルの作成。
vncpasswd /etc/passwd_vnc(必要?)

/etc/xinetd.d/xvncを新規に作成。

service xvnc
{
        disable = no
        socket_type = stream
        wait = no
        user = nobody
        port = 5900
        server = /usr/bin/Xvnc
        server_args = -inetd -geometry 1024x768 -depth 24 -query localhost -once  securitytypes=none
}

vi /etc/servicesの最後に
xvnc 5900/tcp
を追加。

/etc/gdm/gdm.schemaの変更
security/DisallowTCP
false

xdmcp/Enable
true

/etc/gdm/custom.confを新規作成。

# GDM configuration storage

[daemon]
RemoteGreeter=/usr/lib/gdm/gdm-simple-greeter

[security]
DisallowTCP=false
AllowRemoteRoot=false

[xdmcp]
Enable=true
DisplaysPerHost=2

[greeter]

[chooser]

[debug]

最後に
# /etc/init.d/xinetd restart
# /etc/init.d/gdm restart

カテゴリー: ubuntu タグ:

Zend FrameworkでAMF

Zend_AMFをまともに使ってみたときの話

Zend AMFを扱っているサイトは多いのですが、いまいち使い方がわかんない。というあなたへ

Zend AMFはZend Frameworkの一部なのですが単体でダウンロードもできるぐらい特別扱いされてます。
理由はAdobeからの支援を受けていることと、Flash Builder 4でプロジェクトにZend_AMFを内包できるところにあると。

Zend Framewokの元来のフレームワークとしての使いかたにのとってやる場合、Zend_toolのZFコマンド使ってディレクトなどを生成してやる方法が楽チンです。

ZendFrameworkで作る『イマドキ』のWebアプリケーション

準備ができたら、 amfコントローラーを用意します。

class IndexController extends Zend_Controller_Action
{
	public function init()
	{
		/* Initialize action controller here */
	}

	function indexAction()
	{

	}

	function addAction()
	{

	}

	function editAction()
	{

	}

	public function deleteAction()
	{

	}
	public function profileAction()
	{
		$this->_helper->layout->disableLayout();
		Header("Content-disposition: attachment; filename=test.xml");
		Header("Content-type: application/octet-stream; name=test.xml;");

	}
	public function loginAction(){
		$errors = array();
		if ($this->getRequest()->isPost()){
			$username = $this->getRequest()->getParam('username');
			$password = $this->getRequest()->getParam('password');
			$auth = Zend_Auth::getInstance();
			$adapter = new GijirokuAuthAdapter($username,$password);
			$result = $auth->authenticate($adapter);
			if ($result->isValid()){
				$this->_redirect('/index');
			} else {
				$auth->clearIdentity();

				$errors = $result->getMessages();
			}
		}
		$this->view->assign('errors',$errors);
	}
	public function checkLogin(){
		$auth = Zend_Auth::getInstance();
		if (!$auth->hasIdentity()){
			throw new Zend_Auth_Adapter_Exception('認証されていません。',Zend_Auth_Result::FAILURE_IDENTITY_NOT_FOUND);
		} else {
			$this->view->assign('username',$auth->getIdentity());
		}
	}

}

カテゴリー: Zend_AMF タグ:

XAMPPでTOMCATを動かしJREのバージョンを上げる

2009 年 11 月 30 日 zet-engine コメント 4 件

XAMPPのJREを1.5から1.6に上げたときの話

xamppでTomcat Addonを入れてみたけど、JRE1.5でBat versionとか言われた。
JDK1.6でコンパイルしたから当たり前か…。

で、tomcatのJREをバージョンアップと思ったけどなぜかうまくいかない。
apacheFriends Support Forumで見つけた方法

Setting a custom JRE for Tomcat(英語)

まずは。tcnative-1.dllを下記よりダウンロード
http://www.apache.org/dist/tomcat/tomca … /binaries/
tcnative-1.dll を新バージョンの jre\bin にコピー
あとは、JREのフォルダー名を変更

tomcat/jre->jre1.5
tomcat/jre1.6.x->jre
でコントロールパネルから起動。
でも、ステータスは変化しない。でも動いてる。
プロジェクトに誰もレポートしてないや。てきな内容でした。
でも、そのとおりにやればチャンと動いてます。
次期バージョンで改善されるのかな~??

カテゴリー: Tomcat, XAMPP タグ:

Ubuntu9.04でBleazeDSを試す。

Ubuntu9.04+Tomcat6+Apache2にBlazeDSでちゃんと動かないときの話。

apt-getでTomcat6をインストールして、Apacheとも連携がうまくいった。
ubuntuのTomcat6はライブラリーやらログディレクトリやらが散乱しててわかりにくいですな…。
以下がlocateしてtomcat6関係ありそうなディレクトリの一覧。

  • /etc/tomcat6        <–Tomcat本体
  • /etc/default/tomcat6  <-Tomcat起動スクリプトに読まれるファイル
  • /etc/init.d/tomcat6   <-起動スクリプト
  • /usr/share/tomcat6   <-共有ライブラリー等
  • /var/lib/tomcat6     <–設定ファイルやらログファイルやらのエイリアスあります。
  • /var/lib/tomcat6/webapps/<–ここにデプロイ
  • /var/log/tomcat6        <–ログファイル

webappsにblazeDS.warを入れてみても動かない。
ログを見てみるとなにやら不可思議なメッセージ。

SEVERE: サーブレット /blazeds がload()例外を投げました
javax.servlet.UnavailableException
        at flex.messaging.MessageBrokerServlet.init(MessageBrokerServlet.java:170)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:244)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAsPrivileged(Subject.java:537)
        at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:276)
        at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:162)
        at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:115)
        at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1155)
        at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981)
        at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4045)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:4351)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
        at org.apache.catalina.core.ContainerBase.access$000(ContainerBase.java:123)
        at org.apache.catalina.core.ContainerBase$PrivilegedAddChild.run(ContainerBase.java:145)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:769)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:825)
        at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:714)
        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:490)
        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
        at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
        at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
        at org.apache.catalina.core.StandardService.start(StandardService.java:516)
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:566)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at org.apache.commons.daemon.support.DaemonLoader.start(DaemonLoader.java:177)
at java.security.AccessController.ってなんだよ

BlazeDSのTomcat入りをダウンロードしてきて起動するとちゃんと動くし…。
ライブラリが足りないわけでもなさそう。
なぜなんだろう?とりあえず開発には支障がないからTomcat入りのBlazeDSを起動スクリプトに追加しておこうかね。と思い/etc/ini.d/tomcat6をコピーしてやり過ごそうとおもっていると、起動スクリプト を見ていると

TOMCAT6_SECURITY=Yes

tomcat6_securityってなんだよ。とりあえずnoにしとけばいんじゃない?
でも直接変更かけるのはよくないので
/etc/default/tomcat6を開いて

TOMCAT6_SECURITY=Yes

に修正。
詳細は後で調べるとして…。
で、めでたくUbuntu+tomcat6(Ubuntuパッケージ) +BlazeDSが動きましたとさ。

どうやらtomcat6_securityってのはubuntuのセキュリティーポリシー何チャラを有効にしてるらしい。
yesにするとWebappsにデプロイしてもはじかれるとか。
ちゃんと設定しなきゃいかんと思うがとりあえずこれで進めてみよう。
はははは。

カテゴリー: BleazeDS, FLEX, ubuntu タグ:

UbuntuでApacheとTomcatを連携させる

Ubuntu9.4でApache2とTomcat6を連携させた時の話。

久々にTomcatを触ってみました。というか、Adobeのオーぷソース、Blazedsのプッシュ配信機能に興味が出たのでTomcat3の以来久々に設定してみました。
で、ちょっと覚書。
昔はmod_jkという超不安定なアダプターを8009ポート経由でApache側との連携をとっていたことは覚えていたのですが、今もmod_jkなのね。workers.propatiesなのねと思っていたら、もっと簡単なものが出てるというか標準であるらしいのです。

/etc/apache/mods-availableにproxy_ajp.confを作成

<IfModule mod_proxy_ajp.c>
<Location /tomcat>
ProxyPass ajp://localhost:8009/tomcat
Order allow,deny
allow from All
</Location>
<Location “/examples”>
ProxyPass ajp://localhost:8009/examples
Order allow,deny
allow from All
</Location>
<Location “/manager”>
ProxyPass ajp://localhost:8009/manager
Order allow,deny
allow from All
</Location>
<Location “/admin”>
ProxyPass ajp://localhost:8009/admin
Order allow,deny
allow from All
</Location>
<Location “/jsp-examples”>
ProxyPass ajp://localhost:8009/jsp-examples
Order allow,deny
allow from All
</Location>
<Location “/servlet-examples”>
ProxyPass ajp://localhost:8009/servlet-examples
Order allow,deny
allow from All
</Location>
<Location “/ds-console”>
ProxyPass ajp://localhost:8009/ds-console
Order allow,deny
allow from All
</Location>
<Location “/blazeds”>
ProxyPass ajp://localhost:8009/blazeds
Order allow,deny
allow from All
</Location>
<Location “/samples”>
ProxyPass ajp://localhost:8009/samples
Order allow,deny
allow from All
</Location>
</IfModule>
proxy_ajp.conf
<IfModule mod_proxy_ajp.c>
  <Location /tomcat>#<-コンテキスト名(/)
    ProxyPass ajp://localhost:8009/tomcat #<-tomcatでの実行URL
    Order allow,deny
    allow from All
  </Location>
  <Location "/examples">
    ProxyPass ajp://localhost:8009/examples
    Order allow,deny
    allow from All
  </Location>
  <Location "/manager">
    ProxyPass ajp://localhost:8009/manager
    Order allow,deny
    allow from All
  </Location>
  <Location "/admin">
    ProxyPass ajp://localhost:8009/admin
    Order allow,deny
    allow from All
  </Location>
  <Location "/jsp-examples">
    ProxyPass ajp://localhost:8009/jsp-examples
    Order allow,deny
    allow from All
  </Location>
  <Location "/servlet-examples">
    ProxyPass ajp://localhost:8009/servlet-examples
    Order allow,deny
    allow from All
  </Location>
</IfModule>

Ubuntuなので、Apacheのモジュールを有効化。

a2enmod proxy proxy-ajp

/etc/ini.d/tomcat6 restart
/etc/ini.d/apache2 restart

とすれば連携できてるはず。
うまく動いてないときはApacheのログを見るべし。

カテゴリー: 未分類 タグ:

Windowsでffmpeg。最新ビルド

開発用にffmpegをWindowsにインストールしたときの話

Windowsのバイナリファイルを配布している方がおられたのでありがたく拝借。

お気に入りの動画を携帯で見よう

あー、Windowsサーバで動くバージョンもすぐできそうだ。

カテゴリー: ffmprg タグ: ,

ubuntu 9.10 で ffmpegコンパイル

ubuntu 9.10のパッケージででインストールできるffmpegを使ってFLVをMP3にコンバートしようとしてみた記録。

「ffmpeg -i input.flv -acodec mp3 -ar 44100 -ab 192k  output.mp3」とかしてみた。
結果的にmp3のコーデックが無いと怒られました。
また、「ffmpeg -i input.flv -acodec copy output.mp3」としてmp3データをそのまま取り出ししてみると
再生時間がぜんぜん違う。1時間の動画データなのに10分程度しかデータが無い…。
なんか変だ。ubuntu 9.10のffmpegパッケージ変だ 。

よくよく調べてみると、ubuntu9.10のffmpegパッケージはライセンスの問題から、多くのコーデックが無効になっている模様。
ここが問題なのかどうかわかんないけどとりあえず。
mediubuntuの物をと思ったがubuntu8.10のころからかffmpeg自体が存在しない模様…。
うげ。ffmpegコンパイルせなあかんのや…。

で、
ffmpegとコーデックをソースからビルドするには – Ubuntu Japanese Wiki
をそのままコンパイル。

今回コンパイルに使用した各ライブラリーのバージョン

openjpeg_v1_2.tar.gz
dirac-1.0.2.tar.gz
lame-398-2.tar.gz
libraw1394-2.0.3.tar.gz
schroedinger-1.0.7.tar.gz
faad2-2.7.tar.gz
libao-0.8.8.tar.gz
libtheora-1.1.1
libdc1394-2.1.2
libtheora-1.1.1.tar.bz2
libdc1394-2.1.2.tar.gz
libvorbis-1.2.3.tar.gz
gsm-1.0.13.tar.gz
libogg-1.1.4.tar.gz
xvidcore-1.2.2.tar.gz
  • opencore-amr-0.1.2.tar.gz
  • liboil-0.3.16.tar.gz
  • opencore-amr-0.1.2.tar.gz
  • liboil-0.3.16.tar.gz
  • openjpeg_v1_2.tar.gz
  • dirac-1.0.2.tar.gz
  • lame-398-2.tar.gz
  • libraw1394-2.0.3.tar.gz
  • schroedinger-1.0.7.tar.gz
  • faad2-2.7.tar.gz
  • libao-0.8.8.tar.gz
  • libtheora-1.1.1
  • libdc1394-2.1.2
  • libtheora-1.1.1.tar.bz2
  • libdc1394-2.1.2.tar.gz
  • libvorbis-1.2.3.tar.gz
  • gsm-1.0.13.tar.gz
  • libogg-1.1.4.tar.gz
  • xvidcore-1.2.2.tar.gz
  • git clone git://git.videolan.org/x264.git
  • svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg

./configure –enable-gpl –enable-nonfree –enable-pthreads –disable-debug –disable-ffserver –disable-ffplay –enable-libdirac –enable-libschroedinger –enable-libdc1394 –enable-libfaac –enable-libfaad –enable-libgsm –enable-libmp3lame –enable-libtheora –enable-libvorbis –enable-libx264 –enable-libxvid –enable-zlib –enable-bzlib –enable-libopencore-amrnb –enable-libopencore-amrwb –enable-version3 –enable-avfilter –enable-avfilter-lavf && make && sudo make install

時間はかかりましたが確実に動くものができました。

と、言いたいところですが、flvをmp3に変換途中で
「lame: output buffer too small」とかエラーが出てコンバートできない。
で、同梱ffmpegのlameエンコードの不具合
を参考にffmpeg のconfigure前にlibavcodec/libmp3lame.cを修正。

Index: libavcodec/libmp3lame.c
===================================================================
--- libavcodec/libmp3lame.c     (リビジョン 16716)
+++ libavcodec/libmp3lame.c     (作業コピー)
@@ -34,6 +34,7 @@
     int stereo;
     uint8_t buffer[BUFFER_SIZE];
     int buffer_index;
+    int buffer_flushed;
 } Mp3AudioContext;

 static av_cold int MP3lame_encode_init(AVCodecContext *avctx)
@@ -73,6 +74,8 @@
     avctx->coded_frame= avcodec_alloc_frame();
     avctx->coded_frame->key_frame= 1;

+    s->buffer_flushed = 0;
+
     return 0;

 err_close:
@@ -166,13 +169,15 @@
                 BUFFER_SIZE - s->buffer_index
                 );
         }
-    }else{
+    }else if(data == NULL && s->buffer_flushed == 0){
         lame_result= lame_encode_flush(
                 s->gfp,
                 s->buffer + s->buffer_index,
                 BUFFER_SIZE - s->buffer_index
                 );
-    }
+        s->buffer_flushed = 1;
+    }else
+        lame_result = 0;

     if(lame_result < 0){
         if(lame_result==-1) {

コンパイル後確認OK
やっとまともに動くffmpegができたはず…。

ためしに「ffmpeg -i input.flv -acodec copy output.mp」を実行。
おー、直ってるよこれ。結局 ffmpegのソースコードに含まれてるlibmp3lameがバグもちだったことに由来した現象だったと勝手に思い込んでる。
にしても、svnに上がってるffmpegのソースコードいつ直るんだろ?

カテゴリー: ffmprg, ubuntu タグ: , ,

Flash Builder 4 beta2の使用感

2009 年 11 月 7 日 zet-engine コメント 1 件

Windows7でFlash Builder 4 beta2を使用したときの話。

10/22 早速届いたWindows 7 64Bit版をインストールしてみた。
ついでにFlex Builder 3をFlash Builder 4 beta2にアップグレード。
既存のFlex3プロジェクトを読み込んで編集中にそれは起こった。

エディター画面で異常なほど待たされる。
変数名を書き換えて1分以上待たされる。
殺意がわきそうなぐらい待たされる。
OSとの相性? Flash Builder 4の不具合?
Exlipseの割り当てメモリーを変えてみても変化なし。
あーーーー締め切りがーーーー。

で、風呂に入って冷静さを取り戻す。
半フリーズ状態。待ってる間に耳をすますとNAS(ネットワークストレージ)ががりがり言ってる。
ためしにワークスペースごとローカルハードディスクコピー。起動。
直った。

FlexBuilderがコードサジェストかなんかをしてくれるときにハードディスク上のプロジェクトファイルにアクセスしてる模様。
あー、そーですよウチのNASは激遅ですよ。
なんかむかついたが、なんかすっきりした。
ちなみにWindows XP上でも同じ現象が確認できたので、Flash Builder 4 beta2はネットワーク越しに
使わないことに決定しました。

製品版でもたぶん変わんないだろうな~。

にしてもいつ出るんだよ。Flex4、Adobe CS5とFMSの最新版。
そろそろ、MacにWeb関連の開発環境移行しようかな~

カテゴリー: FLEX タグ: ,