i_kumagoroの日記

2006-05-18

CGIデータベース?

question:1147866812

フリーソフト系データベース【XOOPS Cube(ズープス キューブ)】はPHPおよびMySQLを利用していますが、CGI(perl)で構築したデータベースと利点・欠点はどのように違うものなのでしょうか。

XOOPSはデータベースではない。CGI=perlとは限らない。それはともかく

http://q.hatena.ne.jp/1147866812/11358/11374

PHP+MySQLデータベースとCGIデータベースの一般的な比較と取って頂いていいです。

一般論で言えば規模が大きくなればMySQLを利用している方がパフォーマンス的に間違いなく有利。CGIのみでデータベースまで構築する事の利点はデータベースソフトの導入が不要、データベースソフトの利用できないレンタルHPスペースでも利用できる事だろうか。

本当にそんな事が知りたいのか疑問なので回答はしない。

bonlifebonlife 2006/05/18 20:31 フォローしようと思ったのですが、全く伝わりませんでした…orz

2006-05-15

抽選期間中の懸賞における当選者発表について

no title


5月2日23時以降に応募された方を対象に、改めて抽選した結果、当選された方は、以下のとおりです。

(最初の抽選が抽選時期以外は適切に行われたとしても)最初の抽選以降で2日の23時までに応募された方は無条件にはずれらしい。

ちなみに最初の当選発表のメールが来たのは2日の22時40分くらい。Message-ID(<20060502133624.***********@*********.rakuten.co.jp>)からは13時36分に作成されていそう。ここから数えた場合は約9時間の空白が存在する事になる。

ついでにサイトのページからはいけなくなっている掲示板はこっち

2006-05-08

例外付き組み合わせ

question:1146831031

総当たりで解を出すプログラム

NUM_ALLは母集団に含まれる要素の数。

数を変更する場合は、combine_tableをそれに見合う大きさに書き直す必要がある。

(combine_tableの対角線上とそれより左下の領域は使用しないので全て0でよい。)

NUM_SELECTは選び出す数。2以上を指定すること。

1の場合は母集団の要素の数に等しいので計算する必要はない。

combine_tableは使えない組み合わせのところを1にする。

#include <stdio.h>
#include <stdlib.h>

#define NUM_ALL 8
#define NUM_SELECT 5

const char combine_table[NUM_ALL][NUM_ALL]={
  {0, 0, 0, 0, 1, 0, 0, 0},
  {0, 0, 0, 0, 0, 1, 0, 0},
  {0, 0, 0, 0, 0, 0, 0, 0},
  {0, 0, 0, 0, 1, 0, 1, 0},
  {0, 0, 0, 0, 0, 0, 0, 0},
  {0, 0, 0, 0, 0, 0, 0, 0},
  {0, 0, 0, 0, 0, 0, 0, 0},
  {0, 0, 0, 0, 0, 0, 0, 0}
};

int main(void){

  int depth, i, j;
  char table[NUM_ALL][NUM_SELECT], choice[NUM_SELECT];
  int num;
  int to_next;

  choice[0]=0;
  choice[1]=1;
  depth=0;
  num=0;

  while(choice[0] <= NUM_ALL - NUM_SELECT + 1){
    
    if (depth!=0)
      for(i=choice[depth]+1; i< NUM_ALL; i++)
        table[i][depth] = combine_table[choice[depth] ][i] + table[i][depth-1];
    else
      for(i=choice[depth]+1; i< NUM_ALL; i++)
        table[i][depth] = combine_table[choice[depth] ][i];
        
    to_next=1;

    for(i=choice[depth+1]; i <= (NUM_ALL - NUM_SELECT + depth + 1); i++){

      printf("Check");
      for(j=0; j<=depth ; j++){
        printf(" %d", choice[j]);
      }
      printf(" %d\n", i);

      if(table[i][depth]==0){
        if(depth == NUM_SELECT -1 -1){
          
          printf("Choices are");
          choice[depth+1]=i;
          for(j=0; j<NUM_SELECT; j++)
            printf(" %d", choice[j]);
          printf("\n");

          num +=1;
        }
        else{
          depth++;
          choice[depth]=i;
          choice[depth+1]=i+1;
          to_next=0;
          break;
        }
      }
    }

    if(to_next!=0){
      choice[depth]+=1;
      if(depth>0)
        depth-=1;
      else
        choice[1]=choice[0]+1;
    }
  }

  printf("%d pattern(s).\n", num);
  return 0;
}

0-7の8個の数字から5個の組み合わせを探した時(上記のソースのまま)の出力。

不可能な組み合わせは0-4, 1-5, 3-4, 3-6。

Check 0 1
Check 0 1 2
Check 0 1 2 3
Check 0 1 2 3 4
Check 0 1 2 3 5
Check 0 1 2 3 6
Check 0 1 2 3 7
Choices are 0 1 2 3 7
Check 0 1 2 4
Check 0 1 2 5
Check 0 1 2 6
Check 0 1 2 6 7
Choices are 0 1 2 6 7
Check 0 1 3
Check 0 1 3 4
Check 0 1 3 5
Check 0 1 3 6
Check 0 1 4
Check 0 1 5
Check 0 2
Check 0 2 3
Check 0 2 3 4
Check 0 2 3 5
Check 0 2 3 5 6
Check 0 2 3 5 7
Choices are 0 2 3 5 7
Check 0 2 3 6
Check 0 2 4
Check 0 2 5
Check 0 2 5 6
Check 0 2 5 6 7
Choices are 0 2 5 6 7
Check 0 3
Check 0 3 4
Check 0 3 5
Check 0 3 5 6
Check 0 4
Check 1 2
Check 1 2 3
Check 1 2 3 4
Check 1 2 3 5
Check 1 2 3 6
Check 1 2 4
Check 1 2 4 5
Check 1 2 4 6
Check 1 2 4 6 7
Choices are 1 2 4 6 7
Check 1 2 5
Check 1 3
Check 1 3 4
Check 1 3 5
Check 1 4
Check 1 4 5
Check 2 3
Check 2 3 4
Check 2 3 5
Check 2 3 5 6
Check 2 4
Check 2 4 5
Check 2 4 5 6
Check 2 4 5 6 7
Choices are 2 4 5 6 7
Check 3 4
6 pattern(s).

エンバグしていませんように。

reosuckerreosucker 2006/05/13 21:53 ポイントちゃんとお支払いしたいので
http://q.hatena.ne.jp/1147524429
に書き込みお願い致します。
プログラムの方は月曜日に試す予定です。

2006-04-25

本筋とは関係ないが

高木浩光@自宅の日記 - Winnyネットワーク崩壊への最終シナリオ, Winnyを規制するISPは、Winnyトラフィック中の無駄割合を調査するべき

まっとうなソフトウェア作者なら、ネットワーク回線を有益に使うためのトラフィック調整を考えて作るだろう。Winnyは、Winnyネットワークにとってだけ都合がよいように作られた利己的プログラムである。全体のトラフィック制御をせず、最大限使い尽くし、基幹ネットワークのボトルネックによって結果的にトラフィック制御されるという、傍若無人なソフトウェアだろう。

全体のトラフィックというのがWinnyネットワーク全体という意味でなければWinnyは自分自身の全体のトラフィックは制御できる。制御しないようにもすぐできるけど。

更に話はそれるが、個人的にはそんな傍若無人なソフトがいても適切に帯域を調整するのが管理者(ISP)の仕事だと思う。

2006-03-12

無線LANで複数箇所に同時接続

question:1142029070

無線LAN内蔵のPCで複数の子機に同時アクセスできないかというお話。

いわゆる無線LAN付ブロードバンドルータの中にはPC用の無線LANカードを挿して親機となっているものもあり、全てのカードがそうかは不明だが、カード自体には親機となる機能は備わっている。

ゆえに、PCをアクセスポイント化してしまえばできなくはない。Windowsでそれをやった人の話はほとんど聞かないがゼロではない。ただし、あまりにも本末転倒過ぎるので回答では述べず。

可能不可能とお勧めできるかはまた別の話という事で。