Hatena::Grouprubyist

たばさの RSSフィード

04/30(水) 2008

いつでもみんな初心者

いつでもみんな初心者 - たばさの を含むブックマーク はてなブックマーク - いつでもみんな初心者 - たばさの

http://b.hatena.ne.jp/entry/http://kousyoublog.jp/?eid=1659

本人らしき人がまめにスターをつけている。まめな人は大丈夫だろう。聴く耳持たない人はダメだ。

わき目も振らずにってのもいいけど。状況にもよるか。

ひとそれぞれ。

f:id:hatecha:20080430070726j:image

XPathGraphをいぢる

| XPathGraphをいぢる - たばさの を含むブックマーク はてなブックマーク - XPathGraphをいぢる - たばさの

http://xpath.kayac.com/graph/YurwB1IW3RG9Tg

'ruby' watcher @ hatena rss

最初、

//a[@name="watchers"][1]

などとやったらrubyがperlの10倍以上でおおすごい。と一瞬思ったけど我に返り、そうか「15(+9)」というプライベート別表示のせいで159になるんだな。(XPathGraphでは選択した文字列から数字すべてをつなげる)

ということで画像を数えた。切り分けて足し算は出来るのかは調べていない。


URLxpathのデータを別々に管理して、自由に組み合わせというのもいいかな。上のような例では特に。

トラックバック - http://rubyist.g.hatena.ne.jp/hatecha/20080430

04/26(土) 2008

検索

検索 - たばさの を含むブックマーク はてなブックマーク - 検索 - たばさの

「マリオブラザーズをRubyで」適当にgoogle検索すると本家はトップに来ない。ブックマーク系のほうが強いような。

googleもまだまだ、ということかな。どうだろう。

トラックバック - http://rubyist.g.hatena.ne.jp/hatecha/20080426

04/24(木) 2008マリオで遊ぶ

hatecha20080424

マリオ無敵。

| マリオ無敵。 - たばさの を含むブックマーク はてなブックマーク - マリオ無敵。 - たばさの

はてなブログ

rskit/mario/gamestart.rb 109行からのenemyを行頭に#でコメントアウト消してみた。

#   enemy Life::Kuribo.new(900, 550)
(略)

ほんとに消えた、すごい。

マリオ、ピンチ。

| マリオ、ピンチ。 - たばさの を含むブックマーク はてなブックマーク - マリオ、ピンチ。 - たばさの

はてなブログ

スタート近くに大量に敵を。

10.times{|t|
   enemy Life::NokoNoko.new(500+t*20, 550)
}

f:id:hatecha:20080424043135p:image

5.times{|t|
   enemy Life::NokoNoko.new(500+t*20, 550)
   enemy Life::NokoNoko.new(510+t*20,200)
   enemy Life::NokoNoko.new(515+t*20,100)
}

f:id:hatecha:20080424044447p:image

マリオ、ワープ

| マリオ、ワープ - たばさの を含むブックマーク はてなブックマーク - マリオ、ワープ - たばさの

プレイヤーとあるのはやはりマリオでしょう。スタート位置をいじります。冒涜です。

ただしimageフォルダを見るとスタート画像そのものは固定のようです。

    player Life::Mario.new(9625, 150)

f:id:hatecha:20080424112141p:image

マリオ、はまる

| マリオ、はまる - たばさの を含むブックマーク はてなブックマーク - マリオ、はまる - たばさの

おなじくgamestart.rb 44行目あたりからのblock生成をコメントアウトしたりしてみる

#    block Material::ItemBox.new(800, 420)

三角ブロックも追加。最後の引数は高さ、そのまえは横座標だとなんとなく推測できますね。

なぜ三角ブロックか解るかというとtriangleですから。わかりやすい。名前は重要です。

    left_triangle_block Material::StrongBlock, 6350, 4
    left_triangle_block Material::StrongBlock, 1300, 5
    right_triangle_block Material::StrongBlock, 1650, 7

f:id:hatecha:20080425080751p:image

(フォトライフ1ヶ月3G無料キャンペーンらしいですよ)

トラックバック - http://rubyist.g.hatena.ne.jp/hatecha/20080424

04/22(火) 2008

Morse decode

| Morse decode - たばさの を含むブックマーク はてなブックマーク - Morse decode - たばさの

http://golf.shinh.org/p.rb?Morse+decode

f:id:hatecha:20080423003730j:image


rubyでとりあえず解いたあと、やっぱ置換ならsedかなあと。

区切り文字処理して、単純に一意じゃないようなので長いのから置き換えればいいかな。最後はy///使えるか。

とやってるうちに、いや逆に短いほうからやってもいいというかむしろそうしたほうがよさそうな。

しかしz80短すぎ。

トラックバック - http://rubyist.g.hatena.ne.jp/hatecha/20080422

04/18(金) 2008

source

| source - たばさの を含むブックマーク はてなブックマーク - source - たばさの

バイナリを表示可能文字列にするbase64まわりをなんとなく辿っていてishというのを見つける。ソースでも覗こうかと思いダウンロードし見てみるとアセンブラで書いてあって予想外。

トラックバック - http://rubyist.g.hatena.ne.jp/hatecha/20080418

04/15(火) 2008

微妙

| 微妙 - たばさの を含むブックマーク はてなブックマーク - 微妙 - たばさの

http://www.atmarkit.co.jp/news/200804/11/cab.html

公表できないというのがおかしい。

でもいろいろと微妙に現実的な物言いが悩ましい。「いきなり光速出すようなもんです」とは言わずに「200キロ」だとか、「まったく新しい方式」といわずに「ほかの公開鍵暗号方式はCAB方式の特殊な場合なのです」と言ったり。

いろんな意味で期待して見守りたい。


「200キロ」の部分は、人間を機械に置き換えといった意味の例えなんだろうと思う。そんな感じで大嘘という雰囲気はない。だとしても良く分からんですね。これはビジネスとして行けると判断したのが誰かとかも気になったり。

トラックバック - http://rubyist.g.hatena.ne.jp/hatecha/20080415

04/12(土) 2008

timeout

| timeout - たばさの を含むブックマーク はてなブックマーク - timeout - たばさの

http://golf.shinh.org/p.rb?Timeout

Rの制限を緩くしたようなので試す。

0:1e5(0から10の5乗までプリント)の出力は21秒くらい手元ではかかる。スタートは早いからそのうち通らなくされるかと思ったけどそうでもなさそう。どうせだから1e9にしておこうか。

>0:1e7
  [1]   0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17
 [19]  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35

(略)

[99997] 99996 99997 99998
 [ reached getOption("max.print") -- omitted 9900002 entries ]]
> 0:1e8
エラー:サイズ 390625 Kb のベクトルを割り当てることができません
追加情報: Warning messages:
1: Reached total allocation of 223Mb: see help(memory.size)
2: Reached total allocation of 223Mb: see help(memory.size)
>

逆にタイムアウトにならずに終了。

| 2008-04-12 - たばさの を含むブックマーク

bochsでmona0.3.0alpha7 cuiまで。..appsに物なし。

 bayguiという案内はまぎらわしい?FD版に入るわけないかと気付くまで暫くかかる。

bochsでmona0.3.0alpha8 一瞬で消える

bochsでmona0.3.0alpha9

Reading MONITOR.BIN

memory map error

bochsでmona0.3.0alpha6_1 cuiまで。..appsにhello.ex5

qemuでmona0.3.0alpha5,baygui 動いた。メインメニュー日本語 戸惑うのでは。

qemuでmona0.3.0alpha9,すぐにGUI,shell,scm? 画面はきれい。

>(+ 4 5) =>9

>(call-process "/apps/hello.ex5")

hello, world

0

>(exit) =>scheduler error

(よくわからないタイミングで部分的cui画面に戻ってしまう。)

pointer

| pointer - たばさの を含むブックマーク はてなブックマーク - pointer - たばさの

http://rubyist.g.hatena.ne.jp/hatecha/20080402/p1

実際はちゃんと管理されててシステム領域を上書きしたりはしないだろう*1と思ってテスト実行するんだけど、しばらくジジジーとハードディスクにアクセスしてからエラーになるあいだ実際のところ一体何をやってるのかちょっと知りたい。知ったところでなんだけれど。ポインタの指してるのが無効なアドレスならただちにシステムに制御を返してエラーに出来てもいいような気がするがそうは見えない。よく火を噴いてもおかしくないなどというが本当ならもう「火を噴くウィルス」なんかが出回ってもおかしくないってことじゃないだろうか、でも実際はそういう話は聞かないよな。

トラックバック - http://rubyist.g.hatena.ne.jp/hatecha/20080412

04/08(火) 2008

MonaOS

| MonaOS - たばさの を含むブックマーク はてなブックマーク - MonaOS - たばさの

0.3.0alpfa9,CDに焼いたがエラー。

なので一番古いimgをisoに変換したものと0.2.1などは動いた。0.3.0alpha9もqemu版は動く。


MonaOS - Free Operating System

no title

起動FDイメージをISOイメージに変換するプログラム



betaじゃないので訂正

トラックバック - http://rubyist.g.hatena.ne.jp/hatecha/20080408

04/06(日) 2008

timeoutする

| timeoutする - たばさの を含むブックマーク はてなブックマーク - timeoutする - たばさの

http://golf.shinh.org/p.rb?Print+out+a+lot+_56K+BEWARE_

no title

cat(sprintf("%d",0:99999))
cat(paste(0:99999))

> paste
function (..., sep = " ", collapse = NULL)
{
    args <- list(...)
    if (length(args) == 0)
        if (length(collapse) == 0)
            character(0)
        else ""
    else {
        for (i in seq_along(args)) args[[i]] <- as.character(args[[i]])
        .Internal(paste(args, sep, collapse))
    }
}
<environment: namespace:base>
>

あ。ちゃんと色付いてるぞ。はてな。

トラックバック - http://rubyist.g.hatena.ne.jp/hatecha/20080406

04/02(水) 2008

チャレンジャーだな

| チャレンジャーだな - たばさの を含むブックマーク はてなブックマーク - チャレンジャーだな - たばさの

C/C++のポインタの機能--配列との関係 - builder by ZDNet Japan

まだ続けるらしい。やめたほうがいいと思うなあ。使ってても難しいのに。

でも連載始めてだいぶ経つようだから入門書を読む時間も充分あるんだし同情はできない。

#include <stdio.h>

void pr(char *s)
{
    printf( "%c\n", *s );  /* 1byte目 */
    if(strlen(s)>1) printf( "%c\n", *(s + 1) );  /* 2byte目 */
    printf( "%s\n", s );          /* \0まで出力される */
}

void main()
{
    char h[][6] = {"Hello","bad","good","ok?","!"};
    char *s = h;
    int i;
    for(i=0;i<5;i++){
        pr(s);
        s+=6;
    }
    s=h;
    pr(s);
    for(i=0;i<5*6;i++){
        if(*(s+i)!=0) printf("%c  ",*(s+i));
        else printf("   ");
    }
    puts("");
    for(i=0;i<5*6;i++){
        printf("%02x ",*(s+i));
    }
    puts("");
    for(i=0;i<5*6;i++){
        if(*(s+i)!=0) printf("(%s)\n",s+i);
        else puts("not string");
    }
}

隙間は不定かな?


C,C++は使ってると「勉強しないとなあ」と思うし、rubyなど(ポインタのないもの)は「多少変なことしてもMatzがなんとかしてくれてそう」(メモリーリークのようなのはなさそう)と思ってしまうのだ。

f:id:hatecha:20080402184343j:image

よく分からない絵ですが、いつものことです。

*c

| *c - たばさの を含むブックマーク はてなブックマーク - *c - たばさの

こういう実装にしてしまえばいいんだよな。int *n;で、初期化しない場合は安全な領域が自動的に確保されます。それはCではないな。

そうか。「*C」だ。



いつものごとく、しばらくしたらあまり面白い思いつきでもないなと思った。

でも慣れるまでは型宣言なしのrubyも違和感あったし。最近はcも思わず宣言なしで書いてしまう。

トラックバック - http://rubyist.g.hatena.ne.jp/hatecha/20080402

04/01(火) 2008

続き:ポインタでテスト

| 続き:ポインタでテスト - たばさの を含むブックマーク はてなブックマーク - 続き:ポインタでテスト - たばさの

ねたで話したら「んーでもコンパイルは通るでしょ」といわれて即答できず。あえてそんな使いかたしたこともないし。(当然使い始めはミスしたはずだが忘れた)


ということでやってみる。最初のサンプルで。*1

最初の魚拓ではstdio.hも隠れているがソースをみるとちゃんとある。

    #include <stdio.h>

    int main( void ) {
      int *n;
      *n = 5;   /* ポインタ変数nに値5を代入 */
      printf( "%d\n", *n );  /* ポインタ変数nが持つ値(5)の出力 */
      return 0;
    }

オプションなしではコンパイルエラーでなかった。警告オプションをつける。

>bcc32 -w pointer.c

Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland

pointer.c:

警告 W8013 pointer.c 5: 'n' は、おそらく値が代入される前に使われている(関数 main

)

Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland

>

そうそう。こうでなくちゃ。

一応実行。

問題が発生したため、pointer.exe を終了します。 ご不便をおかけして申し訳ありません。


*n=5;のところをn=5;にしてみる。

    #include <stdio.h>

    int main( void ) {
      int *n;
      n = 5;   /* ポインタ変数nに値5を代入 */
      printf( "%d\n", *n );  /* ポインタ変数nが持つ値(5)の出力 */
      return 0;
    }

>bcc32 -w pointer.c

Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland

pointer.c:

警告 W8069 pointer.c 5: 移植性のないポインタ変換(関数 main )

Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland

実行。

問題が発生したため、pointer.exe を終了します。 ご不便をおかけして申し訳ありません。


printf( "%d\n", *n );もprintf( "%d\n", n );にしてみる。

    #include <stdio.h>

    int main( void ) {
      int *n;
      n = 5;   /* ポインタ変数nに値5を代入 */
      printf( "%d\n", n );  /* ポインタ変数nが持つ値(5)の出力 */
      return 0;
    }

d:\p\borlandc>bcc32 -w pointer.c

Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland

pointer.c:

警告 W8069 pointer.c 5: 移植性のないポインタ変換(関数 main )

Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland

実行。

>pointer

5

>

動いたよ!でも真似しなくていいよ。


いろいろ。

    #include <stdio.h>

    int main( void ) {
      int *n;
      char *p;
      int m=12;
      char c='q';
      printf( "A: %d\t%d\n", n ,p); 
      n=&m;
      p=&c;
      printf( "B: %d\t%d\n", n ,p);
      printf( "C: %d\t%c\n", *n ,*p);

      return 0;
    }

実行

>pointer

A: 2147348480 4235448

B: 1245064 1245063

C: 12 q

>


レンタルサーバの

gcc (GCC) 3.4.6 [FreeBSD] 20060305

でやったら

A: 1 16

B: -1077942164 -1077942165

C: 12 q

えーと。混乱するだけかね。

トラックバック - http://rubyist.g.hatena.ne.jp/hatecha/20080401
カレンダー
<< 2008/04 >>
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
archive Error : RSSが取得できませんでした。