2012-02-02
■[Python]Pythonのloggingで、GMailのSMTPサーバからメールを送信したいときの設定
忘備録として。
はまった点はsecureに空のタプルを指定するという点。
とりあえずこれで動いてはいますが、本当にそれでいいのかというのはよく分かっていません。
LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'handlers': {
'mail_handlers': {
'level': 'ERROR',
'class': 'logging.handlers.SMTPHandler',
'mailhost': ('smtp.gmail.com', 587),
'fromaddr': 'from_mail@gmail.com',
'toaddrs': ['to_mail_1@a.com', 'to_mail_2@a.com'],
'subject': 'error log',
'credentials': ('from_mail@gmail.com', 'password'),
'secure': (),
}
},
'loggers': {
'': {
'handlers': ['mail_handlers'],
'level': 'DEBUG',
}
}
}
あとは、こんな感じの書き方で直に出力することも可能ですね。
import logging from logging.handlers import SMTPHandler mailhost = ('smtp.gmail.com', 587) fromaddr = 'from_mail@gmail.com' toaddrs = ['to_mail_1@a.com', 'to_mail_2@a.com'] subject = 'error log' credentials = ('from_mail@gmail.com', 'password') secure = () handler = SMTPHandler(mailhost, fromaddr, toaddrs, subject, credentials, secure) logger = logging.getLogger('root') logger.addHandler(handler) logger.error('logging test')
それにしてもあんまり情報がないところ、みんなGMailで送信はしていないんじゃないかなと思ったりしてます。
2011-12-15
■[Java]変数名とかクラス名とか
Java Advent Calendar 2011 12/13日*1担当のさぼてんです。
みなさん、普段あまり変数名とかクラス名とかを意識せずに付けていると思います。
え、命名には凝ってるって?
確かにそうだと思いますが、どの文字が使えるかとかはあまり考えずにやっていると思います。
例えば、アンダースコアが使えるとか、ハイフンは使えないとか、そういうのです。
殆どの人はJava言語仕様なんて読まないので、EclipseなどのIDEやコンパイラからのエラーでなんとなく理解していると思われます。
僕もほとんど読んでないです。
じゃぁ、実際のところはとどうなんでしょうね。
Java言語仕様の3.8 Identifiers*2に記載があります。
http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#3.8
以下抜粋
Letters and digits may be drawn from the entire Unicode character set, which supports most writing scripts in use in the world today, including the large sets for Chinese, Japanese, and Korean. This allows programmers to use identifiers in their programs that are written in their native languages. A "Java letter" is a character for which the method Character.isJavaIdentifierStart(int) returns true. A "Java letter-or-digit" is a character for which the method Character.isJavaIdentifierPart(int) returns true. The Java letters include uppercase and lowercase ASCII Latin letters A-Z (\u0041-\u005a), and a-z (\u0061-\u007a), and, for historical reasons, the ASCII underscore (_, or \u005f) and dollar sign ($, or \u0024). The $ character should be used only in mechanically generated source code or, rarely, to access preexisting names on legacy systems. The "Java digits" include the ASCII digits 0-9 (\u0030-\u0039).
英語を訳すの面倒くさいので、第二版ですが日本語訳もあるみたいなので、そちらを見てみます。
http://www.y-adagio.com/public/standards/tr_javalang/3.doc.htm#40625
文字及び数字は,Unicode文字集合のどの文字であってもよい。Unicode文字集合は,中国語,日本語及び朝鮮語(チョソノ)に対する大きな集合を含み,今日世界で使用しているほとんどの筆記スクリプトを扱っている。これによって,Javaプログラマは,プログラム中に,自分の母国語で書いた識別子を使うことができる。 Java文字は, メソッドACharacter.isJavaLetter(20.5.17)が true を返す文字とする。Java文字又は数字は,メソッドACharacter.isJavaLetterOrDigit(20.5.18)が true を返す文字とする。 Java字には,ASCIIラテン文字の大文字・小文字,つまり,A-Z (\u0041-\u005a)及びa-z (\u0061-\u007a),並びに,歴史的な理由によって,ASCIIの下線 (_又は\u005f)及びドル記号($又は\u0024)が含まれる。 $文字は,機械的に生成されたソースコードにおいてだけ,又は,まれには,過去のシステム上の既存の名前にアクセスするためだけに使用することが望ましい。 "Java数字"は,ASCIIの数字0-9 (\u0030-\u0039)を含む。
英数字と、記号としては_と$が使えますね。
JUnitなどでメソッド名に日本語で書けるのも、この仕様のおかげです。
といっても、実際のプロダクトコードのほうには日本語でプログラミングしている人とかいないでしょうが、変な英語をつけるぐらいなら、いっそう日本語でそのまま書いてしまってもいいんじゃないんでしょうかね。
それはそれで置いといて、上記仕様からこんなか書き方もできるんじゃないんでしょうか。
public class _{ public static void main(String[] args) { boolean x_x = true; String $_$ = "_"; for(;x_x;) System.out.println($_$); } }
無限ループしてるとかの野暮なツッコミはやめてください。
2011-12-05
■[Jenkins][CI]Dependency Graph View Plugin について
Jenkins Advent Calender 2011 5日目担当のさぼてんです。
残念ながらあんまり時間がなかったので、凝ったことはせずにPlugin紹介にします。
ご紹介するのはDependency Graph View Plugin についてです。
https://wiki.jenkins-ci.org/display/JENKINS/Dependency+Graph+View+Plugin
何がいいかというと、一目にわかると思います。
Jobの依存関係がひと目に見れます。
また、それぞれのJobはクリックするとJobの画面に遷移します。
次はid:kiy0taka さんです。
どんな爆笑ネタを仕込んでくるのか、すごく期待しています:)
2011-11-09
■[CI][Jenkins]Jenkins実践入門
献本いただきました。
技術評論社の傳さん、ありがとうございます。
今日のお昼過ぎに手元にとどきまして、さっそく読んでみました。
Javaに特化した内容が多いですが、JenkinsやCI初心者にお勧めの一冊です。
CIとは何か?Jenkinsの使用するためのはじめの一歩的なところを丁寧に説明されています。
Jenkinsのインストールから、SCMの具体的な設定方法、コンパイルとJarへのパッケージングや、ユニットテストとカバレッジ、静的解析(インスペクション)の具体的なやり方やデプロイなど、一通りCIで行えることが記載されています。
初心者は特に、何をしたらいいのかわからない、何ができるのかがわからない、ということで躊躇しがちですが、この本を読む限りそういうことはないでしょう。
また、もうすでにプロジェクトに導入し、使用している人たちにとっては、Viewのカスタマイズやファイル指紋、BTSなどのほかのツールとの連携など、より一層Jenkinsを便利に使う方法が記載されています。
それだけでなく、Jenkinsのプラグインの開発方法や、分散ビルド、パフォーマンスチューニングなど、より深く使用するための方法も記載されています。
この本は内容のボリュームはあるのですがページ数が320ページほどで、このボリュームを説明するにはいささか少ない印象です。
あと100ページぐらい欲しいと思えるほど、もっと深く知りたい内容が含まれています。
簡単な紹介でしたが、今まさにJenkinsを使いたい、使ってる人にとっては一読してみる価値はあると思います。
プロジェクトに明日から使える、便利な方法や発見があるかもしれません。
2011-09-24
■[Jenkins]Jenkins勉強会 in 札幌
発表してきました。
資料張っておきます。
http://www.slideshare.net/cactusman/jenkins-in
http://www.slideshare.net/cactusman/jenkins-in-9387775
(TODO 感想などは後で書く)


