プログラミング
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]
と書くだけ。
2011年09月22日
Visual C++ 2010 のプロパティ設定など
プロパティをいちいちプロジェクトごとに設定するの面倒だと思っていたら、共通設定らしきものがあったのでメモ。
[表示] > [プロパティ マネージャ]
これでプロパティマネージャの画面が開く。
そして、Debug | Win32 か Release | Win32 の下にあるMicrosoft.Cpp.Win32.userをクリック。
ここが共通設定らしく、新しくプロジェクトをつくったときにここの設定に基づいてプロパティが生成される様子。
ただし、ここで設定するとDebugとReleaseで同じ設定しか反映されないので、個々に設定したい時はそれぞれのプロジェクトで設定しなおす必要があるみたい…
もし方法あるなら誰か教えてー
2011年09月03日
本買ったよ
結構前から買おうと思っていた本をついに手に入れました。
ゲームコーディング・コンプリート 一流になるためのゲームプログラミング
著者:Mike Mcshaffry
ソフトバンククリエイティブ(2010-03-31)
販売元:Amazon.co.jp
クチコミを見る
ゲームプログラミングの一応入門書というので、目次を読むとゲームのあらゆる要素を網羅しているというような感じを受ける。まぁ、まだ読んでないからなんとも言えないけど;;
幅広く扱ってる分、読むの時間がかかりそうかなー
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などがインストールできる
2011年02月18日
最近読んでる本など
最近まったく更新していなかったので戯れに。
ゲーム開発者のためのAI入門
ゲーム開発者のためのAI入門
著者:David M. Bourg
オライリージャパン(2005-01-12)
販売元:Amazon.co.jp
クチコミを見る
こんな本を今読んでますよっと。
ちょっと前に買って以来積んでいたけど、暇なときに読み進めようかと思って読み始めてみた。
まだ読んだの20ページくらいだけどこれはすごい。1章はAIがどういうものかみたいな話で、2章は具体的に追跡とか逃避のアルゴリズムの話。ここまで読んだだけでもけっこう中身が濃くて買ってよかったと思える。
また暇なときに近況報告でも。
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
あえなくちゃれんじしっぱい
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;
}
};