Emacsで書いていこうと考えるなど。
とりあえずは緊急避難的にはてなを使ってブログ形式で書いていこうなど。はてなトラフィックが重い、はてな記法などの問題と改行のあたりが好きじゃないが。
また継続して書いていこうという気持ちなど。今度はコンピューティング関連でいこうなど。

Oreillyのセールを利用して、
Building Social Web Applications
Building the Realtime User Experienceを購入。

少しまずIRCの処理と、Firefoxのタブの処理をしよう。

とりあえず気になっているのがこの内容で、完全にそれと同じことをしようとしようと思っているわけじゃないけれども、ノートをとっていくのは大事かなと思ってまたはじめてみる。
The Hacker’s Path
http://krainboltgreene.tumblr.com/post/1057840487

それと最近英語の勉強というか、Oreillyの本をepubで読んだり、ぐぐったりするうちに英語をまともに使いたいと思うようになってきていて、get_iplayerのPVRをPowerShellのschtasksで設定してみたりしていた。
NHK Radio JapanのPodcastのニュースも聞いているのだが、PRI's The Worldもピックアップして聴こうかなと思ったりしている。全部聴くのは冗長というか、NHK Radio Japanのポッドキャストが少し政府の情報が多いおそらくオフィシャルに近い情報にしようとしているのの偏りがあるんだが、それ自体は政府系の動き好きなんでNHKの方は全部聴いてるけれども、PRI's The Worldの方は人種的な問題とそれに付随するようなことが多いので取捨選択いるかなと。BBC Radio4のTodayもいいんだが、それもイギリスよりの情報が一番に着たりするのでまだいまいち。
贔屓目なしで世界で起こっているトップニュースをそれなりにニュートラルな感じで聞けるやつがあるだろうか。The EconomistVOAはどうだろう。
それとBBC Radio4のProfileと、BBC World ServiceのThe Forumも聞こうかな思っている。
http://www.theworld.org/

英語に関してはさらに1000, 2000, 10000などの単語の区切りでボキャブラリービルディングや基礎的な文法、またコミュニケーションへの自信をつけていくといった色々な作業をしたいと思っている。とにかく英語に関してはネットと英語情報を主に使ってこれから成長していきたいと思っているのでほぼ必須になっている。

ブログ名をコンピューティングしようぜに変えておこう。やっぱり一部英語にしよう。理念的なものを求めて。だがidは変わってないのでURLはdebiandebian。
特にトップの画像は要らないかと思ったので外してしまった。むしろCUI指向になってたり。。
一応こんなのを検討したりしたんだけど。
http://commons.wikimedia.org/wiki/File:Analog_Computing_Machine_GPN-2000-000354.jpg
別にそんなにはてなに拘ってるわけではないので、はてなの独自仕様とかを気にするのはやめよう。とりあえずノートをとっていこうと思い、ブログを書いていこうと思ったそんだけ。Faviconに関しては後々要るかもしれないが、些細な問題なので頭の片隅においておけばよい。RMSは設定してたりするけど、あまり設定してる人いなかったりするみたいだ。設定するのであれば今度はエゴイスティックなものにしよう。とりあえずは己の書き残しを置いておく場なので。

さて、コンピューティングの勉強に入っていきたいが、今日はコンピューティング環境を支える飯と音楽の両方のこともやりたかったりする。飯はネットスーパー:おうちcoopへの加入したい旨Done,9月20日月曜日のいつかに何か来ると思う。eふれんずとやらにさらに入ってそこからインターネットで注文することになるのかな。。音楽は光デジタルケーブル:注文Doneこちらも休日は休みなのでおそらく月曜日に連絡くる。その時、振込みへ。

本日の活動予定。
IRCを読むことと:Done、PowerShellEmacs、ブログやらWWWにアップロードの過程、Oreillyの本の整理:done、The Hacker’s Pathを読み何をしていくかをここに整理していくなど。

はてなブックマーク2ちゃんねるでのコンピューティング関連の情報:大体Doneも集めてみたいかも。

後最近Hacker Newsが好きになりつつある。Paul Grahamのやつ。
http://news.ycombinator.com/

While You’re Learning…

The Hacker’s Pathの中でも特にここかな。自分がやったら力つきそうなのは。この辺念頭にやっていきます。
Reading a book or two wont get you far, as Learn Python The Hard Way will repeatedly tell you. You need to be doing 5 things every day:

* Hacking
* Taking notes
* Hacking
* Teaching other people what you know
* Talking about what you don’t know
* Working on Project Euler
* Rewriting everything you did previously
* Contributing to open source projects
* Hacking

上のことを鑑みて何をしていくかここに整理する。
とりあえず、Oreillyのepubを買いまくりなので、そういう本を読んでいく。そしてHackingする。ノートをとる。Hackingをする。知っていることについて他人に教える、これはブログなりWikiなりメッセージングなりでネットでの活動を主にする。知らないことについて語る、これも主にブログやはてな2ちゃんねるでの質問、IRCなどでのコミュニケーションで行う、IMとか出来たらよいかもしれない。Working on Project Euler。Rewriting everything you did previously, これは主にブログにコンピューティング関連と自分が思っていることを全て書いていこうと思うので、それを定期的に綺麗にしていく作業としたい、ブログを改定したり、さらにドキュメントとしてまとめたり。オープンソースプロジェクトに貢献するのはまぁ、していきたい。Hacking.
要するに主体はHackingと本を読むこと。そしてそこからノートを取り、ブログを書く。そして人と話す。数学とコンピューティングしていく。ドキュメントをまとめていく。貢献する。Hacking.
そうしていこうと思う。

ノートのブログ化については、Emacsで書いて当面ははてなDiaryにアップロードしようという考えなのだけれど、Emacshatena-modeとやらを最初は検討したけれど更新が止まってたりしてあれなようなので、とりあえずは手動でコピペして試してみる。
mental_diaryについてはコンピューティングとは関係ないのではてなDiaryのコンピューティングしようぜ!でなく、Xreaの方に主にテキストをアップロードしてリンク張っておくだけにする。一応コンピューティングを続けていくにあたり、メンタル管理も大事だと思うので重視はしているのだけれどやはり別物なので一緒に置くことはしない。これは本当に個人的な考えで始める。
とりあえずEmacsに二つともcomputing.txtと、mental_diary.txtとして既に書いてあるので、はてなDairyへのアップロードと、Xreaへのアップロードを双方試してみる。久々に試してみるので色々なアレが出てくるだろう。

はてなDiaryにC-x, hで全部選択してアップロードしてみたんだけれども、やはり気になる点がいくつか。改行の表示の問題、pタグとtxtファイルでの改行の違いの問題のそれ。エントリーのタイトル名。修正を掛けた、また掛けたい時にどうするか。いつエントリーをアップロードするか。
あまり些細なことは気にしたくないので改行問題はひとまず無視する。エントリーのタイトル名もひとまず無視しようかな。修正をどう扱うかについても、自分のタイミングで決めればいいか。いつエントリーをアップロードするかについてもひとまず同様に対処していこう。
そして問題が出てくるのは閲覧者の方である。自分はEmacsで書いていってさらに読むつもりなのであまり問題は出ない。ノートを取りブログにするだけでなく、そこから人と話すことを目指してやっているのでProblemではあるんだが。はてなDairyについては暫定処置であるし、Hackingを覚えて、BloggingやらNote Takingやら人と話すことに活用していけるようになるまでは徐々に取り組みたい。
後、Blogにアクセスする際にLaunchyを使ってやっているのでLaunchyで使っているショートカットのブックマークのタイトル名を変えてRebuild Catalogしておく。もしかしたらFirefoxの方でhatenaのクッキー切ってるとかでログインの問題が出るかもしれない。頻繁にログインしなければならないようならその辺を見て対処しておく。

次にXreaにmental_diaryをアップロードしてみる。そしてリンクもブログから張っておきたい。とりあえず.txtのままアップロードしようと思うが、どうなるか。そもそもXreaのアカウント自体が消えているようだ。たぶんWodpressを置くのに失敗して長らく放置していてその時トップページを削除してたからじゃないかなぁと思うんだけど、どうしようかな。
とりあえずXreaはもういいかなと思うのでやめて、Bloggerとか、テキストをそのままアップロードするか、Google Docsなんかを使うかとか考えたりした。やはりどこかの適当なサーバーにアップロードするのがいいんだろうか。でもどうせ、ただのテキストファイルだけだからなぁ今のところ。後々レンタルサーバーも必要かなとは思うけどどうしよう。
Text Upload - Free Content Hostingというところを見つけたので、ひとまずそれを使っていくことにする。
mental_diary.txtのURL。おそらくこれは変わることはないみたいだ。ログインユーザになると、テキストの削除も自動的に行われずに、テキストごとに削除するかボタンが出ている。
http://www.text-upload.com/read.php?t=400&c=7921250
色々とぐだぐだな感じだけれども、とりあえずこれでいいだろう。また問題が出てきたら、出てくるだろうが、対処していく。更新最終時間と変更点ぐらいは自分でわかった方がいいかなぁと思わないでもないけれども、まだ適当な段階なのでおいておく。

OreillyのWindows PowerShell Cookbookを読んでいく。きりのいいところまで読み終わったらRubykitch氏のEmacs本か、Learning JavascriptPythonやるなどしたい。Windows PowerShell Cookbookは全部読むかはわからない。
I. Tour のCommon Discovery Commandsを今読んでいるところ。

Get-Commandで全てのコマンド。cmdletとたぶん読ぶのだろうが、が出てくる。Get-Command *process*でprocessを含むコマンドの表示。
これと組み合わせてGet-Help 任意のcmdletでそのcmdletのヘルプが出てくる。Get-Help cmdlet -fullとかやるとMicrosoftの公式ページのヘルプと同じ情報が出てくるみたいだ。
例えば、Get-Help Get-Processとやって出てくる、Online-versionというところの関連リンク:http://go.microsoft.com/fwlink/?LinkID=113324を参照すると、TechNetTechNet Library→Scripting→Windows PowershellWindows PowerShell Core→Windows PowerShell Cmdlet Help Topics→Get-Processとなっていることがわかる。で、そこの情報は-fullのオプションをつけた時とほとんど同じようだ。
今まで知らなかったけど、このMicrosoft TechNetとやらは便利そうだ。覚えておくし、活用するしWindows的なことに関しては眺めてみたりしよう。(オープンソースでないから、公式が情報ださないと不味いことになるんだろうけど。)

Since PowerShell lets you work with objects from the .NET Framework, it provides the Get-Member cmdlet to retrieve information about the properties and methods that an object, such as a .NET System.String, supports. Piping a string to the Get-Member command displays its type name and its members:

PS > "Hello World" | Get-Member

.NET Frameworkというのをきちんと整理しておきたいし、それなりには使えるようにはなりたい。Windows Programmerになる気はあまりないけれども。
.NET Framework - Wikipedia
.NET Framework - Wikipedia, the free encyclopedia

WindowsアプリケーションだけでなくXML WebサービスウェブアプリケーションなどWebベースのアプリケーションなどを取り入れた環境。一般に.NETという場合、.NET全体の環境を指す。

XMLはそういえば、schtasksでスリープ状態の時にタスクが入ったときに起動・実行出来るか調べている時に出てきていたなぁ。.NETと関係あるのか?

読んでも正直あまりよくわからない。ただ.NET Framework4ではF#のフルサポートなどと書いてあってちょっとF#してみたくなる。F#は今知った。
F Sharp - Wikipedia

F#はマイクロソフトの研究チーム (Microsoft Research) による.NETプラットフォーム向けの関数型プログラミング言語である。型安全・オブジェクト指向であり、型推論の機能をもつ。 他の.NET言語と同様に.NETクラスライブラリを利用したり作成したりすることができる。

F#はスクリプティングからクロスプラットフォームアプリケーションに至るまで、あらゆる範囲の開発に利用することができる。

その特徴や環境から、F#は科学計算用途に適した言語であるといえる。 F#は、低級だが高速な数値計算言語(Fortranなど)と、高級だが低速な言語(Mathematicaなど)の両方の特徴をもつ。 F#はコンパイルされた言語と同等の処理速度(典型的にはCとJavaの中間)をもち、洗練された高級言語としての特徴をもつ(安全性、静的型付け、パターンマッチ、高階関数、カリー化、モナドなど)。

まず、説明が格好いい。Appeared in 2002。Designed by Microsoft Research。Developer Microsoft Developer Division。
Ocamlについても目にしたことはあるけど何か知らなかったのでそのままWikipediaを見てみた。
Objective Caml - Wikipedia
オブジェクティブ・キャムル、オキャムルと呼ぶ。なお、英語では Caml は camel (ラクダ) と同様に発音されている。

書いていてノートテイキング的に書いた方が楽だとわかってきたのでそうしはじめてみる。話し言葉は面倒だ。オキャムルと呼ぶのか。と書いていたら"のか"が余分で面倒だと思うあたりが自分はやばい。

ML (プログラミング言語) - Wikipedia
ML(えむえる、Meta-Language)は、最初期の関数型言語。ただし、現在の関数型言語の観点からすると、命令的な部分を容易に書くことができるなどの理由から「純粋でない」とされる。登場時期 1970年代。方言 SML, OCaml。設計者 ロビン・ミルナーおよびその他のエディンバラ大学の人物。

型推論 - Wikipedia
型推論(かたすいろん)とはプログラミング言語の機能の1つで、静的な型付けを持つ言語において、変数や関数の型を宣言しなくてもそれを導くのに使われた関数の型シグネチャなどから自動的に型を決定する機構のこと。主に関数型言語で用いられる。

.NETとは - はてなキーワード

Javaと同様のOSに依存しないことを目指してマイクロソフトが開発したプラットフォーム構想。
OSに依存しないだけでなく、言語に依存しないことも目指していた。
発表当初は、その中心にマイクロソフトが開発したプログラミング言語C#を据えていた。

.NET 本

C# 関連の本は増えてきました。しかし、開発ツールとしての歴史が浅いだけに、Microsoft Press 発行の本のほうが安定感があります。まず、それらから紹介しましょう。

Amazon.co.jp: プログラミングMicrosoft .NET Framework 第2版 (マイクロソフト公式解説書): ジェフリー リッチャー, Jeffrey Richter, 吉松 史彰: 本
Amazon.co.jp: The Root of .NET Framework: 荒井 省三: 本
よくわからないけれども、C#と.NETは密接に結びついているのだろうか?C#を知らないから全くわからない。
Amazon.co.jp: MS-Windows(プログラミング)
Windowsでのプログラミング本のリストらしいけれども、Windows関連ってすぐ古くなりそうなのでちょっと手を出してみるのこわい。 最終更新日: 08/06/02か。

.NET入門 − @IT
.NETもう一度知りたくなったらこの辺から読んでもいいかなぁと思ったり。

ITmedia - Wikipedia

ITmediaは、ソフトバンクのグループ企業であるアイティメディア株式会社が運営するIT系ニュースサイトである。

C Sharp - Wikipedia

C#(シーシャープ)はマイクロソフト社によって同社の.NET戦略の一環として開発されたオブジェクト指向プログラミング言語である。
C#は共通言語基盤(共通言語ランタイムなど)が解釈する共通中間言語コンパイルされて実行される。
さまざまな意味において、基盤であるCLIの機能をもっとも反映している言語であるといえる。C#にある組み込み型のほとんどは、CLIフレームワークに実装されている値型と対応している。
設計者 アンダース・ヘルスバーグ
開発者 マイクロソフト
登場時期 2000年

アンダース・ヘルスバーグ - Wikipedia

デンマークを代表するソフトウェアエンジニアである。ボーランド社から発売されたTurbo Pascalの原作者で、後にDelphiなどの同社を代表する開発ツール製品部門のチーフアーキティクトとして活躍していた

.NETのInitial release February 13, 2002となっているので、C#の方が古いのかな。ほぼ同時期に出てきたものと考えていいだろうけど。

共通言語基盤 - Wikipedia

共通言語基盤 (Common Language Infrastructure、CLI) は、.NET Frameworkの基幹を構成する実行コードや実行環境などについてマイクロソフトが策定した仕様である。
CLIは、プログラミング言語やコンピュータ・アーキテクチャに依存しない環境を定義しており、様々な高級言語で書いたソースコードが書き直すことなく他のプラットフォームでも使えるようになっている。
CLIに適合するプログラムは全て共通中間言語 (CIL) へコンパイルされる。CILは、ハードウェアから抽象化された中間言語であり、実行時にはVESが機械語コンパイルする。

共通言語ランタイム - Wikipedia

共通言語ランタイム(Common Language Runtime、CLR)とは、.NET Frameworkアプリケーションを実行するための仮想機械で、共通言語基盤(CLI)のマイクロソフト自身による実装。

CLRWindows上のみで動作する。他のOS上で動作するCLIの実装については共通言語基盤の項を参照のこと。

CLRは、共通中間言語 (CIL) と呼ばれる、プログラミング言語や環境に依存しない中間言語を解釈する。CILは実行時にJITコンパイラによって機械語に変換され、実行される。

共通中間言語 - Wikipedia

共通中間言語(きょうつうちゅうかんげんご、Common Intermediate Language、CIL)とは、.NET Frameworkの共通言語基盤で利用されている中間言語である。.NET言語で書かれたプログラムはコンパイルされてCILに変換される。CILはアセンブリ言語に類似しており、完全にスタックベースの言語である。CILは仮想機械によって実行される。

.NETのベータリリースではCILはもともとMSIL (Microsoft Intermediate Language) として知られていた。そのため、C#や共通言語基盤の仕様で公式にCILと定められた現在でもMSILと呼ばれることは多い。

Programming .NET 3.5 - O'Reilly Media
4.0がepubでセールされたら買うかも。内容自体はそれなりに楽しそう。

C++ - WikipediaMicrosoftとは関係ないのか。

登場時期 1980年代前半
設計者 ビャーネ・ストロヴストルップ
C++は、1983年にベル研究所のコンピュータ科学者であったビャーネ・ストロヴストルップが、C言語の拡張として開発した。当時の名前は「C with Classes」(クラス付きのC言語)というものであった。拡張はクラスの追加に始まり、仮想関数、多重定義、多重継承、テンプレート、例外処理といった機能が続いていった。
現在のバージョンは2003年に制定されたISO/IEC 14882:2003である。新しいバージョンが策定中で、非公式ではあるが「C++0x」と呼ばれている。(それは2000年代中に制定され、正式に「C++09」と呼称されるであろうことを見越した仮称であったが、2000年代中には実現しなかった。)

Boost - Wikipedia

Boost (ブースト)とは、C++の先駆的な開発者のコミュニティ、及びそのコミュニティによって公開されているオープンソースライブラリのことを指す。

グラフ (データ構造) - Wikipedia

C (programming language) - Wikipedia, the free encyclopediaがAppeared in 1972だからなぁ。歴史がある。

で、Windows PowerShell Cookbookに戻る。Get-Member cmdlet to retrieve information about the properties and methods that an object.
PS > "Hello World" | Get-Memberという感じでパイプ処理して渡す。
パイプ処理 - Google Search
PowerShell.NET Frameworkにより、オブジェクトとして"Hello World"を扱って、|でGet-Memberに"Hello World"オブジェクトを渡す。で、"Hello World"は.NET FrameworkのSystem.Stringオブジェクトで、cmdlet:Get-Memberに渡すと、TypeName: System.Stringと出る。そしてSystem.Stringについているメソッドとプロパティが表示される。

Learning Pythonを一通り読んではいるので、オブジェクト指向のオブジェクト、メソッド、プロパティなど一応わかって楽だ。Getthing Start with Processingを読んでいても思ったことだ。
こういうコンピューティングに流れるものを理解して、それを使って自由に動かすってことが出来るようになるのは少し自分の楽しいな・いいなと感じる物事かもしれない。

Ubiquitous Scripting

PowerShell makes no distinction between the commands typed at the command line and the commands written in a script.

While PowerShell provides a command (Measure-Object) to measure statistics about collections, this short example shows how PowerShell lets you apply techniques that normally require a separate scripting or programming language.

というわけでMeasure-Objectで同じことが出来るか試してみた。Measure-Objectの使い方がわからなかったので、まずGet-Help Measure-Object。次に、-exampleで例を表示させてそれなりに使用例を探った。
Get-Process | Measure-Object -Property Handles -Sum
このように書くと、本に書いてある実行中?のプロセス全てのハンドル数を足すという下のScriptingの例と同じになると思う。

PS > $handleCount = 0
PS > foreach($process in Get-Process) { $handleCount += $process.Handles }
PS > $handleCount
19403

Processの扱うHandleってのはスレッドみたいなのと同じことなのかなぁ。調べてばかりになってしまう。本が進んでないわーん。
ハンドル - Wikipedia

プログラミングにおいて、ポインタを指すポインタのこと。ダブルポインタとも言う。リソース本体の位置が移動するおそれがある時に、直接データを指すポインタをただ一つに制限し、それを指す間接ポインタを用いることで参照の一貫性を維持できる。次項のWindow APIのハンドルもこれから派生したもの。

Windows APIにおいて、ウィンドウ・ファイル・画像などの各構成要素を指し示すための、プロセス内あるいはシステム全体で一意の数値。例えば、ウィンドウに対するハンドルであれば「ウィンドウハンドル」のように呼ぶ。カーネルオブジェクトの操作単位としてカーネルレベルで管理されているものと、ユーザ空間で管理されているものの2種類がある。概して、前者はCloseHandle()コールにより開放することができるが、後者では専用の開放操作APIを持つという違いがある。ソースコード中の表現として、HANDLE(ハンドル型)などの変数の型が定義されている。原則的にハンドルは1つのプロセス内でのみ使えるようになっているが、一部のハンドルは他のプロセスと共有することができる。他のプロセスでも使えるようにするには、DuplicateHandle()で対象となるプロセスを指定して複製する必要がある。子プロセスに関しては、CreateProcess()において、SECURITY_ATTRIBUTES構造体で、bInheritHandleをTRUEにすると、子プロセスでもそのハンドルを使えるようになる。

Microsoft Visual Studio - Wikipedia

マイクロソフトのソフトウェア開発製品群及びそれらを管理する統合開発環境 (IDE) である。

プロプライエタリ・ソフトウェア - Wikipedia

プロプライエタリ・ソフトウェア (英: proprietary software) とは、ソフトウェアの使用、改変、複製を法的・技術的な手法を用いて制限しているソフトウェアを指す。

Windows PowerShell Cookbookの続き、

PowerShell becomes almost like the C# immediate mode in Visual Studio.

PowerShellは.NEW Frameworkを自由に扱えるから、Visual StudioのImmediate modeおそらくは、即座に反映して実行確認するようなものなんだろうけど、それと同様になるよってことか。

この実行結果はちょっとかっこういい。rssをダウンロードしている時にちょっと時間がかかるのがいい。動いてるなぁ。

PS > $webClient = New-Object System.Net.WebClient
PS > $content = $webClient.DownloadString("http://blogs.msdn.com/PowerShell/rss.aspx")
PS > $content.Substring(0,1000)

New-Objectでオブジェクトを作っているらしいところもGetthing Start with Processingを読んでいるからそのまま解釈できる。

Ad Hoc Development