プログラミング

2010年6 月 4日 (金)

Scalaでべき剰余演算

べき剰余とは、べき乗の余りのこと。例えば、5の3乗を13で割った場合のべき剰余は8である。Wikipediaにべき乗の余りを高速に計算するコードがあったので、Scalaで書き換えてみた。 Wikipedia 冪剰余

2010年3 月26日 (金)

HaskellでProject Euler

Project EulerをHaskellで解いている。Project Eulerはプログラミングで解ける数学の問題が掲載されているサイト。毎週新しい問題が一つずつ追加されていて、現時点で283問ある。月初から始めて、ちょうど30問解いた。

愚直にロジックを組むだけで解ける問題もあれば、愚直なだけでは計算がなかなか終わらない問題もある。Project Eulerには、一分間ルールというのがあるそうで、まともなロジックで組めば、必ず一分以内に計算が終了するはずとのこと。だから何十分もかかるような場合は、明らかに改善の余地がある。

Haskellでシンプルに書ける問題もあれば、リスト内包表記やモナドを上手く活用しないと書けなそうな問題もある。このあたりはまだちょっと分かってないところもあるので、いろいろ試行錯誤しながら実装することになる(モナドはまだ使ってないけど)。これがなかなか勉強になるので、もし今からProject Eulerを始めるなら、ぜひ新しい言語で書くのがよいと思う。

コードはgithubで管理することにした。

gami / project-euler-in-haskell  GitHub

2009年7 月 3日 (金)

rubygemsのcairo1.8.0がインストールできない

エラーメッセージでググったらバグレポートを見つけた。
レポートに書いてあるパッチをあてて、手動でmake installまでやってから、再度gem installしたら入った。

2009年6 月20日 (土)

Mobile Safariでのコピーアンドペーストを無効にする

iPhoneOS3.0にアップデートしたら、作成していたjavascriptのアプリケーションで、touchendイベントの効きがおかしくなった。

原因はコピーアンドペースト用の選択イベントが優先されるため。

これを回避するには、任意のエレメントのスタイル情報に、

-webkit-user-select : none;

と、指定する。選択されなくなる。コピーアンドペーストを禁止したい場合もこの指定でよいはず。

これは、WebkitのCSS拡張で、他にもいろいろある。

Safari CSS Reference

 

2008年6 月24日 (火)

Ruby会議に行こうとした

しかし、チケットを無くしてしまい、断念した。

ただustreamで全部見れたのでよかった。

2008年5 月25日 (日)

Flex3SDKがどこにあるか迷った

WEB+DB PRESSを読みながら、Flexのサンプルコードを動かそうとした。
サイト構成が変わったのか、雑誌にあったURLだとFlex3Builder(有償)の体験版ダウンロードが始まってしまう。無償版と書いてあるのに。
結局、体験版のSDKにPathを貼って使い始めたが、後で探したらAdobeのオープンソースサイトでSDK単体でのダウンロードが可能だった。Buidlerの方は300MB以上あるので、こっちから落としたほうがよいと思う。

2008年4 月21日 (月)

Tomcatのオートリロード

Tomcatのserver.xmlでオートリロードに設定していなくても、web.xmlを更新すると、設定が再読込され、サーブレットが初期化される。オートリロードの設定は、classesとlib以下のみであるため(下の本に書いてあった)。これまで、オートリロードに設定しているから、web.xmlをtouchしたら更新されるのかと思っていたが勘違いだった。
このとき、classesも更新されるのだろうか?今度試してみよう。
無知のせいで、障害を出してしまったが、怠惰が原因よりはましか。

2008年3 月 2日 (日)

BOOKOFF Access

ブックオフオンラインからデータを取ってくるための、RubyOnRailsプラグインを公開しました。

BOKKOFF ACCESS(英語)

自分が使いたいところしか作ってないので、月1くらいのニーズで作り込んでいきます。
それにしてもニーズがあるのだろうか?