Inverse Fizzbuzzを解いてみる

Inverse Fizzbuzzについては、ゆろよろさんのサイト参照。 def inverse_fizzbuzz(list) i=(' f bf fb f x'*2).index(list.map{|e|{'fizz'=>:f,'buzz'=>:b,'fizzbuzz'=>:x,''=>' '}[e]}.join)+1 (i...i+list.size).to_a end p inverse_fizzbuzz(['fizz']) p i…

Scalaでちょっとしたツールを作る

仕事で画像データ変換ツールが必要になった。 やりたいことは32bitカラーのpngファイルを16bitカラーの独自フォーマットへの変換。 元データはアルファ有無混在+アルファ情報のみの画像も有り。それらの情報も独自フォーマットのヘッダに持たせる。 処理的に…

無限リスト

某勉強会で『ふつうのHaskellプログラミング』を読んでいる。 4年前に読んだはずなのだが内容はすっかり忘れていた。身についていなかったということだろう。今回もそうなりそうだが、Scalaを使いこなす基礎知識が少しは得られそう。 今回の勉強会で、与え…

RubyでGUI C#からRubyを呼び出す

IronRubyの1.0がリリースされたので、C#からRubyの呼び出しを試してみる。まず、C#のプロジェクトを作成。 formにtextboxとbuttonを一つずつ配置する。 デザイナのbuttonをダブルクリックしてForm1の編集画面へ。 編集前に、参照設定にIronRuby/bin下の Iron…

たらいまわし問題(遅延評価編)

前エントリーで「scalaの遅延評価は限定的scalaなので無理かも」と書いたけれど嘘でした。 Scala開眼の引数の遅延評価渡しを参考にしたらできました。 以下がソース。 package tarai import java.util.Calendar import scala.collection.mutable.Map object …

たらいまわし問題

Haskell本(ふつける)の読書会に参加。 遅延評価の項で、たらいまわし問題の処理速度をC,Javaと比較して遅延評価偉い!となっていたが、C,Javaでちょっと工夫すれば差は無いはず。 scalaで実装 // たらいまわし(普通) def tarai1(x:Int, y:Int, z:Int): I…

NetBeansとScalaで遊ぶ(パターンマッチ編)

前回の続き。 次のコードをステップ実行 val xy = (1, 2) // (a) val (x, y) = xy // (b) val abc = (1, 2, 3) // (c) val (a, b, c) = abc // (d) タプルを使った代入。 (b)を行った時点で、謎の変数temp1が登場。オブジェクトIDはxyと同じ。 (d)の代入を行…

NetBeansとScalaで遊ぶ(遅延評価編)

忙しくてしばらく使っていなかったScalaとNetbeans、新しいバージョンを入れてみる。 Netbeansが6.8、Scalaは2.8.0.RC2、Scalaプラグインがnb-scala-6.8v1.1.0rc2b。 ScalaのIDEサポートは、もう十分使えますね。(Eclipseプラグインは知らんけど)そして、…

バケツ問題

某プログラム勉強会で、お題が出たので解いてみる。 問題 水がいっぱい入ったバケツ一個と、空のバケツがいくつかあり、それぞれのバケツの容量は正確にわかっている。この状態から指定された容量を量りとる、最 小手数の手順を求めよ。 ただし ・バケツから…

切符問題

某プログラム勉強会で、お題が出たので解いてみる。 いくつかの正の整数と加算・減算・乗算 の3つの演算子(そして、括弧)を使って、ある別の正の整数を生成する方法を探し出すプログラムを書け。 例えば。{2,5,6,8}から10を生成する方法は、例えば (2+8)*(…

gemの更新

Windows環境にパッケージをgemでインストールしようとしたところ、gemのバージョン1.3.1以上じゃないと駄目だと叱られる。 > gem -vの結果は1.1.1。ActiveScriptRubyでインストールされたもの。 > gem update --systemで更新しようとすると、"Nothing to upd…

ナップサック問題?

某プログラム勉強会で、お題が出たので解いてみる。 あなたは硬貨を何枚か持っており、ある金額を払いたい。 お釣りの金額が最小となるような硬貨の組み合わせと、その場合のおつりを計算せよ。 硬貨の価値はすべて正の整数、払いたい金額も正の整数で、オー…

数学のお勉強

某プログラム勉強会で、お題が出たので解いてみる。[問1]6面体のサイコロを3回振る。同じ目が一度も出ない確率を計算せよ。6P3/63 = 5/9簡単な確率問題。 3回の試行で同じ目が出ない組み合わせ(6P3)を、3回の試行の全ての可能性(63)で割る。[問2]128bitの乱…

エンコーディングは俺が決める

RubyのMechanize、使っている人はどのくらいいるのだろう? 少し前のruby-listに「MechanizeはRubyのキラーアプリになる云々。」という投稿があったけれど、そんなにニーズがあるのだろうか?自分は便利に使っているけれど・・。 そのMechanize、ページのエ…

Unicode実態参照をUTF-8文字列に変換

Unicode実態参照をUTF-8文字列に変換するという処理が必要になった。 標準添付ライブラリに使えるクラスが当然あると思って探したけれど、無い…。ググった結果HTMLEntitiesを発見。インストールは gem install -r htmlentities使ってみる import "rubygems" …

NetBeansのScalaサポート

久しぶりにScalaをいじってみた。かなり忘れていて愕然とする。ある程度の規模のアプリを書かないと身に付かないということか。 以前に使った時には使い物にならない感じだったNetbeansのScalaプラグインがだいぶ良くなっていた。 Netbeansが6.1の時には開発…

JJUG CCC

JJUG CCCに行って来た。 参加できなかったセッション Grailsセッション・Jruby on Railsセッション・ひがやすをさんのセッション等も聴きたかったけど、ちょっと余裕のない状態だったのでScalaのセッションだけ参加。 ひがさんのセッション「ITゼネコンをぶ…

うーん

毎日新聞のトトビッグ:繰越金47億円 なぜ増えぬ1等「6億円」という記事。 コンピューターの数字の組み合わせは、試合結果3通りを14乗(試合数)した480万通りとなり、理論上は、当選確率も480万分の1。ジャンボ宝くじの1000万分の1に比…

これはひどい

C/C++のポインタの機能--参照渡しのような処理という記事。これほどひどいポインタの説明は始めて見た。 このライター、Groovyの唯一の日本語解説本(『スクリプティングwith Java』の一部だけど)の著者なんだよなぁ・・。 買わなくて良かった。

久しぶりの

c#

このところ仕事で死んでました(私生活でも色々・・)。 はまっていた仕事はc#(.NET2.0)。前にやったc#の仕事は .NET1.0 だったので色々変わってた。 それ以前にc#を忘れてた。まあすぐ思い出したし、2.0になってからの機能は便利に使った(3.0の機能は目の…

GroovyとRuby

前回作ったマクロはjFD2の作者にも使ってもらえたようだ。 で、「ファイルの表示順を大文字小文字を区別しないようにして欲しい」とのリクエスト。検索では大文字小文字区別していないのだから当然の要求である。自分では小文字のショートカットしか使ってい…

初マクロ

帰省して、やることがないのでマクロを作ってみた。 SVNのCommitマクロを作るつもりだったが、実家からはリポジトリにアクセスできないのでテスト不能。 ローカルにリポジトリを作るのも面倒なので休み明けかな。作ったのはショートカットを開くマクロ。 jFD…

Groovyの実験

きっかけはjFD2のGroovyマクロで外部コマンドの実行方法を調べたこと。 当初はJavaでの方法をそのままGroovyに持ってきたのだが、ネットでみたサンプルに驚愕! "ls -l".execute().in.eachLine{println it} なんですかこれ? すぐには理解できなかったが調べ…

Subversion対応マクロ(update)

Subversionのファイル管理のために、わざわざEclipseを立ち上げるってのも何か間違ってる気がする。 ファイル管理はファイラーの役目、ってことでSubversion対応のマクロを少しずつ作ってみる。 まずはupdateから。 外部コマンドのsvnを呼んでるので、Window…

マクロいろいろ

(1) 2chに張ったマクロ。 新しいタブを開く時にフォルダーにカーソルがあったら、そのフォルダーを開く。 DFのShift+Enterの動作に近い。 import com.nullfish.app.jfd2.ui.container2.NumberedJFD2 import com.nullfish.app.jfd2.ui.container2.JFD2TitleUp…

ファイラー

長いことDFというファイラーを愛用してきた。 その機能に大きな不満もなかったけれど航海日誌でjFD2というファイラー(と、その2chスレ)を発見し、ここ数日試用している。 Java(Swing)アプリだが結構軽快に動いてくれる。まあこれはNetBeansを使ってるので…

どう書く?org、コードの評価

アカウント取得で管理人さんの手を煩わせてしまった「どう書く?org」。Rubyで何件か投稿したところ、コードをプラス評価をして頂けることも増えてきた。 これまでの投稿は、お題からそのまま凝ったことはしていないので、Rubyをある程度使っている人なら大…

NetBeans6.0リリース

Netbeans6.0がリリースされました。 開発者・関係者の皆さんご苦労様でした。 Rubyの開発環境の選択肢が増えたことを素直に喜びたいと思います。 とりあえずRC1->RC2と引き継いだ設定ファイルをコピーして使っていますが快適です。 まあ、自分の使い方ではRC…

どう書く?org

プログラム言語関連のブログを見てるとどう書く?orgのお題についての言及が目に付く。 お題が結構いいし、回答も面白い。複数の言語で回答があるので、その言語の特徴を知るのにも役に立つ。 自分も参加しようとアカウントを作ろうとしたが登録メールが届か…

NetBeans ソース管理

フリーランスで仕事をしているので、作業環境はその時の仕事次第。 開発担当が自分だけの時は気楽なので、できればそういう案件だけを受けたいのだけれど、世の中そんなに甘くない。大規模案件に召集されることも。 チームでも開発だと、cvs/vss/svn等のソー…