Windows上で フリーのCommon Lispを使った GUIアプリケーションの 自分的必勝パターン を作っておきたいと思って、ここ2,3日調べている。 結論としては、Clozure CLでCL-GTK2を使うのが今のところ一番楽でパフォーマンスも良いと思われる。 スレッドを使えないので、Win版SBCLの優先順位は下げる。 CLISPは遅いのでとりあえず最後の手段としておく。 開発環境構築手順 Clozure CLをインストール http://trac.clozure.com/ccl GTK+2の最新ライブラリを取ってくる。 http://www.gtk.org/download-windows.html CL-GTK2-GTKをダウンロードしてきて展開し、ASDFでロードできるパスに加える。(詳しくは、ASDFのマニュアル参照。) CFFI、trivial-garbage、iter
wrap_excelというライブラリを公開してみました。パチパチパチパチ! 何をしてくれるライブラリなのかというと rubyのwin32oleでのexcel操作の部分をよりrubyっぽく、煩雑な部分を省いて書けるように頑張っています。 rubyでexcelを操作するっていうと今ではspreadsheetとかrooとかがありますが、win32oleが昔から使われていると思います。win32oleはCOMライブラリとの連携をしているライブラリなのでexcelで手作業で出来ることはほぼなんでも出来ると思います。windowsでexcelを操作するには一番安定しているライブラリだと思います。 しかし、COMライブラリをそのまま利用しているので、VBAを使ってる人にとっては使い易いんだけどそうでない人にとってはちょっと使い勝手が悪いような気がしています。 例えばこんな感じ。 app = WIN32O
このエントリはModern Common Lispの一部です。 Common Lispのライブラリを利用するのに、以前はASDF-Installを使っていました。しかし、ASDF-Installは外部のシェルコマンドに依存するためWindowsでの利用が面倒だったり、接続先のサーバが落ちていてダウンロードできなかったり、ダウンロードできたとしてもビルドできないといったことが多くありました。 これを解決するためにZach Beaneが開発したのがQuicklispです。現在BETA公開中で、いくつか制限事項はありますが、誰でも利用できるようになっています。 Quicklisp BETA セットアップ まずはQuicklisp自身をインストールします。以下のリンクからQuicklispをダウンロードしてください。 Quicklispをダウンロードする あなたのLisp処理系 (きっとSBCL以
さて、Modern Common Lispはこれで4回目です。環境構築も完成に近づき、Common Lispでプログラムを始められる状態になりつつあります。ブログの主題も環境構築から実践へと移ります。 今回はCommon Lispでプログラムを書く際によく必要になるであろうライブラリの紹介です。Common LispはSchemeと比べると仕様の大きな言語には違いありませんが、最近普及しているPythonなどに比べると標準ライブラリも小さいです。そのため、適切なライブラリを適切に使用するという能力は、他の言語以上にCommon Lispで必要になるでしょう。 ここで紹介するライブラリはすべてQuicklispに入っているのですぐ利用できます。まだインストールしていない人は以下のエントリを参考にインストールしてください。 Modern Common Lisp: 第2回 Quicklispによ
概要 簡単な CSV インポーターを作成したいと思います。 以下の CSV からデータを読み込んで、Student レコードとして保存します。 (今回の例ではレコードの新規作成しか考慮しません。) 201,ゆの,ゆの,山梨県,阿澄佳奈 202,宮子,みやこ,福岡県,水橋かおり 101,ヒロ,ひろ,山形県,後藤邑子 102,沙英,さえ,,新谷良子 103,乃莉,のり,関西,原田ひとみ 203,なずな,なずな,,小見川千明 101,茉里,まつり,, require 'csv' class HidamariImporter def initialize(path) @path = path end def import Student.transaction do CSV.foreach(@path, 'r:SJIS') do |row| attributes = { room: row[0],
なぜRubyが好きなのか なぜRubyを使い続けるのか Rubyの何が「楽しい」のか 自分の整理がてらこのあたりを言語化してみたいと思い、この記事を書く。 Rubyは「楽しい」 Rubyはよく「書いていて楽しい」とか「書いていて気持ちがいい」とか言われている。 僕自身もこの感覚は持っているし、Rubyを使い続けている人の殆どは少ならからず同じような感覚を持ったことがあるんじゃないかと思っている。 いくつかその例を。 以下は『Rubyソースコード完全解説』を書かれた青木峰郎さんのサイトから引用。 Ruby が Ruby たる所以は「書くのが楽しい」ところなのである。 これはめちゃくちゃ重要なことだからもう一度書こう。 Ruby は書くのが楽しいプログラム言語なのだ! どうしてそんなにLove Ruby? 以下は伊藤直也さんのブログから引用。 ※ ただし、RubyではなくRu
主にC#をやっている私はC#とRubyで若干感覚が違いました。 結論から言うとmapを使います。 C#の感覚だとselectを使いそうなのですが、selectだとうまくいきません。 map select class Person attr_accessor :name, :sex def initialize(name, sex) @name = name @sex = sex end end people = [Person.new("John", "M"), Person.new("Kid", "F")] p people # => [#<Person:0x007f8cf58aacd0 @name="John", @sex="M">, #<Person:0x007f8cf58aac58 @name="Kid", @sex="F">] p people.map { |person| pe
概要 パーフェクトRubyを読んでいて便利だと思ったもの一覧です。 Enumerable編 http://qiita.com/kidachi_/items/a00558cfb0a6a3e23f4b Array編 http://qiita.com/kidachi_/items/e9cb26c4e6cb36b70a1c String編 http://qiita.com/kidachi_/items/7b355eb355b2d1390cf5 繰り返し処理 each ハッシュのキーと値を繰り返す。 > hash = { Ruby: 1, Python: 2, Java: 3 } => {:Ruby=>1, :Python=>2, :Java=>3} > hash.each do |key, value| > p "#{key}: #{value}" > end "Ruby: 1" "Python:
概要 メタプログラミングRuby勉強録。 前回は [Ruby] メタプログラミングの入り口、オープンクラスを理解する http://qiita.com/kidachi_/items/b1672f1c16e2d15f2d9c 今回のトピックは「Rubyらしいプログラミング」に欠かせない、method_missing()です。 method_missing()とは 何に役立つか 危険性と対策 method_missing()とは メソッド呼び出しの際、継承チェーン(※)を辿った末に呼び出しメソッドが見つからなかった時、 最終的に呼び出されるメソッド。 ※継承チェーンはModule#ancestorsで確認できます。 http://ref.xaio.jp/ruby/classes/module/ancestors class Ruby end r = Ruby.new r.hello => No
プリントデバッグが大好きだ!!!何はなくともとりあえず標準出力に吐いてデバグ!!!!!!!!!っていうようなことはみなさんにおかれましても少なからずあるのではないでしょうか。 プリントデバッグを行う場合、単純に変数に何が入っているかというよりも、オブジェクトの状態とかを見たいことが多いかと思う。 そういうときのためのライブラリとして、Ruby だと、p, pp は組み込み、ap はもう定番化しててみんな使ってると思う。 で、ddp ってのもある。http://hisaichi5518.hatenablog.jp/entry/2014/11/05/154949 適当なクラスをでっち上げてそれぞれに食わせてみる こんなクラスがあったとする。 インスタンスを作って、インスタンス自体、インスタンス変数、インスタンスメソッドをそれぞれのライブラリに食わせてみて、どんな感じに表示されるか見てみませう。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く