Tag/Mac
SWFMacMouseWheelがバグってるメモ
t-matsuda 氏と AS3.0 MouseWheel on Mac OS X を触る必要があったんだけども、 なぜかwindowsでエラー吐くので調べてみたよ。
エラー内容を見てみると、 どうやら SWFMacMouseWheel に registerObject ってメソッドが無いらしい。 それはさすがにアリエナイだろ。って思ってソースを見てみたら、 swfmacmousewheel_src.js の20行目あたりに、ものっすごいのが書いてあった!
var swfmacmousewheel = function()
{
if( !swfobject ) return null;
var u = navigator.userAgent.toLowerCase();
var p = navigator.platform.toLowerCase();
var mac = p ? /mac/.test(p) : /mac/.test(u);
// この1行がアリエナイ。
if( !mac ) return null;
// 処理がつづく...
// Macだとここが実行される。
return {
/*
Public API
*/
registerObject: function(objectIdStr)
{
regObjArr[regObjArr.length] = objectIdStr;
}
};
}();
この実装はどうなんだ? そりゃ registerObject なんてメソッド無いだろうよ。 windowだと swfmacmousewheel の中身がnullになるよ!
このあと、なんだかんだ修正しまくったんだけども、 とりあえずのやっつけなのであれば、
if ( !mac ) return null;
のところを、
if ( !mac ) return {
registerObject: function () {}
};
って変えてあげればエラーは消えるよ。
本当にやっつけだけども。
他にも色々と問題があったりなかったりなので、
デフォルトのまま使うのであれば、注意したほうが良いかもね ![]()
- Posted at:
- 2008/04/01 14:31:09
- 0 Comments
- 1 TrackBack
- Tags:
- Flash
- JavaScript
- Mac
- Trackback:
- http://humming.via-kitchen.com/2008/04/01/swfmacmousewheel-bug-memo/trackback/
MacのPythonを野良Portsからデフォルトに
Mac の Python を 野良Ports からデフォルトにしたよ。 色々と easy_install で入れたのでとりあえずメモ。
- readline-2.4.2
- yolk-0.3.0
- ipython-0.8.2
- docutils-0.4
- Pygments-0.9
- MySQL_python-1.2.2
- pysqlite-2.4.1
- SQLAlchemy-0.4.4
- lxml-2.0.2
- httplib2-0.4.0
- pytc-0.3
- simplejson-1.7.4
- python-twitter-0.5
- Paste-1.6
- PasteScript-1.6.2
- PasteDeploy-1.3.1
Django はsvn-trunkを使ってるので、 シンボリックリンク貼り直しておしまい。
デフォルトの Python のreadline問題は知ってたので、 Yの砂箱 さんの「 LeopardにバンドルされてるPythonでreadlineを有効にする方法を見つけた。 」を参考に回避。 無事に日本語とかヒストリーとか、いつもの使い勝手が復活。
MySQL_python も、そのまま easy_install するとエラるのを知ってたので、 パッチ当ててから叩く。肝心のパッチファイルは MacPorts の中に入ってるのを拝借してくる。
$ cd /usr/local/src
# パッチファイル2枚をコピってくる
$ cp /opt/local/var/macports/sources/rsync.macports.org/release/ports/python/py25-mysql/files/* ./
$ curl -O http://osdn.dl.sourceforge.net/sourceforge/mysql-python/MySQL-python-1.2.2.tar.gz
$ tar zxf ./MySQL-python-1.2.2.tar.gz
$ cd MySQL-python-1.2.2
# パッチ2枚を当てる
$ patch -p0 < ../patch-_mysql.c.diff
$ patch -p0 < ../patch-setup_posix.py.diff
$ cd ../
$ sudo easy_install -UZ ./MySQL-python-1.2.2
ちゃんと MySQL_python も入ったよ。めでたしめでたし ![]()
後は pysvn と戦うだけ。 ホントにコイツとは相性悪いんだよなぁ。
- Posted at:
- 2008/03/16 19:32:52
- 0 Comments
- 1 TrackBack
- Trackback:
- http://humming.via-kitchen.com/2008/03/16/change-python-on-mac/trackback/
AS3でSWFMacMouseWheelを作ってみたよ。
SWFMacMouseWheel がAS2にしか対応してないらしくて、 勢いでAS3に対応したヤツを作ってみたよ。
使い方はある程度真似てみたんだけれども、 AS2を知らないので何とも。
AS側の使い方としては、 最初にドキュメントクラスとかで configure をコールして初期化する。
import flash.display.Sprite;
import com.viakitchen.ui.MacMouseWheel;
public class Root extends Sprite
{
public function Root()
{
// stageを渡して初期化。
MacMouseWheel.configure(stage);
}
}
後は、 MOUSE_WHEEL なイベントを付けたDisplayObjectを、 MacMouseWheel に add して行くだけ。
addEventListener(MouseEvent.MOUSE_WHEEL, mouseWheelListener);
MacMouseWheel.add(this);
JS側は macmousewheel.js を読み込ませて、 SWFObject のインスタンスを渡す。
var so = new SWFObject('wheel.swf', 'externalWheel', '400', '400', '9', '#ffffff');
so.addParam('allowScriptAccess', 'sameDomain');
so.write('replaced');
new MacMouseWheel(so);
既存の SWFMacMouseWheel がこのやり方なんだけども、 ココは変えるかも。 あんまりスマートくないし、 SWFObject に依存してるし。 普通にid渡せた方が良いような気がする。
まだまだバグとかあるかもなので、 発見したら教えてくださいまし。
追記
本家 のほうでAS3に対応されたみたいですよ!
追記2
諸事情でデータが消えましたので、
ダウンロード出来なくなっちゃいました
すいません。
- Posted at:
- 2008/02/02 16:28:01
- 5 Comments
- 0 TrackBacks
- Tags:
- ActionScript
- Flash
- Mac
- Trackback:
- http://humming.via-kitchen.com/2008/02/02/swfmacmousewheel-on-actionscript3/trackback/
Macでユーザの追加のやり方
Leopardになって、NetInfoが無くなってから、 どうやってユーザ追加するのかな?と思ってたら、 dscl ってコマンドで出来るらしいよ。
$ sudo dscl . -create /Users/<USERNAME>
$ sudo dscl . -create /Users/<USERNAME> UniqueID <uid>
$ sudo dscl . -create /Users/<USERNAME> PrimaryGroupID <gid>
$ sudo dscl . -create /Users/<USERNAME> UserShell </path/to/shell>
$ sudo dscl . -create /Users/<USERNAME> NFSHomeDirectory </path/to/home>
グループの追加はこんな感じらしい。
$ sudo dscl . -create /Groups/<GROUPNAME>
$ sudo dscl . -create /Groups/<GROUPNAME> PrimaryGroupID <gid>
【コラム】OS X ハッキング! (251) Leopard解体新書(2) ~さようならNetInfo~ | パソコン | マイコミジャーナル で、 結構詳しく解説してくれるよ。
迷ったときは、とりあえず、
$ dscl
>help
して、ヘルプみたら良いって覚えておく。
- Posted at:
- 2008/01/23 08:51:35
- 0 Comments
- 0 TrackBacks
- Trackback:
- http://humming.via-kitchen.com/2008/01/23/how-to-add-user-on-mac/trackback/
Macでパスワード付きzipを作る。
Mac でパスワード付きzipを作りたいと思って、 色々探しまわってみたら、 Zip Tools for Mac OSX なんてモノを見つけた。 これの中に入ってる zipcloak ってコマンドでパスワードを設定出来るらしい。
で、入れる前になんとなくwhichしてみたら、 10.5にデフォルトで入ってたよ。
// 圧縮自体はしてくれないので、先にやっておく。
$ zipcloak /path/to/hoge.zip
ってやると、パスワードを聞かれる。 2回聞かれるので、同じのを入力しておしまい。
デフォルトのアーカイブユーティリティだとエラー吐いて展開出来ないけど、 StuffIt Expander なら問題なく展開出来た。
- Posted at:
- 2008/01/15 05:24:49
- 0 Comments
- 1 TrackBack
- Trackback:
- http://humming.via-kitchen.com/2008/01/15/create-locked-zip-on-mac/trackback/
MacPortsのvimでトラブったメモ
MacPorts がおかしくなっていたらしく、再インストールしてみたら vim が入らなくなっちゃったよ。 どうやら p7zip が上手くインストール出来ないらしい。
具体的にはこんな感じのエラーが出る。
$ sudo port install vim +cscope +huge +kaoriya +python +ruby +cocoa
---> Fetching p7zip
---> Attempting to fetch patch-install.sh from http://svn.macports.org/repository/macports/distfiles/p7zip
---> Attempting to fetch patch-install.sh from http://svn.macports.org/repository/macports/distfiles/general/
---> Attempting to fetch patch-install.sh from http://svn.macports.org/repository/macports/downloads/p7zip
Error: Target org.macports.fetch returned: fetch failed
Error: The following dependencies failed to build: p7zip
Error: Status 1 encountered during processing.
色々調べてみると、MacOSX用にコンパイルされた p7zip を /opt/local/bin にコピペすると上手く行くらしい。 krmathis' homepage からダウンロード出来るけど、今回は運良く再インストール前のツリーを消さずにおいてあったのでそれをコピペして試してみる。
$ sudo cp /opt/old_local/bin/7za /opt/local/bin/7za
$ sudo cp -R /opt/old_local/lib/p7zip /opt/local/lib/
これでもう一度 vim をインストールしてみる。
$ sudo port install vim +cscope +huge +kaoriya +python +ruby +cocoa
---> Fetching vim
---> Attempting to fetch 7.1.001 from ftp://ftp.vim.org/pub/vim/patches/7.1
---> Attempting to fetch 7.1.002 from ftp://ftp.vim.org/pub/vim/patches/7.1
...
---> Verifying checksum(s) for vim
---> Extracting vim
---> Applying patches to vim
---> Configuring vim
---> Building vim with target all
---> Staging vim into destroot
---> Installing vim 7.1.100_0+cocoa+cscope+huge+kaoriya+python+ruby
---> Activating vim 7.1.100_0+cocoa+cscope+huge+kaoriya+python+ruby
---> Cleaning vim
今度は上手く行ったっぽいよ。 念のため一通りテストしてみたけど、ちゃんと動いてるしね。 このエントリーも gvim で書いてみたけど、問題なく書けたよ。素敵。
MacPorts の p7zip がインストール出来るようになるまで、とりあえずコレで回避しておこう。
- Posted at:
- 2007/09/16 18:28:02
- 0 Comments
- 0 TrackBacks
- Trackback:
- http://humming.via-kitchen.com/2007/09/16/installation-trouble-of-vim-on-mac/trackback/
Macのvimでバックスペースが効かない?
今までMacの vim でバックスペースが効かなかった。もうちょっと言うと前回入力した値がバックスペースで消せなかった。
Ubuntuだとちゃんと動くのでなんか気持ち悪いものの、何となく放ったらかしてた。
けど、最近はMacでも vim を使う事が増えて来たので、ちゃんと調べて解決する事に。参考にしたのはいつも vim の事ではお世話になっている Vimの全オプション さん。
で、速攻発見。以下の1行で解決。
set backspace=indent,eol,start
省略形だとこうなるらしい。
set bs=indent,eol,start
引数の indent, eol, start は、それぞれそれっぽい意味を持っております。が、とりあえずこう書けば入力モード時に普通のテキストエディタっぽく振る舞ってくれます。
ここらへんのちょっとした挙動の違いは、かなり生産性に影響するので重要。やっぱ手抜きはダメですね。今後気をつけて調べるようにしよう。
- Posted at:
- 2007/09/05 23:27:42
- 2 Comments
- 0 TrackBacks
- Trackback:
- http://humming.via-kitchen.com/2007/09/05/backspace-does-not-work-on-macvim/trackback/
MacのDjangoをsvn-trunkに。
Macの Django を0.96からsvn-trunkにしてみたメモ。
とりあえずは svn でソースを落としてくる。 どこに置いても良いみたいなので、今回は /usr/local/src/Django に置いた。
$ cd /usr/local/src
$ svn co http://code.djangoproject.com/svn/django/trunk ./Django
落として来たソースの中にある django なディレクトリを、 シンボリックリンクとかで site-packages に入れてやれば良いらしい。 ので、既存の Django - 0.96と置き換える形になる。
$ cd /usr/local/python/lib/python2.5/site-packages
$ sudo rm -rf ./django
$ sudo rm Django-0.96-None-py2.5.egg-info
$ sudo ln -s /usr/local/src/Django/django ./django
ココでひとまずバージョン確認しておく。
>>> import django
>>> django.VERSION
(0, 97, 'pre')
とりあえずは上手く行っている模様。 まぁ、転ぶところなんて無い訳ですが。
で、エラー吐くと分かっていながらも、 ブログのソースを runserver してみる。
$ ./manage.py runserver
Validating models...
0 errors found
Django version 0.97-pre-SVN-6022, using settings 'applications.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
意外にも素直に立ち上がってくれた。 じゃあ、って事で意気揚々とブラウザから確認。
が、しかし。
Exceptionが飛んでる。 LookupError だそうです。 unknown encoding: X-MAC-JAPANESE らしく、完全にMac固有の問題っぽい。 どうやら locale モジュールの getdefaultlocale が悪さ?をしてるらしく、 インタラクティブシェルで確認してみる。
>>> import locale
>>> locale.getdefaultlocale()
(None, 'X-MAC-JAPANESE')
ちなみにコイツ、言語環境で英語に切り替えて試すと mac-roman に変わった。 それだと Django は元気よく動いてくれた。 けど、環境ほぼ全てが英語になってしまう。それはちょっと犠牲多過ぎ。
ちょっとGoogleさんに相談してみるといくつか情報を発見。
まずは1個目方法を試す。と、ちゃんと動く。 なるほど、目指す場所は理解出来た気がする。
2個目の方法は getdefaultlocale ではないものの、 たぶん根っこの部分は同じだと思う。という勝手な思い込み。 別のライブラリとかで同じエラーに出くわすのもアレなので、 今回はこちらの方法で対処する事にした。
具体的には Python ソースツリーの Modules/_localemodule.c に以下を追記してリコンパイル。 これで良いのかは分かりませんけれども。
static char *mac_getscript(void)
{
CFStringEncoding enc = CFStringGetSystemEncoding();
static CFStringRef name = NULL;
/* Return the code name for the encodings for which we have codecs. */
switch(enc) {
case kCFStringEncodingMacRoman: return "mac-roman";
case kCFStringEncodingMacGreek: return "mac-greek";
case kCFStringEncodingMacCyrillic: return "mac-cyrillic";
case kCFStringEncodingMacTurkish: return "mac-turkish";
case kCFStringEncodingMacIcelandic: return "mac-icelandic";
/* ココを追加 */
case kCFStringEncodingMacJapanese: return "utf-8";
/* XXX which one is mac-latin2? */
}
if (!name) {
/* This leaks an object. */
name = CFStringConvertEncodingToIANACharSetName(enc);
}
return (char *)CFStringGetCStringPtr(name, 0);
}
リコンパイル後にもう一度インタラクティブシェルでテスト。
>>> import locale
>>> locale.getdefaultlocale()
(None, 'utf-8')
上手くいったっぽい! Django もちゃんと動いたしね! でも、ちょっと疲れたので Ubuntu の Django アップデートはまた今度。
追記
X-MAC-JAPANESE に一番近いのはshift_jisだそうです。なので、utf-8を返すのは間違い。詳しくは Django-ja (at Lingr) > Archives > September 07, 2007 をご覧ください!
今後、気をつけます。
- Posted at:
- 2007/08/27 19:24:07
- 0 Comments
- 0 TrackBacks
- Trackback:
- http://humming.via-kitchen.com/2007/08/27/update-django-on-mac/trackback/
PrivatePortfileでvim入れたよ
PrivatePortfile で vim 入れたよ。 gvim 使ってみたかったし、アンチエイリアスとか文字がキレイだとテンションが上がるのです。
実際に入れたのはこの2つ。
vim のvariantで +migemo とかすると PrivatePortfile/CMigemo に依存するらしい。
とりあえずは両方ダウンロードしてきて、 LocalPortfile のツリーに入れる。で、ツリーを更新しておく。
# LocalPortfileのトップで叩く。
$ sudo portindex
一度 search してみて確認する。
$ port search migemo
cmigemo textproc/cmigemo 1.3c C/Migemo is a Japanese incremental search tool.
vim も確認。
$ port search vim
vim editors/vim 7.1.54 Vi workalike with many additional features
vimdrop aqua/vimdrop 0.8 droplet for getting files loaded into vim
vim editors/vim 7.1.050 Vi workalike with many additional features
vim-app editors/vim-app 7.1.050 Vim.app is a GUI version of the famous editor vim.
p5-text-vimcolor perl/p5-text-vimcolor 0.11 syntax color text in HTML or XML using Vim.
vim2html textproc/vim2html 1.46 vim2html converts any Vim-editable file into well-formed HTML
vim に関しては、デフォルトのツリーにもあるので注意。バージョンとかで判断。(適当)
ココからインストール。まずは cmigemo から。
$ sudo port install cmigemo +utf8
次に vim を入れる。
$ sudo port install vim +aqua +cscope +huge +kaoriya +macvim +multibyte +python +ruby
エラー吐かなければ完了。 vim 、 gvim が使えるよ。( vim はデフォルトで入ってるけど。) 後は好みの設定を $HOME/.gvimrc に書くだけ。
以下、現状の .gvimrc っす。殆どコピペ。
"
" .gvimrc
"
set iminsert=0 imsearch=0
set antialias
set macatsui
set guifont=Osaka-Mono:h14
set transparency=200
" window settings.
set columns=177
set lines=53
" syntax highlight.
hi Normal guifg=White guibg=Black
今後調べて整えていこう。
- Posted at:
- 2007/08/09 23:47:14
- 0 Comments
- 0 TrackBacks
- Trackback:
- http://humming.via-kitchen.com/2007/08/09/install-vim-using-privateportfile/trackback/
後に続け!
がアップされてます! Senna - 1.0.8対応。
って事で、早速アップデート。ちゃんと入りましたよ!素敵過ぎます!
- Posted at:
- 2007/08/05 00:27:08
- 0 Comments
- 0 TrackBacks
- Trackback:
- http://humming.via-kitchen.com/2007/08/05/follow-this/trackback/