home ホーム search 検索 -  login ログイン  | help ヘルプ

find 検索

681 - 690 / 1320    [|<]  [|<]  [<]  61  62  63  64  65  66  67  68  69  70   [>]  [>|][>|]
タイトル/名前 更新者 更新日
日記/2010/08/23/RPM, specファイルの"%makeinstall"マクロのメモ msakamoto-sf 2010-08-23 17:26:25
技術/VMware/時刻ズレ対策メモ msakamoto-sf 2010-08-19 21:32:03
技術/Linux/CentOS 5.3 をクライアントとして使う時のntpd msakamoto-sf 2010-08-19 21:31:45
日記/2010/08/19/TortoiseSVNでsvn+sshをputtyで接続する時の注意点 msakamoto-sf 2010-08-19 21:00:08
日記/2010/08/19/pageant.exeをスタートアップに登録しようとして嵌ったメモ msakamoto-sf 2010-08-19 20:44:57
日記/2010/08/18/フリーのER図作成ツール「A5:SQL Mk-2」 msakamoto-sf 2010-08-18 23:05:37
PHP/Tips/テキスト中のURL自動リンク msakamoto-sf 2010-08-13 22:04:57
日記/2010/08/09/チーム内の「話し易さ」がポイントなのはどの職場も一緒 msakamoto-sf 2010-08-09 23:48:28
技術/PostgreSQL/メモ msakamoto-sf 2010-08-07 00:10:41
技術/PostgreSQL/後付け"serial"設定方法メモ msakamoto-sf 2010-08-02 08:37:39
ソート項目 / ソート順     1ページ 件ずつ表示

日記/2010/08/23/RPM, specファイルの"%makeinstall"マクロのメモ  

所有者: msakamoto-sf    作成日: 2010-08-23 17:18:33
カテゴリ: Linux 

久しぶりにRPMパッケージの作成について復習していて、install時には

%install
make install PREFIX=$RPM_BUILD_ROOT/usr 

か、もしも標準的なconfigureスクリプトによるMakefile生成を使っているなら

%install
%makeinstall

使うと良いですよ~、とあったので、試しに"--eval"で覗いてみた。

$ rpmbuild --eval '%makeinstall'
 /usr/bin/make \
       prefix=/usr \
       exec_prefix=/usr \
       bindir=/usr/bin \
       sbindir=/usr/sbin \
       sysconfdir=/etc \
       datadir=/usr/share \
       includedir=/usr/include \
       libdir=/usr/lib \
       libexecdir=/usr/libexec \
       localstatedir=/var \
       sharedstatedir=/usr/com \
       mandir=/usr/share/man \
       infodir=/usr/share/info \
 install
rpmbuild: ビルドのための spec ファイルが指定されていません。

・・・RPMBUILDが影も形も見えない。で、「あ、マクロだから、元の定義を見ないと駄目か」と気づいてあちこち探し回ると、rpmパッケージで

/usr/lib/rpm/macros

が提供されており、その中で定義されていた。

#------------------------------------------------------------------------------
# The make install analogue of %configure:
%makeinstall \
  make \\\
        prefix=%{?buildroot:%{buildroot}}%{_prefix} \\\
        exec_prefix=%{?buildroot:%{buildroot}}%{_exec_prefix} \\\
        bindir=%{?buildroot:%{buildroot}}%{_bindir} \\\
        sbindir=%{?buildroot:%{buildroot}}%{_sbindir} \\\
        sysconfdir=%{?buildroot:%{buildroot}}%{_sysconfdir} \\\
        datadir=%{?buildroot:%{buildroot}}%{_datadir} \\\
        includedir=%{?buildroot:%{buildroot}}%{_includedir} \\\
        libdir=%{?buildroot:%{buildroot}}%{_libdir} \\\
        libexecdir=%{?buildroot:%{buildroot}}%{_libexecdir} \\\
        localstatedir=%{?buildroot:%{buildroot}}%{_localstatedir} \\\
        sharedstatedir=%{?buildroot:%{buildroot}}%{_sharedstatedir} \\\
        mandir=%{?buildroot:%{buildroot}}%{_mandir} \\\
        infodir=%{?buildroot:%{buildroot}}%{_infodir} \\\
  install

"buildroot"マクロや"_prefix"マクロを定義すれば上手く反映出来そうなことが分かった。
というわけで再度実験:

$ rpmbuild --define 'buildroot /foo' --define '_prefix /bar' --eval '%makeinstall'

  /usr/bin/make \
        prefix=/foo/bar \
        exec_prefix=/foo/bar \
        bindir=/foo/bar/bin \
        sbindir=/foo/bar/sbin \
        sysconfdir=/foo/etc \
        datadir=/foo/bar/share \
        includedir=/foo/bar/include \
        libdir=/foo/bar/lib \
        libexecdir=/foo/bar/libexec \
        localstatedir=/foo/var \
        sharedstatedir=/foo/bar/com \
        mandir=/foo/usr/share/man \
        infodir=/foo/usr/share/info \
  install
rpmbuild: ビルドのための spec ファイルが指定されていません。

恐らくRPM作成時に、コマンドラインオプションや他のmacroファイル読み込みにより内部的に"buildroot", "_prefix"マクロが定義された後に、'%makeinstall' マクロが展開されるのだろう。

以上、CentOS 5.3, RPM-4.4.2.3 でのお話でした。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2010-08-23 17:26:25
md5:9ca6088754636acb91aa7694ec993d13
sha1:b005911c4fffa184695c63ccfca2ddd715a40070

技術/VMware/時刻ズレ対策メモ  

所有者: msakamoto-sf    作成日: 2010-08-19 11:31:47
カテゴリ: Linux NTP VMware 

VMwareでLinuxゲストを使っていると、ゲスト上の時刻がどんどんずれていってしまう場合がある。しかもLinuxのDistributionによってそういった現象が発生したり、しなかったりする。NTPを起動しても、ずれが直らない。

そうした場合の対処法が、VMwareのKBとして公開されている。ディストリビューションおよび各ディストリビューションのバージョン毎に分けた一覧表となっており、基本的にはkernelパラメータにclock関連のオプションを追加するようになっている。

自分が時刻ずれに悩まされたのはCentOS5.3をゲストOSとして使った場合だったが、こちらも上記KB通りに "divider=10 clocksource=acpi_pm" をgrub.confでkernelパラメータに指定したところ、時刻ずれが直り、NTPの同期も動くようになった。

他のゲストOS(WindowsやSolarisなど)や、ホストとの時刻同期、仮想マシンならではの「時間」の取り扱いなどより深い調査が必要な場合は以下のVMware KBを参照。



プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2010-08-19 21:32:03
md5:54eead1bf03861dcc6d4712c91a6b756
sha1:439ddeb42523f1a35ffbbf67645b5d835e22766c

技術/Linux/CentOS 5.3 をクライアントとして使う時のntpd  

所有者: msakamoto-sf    作成日: 2010-08-19 11:44:15
カテゴリ: Linux NTP 

Linuxをクライアントとして使う場合、立ち上げ時に一度、強制的にNTPの時刻同期をしてくれると助かる。
しかし、CentOSなどサーバー向けのLinuxでは、NTPのデフォルト設定としてそうした動作はしてくれないようになっている。サーバーでは毎日電源をON/OFFする訳ではないので、動きながらゆっくりと時刻を合わせていく動作がNTPのデフォルト設定になっていると思われる。

CentOS 5.3 の場合、以下の設定ファイルの編集により「立ち上げ時に一度、強制的にNTPの時刻同期」をしてくれるようになる。その後はデフォルト設定と同様、動きながらゆっくりと時刻合わせしてくれる。

/etc/sysconfig/ntpd:

OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid"
→
OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid"

# Set to 'yes' to sync hw clock after successful ntpdate
SYNC_HWCLOCK=no
→
SYNC_HWCLOCK=yes

追記:
"-x"オプションについて日本語で分かりやすく解説してくれているサイト発見:

slewモード: 0.5msずつ時間を寄せていく。
stepモード: 不連続に一気に時間を寄せる。
128msのズレを境に、それよりズレが小さい時はslewモード、大きい時はstepモードになる。
"-x"オプションを指定することで、境界値が600秒になり、事実上slewモードonlyとなる。
ところが、slewモードだと10秒のズレを補正するだけでも 10s / 0.5ms = 20000秒かかることになり、元のズレが大きいと補正にえらい時間がかかってしまう。
推測:多分、このために"-x"が指定されている時は一度NTPサーバーを見て強制的に同期し、ズレをなるべく小さくしてからslewモードで動き出すよう、/etc/rc.d/init.d/ntpd スクリプト内で調整されたのかも。



プレーンテキスト形式でダウンロード
現在のバージョン : 2
更新者: msakamoto-sf
更新日: 2010-08-19 21:31:45
md5:f3e46ba60d3c4f1d72d351af8f7f390e
sha1:598b7db51d2b73d47900d8c865a63d479e8b4558

日記/2010/08/19/TortoiseSVNでsvn+sshをputtyで接続する時の注意点  

所有者: msakamoto-sf    作成日: 2010-08-19 20:47:07
カテゴリ: SSH Windows 

TortoiseSVNでsvn+sshをputtyで接続する方法については、Web上に沢山エントリが挙がっているしTortoiseSVN付属のヘルプファイルでも丁寧に書かれている。
ただし、一点注意する点がある。

"svn+ssh://svnuser@SvnConnection/repos" や "svn+ssh://SvnConnection/repos" というリポジトリ指定では、"SvnConnection" というのが予めputtyで保存しておいたセッション名となる。

TortoiseSVN付属のTortoisePlink.exeからもputtyで保存しておいたセッション名を使えるため、接続に使うplink.exeはputty由来のものでも、TortoisePlink.exeでも基本的にはどちらでも良い。

ところが例外が存在する。
「Putty ごった煮版」を使ってINIファイルに設定を保存している場合である。

純正のputtyはINIファイルへの保存機能がない。TortoisePlinkは純正puttyから派生している為、当然Puttyごった煮版が保存したINIファイルは見ない。
従って、Puttyごった煮版でINIファイルに保存したセッション名を使う場合は、TortoisePlink.exeではなく、ごった煮版のplink.exeを使う必要がある。

「しかしplink.exeを使うと、通信がある度にコマンドプロンプトがちらちら表示されて煩わしい」という場合は、ごった煮版に"plinkw.exe"が付いてきているのでこちらを使うと良い。コマンドプロンプトでの入出力機能が削られており、TortoiseSVNから使う限りでは、実質上TortoisePlinkを使っているのと変わらない。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2010-08-19 21:00:08
md5:12e6505460786dc7987c586aabc6cc98
sha1:949959fac56a23d8b8962838b97f4b3448b4ed9a

日記/2010/08/19/pageant.exeをスタートアップに登録しようとして嵌ったメモ  

所有者: msakamoto-sf    作成日: 2010-08-19 20:38:40
カテゴリ: SSH Windows 

詳しく調べていないので話半分に読んで下さい。

pageant.exeをスタートアップに登録して、ついでに秘密鍵も追加させたい。というわけで、こんなBATファイルを作ってみた。
load_keys_into_pageant.bat:

C:\...\putty\pageant.exe C:\...\key1.ppk C:\...\key2.ppk

ところが、BATファイルをダブルクリックするとコマンドプロンプトが表示され、上記コマンドが終了待ちの状態で止まってしまう。コマンドプロンプトの×をクリックすればOKなのだけれど、何となくうざったい。

一旦手動でpageant.exeを起動しておき、その後上のBATを叩けばコマンドプロンプトの表示は一瞬で終わる。
pageant.exeがまだ起動していない状態で上のBATを実行した場合のみ、終了待ちでコマンドプロンプトが止まってしまうようだ。

しょうがないので、スタートアップに登録するのはpageant.exeへのショートカットリンクにしておき、上のBATはデスクトップなりクイック起動バーなりに置いておき、ログイン後最初にputtyを使う時にダブルクリックする使い方にした。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2010-08-19 20:44:57
md5:0a96e5d1be843f0bd91b7c93db61a2e7
sha1:63a9dc1cf3d316a9e7b587fbfcc64ed6b0509d33

日記/2010/08/18/フリーのER図作成ツール「A5:SQL Mk-2」  

所有者: msakamoto-sf    作成日: 2010-08-18 22:52:25
カテゴリ: プログラミング 

WebでDB使う作業をするたびにフリーのER図作成ツールを探してしまう。
JUDEもER図作成をサポートしたようだが、2010/08時点ではProfessional版以上でしか使えない。
DBDesigner4も試してみたが、カラム名などの表示が物理名だけで、論理名を表示出来ない。

論理名でも表示出来る、というのが結構重要なポイントなので(相手への説明用や、後々の自分用)、DBDesigner4は惜しくも落選。JUDEもProfessional版を買うか・・・踏ん切りが付かないので落選。いや、相手に渡すのはJPEGなど画像エキスポートしたのが有ればいいとは思うのだけれど、年に一度使うか使わないかのためだけに、バージョンアップが激しいJUDEシリーズを買うかどうかを考えたらさすがに手が出ない。四六時中UMLでの設計やER図つかったデータ設計してれば買ってた。

で、結局「A5:SQL Mk-2」というツールを使っている。
まずフリーであることと、Win7まで動作確認されていることも嬉しい。
それに論理名・物理名の表示切り替えもできる。
日本語ネイティブ対応。Oracle/MySQL/PostgreSQLとも接続可能。

あんまり名前は売れてないみたいだけど、基本機能は結構しっかりしてる。DB同期など行わず、単にスケッチとしてER図を書くだけでもそれなりに使いやすい。
シンプルで、手に馴染みやすいツールだと自分は思う。試してみて、気に入って貰えると嬉しい。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2010-08-18 23:05:37
md5:e1652549cf08797fd9cd7ce3c7f05c36
sha1:f4529f469cea22ae851024ac56d9c087f2508c12

PHP/Tips/テキスト中のURL自動リンク  

所有者: msakamoto-sf    作成日: 2010-08-13 22:03:24
カテゴリ: PHP 

以前参考にした記事:

ただし、上はereg_replace使ってる。

こっちはpreg_replaceを使ってる。

function make_clickable($text)
{
    $ret = ' ' . $text;
    $ret = preg_replace("#(^|[\n ])([\w]+?://[\w]+[^ \"\n\r\t<]*)#ise", "'\\1<a href=\"\\2\" >\\2</a>'", $ret);
    $ret = preg_replace("#(^|[\n ])((www|ftp)\.[^ \"\t\n\r<]*)#ise", "'\\1<a href=\"http://\\2\" >\\2</a>'", $ret);
    $ret = preg_replace("#(^|[\n ])([a-z0-9&\-_\.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i", "\\1<a href=\"mailto:\\2@\\3\">\\2@\\3</a>", $ret);
    $ret = substr($ret, 1);
    return($ret);
}


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2010-08-13 22:04:57
md5:05990d4e96135c3a0574a523503ae2bd
sha1:953a5dfe927e14eb339bf5664eb3a3d577ed6e29

日記/2010/08/09/チーム内の「話し易さ」がポイントなのはどの職場も一緒  

所有者: msakamoto-sf    作成日: 2010-08-09 23:02:07
カテゴリ:

先日、大手自動車会社の品質検査部門に勤めている大学時代の友人がお盆帰省で戻ってきたので、一緒に秋葉原を散策したりお酒を飲んだりした。

そこで話題に出たのが「チーム内の話しやすさ」。
自分が転職して3ヶ月で会社を辞めることになってしまった遠因である、「チームリーダへの話しかけづらさ」や「個人での仕事の抱え込み」による色々な弊害というのが、友人の職場でもあるとのこと。

人間の問題である以上、業界は違えど同じ問題はどこにでも転がっているのだなと思った。
チームリーダの性格や気質でチームの雰囲気が変わるのはあちらも一緒。
チーム内のコミュニケーション不足で、「なんで言わなかったの!?」という状況が発生するのはあちらも一緒。
そういうのが頻発していって、チーム内の雰囲気が険悪になっていって負のスパイラルに突入していくのも一緒。

やっぱり対処法も似てる。

  1. 一人あたり数分間の「スタンドアップ・ミーティング」を一日一回行い、どうでも良さそうなこと含めてチーム内での情報共有。
  2. 経験年数の多い・少ないをペアにして、二人一組・・・とまでは行かないが、なるべく仕事のアサインを一人に集中させず分散させるようにする。一人で抱え込まず、相談相手がいるような体制を整える。

しかし、これらを実際に運用して良い雰囲気を作っているチームが、必ずしも成績(売上やPV)もずば抜けているわけではない所まで似てるのが哀しい。そう上手く話が進むわけではないようだ。

悩んだ末に手を伸ばしたのが仏教、それも原始仏教に近い教えである点も一緒だった。友人は西洋哲学にも手を出したようだが、「理屈っぽくてついていけなかった」と言っていた。

もしそうした人間の問題で悩んでいるのであれば、自己啓発書や組織運営のビジネス書を100冊読むより、仏教、それも原始仏教や上座部仏教の易しめの本を数冊読む方をお奨めする。

ダイビングの講習で教わることの一つに、「水中で激しい動きをしてはいけない」というのがある。
水中の水の流れは想像以上の負荷がかかり、無理に泳ごうとするとあっという間に息切れしてしまう。
また、只でさえタンク内の空気には限界が有るのだから激しい運動をすると空気消費も激しくなり、エア切れの危険性が高まる。
重要なのは水の流れに逆らわないこと。
特に陸へ戻る時、波の動きに合わせて水中でも水の流れが寄せたり引いたりしている。
それの流れに上手く合わせて、流れに逆らいそうな時は動きを止め、追い風のタイミングで泳ぐ。そうすると楽に陸へ戻れる。

組織は、世の中は、赤の他人の大集団は、まるで海水のようだ。
無理に逆らおうとしても、自分一人で動かそうとしても、どうにもならない。
気力と体力を徒に消費し、疲れて終わる。

ダイビングでもしも激しい運動で疲れ、息切れしてしまったらどうするか?「全ての動作を一旦止め、岩などに掴まり休憩すること」と教わる。

もしもSE技術者が、自分の技術力で組織や会社を変えようとしたり、オープンソースや先端の開発技法を導入しようとしても周りから無視されたり思うように巻き込めなかったり賛同を得られなかったりしたら、全てのそうした活動を一旦停止し、休むと良いかも知れない。

SE技術者が一人、そうした活動を停止したところで世の中が止まるわけではない。

まず休み、息を整えて流れを掴んだら、また泳ぎ出せばよい。

・・・とかゆー戯れ言で救われりゃ、世話無いんだけどねー、自分。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2010-08-09 23:48:28
md5:989df6e7626c1e6097324535b4e83ac5
sha1:29f0a7e27ec4c3edb87f5cd58727a9d944050333

技術/PostgreSQL/メモ  

所有者: msakamoto-sf    作成日: 2010-08-06 23:27:58
カテゴリ: PostgreSQL 

PostgreSQL関連の雑多なメモ。


実行時のパラメータなど

サーバ設定

postgresql.conf or postmasterの"-c"オプション or PGOPTIONS環境変数で設定。いくつかは"SET"SQLコマンドで実行時に変更出来る。

マニュアル:

  • "III. サーバの管理" -> "第 17章サーバの構成"
クライアント接続の文字コードを変更

設定値:

client_encoding(string)

確認:

psql# SHOW client_encoding;
 client_encoding
-----------------
 SJIS
(1 行)

変更:

SET client_encoding = 'EUC_JP';
クライアント接続のタイムゾーンを変更

設定値:

timezone(string)

確認:

psql# SHOW TIME ZONE;
 TimeZone
----------
 JST-9
(1 行)

タイムゾーン専用のSET SQLコマンド:

SET [ SESSION | LOCAL ] TIME ZONE { タイムゾーン | LOCAL | DEFAULT }
ex)
SET TIME ZONE 'JST-9';

psql クライアントの変数設定

マニュアル:

  • "VI. リファレンス" -> "II. PostgreSQLクライアントアプリケーション" -> "psql"
    • 「高度な機能」-> 「変数」の節を参照。

現在のpsqlクライアントの変数内容を確認:

\set
特定の変数だけ確認したい場合は
\echo :変数名

変更:

\set FOOBAR newvar
AUTOCOMMIT(自動コミット) の ON/OFF

現在値の確認:

\echo :AUTOCOMMIT

psqlクライアントの変数 "AUTOCOMMIT" でon/offを切り替える。

\set AUTOCOMMIT {on|off}


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2010-08-07 00:10:41
md5:b2e98a879f7b57c7cd0763834ba0f4e0
sha1:3e2cf7e6c75a3a287fdbc6e0b4bbd2f29d833b14

技術/PostgreSQL/後付け"serial"設定方法メモ  

所有者: msakamoto-sf    作成日: 2010-08-02 08:20:39
カテゴリ: PostgreSQL 

PostgreSQLの少なくとも7.4以降では、CREATE TABLE実行時に "serial" を型に指定すると、対応するシーケンスを自動生成してnextval()してくれるようになります。

今回は、連番キー値が格納されるが主キー設定もされていないしシーケンスも使われていないカラムに対し"serial"型のような自動採番を設定する方法についてメモしておきます。
つまり、

CREATE TABLE foo (id integer, name text);

これを、

CREATE TABLE foo (id serial PRIMARY KEY, name text);

したことにします。

なお動作確認は PostgreSQL 8.1 です。

(全て表示する)
プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2010-08-02 08:37:39
md5:e1b8d4c2353ee2388dd3a97c99fbf62b
sha1:53e2daf11b712153f5f6fb2210f4176b3dfcab5e