はてなキーワード: 演算子とは
http://www.lastday.jp/2010/11/22/objective-c
早速Objective-Cとやらを勉強しようと思ってググってみたら、Objective-CはC言語の拡張なので先にC言語を学ぶ必要があるという驚愕の事実が発覚!
この文書はC言語については解説されていないため、C言語にある程度慣れていることが前提となり ます。しかし、それほど熟達している必要はありません。Objective-Cによるオブジェクト指向プロ グラミングはANSI Cの手続き型プログラミングとはかなり違っているので、熟達したCプログラマで なくても、さほど不利にはなりません。
http://developer.apple.com/jp/devcenter/ios/library/japanese.html
Cの知識があるに越したことはないけども、どこまで必要かという話になるとごにょごにょ。
少なくとも、Objective-Cを公開している連中が、"Cの手続き型プログラミングとはかなり違う"と言っているのだから、C言語的なコードの流れには(あんまり)ならない(はず)。
それより、フレームワークの扱いに慣れることに重点を置いたほうがいいんじゃないかな。
苦Cで言うところ、文字列やら、ファイルの取り扱いあたりになってくるとかなり微妙で、出来る限り言語機能やフレームワークに任せたい。
ポインタはそりゃ、Python使いが見たら発狂するんじゃないかってぐらいポインタ演算子が出てくるけど、オブジェクトインスタンスは全部ポインタなんだから、いっそ気にしなくていいんじゃない? それとも関数ポインタとか使いたい? きっとデバッグが大変だよ。
YouTubeやVimeoで『Xcode tutorial』で検索すると大量のiPhoneプログラミングのチュートリアルが無料で視聴可能です!
公式の「iOS アプリケーションチュートリアル(日本語版)」を読んだ上で言っているのであれば、どこの誰が作ったかも分からない英語の動画が、アップル公式の日本語ドキュメントより優れている点を挙げた上で、その動画のURLを示して欲しい。
英語なんて分からないよ。
オススメってことは必読じゃないのかな?
3.初期投資
Intel Mac + iPhone or iPod Touch + 10,800円
ここから、開発者プログラムの参加費用$99(¥8000程度)を差っ引くと、一冊分しか残らないから、下の方で紹介されてる本が必読なんだろう。
初心者にわかりやすくObjective-Cの事が書かれています。必読です!
こっちが必読?
内容全く知らないで発言するけども、書評を見てみると、Snow Leopardに対応していない旨が書きこまれていて、多少不安。
流行りに乗ってMacbook Airを購入した人は、大抵Snow Leopardのはず。
記事には、"二ヶ月前"からとあるので、少なくとも記事を書いた人はMacbook Airではないのだろう。
自分のアプリの必要な部分だけを勉強すれば、それだけリリースも早くなりますしモチベーションも下がりません。全部網羅しようと思うと開発自体を頓挫しかねません。
遅延評価勉強法の考えで行くと、C言語を先に勉強する必要はなかったと思うけど、どっちなんだろう。
その辺も遅延で気付いたのかな。
英語力がなくてもアプリは作れますが、英語がわかると公式ドキュメントや先にあげたYouTubeのチュートリアル動画も理解できるので簡単な英語くらいはできる方が良いです。
日本語の公式ドキュメントがあるので、是非参照して頂きたいです。
http://developer.apple.com/jp/devcenter/ios/library/japanese.html
Apple Developer Documentation日本語版
http://developer.apple.com/jp/documentation/japanese.html
日本語ユーザが増えたら、Xcodeのクイックヘルプとかドキュメントとかも日本語化してくれないかなあ。
それとも、実はただの調査不足で既にあったりとか…
if も 3項演算子も for も do whileすらもない ifなしの Fizz Buzz
#include "stdio.h" #include "stdlib.h" int cnumber=0; void fizz(){ printf("fizz"); cnumber++; }; void nonfizz(){ }; void buzz(){ printf("buzz"); cnumber++; }; void nonbuzz(){ }; void number(int i){ printf("%d",i); cnumber = 0; } void nonnumber(int i){ cnumber = 0; } void myexit(void){ printf("\n Hit return key to exit\n"); getchar(); exit(1); } void noexit(void){ } void (*pfizz[3])() = {fizz,nonfizz,nonfizz}; void (*pbuzz[5])() = {buzz,nonbuzz,nonbuzz,nonbuzz,nonbuzz}; void (*pnumber[3])(int) = {number,nonnumber,nonnumber}; void (*pmyexit[2])() = {noexit,myexit}; int main(int argc, char* argv[]) { int loopmax = (111+222+333)*10; int i = 1; head: (*pfizz[i%3])(); (*pbuzz[i%5])(); (*pnumber[cnumber])(i); (*pmyexit[!(loopmax-i)])(); printf(","); i++; goto head; return 0; }
includeが<>を使ってないので必要ならパスは各自で通してねw
トヨタのような規模の会社で、開発環境を統一・限定するのは、コストダウンとしても悪くないし、従業員はその環境で開発できればOKと言うのはあります。
こうしたツールでは、シミュレーション・テストも行えるわけで、設計上の問題点も見つけやすいですし、言語的な考え方でのアプローチとは異なる思考で作れますからね。
設計と実装を考えたときに、実装は違う工程だというのは、あながち間違いないではないですし、設計に焦点を当てるのも効果的だとは思います。
ただまぁ、大型機械などではなく、小型の機械だったりすると、リソースの関係で高級言語が使えなかったりします。
C++で書いたコードが実際に使うメモリ量とか、ぱっと計算できないですよね。
a = b ;
そもそもCとかC++の初心者で?のことを良く理解していないレベルに読みにくいよ
だいいち、そのレベルなら ifで書けばいいだろうと。
そもそも
while( (*p++ = *c++) != '\0' );
c = param [ a>=0?a:0 ];
みたいな、使い方 をして 他の演算の引数に3項演算子を使ってるならわかるが
単なる代入だけで、しかも複文でネストすんならifで書けや!
ネストするってことは条件があるていど複雑ってことで、あとで、デバッグ用のif入れたりprintf入れたり改造する可能性があるってことを考慮してくれ。
変に?をネストさせて、『他人が間違えて』間違った改造いれたりしたら、どうするつもりなんだと?
間違った奴が悪い?複雑なネストして、間違いやすいコードを残した奴も悪いよ。
簡単にいえばたった、5行のスパゲティ。
可読性が悪いにもほどがある・・・と思った1関数
http://blog.livedoor.jp/dankogai/archives/51490675.html
inline U64 powmod(U64 base, U64 power, U64 mod){
return base >= UINT_MAX ? powmod_gmp(base, power, mod)
: power >= UINT_MAX ? powmod_gmp(base, power, mod)
: mod >= UINT_MAX ? powmod_gmp(base, power, mod)
: powmod_64(base, power, mod);
}
3項演算子を連打とか・・・
if(base >= UINT_MAX){ return powmod_gmp(base, power, mod); }else if(base >= UINT_MAX){ return powmod_gmp(base, power, mod); }else if(mod >= UINT_MAX ){ return powmod_gmp(base, power, mod) }else{ return powmod_64(base, power, mod); }
って事で、要するに
if(base < UINT_MAX && power < UINT_MAX && mod < UINT_MAX){ return powmod_64(base, power, mod); } else { return powmod_gmp(base, power, mod) }
って事じゃないのか?実際Cは左辺優先評価で1つ目がFALSEの場合2つめ以後は評価されない(してはいけない)でelseにジャンプ だからif演算の回数だけなら等価
まぁ、確かに、パイプラインを考えればthen節とelse節は等価ではないので、データによって真ん中の書き方のほうが下より早いとか遅いという差はでるけど・・・
なくても、真ん中か、下の書き方でいいよなぁ。
まかり間違って
if(base >= UINT_MAX || base >= UINT_MAX || mod >= UINT_MAX){ return powmod_gmp(base, power, mod) }else{ return powmod_64(base, power, mod); }
と書いても、おそらく、コンパイラ先生がただしく最適化してくれればおなじになるだろう。正しく最適化しないと、コレは遅い可能性もあるが、そんなことはまず無いだろう。
いや?演算子が悪いとは言わないけど、チーム組んで初級の若いプログラマがこういうコードを読めるとは思わないし、読む必要があるとも思わないんだが・・・
ジェネリックに、みんなに分かりやすく。
トリッキーに書くのもいいけど、それは、速度かメモリかで恩恵が受けられる場合で、メリットがないなら、初心者でも読みやすく、メンテしやすくする。って間違ってるのかなぁ?
?連打の方が世の中読みやすいのか?
どうでもいいけど・・・UINT_MAX って、最大値+1じゃなくて、最大値だよなぁ・・・。確か>=の=の有り無し逆じゃね?
もっと、どうでもいいけど、mmレジスタとxmmレジスタのmod演算ってクロック数違うんだっけ?だれか、教えて。ifでパイプライン崩すのとどっちがいいんだろう。
Rubyは、純粋オブジェクト指向と評されるHaskellの直系と遇されるのが常だが、私の見解は、むしろマクロアセンブラにより近い、というものなのだ。Rubyにおいて継続すなわちcontinuationの使用はもはや常態とも言えるが、一方のSchemeでは、Algol的な例外機構の残滓により、Unixシグナルに留まっている。
制御構造のみならず、データ構造の観点からも、RubyはSchemeよりはるかにポストモダンと言えるだろう。淵源へと遡れば、マクロアセンブラとPascalの対立の図式へと導かれる。私は、Schemeのデータ構造は、唾棄すべき要因を含むという思いを抱く誘惑に抗いかねるのだ。そうであるならば、民主党の政権交代は失敗であったと結論せざるを得ない。
もとより、アインシュタインの相対性理論からも、明らかにRubyに軍配が上がるだろう。SchemeをSchemeたらしめているブロックスコープ構造にしろ、今となっては決して珍しいものとは言えない。いやむしろ、真に純粋関数型を指向するなら、Schemeへの共用体の導入をこそ今真摯に検討すべきなのだ。演算子オーバーロードですべての問題が解決するわけではない。この実存的な課題をただ黙殺しているSchemeに、私は異議を申し立てる。
もともと
if("0x0a" == 10){
}
を成り立たせた方が都合がよい。というのの応用で
"0x0a" == 10 == "10" となるだけだからねぇ。
if ("0x0A" == 0x0A) { print '(´ε` )チュッ'; }else{ print '\(^o^)/'; }
は'(´ε` )チュッ'だしねぇ。
"0x0a" == 10 == "10" == 0x0Aなんだよね・・・
数字に変換されると言うよりは
だからねぇ。
もともと、HTMLやXMLの中の数字っぽい物を数字として処理する方が、多いからこうなってるだけで・・・
文字列をキャストしたら0になるっていうのが、単なる他の言語の決めの問題だからねぇ。
少なくともC/C++言語では文字列はキャストしたら、ポインタアドレスが返ってくるから0じゃねーし。
atoiの事を言っているなら、それキャストじゃなくて、関数つかってるし・・・関数使うなら=タイプした方が速いだろうという、マインド。
===演算子を使えよ
if ("0x0A" === "10") { print '(´ε` )チュッ'; }else{ print '\(^o^)/'; }
==演算子は方をキャストしながら、ほぼ同じなら同じと見なせという意味。
HTMLとかで曖昧に比較したいというのがベースな言語なのに何を言う・・・
厳密に比較して欲しいときは、型キャストを明示的に禁止する===を使えば良いのに、何が不満なんだろう。
if ("0x0A" === "0x0A") { print '(´ε` )チュッ'; }else{ print '\(^o^)/'; }
(´ε` )チュッ
8進数使いたいという場合がよくわからないけど、それが必用なら、必用になった人がコードにパッチを当てて
試験して、それを、PHPの開発チームに送りつけてコミットさせれば、次のバージョンからサポートされるでしょ。
オープンソースなんだから、必用になった人が機能を追加する。これ基本。
if (strcmp("0x0A", "10")) { print '(´ε` )チュッ'; }とすべき。当然チュッされない。
strcmp()は文字列が等しいときに0になるから、これだとチュッされるんじゃ。
if (strcmp("0x0A", "10") == 0) { print '(´ε` )チュッ'; }
か
if ("0x0A" === "10") { print '(´ε` )チュッ'; }
の方が楽かなぁ?
これならどちらでもチュッされないはず。
PHPの比較に付いてはこのあたりを見ると良いと思う http://www.php.net/manual/ja/types.comparisons.php
PHPで一番困るのは、この手の変換が直感的でも統一的でもなことだな。
「自分が何をしようとしているのか」が素直に書けないんだよね。
言語として元になっているPerlにも文字と数値の暗黙的な変換があるけど、
数値と文字で比較演算子が違うから、常に「演算子が要求している型」に変換する。
演算子の数は増えてしまうけど、これなら意図しない型に変換されてしまうことはない。
なんとなく、もっとうまくやろうとして失敗したふいんき。
if ("0x0A" == "10") { print '(´ε` )チュッ'; }
チュッ。されちゃいます。
文字列であっても整数と解釈できる文字列の場合は勝手に型変換しやがる今世紀最大の愚行を犯してしまうってのは有名な話だよね。
文字列であっても整数と解釈できる文字列の場合は自動的に整数に型変換してくれる超便利機能があるってのは有名な話だよね。
だけどなんでコレが一致するかわけがわからんかった。
0x0Aは10進数で10になるので一致する。と、言いたいところなんですがそう単純な話じゃないんだ。
以下の例を目ん玉見開いて見て欲しい。
var_dump(0x0A); var_dump("0x0A"); var_dump((int)"0x0A"); var_dump((float)"0x0A"); var_dump(intval("0x0A")); 実行結果 int(10) string(4) "0x0A" int(0) float(0) int(0)
つまり文字列の"0x0A"ってやつはどう考えても0と解釈されるはずなんだ。だから上記if文が本来一致するはずがいない。
でも実際は何故か10と解釈されて一致してしまう。
そう、つまり演算子で比較した場合、やらんでもいいのにわざわざ16進表記かどうかまでチェックして余計なお世話的うんこ変換しやがるということになる。
そう、つまり演算子で比較した場合は、16進表記かどうかまでチェックして10進数に変換してくれているということになる。
明示的に書くならこんな感じだ。
if (intval("0x0A",16) == "10") { print '(´ε` )チュッ'; }
クソが。
なるほどねー。
ただでさえ文字列同士の比較なのにintに変換されるだけでもミソ糞うぜぇのに、わざわざ16進数の場合は10進数に変換してくれる超糞尿仕様。
文字列同士の比較であってもintに自動変換してくれるだけでも素晴らしいのに、それに加えて16進数の場合は10進数に変換してくれる超便利仕様。
ってこたぁ、8進数表記の場合も糞糞マジ死ぬほど余計なお世話するんだろうなぁと思ってしぶしぶ試してみた。
ということは8進数表記の場合もこの素晴らしい自動変換しれくるのかなと思って試してみた。
if ("0x0A" == "012") { print '(´ε` )チュッ'; } else { print '\(^o^)/'; } 実行結果 \(^o^)/
おー、さすがPHP!、やっぱ8進数の場合は10進数と似てるから8進数と見なすよりも10進数と見なしたほうが効率いいですもんね。いやーわかってるなー。ますますPHPが好きになりました。I Love PHP. We Love P☆H☆P!
はは、はははっ、ははははっ。やるならやる!やらないならやらない!どっちかに統一せーやこのプリンシパル校長ヘッドハンティンピープルぺーぺーぽりんき味噌マッチョ変態改造エアガン陵辱-2くらいのスカンク殺ろうがぁああああああ★ああああああああああああああああああああああああああああああああああああああfじょ★えいjfsきじぇいつつしまじいのそるいつのだ★ひろけがきちもするけけけそあいんぼろうれあああぁあああああaaaaaa
君の感覚の問題でもあるから「何故量子力学に虚数が必要か」っつー話(の概略)に留まるけど、
量子力学の基本方程式(ニュートン力学の運動方程式や電磁気学のマクスウェル方程式みたいなもん)である
という形をしてて(Hはハミルトニアンというある演算子)、時間について1階の微分項を含むわけだ。
1階の時間微分ってのは、古典物理の世界では散逸に対応するんだな。摩擦とか。
そのままだとどうやっても散逸してエネルギーが消失しちゃうんだ。
でも電子はいつまでも原子核のまわりを回ってて、全ての原子が潰れちゃうなんていう現象はこの宇宙では起こって無い。
じゃあどうするかっつーと、1階微分項の係数に虚数を使うしかないんだよ。
そういうものを考えてみると、これがびっくりするくらい実験とピッタリ合うし、未知の現象とかガンガン予測しちゃったんだな。
だからまあよくわかんねーけど正しいとしか思えない、という感じになってるわけだ。
インクリメント演算子は、どうも言語によってかなり扱いが違うことに気がついた。
まず、実行しようと思うコードの擬似表現は以下。このコードを実行すると、どのような結果が出力されるだろうか? まずは頭の中で考えてほしい。
なお、「a++」の部分は「後置インクリメント」と呼ばれ、式自体の評価値はインクリメント前の値になる。つまり、「a++」の評価値はいずれの言語でも1になる。
a = 1; print (a + a++);
計算し終わっただろうか。では上記コードを各種言語で実行した場合の結果を見てみよう。
言語間で結果が違うことがわかるだろう。まずは、なぜこれらの言語間で結果が違うのか、納得のいく説明を考えてほしい。
考え終わったら次の実験をしてみよう。
次は、後置インクリメントではなく前置インクリメントを使ってみる。つまり、下記のようなコードである。
なお「++a」は、計算後の値が評価値になるため、いずれの言語でも2と評価される。
a = 1; print (a + ++a);
こちらも、各種言語で実行した結果を見てみよう。
さて、後置インクリメントの結果を見て考えた「納得のいく説明」は、こちらでも通用しただろうか。
※見出しの前置と後置が逆だったので修正しました
年明けに大掃除したら、実家から持ってきた書籍の中に小学生の時に
その中にチラシが入っていたのだが
「お知らせ
本機は日本電信電話公社より認定をうけており、キャプテンユニットMPC-CAP1などの機器との組み合わせで
とか書いてある。
当時はこんなチラシ見もせずにBASICとデーレコばかり操作していたからな。
このチラシが何を意味する物なのか今となっては謎になっている。
それよりも、その他にもBASICマニュアルなんぞ出てきたのだがEOFとかBSAVEとかON SPRITE GOSUBとか理論演算子とか掲載されてる。
おかしいなぁ・・小学生時代にはこれも覚えてスプライトを駆使してマシン語を16進数で作成、3色キャラクタなんぞを作ってBASIC
プログラムを作って遊んだはずなのに。今ではすっかり忘れてしまった・・。
あのままもっと色々とやっていれば勉強できたのかなぁ。
アプリ作者です。
ゲームの大まかな流れを説明します。
周辺の8つの数値のいずれかをドラッグして、
6つの演算子のいずれかにドロップすることで、
中央の数値とドロップした値との演算が行われ、
その結果が新たな中央の数値となります。
この演算を繰り返すことで、中央の数値を
targetとして表示されている目標値に近づけていき、
問題をクリアすると、次の問題に進みます。
演算子を周辺の数値にドラッグアンドドロップすることでも演算は行われます。
ある数値を他の数値にドラッグアンドドロップすると数値が入れ替わります。
こんなややこしい操作体系、何の説明も無しに分かるはずがないですね…すいません。
特に、ドラッグアンドドロップさせるというのは無理がありました。
できるだけ少ない操作で遊べるように、ドラッグアンドドロップ制を採用したんですが、
ドラッグ中に数字がポインタにくっついてくるようにする、などの画面効果は検討します。
それから、そもそもゲームが面白くないというのも致命的ですね。すいません…。
与えられた9つの値からより早く目標値を作り出すというところに、
パズル的な要素があるかなと考えたんですが…。
ほとんどが足し算と引き算で終わってしまう、とのことですが、
どうすればより早く目標値を作り出せるか、と考えると、
掛け算や割り算も必要になってくるかと思います…。
このような問題を解決する技能が他に使えるかどうか、という点については、
与えられた値からより早く目標値を作り出す過程を考える上で、
暗算を何度も行う必要があると思います。
それがいわゆる脳トレになるかな、と。
…今更脳トレも無いか。
俺も、最初使い方が分からず、トラックバックで使い方説明してくれた人のを見て初めてわかった。
使い方が分かりにくいのは確かだが、ゲーム性を高めるためのサウンドとかグラフィックは、それなりによくできていると思うぞ。
ちょっとした改善点で、ずっと使い方が分かりやすくなると思うので、以下、下にあげておく:
1)数字を演算子にドラッグアンドドロップする必要性はどこにある?
数字をクリックすると、数字を赤くするとかして、「今、選択されている」ことを示せばいい。
違う数字を選びたかったら、違う数字をクリックすると、選択が違う数字に移るようにすればいい。
ボタンがたくさん付いている中で、「押す」ことは想像できるけど、ドラッグアンドドロップは想像しにくい。
2)どうしても、ドラッグアンドドロップにしたい場合
ドラッグアンドドロップだと分からなかったのは、ドラッグしている最中にポインタにくっついてくるものが何もないから。
どうしてもドラッグアンドドロップにしたいのなら、ドラッグ中に数字がポインタにくっついてくるようにするべき。
http://anond.hatelabo.jp/20081105135432
彼女ができた。なんとHaskellerだ。
8月に参加したLLイベントで知り合い、10月から付き合い始めた。なんでLLイベントにHaskellerが…
これまで5人くらいのプログラマと付き合ったことがあるけれど、一般的なプログラマと比較して
といった点が目立つ。
見た目はLisperを少し丸くしたようなかわいらしさがあるのだけれど、要するに中身はPrologだ。
初めは戸惑いもあったが、案外こういうプログラマとつきあうのは楽で楽しいと分かってきた。
コードは深い問題もFizzBuzzのような軽い問題も内容を伴って書ける。
いろいろメタプログラミング・アロー記法・ユニコード演算子などを試そうとするなど好奇心が強い。
純粋関数型言語も習得しているというのに論理系の言語も習得しようと勉強していて向上心の強さがある。
IOモナドをコントロールできない自分に「おかしいな、普段はこんなはずじゃないのに///」と恥ずかしがる。
Haskeller、はっきり言ってオススメです。
問題はどうやって知り合うかだけれど、職場(あるのか?)という戦闘モードの時に誘うのではなく、.emacsなどを書いているオフタイムが狙い目としか。
初めの一歩が難しいだけで、後は一般的な女の子よりも付き合いは簡単かも。
Table of Contents: ||||||
オープンソースソフトウェアとGIS | Open Source software and GIS | Open Source software and GIS | 1 (6) |
オープンソース概念 | Open Source concept | 1 (2) | |
オープンソースGISとしてのGRASS | GRASS as an Open Source GIS | 3 (2) | |
ノースカロライナサンプルデータセット | The North Carolina sample data set | 5 (1) | |
この本の読み方 | How to read this book | 5 (2) | |
GISの概念 | GIS concepts | GIS concepts | 7 (14) |
一般的なGISの原理 | General GIS principles | 7 (6) | |
地理空間データモデル | Geospatial data models | 7 (4) | |
GISデータとシステムの構成 | Organization of GIS data and system | 11 (2) | |
機能 | functionality | ||
地図投影法と座標系 | Map projections and coordinate systems | 13 (8) | |
地図投影原理 | Map projection principles | 13 (3) | |
一般的な座標系とdatums | Common coordinate systems and datums | 16 (5) | |
GRASSをはじめよう | Getting started with GRASS | Getting started with GRASS | 21 (32) |
第一歩 | First steps | 21 (16) | |
GRASSのダウンロードとインストール | Download and install GRASS | 21 (2) | |
データベースとコマンドの構造 | Database and command structure | 23 (3) | |
GRASS6のためのグラフィカルユーザインタフェイス: | Graphical User Interfaces for GRASS 6: | 26 (1) | |
QGISとgis.m | QGIS and gis.m | ||
ノースカロライナを用いてGRASSを開始 | Starting GRASS with the North Carolina | 27 (3) | |
データセット | data set | ||
GRASSデータ・ディスプレイと3D可視化 | GRASS data display and 3D visualization | 30 (4) | |
プロジェクトデータ管理 | Project data management | 34 (3) | |
新しいプロジェクトでGRASSを開始 | Starting GRASS with a new project | 37 (7) | |
aのための座標系の定義 | Defining the coordinate system for a | 40 (4) | |
新しいプロジェクト | new project | ||
空間投影されていないxy座標系 | Non-georeferenced xy coordinate system | 44 (1) | |
座標系の変換 | Coordinate system transformations | 44 (9) | |
座標系のリスト | Coordinate lists | 45 (2) | |
ラスタとベクトル地図の投影 | Projection of raster and vector maps | 47 (1) | |
GDAL/OGRツールで、再投影 | Reprojecting with GDAL/OGR tools | 48 (5) | |
GRASSデータモデルとデータの交換 | GRASS data models and data exchange | 53 (30) | |
ラスターデータ | Raster data | 54 (16) | |
GRASSの2Dの、3Dのラスターデータモデル | GRASS 2D and 3D raster data models | 54 (2) | |
領域の統合と境界 | Managing regions and boundaries | raster map resolution | |
ジオコードされたラスターデータのインポート | Import of georeferenced raster data | 58 (8) | |
スキャンされた歴史的地図のインポートとジオコーディング | Import and geocoding of a scanned | 66 (3) | |
ラスターデータエクスポート | Raster data export | 69 (1) | |
ベクトルデータ | Vector data | 70 (13) | |
GRASSベクトルデータモデル | GRASS vector data model | 70 (3) | |
ベクトルデータのインポート | Import of vector data | 73 (5) | |
xy CAD描画のための座標変換 | Coordinate transformation for xy CAD drawings | 78 (2) | |
ベクトルデータのエクスポート | Export of vector data | 80 (3) | |
ラスターデータを使う | Working with raster data | 83 (86) | |
ラスター地図を表示、管理 | Viewing and managing raster maps | 83 (22) | |
ラスターデータの表示と、カラーテーブルの割り当て | Displaying raster data and assigning a color table | 83 (3) | |
ラスター地図に関するメタデータを管理 | Managing metadata of raster maps | 86 (2) | |
ラスター地図のクエリとプロファイル | Raster map queries and profiles | 88 (2) | |
ラスター地図の統計 | Raster map statistics | 90 (1) | |
ラスター地図のズームと、部分集合の生成 | Zooming and generating subsets from | 91 (1) | |
簡単なラスター地図の生成 | Generating simple raster maps | 92 (2) | |
再分類と再スケーリング | Reclassification and rescaling of | 94 (3) | |
ラスター地図 | raster maps | ||
ラスター地図タイプの記録と値の置換 | Recoding of raster map types and value replacements | 97 (2) | |
カテゴリラベルの割り当て | Assigning category labels | 99 (4) | |
マスキングとノーデータ値の取り扱い | Masking and handling of no-data values | 103(2) | |
ラスター地図の計算 | Raster map algebra | 105(10) | |
整数と浮動小数点データ | Integer and floating point data | 107(1) | |
基本的な計算 | Basic calculations | 108(1) | |
“if"状態を使う | Working with ``if'' conditions | 109(1) | |
r.mapcalcのNULL値の取り扱い | Handling of NULL values in r.mapcalc | 110(1) | |
r.mapcalcでMASKを作成 | Creating a MASK with r.mapcalc | 111(1) | |
特別なグラフ演算子 | Special graph operators | 112(1) | |
相対的座標での近傍演算 | Neighborhood operations with relative coordinates | 113(2) | |
ラスタデータの変換と内挿 | Raster data transformation and interpolation | 115(11) | |
離散的ラスターデータの自動的ベクトル化 | Automated vectorization of discrete raster data | 115(3) | |
連続フィールドの等値線の描画を生成 | Generating isolines representing continuous fields | 118(1) | |
ラスタデータのリサンプリングと内挿 | Resampling and interpolation of raster data | 119(5) | |
ラスター地図のオーバーレイとマージ | Overlaying and merging raster maps | 124(2) | |
ラスターデータの空間分析 | Spatial analysis with raster data | 126(29) | |
近傍分析とクロスカテゴリー統計 | Neighborhood analysis and cross-category statistics | 126(7) | |
ラスタフィーチャのバッファリング | Buffering of raster features | 133(2) | |
コストサーフェイス | Cost surfaces | 135(5) | |
地勢と分水界分析 | Terrain and watershed analysis | 140(13) | |
ランドスケープ構造解析 | Landscape structure analysis | 153(2) | |
ランドスケーププロセスモデリング | Landscape process modeling | 155(11) | |
水文学的、地下水のモデル | Hydrologic and groundwater modeling | 155(3) | |
浸食と宣誓証言モデル | Erosion and deposition modeling | 158(8) | |
ラスタベースのモデルと解析に関するまとめ | Final note on raster-based modeling and analysis | 166(1) | |
ボクセルデータを使う | Working with voxel data | 166(3) | |
ベクトルデータを使う | Working with vector data | 169(94) | |
地図の表示とメタデータ管理 | Map viewing and metadata management | 169(4) | |
ベクトル地図を表示 | Displaying vector maps | 169(3) | |
ベクトル地図メタデータ維持 | Vector map metadata maintenance | 172(1) | |
ベクトル地図属性管理とSQLのサポート | Vector map attribute management and SQL support | 173(14) | |
GRASS6でのSQLサポート | SQL support in GRASS 6 | 174(7) | |
サンプルSQLクエリと属性変更 | Sample SQL queries and attribute modifications | 181(4) | |
地図再分類 | Map reclassification | 185(1) | |
複数の属性があるベクトル地図 | Vector map with multiple attribute tables: layers | 186(1) | |
ベクトルデータをデジタル化 | Digitizing vector data | 187(5) | |
位相的データのデジタル化の一般原理 | General principles for digitizing topological data | 187(2) | |
GRASSでの対話的なデジタイジング | Interactive digitizing in GRASS | 189(3) | |
ベクトル地図クエリと統計 | Vector map queries and statistics | 192(4) | |
地図のクエリ | Map queries | 192(2) | |
ベクトルオブジェクトに基づくラスター地図統計 | Raster map statistics based on vector objects | 194(2) | |
ポイントベクトル地図統計 | Point vector map statistics | 196(1) | |
幾何学操作 | Geometry operations | 196(20) | |
位相的な操作 | Topological operations | 197(6) | |
バッファリング | Buffering | 203(1) | |
フィーチャの抽出と境界のディゾルブ | Feature extraction and boundary dissolving | 204(1) | |
ベクトル地図を修理 | Patching vector maps | 205(1) | |
ベクトル地図のインターセクディングとクリッピング | Intersecting and clipping vector maps | 206(3) | |
ベクトルの幾何の変換と3Dベクトルの作成 | Transforming vector geometry and creating 3D vectors | 209(2) | |
点からのコンベックスハルとトライアンギュレーション | Convex hull and triangulation from points | 211(1) | |
同じ位置の掘り出し物の複数のポイント | Find multiple points in same location | 212(2) | |
一般的な多角形境界の長さ | Length of common polygon boundaries | 214(2) | |
ベクトルネットワーク分析 | Vector network analysis | 216(11) | |
ネットワーク分析 | Network analysis | 216(5) | |
直線的な参照システム(LRS) | Linear reference system (LRS) | 221(6) | |
ラスタへのベクトルデータ変化 | Vector data transformations to raster | 227(3) | |
空間的な内挿と近似 | Spatial interpolation and approximation | 230(19) | |
内挿方法を選択 | Selecting an interpolation method | 230(5) | |
RSTによる内挿と近似 | Interpolation and approximation with RST | 235(2) | |
RSTパラメタの調整: テンションとスムージング | Tuning the RST parameters: tension and smoothing | 237(4) | |
RSTの精度を評価 | Estimating RST accuracy | 241(3) | |
セグメント化処理 | Segmented processing | 244(3) | |
RSTとのトポグラフィー分析 | Topographic analysis with RST | 247(2) | |
ライダーポイントのクラウドデータを使う | Working with lidar point cloud data | 249(8) | |
ボリュームに基づくは内挿 | Volume based interpolation | 257(6) | |
3番目の変数の追加: 高度のある降水量 | Adding third variable: precipitation with elevation | 258(3) | |
ボリュームとボリューム-時間内挿 | Volume and volume-temporal interpolation | 261(1) | |
地球統計学とスプライン | Geostatistics and splines | 262(1) |
Web 系の言語(って何?)に対して、 Google で 「○○ 入門」で検索してみる
…21世紀にもなってまだKENTかよ、という気は若干しなくもないですが、入門レベルだけで終わる需要が多いことも考えるとこんなもんだと思います。
「書籍もサイトも全部糞、公式のマニュアルのみ正確正当」というPHPです(そう思うなら翻訳しっかり訳してくれ)。公式マニュアルは手元に置いておきましょう。
日本語ドキュメントのいいのが無いのだけが欠点であるところのPythonさんです。まあこんなもんだと思います。
さて、順番的にオチです。Rubyです。
まず、講義用の1枚ページが引っかかりました。このサイト自体はなんにも悪くありませんが、このサイトが国内で1位になるのってどうなのよ。どうなのよう。
次に、PerlでもPHPでもPythonでもあった、同一団体が同一フォーマットで各言語の検索結果上位に食い込ませてるページがヒットです。いや内容が妥当なら問題ないですが。
で、3番目は大学に在籍さんのページです。ぬう。
ネタ元:http://pc11.2ch.net/test/read.cgi/tech/1170047838/61
追記
ブクマで「プログラミング」関連のタグをつけてる人には実は内容伝わってないんじゃいかと危惧中
やっぱ最後に持ってくるんじゃなく2行目くらいにすぱっと結論書いて判断仰ぐべきですかそうですか