« 2008年2月 | トップページ | 2008年5月 »

2008年3月

Macがやってきた

やった!ついにMacBookが我が家にやってきた。
(ちょっと高いけど、嫁がやっと買ってもいいよ!って言ってくれた)
OSとして安定しているMacコンピュータって使ってみたかったんだよね。
でも、常に最新版が出てるので、いつまでもβ版ってことなのかもしれないんだけど。

とりあえず、terminalを使って中身を確認。やっぱりUNIX機だ。UNIXコマンドがバリバリ
に使えるし、内容も入っているものもUNIXですね。(あたりまえだけど)
・・・・なんかうれしくなってしまった。

FreeBSDがベースになっているので、Solarisをよく使っている自分としては多少
分かりやすいかも。最初からRubyが入っていたりして少しうれしい。
いろいろと使いこなしていければいいな~と思ってるけど、そんな時間がとれるかな?

このブログも自分の備忘録と思って、インストールしたことの手順や、設定方法、
その途中でわかったこと、その他いろいろな言語を使ってみた感想や組み方を
書いていこうと思ったけど、やっぱり時間がとれなくてここに書くことができずに
いますね。(ちょっと反省)

これからはもう少し気楽に、日記のつもりで何かを書いていければいいかな
なんて思っています。Macは嫁のお気に入りにもなりそう。
一目見て「かわいい~~」なんて言ってました。

Macをよく使っていらっしゃる方、いい付き合い方があれば、アドバイスをお願いします。

| | コメント (0) | トラックバック (0)

Windows Vista SP1 をインストール

Windows Vista SP1が昨日(19日)からダウンロードできることになったようなので、さっそくインストールしてみることにしました。
windows updateを行うと、vista service pack1の表示がされるので、インストールの指示。
1.ダウンロードが開始。約20分(光)で終了。
2.ライセンスの承諾をして、インストール開始。10分後くらいに「インストール終了」と出て、再起動を求められるので、再起動を押すと終了前にインストールのメッセージを表示(3.)。
3.「ServicePackをインストールしています:1/3 -xx%完了」
 12分後2/3へ、更に3分後にシャットダウンして、再起動。
4.再起動後、3/3が開始され5分後くらいに「ようこそ」と出力され初期のディスクトップ画面が表示された。その後もしばらくマシン(HDDがカリカリ、CPUも稼働率大)が動き続け、3~4分後にCPUが数%レベルまでになって落ち着いた感じ。

◎1時間足らずってくらいでインストールの作業は終わりました。
設定はとりあえず前のままであまり変わっていないようです。
基本的には今迄のように使えてはいますね。

けど、
(1)作業中のメモリ使用率が常に60~70%くらいになってしまった。前は、50%に満たないくらいだった。使ってないときは、30%を切るくらいだったのに。(メモリは2G)
⇒ひょっとして、メモリ1Gの環境ではSP1は動きにくい!?
(2)「ファイルの複写や移動の転送速度がUPしている」ってことで、HDD間では割と早くなったのかな~って印象(大きいファイルで大量には行っていないので実感できないのかも)。でもでも、DVD-RAMにコピーや移動を行った場合。。。
⇒げ、残り5秒って表示されたところで止まってしまう。。何度やっても同じ結果。
 なんか使いにくい。ファイル自体はきちんと存在していたのでまだ許せるけど、
 毎回プログラムの終了を選ばなければならなくなったのでストレスが溜まりそう。
 (DVD-RAMを書き込んだあとの後処理に何かまずいところがある?のだろうか)
 ※動かなくなったあとに別のドライブへ移動し、再度DVDのドライブへ戻ってくると
  きれいに正常終了してくれました。(この方法で解消するしかないのかな?)
   ・・・>ちょっと面倒ですね。
【あまり正確でないのでもう少し加筆】5分・10分くらいひたすら待つと正常に終われるようです。けど、待ってられないのでイライラして他のドライブに移動してあげると早く正常終了の状態にさせることができました。時には「応答なし」になって固まってしまうので、その時は、終わるまでずっと待つか、強制終了になります。⇒ファイルは正常に作成されているようですので、今では安心して強制終了させたりしています。

アンインストールはできるようなので、しばらく使って嫌になれば、アンインストールかな?
元に戻らなかったら、再インストールしないといけないのかも。(やれやれ)

まだ新しい環境をいろいろ試していないので、なんとも言えないけど、もうすでに2か所も嫌なところが目についてしまった。なんとかならないかな~。

| | コメント (0) | トラックバック (0)

xsl スタイルシートの作成

前回作ったrubyでのxmlファイルをブラウザで見栄えよく見えるようにxsltのスタイルシートを作成してみました。これで少し簡単に見えるようになったかな?

cocolog.xsl
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
    <html>
    <head>
    <title>ココログ</title></head>
    <body>

    <xsl:apply-templates />

    </body>
    </html>
</xsl:template>

<xsl:template match="item">
  <p>
    <table border="1">

      <tr bgcolor="lemonchiffon">
        <th>日時</th>
        <th>タイトル</th>
        <th>ユニーク</th>
        <th>ホスト</th>
        <th>ブラウザ</th>
        <th>サイト</th>
        <th>画面</th>
        <th>言語</th>
        <th>ID</th>
      </tr>

      <xsl:for-each select="row">
        <tr>
           <td width="100"><xsl:value-of select="date" /></td>
           <td width="100">
              <table><td>
                 <xsl:for-each select="pagetitle"><table>
                     <td><xsl:value-of select="." /></td>
                 </table></xsl:for-each>
              </td></table>
           </td>
           <td width="50">
              <table><td>
                 <xsl:for-each select="uniqaccess"><table>
                     <td><xsl:value-of select="." /></td>
                 </table></xsl:for-each>
              </td></table>
           </td>
           <td width="100">
              <table><td>
                 <xsl:for-each select="remotehost"><table>
                     <td><xsl:value-of select="." /></td>
                 </table></xsl:for-each>
              </td></table>
           </td>
           <td width="100">
              <table><td>
                 <xsl:for-each select="useragent"><table>
                     <td><xsl:value-of select="." /></td>
                 </table></xsl:for-each>
              </td></table>
           </td>
           <td width="100">
              <table><td>
                 <xsl:for-each select="from"><table>
                     <td><xsl:value-of select="." /></td>
                 </table></xsl:for-each>
              </td></table>
           </td>
           <td width="100">
              <table><td>
                 <xsl:for-each select="display"><table>
                     <td><xsl:value-of select="." /></td>
                 </table></xsl:for-each>
              </td></table>
           </td>
           <td width="50">
              <table><td>
                 <xsl:for-each select="language"><table>
                     <td><xsl:value-of select="." /></td>
                 </table></xsl:for-each>
              </td></table>
           </td>
           <td width="100">
              <table><td>
                 <xsl:for-each select="id"><table>
                     <td><xsl:value-of select="." /></td>
                 </table></xsl:for-each>
              </td></table>
           </td>
        </tr>
      </xsl:for-each>
    </table>
  </p>

</xsl:template>

</xsl:stylesheet>

う~ん、ちょっとダラダラ記述してしまった。もっとスマートにできないものかな?
一応、要素のない場合でもきちんとテーブルの仕切りが作成されるように配慮をしてみました。これも、もっといい方法があるような気がします。皆様はどうされていますか?

| | コメント (0) | トラックバック (0)

Ruby 第3回目 csv⇒xml

ココログのアクセス解析で日ごとにCSVファイルが作れるので、これを利用してCSVファイルを読み込み、XML形式の文書ファイルをRubyで作ってみることに挑戦しました。

csv2xml.rb

require "kconv"
require "csv"

print "<?xml version='1.0' encoding='UTF-8' ?>\n"
print "<?xml-stylesheet type='text/xsl' href='./cocolog.xsl'?>\n"
print "<item>\n"

youso=["date","uniqaccess","pagetitle","remotehost",
       "useragent","from","display","language" ,"id"]
filename="logcsv/"+ARGV[0]+".csv"
CSV.open(filename,'r'){ |i| m=-1
  print "<row>\n"
  i.each {|j| m+=1
    j=j.gsub!(/あっちゃんずちのさとちゃん: /,"").toutf8 if m==2
    if m==5 && j
      j.gsub!(/%[a-fA-F0-9][a-fA-F0-9]/){|k| k.tr!("%","").to_a.pack("H*")}
      j=j.toutf8.tr('&+','_ ').gsub(/</,"&lt;").gsub(/>/,"&gt;")
    end
    print "  <",youso[m],">",j,"</",youso[m],">\n" if j
  }
  print "</row>\n"
}
print "</item>"

CSVファイルを読み込むために、"csv"をrequire
漢字コードの変換を行うために、"kconv"をrequire。これで、Stringクラスに対してメソッドとして、toutf8やtosjis等が使えるようになりますね。

今回勉強になったこと
(1)'r'指定でcsvをopenすると、イテレータで1行ごとの処理が行える
(2)packは配列を変換するため、文字から配列に直して使用した
 (他に方法はないのかな?現時点では不明)
(3)csvの要素がないものはnilが入っているので、そのまま条件式で使用した

とりあえず、文字コードはutf-8を使用することにして、作られたファイルをいろいろ眺めながら今後どう利用していけるかを考えてみます。

| | コメント (0) | トラックバック (1)

円の座標点の値をrubyで検証

C#で作成した円を描くロジックの数値を具体的に確認してみたかったので、rubyで似たようなロジックを作成して出力してみました。

paintcircle.rb
---------------------- O ----------------
x = 0
y = 0
r = 100

ix=r*1.0
iy=0.0
E=1.0/r

print "E=",E,"\n"
i=0
begin
    ix -= E * iy
    iy += E * ix
    i+=1
#    print "i=",i," ix=",ix," iy=",iy,"\n"
    puts sprintf "i=%3d ix=%11.6f iy=%11.6f <ix-r>=%11.6f\n",i,ix,iy,ix-r
    #break if i == 5
end while (ix - r).abs > 0.5 || iy.abs > 0.5
---------------------- O ----------------

結果(抜粋)は下記の通りとなりました。
E=0.01
i=  1 ix= 100.000000 iy=   1.000000 <ix-r>=   0.000000
i=  2 ix=  99.990000 iy=   1.999900 <ix-r>=  -0.010000
i=  3 ix=  99.970001 iy=   2.999600 <ix-r>=  -0.029999
    *
         *
i=155 ix=   2.578735 iy=  99.979640 <ix-r>= -97.421265
i=156 ix=   1.578939 iy=  99.995429 <ix-r>= -98.421061
i=157 ix=   0.578985 iy= 100.001219 <ix-r>= -99.421015
i=158 ix=  -0.421028 iy=  99.997009 <ix-r>=-100.421028
i=159 ix=  -1.420998 iy=  99.982799 <ix-r>=-101.420998
i=160 ix=  -2.420826 iy=  99.958590 <ix-r>=-102.420826
    *
         *
i=312 ix= -99.965928 iy=   2.157825 <ix-r>=-199.965928
i=313 ix= -99.987506 iy=   1.157950 <ix-r>=-199.987506
i=314 ix= -99.999085 iy=   0.157959 <ix-r>=-199.999085
i=315 ix=-100.000665 iy=  -0.842048 <ix-r>=-200.000665
i=316 ix= -99.992245 iy=  -1.841970 <ix-r>=-199.992245
i=317 ix= -99.973825 iy=  -2.841708 <ix-r>=-199.973825
i=318 ix= -99.945408 iy=  -3.841163 <ix-r>=-199.945408
    *
         *
i=469 ix=  -2.736638 iy= -99.976231 <ix-r>=-102.736638
i=470 ix=  -1.736876 iy= -99.993600 <ix-r>=-101.736876
i=471 ix=  -0.736940 iy=-100.000969 <ix-r>=-100.736940
i=472 ix=   0.263070 iy= -99.998339 <ix-r>= -99.736930
i=473 ix=   1.263053 iy= -99.985708 <ix-r>= -98.736947
i=474 ix=   2.262910 iy= -99.963079 <ix-r>= -97.737090
    *
         *
i=625 ix=  99.928451 iy=  -3.315360 <ix-r>=  -0.071549
i=626 ix=  99.961605 iy=  -2.315744 <ix-r>=  -0.038395
i=627 ix=  99.984762 iy=  -1.315897 <ix-r>=  -0.015238
i=628 ix=  99.997921 iy=  -0.315917 <ix-r>=  -0.002079

| | コメント (0) | トラックバック (0)

« 2008年2月 | トップページ | 2008年5月 »