No Programming, No Life

プログラミング関連の話題や雑記

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

私がGroovyを好きな9つの理由 2011年版

ぐるーびーたんと本 by id:torazuka はじめに G* Advent Calendar 2011 12/12(12日目)に参戦ということで。 そろそろGroovyについて語っておくベキかなと思ったのであらためて書いてみます。私なりの、Groovyを気に入っている理由を9つほど述べてみたいと…

Groovyでバブルソートを再発明してみた

車輪の再発明シリーズ!とりあえずバブルソート。 繰り返しはクロージャで、判定結果は畳み込み(inject)などを駆使してみた例。 効率?そんなの気にしちゃいかんです。

C#のNull許容型(Nullable)について

null 許容型は、System.Nullable 構造体のインスタンスらしい。 C#では型に ? をつけるとNullを許容するようにできる。 int? i = null; // nullが入れられるint型 ??演算子 ??演算子を使うと、型がnullでなかった場合は左辺、nullだったら右辺になる。 int y…

Leiningenを使ってClojureのREPLを起動

ClojureやるならLeiningenが簡単だよということで、Homebrewを使って、インストールからREPLを起動するまでをやってみたのでメモ。(動作環境: Mac OS X 10.6, Homebrew v0.8) まずはHomebrewでleiningenのインストール $ brew install leiningen ==> Downlo…

GroovyのMarkupBuilder用の文字列をXMLから生成するクラスを書きました

はじめに GroovyにはMarkupBuilderというのがあって、GroovyのDSLを用いて簡単にXML(などのマークアップランゲージ全般)を作れるというもの。このブログでも前にこれとかこれとかで記事を書いています。さて、今回はこの逆をやってみようという話です。つま…

Groovyでファイルツリーを巡り、最初に見つかったファイルを返却するメソッド書いたよ

はじめに GroovyにDirectory.EnumrateFiles("hogeDir").First()みたいなのってあったっけ?2011-09-10 12:24:59 via Twitter for Mac @kyon_mm @kimukou_26 new File('hogeDir').listFiles({it.isFile()} as FileFilter).first() とか?2011-09-10 12:35:24 …

実行時にGroovyのバージョンを調べる

groovy:000> GroovySystem.version ===> 1.9.0-beta-3

お前に本当のカリー化を見せてやろう、Groovyで

はじめに 思いの外話題になっているようなので、Groovyでちゃんとしたカリー化をする関数を書いてみました。ちょっとタイトルはあれですがお許し下さい。 こんな感じでいいんですよね?(ツッコミ大歓迎) ここでは、addが引数を3つ取って、加算するクロージ…

Groovyでは全要素に対してゲッターを呼ぶような時は*.の*が省略できる

はじめに GPathって言うんでしたっけ?こういうの。 サンプルを見た方が早いので説明はそちらで。 コードで語る まず、こんなクラスを用意する。 class A{ def getName(){ 'a' } } class B{ def getName(){ 'b' } } class C{ def getName(){ 'c' } } そして…

強くてニューゲームすすめ

はじめに 昔、クロノトリガーというRPGがありました。人気ゲームだったので知っている人も多いと思います。このゲーム、色々な時代や時間を移動しながら冒険が進んで行くのですが、面白いシステムが採用されていたました。それが強くてニューゲームです。 強…

お題:アラビア数字・ローマ数字変換

プログラミングお題の一覧はこちら※みなさんもこのお題をお気に入りの言語で解いてみて下さい。解いたらこの記事にトラックバックをお願いします。 説明 アラビア数字 ローマ数字変換を行う関数、arabicToRoman および romanToArabic を実装せよ。 条件) ・…

お題:フルパスから相対パスを求める

プログラミングお題の一覧はこちら※みなさんもこのお題をお気に入りの言語で解いてみて下さい。解いたらこの記事にトラックバックをお願いします。 説明 二つのフルパスを受け取り、一つ目のパスから二つ目のパスへの相対パスを返す関数を実装せよ。 条件) …

ひとことふたことで語る『プログラマが知るべき97のこと』

いまさら『プログラマが知るべき97のこと』を読み終わりましたので、ひとことふたことでまとめてみました。個人的な意見が満載なので参考にならないことうけあいです。ご了承下さい。 内容が気になった方は是非本を買って読んでみて下さい。 書籍リンク プロ…

お題:FizzBuzz(Nパターン)

プログラミングお題の一覧はこちら※みなさんもこのお題をお気に入りの言語で解いてみて下さい。解いたらこの記事にトラックバックをお願いします。 説明 1から100までの数をプリントするプログラムを書け。 ただし、[3, "Fizz", 5, "Buzz", 7, "Hoge"] のよ…

Groovyでメソッドのエイリアスを作成してみた

そういやコレクションのcollectメソッドという名称がいまだにしっくりこない。このメソッド名って日本語でいえば何になるんだべ?Rubyではmapって名のほうばかり使ってる。。。2011-08-10 08:40:23 via ちーたん Groovyからの回答 なら、エイリアスを作っち…

GroovyのPowerAssertの力を享受するなら、引数は1つの方を使わないとダメらしい

論よりコード。 動作確認バージョン $ groovy -v Groovy Version: 1.9.0-beta-1 JVM: 1.7.0-internal test.groovy def str = 'abc' assert 'わざと間違う' == str 結果 $ groovy test.groovy Caught: Assertion failed: assert 'わざと間違う' == str | | | …

お題:ある金額になるコインの組み合わせ

プログラミングお題の一覧はこちら※みなさんもこのお題をお気に入りの言語で解いてみて下さい。解いたらこの記事にトラックバックをお願いします。 説明 ある金額になるコインの組み合わせ数とその組み合わせを全て答え下さい。 条件) ・コインの種類は自由…

お題:文字列を先頭から見て同じところまで除去

プログラミングお題の一覧はこちら※みなさんもこのお題をお気に入りの言語で解いてみて下さい。解いたらこの記事にトラックバックをお願いします。 説明 複数の文字列を受け取り、受け取った文字列をそれぞれ先頭から見てゆき、すべてが同じ内容であれば除去…

第3回 もくもくGroovy 開催します!

ふも@JGGUG名古屋です。 兼ねてより企画しておりました、もくもくGroovy を開催いたします! イベント参加表明はこくちーずページよりお願いします。 http://kokucheese.com/event/index/15207/ 最近、Groovyユーザも増えてきましたね! 名古屋でも何かワー…

Twitter上に広がるGroovyistの輪、あなたもGroovyバッジを付けてみませんか?

アイコンにGroovyのロゴを追加するjarを作りました - No Programming, No Life にてアイコンにGroovyバッジ(Groovyのロゴ)を付けられるお手軽アプリを公開させていただいております。 これを利用して実際にTwitterアイコンにGroovyバッジを付けてくれている …

第17回 G*ワークショップに参加してきました

はじめに 2011年7月29日に行われました 7月29日 第17回 G*ワークショップ(東京都) に今回も参加してきました。 今回は私は発表はなしです。運営委員になったはいいのですが、今回は受付でネームカードを渡す程度の仕事しかしていません(^^; セッション! 山…

Mac OSXにOpenJDK7をインストールしてGroovyを実行する

こちらの@yusukeyさんの記事を参考にMac OSXにOpenJDK7をインストールしてGroovyを実行するところまで試してみたのでメモしておきます。 1.まずはOpenJDK7をダウンロード Mac OSX用のバイナリが以下から手に入るのでダウンロードしてきます。 http://code.go…

GroovyなJDK、それがGDK(java.util.List編)

このシリーズの一覧はこちら はじめに GroovyにはJavaの標準API(JDK)を拡張したGroovy JDK(GDK)があります。大量の便利メソッドが追加されており、これを使いこなすだけでも相当のことができるようになります。このシリーズでは毎回1クラスずつ各メソッドの…

Gradleで--daemonオプションを付けた際にnew Fileするとうまくいかない

はじめに --daemonオプションは高速起動するためのオプションなんですが、まだexperimental(実験段階)なんで何があっても自己責任でお願いしますということです。 $ gradle -h (省略) --daemon Uses the Gradle daemon to run the build. Starts the daemon …

Groovy物語のツキちゃんを描いていただきました

前回、ツキちゃんを自分で描いたよという日記を書いたのですが、下手すぎるイラストでどうしようか正直迷っていたところでした…どなたか描いていただけたらうれしいなと思っていたところ Groovyistのみなさま申し訳ございません。3Dは目に有害だそうです。お…

Groovy v1.8.1とv1.9-beta-1の新機能をサクっと紹介するよ

このシリーズの一覧はこちら はじめに 2011-07-21にGroovy v1.8.1とv1.9-beta-1が同時リリースされたようなので、その新機能の一部をサクっと紹介します。 1. プリミティブ型演算のパフォーマンス最適化 割愛*1 2. ストリーミングビルダー(StreamingJsonBuil…

猫にもわかるSwingBuilder「frame」

このシリーズの一覧はこちら はじめに 自分のSwing力の無さに愕然としたので、ちょこちょこサンプルを作ってはまとめてゆく。故にちょこちょこ記事は加筆修正されてゆく予定です。 まず何はともあれframeを作らないと始まらないですよね、ということでframe…

Groovy物語のツキちゃんを描いてみた

本日は体調が悪くて半分以上寝ていたわけですが、夕方くらいから少し体調も良くなってきたため、 せっかく名前も決まったことですし、Groovy物語のツキちゃんを描いてみました!*1 *2 なんかよくわからないGroovyクッションみたいの持ってますね、はい。Twit…

「No Programming, No Life (in English) 」はじめました

前からやりたいなと思っていたNo Programming, No Lifeの英語版*1をついに本日から公開開始しました。 アドレス http://d.hatena.ne.jp/fumokmm+en/日本語版のアドレスに +en が付いただけ*2なので覚え易いですよね?これは海外向けにも紹介しておいたほうが…

現場で使えるGroovy(その3)「JavaにREPLが無いならgroovysh, groovyConsoleを使えばいいじゃない」

このシリーズの一覧はこちら はじめに ご存知の通り、JavaにはREPLがありません。しかし残念がることはありません、そう、あなたにはGroovyが付いています。 Groovyがこれらの特性とJavaとの親和性を高いレベルで同時に実現していることです。 (中略) ・Ja…