2011-12-31

dovecotが落ちる

いや落ちてるのではなく終了してた

朝 crontab で ntpdate を使い時間合わせしてたのが気に入らずに dovecot が自殺しているらしい
時間差が出て整合性が崩れるのを嫌っての自殺と見た
もしかして mailmanが朝終了しちまうのも同じ理由だったのかな?

取り敢えず ntpdate による時間合わせを止めといた

2011-12-30

ubuntuサーバでimap

androidやiPhoneを使うようになるとpop3が面倒で仕方ない
特に本拠地で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サーバを構築してみた

以前はvns環境にnginxを入れてみたのだが、今回の対象がテスト環境用のサーバでOBSの古いタイプのものである為に更にメモリーが少なくタイトな環境となっている

今回はバッチ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

線形回帰

PostgreSQLのpsqlで書いてみた

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 'rubytter'
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インストール

emacsでもいいんだけどviじゃ長いプログラムを書いたりするのも面倒なでjedを入れた
簡単にタブ入力したいんで
.jedrcの中の Tab_Always_Inserts_Tab = 1; に編集
他にタブの幅や折り返し幅の調整やライン番号の表示(%じゃなくて行で表示)
TAB_DEFAULT = 4;
WRAP_DEFAULT = 768;
LINENUMBERS = 2;

これで万全

2011-03-05

サーバーのrubyからwebに自動でログインしてゴニョゴニョする

mechanizeを使えば比較的簡単にできる

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エラー

[DCC エラー] E2161 Error: RLINK32: ~
とか出る

フォームをリネームして保存しようとすると保存できない

フォームを表示しておいて [ALT]+[F12]入力を行うとエラーが表示される
そのまま保存すると保存できるようになる

2011-02-18

無茶苦茶PCが再起動する

これは壊れたかと思ったら、キーボードがおかしかったらしい
使い慣れたキーボードからDELLのおまけ?のキーボードに付け替えたら治った
でも、使いづらいわ・・・

これだと納期間に合いそうにないほど困惑・・・

2011-02-07

DelphiからSQLiteを使う

SQLite3のページ

(Precompiled Binaries For Windows)  の zipをダウンロードしてsqlite3.dllを取り出して配布先アプリや開発環境のフォルダーへコピーする

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;
■SQLite3のSQL
CREATE TABLE テーブル名 (
[項目1] INTEGER PRIMARY KEY,
[項目2] INTEGER NULL,
[項目3] VARCHAR (255),
[項目4] FLOAT, 
[項目5] BLOB, 
[項目6] BLOB COLLATE NOCASE
);
とサンプルにはあるが、
資料には TEXT , NUMERIC , INTEGER , REAL , NONE が型として利用できるとある
又、INTEGER は int と3文字表記できたり、文字が入ると文字列として格納する等と
基本は文字列扱いであるかのような書き方がされているサイトもある

2011-01-20

相変わらず政治は混沌

菅直人氏は消費税の増税を目指して与謝野氏まで巻き込んで内閣のプチ改造を行った
良い悪いの評価は様々だが、日本が戦後経済大国となったのには田中角栄の存在は大きかったと思う、
彼がいなければ戦後の急成長なく惰性の経済成長があったのみだと思う
結果、今と同程度の水準だったかも知れないが、逆に衰退する可能性もあったわけで
その意味では田中角栄は偉大だったともう

比較すると今の総理がいかに小さい人間なのか色々と目についてならない

以前、菅直人がマスコミに暴かれたスキャンダルは不倫であったが、あの時も本当に情けないと思った、ホテルの有料の高速エレベーターでH部屋まで行けば見つからなかったものを
女と普通のエレベーターを使った為に写真に撮られてしまったと聞く、まあそれはいいが、不倫1つとってもその程度なわけだ

国の経済がたちゆかないから増税と言う路線を打ち出したと言うが、そもそもそれは解っていた
だから政権交代して行政の無駄を削ぎ取って利権のない民主党が大鉈を振るうと期待したのだ
彼は既に自民党の歴代総理の1人と全く変わりはない、むしろ、決断力の悪さ、判断力の悪さでは
トップクラスのダメ総理かもしれない

2011-01-12

今年は適当に生きていく

儲からなくてもいいわ、適当にやってくわ

これからの日本は高田純次先生の時代だわ

だから俺、高田純次先生の適当手帳を買ったわ