2012年12月15日土曜日

Requests 0.14.2 のインストールに失敗する

Pythonの使いやすいHTTPライブラリのRequestsをpipでインストールしようとすると失敗する。

2012年12月15日現在pipでRequestsをインストールしようとすると、最新のバージョン0.14.2がダウンロードされるのだが、以下のエラーで失敗してしまう。

ImportError: cannot import name chardet2

エラーメッセージでググってみると、どうもPython3でRequestsの0.14.2をインストールしようとすると失敗してしまうようだ。GitHubのIssueで議論されていたので、次のバージョンでは改善されると思う。今のところの解決策は0.14.1をインストールすることだ。

pip install  requests==0.14.1

でOK

2012年11月27日火曜日

std::array を sizeof()

背景
  • C++で書いていても、OpenGLなどのC用のAPIを使っていると、生の配列を受け渡す必要が出てくる。
  • sizeof( Cの配列 )は便利。
  • std::vectorを使って、受け渡しが必要なときは.data()メンバ関数を呼べば良いかと思ったが、std::vectorはsizeof()が使えない。vec.size() * sizeof(typename)すれば良いが、多次元配列の場合は?


そこでstd::arrayはどうなんだろうと思ってsizeof() してみたら上手くいくようだ。
コード:

おお! C配列の完全上位互換として使って良さそう。



しかし多次元配列ならやはり、C配列そのまま使うのが一番楽かもしれない。
  • std::arrayを入れ子にして多次元配列を実現しても.size()やsizeofで全体の大きさは取得できない。
  • boost/multi_arrayなら.size(), sizeofが有効で、複雑な走査もできるが、初期化がC配列のように簡単にはできないので、わざわざ使うのが億劫に感じてしまう。



2012年2月10日金曜日

2012年2月10日時点でのClojure + SLIMEの環境の作り方

EmacsでSLIMEを使ったClojureの開発環境の作る方法を色々調べていたら、ググッて最初の方にヒットする日本語ブログは少し情報が古いようで、今ではもっと楽な方法が用意されていたので、ここに書いておく。

現時点で一番簡単な方法はSwank Clojureのページに書いてあるが、Leiningenの"jack in"コマンドを使う方法のようだ。
ポイントは、必要なのはclojure-modeとLeiningenとSwank Clojureだけで、SLIMEは自分でインストールや設定をする必要がないということだ。

想定環境はWindows。
最初に必要なものは、clojure-modeをインストールするためのpackage.elと、Leiningenのstandalone.jar。
現時点での最新はleiningen-1.7.0-standalone.jarだ。
Clojure本体も無くても良いみたい。JDKはもちろん必要。
 
始めに、package.elを使ってclojure-modeをインストールする。
 インストール時に6つくらい警告が出るが無視する。
package.elの使い方は他のブログ様で沢山紹介されてるので、それらを参照されたし。"package.el marmalade"等でググれば出てくると思う。

 次に、Leiningenを使ってSwank Clojureをインストールする。Leiningenの使い方も他で沢山紹介されているので省略するが、Windows環境でのポイントは、
  1. einingen-1.7.0-standalone.jarとWindows用バッチファイルをダウンロードし
  2. そのバッチファイルをPATHの通った場所に置き
  3. 環境変数に自分で作ったLeiningen用のディレクトリへのパス"LEIN_HOME"と
  4. leiningen-1.7.0-standalone.jarそのものへのパス(ディレクトリではなくて)"LEIN_JAR"を設定することだ。
そして 
lein plugin install swank-clojure 1.4.0
とコマンドプロンプトで打つと、Swank Clojureがインストールされる。

あとは、Leiningenで適当なプロジェクトを作って、その中のソースをEmacsで開いて 
M-x clojure-jack-in
と打つとSLIMEが使えるようになる。



オフィシャル以外に参考にしたページ:
http://mikiokun.blogspot.com/2011/06/table-of-contents-cygwineshellmaven.html