http://www.amazon.co.jp/SANDISK-%E3%83%95%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%E3%82%AB%E3%83%BC%E3%83%89-SDSDX-032G-X46-45MB-s/dp/B004Q3C98S/ref=sr_1_5?ie=UTF8&qid=1351442092&sr=8-5
3DS用に買ったのだけれど悪くない感じ。
MH3Gのセーブロードに限って言えばこんな感じ
セーブ書き込み時間
純正品:11.8sec
これ:2.9sec
(MH3Gwikiより)
体感できるっていうレベルじゃないくらい早くなってる。SSDとHDを換装したときを連想するレベルである。
すごくお買い得に見えるけど、
http://www.amazon.co.jp/Sandisk-Extreme-Class10-UHS-1%E5%AF%BE%E5%BF%9C%E4%B8%A6%E8%A1%8C%E8%BC%B8%E5%85%A5%E5%93%81-%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E5%93%81/dp/B005IF6XN0/ref=sr_1_4?ie=UTF8&qid=1351442991&sr=8-4
こいつと中身が一緒(パッケージが違うだけ)なので、値段だけ見ると安くなってるわーと思うけれど実はそうでもないのでご注意を。
といっても、店頭だと1万とかするところもあるので、それを考えれば十分安いですが
現状のSDカードでは容量、速度ともに最高峰ですので、用途があるのであれば買って損はないかと思います。
3DS用に買ったのだけれど悪くない感じ。
MH3Gのセーブロードに限って言えばこんな感じ
セーブ書き込み時間
純正品:11.8sec
これ:2.9sec
(MH3Gwikiより)
体感できるっていうレベルじゃないくらい早くなってる。SSDとHDを換装したときを連想するレベルである。
すごくお買い得に見えるけど、
http://www.amazon.co.jp/Sandisk-Extreme-Class10-UHS-1%E5%AF%BE%E5%BF%9C%E4%B8%A6%E8%A1%8C%E8%BC%B8%E5%85%A5%E5%93%81-%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E5%93%81/dp/B005IF6XN0/ref=sr_1_4?ie=UTF8&qid=1351442991&sr=8-4
こいつと中身が一緒(パッケージが違うだけ)なので、値段だけ見ると安くなってるわーと思うけれど実はそうでもないのでご注意を。
といっても、店頭だと1万とかするところもあるので、それを考えれば十分安いですが
現状のSDカードでは容量、速度ともに最高峰ですので、用途があるのであれば買って損はないかと思います。
色々あってvitaと3DS両方買った
3DSやばいね、これ
5分くらい3D画面みてたら、3D以外の視界がぼやけてきてちょうど乱視状態になった。
あらゆるものの輪郭がぼやけてにじんで見えるような感じ。ピントがあってないのとはまた違う感じ。
その症状はその後1時間くらい回復せず。
ちなみに俺は優先眼を意識的に切り替えることができたりするんで、そのせいかもわからん。切り替えようとすると、明らかに視界がゆがむ。
普段は右が優先なのだけど、左にしようとすると症状が酷くなった。
眼鏡タイプのもの、3D映画なんかは割と平気だったんだがなぁ、うーん
3DSの画面が近すぎるのがおそらく原因やね。3DS本体の視差を画面にも適用してしまってるが故に脳が混乱を覚えてるような感じがする。
結局3Dは封印することにした。慣れればなんとかなるんかもしれんけどね。
3DSやばいね、これ
5分くらい3D画面みてたら、3D以外の視界がぼやけてきてちょうど乱視状態になった。
あらゆるものの輪郭がぼやけてにじんで見えるような感じ。ピントがあってないのとはまた違う感じ。
その症状はその後1時間くらい回復せず。
ちなみに俺は優先眼を意識的に切り替えることができたりするんで、そのせいかもわからん。切り替えようとすると、明らかに視界がゆがむ。
普段は右が優先なのだけど、左にしようとすると症状が酷くなった。
眼鏡タイプのもの、3D映画なんかは割と平気だったんだがなぁ、うーん
3DSの画面が近すぎるのがおそらく原因やね。3DS本体の視差を画面にも適用してしまってるが故に脳が混乱を覚えてるような感じがする。
結局3Dは封印することにした。慣れればなんとかなるんかもしれんけどね。
メリットが見当たらない
2012年10月7日 日常なんでメニュー表撤去してしまうん?
どこにも書いてないメニューあるんだけど、なんなのこれ
いっそさ、昼間とか一律日替わりランチとかにしてしまえよ、ワンコインで
そしたら考える客すくなくなるよ
気軽に飲み物とかそういう注文がやりにくくなるのは勘弁してほしいな。
どこにも書いてないメニューあるんだけど、なんなのこれ
いっそさ、昼間とか一律日替わりランチとかにしてしまえよ、ワンコインで
そしたら考える客すくなくなるよ
気軽に飲み物とかそういう注文がやりにくくなるのは勘弁してほしいな。
以下、回想という名の昔話。
それは、中学生の時分だ。
中学校というのは、大体がそうであると思うけど、クラスというグループの中でさらに5人ほどの班というグループが決められている。
班は男女3:3、もしくは3:2で構成されていて、教室内の机の配置は班単位であり、授業、給食、掃除などなど、大体のことは班単位で行われている。
基本的には、班長が決められ(班長は委員会と同じレベルの役職扱い)、その班長がドラフト制でクラスメイトをピックする、というのが実際の流れである。
わりと問題児ぞろいの班だった。一番のワル男子Aと、ワルノリはするがやるときはやる生徒会所属の男子B、遅刻常習犯の俺、そして生徒会所属の副生徒会長の女子Cと、ハルヒで言う長門ポジションの無口系女子(友人と会話しているのを見たことがない)Dと班長の女子Eで構成されている。
ちなみに男子Aと副会長は体育会系、俺とBと班長どっちつかずで、Eは体育の授業も見学するようなキャラだった。
見てもらえれば一目瞭然であるが、クラスの下から3つと上から3つを集めたような班であり、実際回りもそういった認識であった。
で、問題は掃除時間中に発生した。
トイレ掃除だったのだが(当然、男子は男子トイレで、女子は女子トイレ)、男子グループは基本的にまじめではなく、この日もホースの水をぶっ掛けて遊んでいた。
で、掃除時間が終わりに近づいたころ、長門こと女子Cが男子グループが遅いので呼びに入ってきた。
しゃいでた俺らは、それに気がつかず、Aがホースで飛ばした水を俺とBがよけた先に長門がいた。
思いっきり直撃して、長門は直立不動。俺らもただならぬ気配を察して、声すらかけずらい状態であった。
「あ、その、すまん、手が滑った」
Aがなんだかよく分からない謝罪をするも、長門は無口で棒立ち。
で、10秒後、長門が無言の右手を握り締めて、壁にたたきつけた。
トイレの入り口、というのは得てして洗面台になっている。で、洗面台の人の肩口あたりの高さにあるのは、鏡である。
ピシっと音が鳴ったかと思うと、ガラスはがらがらと崩れ落ちた。
そっから先はまじ大変だった。長門は泣き出すし、俺らはどうしたらいいか分からず立ち尽くすばかり。で、騒動を聞きつけて、女子トイレから副生徒会長のと班長が来た。
副会長は、入ってきて状況を見るなり問答無用でホースを持っているAにビンタをぶちかます。続いて俺で、Bは何か言おうとしてるところを容赦なく叩いた。
班長のほうは、俺らにかまうことなく、長門のフォローに回っていた。ここらへんが粗暴な副会長とやさしい班長の性格の違いだろう。
よけることなく副会長のビンタを食らったのは、なにがなんやら分からず呆然としていたからだ。
それだけ長門の行動が衝撃的だった、ということだ。まぁ無口でおとなしいキャラだったから、宇宙的レベルで長門がガラスを素手で叩き割る、なんてことは思いもよらなかったから、仕方ないといえば仕方ないのかもしれない。
この件は長門のキャライメージが崩壊する、ということで、男子がふざけた挙句にガラスを割った、として始末された(この筋書きを考えたのは当然副会長さまである)
その後考えても、あのときの長門は別人だったのじゃないかと思う
なんか。ふと思い出してしまったので書いてみた。
以前にも書いたのかなぁ、記憶にないので、まぁ書いてないんだろう、たぶん、長いこと日記書いてると、何を書いたかなんでいちいち覚えてないしね。
ちなみにこれ、話を盛ってるわけでもなんでもなく、100%実話です。アニメやラノベにありそうな話ですね。
それは、中学生の時分だ。
中学校というのは、大体がそうであると思うけど、クラスというグループの中でさらに5人ほどの班というグループが決められている。
班は男女3:3、もしくは3:2で構成されていて、教室内の机の配置は班単位であり、授業、給食、掃除などなど、大体のことは班単位で行われている。
基本的には、班長が決められ(班長は委員会と同じレベルの役職扱い)、その班長がドラフト制でクラスメイトをピックする、というのが実際の流れである。
わりと問題児ぞろいの班だった。一番のワル男子Aと、ワルノリはするがやるときはやる生徒会所属の男子B、遅刻常習犯の俺、そして生徒会所属の副生徒会長の女子Cと、ハルヒで言う長門ポジションの無口系女子(友人と会話しているのを見たことがない)Dと班長の女子Eで構成されている。
ちなみに男子Aと副会長は体育会系、俺とBと班長どっちつかずで、Eは体育の授業も見学するようなキャラだった。
見てもらえれば一目瞭然であるが、クラスの下から3つと上から3つを集めたような班であり、実際回りもそういった認識であった。
で、問題は掃除時間中に発生した。
トイレ掃除だったのだが(当然、男子は男子トイレで、女子は女子トイレ)、男子グループは基本的にまじめではなく、この日もホースの水をぶっ掛けて遊んでいた。
で、掃除時間が終わりに近づいたころ、長門こと女子Cが男子グループが遅いので呼びに入ってきた。
しゃいでた俺らは、それに気がつかず、Aがホースで飛ばした水を俺とBがよけた先に長門がいた。
思いっきり直撃して、長門は直立不動。俺らもただならぬ気配を察して、声すらかけずらい状態であった。
「あ、その、すまん、手が滑った」
Aがなんだかよく分からない謝罪をするも、長門は無口で棒立ち。
で、10秒後、長門が無言の右手を握り締めて、壁にたたきつけた。
トイレの入り口、というのは得てして洗面台になっている。で、洗面台の人の肩口あたりの高さにあるのは、鏡である。
ピシっと音が鳴ったかと思うと、ガラスはがらがらと崩れ落ちた。
そっから先はまじ大変だった。長門は泣き出すし、俺らはどうしたらいいか分からず立ち尽くすばかり。で、騒動を聞きつけて、女子トイレから副生徒会長のと班長が来た。
副会長は、入ってきて状況を見るなり問答無用でホースを持っているAにビンタをぶちかます。続いて俺で、Bは何か言おうとしてるところを容赦なく叩いた。
班長のほうは、俺らにかまうことなく、長門のフォローに回っていた。ここらへんが粗暴な副会長とやさしい班長の性格の違いだろう。
よけることなく副会長のビンタを食らったのは、なにがなんやら分からず呆然としていたからだ。
それだけ長門の行動が衝撃的だった、ということだ。まぁ無口でおとなしいキャラだったから、宇宙的レベルで長門がガラスを素手で叩き割る、なんてことは思いもよらなかったから、仕方ないといえば仕方ないのかもしれない。
この件は長門のキャライメージが崩壊する、ということで、男子がふざけた挙句にガラスを割った、として始末された(この筋書きを考えたのは当然副会長さまである)
その後考えても、あのときの長門は別人だったのじゃないかと思う
なんか。ふと思い出してしまったので書いてみた。
以前にも書いたのかなぁ、記憶にないので、まぁ書いてないんだろう、たぶん、長いこと日記書いてると、何を書いたかなんでいちいち覚えてないしね。
ちなみにこれ、話を盛ってるわけでもなんでもなく、100%実話です。アニメやラノベにありそうな話ですね。
えいすーすとかいっちゃうやつwwwww
2012年9月28日 ゲーム コメント (1)なんだよwwwwそれwwwwww
アスースにきまってんだろwwww社名もアスースだしwwwwwww
え、公式、まじで?
うそだといってよASUS
アスースにきまってんだろwwww社名もアスースだしwwwwwww
え、公式、まじで?
うそだといってよASUS
C言語の愉快な標準関数たち
2012年9月23日 お仕事ちょっとC言語学んだことがある人向けの、ちょっとテクニカルなことができるようになる技術解説。
解説するにあたってひとつ面白い標準関数があるので、これを使って紹介したいと思う。
それはずばり、qsort。その名のとおり、ある配列に対してソートを行ってくれる関数である。
まずこの関数の定義
void qsort(
void *base,
size_t num,
size_t size,
int (*compare)(const void*, const void*)
)
引数は合計4つ、なかなか愉快な表現になっています。
順番に見ていくと
1、void *base
void *で定義された引数。void *って何やねん、と思うけれども、そもそも
ポインタの教え方がよろしくないと思う。
*hogehoge(変数名)というのは、すべからくアドレスのみを表している。それがどんなものであれ、hogehogeの中身は4バイトのアドレスを指し示すものである。
では、その前についてるintとかfloatとかの型が何をさしているのかというと、そのデータがどこまで入っているのか、ということである。
つまり *hogehogeがデータの開始位置、その前の型データがその開始位置からどこまでデータが入っているのか、という長さを表している。
この場合のvoidは不定を表している。
つまりqsortは長さが不明だけれど、アドレスの値を受け取っている。というわけ。
当然、そのままではデータは取り出せない、どこからどこまでデータなのかが分からないので、参照ができない。
そこで、出てくるのが2番目と3番目の引数。
2番目の引数は、配列の長さで、三番目の引数が変数の長さ。この変数の長さ、というのが型情報に相当するもので、2番目の値は配列の長さである。
そして極め付けが4番目の引数。C勉強してる人でも、ここはすっとばして教えることが多いので分からないかもしれない。
これは、関数ポインタと呼ばれるもの。
プログラムがメモリ上に配置される。
つまり、プログラムコード自身もアドレスを持っているわけである。なので、関数のアドレスを示すポインタ、というのも存在する。それがこの表現である。
もうちょこっと踏み込むと、今回の場合は、
int hogehoge(const void *, const void *)という関数のアドレスを渡す、という意味である。
このようにすることで、qsortからhogehogeを呼び出す(実行させる)ことができるのである。
こんな説明では何が何やらさっぱりですね、次回は実践編ということで、これを用いたソートプログラムの実装方法について解説したいと思います。
ここまで読んで
「ソートプログラムとか単純だし、自分で作れよ」
というのは、実はわりと正論で、ソートはちょっと理解すればすぐに作れます。
しかし、高速なソートとなると話は別。
C標準のqsortは実装はコンパイラにより多少異なりますが、おおむねアセンブラレベルでの最適化まで図られている超高速プログラムです。素人が組んだソートプログラムとは雲泥の差です。
ためしに10万個、8文字のパスワード(a-z、0-9からなる8文字の文字列)をソートさせてみました。
結果、20回平均わずか0.3秒で完了しました。恐ろしい速度です。
素人が適当に組むと軽く10倍は超えます。
あとは、冒頭にも書きましたがqsortは実装が本当に愉快で、C言語らしい関数なので、ぜひ紹介したいと思った次第です。
解説するにあたってひとつ面白い標準関数があるので、これを使って紹介したいと思う。
それはずばり、qsort。その名のとおり、ある配列に対してソートを行ってくれる関数である。
まずこの関数の定義
void qsort(
void *base,
size_t num,
size_t size,
int (*compare)(const void*, const void*)
)
引数は合計4つ、なかなか愉快な表現になっています。
順番に見ていくと
1、void *base
void *で定義された引数。void *って何やねん、と思うけれども、そもそも
ポインタの教え方がよろしくないと思う。
*hogehoge(変数名)というのは、すべからくアドレスのみを表している。それがどんなものであれ、hogehogeの中身は4バイトのアドレスを指し示すものである。
では、その前についてるintとかfloatとかの型が何をさしているのかというと、そのデータがどこまで入っているのか、ということである。
つまり *hogehogeがデータの開始位置、その前の型データがその開始位置からどこまでデータが入っているのか、という長さを表している。
この場合のvoidは不定を表している。
つまりqsortは長さが不明だけれど、アドレスの値を受け取っている。というわけ。
当然、そのままではデータは取り出せない、どこからどこまでデータなのかが分からないので、参照ができない。
そこで、出てくるのが2番目と3番目の引数。
2番目の引数は、配列の長さで、三番目の引数が変数の長さ。この変数の長さ、というのが型情報に相当するもので、2番目の値は配列の長さである。
そして極め付けが4番目の引数。C勉強してる人でも、ここはすっとばして教えることが多いので分からないかもしれない。
これは、関数ポインタと呼ばれるもの。
プログラムがメモリ上に配置される。
つまり、プログラムコード自身もアドレスを持っているわけである。なので、関数のアドレスを示すポインタ、というのも存在する。それがこの表現である。
もうちょこっと踏み込むと、今回の場合は、
int hogehoge(const void *, const void *)という関数のアドレスを渡す、という意味である。
このようにすることで、qsortからhogehogeを呼び出す(実行させる)ことができるのである。
こんな説明では何が何やらさっぱりですね、次回は実践編ということで、これを用いたソートプログラムの実装方法について解説したいと思います。
ここまで読んで
「ソートプログラムとか単純だし、自分で作れよ」
というのは、実はわりと正論で、ソートはちょっと理解すればすぐに作れます。
しかし、高速なソートとなると話は別。
C標準のqsortは実装はコンパイラにより多少異なりますが、おおむねアセンブラレベルでの最適化まで図られている超高速プログラムです。素人が組んだソートプログラムとは雲泥の差です。
ためしに10万個、8文字のパスワード(a-z、0-9からなる8文字の文字列)をソートさせてみました。
結果、20回平均わずか0.3秒で完了しました。恐ろしい速度です。
素人が適当に組むと軽く10倍は超えます。
あとは、冒頭にも書きましたがqsortは実装が本当に愉快で、C言語らしい関数なので、ぜひ紹介したいと思った次第です。
ninjaがいないよwww
とか外人にうそぶいてる連中がいるらしいが、ninjaとかばりばり現役なんですけど。
俺の職場にもいるし。うそはつかないでほしいですね、はい。
それはさておき、さりとて無関係ではないオスプレイのお話。
大前提として、オスプレイは他のヘリと構造が違うから難しいのであって、オスプレイに技術的欠陥があるわけではない(といってもリリース当初はかなり問題があったようだ)
難しい>操縦ミス>落ちる
最近の事故は大体このパターン。
正確に言えば、操縦の基準が決まってない(今までのヘリと構造が違うのでノウハウがない)ため、墜落したらそこが限界ライン、という風にしか基準を作れない。
こういう言い方するとアレかもしれんけど、もうそれなりの数落ちたんで、これからはそんなにおっこちないと思う。
基本的には特殊なツインローターの構造が原因。回転翼って構造的にとってもデリケートな上に固定翼に比べてデータが圧倒的に少ないので、どうしてもそういう部分で劣っちゃうよね、ってことです。
ちなみに回転翼全体の事故率で見ると、オスプレイの事故率はそれほど高いわけでもないです。
よく勘違いされがちだけど、ヘリや飛行機は「パイロットが墜落する操縦をしたら、ちゃんと墜落する」ように設計されてます。車でも、ぶつけようと思ったらぶつかるし、当たり前のことだけどね。
一応、墜落しそうになったら警告出すようなシステムは整備されてるけれど、それにしたってせいぜいアラート鳴らすくらいなものですから。
風とか外的要因もあるけど、それを踏まえた上で操縦するのがパイロットなので、そこはパイロットの腕次第といわざるを得ない。
とか外人にうそぶいてる連中がいるらしいが、ninjaとかばりばり現役なんですけど。
俺の職場にもいるし。うそはつかないでほしいですね、はい。
それはさておき、さりとて無関係ではないオスプレイのお話。
大前提として、オスプレイは他のヘリと構造が違うから難しいのであって、オスプレイに技術的欠陥があるわけではない(といってもリリース当初はかなり問題があったようだ)
難しい>操縦ミス>落ちる
最近の事故は大体このパターン。
正確に言えば、操縦の基準が決まってない(今までのヘリと構造が違うのでノウハウがない)ため、墜落したらそこが限界ライン、という風にしか基準を作れない。
こういう言い方するとアレかもしれんけど、もうそれなりの数落ちたんで、これからはそんなにおっこちないと思う。
基本的には特殊なツインローターの構造が原因。回転翼って構造的にとってもデリケートな上に固定翼に比べてデータが圧倒的に少ないので、どうしてもそういう部分で劣っちゃうよね、ってことです。
ちなみに回転翼全体の事故率で見ると、オスプレイの事故率はそれほど高いわけでもないです。
よく勘違いされがちだけど、ヘリや飛行機は「パイロットが墜落する操縦をしたら、ちゃんと墜落する」ように設計されてます。車でも、ぶつけようと思ったらぶつかるし、当たり前のことだけどね。
一応、墜落しそうになったら警告出すようなシステムは整備されてるけれど、それにしたってせいぜいアラート鳴らすくらいなものですから。
風とか外的要因もあるけど、それを踏まえた上で操縦するのがパイロットなので、そこはパイロットの腕次第といわざるを得ない。
家帰って時間もあるけどやる気がしない
何かやりたいけどやる気がしない時期が一番つらい。
何やってても面白くない、時間の無駄と感じてしまう。
何をやってもイライラしてばかりでうまくいかない。
別に難しく考えずに楽しめばいいのにね。
自分から何かをやる、っていうのは本当にパワーが半端なく必要になると思う。
やり始めた時点で既に5割は目標に近づいてるんじゃないかなぁ、と思うわけで。
とりあえず今はだらだらと本でも読んですごす毎日です。
何かやりたいけどやる気がしない時期が一番つらい。
何やってても面白くない、時間の無駄と感じてしまう。
何をやってもイライラしてばかりでうまくいかない。
別に難しく考えずに楽しめばいいのにね。
自分から何かをやる、っていうのは本当にパワーが半端なく必要になると思う。
やり始めた時点で既に5割は目標に近づいてるんじゃないかなぁ、と思うわけで。
とりあえず今はだらだらと本でも読んですごす毎日です。
@fortran
プログラムの挙動がおかしい
デバッカ使う
ソースは正しいのになんかうまく動かん
スタック領域とかそこらへんのメモリ周りの設定いじる
やっぱだめ
アセンブラ出力する
なんかポップ命令おかしいの入ってね? これ取り出せないよね?
プログラムを切り出して再現性を確認する
再現性あるっぽい、原因としてしコンパイラを疑う
コンパイラのソースコード見る
バグっぽいの見つける
公式言ったらなんかバージョンアップで対応されてた
↑いまここ
原因はstレジスタ周りの処理が上手くいってなかったっぽいう。
ちなみにおそらくもっともメジャーであると思われる、GNUコンパイラでの話です。
プログラムのデバックしてるのかコンパイラのデバックしてるのかわからなくなる、それがfortran
大体数人がかりでレビューしてて明らかにコーディングに異常ないのがはっきりしてるんだし、最初からコンパイラを疑うべきだった。
C言語がそもそも言語としてもコンパイラとしても完成度が高すぎるんだよね(ここでいう完成度、というのは仕様にどれだけ忠実か、という点においてのみ。元の仕様がどんだけひどいものであっても、それを忠実に再現しているコンパイラがあれば、それは完成度の高い言語といえる)
その恵まれたその環境で育つと、あたかもコンパイラは神様のようなもので、コンパイラにミスはありえなくて、自分のプログラムにミスがあるに違いない、と思い込んでしまうのよね。
コンパイラも人間が作ったプログラムに過ぎないのにね。
ちなみにCコンパイラもちらっとのぞいてみたけど、ちょっと何いってるか分からなかった。
あのソース書いた人絶対頭おかしいわ
プログラムの挙動がおかしい
デバッカ使う
ソースは正しいのになんかうまく動かん
スタック領域とかそこらへんのメモリ周りの設定いじる
やっぱだめ
アセンブラ出力する
なんかポップ命令おかしいの入ってね? これ取り出せないよね?
プログラムを切り出して再現性を確認する
再現性あるっぽい、原因としてしコンパイラを疑う
コンパイラのソースコード見る
バグっぽいの見つける
公式言ったらなんかバージョンアップで対応されてた
↑いまここ
原因はstレジスタ周りの処理が上手くいってなかったっぽいう。
ちなみにおそらくもっともメジャーであると思われる、GNUコンパイラでの話です。
プログラムのデバックしてるのかコンパイラのデバックしてるのかわからなくなる、それがfortran
大体数人がかりでレビューしてて明らかにコーディングに異常ないのがはっきりしてるんだし、最初からコンパイラを疑うべきだった。
C言語がそもそも言語としてもコンパイラとしても完成度が高すぎるんだよね(ここでいう完成度、というのは仕様にどれだけ忠実か、という点においてのみ。元の仕様がどんだけひどいものであっても、それを忠実に再現しているコンパイラがあれば、それは完成度の高い言語といえる)
その恵まれたその環境で育つと、あたかもコンパイラは神様のようなもので、コンパイラにミスはありえなくて、自分のプログラムにミスがあるに違いない、と思い込んでしまうのよね。
コンパイラも人間が作ったプログラムに過ぎないのにね。
ちなみにCコンパイラもちらっとのぞいてみたけど、ちょっと何いってるか分からなかった。
あのソース書いた人絶対頭おかしいわ
foooooooaoooootranとかいうくそ言語
2012年9月13日 コンピュータ暗黙の型宣言とかいうのがまじでやばい
しかも変数と関数の表記がまったく同じ
foo=hoge(a)
foo=hogehoge(a)
hogeは関数でhogehogeは配列です、ってわかるわけがないやろ!
そして何より恐ろしいのがこれ
function hoge(a)
a=2
return
end
この関数を以下でコールする
int b
hoge(1)
b=1
print *, ’b=’,b
! bを出力する(ここコメント
こうすると恐ろしいことに
b=2
と表示される。
これは、関数hoge()が定数を格納しているリテラルプールを破壊して、本来1が定義してあるメモリを2で上書きしちゃってるのである(fortranの引数はすべてアドレス渡し)
ちなみに普通にコンパイル通って実行できてしまうという恐ろしさ
しかも変数と関数の表記がまったく同じ
foo=hoge(a)
foo=hogehoge(a)
hogeは関数でhogehogeは配列です、ってわかるわけがないやろ!
そして何より恐ろしいのがこれ
function hoge(a)
a=2
return
end
この関数を以下でコールする
int b
hoge(1)
b=1
print *, ’b=’,b
! bを出力する(ここコメント
こうすると恐ろしいことに
b=2
と表示される。
これは、関数hoge()が定数を格納しているリテラルプールを破壊して、本来1が定義してあるメモリを2で上書きしちゃってるのである(fortranの引数はすべてアドレス渡し)
ちなみに普通にコンパイル通って実行できてしまうという恐ろしさ
コンピュータはうそをつかないのか?
2012年9月12日 コンピュータa,bは実数
パターンα
double hoge,foo;
hoge = a;
foo = b;
hoge = hoge *foo;
hoge= hoge / foo;
printf("%f",hoge);
パターンβ
double hoge,foo;
hoge = a;
foo = b;
hoge = hoge *foo / foo;
printf("%f",hoge);
aとbともに十分に小さな値であるとき、αとβの結果は一致しない時がある。
より正確に言えば、一致する場合もあれば一致しない場合もある
CPUには、浮動小数レジスタというものがある。これは、小数点以下を計算するレジスタである。メモリ上に置かれた変数はここに格納されて計算されることになる。
double型は64bit、ではこの浮動小数レジスタは何バイトか? というと、80bit(x86系)なのである。
つまり、浮動小数の計算をするだけで、なぜかキャスト処理が行われてしまう、というわけである。
ケースαの場合、hoge*fooが80bitが計算された後に、64bitのhogeにキャスト処理される。
そののちで、hoge/fooが計算される。
たとえば、hoge*fooが64bitで表現できないほど小さい数になった場合、途中結果のhogeは
0.0になってしまう。つまり、最終的な出力結果は0になる。
一方でケースβの場合、hoge*fooが計算された結果のレジスタに、直接/fooが実行され、最終的な出力結果がhogeに渡される。
hoge*fooが80bitで表現可能な数値であった場合、結果は1に限りなく近い値を出力することになる。
こんな感じで、実際には明らかな計算でもプログラムで書くと間違った結果が出てくるばかりではなく、書き方によっても結果が異なる場合がある。
といっても、普通のコンパイラを使った場合、αとβの結果は実は一致する。なぜか、というとコンパイラが最適化をかけて、勝手にαのパターンをβのパターンに変換してしまうからだ。コンパイラから最適化オプションをきってやれば、本来ほしかった値(といっていいのかはわからないけれど、プログラム通りの値)を得ることができる。デバックオプションを付与してやってもいいかもしれない。
ついでに言うと、この問題は、CPUの浮動小数レジスタが64bitの場合には発生しない。
プログラマっていうのは、コードが書ければいいってもんでもない。
コードがどのように処理され、パソコンの中でどのように動作するのか、を知っていないと、最適なコードを書くことは不可能であるし、それが本当にほしい値であるか、という保障はできない、ということが言いたかった結論。
浮動小数の話は有名なので、知ってる人は知ってると思うけど、例としてわかりやすかったのであげてみた。
パターンα
double hoge,foo;
hoge = a;
foo = b;
hoge = hoge *foo;
hoge= hoge / foo;
printf("%f",hoge);
パターンβ
double hoge,foo;
hoge = a;
foo = b;
hoge = hoge *foo / foo;
printf("%f",hoge);
aとbともに十分に小さな値であるとき、αとβの結果は一致しない時がある。
より正確に言えば、一致する場合もあれば一致しない場合もある
CPUには、浮動小数レジスタというものがある。これは、小数点以下を計算するレジスタである。メモリ上に置かれた変数はここに格納されて計算されることになる。
double型は64bit、ではこの浮動小数レジスタは何バイトか? というと、80bit(x86系)なのである。
つまり、浮動小数の計算をするだけで、なぜかキャスト処理が行われてしまう、というわけである。
ケースαの場合、hoge*fooが80bitが計算された後に、64bitのhogeにキャスト処理される。
そののちで、hoge/fooが計算される。
たとえば、hoge*fooが64bitで表現できないほど小さい数になった場合、途中結果のhogeは
0.0になってしまう。つまり、最終的な出力結果は0になる。
一方でケースβの場合、hoge*fooが計算された結果のレジスタに、直接/fooが実行され、最終的な出力結果がhogeに渡される。
hoge*fooが80bitで表現可能な数値であった場合、結果は1に限りなく近い値を出力することになる。
こんな感じで、実際には明らかな計算でもプログラムで書くと間違った結果が出てくるばかりではなく、書き方によっても結果が異なる場合がある。
といっても、普通のコンパイラを使った場合、αとβの結果は実は一致する。なぜか、というとコンパイラが最適化をかけて、勝手にαのパターンをβのパターンに変換してしまうからだ。コンパイラから最適化オプションをきってやれば、本来ほしかった値(といっていいのかはわからないけれど、プログラム通りの値)を得ることができる。デバックオプションを付与してやってもいいかもしれない。
ついでに言うと、この問題は、CPUの浮動小数レジスタが64bitの場合には発生しない。
プログラマっていうのは、コードが書ければいいってもんでもない。
コードがどのように処理され、パソコンの中でどのように動作するのか、を知っていないと、最適なコードを書くことは不可能であるし、それが本当にほしい値であるか、という保障はできない、ということが言いたかった結論。
浮動小数の話は有名なので、知ってる人は知ってると思うけど、例としてわかりやすかったのであげてみた。
最近のTVで唯一面白いと思うのはこれだけやな
ドキュメンタリーかこの手の技術紹介系の番組もっと増やしてほしい
あと、よくわからんタレント? とかいう馬鹿なやつは存在意義がないので出てこないでほしい。
個人的に思うのは、これだけネット上で(著作権的な問題はあるけれども)ゲーム配信がはやっているのだから、TVでもゲーム配信みたいなのやったらどうかなぁ、と思う。
ストーリー性のあるゲームならともかく、格ゲーやらFPSやらRTSやらシミュレーション系はむしろ公式が配信を奨励してたりするいからね。
ただ、日本はゲームが大量生産されすぎていて、国民的に流行っている対戦ゲームがないっていうのが、一番のネックだと思う。一番ホットな対人ゲーってなんですか、って聞かれたときに返答に困る。
今だったらスパⅣとかP4Uになるんかね、格ゲーは詳しくないのでよくわからないけど。
ドキュメンタリーかこの手の技術紹介系の番組もっと増やしてほしい
あと、よくわからんタレント? とかいう馬鹿なやつは存在意義がないので出てこないでほしい。
個人的に思うのは、これだけネット上で(著作権的な問題はあるけれども)ゲーム配信がはやっているのだから、TVでもゲーム配信みたいなのやったらどうかなぁ、と思う。
ストーリー性のあるゲームならともかく、格ゲーやらFPSやらRTSやらシミュレーション系はむしろ公式が配信を奨励してたりするいからね。
ただ、日本はゲームが大量生産されすぎていて、国民的に流行っている対戦ゲームがないっていうのが、一番のネックだと思う。一番ホットな対人ゲーってなんですか、って聞かれたときに返答に困る。
今だったらスパⅣとかP4Uになるんかね、格ゲーは詳しくないのでよくわからないけど。
最近のGジェネが嫌いなわけ
2012年9月8日 ゲームスパロボとかガンダムvsガンダムみたいなはちゃめちゃお祭りゲーって宣言してくれればいいんだよ
もともとGジェネって原作ストーリーを追いかけるゲームで、ストーリーありきなゲームだった。
クロスボーンや閃ハサがはじめて音ありになったのも確かGジェネだし、そういう方向性のゲームだったわけで。
たとえば、初代の時代にモビルファイターが出てきても物語に絡まないなら気にしない。
が、物語に直接影響するのは、原作ぶち壊しもいいところで、初代の時代になぜかソレスタルビーイングが介入してきたりとかは勘弁してほしい、それはスパロボでやれよ、と思うわけですよ。
元からそういうゲームとしてデザインしてくれればよかったのだけれど、初代、0、F、魂と原作重視の作品だっただけに非常にもったいない。
とはいえ、黒本、閃ハサ、センチネルなんかを広めた立役者でもあるので、非常に複雑な心境である
もともとGジェネって原作ストーリーを追いかけるゲームで、ストーリーありきなゲームだった。
クロスボーンや閃ハサがはじめて音ありになったのも確かGジェネだし、そういう方向性のゲームだったわけで。
たとえば、初代の時代にモビルファイターが出てきても物語に絡まないなら気にしない。
が、物語に直接影響するのは、原作ぶち壊しもいいところで、初代の時代になぜかソレスタルビーイングが介入してきたりとかは勘弁してほしい、それはスパロボでやれよ、と思うわけですよ。
元からそういうゲームとしてデザインしてくれればよかったのだけれど、初代、0、F、魂と原作重視の作品だっただけに非常にもったいない。
とはいえ、黒本、閃ハサ、センチネルなんかを広めた立役者でもあるので、非常に複雑な心境である
ふとどんなゲームだったか気になったので、引っ張り出して軽く触ってみた。
シリーズとしては、SS系列とそれ以後でまったく別のものになっているわけだが、この新ギレンはSS版の流れを汲む新作。
基本的にパイロットモードと指揮官モードみたいな感じで分かれている
指揮官モード
いわゆる今までのギレンシリーズのヤツ。
毎回、このゲームは言われているが、近作では輪をかけてシミュレーション難易度が鬼
というか、戦い方が普通のシミュレーションとまったく違う。
普通のシミュレーションだと数で劣勢なところを性能差や戦略・戦術でカバーしたり、AIの盲点を突いて勝つっていうのが一般的だと思う。
しかし、このゲームではまったく間逆である。圧倒的物量で攻めてくる相手に、性能を落としてでも生産効率を引き上げたユニットを大量に濫造し、それを肉壁のようにして突き崩すゲームなのである。
拠点の周囲を味方ユニットで埋め尽くして防衛し、毎ターン落とされた穴に新しいユニットを配置することで突破されない、なんていう理論で戦うゲームは過去になかったと思う。
戦術系のゲームでは似たようなものがあるけど、タクティクス系のシミュレーションで物量ゲーというのは他に例を見ないのではないだろうか。
さらに最初からAIが全力で殺しにくるため、所見でノーマルでもやろうものなら、たぶん2時間くらいでゲームオーバーになる。
パイロットモード
スパロボやタクティクスでたとえるなら、自分が全体の操作ができず、その中の1ユニット(もしくは何機かのユニット)のみを操作する感じ。
無双のように一人でばったばったとなぎ倒せるゲームであれば、それでもいいのだが、このゲームは無双といってもせいぜい3倍くらいの相手までが限界。
自分が操作できるユニットが数機で、敵と味方の数は300機もある。ぶっちゃけ、個人でがんばったところでたかが知れている、という状態。
戦争の中のパイロットを体験すると確かにそうなるのかもしれないが、正直ただの傍観者である。
それでも、エースクラスのパイロットに、エースクラスのMSを与えることである程度の無双はできるので、そういう意味では指揮官モードよりは楽かもしれない。
初心者の方は先にこのモードをやるべきである。
タイトルになっているから、といってギレンの指揮官モードを選ぶと間違いなく3時間で中古屋に行く羽目になる。
そもそも、シリーズ初心者ならアクシズVのほうをお勧めします、こっちはアクが強すぎる。
ただし、ベリーハードのパイロット編はまじでやばい。勝手にやられて勝手に拠点が陥落していくのを眺めるだけしかできない、これクリアさせる気があるのだろうかってレベル。
シリーズとしては、SS系列とそれ以後でまったく別のものになっているわけだが、この新ギレンはSS版の流れを汲む新作。
基本的にパイロットモードと指揮官モードみたいな感じで分かれている
指揮官モード
いわゆる今までのギレンシリーズのヤツ。
毎回、このゲームは言われているが、近作では輪をかけてシミュレーション難易度が鬼
というか、戦い方が普通のシミュレーションとまったく違う。
普通のシミュレーションだと数で劣勢なところを性能差や戦略・戦術でカバーしたり、AIの盲点を突いて勝つっていうのが一般的だと思う。
しかし、このゲームではまったく間逆である。圧倒的物量で攻めてくる相手に、性能を落としてでも生産効率を引き上げたユニットを大量に濫造し、それを肉壁のようにして突き崩すゲームなのである。
拠点の周囲を味方ユニットで埋め尽くして防衛し、毎ターン落とされた穴に新しいユニットを配置することで突破されない、なんていう理論で戦うゲームは過去になかったと思う。
戦術系のゲームでは似たようなものがあるけど、タクティクス系のシミュレーションで物量ゲーというのは他に例を見ないのではないだろうか。
さらに最初からAIが全力で殺しにくるため、所見でノーマルでもやろうものなら、たぶん2時間くらいでゲームオーバーになる。
パイロットモード
スパロボやタクティクスでたとえるなら、自分が全体の操作ができず、その中の1ユニット(もしくは何機かのユニット)のみを操作する感じ。
無双のように一人でばったばったとなぎ倒せるゲームであれば、それでもいいのだが、このゲームは無双といってもせいぜい3倍くらいの相手までが限界。
自分が操作できるユニットが数機で、敵と味方の数は300機もある。ぶっちゃけ、個人でがんばったところでたかが知れている、という状態。
戦争の中のパイロットを体験すると確かにそうなるのかもしれないが、正直ただの傍観者である。
それでも、エースクラスのパイロットに、エースクラスのMSを与えることである程度の無双はできるので、そういう意味では指揮官モードよりは楽かもしれない。
初心者の方は先にこのモードをやるべきである。
タイトルになっているから、といってギレンの指揮官モードを選ぶと間違いなく3時間で中古屋に行く羽目になる。
そもそも、シリーズ初心者ならアクシズVのほうをお勧めします、こっちはアクが強すぎる。
ただし、ベリーハードのパイロット編はまじでやばい。勝手にやられて勝手に拠点が陥落していくのを眺めるだけしかできない、これクリアさせる気があるのだろうかってレベル。
http://www.nicovideo.jp/watch/sm18631447
久しぶりにすばらしいものを見た
加速度センサ+ジャイロというのは新しい。
普通のガンコンは先端から出る赤外線などのデータを外部のセンサで感知する一般的。wiiのリモコンも赤外線探知型だしね。
それに対してこちらはセンサなしで、コントローラだけあれば、どっち向いても使える汎用性の高さが魅力。それだからこそ、真後ろを向くには実際に一回転したりもできるわけで。
ただ、動画でもあるように調整ははるかに難しいと思う。なにせ、相対的な移動しか出せないから、原点がずれやすいように思える。実際、動画でも、徐々に原点が動いていってしまっているようだったし。そのあたりはオフセットの調整次第って感じなのかなぁ。
いっそ、原点に戻すボタン(現状態(現座標)を原点とする)っていうのをつけちゃうのも手かもしれない。ややVR感は薄れてしまうけれども。
なにはともあれすばらしいものだと思います。
実際に実物が触ってみたいと思った
久しぶりにすばらしいものを見た
加速度センサ+ジャイロというのは新しい。
普通のガンコンは先端から出る赤外線などのデータを外部のセンサで感知する一般的。wiiのリモコンも赤外線探知型だしね。
それに対してこちらはセンサなしで、コントローラだけあれば、どっち向いても使える汎用性の高さが魅力。それだからこそ、真後ろを向くには実際に一回転したりもできるわけで。
ただ、動画でもあるように調整ははるかに難しいと思う。なにせ、相対的な移動しか出せないから、原点がずれやすいように思える。実際、動画でも、徐々に原点が動いていってしまっているようだったし。そのあたりはオフセットの調整次第って感じなのかなぁ。
いっそ、原点に戻すボタン(現状態(現座標)を原点とする)っていうのをつけちゃうのも手かもしれない。ややVR感は薄れてしまうけれども。
なにはともあれすばらしいものだと思います。
実際に実物が触ってみたいと思った
しにかけた
熱が41度くらいになった
たぶんあと1度上がってたらマジで死んでた可能性あるで
クーラーのきいた部屋にいても普通に熱中症になるのでご注意を
俺の場合、風邪で食欲なくて、何も飲まず食わずで半日いたら熱中症になった。
最初は、熱いというか、普通に寒気しまくってやばかったので、風邪が悪化したかなぁと思って厚着してたのは自殺行為だったようだ。
やばいと思ったらマジで救急車呼んだほうがいい。
俺は、我慢してたけど普通に意識が飛びまくってた、下手したらそのまま天国wwwwww
熱が41度くらいになった
たぶんあと1度上がってたらマジで死んでた可能性あるで
クーラーのきいた部屋にいても普通に熱中症になるのでご注意を
俺の場合、風邪で食欲なくて、何も飲まず食わずで半日いたら熱中症になった。
最初は、熱いというか、普通に寒気しまくってやばかったので、風邪が悪化したかなぁと思って厚着してたのは自殺行為だったようだ。
やばいと思ったらマジで救急車呼んだほうがいい。
俺は、我慢してたけど普通に意識が飛びまくってた、下手したらそのまま天国wwwwww