Learning to program - The Basics - More Sequences

The joy of being IDLEをさらっと読んで、どのようにこれからプログラミングしていくか考えた。
Danny Yoo's excellent tutorialも読んだが、IDLEの見た目を変えられる方法は全く書いておらず初心者向けの動かす為の説明だけしてあったので、IDLEを使うのは面倒だし諦めようかなと思っているところ。IDLE使ってフォント変えてって勉強してもいいような気はするが、IDLEのメリットはシンタックスハイライティングとIDLE内での実行にあるようなので、それさえ他で扱えれば他のでもいいのかなという感じがする。
PythonIDEのページをWikipediaで読んでみたんだけれども、色々な機能をIDEというのは持っているらしい。んでも、バグとかは現段階では自分で見つけたほうがためになるだろうし、欲しいのはシンタックスハイライティングと、バージョンコントロールぐらいかなぁ。バージョンコントロールってなんか格好いいので、いつか試してみたい。でもたぶん、独立したソフトウェアがあるんでしょ?と思っている。
>>Version control integration available only in Wing IDE Professional, supports Subversion, CVS, Bazaar, git, Mercurial, and Perforce.
とかWing IDEのページにあって、Subversionとかその他を使っていってみたいなぁと思う。まぁ、これはもっと覚えた後でいい。たぶんIDEと一緒に使わなくてもEmacsなんかと一緒に使えるソフトウェアだと思うんだけどなぁ、バージョンコントロールって。違うのかなぁ。
まぁ、おいておこう。

そうそう、IDLEはPyhonで書かれているソフトウェアだというのも割りとポイント高いかもしれない。後、multiple undoって書いてあるけど、nanoだとundoの仕方を未だにわかってないのだよね、調べてみるか。それとIDLEを知る為に、IDLEのオフィシャルドキュメントも読んでみる。
なんかnanoはバージョン2.1.3からUndo機能を載せてるくさいな、Wikipedia読むと。

2008.08.04 - GNY nano 2.1.3 "least stable version ever" is released. This
release includes new (and experimental) undo and redo
functionality for most text operations. The default
key bindings are Meta-U for undo and Meta-E for redo, but
these can be remapped using the new 2.1 keybinding code.
Also included are some fixes for configuring using wide
curses, crashing when invoking the help menu with
certain locales, and not saving the search history when
compiled with configure options.

とりあえず最新バージョンのnano入れてみようかなぁ。といっても、入れ方がわからないのだが。
うーん、ちょっとようわからんなぁ。

nano起動してGet Helpしても前から思ってたけどUndoのオプションないし、上に書いてあるMeta-Uってのも効かない。検索してもnano undoで出てこないんで、こりゃ本格的にUndo機能ないんだな2.1.3以前にはと思う。

How to undo changes in "nano" text editor in Redhat
ってタイトルのページがぐぐるとあるけど、登録必要過ぎてワロタ

Debian Stableにunstableパッケージを入れるの方法でやってみることにした、しかもぐぐったら、いいもの発見したし。
apt.confってのがない、どうすりゃ

APT::Cache-Limit "100000000";
APT::Default-Release "stable";

を書き加えられるんだと思っていたけれども、APT::Cache-Limitで検索したところ、Debian で testing や unstable のパッケージを借りるというページを発見した。

/etc/apt/apt.conf.d/99target の変更
APT::Default-Release "stable";

これを追加する
APT::Cache-Limit "10000000";

とあるので、よっしゃああ!という感じ。これでいけるだろう。
と思って途中までやったけど/etc/apt/apt.conf.d/99targetってのがない件。99update-notifierってのになるなぁ。

APT::Default-Releaseでぐぐったらaptのオフィシャルではない?かもしれないが、Debianからのドキュメント見つけた、Obsoleteとなっているが。
APT HOWTO (Obsolete Documentation) - Managing packages

To set up what is your main version of Debian you should edit the /etc/apt/apt.conf (it does not usually exist, create it if you don't have one) to contain the following line:

APT::Default-Release "version";

これでいいらしい。普通に/etc/apt/apt.confに

APT::Cache-Limit "100000000";
APT::Default-Release "stable";

を新規ファイルとして新規に記述して保存して、apt-get updateしてからルート権限でapt-get -s dist-upgradeするとほとんどアップグレードのファイルが出てこない、少なくとも前みたいに1000とかじゃない(涙)4つだけだなー。でもTestingのパッケージのインストールがいくらか入ってるみたいなのでstableのパッケージの依存関係か何かでTestingのパッケージが引っ張られてきてるんじゃないかなと予想。
んでも、nanoのインストールが出来ない、インストールというかアップグレード。どうやら

APT::Cache-Limit "100000000";
APT::Default-Release "stable";


APT::Default-Release "stable";が引っかかっているんだろう。aptitudeで色々基本を調べている俺にはどうってことないぜ!なわけないが、たぶん基本パッケージみたいなのインストールして、その中にnanoが入っていたんで、基本パッケージでインストールされているつまりDefault-Release "stable"だったものはそれ以上変更すんな、つまりTestingとかSidのパッケージにするなっていう指令でしょうこれは。だからnanoをアップグレードできないんだな、つかこれでnanoアップグレードできたら他のインストール時に入ってたパッケージもアップグレードされちゃうよなw

と、いうわけで、やはりあの強硬手段か……と俺の頭をよぎる。というか、実行寸前まで行って、/etc/apt/apt.confをrmした。今ここ。
ちなみにapt.confを削除しなくても先頭に#つけて#APT::Cache-Limit "100000000";みたいにすればPythonみたいにそこがコメントになってファイル削除しなくてもいいかなと思いやってみたところ、apt-getをしたときにapt.conf Extra Junkvalueなんたらといわれて#みたいなゴミつけてんじゃねーよ!って言われた。まぁ、そのお陰でapt-getでapt.conf読み込んでるってはっきりわかったわけだが。aptのsources.listのほうは#で効くんだけどなぁ。
けど、その前にnanoをアンインストールしてみて、その後インストールしたらTestingから最新バージョンとってきてくれるかなと思いそうしてみることにする。
いや、その前に色々やってみる。とりあえずapt-get -s dist-upgradeして4つアップグレード出たのが不安だったので、一度aptのsources.listを元に戻す。一部内容を

deb http://ftp.jp.debian.org/debian/ lenny main
deb-src http://ftp.jp.debian/org/debian/ lenny main

# deb http://ftp.jp.debian.org/debian/ testing main
# deb-src http://ftp.jp.debian/org/debian/ testing main

コメントアウトして。元の状態に戻した後、アップグレードした。そうするとやはりlenny mainからパッケージが2つアップグレードされてて、4つインストールされるのは依存関係でTestingのパッケージが2つ引っ張られてきてるんだろうなーと。

さて、次に進もう、nanoの最新バージョンをインストールするのだった。
さっき見つけたDebianのページにあるAPT HOWTOを読んでいるとnanoをアンインストールせずとも入れられるような気がしてきたので努力してみる。
再度sources.listをtestingのパッケージも検索するようにコメントアウトを解除した。
あれ、でも全然そんなことなかったわ、完全なる勘違いだった、apt-get -s dist-upgradeやると普通にまだ2個アップグレード、2個インストールされるよって出てくる。依存関係で引っ張られてきてるんじゃねーのか……
あー、もしかしたらこの新しくアップグレードされるやつはどこかで新規インストールしたやつ(に依存関係でついてきたやつ)か。CDでOS入れると勝手についてくるやつじゃなくて。だからっぽいなぁ。非常にそうくさい。何をインストールしたときか忘れたが。

apt-get install nano=2.2.3-1 -sとやるとオッケー、通る。
texinfoとかいうtex関係のパッケージがアンインストールされるようなのが気がかりなのだが、いつかtexは使ってみたいという感じで今暫くは使わないからそのまま進もう。Texinfo - The GNU Documentation SystemというGNUのページが見つかってかっこういいからいつか使ってみたいところだが。
apt-get install nano=2.2.3-1実行
あれ、これでインストールできたには出来たし、nano開くと、バージョンも最新(指定したの)になってるんだが、Undo・Redoできねええええええwwww終わってるなw
はてさて。とりあえずこのまま環境を放置しておくと、Testingでインストールされるやつが二つぐらいあって気持ち悪いし、自分ではまだ色々と制御できないので設定を元に戻しておく。まぁ、これではapt.confを新たに記述した意味がないかもわからんが、勉強になったしおk。
nano /etc/apt/sources.list
うっほ、いいおとこ〜な感じでいきなり色ついて出てきた。nano2.2.3にしたからかい。一応nanoでUndoできるようになったらその後に色々と色の設定、つまりシンタックスハイライトの設定をnanoでやろうと思っていたけど、その必要がなくなったかな?

まぁ、今日のStableでTestingを使う方法とかは普通にオフィシャル読んだほうがいいな。俺の糞文より。apt-get install nautilus=2.2.4-1とかも参考になった。nano 2.2.3って指定してて、そんなパッケージありませんが?と言われてたから。ここにあるように、nano 2.2.3-1とやるのね。

3.8 How to keep a mixed system

People are sometimes interested in using one of the Debian versions as its main system distribution and one or more packages from another branch.

To set up what is your main version of Debian you should edit the /etc/apt/apt.conf (it does not usually exist, create it if you don't have one) to contain the following line:

APT::Default-Release "version";

Where version is the version of Debian you want to use as the main distribution. The versions you can use are stable, testing and unstable. To install packages from another version, then, you must use APT in the following way:

# apt-get -t distribution install package

For that to work, though, you need at least one APT source line in your /etc/apt/sources.list for the distribution you want the package from, and the package must exist on that source.

You can also request a specific version of a package using the following sintax:

# apt-get install package=version

For example, the line below will install version 2.2.4-1 of the nautilus package.:

# apt-get install nautilus=2.2.4-1

IMPORTANT: the `unstable' version of Debian is the version to which the newest versions of Debian packages are uploaded first. This distribution sees all of the changes that packages go through, both small ones and more drastic ones which affect many packages or the whole system. For this reason, this version of the distribution should not be used by inexperienced users or by those who need proven stability.

The `testing' distribution is not necessarily better than `unstable', because it does not receive security updates quickly. For servers and other production systems stable should always be used.

nanoの設定を終えて、コメントについて読んでいる、これ参考になった。

Incidentally this is very bad commenting style. Your comment should not merely state what the code does - we can see that for ourselves! It should explain why it's doing it:

これはちょっと格好いいな。

One advantage of format strings is that we can store them in variables too:

>>> s = "The sum of %d and %d is: %d"
>>> print s % (v,w,x) # useful if printing same output with different values

Order mattersのところがちょっとよくわからんけど、まぁいいか。内容自体はわかるんだけどね。5を4に4を3に3を2に、2を1にしていったら5の数字まで一気に1になっちゃうでしょってことなんだと思うけど。だから順序は重要なのよってことか?
でも前後の文との繋がりがわからん。おそらく後々理解できるだろう。まぁ、でもこういうのを放置していって結局諦めたってのが前回のPython勉強だった気がするwから理解できるようには勤めていく。集中してまた読もう。

読み返したらまぁ、理解できたと思う。プログラミングで気をつける点ってところか。