2008-01-01から1年間の記事一覧

removeChild しても消えない

画面をクリックするごとにボタンやらビデオやらが出たり消えたりするプログラムを書いていたのだが、とある Image を removeChild しても表示が消えなくて困った。visible を false にしたり、表示位置をずらしてみたりしたのだがまったく変化がないし、remo…

Safari で navigate する

Safari で Opera のような navigate をしたかったので書きました。(http://d.hatena.ne.jp/mzp/20081121 に触発されて) それから、id:hiru926 が navigate の次の行き先を表示できれば使いやすいのに、と言っていたので適当に実装してみました。shift キーを…

prolog 処理系もどき

久しぶりの日記。今日は飲み会で揚げ物ばっかり食べて、しかもそのあとラーメンまで食べるという暴挙にでたのでお腹の調子が大変よくないのですが、今日の昼間に適当に書いた prolog 処理系っぽいものをはっておく。 現状ではパーサとかはまったくないので、…

iPod から del.icio.us に簡単にアクセスするブックマークレットを作ろうとして挫折

iui を使って、iPod から del.icio.us のブックマークに簡単にアクセスできるブックマークレットを作ろうした。でも del.icio.us が返す json は、最大でも最新のブックマーク100個までという制限があるので、ブックマークの一覧を取得できない*1。 ブックマ…

文字列の折り返し

Flex で文字列を折り返すプロパティは wordWrap。これを true にしておくと文字列が長過ぎた場合に折り返してくれる。 DataGrid の中の DataGridColumn で使う場合は注意が必要で、もし最初の1行目の要素が折り返さないと、それ以降の行で文字列が長くなって…

VMware Fusion 2

VMware Fusion のバージョンを 2 にしたら WindowsXP の起動がやたら遅くなって泣きそうだったのだけども、これはどうやら 3D の高速化機能みたいなやつがデフォルトで有効になっていたため。無効にしたら前の速度に戻ったのでめでたしめでたし。MacBook で…

bookmarklet

大学内のパブリックな無線ネットワークにつなぐにはブラウザからパスワードを入力する必要がある。iPod の Safari だとパスワードを記憶してくれないのでめんどうこの上ない。なのでブックマークレットにするという企画。これは昔、もろにだれかがやってたよ…

ふりがなクラス

ふりがなを使えるようにしたラベルっぽいクラス。HBox とかに適当に addChild したオブジェクトの x や y が設定されなかったので、文字数とかから無理矢理場所を計算したりしている。書くのに無駄に時間がかかってしまった…。しかも後半は疲れてあまり考え…

internal build error

Flex Builder 3 で、プロジェクト内でファイルを別のディレクトリに移動させると、 internal build error と言われてどうしようもなくなる(こともある)。黙って元の位置にファイルを戻せばエラーは消える。困る。

"upTo(1,5) => List(1,2,3,4,5)"みたいな関数 upTo を定義しようとして怒られた。Int と BigInt で使えるようにしたかったんだけど。 これは OK。 object UpTo { def upToInt(x:Int,y:Int):List[Int] = { def up(n:Int):List[Int] = if (y==n) List(n) else …

Project Euler: Problem41

前回のやつはスタックオーバーフローするので scala で適当に書き直し。ひどいコードだなぁ。 今回ので"(1 to 5)"とか書けることを知った。 object Problem41 { val digit : Int = 9 val end : Int = List.range(digit,1-1,-1).foldLeft(0)((x,y) => x*10+y)…

Project Euler: Problem41

pandigital の中で最大の素数を求める。1桁から9桁までの pandigital は40万個くらい。このままだとスタックオーバーフローする。 import Data.List pandigitals 0 _ = return 0 pandigitals n xs = do x <- xs xs' <- pandigitals (n-1) (filter (/=x) xs) …

Project Euler: Problem38

残念ながら死ぬほど汚いんだけど…。 object Problem38 { def isPandigital(x:String):Boolean = { for (c <- x) if (c=='0') return false var a=0 var b=0 while (a<8) { b = a+1 while (b<9) { if (x(a)==x(b)) return false b += 1 } a += 1 } return tru…

ffmpeg で youtube -> ipod

(macports の場合) ffmpeg を faac のバリアント付きでコンパイルする必要がある。 $ ffmpeg -i source.flv -f mp4 -vcodec mpeg4 -b 250k -s 320x240 -acodec libfaac -ar 22050 -ab 64k target.m4v

Haskell から C を呼ぶ (FFI)

Haskell から C 言語で書いた関数を呼ぶには。http://haskell.g.hatena.ne.jp/jmk/20060622/1150947486を見れば完璧だが、とりあえずこれだけでいいよ、という最小サンプル的な意味でメモ。 factorial.hs {-# LANGUAGE ForeignFunctionInterface #-} import …

JavaScript から ActionScript 内の関数を呼び出し

JavaScript から ActionScript も、ActionScript から JavaScript も可能だが、とりあえず JavaScript から ActionScript の関数を呼び出す方法をメモ。 まずは ActionScript 側で、JavaScript から呼び出せるようにしたい関数を登録する。以下のように addC…

Mac での MouseEvent.MOUSE_WHEEL

マウスホイールを回してもイベントが発生しないのが問題なんだと思っていたのだが、どうやら自分で MOUSE_WHEEL イベントを発生させてもうまく動作しないっぽい。嘘でした。ちゃんと動作しました。 <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="init();"> <mx:Label id="counter" text="0" /> <mx:Script> </mx:script></mx:label></mx:application>

ActionScript で、イベントを自分で発生させる

自分自身に対して click イベントを発生させるには以下のようにする。 this.dispatchEvent(new MouseEvent(MouseEvent.CLICK));

Emacs の正規表現置き換え (M-x query-replace-regexp)

以前に id:suer さんに見せてもらって気になっていたもの。メモメモ。 閉じタグのない部分のある以下のような HTML を <p>test string1 <p>test string2<statement>test string1</statement> <statement>test string2</statement>次みたいな XML にお手軽に変換したい!みたいな場合に。だって sed とか使い方よく</p></p>…

はてなダイアリー

はてなダイアリーって普通に HTML のタグが使えたのか! Google へのリンクも自分で作れるし。 …あれ、常識?

mxml がよくわかんない

mxml って、単にクラス定義の別のやりかたなのかと思ってたんだけど、違うんだろーか。 <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:VBox textAlign="center" id="hello"> <mx:Label id="statement" click="test(null);"> </mx:Label> </mx:VBox> <mx:Script> </mx:script></mx:canvas>

scala で id 関数

Scala の id 関数(というか polymorphic な関数)は以下のように書く。Java っぽい。 scala> def id[T](x:T) : T = x id: [T](T)T scala> id:yoshihiro503 さんに、id(id) ができるかどうかやってみと言われてたので、 scala> id(id) <console>:6: error: missing argu</console>…

Project Euler: Problem34

n桁の数と9!*nを比べて、9!*nが追いつけなくなるnをまず見つける。するとnは7だとわかるので、7桁まで探せば十分。 /* 9!*1 = 362880 9!*2 = 725760 ... 9!*7 = 2540160 (7keta) 9!*8 = 2903040 (7keta) */ object Problem34 { def fact(n:int) : int = if (n…

Hoogle + Opera

あぁー、リストの要素をある条件で2つにわけたいけど絶対これライブラリにあるよー名前なんだろうーというときのために備えて。 Opera の検索エンジンに以下を加えるがよい。 http://www.haskell.org/hoogle/?hoogle=%s つまりこうだ! うわっ、キモい! 研…

ScalaCheck と Eclipse

Scala でのテストには、SUnit と ScalaCheck というものがある。SUnit は普通のユニットテストで、ScalaCheck は Haskell の QuickCheck みたいなものである。今日は ScalaCheck を使ってみようとしたんだけど、うまくいかなかった。 まず ScalaCheck をイン…

HUnit とその自動化

最近テストファースト的なものを試しているので、Haskell の HUnit を使ってちょっと遊んでみた。ところが、実施するテストを選ぶのがめんどい。具体的にはこんな感じ。(HUnit 1.0 User's Guide) test1 = TestCase (assertEqual "for (foo 3)," (1,2) (foo 3…

Test First

Ruby で Test First なプログラミングを体験するべく、 ruby-growl を使って遊んでみた。作ったのは todo リストの中からひとつをランダムに選んでポップアップする、という数行でできる超簡単なもの。 んで、まず最初にテストを書こうとしたんだけど、ろく…

Project Euler: Problem29

import Data.List main = print $ length $ nub [a^b | a <- [2..100], b <- [2..100]]

Project Euler: Problem30

5乗の和の場合には、n桁の数値を考えると 9^5*n までの数値しか作れない。 9^5 * 1 = 59049 9^5 * 2 = 118098 9^5 * 3 = 177147 9^5 * 4 = 236196 9^5 * 5 = 295245 9^5 * 6 = 354294 9^5 * 7 = 413343 ... 5乗の和の側では7桁以上の数値は作れない。なので6…

Project Euler: Problem45

昔書いたやつの BigInt 版。なんか一瞬で解けた。BigInt すごーい。 object Problem45 { class Generator (gen : BigInt => BigInt) extends Iterator[BigInt] { val this.gen = gen; var n = 0; def hasNext : Boolean = true; def next : BigInt = { n += …