はてなキーワード: 非破壊とは
QNDって何?量子非破壊測定?
iPhone Xでは昔のように、アプリのカードを長押しして出てくるバツボタンを押して強制終了になってて、これはすごく正しいデザインだと思う。だって強制終了っていうのは基本的には避けるべきことであって、iOSではそれほど大きな問題にはなりにくいとはいえ、うっかり強制終了してしまうような事故は避けたい。(ちなみに、アプリを強制終了するとバッテリーが長持ちするというデマがあるが、iOSの仕様をある程度知っていればそんな効果はほとんどないであろうことはわかるし、アップルも公式に否定している。)
ところが世の中は不条理なもので、アプリを強制終了したがる人たちがいる。それでそういう人たちが、「強制終了に手間がかかりすぎる」などと文句を言う。そのせいかどうかわからないが、次のiOS 12ではアプリのカードを上に弾くだけで強制終了してしまう、iOS 6から10までの仕様に戻るらしい。
まったく困ったものである。この仕様のせいで、いったい何回、アプリを切り替えようとして不意にアプリが強制終了されたかわからない。
基本的に、同じ画面の同じ箇所から指を滑らせる操作では、縦の動きと横の動きに違う操作を割り当てるべきではない。片方のみに機能を割り当てて、もう片方は無割り当てが理想だが、それでも両方に割り当てるなら、非破壊的な機能でなければならない。例えばホーム画面では横スクロールの他に、縦にスワイプするとSpotlightが出てくるが、これは非破壊的だからまだマシだ。アプリの強制終了は、例えば何かの処理中だった場合に破棄されてしまうし、そうでなくても次回起動した時に前回の画面から再開できなくなる。
ステゴサウルスの背中にある板はなんの役に立っていたのか。また、尻尾の先にある棘は、武器になったのかどうか。そういったことは、長年の論争の的だった。
大阪市立自然史博物館の林昭次さんは、骨の組織学的アプローチで、これらの論争にピリオドを打った。思い切り乱暴な言い方をするなら、手足の骨、背の板や尾の棘をぶった切って中を観察することで、結論を導いたのだ。
それは、どんなふうだったのか。まずは、あの巨大な板をめぐる研究について。
最初に確認しておきたいのだが、ステゴサウルスの板は、まじまじと見ると本当に大きい。大阪市立自然史博物館にあるレプリカ(本物はニューヨークのアメリカ自然史博物館にある)など、本当に立派で圧倒される。なにしろ、一番大きな板は、幅が1メートル、高さ1メートルもあるのだ。
「ステゴサウルスって、体が大きくなると、どんどん板も大きくなるんです。体に比べてこんなに大きな板を背中に持っている動物は、脊椎動物の進化史上ステゴサウルスだけなんです」と前置きしてから、この方面の研究史からまず説き起こしてくれた。
「化石の内部を研究するのに、まずは非破壊で内部の組織を3次元で観察します。中身を見るにも、破壊せずにすめばその方がいいわけです。ステゴサウルスの板の中を見る先行研究は1976年にやられていて、その時はレントゲンを使っていました。板の根本だけを撮るくらいのレベルで、今からするとかなり大ざっぱなものでした。その後の研究で実際に骨を切ってみる研究もあったんですけども、血管が途中で切れてるというんですね。途切れてるから板中に血が通っているわけではないという結論になったんです。それで放熱板としては役立たない。そういうふうに言われたわけです」
でもさ、なんか一貫性が無いように感じるんだよね。
まず、言語の大半の部分がオブジェクト指向言語っぽいデザインになってるのに、listの要素数を測る手段はlen()って*関数*なのはどうなの?
a = [1, 2, 3] len(a) # 3
俺は、sortとsortedって言う命名からこの挙動をまったく予測できなかった。
a = [1, 3, 2] a.sort() # None a # [1, 2, 3]
sorted([1, 3, 2]) # [1, 2, 3]
しかもsortedにdictを渡すとkeyがlistに変換されてソートされて返ってくる。
コードリーダビリティに関する本を開けば、どの本にだって「良い名前を選択する」ことの重要性が書かれていると思う。
「sort()が破壊的で、sorted()が非破壊的、sorted()にdictを渡すとkeyのlistがソートされて返ってくる」これって良い命名なのかな?
", ".join(['1', '2', '4', '8', '16']) # "1, 2, 4, 8, 16"
しかも、これに対する「文字列リテラル (文字列定数) のメソッドを使うのは*醜すぎる*」という意見に対しての公式の返答が、これってのも凄い。
確かにそうかも知れませんが*文字列リテラルは単なる固定された値に過ぎないというのが答えです。文字列に束縛された名前にメソッドが許されるなら、リテラルに使えないようにする論理的な理由はないでしょう。
The Zen of Pythonで「醜いより美しい方がいい」って言ってましたやん。
そもそもリテラルかどうかに関係なくstrインスタンスにこのメソッドがある事がおかしいと思った。
pythonのmapは関数として実装されている。(まただよ...)
list(map(lambda x: x*x, [1, 2, 3])) # [1, 4, 9]
なんでメソッドにしなかったの? って質問に対して公式がこう答えてる。
主な理由は歴史です。複数の型に対しての総称的な操作で、対象のオブジェクトがメソッドを全く持っていなかった (例えば、タプル) としても働くよう意図したものに関数は使われました。
(中略)
うわー、信じられねぇ…
歴史的経緯があるから一貫性が無いのは仕方ないみたいなこの感じ。
これが設計思想に「醜いより美しい方がいい」を掲げるpythonの実装なんだねぇ…
散々pythonの事を悪く言ったけど、おれ実はpythonくんの良い所もいっぱい知ってるんだ。
pythonくんの良い所:
The Zen of PythonにPythonの設計思想が色々書いてある。
「醜いより美しいほうがいい」という指針があることはさっき紹介した通りだ。
でもThe Zen of Pythonには「Although practicality beats purity.(実用性を求めると純粋さが失われることがある。)」とも書いてある。
pythonはこの設計思想を他の言語には無い高いレベルで体現してるとは思う。
pythonは、
無節操に色々取り入れた上で、「tupleからメソッドはやせないから、mapは関数にする」とか、メチャクチャな方法でそれらを統合した言語だ。
だが、そういう言語だからこそ、pythonで書いたコードを育てていく中で様々なパラダイムへとシームレスに変化させていく事ができる。
そういう「不純であるがゆえに柔軟性を持ったプログラミング」言語がpythonだと思う。
rubyの純粋性はすごいよ。イカれたくらい徹底されたオブジェクト指向。
BaseObjectをrootとする継承のツリーの中に世界のすべてが収まっている。
haskellの純粋性も凄い。「代入が無い」プログラミング言語に初めてであった時の衝撃。
捜査終了記念に書いとく。なぜNEDOはPezyに補助金を出す判断をしたのか。
で、なぜNEDOがPezyに補助金出す判断をしたかを書くまえに、
Pezyが補助金を受ける前にNEDOはある大規模なプロジェクトを行っていた。
それが、「立体構造新機能集積回路(ドリームチップ)技術開発」プロジェクトだ。
開発予算は下記。5年間で 総額7,553百万円(75.5億円)
H20fy | H21fy | H22fy | H23fy | 総計 | |
---|---|---|---|---|---|
一般会計 | 1,700 | 2,452 | 1,740 | 1,661 | 7,553 |
このプロジェクトで研究されたのは下記である。(最終報告書から抜粋)
要するに半導体の積層技術を用いてメモリ、計算部を積層することを最終目標にしたプロジェクトである。
・積層接着材 ・TSV絶縁膜材
そして、最終報告書にあるとおり、実用化案件の開発はしていない。
「次のステップとしての実用化、事業化に関しては、各社の経営判断の問題で、全社が諸手を挙げて実用化に邁進しているわけではないでしょうが、」
「TSVを用いた三次元集積化技術は実用化されておらず、研究開発項目①「多機能高密度三次元集積化技術」において早急にこの技術開発を行う必要がある。」
などなど、実用化についての議論があるが、具体的な実用化案件がないことを気にしている。
(1)平成22年度イノベーション推進事業/3次元積層TSVメモリ技術を活用したメニーコアプロセッサの開発
(2)戦略的省エネルギー技術革新プログラム/バンプレス3次元積層技術を用いた省電力メニーコアプロセッサの開発
(3)イノベーション実用化ベンチャー支援事業/超広帯域Ultra WIDE-IO3次元積層メモリデバイスの実用化開発
(4)平成27年度戦略的省エネルギー技術革新プログラム/非接触型磁界結合通信を用いた高密度実装プロセッサデバイスの開発
(5)IoT技術開発加速のためのオープンイノベーション推進事業/ビッグデータ解析のための低消費電力演算チップの開発
下2つは上3つの実績(Green500のTOP3独占など)から誰もが妥当と思うので、
とはいっても、ドリームチップの説明でほぼ済んでいるが、理由は下記である。
・当時のNEDOはドリームチップで要素技術の開発に成功していたが、実用化できないでいた
・Pezyの補助金の題名を見てわかるとおり、「3次元積層TSVメモリ」「バンプレス3次元積層」
「超広帯域Ultra WIDE-IO3次元積層メモリデバイス」など全てドリームチップで開発していた技術を実用化する案件である
・当時のNEDOの中の人がTwwiterで言ったようにエルピーダからの出資があるとの情報があった
というわけで、Pezyに補助金が出たのは当時のNEDOがドリームチップの実用化を希望していた。