2012年11月15日木曜日

オブジェクト指向プログラミングは計算の基本要素ではない - 勝手に翻訳

(原文: OOP Isn't a Fundamental Particle of Computing)

この25年にわたるプログラミングで最も大きい変化は今日、あなたが役に立つ、柔軟なデータ型を操作するということです、そして、25年前、あなたは自分自身でそれらのデータ型を造ることに無駄に高い時間を費やしました。

当時の標準言語 である、CとPascal は、少しの機械指向の型を提供しました:数、ポインタ、配列、文字列の空想、複数の値を結びつけるレコードまたは構造体。そして、より面白い型(スタック、木、連結リスト、ハッシュテーブル、リサイズ可能な配列)のようなより面白い型を設計するためにこれらの基本型を使うことが重要でした。

PerlまたはPythonまたはErlangにおいて、私はこのものについて考えません。彼らがどれくらいの要素を含むか、また、データがどこから来るか心配することなく、リストと文字列と配列を使います。私は辞書を使うときに、そのサイズやハッシュの衝突がどのように操作されるかといったような詳細について時間を費やすことはありません。

私はまだ新しいデータ型を必要とします、しかし、カスタム解決を巧みに作るより、すでにそこにあるものを再利用することが多いです。任意の次元のベクトルは、配列です。RGBカラーは、3つの要素の組です。多項式は、各値が係数で、インデックスを次元とする組、か、ペア{係数, 次元} のリストです。私が大学で取ったデータ構造コースから、重労働を、配列と組とリストと辞書がとり除いてしまったのには驚きです。バランスした木を実装するときの焦点はバランスした二分木がどのように働くかであり、もつれ合ったポインタ操作の苦しみではない。

新しい何かへ既製の建築用ブロックを配置する方法を考えることは、それが最初に現れるより急進的に変わります。それらの建築用ブロック自体が生まれる方法は、もはや主要な懸念でありません。多くのプログラミング・コースとチュートリアルでは、オブジェクトとコンストラクタと抽象基本クラスとプライベートメソッドといった、言葉の突然の減速バンプがあります。それから次の宿題で、RGBカラーを表す単純な3つ組は、ゲッターとセッターと複数のコンストラクタと ― 最も悪いことに ― もっとより多くのコードのClassに置き換えられてしまいます。

これは誰かが必死に、入って、これが間違ったアイディアで楽しみを殺してしまうということを説明する必要があるところです、しかし、それはめったに起こりません。

それは、オブジェクト指向プログラミングが悪い、あるいは欠陥があるということでありません。オブジェクト指向プログラミングは、何人かの人が望む計算の基本要素でないということです。やみくもに任意の複雑さの問題に適用されるとき、オブジェクト指向プログラミングは冗長であり、不自然になります。それでも、すべての対象の美的な強調がしばしばずっと下にあります。そのことでオブジェクト指向スタイルが全体的な単純さと理解の容易さを本当に理解することを難しくさせていることが、とても残念です。(Consider this Part 2 of Don't Distract New Programmers with OOP.)

2012年11月13日火曜日

VirtualBox上のWindows 7 のHDD容量を増やす

仮想ディスクを作ったときにFixed size(固定サイズ)ではなくDynamically allocated(動的割り当て)にしていれば、仮想環境を壊すことなく、あとからHDD容量を変更することができる。しかし、勝手に自動的にサイズが増えるわけではなく、次の手順を踏む必要がある。

仮想マシンのWindowsが終了している状態で、ターミナルを起動して次のコマンドを打つ。今までの30GBでは足りなかったので、50GBになるように(50 * 1024)の値を--resizeオプションで指定した。
$ cd ~/VirtualBox\ VMs/MyWin7

$ VBoxManage modifyhd MyWin7.vdi --resize 51200

しかし、これだけではWindowsのドライブの容量は変わらない。Windowsを起動してディスクのパーティションを変更する必要がある。Windows 7 では「コンピュータ」を右クリック→「管理」ででてくる「コンピュータの管理」画面の「ディスクの管理」項目で簡単に変更ができる。

そこに先ほど増やした分(20GB)の未割り当て領域が見えているはず。ここで、既存のCドライブの領域「C:」を右クリックして「拡張」を選択すると、Cドライブのサイズを増やすことができる。

参考サイト: