MacにClamAVをインストールする(homebrew使用)
Mac OSXでのウィルススキャンにはClamXavを使っていたのだが、有料化してしまった。
一度払うだけならいいんだけど、そのうちVer.3が出てまた払わされるだろうし、リアルタイムスキャン機能は使わずに定期的にフルスキャンをかけるだけだったので、ClamXavはアンインストールして、直接ClamAVを使ってみることにした。
インストールにはHomebrewを使った。
brew install clamav
ウィルス定義用ディレクトリを別に作ってみる(なんとなく)
mkdir -p /usr/local/var/lib/clamav
freshclam.confの作成(ウィルス定義更新コマンド用)
cd /usr/local/etc/clamav/ cp freshclam.conf.sample freshclam.conf vim freshclam.conf
freshclam.confを編集
- Example の行をコメントアウト
- DatabaseDirectory で、ウィルス定義用ディレクトリを指定
# Comment or remove the line below. #Example # Path to the database directory. # WARNING: It must match clamd.conf's directive! # Default: hardcoded (depends on installation options) DatabaseDirectory /usr/local/var/lib/clamav
ウィルス定義の更新
freshclam
いざ、フルスキャン!
- ここでは、/dev/ 以下のディレクトリと、
*.vmdk
,*.vdi
のファイルは対象外にしている - ログを ~/Desktop/clamscan.log に書き出している
clamscan --exclude-dir="^/dev/" --exclude="\.vmdk$|\.vdi$" -r / | tee ~/Desktop/clamscan.log
次に再度フルスキャンする時には、clamavのupgradeと、ウィルス定義の更新も忘れずに。
謎
なんか、freshclam で定義を更新する時にエラーがでるっぽい
Downloading bytecode.cvd [100%] ERROR: Database load killed by signal 11 ERROR: Failed to load new database
一つ前のバージョンのClamAVでは発生しないらしい。ほっとけば、そのうち直るかなぁ
おまけ
- フルスキャンは時間がかかるので、省エネルギー設定で自動スリープしない設定にしておき、スキャン終了後に自動でスリープコマンドを実行させると良いかも。次回起動時に省エネルギー設定を戻すのを忘れずに
clamscan パラメータ色々 ; osascript -e 'tell application "Finder" to sleep'
- ちなみに、clamd は、プロセスを常駐させておいて、何度もスキャンを繰り返すような場合に使う。今回はフルスキャンを1回するだけなので使わなかった。
自作ゲーム配布方法の歴史
2000年頃のインターネットを懐かしむ会(インターネット老人会)というイベントで発表したので、スライドを貼っておきます。
(Chromeだと埋め込みスライドのボタンが効かないっぽいので、下のリンク先で見てください)
書ききれなかったけど、他にも、ベクター PACK5000 とかの、CD-ROMに沢山のフリーソフト・シェアウェア(無料アプリ・有料アプリのこと)が収録されたムックとかもありましたね。
Vimで、ファイルの存在するディレクトリ単位で、インデントの設定とかを変える
Haxe用の使いやすそうなエディタを調べていくうちに、vaxeというVimプラグインがなかなか良さげな感じだったので、結局 Vimを使い始めることにした。
ファイルタイプごとにインデントの設定を変えるには、vimrcに、例えば autocmd FileType haxe setlocal noexpandtab tabstop=4 shiftwidth=4 softtabstop=4
などと書いておけば良い。
しかし、ファイルタイプに加えて、さらにプロジェクト単位で、インデントの設定を変えたくなることがよくある。(参加しているプロジェクトごとにインデントの規則が違うとか、ある日突然好きなインデントのタイプが変わったとか)
そこで、localvimrc というvimプラグインを入れて、プロジェクトごと(ファイルが存在するディレクトリごと)に追加のvimrcを設定できるようにしてみた。
プロジェクトのトップディレクトリに .lvimrc というファイルを作っておくと、そのディレクトリ以下(サブディレクトリ含む)のファイルを開いたときに、自動的に .lvimrc の内容を実行してくれるので、ここにインデントの設定などを書いておけば良い。
NeoBundleを使っているので、vimrcに、プラグインの場所を追加してインストール
" vimrcに追記 NeoBundle 'embear/vim-localvimrc'
デフォルトのままだと、毎回 .lvimrc を実行するか聞かれて面倒なので、選択を保存する設定にする。ただし、あらかじめ空のファイル ~/.localvimrc_persistent
を作成しておく必要があるみたい。
" vimrcに追記 let g:localvimrc_persistent=2
デフォルトのままだと、sandboxで実行されるため、インデントの設定とかを変えられないようなので、無効にしておく(実はsandboxが何なのかよく分かっていない...)
" vimrcに追記 let g:localvimrc_sandbox=0
あとは、プロジェクトのトップディレクトリに、以下のような .lvimrc をおけば、このプロジェクト専用のインデントの設定ができる。(この例の場合、filetypeがhaxeの場合のみインデントの設定を変更している)
if &filetype=='haxe' setlocal expandtab tabstop=4 shiftwidth=4 softtabstop=4 endif
やったね!
Windows 8 で簡単シャットダウン
Windows 8をシャットダウンするのが面倒臭いので、ショートカットを作った。
以下のファイルを"confirm-shutdown.js"等の名前で作成し
var sh = new ActiveXObject("WScript.Shell"); if (sh.Popup("Are you sure you want to shutdown?",0, "Confirmation", 1+32) == 1) { sh.Exec("shutdown -s -t 0") }
"wscript.exe [confirm-shutdown.jsのパス]"という内容のショートカットを作っておく。起動すると、シャットダウンを確認するダイアログが出る
おまけ1
こっちのほうがいいかも?(試してない)
http://crystaldew.info/2012/07/16/windows-8-sleep-shortcut/
おまけ2
Haxe NME
NMEという、Haxe言語用のクロスプラットフォームライブラリがあり、Flash風のAPIを使って書いた単一のコードから、Flash、html5、iOS、android、mac、windowsなど、色々なプラットフォーム向けの実行ファイルを出力できる。
JavaScript (中略) ハッカソンに参加したので、NMEを使って生成されたアプリの、いくつかのプラットフォーム上での実行時間を比較してみた。
比較には、id:yoshihiro503さん作のAOBench Haxe版を、NME用に移植したものを使った。ソースはこちら。html5版の生成されたアプリはこちら
実行にかかった時間(ms)
10回(iPhone 4sのhtml5のみ3回)測定した平均値です。
MacBook Pro (15-inch Mid 2010, Core i7 2.66GHz) で実行
html5 (JavaScript) Chrome上 | html5 (JavaScript) Safari上 | Mac nativeアプリ (C++) | Flash | |
---|---|---|---|---|
1574.1 ms | 2812.3 ms | 1092.9 ms | 3601.8 ms |
感想
- MacのChrome上でのJavaScriptがかなり速い。nativeアプリの1.4倍程度の時間。Flashよりも速い
- iOSのSafari上でのJavaScriptは、nativeアプリの6.6倍程度の時間。
NME のセットアップメモ
追記:NMEのインストーラを使うと、いくつかの手順やコマンドの名前を省略てきて便利なようです(コメント欄参照)。
haxelibのインストール方法はこちら
Mac上でのNMEのセットアップ手順(うろ覚え)
sudo haxelib install nme sudo haxelib run nme setup html5 (jeashライブラリをインストール) sudo haxelib run nme setup flash sudo haxelib run nme setup ios (XCode4を別途インストール) sudo haxelib run nme setup mac sudo haxelib install hxcpp (これを忘れると、Source Path "libstd..." does not exists、などのエラーが出る) sudo /usr/bin/xcode-select -switch /Applications/Xcode.app/Contents/Developer (これを忘れると、/Developer パスが無いと言われる)
実行
haxelib run nme test application.nmml html5 haxelib run nme test application.nmml flash haxelib run nme test application.nmml mac haxelib run nme test application.nmml ios
HaxeでJavaScriptゲームを作ってみた
最近、JSXやHaxeなどのJavaScriptを生成できる言語が流行っているみたいなので、Haxeを少し勉強してみた。
試しに、以前OCaml(ocamljs)で書いたシューティングゲームを、Haxeで書き直してみた。
Haxeのインストール
- Mac用のものもhomebrewにあったけど、現時点のバージョンではhaxelibがエラーが出て動かなかった。
- 追記:@choplin さんが 解決法 を書かれています
- 結局、Ubuntu 12.04 に入れた
- Ubuntu標準のリポジトリにあるものは古いけど、haxeのリポジトリを追加すれば最新版をインストールできた
- 参考: http://haxe.org/installation/ubuntu
- そのままではライブラリが足りないのか実行時エラーになった
- libneko0 を追加したら動作した(よく分からん)
実行したコマンド:
sudo add-apt-repository ppa:eyecreate/haxe sudo apt-get update sudo apt-get install haxe libneko0
html5ライブラリのインストール
実行したコマンド:
sudo mkdir -p /usr/lib/haxe/lib sudo haxelib setup sudo haxelib install html5
感想
- 良さげな点
MSXでプレゼン
MSXでプレゼンしてみました。
プレゼン生成に使ったツールも公開しています:
https://bitbucket.org/sunflat/mlnagoya/
こんな感じのScalaコードから、プチコンのBASIC風の中間形式を経て、こんな感じのMSX-BASICコード(UTF-8版)を生成します。
補足
- MSX2以降なら、「SHIFT+かな」でローマ字入力できるそうです(Twitterで教えてもらいました)。昔使ってたのはMSX1だったので知らなかった…
- MSXでは、こんな感じの文字コード(半角ひらがなやグラフィック文字がある)を使っているので、Unicodeからの変換テーブルを作って変換しています
- 実は、DEF FN文を使って1つの式だけの簡単な関数なら定義できたりします。でも、条件式や再帰などが使えないので、共通の処理をまとめたりするのには使いづらい(代わりにサブルーチンコールを使う)