投稿

12月, 2008の投稿を表示しています

大晦日

もうすぐ2008年も終わり。エクスブリッジに入社して約1年。今年はこのブログと共に技術と知識をたくさん蓄えたような気がする。まだまだ学ばなければならないこととか、人として成長しなければならないこととかもあるから来年も忙しくなりそう。大事な事は3つ。よい人間関係を作るための「礼儀」与えられた仕事をやり遂げる「責任感」挑戦し続ける「向上心」今年だけで何回言ったか分からない。だけど、言う事が毎回違っていたら信用してくれないし、人は忘れやすいから何回も言わないといけない。来年も同じことを言い続けます。こんなことを書いていると後で見返したときに恥ずかしくなるけど、大晦日だから許す。まぁなんだかんだいって今年も面白い1年であった。来年はどんなことが待ち受けているか楽しみ。今年一年このブログを訪れてくれた人、ありがとう。来年もよろしく!

年末は大掃除

昨日は会社の仕事納め。今は長野の実家で、こたつに入りながらパソコンを叩いています。やっぱり寒いっすね。バス停に降り立ったころは雨が軽く降ってましたが、しばらくすると雪に変わってました。正月っぽくてよいです。さて、昨日の仕事納めでは、仕事は午前中に片付けて午後はマシンルームの大掃除をしてました。2、3時間かけただけあって、かなりすっきり片付き満足です。開発用のマシンは仮想化のおかげで、物理的にはほぼ一台で十分なので、すっきりしたマシンルームをみると仮想化のありがたみを実感できます。夕方はI嬢のお手伝いで松坂屋で注文していた御寿司を取りに行って、みんなでビール片手に御寿司をつまみながら乾杯。今年もお疲れ様でした。来年もよい年でありますように。名古屋の自宅もきっちり大掃除したし、今年に思い残すことはない!!・・・はず。

【Linux】PDFを結合、分割できる「PDFTK」をインストール

PHPから既存のPDFを結合するには、どうすれば良いかを調査したときのメモ。PHPのPDFライブラリを使うとレスポンスが悪そうなのと、良いフリーのライブラリがないので、PDF編集ソフトをインストールしてコマンドラインで実行するやり方をやってみた。Linux(私の環境はCentOS5.2)で使えるPDF編集ソフトは「PDFTK」がよさげ。ライセンスはGPL。CentOSの場合はサードパーティ製のパッケージをyumに追加すればインストールは簡単。やり方は前の記事を参照。# yum install pdftk結合するコマンドは
# pdftk 1.pdf 2.pdf cat output out.pdf詳しくは@ITの記事を参考に。処理自体はほぼ一瞬で終了するので速度的には満足。あとはPHPから実行すれば完了と思い検索してみると、PHPからPDFTKを操作するライブラリがGoogle Codeで開発されていた。ライセンスはNew BSD License。まだbeta版なので、参考程度の方がよさそう。<2009/03/22 追記>
TCPDF+FPDIを使うと既存のPDFを読み込むことができるので、表示するためだけに結合するには、こっちのライブラリを使った方がよさげ。インストールの方法は下記の記事を参考に。
【PHP】TCPDF 4.5.xxx+FPDI 1.2.1で既存PDFを読み込み→編集

JODConverterをPHPから利用してPDF変換

前の記事でJODConverterのインストールとデバッグで苦労してましたが、今度はPHPからJOCConverterを利用する方法。環境はCentOS5.2何も設定しないと
.openoffice.org2
のディレクトリがないと怒られる。まずapacheの実行ユーザを確認。httpd.confの「User」lamppを導入している場合はこれが「nobody」とかになっているので、Group共に「apache」に変更。ちなみにapacheユーザがいるかどうかは
# id apache
で確認。通常apacheユーザはログインできないようになっているので、ログインできるようにして、OpenOffice.orgが実行できるようにユーザディレクトリなどを作成# vi /etc/passwdapache:x:48:48:Apache:/var/www:/sbin/nologin

apache:x:48:48:Apache:/home/apache:/bin/bash# mkdir /home/apache
# chown apache /home/apacheOpenOffice.orgを起動してユーザ設定ファイルを作る。
# su apache
$ /opt/openoffice.org3/program/sofficeしかし、これだと/home/apache/.openoffice.orgしかできなかった。めんどくさくなって、/root/.openoffice.org2をフォルダごとコピー
# cp -r ./.openoffice.org2/ /home/apache/apacheユーザになって実行テスト
$ java -jar jodconverter.jar -f pdf '/tmp/test.xlsx'問題なく完了。最後にログインしないように戻しておく。
# vi /etc/passwdapache:x:48:48:Apache:/home/apache:/sbin/nologinwebサーバを再起動
# /etc/rc.d/init.d/lampp restart前のセッションが残っていると悪さするので削除
# rm -f /tmp/se…

メリークリスマス!

イメージ
今年も一人で迎える聖夜の夜。ちょうど一年前のブログ今年はモッチーサンタが寂しい男たちのために(?)プリンを作ってきてくれた。おいしかったです。ありがとう。今年は本当に1人じゃないぞ IT戦士の3Dクリスマス

2008年名前ランキング

明治安田生命のサイトで2008年名前ランキングが掲載されています。名前ベスト100私の名前は第16位にランクイン。いい名前と思ってくれるのはうれしいけど、同じ名前が増えるのは微妙な感じ。社内にすでにもう一人いるし。

【Linux】hosts.allowとhosts.denyの設定

基本はファイヤーウォールでポートを閉じればいいけど、外に公開しているサーバはsshのサービスを狙ってアタックされるので、その対策のためのメモ。環境はCentOSファイヤーウォールを設定してない場合は前の記事を参考に。アタックされているかは/var/log/secureに認証ログがあるので、これを参照。# vi /etc/hosts.allowsshd : 192.168.0.# vi /etc/hosts.denysshd : ALL全て拒否したい場合は
ALL : ALL
と記述。他のポートも開けば場合は適宜設定。sambaはsmb.confに設定する項目があるので、そちらを編集する。参考

【.NET】クラスライブラリを作成するときのMSDNガイドライン

Visual Studio 2005などで開発を行う.NET開発者は一度は読んでおいた方がいいドキュメント。クラス ライブラリ開発者向けのデザイン ガイドラインリンク切れの場合はMSDNで検索すれば、すぐ出てくると思う。記述してあるのは名前空間、クラス、メソッド、プロパティなどの名前付け(命名規則) エラー発生および処理のガイドライン クラスライブラリのセキュリティ などなど、クラスライブラリを作成するときだけではなく、普通にWebアプリケーションやクライアントアプリケーションを開発するときに役に立つ。役に立つというか一緒に開発する人には知っておいてほしい最低知識。名古屋でプロのSEを目指す

【Visual Studio 2005】ドキュメントを自動生成する「Sandcastle」

イメージ
Vistual Studio 2005+vb.netのXMLドキュメントを自動的にMSDNのヘルプ形式に変換してくれるツールの紹介。3年ぐらい前に調べたときは見つけられなかった。@IT - 特集:ツールを使ったドキュメント作成技法(前編)ここのブログを参考に。必要なツールはSandcastle ・・・ コマンドベース(現在:2.4.10520)Sandcastle Help File Builder ・・・ SandcastleをGUIで操作(現在:1.7.0.0)両方msi形式をダウンロードしてインストール。Microsoftで作成されたフリーのツールらしい。インストール自体はmsiを実行するだけで終了。Sandcastle Help File Builderを起動して、addボタンからコンパイル時に生成されるXMLドキュメントのxmlファイルを指定。これを生成するためにはVisual StudioのMy Project→コンパイル→「XMLドキュメントファイルを生成する」にチェックする。デフォルトで入っているはず。ヘルプファイルの生成は
Documentation → Build ProjectProject Propert
└Help File 
   └Languageは日本語を選択しとく。Error: Unresolved assembly reference
と怒られる場合は、依存関係のファイルを指定しないと駄目らしいのでProject Propert
└Build
   └Dependenciesに依存しているdllファイルなどを指定。デフォルトではprivateのメソッドを出力してくれないので、Project Properties
└Visibility
   ├DocumentAttributes
   └DocumentPrivatesなどはTrueの方がいいかも。他はお好みで設定。参考。ビルド自体はちょっと時間がかかるけど、名前空間や命名規則をしっかり管理していると、とても見やすいドキュメントになる。ステキすぎる。<2009/05/08 追記>
Sandcastle Help File Builderのバージョンが1.8.0.1 Betaに上がっていたのでインストールし直してみた。新…

またGoogle八分?

前にもありました(前の記事)が、またGoogle先生から嫌われてしまいました。月曜日からアクセス数が激減していると思ったら、今までの人気コンテンツがGoogleで検索してもヒットしない・・・。なぜ?前に同じような現象が発生してから、約半年ぶり。過剰なSEO対策なんてしてないのに・・・。SEO対策しているといえば、毎日記事の最後につける会社関連のリンクのみ。これくらいはいいでしょ?Googleのウェブマスターツールで確認しても特に問題なし。前はしばらくほっといたら復活したので、今度も大丈夫かな。<2008/12/20 追記>
5日間ぐらいしたら元のアクセス数に戻った。
・・・というか、無事Googleの検索でヒットするようになった。
原因は不明。

【Ubuntu】VMware Server 2.0をインストール

前の記事ではCentOS5.2にVMware Server 2をインストールしたけど、今度はUbuntu Server Edition 8.10にインストールしてみた。インストール方法はここを参考に。rpmパッケージでも依存関係を無視すればインストールできるみたいだけど、rpmを使う意味がないので、素直にtarからインストールすることにした。必要なツールをインストール
# apt-get install linux-headers-`uname -r` build-essential xinetd解凍とインストール
# tar xzvf VMware-server-2.0.0-116503.i386.tar.gz
# cd vmware-server-distrib/
# ./vmware-install.plコンパイルからインストール、設定まで適宜進めていく。VMwareの管理画面にアクセスするためのポートと仮想マシンの置き場所とシリアル番号は事前に決めとく(用意しとく)。

【Ubuntu】ファイヤーウォール(firewall)設定

Ubuntu Serverのファイヤーウォール設定メモ。Ubuntu Server Edition 8.10CentOSみたいにsystem-config-securitylevelがあるかと思ったら、そこまでのはないみたい。その代わりufwというコマンドを使って設定するらしい。参考。# ufw enable これでマシン再起動後もufwが有効になる。ローカルからのsshアクセスを許可
# ufw allow proto tcp from 192.168.0.0/24 to any port 22基本は拒否
# ufw default denysambaは許可。細かい設定はsmb.conf
# ufw allow Samba
指定するサービス名は/etc/ufw/applications.d/の各ファイル内に定義されているプロファイル名80番ポート(http)を開放
# ufw allow 80/tcp443番ポート(https)を開放
# ufw allow 443/tcp設定を確認するには
# ufw statusufwはiptablesを使って設定しているので、iptableの設定を確認するのは
# iptables -Lコマンドで設定した内容は/var/lib/ufw/user.rulesに格納されている。/etc/ufwにufwの設定内容が格納されていて、sambaやsshのアプリケーションがインストールされた際に/etc/ufw/applications.dに各アプリケーションごとにファイルが作成されて、iptablesに適用されるみたい。

【Ubuntu】ネットワーク設定

環境はUbuntu Server Edition 8.10ファイルは/etc/network/interfacesDHCPの場合は次のように設定。auto eth1
iface eth1 inet dhcp固定IPの場合は次のように設定。auto eth1
iface eth1 inet static
address 192.168.0.24
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.3反映はネットワークを再起動
# /etc/init.d/networking restart名古屋のおもしろ会社エクスブリッジ

【Ubuntu】rootでログインするためにrootのパスワード設定

アニキのブログに書いてあるけど、自分用メモ。Ubuntuはrootでログインさせずに、必要なときにsudoコマンドで管理者権限を借用しますが、サーバ運用するときにrootでログインできた方が楽なので(VMware Serverのホストになるだけだし)パスワードを設定。Desktop Edition+複数ユーザで使用する場合は、root以外のユーザでログインするべき。$ sudo passwd root
でrootの新しいパスワード設定。詳しくはここを参照。ちなみにやっぱりrootのログインを無効化する場合は
$ sudo passwd -l root
UbuntuのFAQ

【VMware Server】LinuxゲストマシンにVMware Toolsをインストール

ホストの環境はCentOS5.2, VMware Server 2.0管理画面のInstall VMware Tools…をクリックするとCD-ROMでアクセス可能になるので、Linux上でマウント# mkdir /mnt/cdrom
# mount /dev/cdrom /mnt/cdrom確認してインストール
# ls /mnt/cdrom
# rpm -Uvh /mnt/cdrom/VMwareTools-2.0.0-116503.i386.rpmアンマウント
# umount /mnt/cdromVMware Toolsの設定
# vmware-config-tools.pl設定後は再起動
# rebootLinuxゲストマシンにデスクトップ環境をインストールしている場合はVMware Toolsの恩恵に預かれるけど、CUIの場合は特にインストールする意味はない気がする。時計が狂うのはcronでntpupdateをすればよい。参考。< 2011/05/26 Modified >
VMware Fusionの環境でVMware ToolsをInstallしたときの記事を書いた。こちら

【Linux】FTPサーバ(vsftpd)をインストール

FTPサーバを構築したときのメモ。環境はCentOS5.2FTPサーバの有名どころはvsftpdproftpdらしいですが、yumでゲットできるvsftpdで構築。# yum install vsftpd自動起動
# chkconfig vsftpd onvsftpdの設定はここを参考に。ポートの設定はここ。< 2011/11/13 Modifed >
CentOS 6.0で設定したのは追記. このときのvsftpdのVersionは2.2.2# yum install vsftpd
# vi /etc/vsftpd/vsftpd.confanonymous_enable=NO
chroot_local_user=YES
chroot_list_enable=YES空のchroot_listを作成
# touch /etc/vsftpd/chroot_list# /etc/rc.d/init.d/vsftpd start
# chkconfig vsftpd on参考にしたSiteは下記FTPサーバ(vsftpd)の構築(RedHat系編)

【Linux】WebminとUserminをインストール(CentOS5.2)

イメージ
WebminはWebベースのサーバ管理ツール。wikipedia。Apache, Smaba, sendmailなど多くのアプリケーションの設定をGUIでできる。ユーザの追加なども簡単にできるため、Linuxのコマンドを知らない人でもサーバ管理がやりやすくなる。インストールはここからrpmパッケージをダウンロード、インストール。
# rpm -Uvh webmin-1.441-1.noarch.rpmインストール後はhttp://<サーバのアドレス>:10000/でアクセス。10000番ポートを空けるのを忘れずに。参考。次はUsermin。Webminはサーバ管理者用の設定ツールに対して、Userminは各ユーザに提供される設定ツール。主にWebベースでメールを読んだり、ファイルにアクセスしたりもできる(もちろん権限によりアクセルできるディレクトリは制限される)。ファイル管理はJavaで動いている。インストールはここからrpmパッケージをダウンロード、インストール。# rpm -Uvh usermin-1.370-1.noarch.rpmインストール後はhttp://<サーバのアドレス>:20000/でアクセス。20000番ポートを空けるのを忘れずに。名古屋のおもしろ会社エクスブリッジ

EclipseでJODConverter3.0のデバッグ

今までの経緯とここ数週間の間にアップした記事のまとめ。OpenOffice.orgかMS Office Excelで作った帳票をPDF変換したい。 記事。 JODConverterを発見。odfファイルとxlsファイルをPDFに変換可能なことを確認。 PHPでodfファイルを操作するライブラリを探す。いいのがない。記事PHPでxlsファイルを操作するライブラリを探す。PHP-Excelを発見。 PHP-Excelを使って、Excelで作ったファイルを読み込んで特定のセルに値を挿入できることは確認。 記事PHP-ExcelでPDF出力できるけど、日本語が文字化け。PHP-Excelが使っているFPDFを日本語に対応しようと頑張ったけど直らず。 記事PHP-Excelでxls形式で変換して、JODConverterで変換。でもPDF変換後に枠線が太くなる現象をなんとかしたい。 枠線を細いままPDFにするためには枠線のタイプを変更すればいいことを発見。でも、PHP-Excelでxls形式で出力すると、デフォルトの枠線に置き換えられてしまう。 PHP-Excelではxlsx(MS Office2007)形式で出力することにした。 でもJODConverter2.2.1ではxlsx形式には対応していない。 JODConverter3.0 + OpenOffice3.0でxlsxに対応しているので、JODConverter3.0のソースをゲットしてMavenでコンパイル。 ・・・しようとしたけどコンパイルが通らない。記事WindowsにEclipseの環境を整えてMavenからEclipseプロジェクトに変換するとコンパイルが通った。 記事実行するとエラーになるので、該当箇所をEclipseでデバッグ。 ・・・するためにCentOSにデスクトップ環境をインストールして、Eclipseをインストール。記事長い道のり・・・。でもゴールはもうすぐ・・・のような気がする。-----問題となっている箇所を特定できたので、暫定処置。OfficeProcess.javaの「nofirststartwizard」オプションを有効に。 ManagedProcessOfficeManager.javaのcatch後throwしているのをコメントアウト。 おそらくOpenOffice.orgサービ…

MavenからEclipseプロジェクトに変換して、コンパイル

JODConverter3.0を使いたくてコンパイルしようとしたけど、なぜか失敗する(前の記事)のでEclipseで扱える形式に変換してみたときのメモ。pom.xmlがあるカレントディレクトリに移動してmvn eclipse:eclipseを実行すれば自動でEclipseプロジェクトに変換してくれる。ここを参考に。Windowsの場合も同じ。mavenのインストールは前の記事を参照。Java開発環境のEclipseはここからダウンロード。
「Eclipse IDE for Java Developers (85 MB)」を選択。ちなみにLinuxの場合は
# yum install eclipse-platform eclipse-jdt
GUI環境が必要なので、まだGUI環境をインストールしてないときはアニキのブログを参考に。
インストール後はアプリケーション→プログラムにEclipseがある。解凍後、Eclipseを起動し
New → Java Project
で「Create project from existing source」で変換したmavenプロジェクトのフォルダを選択してOK。Mainクラスの設定は
Project → Properties → Run/Debug Settingsコンパイルは
Export → Java → Runnable Jar File
とかでできた。
Eclipse 3.4からの機能なのでyumでインストールしたEclipseではできなかった。前に失敗してたJODConverterのコンパイルはこっちだと成功。一応Eclipseからmavenを実行する設定をしたけど(参考)、これはいらなさそう(?)。軽量、軽快なPHPフレームワーク「petitwork」

JAVAの開発環境を準備してJODConverterをコンパイル

前の記事で辿り着いたOpenOffice.orgのPDF変換機能を使って、ExcelやWordのファイルをPDFに変換してくれるオープンソースなJODConverter。リリースされているバージョン2.2.1では、Office 2007に対応してないけど、開発中のバージョンではすでに対応しているらしいので、Subversionで開発バージョンをダウンロードしてコンパイルしてみた。環境の準備。Linux(CentOS5.2)subversionをインストール
# yum install subversionSourceForgeを使っているので、ここのページからソースをGet。 # svn co https://jodconverter.svn.sourceforge.net/svnroot/jodconverter jodconverter
・・・と思ったけど、最新版はGoogle Codeで開発されているみたい。ここ。 # svn checkout http://jodconverter.googlecode.com/svn/trunk/ jodconverterJAVAの開発環境(SDKのインストール)は前の記事を参考に。JODConverterはMavenというプロジェクト管理ツールを使っているみたいなので(pom.xmlがあるから)、Mavenをインストール。OpenOffice.org-SDKのインストールも前の記事を参考に。パスの設定も忘れずに。やっと準備完了。pom.xmlがあるディレクトリまで移動して、コンパイル実行。# mvn packageでも失敗。# mvn package -Dmaven.test.skip=trueでテストをスキップできる。・・・けど、駄目っぽい。はまった。PHP-ExcelでPDFも作成できることが分かったので、とりあえずあきらめ。つづく・・・。<2009/01/24 追記>
Google Codeでコンパイル済みの実行ファイルが公開されたので、自前でコンパイルする必要がなくなった。コマンドラインで実行するときはcommons-cliとかも同じディレクトリにないと駄目なので注意。軽量、軽快なPHPフレームワーク「petitwork」

【Windows】【Linux】Java用コンパイルツールMavenのインストール

JODConverterをコンパイルするためにMaven(メイヴァン、メイヴィン)をインストールしたときのメモ。Mavenを知らない人はwikipediaへ。JAVAのJDKのインストールは前に書いた記事を参照。Mavenはここからダウンロード。<Linux>
ダウンロードしてきたのを解凍
# cd /opt/software
# tar xzvf apache-maven-2.0.9-bin.tar.gzパスを設定
# vi ~/.bash_profile
PATH=$PATH:$HOME/bin:/usr/java/latest/bin:/opt/software/apache-maven-2.0.9/bin
export PATH
export JAVA_HOME=/usr/java/latest
export M2_HOME=/opt/software/apache-maven-2.0.9
# source ~/.bash_profile<Windows>
設定は一時的なものなのでコマンドプロンプトで設定。いちいちめんどくさい場合はマイコンピュータ→プロパティ→詳細設定→環境変数
で設定する。C:> set M2_HOME=C:\Program Files\Tools\apache-maven-2.0.9C:> set PATH=%PATH%;%M2_HOME%\binC:> set
で確認。あとのコンパイルなど使い方はここのサイトが参考になりそう。既存プロジェクトをコンパイルする場合はpom.xmlのディレクトリまで移動して
# mvn compile
# mvn test
# mvn package
をやればjarファイルが作られるけど、いいのかな?javaのコンパイルは初めてなので、試行錯誤中。名古屋でプロのSEを目指す

【Windows】【Linux】JAVAのJDKをインストール

イメージ
Java SE Development Kit (JDK)をここからダウンロード。J2SEとかJ2EEとかよく分からない場合はここをよんどく。<Linux(CentOS5.2)編>
# ./jdk-6u10-linux-i586-rpm.bin/usr/java/にインストールされる。JAVA_HOMEを設定。
# vi ~/.bash_profile
PATH=$PATH:$HOME/bin:/usr/java/latest/bin
export PATH
export JAVA_HOME=/usr/java/latest
# source ~/.bash_profileあとで見つけたけど、
# yum install jdk
でもできるっぽい。<Windows編>
jdk-6u10-windows-i586-p.exeを実行後、マイコンピュータ→プロパティ→詳細設定→環境変数の「システム環境変数」に新規でJAVA_HOMEを追加。(バージョンよってjdk1.6.0_10の部分は変わる)次に「Path」を選択して編集。変数値の一番最後に
;C:\Program Files\Java\jdk1.6.0_10\bin
を追記してOK。一旦ログアウトしてログインすると反映される。確かめる方法は
ファイル名を指定して実行→cmd
でコマンドプロンプトを起動して
C:>set
を入力すれば設定した値が出力される。名古屋でプロのSEを目指す