投稿

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を目指す

【PHP】PHP-ExcelのFPDFを日本語化対応する(失敗編)

ここの続き。FPDFを日本語対応させて、PHP-ExcelからPDF出力したときに文字化けせずに出力させるように奮闘したときのメモ。FPDFの日本語対応自体はFPDF-Jのサイトここのブログを読めば分かる。PHP-ExcelのFPDFで変換している箇所を修正して、変換してみても文字化けが直らず。FPDFを単独で実行すると、日本語も正常に表示できるので、PHP-Excelでは何か特別な対応が必要なのだろうか・・・。やれることはやったので、とりあえず諦め。PHP-Excelで操作して、JODConverterでPDF変換することにした。前に設定した記事。<2009/03/06 追記>
PHP-ExcelのPDF作成処理はTCPDFを使うように変更になった。ここで書いた記事を参考に。

PHPからエクセルを操作するPHP-Excelを使ってみた

この記事の続編。作成したExcelファイルをPDFにも変換できるPHP-Excel。 今のバージョンはExcel2007形式とExcel2003までの形式と両方読み込み+書き込みできるので、PHPでExcelを操作するのに最強のライブラリだと思う。
ダウンロードはここから。まずは環境の準備。試すだけなら、lamppをインストールすれば環境構築終了。参考。ちなみにinstall.txtには次のように書いてある。PHP version 5.2 or higher PHP extension php_zip enabled PHP extension php_xml enabled Microsoft Office 2007を持っていない場合は試用版をインストールするか、Microsoftが配布している互換機能をインストールすれば2000, XP, 2003のOfficeでも2007のファイルを読み書きできるようになる。準備完了。まずはサンプルプログラムを動かす。ReleasesからPHPExcelをダウンロード。Classesのファイルはlamppのライブラリディレクトリにコピー
# cp Classes/* /opt/lampp/lib/php/Testsディレクトリにエイリアスを設定して、Testsは書き込み可能にする。
# chmod 777 TestsこれでWebからTests内のPHPファイルにアクセスすると、サンプルの動きを確認できる。runall.phpを実行すると全て実行される。いろんなサンプルがあるし、ドキュメントも充実しているのでやりやすい。これで動作確認ができたら、次にやりたいことは、既存のExcelファイルを開いて、特定のセルに値を挿入。これはサンプルの07reader.phpと03formulas.phpを組み合わせれば簡単に実現。
日本語を扱う場合はUTF8で挿入する必要あり。PHPファイルの文字コードがUTF8ならOK。最近のバージョンは過去のExcel形式も読み込んだり、書き出したりできる。このライブラリ絶対流行ると思う。---でもPDF変換したときに元のファイルに日本語が含まれていると文字化け。xlsxやxlsで吐き出すと文字化けは起きない。内部的にFPDFを使っているみたいなので、FPDFを日本語化対応すれ…

【Linux】OpenOffice.orgとJODConverterでExcelをPDF変換(設定編)

環境はCentOS5.2。JREのインストールは前にPunoをインストールしようとして失敗したときの記事を参考に。JAVA_HOMEを設定してない場合は設定
# vi .bash_profile
export JAVA_HOME=/usr/java/latest
# source .bash_profileJODConverterはここからtomcat付きをダウンロード。 参考記事
# unzip jodconverter-tomcat-2.2.1.zip
# cd jodconverter-tomcat-2.2.1
# bin/startup.sh <2009/03/24 追記>
Office2007形式に対応するために、コンパイルからやってみた記事も参考に。ちなみにJODConverterのライセンスはGNU LGPL。これでJODConverterのサービスが起動するので、
http://<サーバ名>:8080/converter
にアクセスして起動していることを確認。ポートを空けるのを忘れずに。参考
この段階ではOpenOffice.orgのサービスを起動してないので変換はできない。OpenOffice.orgはここから最新版をダウンロード。SDKとかUNOではなく、まるっとインストールするために「RPM,JREなし」を選択。
# tar xzvf OOo_3.0.0_LinuxIntel_install_ja.tar.gz
# cd OOO300_m9_native_packed-1_ja.9358/RPMS/ デスクトップ環境はインストールしてないのでgnomeを削除
# rm -f ooobasis3.0-gnome-integration-3.0.0-9358.i586.rpm
# rpm –ivh *.rpmインストール後は/opt/openoffice.org3/に配置される。OpenOffice.orgをサービスとして起動。
# cd /opt/openoffice.org3/program/
# ./soffice -headless -accept="socket,port=8100;urp;" –…

社員旅行でもサプライズ

土日は社員旅行で渥美半島の先端まで行ってきました。詳細スケジュールは公式ブログの方で。他の社員のブログでも書いてありますが、今回の目玉はなんといっても社員同士の電撃結婚発表。まさに電撃。そして衝撃。あまりの衝撃(感動)に涙を流す者も出る始末。Mさんが入社してきて1ヶ月そこらでそんな展開になっているとは・・・。全く気付きませんでした。もっと根掘り葉掘り聞いてみたかったですが、その日二人は親に挨拶に行くそうで、泊まらずにいってしまわれた。二人ともおめでとう。お幸せに。エクスブリッジの伝説に新たな一頁が追加された瞬間でした。

【Linux】OpenOffice.org-SDK, UREのインストールとPunoを設定(失敗編)

環境はCentOS5.2。ここの記事を書いたときに発見したPunoをインストールしようと奮闘したときのメモ。・・・できなかったんだけどね。必要なツールをインストール。
# yum install gcc-c++
他にもGNU makeとかzipとかないと後で怒られるけど、そのたびにインストールすればOK。JavaのJREをここからLinux RPM (自己解凍ファイル) をダウンロード→インストール。
# ./jre-6u10-linux-i586-rpm.bin パスを通す
# cd
# vi ./.bash_profile
PATH=$PATH:$HOME/bin:/usr/java/latest/bin
# source ./.bash_profileOpenOffice.orgのSDKはここの右下にある「OpenOffice.org SDK」からダウンロード→インストール。
# ./OOo-SDK_2.4.0_LinuxIntel_install.sh
解凍場所を聞かれるので適当な場所を選択。 # rpm -ivh unpack_openofficeorg/RPMS/openoffice.org-sdk-2.4.0-9286.i586.rpm何も聞かれずに/opt/openoffice.org2.4_sdk/にインストールされた。インストールと設定の仕方は/opt/openoffice.org2.4_sdk/index.htmlを見れば結構詳しく書いてある(英語)。OpenOffice.orgのUNO Runtime Environment(URE)を同じくここの右下にある「UNO Runtime Environment (URE)」からダウンロード→インストール。
(OpenOffice.orgを丸ごとインストールしてもUREがインストールされる)
# ./OOo-URE_1.3_LinuxIntel_install_en-US.sh
# rpm -ivh unpack_ure/RPMS/openoffice.org-ure-1.3-9221.i586.rpm ちなみにどこにインストールされたかは
# rpm -qi openoffice.org-ure��…

OpenOfficeのドキュメントをPHPから操作する

前の記事の関連で調べたときのメモ。OpenOffice.orgのドキュメントはXMLをzip圧縮してあるだけなので、比較的簡単にPHPから扱えると思ったら、いいライブラリが見つからない。Open Document Formatについては前の記事を参考に。使えそうなのがOpenDocumentPHP。でも開発がしばらく止まっているので駄目そう。とりあえず使ってみたけど(バージョンは0.6)、作ったファイルを読み込んで、特定のセルに値を挿入とかメソッドが見つからなかったので、残念ながらあきらめ。PHP-Excelは盛んに更新されていて使いやすいので(PDFに変換できるしね→でも日本語は文字化け)、OpenOfficeの方も頑張ってほしい。

OOXML(Office Open XML)とODF(Open Document Format)の違い

OOXML(Office Open XML)はMicrosoft Office 2007で採用されたファイルフォーマット。wikipedia
Office 2003までの互換を考慮しているため仕様が複雑。ODF(OpenDocument Format for Office Applications)はオフィススイート用の標準規格として策定されたファイルフォーマット。OpenOffice.orgで採用されたファイルフォーマット。wikipedia
OOXMLに比べシンプル。実質
MS Office 2007(OOXML) VS OpenOffice.org(ODF)
という図式。両方とも規格の内容は公開されていて、基本XML(と画像などのバイナリ)をzip圧縮しているだけ。なので、外部アプリケーションからの操作などもやりやすい。違いを解説しているは次のサイト。2007 Officeの文書フォーマット「OOXML」を正しく知るOOXML: 何が問題なのかODFに関するリンク集

XREAサーバへJoomlaのインストール

イメージ
そろそろXoopsからJoomlaへ移行したいと思い立ち。とりあえずJoomlaをインストールしたときのメモ。Joomlaはここからダウンロード。初めてインストールする場合は日本語パックが付いている方が管理画面の操作がわかりやすい。XREAサーバにアップロードするときは解凍したのをアップロードすると恐ろしく時間が掛かるので、サーバで解凍した方が全然早い。やり方はXREAのサーバ管理画面で「ホスト情報登録」しといて、SSHでアクセス。ユーザ名、パスワードはFTPと同じ。SSHでアクセスするツールはTeraTermが便利。参考。サーバで解凍するコマンドは
$ tar –xzvf Joomla_1.5.7-Stable-Full_Package.tar.gz
カレントディレクトリにすべて解凍されるので、あらかじめディレクトリを作って作業すること。
zipの場合は
$ unzip Joomla_1_5_6_ja-JP_Stable.zipデータベースはあらかじめUNICODEで作成しておく。あとはhttp://<サーバ名>/にアクセスすれば自動でインストールが始まる。設定の確認では次のような.htaccessを置いておけばほとんど「はい」になる。php_flag register_globals off
php_flag output_buffering off php_flag mbstring.encoding_translation On
php_value mbstring.language neutral
php_value mbstring.http_input autoconfiguration.phpはいいえのままだけど、これはこのままでOK。最初configuration.php-distをコピーしておいたら次のFTPの設定で
Error: the XML response that was returned from the server is invalid.
と怒られたので、用意しておいたら駄目みたい。FTPの設定はXREAのFTPアカウントそのままでOK.「FTP初期フォルダ検索」で自動で初期フォルダを取得可能。最後に管理者の情報を入力してインストール完了。ディレクトリの…

エルゴヒューマン(Ergohuman)の高級椅子

イメージ
2年ぐらい前に買ったエルゴヒューマンの椅子を紹介。座りながら寝れるような椅子を探していてたどり着いた。8万円するぐらいあって、座り心地は最高。メッシュで構成されているので、全く蒸れない。高さが調整できるのはもちろん、座る所を前後に調整できたりする。詳しくはここを参照。椅子は個人によって好みが分かれるので、買うなら試しに座ってから買った方がよい。これは名古屋の東急ハンズに置いてあるので、気になる人は座りに行ってみては?会社の椅子もこれにしたい・・・。

【PHP】2つのパス(URL)を結合する関数を作ってみた

プログラム内で2つのパス(URL)を結合することがよくありますが、$sTop = “http://exbridge.jp/”;$sUrl = $sTop . “index.php”;この最初の文字列の最後にスラッシュがあるかないかで結合の仕方が変わってくる。いちいち気にしたくないので、自動で補完して結合してくれるような関数がないものかと探してみたけど、PHPにはないみたい。VBScriptではBuildPath.NETではcombineしょうがないので自作してpetitworkに組み込みました。円マーク「¥」にも対応しているのでURLでもローカルパスでも使えるはず。 他にスマートな方法があれば教えてほしい。/** * 2つのURL(パス)を結合するときにスラッシュがある場合でもない場合でも * うまいこと結合して結果を返す * * @access public * @param string $sPath1 結合文字列(前) * @param string $sPath2 結合文字列(後) * @param string $sSeparate 連結文字列。デフォルトは「/」 * @return string/boolean 2つのパスの結合結果(失敗時はfalse) */ function getBuildPath($sPath1, $sPath2, $sSeparate = DS ) { $sReturn = ''; if (strlen($sPath1) == 0) { return false; } $sPath1 = rtrim($sPath1, '\/'); $sPath2 = ltrim($sPath2, '\/'); $sReturn = $sPath1 . $sSeparate . $sPath2; return $sReturn; }

【PHP】Webで帳票を作成するのにPDF変換を利用する方法

システムで入力したデータを帳票として印刷したいという要望はどこにでもありますが、それを実現するための方法は様々です。Google先生に聞いてみると有償のツールがいろいろと出てきます。
GUIで操作できるし、開発工数も削減できるので、トータルでみると買ったほうがいいかも。以下はフリーで使い勝手のいいPDF作成・変換ツールがないものかと探したメモ。環境はLinux(CentOS5.2) + Apache + PHP名称説明FPDF簡単にPHPからPDFを出力できるPHPのクラス。簡単なものならこれで十分。でも日本語対応が不十分らしい。UTF-8に対応していない。日本語対応するのは難しくない。
FPDIを使えば既存PDFの読み込みも可能に。
本家サイト日本語サイト。TCPDFFPDFを元に開発された。UTF-8に標準で対応。こっちも日本語対応が不十分らしい。
FPDIを使えば既存PDFの読み込みも可能に。今ならFPDFよりこっちがおすすめ。
本家サイト日本語解説サイト。HTML2FPDFその名の通りHTMLをPDFに変換できる。サンプルを見る限りかなり便利そう。
中身はFPDFが動いていて、HTMLタグに合わせて位置を調整しているらしい。
本家サイトSorceforge。Apache FOPXMLからPDFに変換するためのJavaライブラリ。実行するためにはJavaの実行環境が必要。
詳しくはwikipediaを読む。
XML→XSL-FO→PDFという流れらしい。参考サイト
可能性は無限大。難易度も無限大。
PHPで利用する場合はXMLを作っておいて、コマンドラインで実行
本家サイト。OpenOffice.orgのPDF作成ツールを利用するOpenOffice.orgをサービスとして起動して、OpenOffice.orgのPDF変換機能を利用する方法。
PHPからはコマンドラインを実行する。
詳しくはここを参照。
レイアウトをMicrosoft Excel or OpenOffice.org Calcで作成…

懐かしのHappy Hacking Keyboard上位モデルに日本語配列

大学時代にHappy Hacking Keyboard(英語配列)を使っていて、その使い勝手が忘れられずHappy Hacking Keyboard Lite2とかに手を出していましたが、上位モデルが日本語配列になって新登場するらしいです。PFU、“Happy Hacking Keyboard”上位モデルに日本語配列製品を追加日本語配列だけど、Controlキーがちゃんとaの横にあるのが素晴らしい。
(この辺は変更できるみたい)Windowsを使う限りファンクションキーとテンキーは手放せないですが、LinuxやUnixを使う場合は正に最適なキーボードなので、サーバ用に一つ買っておきたい(と思ってます)。でも2万5000円はちょっときついなー。

オンサイトサポートとは(=出張サポート)

オンサイトサポート(on-site support)(site=現場)とは、製品が故障した際に技術者が現地に行くサポート方式。用語説明事前準備なしに現場に行って対応するサポートに対して用いることが多い要は「出張サポート」メーカーの場合、電話サポートと区別するためによく使われる。システム開発では
不具合の連絡 → 開発環境で現象確認 → ネットワーク対応 or 現地対応
となるため、あまり聞き慣れない言葉。

【Linux】CentOSでFAX送信サーバ構築

システムからFaxを送信する必要があったので、調査&設定したメモ。環境はCentOS5.2。FAXモデムは外付けのオムロンME5614Dを選択、外付けの方がやりやすいらしい。参考になるのはここここここ
以下実行したコマンド。まずは、faxを送信するソフトウェアを導入。
#yum install efax
ちなみにバージョンは0.9-27.2.1。その後、PDFとかPostScriptを操作するツールを導入。
# yum install poppler-utils ghostscriptfaxモデムはシリアルポート(com1)に接続し、デバイスの接続権限を設定。
# chmod 666 /dev/ttyS0 シェルスクリプト(/usr/bin/fax)のFaxデバイス名が/dev/modemになっているので、シンボリックリンクを作る。
# ln -sf /dev/ttyS0 /dev/modem ロックファイルの置き場所の権限を設定
# chmod 777 /var/lockefaxを使ったシェルスクリプトが/usr/bin/faxにあるのでこれをさっきのリンクを参考に修正(バックアップをとってから)。
# cp /usr/bin/fax /usr/bin/fax-bak
# vi /usr/bin/fax変更箇所↓
FROM="+81 052 111 2222" #81は国番号。052-111-2222の場合
NAME="from AURORA.Fax"
PAGE=a4
TELCVT='sed -e s/+81 */0/'            # Japan PDFを作成して動作確認。
# pdftops /tmp/Book1.pdf
# fax make Book1.ps
# fax send 052-111-2222 Book1.ps.001番号は「-(ハイフン)」があってもなくても送れる。複数ページに分かれる場合は
# fax send 052-111-2222 Book1.ps.*
とすれば一括送信。ちなみに電話番号に「,(カンマ)」を記述すれば数秒待機する0発信の…

DBDesignerをダウンロード

社内でER図をDBDesignerで書いているので、それをダウンロードするためのメモ。アメリカの会社がオープンソースで開発していたらしいけど、今は停止しているみたい。その最新版はDBDesigner4。日本語化はここ。そっからforkしてSourceForgeで開発されているのがDBDesigner-fork。こっちではPostgreSQLでも対応するよう開発が進められているようですが、最近はリリースされてないみたい。
なるべく早くリリースされてほしいなぁ。アニキに先を越されたけど、せっかく書いたのでアップ。PHP用DB接続支援ライブラリ「somfa」

オープンソースでシンクライアントを実現する「openThinClient」

前の記事とかでシンクライアントについて書きましたが、オープンソースのソフトウェアを使ってシンクライアント化を実現できるみたいです。openThinClient導入する手順はこちら。専用OSを各クライアントで起動するため、使えるソフトウェアに制限があるみたい。まだまだ実用レベルまでは時間がかかりそう。その他VMwareなどで実現したシンクライアントの導入事例はここから。suganuma@エクスブリッジ.jp

Googleカレンダーの予定を携帯に通知する

イメージ
Googleカレンダーのアラートを携帯に送れるようなので設定してみた。Googleカレンダーの設定で「モバイルの設定」から自分の携帯のアドレスを入れて、確認コードを送信。携帯に確認コードが届くので、それを入力して作業完了。↓こんな画面。メールの転送機能でも同じことが実現できますが、とりあえず設定しとくと後で役に立ちそう。ここでも書いたけど、携帯でGoogleカレンダーにアクセスするにはhttp://www.google.com/calendar/mあとは携帯でGoogleカレンダーの予定を新規作成できるようになってほしい。 名古屋のおもしろ会社エクスブリッジ

Linux上で.NETアプリケーションを動作させるMONOプロジェクト

.NETをLinux上で動作させようと頑張っているMONOプロジェクト。現在の最新版は2.0で多くの.NETアプリケーションが動くようになったみたいですが、まだ実用レベルではないようです。MONOプロジェクトについて知りたい場合はwikipediaを読むのが早い。もし、MONOプロジェクトが完全に.NET Frameworkと互換性を持つようになれば、開発工数削減のためにVisual Studioで開発して、CALの節約のためにLinuxサーバで動かすシステムが出てくるような気がします。たぶん、まだまだ先の話だと思いますが。名古屋でプロのSEを目指す

Docomoのパケホーダイダブルでパケット代を節約

地下鉄の広告で気付いた「パケホーダイダブル」。今までCoTV開発のためにパケホーダイを契約していましたが、月の携帯代がばかにならない・・・。
もともと携帯でWeb閲覧をしないので、CoTVの開発をしないときはほとんど使ってないも同然。実際パケホーダイを契約する前は月額3000円ぐらいで済んでいた。なのでパケホーダイダブルの広告を発見したときは速攻でプラン更新。これでちょっとは携帯料金節約できそう。ちなみにパケホーダイダブルは他のキャリアでもお馴染みの段階的なパケット定額制。パケホーダイのままの人は変更した方がよいと思う。

電池(充電池)を買うならeneloop(エネループ)でエコ

古くなったマウスを新調するために調べてたら、最近はeneloop(エネループ)という充電池があって、繰り返し使えるから電池内蔵型より「電池が切れて動かん」というのがなくていいみたい。eneloopの長所と短所はwikipediaがわかりやすい。wikipediaにも書いてあるけど、買うときに注意したいのはeneloopは初期型と次期型があって、初期型にはeneloopのに®の文字がない。ここで写真付きで詳しく書かれているので、買いに行く前にチェック。もう少し詳しくなりたい人はここPanasonicのパナループと性能比較しているので参考に。充電器は単3と単4を両方充電できて便利。今使っている電池を使い切ったら、eneloopに切り替えよう・・・。ちなみに買ったマウスはlogicoolのMX-1100。eneloopで快適に動いています。電池1個でも動くので重さはそれほど感じない。5mぐらい離してもちゃんと動いてくれるから素敵。プリンタも新しくエプソンのEP-901Aに変えて、今年分の物欲は満たした感じ。suganuma@エクスブリッジ

IPアドレスの範囲を示す表記方法

ネットワークの設定をするときによく出てくる「192.168.1.0/24」とかの表記方法。
これはIPアドレスとサブネットマスクをまとめて表現する記法。 Classless Inter-Domain Routing(CIDR:サイダー)というらしい。 詳しくはwikipedia@ITの記事で。 よく使うのだけメモ。 表記範囲含まれる個数192.168.0.0/16192.168.0.0 - 192.168.255.25565,536192.168.0.0/24192.168.0.0 - 192.168.0.255 256192.168.0.0/29192.168.0.0 - 192.168.0.78192.168.0.0/31192.168.0.0 - 192.168.0.12192.168.0.0/32192.168.0.0 - 192.168.0.01

オープンソースなフラッシュ(SWF)形式のプレーヤーFlowPlayer

FlowPlayerはGPLで配布されているFLV形式の動画を配信するためのFlash形式のプレーヤー。Flash形式なのでAdoveのFlash Playerをインストールしておけばブラウザ上で動く。以下、特徴オープンソースなため改変することが比較的容易 ライセンスはGPLなため、改変して頒布(はんぷ)する場合はソースコードも付けないと駄目。GPLについては前の記事を参考に。 サムネイル画像、シンプルな表示、さまざまなオプションで制御可能。この辺は実際に見た方が早い。ここで。 フルスクリーンにするとFlowPlayerのロゴが表示される。商用ライセンスにすると非表示になる。 オプションの意味などは本家のサイトを見た方が詳しく載ってますが、英語が駄目な人はこことか参考になりそう。動画配信といえばHELIOS.CoTV

【.NET】ClickOnceの開発メモ

.NET Framework2.0から利用可能になったClickOnceという技術。.NET Framework1のころはノータッチ・デプロイメントと呼ばれていた。一言でいうなら「簡単にアプリケーションの配布・更新をするための技術」。ClickOnceの基本的なことやノータッチ・デプロイメントの違いについては@ITの記事を参照。以下開発で必要になって調べたときのメモ。ApacheでClickOnceのアプリケーションを配布するための設定。ClickOnce起動時にWebアプリケーションと連携するためにパラメータを渡す方法。ClickOnceを配布(発行)するときにサードパーティ製のdllなどを付けて配布する方法MSDN Online スタート・キット(ソースコード付き)

Solaris10にsambaを設定

Solaris設定シリーズのsamba編。インストールモジュールはSunfreeware.comからGetする。そこにncurses, popt, readlineも必要と書いてあるので、これらもダウンロード。デスクトップ環境をインストールしてあれば、コンソールでFirefoxを使ってダウンロードすれば楽。適当なフォルダに置いてダブルクリックで解凍。それぞれ順番にインストールしていく。 bashをインストールしとくと作業効率が全然違う。前の記事を参考に。# pkgadd -d popt-1.14-sol10-sparc-local
# pkgadd -d ncurses-5.6-sol10-sparc-local
# pkgadd -d readline-5.2-sol10-sparc-local
# pkgadd -d samba-3.0.25a-sol10-sparc-localこれだけだと起動スクリプトが見つからなかったので、Source Codeもダウンロード+解凍。
# cp packaging/Solaris/samba.init.master /etc/init.d/samba
# chmod 744 /etc/init.d/samba
# vi /etc/init.d/samba BASE=/usr/sfw に変更。次はsmb.confを設定。
# cp /etc/sfw/smb.conf-example /etc/sfw/smb.conf
# chmod 744 /etc/sfw/smb.conf
smb.confの設定方法は前の記事を参考に。ユーザの追加
# /usr/sfw/bin/pdbedit -a rootsamba起動
# /etc/init.d/samba start

Solaris10のSSHを設定

Solaris10にSSHを設定して、リモートでアクセスできるようにしたときのメモ。Solarisのインストールの仕方は前の記事を参照。SSHはデフォルトでインストール済みなのでrootでログインできるように設定ファイルを編集
# vi /etc/ssh/sshd_config
PermitRootLogin yes
にする。sshのデーモンを再起動
# svcadm refresh sshsvcadmの詳細は
# man svcadm
で見ると詳しい説明が参照できる。ただTera Termで閲覧するときは文字コードをEUCにしないと文字化けが起こる。IPアドレスを確認したいときは
# ifconfig -a名古屋でプロのSEを目指す

Solaris10の端末エニュレータをbashにする方法

ここでVMware Server 2.0にSolaris10をインストールしてみましたが、あまりに端末エミュレータが使いにくかったので、bashをインストールしたときのメモ。CentOSなどのLinuxを使っているとデフォルトでインストールされているので、違和感なく使えますが、bash(補完機能とコマンド履歴など)がないCUIはこんなにも使いにくかったのかと再認識。bashはTabでコマンドの補完機能やパスの補完を行ってくれて、矢印キーで過去の実行したコマンドの履歴を表示してくれる。詳しくはwikipediaでインストールの仕方はここを参考に。Sunfreeware.comの左からbashを選択し、ダウンロード。ほかlibiconvもインストールした方がいいみたいなので、これもダウンロード。Solarisでデスクトップ環境をインストールしていれば、Firefoxでデスクトップにダウンロードしといて、ダブルクリックで解凍できるので便利。解凍後は
$ pkgadd –d <パス>
でインストール。ファイル名にsparcという文字があるけど、VMwareにインストールしたx86のSolarisでも動いた。軽量、軽快なPHPフレームワーク「petitwork」

pingとpathpingとtracertでネットワークを調査

windowsのcmdを使ってネットワークを調査したときのメモ。 まずホストまで到達できるか確認するためにping(wikipedia)を打つのは基本。
ただホストによってはセキュリティの理由からpingが使っているICMPに応答しないのもある。 次にどんな経路でホストにたどり着いているのか調べるのがtracert(トレースルート wikipedia)。
経由しているルータの一覧と応答時間が表示されるので、どこで時間がかかっているか(どこのルータがおかしいか)が分かる。 詳しくは@ITの記事を参考に。 さらにwindows2000以降ではpingとtracertを拡張したpathpingというコマンドがある。
これはホストにたどり着くまでの経路とパケットの損失率を表示してくれるけど、tracertで十分なような気が。詳しくは@ITの記事を参照。 あと、pingを使って簡易的にネットワークの速度を調査する方法も見つけたのでメモ。 ping -l 10000 exbridge.jp とすると10000バイトのパケットを送信して帰ってきた時間が分かるので (10000 × 2) ÷ 応答時間 = 回線速度 と計算できる。詳しくは@ITの記事を参照 専用ツールを使わなくてもある程度のことは分かる。 ネットワークを調査するためのソフトもそのうち調べてみよう・・・
前に書いた記事suganuma@エクスブリッジ

VMware Server 2.0にSolaris10をインストールしてみた

システムの動作確認のためにSolarisの環境が必要になったので、VMware Server 2.0にSolaris 10をインストールしたときのメモ。Solaris10はSunのページからユーザ登録してダウンロード。VMware ServerではSPARC(スパーク)に対応していないので、x86用をダウンロードする。あとはVMware Serverで新規VMを追加するときにSolarisを選択して、いつものようにインストールすればできるはず。細かい手順を知りたい人はこことかを参照。注意点としては、新規VMをインストールするときに割り当てるメモリを640M以上じゃないとGUIでインストールしている最中で止まる・・・実際に止まった。テキストインストールだと大丈夫らしい。インストール自体は2時間くらいかかった。こっからCoTVが動作するか確かめなきゃ。<2008/10/20 追記>
デフォルトでルートのディスク容量が5.4GBぐらい割り当てられるけど、インストール直後で既に3.6GB使用しているので、初期の割り当てるディスク容量を増やした方があとで困らなくて済む。
容量を確認するコマンドは
$ df -h動画配信といえばHELIOS.CoTV

クライアントに保存されているDNSキャッシュを削除する

DNSを変更したけど、なかなかクライアントのマシンが切り替えたIPに名前解決してくれない場合は
C:>ipconfig /flushdns
を実行してDNSのキャッシュを削除してみましょう。 それでも駄目な場合、外部のnslookupサービスを使って名前解決できるか試します。こことか。(本当はこっちが先)軽量、軽快なPHPフレームワーク「petitwork」

【.NET】クライアントアプリで非同期の処理(通信)を行うには

.NET Framework 1系のころは非同期で処理を実行するためにはデリゲート(delegate)とスレッド(Thread)を理解しないとプログラミングできなかったですが、.NET Framework 2.0からはBackgroundWorkerというコンポーネントが追加され、簡単に非同期の処理が記述できるようになりました。.NET Framework 1系はここを参考に。BackgroundWorkerのサンプルプログラムは@ITの記事を参考に。非同期処理の基本はMSDNの記事をまずは熟読。ちょっと難しい・・・デリゲート(delegate)については、ちゃんと理解したいので、また調べるかも。環境は.NET Framework 2.0, Visual Studio 2005, VB.NET(ASP.NET上ではない)suganuma@エクスブリッジ.jp

【.NET】Enterによるフォーカス移動とTabなど特殊キーの制御

クライアントアプリの開発でキーボードの入力を制御するためのメモ。環境は.NET Framework 2.0, Visual Studio 2005, VB.NETEnterキーでタブ(Tab)キーみたいにフォーカス移動するのは@ITの記事を参考にSelectNextControlを使えばできる。ただ記事で紹介しているフォームのKeyDownをhandleするやり方は特殊キー([PageUp][PageDown][Esc][Tab][カーソルキー])の入力をhandleしてくれないこともあるみたい。そんなときは別の@ITの記事を参考にProcessDialogKeyをOverrideすればいいみたい。紹介されているサンプルコードをフォームのクラスにそのまま記述すればO.K.特殊キーの動きを自作するにはProtected Overrides Function ProcessDialogKey(ByVal keyData As Keys) As Boolean
  Return True
End Functionとしといて、フォームのKeyDownイベントで頑張る。KeyDown, KeyUp, KeyPressの違いについてはMSDNで。名古屋のおもしろ会社エクスブリッジ

【VB.NET】フォームに別のフォームを動的に挿入する

Web(ASP.NET)のフレームのように左にメニューを表示させて、選択したメニューによって右にコンテンツを表示させるやり方。環境は.NET Framework2.0, Visual Studio 2005, VB.NET(ASP.NET上ではないよ)メニューはTreeViewを使って作成。フレームはSplitContainerで。
・・・というか「追加」→「Windowsフォーム」→「エクスプローラフォーム」を選べば、いろいろコントロールが配置されている。TreeViewのAfterSelectイベントで次のようにコントロールを埋め込むことが可能。ここを参考に。Dim objForm As Windows.Forms.Form = Nothing
objForm = New Form1
'Panel2にフォームをセットする
Dim objPanel As Windows.Forms.SplitterPanel = Me.SplitContainer.Panel2
objPanel.Controls.Clear()
objForm.TopLevel = False
objPanel.Controls.Add(objForm)
objForm.BringToFront() '最前面に
objForm.Show() ' 表示
objForm.Dock = DockStyle.Fill '親フォームにサイズを合わせる名古屋のおもしろ会社エクスブリッジ

.htaccessと.htpasswdで簡易ユーザ認証

webで公開しているディレクトリにパスワードをかけて閲覧を制限する簡単な方法。 制限するディレクトリに.htaccessを作って、以下のように記述 AuthUserFile /var/www/.htpasswd
AuthGroupFile /dev/null
AuthName "Secret Area"
AuthType Basic require valid-user <Files ~ "^.(htpasswd|htaccess)$">
    deny from all
</Files> 詳しい説明はここを参照。 次に認証ユーザとパスワードを登録。
$ htpasswd -c /var/www/.htpasswd user パスワードを聞かれるので認証パスワードを入力すると/var/www/.htpasswdファイルが作られ、暗号化した状態でパスワードが保存される。 追加するときは
$ htpasswd /var/www/.htpasswd user Apacheのドキュメントも参考に。 .htaccessを読み込むためにはAllowOverrideをALLにしないといけないので忘れずに。詳しくはApacheのドキュメント。< 2011/08/10 Modified >
localhostからは参照可能にしたい場合は次のようにするOrder Deny,Allow
Deny from allAuthUserFile /var/www/.htpasswd
AuthGroupFile /dev/null
AuthName "Secret Area"
AuthType Basic require valid-userAllow from localhost 127.0.0.1
Satisfy Any<Files ~ "^.(htpasswd|htaccess)$">
    deny from all
</Files>

【.NET】Webアプリのようにセッション(session)を使いたい。app.configの設定

イメージ
Webの場合、ログインしたユーザの情報はsessionに格納してアプリケーション内で使い回しますが、クライアントアプリケーションの場合どうやってやるのか調べたメモ。環境は.Net Framework 2.0, Visual Studio 2005, VB.NETここに全ての答えが。app.configというアプリケーション構成ファイルに設定を記述することができるみたいです。My Projectを開くと設定という項目があるので、ここに設定する値を記述すると自動でapp.configが作成されます。参照するときは
sUrl = My.Settings.AURORA_URL

sUrl = My.Settings(“AURORA_URL”)設定するときは
My.Settings.AURORA_URL = “http://aurora.exbridge.jp/”

My.Settings(“AURORA_URL”) = “http://aurora.exbridge.jp/”ローカルのファイルに保存されるため、起動時に毎回ログインし直す場合などはアプリケーション終了時にクリアする処理が必要。

【.NET】従来型のArrayListとジェネリックなDictionary

.NET Framework2.0で新しく追加になったジェネリック(Generic=一般的な、汎用的な)という機能のメモ。ジェネリック機能についての説明は@ITの記事を参考に。簡単にいうと、より汎用的に使えるようなクラス(機能)。使うことが多いArrayListやHashTableにジェネリックなクラスが新たに用意されています。従来型ジェネリック説明ArrayListList可変サイズの1次元リストHashtableDictionaryキー/値ペアのコレクションこの辺も@ITの記事で詳しく書いてあるので参考に。従来型のHashTableは値が全てObject型となっていましたが、Dictionaryはインスタンス化するときに値の型を宣言する必要があります。
Object型の場合、なんでも格納できるので便利なような気もしますが、取り出して使用するときに明示的に型の変換をしないといけないので、効率的ではないようです。MSDNにも値をObject型以外にした場合、Dictionaryの方が速いと書いてありました。ここ。ケースバイケースだと思いますが、今後は積極的にジェネリックな機能を使っていった方がよいようです。名古屋でプロのSEを目指す

【.NET】Visual Studio 2005でPostgreSQLに接続する

イメージ
VB.NETでクライアントアプリケーション作ってますが、Visual Studio 2005でPostgreSQLに接続するためのメモ。ODBCを使ってもよいですが、クライアントに設定しないといけないので.NET用のデータプロバイダ(Data Provider)が提供されていないか検索したら、やっぱりありました。ODBCを経由しないから、こっちの方が速いはず。Npgsql .Net データプロバイダPostgreSQL8.3.3からはスタックビルダがついていて、これを利用するとNpgsqlも簡単にインストールできますが、PostgreSQL8.3.4の段階では、まだNpgsql v1.0.0でした。これだと参照設定しても利用できなかったので、たぶん.Net Framework2.0だとNpgsql2.0以上を使わないと駄目なんじゃないかな? ここから最新バージョンをダウンロードしてきて、適当なフォルダに保存します。 C:\Program Files\Npgsql\2.0\ とか。そして、Visual Studio 2005のプロジェクト→参照の追加で参照タブから Npgsql.dll を選択すれば使えるようになります。My Projectの「参照」で編集可能。Imports Npgsql Public Sub test() Dim conn As NpgsqlConnection = New NpgsqlConnection("Server=192.168.0.1;Port=5432;User Id=user;Password=pass;Database=hoge_db;") conn.Open() Dim command As NpgsqlCommand = New NpgsqlCommand("select name from user where id = 2", conn) Dim sResult As String = command.ExecuteScalar() MessageBox.Show(sResult) conn.Close() End Sub 日本語が文字化けするというのをメーリングリストなどで見たことがあるけど、今のところ大丈夫そう。P…

【Linux】findして見つけたファイルを削除する

コマンドで下位階層まで検索して、見つけたごみファイルを削除する方法。 たとえばvssver.sccをきれいに削除する場合は
$ find -name vssver.scc -exec rm -f {} \; findについてはここのサイトを参考に。軽量、軽快なPHPフレームワーク「petitwork」

OpenSSLで認証局(CA)を構築・・・の前に理解しておくこと

イメージ
Apache+mod_sslでSSL通信をしベリサイングローバルサイン(ジオトラスト)でサーバ証明書を取得しインストールすることはやったことはありますが、サーバ証明書を発行する認証局を自分で構築してしまえばベリサインにお金払わなくてもいいんじゃねぇと思って調べたメモ。まず認証局(CA, Certification Authority)となるのはOpenSSLがインストールされていれば、どのサーバでもなることは可能。
ただし、私がやりたいのはIEなどでエラーがでない証明書を発行する認証局の構築。これはWebTrustという制度(審査)に合格しないと駄目らしい。
3ヶ月ごとに行う厳正な監査らしい。(もちろん個人では無理)WebTrustに合格すると世界的に認証局として認められて各ブラウザに「信頼されたルート証明機関」として登録される。つまりベリサイングローバルサイン(ジオトラスト)で取得したサーバ証明書をインストールするとエラーとならないのはブラウザが既にその認証局を信頼しているから。↓IEのインターネットオプションからコンテンツを選ぶと見ることができます。ちなみにシェアはベリサインが53%、グローバルサインが25%、その他22%(wikipediaより)。グローバルサインの方が安い・・・。
ただ携帯電話用のサーバ証明書を取得する場合、古い携帯電話のブラウザだとベリサインしか信頼してないのもあるらしく、グローバルサインの証明書だと閲覧できない機種が出てきてしまいます。
ベリサインは高いんですけど・・・。次回は実際に認証局の構築と証明書の発行とインストールをやってみる予定(いつになるか分からないけど)。動画配信といえばHELIOS.CoTV

【VB.NET】URLのパスを結合するメソッドCombine

VB.NETでローカルのパスを結合する場合、Path.Combineを用いますが、そのWeb版。VirtualPathUtility.Combineというのが絶対URLと相対URLを結合してくれます。やり方はASP.NETでない場合、参照の追加でSystem.webを追加して
Imports System.WebsUrl = VirtualPathUtility.Combine(“/”, “test.php”)という感じ。
※.Net Framework 2.0以上本当は
sUrl = VirtualPathUtility.Combine(“http://hoge.jp/”, “test.php”)
とやりたかったけど、これだと「有効な仮想パスではありません。」と怒られるのでVirtualPathUtility.AppendTrailingSlashを使ってsUrl = VirtualPathUtility.AppendTrailingSlash(sUrl) + “test.php”とやることにしました。軽量、軽快なPHPフレームワーク「petitwork」

【VB.NET】アプリケーションからJSON形式でサーバと通信する

VB.NETのクライアントアプリケーションでWEBサービスにアクセスしてJSON形式のデータをデコードしたときのメモ(ASP.NET上ではない)。開発環境は.NET Framework2.0 Visual Studio 2005方法としては次の2通りJSON.NETASP.NET 2.0 Ajax Extensionsどっちを使うか迷いましたが、「ASP.NET 2.0 Ajax Extensions」は.NET Framework3.5から標準搭載されるようなので、こちらを使うことに決定。両者の速度の違いなどがここのブログに書いてあるので一読しとくといいかも。ASP.NET 2.0 Ajax Extensionsここから「Download ASP.NET Extensions v1.0」をクリックしてダウンロード。
その後、インストーラからインストール。Visual Studio 2005では「プロジェクト」→「参照の追加」→「System.Web.Extensions」を選択して、次のをimportsしとくImports System.Net Imports System.Text Imports System.Web.Script.Serialization サンプルコードは次のような感じ。Dim sTargetUrl As String = "http://hoge.com/webservice/" Dim objWeb As WebClient = New WebClient() Dim objSrializer As JavaScriptSerializer = New JavaScriptSerializer() Dim objEncode As Encoding = Encoding.UTF8 Dim bResult As Byte() = objWeb.DownloadData(sTargetUrl) Dim sJson As String = objEncode.GetString(bResult) Dim objHash As Hashtable = objSrializer.Deserialize(Of Hashtable)(sJson) JavaScriptSerializerについてはMSDNを…

PHP用拡張モジュール有名どころ一覧

ApachtとPHPをセットアップするときに必要となるPHPの拡張モジュールのメモ。 環境はCentOSで、基本
$ yum install <拡張モジュール名>
でインストール可能な一覧。 拡張モジュール名説明php-mbstringマルチバイト文字列を扱うときに必要となる。PHPを使うシステムでは、ほぼ必須。参考PHPマニュアル
php-gd PHPで動的に画像を生成したり、画像のサイズ変更を行うときに必要となる。PHPマニュアルphp-pgsqlPHPからPostgreSQLに接続するためのモジュール。php-mysqlPHPからMySQLに接続するためのモジュール。php-xml DOMやSimpleXMLなどXMLを使う場合に必要。PHPマニュアルその他、気づいた時点で追加する予定。軽量、軽快なPHPフレームワーク「petitwork」

Tera Term Proのダウンロードとインストールメモ

TeraTermがない端末で作業するときにさくっとインストールするためのメモ。
なんかいっぱいバージョンがあるみたいだけど詳しいことはwikipediaで。 インストールパッケージはSourceForgeのプロジェクトからダウンロード。今は「UTF-8 TeraTerm Pro with TTSSH2」から「Tera Term」に改名したらしい。現行のバージョンは4.60「UTF-8 TeraTerm Pro with TTSSH2」がインストールされている場合はアンインストールした方がいいらしい。 インストールするときは「TeraTerm Menu」を選択する。
これはタスクバーに常駐して、ショートカットからマクロでログインするところまで自動でやってくれる。
便利。 あとは普通にインストールをすすめていけばOK。suganuma@エクスブリッジ

FedoraCore5のsamba設定ではまる(SELinuxを無効に)

開発でFedoraCore5が必要になったので、VMwareServerに新規インストールして設定していたらsambaの設定で、ちょっとはまった。普通に
$ yum install samba
のあと、前に書いた記事を参考にsmb.confを設定しようとしても、まずsamba経由でsmb.confを上書きできない・・・。しょうがないので、sshでファイルをアップロードしてsmb.confを上書きするとできる。その後sambaを再起動して共有フォルダにwindowsからフォルダを作成しようとするとできない・・・。そのときの/var/log/messageは下のような感じ。Sep 24 16:51:44 vm-hoge kernel: audit(1222242704.940:94): avc:  denied  { write } for  pid=
3246 comm="smbd" name="opt" dev=dm-0 ino=228481 scontext=root:system_r:smbd_t:s0 tcontext=
system_u:object_r:usr_t:s0 tclass=dirよく分からない・・・。sambaの動きがなんか変。・・・と思っていたら、原因がわかりました。selinuxのせいです。system-config-securitylevel-tuiをやっても有効、無効の選択肢がでなかったので気付きませんでした。無効にするためには/etc/selinux/configのSELINUX=enforcingをSELINUX=disabledと記述して、再起動すればok.そういえば他の処理をしたときにPermission deniedとログに書いてあったのはselinuxが効いているせいということで納得。

VMware Server 2.0正式版をインストールしてみた(RPMで)

こっちの記事でも書いてますが、VMware Server2.0の正式版がリリースされたので、さっそくインストールしてみました。まえはソースコードからコンパイルでしたが、今度は今後の保守も考えてRPMでインストールしました。環境はLinux(CentOS5.2)まずはここからダウンロードしてきます。今回もいろいろとダウンロードするまでに質問されますが、無償で利用できるありがたみを感じながら、丁寧に回答していきます。 インストールするOSの制限として、WindowsとLinux合わせて10となっていますが、あとで変更もできるので気にせずダウンロードします。まずは前のRC1,2をインストールしてある場合はアンインストールしときます。 $ vmware-uninstall.plRPMの場合は簡単で
$ rpm -ivh VMware-server-2.0.0-116503.i386.rpm
$ vmware-config.pl
とすればok. 質問はデフォルトで答えていけば、とりあえず動く。ここで気付いたのが、リモートコンソールでログインするためのポート(902)を聞いてきた。 もしかしてRC版ではできなかったリモートコンソールでの管理ができるのか?
と思い1.0の頃のVMware-consoleをインストールしてみたけど、アクセスできなかった。何かしら方法はありそう。VMware Serverのドキュメント(マニュアル)続く・・・。<2008/10/31>
Ubuntuに
$ apt-get install rpm
をやった後にrpmのvmwareをインストールしてみたらできなかったで、しょうがなくソースからコンパイル。特に問題なくインストール完了。あと、ポート902は有償のVirtualCenterで管理するためのポートみたい。<2009/07/05>
でも、やっぱりソースからコンパイルした方が保守しやすかった・・・。削除する方法は
# rpm –qa | grep VMware
で検索しといて
# rpm –e VMware-server-2.0.0でアンインストール完了

Blogger向けアクセス解析ツールはまだ?

2008/05/02の記事でBlogger向けアクセス解析ツール「Google Analytics for Blogger」をテスト中というのを読んで、どんなアクセス解析ができるか楽しみにしているのに、なかなか公開されない。 今はGoogle Analytictsで一応満足していますが、追加でほしい機能はRSSの購読状況を表示被リンクの情報をサイト(ブログ)単位で表示Google カレンダーと連携ぐらいかなぁ。suganuma@エクスブリッジ

【PHP5】オブジェクトを複製する clone

PHP4とPHP5の違いはこの辺で少し書きましたが、PHP5でオブジェクトを値渡しのように複製したい場合はどうするの?と思ったときのメモ。 オブジェクトを複製したい場合はcloneを記述するようです。PHPマニュアル。<記述例>
$copy_of_object = clone $object; さらにここの記事ではPHP5で変更のあった仕様をまとめているので、参考になるかも。参照渡しと値渡しの速度比較は前の記事を参考に。軽量、軽快なPHPフレームワーク「pettiwork」

Bloggerで記事のバックアップ(エクスポート)をする

新しい機能が次々と出てきて楽しい反面、いきなりスパムブログと間違われて削除されたり、いきなり文字化けしたり、いきなりアクセスできなくなったりと問題もあるBlogger。
そんな目にあうのは利用者の数%だと思うけれど、今までコツコツとためてきたブログを削除されてしまったら、あまりに悲しいのでバックアップをとる方法を調べたのでメモ。 まだドラフト版ですが、ブログの記事をエクスポートするのが提供されているみたいです。 Blogger in draft(http://draft.blogger.com/)にアクセスして管理画面からエクスポートを選ぶと、
Bloggerのレイアウトと記事の内容(コメントも含む)をXML形式で保存できます。 ここの記事を参考に。 投稿された写真はPicasaの方に保存されているので、この方法ではバックアップをとれないですが、定期的に記事のバックアップをとっておけば安心です。Windows Live Writerにバックアップの機能があるとすごい助かるんだけどなぁ。

32bitと64bitの違い

公式ブログの続き。最近のCPUは64bitに対応しているのが多いですが、 「32bitと64bitの違いって何ですか?」 って(一般の人から)たぶん聞かれるので、その答えを準備するために調べたメモ。 OKWaveに投稿されている回答内容を読めば、なんとなく理解できる。 あとはwikipediaを参考に。こっちはちょっと難しい。 自分で回答する内容は以下32bit, 64bitはCPUの情報処理能力 片側2車線道路が片側4車線になるようなもの(車の流れが結構違うでしょ?) ただこの片側4車線をフル活用するためにはOSとアプリケーション側で対応が必要 64bitのOS上では64bitのアプリケーションしか動かないけど、windowsの場合エミュレーションして対応している 扱えるメモリの最大が理論上4GBから180億GBまで増える この扱えるメモリの増加が一番のメリットかもね 実際64bitのCPU + 64bitのCentOSをインストールしてみたけど体感速度はあまり変わらない 相当高付加+並列処理が必要なことをやらなければ32bitで十分 しかも最近のCPUは内部的に並列処理ができる仕組みをいろいろ導入しているからね こんな感じで説明すれば分かるかな。軽量、軽快なPHPフレームワーク「pettiwork」

エクスブリッジのギネスに挑戦を動画で配信

私が外に行っている間に「ギネスに挑戦」シリーズが開幕したみたいです。今回はxb-itazu氏が頑張ってます。この動画はエクスブリッジの動画配信システム「HELIOS.CoTV」で配信されてます。携帯でも閲覧可能ですが、パケホーダイの契約している場合のみおすすめします。結構お金かかるみたいなので。携帯で閲覧したい場合は「HELIOS.CoTV」にあるQRコードからいけます。暇なときは他の動画もどうぞ。動画配信といえばHELIOS.CoTV

空手合宿に行ってきました。

イメージ
3連休は大学の空手合宿に参加しました。↓合宿の風景さすがにきつかったですが、久しぶりにいい汗がかけました。体の衰えも再認識しました。学生の稽古についていけない・・・しばらく筋肉痛が続きそうです。

今週末は空手合宿で栃木県へ

大学の合宿にOBとして参加してきます。 名古屋からだと行きにくい場所にあるので、新幹線とバスで3・4時間ぐらいのところにあります。 学生ほどの体力はないので、怪我しない程度にがんばります。あと関係ないですが、また自転車が盗まれました。名古屋に来て5回目。suganuma@エクスブリッジ

【Ethnaを使った携帯サイト構築】セッションを保持するために

今、別案件でフレームワークEthna(えすな)を使った携帯向けサイトを構築していますが、そのときに使った携帯でセッションを保持するための処理をメモ。 .htaccessに php_flag session.use_trans_sid On を書いてもいいですが(session.use_trans_sidについては前に書いた記事を参考に)、PC向けの画面も同じ階層にいたりするので、PHPで制御するやり方です。 ログインなどでセッションをスタートした後にoutput_add_rewrite_var(session_name(), session_id());を記述して携帯用の共通のコントローラで同じく
output_add_rewrite_var(PHPマニュアル
を記述すればO.K。
session.use_trauns_sidだけでいけると思ったけどダメだった。環境はPHP5.1.6 例↓ class Ethna_ActionMobileClass extends Ethna_ActionClass {
function authenticate() {
output_add_rewrite_var(session_name(), session_id());
if ( !$this->session->isStart() ) {
return 'login';
}
else {
return null;
}
}
} output_add_rewrite_var(PHPマニュアル
は画面のリンクやformに設定した名前と値の組を自動で付加してくれる便利関数。 <?php
output_add_rewrite_var('var', '12345');
echo '<a href="file.php">リンク</a>'
?> とすると <a href="file.php?var=12345">リンク</a> になる。&l…

筋肉痛がまだとれない

日曜日に尾張旭で空手を教えている先輩のところに行って空手をしてきましたが、その筋肉痛がまだとれません。 8月中は夏休みで稽古をサボっていたので約1ヶ月ぶりの稽古。 今週末に大学の合宿でOBとして参加するので、少しは体を動かしてないとまずいと張り切りましたが、やっていても脳の命令に
体がついてこれず、「もうやめてくれー」と体の節々からの叫び声が聞こえてくるようでした。 やっぱりサボっているとどんどん体が衰えていきますね。もう急降下。 1週間に1回は稽古がない日でも動くようにします。

IP電話でFAXを送る方法とPC-FAXについて調べてみた

に固定電話をやめて光電話にすると書きましたが、
(NTTの固定電話を休止状態にする。)
そこで問題になるFAX送信について調べてみました。 まずIP電話網を使ってFAXを送信するのは止めたほうがいいらしい。
@IT-IP電話でのFAX通信は、メーカー独自手順などFAX機にも注意そこでPCでFAXを送信できるような(FAX代行みたいな)サービスを調査。
このようなサービスを使うと、新しいFAX番号をもらえて、そこに届いたFAXはPCのメールに届くようにすることができる。
→メールのやり取りと同じようにFAXの送受信ができる。 有名なのはiFAX(インターネットFAX)
月額料金が無料の従量制。一番便利そうだけど、NTTの固定電話に加入してないといけない。
今回はNTTの固定電話から脱却したいので根本的に対象外 D-FAX
月額料金は無料の従量制。受信だけなら無料。登録するときに登録料として2,500円必要。3ヶ月間未使用だと自動でアカウントが削除される。
・・・微妙 このFAX ASPサービスの記事を読むとiFAXを使いたくなる。他にも同じようなサービスを提供しているところはあるけど、どこも月額利用料金が1000円前後かかるので利用しづらい。参考結論としては、FAXはあきらめることにしました。 本当に必要になったときにまた考えます。

自宅のネットワーク構成を一新・・・するために

最近、自宅のネットワーク構成をアップグレードしようと妄想中。 ・・・別に今困っているわけではないんですけど・・・ テーマは「無線」。なるべく裏に這っているコード類を減らそうとしてます。 まずはプロバイダの変更。
今はYahoo BB 12Mですが、コミュファ光に。
今住んでいるマンションは「コミュファ・マンションF」らしいのでちょっと高い。 これでNTTの固定電話を休止状態にすれば毎月500円ぐらい安くなる。 Yahoo BB 12M + NTT固定電話 = 約5,500円

コミュファ光 マンションF = 約5,000円 こんな感じ。
そんなに違わないですが、回線速度が上がって料金が安くなればいいかなぁ。 ただ一つ問題が。 今までFAXをごくたまに使ってましたが、これが使えなくなる。
別に使えなくなってもいいですが、実家からとか知り合いからたまに来るので、どうしようかなぁと考え中。
固定電話なしでFAX送る方法を調査中なので、またブログで書きます。 無線ルータはCoregaのCG-WLBARGNHでほぼ確定。 プリンタは今までBrotherのMFC-620CLNを使ってましたが、無線化のために新しくDCP-535CNMFC-930CDNにしようか考え中。MyMioシリーズは多機能な割りにコンパクトなので、部屋にすっきり収まってましたが、FAXがいらなくなると他の会社のプリンタも選択肢に入ってくるので、これもまた迷う・・・。 どうしよーねー。suganuma@エクスブリッジ

エクスプローラ風ファイル管理ソフト(ファイラー)「まめFile」

イメージ
私が愛用しているファイル管理ソフト「まめFile」の紹介。フリーソフトです。作者のページはここから。ファイルの圧縮、解凍、分割、結合 ランチャー機能 よく使うフォルダを覚えておける ショートカットキーを登録すると片手で操作できる マウスでファイルをコピー、移動するときに問い合わせしてくれるので、間違えてファイル移動とかを防止できる。(設定でどうにでもできる)などなど機能は豊富。私の場合はまだ「まめFile4」を愛用中。「まめFile5」でもいいけど、ウィンドウごとに作業内容を決めているので、こっちの方が使いやすい。圧縮、解凍するときは別途dllをインストールしないといけないですが、caldixを使って一括でインストールすると楽。あとはTortoiseSVNと連携できれば言うこと無し名古屋のおもしろ会社エクスブリッジ

プレースホルダ(place holder)はplace folderではない

データベースにSQL文を発行する際はSQLインジェクション攻撃の対策としてプレースホルダとバインド変数を用いるのが常ですが、プレースホルダのholderをfolderと勘違いしてました。・・・ただそれだけ。エクスブリッジのsomfaを使うと次のような感じになる。$sPlaceHolder = 'user_id = ?';
$aBind = array($vo->user_id);
$aRecordset = $objSomfa->select('tbt_user', '*', $sPlaceHolder, $aBind); PHP用DB接続支援ライブラリ「somfa」

Google カレンダーでiCal形式を読み込むと文字化け

Googleカレンダーにical形式(*.ics)のファイルを別カレンダーとして登録したときに文字化けしていた原因が分かりました。Googleカレンダーではレスポンスのヘッダーに文字コードを指定しないと駄目らしい。ここのブログで教えてもらった。icalが置いてあるディレクトリの.htaccessに
addtype text/calendar; charset=utf-8
を記述してみたりしたけど駄目だったので、PHPでさくっと作りました。<?php
header('Content-Type: text/calendar; charset=utf-8');
$sFile = $_GET['ical'];
readfile($sFile);
?>このファイルをical.phpとすると
http://www.hoge.com/ical.php?ical=suganuma.ics
というアドレスをGoogleカレンダーに設定すると、文字化けせずicalファイルを読み込んでくれます。Googleカレンダーは携帯でもみれるので、これで会社のスケジュールをいつでも携帯から閲覧可能に。ちなみにGoogleカレンダーの携帯用アドレスはhttp://www.google.com/calendar/m<2008/09/16 追記>
コメントで指摘がありましたが、上のコードはあまりにセキュリティがダメダメなので各自'ics'ファイルに限定するとか、やってください。<2009/08/28 追記>
一応備忘録のために修正版をアップ。<?php $sFileName = $_GET['ical']; if (strpos($sFileName, '.ics') === false) { $sFileName .= '.ics'; } if (file_exists($sFileName)) { header('Content-Type: text/calendar; charset=utf-8'); readfile($sFileName); }