カテゴリー「MyMiniCity」の19件の記事

2009.07.24

謎の数字 2147483647

淡々とクリックだけしていたMyMiniCityですが(謎)今日昼頃からずっとエラーが・・・


Technical description
INSERT INTO CityEvent (date,type,cityId) VALUES ('2009-07-24 16:29:42', 'birth', 208444) Duplicate entry '2147483647' for key 1
2147483647ですか~
これってsigned int32の上限値ですね(^^;
問題としてはコレと同様変数の最大値でのエラー。

元のINSERT文には入ってないから、DBのauto incrementっぽい。
単にエラーを止めるだけなら、DBのテーブル定義を換えれば済む話だけど、プログラムの中でこのkey値を直接使ってる所があると、その辺の確認に時間がかかるかもしれない(単にORDER BYとかで指定しているだけで、値自体は使ってなければ問題ない)
まぁ、テーブル定義を換えるだけと言っても、これだけデータが入ってると、結構時間がかかると思いますが。

復旧はいつでしょうかねぇ?(^^;

# ってか、こういうベアなエラー文(謎)を見せるのはセキュリティ的にどうよ?って気も・・・

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

2008.12.02

MyMiniCity的業務連絡

MyMiniCityのブログパーツを使って下さってる方への業務連絡。

昨日(12/1)から、MyMiniCityのサーバがメンテ中のようです。
で、メンテの間、ちょっと予期せぬ形(^^;のレスポンスが返って来てしまったため、変な表示(人口や町の名前他が空欄で、人口が1の時のイメージになっている)が出てしまう状況になっていました。

とりあえず、昨日早朝(12/1日の朝)に取ったバックアップから暫定的にデータを戻しているため、数値(人口とか収入とか順位とか)は古いものになっているけど、一応それらしい(^^;表示にはなっているかと・・・
まぁ、それらしく表示されてても、結局MyMiniCityのサーバがメンテしてるんじゃアクセスできないんですが、お使い頂いている方のサイトに変なのが表示されてしまうという事態だけは避けられるかな?という事で・・・

なお、MyMiniCityのサーバが復旧すれば、これまで通り最新の状況に更新されるハズです。

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

2008.03.03

ぺたぺた市に・・・

ぺたぺた市に、ヘリポート付きビルが~っ!
ヘリポート付きビル

# でも順位は降下中 orz

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

2008.02.26

MyMiniCityのサーバが落ちてたっぽい

今日は昼頃から夕方近くまでMyMiniCityのサーバがダウンしてたっぽい。

というか、裏で動いてるDBサーバへの接続が輻輳してて、httpサーバは接続するんだけどそこからタイムアウトまで滞留して、httpサーバのプロセス数制限を超えて接続不可という感じになってたっぽい。

という事で、ブログパーツを提供してるサーバも大変な事になってたりした(^^;
XMLを取りに行くと、接続だけしてその後音沙汰がないもんだから、ず~っと待ってるプロセスがガンガン増えて行って、Apacheで設定してるプロセス数上限まで達して後はつながらない・・・みたいな。
最初から接続もしてくれなければ、さっさとタイムアウトするんですがねぇ。

仕方ないので接続後のタイムアウトを30秒ぐらいに設定してみた。
まぁ、ブログパーツなんて30秒以上も待ってまで正確な表示をするぐらいなら、早めにアキラメてそれっぽい(^^;表示をした方がいいんじゃないかな?という事で。
ちなみに、タイムアウトした場合には、前回取得したxmlの情報を元に表示されます。

と、修正はしたんだけど、MyMiniCity側のサーバもだんだん回復してるっぽいなぁ。
まだタマにタイムアウトが出てたりするようですが。

ま、それはさておき、ぺたぺた市順位落ちまくりorz

【追記】
人口が1000人超えても街は変り映えしないなぁと思ってたんですが、1200人を超えた所で大きなビルがまた建ったv(^^;
ありがとうございます>クリックしてくださった皆様

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

2008.02.12

ぺたぺた市の人口が1000人に!

ぺたぺた市の人口が1000人に!

なったけど、街の様子はあんまり変わらない(^^;
/comも選択できるようになったけど、とりあえずVisit!では/comはナシの方向で・・・

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

2008.02.07

サーバがコケたorz

業務連絡(違)

昨日(2/6)の夜11:30頃から今日(2/7)の0:45頃までサーバがブッコケてました。
ブログパーツご利用の方、ゴメンナサイ

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

2008.01.30

続・工業か商業か?

昨日の続き・・・

で、雇用を確保するために工業を発展させるのか商業を発展させるべきかというのは、まぁ人それぞれなんだろうなぁという事で、オプションを追加してみました。

パラメータとして「emp=20」とかすると、Unemploymentの解消に20%の割合でcomが、80%の割合でindが選ばれるようになります。
「emp=com」とすれば常にcomが(「emp=100」と同じ)、「emp=ind」とすれば常にindが(「emp=0」と同じ)選ばれます。
もちろん、人口が1000人未満の場合は常にindです。
デフォルトは常にind(「emp=0」と同じ)です。

という感じで指定してください。
イメージ表示タイプのmmc_img.cgiの場合は、sense_mmc.cgiの引数の方に付けて

という感じで。
既存のskin、img、comとの混在も可です。
順番は問いません。
フルに指定すると

こんな感じ。

empとcomは似てますが

emp→Unemploymentの解消時にindかcomか
com→問題が無い場合に人口を増やすかcomを増やすか

の指定になります。
何も指定しない場合は

emp→「emp=0」と同じで常にindでUnemploymentを解消
com→「com=0」と同じで常に人口増加

です。

「emp=100」「com=100」とすると、ひたすらcomが増えますが、人口が全然増えないので、人手不足倒産(謎)とか起きそうな予感(^^;

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

2008.01.29

工業か商業か?

ぺたぺた市も、もうすぐ800人で、そろそろcomができる1000人に近づいています。
Pollutionも含めて計算式がだいたいわかってきたので、この辺でこの先の方針とか考えてみた。

まず計算式のおさらいから

Unemployment = (Population - ind*3 - com - 50)/Population * 100
Transport = (tra*5 + 100)/Population * 100
Criminality = (Population - sec*4 - 300)/Population * 100
Pollution = (0.1 * population + 0.3 * com - 2 * env + ind - 200) / ind *100

【追記】
Criminalityの定数は500ではなく300でした。
以下の計算も併せて修正しています。

また、収入のRevenuesは

Revenues = Population*150 + ind*250 + com*400

となっているようです。

で、Unemployment=0%, Transport=100%, Criminality=0%, Pollution=0%となる事を前提にして、comが無い状態で式を変形してみると

ind = (Population - 50)/3
tra = (Population - 100)/5
sec = (Population - 300)/4
env = (Population + 10*ind - 2000)/20
   = (13*Population - 6500)/60

となり、comが選択できるPopulationが1000人の時の最適値は

ind = 317
tra = 180
sec = 175
env = 109

となり、合計1781クリック、収入は229,250€となります。
(人口流出などが無いと仮定)

ここからcomが選択できる訳ですが、comは収入の増加という面もありますが、Unemploymentも減少させ、逆にPollutionを増加させます。
Unemploymentの減少とPollutionの増加はindでも起きますが、その影響はindはcomの3倍あります。

ここではUnemploymentを減少させるために、indを使うのが良いか、comを使うのが良いかを考えてみます。
Unemploymentの解消を全てindで行い、問題がない場合は全て人口増加にした場合(要は全くcomを使わない場合)、4999クリック時点で

Population = 2607
Revenues = 604,300€
ind = 853
tra = 502
sec = 578
env = 457

となります。

逆にUnemploymentの解消を全てcomで行う場合、indは1000人時点の317固定となり

com = Population - 1001
env = (Population + 3*com + 1170)/20
   = (4*Population - 1833)/20

という計算式になって、同じく5000クリックまでを考えると

Population = 2215
Revenues = 897,100€
ind = 317
tra = 423
sec = 479
env = 352
com = 1214

となります。
Unemploymentの解消を全部comで行うと、人口は392人少なく、収入は292,800€多くなります。
人口増加を目的とするのか、収入増加を目的とするのかで方針を変える必要がありそうですね。

って、MyMiniCityの順位は人口で決まるので、人口を増加させるべきなのかなぁ?(^^;

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

2008.01.28

Pollutionの計算方法判明

Pollutionの計算が良くわかんないと書いてましたが、なんと~法則を見つけ出した人がいました!

Pollution = (0.1 * population + 0.3 * com - 2 * env + ind - 200) / ind *100

だそうだ。
traが入ってないのが意外だったなぁ。

早速、前に取得してたxmlのデータで検証してみましたが、ちゃんと全データで合致しました。

という事でブログパーツの振り分けもPollutionに対応してみました。
これで常に0%、100%、0%、0%を維持できる・・・かなぁ?(^^;

【追記】
sense_mmc.cgiの方、バグってました。スミマセン
修正しました。

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

2008.01.27

振り分け方法変更

MyMiniCityブログパーツを若干変更。
って見た目は変わってませんが(^^;

こことか大文字のMyMiniCityコミュ(謎)でbaikinjaさんが書かれている事などから
Unemployment = (Population - ind*3 - com - 50)/Population * 100
Transport = (tra*5 + 100)/Population * 100
Criminality = (Population - sec*4 - 300)/Population * 100
という関係が成り立つらしい。

【追記】
Criminalityの定数を500と書いていましたが、記事記述時のミスで300でした。
手元の検証は300でやってましたので修正しました。

とりあえず4000件ほどxmlを取得して検証してみましたが、ほぼ(^^;成り立ってるようです。
どの辺が「ほぼ(^^;」なのかというと、割り算した結果は四捨五入されているようなんですが、一部合わない場合がある。
たとえば、人口80人でindが0の場合、30/80*100で37.5。
四捨五入して38にならなきゃいけないハズなのに、37になっている。
という感じ。
他のTransportやCriminalityでも数件こういう誤差がありました。

という事で、これまで、Unemployment、Transport、Criminality、Pollutionが正常(?)な場合には、comに合わせて人口増加、またはcomのどちらかとしていましたが、Populationを増やした結果、UnemploymentやTransport、Criminalityが悪化する場合は、先にind、tra、secを増やすようにしてみました。
Unemploymentなどが、たとえ1%でも人が出て行く場合もありますから・・・

Pollutionはかなり難解(^^;で、主にはindが効いてるようですが、traやcom、Populationも悪化要因になるっぽい。
で、まだ良くわからないので、Pollutionだけは悪化したら改善という、これまで通りの対応になります。

この変更で、全てのクリックがmmc.cgi、またはsense_mmc.cgi経由であれば、Unemployment、Transport、Criminalityは常に0%、100%、0%になる・・・ハズ
って、他のリンクから来る場合もあるから、常にとはなりませんが(^^;

0%、100%、0%、0%になっててもindやtra、sec付きリンクになってるカモしれませんが、バグってる訳ではありません(^^;ので安心(謎)してください。

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