サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大そうじへの備え
fujishinko.exblog.jp
Pythonのモジュールをインストールするためのツールに easy_installがあります。 いままで、 http://peak.telecommunity.com/dist/ez_setup.py ここのファイルをダウンロードして python ez_setup.py を実行していたのですが、Ubuntuだと sudo apt-get install python-setuptools これでOK。 easy_installが使えるようになります。
よく、['a', 'b', 'c']という配列の内容をループで表示しているとき、 あわせてループカウントも取得したい時があります。 今までは、 count = 0 for word in ['a','b','c']: print count,word count+=1 としていたのですが、美しくない・・・ 調べてみると、 for i,word in enumerate(['a','b','c']): print i,word 出力結果 0 a 1 b 2 c enumerateとしてやることで、ループカウントも 一緒に取得できました。 便利~
今までMySQL一辺倒でPostgreSQLは使ったことがなかったので、 ちょっと触ってみます。 早速、Debianにインストールし、外部からODBC経由で接続可能な状態とします。 インストールはapt-getで行いました。 apt-get install postgresql インストールすると、postgresというユーザーが作られるようです。 パスワードが設定されていないので、パスワードを設定してやります。 # passwd postgres 新しいUNIXパスワードを入力してください: 新しいUNIX パスワードを再入力してください: passwd: パスワードは正しく更新されました 次に、postgresユーザーでデータベースに接続してみます。 # su - postgres $psql Welcome to psql 8.3.7, the PostgreSQL interact
「テストコードは大切だよね」という話は良くしますが・・・ 恥ずかしながら、テストコードの書き方を知らないので、基礎から調べてみます。 参考にしたのはここ。 http://www.python.jp/doc/2.5/lib/module-unittest.html 1.まず、unittestをimportして、unittest.TestCaseを継承したクラスを作成します。 2.テストを行う前に、オブジェクトの作成などの事前処理を行いたい場合は、 「setUp」というメソッドを宣言します。 3.テストメソッドを作成します。 4.unittest.main()を呼び出すと、テストクラスの実行が開始されます。 ・・・といっても良くわからないので、ただ関数名を表示するだけの テストケースを作成して動かしてみます。 # -*- coding:utf-8 -*- import unittest #un
Debianでnginx+wsgiの環境構築は行ったのですが、 今回DB2をインストールした環境にwebサーバも 相乗りしたかったので、CentOS上にnginxを インストールしてみます。 nginxの最新版は http://sysoev.ru/nginx/download.html Текущие версии: (現在のバージョン) Стабильные версии: (安定バージョン) Устаревшие стабильные версии: (旧版のリリース) ※初めてGoogleのロシア語の翻訳を使いました。 ということで、安定バージョンの0.6.34を使用することにします。 また、後日記載しますがわけあってPython2.5.xで 環境を構築する必用があります。 CentOS5.2に標準インストールされているPythonは2.4系 なので、ソースをダウンロードしコンパイル
mysqlの設定ファイルを変更したので、mysqlを再起動しようとすると・・・ # /etc/init.d/mysql restart Stopping MySQL database server: mysqld failed! Starting MySQL database server: mysqld already running. /usr/bin/mysqladmin: connect to server at 'localhost' failed error: 'Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)' debian-sys-maintっていうユーザー、作った記憶無いんですけど。 エラーログも出力されないようで、困ったいたのですが、 MySQL - debian-sy
ちょっとした事情で、日本語の分かち書きをperlで実行する必要が出てきました。 PerlからMecabを操作し、分かち書きを実行してみます。 ■Mecabのインストール debian で plagger http://d.hatena.ne.jp/kumattau/20091011/1255285509 こちらを参考にさせていただきました。 まず、sources.listにサイトを追加 # vi /etc/apt/sources.list deb http://ftp.jp.debian.org/debian/ lenny main deb-src http://ftp.jp.debian.org/debian/ lenny main deb http://security.debian.org/ lenny/updates main deb-src http://security.deb
CentOSにインストールしたnginxの 起動スクリプトを作成しました。 #!/bin/bash # # Startup script for the nginx # # chkconfig: 345 80 15 # description: Nginx web server. # Source function library. . /etc/rc.d/init.d/functions start(){ /sbin/nginx } stop(){ kill `cat /usr/local/nginx/nginx.pid` } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo "Usage: $0 {start|stop|restart}" esac exit 0
ApacheとTomcatを連携するときには、mod_jkをよく使います。 mod_jk.soをロードして、mod_jk.confとworkers.propertiesを 用意して・・・と結構面倒ですが、nginxはwebサーバーと リバースプロキシ両方の機能を持ってますので、お手軽に 連携できます。 mod_jkの解説でよく見かける、Tomcatのサンプルを公開する 方法を試してみました。 といっても、nginx.confをちょっと変更するだけです。 worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 6
Webアプリケーションで、途中まで入力したら候補を リストで表示する処理を実装したかったのですが、 いかんせん、JavaScriptの知識はほとんどゼロ。 いろいろ探し回ってみると、suggest.jsという ライブラリを見つけました。 残念ながら、suggest.jsは変換候補を事前にJavaScriptに仕込んでおく 必要があるようで、今回はデータベースに登録されている候補から 選択させたかったので、若干要件にあいません。 さらに調べてみると、suggest_ajax.jsというsuggest.jsを ajax対応する拡張スクリプトを見つけました。 早速使用してみたのですが・・・suggest.jsがバージョンアップの際、 オブジェクト名を変更されたようで動きません。 覚悟を決めて、自分でajax対応することにしました。 suggest.jsに変更を加えないように書いたスクリプトがコチ
メールを送信するとき、差出人にメールアドレスではなく、日本語名を設定したい場合があります。 以前、このblogにも書いたのですが・・・ Python でメール送信 Debian lennyで動かすと、差出人が文字化けしてしまいました。。。 たぶん、Python2.5から仕様が変わっているんだと思います。 メールの差出人に日本語を設定するには、 iso-2022-jpでエンコードされた日本語 <メールアドレス> と指定してやる必要があります。 ここで気をつけないといけない点は、 ※メールアドレスはエンコードしてはいけない。 以上を踏まえて、Pythonでメールを送信するサンプルプログラムはこんな感じ。 #!/usr/bin/env python # -*- coding:utf-8 -*- import smtplib from email.MIMEText import MIMEText
久しぶりにMySQLを触ろうと、mysqlコマンドを実行。 # mysql -root -pPassWord どんなデータベース作ってたっけな? mysql> show databases; Ignoring query to other database ・・・何、このエラー? パッチ当てたときに仕様が変わったのかと焦りましたが ###誤り # mysql -root -pPassWord ###正解 # mysql -uroot -pPassWord uが抜けてただけでした。 uを忘れててもログインできたっぽいメッセージが表示されるので、 しばらく気がつきませんでしたよ。はい。
前回に引き続きFlexとPyAMFネタ。 ベタに文字列データの通信を行うのではなく、オブジェクトデータの やり取りを試してみます。 元ネタのサンプルURLはこちら。 server.py http://pyamf.org/browser/examples/trunk/simple/python/server.py SimpleView.as http://pyamf.org/browser/examples/trunk/simple/flex/src/org/pyamf/examples/simple/SimpleView.as User.as http://pyamf.org/browser/examples/trunk/simple/flex/src/org/pyamf/examples/simple/User.as こんなマイナーな記事を見る人は、うだうだ説明するよりソースの方が早いと
MySQLで外部接続を許可する設定方法です。 1.my.cnfの設定確認 インストール直後だと、おそらくmy.cnfに bind-address = 127.0.0.1 という記載があるかと思います。 このIPからの接続しか受け付けないという意味なので、 制限なく接続を許可する場合は、コメントアウトします。 http://www.nilab.info/zurazure2/000318.html 2.ユーザ権限の発行 GRANT を発行して、リモートアクセスユーザに権限を付与します。 http://www.rfs.jp/server/mysql/02/02.html ・・・たぶん、MySQL使いには常識なんでしょうけれども、はまったのでメモです。
携帯で、書籍についているバーコード(ISBN)の写真を撮り、 メールに添付して送ったらその書籍の情報を管理してくれる。 ・・・なんておもしろいかもと思い Python でバーコード解析を 行うプログラムを書こうとしていたのですが、 ・・・最近の携帯って、バーコード読み取る機能があるんですね。 まあ、よくよく考えるとQRコードが読めるんだから、二次元 バーコードを読むのは簡単なわけで。。。 私の使っている携帯が、カメラが付き始めたころの機種で、 こんな機能もなく、また解像度も激低なので、使い物に なりそうにありませんでした。 そんなわけで、途中で投げ出した書きかけのソースを そのうち使うこともあるかもしれないのでメモ #! /usr/bin/env python # -*- coding: utf-8 -*- #バードード画像解析プログラム #参考URL #http://kansai.ane
ネットをぷらついていたら、 Nginx + WSGI == Blazing Fast! http://groups.google.co.jp/group/webpy/browse_thread/thread/53a4f45de8ab96ed おお、Nginxにmod_wsgi moduleが存在するとは。 http://wiki.codemongers.com/NginxNgxWSGIModule 例はweb.pyですが、これってPylonsも動かせるんじゃ・・・ ※Nginx自体はちょっと触ったことがあります。 http://fujishinko.exblog.jp/7686541/ 早速挑戦です。 まず、webサーバのNginxをダウンロード http://nginx.net/ ここから nginx-0.6.34.tar.gz をダウンロード wsgiモジュール http://hg.m
DB2をGUIなしでインストールしたので、コマンドで操作する 必要に迫られています。 下記のサイトを参考に、自分用のメモとしてコマンドをまとめました。 【参考URL】 DB2の小技 DB2-基本コマンド DB2逆引き機能リファレンス ■CLP起動 #su - db2inst1 $db2 db2 => ■データベースの一覧表示 db2 => LIST DB DIRECTORY もしくは db2 => LIST DATABASE DIRECTORY ■データベースの作成 ※コマンドを改行したいときは「\」 db2 => CREATE DATABASE sample \ AUTOMATIC STORAGE YES ON '/home/db2inst1' \ DBPATH ON '/home/db2inst1' \ ALIAS sample_a \ USING CODESET UTF-8 \ TE
Django と戯れていたのですが、どうもチュートリアルと 実際の動きが違うのではまっていたら・・・ apt-get じゃなくて、リポジトリから取得したものの 解説だったのね。 とうわけで、subversion をインストールしてモジュールを ダウンロードしようと思ったのですが、 proxy経由になるんですよね。。。 Subversionのproxy設定 http://www.proton.jp/apps/subversion.html apt-get install subversion vi ~/.subversion/servers [global] http-proxy-exception = プロキシを通さないホスト名 http-proxy-host = プロキシサーバのホスト名 http-proxy-port = プロキシサーバのポート番号 意外とお手軽でした。 早速、Djan
昨年始めようと思っていたerlangですが、結局何もせぬまま 一年が過ぎてしまいました。 今年こそはと思い、CentOS5.2にerlangをインストールしました。 Debianでは apt-get install erlang でインストールした気がするのですが、CentOSのyumではインストール できない模様なので、ソースからインストールします。 ソースはこちら。 http://www.erlang.org/download.html #wget http://www.erlang.org/download/otp_src_R12B-5.tar.gz で、otp_src_R12B-5.tar.gzを取得し /usr/local/src にコピーします。 そこで、 #tar zxvf otp_src_R12B-5.tar.gz として展開。 #./configure すると No cu
結構はまったのでメモ書きです。 例えば -module(hello). -export([hello_out/0]). hello_out() -> io:fwrite("Hello world!\n"). こんなソースを書いて、hello_out()を実行したいとき、 erl >c(hello). {ok,hello} >hello:hello_out(). Hello world! ok こんな感じで、Eshellを起動し、コンパイルを実行してhello.beamを作成。 その後、実行という流れになるかと思いますが、実運用を考えたとき、 cronに仕込んでhello:hello_out()を実行したいと思うはずです。 こんなときは、 erl -noshell -s hello hello_out -s init stop としてやると、Eshellを起動せずに関数を実行できます。 -n
phpのxcacheの設定ファイルを書いているときに 「adminのパスワードはmd5のハッシュ値を記述」 とありました。 Pythonで簡単にハッシュ値を求められないか調べたので メモしておきます。 まず、md5のハッシュ値を求めるには import md5 print md5.new('password').hexdigest() とすれば、OK 同様に、shaのハッシュ値も求めることが出来ます。 import sha print sha.new('password').hexdigest() ただ、これらのオブジェクトはPython2.5で廃止されました。 ※2.5でも下位互換の為か、ちゃんと動きました。 hashlibを使いなさいとのことで、同様のロジックは #2.4ではimportエラーになります。 import hashlib print hashlib.md5('passwo
CentOS5.2にnginx + php-fpm(PHP FastCGI Process Manager) + XCacheの環境を構築する nginxのことについて調べていると、たまたま Nginx + PHP + PHP-FPM on Debian Etch 4.0 というエントリーを見つけました。 早速CentOSで試してみます。 MySQLは使いたいので、インストール yum install mysql-server php-fpmとは? php-fpm(PHP FastCGI Process Manager) php-fpm - is a patch for php4/5 to greatly improve FastCGI SAPI usage in production. 紹介文から推測すると、要するにphpのパッチ形式でモジュールは提供され、 これを適用すると、FastC
リモートのwindowsを制御するのにリモートデスクトップを 使用していますが、バッチファイルなどで制御するには 向いていません。 何かよい方法がないか調べてみると、 デスクトップ ファイル PsTools 入門 PsExecというツールを使用すれば、なんとコマンドプロンプトから リモートのwindowsのコマンドプロンプトを奪えます。 これは非常に便利。 @ITにも取り上げられています。 Windows管理者必携、Sysinternalsでシステムを把握する 知らんかった。 端末の監視や、起動している端末へのパッチの強制適用など いろいろ用途はありそうです。 便利なのですが、監視用のためにwindows端末の用意するのも ライセンスがもったいないなと思って調べてみると。。。 winexe 機能はPxExecと同等。 Debianで実行を確認できました。 試した手順は以下の通り。 ※解凍コ
CentOS5.2 iScsi Targetを構成し、VMware ESX Server から接続する Mware ESX Serverは、VMを保存するストレージに iScsiを指定できます。 CentOS5.2にiScsi Targetを構成し、VMware ESX Serverからの 接続を試した時のメモです。 ■下準備 まず、iScsiとして公開するボリューム/strageを作成して、 CentOSのインストールを行ないました。 インストール後の構成は以下の通りです。 #cat /etc/fstab /dev/VolGroup00/LogVol00 / ext3 defaults 1 1 /dev/VolGroup00/LogVol02 /strage ext3 defaults
nginxで小物のperlやpythonプログラムを動かすために、 Simple CGI support for Nginx (fcgiwrap) を設定したときの作業内容です。 fcgiwrapをmakeするとき、 fcgi_stdio.h: そのようなファイルやディレクトリはありません というエラーメッセージと共にビルドに失敗しました。 まずは、fastcgiのソースを取得し展開します。 #cd /usr/local/src #wget http://www.fastcgi.com/dist/fcgi.tar.gz #tar zxvf fcgi-2.4.0.tar.gz #cd fcgi-2.4.0 #./configure #make #make install 次に、fcgiwrapのインストールを行います。 #wget http://github.com/gnosek/fcgiw
最近、lighttpdの評判が良いようなのでlighttpdで mantis(PHP + MySQL)を動かしてみました。 まずは、基本のミドルをインストールします。 # apt-get install lighttpd # apt-get install mysql-server # apt-get install php5-cgi # apt-get install php5-mysql # apt-get install php5-gd # apt-get install mcrypt lighttpdの設定ファイルを編集 #vi /etc/lighttpd/lighttpd.conf #"mod_fastcgi",を追加 server.modules = ( "mod_access", "mod_alias", "mod_accesslog", "mod_fastcgi", # "
Django を使ってやろうと思っていたのですが、どうも 思うように動いてくれない・・・ ということで、web.pyに浮気してみました。 http://webpy.org/ ググってみると、 「python の web サーバでデバッグ起動」 や 「cgiで起動」 は、見かけるのですが 「mod_python で起動」 がなかなか見つからない。 ということで、webpyのインストールから mod_python での 起動を試してみました。 まずはwebpyが使うブツをインストール apt-get install python-cheetah python-mysqldb python-flup ※python-flupはいらないかも mod_python インストール apt-get install libapache2-mod-python2.4 wsgiref インストール チュートリ
PHPでMySQLのデータベースに登録したデータをCSVファイルで ダウンロードさせるプログラムを作る必要に迫られました。 改行処理とかめんどくさいな・・・と思っていたところ fputcsvという関数を見つけました。 (PHP5以上のようですが。) サンプルをいくつか探してみたのですが、どうも 「一旦ファイルを作成して、それをダウンロードさせる」 という処理しか見つからない。。。 ダイレクトにダウンロードさせたいのに。 と思っていたら、ステキなサンプルを見つけました。 http://www.developer0000.jp/2007/06/26/1550/ <?php $out = fopen('php://output', 'w'); fputcsv($out, array('this','is some', 'csv "stuff", you know.')); fclose($out
RubyやPythonのソースを読んでいると、 yield という表記を見かけます。 よくわかっていなかったので、調べてみました。 def yeildtest(): for i in range(10): yield i*10 if __name__ == '__main__': for j in yeildtest(): print j print '-----' # 実行結果 # 0 # ----- # 10 # ----- # 20 # ----- # 30 # ----- # 40 # ----- # 50 # ----- # 60 # ----- # 70 # ----- # 80 # ----- # 90 # ----- yieldが呼び出されると、一旦メソッドを終了し、 呼び出し元に値を返すんですね・・・ xmlを解析しながら、オブジェクトを生成。 ひとまとまりのオブジェクト
次のページ
このページを最初にブックマークしてみませんか?
『fujishinko 雑記帳』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く