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

2008年1月

Ruby 第二回目 カレンダー

Rubyでカレンダークラスを作ってみました。
前回、年月を与えて月末日を返すクラスを作ってみたけど、Rubyでは-1を与えれば月末日を返してくれるものがちゃんと用意されていました。今回はこれを使ってみることに。

koyomi.rb

require "date"

class Calendar
    def initialize ( yy , mm )
        @yy = yy
        @mm = mm
        @ymd = Date.new(yy,mm,1)
    end
    def show
        dai  = @ymd.strftime("%B %Y年")
        yobi = "日 月 火 水 木 金 土"
        daispc = (yobi.length - dai.length) / 2

        print " " * daispc, dai,"\n"
        print yobi,"\n"

        hiduke = "   " * @ymd.wday
        (@ymd.day..Date.new(@yy,@mm,-1).day).each { |d|
            hiduke += sprintf("%2s ",d)
        }

        len = (hiduke.length / 21.0).ceil
        moji = hiduke.scan(/.{1,21}/m);
        moji.each { |m|
            print m.chop,"\n"
        }
    end
end

#ロジックの検証用
Calendar.new(2008,1).show
Calendar.new(2008,2).show
Calendar.new(2008,5).show
Calendar.new(2008,6).show
Calendar.new(2009,2).show

出力結果は以下のようになりました。

Photo

とりあえず、出力されたのでまずは一安心。ロジック的にはしっくりきていない部分もあるけど、まだまだRubyの組み方がよく分かっていないのでこんなものでしょう。

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

perl 第一回

perlのプログラムを検証するためにまず、webサーバの導入をしてみます。
apacheを入れてみることにしました。
apache_2.2.6-win32-x86-openssl-0.9.8e.msiのダウンロード。
手順は、「http://httpd.apache.org/download.cgi - マスターサイト」⇒「Apache HTTP Server 2.2.6 is the best available version」⇒「Other files」⇒「binaries/」⇒「win32/」
インストールはデフォルトのままで「次へ」でインストール後、
C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.confの設定ファイルを修正。(LAN上のwebサーバなので基本的には適当にしてみました。)
(1)ServerAdmin  ⇒  ServerAdmin webmaster@localdomain.jp
(2)ServerName :80  ⇒ ServerName 127.0.0.1:80
(3)#AddHandler cgi-script .cgi ⇒ #を削除
設定ファイルを更新して、apacheをrestart

※動作確認
(1)http://localhost/で「It works!」と表示されることを確認。
(2)printenv.plが\cgi-bin\のフォルダにあったので、これをprintenv.cgiに変更し、一行目も#!c:/Perl/bin/perlに修正したあと、http://localhost/cgi-bin/printenv.cgiを実行し、環境変数一覧が表示されることを確認。

perlのプログラムを作ってみたかったのでとりあえず、カウンタ表示をイメージで表示できるようにするためのCGIに利用できるようなサンプルを作成して正しく表示されることを確認することにしてみます。

countjpg.cgi
#!c:/Perl/bin/perl
$counterfile = "counter.dat";

#// HTML 出力
print <<"__HTML__";
Content-type: text/html;charset=Shift_jis\n\n
<HTML><HEAD><TITLE>数字を画像で表\示</TITLE></HEAD>\n
<BODY>
__HTML__

open(IN, "$counterfile");
while(<IN>){
    chomp;
    1 while(s/^([-+]?\d+)(\d{3})/$1,$2/);
    foreach $num (split(//)) {
        $alt = $num;
        $num =~ tr/,.+-/cdpm/;
        print "<IMG SRC='http://IPアドレス/image/fig${num}.jpg' ALT='$alt'>\n";
    }
    print "<BR>\n";
}
close(IN);
print "</BODY></HTML>\n";

exit(0);
__END__

・下記のファイルを\cgi-bin配下に置く
counter.dat
1234567890.01234
+123.987
-1234.9876

・また、画像イメージファイルを\htdocs\imageのフォルダに入れる
fig0.jpg ~ fig9.jpg、figc.jpg、figd.jpg、figp.jpg、figm.jpgと名前を付けて保存
c(カンマ)、d(小数点)、p(+)、m(-)

すべての数字がイメージできちんと表示されることを確認した。
今回のperlプログラムの中では、正規表現を用いて3桁毎にカンマ編集するロジックを作ってみました。アクセスカウンタCGIの中ではあまり使わないかもしれないけど。。。

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

ruby 第一回

今日は初めてRubyのプログラムを作ってみました。
どうも作ってみないと実感がわかないのでとりあえず訳も分からないまま取り組んでみました。まだまだよく分からないことだらけなので頭の中が混乱状態です。

hiduke.rb
class Yyyymm
    Nissu = 30
    Heinen = 28
    Urudoshi = 29
    def initialize ( yy , mm )
        @yy = yy
        @mm = mm
    end
    def eomonth
        if  2 == @mm
            return  Heinen                    unless 0 == ( @yy % 4 )
            return  Urudoshi                  if     0 == ( @yy % 400 )
            return  Heinen                    if     0 == ( @yy % 100 )
            return  Urudoshi
        else
            return  Nissu  +  @mm % 2         if     8 > @mm
            return  Nissu  +  ( @mm + 1 ) % 2 unless 8 > @mm
        end
    end
end

#ロジックの検証用
yy = [  844 , 1900 , 2000 , 2007 , 2008 , 2008 , 2008 , 2008 ,
       2008 , 2008 , 2008 , 2008 , 2008 , 2008 , 2008 , 2008 ]
mm = [    2 ,    2 ,    2 ,    2 ,    1 ,    2 ,    3 ,    4 ,
          5 ,    6 ,    7 ,    8 ,    9 ,   10 ,   11 ,   12 ]

yy.length.times { | n |
    printf("%4d/%02d/%d\n",
           yy[n],mm[n],Yyyymm.new(yy[n],mm[n]).eomonth)
}

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

VirtualBoxにDebianをインスト-ル

Debianの取得はBitTorrentファイルを使用。debian-40r2-i386-DVD-1.iso.torrent
BTファイルはbitcometでDownloadすることに。最新は0.98となっているが、0.70をXPにインストールして使用。オプションで監視ポート番号を決める。(これを使用しないとローカル接続だけとなり速度がでない。)
またXPはSP2なのでFirewallの設定、それからルータの設定が必要。ダウンロード中にピアで接続元の中にリモートがあれば、ポートが開かれている状態。

VirtualBoxwindowsのx86用を使用。
Linux 2.6を選び512MBのメモリ10GBのHDDで仮想空間を作成して、ISOファイルより起動。

最近は少し、HTML,CSS,Javascriptを研究中。まだまだわからないことが多いので毎日手探り状態です。Perlもやってみたいけどなかなか手が出せない。



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

JavaScript 第一回

20080104テーブルに新しいテーブルクロスを買ってきた。けど、妻は「汚れるといけないから」ということで食事をするときには、メタ・テーブルクロスとして、新聞紙や広告が大活躍してます。
明日からは仕事か~ということで、モードを戻す意味も込めてプログラム作成に取り組んでみました。Javascriptってあまり知らないので勉強がてら実験的に作成

JS001.html

<html>
<head>
<title>第一次</title>
    <style type="text/css">
    <!--
        p{color:white;}
    //-->
    </style>
    <script type="text/javascript">
    <!--
        function nenrei(tanjobi){
            dd = new Date();
            today= dd.getFullYear() * 10000 + (dd.getMonth()+1) * 100 + dd.getDate()
            
            if(tanjobi>today) { return "You are not born yet."; }
            else{
                var kekka=parseInt(String((today - tanjobi)/10000));
                var s=(kekka>1)?"s":"";
                return "You are "+kekka+" year"+s+" old.";
            }
        }
    //-->
    </script>
</head>
<body>
    <script type="text/javascript">
    <!--
        document.fgColor = "blue";
        document.bgColor = "yellow";
        document.write("3x7=");
        document.writeln(3*7);
        document.write("My first javascript(^_^)v");
       
        dd = new Date();
        ld = dd.toLocaleString();
        document.writeln(" "+ld);
       
        var week;
        week = new Array("SUN","MON","TUE","WED","THU","FRI","SAT");
        document.write("Tuesday is " + week[2]);

        document.write("<table border=\"2\"><tr>");
        for(i=0;i<10;i++){
            if(i%2){
                document.write("<td bgcolor=\"green\">");
            }
            else{
                document.write("<td bgcolor=\"red\">");
            }
            document.write("<p>"+i+"</p></td>");
        }
        document.write("</tr></table>");
    //-->
    </script>
   
    <hr>誕生日(YYYYMMDD)を入れてください</hr><br>
    <form name="F_keisan">
        <input type="text" size="10" name="birthday">
        <input type="button" value="年齢計算"
         onclick=alert(nenrei(document.F_keisan.birthday.value))>
    </form>
</body>
</html>

・わかったこと
 (1)最初に<script type="text/javascript">を書く
  (2)CSSには<style type="text/css">を記述
  (3)<!-- ~ //-->でコメント化しておく
  (4)getMonth()メソッドは0~11を返す
  (5)整数化はparseInt(String(小数点数字))とする
     今回の場合はプラスのみなのでMath.floor(小数点数字)でもできる
     マイナスも考慮するなら、下記のように記述する必要がある
    (小数点数字<0)?Math.ceil(小数点数字):Math.floor(小数点数字)
  (6)writeは改行しない、writelnで改行する

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

JAVA(jdk)、netBeans6.0、eclipseをインストール

20071231每天每天都穿奶奶给她买的上衣去的奶奶家。看起来既舒服又暖和。像白雪公主一样漂亮。She's started eating rice water. She seems to take to it.
JAVAの開発環境を作るためにとりあえず必要なものを入れてみることにしました。

JAVA
jdk-6u3-windows-i586-p.exe

⇒実行で、C:\Program Files\Javaに①jdk1.6.0_03②jre1.6.0_03を作成
jdk-6-doc-ja.zip

C:\Program Files\Java\jdk1.6.0_03に解凍
環境変数の設定(マイコンピュータを右クリックプロパティ」選択詳細設定」タブ選択環境変数」クリック
JAVA_HOME : C:\Program Files\Java\jdk1.6.0_03
Path            : %JAVA_HOME%\bin;      を先頭に追加

開発環境(IDE)
netbeans-6.0-windows.exe (英語版のダウンロード)
nb60ja-2007-12-03_09-25.zip  (日本語化 zip ファイル・通常版)
⇒exeを起動してインストール後、zipをC:\Program Files\NetBeans 6.0へ解凍

eclipse-SDK-3.3.1.1-win32.zip (Latest Releases)
pleiades_1.2.0.zip
⇒eclipseのzipをC:\に解凍、pleiadesのzipを解凍してC:\eclipseに上書きしeclipse.iniをバックアップし、eclipse.ini.sampleをeclipse.iniに変名する。これでeclipseを実行すれば日本語化されているはず。(環境を変更した場合等、コマンドプロンプトでeclipse.exe -clearを実行すれば初期クリアされる) 

ruby186-26.exe (ついでにrubyもインストール、環境変数も自動で設定されるのでそのまま使用可能。IDEとしてSciTEがインストールされる)

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

Visual Studio 2008 Express Edition

20080103_2さとちゃん今年很厉害。一号能说话(只是《再见》《回家》,其实对方说什么她就跟着说什么。内容是二号说的)二号翻一次的身。三号爷爷向她摆手时,她也举手向爷爷摆手。
This is her favourite toy. She's been playin' with it all the weak.
She herself reaches out for it,  and  doesn't appear to let go.

VS2008ExpressJPNX1428694.iso
↑MicroSoftから”Visual Studio 2008 Express Edition”(無償)が出ているのでダウンロードしてみました。

  • Visual C#
  • Visual Basic
  • Visual C++
  • Visual Web Developer

を全てインストールしてみました。 Visual Basic 6.0は使ったことがあるんだけど今となってはあまり覚えていない言語になりつつあるかも。EXCELやACCESSのVBAはたまに使用しているのでVBだったらまだ少しは使えるかもしれないです。Windowsでの開発だったら恐らく一番やりやすい言語なのかもしれないです。思い出しながら取り組んでみよっと。

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

fedora8 installed on Virtual PC 2007

20080102今日は賑やかにおばあちゃん家でお食事。人もたくさんいて、さとちゃん興奮状態。跟妹妹家人一起吃了饭,很高兴。见堂哥,堂姐,她也开心的多。而且左看右看眼睛特别累了,还有脖子。过年さとちゃん一直吃螃蟹。喜欢吃那个吗?好吃吗?
Seeing her eating her crab, we ate some crub legs in NABE.

Virtual PC 2007にfedora8をインストールすることに挑戦してみました。今年は少しLINUXを使ってみようと思って。Vistaのバージョンがhome premiumなのでVirtual PCを使うにはあまり推奨されていないのだろうけど、動きそうなのでなんとか使ってみようと思います。
(1)Virtual PC 2007
(2)fedora8


Virtual PC 2007を起動すると初期ではOSがないので起動に失敗。その状態でfedora8のisoファイルを「CD」-「ISOイメージのキャプチャ」で設定して、「操作」-「Ctrl+Alt+Dell」で再起動させる。
Press [Tab] to edit options と表示されている時に TABキーを押してオプションの設定へ
vmlinuz initrd=initrd.img i8042.noloop vesa


'a' to modify the kernel arguments before booting と出力されたら「a」を押下
grub append> ro root=/dev/VolGroup00/LogVol00 rhgb quiet vga=786 1 
「single user mode で起動」※「=」は「^」キーを押下することにより入力


起動後プロンプト表示で下記ファイルをviで修正する
vi /etc/X11/xorg.conf
Section "Device"
 "vesa" -->  "fbdev"
Section "Screen"
 DefaultDepth  24 -->  16
vi /boot/grub/grub.conf
ro root=/dev/ColGroup00/LogVol00 rhgb quiet i8042.noloop vga=791
修正後は sync;sync;shutdown -y -i6 -g0で再起動
再起動後、続きの設定を行いインストールは終了する。
Package Updaterで更新を行う。
SolarisよりLinuxの方がいろいろ楽しめそうなのでfedoraの機能を自身で確かめながら試してみたいと思います。

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

中国語入力環境の設定

20080101 新年好!A happy new year.
あけましておめでとうございます。
今年の幕開けはなんと一面の雪ではないですか。「瑞雪」不过太可惜了。因为外边特别冷,今天不能去爷爷奶奶家,所以さとちゃん不能穿她姥姥给她买送到这里的帽子。
I hope 2008 has brought you all a better year.

さて、年の初めはNEWSからということで、NHKの中国語ニュースを聞くことから始めてみました。まだ早すぎて去年から更新がなかったのでまた後で聞いてみることにします。

Vistaに替わってから中国語の入力が標準に付いているIMEだけで操作しやすくなっているので暫くそれを使ってみようかなと思っています。設定方法は、
IME」で右クリック設定」を選択テキストサービスと入力言語全般」タブ右側にある「追加」をクリック入力言語の追加)上の中国語(中国)キーボード中国語(簡体字)-Microsoft PinYin IMEを選択することで使用することができるように。
alt+shiftで入力言語の切り替え(日<->中)ができるようになります。

中国のソフトをインストールする場合、普通に入れてしまうと文字セットの問題から化け化けで使い物にならなくなってしまうので、Microsoftのapploc.msiを”安装”。
C:\WINDOWS\AppPatch\AppLoc.tmpがあれば、内容を全て削除して保存。なければ、空ファイルで作成。プロパティの属性を読み取り専用に変更
(これをしていないと、日本語ソフトをインストールするときに問題が発生することになります。インストール中の文字が漢字だらけで化け化けになってしまいます)
applocでインストールしたアプリは以後使用する毎にapplocから起動することによってPG内での文字化けを防ぐことができます。

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

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