さとやn Blog

試合はRuby,勝負はC#!

2011年03月

マンチュリアン・リポート (100周年書き下ろし) 浅田次郎

ここ最近は仕事関係の本ばかり読んでいたので、文芸作品はかなり久しぶり。
この人の作品は実はあまり好きでなかったのですが、この作品はとても良かったです。
張作霖爆殺事件、言葉だけは昔歴史で習って知ってはいましたが、張作霖が何者なのかは全く知りませんでした。
う〜ん、ちょっと興味湧いてきた。

タイトルマンチュリアン・リポート (100周年書き下ろし)
著者/監督/Artist浅田 次郎
価格, 出版¥ 1,575 講談社
評価★★★★★
 2011-03-28

【内容説明】

爆殺――その朝、英雄の夢が潰えた。 『中原の虹』完結から3年。 剛胆にして繊細。優しくて非情。流民の子から馬族の長にのしあがり、ついには中国全土をも手に入れかけた稀代の英雄・張作霖の、壮絶なる最期。 浅田次郎、14年ぶりの書き下ろし長編小説。 昭和3年6月4日未明。張作霖を乗せた列車が日本の関東軍によって爆破された。一国の事実上の元首を独断で暗殺する暴挙に、昭和天皇は激怒し、誰よりも強く「真実」を知りたいと願った――。 「事件の真相を報告せよ」。昭和天皇の密使が綴る満洲報告書。そこに何が書かれ、何が書かれなかったか。 いま解き明かされる「昭和史の闇」。息を呑む展開、衝撃の「真相」、限りなく深い感動、――傑作長篇小説の誕生!

【内容(「BOOK」データベースより)】

昭和3年6月4日未明。張作霖を乗せた列車が日本の関東軍によって爆破された。一国の事実上の元首を独断で暗殺する暴挙に昭和天皇は激怒し、誰よりも強く、「真実」を知りたいと願った―。混沌の中国。張り巡らされた罠。計算と誤算。伏せられた「真実」。

超簡単にHTMLテーブルでエクセルのオートフィルタみたいなのを実現するライブラリ

仕事でHTMLテーブルでエクセルのオートフィルタのようなものを使いたい、という要望があり、多分探せばそんなスクリプトがあるんじゃないかと思い探したところやっぱりありました。
http://www.javascripttoolbox.com/lib/table/index.php

これは、tableやth要素にclass属性でtable-autofilterとかtable-filterableとしてあげるだけで, ソートやらフィルタリングやらページングやら(いずれもクライアント側で処理)を簡単に装備できてしまうという超スグレモノです。

早速やってみる。
まずソースをダウンロードして、とりあえず table.js という名前で保存してインクルード。JavaScriptに関してはこれだけで、自分でなにか書く必要とかはありません。

	<%= javascript_include_tag "table.js" %>	

次に、フィルタリングしたいテーブルのclass属性に class="table-autofilter" を追加して、フィルタしたい列のthに class="table-filterable"を指定。
こんな感じでしょうか、、。

 

<table class="table-autofilter">
  <thead>
    <th class="table-filterable">文字列</th>	 

※テーブルヘッダは thead, データ行は tbodyに書かないとダメなようです。JavaScriptソース見たらそうなってました、、、。

適当にデータを作って、ページを表示してみる。

22)
35)
 00)
06)

素晴らしい!

Java: POI IF関数でも結果を取得できるか?

結論から言うと、出来る。

 50)

23)

Rails3で mongrel

なんかRails3にで、
rails server
ってやると、mongrelがインストールされているにも関わらず、webrickが起動する、、、。

調べてみたら、
Gemfile(またか、、、)に
gem 'mongrel'

とするだけでいいらしい。

3はなんか色々変わってるんだなー、、。 
 

Rails: postgresではまる rake aborted! libpq.so.5: cannot open shared object file

まず、
gem install pg 
でこける。

gem install pg -- --with-pg-config=/usr/local/pgsql/bin/pg_config

でインストールはできたけど、rake db:create しようとしたら、今度は表題のエラーが出る。

libpq.so.5
が見つからないと言っているようです。

でも
/usr/local/pgsql/lib
にはちゃんとある。
ってことは単にパスが通ってないだけか、、、。でも、だいぶ前に通してたはずなんだけどなー、、、、あ、あれは別のマシンか、、、。

.bash_profileとか .zshrcとかに

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/pgsql/lib

でちゃんとできました。

どうもパス通し忘れでハマることが多い、、、。

Java POI で関数の値を取得してみる

POIを使ってエクセルのデータを読めることはわかったのですが、関数の値や別セルの参照値はどうなんだろう? 実際ある程度の関数や参照は扱えないと使いものにならない。

調べてみると、ある程度のはサポートされているらしい。
  • References: single cell & area, 2D & 3D, relative & absolute
  • Literals: Number, text, boolean, error and array
  • Operators: arithmetic and logical, some region operators
  • Built-in functions: over 350 recognised, 280 evaluatable
  • Add-in functions: 3 from Analysis Toolpack
とりあえず十分のようです。

FormulaEvaluator というクラスが用意されていて、こいつで計算結果なりを取得できるようです。
取得方法はいくつか用意されているのですが、とりあえず一番簡単な

 FormulaEvaluator.evaluateInCell(Cell cell)

を使ってみる。これは引数で指定されたセルが計算式ならその結果でセルを置き換えてしまいます(元の式は式は結果で上書きされる)。
式でないなら何も起こりません。 
 とりあえず、sum()関数と別シートのセルを参照するようなエクセルファイルを作って試してみました。

 31)
50)
	public class Main {
		public static void main(String[] args){
		    try {
		        InputStream file = new FileInputStream("data/hello_poi.xls");
		        Workbook book = new HSSFWorkbook(file);
		        FormulaEvaluator feval = book.getCreationHelper().createFormulaEvaluator();
		        Sheet sheet = book.getSheetAt(0);
		        for(int rowIndex = 0; rowIndex < 4; rowIndex++) {
		            Row row = sheet.getRow(rowIndex);
		            for (int colIndex = 0; colIndex < 2; colIndex++) {
	                    Cell cell = row.getCell(colIndex);
	                    String rawValue = cell.toString();
	                    feval.evaluateInCell(cell);
	                    System.out.printf("row=%d, cell=%d, rawValue=%s, evaluatedValue=%s\n" ,
	                            rowIndex, 
	                            colIndex,
	                            rawValue,
	                            cell);
	                }
		        }
		        file.close();
	        } catch (Exception e) {
	            e.printStackTrace();
	        }
		}
	}
  • row=2, cell=1, rawValue=Sheet2!A1, evaluatedValue=これは別シート
  • row=3, cell=1, rawValue=SUM(D1:D3), evaluatedValue=6.0
ちゃんと式の部分が評価された結果を取得できているようです。
これが出来ないと問題になりそうだったので、いやーよかったよかった、、、。



28)


Rails3 非Restfullなアクションを使用できるようにする

先日Rails3では routes.rbが下記のようになっていてRestfullな物しか呼べないようになっていますが、正直アクション名とか自由に使いたいので、コメント外して使えるようにしました。

  # This is a legacy wild controller route that's not recommended for RESTful applications.
  # Note: This route will make all actions in every controller accessible via GET requests.
  # match ':controller(/:action(/:id(.:format)))'

ただ、それだけの話しです、、、。

こういう時だから日本人のいいところを

電車が止まって仕事に行けないので、家で海外のニュースサイト見ていたら、今回の日本の地震災害を伝える記事に大量のコメントが投稿してありました。
何気なく読んでいたら、日本人だったら不思議でもなんでもないことが、向こうの人達にとってはそうでもないようです。

たまたま私が読んだ箇所だけそういうコメントが集中していたのかも知れませんが、、、、。※あまりにも大量なので全部は読めませんでした(なんかブッダだとかカルマだとかってのも結構ありましたが、、、)。

大体以下のような感じ、、、。

-------------------------------------------------------------------
米国だったら、こんな時は略奪行為が横行し無法地帯になるのに、今回の日本の悲劇ではそのようなニュースを全く聞かない。
-------------------------------------------------------------------
日本人は素晴らしい。私は 未だに、彼らが犯罪行為を犯したとか、政府への批判を口にしたというニュースを聞いていない。彼らが再び立ち上がれるということを確信しています。
-------------------------------------------------------------------
日本人は自らの誇りとプライドにかけて略奪などはしない。その強さは賞賛に値します。
-------------------------------------------------------------------
略奪? そんなことは起こらないでしょう。私は日本に何年か住んでいましたが、まだ来たばかりの頃、公園のベンチに35mmカメラを置き忘れてしまったことがあります。数時間後に戻ってみると、カメラはまだそこにありました。私はベンチにあるわけがないと思った、ということを日本の同僚に話したところ、彼らは何故私がそう(カメラがベンチにはもう無いだろうと)思ったのかを逆に不思議がりました。精神の違いです。そう、彼らはこの悲劇から立ちあがるでしょう。
-------------------------------------------------------------------
※訳がひどいのはご勘弁、、。

阪神の時も配給物をもらうのに整然と列を作って並ぶ姿は海外の人にとって感動を与えていたようですが、こういう時でも、こういう時だからこそ、我慢強く辛抱する、という行動が自然に取れる日本人でよかったと思いました。

もちろん、火事場ドロボー的な行為が皆無だとは思いませんが、そのような行為が普通なのと、極少数なのとではきっと大違いなんだろうと思います。

電車の中でも、大学付近の道路でも、タクシーの中でも、財布や携帯を落としてもちゃんと戻ってくるようなお国柄(100%ではないでしょうけど)。

こういう時は自画自賛でもいいと思います。
 
livedoor プロフィール
QRコード
QRコード
  • ライブドアブログ