はてなキーワード: 変数とは
この手の論ってよく見るけどそもそも定性的な「わいせつ」という概念を、定量的かつ「客観的な基準」として示すのって無理では?
何が「わいせつ」に当たるのかを誰が見ても明らかに定義した「客観的な基準」なるものが存在するのなら、そもそも裁判所なんて不要になるだろうし
社会は複雑怪奇で変数が多すぎる。違法なのか、適法なのか、違法ではないけどグレーなのか。公共広告なのか、民間広告なのか、ターゲットは誰なのか、ゾーニングしているのか、状況によって判断基準も変わるだろうし
客観的な基準を設けることなんて実質的に不可能だからその調整機関として裁判所が存在するわけで。更には変動する世の中に応じて法律自体も刻々と変化するわけでしょ
増田もまさか警察が小中学生向けの広報で注目を集めるために局部を絆創膏で隠したAV女優を起用しよう!なんて主張していたら、たとえ合法であっても批判すると思うのよな
自身が「客観的な基準」を示さずに、相手方にだけ(実質的に不可能に近い)「客観的な基準」を示すことを要求する、さらには提示できない(していない)ことを以て罵倒するのは、卑怯だと思う
なのでできるものならまず増田が「客観的な基準」とやらを示してほしい
結局、Vtuber擁護側も「俺的には大してエロくないからセーフ。基準は俺」としか言ってなくない?(そしてそれは仕方がないことだと思う)
-----
以下追記
「裁判で違法になった表現のみ批判されるべきである」という態度は、一見客観的なようで実は非常に主観的(であることに言ってる本人も気がついていない)だし、多々問題や矛盾点がある考え方だと思うのよね
・推定無罪の原則から、有罪が確定するまでは無罪として扱う必要がある。また確定判決が出るまで年単位の時間がかかる場合もあるのが現代日本の裁判制度である。この前提に立った際、たとえば「〇〇殺す」といった、どう考えてもアウトだし批判されても非難されても仕方ないよという表現でも、確定有罪判決が出るまでは一切批判すらしてはならない、ということになる。あまりにもラディカルすぎないか
・刑事では無罪だが、民事では違法性が認められて賠償請求が通るような事案(あるいは逆も可)があった場合、アウトなのかセーフなのかの判定が矛盾する
・さらには、どのような表現が有罪になってどのような表現が無罪になるのか、網羅的な法律の専門知識があって言っているわけでもないだろう
このあたりを踏まえると「裁判で違法になった場合のみ批判されるべき」という態度は、言葉を補えば「俺が、もし裁判になったらおそらく違法になるだろうと思っている表現のみ批判されるべき」としかいっておらず、その判断基準の内実を定量的に示したわけでもなく、非常に主観的だ。
そもそも行政分野ではあらゆる表現は違法にならない限りOKですよーなんてされておらず、各種ガイドラインが頒布されている。フェミが勝手に言っている、とかではなく、普通に中央省庁や自治体が制定しているものだ。
以下は埼玉県の広告ガイドラインだが、まさにP.10に今回の事案に近い例が記載されている(女性をアイキャッチャーに使う、性的側面、過度に性的な萌キャラなど)
https://www.pref.saitama.lg.jp/documents/64903/p4-p12.pdf
なので、裁判で違法にならない限りオールオッケーとあなた個人が考える分にはよいけれど、現実社会の行政・公共表現ではそんなラディカルな態度は取れるわけがないので、正直いうと世間知らずだな、という印象を受けました。
LISP(というかS式)で書いてる時と同じくらい、触っていて心地の良い言語
宣言的に処理を記述して、関数が順次評価されていく文というのは、集中して書いてると脳汁出るわけで、どのような原理が働いているのかわかりませんがSQLとかLISPとかは熱中して書いていられます
翻ると、酒を飲みながら書いたような宣言の離れている変数の中身とかオブジェクトの状態とかのご機嫌を伺いながら、国語の授業よろしくアルコールでラリってる作者の心を読心術で丁寧に読み解いていくタイプのプログラム言語というかコードには接触していると筆者の飲んだアルコールが私の脳みそにまで時空を超えて染み込んでくるようで、腐った靴下を噛み締めてチンピラのサンドバッグになってる気分
どうせなら気分良くプログラミングしたいですよ
いまもjQueryをWebアプリケーションの大事なライブラリとして使っている会社は少なくないと思う。
jQueryを会社で使っていると何が問題なのかを語っていこう。独断と偏見によるものなので、jQueryを使っていても問題ない会社も当然ある。たとえばペライチのサイトを作る会社とか小規模サイトなんかでは全く問題ない。
採用困難で売り手市場になっている時代、そして「jQueryを触らなければならない環境 vs モダンフロントエンド環境」という選択肢がある中で、あえてjQueryを選ぶフロントエンドエンジニアは少ない。
また、新人はもはやjQueryを学ぶことはない。彼らはES6以降のJavaScript / TypeScriptを書く。よしんばjQueryを学ぶことになった新人がいたとしても、それはただその新人が可哀想なだけで、現役なわけではない。ラガード(遅滞者)の仲間入りをさせているだけだ。新人でもキャリアをデザインできる新人は「jQueryはオワコン」という情報には触れているので、よほど就活で失敗しない限りはjQueryのところにたどり着かなくなっている。
そもそもバックエンドエンジニアでもモダンフロントエンドを書くような環境が増えてきた中で、2世代も前のjQueryだけでアーキテクチャに関する一考もないコードをメンテしなければいけないので、「jQuery」という言葉だけでフロントエンドエンジニアでなくとも入社を避けがちだ。(jQueryでアーキテクチャがしっかりしている可能性は低い。アーキテクチャがしっかりしているならばjQueryに依存しておらず、jQueryに依存していないのであれば簡単にjQueryから脱却できるはずで、簡単にjQueryから脱却できるならもう脱却しているはずだからだ)
メインストリームの部分はほとんどリプレイスが終わっているというでもなく、すべて現役でjQueryなのであれば尚更問題で、誰もメンテしたがらないコードの出来上がりだ。「弊社はCOBOLで書いてます!」とにこやかに言うようなものだ。
(ただし、さすがにjQueryだけでフロントをやっているという会社の求人をほとんど見かけることはない。無意識のスクリーニングで落としているのかもしれない)
jQueryを使っている会社には、フロントエンドエンジニアは一人もいないと言いきってもいいかもしれない。もしくは、今まさにjQueryをやめようとしているか、たまたま入ってきたフロントエンドエンジニアが今まさに辞めようと迷っているかのどれかだ。
「jQueryを使っていました」というエンジニアは、他社からはフロントエンドスキルが0とみなされる。つまり、フロントエンドエンジニアではないという意味だ。jQueryは、jQueryを使っている会社に対してしか武器にならないのだ(逆はできる)
jQueryを書ける人口自体は増えているだろうが、労働市場からは撤退し始めている。昔jQueryを書いていた人材の人数が上限で、そこから新たに学ぶ人の絶対数が減っているため、全体としては減っている。
私もjQueryは以前業務で書いていたが、もう数年書いていない。特にメリットを感じないからだ。遊びで、生のJavaScriptを書くことはある。
jQueryで入社するのは、昔からjQueryを使っている高齢のエンジニアか、なぜかjQueryを学ぶことになってしまった新人である可能性がある。
そのため、需要と供給に応じて、昔いたようなスキルレベルの人を今の市場で見つけようとすると費用がかかってしまう。jQuery書けますという人材が高年齢化しているのだ。そして世継ぎはいない。
リプレイスはハッキリ言って難しい。モダンなフロントエンドを学習するだけでは足りなくて、それを使いこなせた上でしかもjQueryを使用したカオスイベントコードも読めて、そしてアーキテクチャを考えてリプレイスしなければいけない。
時代が下るにつれて、そうしたハイスキル人材はより高価値になっていき、レア度も単価も高くなる。今そういう人を雇うという判断をしない会社が、どうして今後もっとハイスキルの人を雇えようか。
jQueryを使ったサービスがしっかり利益を出している点もリプレイスを難しくしている。全廃もできない。かと言ってコストに見合わなければリプレイスという経営判断も難しい。経営が困難な状態ならより厳しい。
何も理由がなくjQueryを使い続けたいという奇特な人は多くないはずだ。何か理由があってそうなっているわけだ。カッコよく言うと『ナッシュ均衡』という状態だろう。今会社にいる人材もいわゆる『jQuery人材』が多いため、そこを打破するのはとても困難な道だろう。
jQueryから抜け出すには、すでにいる人材がなんとかしてリプレイスするか、外から連れてきて改革するしかない。しかし大抵の場合、既存の従業員にとってはそんな大変なことをするよりも転職したほうが楽な道だ。(もちろん、「jQueryしかなかったサービスをモダンフロントエンドにした」というのが実績としてある人材はかなり魅力的な人材で引くてあまたなことだろう。その意味ではピンチをチャンスに変えるときの『チャンス』ではある)
ReactやVue.jsに変えたいと思ったとして「じゃあお前それですぐに利益出せんのかよ?」と詰められたら、その論争をクリアしてまで変えるのはほとんど無理に近い。通常、リプレイスそれ自体は価値を生み出さない。リプレイス後に運用コストが低下したり、人材獲得がしやすくなるために利益が出るのだ。リプレイスとは長期の投資であるため、短期的には必ず損失になる。経営が困難な状態でリプレイスしようとするのは、生活困窮世帯にリボ払いをやめさせるぐらい難しい。そのため、まず自分が身銭を切ってリプレイスするしかない。そしてリターンがあるかもわからない身銭は切りにくい。そして同僚は容易に『抵抗勢力』になる。
jQueryを今も使っているということは、裏を返せば「これまでリプレイスをしてこなかった」「リプレイスしようとしたが無理だった」という実績にもなる。
jQueryを使っている会社は、昔からあるコードをもとに書いているため、今もES6以前の文法で書いている可能性がある。そうしてどんどんと情報が少なく、古く、現代で通用しにくいものになっていく。
bundlerを使っていない可能性が高いし、もしかするとCI/CDも無いかもしれない。そうすると、モダンなインフラエンジニア(もしくはモダンなインフラ知識のあるエンジニア)がいないかもしれない。SREという概念がないかもしれない。
世間一般から見ると会社の中が古いのだが、古い会社にいると「自分が古い」とはなかなか思えないものだ。太っちょの集まりの中にいたら「自分はそんなに太ってない」と思うのと同じことだ。
すべては憶測なので、実際は違うかもしれない。
さんざんdisってきたが、そもそもjQueryは何も悪くないし、大変優れたライブラリだ。ちょっとしたプロトタイプを作るときには良いものであるかもしれない。しかも今もjQuery自体はメンテされている。そのため、状態管理さえうまくできていればjQueryだろうがなんだろうが問題ない。
問題は、jQueryというライブラリを使ってきた時代からアーキテクチャが前進していない点にある。何年もずっとその状態だということだ。そこを今日に至るまで誰1人として変えられなかったということだ。特に経営陣は何の問題視もしていない可能性が極めて高い。そうした社内のしがらみが反映された結晶体、それが『使用技術: jQuery』という言葉になっているのだと思う。また、ヤバさは、jQueryのバージョンに反比例する。
jQueryを使っているアプリケーションには、jQueryが担保していなかったアーキテクチャ部分に問題があることが多い。また、どこから呼ばれているか誰もわからない複雑なイベント、SPAもクソもないページ遷移ごとのリロード、誰もどこもテストできず、HTMLにベタ書きで書かれたJavaScriptコード、その場しのぎでデタラメに書かれた関数、無視される変数のスコープ、サポートが終わったライブラリ、ドキュメントを見つけるのすら困難なよくわからないライブラリ、高齢者しか知らない伝説の機能・伝説のハック、などもある。これらはモダンフロントエンドではほとんど発生しないものだ。
そのため、一定の基準として「jQueryを使っているかどうか」で、フロントエンドエンジニアとしてのやりがいがあるかどうかを判別できる。
そうして、フロントエンドエンジニアというのはもうjQueryに見向きもしていない。書けるけど書きたくない。パラレルワールドのようなものだ。
そういうようなことを「使用技術: jQuery」という文言から感じ取ってしまうのだ。
(そしてこれは、実際の仕事の中身が違うかどうかは関係ない。jQueryとは、そういうふうなブランドと化しているのだ)
jQueryを使っている会社からしたら「そんなことはわかっている」という部分で、「じゃあどうすればいいのか?」という部分が気になるところだと思う。
そこで、後編では「どうやってjQueryを全廃すればいいのか?」「実際にどのように全廃したのかの事例」について、だいたい来週ぐらいに書くつもりだ。
お楽しみに!
https://anond.hatelabo.jp/20210907184611 の続き
たとえば、以下のような問題を考えます。演習問題に限らず、教科書の本文や、解答の一文一文も「証明問題」だと捉えてこのような態度で読み解く必要があります。
x2 - 2a|x| - b = 0
それほど典型的な問題ではありません。少なくとも、何か簡単な公式があって2aやbなどを代入すれば答えが出てくる、というものではありません。
この問題を解くには、左辺の式が何を意味しているのか理解していなければいけません。これは、何か上手いやり方があって機械的に解ける場合でもそうです。
とxの二次式になるので、既に知られた方法で解の個数を求めることができます。ただし、たとえば方程式f≧0(x) = 0の解は、x≧0を満たすものだけを数えることに注意が必要です。したがって、単に判別式の符号を調べるだけでなく、二次関数f≧0(x)のx≧0の範囲での増減を調べる必要があります。x<0の場合も同様です。
結局、この問題を解くには
ということができる必要があります。特に前者を理解していないのは、問題文の式が何を意味しているのか分かっていないということですから、解法を覚えるとか言う以前の問題です。当然、これらが分からなければ調べたり他人に聞く必要があります。その際は、定義の数式を形式的に覚えたり当て嵌めたりするだけではなく、具体例を通じて、その意味を理解する必要があります。絶対値記号|x|であれば、xが正の数ならどうなるのか、負の数ならどうなるのか、y = |ax + b|や、y = |ax2 + bx + c|のグラフの概形はどうなるのか、等。
もし二次関数を調べた際に平方完成が分からなければ、それも調べる必要があります。平方完成を調べて文字式の展開で分からないところがあれば、それも調べる必要があります。そもそも、二次方程式を解く際になぜ(一次方程式では必要無かった)平方完成をするのか。そういった問題が解ける理屈(あるいは類似の問題と同じやり方では解けない理屈)を理解している必要があります。
また、自分で問題を解いて、たとえば場合分けの仕方が解答と異なるならば、それらが本当に同値なのかをきちんと確かめる必要があります。最初のうちは計算ミスをして符号などが逆になることもあるでしょうが、それもどこで間違えたのかをきちんと確かめる必要があります。
そういうことをすべて完璧にこなして初めて、この問題を理解したと言えるのです。
以下、解答例を載せます。匿名ダイアリーなので文字のみですが、実際は図を付けた方が良いでしょう。
f(x) = x2 - 2a|x| - bとおくと、
f(x) = 0の実数解の個数は、y = f(x)のグラフと、y = 0のグラフの交点の数であるから、これを求める。
とおく。y = f≧0(x)のグラフは、(a, -(a2 + b))を頂点とする下に凸な放物線で、y軸との交点は-bである。一方、y = f<0(x)のグラフは、(-a, -(a2 + b))を頂点とする、下に凸な放物線で、y軸との交点は-bである。
したがって、y = f(x)のグラフは、y = f≧0(x)のグラフのx≧0の部分を、y軸に関して対称に折り返した形をしている。
f(x)は、x = ±aで最小値-(a2 + b)を取る。したがって、y = f(x)のグラフとy = 0のグラフの交点の数は、
f(x)は、x = 0で最小値-bを取る。したがって、y = f(x)のグラフとy = 0の交点の数は
以上、(1-1)〜(1-5), (2-1)〜(2-3)がf(x) = 0の実数解の個数である。
上の解答例ではy = f(x)のグラフの位置関係を用いましたが、もちろん、f≧0(x) = 0、f<0(x) = 0の解を実際に求めても解けます。
この場合は、それぞれの解がx≧0、x<0を満たすかどうかを確かめる必要があります。そして、それぞれの場合でf≧0(x) = 0のx≧0を満たす解の個数とf<0(x) = 0のx<0を満たす解の個数を足したものが答えになります(x≧0とx<0に共通部分は無いので、これらを同時に満たすことはありません)。
f≧0(x) = 0の解は、
x = a ± √(a2 + b)
である。同様に、f<0(x) = 0の解は
x = -a ± √(a2 + b)
である。
とおくと、ra(b)はa2 + b≧0の範囲で定義される。また、ra(b)はbに関して単調増加であり、ra(0) = |a|である。つまり、f≧0(x) = 0およびf<0(x) = 0の2つの解が同じ符号を持つか否かは、b = 0を境界にして分かれる。
したがって、a2 + b≧0のとき、f≧0(x) = 0の解は
同様に、f<0(x) = 0の解は、a2 + b≧0のとき、
また、D < 0の場合は、f≧0(x) = 0、f<0(x) = 0ともに実数解を持たない。
以上をまとめると、f(x) = 0の解の個数は、以下のようになる。
(1-1) a2 + b<0のとき、0個
(1-2) a2 + b = 0のとき、2個(③と⑥でD = 0場合)
(1-3) a2 + b>0かつb<0のとき、4個(③と⑥でD>0の場合)
(2-2) b = 0のとき、1個(②と⑤で D = 0の場合)
何度も書いているように、たとえばx2 - 2ax - b = (x - a)2 - (a2 + b)などの式変形の意味が分からないのであれば、二次関数の復習をする必要があります。解答文中に出てきた「単調増加」などの用語も分からなければ調べる必要があります。
上記の場合分けが(a, b)のすべての組を網羅しているのか、と言ったことも注意する必要があります。
解答例2の①〜⑥の場合分けは、y = f≧0(x)およびy = f<0(x) のグラフとy軸との交点を考えています。これの符号と軸の位置で、どの範囲にy = 0の解が存在するかが決まります。たとえば、下に凸な放物線がy軸と負の値で交わるならば、x軸とは必ず正負両方の値で交わらなければいけません。逆に、y軸と正の値で交わるならば、x軸とは交わらない(D<0)か、放物線の軸がある方で2回交わります(D = 0の場合は1回)。解答例2ではra(b) = √(a2 + b)という関数を用意しましたが、このy軸との交点と軸に関する条件を代わりに説明しても良いです。このように、数式や条件が図形のどのような性質に対応するのかを考えることも数学の勉強では重要です。
また、「二次関数f(x)が下に凸で最小値が0以下であれば、f(x) = 0は実数解を持つ」ということを認めています。これは明らかに思えるでしょうが、極限を習った後であれば
実数値関数fが区間[a, b]で連続であれば、f(a)とf(b)の間の任意の実数γに対して、γ = f(c)となる実数c∈[a, b]が存在する。
という「中間値の定理」を暗に使っていることを見抜けなければいけません。このような定理が出てきたら、Part1でも述べたように、具体的な関数でどうなっているのか(たとえばf(x) = x2 - 2に対して、f(a) = 0となる実数aが存在することなど)、仮定を緩めたら反例があるのか(たとえばfの定義域が有理数ならどうか、連続でなければどうか)などを確認する癖をつけましょう。
y = x2 - 2a|x| - bのグラフとy = 0のグラフの交点を考える代わりに、y = x2 - 2a|x|のグラフとy = bのグラフの交点を考えても良いです。これは、本問と同値な方程式
x2 - 2a|x| = b
を考えていることに相当します。記述量はそれほど変わらないでしょうが、こちらの方が見通しは良いかも知れません。
仮に本問と異なり、aが定数の場合、たとえばa = 1であれば
y = x2 - 2|x|
のグラフは変数に依りませんから、y = bとの交点を考えるのは容易です。
実際、y = x2 - 2|x|のグラフは、頂点が(1, -1)、y軸との交点が0の、下に凸な放物線のx≧0の部分をy軸に関して対称に折り返した形です。
したがって、この場合は
です。
以上のことは、問題を解く際だけに行うのではなく、教科書本文、問題文、解答例の一文一文を「証明問題」だと思って常に意識する必要があります。
鑑定や価値測定の問題は非常に幅広いものである。人間にとっては、好意の返礼、物々交換、貨幣、信用、雇用、市場での購入など、あらゆる交換システムに関わってくる。また、強要、課税、貢ぎ物、司法上の刑罰の設定などにおいても重要である。動物の互恵的利他主義においても重要である。例えば、サルが背中を掻くために果物を交換することを考えてみよう。相互に毛づくろいをすることで、個人では見えないし届かないダニやノミを取り除くことができる。しかし、どれだけの毛づくろいとどれだけの果物を交換すれば、お互いに「公平」だと思える、つまり離反しないお返しになるのであろうか?20分間のバックスクラッチングの価値は、果物1個分であろうか、それとも2個分であろうか?また、どのくらいの大きさの果物であろうか?
血と血を交換するという単純なケースでさえ、見かけよりも複雑なのだ。コウモリは、受け取った血の価値をどのように見積もっているのだろうか。重さ、大きさ、味、空腹を満たす能力、その他の変数で価値を見積もるのだろうか?それと同じように、「あなたが私の背中を掻いてくれたら、私があなたの背中を掻く」という単純な猿の交換でも、測定は複雑になる。
大多数の潜在的な交換において、動物にとって測定問題は難題である。顔を覚えてそれを好意に結びつけるという簡単な問題以上に、そもそも好意の価値の推定値について双方が十分な精度で合意できるかどうかが、動物の相互的利他主義の主な障壁となっているのではないだろうか。
現存する旧石器時代初期の人類の石器は、我々のような大きさの脳には複雑すぎる面がある。誰が誰のためにどのような品質の道具を作ったのか、したがって誰が誰に何を借りているのかなど、彼らに関わる好意を記録しておくことは、一族の境界線の外ではあまりにも困難であっただろう。それに加えて、おそらく残っていない多種多様な有機物や、身だしなみなどの刹那的なサービスなどがあるであろう。これらの物品のほんの一部でも譲渡され、サービスが行われた後には、我々の脳は膨れ上がっていて、誰が誰に何を借りているのかを把握することはできなかった。今日、我々はこれらのことをよく書き留めているが、旧石器人には文字がなかった。考古学的な記録が示すように、氏族や部族間での協力が実際に行われていたとすれば、問題はさらに悪化する。狩猟採集民の部族は通常、非常に敵対的で相互に不信感を抱いていたからである。
貝がお金になる、毛皮がお金になる、金がお金になるなど、お金が法定通貨法に基づいて政府が発行した硬貨や紙幣だけでなく、さまざまなものであるとすれば、そもそもお金とは何なのであろうか。また、飢餓の危機に瀕していた人類は、狩猟や採集にもっと時間を割くことができたはずなのに、なぜネックレスを作って楽しんでいたのであろうか。19世紀の経済学者、カール・メンガーは、十分な量の商品交換から自然に、そして必然的に貨幣が進化することを初めて説明した。現代の経済用語で言えば、メンガーの話と似ている。
物々交換には利害関係の一致が必要である。アリスはピーカンを栽培してリンゴを欲しがり、ボブはリンゴを栽培してピーカンを欲しがる。たまたま果樹園が近くにあり、たまたまアリスはボブを信頼していて、ピーカンの収穫時期とリンゴの収穫時期の間に待つことができたとする。これらの条件がすべて満たされていれば、物々交換はうまくいく。しかし、アリスがオレンジを栽培していた場合、ボブがピーカンだけでなくオレンジも欲しかったとしても、運が悪かったとしか言いようがない - オレンジとリンゴは同じ気候では両方ともうまく育たない。また、アリスとボブがお互いを信頼しておらず、仲介してくれる第三者を見つけられなかったり、契約を履行できなかったりした場合も、運が悪いと言わざるを得ない。
さらに複雑な事態も起こりえる。アリスとボブは、将来的にピーカンやリンゴを売るという約束を完全に明確にすることはできない。なぜなら、他の可能性として、アリスは最高のピーカンを独り占めし(ボブは最高のリンゴを独り占めし)、他の人には残りかすを与えることができるからである。2つの異なる種類の商品の質と量を比較することは、一方の商品の状態が記憶でしかない場合には、より困難になる。さらに、どちらも凶作などの出来事を予測することはできない。これらの複雑さは、アリスとボブが、分離した互恵的利他主義が本当に互恵的であったかどうかを判断する問題を大きくしている。このような複雑な問題は、最初の取引と互恵的な取引の間の時間的な間隔や不確実性が大きいほど大きくなる。
関連する問題として、エンジニアが言うように、物々交換は「スケールしない」ということがある。物々交換は、少量であればうまく機能するが、大量になるとコストがどんどん高くなり、労力に見合わないほどのコストになってしまう。取引される商品やサービスがn個ある場合、物々交換市場ではn^2個の価格が必要になる。5つの商品であれば25個の価格が必要となり、悪くはないが、500の商品であれば25万個の価格が必要となり、一人の人間が管理するには現実的ではない。貨幣を使えば、500の製品に500の価格というように、n個の価格しかない。この目的のためのお金は、交換媒体としても、単に価値の基準としても機能する。(後者の問題は、暗黙の保険「契約」とともに、競争市場が存在しなかったことから、価格が近しい交渉ではなく、長い間進化してきた慣習によって設定されることが多かった理由でもある)。)
物々交換に必要なのは、言い換えれば、供給やスキル、好み、時間、そして低い取引コストの偶然の一致である。そのコストは、取引される商品の数の増加よりもはるかに速く増加する。物々交換は、確かに全く取引をしないよりははるかに効果的であり、広く実践されてきた。しかし、お金を使った貿易に比べれば、その効果はかなり限定的である。
原始的な貨幣は、大規模な貿易ネットワークよりもずっと前から存在していた。貨幣には、もっと早くから重要な用途があった。貨幣は、信用の必要性を大幅に減少させることで、小規模な物々交換ネットワークの働きを大きく改善した。好みが同時に一致することは、長い時間の間に一致することよりもはるかに稀だった。お金があれば、アリスは今月のブルーベリーの熟度に合わせてボブのために採集し、ボブは半年後のマンモスの群れの移動に合わせてアリスのために狩りをすることができ、誰が誰に借金をしているかを把握したり、相手の記憶や誠実さを信用したりする必要はない。母親の子育てへのより大きな投資を、偽造できない貴重品の贈与で担保することができる。貨幣は、分業の問題を囚人のジレンマから単純な交換に変えてくれる。
多くの狩猟採集民が使用していた原始的な貨幣は、現代の貨幣とは全く異なる姿をしており、現代文化の中では異なる役割を果たしており、おそらく後述する小さな交易ネットワークやその他の地域的な制度に限定された機能を持っていた。私はこのような貨幣を、本来の貨幣ではなく、収集品と呼ぶことにする。人類学の文献では、このようなものを「お金」と呼んでいるが、これは政府が印刷した紙幣や硬貨よりも広い範囲で定義されているが、このエッセイで使う「collectible」よりも狭い範囲で定義されている。また、曖昧な「valuable」という言葉もあるが、これはこのエッセイの意味でのcollectiblesではないものを指すこともある。原始貨幣の名称として他の可能性がある中で、コレクティブルという言葉を選んだ理由は明らかであろう。コレクティブルは非常に特定の属性を持っていた。それらは単に象徴的なものではなかった。コレクティブルとして評価される具体的な物や属性は、文化によって異なる可能性があるが、恣意的なものではない。収集品の第一の、そして究極の進化的機能は、富を貯蔵し、移転するための媒体であった。ワンパムのようなある種の収集品は、経済的・社会的条件が貿易を促進するところでは、現代人が知っているような貨幣として非常に機能的である。私は、コイン時代以前の富の移動手段を議論する際に、「原始的な貨幣」や「原始的な貨幣」という言葉を、「収集品」と同じように使うことがある。
人々、一族、あるいは部族が自発的に貿易を行うのは、双方が何かを得ることができると信じているからである。価値についての彼らの信念は、例えばその商品やサービスについての経験を積むなどして、取引後に変わることがある。交易の時点での彼らの信念は、価値についてはある程度不正確であるものの、利益の存在については通常正しいものである。特に初期の部族間貿易では、高額商品に限られていたため、各当事者が自分の信念を正しく理解しようとする強い動機があった。そのため、貿易はほとんどの場合、双方に利益をもたらした。貿易は、何かを作るという物理的な行為と同様に、価値を生み出した。
個人、一族、部族はそれぞれ好みが異なり、これらの好みを満たす能力も異なり、これらの能力や好み、そしてそれらの結果として得られる物について持っている信念も異なるため、貿易から得られる利益は常にある。このような取引を行うためのコスト(取引コスト)が、取引を価値あるものにするのに十分低いかどうかは別問題である。我々の文明では、人類の歴史上の大半の時代よりもはるかに多くの取引が可能である。しかし、後述するように、いくつかの種類の取引は、おそらくホモ・サピエンス・サピエンスが誕生した頃まで、一部の文化にとっては取引コスト以上の価値があった。
取引コストが低いことで利益を得ることができるのは、任意のスポット取引だけではない。これが、貨幣の起源と進化を理解する鍵となる。また、家宝を担保にすることで、取引の遅延による信用リスクを回避することもできた。勝った部族が負けた部族から貢ぎ物を取ることは、勝った部族にとって大きな利益となった。勝利者の貢ぎ物を集める能力は、貿易と同じ種類の取引コスト技術の恩恵を受けていたのである。慣習や法律に反する行為に対する損害賠償を請求する原告や、結婚を斡旋する親族集団も同様である。また、親族は、タイムリーで平和的な相続による富の贈与の恩恵を受けていた。現代文化では貿易の世界から切り離されている人間の主要なライフイベントも、取引コストを下げる技術によって、貿易に劣らず、時にはそれ以上の恩恵を受けていた。これらの技術のうち、原始的な貨幣(収集品)よりも効果的で重要なものはなく、また初期のものでもなかった。
H.サピエンス・サピエンスがH.サピエンス・ネアンデルターレンシスを駆逐すると、人口爆発が起こった。紀元前4万年から3万5千年の間にヨーロッパを占領した証拠から、サピエンス・サピエンスはネアンデルターレンシスに比べて環境収容力を10倍にしたこと、つまり人口密度が10倍になったことがわかる。それだけではなく、彼らは世界初の芸術を創造する余裕があった。例えば、素晴らしい洞窟壁画、多種多様で精巧な置物、そしてもちろん貝殻、歯、卵殻を使った素晴らしいペンダントやネックレスなどである。
これらは単なる装飾品ではない。収集品や、その時代に進歩したと思われる言語によって可能になった、新しい効果的な富の移動は、新しい文化的制度を生み出し、環境収容力の増加に主導的な役割を果たしたと考えられる。
新参者であるH.サピエンス・サピエンスは、ネアンデルタール人と同じ大きさの脳、弱い骨、小さい筋肉を持っていた。狩りの道具はより洗練されていたが、紀元前35,000年の時点では基本的に同じ道具であり、2倍の効果も10倍の効果もなかったであろう。最大の違いは、収集品によってより効果的に、あるいは可能になった富の移動だったかもしれない。H.サピエンス・サピエンスは、貝殻を集めて宝石にしたり、見せびらかしたり、交換したりすることに喜びを感じていた。ネアンデルターレンシスはそうではなかった。これと同じことが、何万年も前にセレンゲティで起きていたのである。
ここでは、コレクションアイテムが、自発的な無償の相続、自発的な相互取引や結婚、法的判断や貢ぎ物などの非自発的な移転など、それぞれの種類の富の移転において、どのように取引コストを下げたかを説明する。
これらの種類の価値移転はすべて、人類の先史時代の多くの文化で行われており、おそらくホモ・サピエンス・サピエンスが誕生したときから行われていたと考えられる。このような人生の一大イベントである富の移転によって、一方または両方の当事者が得られる利益は非常に大きく、高い取引コストにもかかわらず発生した。現代の貨幣と比較して、原始的な貨幣の速度は非常に低く、平均的な個人の一生の間にほんの数回しか譲渡されないかもしれない。しかし、今日では家宝と呼ばれるような耐久性のある収集品は、何世代にもわたって持ち続けることができ、譲渡のたびに相当な価値を付加することができたし、しばしば譲渡が可能になることもあった。そのため、部族は、宝石や収集品の原料を製造したり、探索したりするという、一見すると軽薄な作業に多くの時間を費やしていた。
富の移転が重要な要素となっている制度では、次のような質問をする:
1. 事象、移転された財の供給、移転された財の需要の間には、時間的にどのような偶然の一致が必要だったか?偶然の一致があり得ないことは、富の移転にとってどれほどあり得ないことか、あるいはどれほど高い障壁になるか?
2. 富の移転は、その制度だけで収集品の閉ループを形成するのか、それとも循環サイクルを完成させるために他の富の移転制度が必要なのか。貨幣の流通の実際のフローグラフを真剣に考えることは、貨幣の出現を理解する上で非常に重要である。多種多様な取引の間で一般的に流通することは、人類の先史時代のほとんどの期間、存在しなかったし、これからも存在しないであろう。完結したループが繰り返されなければ、収集品は循環せず、価値がなくなってしまう。作る価値のある収集品は、そのコストを償却するのに十分な取引で価値を付加しなければならない。
この件のブコメがひどい
https://www3.nhk.or.jp/news/html/20210905/k10013244361000.html
https://b.hatena.ne.jp/entry/s/www3.nhk.or.jp/news/html/20210905/k10013244361000.html
元の記事は「蔵書数が多いほうがテストの正答率が高くなる傾向」という指摘をしているだけで、まだ因果関係は主張してない。
この時点で「因果関係じゃなくて相関関係じゃないか」と言っているコメントは無駄だ。因果関係を勝手に読み込んでそれを否定してどうする。
で、これが「典型的な疑似相関(キリッ」とコメントしてる連中はどこに根拠があるんだ。
経済面を統制しないとわからん、というのはその通りだが、統制してもなお影響がある可能性はそれなりにあるだろ。
もちろん、この話では「本の数」は「家庭の経済的、文化的な資本をはかる指標」として使われている。
疑似相関って言ってる連中(特に収入だろと言っている連中)は何が言いたいんだ? 下のうちのどっちかか?
2)文化的資本が学力に影響を与えているというのは疑似相関で、実際は経済力が影響しているだけだ
3)本以外にも影響はあるのでは ← 当たり前。今回は使った指標が本だということ
コメントにも指摘してるものがあるが、 2)はない。これは色んな調査でもう否定されている。
学力みたいな複雑なものが、ひとつの変数の影響で決まるわけない。
経済面だけ支援してもダメかもしれん、というのを明らかにするにはこういう角度からの調査がもっといるだろ。
一回の調査でなんでもかんでもわかるわけないんだよ。
イギリスの野外ロックフェスティバルの件、
政府のCOVID-19対策の実験イベントの一つとして開催された「ラティチュード・フェスティバル」には、7月21~24日の開催期間中、1日当たり約3万7000人が訪れた。
サフォークの自治体によると、ラティチュードの数日後に検査で陽性となった1050人のうち、175人がサフォーク在住だった。
(同上)
政府の報告では、同イベントの開催時期に619人が新型ウイルスに感染した。
(同上)
という数字から、ものすごく雑にフジロックフェスティバルでの感染者数を推定してみると、
-- | ラティチュード・フェスティバル | フジロックフェスティバル |
---|---|---|
開催期間を通しての総来場者数 | 148,000人(3万7000人*4日) | 35,449人 |
開催数日後に数日後に検査で陽性となった人数 | 1,050人 | 252人 |
参加者全体の陽性率 | 7.10% | 7.10% |
フェス開催中に感染した人数 | 619人 | 14人 |
フェス開催中の感染率 | 0.42% | 0.42% |
となるわけだけれど、実際にはデルタ株の割合、マスク着用率、ソーシャルディスタンスの遵守状況、とか色々な変数を考慮して推計しなければいけないんだろう。誰か詳しい人お願いします(他力本願)
今回のONSの分析では、両地方とも最困窮地域での死亡率が非常に高いことがわかった。イングランド全体における10万人当たりの死亡者数は81.9だが、困窮指数が高い地域順に見ると、128.3、124.8、114.5、88.3、80.3、73.2、71.8、70.3、67.0、58.8で、最困窮地域では最も恵まれた地域の2倍以上高いことが明らかになった。一方、ウェールズ全体における10万人当たりの死亡者数は67.6だが、困窮指数が高い地域順では109.5、78.5、64.2、50.5、57.5で、イングランドと同様に困窮度の高い地域の死亡率が圧倒的に高い。
イングランドでの具体的な地域について見て行くと、ロンドンでの10万人当たりの死亡者数は137.6と極めて高い。とりわけ突出しているのはブレント210.9、ニューアム196.8、ハックニー182.9、ハーロウ178.0、ハーリンゲイ177.9。これに対し死亡率が低いのは、シティ・オブ・ロンドン42.6、リッチモンド・アポン・テムズ85.4、カムデン89.7、ベクスリー91.6、キングストン・アンド・チェルシー92.8となっている。
ただ中心部であり金融センターとなっているシティ・オブ・ロンドンの2020年の居住人口は7,561人と推計されているので、多くが20万人から30万人規模の人口をもつ他の32自治区とは区別して解釈する方がよいと思われる。さらにこれらの地域の中には、例えばハーリンゲイのように有数の高級住宅街と最困窮地域とが隣接している地域があることにも留意したい。
ロンドン以外の地域で10万人当たりの死亡者数最も高いのは、イングランド北西部のサルフォードで199.6。以下、西ミドランズのウォルソール159.1、ヨークシャー北部のミドルズブラ148.3、バーミンガム144.1、リバプール140.2だった。これに対し死亡率が低いのは、イングランド南東部のヘイスティングズ8.9、東部リンカシャ―にあるグリムズビー14.1、ノーウィッチ23.0、リンカーン29.5、プリマス33.5となっている。
海外からの留学先として人気のあるオックスフォードは66.0、ケンブリッジは66.1だった。この両地域は大学を中心に独自の社会・文化が形成され、共通点も多いが、死亡率までが近似していることが注目される。この数値にも、コロナ関連死亡率と社会経済状況との関連が表れていると言えそうだ。
なお、ONSが発表した同期間のデータには、新型コロナを含む全てに起因する死亡者数と10万人当たりの調整死亡者数も記載されているが、イングランドでは困窮指数が高い地域順に466.2、431.4、387.7、342.5、320.0、299.7、290.1、279.5、271.0、242.6で、やはり困窮度が高いほど死亡率が際立って高い。さらにウェールズでも412.5、364.4、294.7、267.8、261.7と同様の状況が明らかになっている。
【イギリス】政府統計局、新型コロナ関連死亡率は最困窮地域で2倍。格差影響が浮き彫りに
https://sustainablejapan.jp/2020/06/20/uk-covid-19-mortality-rate/51049
ジニ係数と超過死亡に強い相関関係
データサイエンティストのユーヤン・グー氏はこのほど、解析モデルを何度も調整して、41種類の変数と米国の各州の新型コロナ死者数との間の相関関係を探った。
その結果、どの解析においても新型コロナによる死亡と重要な相関関係がある変数は3つしかないことがわかった。所得格差、人口密度、人口当たりの介護施設入所者数だ。そのうち最も影響が大きいのは所得格差だった。
世界を見渡すと、グー氏はいいポイントを突いているようだ。所得格差が小さい北欧諸国では、新型コロナの人口当たりの死者数が欧州全体を下回っている(厳しい行動規制を取らなかったスウェーデンでも同じだ)。
ジニ係数が0.29のフランスでは、0.34の隣国の英国より(死者数が平年に比べどの程度多いかを示す)超過死亡が格段に少ない。一方で、格差が著しく大きい米ニューヨーク州では、新型コロナの死者数もずばぬけて多い。フロリダ州はいずれの点でも突出していない。
グー氏と同じように変数を用いて分析した研究は少ない。だが、本誌(The Economist)が新型コロナによる死者数の決定要因を巡る研究論文を数十件調べた結果、所得格差は死者数がばらつく理由を解明する力が一貫して強いことを確認した。例えば、カナダ・マギル大学のフランク・エルガー氏らは84カ国を調査し、ジニ係数が1%上昇すると、新型コロナによる死亡率が0.67ポイント上昇することを突き止めた。
また、米スタンフォード大学のアナベル・タン氏、ジェシカ・ヒンマン氏、ホーダ・アブデル・マギド氏は米国の各郡を調べ、所得格差と新型コロナ感染者数と死者数との関係性は2020年こそ一定しなかったが、おおむね関係性があり、格差が大きい郡ほど感染者や死者が多くなる傾向があることを確認した。
▼コロナ死の多寡 決める格差(The Economist): 日本経済新聞
https://www.nikkei.com/article/DGXZQOCB010TH0R00C21A8000000/
装備のセットにあたま、防具、こてみたいな種類があってそれをList<List<bool>>で管理していた
この変数とは別にアイテム一覧みたいな変数もあって(String[]{初級、冒険者、炎。。。}みたいな)そこと突き合わせて使っていた
これはDB管理するときに一つのこの変数自体を一つのKeyValueで管理していたからなんだけど
最近そういうものを管理するための方法が用意されてて、〇〇セットKeyValueで{頭 = true、防具。。。}みたいなセットごとに保存するAPIがあることを知った
だからローカルのほうでもList<Bool>じゃなくてClassとか構造体に変えることも可能なんだけど、これってわかりやすさのために変えるべき?
開発終盤でショップ機能とか装備入れ替えで使ってるから結構修正いるんだが、DBから引っ張てくるときにList<bool>に変えることで対応も可能
はてなブックマークのコメントをブックマークすると、記事ページから取得された概要テキストが変数だらけで情けないですわ
このブックマークは合計 {{ #hasPurple }}Purple Star {{ purpleCount }}{{ /hasPurple }} {{ #hasBlue }}Blue Star {{ blueCount }}{{ /hasBlue }} {{ #hasRed }}Red Star {{ redCount }}{{ /hasRed }} {{ #hasGreen }}Green Star {{ greenCount }}{{ /hasGreen }} {{ #hasYellow }}Normal Star {{ yellowCount }}{{ /hasYellow }} のスターを獲得しています!
2021-08現在
去年も書いたけど経済格差で死んでるだけで日本みたいに医療もIT活用も終わってないからな
エリート様はいつも通りで問題ないだろうけどそれ以外の国民はAmazon倉庫みたいな
やっぱ格差はあるもの前提で海外行くならアメリカ1択ですわ・・・
今回のONSの分析では、両地方とも最困窮地域での死亡率が非常に高いことがわかった。イングランド全体における10万人当たりの死亡者数は81.9だが、困窮指数が高い地域順に見ると、128.3、124.8、114.5、88.3、80.3、73.2、71.8、70.3、67.0、58.8で、最困窮地域では最も恵まれた地域の2倍以上高いことが明らかになった。一方、ウェールズ全体における10万人当たりの死亡者数は67.6だが、困窮指数が高い地域順では109.5、78.5、64.2、50.5、57.5で、イングランドと同様に困窮度の高い地域の死亡率が圧倒的に高い。
イングランドでの具体的な地域について見て行くと、ロンドンでの10万人当たりの死亡者数は137.6と極めて高い。とりわけ突出しているのはブレント210.9、ニューアム196.8、ハックニー182.9、ハーロウ178.0、ハーリンゲイ177.9。これに対し死亡率が低いのは、シティ・オブ・ロンドン42.6、リッチモンド・アポン・テムズ85.4、カムデン89.7、ベクスリー91.6、キングストン・アンド・チェルシー92.8となっている。
ただ中心部であり金融センターとなっているシティ・オブ・ロンドンの2020年の居住人口は7,561人と推計されているので、多くが20万人から30万人規模の人口をもつ他の32自治区とは区別して解釈する方がよいと思われる。さらにこれらの地域の中には、例えばハーリンゲイのように有数の高級住宅街と最困窮地域とが隣接している地域があることにも留意したい。
ロンドン以外の地域で10万人当たりの死亡者数最も高いのは、イングランド北西部のサルフォードで199.6。以下、西ミドランズのウォルソール159.1、ヨークシャー北部のミドルズブラ148.3、バーミンガム144.1、リバプール140.2だった。これに対し死亡率が低いのは、イングランド南東部のヘイスティングズ8.9、東部リンカシャ―にあるグリムズビー14.1、ノーウィッチ23.0、リンカーン29.5、プリマス33.5となっている。
海外からの留学先として人気のあるオックスフォードは66.0、ケンブリッジは66.1だった。この両地域は大学を中心に独自の社会・文化が形成され、共通点も多いが、死亡率までが近似していることが注目される。この数値にも、コロナ関連死亡率と社会経済状況との関連が表れていると言えそうだ。
なお、ONSが発表した同期間のデータには、新型コロナを含む全てに起因する死亡者数と10万人当たりの調整死亡者数も記載されているが、イングランドでは困窮指数が高い地域順に466.2、431.4、387.7、342.5、320.0、299.7、290.1、279.5、271.0、242.6で、やはり困窮度が高いほど死亡率が際立って高い。さらにウェールズでも412.5、364.4、294.7、267.8、261.7と同様の状況が明らかになっている。
【イギリス】政府統計局、新型コロナ関連死亡率は最困窮地域で2倍。格差影響が浮き彫りに
https://sustainablejapan.jp/2020/06/20/uk-covid-19-mortality-rate/51049
ジニ係数と超過死亡に強い相関関係
データサイエンティストのユーヤン・グー氏はこのほど、解析モデルを何度も調整して、41種類の変数と米国の各州の新型コロナ死者数との間の相関関係を探った。
その結果、どの解析においても新型コロナによる死亡と重要な相関関係がある変数は3つしかないことがわかった。所得格差、人口密度、人口当たりの介護施設入所者数だ。そのうち最も影響が大きいのは所得格差だった。
世界を見渡すと、グー氏はいいポイントを突いているようだ。所得格差が小さい北欧諸国では、新型コロナの人口当たりの死者数が欧州全体を下回っている(厳しい行動規制を取らなかったスウェーデンでも同じだ)。
ジニ係数が0.29のフランスでは、0.34の隣国の英国より(死者数が平年に比べどの程度多いかを示す)超過死亡が格段に少ない。一方で、格差が著しく大きい米ニューヨーク州では、新型コロナの死者数もずばぬけて多い。フロリダ州はいずれの点でも突出していない。
グー氏と同じように変数を用いて分析した研究は少ない。だが、本誌(The Economist)が新型コロナによる死者数の決定要因を巡る研究論文を数十件調べた結果、所得格差は死者数がばらつく理由を解明する力が一貫して強いことを確認した。例えば、カナダ・マギル大学のフランク・エルガー氏らは84カ国を調査し、ジニ係数が1%上昇すると、新型コロナによる死亡率が0.67ポイント上昇することを突き止めた。
また、米スタンフォード大学のアナベル・タン氏、ジェシカ・ヒンマン氏、ホーダ・アブデル・マギド氏は米国の各郡を調べ、所得格差と新型コロナ感染者数と死者数との関係性は2020年こそ一定しなかったが、おおむね関係性があり、格差が大きい郡ほど感染者や死者が多くなる傾向があることを確認した。
▼コロナ死の多寡 決める格差(The Economist): 日本経済新聞
https://www.nikkei.com/article/DGXZQOCB010TH0R00C21A8000000/
= (散布図を見ながら人力で推定する)
「人力で推定する」際の脳内の処理を何とか形式化すれば、まあ何とか許容できるものになるのでは。
プログラマーに憧れる皆さん!こんばんは。
「自分は文系だから」「未経験だから」と諦めていませんか?大丈夫です!プログラミングにセンスは不要です。正しい手順で学べば、文系や未経験でも、誰でも一流のプログラマとして活躍することができます。
今日は、未経験から最短でWeb系企業に就職するための勉強法をご紹介します!
もっともオススメの方法は、顕正会のセミナーに参加することです。
顕正会は、日本で最大のエンジニアのコミュニティであり、非常に良質なテキストを用いて、プログラミング初心者向けのセミナーをしていることで有名です。顕正会に入ることで、未経験からでも一流エンジニアのノウハウを学ぶことができます。
また、意外と知られていませんが、日本のエンジニアの8割は顕正会の出身です。実はあのひろゆきやビル・ゲイツも顕正会の出身です。ですので、顕正会のネットワークを介して就職先を斡旋してくれたりしますし、自分が顕正会員だと、面接時にも非常に有利になります。
顕正会のセミナーは、インターネットからも応募することができますし、秋葉原などで声をかけられることもありますので、誰でも簡単に参加できます。会員もフレンドリーな方ばかりですので、是非、お気軽に応募してみて下さい!無料体験もできますよ。
プログラミングの勉強を始める前に、まず、必要なものを準備しましょう。必ず必要なものと、できればあると良いものは以下の通りです。
可能な限りスペックの高いものを買いましょう。2021年現在であれば、CPUは18コア、36スレッド。RAMは128GBくらいはあると良いでしょう。ストレージはSSDであれば1TBもあれば十分です。
OSは、Windowsで開発するならWindowsが、Macで開発するならMacが必要です。よく分からなければMacを買っておく方が良いでしょう。基本的にMacにできてWindowsにできないことはありません。
インターネットは、この記事を見ている人は既に持っているでしょう。ただし、モバイル回線で見ている人は、自宅に有線のインターネット環境を用意した方が良いです。
顕正会に入会すれば、上記のスペックのPCを無料で貸し出ししてくれます。また、法人向けの専用線を無料で取付工事を行ってくれる上に、通信費を全て負担してくれます。
まず、他の会員と連絡を取るために、SNSのアカウントを持っていると良いでしょう。
最近は完全にPC上での学習もできますが、やはり、勉強の基本は紙のノートに直接書くことです。医学的にも、手指の動きと脳の記憶回路が関連していることは証明されており、手を動かすことで効率的にものを覚えることができます。
Kindleなどの電子書籍リーダーは持っておいた方が良いです。紙の本は時代遅れです。いやしくもITのプロを目指そうという人間が、このような最先端のデバイスを使っていないのは恥だと思うべきです。紙の本を買わないことは、環境を守ることにも繋がります。現金も持つのはやめましょう。
せっかくセミナーに参加しても、受身で聴くだけでは、プログラミングを習得することは難しいです。ここでは、自宅でどのような勉強をすればよいのか、ご紹介します。
まずは、教科書や参考書を写経することから始めましょう。教科書や参考書の本文を一字一句正確に書き写すのです。
よく、「写経は理屈を学べないからだめだ」と批判されますが、まずは正しい「型」を体に覚え込ませるのが先です。野球や水泳などでも、細かい理屈よりも先にフォームを固めるのと同じです。書き写している内に理屈は自然と身に付きます。
また、写経のメリットは「飛ばし読み」を防げるところです。一字一句正確に写経をすれば、細かい部分を「分かったつもり」になって飛ばしてしまうことを防げます。たとえば、比較演算子の等号は=ではなくて、==です。プログラミングはこういうところに注意して学ばなければいけません。
教科書のサンプルコードをノートに書き写したら、それを今度は自力でフローチャート(UML)に変換してみましょう。そうすることで、自分が本当にそのコードを理解しているのか、確かめることができます。
フローチャートやUMLが素早く正確に描けることは、プログラマーとして働く上で非常に重要なスキルです。それらはソフトウェア設計の基礎となりますし、ソースコードを読めない営業や顧客にとっては貴重な資料となるからです。プロのエンジニアは、COBOLのソースコード10万行を1週間でフローチャートにして、Excelに転載することができます。
ここで一つ注意すべきことがあります。フローチャートを描くときは、必ず専用の定規を用いて描いて下さい。フリーハンドで描いたものは業務ではフローチャートとは認められません。これはまともな企業に就職すれば研修などで必ず習うことですから、今の内に覚えておきましょう。
エンジニアを目指すのであれば、プログラミングだけではなく、Excelの使い方も学びましょう。Excelはエンジニアにとっての万能プラットフォームです。エンジニアはあらゆる作業をExcelで行います。セル結合や罫線を用いて、見栄えの良い資料を作る技術は、エンジニアにとって必須です。
プログラミング学習中であれば、たとえば以下のような題材の資料を作ってみると良いでしょう。
尤も、以上の資料は、ツールを使うことで自動で作成することもできます。たとえば、ソースコードの更新履歴はGitなどのバージョン管理システムを使うことでも管理できます。しかし、それらの資料としてのクオリティは非常に低いため、アマチュアしか使うことはありません。プロを目指す皆さんは、必ずExcelを使いこなせるようになりましょう!VBAの習得も必須です。
以上、プログラミングの勉強法について解説しました。ここからは、実際にソースコードを書くときのコツを紹介していきます。他のプログラマと差をつけることができる技術ですので、意識するようにして下さい。
理想は、aやxなどの一文字です。ただし、これだけだと26文字しか使えないので、a1, a2, ...のように連番でグルーピングすると良いです。
また、変数の宣言と使用箇所が離れた場合に、変数の型がすぐに分かるように、たとえばint型であればi1, i2, ...、string型であればs1, s2, ...のように命名すると、読む人に親切で自分もミスしにくくなります。
変数名を長くするのは、以下のデメリットがあるため、絶対にやめましょう。
多くのプログラミング言語には、クラスや関数といった機能がありますが、これらは基本的にライブラリ提供者などが使う想定の機能であり、一般のプログラマが使うのは好ましくありません。したがって、クラスや関数はなるべく使わないようにして下さい。
不要な関数を作らないためのテクニックには、以下のようなものがあります。
まず、関数の引数に「フラグ」を渡し、関数内部で処理を切り替えれば、1つの関数で複数の処理をすることができます。
function f(i) { switch(i) { case 1: // i = 1のときの処理 break; case 2: // i = 2のときの処理 break; case 3: // i = 3のときの処理 break; // ... } }
この方法は、以下に述べる「変数の寿命を伸ばす」効果もあります。つまり、この関数内で宣言された変数は、すべての処理で共通して使用することができます。
クラスに不要な関数を作らないようにするには、「継承」を用います。複数のクラスで用いる関数を定義したクラスを1つ作っておき、そのクラスを継承すれば、新しいクラスに関数を定義する必要はありません。
理想的には、プログラム内のすべての関数を同一のクラスに定義し、それを継承するべきです。そのようなクラスは俗に「神」と呼ばれ、プログラマからはこの上なく尊ばれています。
class God { f1() { // 関数1 } f2() { // 関数2 } // ... } class C1 extends God { // 何も書かなくても上の関数が使える! } class C2 extends God { // 何も書かなくても上の関数が使える! } // ...
変数は宣言する場所によって、ソースコードのどの範囲から参照できるかが決まっています。この範囲が広いことを、「変数の寿命が長い」と言います。
たとえば、以下のコードのaは、関数定義の外側からは参照することができません。
function f() { var a = 1; return a; }
一方、以下のコードのaは関数の内外どちらからでも参照することができます。
var a = 1; function f() { a = 2; return a; }
せっかく作った変数がすぐに死んでしまうのは、非常にもったいないです。ソースコードの表面には現れませんが、変数を作ったり捨てたりするのには、計算コストがかかります。したがって、寿命の短い変数を作りすぎてしまうと、プログラムが遅くなってしまいます。
また、変数の寿命が長いということは、変数をたくさん作らなくても、1つの変数を色々なところで利用できるということであり、とても便利です。たとえば、上記の前者のコードでは、関数の外部からaの値を参照したくなっても、参照することができません。後者のように書いておけば、プログラムのどの箇所からでも、aの値を参照したり、更新することができます。したがって、変数の寿命を長くするとプログラムを変更しやすくなります。つまり、保守性が上がります。
例外とは、プログラムが予期しない処理をしようとした場合に、プログラムの実行を停止し、呼び出し元にエラーを通知する機能です。たとえば、「test.txt」というファイルを開こうとしても、そのファイルが存在しない場合は、例外となります。
例外が発生すると、プログラムが停止してしまうため、非常に困ります。したがって、プログラマは例外をきちんと処理しなければなりません。
ほとんどのプログラミング言語には、例外処理のための機構があります。たとえば、以下のような構文です。
try { // 例外が発生し得る処理 // ex. ファイルを開く } catch (e) { // 例外が発生したときに、実行する処理 }
例外への対処は実はとても簡単です。是非ここで覚えて下さい。上記のような機構のある言語であれば、catch節の中身を何も書かなければ、例外が発生しても、何事もなくプログラムは動作を続けます。
try { // 例外が発生し得る処理 } catch () {}
全ての例外を潰せば、決して不慮の動作で停止することのないプログラムを作ることができます。ですから、例外が発生し得るコードは、積極的に上記のtry-catch構文を用いて、例外を潰すようにしましょう。
= (散布図を見ながら人力で推定する)
「人力で推定する」際の脳内の処理を何とか形式化すれば、まあ何とか許容できるものになるのでは。
せめて、神託としてある程度でも当たっていれば面白いが、たった一週間後なのに4割以上外れたり、精度悪すぎ。
= (散布図を見ながら人力で推定する)
「人力で推定する」際の脳内の処理を何とか形式化すれば、まあ何とか許容できるものになるのでは。
大学物理の教科書では、ベクトル場を曲線lあるいは曲面Sに沿って積分する際に、「∫l F・dl」とか「∫S F・dS」といった表記が使われる。これは教育的に何のメリットも無いので、本当にやめて欲しい。
何が問題かと言えば、多くの教科書でこの表記が使われるにも関わらずその定義が書かれていないことだ。これは喩えるなら、実数a, bに対して「a ☆ b」という操作が行われているが、肝心の二項演算子「☆」の定義が無い、というようなものだ。
定義が書いていないなら、例題などからその計算方法を推測するしかない。しかし、よりにもよってその例題が、「Sが球面で、Fの大きさはSの中心からの距離にのみ依存する」といった積分が必要ないものしか載っていないのである。
このような教科書では、この計算が出てくる概念を正確に学ぶことはできない。
そもそも、この計算はこんな意味不明な表記を使わずとも書ける。
x, y, zを変数とする直交座標で、F = (Fx, Fy, Fz)とすれば、
である。ただし、lやSを適切な「向き」でパラメータ表示しないと符号が逆になることに注意。この表記は、同時期に数学で学ぶであろう微分積分の教科書に必ず書いてある。
上記のように微分形式を使うことには、単に曖昧さがなくなるというだけでなく、大きなメリットがある。
みたいなベクトル解析の定理を3つほど覚えている。微分形式を使うと、これらの定理を覚える必要がなくなる。
Dを境界がなめらかであるなどの十分によい性質を持った領域とする(2次元でも3次元でもいい)。∂DをDの境界とする。ωはDの内部および境界で定義された微分形式とする。このとき、上の一連の定理はすべて
∫D dω = ∫∂D ω
「勝負を挑んだ」挑戦者氏が5日目の7/11(日)の予測の結果をまだ書いてない気がするけど、予測はKnoa氏が699人・挑戦者氏が702人・実際が614人で、3勝2敗1分だよね? これ、勝ち越しだ負け越しだと云々できるレベルの精度の差かなあ…と思うし、Knoa氏が見落としているデータも踏まえてモデルをきちんと作ってるから精度が高いと自負する挑戦者氏が、これだけ激しい乖離を出してしまっているということは、挑戦者氏のご自慢のモデルも、Knoa氏に噛み付くほど大したことないじゃないの?という感想も持ってしまった。
挑戦者氏はKnoa氏の予測について「説明変数の記述ばかりで、モデルの記述がない」と厳しく批判してるんだけど、おれみたいな外野からすると、モデルとか構築がどうであっても、そこそこの予測精度が出てるんだったら別にそれで構わないんだよね。ロジックよりもアウトプットと現実との対応のほうが大事なの。事前に書かれた予測が比較的実態に則してるなら、それを踏まえて自分の危機管理とか今後の生活の仕方や商売の指針にもできるわけだからさ。
いくら挑戦者氏のモデルが精緻でも、Knoa氏が念頭に置いてない重要な説明変数が考慮に入れられてても、それは挑戦者の頭の中で組み立てられたバーチャルな完全性でしかなくて、そのシミュレーションが現実世界と照応してないなら、おれにとっては特に優位性はない。「いや、このデータを入れなければダメなんだ、モデルを提示しなければダメなんだ」という主張は承るとしても、その主張の正しさを外野のおれたちが判断する時には、やっぱり的中率ありきなんだよ。
それに、挑戦者氏とKnoa氏の予測って言うほど乖離してないんだよね。「Knoa氏の予測は常に上振れする、悲観的だ」ということなら、過剰に危機感を煽る危険な予測だ、みたいな批判もできるけど、実際は挑戦者氏の予測のほうが下回ってる日もあれば、完全に同一だった日もある。たった6日間の予測でだよ。
自分は大局的判断のベースにするには、数人という単位での的中率のわずかな差よりも、外れたときにどれぐらい外れるか、どのぐらいに収まるかのほうが重要だと思ってるんだけど、6日間の両者の予測で、実際の数字との乖離が一番激しかったのは
予想者 | 日付 | 予測 | 結果 | 乖離率 |
---|---|---|---|---|
Knoa氏 | 7/6(火) | 705 | 593 | 18.8% |
挑戦者氏 | 7/11(日) | 702 | 614 | 14.3% |
で、大外れしたときの乖離率はたいした差はない。これじゃ「片方は当たるも八卦で、もう片方はちゃんとしたシミュレーションだ」とは言えないなと思う。
挑戦者氏はあんまり攻撃的な語り口を使わずに、粛々とモデルを磨いて、精度の高い予測を出し続けて、予測結果の信頼性の高さでKnoa氏を駆逐するのがいいんじゃないかと思うよ。両者の予測、楽しみにしてるよ。