Chat (Lingr.com)
Informaiton
Daily
Column
- MySQL日本語の旅(5/1)
- アクセス向上秘伝(5/9)
- 一風変ったHaskellλ門(6/13)
- SICP Answer Book (5/31) 問題3.26追加
Zope Solution
Extra
アーカイブ
OSS案内所
Site Info
関連リンク
- 2004: 01 02 03 04 05 06 07 08 09 10 11 12
- 2005: 01 02 03 04 05 06 07 08 09 10 11 12
- 2006: 01 02 03 04 05 06 07 08 09 10 11 12
- 2006-09-29 [JavaScript] MozillaでもIEでもselectionStart/selectionEndを使う
- 2006-09-28 [Haskell] uniqueを書く
- 2006-09-27 [Gauche] uniqueを書く
- 2006-09-26 [quiz] uniqueを書く
- 2006-09-25 [Gauche] 実効時にユーザ/グループを切り替える
- 2006-09-22 [Haskell] 草稿をとりあえずPDFにする
- 2006-09-21 [misc] スクリーンキャスト
- 2006-09-20 [Xgl] XglでMac OS XのDocを使いたい
- 2006-09-19 [Emacs] Undefined color: "black"でEmacsが起動しないときの対処方法
- 2006-09-15 [Xgl] Ubuntu LinuxでXglを使う
- 2006-09-14 [Mac OS X] 縦長のWebページを画像として保存する
- 2006-09-13 [FYI] qooqle
- 2006-09-12 [Firefox] FireDictionary
- 2006-09-11 [Kahua] URLを短くしたとき、古いcgiへのアクセスをリダイレクトする
- 2006-09-08 [Kahua] lighttpdでKahuaのURLを短くする
- 2006-09-07 [Kahua] mod_rewriteでKahuaのURLを短くする
- 2006-09-06 [Mac OS X] Mac OS X 標準コマンドで ISOイメージ作成
- 2006-09-05 [WiLiKi] WiLiKiのgdbmデータを別のOSに移行
- 2006-09-04 [Firefox] FirefoxをSafariっぽくする
- 2006-09-01 [Firefox] FirefoxをバージョンアップしてDOM Inspectorがなくなったときの対処方法
2006-09-29 [JavaScript] MozillaでもIEでもselectionStart/selectionEndを使う
textarea中のカーソル位置を取得したいとき、MozillaではselectionStartが使える。
例えば<textarea id='yourComment'>...という要素があったとき、 現在のカーソル位置を取得するには以下のコードが使える。
var elem = document.getElementById('yourComment');
var pos = elem.selectionStart();
このJavaScriptコードはIEでは意図通りには動作しない。posの値は'undefined'になる。
IEでもselectionStart/selectionEnd相当の機能を使うには、 KOSEKI Kengo氏のSelection.jsが使える。
http://www.teria.com/~koseki/memo/xbselection/
var selection = new Selection(document.getElementById('yourComment'));
var s = selection.create();
var pos = s.start;
ただし、子ウインドウから親ウインドウのtextareaを操作するときはうまく動作しない。 この対処方法については次回。
--yasuyuki
2006-09-28 [Haskell] uniqueを書く
リスト中の同じ要素を削除するunique関数を書け。 Haskell版
*Main> unique [4,4,2,2,3,3,5,5,1,1,3,2,4,5] [4,2,3,5,1]
その1.
import Data.List;unique::Eq a=>[a]->[a];unique=nub
その2.
unique :: Eq a => [a] -> [a] unique [] = [] unique (x:ys) = x : unique [ y | y <- ys, y /= x ]
その3.
unique xs = uniq [] xs
where uniq ys [] = reverse ys
uniq ys (z:zs) = if elem z ys then uniq ys zs
else uniq (z:ys) zs
--nobsun
There is no comment.
2006-09-27 [Gauche] uniqueを書く
リスト中の同じ要素を削除するunique関数を書け。
ex.
gosh> (unique '(4 4 2 2 3 3 5 5 1 1 3 2 4 5)) (4 2 3 5 1)
- 条件1: 引数に与えるリストはソートされていなくても良い
- 条件2: 出力される要素の並びは、入力されたリストでの出現順とする
Gaucheでの例:
(define (unique list)
(reverse
(fold
(lambda (a r)
(if (member a r)
r
(cons a r)))
'()
list)))
--yasuyuki
There is no comment.
2006-09-26 [quiz] uniqueを書く
リスト中の同じ要素を削除するunique関数を書け。
ex.
gosh> (unique '(4 4 2 2 3 3 5 5 1 1 3 2 4 5)) (4 2 3 5 1)
- 条件1: 引数に与えるリストはソートされていなくても良い
- 条件2: 出力される要素の並びは、入力されたリストでの出現順とする
--yasuyuki
There is no comment.
2006-09-25 [Gauche] 実効時にユーザ/グループを切り替える
特権ポートをlisten(2)するようなサーバプログラムを書く場合、 サーバソケットを開いた直後に特権を放棄するようにユーザを切り替えるのが定番だ。
(define (setuidgid! user . may-be-group)
(and-let* ((pw (sys-getpwnam user))
(uid (ref pw 'uid))
(gid (or (and-let* ((g (get-optional may-be-group #f)))
(sys-group-name->gid g))
(ref pw 'gid))))
(format (current-error-port) "~d:~d\n" uid gid)
(sys-setgid gid)
(sys-setuid uid)
#t))
これを
(setuidgid! foo)
と呼び出すとユーザfooのプライマリグループにsetgid(2)してからfooに setuid(2)する。
(setuidgid! foo bar)
なら、グループbarにsetgid(2)してからユーザfooにsetuid(2)する。
--び
There is no comment.
2006-09-22 [Haskell] 草稿をとりあえずPDFにする
草稿を作成しているとき,数式やアクセント記号などの調子をみたいことがある. 草稿の部分的なテキストをとりあえずPDFにして表示できると便利.
Perl や Ruby ならワンライナーかもしれない...^^;
#!/usr/bin/env runhaskell
\begin{code}
module Main (main) where
import System.Cmd (system)
import System.Environment (getArgs,getProgName)
import System.IO (hPutStrLn, stderr)
usage :: String -> IO ()
usage prog = hPutStrLn stderr ("Usage : "++prog++" <filename w/o ext>")
main = do { prog <- getProgName
; args <- getArgs
; case args of
[f] -> do { writeFile "tmpdf.tex" $ tmpdftex f
; system ("platex tmpdf; dvipdfmx tmpdf;acroread tmpdf.pdf;rm -f tmpdf.*")
; return ()
}
_ -> usage prog
}
tmpdftex :: String -> String
tmpdftex f = unlines ["\\documentclass{jarticle}"
,"\\begin{document}"
,"\\input{"++f++"}"
,"\\end{document}"
]
\end{code}
要するに,tex に埋め込んで pdf にして acroread で表示しているだけ.
上のスクリプトを tmpdf.lhs として保存し,実行パーミッションを ON して パスの通ったところにおく.使い方は簡単で,草稿ファイルを hoge.tex とすると
% tmpdf.lhs hoge
とやるだけ.
--nobsun
There is no comment.
2006-09-21 [misc] スクリーンキャスト
Wikipediaによるまとめ: スクリーンキャスト
スクリーンキャストとは計算機画面を録画したムービーのこと。
Linux環境ではXvidcapがよく使われるようだ。
--yasuyuki
There is no comment.
2006-09-20 [Xgl] XglでMac OS XのDocを使いたい
Akamaruというツールが使える。
http://people.freedesktop.org/~krh/akamaru.git/
Mac OS XのDocと違うところは物理エンジンを塔載している点。 例えばアイコンを掴んで落すとバウンドする。
http://video.google.com/videoplay?docid=8958142237254601573
--yasuyuki
There is no comment.
2006-09-19 [Emacs] Undefined color: "black"でEmacsが起動しないときの対処方法
昨日の手順でXglをインストールしたが、Emacsが以下のエラーで起動しない。
$ emacs Undefined color: "black"
調べてみたら、これはXのRgpPathの設定に問題があるときの現象らしい。
/etc/X11/rgb.txtのエイリアスを/usr/share/X11に作ってXを再起動すると解消できる。
sudo ln -s /etc/X11/rgb.txt /usr/share/X11/rgb.txt
--yasuyuki
There is no comment.
2006-09-15 [Xgl] Ubuntu LinuxでXglを使う
ATI RadeonやNVIDIA GeForceといったOpenGLアクセラレーション機能つきのグラフィックスボードを使っているなら、 デスクトップ描画をOpenGLでカッコ良くしてみよう。
例えばGNOMEを使っているなら以下の通りにXglをインストールする。
apt-get install xserver-xgl compiz compiz-gnome
つぎに /etc/gdm/gdm.conf-custom ファイルを以下の通りに編集する。
[servers] # Override display 0 to use Xgl. 0=Xgl [server-Xgl] name=Xgl server command=/usr/local/bin/Xgl :0 -fullscreen -ac -accel xv -accel glx:pbuffer flexible=true
さらに、ホームディレクトリに.Xsessionファイルを作り、次のコマンドを記述する。
COMPIZ_EXT="gconf decoration minimize move place resize rotate scale switcher wobbly zoom cube" Xgl :0 -fullscreen -ac -accel xv:fdo -accel glx:pbuffer & gnome-window-decorator & compiz gconf decoration wobbly fade minimize cube rotate zoom scale move resize place menu swicher & exec gnome-session
Xを再起動してログインすれば、ウインドウがボヨンボヨン動くXglの世界!!
http://www.youtube.com/watch?v=Cz_2vKq5cZk
参考文献: http://chromakode.blogsome.com/2006/02/16/howto-compiz-xgl-on-ubuntu-for-the-morbidly-lazy-2
--yasuyuki
You stand to achieve by all these will have more powerful ejaculations turn by the levitra information leaflet generic equivalents conducted on patients of several ethnic. It is still unapproved and unauthorized by the fda no lower dosage pills such as from generic cialis compared to cialis it is still unapproved and unauthorized. Base of the penis and the cylinder is removed a three to five minutes interval is the average to achieving an erection drawback: lack of spontaneity is this methods only. Namely erection problems taking viagra.
2006-09-14 [Mac OS X] 縦長のWebページを画像として保存する
Paparazzi!というフリーソフトウエアが使える。(LGPL)
http://www.bridge1.com/paparazzi.html
例えばこんな画像が保存できる。
--yasuyuki
There is no comment.
2006-09-13 [FYI] qooqle
友達に「イマドキ検索するなら qooqle だよね」 って言われました。「google なんて古い」んだそうだ。^^;
--koma2
2006-09-12 [Firefox] FireDictionary
英和辞書機能を提供してくれる、Firefox extension. こいつを入れて動かしておくと、 マウスカーソルを英単語の上に置くだけで 和訳を表示してくれるので、すごーく便利。
これ入れとけば、なが〜い英語ページも 苦もなく読めるようになりますよ!(大嘘)
--koma2
There is no comment.
2006-09-11 [Kahua] URLを短くしたとき、古いcgiへのアクセスをリダイレクトする
さて、KahuaのURLが短くなったのは良いが、古いURLである/cgi-bin/kahua.cgiへのアクセスをどう処理したら良いだろうか?
mod_rewriteやlighttpdにルールを追加するのが本来の処理方法だろうが、このルールは複雑になるはずである。
対策を考えるために、まず古いURL/cgi-bin/kahua.cgiにアクセスしてみよう。
Kahua error - stale session key The given session key is wrong, or expired.
Kahuaサーバーに渡されたパス"/cgi-bin/kahua.cgi"はセッションキーであると解釈され、該当するキーがないのでエラーになっている。
これを解消するには"cgi-bin"という名前のエントリーを書いてやれば良い。
(define-entry (cgi-bin cgi-name worker :rest path)
(define (redirect return-cont)
(let ((path (or return-cont "")))
(node-set:
(html: ;; Needed to make a single SXML node (for now)
(extra-header: (@: (name "Status") (value "302 Moved")))
(extra-header: (@: (name "Location")
(value (kahua-self-uri-full path))))))))
(redirect (string-join path "/")))
引数cgi-nameに"kahua-cgi"が渡され、引数workerには常に"kahua-web"が渡される。 これらの引数は単に捨てられる。
使用される引数は残りのpathである。
例えば、
http://www.example.com/cgi-bin/kahua.cgi/kahua-web/show/pagename
は、
http://www.example.com/show/pagename
にリダイレクトされる。めでたしめでたし。
--yasuyuki
There is no comment.
2006-09-08 [Kahua] lighttpdでKahuaのURLを短くする
lighttpdからkahua.cgi経由でKahuaを動かすとき、例えばkahua-webなら
/cgi-bin/kahua.cgi/kahua-web/パス
というURLになる。
この/cgi-bin/kahua.cgi/kahua-webの部分を省略したいとき、lighttpdでは以下の通りに設定する。
url.rewrite = ( "^/images/(.+)$" => "/mages/$1",
"^/kahua-web/(.+)$" => "/kahua-web/$1",
"^/(.+)$" => "/cgi-bin/kahua.cgi/kahua-web/--vh--http:www.example.com:80/--/$1\" )
こうすることで、
http://www.example.com/パス
へのアクセスを、
http://www.example.com/cgi-bin/kahua.cgi/kahua-web/パス
で処理できる。
--yasuyuki
There is no comment.
2006-09-07 [Kahua] mod_rewriteでKahuaのURLを短くする
Apacheからkahua.cgi経由でKahuaを動かすとき、例えばkahua-webなら
/cgi-bin/kahua.cgi/kahua-web/パス
というURLになる。
この/cgi-bin/kahua.cgi/kahua-webの部分を省略したいとき、mod_rewriteでは以下の通りに設定する。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^/images/(.*) /images/$1 [L,PT]
RewriteRule ^/kahua-web/(.*) /kahua-web/$1 [L,PT]
RewriteRule ^/(.*) /cgi-bin/kahua.cgi/kahua-web/--vh--http:www.example.com:80/--/$1 [L,PT]
</IfModule>
こうすることで、
http://www.example.com/パス
へのアクセスを、
http://www.example.com/cgi-bin/kahua.cgi/kahua-web/パス
で処理できる。
--yasuyuki
There is no comment.
2006-09-06 [Mac OS X] Mac OS X 標準コマンドで ISOイメージ作成
「ディスクユーティリティ」だと ISOイメージ作成するための項目が見当たらないので、 さっさとあきらめて、fink や mac ports で mkisofs ツッコンでしまう人も多いと思うのですが、 よくよく man を読んでみると、標準コマンドの hdiutil(1) で可能なんですね。
hoge というディレクトリの中身を ISOイメージにするには、こんな感じ。
% hdiutil makehybrid -o hoge.iso hoge -iso -joliet
--koma2
There is no comment.
2006-09-05 [WiLiKi] WiLiKiのgdbmデータを別のOSに移行
gdbmデータベースはOS間での互換性がないので、いったんfsdbmに変換する。
まず変換用の'wiliki-copydbスクリプトを入手する。
cvs -d:pserver:anonymous@gauche.cvs.sourceforge.net:/cvsroot login
anonymous CVS接続なので、ここでは単に[Enter]キーを押す。
cvs -d:pserver:anonymous@gauche.cvs.sourceforge.net:/cvsroot co -P Gauche-scripts
Gauche-scripts/wiliki-copydbスクリプトが得られる。まず移行前のOSでfsdbmに変換しておく。
gosh Gauche-scripts/wiliki-copydb -s gdbm.euc-jp -d fsdbm ~/data/wikidata.dbm new-data.dbm
上記の例ではnew-data.dbmディレクトリに変換後のデータが得られるので、これを圧縮して新しいOSにコピーする。
tar cvfz new-data-dbm.tgz new-data.dbm scp new-data.dbm loginname@newos.example.com:
新しいOSでfsdbmデータをgdbmに変換する。
tar xvfz new-data-dbm.tgz gosh Gauche-scripts/wiliki-copydb -s fsdbm -d gdbm.euc-jp new-data.dbm wikidata.dbm
参考文献: WiLiKi:データベースのコード変換
--yasuyuki
There is no comment.
2006-09-04 [Firefox] FirefoxをSafariっぽくする
GrAppleをインストールする。(Mac OS X専用)
--yasuyuki
There is no comment.
2006-09-01 [Firefox] FirefoxをバージョンアップしてDOM Inspectorがなくなったときの対処方法
ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/ 使ってるバージョン/win32/xpi/adt.xpiをダウンロードしてインストール
参考文献: 最適化版におけるDOM inspectorのバージョンアップ
--yasuyuki
There is no comment.