mscomctl.ocxとcomctl32.ocxはいずこ?

Windows7は64bit、Office2010も64bitを指定してインストールしたところ、仕事で使うExcelのAdd-inが要求しているらしいmscomctl.ocxが見つからないって怒られた。VB6時代のランタイムだから当然32bitだけど、標準でインストールされないのね。

  1. 32bitのDLLだからsyswow64で登録させることは想像がついたが、肝心な最新バージョンのファイルの入手先がよくわからない。
    検索でそれらしくヒットしたMicrosoftダウンロードのサイトから、VisualBasic6-KB896559-v1-JPN.exeをとってくる。
  2. EXPLZHなどを使って、ファイルを解凍。
    欲しいのはmscomctl.ocxと念のためcomctl32.ocx。
  3. エクスプローラで、c:\windows\syswow64に二つのファイルをコピー。管理者権限が必要なので、対応はそれなりに。
  4. コマンドプロンプトを管理者として実行。これも権限は必要。
  5. コマンドプロンプトで以下を入力してocxを登録する。

    cd \windows\syswow64
    regsvr32 mscomctl32.ocx
    regsvr32 comctl32.ocx

これでよくわからないエラーメッセージは出ないで起動するようになったけど、Add-in が正常に期待通り動くのかはこれから要検証。

OS X で、isoファイルを作る方法 2

以前メモを書いたんだけど、isoファイルの作成方法

複数のフォルダから寄せ集めてイメージを作る場合、
手元にすべてのファイルを集めてやれば良いんだろうけど、
OS Xに標準で付いてるディスクユーティリティで楽出来ないかな。。。と。

だって、滅多に使わないコマンドのオプションなんか覚えてないって。

早速ディスクユーティリティを立ち上げて、オプションを設定してみる。と馬鹿正直にCDサイズのファイルができあがる。中身は空っぽなのに!!

オプションはこんな感じかな

オプションはこんな感じかな

マウントすれば、普通のフォルダとしてアクセスできるので、必要なファイルをドロップ。して、あうんマウントすればいいわけだが、、、
このままじゃWindowsから読めない

《゚Д゚》ゴラァァァァァァァァァァァァア!!

となると結局hdiutil のお世話にならなくちゃいけない。

hdiutil makehybrid -iso -joliet -o output.iso imput.cdr

またこれをすると、実際のファイルの使用量に応じたisoファイルができあがる。
つまり、ディスクユーティリティを使ってイメージを作っても、このhdiutilを使った作業が実質必須ということか?

パーティションフォーマットをFATなどにもしてみたけど、どうも期待通りの動作をしないんだよね。
hdiutilのmakehybridに相当する動きをディスクユーティリティにしてもらいたいんだが…

 

Just System イメージ悪すぎ

#処理の待ち時間にざっと書いたので、乱文失礼。^^;

今朝、MacのATOKに更新があり、コンピュータも再起動させたら、こんな画面が

キャンセルとか、「今はしない」といった選択肢が見当たらない。まぁ左上の赤い丸印を押せば閉じることは出来るんだけど、問題はそれだけじゃない。

「ATOK Syncは無料でご利用いただけます」。ふむ。

ねんのためブラウザを立ち上げて確認してみると、ATOK 2011では「ATOK Sync アドバンス」を”1年間無料で”使えますとな。
けっ、やっぱり1年だけで有料じゃん。

あれ、昔はWebDavサーバを自前で用意すれば(他のクラウドサービスでも良い)、逃げ道にならなかったっけ?こんなページ (ATOK Syncを使って無料で辞書を同期する | penchi.jp)もあったよなぁ。

とよく見ると、バージョンが違う。
確かにJust Systemのページを見ると、2011の場合と、2010以前とで別れてる。

なるほど2010までにあった逃げ道を2011では塞いだのね。

Syncさせたきゃお布施を払えと。

DropBoxや、iCloudといったサービスに意地でも対抗したいのだろうか?金を取るだけのアドバンテージが見いだせない。
この人も半年前に全く同じ事を書いてる。「ATOK Sync:たいして回収できない月額料金を回収するためのコスト

会社がキーエンスに買収されて浮川さんが退社してから、どうもJustSystemの製品のこういう挙動、というかインターフェースというか。。。やらしくなったよなぁ。

 

CentOS の SELinuxを無効にする

CentOS インストール直後、
Apache の mod_aliasを使うと、

(13)Permission denied: access to /hoge/hoge denied

といったメッセージが出る。

ネット上に公開するサーバにはおすすめしないけど、
手物のVMWareで手っ取り早く動かしたいので、Slinuxを無効にする。

キーワードは”enforce”。

現在の状態を取得するには、

getenforce

Enforcingと表示されれば、SELinuxが有効になっている。

一時的に無効にするには、

setenforce 0

この状態で getenforce をすると、Permissive となる。この状態で、Apacheの動作確認などを行うことができる。

再起動したら設定が戻っちゃうので、無効のまま起動させるために、/etc/sysconfig/selinux を書き換える。

SELINUX=disabled

このファイルには、以下のように親切に書かれているので、書き換えるファイルさえわかれば迷わないはず。

# SELINUX= can take one of these three values:
#     enforcing – SELinux security policy is enforced.
#     permissive – SELinux prints warnings instead of enforcing.
#     disabled – No SELinux policy is loaded.

CentOS の Apache にアクセス出来ない? iptablesか!

VMWareにCentosを入れて、yum でapacheを入れる。でもそれだけじゃアクセス出来ない。

CentOSのFirewall 、iptablesの設定を更新する必要がある。

まずは初期状態の確認。

[root@centos ~]# iptables -L –line-number
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT all — anywhere anywhere state RELATED,ESTABLISHED
2 ACCEPT icmp — anywhere anywhere
3 ACCEPT all — anywhere anywhere
4 ACCEPT tcp — anywhere anywhere state NEW tcp dpt:ssh
5 REJECT all — anywhere anywhere reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
num target prot opt source destination
1 REJECT all — anywhere anywhere reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
num target prot opt source destination

Chain INPUTがフィルターの流れ。
4行目でsshが許可されているが、次の5行目で残りがrejectされるようになっている。
つまりこの間に、httpやhttpsといった外部からつなげたいポートを許可する設定を書くって訳だ。

# /sbin/iptables -I INPUT 5 -p tcp –dport https -j ACCEPT
# /sbin/iptables -I INPUT 5 -p tcp –dport http -j ACCEPT

確認。

[root@centos ~]# iptables -L –line-number
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT all — anywhere anywhere state RELATED,ESTABLISHED
2 ACCEPT icmp — anywhere anywhere
3 ACCEPT all — anywhere anywhere
4 ACCEPT tcp — anywhere anywhere state NEW tcp dpt:ssh
5 ACCEPT tcp — anywhere anywhere tcp dpt:http
6 ACCEPT tcp — anywhere anywhere tcp dpt:https
7 REJECT all — anywhere anywhere reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
num target prot opt source destination
1 REJECT all — anywhere anywhere reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
num target prot opt source destination

よしよし。

設定を保存。

# /sbin/service iptables save

後からpostgresを許可したければ、こんな感じにすればいいのかな。

# /sbin/iptables -I INPUT 7 -p tcp –dport 5432 -j ACCEPT

vmshrink の最新版は何処?

「仮想の背中」さんが閉鎖されてからだいぶ経ちますが、「VMwareのディスク使用量を減らす – VMwareToolsがインストールされていない場合」のページは「vmshrink」でGoogle検索すると2番目に表示されるようですね。

HDDの容量が大きくなった昨今、vmshrink の必要性はかなり減ったとは思います。
また最近のVMwareのバージョンであれば、「仮想マシンのクリーンアップ」機能があり、これが同じような働きをしているのでは無いでしょうか?(検証したわけではないので間違っているかもしれません)

ですが、vmshrink などの開発は止まっちゃったのかな?とか、作者さんはご健在?といった疑問は残るわけです。

vmshrink.cの冒頭を見てみると、

	vmshrink.c
	virtual disk shrink utility

	Copyright (c) 2006 Ken Kato

とあります。これと「vmshrink」で検索したら、”それらしい”ページがサイトがあるじゃないですか。

VMware Command Line Tools – VM Back

このサイトのオーナーに関する情報を見つけるには至っていませんが、掲載されている内容からするに、 「仮想の背中」の後継のサイトとみて良さそうです。

♪コネコネコ、ネーコ、いまこねてます。

子供向けの歌に、「こねこのパンやさん」というのがあり、

“こねこねこ こねこねこ こねこねこね こねこ”や「いま こねてます」というフレーズが王子に言わせると、”コネコネコ、ネーコ、いまこねてます。”になる。うーん、字面で表現しても伝わらないな。

コネコネ

コネコネ

歌詞はこちら

動画は、王子が見てるバージョンはニコ動。初代はYoutubeなどにあるようです。

zf.shが使えなくてはまった。

メモ

  1. 最新のzf.zipをダウンロードして解凍。
  2. /usr/local に、zend/share/ZendFramework/ を作成。
  3. 解凍したZF一式をここにコピー。
  4. sudo ln -s /usr/local/zend/share/ZendFramework/bin/zf.sh /usr/bin/zf
    sudo ln -s /usr/local/zend/share/ZendFramework/bin/zf.php /usr/bin/zf.php

ここまでやって、コマンドラインからzfを実行してみたところエラーがでた。

***************************** ZF ERROR ********************************
In order to run the zf command, you need to ensure that Zend Framework
is inside your include_path.  There are a variety of ways that you can
ensure that this zf command line tool knows where the Zend Framework
library is on your system, but not all of them can be described here.

The easiest way to get the zf command running is to give it the include
path via an environment variable ZEND_TOOL_INCLUDE_PATH or
ZEND_TOOL_INCLUDE_PATH_PREPEND with the proper include path to use,
then run the command “zf –setup”.  This command is designed to create
a storage location for your user, as well as create the zf.ini file
that the zf command will consult in order to run properly on your
system.

Example you would run:

$ ZEND_TOOL_INCLUDE_PATH=/path/to/library zf –setup

Your are encourged to read more in the link that follows.
Zend_Tool & CLI Setup Information
(available via the command line “zf –info”)
* Home directory found in environment variable HOME with value /Users/hoge
* Storage directory assumed in home directory at location /Users/hoge/.zf/
* Storage directory does not exist at /Users/hoge/.zf/
* Config file assumed in home directory at location /Users/hoge/.zf.ini
* Config file does not exist at /Users/hoge/.zf.ini

To change the setup of this tool, run: “zf –setup”

ふむ。
確かに、include_pathに、zendのライブラリを追加登録してないからね。でもこのメッセージを見ると、ホームディレクトリに.zf.iniを作れば良さそうだな。

ZEND_TOOL_INCLUDE_PATH=/usr/local/zend/share/ZendFramework/library zf –setup

を実行してみたところエラーも無く表示された。

ZF Command Line Tool – Setup
—————————-

Current Paths (Existing or not):
Home Directory: /Users/hoge
Storage Directory: /Users/hoge/.zf/
Config File: /Users/hoge/.zf.ini

Important Environment Variables:
ZF_HOME
- the directory this tool will look for a home directory
- directory must exist
ZF_STORAGE_DIRECTORY
- where this tool will look for a storage directory
- directory must exist
ZF_CONFIG_FILE
- where this tool will look for a configuration file
ZF_INCLUDE_PATH
- set the include_path for this tool to use this value
ZF_INCLUDE_PATH_PREPEND
- prepend the current php.ini include_path with this value

Search Order:
Home Directory:
- ZF_HOME, then HOME (*nix), then HOMEPATH (windows)
Storage Directory:
- ZF_STORAGE_DIR, then {home}/.zf/
Config File:
- ZF_CONFIG_FILE, then {home}/.zf.ini, then {home}/zf.ini,
then {storage}/zf.ini

Commands:
zf –setup storage-directory
- setup the storage directory, directory will be created
zf –setup config-file
- create the config file with some default values

一番最後zf –setup config-file、これが .zf.iniの作成だな。直前の命令の最後にconfig-fileを追加してみたところ、

NOTE: the php include_path to be used with the tool has been written
to the config file, using ZF_INCLUDE_PATH (or other include_path setters)
is no longer necessary.

Config file written to /Users/hoge/.zf.ini

良さそうだ。
中身を見ると、

php.include_path = “/usr/local/zend/share/ZendFramework/library”

。。。
これでいいのかな?
念のため、

php.include_path = “./usr/lib/php:/usr/local/zend/share/ZendFramework/library”

として上書き保存。

これでzfがローカルな環境でzfが使えるようになった。

OSXのWEB共有、このzf (PHP) 、sqliteで、Webアプリケーションの開発ができるな。mysqlやpostgresもosxにインストールしてしまえば、vmwareが不要になりそうだな。
だが後数日でLionがでるようだから、それが落ち着いてからにしよう。

date.timezoneを設定する

VMWareを使ったLinuxのテスト環境を作ったのだが、timezoneに関するPHPのWarningがうるさいので、対策メモ。

コマンドラインから、次のように入力すると、

php -r ‘phpinfo(); | more’

1ページ目に以下のようなWarningが表示される。

PHP Warning:  phpinfo(): It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ‘Asia/Tokyo’ for ‘JST/9.0/no DST’ instead in Command line code on line 1

phpをディストリビューションのものを使っていれば出てこないんだろうけど、最新のバージョン& Zend Framework をyum管理で楽したい場合、外部リポジトリを使うことになり、多分同じ問題が出るんだろうな。

date.timezone か、date_default_timezone_set()関数を使って設定する必要がある。とな。

/etc/php.ini の中に、コメントアウトされた date.timezoneがあるので、コメントを解除して、値をセット。

date.timezone = Asia/Tokyo

Apacheを再起動すればOK

DOOM on the Web

このブログのタイトルの元になったDOOM。

HTML5で復活です。DOOM on the Web

DOOM on the Web

DOOM on the Web

音はいまいちだったり、オブジェクトや敵が目の前にくるまで表示されなかったり、いろいろあるけれど、かなりよく再現できていると思う。

30fpsで動いているのにもびっくり。

何となくマップは覚えてるんだけど、やっぱり酔いました。