2010年5月 のアーカイブ

Perlお触り途中経過。まだbashほどエロスは感じない。

2010年5月28日 スクリプト関連, 雑記

とりあえずPerlはここまでやった。
空の配列を作るところでかなり長いことハマってたけども、今日やっと事前に準備するものなんだって事に気が付いて何となく動くぞって程度にはなった感じ。クソ過ぎて涙が出るw
”インデックスを指定して代入!”ってやっただけじゃ配列用意してくれないのね。

一応このコードでgoo.glの短縮URLの取得まではできたので、作業記録も兼ねて置いとく。
テストコードとかそのまんまぺたり。

#!/usr/bin/perl

use strict;
use warnings;
use CGI;
use LWP::Simple;

my $q = new CGI;
my $Uname = $q->param(‘namae’);
my $Upss = $q->param(‘pswd’);
my $PushTEXT = $q->param(‘pushtext’);
#httpurlを抽出して配列に格納
my @http = $PushTEXT =~ /s?https?://[-_.!~*'()a-zA-Z0-9;/?:@&=+$,%#]+/g;
#空の配列を準備
my @gglhttp = ();

print $q->header(-charset=>”utf-8″);

my $data = get “http://ggl-shortener.appspot.com/?url=$http[2]”;
$data =~ s/{“short_url”:”|”}//g;
for( my $i=0 ; $i <= $#http ; $i++ ){
    print $http[$i];
    $gglhttp[$i] = get “http://ggl-shortener.appspot.com/?url=$http[$i]”;
    $gglhttp[$i] =~ s/{“short_url”:”|”}//g;
}

print $q->start_html(-title=>”タイトル”, -BGCOLOR=>’#ffffff’),
    $q->strong(“処理完了!”),
    $q->p(“$Uname”),
    $q->p(“$Upss”),
    $q->p(“$PushTEXT”),
    $q->p(“@http”),
    $q->p(“$#http”),
    $q->p(“$data”),
    $q->p(“@gglhttp”),
    $q->br,
    $q->a({href=>”/”}, “back”),
    $q->br,
    $q->br,
    $q->end_html;
exit;

こんな感じのフォームから中身を投げます。

<form id=”form” action=”posttest.cgi” method=”post”>
    <p>お名前:<input type=”text” name=”namae” /></p>
    <p>PASS:<input type=”password” name=”pswd” /></p>
    <p>TEXT:<textarea name=”pushtext” rows=”4″ cols=”40″>テキストエリア</textarea></p>
    <p><input type=”submit” name=”submit” value=”送信” /></p>
</form>

Visitorsでログ取りするスクリプト更新した。

2010年5月25日 スクリプト関連, 雑記

v3になりまひた。いひひ。
変更点は手動でログ取りやっててうっかり何日か取り忘れたときの過去のログの取得機能の追加だけ。

自分の借りてるスペースは1週間分しかログを残してくれないので、その前提で書いてあります。ログのファイル名形式とかも同じ。

使い方はいつも通りワンパターンな引数つけて起動するタイプ。
第一引数はスクリプト自体の動作を指定。0ならログとってブラウザで表示。1ならログとらずにブラウザで表示。無印ならログだけとる。
第二引数は何日前のログをとるのかを指定。1~6まで。自分の借りてるスペースは1週間分しかログを残してくれないので。

なんでこんな突貫工事をしちゃったのかというと、まさに今日、昨日のログを取り忘れていたから。どうせ今後も中途半端な頻度で忘れるので毎度面倒くさがりながら前日分のログを手動で連結するくらいなら突貫工事でもいいから書いちゃえよって思ったの。

古いコードはこことかにある。どこが変わったかとか興味があったらどうぞ。「Visitorsでアクセスログを読み(ry」を書き直し。

#!/bin/sh
### v3
drv () {
    cat access_log$2 >>acl$1.txt
    visitors -A -m 250 acl$1.txt >acl$1.html
}
ext () {
    rnmMt=`date -d ‘2 days ago’ ‘+%Y%m’`
    mv acl1.txt acl$rnmMt.txt
    mv acl1.html acl$rnmMt.html
    zip -5 acl$rnmMt.zip acl$rnmMt.txt acl$rnmMt.html ./daily/*.*
    rm acl$rnmMt.txt ./daily/*.*
    cp access_log$2 acl1.txt
}
logs () {
    wget -P “/home/user/logs” “ftp://id:pass@domain/logdirs/access_log$2”
    drv 2 $2
    Dt=`date ‘+%d’`
    case “$Dt” in
        #今日は2日です
        02 ) ext 0 $2 ;;
        #今日は2日ではありません
        * ) echo “通常処理” ;;
    esac
    drv 1 $2
    visitors -A -m 250 access_log$2 >./daily/$ymd.html
    rm “access_log$2”
    case “$1” in
        0 ) echo “完了” ;;
        * ) epiphany ./daily/$ymd.html acl1.html acl2.html ;;
    esac
}
cd ‘/home/user/logs’
case “$2” in
    [1-6] ) dag=$2
    bkdate=_$2
    ;;
    * ) dag=0 ;;
esac
ymd=`date -d “$dag days ago” ‘+%Y%m%d’`
case “$1” in
    0 ) logs 1 $bkdate ;;
    1 ) epiphany ./daily/$ymd.html acl1.html acl2.html ;;
    * ) logs 0 ;;
esac

さっきまでにやったこと。自分用

2010年5月17日 雑記

何となくメモ。

Kindle 2 PDF書き出し用のOpenOffice.orgテンプレート上げた。
DL – http://templates.services.openoffice.org/ja/node/3983

Twitter appでConsumer keyとConsumer secret発行してもらった。
あとはxAuthの利用申請。早めにやっつけろ。忘れる前に。

落描きした。2日に分けて描いたらグダグダに。

ひとまず、こんな感じ。素で忘れるので。

だいたい雰囲気で描きたいように描く

2010年5月13日 イラスト, 雑記

で、描きたいように描いてたら、意味の判らない反応をされて困る。
だいたい20分とか長くて1時間とかで描くものに何を期待してるんだか。

らくがきは好きに描いて良いもの。邪魔されるべきでないもの。


うあ、仕掛かりの作業とかいっぱいある。
もー意味のわかんない反応とかホントに迷惑だし困る、イライラの解消のために結果的に時間足りなくなったりするし。

“$1″秒だけ待ってやる。

2010年5月8日 Linux, スクリプト関連, 雑記

[自分メモ] dateで実行時の分、秒を取得してfor文で実行時の分、秒+指定分、秒の値になるまでdateで監視して、ウェイトもどき。というのを今考えた。シェルスクリプトの話。

こんなメモを自分に宛てて残していたので、コードを書いてみた。

#!/bin/bash
echo “$1″秒だけ待ってやる。その間に答えを出したまえ。
getDrvTime=`date -d “$1 second” ‘+%M%S’`
getTime=`date ‘+%M%S’`
until [ $getDrvTime = $getTime ]
do
  getTime=`date ‘+%M%S’`
done
echo さあ、時間だ。答えを聞かせてもらおうか!

見ての通り。第一引数で指定した秒数分だけ待ってくれるスクリプト。結局for文じゃなかった。

あ、いつもの通りいつものごとくインデントが全角。

5/8 1:50am 追記
あとからsleepコマンドとか見つけちゃったので追記。

#!/bin/bash
echo “$1″秒だけ待ってやる。その間に答えを出したまえ。
sleep “$1” && echo さあ、時間だ。答えを聞かせてもらおうか!

サラッとすっきり。