電力の供給が安定するまでの間、自宅サーバを停止しまています。
したがいまして、本ブログからリンクしているファイルのダウンロードは現在行えません。
[2011/5/3 追記]
休日や深夜といった消費がピークとなる時間帯以外はあまり問題無さそうなので、不定期ですが動かすことにしました(他の用途にも使っているので…)。
電力の供給が安定するまでの間、自宅サーバを停止しまています。
したがいまして、本ブログからリンクしているファイルのダウンロードは現在行えません。
[2011/5/3 追記]
休日や深夜といった消費がピークとなる時間帯以外はあまり問題無さそうなので、不定期ですが動かすことにしました(他の用途にも使っているので…)。
FreeMind ver.0.9.0用パッチのダウンロード(2011/10/25)
正確には、文字化けではなく、日本語が数値文字参照(NCR; Numeric Character References)で表現されているのですが。
マインドマップのアプリを使用してみようと思い、FreeMindをインストールしてみました。
拡張子が.mmである保存ファイルのフォーマットはxmlライクでヒューマンフレンドリー…なはずなのですが、前述のとおり日本語を保存すると数値文字参照になってしまうため、メリットを享受できません。
そこで、日本語文字をUTF-8でそのまま保存できるように修正を行いました。
私自身の使用時間がまだ極めて短いことと、使用している機能は限られたものだけであるため、潜在的な問題を含んでいるかもしれません。導入される方は人柱の覚悟が必要でしょう。
導入方法は、FreeMind ver.0.9.0の lib/freemind.jar を単に上書きするだけです。
参考:
昨日のエントリ
に絡んでリリースノートを読んでいたのですが、ワーキングコピーの記述箇所に
**警告**: SQLiteライブラリを通じてSQLiteにアクセスがある間に、SQLiteのファイルをコピーするのは安全ではありません。結果として、Subversionプロセスからアクセスされているワーキング・コピーの複製を作る事(tar, rsync, cpなどで)は、Subversion1.7ではサポートされません。それは壊れている可能性があります。(課題 #3596)
なんていう文面がありました。#3596というのは
ですね。ステータス上は解決済みということになっているようですが、おそらくこれはsvnadmin hotcopyコマンドでは問題は発生しない(はず)という意味で、ワーキングコピーに対する操作では依然問題が発生する、ということだと思います。
引用文中にある
Subversionプロセスからアクセスされているワーキング・コピーの複製を作る事(tar, rsync, cpなどで)は、Subversion1.7ではサポートされません。
というのはつまり、SVNがメタ情報を格納しているSQLiteファイルへのアクセス(writeに限らずreadであっても)中に該当ファイルコピーするとSQLiteファイルが壊れる可能性があるから止めろ、ということだと思います。
しかしTortoiseSVNなんかを使っていると、ユーザの意図しないタイミングでTortoiseSVNが該当ファイルへアクセスするような気がするのですが…そういう場合はコピーするな、ということなんでしょうかね。
svn revertを特定状況下で実行すると不具合が発生する問題について、以前のエントリ
で記載していました。
先日リリースされた1.7.0で同様の手順
- ユーザAが自分のワーキングコピーでファイル”file.txt”を削除します。(svn delete file.txt)
- その後、ユーザAはcommitを行わずに同名ファイルを追加します。(svn add file.txt)
- ユーザAは上記をコミットします。(svn commit file.txt)
- 一方、ユーザBは自分のワーキングコピーでfile.txtを編集します。
- その後、commit前に更新を行おうとします(svn update)
を試してみたところ、ユーザBのワーキングコピーで正しくファイルがrevertされるようになっていました。
3334:Tree conflict merry-go-round on update/switchのステータスも解決済みになっています。
上記のレポートでは、この問題の修正にはWC-NG(次世代ワーキングコピー)が寄与していると書かれています。これはクライアントサイドの機能ですので、SVNサーバが1.7未満のままであっても、SVNクライアントをアップグレードすれば問題は解消されると思われます。
なお、リリースノート(日本語訳)によると、
1.6のワーキング・コピーは、1.7では使えず、1.7のフォーマットに自動的にアップグレードされません。
ユーザはメタデータを新フォーマットにアップグレードするコマンド"svn upgrade"の実行を求められます。
とのことですので、既存のワーキングコピーを引き続き使用したい場合には若干手続きが必要なようです。
いんきゅばすver2.0.0をリリースしました(内部的な表記はベータバージョン(2.b.0)になっていますが)。久しぶりにLinux版も更新し、機能的にはWIN版/Linux版で同期が取れています。
変更点は前回記載した通りなので記述が重複するのですが、ver.1.7.xからの主な変更点は以下の通りです。
動作環境はver1.xと異なり、Java7が必須になります(ver1.xはJava6です)。
今後、ver1.xはバグフィックスのみとし、新しい機能はこのver2.xに追加していくことになると思います。次バージョンのcoroid-serverもこのver2.xをベースにすることになると考えます。
自分の作成しているプロダクト、作成時期によって使用しているloggingライブラリがバラバラなので、そろそろ統一したいなあ、と考えていたところ、SLF4J Migratorなるものがあることに気付きました。
早速使用してみたのですが、変換対象の.javaファイルの文字コード、改行コードともシステムデフォルトであるとみなして処理するため、Windows上でUTF-8/LFなファイルを対象に実行すると悲惨な結果になってしまいました。
file.encodingとline.separatorを指定してやればよいのですが、file.encodingについては-Dfile.encoding=”UTF-8”で良いもののの、コマンドラインでline.separatorを指定する方法が分かりませんでした。bashでは下記リンク先のようにできるそうですが…
そんなわけで、GUIでエンコーディングと改行コードを指定できるように変更した.jarを作成しました。ダウンロードは以下のリンクから。
ソースは以下になります。
…ところでMacの改行コードって今も\rなんですかね…?
久しぶりにffmpeg/avconvのビルドを行ってみました。時間がかかったのでちゃんと動くのか試すのはまた後日ですが…
ビルドに当たってはこちらのサイト(2011.09.07更新)を参考にさせて頂きました。
少しハマったところがあったのでメモしておきます。(ちなみに私はlinux向けビルドなので、完全に同じ手順ではないです。)
1点目。libvpxのダウンロード先ですが、
双方つながりませんでした…前者は公式のリポジトリなのですが最近ずっと不安定らしく、http://code.google.com/p/webm/downloads/list から落としてきました。
参考:
2点目。openjpeg_v1_4_sources_r697.tgzをビルドしようとすると、
‘Z_BEST_COMPRESSION’ undeclared (first use in this function)
というようなエラーで失敗してしまいました。これはSVNリポジトリから最新バージョンのコードをとってきて対処しました。しかしlibtiffを認識してくれず、ちゃんとはビルドできず仕舞いです…(libtiffもtiff-3.9.5.tar.gzから4のβではpkg_configを使うようになっていたり、変更点があるようです)
参考:
3点目。libschroedinger-1.0のインクルードファイルが、冒頭リンク先では $INC/schroedinger にインストールされる想定ですが、私が同手順でインストールしたところ $INC/libschroedinger-1.0/schroedinger になっていました。これは一時的にシンボリックリンクを張って対応しました。
いんきゅばす派生元(つまり本家)であるさきゅばすもついに更新再開されたようです。元々にちゃんねるの該当スレッドでニコニコ動画サービスの現行仕様への対応を行われていた方がプロジェクトに参画された、という理解で良いんでしょうかね?
また、現行仕様への対応だけではなく、従来のバージョンに対して新しい機能も追加されているようです(以前記載したcookie共有の件も時期的に考えてさきゅばすといんきゅばす両方使用してらっしゃる方からでしょうか)。いんきゅばすはさきゅばすの上位互換です、というように書いて来ましたが、この文言消しておかないといけないですね…
さて、いんきゅばすの話です。
やろうやろうと考えていて中々できなかったこと全2個中の2個目もやっと目処がついてきました。目標としては
の実現、ということになります。
処理の並行化やコマンドラインからの実行機能の充実を考えたとき、現行のものではGUIの部分とタスクの部分の結びつきが強すぎて変更を加えるのが大変、というのが1点目で解消したい事です。
2点目は、ちょっと建て増ししすぎてインタフェースがわかりづらくなってしまった部分をどうにかしたいのと、不要な機能はこの機会に削ってスリム化してしまおうというのが魂胆です。スリム化については貧乏性が災いして、まだ全然うまくいっているようには感じられませんが…
いんきゅばすver1.xに対する使用者からみた主なメリットは以下のようになります。
機能についての詳細説明は、正式版リリースの際にまた行いたいと思います。
ちなみに画面はこんな感じです。(クリックで拡大)
一応動作するファイルもありますが、実行する場合は以下の点に注意してください。
今の時点ではこれ以上の実行準備に関する説明はご容赦を。
java.comからはまだJava7は入手できないようです。ここから入手できるようになるくらいにはver2.0.0リリースしたいですね。
そもそもコンポーネントのサイズが何やら大きいぞ?と使いはじめから思っていたのですが、そのときはNimbusってそんなものなのかな…と考えていました。表題の件もJavadocを見ると
進捗文字列をサポートしない、または進捗バーが不確定モードのときだけサポートする Look & Feel もあります。
なんてことが書いてあったので、仕様なのかも、と考えていました。
が、コマンドプロンプトから起動してみたところ、大きさもネイティブのLAFと同じだし、プログレスバーに文字もちゃんと表示されていました。なんでだろ?とNetBeansが使用しているAntのbuild.xmlでrunの部分を見てみたところ、-Dfile.encoding=UTF-8が設定されており、もしやこれが?とおもって検索してみたところ、やはりそうでした。
file.encoding設定値がフォント構成ファイルの情報読み込みに影響を与えるようです。
NetBeans7.0.1とEclipse3.8m1で試してみましたが、ファイルの文字コードをUTF-8に設定すると、双方のIDEで実行時にfile.encodingもUTF-8に設定されてしまうようです。
ユーザ(私)がUTF-8を設定したのはコンパイル前のjavaソースをUTF-8で書きたいからであって、実行時にどうこうしたいからじゃないんですけど、なんで両方のIDEともこんな仕様になってるんでしょうかね。あとfile.encodingって結局何がしたいための定義なのかもよく理解できません(昔からのバグが多く残っているようですし)…
結論から言うと使い方が間違ってたわけなんですけれど。
Java7で導入されたjava.nio.file.Pathのregisterメソッドを使用する事でファイル更新を監視できるようになりました。
webで検索してみると、大体変更のあったファイル名を出力するようなサンプルがヒットします。こんな感じのプログラムでしょうか。
1: WatchService watchService = FileSystems.getDefault().newWatchService();
2: Path dir = ...;
3: dir.register(watchService,
4: StandardWatchEventKinds.ENTRY_CREATE,
5: StandardWatchEventKinds.ENTRY_MODIFY,
6: StandardWatchEventKinds.ENTRY_DELETE);
7: while (true) {
8: WatchKey key = watchService.take();
9: for (WatchEvent<?> watchEvent : key.pollEvents()) {
10: WatchEvent<Path> ev = (WatchEvent<Path>) watchEvent;
11: Path file = ev.context();
12: System.out.println(file);
13: }
14: }
ディレクトリdirのファイルが追加/更新/削除した場合に、その変更があったファイルのファイル名を出力しています。
このプログラムを見て、fileっていうのは変更がファイルを示すものなんだろうな、と思い込んでプログラムを組んだのですが、得られたfileを操作しようとしてもファイルが無いと、言われてしまいます(もちろん削除以外の操作で、です)。
これは何かおかしいぞ、と思いPath#toAbsolutePath()でフルパスを得て出力してみたところ、パスが確かにおかしい。
さらに検索してみたところ、OracleのThe Java Tutorialsページにそのまんまの解説がありました。
上記のコード中のfileは、ファイル名のみの情報を持つ(パスの情報は持たない)ため、パスを含めた正しいファイル情報を得たいのであればresolveメソッドで監視対象としたディレクトリのパスを加えてあげないといけないようです。
ダウンロードはこちらから(リリースノート, 更新履歴)。差分リリースになりますのでver1.7.0もしくはver1.7.1に上書きしてください。詳しいインストール方法はリリースノートをどうぞ。
1.7.0で無くした過去ログ取得機能ですが、やはり元々あった機能が(意図的にでなく不本意で)無くなった、というのはどうにも気持ちが悪いのでプレミアム会員になって調査することにしました。
結果、1.7.0で記載した制約事項は以下のように更新されます。
「コメントの量を減らす」場合は、過去ログの時刻入力欄の右のチェックボックス「旧仕様コメント数」にチェックを付けてから変換ボタンを押してください。ローカルのコメントファイルを使用する場合はこの設定は無関係です。
この「コメントの量を減らす」、はじめは対応の必要があるのか疑問だったのですが、現在のニコニコ動画サービスは、このチェックを入れないと昔の動画でも今のコメント表示方式で表示されてしまうんですね。当時のWeb上の書き込みを見るとこの点が不満として多く挙がっていたので今回の対応に含めています。
上記制約事項のうち対応していない残りの1点ですが、これは今のところ将来的にも対応する予定はありません。この機能が実現したとして、できるようになるのはコメント数を少なくするだけ(1分当たり100件より多くすることはできない)です。「コメント数を微妙に減らしたい」というような要求があるようには思えませんので…(以前からある機能も、使用される状況としてはコメント数を増やしたい場合だと考えています。)
[追記: 当初間違ったものをリリースしていました。本バージョン1.7.1をダウンロードしたつもりなのに、タイトルバーのバージョン表示が1.7.0のままであれば、再度ダウンロードしなおしてください。]
報告頂いた不具合
ダウンロードはこちらから。差分リリースになりますのでver1.7.0に上書きしてください。詳しいインストール方法はリリースノートをどうぞ。
さて、この対応を行っている最中に
ということに気が付きました。コメントの寿命が長くなった分、文字が薄いコメントもさぞかし多いのだろうな、とニコニコ動画サービスで動画を見直してみたのですが、半透明なコメントが無くなっている(全部不透明になっている)ような…?この辺りの挙動も変わったのでしょうか。ご存知の方がいらっしゃいましたら教えて頂ければと存じます。
もうひとつ。Webブラウザとのクッキーを共有できればいんきゅばすに処理させた後Webブラウザでアクセスした際にログインページに飛ばされなくて都合が良い、というお話を頂いたのですが、どの程度需要があるのでしょうかね…?
NicoBrowserとNicoCache_nlみたいなプロキシサーバを協調させるとより便利に、と以前伺ったのですが、この記憶を頼りに検索してみると以下の拡張機能を提供されている方がいらっしゃいました。
いんきゅばすで試してみましたが、うまく動きました。簡単な導入方法をWikiに記載しましたので上記の不満がある場合は試してみてください。Cookie共有以外にも色々と活用法はあると思います。
ダウンロードリンクとインストール方法は本エントリ後半に記載しています。
さきゅばす1.22rの時代からコメント仕様が変更になった、というのは知っていたのですが、2回(2010/12/22, 2011/2/3)も更新があったのですね…
というわけで2011/2/3から適用されている新コメント表示仕様への対応です。
制約事項がいくつかあるので書いておきます。
上2点については、画面に新しい設定項目を追加する必要があるのですが、ver2.0.0に向けて画面レイアウトを再検討しているのでちょっと手を入れたくなかったから、という理由です。個人的には必要でないため対応していないのですが、要望が多ければ…というところです。
いんきゅばすの開発にやる気が出ない原因がいくつかあるのですが、そのうちの1つが「いんきゅばすとNicoBrowserで重複している機能がある」というものでした。同じ対応を2回別々にやらないといけない、ということです。
今回ついに上記の問題を解消し、いんきゅばすとNicoBrowserの重複部分を統合することができました。これで開発の効率も上がってくれると思います。大きい問題はまだあと1つ残っているのですが…
上記の理由で、今回のバージョンは、見た目はあまり変わっていないのですが、内部的には前のバージョンからかなり変わっています。ですのでバグは多めだと思いますので覚悟してください&報告よろしくお願いします。
今回から差分リリースを復活させることにしました。使い始めるまでの手間が増えるのであまり好きではないのですが、毎回フルリリースを行うと容量が大変なことになることに気付きましたので。
ダウンロードページにある「inqubus差分リリース」の項目にあるのが差分リリース版です。1.7.0ダウンロードリンクの右にリリースノートリンクがあると思います。ここに上書き元のバージョンを記載していますので、差分リリース版を使用する場合はリリースノートの記述に従ってください。
今回の場合、1.5.0の上に1.7.0を上書きして使用することになります。
で引っかかったばかりでしたが、またインストーラが止まりました…。インストール時にアンチウイルスソフトを止める習慣が無いもので、ハマると気付くまでかなり時間を浪費してしまいます…
こちらも1年以上ぶりのリリースです。プロダクト名を『いんきゅばす』に変更しました。今回の変更点は以下の通りです。
16:9対応については、以前のテスト版では、内部の固定値を色々調節して何とかそれっぽく見えるようにしていたのですが、下記のblog
の内容を参照させてもらったところ、1箇所変更するだけで良いことに気付きました…
プロダクト名の変更はver.2.0になったら…と考えていたのですが、いつまで経っても出来上がりそうにないので、今回の中途半端なタイミングで行うことにしました。タイトルバーの表示名が変わっただけで、後は全くそのままです…。
前回のver.0.6.1のリリースが去年の5月なので、ずいぶん時間が空きました…そしてバージョンが大きく上がった割に機能的にはほとんど変わっていません…
NicoBrowserは他のcoroidなどからライブラリとして使用しているのでAPI的な変更は結構あるのでこのようにバージョン番号が上がっていますが、NicoBrowser単体で使用する分には、増えた機能は以下の一点のみです。
そして、
…そんなわけで、ver.0.6.1を使用しているのであれば、敢えて移行する意味は無いかもしれません…
«[読書]Hello, world!からはじめるCUDAプログラミング - CUDA by Example 汎用GPUプログラミング入門
Christain Bauer: HIBERNATE イン アクション
理論と実践が双方とも素晴らしい製品であるHibernate。本書はそのプロダクトを書名に冠していますが、Hibernateを使うつもりがなく、ORマッピングの解説書として読むにしても十分な良書です。Second EditionとしてJava Persistence With Hibernateという書籍も出版されていますが、残念ながら現在のところ
和訳はされていません。-インアクションは2.xの、Java Persistence-は3.1の頃のものなので、最新版とはちょっと違うところもあることに注意。 (★★★★★)
アンドリュー・S・タネンバウム: 分散システム 原理とパラダイム 第2版
クライアント/サーバシステムを構築する上で必要となる知識が総論されてます。Web技術者も、フレームワーク部分を開発するのであれば必読。 (★★★★★)
Joel Spolsky∥著: ジョエル・オン・ソフトウェア
前述の書籍「ソフトウエア開発プロフェッショナル」をより砕いたもの、という感じでしょうか。
前書きではプログラマでなくSE向けの本のように書かれているが、プログラマが読んでも面白い本であると思われます。
SEになった新人(あるいはそういう会社に入る/入りたての人)にとっては、これからどういったことが仕事を遂行していく上で起こりえるのか、どのように考えて行なっていけばいいのか決定する助けになると思います。
元は″Joel on Software″というブログの記事で、web上でも一部日本語で読めます。
http://japanese.joelonsoftware.com/
(★★★)
ドナルド・C・ゴース,ジェラルド・M・ワインバーグ: ライト、ついてますか
問題解決(一昔前のの流行語で言うところの『ソリューション』)能力は、システムエンジニアのスキルとして備えるべきもののうちのひとつです。しかし、これは難しい。学校で出されるテストと違い、唯一の、(問題提出者が想定している)解を求めるだけが「問題解決」では無いからです。そもそも、何が問題なのか、それは本当に問題なのか、それは本当に解決すべき問題なのか、その問題解決方法は正しいのか、などを解決しなければ、「その解は正しいのか」に辿りつくことができません。この本の最も良いところのひとつは、本があまり厚くないこと。すぐに読めるし、何回も読み返す気になるでしょう。 (★★★★★)
スティーブ・マコネル: ソフトウエア開発プロフェッショナル
コードコンプリートで有名なスティーブマコネルの著書。新人SEに読んで欲しい。個人として業界の中でどうあるべきか、組織としてどうあるべきか、SEのプロ意識とは?SEの心構え概論、といったところでしょうか。また、業界における資格の重要性についても説かれています。この業界では資格が特に軽んじられる傾向がありますが、この傾向はどんな弊害をもたらすのか、将来的にこの業界は資格に対してどのような姿勢で臨んでいくべきなのか。日経BP社では(他の出版社もだが)最近、似たような類いのあまり面白くない書籍が乱出版されていますが、この本は別格だと思うので安心して購入して欲しいと思います。 (★★★★★)
最近のコメント