当サイトに設置しているMovableType Open Sourceを5.0にアップデートしました。
MT4と比べるとブログ管理画面のデザインが変わりました。WordPressをかなり意識したデザインになっていますので、初めて見る人にはどちらも同じに見えるでしょうが、旧来からの個人ユーザにはWordPressへの移行を促すデザインにも見えるかもしれませんね。
当サイトではテスト環境としての使用のみで、メインとして使う予定は今のところありません。どちらかというと、MovableTypeとは別にCCとGPLで公開されている絵文字アイコンのほうに魅力を感じているのが実情です。


TypePad 絵文字アイコン画像 by Six Apart Ltd is licensed under a Creative Commons 表示 2.1 日本 License.
いろいろな汎用CMSが日々栄枯盛衰(とそれに伴い互いに切磋琢磨)を繰り返していますが、どのCMSにも得手不得手があります。お互いに連携できるような工夫ができればそれが一番なのですけれど。
かなり前に作ったあみだくじのプログラムは、以下のようなコードでした。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| '/for QuickBASIC
'$lang: "qb"
DIM a(20), b(10)
ta$ = RIGHT$(TIME$, 2)
RANDOMIZE (ASC(ta$))
FOR y = 1 TO 8: b(y) = INT(RND * 6) + 1: NEXT y
CLS
LOCATE 5, 10: PRINT "1 2 3 4 5 6 7 8"
LOCATE 15,10: INPUT "番号を選んでください ", k
FOR x = 1 TO 8: a(x) = x: NEXT x
FOR y = 1 TO 7
n = b(y): GOSUB write_line
c = a(n): a(n) = a(n + 1): a(n + 1) = c
NEXT y
LOCATE 5 + y, 10
IF c = 1 THEN PRINT "○ × × × × × × ×": z = 1
IF c = 2 THEN PRINT "× ○ × × × × × ×": z = 2
IF c = 3 THEN PRINT "× × ○ × × × × ×": z = 3
IF c = 4 THEN PRINT "× × × ○ × × × ×": z = 4
IF c = 5 THEN PRINT "× × × × ○ × × ×": z = 5
IF c = 6 THEN PRINT "× × × × × ○ × ×": z = 6
IF c = 7 THEN PRINT "× × × × × × ○ ×": z = 7
IF c = 8 THEN PRINT "× × × × × × × ○": z = 8
LOCATE 5 + y + 2, 10
IF a(z) = k THEN PRINT k; "はあたりです ": END
PRINT k; "ははずれです ": END
write_line:
LOCATE 5 + y, 10
IF n = 1 THEN PRINT "|---| | | | | | |": RETURN
IF n = 2 THEN PRINT "| |---| | | | | |": RETURN
IF n = 3 THEN PRINT "| | |---| | | | |": RETURN
IF n = 4 THEN PRINT "| | | |---| | | |": RETURN
IF n = 5 THEN PRINT "| | | | |---| | |": RETURN
IF n = 6 THEN PRINT "| | | | | |---| |": RETURN
IF n = 7 THEN PRINT "| | | | | | |---|": RETURN |
今や昔のQuickBASICかと思いきや、2004年に登場したFreeBASICでは、lang指定さえすれば、このままコンパイルできるのです。マルチバイトも特に問題なし。FreeBASICならGPLでクロスプラットホームですし、過去のプログラムもそれなりに活用できますね。
さらに、FreeBASICならオブジェクト指向風にも書けます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
| '/for FreeBASIC
Type Amida
Dim a(20) as Byte
Dim b(10) as Byte
Declare Constructor()
Declare Sub wrLine (n as Byte)
Declare Function get_result (c as Byte) as Byte
Declare Function judge (a() as Byte, k as Byte, z as Byte) as Byte
End Type
'-----------
Constructor Amida()
Dim ta as String
Dim as Byte c, k, n, x, y, z
ta = Right(Time, 2)
Randomize (Asc(ta))
For y = 1 To 8: b(y) = Int(Rnd * 6) + 1: Next y
Cls
Locate 5, 10: Print "1 2 3 4 5 6 7 8"
Locate 15,10: Input "番号を選んでください ", k
For x = 1 To 8: a(x) = x: Next x
For y = 1 To 7
n = b(y)
Locate 5 + y, 10
This.wrLine(n)
c = a(n): a(n) = a(n + 1): a(n + 1) = c
Next y
Locate 5 + y, 10
z = This.get_result(c)
Locate 5 + y + 2, 10
If This.judge(a(),k,z) = 1 Then
Print k; "はあたりです "
Else
Print k; "ははずれです "
End If
End Constructor
'-----------
Function Amida.get_result(c as Byte) as Byte
Dim z as Byte
If c = 1 Then Print "○ × × × × × × ×": z = 1
If c = 2 Then Print "× ○ × × × × × ×": z = 2
If c = 3 Then Print "× × ○ × × × × ×": z = 3
If c = 4 Then Print "× × × ○ × × × ×": z = 4
If c = 5 Then Print "× × × × ○ × × ×": z = 5
If c = 6 Then Print "× × × × × ○ × ×": z = 6
If c = 7 Then Print "× × × × × × ○ ×": z = 7
If c = 8 Then Print "× × × × × × × ○": z = 8
Return z
End Function
'-----------
Sub Amida.wrLine(n as Byte)
If n = 1 Then Print "|---| | | | | | |"
If n = 2 Then Print "| |---| | | | | |"
If n = 3 Then Print "| | |---| | | | |"
If n = 4 Then Print "| | | |---| | | |"
If n = 5 Then Print "| | | | |---| | |"
If n = 6 Then Print "| | | | | |---| |"
If n = 7 Then Print "| | | | | | |---|"
End Sub
'-----------
Function Amida.judge(a() as Byte, k as Byte, z as Byte) as Byte
If a(z) = k Then
Return 1
Else
Return 0
End If
End Function
'-----------
Dim ObjAMD as Amida
End |
なかなか登場機会の少ないBASICですが、この手軽さと生産性の高さにはやはり根強い需要があるような気がします。
参考程度になるかもしれませんので、当サイトでMaildirをバックアップするために使っているスクリプトを載せておきます。curとnewディレクトリだけを保存し、古いファイルを削除できます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| #!/bin/sh
# Remains at least these days
keepday=14
HOMEDIR=/usr/local
MAILDIR=$HOMEDIR/Maildir
BACKUPDIR=$HOMEDIR/backup_mail
FOLDERS="kuroneko-square.net"
# Get timestamp
timestamp=`date +%Y%m%d`
old_date=`date "-d$keepday days ago" +%Y%m%d`
cd $MAILDIR
for F in $FOLDERS; do
NAME=$BACKUPDIR/INBOX-$F-$timestamp.tar.gz
FILES_CUR="`find $F -regex ".*cur.*"`"
FILES_NEW="`find $F -regex ".*new.*"`"
tar -cvzf $NAME $FILES_CUR $FILES_NEW
rmfile=$BACKUPDIR/INBOX-$F-$old_date.tar.gz
if [ -e $rmfile ]; then
rm -f $rmfile
fi
done
exit |
くろねこスクエアで使用しているドメインはVALUE DOMAINというところで管理しているのですが、頻繁にチェックしているわけではないため、新しいお知らせがあっても気づかない時があります。ATOMフィードやRSSフィードなどの配信があればフィードリーダーで更新チェックができるので言うことなしですが、なかなか対応は望めないようなので、試験的にではありますがVALUE DOMAINのアナウンスをフィードで取得できるようにしてみました。これでもう、期間限定割引なども見逃しませんよ。
しばらくは様子見・テスト運用ですが、特に問題なければGPL程度で公開したいと思います。追記:一部、最新情報を取得できない場合があるようですので修正しましたが、引き続き調査中です。
もし欲しいドメインがなかなか決まらないという方は、空きドメイン検索もできますのでご活用ください。
従来から使用させていただいているPEAR::Services_Rakutenを、2009年10月までのいくつかのアップデートに(適当に)対応させたものを置いておきます。
0.2.2からの主な変更点は以下のとおりです。
- 従来のBooks/CD/DVD検索の廃止にともない楽天ブックス系APIを追加
- 各APIを2009/10/20 現在のバージョンに更新
ちょっとした環境変数を確認するために簡単なENV Checkerを置いてみたのですが、せっかくなので接続元地域の判定も入れてあります。
ただし、IPアドレスのデータベースを持つのは大変なので、MaxMind
社が配布している
GeoLite Countryを利用させていただいています。このデータは毎月更新されるようなので、GeoIPの利用方法のシェルスクリプトを参考に、過去2ヶ月分を残し、それより前のデータを削除するスクリプトを追加してみました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| #! /bin/sh
# Remains at least these months
keepmonth=2
TMPDIR=$HOME/tmp
GEODIR=$HOME/share/GeoIP
DAT=GeoIP.dat
# Get timestamp
timestamp=`date +%Y%m`
old_date=`date "-d$keepmonth months ago" +%Y%m`
cd $TMPDIR
#/usr/bin/wget http://www.maxmind.com/download/geoip/database/$DAT.gz
/usr/bin/wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/$DAT.gz
if [ $? != 0 ] ; then
echo "wget failed"
exit 1
fi
/bin/gunzip $DAT.gz
if [ $? != 0 ] ; then
echo "gunzip failed"
exit 2
fi
cd $GEODIR
/bin/mv $DAT $DAT.$timestamp
/bin/mv $TMPDIR/$DAT .
rmfile=$DAT.$old_date
if [ -e $rmfile ]; then
rm -f $rmfile
fi
exit |
1ヶ月ごとにcronを回せばデータベースを自動更新してくれるので、いわゆるメンテナンスフリーになります。
2009年10月のアクセス解析結果(kuroneko-square.net)です。調査期間は10月1日から10月31日まで。
ブラウザ別
| Internet Explorer 6 | 28.5% |
| Internet Explorer 8 | 28.4% |
| Internet Explorer 7 | 23.4% |
| Firefox 3 | 12.2% |
| Safari | 3.5% |
| NetFront | 1.2% |
IE8が増加しIE7が減少。Firefoxは横ばいの12%でした。Netfrontというのは、どんな機器をお使いの方なのでしょうか。
OS別
| Windows XP | 63.3% |
| Windows Vista | 22.4% |
| Windows 2000 | 6.5% |
| MacOS X | 3.9% |
| Windows 98 | 1.3% |
Windows 2000が微減しました。延長サポートフェーズは2010年までの予定ですので、今後も減少が続くのでしょうか。
検索語句
- ヨーヨーキルト 作品
- 紅葉 関東 絶景
- ldview japanese
- ホトトギス 藤娘
- 焼き塩 作り方
- パッチワーク クリスマス
- 鬼怒沼
- 簡単 クリスマス小物
- ブラキカム マリウスブルー
- タオルケーキ 作り方
2009年9月に比べ鬼怒沼での検索が増加しました。全体的には手作り作品が目立ちます。