2011-12-31
dovecotが落ちる
朝 crontab で ntpdate を使い時間合わせしてたのが気に入らずに dovecot が自殺しているらしい
時間差が出て整合性が崩れるのを嫌っての自殺と見た
もしかして mailmanが朝終了しちまうのも同じ理由だったのかな?
取り敢えず ntpdate による時間合わせを止めといた
2011-12-30
ubuntuサーバでimap
特に本拠地でpop3の定期受信などをしていると外出時に受信がぶつかってしまい
エラーになり数分待たされることもある
今までqpopperを使っていたのでdovecotに乗り換えようとした
ところが、pop before smtp を利用しているユーザーがいてゴチャゴチャして来た
仕方ないのでimapだけdovecotを利用することにして aptitudeでサクッとインストール
/etc/dovecot/dovecot.conf を編集して protocols を imap imaps に変更
ポートを開けてGO!
あっさりimapで受信できたのだが・・・仮想ユーザーのメールが受信できねー!
ログを見るとmailboxタイプを古代より利用しているのだが、
仮想ユーザーがうまくmailboxを見に行けずに迷子になっている感じだ
そこで/etc/dovecot/dovecot.conf を編集して
mail_location = mbox:~/mail:INBOX=/var/mail/%u
といった感じで「ここにあんだよ!」と念押ししたら上手くいった
もう今年もおわりだな、最近釣りにいけてない、来年はちょっと行ってみたいな・・・
2011-12-18
mailmanが時々、いや日曜に落ちてる件
#! /bin/sh
JOBCNT=$(ps ax|grep mailman|grep -v "grep"|wc -l)
if [ $JOBCNT -eq 0 ]
then
/etc/init.d/mailman restart
fi
こんなんで調べて再起動させて様子見る
2011-08-26
postgresql union
unionを使うと2つの同じ形式のテーブルを串刺ししてselectすることが出来る
select A from tbl_A where A1 = false
union all
select B from tbl_B where B1 = false;
こんな感じ
tbl_A と tbl_B のテーブルの項目が違っていても構わないけど、上記の例のようにAとBは同じでないとダメなはず、項目数もしかり
因みに、union all と all を付けない場合は同一レコードが破棄される、全てのレコードを獲たい場合が多いと思うので通常は allは必須かと思われる
2011-07-29
dhttpdでwebサーバを構築してみた
今回はバッチhtmlファイルを生成する為に、静的なページが表示できれば良いだけなので、
dhttpdを入れてみた
debian環境なので apt-get install dhttpd でok
設定等は特にない(できない)、cgiも動かせない(セキュア!?)
/var/www/ がホームディレクトリとなる
2011-07-06
Wordpressでカテゴリー毎に表示
$slug = get_page($page_id)->post_name;
if ($slug=="HOGEPAGE") {
$w_cat_id=get_category_by_slug('hogehoge')->term_id;
query_posts('post_type=post&cat='.$w_cat_id);
print "<h3>HOGE NEWS</h3>";
if (have_posts()) {
print "<ul>";
while(have_posts()){
the_post();
print '<li><a href="';
the_permalink();
print "\">";
the_title();
print " (".get_the_date('Y-m-d').")";
print "</a></li>";
}
print "</ul>";
}
}
2011-03-26
線形回帰
CREATE FUNCTION FncRA(wPair text, wLeng int) RETURNS numeric as ' DECLARE rs record; wSQL text; result numeric; wNUM numeric; wAVG numeric; wS1 numeric; wS2 numeric; wRA numeric; BEGIN wSQL:=''SELECT row_number() over() as rn, bid FROM manepa_rate where pair='''''' || wPair || '''''' order by timeline desc limit '' || FncRA.wLeng || '';''; wNUM:=(wLeng/2) + 0.5 + ( mod(wLeng,2)::numeric / 2); select into wAVG avg(bid) from ( select bid FROM manepa_rate where pair='''' || FncRA.wPair || '''' order by timeline desc limit FncRA.wLeng ) as w; wS1:=0; wS2:=0; for rs in EXECUTE wSQL loop wS1:=wS1+((rs.bid - wAVG)^2)::numeric; wS2:=wS2+((rs.rn - wNUM)^2)::numeric; end loop; wRA:=wAVG - (wNUM * (wS1 / wS2)::numeric ); RETURN wRA; END; ' LANGUAGE 'plpgsql';
2011-03-13
ubuntu SSDの追加
ubuntu を起動
# fdisk -l で確認して
# fdisk /dev/sdb と例えば sdbならこれでsdbを基本パーティションとして切っておいて
# mkfs.ext4 -j /dev/sdb1 とかでファイルフォーマット
/etc/fstab に追加しないといけないので
# mkdir /database とかマウントポイントを作っておいて
# blkid /dev/sdb1 で UUIDを表示させてコピーしたり書き留める
UUID=XXXXXXXXX-XXXXX-XXXX-XXXX-XXXXXXXXXX /database ext4 error=remount-ro 0 1
こんな感じで fstabに追加
2011-03-07
rubyでTwitterのボット作り
require 'oauth'
ck = 'CONSUMER KEY 登録時取得'
cs = 'CONSUMER SERCRET 登録時取得'
at = 'ACCESS TOKEN 要取得'
ats = 'ACCESS TOKEN SERCTET 要取得'
consumer = OAuth::Consumer.new( ck, cs, :site => 'http://api.twitter.com')
actoken = OAuth::AccessToken.new( consumer, at, ats)
rubytter = OAuthRubytter.new(actoken)
rubytter.update("まんまみーや")
こんな感じですが、各取得部分の値をTwitterから取得する必要があります
手順は方法は2段階
まず、ブラウザからツイッターのアカウントでログインして
http://twitter.com/oauth_clients にアクセス
必要情報を入力後に遷移するページで
Consumer key
Consumer secret
を取得してメモするなりコピペで保存するなりする
サーバーのirbから
require 'rubygems'
require 'oauth'
consumer = OAuth::Consumer.new( "取得したConsumer key","取得した Consumer secret", :site => "http://twitter.com")
request_token = consumer.get_request_token
puts request_token.authorize_url
これを実行して 表示されるURLをブラウザから表示すると
暗証番号が表示されるのでこれを必ずメモして irbに戻り続きを
access_token = request_token.get_access_token(:oauth_verifier => '暗証番号')
puts access_token.token
puts access_token.secret
としてACCESS TOKEN / ACCESS TOKEN SECRET 要取得 の2つの値を獲て準備完了
2011-03-06
VPS借り物サーバーにjedインストール
簡単にタブ入力したいんで
.jedrcの中の Tab_Always_Inserts_Tab = 1; に編集
他にタブの幅や折り返し幅の調整やライン番号の表示(%じゃなくて行で表示)
TAB_DEFAULT = 4;
WRAP_DEFAULT = 768;
LINENUMBERS = 2;
これで万全
2011-03-05
サーバーのrubyからwebに自動でログインしてゴニョゴニョする
ubuntuサーバーで環境を作る
# aptitude install ruby1.8-dev libxml2-dev libxslt1-dev rubygems1.8 libruby irb libreadline-ruby libopenssl-ruby rdoc
# gem install mechanize
2011-02-28
通信機能付きカシオの腕時計
つか、逆じゃね?オマエ腕時計の癖に電話に時間聴いて時間訂正するってプライドなくね?
電波時計内臓の腕時計からスマホの時間修正じゃね?
2011-02-22
民主党党内抗争
その通りだと思う、しかも、下手な党内抗争で段取りも策略も全てが悪いと思う
敵を倒すのに時間がかかりすぎている、こんな事もできない人が日本一国を動かそうなんて無理でしょ
もう小沢さんに白旗上げて本気で野党の切り崩しをお願いしては?と思う
そもそも、菅なにがしのような首相に国が動かせるのか・・・
2011-02-19
Delphi 継承フォームをコンパイルすると DCCエラー
とか出る
フォームをリネームして保存しようとすると保存できない
フォームを表示しておいて [ALT]+[F12]入力を行うとエラーが表示される
そのまま保存すると保存できるようになる
2011-02-18
無茶苦茶PCが再起動する
使い慣れたキーボードからDELLのおまけ?のキーボードに付け替えたら治った
でも、使いづらいわ・・・
これだと納期間に合いそうにないほど困惑・・・
2011-02-07
DelphiからSQLiteを使う
SQLite3のページ
simple Delphi wrapper for Sqlite 3 を入手
http://www.itwriting.com/repos/sqlitewrapper/trunk/sqlitesimpledelphi.zip
(この sqlitesimpledelphi.zip にも sqlite3.dll は入っています)
利用したいプロジェクト SQLite3.pas / SQLiteTable3.pas をコピーするか プロジェクトに追加して利用する
■サンプルから抜粋
var sldb: TSQLiteDatabase; sltb: TSQLIteTable; sSQL:String; begin sldb := TSQLiteDatabase.Create(ExtractFilepath(application.exename) + 'test.db';); if sldb.TableExists('testTable') then // テーブルの存在チェック begin sldb.execsql('DROP TABLE testtable'); // 存在していたらドロップ end; sSQL := 'CREATE TABLE testtable ([ID] INTEGER PRIMARY KEY,[OtherID] INTEGER NULL,'; sSQL := sSQL + '[Name] VARCHAR (255),[Number] FLOAT, [notes] BLOB, [picture] BLOB COLLATE NOCASE);'; sldb.execsql(sSQL); sldb.BeginTransaction; //トランザクション開始sSQL := 'INSERT INTO testtable(Name,OtherID,Number,Notes) VALUES ("Another Name",12,4758.3265,"More notes");';sldb.execsql(sSQL); // SQL実行sldb.Commit; //トランザクション終了 コミット// query the data レコード操作 sltb := sldb.GetTable('SELECT * FROM testtable');if sltb.Count > 0 then begin // display first row ebName.Text := sltb.FieldAsString(sltb.FieldIndex['Name']); ebID.Text := inttostr(sltb.FieldAsInteger(sltb.FieldIndex['ID'])); ebNumber.Text := floattostr(sltb.FieldAsDouble(sltb.FieldIndex['Number'])); Notes := sltb.FieldAsBlobText(sltb.FieldIndex['Notes']); memNotes.Text := Notes; end;sltb.Free;sldb.Free; // DB解放end;
2011-01-20
相変わらず政治は混沌
良い悪いの評価は様々だが、日本が戦後経済大国となったのには田中角栄の存在は大きかったと思う、
彼がいなければ戦後の急成長なく惰性の経済成長があったのみだと思う
結果、今と同程度の水準だったかも知れないが、逆に衰退する可能性もあったわけで
その意味では田中角栄は偉大だったともう
比較すると今の総理がいかに小さい人間なのか色々と目についてならない
以前、菅直人がマスコミに暴かれたスキャンダルは不倫であったが、あの時も本当に情けないと思った、ホテルの有料の高速エレベーターでH部屋まで行けば見つからなかったものを
女と普通のエレベーターを使った為に写真に撮られてしまったと聞く、まあそれはいいが、不倫1つとってもその程度なわけだ
国の経済がたちゆかないから増税と言う路線を打ち出したと言うが、そもそもそれは解っていた
だから政権交代して行政の無駄を削ぎ取って利権のない民主党が大鉈を振るうと期待したのだ
彼は既に自民党の歴代総理の1人と全く変わりはない、むしろ、決断力の悪さ、判断力の悪さでは
トップクラスのダメ総理かもしれない