Emacs: I've wrote (shell-) command queue package and registered to MELPA.

Background

When working inside emacs (and doing all the work from there), I often wants to queue the shell command execution, and the commands to be executed asynchronously. For example, manipulate DB, flush, and then search. These sequence of commands are intended to e executed one after another, and if any of the step fail, then I want the entire processing to be stopped and get aborted. Writing down such shell script is sometime cumbersome. OS batch queue feature might be available, but, as said, they are OS dependent so I have to remember each batching facilities of the host OS provides.

I wanted to execute batch queue in a same manner in both Windows and Ubuntu.

So, I wrote such package.

How to Use

1. `M-x list-packages`, install `command-queue` from MELPA
2. `M-x command-queue-publish-command` is the command to enqueue the shell command. enqueued command will get executed asynchronously, each by each.
3. When a command failed, the queue execution aborts.

disclaimer

I've just made a working prototype, and requires more work.

https://github.com/Yuki-Inoue/command-queue

And many requests/issues/PR are welcome.

pageant についての簡単なメモ

このプログラムを起動して、秘密鍵(ppk)を登録しておくと、 plink を行うときに自動的にここの鍵を利用してくれる。

1. pageant.exe を起動すると、インジケーターに表示されるようになる。
2. インジケーターのアイコンを右クリックすることで、設定が行える

考察: StackOverflow でどういった基準で vote up/vote down を行うべきか

はじめに

日本語版 StackOverflow で、そこそこ質問・回答してみた結果、 vote up/vote down に際して、こうしたらいいのではないか、と思ったことを述べる。本家 StackOverflow にはそこまで参加していないので、前提知識・想定がまちがっているかもしれないし、まったく頓珍漢なことをいっているかもしれない。

前提として、 StackOverflow 自体の仕組み(質問・回答・投票・信用度, etc) は既知とする。

質問について

今見ている質問と、同じようなの質問が、コミュニティ(StackOverflow)上にもっと増えてほしい場合には up vote. このとき、 duplicate があるかどうかはあまり気にしなくていいと思う。というか、同じような質問が何度も何度も来ていい加減うんざりするぐらいになっていれば、上記の方針に従えば、 up vote は多分しないはずであり、多分 duplicate による close 投票をしていると思う。この方針の前提は、 StackOverflow をコミュニティとして捉えて、それが構築する知識の総体をより良いものにしていこう、という考えのもとに StackOverflow に参加していることが前提になっている。

もっと減ってほしい質問とは、だいたい close されるべき質問であって、なので質問を down vote する機会はあまりない。

回答について

役に立ったら+1. これにつきる。「実際に役に立つか立たないか(分野に詳しくないので)わからないけれども、よく書けているっぽいので +1」とかはあまりしない方がいいと思われる。なぜかというと、 up vote/down vote は一度行うと原則、取り消せないので、「適当にそれっぽいことを書く」ことを助長させたくないのならば、あくまで私にとって役に立ったかで投票するのがいいと思う。

同様に間違っている答えには-1.

(メモ) rails などでの複数チェックボックスの挙動について: HTTP/HTML/form で何がおきているか

HTML/HTTP で同じ名前の input があった場合

HTML/HTTP のレイヤーでは、フォーム(form)中に同じ名前( name ) の input が複数個あった場合には、その個数分だけクエリパラメータが送信される。また、その順番は保存される。*1

同一の名前のクエリパラメータが複数飛んできた場合に、どのような処理を行うかはサーバー次第。

checkbox の挙動@HTML/HTTP: チェックされてなければ何も送らない

HTML/HTTP の段階では、 input のチェックボックス(checkbox)は、フォーム送信の際に、チェックがついていない場合には、クエリとしては何も送信されない。チェックのついていないチェックボックスは、それが存在しなかった場合と同じ挙動をする。

checkbox にデフォルトの挙動をもたせたい場合

PHP では、一つのフォームの中に同じ名前の input が複数個存在した場合には、後勝ちさせる仕様らしい。なので、チェックボックスのすぐ上に、隠れた(type=hidden の) input を用意することで、あたかもチェックがついていない場合には hidden の方の値でクエリで送付されているかのように振る舞わせることができる。
name の最後が [] であった場合には、PHP では同じ名前のクエリパラメータが束ねられて、配列としてソースコードに引き渡される。

rails も、PHP と同じような挙動をしている模様。*2

MinGW では、 faccessat のシステムコールレベルでは、拡張子のみで実行可能性を判定しているっぽい。

MinGW では、 faccessat (ファイルパーミッションを判定するためのシステムコール) において、ファイルの中身は見ずに、引数ファイルの拡張子だけで実行可能かどうかを返している模様。


NTEmacs において次を実行

(locate-file "awk" '("c:/Dev/PortableGit/bin") '(".exe" "") 0)
; -> found

(locate-file "awk" '("c:/Dev/PortableGit/bin") '(".exe" "") 1)
; -> not found

(locate-file "bash" '("c:/Dev/PortableGit/bin") '(".exe" "") 1)
; -> found


locate-file は、内部的に locate-file-internal を利用している。
locate-file-internal 関数のマニュアルを読む限り、 この C source code は faccessat システムコールを利用する様子。


どうしてこの問題に行き当たったかかというと、

(executable-find COMMAND)

は、内部で locate-file を、 predicate==1 で、実行可能ファイルを検索するため。


上記の awk は、MSYS の bash からだと実行できる。
MSYS/MinGW 上にはパーミッションなどは存在していなくて、bash は、シェルで指定されたコマンドが実行できそうだったら、実行する模様。 (.exe や .bat かの判定をしたのち、 shebang を持つスクリプトなのかどうかを判定し、そのどちらでもなかったら executable ではない、と判断していると考えられる。

調べてみた系 Tech Blog についての方針のようなもの

意味のないゴミ記事を増やしても、割と誰のためにもならない気がするので、基準を次のように決めてみるといいかもしれない。

  • 自分の知りたいことを、ドンピシャで記述している記事がネット上に存在するのならば、それをはてなブックマークすればよい。自分が特に何かを記述する必要はない。
  • なので、実際に自分が知りたい内容を検索してみようとしみてる。それでしばらく探し回らなければならないのならば、考えられるのは: (i) 調べ方がまちがっている (ii) 世の中にその必要な情報が欠落している のどちらかだと考えられる。
  • 自分の知りたかった、調べて回った内容をブログを記述するとして、それを文字に起こしてみる。タイトルはその内容を表すようにする。
  • もう一回、書き現わした内容を探そうとして検索してみる。ドンピシャのがあれば、やっぱりその記事は必要なかったと思われる。

Windows の電卓は任意桁数をサポートしている。

Windows の電卓は、四則演算(足し算・引き算・掛け算・割り算)については、任意精度のデータを内部で保持している。それ以外の演算については、32bit precision で結果を返す。

電卓上で表示されている数字は、(任意精度の場合は)表示可能で四捨五入した結果である様子。



ソース:
https://blogs.msdn.microsoft.com/oldnewthing/20040525-00/?p=39193/