ふたつの川うるおう日記
2006-06-03 (Sat)
_ [Admin][Server][Seasar] メモリ馬鹿食い犯
Apacheとかいろいろ調整していったところ、どうやら残る犯人はrsyncの模様・・・(;´Д`)。
1ファイル100byte消費するって言ってるけど、実際の動作見るとそれ以上確保してるような。。うーん、どうしよ。これは止められないし。
とりあえず、分割して実行するようにするかな。
[追記]: 分割するにもプロジェクト用ディレクトリとか数が増えるため明示的に書いて分割することはできないので、指定したディレクトリ以下をディレクトリごとに実行するように直しました。
- /home/groups以下sandboxを除外して実行
- /home/groups/a をrsync
- /home/groups/b をrsync
- /home/groups/sandbox以下実行
- /home/groups/sandbox/a をrsync
- /home/groups/sandbox/b をrsync
- /home/groups/sandbox/c をrsync
って感じで。
2006-06-04 (Sun)
_ [Admin][Server][Seasar] 安定した線
MRTGでfree + buffers + cachedの値が安定した線になったようです。Apacheとかいじったのも関係してると思いますが、結局rsyncが一番の原因だったのかもしれません。次の土曜までに何も起きなければそれで決まりで。
そう考えると旧サーバが落ちやすかったのは、帯域が細くrsyncに時間が掛かる -> メモリ占有してる時間が長時間続く -> 別のプロセスがメモリ確保しようとして失敗って流れだったと考えられるので納得します。
その旧サーバは今や安定しまくりでほぼ真一文字の線をMRTGに描いてるので、アクセスの多いサーバとないサーバの差が歴然です。。
_ [Seasar] S2Struts HotDeployでActionConfigのパス修正への道 (1)
忘れないように(;´ー`)。
HotDeployの時はZeroConfigActionRuleImplからDeployZeroConfigActionRuleに変わって、ActionConfig登録はさらにActionConfigCreatorImplでやるように変わってて、そのネーミングルールはActionPathNamingRuleにあると。ってことは、パスを変えるにはActionPathNamingRuleの代替を用意すれば良さそう。
あと、AbstractNamingRuleがS2ContainerのDefaultConventionNamingと_の数で違うルールになってるっと。
そういえば、HotDeployで動かしたまま修正できるので、動かしながらActionConfig足したりできたら素敵かも。*.doにアクセスして存在しなかったらルールに従ってチェックして、あったらActionConfig追加みたいな。動的追加はTuigwaaがやってるからきっとできるんだろうね。でも、404のたびにそれやったら無駄だらけか・・・。
2006-06-05 (Mon)
_ [Server] LDAPに対応したフォーラムソフト
調べてみた。
- phpBB + LDAP Auth MOD
- ソースがメンテされてない、入れ方が酷い
- Jive
- 商用。Open Source Licensingもある。
- Simple Machines Forum + LDAP Authentication for SMF
サポートして無かったやつ。
- vBulletin
- punBB
- Phorum
- vB Drupal
- vuBB
- UseBB
調べたらお腹いっぱいになって、まぁいいかなみたいな。。
_ [Seasar] ПО
Seasarについて海外を調べてみるみたいな。
- Аспектно-Ориентированная Разработка ПО на PHP
- 読めないんだけど、Seasar.PHPがほんのちょびっと紹介されてる。
- What is happening with Spring in Japan?
- Rod Johnsonさんがコメントしてます。
- Aspect-Oriented Programming i PHP
- 他山之石可以攻玉
- 中国語(?)に翻訳してくれてる??
そんな感じでした。
_ [Seasar] moduleConfig.findActionConfig(PATH)がループ
ActionPathNamingRuleのdefineClassでこれやると無限ループする。なんでだ・・・。
_ [Seasar] S2Struts HotDeployでActionConfigのパス修正への道 (2)
そんなわけで出来たっぽい。ちょい実際のプロジェクトでテストしてからアップしようかな。
[追記] 動かない。。。_| ̄|○。というか、たぶんHotDeployを使った場合の問題だと思う。エラー見ても、良く判らなかったり。。「loader constraints violated when linking HogeDto class」だとか「logicが設定できません」とか。。あと、S2StrutsのPOJOアクションのインタフェースの返り値にSUCCESSが必須なのかな。違うのにしてたら動かなかった。
s2container.diconってこんな感じじゃないのかなー。AutoRegisterはCreatorが兼用してくれると思うので、addCustomizerでinterceptor設定。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR2.1//DTD S2Container//EN"
"http://www.seasar.org/dtd/components21.dtd">
<components>
<include path="org/seasar/server/members/dicon/members.dicon"/>
<component class="org.seasar.framework.container.hotdeploy.OndemandBehavior">
<property name="rootPackageName">"org.seasar.server.members"</property>
<!--
<initMethod name="addCreator">
<arg>
<component class="org.seasar.framework.container.hotdeploy.creator.DaoCreator">
<initMethod name="addCustomizer" >
<arg>
<component class="org.seasar.framework.container.autoregister.AspectCustomizer">
<property name="interceptor">daoInterceptorChain</property>
</component>
</arg>
</initMethod>
</component>
</arg>
</initMethod>
<initMethod name="addCreator">
<arg>
<component class="org.seasar.framework.container.hotdeploy.creator.DtoCreator"/>
</arg>
</initMethod>
-->
<initMethod name="addCreator">
<arg>
<component class="org.seasar.framework.container.hotdeploy.creator.LogicCreator">
<initMethod name="addCustomizer" >
<arg>
<component class="org.seasar.framework.container.autoregister.AspectCustomizer">
<property name="interceptor">logicInterceptorChain</property>
</component>
</arg>
</initMethod>
</component>
</arg>
</initMethod>
<initMethod name="addCreator">
<arg>
<component class="org.seasar.framework.container.hotdeploy.creator.InterfaceCentricSinglePackageCreator">
<property name="middlePackageName">"directorydao"</property>
<property name="nameSuffix">"Dao"</property>
<property name="instanceDef">@org.seasar.framework.container.deployer.InstanceDefFactory@REQUEST</property>
<initMethod name="addCustomizer" >
<arg>
<component class="org.seasar.framework.container.autoregister.AspectCustomizer">
<property name="interceptor">directoryDaoInterceptorChain</property>
</component>
</arg>
</initMethod>
</component>
</arg>
</initMethod>
<initMethod name="addCreator">
<arg>
<component class="org.seasar.framework.container.hotdeploy.creator.InterfaceCentricSinglePackageCreator">
<property name="middlePackageName">"web"</property>
<property name="nameSuffix">"Action"</property>
<property name="instanceDef">@org.seasar.framework.container.deployer.InstanceDefFactory@REQUEST</property>
</component>
</arg>
</initMethod>
<initMethod name="addCreator">
<arg>
<component class="org.seasar.framework.container.hotdeploy.creator.InterfaceCentricSinglePackageCreator">
<property name="middlePackageName">"web"</property>
<property name="nameSuffix">"Service"</property>
<property name="instanceDef">@org.seasar.framework.container.deployer.InstanceDefFactory@REQUEST</property>
</component>
</arg>
</initMethod>
</component>
</components>
DB使ったS2StrutsExample V1.3.0が出るまで待つか(;´ー`)。
[追記]: 「loader constraints violated when linking HogeDto class」ってのは、DtoCreatorを外せば良いのかも。Dto(Form)とActionは、S2StrutsのPlugin(struts-config.xmlにて)で設定しててそこからHotDeployに登録してるからいらないってことかな。でも、Actionのエラーは取れず。extends AbstractHogeActionとかしてて、そいつが原因っぽいんだけど、extendsはだめなのかな??LogicのsetterはこのAbstractHogeActionにある(Serviceは使ってない)。起動時にこのクラスのAutoRegisterでエラーになってるし。。パッケージを違う場所にするとエラーにならないけど、このActionのエラー発生。
2006-06-06 (Tue)
_ [Seasar] S2Struts HotDeployでActionConfigのパス修正への道 (3)
S2Strutsというより、S2Containerの話題だけど、S2Container 2.4.0-beta2でActionでのServiceのsetXXXでちょっと問題。
- org.example.web.aaa.HogeAction
- org.example.web.aaa.HogeService
- org.example.web.aaa.impl.HogeActionImpl
- org.example.web.aaa.impl.HogeServiceImpl
ってある時、HogeAction#setHogeService(HogeServuce hogeService)が動かなくて、HogeAction#setAaa_HogeService(HogeServuce hogeService)なら動く模様。HotDeployのCreatorで登録した場合、型で判断してsetするんじゃなくて、命名規則でsetするってことかな?今までと同じようにHogeAction#setHogeService(HogeServuce hogeService)でも動いて欲しいな。
_ [雑記] はてなアンテナ八分
Apacheのアクセスログ見たら、はてなアンテナのロボットが01/Jun/2006:13:11:54から見に来てくれていません・・・。ショボン。。http://vision.featia.net/diary/index.rdfで登録して、表示をhttp://vision.featia.net/diary/にすれば良いみたいだけど、アンテナに登録してる人が変えてくれなければ意味ないし(泣。
2006-06-07 (Wed)
_ [Seasar] S2Struts HotDeployでActionConfigのパス修正への道 (4)
前回の「HogeAction#setHogeService(HogeServuce hogeService)が動かなくて、HogeAction#setAaa_HogeService(HogeServuce hogeService)なら動く」ってのは、納得しました。HotDeployする時は、先にクラスを登録するわけじゃなく、後からコンポーネント名で探しに行くのでこうなるのか。HotDeployの仕組みの理解が足りない。
というわけで、クラスを探す機能を作れば上手く行くのかな。クラスを探す方法を探そう。
[追記] そんなわけでこんな感じでできた
- QualifiedInterfaceCentricSinglePackageCreator.java 抜粋
- Filterは名前そのままの機能なので省略
protected Class getTargetClass(String componentName) {
String className = composeClassName(componentName);
try {
Class clazz = getTargetClass(ClassUtil.forName(className));
return clazz;
} catch (ClassNotFoundRuntimeException ce) {
// 見つからない場合、探します。
String shortClassName = StringUtil.capitalize(componentName);
FileFilter filter = new ShortClassNameFileFilter(shortClassName);
StringBuffer sb = new StringBuffer(100);
super.concatName(sb, super.getRootPackageName());
super.concatName(sb, super.getMiddlePackageName());
String packageName = sb.toString().replaceAll("\\.", "/");
ClassLoader loader = Thread.currentThread().getContextClassLoader();
String classPath = "";
try {
Enumeration enumeration = loader.getResources(packageName);
for (; enumeration != null && enumeration.hasMoreElements();) {
URL classRootUrl = (URL)enumeration.nextElement();
File root = new File(classRootUrl.getPath());
classPath = findClassPath(root, filter);
if (classPath != null) {
classPath = classPath.replace(root.getPath(), "");
classPath = classPath.replace(".class", "");
classPath = classPath.replace(File.separator, ".");
className = sb.toString() + classPath;
return getTargetClass(ClassUtil.forName(className));
}
}
} catch (IOException ie) {
return null;
}
}
return null;
}
private String findClassPath(File root, FileFilter filter)
throws IOException {
File[] files = root.listFiles(filter);
if (files.length > 0) {
return files[0].getPath();
} else {
files = root.listFiles(DirectoryFilter.INSTANCE);
for (int i = 0; i < files.length; i++) {
String classPath = findClassPath(files[i], filter);
if (classPath != null) {
return classPath;
}
}
}
return null;
}
HogeAction#setHogeService(HogeServuce hogeService)で動きました。
_ [Seasar] S2Struts HotDeployでActionConfigのパス修正への道 (5)
次、extends AbstractHogeLogicしてる時の問題。これが解ければ動く気がする。
java.lang.IllegalStateException: interface org.seasar.server.members.logic.AbstractMembersLogic at org.seasar.framework.container.hotdeploy.OndemandBehavior.registerMap(OndemandBehavior.java:190) at org.seasar.framework.container.hotdeploy.OndemandBehavior.registerByClass(OndemandBehavior.java:177) at org.seasar.framework.container.hotdeploy.OndemandBehavior.register(OndemandBehavior.java:169) at org.seasar.framework.container.hotdeploy.creator.AbstractOndemandCreator.loadComponentDef(AbstractOndemandCreator.java:111) at org.seasar.framework.container.hotdeploy.OndemandBehavior.loadComponentDef(OndemandBehavior.java:137) at org.seasar.framework.container.hotdeploy.OndemandBehavior.definedClass(OndemandBehavior.java:102) at org.seasar.framework.container.hotdeploy.HotdeployClassLoader.definedClass(HotdeployClassLoader.java:93) at org.seasar.framework.container.hotdeploy.HotdeployClassLoader.loadClass(HotdeployClassLoader.java:68) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at org.seasar.framework.util.ClassUtil.forName(ClassUtil.java:71) ...
と、思ったら違うのもあった。
java.lang.LinkageError: loader constraints violated when linking org/seasar/server/members/dto/PosixAccountDto class at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Unknown Source) at java.lang.Class.getConstructors(Unknown Source) at org.seasar.framework.container.assembler.AutoConstructorAssembler.getSuitableConstructor(AutoConstructorAssembler.java:50) at org.seasar.framework.container.assembler.AutoConstructorAssembler.doAssemble(AutoConstructorAssembler.java:39) at org.seasar.framework.container.assembler.AbstractConstructorAssembler.assemble(AbstractConstructorAssembler.java:50) at org.seasar.framework.container.deployer.PrototypeComponentDeployer.deploy(PrototypeComponentDeployer.java:37) at org.seasar.framework.container.impl.ComponentDefImpl.getComponent(ComponentDefImpl.java:99) at org.seasar.framework.container.impl.S2ContainerImpl.getComponent(S2ContainerImpl.java:107) at org.seasar.framework.container.assembler.AbstractBindingTypeDef.bindAuto(AbstractBindingTypeDef.java:124) at org.seasar.framework.container.assembler.BindingTypeShouldDef.doBind(BindingTypeShouldDef.java:51) at org.seasar.framework.container.assembler.AbstractBindingTypeDef.bind(AbstractBindingTypeDef.java:69) at org.seasar.framework.container.assembler.AutoPropertyAssembler.assemble(AutoPropertyAssembler.java:60) at org.seasar.framework.container.deployer.RequestComponentDeployer.deploy(RequestComponentDeployer.java:68) at org.seasar.framework.container.impl.ComponentDefImpl.getComponent(ComponentDefImpl.java:99) at org.seasar.framework.container.impl.S2ContainerImpl.getComponent(S2ContainerImpl.java:107) at org.seasar.framework.container.assembler.AbstractBindingTypeDef.bindAuto(AbstractBindingTypeDef.java:124) at org.seasar.framework.container.assembler.BindingTypeShouldDef.doBind(BindingTypeShouldDef.java:51) at org.seasar.framework.container.assembler.AbstractBindingTypeDef.bind(AbstractBindingTypeDef.java:69) at org.seasar.framework.container.assembler.AutoPropertyAssembler.assemble(AutoPropertyAssembler.java:60) at org.seasar.framework.container.deployer.RequestComponentDeployer.deploy(RequestComponentDeployer.java:68) at org.seasar.framework.container.impl.ComponentDefImpl.getComponent(ComponentDefImpl.java:99) at org.seasar.struts.pojo.MethodBinding.invoke(MethodBinding.java:62) at org.seasar.struts.pojo.MethodBinding.invoke(MethodBinding.java:54) ...
2006-06-09 (Fri)
_ [Seasar] S2Struts HotDeployでActionConfigのパス修正への道 (停止)
わーい、なんかリポジトリにClassFinderってユーティリティと、OndemandFindActionConfigInterceptor、OndemandFindFormBeanConfigInterceptorという、いかにもクラス探しちゃうぞーって感じのクラスが追加されとりますヽ(´ー`)ノ。ってなわけで、待ってればきっと僕なんかがやるよりもっと良い感じにしてくれる気がしますので一旦停止ー(もしかしたら全然僕の想像と違う用途なのかもしれないけど・・・)。ところでkanagashiさんのブログはどこなんだろぅ。ついでにS2Strutsがどこで開発議論されてるかも知らなかったり。。。
実のところ大学でいろいろやっててどっちにしろ一昨日から何もしてなかったので嬉しい限り。大学の用事片付いたら、DirectoryとAnA本格的にやります。ロールです。
2006-06-11 (Sun)
_ [Java] Maven2 で除外設定?
Maven2入門中なのですが、以下の設定を追加すると commons-lang がMaven2 Dependenciesから消えてしまう。。
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>tomcat</groupId>
<artifactId>catalina</artifactId>
<version>5.0.28</version>
<scope>test</scope>
</dependency>
exclusionsとやらを書いても消えるー。
<exclusions>
<exclusion>
<artifactId>commons-lang</artifactId>
<groupId>commons-lang</groupId>
</exclusion>
</exclusions>
_ [Java][Seasar] Maven2 と Cactus(+Jetty) 良い!
S2AnAのソースをいじろうと Maven2 と Cactus の使い方を調べました。Maven 2.x Plug-in for Eclipse良いーー!!Cactus(+Jetty)仕組み面白いーー!!
実はずっと手動でS2AnA用のlibフォルダ作って、必要なライブラリをいちいち持ってきてました_| ̄|○。これからは Maven2 を積極的に使おう。Maven2のTipsを集めるWiki - CookBookが素晴らしいです。リポジトリ置場がプロファイル内に入るのが嫌だったので下記の設定をしました。
- C:\Documents and Settings\%USERNAME%\.m2\settings.xml
- 最初ないので自分で作る
<?xml version="1.0" encoding="UTF-8"?> <settings> <localRepository>E:\Java\Resource\Maven\repository</localRepository> </settings>
_ [雑記] URL変更
http://jfut.featia.net/ に変えました。古いのでも見れます。
<VirtualHost *:80>
ServerName vision.featia.net
<IfModule rewrite_module>
RewriteEngine on
RewriteRule ^(.*) http://jfut.featia.net$1 [R]
</IfModule>
</VirtualHost>
2006-06-13 (Tue)
_ [Seasar][Java] Maven2 with Ant Tasksでリリースファイルまで作成 + libフォルダ不要
Maven 2.x Plug-in for Eclipseでリポジトリにjarファイルがあるのにいちいちリリース用にlibフォルダにjar置くのがどうなのかなって思ったのと、ant distが面倒なのでmvn clean deployで全部やりたくてがちゃがちゃいじってたらデキターーー!!仕組みはmavenからantlib使ってbuild.xmlを呼び出してます。こうするといろいろうれしいことが。
- mvn clean deploy だけでリリース用zipファイル作成までOK
- build.xmlでバージョン定義不要
- pom.xmlから引き継ぎます
- libフォルダ不要
- リポジトリからpom.xmlに書いてあるバージョンのjarファイルを自動でコピー
- 特定のMavenのscopeのjarすべて持ってくる設定可能
- 特定のjarだけ持ってくる設定可能
- build.xmlに正規表現で書くので1回書けばバージョン変わってもメンテ不要
- S2Directoryではcommons-codecだけパッケージングすることにしました
作ったやつは、S2Directoryのリポジトリにコミットしてありますので、興味がある方はご参考までにどうぞ。ただ、S2Directoryで試しに実行しても、まだApacheDSをテストケースから起動出来てないのでまず確実にTest Faildしちゃいます・・・。別途ApacheDSを起動して初期ツリーを作っておけばちゃんとSuccessします(僕の環境)。。。ApacheDSがRCになってから起動する方法がえらい面倒になったみたいでまだ解読できていません(汗。
あと、注意点が一つあって、1つのプロジェクトに複数モジュールがある場合、examplesなどのjarファイルをパッケージングする必要のないモジュールを除いて、一番最後に実行されるモジュールのpom.xmlからbuild.xmlを呼び出さないといけません。これは、先にパッケージングしたいモジュールがMavenでコンパイルされてjarファイルが作成されていないと、リリース用zipファイルに含めることが出来ないからです。親玉のpom.xmlに特定のphaseだけ一番最後に実行するといったオプションが無さそうだったのでこうなっちゃいました。
というわけで、Maven、Ant(実はこっちも)初心者だったのが、だいぶ詳しくなりました。これもS2AnA、S2Dao、S2Containerなどに良く考えられた設定が既にあったお陰ですヽ(´ー`)ノ。あと、maven.runtime.classpathを渡す方法は、gokingの日記さんで知りました。
以下、pom.xmlとbuild.xmlから関連するところの抜粋です。
- s2-directory/pom.xml
- 呼び出し元pom.xml
- モジュールが1個しかない場合は、/pom.xmlにantのdirオプション無くして書けばOK
... 省略 ...
<plugin>
<inherited>false</inherited>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<ant target="dist" dir="../" antfile="build.xml">
<property refid="maven.runtime.classpath" name="mvn.dependency.classpath"></property>
</ant>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
... 省略 ...
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-artifact-ant</artifactId>
<version>2.0.4</version>
<scope>runtime</scope>
</dependency>
... 省略 ...
- build.xml
<project name="s2directory" default="dist" basedir="." xmlns:artifact="urn:maven-artifact-ant">
<!-- Please run "mvn clean deploy". -->
<target name="initTaskDefs">
<typedef resource="org/apache/maven/artifact/ant/antlib.xml" uri="urn:maven-artifact-ant">
<classpath>
<pathelement path="${mvn.dependency.classpath}"/>
</classpath>
</typedef>
<artifact:pom file="pom.xml" id="maven.project"/>
<property name="ver" value="${maven.project.version}"/>
<artifact:dependencies filesetId="dependency.fileset" verbose="true" useScope="compile">
<pom refid="maven.project"/>
</artifact:dependencies>
<property name="dependency.commons-codec" value="commons-codec*.jar"/>
</target>
<target name="dist" depends="initTaskDefs">
<mkdir dir="target"/>
<copy todir="s2-directory/target/lib" flatten="true">
<fileset refid="dependency.fileset"/>
</copy>
<zip zipfile="target/s2-directory-${ver}.zip">
<zipfileset prefix="s2directory" dir=".">
<exclude name="**/target/**"/>
<exclude name="*.log"/>
</zipfileset>
<zipfileset prefix="s2directory/lib" dir="s2-directory/target">
<include name="s2-directory-${ver}.jar"/>
<include name="s2-directory-${ver}-sources.jar"/>
</zipfileset>
<zipfileset prefix="s2directory/lib" dir="s2-directory/target/lib">
<include name="${dependency.commons-codec}" />
</zipfileset>
<zipfileset prefix="s2directory/resources" dir="s2-directory/src/test/resources">
<include name="directory.dicon"/>
<include name="directorydao.dicon"/>
<include name="log4j.properties"/>
</zipfileset>
</zip>
</target>
</project>
_ [Seasar][Java] S2Directory用Mavenリポジトリ
というわけで、S2DirectoryをSeasarのMavenリポジトリにあげました。と言ってもまだSNAPSHOTしかありません。ApacheDSのテスト用起動コードを書いたら0.3として一度リリースします。当初の目標と違ってますが気にしない気にしない・・・。
_ [大学] 図書委員(選書員)
選書員になりました。購入して欲しい本を選ぶらしいです。ここ数年より前はまったく本を読む習慣が無かった僕が選んで良いいのかな。いっぱい本を読んでる人と話すとその読書量の浅はかさが露呈します(汗。。。
ちなみに購入して欲しい本を選ぶと言っても、どうやら学科内の要望を取りまとめていついつまでに出して欲しいといった感じみたいです。というわけで、読書好きな方、会った時にでも良い本・欲しい本教えてくださいな。
そうそう、生協の書籍コーナーの読者アンケートにうちの学科で唯一書きまくってる人が1人いるんだけど、その人誰か紹介してくれませんかー?
そんなことより明日のゼミの準備してないーー。
2006-06-15 (Thu)
_ [Seasar][Admin][Server] リポジトリ破損
svn: Invalid diff stream: insn 5 cannot be decoded
だそうです。検索してもこのエラーに対する直し方はないようなので、安全にバックアップからリストアしました。ロックで動かなくなる現象は見たことありましたが、この現象は初めてです。調べても特段原因見つからない。。
うーん、再発。最後にアプリ入れ替えたのは2006年06月03日で、それ以降他プロジェクトでは問題起きてないみたいだし何だろ。。
svn: Unexpected end of svndiff input
_ [Client] サッカー仕様Firefox拡張
サッカー仕様Firefox拡張だそうです。Firefox拡張便利なのいっぱいあって使いたいんだけど、僕のMoon君が対応していない_| ̄|○。
2006-06-16 (Fri)
_ [雑記] いろいろ
減退中...
[追記]: メール書いてたらちょっとやる気になったー、というかやらないとまずい(;´ー`)。
[追記]: 一晩経って見直したらなんてながったらしいメールなんだ・・・。脳内に要約Extensionsが欲しぃ。
_ [Seasar][Java] アーキテクチャの提案
ひがさんによるEJB3時代のアーキテクチャパターンシリーズから始まって、まさたかさんのDTOに関して、羽生さんの組み合わせとGoyaGen、太一さんのアーキテクチャなどなど、読んでてすごい面白い。
JSF以外のStrutsやWebWork(Strutsと統合されちゃうかもしれないけど)や他のフレームワークも上手いこと組み合わせて自動生成できたら素敵だなぁ。
2006-06-17 (Sat)
_ [Work] 平成18年度税改正による損金算入について
去年の年末から一部話題になってた平成18年度税改正がいよいよ身近なとこで事業年度切り替えにより適用です(施行は4月1日から既にされてる)。同族会社のみ役員の報酬が損金算入されなくなるのはひどい差別だなっと思いつつ成されるがままなんですが、たぶん皆さん対策をされてるんでしょうね。対策しないで条件が当てはまる場合、最低条件のとこでも最低50万円以上税が来年から加算されそうで、報酬があればあるほどもの凄い喰らいます。前年度と同じ決算内容だったとしてもいきなし50万以上も払わなければならない税が増えるんだからビックリです。ちなみに一緒に施行された役員賞与の一部損金算入=役員にもボーナス認めちゃうよ制度は、税理士さんに前回会った時に聞いてみたところ、基本的に税制において新しいことには飛び付かないのが得策とのこと。よっぽど過去苦い経験でもあったのだあろうか(;´ー`)。僕的にはアメとムチの政策だと思ったのですが、どうやらそうでもなさそうな予感。お国は怖いですね。
ポジティブに取るなら、非同族会社になることで会社の健全性・強固さを高めなさいっていうことでしょうか。
でも、ネガティブに取ると、1人で会社なんか作るな、複数人で作れ、国としては1人で頑張る会社なんか支援したくないってことでしょうか。でも、ベンチャーと呼ばれる会社って1人のとこ結構多いんじゃないのかな?(゜ー゜)アヒャ。
たぶん思惑としては昔からある身近な商店街のお店とか小さな工場とか、今更非同族会社にしたくても、し難くそこそこお金のある取り易い会社から税金集めようってことなのかなぁ。
2006-06-20 (Tue)
_ [大学] 後輩にプレゼンして僕自身が自己啓発
久々にチーム内の勉強会でプレゼンしました。昨日のAshikunep運営委員会でIkushipeやばい、超良い、これ以上シンプルで早いのないっと脳内に早く触りたい記憶が残りながらプレゼン資料を作ったので、内容はJavaとは関係なくサーバ関係のものの、もの凄いメッセージ性が強いものになりました。結局気付いたらスライド80枚(でか文字いっぱい)とWikiに昔まとめたサーバ構築の実践的な話で、1時間30分話してました。聞いていただいた皆さんお疲れ様でしたー。不思議なもので、自分でやってて自己啓発されてすごい自分自身もやる気になりました。明日のゼミの準備もこれから頑張ります。
しかし、肝心のIkushipeはまだチェックアウトしてちょこっと眺めただけです。とりあえず手動コンパイラマシンになってマスタして理解します!
2006-06-23 (Fri)
_ [Seasar][Java] Cactus + Jetty以外
CactusでJetty以外のTomcatとかJBossでテストしようと思ったら、別途Tomcatを手動起動するか、Antと組み合わせて実行しないとダメなのかな・・・。org.apache.cactus.extension.jetty.JettyTestSetupの別コンテナ版が欲しいー。
_ [Server][Admin] Active DirectoryとOpenLDAPとSamba
Active Directoryの認証情報をOpenLDAPで持って、それ以外のActive Directoryの機能はフルで使いたい。というわがままなことを考えています。
Active DirectoryはCAL(Client Access License)がデバイス数かユーザ数必要なので、ライセンス費用がかなりの額になります。そこでSambaとOpenLDAPを使うことでCALの費用が無くなります。さらにWindows、UNIXクライアントどちらでも同じ認証情報が使え、認証情報が管理される場所もOpenLDAP上の1箇所になります。
ということで、4年ほどこれをいろいろなとこで作って見てきましたが、今Active Directoryに依存したソフトウェア、SoftGridが使いたくて壁にぶつかっています。CALの費用がかかるのは別に良い(ほんと?)として、Windows、UNIXクライアントどちらでも同じ認証情報が使いたく、さらにOpenLDAPに追加しているいろいろなスキーマも使いたいのです。ファイルサーバはwinbindでの連携か、認証情報の整合性があるならばOpenLDAPとLDAP連携したSambaで。
とりあえず出来そうなのは、Microsoft Identity Integration Server 2003 Enterprise Editionを使って、OpenLDAP上の認証情報を連携させてしまう方法。ただ、この製品は、Windows Server 2003 Enterprise EditionとSQL Server 2000, Enterprise Editionが必要なため、えっと、君たち単体でも高いのに合計いくら掛かちゃうの?って感じです。たぶんこの環境を実現できるリッチなとこにはそう出会えないでしょう。
てなわけで、もっと気軽にCALの費用だけでできる方法はないものか模索中です。Samba 4になったらActive Directoryのスナップインが上手いこと動いちゃう!なんてことになったら良いなと思いつつ、バイナリが実行できないからダメじゃんっと、、いや、そこでWineで動けば。。。
2006-06-27 (Tue)
_ [雑記] VAIO type U ゼロスピンドルモデル
出たー、けど16GBでカスタムすると251,100円もするーー(SonyStyle)。32GBでこの値段だったら嬉しかったんだけどなぁ。うーん、どうしよ。
2006-06-29 (Thu)
_ [雑記] 帰宅ー
今日はイベントがいろいろありました。今週は終電近くが多く、いろいろ滞っているので早めに帰ってきました。そんなわけで、今日の出来事を。いつもは帰ってきて風呂入ると1時30分ぐらいで眠くなり寝てしまい起きるともう書く気合が無くなっているという・・・。
_ [Project] オブジェクト倶楽部2006夏イベント
t-wadaさんの「デベロッパーテスティング - ソフトウェア開発者の基礎体力」の講演を聴いてきました。おぉ良いっと思ったテストの一つに、外部ライブラリの使い方を学ぶためのテストを書くというのがありました。初めて使う外部ライブラリの場合、いきなし目的に応じたことをそのライブラリの使い方を学びながら書いてしまいがちですが、それだと焦点がぼやけてしまって考えることが散乱してしまう欠点があったり、後からその外部ライブラリの使い方を忘れてしまった時にそのテストを見直しても主目的が違うとこにあるため判り難かったりしたりするので、まずは外部ライブラリの使い方を記述したテストケースを作ってみると良いという内容です。こうしておくと、後からその外部ライブラリの使い方を忘れてしまった時に簡単に使い方をおさらいできますし、外部ライブラリのバージョンアップをする時にまずは以前と同じ使い方で問題ないか確認もできます。さらにこれは要は学習の過程を残すものであって、これがあると複数人でプロジェクトを組んだ時に、他の人も簡単にその外部ライブラリの使い方を理解できる手助けになるというわけです。
僕の場合一人で書くことが多いですが、指摘されたように後からその外部ライブラリの使い方を忘れてしまうことが結構あるので、これはなるほどなるほどーっと勉強になりました。というわけで、今度から新しいライブラリを使う時はやってみようと思います。
あと、ペアプログラミングする際、横で小言をいっぱい言ってくれるそうです。嫌われ役にわざとなると笑いながら話されていましたが、それは非常に羨ましい環境です。横で小言をいっぱい言ってくれるということは、そんだけより良いスタイルや良いやり方を早く身に付けられたり、そのコードが自分以外の人に認められながら書けるわけで自信にも繋がります。一人で書いていると、これってほんとに良いやり方なのか?もっと手法があるんじゃないか?っとあれこれ考えちゃうのです。もちろんいつかは一人で書くようになるわけですが、少なくとも導入時にこういった環境で学習できると飛躍的に成長できそうですし、実際そうみたいです。
_ [雑記] 旅立ち
本当は午後のセッションも予約してあったのですが、ちょっと都合が出来たので早々に旅立ちました。旅立ち先は、いつもいろいろお世話になっているmasataka_kさんの会社。用事を済ませ、次のイベントまでお邪魔してました。突然お伺いしたのにありがとうございましたm(_ _)m。
_ [Java][Project] Ikushipeでテスト
次のイベントまでの間はIkushipeで遊んでました。1箇所バグっぽいところがあったので、午前中に聞いてきたテスト駆動開発の真似事をして特定してみました。早速お伝えして修正していただき、Ikushipeについてのお話を伺ったりしてました。特にループの処理は、嬉しい挙動してくれるので良いです。いろいろ試しながらまたバグと思われる箇所があったらお伝えしたいと思います。
_ [Project] Michael TiemannとOSS勉強会
そして19:00からは、Michael Timann氏の講演を聴いてきました。予備知識ほとんどなしで行ったのですが、Michael Timann氏は、Fedora Coreプロジェクト、OSI、GNU C++ Compiter、Cygwinなど、数多くのオープンソースプロジェクトに関わってきた方でした。日頃お世話になっているものばかりです。
で、お話を聴いていて思ったのは、Seasar Foundationもそうですが、こういったOSS組織のボードや長、講演者などは、単にコードを書いているだけじゃなく、社会的な何らかのテーマを改善することを本当によく考えているんだなぁっと思いました。僕なんかだとコードに向き合うほど、単にコードだけを見たり、ちょっとしたコードを書いていくだけで満足していってしまっているので浅はかなもんです。何かを実現したいものを作るだけじゃなく、そのものによって改善される社会的なテーマをきちんと自覚しないと、集まってくる人がそのテーマに気付いてる気付いていないに関わらず多くの人は集まらないのかもしれません。また、同様に上司や社長さんもそういう人でなければ、部下は集まらないんでしょうね。
2006-06-30 (Fri)
_ [Seasar][Admin] 障害発生中
現在サーバに障害が発生しているようです。ご迷惑お掛けいたします。
[21:36] DNSいじって違うサーバでプロジェクトサイト見れるようにしました。Read Onlyです。DNSがリフレッシュされるのに最大15分掛かるので、見れない方はしばらくすれば見れます。ローカルキャッシュされてしまっている場合は、Windows XPであれば、「ローカル エリア接続」を右クリック、「修復」でクリアされます。
[22:07] 残りのサービスはサーバを再起動しないとダメそうなため、自然に復活しない場合、復旧までしばらく時間が掛かかります(運が悪いことに明日明後日は土日、、)。ごめんなさい。
[22:12] SVNリポジトリも復旧しようと思えばできますが、約50分間分がなく、整合性がくずれると面倒なのでとりあえず復旧させません。手元にチェックアウトしたものがある方は、そのまま編集などしても、復旧後問題なくコミットできます。
[22:20] メールサーバはセカンダリがいるので、MLなどに今メール投げると後でどっと来ます。




Before...
_ EnversRersise [free insest porn latina boobs]
_ dearsoosmow [steven seagal mad tv free asian interracial sex movies]
_ Affedyded [holistic animal care classesgrace abbott gm certifiedgamma..]
_ aceplayaburry [imajenes divertidas stephan goldfarb]
_ Oscilirer [ab ovo horeca artikelen]
_ John Williams [Pretty nice site, wants to see much more on it! :)]
_ autocarbmw [She spent hours on 2007 toyota camry gauge of her feelings..]
_ djjkas97sdwq7 [lfpu2n gsehwbsk193sdafsjk]
_ autocarcvr [Brides always prepare the jeep grand cherokee parts joy-an..]
_ racelt [reltrlaolo]