タグ

ブックマーク / methane.hatenablog.jp (14)

  • Homebrew の Python で何が変わって何がもとに戻ったのか - methaneのブログ

    rcmdnk.com 大分混乱した状態になってしまったので、今年何が変わってきたのか、今回の変更でどこまでもどったのかを整理しておきます。 1/19 python という formula が python コマンドをインストールしなくなりました。 python コマンドを起動すると、通常は /usr/bin/python が起動するようになりました。 1.5.0 — Homebrew 3/2 python という formula が Python 3 になり、 Python 2.7 は python@2 になりました。 python formula (Python 3) が python コマンドをインストールするようになったので、 python コマンドを起動すると通常は Python 3 が起動するようになりました。これが npm の gyp とか色んな所をぶっ壊す変更になっていました

    Homebrew の Python で何が変わって何がもとに戻ったのか - methaneのブログ
    kk6
    kk6 2018/03/12
  • 最近出たPython本2冊紹介 - methaneのブログ

    1冊めは入門書。結城さんの Tweet を見て知った。 www.amazon.co.jp プログラミング自体が初めてという人向けの入門書なので真面目に読む気は無いんだけど、応援のために買ってみた。 中身をかいつまんで読んでみたんだけど、例えばよくある間違いのコードを表示されるエラーメッセージまでセットで紹介していたりして、周りに聞ける人が居ない入門者がこのを読みながら勉強するときに困ることを極力減らそうという親切さが伝わってきた。 入門書を読む機会が無いのでおすすめを聞かれても答えられなかったんだけど、これからはこのをおすすめしようと思う。 2冊めは「入門書の次に読む」(ただし、この場合の入門書はプログラミング非初心者向けの入門書だと思う) www.amazon.co.jp 中上級者向けのも最近増えて嬉しい限りだけど、このは Effective Python よりは広く、 パー

    最近出たPython本2冊紹介 - methaneのブログ
    kk6
    kk6 2016/03/23
  • mysqlclient が Django の推奨ドライバになりました - methaneのブログ

    MySQL-Python (MySQLdb) のメンテナンスが停滞したことで fork して後方互換性を保ったままメンテナンスをしている mysqlclient ですが、 Django の recommend になりました。 Databases | Django documentation | Django もともと推奨になっていた MySQLdbPython 3 をサポートしないままメンテナンスが停滞していることが問題になり、対立候補が MySQL Connector/Pythonmysqlclient でした。 Oracle 公式の安心感(僕個人が片手間にやってるよりは圧倒的に開発リソースを避けるはず)も捨てがたいのですが、クエリ結果のカラム数×行数(=MySQLパケット数)が多い時に Pure PythonMySQL Connector/Python と libmy

    mysqlclient が Django の推奨ドライバになりました - methaneのブログ
    kk6
    kk6 2014/10/28
  • PyCon JP 2014 の1日目 keynote について - methaneのブログ

    今年は娘ができたこともあり、 PyCon JP に発表だけじゃなく参加もしませんでした。 (娘と次第ですが、来年からはまた行きたいと思っています。) さて、 Twitter を眺めていると Python 3 に対するネガティブな反応がいきなり 流れ始めました。元になったのは id:fckey さんの PyCon JP 2014 1日目参加レポート #pyconjp という Blog 記事の、1日目 keynote の感想のようです。 PyCon JP 2014 の発表は YouTube で配信されていたので、そちらで keynote を 聞いた上で補足していきます。 ただし、英語のリスニングは苦手なので、 @kennethreitz さんの代弁や翻訳ではなく、 あくまでも個人的な意見です。 CH01 Opening~Keynote: Kenneth Reitz - YouTube 先に一

    PyCon JP 2014 の1日目 keynote について - methaneのブログ
    kk6
    kk6 2014/09/15
  • Mac で Python の開発環境構築(2013.11) - methaneのブログ

    しばらく Mac からおさらばしていたのですが、ゆえあって戻ってきました。 Python 3.3 ベースで Python 環境の構築をしたので、参考までに手順を残しておきます。 1. Homebrew で Python 3 をインストール とりあえずベースになる Python を用意します。いまならもう Python 3 を普段使い用にできるので、 Python 3 を用意します。 $ brew install python3 MacPorts でも大丈夫だと思います。 2. 自分用のデフォルト環境を作る システムの Python に直接自分が普段使うツール類をインストールするのは憚られるので、自分用のデフォルト Python を用意します。 Python 3.3 では venv が標準ライブラリにあるので、この手順で virtualenv を手動で準備する必要がなくなりました。 $ mk

    Mac で Python の開発環境構築(2013.11) - methaneのブログ
    kk6
    kk6 2013/11/08
  • Python 3 の MySQL ドライバ事情 - methaneのブログ

    Python 3.3 の現状の MySQL 事情ってだいぶ解りにくいので、 MySQL-python と PyMySQL についてまとめておきます。 MySQL Connector/Python とかも Python 3 対応しているはずですが使ってないので知りません。 MySQL-python 多分デファクトスタンダードな MySQLドライバなのですが、現状リリースされている 1.2.4 では Python 3 対応ができていません。 Fork の MySQL-for-Python3 が推奨されます。 PyMySQL 一応、この前リリースした PyMySQL 0.6 で動くはずです。 速度的には CPython で使う文には MySQL-python の方が速いはずなので、そっちを使ったほうがいいです。 また、 PyMySQL 0.6 はプロトコル仕様みながら結構書き換えたので人柱要素も

    Python 3 の MySQL ドライバ事情 - methaneのブログ
  • PEP 8 を翻訳しました - methaneのブログ

    PEP 8 の邦訳は既にありましたが、誤訳が残ってたり版が古かったりと問題があったので、最新版の PEP 8 をエイヤと翻訳しました。 公式ドキュメントの翻訳プロジェクトで PEP 翻訳の管理・公開できる体制ができるまで、 DropBox においています。 https://dl.dropboxusercontent.com/u/555254/pep-0008.ja.html

    PEP 8 を翻訳しました - methaneのブログ
    kk6
    kk6 2013/09/04
  • Chef-solo の代わりに fabric を使う - methaneのブログ

    Fabric は ssh 経由でリモートをゴニョゴニョするツールなので、デプロイツールとして見られがちですが、 cuisine など冪等な操作をサポートするライブラリを組み合わせれば手軽な構成管理ツールになります。 chef-solo に比べてターゲットとなるマシンへのインストールが不要なので vagrant と EC2 の Amazon AMI で同じように home ディレクトリを構築するようなスクリプトを書くことも可能です。 また fabtools を使えば、簡単に vagrant を対象にすることができます。 インストール: $ pip install fabric fabtool cuisine fabfile.py を作ります (サンプル): 使い方: $ fab vagrant package_upgrade setup_devtools # 開発マシンにいつもインストールし

    Chef-solo の代わりに fabric を使う - methaneのブログ
    kk6
    kk6 2013/02/05
  • BitBucketのいいところ - methaneのブログ

    KLab では、プロジェクト開発中に作った便利ツールなどを皆が気軽に社内で公開できる場としてBitBucketの無制限プラン($200/month)を契約しています。 今日は Github に比べていいなと思う点を紹介していきます。 1. アクセスコントロール Githubだと、書き込み権とadmin権が一緒になってしまっていましたが、BitBucketではadmin権とwrite権が分かれていたり、Team(GithubでいうOrganization)の Owner グループでなくてもリポジトリを作ることができます。 特にadmin権がなくてもリポジトリが作れるので、「皆に気軽にリポジトリを作って欲しい」を実現するために皆に Team の admin権を渡さなくていいのが利点です。 deploy key についても、同じ公開鍵を複数のリポジトリに登録できるのと、pushが禁止されているの

    BitBucketのいいところ - methaneのブログ
    kk6
    kk6 2013/01/29
    "コードレビュー機能の使いやすさは Github よりも数歩先"
  • Python で TDD してみる - methaneのブログ

    RSpec の入門とその一歩先へ がとてもよい記事だったので、 Python で写経させてもらいました。 https://github.com/methane/pytest-tut Ruby コミュニティと Python コミュニティの考え方の違いも見えて面白いと思います。 環境は Python 3.3 で、実行には py.test コマンドを使いましたが、 py.test の機能は特に使っていないので nose でもなんでも大丈夫です。 ファイルの作成 まずは空の実装とテストを作ります。 message_filter.py class MessageFilter: pass message_filter_test.py 最初のテストを書く py.test は .should といったメソッドを勝手に生やしたりはしません。普通に assert 文を書きましょう。 --- a/messege

    Python で TDD してみる - methaneのブログ
  • Flaskの闇 - methaneのブログ

    Merry, Xmas. Python advent calendar 2012 (#python_adv) 24日目の記事を、ミクパの再放送をBGMにお送りします。 今日は Flask のイケてないところとのつきあいかたを紹介します。 循環 import 問題 app.py 1ファイルだけの構成から成長してファイルを分け始めるときに突き当たるのが循環import問題です。 今まで1モジュールだった app.py を myapp/__init__.py にして、 view 関数を myapp/views.py の中で定義していきたいとします。 #myapp/__init__.py from flask import Flask app = Flask(__name__) import myapp.views #myapp/views.py from myapp import app @ap

    Flaskの闇 - methaneのブログ
    kk6
    kk6 2012/12/25
  • Flaskのカスタマイズについて - methaneのブログ

    2012 Pythonアドベントカレンダー(Webフレームワーク) #python_adv の5日目の記事です。 明日は @altnight にお願いします。 Flaskはオモチャじゃないよ PyCharmなどのIDEがFlaskに対応を始めたり、Flask はそろそろ Django に続く Python の Web フレームワーク No.2 と名乗れそうなほど広まってきています。(その割にPython3対応遅いけど) Flaskと言えばマイクロフレームワーク、Hello World が簡単に書けるヤツで有名ですよね。 import flask app = flask.Flask(__name__) @app.route('/') def index(): return "Hello, World." app.run(debug=True) これを見るとオモチャっぽく見えるんですが、Fla

    Flaskのカスタマイズについて - methaneのブログ
  • len が関数になっている理由 - methaneのブログ

    http://d.hatena.ne.jp/pashango_p/20090702/1246550203 len()がリストのメソッドでないのも同じ理由です。 オブジェクト指向的に考えれば、リストのメソッドであるべきなのに、わざわざビルトイン関数にしたんです。 「オブジェクト指向的に考えれば、リストのメソッドであるべき」って感じで、オブジェクト信者はそれが正義みたいに考えちゃうんだろうね・・・ Pythonは合理主義。「オブジェクト指向的に○○」よりも、一貫した少なくて明確なルールを重視する。 len() が .length() メソッドだったらどうなるか。あるコンテナは .length() の代わりに、 .len() や .size() という名前を使ってしまうかもしれない。「サイズを取るメソッドは.length()」という 暗黙のルールができてしまい、そのルールが頭に入っていない人が一

    len が関数になっている理由 - methaneのブログ
    kk6
    kk6 2012/02/01
    "Pythonは合理主義。「オブジェクト指向的に○○」よりも、一貫した少なくて明確なルールを重視する。(中略)__len__ に対するインタフェースは len() という組み込み関数になっている。"
  • バッチがわりに Python を使うときは、 os.system よりも subprocess.call を使おう - methaneのブログ

    次の2つのスクリプトは同じに見える。 #!/usr/bin/env python import os for i in xrange(100): cmd = "tail -f /var/log/syslog | cat " os.system(cmd) #!/usr/bin/env python import subprocess for i in xrange(100): cmd = "tail -f /var/log/syslog | cat " subprocess.call(cmd, shell=True) タイプ数が少ない分前者のほうが良さそうに見える。 でも、このスクリプトを止めようとしてCtrl-Cを押すと、前者はそのまま次のループが実行されてしまうのに対して、後者は例外を出して止まってくれる。 シグナルによる終了とは別に、終了コードが0で無かった場合にも例外を出してくれる

    バッチがわりに Python を使うときは、 os.system よりも subprocess.call を使おう - methaneのブログ
    kk6
    kk6 2011/05/12
  • 1