tag:blogger.com,1999:blog-110534842024-03-19T12:44:17.200+09:00gonbee:プログラムやフォントなど個人的に利用しているリンク集
DTP, ソフト, PCなどGonbeehttp://www.blogger.com/profile/01995638424260523733noreply@blogger.comBlogger69125tag:blogger.com,1999:blog-11053484.post-20218814351759694242017-10-10T10:09:00.001+09:002017-10-13T21:50:50.535+09:00メモ: OpenJDK 関連 - 2017/10/10現在<h3>
OpenJDK</h3>
<a href="http://openjdk.java.net/">http://openjdk.java.net/</a><br />
<a href="https://www.blogger.com/goog_1678214286"><br /></a>
<br />
<h3>
OpenJ9</h3>
<a href="https://www.eclipse.org/openj9/index.html">https://www.eclipse.org/openj9/index.html</a><br />
<br />
<h3>
参考: NOT OpenJDK</h3>
Java Development Kit builds, from Oracle<br />
<a href="http://jdk.java.net/">http://jdk.java.net/</a><br />
<div>
<br /></div>
<h2>
ライフサイクルなど</h2>
<h3>
OpenJDK ライフサイクルおよびサポートポリシー</h3>
by Redhat<br />
<a href="https://access.redhat.com/ja/node/1457743">https://access.redhat.com/ja/node/1457743</a><br />
<br />
"このナレッジでは、Red Hat Enterprise Linux (RHEL) に同梱される OpenJDK のライフサイクルとサポートポリシーについて説明します。ここで説明される内容は、Sun、Oracle、または IBM から提供されている Java ランタイムまたは JDK の実装には適用されません。"<br />
<br />
"メジャーバージョンの OpenJDK のサポート終了日は、RHEL の各バージョンで最初に導入されてから 6 年、もしくは基本 RHEL プラットフォームが終了した日のいずれか早い方が採用されます。"<br />
<br />
サポート終了日<br />
OpenJDK 6 (1.6) 2016/12<br />
OpenJDK 7 (1.7) 2018/6<br />
OpenJDK 8 (1.8) 2020/10<br />
<br />
Red Hat JVM/JDK Summary<br />
<a href="https://access.redhat.com/articles/2950741">https://access.redhat.com/articles/2950741</a><br />
<br />
<br />
<h3>
Zulu OpenJDK Builds, 100% Open Source Java SE -- Free to download and use</h3>
by Azul Systems<br />
<a href="https://www.azul.com/products/zulu-and-zulu-enterprise/">https://www.azul.com/products/zulu-and-zulu-enterprise/</a><br />
<br />
Redhatが自社サポート終了日にあわせてOpenJDK 6のメンテナンスをやめるときに、引き継ぎするかどうかの話題が出てた。<br />
<a href="http://mail.openjdk.java.net/pipermail/jdk6-dev/2016-December/003611.html">http://mail.openjdk.java.net/pipermail/jdk6-dev/2016-December/003611.html</a><br />
<br />
Versions<br />
Java 9, 8, 7, and 6 (See download page for details)<br />
<br />
Supported Platforms<br />
Windows, Linux, MacOS, Cloud on Azure and AWS (See download page for details)<br />
<br />
Zulu Enterprise<br />
"Enterprise-grade support with 10 year support lifetime, and our Java experts can help you resolve issues quickly"<br />
<div>
<br />
OpenJDKがGPLなので、Zuluのメンテ期間中は基本的に公開されるのではないか。</div>
OpenJDK: GPLv2 + Classpath Exception<br />
<a href="http://openjdk.java.net/legal/gplv2+ce.html">http://openjdk.java.net/legal/gplv2+ce.html</a><br />
<div>
GPLリンク例外 by wikipedia</div>
<div>
<a href="https://ja.wikipedia.org/wiki/GPL%E3%83%AA%E3%83%B3%E3%82%AF%E4%BE%8B%E5%A4%96">https://ja.wikipedia.org/wiki/GPL%E3%83%AA%E3%83%B3%E3%82%AF%E4%BE%8B%E5%A4%96</a></div>
<div>
<br /></div>
<div>
<br />
<h2>
OpenJDKバイナリ配布</h2>
<h3>
AdoptOpenJDK</h3>
</div>
<a href="https://adoptopenjdk.net/index.html">https://adoptopenjdk.net/index.html</a><br />
<br />
Build jdk8u144-b01<br />
OpenJDK8 with HotSpot<br />
<br />
Build jdk-9+181<br />
OpenJDK9 with HotSpot<br />
OpenJDK9 with Eclipse OpenJ9<br />
<br />
<br />
<h3>
Download Zulu:® tested, certified builds of OpenJDK</h3>
by Azul Systems<br />
<a href="https://www.azul.com/downloads/zulu/">https://www.azul.com/downloads/zulu/</a><br />
<div>
<br /></div>
Versions<br />
Java 9, 8, 7, and 6 (See download page for details)<br />
<br />
Supported Platforms<br />
Windows, Linux, MacOS, Cloud on Azure and AWS (See download page for details)<br />
<div>
<br /></div>
<br />
<h2>
DockerHub</h2>
<h3>
Zulu OpenJDK by Azul Systems</h3>
<a href="https://hub.docker.com/r/azul/zulu-openjdk/">https://hub.docker.com/r/azul/zulu-openjdk/</a><br />
<br />
9ea<br />
8u144, 8, latest (8u144/Dockerfile)<br />
7u154, 7, latest (7u154/Dockerfile)<br />
6u97, 6, latest (6u97/Dockerfile)<br />
<div>
<br /></div>
<div>
<br /></div>
<div>
<h3>
参考: NOT OpenJDK</h3>
<span style="background-color: white; color: #555555; font-family: "helvetica neue" , "helvetica" , "roboto" , "arial" , sans-serif; font-size: 16px;">Official IBM® SDK, Java™ Technology Edition Docker Image</span><br />
<a href="https://hub.docker.com/r/library/ibmjava/">https://hub.docker.com/r/library/ibmjava/</a><br />
<br />
1.8.0_sr5 (8.0-5.0)<br />
1.9.0_ea2 (9.0 early access)</div>
<div>
<br /></div>
Gonbeehttp://www.blogger.com/profile/01995638424260523733noreply@blogger.com0tag:blogger.com,1999:blog-11053484.post-79626387743682631882017-10-10T09:40:00.004+09:002017-10-15T14:56:42.810+09:00メモ: java 9とleiningenの関係 - 2017/10/10現在leiningenと同じように-Xbootclasspath/aにclojure 1.8など(1.4以降)のjarを指定して、java 9からclojure.mainを呼んでも起動しない。<br />
<br />
[#CLJ-2077] Clojure can't be loaded from the boot classpath under java 9 - Clojure JIRA<br />
<a href="https://dev.clojure.org/jira/browse/CLJ-2077">https://dev.clojure.org/jira/browse/CLJ-2077</a><br />
<br />
<pre class="brush: bash"># jarをダウンロード
$ wget 'https://search.maven.org/remotecontent?filepath=org/clojure/clojure/1.8.0/clojure-1.8.0.jar'
# clojure.mainを呼んでみる
$ java -client -Xbootclasspath/a:./clojure-1.8.0.jar \
clojure.main -e "(println \"hello\")"</pre>
<pre class="brush: bash"># java.sql.Timestampが見つからないと怒られる
Exception in thread "main" java.lang.ExceptionInInitializerError
...
Caused by: java.lang.ClassNotFoundException: java.sql.Timestamp
...
</pre>
<br />
clojure 1.9 beta1 で対処することになったが、clojure 1.8 までは変更しないことに<br />
<br />
<pre class="brush: bash"># jarをダウンロード
$ wget 'https://search.maven.org/remotecontent?filepath=org/clojure/clojure/1.9.0-beta2/clojure-1.9.0-beta2.jar'
$ wget 'https://search.maven.org/remotecontent?filepath=org/clojure/spec.alpha/0.1.134/spec.alpha-0.1.134.jar'
# clojure.mainを呼んでみる
$ java -client -Xbootclasspath/a:./clojure-1.9.0-beta2.jar:./spec.alpha-0.1.134.jar \
clojure.main -e "(print \"hello\")"</pre>
<br />
(clojure1.9からclojure.jarとspec.alpha.jarが必要)<br />
<br />
その他の回避策<br />
<br />
Java 9 incompatibility · Issue #2149 · technomancy/leiningen<br />
<a href="https://github.com/technomancy/leiningen/issues/2149">https://github.com/technomancy/leiningen/issues/2149</a><br />
<br />
leinのシェルスクリプトファイルから、BOOTCLASSPATH変数を設定する箇所をコメントアウト<br />
<br />
そろそろ設定をスキップできるようになるかも<br />
Release 2.8.0-RC1 · technomancy/leiningen<br />
<a href="https://github.com/technomancy/leiningen/releases/tag/2.8.0-RC1">https://github.com/technomancy/leiningen/releases/tag/2.8.0-RC1</a><br />
"Support skipping bootclasspath for Java 9 compatibility. (Phil Hagelberg)"<br />
<br />
どうしてもbootcalasspath/aを指定したいなら、java 8までか、clojure 1.9 beta1以降 (現在 beta2)を使おう。<br />
<div>
<br /></div>
Gonbeehttp://www.blogger.com/profile/01995638424260523733noreply@blogger.com0tag:blogger.com,1999:blog-11053484.post-81741021467610576782014-03-16T17:45:00.000+09:002014-03-16T17:45:32.331+09:00Clojure 1.6.0 (beta-1)のJAVA APIClojure 1.6.0 Beta1のJAVA APIのjavadocを作成ました。
<ul>
<li><a href="http://v-182-163-94-96.ub-freebit.net/javadoc/clojure-1.5.1/jvm/">Clojure 1.5.1</a></li>
<li><a href="http://v-182-163-94-96.ub-freebit.net/javadoc/clojure-1.6.0-beta1/jvm/">Clojure 1.6.0 (Beta1)</a></li>
</ul>
Clojure1.5.1から変わっているらしい。Gonbeehttp://www.blogger.com/profile/01995638424260523733noreply@blogger.com0tag:blogger.com,1999:blog-11053484.post-26911376816289136262013-07-07T18:02:00.000+09:002013-07-12T08:18:24.322+09:00ClojureCLR-1.5.0 スナップショット<div>
ClojureCLR 1.5.0のスナップショットをビルドしました。</div>
<div>
<br /></div>
<div>
ClojureCLRをビルドするのにパッケージを用意するのには、libフォルダにDLRを追加するのではなく、nuget経由でパッケージを使うようですが</div>
<div>
現時点では、.net4.0(Release版)のみビルド出来ました。</div>
<div>
<br /></div>
<div>
<br />
skydriveにファイルを上げましたのでリンクを張っておきます。</div>
<iframe frameborder="0" height="120" scrolling="no" src="https://skydrive.live.com/embed?cid=BDA6EA0596D922C3&resid=BDA6EA0596D922C3%21358&authkey=ADsBtFXxQ47r18k" width="98"></iframe><br />
更新:Microsoft.Dynamic.dll, Microsoft.Scripting.dll, Microsoft.Scripting.Metadata.dllを追加しました。Gonbeehttp://www.blogger.com/profile/01995638424260523733noreply@blogger.com0tag:blogger.com,1999:blog-11053484.post-5187335477106867282013-07-05T03:30:00.000+09:002013-07-05T17:04:54.808+09:00Clojure 1.5.1 Java API<br />
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<a href="http://v-182-163-94-96.ub-freebit.net/clojure-1.5.1.jar/jvm/index.html">Clojure 1.5.1 の Java API</a>と<a href="http://www.jarvana.com/jarvana/view/org/clojure/clojure/1.3.0/clojure-1.3.0-javadoc.jar!/index.html">Clojure 1.3.0 の Java API</a></div>
<br />
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
1.5.1は1.3.0から変わりが無いように見える。</div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
1.6.0で変更があるようで、clojure-dev MLでは<a href="https://groups.google.com/forum/#!topic/clojure/VzkpzE2NOaE">議論</a>されており、</div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
githubのmasterリポジトリで確認できる。</div>
Gonbeehttp://www.blogger.com/profile/01995638424260523733noreply@blogger.com0tag:blogger.com,1999:blog-11053484.post-19930833732037817002013-07-05T03:00:00.000+09:002013-07-05T17:09:46.280+09:00pidigits Clojure #x program | Computer Language Benchmarks Game<br />
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<a href="http://benchmarksgame.alioth.debian.org/">Computer Language Benchmarks Game</a>にGMPライブラリを使ったClojure pididitsを<a href="https://alioth.debian.org/tracker/index.php?func=detail&aid=314325&group_id=100815&atid=413122">投稿</a>してみた。</div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
</div>
<ul>
<li><a href="https://groups.google.com/forum/#!topic/clojure/G9ELf-05A3g">only 3 benchmarks game tasks still have no Clojure programs - Google グループ</a></li>
<li><a href="https://groups.google.com/forum/#!topic/clojure/KKrgn-HDPlM">Re: A Performance Comparison of SBCL & Clojure - Google グループ</a></li>
</ul>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
</div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<br /></div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<a href="http://benchmarksgame.alioth.debian.org/play.php">shootoutの投稿</a>に関しては1ファイルで完結するなど規約が(どこかに)ある。</div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
clojureでJNIを使う場合は、ファイル分けして対応するか3rdパーティライブラリを使うのだが、その制限でJNIを使うのは結構めんどくさい。</div>
<br />
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<br /></div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
そこで、JNIのclassファイルをASMに書き換えて、compile後も動くようにリフレクションで呼び出すようにして対処した。</div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<br /></div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
ASMの部分はこちらを参考にやってみた。</div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
https://gist.github.com/athos/1033052</div>
<br />
http://asm.ow2.org/eclipse/<br />
<br />
一番不安なところは、元にしたjava版では実行時にエラーが起きているところ。<br />
提出先でうまく動けばいいのだけど・・・。<br />
(ローカルでは動いている)<br />
<br />
http://benchmarksgame.alioth.debian.org/u64/program.php?test=pidigits&lang=java&id=2<br />
http://benchmarksgame.alioth.debian.org/u32/program.php?test=pidigits&lang=java&id=2<br />
<br />
また、clojure.asmが将来Clojureの公開APIから消える<a href="http://dev.clojure.org/display/design/ASM">可能性があり</a>、その場合は動作しなくなる予定。<br />
<br />Gonbeehttp://www.blogger.com/profile/01995638424260523733noreply@blogger.com0tag:blogger.com,1999:blog-11053484.post-5246919255992807592012-06-02T13:26:00.000+09:002017-10-13T22:25:57.838+09:00プログラミング系で押さえておきたい出版社が電子版をかなり扱うようになってきた出版用にレイアウトされたプログラム系の本が、2割引ぐらいでうっているらしい。<br />
<br />
<br />
<h1 style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: black; font-family: 'ヒラギノ 角ゴ Pro W3', Osaka, メイリオ, 'MS UI Gothic', 'MS ゴシック'; font-style: normal; font-variant: normal; font-weight: bold; letter-spacing: normal; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">
<span class="Apple-style-span" style="font-size: small;"><a href="http://www.oreilly.co.jp/ebook/">O'Reilly Japan Ebook Store</a></span></h1>
出版したオライリー本がの一部を扱っている<br />
<br />
<span class="Apple-style-span" style="color: #333333; font-family: "ヒラギノ丸ゴ pro w4" , "hiragino maru gothic pro" , , "meiryo" , "ms pゴシック" , sans-serif; font-size: 14px; line-height: 21px;"><strong style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><a href="http://estore.ohmsha.co.jp/titles">オーム社eStore(β)</a></strong></span><br />
オーム社の出版物のなかでもアジャイル系や各言語の有名な入門書がありおすすめ。<br />
<br />
<a href="http://tatsu-zine.com/books/">達人出版会</a><br />
独自の本以外にも、インプレスジャパンやアスキー・メディアワークスの書籍も扱っている。<br />
<br />Gonbeehttp://www.blogger.com/profile/01995638424260523733noreply@blogger.com0tag:blogger.com,1999:blog-11053484.post-78347566726977419082011-12-09T23:45:00.001+09:002013-07-05T16:09:08.374+09:00ClojureCLRを知ろうこの記事は、<a href="http://partake.in/events/393770ce-4637-4f07-bc14-a1f5120eab71">Clojure Advent Calendar 2011</a>の記事(9日目)です。<br />
<br />
<h3>
ClojureCLRとはなにか?</h3>
ClojureCLRは、David Miller(<a href="http://oauth.twitter.com/#!/dmiller2718">@dmiller2718</a>)さんがMicrosoft .NET Framework向けにポートしたClojure環境です。<br />
<br />
あまり広報活動をしておらず、その動向があまり知られていないClojure環境でもあります。<br />
2007年のClojure登場から遅れること1年、2008年秋から開発をはじめ、現在一段落ついたこともあり、今年10月のClojureの祭典<a href="http://clojure-conj.org/">Clojure/Conj</a> 直前に公式ブログを開設して<a href="http://clojureclr.blogspot.com/2011/11/results-of-2011-clojureclr-survey.html">アンケートをおこなった結果</a>をもとに、知名度向上やを開発コミュニティーの結成を目指しています。<br />
<br />
一緒に個人のブログ(<a href="http://rationalx.blogspot.com/">Rational Approximation</a>)も始めていて、初回の記事はClojureCLRの創世記となっています。<br />
<br />
この記事では、概観のみ説明でお茶を濁したいと思います。(時間がなかった。。。)<br />
<br />
入門記事については、C#/.NET開発者のRob Rowe(<a href="http://twitter.com/#!/rippinrobr">@rippinrob</a>)さんによる<a href="http://www.myclojureadventure.com/2011/10/getting-started-with-clojure-clr.html">ClojureCLRの連載</a>がタイミングよく <a href="http://www.myclojureadventure.com/">My Clojure Adventure</a>で始まっていますのでこちらをよろしくお願いします。<br />
<br />
<h3>
リソース</h3>
<ul>
<li><a href="http://clojureclr.blogspot.com/">ClojureCLR公式ブログ</a></li>
<li><a href="https://github.com/richhickey/clojure-clr">github</a></li>
<ul>
<li><a href="https://github.com/richhickey/clojure-clr/tags">バージョンごとのソースアーカイブ</a></li>
<li><a href="https://github.com/richhickey/clojure-clr/downloads">バイナリ</a></li>
<li><a href="https://github.com/richhickey/clojure-clr/wiki/_pages">Wiki(CLR相互運用性、はじめよう)</a></li>
</ul>
</ul>
<br />
<h3>
現在の状況</h3>
githubの<a href="https://github.com/richhickey/clojure-clr/commits/master/">コミットヒストリー</a>や<a href="https://github.com/richhickey/clojure-clr/tags">タグ</a>を眺めると、Clojureの開発リポジトリを追う形で修正を行なっており、一ヶ月以内には反映するようなペースでJVM版の差分を取り込む形で開発が進んでいます。<br />
<br />
現在のJVM本家と同じくリリース版は1.3.0、開発版は1.4.0のalpha2版が最新となっております。<br />
<br />
ソースからは.net Framework 3.5と4.0向けのDebug/Releseビルドが可能です。<br />
バイナリは現在リリース版の1.3.0までで、Debugビルドのみ用意されてますが、自前でビルドして試してみたところReleaseビルドとパフォーマンスの差はあまり無いようです。<br />
<br />
<h3>
Monoとの互換性</h3>
開発者が少ないこともあり、Monoの互換性まで手が回らない状況で実装を行なっているため、REPLのコンソール操作とコンパイラがまともに動作しない状況ですが、cljファイルやコンパイルして出来たexeとdllの実行などは行うことができます。<br />
<br />
また、<a href="http://clojureclr.blogspot.com/2011/11/results-of-2011-clojureclr-survey.html">利用者アンケートの結果</a>では開発者にも(マインド)ユーザーにも優先度が低いと判断されていますので、Monoで使いたいユーザーはパッチを作るのを前提としたほうが(誰かが)幸せになれます。<br />
※アンケートの回答した中では実質ユーザは2人でした。。。<br />
<br />
ちなみに、Boo、IronPython、F#、Phalanger(PHPコンパイラ)などは、Monoとの互換性も考慮して開発されています。<br />
<br />
<h3>
REPLの起動速度</h3>
REPLの起動は同じCPUでJVMを使った場合の2倍程度かかります。<br />
但し、.NET Framework環境ではAOT(ngen)でネイティブバイナリ化が可能ですので、その場合にはJVM環境の1/2程度の時間で起動します。Mono環境でも同じ程度の時間で実行できました。<br />
<br />
Windows 64bitではngenコマンドが、<br />
<br />
<pre>%SystemRoot%\Microsoft.NET\Framework\<バージョン (v3.5, v4.0.30319)>\ngen.exe
%SystemRoot%\Microsoft.NET\Framework64\<バージョン (v3.5, v4.0.30319)>\ngen.exe
</pre>
と用意されており、「Framework64」のngen.exeを実行する必要性があるので注意しましょう。
<br />
<br />
REPLの起動については、「Clojure.dll」と「clojure.core.clj.dll」のみネイティブバイナリにしても起動が高速になります。<br />
Mono環境では、「mono-sgen --aot」など、GCに世代別GCを使いAOTを行った場合に高速に起動出来ました。<br />
<br />
バックエンドにLLVMを使うための「--llvm」オプションを使った場合は、REPLの起動が遅くなっていましたので、いまのところ相性は良くないようです。<br />
<div>
<br /></div>
<br />
ちなみに、AOT実行で起動やスクリプトの読み込みまで早くなりますが、JITより記述したプログラム部分の実行が早くなる訳ではありません。<br />
<br />
<h3>
まとめ</h3>
JVMに<a href="http://attractivechaos.github.com/plb/">比べて</a>、JITの実行速度最適化が進んだ実装がない<a href="http://ja.wikipedia.org/wiki/%E5%85%B1%E9%80%9A%E8%A8%80%E8%AA%9E%E5%9F%BA%E7%9B%A4">共通言語基盤(CLI)</a>ではありますが、
無償のAOT環境が用意されている点などREPL向けの環境でもありますので、
C#やVSの環境が苦手としている分野(知らないけど)でClojureCLRにも陽の目を浴びるチャンスがあるかもしれません。<br />
<br />
leinningenなどのビルドツールなどが用意されていないなど、まだ実用的な環境を用意するには不備も多いですが、
頭の片隅にでもClojureCLRというものがあるということ、覚えていただければ幸いです。<br />
<br />
以上、駄文にお付き合い下さいありがとうございました。Gonbeehttp://www.blogger.com/profile/01995638424260523733noreply@blogger.com0tag:blogger.com,1999:blog-11053484.post-73839300316607074012011-09-25T23:47:00.000+09:002017-10-13T22:22:19.726+09:00メモ:(MEAPを確認して)購入予定の書籍"Monadic Design Patterns for the Web", Artima Press<br />
by Greg Meredith (Lucius Gregory Meredith)<br />
<a href="http://www.biosimilarity.com/main.html">http://www.biosimilarity.com/main.html</a>
<a href="http://www.biosimilarity.com/publications.html">http://www.biosimilarity.com/publications.html</a><br />
<br />
"Functional Programming in Scala", Manning Publications<br />
by Paul Chiusano, Runar Bjarnason and Tony Morris<br />
<a href="http://www.scala-lang.org/node/10448">http://www.scala-lang.org/node/10448</a><br />
<br />
?Big Data?<br />
?Principels and best practice of scalable realtime data systems?<br />
Manning Publications<br />
by Nathan Marz<br />
<a href="http://www.slideshare.net/nathanmarz/the-secrets-of-building-realtime-big-data-systems">http://www.slideshare.net/nathanmarz/the-secrets-of-building-realtime-big-data-systems</a><br />
<a href="https://thestrangeloop.com/sessions/cascalog">https://thestrangeloop.com/sessions/cascalog</a>Gonbeehttp://www.blogger.com/profile/01995638424260523733noreply@blogger.com0tag:blogger.com,1999:blog-11053484.post-41527119272133062832010-11-13T23:13:00.011+09:002010-11-14T03:05:04.855+09:00Quercas on Google App EngineQuercus on Google App Engine利用時に、Slim3のServletで使われているように「load-on-startup」を「1」にしてやると、Spin-up時のcpu_msが3000前後でほぼ変わらないのに対し、Servletのレスポンスタイム(ms)が14000前後から3000前後と大幅に縮小されるのが確認できた。(まあ偏っただけかもしれないが・・)<br />
<br />
<br />
「com.caucho.quercus.servlet.GoogleQuercusServlet」だけでは、効果が確認できなかった。そこで、GAEでは使わない「com.caucho.quercus.servlet.QuercusServlet」の設定を追加して、「load-on-startup」を「1」にしてやると、レスポンスタイムが短縮する変化が起きた。<br />
<br />
WEB-INF/web.xml:<br />
<br />
<servlet><br />
<servlet-name>quercus</servlet-name><br />
<servlet-class>com.caucho.quercus.servlet.GoogleQuercusServlet</servlet-class><br />
<load-on-startup>1</load-on-startup><br />
</servlet><br />
<br />
<servlet><br />
<servlet-name>QuercusHot</servlet-name><br />
<servlet-class>com.caucho.quercus.servlet.QuercusServlet</servlet-class><br />
<load-on-startup>1</load-on-startup><br />
</servlet><br />
<br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4Ij1uN46k18p0b2NHnge4q9-Ql7WxNhiBbD6olnayq1_VjZH6FbFJeF-te4sbtyqX6_MqY-yWUyS7ZFDqQElY6c_ntCJPko4mQTbVSssT4d9NMG-TK3BUlGxmrtiqPMcI9K6f8Q/s1600/Logs_001.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4Ij1uN46k18p0b2NHnge4q9-Ql7WxNhiBbD6olnayq1_VjZH6FbFJeF-te4sbtyqX6_MqY-yWUyS7ZFDqQElY6c_ntCJPko4mQTbVSssT4d9NMG-TK3BUlGxmrtiqPMcI9K6f8Q/s1600/Logs_001.png" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">spin-up時間</td></tr>
</tbody></table><br />
<div class="separator" style="clear: both; text-align: left;">残りの、quercusを動かすための設定は、</div><div class="separator" style="clear: both; text-align: left;">WEB-INF/appengine-web.xml:</div> <static-files><br />
<exclude path="/**.php" /><br />
</static-files><br />
<resource-files><br />
<include path="/**.php" /><br />
</resource-files><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;">WEB-INF/lib:</div><div class="separator" style="clear: both; text-align: left;">に、resin.jarを追加。</div><div class="separator" style="clear: both; text-align: left;"><br />
</div>resin.jarが、大きいいので分割するのに、appengineのdeployには「--enable_jar_splitting」が必要でした。 # appengine-java-sdk-1.3.8/bin/appcfg.sh --enable_jar_splitting update WEB-INF/..<br />
<div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;">設定については、下記のページを参照してください。</div><div class="separator" style="clear: both; text-align: left;">・http://blog.caucho.com/?p=187</div><div class="separator" style="clear: both; text-align: left;">・http://www.atmarkit.co.jp/fcoding/articles/gaephp/02/gaephp02b.html (日本語環境の設定あり)</div><div class="separator" style="clear: both; text-align: left;"></div>Gonbeehttp://www.blogger.com/profile/01995638424260523733noreply@blogger.com0tag:blogger.com,1999:blog-11053484.post-90526756002709661062010-07-22T06:57:00.005+09:002010-07-22T07:36:19.704+09:00Clojre 3rd-party ライブラリ メモ<a href="http://github.com/mmcgrana/ring">Ring</a><br />
API <a href="http://mmcgrana.github.com/ring/">http://mmcgrana.github.com/ring/</a><br />
<a href="http://github.com/ztellman/aleph">Aleph</a><br />
API <a href="http://ztellman.github.com/aleph/">http://ztellman.github.com/aleph/</a><br />
<a href="http://github.com/datskos/ring-netty-adapter">Ring-Netty-Adapter<br />
</a><br />
<br />
Clojure製<a href="http://flightcaster.com/">FlightCaster</a>のGitHubやClojars<br />
GitHub <a href="http://github.com/jstrate">http://github.com/jstrate</a><br />
Clojars <a href="http://clojars.org/users/jstrate">http://clojars.org/users/jstrate</a><br />
GitHub <a href="http://github.com/bradford">http://github.com/bradford</a><br />
Clojars <a href="http://clojars.org/users/bradford">http://clojars.org/users/bradford</a><br />
<br />
OpenGL,OpenCL,OpenCVのインターフェイスを作っている方<br />
GitHub <a href="http://github.com/ztellman">http://github.com/ztellman</a><br />
Clojars <a href="http://clojars.org/users/ztellman">http://clojars.org/users/ztellman</a>Gonbeehttp://www.blogger.com/profile/01995638424260523733noreply@blogger.com0tag:blogger.com,1999:blog-11053484.post-78251234209529955262010-07-18T01:07:00.011+09:002017-10-13T22:27:02.858+09:00Clojure 1.1, 1.2 API 一覧<b>master branch</b><br />
clojure API<br />
<i><a href="http://clojure.github.com/clojure/api-index.html">http://clojure.github.com/clojure/api-index.html</a></i><br />
clojure-contrib API<br />
<i><a href="http://clojure.github.com/clojure-contrib/index.html">http://clojure.github.com/clojure-contrib/index.html</a></i><br />
<br />
<b>1.1.x branch</b><br />
clojure API<br />
<i><a href="http://clojure.github.com/clojure/branch-1.1.x/index.html">http://clojure.github.com/clojure/branch-1.1.x/index.html</a></i><br />
clojure-contrib API<br />
<i><a href="http://clojure.github.com/clojure-contrib/branch-1.1.x/index.html">http://clojure.github.com/clojure-contrib/branch-1.1.x/index.html</a></i><br />
<br />
<br />
clojure (1.2 <- 1.1)<br />
追加<br />
<div class="toc-section" style="color: #272727; font-family: arial, helvetica, sans-serif; font-size: 11px; line-height: 18px; margin-bottom: 0px; margin-left: 1em; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<a href="http://clojure.github.com/clojure/index.html#clojure.java.browse" style="color: #646464; font-size: 11px; line-height: 18px; text-decoration: none;">clojure.java.browse</a> </div>
<div class="toc-section" style="color: #272727; font-family: arial, helvetica, sans-serif; font-size: 11px; line-height: 18px; margin-bottom: 0px; margin-left: 1em; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<a href="http://clojure.github.com/clojure/index.html#clojure.java.io" style="color: #646464; font-size: 11px; line-height: 18px; text-decoration: none;">clojure.java.io</a> </div>
<div class="toc-section" style="color: #272727; font-family: arial, helvetica, sans-serif; font-size: 11px; line-height: 18px; margin-bottom: 0px; margin-left: 1em; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<a href="http://clojure.github.com/clojure/index.html#clojure.java.javadoc" style="color: #646464; font-size: 11px; line-height: 18px; text-decoration: none;">clojure.java.javadoc</a> </div>
<div class="toc-section" style="color: #272727; font-family: arial, helvetica, sans-serif; font-size: 11px; line-height: 18px; margin-bottom: 0px; margin-left: 1em; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<a href="http://clojure.github.com/clojure/index.html#clojure.java.shell" style="color: #646464; font-size: 11px; line-height: 18px; text-decoration: none;">clojure.java.shell</a> </div>
<div>
<div class="toc-section" style="color: #272727; font-family: arial, helvetica, sans-serif; font-size: 11px; line-height: 18px; margin-bottom: 0px; margin-left: 1em; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<a href="http://clojure.github.com/clojure/index.html#clojure.pprint" style="color: #646464; font-size: 11px; line-height: 18px; text-decoration: none;">clojure.pprint</a> </div>
<div class="toc-section" style="color: #272727; font-family: arial, helvetica, sans-serif; font-size: 11px; line-height: 18px; margin-bottom: 0px; margin-left: 1em; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<a href="http://clojure.github.com/clojure/index.html#clojure.repl" style="color: #646464; font-size: 11px; line-height: 18px; text-decoration: none;">clojure.repl</a> </div>
<div class="toc-section" style="color: #272727; font-family: arial, helvetica, sans-serif; font-size: 11px; line-height: 18px; margin-bottom: 0px; margin-left: 1em; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<a href="http://clojure.github.com/clojure/index.html#clojure.stacktrace" style="color: #646464; font-size: 11px; line-height: 18px; text-decoration: none;">clojure.stacktrace</a> </div>
<div class="toc-section" style="color: #272727; font-family: arial, helvetica, sans-serif; font-size: 11px; line-height: 18px; margin-bottom: 0px; margin-left: 1em; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<a href="http://clojure.github.com/clojure/index.html#clojure.template" style="color: #646464; font-size: 11px; line-height: 18px; text-decoration: none;">clojure.template</a> </div>
</div>
<br />
<br />
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
clojure-contrib (1.2 <- 1.1)</div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
変更</div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
</div>
<div class="toc-section" style="color: #272727; font-family: arial, helvetica, sans-serif; font-size: 11px; line-height: 18px; margin-bottom: 0px; margin-left: 1em; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<a href="http://clojure.github.com/clojure-contrib/index.html#json" style="color: #646464; font-size: 11px; line-height: 18px; text-decoration: none;">json</a> (<- <a href="http://clojure.github.com/clojure-contrib/branch-1.1.x/index.html#json.read" style="color: #646464; font-size: 11px; line-height: 18px; text-decoration: none;">json.read</a> <a href="http://clojure.github.com/clojure-contrib/branch-1.1.x/index.html#json.write" style="color: #646464; font-size: 11px; line-height: 18px; text-decoration: none;">json.write</a>)</div>
<br />
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
</div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
追加</div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
</div>
<div class="toc-section" style="color: #272727; font-family: arial, helvetica, sans-serif; font-size: 11px; line-height: 18px; margin-bottom: 0px; margin-left: 1em; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<a href="http://clojure.github.com/clojure-contrib/index.html#io" style="color: #646464; font-size: 11px; line-height: 18px; text-decoration: none;">io</a> </div>
<div>
<div class="toc-section" style="color: #272727; font-family: arial, helvetica, sans-serif; font-size: 11px; line-height: 18px; margin-bottom: 0px; margin-left: 1em; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<a href="http://clojure.github.com/clojure-contrib/index.html#properties" style="color: #646464; font-size: 11px; line-height: 18px; text-decoration: none;">properties</a> </div>
</div>
<div>
<div class="toc-section" style="color: #272727; font-family: arial, helvetica, sans-serif; font-size: 11px; line-height: 18px; margin-bottom: 0px; margin-left: 1em; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<a href="http://clojure.github.com/clojure-contrib/index.html#reflect" style="color: #646464; font-size: 11px; line-height: 18px; text-decoration: none;">reflect</a> </div>
</div>
<div>
<div class="toc-section" style="color: #272727; font-family: arial, helvetica, sans-serif; font-size: 11px; line-height: 18px; margin-bottom: 0px; margin-left: 1em; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<a href="http://clojure.github.com/clojure-contrib/index.html#seq" style="color: #646464; font-size: 11px; line-height: 18px; text-decoration: none;">seq</a> </div>
</div>
<div>
<div class="toc-section" style="color: #272727; font-family: arial, helvetica, sans-serif; font-size: 11px; line-height: 18px; margin-bottom: 0px; margin-left: 1em; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<a href="http://clojure.github.com/clojure-contrib/index.html#shell" style="color: #646464; font-size: 11px; line-height: 18px; text-decoration: none;">shell</a> </div>
</div>
<div>
<div class="toc-section" style="color: #272727; font-family: arial, helvetica, sans-serif; font-size: 11px; line-height: 18px; margin-bottom: 0px; margin-left: 1em; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<a href="http://clojure.github.com/clojure-contrib/index.html#string" style="color: #646464; font-size: 11px; line-height: 18px; text-decoration: none;">string</a> </div>
<div class="toc-section" style="color: #272727; font-family: arial, helvetica, sans-serif; font-size: 11px; line-height: 18px; margin-bottom: 0px; margin-left: 1em; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<a href="http://clojure.github.com/clojure-contrib/index.html#strint" style="color: #646464; font-size: 11px; line-height: 18px; text-decoration: none;">strint</a> </div>
</div>
<div>
<br /></div>
<br />
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
</div>
<div>
備忘録<br />
<br />
<div class="toc-section" style="color: #272727; font-family: arial, helvetica, sans-serif; font-size: 11px; line-height: 18px; margin-bottom: 0px; margin-left: 1em; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<a href="http://clojure.github.com/clojure-contrib/index.html#io" style="color: #646464; font-size: 11px; line-height: 18px; text-decoration: none;">clojure-contrib.io</a> (1.2-, duck-streams後継)</div>
</div>
<div>
<div class="toc-section" style="color: #272727; font-family: arial, helvetica, sans-serif; font-size: 11px; line-height: 18px; margin-bottom: 0px; margin-left: 1em; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<a href="http://clojure.github.com/clojure/index.html#clojure.java.io" style="color: #646464; font-size: 11px; line-height: 18px; text-decoration: none;">clojure.java.io</a> (1.2-)</div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<a href="http://clojure.github.com/clojure-contrib/index.html#duck-streams" style="color: #646464; font-size: 11px; line-height: 18px; text-decoration: none;">clojure-contrib.duck-streams</a><span class="Apple-style-span" style="color: #272727; font-family: "arial" , "helvetica" , sans-serif; font-size: 11px; line-height: 18px;"> (1.1)</span></div>
</div>
</div>
<br />
<div class="toc-section" style="color: #272727; font-family: arial, helvetica, sans-serif; font-size: 11px; line-height: 18px; margin-bottom: 0px; margin-left: 1em; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<div style="color: black; font-family: Times; font-size: medium; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
</div>
<div class="toc-section" style="color: #272727; font-family: arial, helvetica, sans-serif; font-size: 11px; line-height: 18px; margin-bottom: 0px; margin-left: 1em; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
</div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
APIが、少し違う</div>
</div>
<div class="toc-section" style="color: #272727; font-family: arial, helvetica, sans-serif; font-size: 11px; line-height: 18px; margin-bottom: 0px; margin-left: 1em; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
</div>
</div>
Gonbeehttp://www.blogger.com/profile/01995638424260523733noreply@blogger.com0tag:blogger.com,1999:blog-11053484.post-81014751759381248632010-06-28T04:13:00.004+09:002017-10-13T22:31:42.741+09:00旧compojure.orgのサイトミラー<a href="http://compojure.org/">旧compojure.org?</a> (compojure-0.2.0程度)の <a href="http://v-182-163-94-96.ub-freebit.net:8080/">ミラーサイト</a> を試験的に用意しました。<br />
(<a href="http://github.com/weavejester/compojure.org">ソース</a>)<br />
<br />
<a href="http://weavejester.github.com/compojure/"><s>gh-pages</s></a><u><s>についても(6/28現在)エラーが出ているので、</s></u><a href="http://v-182-163-94-96.ub-freebit.net:8080/gh-pages/index"><s>用意</s></a><u><s>してみました。</s></u><br />
<u><s>(</s></u><s><a href="http://github.com/weavejester/compojure/tree/gh-pages">ソース</a><u>)(7月上旬には復帰)</u></s>Gonbeehttp://www.blogger.com/profile/01995638424260523733noreply@blogger.com0tag:blogger.com,1999:blog-11053484.post-36970880400545315432010-06-22T03:38:00.003+09:002010-06-22T04:25:00.107+09:00php pecl探索APCやmemcachedなど従来から使われている物以外のPHPに新しい使い勝手を追加するpecl拡張を紹介したいと思います。 <br />
<br />
<b>ssh2</b><br />
指定したファイルからの暗号鍵認証も、パスワード認証も可能。<br />
SFTP接続からアップロード・ダウンロード、切断まで。<br />
タイムアウトがある場合は、ポーリングについては不明ですので、バッチ処理を挟む場合、ファイル操作ごとに接続するなどしましょう。<br />
<a href="http://www.php.net/ssh2">http://www.php.net/ssh2</a><br />
<br />
<b>tokyo_tyrant</b><br />
Webクラスター環境で、共有セッションの管理などに使えます。<br />
<a href="http://www.php.net/manual/ja/tokyo-tyrant.installation.php">http://www.php.net/manual/ja/tokyo-tyrant.installation.php</a><i> </i><br />
<i>ttserver -port 2000 -ext /path/to/expire.lua -extpc expire 30.0 '/tmp/sessions.tct#idx=ts:dec'</i> <br />
TokyoTyrantサーバーをluaで拡張することができます。<br />
セッション管理は、pecl側で制御することも出来ます。 <br />
<br />
<div style="margin: 0px;">Tokyo Cabinet と Tokyo Tyrantが入っていれば、(rpmかlocalインストールなどで、自分は、specからインストールしました)。luaも入れておきましょう。</div><div style="margin: 0px;">pecl install tokyo_tyrantで、いけますよ。(現在は、1.0前なので、 pecl install tokyo_tyrant-0.5.0 とか必要)<br />
<a href="http://www.php.net/tokyo-tyrant">http://www.php.net/tokyo-tyrant</a><br />
<a href="http://github.com/mkoppanen/php-tokyo_tyrant/">http://github.com/mkoppanen/php-tokyo_tyrant/</a><br />
<br />
</div><div style="margin: 0px;"><b>oauth</b><br />
OAuthのC実装2010年6月2日にめでたく1.0.0がリリース<br />
<a href="http://php.net/oauth%20">http://php.net/oauth </a><b><br />
</b><br />
<br />
<b>lzf</b><br />
ストリーム圧縮向けの高速な圧縮伸張をサポート。<br />
ただし、肝心のストリーム圧縮やフィルターでの利用は出来ない模様。<br />
<a href="http://www.php.net/lzf">http://www.php.net/lzf</a><br />
<br />
<b>libevent</b><br />
待望のモジュール、PHPでスレッドベースのイベントサーバが用意できます。いままでも、<a href="http://www.php.net/pcntl">プロセス</a>ベースや、<a href="http://www.php.net/curl">HTTP処理</a>ベースの並列化は可能でしたが、<a href="http://www.php.net/manual/ja/libevent.examples.php">例</a>のような軽量な処理 が可能になります。</div><div style="margin: 0px;"><a href="http://www.php.net/libevent">http://www.php.net/libevent</a><b> <br />
</b><br />
<br />
<b>mongo</b><br />
MongoDB接続用モジュール<b> </b><br />
<b> </b><br />
<a href="http://www.php.net/mongo">http://www.php.net/mongo</a> <br />
<br />
<b>amqp</b><br />
<a class="link external" href="http://www.rabbitmq.com/">RabbitMQ</a>な どAMQP実装へのクライアント用の接続モジュールです。<br />
<a href="http://www.php.net/amqp">http://www.php.net/amqp</a> <br />
<br />
<b>stomp</b><br />
こちらも、メッセージキュー(ActiveMQなど、stompプロトコルに対応した)クライアント用の接続モジュールです。<b><br />
</b><br />
<a href="http://www.php.net/stomp">http://www.php.net/stomp</a> <br />
<br />
</div>Gonbeehttp://www.blogger.com/profile/01995638424260523733noreply@blogger.com0tag:blogger.com,1999:blog-11053484.post-16384801060387521292010-06-21T12:42:00.010+09:002010-06-22T15:40:29.032+09:00Kyoto Cabinetとluaとluajitlua-5.14用にコンパイルした(/usr/local/lib/lua/5.1/)kyotocabinet.soを<br />
luajitから使ってみました。luaとの違いは、おそらくループまわりの高速化になります。<br />
<br />
vmplayer上の1core 2GHzで比較<br />
<br />
$ lua kctest.lua order "casket.kch" 1000000<br />
<br />
<div style="margin: 0px;"></div><div style="margin: 0px;"></div><div><div>opening the database:</div><div>time: 0.001</div><div>setting records:</div></div><div style="margin: 0px;">time: 4.013</div><div style="margin: 0px;">getting records:</div><div style="margin: 0px;">time: 3.867</div><div style="margin: 0px;"></div><div style="margin: 0px;">removing records:</div><div style="margin: 0px;">time: 4.019</div><div style="margin: 0px;">closing the database:</div><div style="margin: 0px;">time: 0.008</div><br />
$ luajit kctest.lua order "casket.kch" 1000000<br />
<div><div>opening the database:</div><div>time: 0.001</div><div>setting records:</div></div>time: 3.576<br />
getting records:<br />
time: 3.483<br />
removing records:<br />
time: 3.417<br />
closing the database:<br />
time: 0.009<br />
<br />
12%前後高速化したようです。<br />
<br />
ちなみに、/usr/local/lib/kyotocabinet.soをldconfigしてないと、<br />
luajitでは、require "kyotocabinet"で、セグメントフォルトしました。<br />
luaでは、kyotocabinet.soが、見つからないというメッセージになりました。<br />
<br />
ここら辺の面倒見は、luajitよりluaのが、いいようです。<br />
<br />
仕組みを分かってないが、luajit-2.00-beta4.soと、リンクする必要はないのか。<br />
必要なのは、Tokyo Tyrantみたいに、luaをKyoto Cabinet側に組み込むときかな?<br />
<br />
そして、今後のlua-5.2.0登場で、luajitがどうなるのか戦々恐々としてます。<br />
<div><br />
</div>Gonbeehttp://www.blogger.com/profile/01995638424260523733noreply@blogger.com0tag:blogger.com,1999:blog-11053484.post-32507194915019654932010-05-13T18:49:00.002+09:002010-05-13T18:51:50.103+09:00mb_convert_kanaで、半角から全角に変換されないASCII文字$halfwidth = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";<br />
<br />
$fullwidth = " !”#$%&’()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[¥]^_`abcdefghijklmnopqrstuvwxyz{|} ̄";<br />
<br />
echo $halfwidth,"\n";<br />
echo mb_convert_kana( $halfwidth,"ASKVC","EUC-JP"),"\n";<br />
echo $fullwidth,"\n"; <br />
<br />
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ <br />
<br />
!”#$%&’()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[¥]^_`abcdefghijklmnopqrstuvwxyz{|} ̄<br />
<br />
",',\,~が変換されない。Gonbeehttp://www.blogger.com/profile/01995638424260523733noreply@blogger.com0tag:blogger.com,1999:blog-11053484.post-76879942536076151202010-02-23T21:57:00.004+09:002017-10-13T22:31:01.721+09:00Clojore 1.1とAOT<a href="http://www.excelsior-usa.com/jet.html">Excelsior JET</a>を使って、(Sun Hotspot JVMと比較した)Clojureの起動速度を測定してみました。<br />
<a href="http://www.ibm.com/developerworks/java/jdk/linux/download.html">IBM JVM J9</a>の場合も追記しましたが、こちらはおもに処理速度を向上したい場合に向いているようです。<br />
どちらも、バイナリは、OSXはなく、LinuxとWindowsの32/64bitがあるようです。<br />
<br />
<b>Excelsior JET</b><br />
<a href="http://www.excelsior-usa.com/jetdlbeta.html">ベータ版</a>は、最新のベータが存在するときだけ、配布しています。<br />
<a href="http://www.excelsior-usa.com/jetdleval.html">体験版</a>の有効期限は3か月です。<br />
購入した場合、Windows版で1200.00ドル~ Linux版で、1900.00ドル~です。<br />
日本の<a href="http://www.xlsoft.com/jp/products/jet/index.html">正規販売店</a>もあります。<br />
<br />
2010年2月時点の最新版は7.0で、ベータ版はありませんでした。<br />
対応するjdk 1.6.0 update 16の場合は、プロファイルが存在するため作成作業が省略できます。<br />
<br />
jc clojure.jarを実行すると clojureという実行ファイルができます。<br />
この場合、java -jar clojure.jar に対応します。<br />
<br />
<b>IBM J9 JVM</b><br />
Linuxの場合は、<a href="http://www.ibm.com/developerworks/java/jdk/">こちら</a>のLinux-Downloadから取得しました。Windows版へは、リンク切れになってます。<br />
Windowsで利用したい場合には、<a href="http://www.ibm.com/developerworks/downloads/ws/wasce/">WebSphere Application Server Community Edition</a>にも、少し古いバージョンが含まれていますので、こちらが利用できるようです。<br />
<br />
AOTを有効にするには、-Xshareclassesをつけて実行します。<br />
詳細は、こちらの<a href="http://www.ibm.com/developerworks/jp/java/library/j-sharedclasses/index.html">記事</a>や、ユーザーガイド中のSDK およびランタイム・ガイド「JVM 間でのクラス・データの共用」を確認してください。<br />
<br />
CentOS5.4にRPMインストールしたところ、libstdc++.5.soが足りないと言われ、<br />
確認したところ、libstdc++.6.so (4.1.2-46)のみあったため、<br />
yum install compat-libstdc++-33.x86_64 compat-libstdc++-33.i386<br />
で、互換ライブラリ(3.2.3-61)をインストールしました。<br />
<br />
実行結果は、37%程度のスピードアップが確認できましたが、もともと起動速度がSun Hotspot JVMより遅いため、そちらを越えられませんでした。<br />
ちなみに、安定後のループなどの処理速度はSun JVMより高速なようです。<br />
<br />
<b>実行結果</b><br />
ちなみに、vmware上の CentOS5.4 x86_64 AthlonXP64 2GHz 1coreで、下記のような起動速度になりました。<br />
<br />
Excelsior JETでAOT<br />
$ jc clojre.jar<br />
$ time ./clojure -i comment.clj<br />
real 0m0.439s<br />
user 0m0.080s<br />
sys 0m0.142s<br />
<br />
通常の起動<br />
$ time java -cp clojure.jar clojure.main -i comment.clj <br />
real 0m1.887s<br />
user 0m1.289s<br />
sys 0m0.170s<br />
<br />
通常の起動(JAR)<br />
$ time java -jar clojure.jar -i comment.clj <br />
real 0m1.830s<br />
user 0m1.294s<br />
sys 0m0.157s<br />
<br />
インタプリタのみで起動(JITなしで、実行は何倍も遅い)<br />
$ time java -Xint -cp clojure.jar clojure.main -i comment.clj <br />
real 0m1.628s<br />
user 0m1.125s<br />
sys 0m0.171s<br />
<br />
J9 JVM AOT<br />
$ time /opt/ibm/java-x86_64-60/jre/bin/java -cp clojure.jar clojure.main -i comment.clj <br />
real 0m3.321s<br />
user 0m1.651s<br />
sys 0m0.242s<br />
$ time /opt/ibm/java-x86_64-60/jre/bin/java -Xint -cp clojure.jar clojure.main -i comment.clj <br />
real 0m2.741s<br />
user 0m1.285s<br />
sys 0m0.173s<br />
<br />
$ time /opt/ibm/java-x86_64-60/jre/bin/java -Xshareclasses -cp clojure.jar clojure.main -i comment.clj<br />
real 0m2.424s<br />
user 0m0.991s<br />
sys 0m0.165s<br />
<br />
$ time /opt/ibm/java-x86_64-60/jre/bin/java -Xint -Xshareclasses -cp clojure.jar clojure.main -i comment.clj<br />
real 0m2.149s<br />
user 0m0.835s<br />
sys 0m0.109s<br />
<br />
<b>ソフトウエアのバージョン</b><br />
$ cat /etc/redhat-release<br />
CentOS release 5.4 (Final)<br />
<br />
$ java -version<br />
java version "1.6.0_16"<br />
Java(TM) SE Runtime Environment (build 1.6.0_16-b01)<br />
Java HotSpot(TM) 64-Bit Server VM (build 14.2-b01, mixed mode)<br />
<br />
$ java -jar clojure.jar -e '(println *clojure-version*)'<br />
{:major 1, :minor 1, :incremental 0, :qualifier }<br />
<br />
$ jc|head -n 2<br />
Excelsior JET v7.0 Evaluation Version (c) Excelsior 1997,2009<br />
Active Java SE Version 1.6.0_16 (profile 16)<br />
<br />
$/opt/ibm/java-x86_64-60/bin/java -version<br />
java version "1.6.0"<br />
Java(TM) SE Runtime Environment (build pxa6460sr7-20091215_02(SR7))<br />
IBM J9 VM (build 2.4, JRE 1.6.0 IBM J9 2.4 Linux amd64-64 jvmxa6460sr7-20091214_49398 (JIT enabled, AOT enabled)<br />
でした。Gonbeehttp://www.blogger.com/profile/01995638424260523733noreply@blogger.com0tag:blogger.com,1999:blog-11053484.post-25040578401655087272010-02-14T01:02:00.008+09:002010-02-26T16:55:03.178+09:00Clojure-CLR 1.1.0をVisual C# 2008 Express Edition SP1でビルドするのに用意したものをメモGitHubに<a href="http://clojure.org/">Clojure</a> 1.1.0のCLR実装(<a href="http://github.com/richhickey/clojure-clr">ClojureCLR</a> 1.1.0)が用意されているので、<a href="http://wiki.github.com/richhickey/clojure-clr/installing-clojureclr">インストール手順</a>を見ながらVisual C# 2008 Express Edition SP1で、ビルドしてみた。<br />
<br />
<strong>準備</strong><br />
まずは、開発環境から、アセンブリとソースのディレクトリ構成まで整える。<br />
<strong>開発環境</strong><br />
・<a href="http://go.microsoft.com/?LinkId=9348303">DL</a> <a href="http://www.microsoft.com/japan/msdn/vstudio/express/">Visual C# 2008 Express Edition with SP1</a> もしくは、Visual Studio 2008 SP1<br />
SP1について<br />
http://www.microsoft.com/japan/msdn/vstudio/downloads/sp/vs2008/sp1/<br />
<strong>必要なアセンブリ(インストールするもの)</strong><br />
・<a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=D0E5DEA7-AC26-4AD7-B68C-FE5076BBA986&displaylang=ja">DL</a> Microsoft .NET Framework 3.5 SP1 (Full packege版) <br />
・<a href="http://sourceforge.net/projects/nunit/files/NUnit%20Version%202/NUnit-2.5.2.9222.msi/download">DL</a> <a href="http://www.nunit.org/">NUnit</a> 2.5.2 <br />
<strong>必要なアセンブリ(配置するもの)</strong><br />
・<a href="http://ayende.com/20/section.aspx/download/227">DL</a> <a href="http://ayende.com/projects/rhino-mocks.aspx">Rhino Mocks</a> 3.5 - For .Net 3.5 (with Castle assemblies) <br />
<strong>ビルドに必要なソースファイル</strong><br />
・<a href="http://github.com/richhickey/clojure-clr/zipball/1.1.0">DL</a> <a href="http://github.com/richhickey/clojure-clr">Clojure-CLR</a> 1.1.0 <br />
・<a href="http://dlr.codeplex.com/SourceControl/changeset/view/38141">DL</a> <a href="http://www.codeplex.com/dlr">Microsoft Dynamic Language Runtime</a> Change Set 38141あたり<br />
<br />
<strong>フォルダ構成</strong><br />
dev\<br />
- richhickey-clojure-clr-ee572b9\ (名前を変えてもOK)<br />
- DLR_Main\<br />
- RhinoMocks\<br />
<br />
・devフォルダにDynamic Language Runtimeと、Clojure-CLRをフォルダごと配置<br />
・devフォルダにRhinoMocksフォルダを作成して、ファイルをコピー<br />
<br />
<strong>プロジェクトのビルド</strong><br />
・richhickey-clojure-clr-ee572b9\ClojureフォルダのClojureCLR.slnというソリューションファイルをVisual Studioもしくは、Visual C#で開く。<br />
・Runtimeが構成できないというポップアップウインドウを無視する。<br />
・そのまま、ビルドからソリューションのビルドを実行する。<br />
・ビルドが終わると、richhickey-clojure-clr-ee572b9\Clojure\Clojure.Main\bin\Debugフォルダ内に、コンパイラ(Clojure.Compile.exe)とREPL(Clojure.Main.exe)ほか関連ファイルが用意される。<br />
<br />
<strong>ClojureCLRを実行する</strong><br />
Clojure.Main.exeを実行すれば、java -cp clojure.jar clojure.mainと同じようにREPL(対話型評価環境)が起動する。<br />
・CLR環境では、CLASSPATHのかわりに環境変数clojure.load.pathが用意されている。<br />
設定したパス内の*.clj.dllと*.cljをさがす。<br />
参考:<a href="http://wiki.github.com/richhickey/clojure-clr/running-clojureclr">Running ClojureCLR</a><br />
<br />
<strong>そのほか</strong><br />
・Simple.Console.exeの使い方→<a href="http://wiki.github.com/richhickey/clojure-clr/running-clojureclr">Running ClojureCLR</a><br />
・CLR,C#の呼び出し→<a href="http://wiki.github.com/richhickey/clojure-clr/clr-interop">CLR Interop</a>, <a href="http://wiki.github.com/richhickey/clojure-clr/completing-clr-interop">Completing CLR interop</a><br />
・CLRに合わせたclojure.coreの変更→<a href="http://wiki.github.com/richhickey/clojure-clr/translating-coreclj">Translating core.clj</a><br />
・未実装の機能やclojure.contribについて→<a href="http://wiki.github.com/richhickey/clojure-clr/to-do">ToDo</a><br />
やはりJava呼び出ししているところの書き換えが必要なようです。<br />
・<a href="http://wiki.github.com/richhickey/clojure-clr/">Wiki</a>は、進行状況に合わせて変更されている。<br />
・<a href="http://wiki.github.com/richhickey/clojure-clr/testing-clojureclr">ビルドテスト</a>は、<br />
(require '(clojure [test-clojure :as main]))<br />
(main/run)<br />
Testing clojure.test-clojure.data-structuresで、2エラーありました。<br />
・Clojure.Source.dllやClojure.Tests.dllはなんだ?Gonbeehttp://www.blogger.com/profile/01995638424260523733noreply@blogger.com0tag:blogger.com,1999:blog-11053484.post-26712277785523380872008-09-21T05:42:00.007+09:002010-02-26T17:40:50.904+09:00非同期javascriptダウンロードGoogle Analytics<br />
<a href="http://adwords.google.com/support/bin/answer.py?hl=jp&answer=77083">http://adwords.google.com/support/bin/answer.py?hl=jp&answer=77083</a><br />
urchin.js を使用する場合<br />
ga.js を使用する場合<br />
<br />
AJAX Libraries API<br />
<a href="http://code.google.com/apis/ajaxlibs/">http://code.google.com/apis/ajaxlibs/</a><br />
<pre class="brush: js">document.write('<script src="http://www.google.com/jsapi"></script>');
<script>
// Load jQuery
google.load("jquery", "1");
// on page load complete
google.setOnLoadCallback(function() {
// code
});
</script>
</pre>Gonbeehttp://www.blogger.com/profile/01995638424260523733noreply@blogger.com0tag:blogger.com,1999:blog-11053484.post-84415793107754476982008-09-15T19:53:00.007+09:002008-09-15T21:56:48.181+09:00OpenVPN 2.1_rc10@CentOS4でrpmbuildに失敗rc10でやったのだが、UDP接続時のバグ修正のrc11が出てるので、表記のみ置き換えて書いてみた<br />ちなみにOpenVPN 2.0.9は、DAGからyum installできます。<br /><br />・CentOS4で、OpenVPN 2.1_rc10のrpmbuildに失敗する<br /><br />yum install pam-devel pam<br />yum install --enablerepo=rpmforge lzo-devel lzo<br /><br />wget 'http://openvpn.net/release/openvpn-2.1_rc11.tar.gz'<br />rpmbuild -tb openvpn-2.1_rc11.tar.gz<br /><br />2.0.9と違い、pkcs11-helper-devel (スマートカード対応ライブラリ)が必要といわれる。<br /><br />wget 'http://www.opensc-project.org/files/pkcs11-helper/pkcs11-helper-1.06.tar.bz2'<br />rpmbuild -tb pkcs11-helper-1.06.tar.bz2 だと、pkcs11-helper-1.06-2%{dist}.i386.rpmみたいなのが出来上がるので、<br />rpmbuild -tb pkcs11-helper-1.06.tar.bz2 --define="dist .rhel4"<br />とかを実行する<br /><br />rpm -ivh --test /usr/src/redhat/RPMS/i386/pkcs11-helper-1.06-2.rhel4.i386.rpm<br />rpm -ivh --test /usr/src/redhat/RPMS/i386/pkcs11-helper-devel-1.06-2.rhel4.i386.rpm<br /><br /><br />rpm -ivh /usr/src/redhat/RPMS/i386/pkcs11-helper-1.06-2.rhel4.i386.rpm<br />rpm -ivh /usr/src/redhat/RPMS/i386/pkcs11-helper-devel-1.06-2.rhel4.i386.rpm<br />ひと段落。<br /><br />rpmbuild -tb openvpn-2.1_rc11.tar.gz<br />また失敗。<br />openvpn.spec<br />226: %doc contrib/ easy-rsa/ management/ sample-*/ plugin/README.*<br />(2.0.9ではあった)managementフォルダがないのに、設定上あるのでrpmを作る途中で止まる。<br /><br />tar xvzf openvpn-2.1_rc11.tar.gz openvpn.spec<br /><br />vi openvpn.spec<br />226G (で指定行へ移動)<br />management/ を消す。<br /><br />cp openvpn-2.1_rc11.tar.gz /usr/src/redhat/SOURCES/<br />rpmbuild -bb openvpn.spec<br /><br />成功。<br />rpm -ivh --test /usr/src/redhat/RPMS/i386/openvpn-2.1_rc10-1.i386.rpm<br /><br />rpm -ivh /usr/src/redhat/RPMS/i386/openvpn-2.1_rc10-1.i386.rpm<br /><br />OpenVPNのサーバ設定はほかを参照してくださいな。<br /><br />ほかにopenvpn.specのおかしいところ。<br /><br />55: %{!?with_pkcs11:BuildRequires: pkcs11-helper-devel}<br />56: %{!?with_pkcs11:Requires: pkcs11-helper}<br />-define "with_pkcs11 1"なら pkcs11-helper-develがいらない!?<br /><br />102: %configure --disable-dependency-tracking %{?with_password_save:--enable-password-save} %{?without_lzo:--disable-lzo} %{?with_kerberos:--with-ssl-headers=/usr/kerberos/include}<br /><br />pthread対応もほしいところ。「 %{?with_pthread:--enable-pthread}」<br />SSL/TLS鍵認証の遅延が改善されるらしい。<br /><br />pkcs11は、「 %{?without_pkcs11:--disable-pkcs11}」<br />55: %{!?without_pkcs11:BuildRequires: pkcs11-helper-devel}<br />56: %{!?without_pkcs11:Requires: pkcs11-helper}<br />にしたほうがいいかも。<br /><br />226: %doc contrib/ easy-rsa/ management/ sample-*/ plugin/README.*<br />(2.0.9ではあった)managementフォルダがないに、設定上あるのでrpmを作る途中で止まる。Gonbeehttp://www.blogger.com/profile/01995638424260523733noreply@blogger.com0tag:blogger.com,1999:blog-11053484.post-51837178824570164712008-09-15T19:53:00.002+09:002008-09-15T20:50:05.321+09:00Google Chrome と Java Applet と 管理者権限 @Windows VistaWindows Vista上で、JDKやJRE 6u7をインストールした環境で<a href="http://www.java.com/ja/download/installed.jsp">インストールの確認</a>を行うと失敗します。<br /><br />Google Chromeで、Java Appletを利用するには、Java SE 6a Update 10以上のJREかJDKが必要です。<br />9/15現在で対応するのは、<a href="http://java.sun.com/javase/downloads/ea/6u10/6u10rcDownload.jsp#6u10JREs">6u10のRC版</a>のみになります。そのうち<a href="http://www.java.com/ja/download/manual.jsp">通常のダウンロード</a>でも提供されるでしょう。<br /><br />JREとGoogle Chromeのインストール後再び<a href="http://www.java.com/ja/download/installed.jsp">インストールの確認</a>をしてみると、失敗します。<br />(URLバーにabout:pluginsでも確認できます)<br /><br />Vista上ではGoogle Chromeを管理者権限で起動しないとJavaのNPAPIプラグインが見つからないようです。Gonbeehttp://www.blogger.com/profile/01995638424260523733noreply@blogger.com0tag:blogger.com,1999:blog-11053484.post-24164689547282197732008-08-19T02:34:00.002+09:002017-10-13T22:22:38.671+09:00スパムブログとは?コピペっぽいぶつ切りの書き方が多かったので、<br />
スパム ブログと判定されてしまった。<br />
<br />
とりあえず、解除を申請してみる。<br />
<br />
スパムブログとは<br />
<a href="http://help.blogger.com/bin/answer.py?answer=42577">http://help.blogger.com/bin/answer.py?answer=42577</a><br />
このブログでは文字確認を行う必要があります<br />
<a href="http://www.blogger.com/unlock-blog.g?lockedBlogID=11053484">http://www.blogger.com/unlock-blog.g?lockedBlogID=11053484</a>Gonbeehttp://www.blogger.com/profile/01995638424260523733noreply@blogger.com0tag:blogger.com,1999:blog-11053484.post-11140940962757672752008-08-19T02:10:00.003+09:002008-09-15T22:33:06.356+09:00PHPコマンドラインの変数環境変数に設定されている物は、$_ENVから$_SERVERに引き継がれるのでcrontabなどで注意<br /><br />$argv,$argcもphp.iniなどの設定によっては、出力されない。<br /><br />crontabなどを考えると、<br />$_ENV["HOSTNAME"] ($_SERVER["HOSTNAME"])は使わずに、<br />$hostname = php_uname('n');<br />$hostname = exec("/bin/hostname");<br />などを、使う。<br /><br />CentOS4<br /><br /><strong>共通</strong><br />_SERVER["PHP_SELF"] =><br />_SERVER["SCRIPT_NAME"] =><br />_SERVER["SCRIPT_FILENAME"] =><br />_SERVER["PATH_TRANSLATED"] =><br />_SERVER["DOCUMENT_ROOT"] =><br />_SERVER["REQUEST_TIME"] => 1219079461<br />_SERVER["argv"] => Array<br />(<br />)<br />_SERVER["argc"] => 0<br /><br /><strong>crontab (/bin/sh)</strong><br />_ENV["SHELL"] => /bin/sh<br />_ENV["USER"] => hoge<br />_ENV["PATH"] => /usr/bin:/bin<br />_ENV["PWD"] => /home/hoge<br />_ENV["SHLVL"] => 1<br />_ENV["HOME"] => /home/hoge<br />_ENV["LOGNAME"] => hoge<br />_ENV["_"] => /bin/env<br /><br />_SERVER ・・・_ENVを引き継ぐ<br /><br /><strong>loginシェル /bin/bash</strong><br />_ENV["HOSTNAME"] => foobar<br />_ENV["TERM"] => xterm<br />_ENV["SHELL"] => /bin/bash<br />_ENV["HISTSIZE"] => 1000<br />_ENV["USER"] => hoge<br />_ENV["LS_COLORS"] => no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=00;32:*.cm<br />d=00;32:*.exe=00;32:*.com=00;32:*.btm=00;32:*.bat=00;32:*.sh=00;32:*.csh=00;32:*.tar=00;31:*.tgz=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;<br />31:*.zip=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.bz=00;31:*.tz=00;31:*.rpm=00;31:*.cpio=00;31:*.jpg=00;35:*.gif=00;35:*.bmp=0<br />0;35:*.xbm=00;35:*.xpm=00;35:*.png=00;35:*.tif=00;35:<br />_ENV["KDEDIR"] => /usr<br />_ENV["PATH"] => /usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/hoge/bin<br />_ENV["MAIL"] => /var/spool/mail/hoge<br />_ENV["PWD"] => /home/hoge<br />_ENV["INPUTRC"] => /etc/inputrc<br />_ENV["LANG"] => ja_JP.EUC-JP<br />_ENV["HOME"] => /home/hoge<br />_ENV["SHLVL"] => 2<br />_ENV["LOGNAME"] => hoge<br />_ENV["LESSOPEN"] => /usr/bin/lesspipe.sh %s<br />_ENV["G_BROKEN_FILENAMES"] => 1<br />_ENV["_"] => /usr/bin/php<br /><br />_SERVER ・・・ _ENVと同じ物Gonbeehttp://www.blogger.com/profile/01995638424260523733noreply@blogger.com0tag:blogger.com,1999:blog-11053484.post-35705924600749612192008-02-23T02:51:00.001+09:002008-02-23T10:25:27.898+09:00Mono 1.2.6 コマンド一覧<span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: pre; widows: 2; word-spacing: 0px;font-family:'Lucida Grande';" >・コマンド一覧<br /></span><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: pre; widows: 2; word-spacing: 0px;font-family:'Lucida Grande';" >[mono-core]<br />mono - Mono用ECMA-CLI ネイティブコード ジェネレータ (</span><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: pre; widows: 2; word-spacing: 0px;font-family:'Lucida Grande';" >JIT</span><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: pre; widows: 2; word-spacing: 0px;font-family:'Lucida Grande';" >/実行時、AOT/実行前コンパイル)<br />/etc/mono/config , ~/.mono/config - Mono runtime file format configuration<br /><br />mcs, gmcs, smcs - Mono C# コンパイラ (1.0, 2.0, Moonlight)<br /></span><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: pre; widows: 2; word-spacing: 0px;font-family:'Lucida Grande';" ><br />gacutil - Global Assembly Cache management utility.<br /><br /></span><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: pre; widows: 2; word-spacing: 0px;font-family:'Lucida Grande';" >chktrust - Check the trust of a PE executable.<br /></span><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: pre; widows: 2; word-spacing: 0px;font-family:'Lucida Grande';" >certmgr - Mono Certificate Manager (CLI版)<br /></span><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: pre; widows: 2; word-spacing: 0px;font-family:'Lucida Grande';" >setreg - Change settings for 公開鍵暗号<br /></span><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: pre; widows: 2; word-spacing: 0px;font-family:'Lucida Grande';" >sn - デジタル 署名/認証/比較 strongnames on CLR assemblies.<br /></span><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: pre; widows: 2; word-spacing: 0px;font-family:'Lucida Grande';" >mozroots - </span><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: pre; widows: 2; word-spacing: 0px;font-family:'Lucida Grande';" >信頼されるルート認証書を</span><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: pre; widows: 2; word-spacing: 0px;font-family:'Lucida Grande';" >Mozila用LXRから</span><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: pre; widows: 2; word-spacing: 0px;font-family:'Lucida Grande';" >ダウンロードし</span><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: pre; widows: 2; word-spacing: 0px;font-family:'Lucida Grande';" >Mono用認証書ストアに</span><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: pre; widows: 2; word-spacing: 0px;font-family:'Lucida Grande';" >インポートする<br />[mono-devel]<br />al, al2 - Mono Assembly Linker<br />monolinker - Mono CIL Linker (manページがカラ?)<br /></span><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: pre; widows: 2; word-spacing: 0px;font-family:'Lucida Grande';" >monodis - CIL image content dumper and disassembler.<br />monop, monop2 - Mono Class Outline Viewer<br />MakeCert - Create X.509 certificates for test purposes<br />...<br /><br />[xsp]<br />XSP - Mono ASP.NET Webサーバ (xsp and xsp2)<br />(xsp,xsp2,mod-mono-server,mod-mono-server2,fast-cgi-server,fast-cgi-server2)<br /><br />[mod_mono]<br />mod_mono - </span><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: pre; widows: 2; word-spacing: 0px;font-family:'Lucida Grande';" >ASP.NET用</span><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: pre; widows: 2; word-spacing: 0px;font-family:'Lucida Grande';" >apacheモジュール。 Works together with mod-mono-server.exe<br /><br />[mono-web]<br />disco<br />mconfig<br />soapsuds<br />wsdl<br />xsd</span>Gonbeehttp://www.blogger.com/profile/01995638424260523733noreply@blogger.com0tag:blogger.com,1999:blog-11053484.post-27099888435965634442008-02-23T02:14:00.007+09:002008-02-23T16:40:25.909+09:00Mono(.NET)環境のインストール@CentOS4mono環境はyumでインストールできる<br /><br />■yumレポジトリにmonoを追加<br /># wget http://www.go-mono.com/download-stable/rhel-4-i386/mono.repo<br /><br /># vi mono.repo<br />で確認する。<br />常時表示しない場合やオートアップデートから外す場合は、<br />enable=0<br />にする<br /><br /># mv mono.repo /etc/yum.repos.d/<br /><br />ちなみに提供されるRPMファイルは、PGP署名無しだった。<br /><br />■yumインストール<br />・rpm一覧表<br />http://www.go-mono.com/download-stable/rhel-4-i386/<br /><br />・ASP.NETをAppache上で動かしたいなら<br /># yum --enablerepo=mono mod_mono<br />を実行してインストール<br /><br />■C#ソースのCILコンパイルと実行<br />$ vi hello.cs<br />http://www.go-mono.com/docs/monodoc.ashx?link=ecmaspec%3a8.1<br /><br /><pre>namespace CSharp.Introduction<br />{<br /> public class HelloMessage<br /> {<br /> public string Message {<br /> get {<br /> return "Hello, world";<br /> }<br /> }<br /> }<br /><br /> class HelloApp<br /> {<br /> static void Main() {<br /> HelloMessage m = new HelloMessage();<br /> System.Console.WriteLine(m.Message);<br /> }<br /> }<br />}</pre><br />$ gmcs Hello.cs<br />を、実行すると efi-app-ia32 形式の hello.exe が出来上がり、<br />$ mono hello.exe<br />で、実行できます。中身は、CILバイトコードです。<br />$ mono --aot hello.exe<br />を、実行すると elf32-i386 形式の hello.exe.so を作成した後に実行します。<br />中身はIA32のネイティブバイトコードですが、そのまま実行は出来ません。monoから実行するためのファイルです。<br /><br />■コードページをインストールして、日本語を使う<br />デフォルトでは I18N.dll, I18N.West.dllのみで utf-8や iso-8859-1などしか使えません。<br />extrasを追加すると、 I18N.CJK.dll, I18N.MidEast.dll, I18N.Other.dll, I18N.Rare.dllが入りshift_jisやeuc-jpなどが使えるようになります。<br /># yum install --enablerepo=mono mono-locale-extras<br /><br />その場で、編集するならvim-enhancedを入れましょう。<br /># yum install vim-enhanced<br />LANG=ja_JP.eucJP 環境ならEUC-JPのファイルに、<br />LANG=ja_JP.utf8 環境なら、UTF-8のファイルになります。<br /><br />http://www.go-mono.com/docs/monodoc.ashx?link=ecmaspec%3a8.1<br /><br />$ vi hello2.cs<br /><pre>namespace CSharp.Introduction<br />{<br /> public class HelloMessage<br /> {<br /> public string Message {<br /> get {<br /> return "世界よ、こんにちは";<br /> }<br /> }<br /> }<br /><br /> class HelloApp<br /> {<br /> static void Main() {<br /> HelloMessage m = new HelloMessage();<br /> System.Console.WriteLine(m.Message);<br /> }<br /> }<br />}</pre><br />$ iconv -f utf-8 -t cp932 hello2.cs > sjis_hello2.cs<br />$ iconv -f utf-8 -t iso-2022-jp hello2.cs >jis_hello2.cs<br />$ iconv -f utf-8 -t euc-jp hello2.cs > eucjp_hello2.cs<br /><br />・shift_jis(cp932)バイトコンパイル<br />$ gmcs -codepage:932 sjis_hello.cs<br />・utf-8(cp65001)バイトコンパイル<br />$ LANG=ja_JP.utf8 gmcs utf8_hello.cs<br />$ gmcs -codepage:65001 utf8_hello.cs<br />・EUC-JP(cp51932)バイトコンパイル<br />$ LANG=ja_JP.eucJP gmcs eucjp_hello.cs<br />$ gmcs -codepage:51932 eucjp_hello.cs<br />・iso-2022-jp(cp50221)バイトコンパイル<br />$ gmcs -codepage:50221 jis_hello.cs<br /><br />・実行<br />バイトコンパイル後の内部コードは、utf-16やutf-8になりますが、<br />実行時は、LANG環境に合わせた文字コードで出力されます。<br />$ LANG=ja_JP.ujis mono hello.exe<br />$ LANG=ja_JP.utf8 mono hello.exe<br /><br />ですので、<br />$ LANG=C mono hello.exe<br />では、日本語が出力出来なくなるので、最低限 LANG=en_US.utf8 を使いましょう。<br /><br />■mcs, gmcs, smcs - Mono C# Compiler (1.0, 2.0, Moonlight) の機能<br />mcs - .NET 1.xプロファイル、C# 1.0と2.0の機能(ジェネリクスとNullable型をのぞく)<br />gmcs - .NET 2.0プロファイル、C# 2.0の機能すべて<br />smcs - (Webブラウザ上で動く)Silverlight/Moonlightプロファイル、 デフォルトで-langversion:linqオプションがつくのでC# 3.0のLINQが利用できます。<br /><br />■<br /># rpm -qf /usr/bin/mcs<br /># rpm -qf `which mcs`<br />mono-core-1.2.6-4.novell<br /># rpm -ql mono-core<br /><br />■Monoダウンロードページ<br />RPMについては、Download Monoのページで確認できます。<br />Windows用などもここからダウンロードできます。<br /><br />http://www.go-mono.com/mono-downloads/download.html<br /><br />■コードページ一覧(抜粋)<br />Monoでは、I18N.*.dllを追加しなければネイティブであっても使えません。<br /><br />・.net ネイティブ<br />コード ページ 名前 表示名<br />1200 utf-16 Unicode<br />1201 unicodeFFFE Unicode (ビッグ エンディアン)<br />12000 utf-32 Unicode (UTF-32)<br />12001 utf-32BE Unicode (UTF-32 ビッグ エンディアン)<br />65000 utf-7 Unicode (UTF-7)<br />65001 utf-8 Unicode (UTF-8)<br /><br />20127 us-ascii US-ASCII<br /><br />1252 Windows -1252 西ヨーロッパ言語 (Windows)<br />28591 iso-8859-1 西ヨーロッパ言語 (ISO)<br /><br />50220 iso-2022-jp 日本語 (JIS)<br />50221 csISO2022JP 日本語 (JIS 1 バイト カタカナ可)<br />50222 iso-2022-jp 日本語 (JIS 1 バイト カタカナ可 - SO/SI)<br />51932 euc-jp 日本語 (EUC)<br /><br />936 gb2312 簡体字中国語 (GB2312)<br />10008 x-mac-chinesesimp 簡体字中国語 (Mac)<br />20936 x-cp20936 簡体字中国語 (GB2312-80)<br />50227 x-cp50227 簡体字中国語 (ISO-2022)<br />51936 EUC-CN 簡体字中国語 (EUC)<br />52936 hz-gb-2312 簡体字中国語 (HZ)<br />54936 GB18030 簡体字中国語 (GB18030)<br /><br />10003 x-mac-korean 韓国語 (Mac)<br />20949 x-cp20949 韓国語 Wansung<br />50225 iso-2022-kr 韓国語 (ISO)<br />51949 euc-kr 韓国語 (EUC)<br /><br />28598 iso-8859-8 ヘブライ語 (ISO-Visual)<br />38598 iso-8859-8-i ヘブライ語 (ISO-Logical)<br /><br />57002 x-iscii-de ISCII デバナガリ文字<br />57003 x-iscii-be ISCII ベンガル語<br />57004 x-iscii-ta ISCII タミール語<br />57005 x-iscii-te ISCII テルグ語<br />57006 x-iscii-as ISCII アッサム語<br />57007 x-iscii-or ISCII オリヤー語<br />57008 x-iscii-ka ISCII カナラ語<br />57009 x-iscii-ma ISCII マラヤラム語<br />57010 x-iscii-gu ISCII グジャラート語<br />57011 x-iscii-pa ISCII パンジャブ語<br /><br />・残りの日本語関係<br />コード ページ 名前 表示名<br />932 shift_jis 日本語 (シフト JIS)<br />10001 x-mac-japanese 日本語 (Mac)<br />20932 EUC-JP 日本語 (JIS 0208-1990 および 0212-1990)<br /><br />・参考<br />.NET Framework SDK 2.0 > クラスライブラリ > 名前空間 System.Text > Encoding クラス<br />http://msdn2.microsoft.com/ja-jp/library/system.text.encoding(VS.80).aspGonbeehttp://www.blogger.com/profile/01995638424260523733noreply@blogger.com0