Posted by & filed under いろいろ.


仕事をせずに遊んでばかりいるので、同じように仕事をせずに親会社に左遷させられてしまった井上さんに、インドに飛ばされてしまいました。行きたくないと言っても聞いてくれません。親会社でも仕事をしていないように見える小松さんと井上さんに密室に閉じ込められてインドに行くように 脅迫 説得されました。「英語しゃべれない」って言っても「大丈夫、しゃべれます」、「インド人の英語聞き取れません」と言っても「なんとかなるでしょう」、「辛いモノがダメです」と言っても「カレーおいしいよ」、「病気怖い」と言っても「高級ホテルなので外に出なければ大丈夫」。
うーん、と言うことで行ってきました

[続きを読む…]


関連文書:

  • 関連文書は見つからんがな

Posted by & filed under 勉強会.


ありえるたんが怖いので書いたほうがいいと言っていたので書きます。
六本木のどこぞのビルで Linux のカーネルのソースコードを読む会です。

登録はこちらから: http://connpass.com/event/1101/
まとめサイトはこちら: http://linuxsyscall.readthedocs.org/
ハッシュタグは #linuxrpg です。


関連文書:

  • 関連文書は見つからんがな

Posted by & filed under いろいろ.


JavaScriptでマクロが使えるというsweet.jsを使ってみました。

forOfはES.nextのfor-ofです、といってもDense Arrayにしか対応していませんが。$arrayを束縛するために無名関数で囲っています。Closure CompilerのADVANCEDモードを使えばこの関数呼び出しを消せるのですが、マクロ側で何か対処したいですね。Lispのgensym的なことはできないのでしょうか。

次のnullSafetyは途中にnullがあっても安全にプロパティチェーンをたどれるようなコードに展開されます。繰り返しパターンがどのcaseに適用されているのか追いかけるのに苦労しました。

最後のzipはpythonなり配列操作ライブラリによくあるやつです。これはforOfと違い配列を束縛していないので、zip(a of func1(), b of func2()) のようなことをすると関数が何度も呼び出されてしまいます。$array…はargumentsなどに束縛できるのですが、そうすると$n…への代入が書けなくなってしまいました。

あとはLispのunquoteのようにマクロ展開時に式を評価させる方法が見つかりませんでした。

とはいえ色々とおもしろそうなので、隙があれば今のプロダクトで使おうと計画中です。その為にもちゃんとConstなんとかさんのツール群を追いかけて自分で機能追加できるくらいにならなくては。


関連文書:

  • 関連文書は見つからんがな

Posted by & filed under 勉強会.


ありえるたんは英語を話せるのかな?

プログラマーは英語の読み書きに慣れていますが、普段の生活の中で話す機会は少ないかもしれません。いざ話そうとしてみると、英単語が思い浮かばなかったり、うまい言い回しができなかったりします。

今回の勉強会の目的は英語を話すことです。自分のやっていることや思ったことを英語で伝える練習の場です。既に定員には達してしまいましたが、シリーズ化するという噂も聞きますし、補欠登録しておいて頂ければ定員追加も検討します。

開催概要

 


関連文書:

Posted by & filed under いろいろ.


開発部 川野です。昨日、PyCon JP 2012(Python Conference Japan 2012)にて、Sublime Text 2 のセッションをしてきました。

以下、発表資料です。

今回のセッションをきっかけに、Sublime Text って面白そう!、と感じて頂ければ幸いです。が、私のつたないデモだと、むしろ逆効果だったのでは、と落ち込んでいたり。。Sublime Text は有償のテキストエディタですが、無期限(!)で試用できるので、ぜひとも一度使ってみて、その良さを直接体験して頂ければと思います。

Sublime Text – Download:
http://www.sublimetext.com/2

PyCon JP 2012 運営チームの皆様、素敵なカンファレンスをどうもありがとうございました。「つながるPython」のスローガン通り、いろんな方と交流できた、とっても楽しいイベントでした。

# リクルーティングセッションで、アリエルネットワークのネガティブキャンペーンをしていたことは、ご内密にお願いします _o_


関連文書:

Posted by & filed under いろいろ.


ありえるたんに脅され頼まれたので書きます。
六本木のどこぞのビルで Linux のカーネルのソースコードを読む会です。

登録はこちらから: http://connpass.com/event/996/
まとめサイトはこちら: http://linuxsyscall.readthedocs.org/
ハッシュタグは #linuxrpg です。


関連文書:

  • 関連文書は見つからんがな

Posted by & filed under 開発.


Java 見習いのもりもとです。

アリエルのスタート地点 を知ってから、いつもどぎまぎしながら開発しています。

アリエルのスタート地点は、Javaと聞いて、ふっと鼻で笑える地点です。

私にとっては、スタート地点がまだまだ遠そうなのでしばらくは Python の話題でお茶を濁そうと思います。ちょうど良い機会なので Pythonic なテストツール pytest についてチュートリアルのような記事を何回かに分けて書きます。

pytest は、設定より規約 を設計原則とするツールで、xUnit スタイルではない funcarg という関数の引数をフックしてリソースインジェクションを行う仕組みを提供するなど、ユニークなテストツールです。さらに単体テスト、機能テスト、システムテストといった全てのテストフェーズにおいても利用できると、その応用範囲の広さも喧伝しています。ドキュメントも翻訳されているので参考にしてください。

さて、先日、社内のアルバイトの方が Python で作成したツールを紹介されていました。おそらく Python プログラミングにまだ慣れていないのだと推測しますが、コーディングスタイルに一貫性が見られませんでした。私も若い頃、先輩から「コードに統合性がない」とレビューでよく指摘されたものです。

Python では PEP 8 (翻訳) というデファクトのコーディングスタイルが提案されていて、広くよく守られているようです。とは言え、まだ Python に慣れないプログラマーが意識しながらコーディングするのはちょっと大変です。そんなときに便利なのが pep8 というチェックツールです。

先に必要なツールを pip を使ってインストールしておきます。

インストールが完了したら pep8 をコマンドラインから使ってみましょう。以下のサンプルプログラムのコーディングスタイルをチェックします。

import sys, os


class A(object): pass


def func(x, y = 2):
    return x, y

def main():
    l = [1,2, 3, 4, 5]
    d = {'a': 1, 'b':2}

if __name__ == "__main__":
    main()

たくさんエラーが検出されましたね。エラー出力に従って修正していくだけでも見た目の良いプログラムになります。慣れた人ならこの出力から該当行をみて修正できますが、もっと分かりやすいエラー表示をしてくれるのが pytest-pep8 プラグインです。以下のように “–pep8” オプションを付けて実行します。

該当行のどの部分がエラーなのかを指摘してくれているのでさらに分かりやすいですね。また次回に紹介しますが、テストが失敗したときのエラーレポートの見やすさ・分かりやすさも pytest の特徴の1つです。

PEP 8 違反の内容は分かるようになりましたが、ときには完全準拠するのもやや窮屈に感じることがあるかもしれません。そんなときに特定のエラーを無視するようにも設定できます。

pytest のオプション指定やプラグイン設定などは INI ファイル形式で設定します。以下のようにカレントディレクトリに pytest.ini を設定します。addopts は py.test に渡すオプションをデフォルトで設定するためのパラメーターです。

今回はオプション無しで py.test を実行すると、E302 と E701 を無視したエラーレポートが表示されます。

まとめ

py.test で通常のテストを実行するとき、pytest-pep8 プラグインもインストールしておいて、ついでに PEP 8 のコーディングスタイルをチェックするのはとても簡単そうだと思ったでしょうか。テストは面倒だと、億劫になってやらなくなってしまうので、この簡単にできるようにする仕組みも重要です。

  • Python コードはなるべく PEP 8 に従ってコーディングしよう
  • pytest という Pythnic なテストツールを使ってみよう
  • pytest-pep8 プラグインを使って pep8 テストを実行してみよう

次回は pytest を使って実際にテストを書くことについて紹介します。


関連文書:

Posted by & filed under いろいろ.


あすなろブログが閉鎖されて久しいです。年内は閲覧はできるようですが…。そこで書きためたもの(CSVのファイル?)をもらって、ここに移行しようと 思って放置して、早数カ月。このままだと、忘れ去られると思って、インポートしました。「CSVファイル?」って書いているのは、csvって拡張子が付い ているけど、フォーマットがcsvじゃないんです。まあ、なんでもいいんだけどね。

[続きを読む…]


関連文書:

  • 関連文書は見つからんがな

Posted by & filed under 開発.


気になることがあって、semaphoreのコストがどれくらいあるのか、調べて見ました。サンプルコードは、githubに あります。やっていることはjava.util.concurrent.Semaphoreでacquire/releaseをループでぐるぐる回してい るだけです。Semaphoreは順序付き実行と順序なしで実行しています。めんどかったので、計測は秒で、/usr/bin/timeコマンドで測った 結果なので、プロセスの起動とかのオーバーヘッドはありますが、気にしないでください。結果は次のとおり。

[続きを読む…]


関連文書: