プログラミング

    2011年10月04日

    さくらでPukiWikiのBASIC認証できないなの

    さくらインターネットのレンタルサーバーでwikiつくろうと思ったのに、PHPがCGI版しか入っていないのでpukiwikiのBASIC認証が使えない。

    なんでつかえないの。

    とりあえず調べるとこんな記事が見つかった。

    http://www.hitarts.com/blog/archives/15

    なぜモジュール版だと使えるのにCGI版だと使えないのか。PHPのHTTP認証では$_SERVER[’PHP_AUTH_USER’]と$_SERVER[’PHP_AUTH_PW’]という環境変数を参照して認証を行なっているらしい。しかし、CGI版のPHPではこれらの環境変数が参照できない仕様になっているとのこと。

    そして$_SERVER['HTTP_AUTHORIZATION']を参照できるようにすれば$_SERVER[’PHP_AUTH_USER’]と$_SERVER[’PHP_AUTH_PW’]は内部で求めてくれるらしいのでmod_rewriteする。

    .htaccessに

    RewriteEngine On
    RewriteCond %{HTTP:Authorization} ^(.*)
    RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
    

    と書くだけ。



    tanitanin at 17:56|PermalinkComments(0)TrackBack(0)

    2011年09月22日

    Visual C++ 2010 のプロパティ設定など

    プロパティをいちいちプロジェクトごとに設定するの面倒だと思っていたら、共通設定らしきものがあったのでメモ。

    [表示] > [プロパティ マネージャ]

    これでプロパティマネージャの画面が開く。

    そして、Debug | Win32 か Release | Win32 の下にあるMicrosoft.Cpp.Win32.userをクリック。

    ここが共通設定らしく、新しくプロジェクトをつくったときにここの設定に基づいてプロパティが生成される様子。

    ただし、ここで設定するとDebugとReleaseで同じ設定しか反映されないので、個々に設定したい時はそれぞれのプロジェクトで設定しなおす必要があるみたい…

    もし方法あるなら誰か教えてー



    tanitanin at 04:09|PermalinkComments(0)TrackBack(0)

    2011年09月03日

    本買ったよ

    結構前から買おうと思っていた本をついに手に入れました。

    ゲームコーディング・コンプリート 一流になるためのゲームプログラミングゲームコーディング・コンプリート 一流になるためのゲームプログラミング
    著者:Mike Mcshaffry
    ソフトバンククリエイティブ(2010-03-31)
    販売元:Amazon.co.jp
    クチコミを見る



    ゲームプログラミングの一応入門書というので、目次を読むとゲームのあらゆる要素を網羅しているというような感じを受ける。まぁ、まだ読んでないからなんとも言えないけど;;

    幅広く扱ってる分、読むの時間がかかりそうかなー



    tanitanin at 01:12|PermalinkComments(0)TrackBack(0)

    2011年08月09日

    さくらレンタルサーバーにいろいろなものをインストールする

    最近まったく更新していなかったのですが、備忘録など。

    さくらのレンタルサーバーにrubyまわりのもの(gemとかrailsとか)やMeCabを入れてみたので

    その流れをメモしとく。

    まずはインストールするためのフォルダをつくっとく

    /home/*** > mkdir local

    あとついでにソースを置く所をつくっといてそこにwgetしたファイルやらをつっこむ

    /home/***/local > mkdir tmp

    /home/***/local > cd src

    あとはソースを取ってくる

    Rubyはhttp://www.ruby-lang.org/ja/downloads/(2011.8.9現在1.9.2-p290が最新)

    gemはhttp://rubyforge.org/frs/?group_id=126&release_id=42796(2011.8.9現在1.8.7が最新)

    /home/***/local/src > wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p290.tar.gz

    /home/***/local/src > wget http://rubyforge.org/frs/download.php/75229/rubygems-1.8.7.tgz

    ソースを落としてきたら、それぞれインストールする。

    1.Rubyのインストール

    /home/***/local/src > tar zxvf ruby-1.9.2-p290.tar.gz

    /home/***/local/src > cd ruby-1.9.2-p290

    /home/***/local/src/ruby-1.9.2-p290 >./configure --prefix=$HOME/local

    /home/***/local/src/ruby-1.9.2-p290 > make

    /home/***/local/src/ruby-1.9.2-p290 > make install

    2.rubygemsのインストール

    /home/***/local/src > tar zxvf rubygems-1.8.7.tgz

    /home/***/local/src > cd rubygems-1.8.7

    /home/***/local/src/rubygems-1.8.7 > ruby setup.rb

    3.パス等の設定

    ~/.cshrcにおいて

    pathの/sbinの前に $HOME/local/bin と $HOME/local/lib/ruby/gem/bin を追加する

    環境変数

    setenv RUBYLIB $HOME/local/lib/ruby/site_ruby/1.9:$HOME/local/lib/ruby

    setenv GEM_HOME $HOME/local/lib/ruby/gems

    を追加

    ここまででrubyとgemがインストールできたので

    > gem install rails

    > gem install twitter

    でrailsやtwitter gemなどがインストールできる



    tanitanin at 02:33|PermalinkComments(0)TrackBack(0)

    2011年02月18日

    最近読んでる本など

    最近まったく更新していなかったので戯れに。


    ゲーム開発者のためのAI入門

    ゲーム開発者のためのAI入門ゲーム開発者のためのAI入門
    著者:David M. Bourg
    オライリージャパン(2005-01-12)
    販売元:Amazon.co.jp
    クチコミを見る

    こんな本を今読んでますよっと。

    ちょっと前に買って以来積んでいたけど、暇なときに読み進めようかと思って読み始めてみた。

    まだ読んだの20ページくらいだけどこれはすごい。1章はAIがどういうものかみたいな話で、2章は具体的に追跡とか逃避のアルゴリズムの話。ここまで読んだだけでもけっこう中身が濃くて買ってよかったと思える。

    また暇なときに近況報告でも。



    tanitanin at 02:10|PermalinkComments(0)TrackBack(0)

    2011年02月07日

    SRM496Div2

    やはり課題は速さか。。。

    250p AnagramFree ○

    文字列がいくつか与えられ、アナグラムになっていない組がいくつあるか求める問題。

    class AnagramFree {
    public:
        int getMaximumSubset(vector <string> S) {
            if(S.size()<2) return S.size();
            int res=1;
            for(int i=0;i<S.size();++i){
                stable_sort(S[i].begin(),S[i].end());
            }
            stable_sort(S.begin(),S.end());
            cout<<S[0]<<endl;
            string tmp = S[0];
            for(int i=1;i<S.size();++i){
                if(S[i]!=tmp){
                    res++;
                    tmp = S[i];
                }
            }
            return res;
        }
    };
    

    500p ColoredStrokes ○

    横に赤、縦に青を塗ることができ、重なったところは緑になるというルールで絵を書いていき、与えられた絵を何回で塗ることができるかを求める問題。

    class ColoredStrokes {
    public:
        int getLeast(vector <string> picture) {
            int res=0;
            int r = picture.size();
            int c = picture[0].size();
            for(int i=0;i<r;++i){
                int j=0;
                int a=0;
                bool f;
                while(j<c){
                    cout<<"i:"<<i<<"j:"<<j<<endl;
                    if(picture[i][j]=='R'||picture[i][j]=='G') f=true;
                    else f=false;
                    while(picture[i][j]=='R'||picture[i][j]=='G'){
                        j++;
                        if(j>=c) break;
                    }
                    if(f) a++;
                    cout<<"a:"<<a;
                    f=false;
                    j++;
                    cout<<endl;
                }
                res+=a;
            }
            for(int i=0;i<c;++i){
                int j=0;
                int a=0;
                bool f;
                while(j<r){
                    cout<<"j:"<<j<<"i:"<<i<<endl;
                    if(picture[j][i]=='B'||picture[j][i]=='G') f=true;
                    else f=false;
                    while(picture[j][i]=='B'||picture[j][i]=='G'){
                        j++;
                        if(j>=r) break;
                    }
                    if(f) a++;
                    cout<<"a"<<a;
                    f=false;
                    j++;
                    cout<<endl;
                }
                res+=a;
            }
            
            return res;
        }
    };
    

    1000p PalindromfulString ×


    Challenge Phase -25p

    あえなくちゃれんじしっぱい



    tanitanin at 00:00|PermalinkComments(0)TrackBack(0)

    2010年12月21日

    SRM491 Div2

    撃墜のおかげでレートがあがったorz

    250p OneDigitDifference ○

    数字がひとつ違いで一番小さいものを求める問題。0のときは1でそれ以外は一番上の桁を0にしたものになるというもの。

    #include <cmath>
    #include <iostream>
    #include <string>
    #include <vector>
    using namespace std;
    class OneDigitDifference {
    public:
        int getSmallest(int N) {
            if(N==0) return 1;
            int res=0;
            int a=N;int b=0;
            while(N>10){
                b++;
                N/=10;
            }
            res=a-N*(int)pow(10.0,b);
            return res;
        }
    };
    

    500p FoxMakingDiceEasy ×

    ひとつの目が1からNで両面の和がK以上のさいころが何通りできるか求める問題。数学ゲー

    #include <iostream>
    #include <string>
    #include <vector>
    using namespace std;
    class FoxMakingDiceEasy {
    public:
        int theCount(int N, int K) {
            int res=0;
            for(int a=1;a<=N-5;++a){
                for(int b=N;b-a>=5;--b){
                    int t=(b-a-1)/2;
                    if(a+b>=K) res+=t*(t-1);
                }
            }
            return res;
        }
    };
    

    1000p BottlesOnShelf ×

    Challenge Phase 50p



    tanitanin at 00:00|PermalinkComments(0)TrackBack(0)