*Trace Output* このページをアンテナに追加 RSSフィード Twitter

アーカイブ | プロフィール
 

2012-04-12

Couldn't resolve proxy '(null)' while accessing http://github.com/your/repos.git/info/refs

MsysGit 1.7.10 にアップデートしたら以下のようなエラーが出るようになった。

> git pull
Couldn't resolve proxy '(null)' while accessing http://github.com/your/repos.git/info/refs
fatal: HTTP request failed

原因は http.proxy の設定ミスで、「http://」を頭につけていなかったため。

> git config -l | grep proxy
http.proxy=proxy.example.com:8080

1.7.9 までは先頭に「http://」がなくても動作していたが、1.7.10 からは「http://」を付けないとエラーになるみたい。


というわけで以下で解決。

> git config http.proxy http://proxy.example.com:8080

2012-03-30

xl-pik 1.0.0 リリース

xyzzy 0.2.3.3 と 0.2.2.236 で念願の si:putenv を手に入れたので、xyzzy から Pik を使って Ruby を切り替える xl-pik をリリースしました。



xyzzy 0.2.2.235 では動作しないので以下の派生版のどちらかを利用してください。



M-x pik-switch-dialog とかすると以下のような画面がでて切り替え可能です。

http://miyamuko.s56.xrea.com/xyzzy/images/pik-switch-dialog.png


この xl-pik は 1 年半前に作ろうと思っていたのですが、0.2.2.235 では xyzzy の環境変数を設定することができなくて挫折したものです (id:miyamuko:20100910 参照)。

ようやくリリースすることが出来ました。

2012-03-27

アマゾン・アソシエイトID(アフィリエイト用のID)を含んだ商品URLを生成する xyzzy lisp

アマゾンアソシエイトID(アフィリエイト用のID)を含んだ商品URLを生成する秀丸マクロです。

アマゾン・アソシエイトID(アフィリエイト用のID)を含んだ商品URLを生成する秀丸マクロ - 結城浩のはてな日記

xyzzy lisp に移植してみました。

;; amazon.l
;; アマゾンの商品URLがクリップボードに入っている状態で起動すると、
;; アソシエイトIDを含んだ商品URLを生成してxyzzyエディタに挿入するxyzzyマクロ。
;; クリップボードのURLは http://…/dp/XXXXXXXXXX/… という形式を想定している。
(defvar *amazon-affiliate-id* "hyuki-22")

(defun amazon-affiliate-url-paste-from-clipboard ()
  (interactive)
  (let ((url (get-clipboard-data)))
    (if (and url (string-match "/dp/\\([0-9a-fA-F]\\{,10\\}\\)" url))
        (let ((asin (match-string 1)))
          (insert
           (format nil "http://www.amazon.co.jp/exec/obidos/ASIN/~A/~A/"
                   asin *amazon-affiliate-id*)))
      (plain-error "ERROR: /dp/XXXXXXXXXX/ is not found in clipboard"))))

インストール方法


実行方法


入力例:コピーした元URL(『数学ガール』の例)


出力例:xyzzy にペーストされる文字列

2012-03-10

git-merge-changelog Windows binary


コミットするたびに ChangeLog ファイルを更新するようなプロジェクトだと、merge や cherry-pick するたびに ChangeLogコンフリクトして面倒です。

こういう時は Gnulib に含まれる git-merge-changelog という GNU スタイルの ChangeLog 専用のマージドライバを使うことでコンフリクトせずにマージできます。

というわけで、git-merge-changelogWindows 用のバイナリビルドして以下に置いておきました。



https://github.com/downloads/miyamuko/git-merge-changelog-for-windows/git-merge-changelog.exe



設定

git-merge-changelog を使うには設定が必要です。


まず ~/.gitconfig に以下を追加。

[merge "merge-changelog"]
	name = GNU-style ChangeLog merge driver
	driver = c:/path/to/git-merge-changelog.exe %O %A %B

次に、ChangeLog ファイルごとにマージ戦略を設定します。

設定は開発者全員で共有したいならリポジトリ直下の .gitattributes に、自分一人で設定したいなら .git/info/attributes で行います。

どちらかのファイルに以下の内容を書いてください (ChangeLog ファイルのファイル名が ChangeLog.txt の場合)。

ChangeLog.txt merge=merge-changelog


参考

2012-02-11

xl-open-uri 1.0.0 リリース

Rubyopen-uri とほぼ同様の機能を持つ xl-open-uri 1.0.0 をリリースしました。

xl-open-uriHTTPFTP に簡単にアクセスするための機能を提供します。


デフォルトでサポートしている URL スキームは http, https, ftp, data です。

URL スキームを追加するための API も公開しています。


user> (open-uri:with-open-uri (f "http://www.google.co.jp/search"
                                 :query '(:q "xyzzy 読み方" :ie "UTF-8" :oe "UTF-8")
                                 :encoding *encoding-utf8n*)
        (values (multiple-value-list
                 (open-uri:status f))
                (open-uri:meta f)
                (open-uri:meta f :content-length)
                (open-uri:base-uri f)
                (open-uri:content-type f)
                (open-uri:charset f)
                (length (open-uri:read-all f))))
(200 "OK") ;
(("Cache-Control" . "private, max-age=0")
 ("Date" . "Sat, 11 Feb 2012 11:22:59 GMT")
 ...) ;
nil ;
"http://www.google.co.jp/search?q=xyzzy%20%E8%AA%AD%E3%81%BF%E6%96%B9&ie=UTF-8&oe=UTF-8" ;
"text/html" ;
"utf-8" ;
31132

Ruby の open-uri では HTTP GET および FTPダウンロードしか対応していませんが、xl-open-uri では任意の HTTP メソッドの送信が可能です。また FTPアップロードにも対応しています。


;; HEAD リクエストの送信
user> (with-open-file (f "http://www.jsdlab.co.jp/~kamei/cgi-bin/download.cgi"
                         :method "HEAD")
        (decode-universal-time
         (open-uri:last-modified f)))
21 ;
28 ;
1 ;
8 ;
12 ;
2005 ;
3 ;
nil ;
-9

;; FTP (アップロード)
user> (open-uri:with-open-uri (os "ftp://example.com/public_html/hello.txt"
                                  :direction :output
                                  :if-exists :overwrite
                                  :encoding :binary
                                  :auth '("user" "pass"))
        (with-open-file (is "hello.txt" :encoding :binary)
          (alexandria:copy-stream is os)))
13730


リファレンス

めずらしくリファレンスを書きました。

info-modoki-mode でリファレンスを引けるようにするには xl-open-uri と xy-reference をインストールしたあとに、*scratch* バッファで以下を評価してください。

(require :xy-reference)
(xy-reference:2txt)

その後、xyzzy再起動すれば見れるはずです。