Hatena::ブログ(Diary)

あさとの @drillbits このページをアンテナに追加 RSSフィード

2011/12/26

今更びっとばけっと(Permission denied)

実はアカウント作っただけでリポジトリ一個も作ってなかったので、ぷらいべーとなリポジトリを作ってみたんだけど、これですよ。

$ hg clone ssh://hg@bitbucket.org/drillbits/(reporepo) 
遠隔ホスト: Permission denied (publickey).
中止: 遠隔ホストの応答が不適切!

日本語化してるのはなんでか覚えてないんですけど、とにかくSSH通らない。基本的な手順はこちらの通りなんですが。

で、どこが違うかというと ssh-keygen するときに場所というか名前を指定してた。

$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/drillbits/.ssh/id_rsa): /Users/drillbits/.ssh/keys/bb

もしかして id_rsa 以外の名前って clone するときに指定する必要があるのかなー でもどうやって指定するのかなー とか考えてたんだけど、一度 ssh でつないだらいけた…

~/.ssh/config

Host bb
    User hg
    HostName bitbucket.org
    Compression yes
    IdentityFile    ~/.ssh/keys/bb

これでつなぎにいくと passphrase 聞かれるので、いわれるがまま入れると接続 → 以下のメッセージ → 切断される。

$ ssh bb
Identity added: /Users/drillbits/.ssh/keys/bb (/Users/drillbits/.ssh/keys/bb)
PTY allocation request failed on channel 0
conq: logged in as drillbits.

                             You can use git or hg to connect to Bitbucket. Shell access is disabled.
                                                                                                     Connection to bitbucket.org closed.

これ一回やって hg clone したら普通にできた。なぞ。known_hosts とかなんかそんなんな気がするけど。

2011/12/25

そういうふうにできている - PyPy Advent Calendar 2011 12/25

このエントリは PyPy Advent Calendar 2011 に参加することを強いられています。

それもこれも、Twitterで「PyPy触りたい」などと言っていたがために、闇の軍団総帥であるところの◯畳◯間さんに拉致られ…そのままおとなくしていればよかったのに、うっかり「とらドラ!」ネタに乗っかってしまったら*1、いつのまにか最終日を担当することになっていました。

しかも、あーみんの称号付きです。闇の軍団は本物のあーみんの召喚を試みましたが、まだ音符が足りなかったみたいです。もうすぐ幸せのメロディーが完成しますニャプので、それまではぼくで我慢してください。偶像です。アイドル

さて本題。

某団員曰く「とらドラの感想エントリでいいですよ」ってことだったのですが、ぼくはあーみん派ではなく、はたまた手乗りタイガー派でもみのりん派でもなく狩野さくら派なのです。困りましたね。

ということで、ここはとらドラつながりということで オレンジ というライブラリを PyPy で動かしてみましょう。

実はまったく環境とか作ってないので、さくっとやっちゃうぞー。

まずはバイナリダウンロードしてインストールします。ビルドしてもいいのですが、クリスマスどころか2011年が終わりかねないのでやめておきます。ダウンロード元は こちら

$ tar xzf pypy-1.7-osx64.tar.bz2
$ sudo mv pypy-1.7 /opt/local/lib/pypy1.7
$ sudo ln -s /opt/local/lib/pypy1.7/bin/pypy /opt/local/bin/pypy
$ zsh
$ pypy --version
Python 2.7.1 (7773f8fc4223, Nov 18 2011, 22:15:49)
[PyPy 1.7.0 with GCC 4.0.1]

移動先のディレクトリとか名前は適当です。次に virtualenv ります。

$ mkvirtualenv pypy --no-site-package --distribute -p pypy
(pypy)$ python --version
Python 2.7.1 (7773f8fc4223, Nov 18 2011, 22:15:49)
[PyPy 1.7.0 with GCC 4.0.1]

これで PyPy 動く環境はできました。あとはさっさと pip install して着飾った街に繰り出しましょう!

(pypy)$ sudo pip install orange
Downloading/unpacking orange  Running setup.py egg_info for package orange
    Traceback (most recent call last):
      File "app_main.py", line 51, in run_toplevel
      File "app_main.py", line 534, in run_it
      File "<string>", line 14, in <module>
      File "/Users/drillbits/.virtualenvs/pypy/build/orange/setup.py", line 33, in <module>
        import numpy

    ImportError: No module named numpy


  _,,_
( ゚Д゚)



PyPy では numpy が使えません。numpypyはありますが、単純に名前が違うのでこのままだとインストールできないみたいです。

そこで、とりあえずソースを落としてきて、import numpy しているところを import numpypy as numpy に書き換えます。

(pypy)$ wget http://pypi.python.org/packages/source/O/Orange/Orange-2.5a1.tar.gz#md5=568ef180f93f5181e495a664c0d3b953
(pypy)$ tar xzf Orange-2.5a1.tar.gz
(pypy)$ cd Orange-2.5a1

setup.py の該当箇所を書き換えた。これで勝つる。

(pypy)$ python setup.py
Traceback (most recent call last):
  File "app_main.py", line 51, in run_toplevel
  File "setup.py", line 34, in <module>
    numpy_include_dir = numpy.get_include()
AttributeError: 'module' object has no attribute 'get_include'

numpypyの現状

numpypyは現状numpyの全ての機能が使えるわけではありません.というか,ごく一部の機能しか使えない,というのが本当のところです.numpyより50倍速いPythonの数値計算ライブラリ,numpypyを紹介します

そういうふうにできている。





はい、全然おあとがよろしくないですね。

どうも、numpy の get_include は numpy のへっだふぁいるとやらの場所を取得するみたいなのですが、へっだふぁいるはしーとかしーぷらぷらで使うアレみたいなので、numpypy にはないみたいです。詰みました。着飾った街はもう幻想になりそうです。お茶を濁すために tornado でも動かそうかと思いましたが*2すでに動いてるみたい ですしおすし。

というわけでみなさん、オレンジが PyPy で動くように是非 numpypy プロジェクトに寄付しましょうPayPal で簡単どねーしょんです。寄付し終わったら売れ残ったケーキでも買いに行きましょう。ぼくは酷いエントリを書いた罰で釜茹でにされてきます。みなさんさようなら。

※ このエントリの闇の軍団はフィクションです。実在の pypy-ja はぜんぜんこわくないです。なのでまずは pypy-ja | Google Groups に参加するといいんだよ。



BGM: ホーリーナイト

とらドラ! キャラクターソングアルバム

とらドラ・スピンオフ!―幸福の桜色トルネード (電撃文庫)

Hurry Xmas

Hurry Xmas(初回生産限定盤)(DVD付)

Hurry Xmas 2008(DVD付)

Hurry Xmas 2010

*1:PyPy と「とらドラ!」の関係については こちら のスライドを御覧下さい

*2:なんで tornado かはアフィリエイトを踏んでください

2011/08/31

MacPorts で upgrade したらターミナルが死んだ

MacPorts で入れた python2.7.1 を 2.7.2 にしようとして、

$ sudo port upgrade python27

したら、2.7.2 になったはいいけど、ターミナルが開いた瞬間落ちるようになった。なにかエラーを吐いているようだけど、視認できるまえに落ちる。

とりあえず見れるように

Dock のターミナルのアイコンを右クリックで「新規コマンド」というのがあったので、ここで「シェル内でコマンドを実行」にチェックして適当なコマンド(python とか)を実行したら落ちずに止まった。

dyld: Library not loaded: /opt/local/lib/libgdbm.3.dylib
  Referenced from: /opt/local/bin/zsh
  Reason: image not found

[プロセスが完了しました]

なんか /opt/local/lib/libgdbm.3.dylib が消えてるっぽい。
そして /opt/local/lib/ 配下を見ようにもターミナルが使えない。

ログインシェルを変更

zsh が使ってるライブラリっぽいので、ログインシェルbash にしたらターミナルは使えるようになった。
ターミナルの環境設定の起動 > 開くシェル > コマンド(完全パス)を /bin/bash に。

で、確認してみると libgdbm.3.dylib はなくて、代わりに最近の日付で libgdbm.4.dylib ってのができてた。

zsh も upgrade

libgdbm.3.dylib を復活させるのもよくわからないので、とりあえず zsh も upgrade したら zsh が使えるようになった。

$ sudo port upgrade zsh-devel

こっちも最新版で libgdbm.4.dylib 使うようになったってことかなー

めもおしまい。

2011/07/06

Google App Engine ハッカソン & appengine ja night #17 に参加して泣き濡れて頬染めてエブリナイ

結論

俺は死ぬべき

はい

参加してきました
結果から言うと、なんか受賞(?)してタニシappengineのロゴのあみぐるみいただきました
なんかほんともうすみません

あと今回もとぅぎゃりました
http://togetter.com/li/158258

zusaar
Google App Engine ハッカソン
appengine ja night #17

会場はリクルート メディアテクノロジーラボさんでした!
ありがとうございます!

今回は appengine ja night の前にハッカソン
appengineを使った何かを作るということで、2ヶ月前に転職してPythonistaへの道を歩み始めたぼくは「軽く appengine/py さわるかー」くらいの心持ちで行ってきました

昼過ぎくらいに到着したのですが、そこで最後に発表があることを知ったので、
カレーうどん食べながら*1とりあえず見せられるようなものを考えました

それがごらんの有様だよ!!!
http://googl-plus.appspot.com/

経緯

  1. そういや googl-plus っていうapp-idとれたんだった
  2. そういや @shin1ogawa さんがサークルのアニメーションうざいって言ってたなー*2
  3. よーし

機能

  1. 検索できます
  2. でもたまに頻繁にエラーでます
  3. 運良く検索できたらマウスオーバーするとサークルボタンが出て、クリックすると
  4. あとはまあいろいろ

結果

  1. ひどい
  2. 受賞してさらにひどい
  3. このあとの appengine ja night で同じ発表をやらされてさらにひどい
  4. よく考えたら python あまり関係ない
  5. @takayuki_h さんに言われて気づいたけど、appengine である必要性すらない

はい

まあでも、せっかく参加したなら発表者は多いほうがいいじゃないですか
そのくらいの気持ちで発表したっていいじゃないですか
そしてこんなことするアホもいるんだからみんなハッカソンとかどんどん参加するといいよ!
あと Twitter4J にみんな寄付するといいよ!

あと

上であげたアレは色々とアレ(トップのロゴとか)なので怒られたら光の速さで消えます

せっかくのapp-idなのでGoogle+APIが出たときの実験場になるかもー

*1:おいしかったです

*2:ぼくは好きです!

2010/12/18

Google App Engine でサーバーサイドJavaScript

f:id:drillbits:20101218230424g:image

すみません!



この記事はJavaScript Advent Calendar 2010の記事です



サーバーサイドJS盛り上がってますね(ぼくの観測範囲で)
まあ主に node.js とか node.js とか node.js とか

たしかにサーバーサイドJSなら、これまでHTML+CSS+JavaScriptクライアント側を書いてた人も、新しい言語の構文とか覚えずにサーバーサイドが書けちゃいますよ

でも、まだ実行環境を整えるのはちょっとたいへん…
こんなときPHPなら、適当なレンタルサーバー借りても大抵動かせちゃうのに!よしPHPをやろう!


はい、JavaScript Advent Calendar の記事です


気軽にサーバーサイドJSを試してみたい?


それ、appengineでできるよ


というわけで、Google App EngineサーバーサイドJSをやってみます
なんでも、appengine 上でRhinoが動くので、RhinoベースのサーバーサイドJSライブラリが動くらしい
「らしいです」というのは、ぼくもこの記事書くためにはじめてやってみるので、まあ探り探りやっていく感じです
とりあえず試してみましょう

今回はRingoJsを使います*1

こんな動画があったのでこれを参考に

http://ringojs.org/downloads から Source 最新版のソースをダウンロード
ぼくはWindowsなので"RingoJS v0.6.0 zip source archive"を落として解凍

そしたらコマンドプロンプトを開いて、解凍したディレクトリに移動しておきます

で、動画では bin/ringo-admin とかやってますが、Windowsだとできないので

>cd bin
>ringo-admin.cmd create -a [作成するディレクトリのフルパス]

としました*2

これで土台がサクっと作られるので、次は動画にならって開発サーバを起動…



動画だと dev_server.sh とか使ってますが、今までEclipse+Pluginの世界で appengine/J をやってきたので入ってないんだった…

なのでこれから普通のSDK入れるのもめんどくさいのでとりあえずEclipseで起動します
ringo-adminでできたフォルダの中にWEB-INFフォルダがあるので、その中身でEclipseで作成したappengineプロジェクトのWEB-INFの中身を上書きします!
あとは普段どおり開発サーバを立ち上げるだけで普通に動きますね!そのままデプロイもOK!

とはいえ、せっかくJSサーバーサイドもやるんだからEclipseとか使わないほうがいいかね…

ちなみにこの先はRailsちっくな感じで作りこんでくっぽいです

とりあえずページを増やすだけならこんな感じに WEB-INF/app/actions.js に追記

var {Response} = require('ringo/webapp/response');

exports.index = function (req) {
    return Response.skin(module.resolve('skins/index.html'), {
        title: "It's working!"
    });
};

// ここから追記
exports.hello = function (req) {
    return Response.skin(module.resolve('skins/index.html'), {
        title: "Hello, ringojs"
    });
};
// ここまで追記

http://localhost:8888/helloアクセスすると、http://localhost:8888/ のタイトル部分だけ変更されたページがでます
skins 以下がviewな感じでしょうかねー


以上おしまい

*1:他にもacreとかがあります

*2:ringo-admin.cmd create -a してからアプリ名を入力でもできるのですが、それだとbinディレクトリの中に作られてしまいます