メモの日々


2003年04月14日(月) 新神奈川県知事は松沢成文

生活

  • このところ毎日曇っている。氷川きよしは辛いものが好き。瀬川英子はダンスとクロスワードが好き。
  • SQL Serverをインストールし、続けてそれのSP3をインストールした。SQL Serverのインストールの途中でインストーラがだんまりになり2度インストール作業をする羽目に。もー。

[link] 100円ノートの「超メモ術」 (アイデアBOX)

ネバーバード日記より。100円ノート買わねばと思った。おれすぐに影響されるなあ。天までとどけでだい兄ちゃんが注意されているのを思い出した。

[web] ブラウザの排除

バイト用のシステムのインストールが終わったのでアクセスしてみたら

本システムにアクセスいただいているブラウザでは、正常な動作が得られない可能性があります。お手数ですが、各メーカのサイトから推奨ブラウザ・バージョンをダウンロード・インストールしてご利用ください。

と表示され利用することができない。Mozillaを排除してNetscape7を勧めるとはひどいシステムだ。いや、「このブラウザでしか動作を保障しません」というのなら理解できるのですが、それ以外のブラウザでは利用できないようにするメリットって何かあるのですか?

ユーザのことをもっと考えて欲しいな。これ社内で導入したら文句言う人でるよなあ。でもおれはこれの開発に携わるのだ。こういう仕様がどういう考えの下で出てくるのかを、機会を見つけて聞いとかなきゃ。

[dev] Mozilla dot Party in Japan 4.0

無料だし行ってみようかなあと思案しているところ。ちょうど「ブラウザ限定サイトをどう克服するか」なんてのやってるし高木さんがどんな話するのか興味あるし。土曜日か...

[soft] OOo品質向上プロジェクト

OpenOfficeユーザー会MLより。BTSとして影舞を使っている。

やること

  • 風呂場の掃除
  • 郵便局で記帳
  • 再び銀行へ行きお金を降ろす

2007年04月14日(土)

  • 土曜日だが職場へ。
  • 結局MySQLの設定しかしていないじゃないか!

[ruby][db] RailsをMySQLと一緒に使った

今まではSQLiteを使っていたけど、ちょっとMySQLを導入してみた。

パッケージのインストール

Fedora Core 6を使っているので、

# yum install mysql-server

でよい。バージョン 5.0.27 がインストールされた。

後に「Lost connection to MySQL server during query」エラーが多発したので、MySQL Connection Problemsなどを参考にして次もインストールした。

# yum install mysql-devel
# gem install mysql -- --with-mysql-config=`which mysql_config`

MySQLの設定

MySQL使うのは1年ぶりくらいかな。もう何もかも忘れている。パッケージをインストールしたら /etc/my.cnf ができていたので、[mysqld] セクションに「skip-networking」を追加しネットワークアクセスを禁止したつもり。

後に文字化け問題が発生したので、くまくまーを参考にして「default-character-set=utf8」「skip-character-set-client-handshake」も記述した。

/etc/init.d/mysqld スクリプトを使ってMySQLのプロセスを起動したら、自動的にデータファイルを作ってくれた。で、

$ /usr/bin/mysqladmin -u root password 'new-password'
$ /usr/bin/mysqladmin -u root -h HOST_NAME password 'new-password'

によりrootのパスワードを設定した。

データベースの作成

MySQLに接続して、アプリケーション用のデータベースを作成する。

mysql> create database oreore_production;
mysql> create database oreore_development;
mysql> create database oreore_test;

アプリケーションが使用するアカウントも作成する。

mysql> grant all on oreore_production.* to oreore@localhost IDENTIFIED BY 'password';
mysql> grant all on oreore_development.* to oreore@localhost;
mysql> grant all on oreore_test.* to oreore@localhost;

MySQLのユーザ管理は謎めいていて頭が痛い。これで問題ないのかな?権限を与えすぎている可能性あり。

Railsの設定

database.ymlを作成する。railsコマンドが作ってくれる雛形に対して、

socket: /var/lib/mysql/mysql.sock

のような行を追加した。MySQLが mysql.sock を作成する場所に合わせる。

database.ymlにDB接続のパスワードを平文で書き込むのが嫌だ。何か対策があるはずだと思うが未調査。

問題点

「MySQL server has gone away」というエラーが発生することがある。未解決。

(追記)

続きがあります。

やること

  • 年金
  • スポンジ
  • 歯ブラシ

2016年04月14日(木)

[unix][howto] scriptコマンドにエスケープシーケンスを残さない

前回の続きを少しメモ。

まず、エスケープシーケンスというのは山程あって「全部を除去」というのは簡単にはできなさそう。除去するのではなく解釈すべきものもあるし。

で、

に書かれていたのだけれど、TERM変数に dumb を設定するというのはいい方法だと思った。こうしておくと各コマンドが余計なエスケープシーケンスを出力しないようになるので、scriptコマンドの出力ファイルも綺麗になる。

あと、日本語環境だとscriptコマンドが「スクリプトは XXXX年XX月XX日 XX時XX分XX秒 に開始しました」のようなメッセージを出力ファイル内に出力し、そこに改行が入っていたりして変な感じになる。英語のメッセージならそういうことはないので、LANG=C も設定した方がよさそう。


2017年04月14日(金)

[python] Pythonにおけるパッケージング

久々にPythonを使う。Python製アプリケーションのパッケージングに関してメモ。CentOS 7.3を使っていてPythonのバージョンは2.7.5(古い)。

情報源としては

をまず見るべきなのだと思う。

setuptoolsをインストール

Pythonのパッケージ関連ツールはややこしくてなかなか覚えられないのだけれど、パッケージングを行うにはsetuptoolsを使うのがいいみたい。

setuptoolsはCentOS 7の標準パッケージにもあるけれど、今回はpipも使いたいのでsetuptoolsはpip経由でインストールすることにする。

pipはCentOS 7だと標準パッケージにはなくEPELにはあるみたい。が、今回はこれも使わずget-pip.pyを使ってインストールする。

% python get-pip.py --user

これで ~/.local に色々ファイルが作られる。pipコマンドは ~/.local/bin にインストールされるのでここにパスを通す必要がある。

get-pip.pyはpip以外にもいくつかパッケージをインストールしていて、その中にsetuptoolsも含まれておりこれでsetuptoolsのインストールが完了した。

setup.pyを作る

setuptoolsを使うとPythonアプリケーションのパッケージングを行うスクリプトを簡単に書ける。スクリプトは通常setup.pyという名前にする模様。次のように書いた。

from setuptools import setup, find_packages

setup(
    name="oreore",
    packages=find_packages(),
)

setup()には引数がたくさんあるのだけれど、ひとまずはnameとpackagesだけ指定すればよさそう。find_packages()は引数に何も指定しないとカレントディレクトリ配下のPythonモジュールを列挙するようだ。

Pythonのコードを用意

適当にPythonのコードを置いてみる。

% tree .
.
├── hello
│   ├── __init__.py
│   └── hello.py
├── setup.py
└── world
    ├── __init__.py
    └── world.py

hello.pyはライブラリではなく実行できるスクリプトだということにする。スクリプトはsetup.pyに指定しておく必要があり、setup.pyのsetup()の引数にscriptsを追加する。

from setuptools import setup, find_packages

setup(
    name="oreore",
    packages=find_packages(),
    scripts=["hello/hello.py"],
)

なお、entry_pointsという引数に"console_scripts"をキーとした辞書を渡すことでモジュール内の関数を呼び出すスクリプトを生成させることができるようで、この仕組みを使う方が推奨されているみたい。だが今回はこれは使わない。

Wheelパッケージを作る

作ったコード群をパッケージングしてみる。パッケージはWheelという形式で作るのがよさそう。setup.pyにbdist_wheelコマンドを指定すると作れる。

% python setup.py bdist_wheel

カレントディレクトリは次のようになった。

% tree .
.
├── build
│   ├── bdist.linux-x86_64
│   ├── lib
│   │   ├── hello
│   │   │   ├── __init__.py
│   │   │   └── hello.py
│   │   └── world
│   │       ├── __init__.py
│   │       └── world.py
│   └── scripts-2.7
│       └── hello.py
├── dist
│   └── oreore-0.0.0-py2-none-any.whl
├── hello
│   ├── __init__.py
│   └── hello.py
├── oreore.egg-info
│   ├── PKG-INFO
│   ├── SOURCES.txt
│   ├── dependency_links.txt
│   └── top_level.txt
├── setup.py
└── world
    ├── __init__.py
    └── world.py

これの dist/oreore-0.0.0-py2-none-any.whl がWheelパッケージ。

パッケージのインストール

作ったwhlファイルのインストールを試してみる。インストールにはpipを使う。

% pip install dist/oreore-0.0.0-py2-none-any.whl --user

これで ~/.local 配下にインストールされる。

  • ~/.local/lib/python2.7/site-packages/oreore-0.0.0.dist-info/
  • ~/.local/lib/python2.7/site-packages/hello/
  • ~/.local/lib/python2.7/site-packages/world/
  • ~/.local/bin/hello.py

という風に配置された。