BLOGTIMES
«Prev || ... 772 · 773 · 774 · 775 · 776 · 777 · 778 · 779 · 780 ·... | | Next»
2013/09/07

jar を非圧縮にすると java アプリの起動が速くなるらしい

tuning  java 

非圧縮の jar を使うと java アプリの起動が速くなるというテクニックが興味深かったのでメモ。
言われてみれば解凍の手間が減る分、確かに早くはなりそうですね。

JJBugでJava VMの起動高速化の話をしました - nekopの日記

Japan JBoss User Group - 灼熱の JBossでJava VMの起動高速化の話をしました。非圧縮jarによる高速化はみなさんも使っている有名なソフトウェアで採用されていますが、あまり知られていないチューニングだと思います。大抵の場合200%くらいの高速化ができます。

今度、ちゃんとベンチとってみようと思いますが、とりあえずスライドにあった flatjar という非圧縮 jar をつくるスクリプトだけ動くようにしてみました。

flatjar

#!/bin/bash # Example: $ find . -type f -name \*.jar | xargs -n1 flatjar set -e realpath() { DIRNAME=`dirname $1` PWDPATH=`cd $DIRNAME && pwd` FILEPATH=${PWDPATH}/$1 if [ -e $FILEPATH ]; then echo $FILEPATH else return 1 fi } JARFILE=$(realpath $1) TMPDIR=/tmp/flatjar.tmp echo "Fat $JARFILE" rm -rf $TMPDIR mkdir -p $TMPDIR (cd $TMPDIR; jar xf $JARFILE) if [ -f $TMPDIR/META-INF/MANIFEST.MF ]; then jar c0fm $JARFILE $TMPDIR/META-INF/MANIFEST.MF -C $TMPDIR . else jar c0f $JARFILE -C $TMPDIR . fi rm -rf $TMPDIR

    at 20:55 |
    2013/09/07

    PDFBox で PDF からテキストを抽出する

    java  apache  pdf 

    PDF からテキストを抽出するいい方法がないかなと思っていたら、Apache PDFBoxで簡単に実現できたのでメモ。
    この手のライブラリとしては Xpdf なんかもありますが、PDFBox は日本語用に CMap の設定が必要なかったりするのでこちらの方がセットアップはかなり楽です。

    Apache PDFBox | A Java PDF Library

    The Apache PDFBox™ library is an open source Java tool for working with PDF documents. This project allows creation of new PDF documents, manipulation of existing documents and the ability to extract content from documents. Apache PDFBox also includes several command line utilities. Apache PDFBox is published under the Apache License v2.0.

    アプリに組み込んだりするのであればライブラリとして使った方がよいと思いますが、単にテキストが欲しいという場合にはコマンドラインからそのまま使うことができます。試しに昨日のドコモの iPhone 発売騒ぎに対する開示文書からテキストを抜き出してみるとこんな感じになります。予期しない所に改行やスペースが入ったりするので、見栄えを考えるとやはり何かしらの加工は必要そうですね。

    $ java -jar pdfbox-app-1.8.2.jar ExtractText -console 140120130906020385.pdf 2013年 9月 6日 各 位 本日の一部報道について 本日、一部報道機関において、当社がアップル社の「iPhone」を発売する旨の報道がありましたが、 当社が発表したものではございません。 また、現時点において、開示すべき決定した事実はございません。 以 上 会 社 名 株式会社エヌ・ティ・ティ・ドコモ 代表者名 代表取締役社長 加藤 薰 (コード:9437、東証第一部) 問合せ先 総務部 株式担当 (TEL.03-5156-1111)

      at 18:55 |
      2013/09/06

      リコーが全天球カメラ THETA を海外発表

      ricoh 
      RICOH THETA(シータ)

      リコーが2つの円周魚眼レンズを使って自分のまわり全てを写してしまうというカメラを発表しました。

      価格は US$399 。既に RICOH THETA という特設サイトができていて日本語の説明もありますが、国内ではまだ発売するかどうかは決定していないようです。
      広角系の画像は間延びしやすいので、狭い室内で行われるパーティとかで使ったりすると面白そうですね。

      全天球イメージを撮影可能なコンシューマー向けデバイスを発表(ドイツIFAにて) / お知らせ | リコー

      株式会社リコー(社長執行役員:三浦善司、以下リコー)は2013年9月5日、ドイツのベルリンで開催される世界最大のエレクトロニクスショーIFA2013の会場にて、一度シャッターを切るだけで撮影者を取り囲む全天球イメージを撮影することができる世界初*1の画像インプットデバイス「RICOH THETA(リコー・シータ)」を発表しました。

        at 22:28 |
        2013/09/06

        今度こそドコモから iPhone 発売か?

        docomo  ios  nikkei 

        ドコモから iPhone が発売されるということがニュースになっていたのでメモ。
        始めは「また日経か・・・」と思っていましたが、朝日や NHK が報じているのでこれまでとはちょっと違う雰囲気です。

        ちなみに、お決まりのパターンでドコモは否定しています。TDNET(東証適時開示情報)でも同様の文章が配信*1されていました。

        ドコモからのお知らせ : 本日の一部報道について | お知らせ | NTTドコモ

        本日、一部報道機関において、当社がアップル社の「iPhone」を発売する旨の報道がありましたが、当社が発表したものではございません。
        また、現時点において、開示すべき決定した事実はございません。

        実際に発売されたら機種変するのかと聞かれたらちょっと迷いますね。
        既に STREAM X を持っているので、純粋に料金見合いということになりそうです。


        at 13:08 |
        2013/09/05

        山形県が OOo から MS Office に出戻り

        msoffice 
        Microsoft Office Professional 2013 [プロダクトキーのみ]

        2011年に華々しく OOo に移行した山形県*1でしたが、2014年度中に MS Office に出戻りすることになった*2*3ようです。

        元々は Microsoft Office XP と Office 2003 のサポート期限切れ問題に端を発した移行だったようですが、Windows 7 と Office 2013 という無難なところに落ち着きましたね。やはり外とデータをやりとりするとなると面倒ごとが多かったんでしょう。それにしても Windows 8 でなくて 7 とは。。。。

        オープンソースからMicrosoft Officeに再切り替え 山形県 - ITmedia エンタープライズ

        2年近く運用を続ける中で、民間や国、ほかの自治体などから送付されるMicrosoft Officeのファイルをビューアーやオフィスソフトで閲覧すると、書式やレイアウトなどが崩れる事象が発生し、手作で細かな修正を行う頻度が予想より多かったほか、Microsoft Officeの入った共用PCの利用率が想定以上に高くなったりするなどの問題が発生したという。

        at 19:56 |

        サードパーティ製ドライバ入りの ESXi 5.1 インストールイメージを作る

        esxi  sas 
        SerialATA II RAIDカード24ポート64bit/133MHz ARC-1280ML

        ARC-1280ML というちょっと古めの RAID カードを手に入れたので、早速自分のところにある ESXi で使おうとしたのですが、残念ながら標準のドライバでは認識できなかったので、今後の事も考えてカスタマイズされた iso イメージファイルを作ってみたのでメモ。

        基本的には IBM の技術情報「VMware ESXi 5.0.x のインストール時にネットワーク・アダプターが検出されず、インストールに失敗する」を参考にというか、ほぼそのまま流用しました。

        必要なものは下記の3つ。

        1. オフラインバンドル(Offline Bundle)版の ESXi 5.1 (拡張子が .zip の ESXi です)
        2. VMware vSphere PowerCLI 5.0
        3. 追加する ESXi 用のドライバ (今回は Areca の ESXi 5.0/5.1 ドライバを使いました。こちらもオフラインバンドル版が必要です。)

        そのほかに Windows 上で PowerShell が使える必要があります。作業マシンが Windows 7 であれば気にする必要はないと思います。
        以下、作業メモ。

        [サードパーティ製ドライバ入りの ESXi 5.1 インストールイメージを作る の続きを読む]

          at 19:52 |
          2013/09/04

          今年の冬はホット炭酸で

          飲み物 

          コカコーラとキリンが今冬にホット炭酸飲料を発売するようなのでメモ。

          地雷臭しかしませんが、最近、炭酸の売上が伸びているからちょっと調子に乗っているということなのでしょうか。
          とりあえず発売されたら1本だけ買ってみたいと思います。できれば炭酸コーヒー*1*2よりも美味しいといいのですが。

          コカ・コーラ史上 世界初のホット炭酸飲料「カナダドライ ホットジンジャーエール」

          「カナダドライホットジンジャーエール」は、コカ・コーラシステムが約4年の歳月をかけて開発したコカ・コーラ史上、世界初となるホット炭酸飲料です。

          「キリンの泡 ホット芳醇アップル&ホップ」を新発売

          今回、伸長を続けている炭酸飲料市場に向けて、寒い冬でもお楽しみいただける“ホットの炭酸”を新たに提案します。

          at 22:36 |

          Android 4.4 のコードネームは KitKat に

          android  sweets  trademark 
          Have a Code - Android 4.4 のコードネームは KitKat に

          Android の次期バージョン 4.4 のコードネームが KitKat に決まったようです。

          歴代の Andoroid のコードネームをちょっと振り返ってみると、Cupcake(1.5) → Donut(1.6) → Eclair(2.0) → Froyo(2.0) → Gingerbread(2.3) → Honeycomb(3.0) → Ice Cream Sandwich(4.0) → Jelly Bean(4.1) という感じで、頭文字が ABC 順かつ、お菓子の名前になっていました。この手のコードネームは商標等の問題を避けるために、あえて一般名詞をつけることが多いわけですが、まさかの固有名詞をつけてくるとはびっくりしました。

          Android KitKatのサイトに KitKat のサイトへのリンクがあり、さっそく Android とのコラボレーション企画のキットカットが展開されていたりとキットカット側もノリノリです。確かにITエンジニアで仕事のお供がキットカットという人も多いですからね


            at 19:38 |
            2013/09/03

            Regexp::Assemble で正規表現を生成する

            perl  regex 
            詳説 正規表現 第3版

            以前、Regexp Assemble For PHP は使ったことがありましたがオリジナルの Regexp::Assemble は使ったことがなかったのでちょっと動かしてみました。
            このモジュールを使えば、フクロウ本とにらめっこしなくても、複雑な正規表現を効率よく組み立てることができます。

            サンプルほとんどそのままですが、UTF-8が通るようにしてあります。

            #!/usr/bin/env perl use Regexp::Assemble; use warnings; use strict; use utf8; binmode STDIN, ":utf8"; binmode STDOUT, ":utf8"; my $ra = Regexp::Assemble->new(); while (my $line = <STDIN>){ chomp($line); $ra->add($line); } print $ra->re;

            以下、実行例。

            [Regexp::Assemble で正規表現を生成する の続きを読む]

              at 17:45 |

              Ruby 1.8 の文字列を slice したときにできる壊れたマルチバイト文字を取り除く

              ruby  programming 

              最近は Ruby 1.8.x を使うことも少なくなってきましたが、日本語を含んだ String を slice() を使って切り出そうとしてハマってしまったのでメモ。
              すっかり忘れていましたが、 Ruby 1.8 の String の slice() はマルチバイトとか関係なくバイト単位で無理矢理ぶった切ってしまうという仕様なのでした。

              具体的にはこんな感じの処理です。

              str = "あいうえお" p str[1,10]

              これを実行すると「あ」のマルチバイトの一部と、「え」のマルチバイトの一部が含まれた下記のような String が得られます。

              "\201\202いう・

              今回は特に綺麗にマルチバイトの文字を取り出したいというよりは、ゴミが出なければ OK という感じだったので、このゴミを取り除いてみます。

              先人の知恵を頼る

              昔からこの手の問題はあったと思うので、みんなどのようにこの問題に対処しているのかと思ってしらべてみたら正規表現を使って slice(/\A.{0,}/m) とするパターン*1が沢山出てきました。

              先ほどの例を書き換えてみるとこんな感じでしょうか。

              str = "あいうえお" p str[1,10].slice(/\A.{0,}/m)

              確かに末尾のゴミは消えたのですが、残念ながら行頭のゴミはそのままでした。

              "\201\202いう"

              NKF はどうだろうか

              仕方が無いので全く別のアプローチを試みることにします。
              壊れた文字列を取り除くという意味では一旦コード変換をかけて、戻したりすればいいのかなという単純な発想から NKF を使ってフィルタしてみることにしました。nkf はコード変換しなくてもいいみたいなので、UTF-8 -> UTF-8 に変換する -wW オプションを使っています

              require 'nkf' str = "あいうえお" NKF.nkf('-wW',str[1,10])

              これで壊れたマルチバイト文字を取り除くことができました。

              "いう"

              場合によっては文字が余計に取り除かれてしまうことがありますが、今回は気にしないことにします。


              at 17:35 |
              «Prev || ... 772 · 773 · 774 · 775 · 776 · 777 · 778 · 779 · 780 ·... | | Next»