!kiyoka.blog.2010_04 RSSPLAIN

Related pages: !kiyoka.blog.list
45545555555555515055555555555555555555555555555555555555555555555555555555555555555555555555555555555555055555555555555555555555555555555530555555555555555550555555555555550555255555505555555555555555555555555555555555555555555055555555550555555555555555555555555555555555555555555555505
4

kiyoka日記。NendoSekkaの開発や、最近思うことなど

5

最新10件!kiyoka.blog   過去記事一覧!kiyoka.blog.list

5

kiyoka.blog_header 

4

このブログを書いている人: 西山 清香(kiyoka) - twitter: @kiyokaEXT

5

5

 

5

 

5

kiyoka.2010_04_21[Debian] Debianのdist-upgradeをする勇気が出ない

5

Debian 4.0までは、なんとかバージョンアップをやってきたのだが、ここにきて、バージョンアップをためらっている。

5

バージョンアップしたいサーバーはOldTypeをホストしている以外にもメールを直で受けているなどあまり止まって欲しくないサーバーなのだ。

5

Debianの現在の安定板は5.0(lenny) なのだが、カーネルのバージョンも上がるため最低一度はリブートをしないといけないそうだ。

5

心配事は、Subversionのリポジトリサーバがそのまま引継げるかと、自分でビルドしたGauche+Kahuaが動かなくなったりしないかの二つ。

5

そもそも、カーネルが起動するかどうかというのも少し心配。それが一番困る。

5
 officiallogo-50
5

 

1

そんなわけで、最近のサーバーは /usr/local/ 以下にソースからインストールしたソフトウェアが蓄積されていくのであった。(管理ソフトは自作のStowspec を使っている)

5

 

0

comment (disabled)

5

5

 

5

 

5

kiyoka.2010_04_17[JRuby][Ruby] CRuby-1.9.1とJRuby 1.5.0-RC1の挙動の違いを発見

5

JRubyのバグかなとTwitterでつぶやいたら、@hiro_asariEXTさんから、どんな内容か教えて下さいと返信もらったので、これはその説明用エントリです。@hiro_asariEXTさんありがとうございます。

5
 Twitter / Hiro Asari: @kiyoka JRubyで1.9相当の挙動を促すに ...EXT
5
 @kiyoka JRubyで1.9相当の挙動を促すには--1.9というフラグが必要です。そ
5
 れでも違う場合には、どのような物か提示してもらえれば調査してみます。
5

 

5

このあたり、Ruby処理系間の仕様の調整(RubySpecとかあるけど)のノウハウが無いので、後は@hiro_asariEXTさんにお願いできればと思います。

5

仕様がちょっと違うというだけのバグなので、JRubyの中身を知っている人ならスグに直せそうな問題です。(JRuby側を合わせるとしたらですが...)

5

それから、本ブログからソースコードをコピペする場合は、ページタイトル右横の[PLAIN TEXT]アイコンで本ページのTEXT版が出てきます。その方法を試してみて下さい。

5

 

5

現象

5

次のメソッドの返す型が違う。

5

CRubyはシンボルの配列を返し、JRubyは文字列の配列を返す。

5
global_variables
5
instance_variables
5
local_variables
5

 

5

class_variablesだけは両方の処理系でシンボルの配列を返す。

5

 

5

実験結果

5

 

5

実験用ソースコード print_variables.rb

5
# -*- encoding: utf-8 -*-
5
5
$global_var1 = 1
5
$global_var2 = 2
5
5
class A
5
  @@class_var1 = 1
5
  @@class_var2 = 2
5
  def initialize
5
    @instance_var1 = 1
5
    @instance_var2 = 2
5
  end
5
5
  def view_variables
5
    local_var1 = 1
5
    local_var2 = 2
5
5
    print "global_variables:\n  "
5
    p global_variables
5
    print "class_variables:\n  "
5
    p A.class_variables
5
    print "instance_variables:\n  "
5
    p self.instance_variables
5
    print "local_variables:\n  "
5
    p local_variables
5
  end
5
end
5
5
a = A.new
5
a.view_variables
5

 

5

JRubyの挙動

5
$ jruby --1.9 --version
5
jruby 1.5.0.RC1 (ruby 1.9.2dev trunk 24787) (2010-04-14 0b08bc7) (Java HotSpot(TM) Client VM 1.5.0_22) [ppc-java]
5
$ jruby --1.9 print_variables.rb 
5
global_variables:
5
  ["$$", "$`", "$@", "$\\", "$<", "$=", "$!", "$.", "$;", "$&", "$\"", "$'", "$,", "$+", "$>", "$:", "$/", "$~", "$0", "$_", "$*", "$?", "$-n", "$-I", "$-p", "$global_var1", "$-a", "$-l", "$global_var2", "$-d", "$-K", "$stderr", "$stdout", "$LOAD_PATH", "$SAFE", "$FILENAME", "$stdin", "$VERBOSE", "$LOADED_FEATURES", "$deferr", "$defout", "$PROGRAM_NAME", "$KCODE", "$DEBUG"]
5
class_variables:
5
  [:@@class_var1, :@@class_var2]
5
instance_variables:
5
  ["@instance_var2", "@instance_var1"]
5
local_variables:
5
  ["local_var1", "local_var2"]
5

 

5

CRubyの挙動

5
$ ruby --version
5
ruby 1.9.1p376 (2009-12-07 revision 26041) [powerpc-darwin9.8.0]
5
$ ruby print_variables.rb 
5
global_variables:
5
  [:$;, :$-F, :$@, :$!, :$SAFE, :$~, :$&, :$`, :$', :$+, :$=, :$KCODE, :$-K, :$,, :$/, :$-0, :$\, :$_, :$stdin, :$stdout, :$stderr, :$>, :$<, :$., :$FILENAME, :$-i, :$*, :$?, :$$, :$:, :$-I, :$LOAD_PATH, :$", :$LOADED_FEATURES, :$VERBOSE, :$-v, :$-w, :$-W, :$DEBUG, :$-d, :$0, :$PROGRAM_NAME, :$global_var1, :$global_var2, :$-p, :$-l, :$-a, :$1, :$2, :$3, :$4, :$5, :$6, :$7, :$8, :$9]
5
class_variables:
5
  [:@@class_var1, :@@class_var2]
5
instance_variables:
5
  [:@instance_var1, :@instance_var2]
5
local_variables:
5
  [:local_var1, :local_var2]
5

 

5

今回初めてTwitterが有効活用されそうな予感です。

5

 

5

COMMENTあさり

念の為に追記しておきますと、http://twitter.com/hiro_asari/status/12359856172 に書きました通り、この点は http://bit.ly/acyiqv で対処しました。ご報告に感謝します。

5

COMMENTkiyoka

あさりさん、すばやい対処ありがとうございます。お役に立ててなによりです。

CRuby1.9互換競争で、JRubyがトップを走ってそうですね。

また何か見つけたら報告します。

0

comment (disabled)

5

5

 

5

 

5

kiyoka.2010_04_14[プログラミング] ビューティフルアーキテクチャを読む

5

図書館にあったので借りて読んだ。

5
 4873114306  ビューティフルアーキテクチャ: Diomidis Spinellis, Georgios Gousios, 久野 禎子, 久野 靖
5

 

5

シリーズ前作のビューティフルコード4873113636よりも良かったかもしれない。

5

もしかして自分は、コードよりもアーキテクチャの議論のほうが好きかも。

5

これまで自分が作ってきたものを見ても、自力のコードをがんばるよりもいろんなコンポーネントを組みあわせて面白いものを創る方を優先してきた気がする。

5

 

5

さて、今回自分が読んだ章はこれだけ。

5

一番読んでためになったのは、1章,2章,14章かな。

5

自分の中の曖昧なイメージを明確に出来たという意味では、5章も読んでよかった。

5

図書館に返却する道すがら別の章もパラパラめくって見たけど、楽しそうな話題が沢山あった。

5

いつかもういちど借りよう。(というか買えということか)

5

 

5
第1部アーキテクチャについて
5
1章アーキテクチャとは何か?(ジョン・クライン、デビッド・ワイス)
5
2章 2つのシステム:今風ソフトウェア物語(ピート・グッドリッフ)
5
5章リソース指向アーキテクチャ:「Web上にある」こと(ブライアン・スレッテン)
5

 

5
第4部エンドユーザアプリケーションのアーキテクチャ
5
11章 GNU Emacs:漸進的機能追加方式が持つ力(ジム・ブランディ)
5

 

5
第5部プログラミング言語とアーキテクチャ
5
13章ソフトウェアアーキテクチャ:オブジェクト指向対関数型(バートランド・メイヤー)
5
14章古典再読(パナギオティス・ロウリーダス)
5

 

5

しかし、一番期待していた言語設計の13章が難しすぎてわからなかった。残念。

5

なんか議論がいろんな視点に移っていて、煙に巻かれた感じ?

5

この章ちゃんと理解できた人いるのかなぁ。

5

 

3

COMMENTAlice

Hey, that's a clveer way of thinking about it.

0

comment (disabled)

5

5

 

5

 

5

kiyoka.2010_04_13[Nendo] Nendo 0.3.0 リリース

5

私がRubyで書いているLisp方言、 Nendoについて。

5

 

5

Nendo 0.3.0をリリースしました。(リリースノート: Nendo.ReleaseNote)

5

#(img-s http://allgems.ruby-forum.com/images/rubygems-125x125t.png)

5

チュートリアルと、リファレンスマニュアルはまだ書きかけです。

5

Nendo.Tutorial 

5

Nendo.ReferenceManual 

5

 

5

言語のコア部分の目立つバグは取れてきたと思います。

5

まだまだ、Lispの強みであるlist操作系ライブラリやmatch系ライブラリが不足気味です。

5

いろんなアプリを作りながら少しづつ肉付けしていく予定です。

5

もうそろそろ、ruby-list MLとかに、アナウンス出した方がいいのかな… オレ言語というのはアナウンスタイミングが難しい。

5

 

0

comment (disabled)

5

5

 

5

 

5

kiyoka.2010_04_12[プログラミング] Internetがない環境での生産性は高いか

5

答えは、『どんな作業をするかによって変わる』だと思う。

5

最近、子供を託児所に預けている数時間の間にカフェでNendoの開発を行っているけれども、Internetが接続されていない環境では割り込みが入らないため、コーディングやデバッグの生産性は非常に高い。

5

 311-1216984436alFP

5

ただ、他の言語処理系のコードや設計方針なんかを参考にしようとすると、Internetから情報が得られないため部分的に非常に生産性が低い。

5

Internetは諸刃の剣だと思う。

5

Internetに繋った環境と繋ってない環境を1日おきとか、午前と午後で分けるとかにするとか工夫するとうまく生産性を上げれるかも。

5

今Twitterがはやっているけれども、みんなどうやってそのノイズに負けず生産性の維持をしているのだろうか。

5

 

5

COMMENTsion

スイッチ ON/OFF してます。自分の、ね(笑)

ある意味、集中力を要しますが。

5

COMMENTkiyoka

やっぱり、意識してスイッチを切り替えるということですよね。

奥歯を噛むと自動的に集中スイッチがONすれば便利なんですが...

私には、まだまだ修行が必要です。

0

comment (disabled)

5

5

 

5

 

2

kiyoka.2010_04_08[Life] iPodTouch落下!

5

iPodTouchを大理石の玄関口に落としてしまった…

5
 4501935575_4fc27e76d5 ガラスのひび割れが痛々しいよ。
5

タッチ操作には反応するが、肝心のUSBによるMacとの同期が出来なくなった。

5

これでは音楽を持ち歩けないし、なによりも子供がぐずった時用の鉄道のビデオが追加できないのが致命的だ。

5

最悪WiFiが繋がるので、Bylineでのブログ記事の持ち運びとDropboxでのPDFの持ち運びだけはできるか…

5

 

0

comment (disabled)

5

5

 

5

 

5

kiyoka.2010_04_05[ハードウェア] PowerPCに失望の連続

5

私の開発用Macは今だに、PowerPCなのだが、時代に置いていかれそうだ。

5

最近、PowerPCに対応していないオープンソースソフトウェアが増えてきて困っている。

5

 

5

先日から、MongoDBを試してみたいと思い、MacPortsを導入した。

5

MacPorts便利だーと思って、嬉々としていろんなソフトをインストールしていたのだが、肝心のMongoDBがPowerPCに対応していないらしくてインストールに失敗した。

5

追記:ダウンロードサイトにもちゃんと書いてあった。

5
 Downloads - MongoDB - 10gen ConfluenceEXT
5
 - Currently the mongod server must run on little-endian cpu (intel) so if you are using a ppc os x, mongod will not work.
5

 

5

以下、portsがビルドに失敗した時間のメッセージ...

5
.
5
.
5
--->  Configuring mongodb
5
--->  Building mongodb
5
Error: Target org.macports.build returned: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_databases_mongodb/work/mongodb-src-r1.4.0" && scons -j1 all mongobridge mongosniff --usesm --cxx /usr/bin/g++-4.0 " returned error 2
5
Command output: Checking for C++ header file execinfo.h... yes
5
.
5
.
5
.
5
Checking for C header file js/jsapi.h... yes
5
scons: done reading SConscript files.
5
scons: Building targets ...
5
/usr/bin/g++-4.0 -o stdafx.o -c -Wnon-virtual-dtor -fPIC -fno-strict-aliasing -ggdb -pthread -Wall -Wsign-compare -Wno-unknown-pragmas -Winvalid-pch -O3 -D_SCONS -DXP_UNIX -I. -I/opt/local/include stdafx.cpp
5
/usr/bin/g++-4.0 -o buildinfo.o -c -Wnon-virtual-dtor -fPIC -fno-strict-aliasing -ggdb -pthread -Wall -Wsign-compare -Wno-unknown-pragmas -Winvalid-pch -O3 -D_SCONS -DXP_UNIX -I. -I/opt/local/include buildinfo.cpp
5
/usr/bin/g++-4.0 -o db/common.o -c -Wnon-virtual-dtor -fPIC -fno-strict-aliasing -ggdb -pthread -Wall -Wsign-compare -Wno-unknown-pragmas -Winvalid-pch -O3 -D_SCONS -DXP_UNIX -I. -I/opt/local/include db/common.cpp
5
/usr/bin/g++-4.0 -o db/jsobj.o -c -Wnon-virtual-dtor -fPIC -fno-strict-aliasing -ggdb -pthread -Wall -Wsign-compare -Wno-unknown-pragmas -Winvalid-pch -O3 -D_SCONS -DXP_UNIX -I. -I/opt/local/include db/jsobj.cpp
5
In file included from db/jsobj.cpp:23:
5
db/../util/atomic_int.h:97:4: error: #error "unsupported compiler or platform"
5
db/../util/atomic_int.h:36: warning: inline function 'mongo::AtomicUInt mongo::AtomicUInt::operator++(int)' used but never defined
5
scons: *** [db/jsobj.o] Error 1
5
scons: building terminated because of errors.
5
5
Error: Status 1 encountered during processing.
5
Before reporting a bug, first run the command again with the -d flag to get complete output.
5

 

5

特に、KVS DB関連やRubyの処理系関連はIntelしかダメなのが多い。

5

先日も、MacRuby 0.5がPowerPCに対応していなくて失望させられた。今時MacはIntel限定なのかのう。

5

復職してお金が入ったらIntelのマシンが欲しいなあ。

5

 

0

comment (disabled)

5

5

 

5

 

5

kiyoka.2010_04_02[Lisp][ネタ] プログラマは皆どのようにしてLisperと化して行くのか?

5

vallog: プログラマは皆どのようにしてLisperと化して行くのか?EXTのエントリ。よくこれだけの項目書いたなあ。

5

4274065979 ハッカーと画家

5

私はPerlやRubyからLisperに転身したのであるが、上記エントリのかなりの項目数が当てはまる。

5

色々あって、RubyでLisp処理系を作る事になったが、それはLisperで居続けるためのRubyプログラミングであって、やっぱり自分はLisperだと自覚している。

5

あっ、そういえば最近、Lispを学習する人のブログエントリが増えている気がするが、自分の見ているところが偏っているだけなのかな?

5

 

0

comment (disabled)

5

5

 

5

 

5

kiyoka.2010_04_01[Nendo] Gaucheのtext.html-liteをポーティングできた

5

私がRubyで書いているLisp方言、 Nendoについて。

5

 

5

Gaucheから持ってきた text.html-lite が動いた。感動!

5

(Gaucheのリファレンスマニュアル: Gauche ユーザリファレンス: 11.36 text.html-lite - シンプルなHTMLドキュメントの構築EXT)

5

いざポーティングしようとすると、Nendoにnullリスト関連のバグがたくさん見つかったが。

5

ついでに text.tree も必要だったのでポーティングした。

5

 

5

しかし、まだNendoからRubyのHashにアクセスできないので、まだちゃんとしたCGIスクリプトが書けない…

5

現状でできる範囲のサンプルはこんな感じ。

5
#!/bin/sh
5
:; #-*- mode: nendo; syntax: scheme -*-;;
5
:; exec /usr/local/bin/nendo $0 $*
5
5
(load-library "text/html-lite")
5
(load-library "text/tree")
5
(require "cgi")
5
5
(define (params-list-page cgi)
5
  `(
5
    ,(html-doctype)
5
    ,(html:head
5
      (html:title "CGI parameter list"))
5
    ,(html:body
5
      (html:h1 "CGI parameter list")
5
      (html:table :border 1
5
                  (for-each
5
                   (lambda (x)
5
                     (html:tr
5
                      (html:td x)))
5
                   (to-list (cgi.params.keys)))))))
5
5
(let1 cgi (CGI.new)
5
  (cgi.print
5
   (cgi.header))
5
  (cgi.print
5
   (tree->string
5
    (params-list-page cgi))))
5

 

5

Rubyの大量のライブラリ(gem)が使えるとなったら、いろいろ試したいことがある。

5

例えば、Excelファイルをアップロード/ダウンロードするとか、ImageMagickで画像を生成して返すとか。

5

やっと、S式でRubyプログラミングの雰囲気が出てきたぞ。

5

 

0

comment (disabled)

5