くろねこスクエア Labs
« アクセス解析2009年12月
2010 年 5 月 30 日
-
- WordCampフィナーレ♪
くろねこスクエアの半分はMODxでできているわけですが、何よりこのブログはWordPressですし、WP日本語フォーラムにも(新参者だけど)時々顔出しているし、参加してもいいよね!ってことでWordCamp YOKOHAMA 2010へ行ってきました。内容は色々な方が言及しているので「楽しかったよ」の一言で割愛。
-
- 会場にはAEDも完備
閉幕後、とある場所でtunakkoさん、xenoさんたちが「スマートフォンを重ねてみた」をやっていたのです。そこへカイさん、takamorryさん、IKUKOさん他…が1台ずつ献上したと思ったら、Yurikoさんが加わって。
-
- 手前に積んであるのは全部Yurikoさんの所有・・・
こんなに賑やかになりました。
でもこれってありがちだよね…
というわけで、全部積んでみた。
-
- 「見事なオブジェ feat. Yuriko」 あ、あぶないっ!
iPadもあったけど、さすがにこの上には乗りませんでした。
おまけ
ところで、WordCampで配られた名札のアイコン画像が、なぜか見にくくなってしまっていて、いわゆる闇のカラス状態。
-
- 名札の紙は白いのに、アバターの部分だけ背景が黒なのはなぜ??
どうして??と考えてみたけど、
- アルファチャンネルに対応していない
- アイコン画像部分が黒で塗りつぶされている
のどちらかでしょう。でも2010年にもなって、ましてやWordCampともあろうものが「PNGのアルファチャンネルに対応していない」なんてことは「ありえない」はずなので、たぶん「アイコン画像部分が黒で塗りつぶされている」んでしょう(どこぞの古いブラウザじゃないんだから)。名札の地色が黒だったら仕方ないんですが、白なのになぜ!!
少し残念だったので、ちゃんとしたアバターを載せておきます。
-
- 中の人はこんな感じです
2010 年 1 月 10 日
2009年12月のアクセス解析結果(kuroneko-square.net)です。調査期間は12月1日から12月31日まで。
ブラウザ別
| Internet Explorer 8 | 31.7% |
| Firefox 3 | 22.2% |
| Internet Explorer 6 | 20.3% |
| Internet Explorer 7 | 17.8% |
| Safari | 4.1% |
Firefoxが増加しました。IE8は横ばい。IE7は先月に続き減少。
OS別
| Windows XP | 66.2% |
| Windows Vista | 22.2% |
| MacOS X | 4.2% |
| Windows 7 | 3.3% |
| Windows 2000 | 1.5% |
検索語句
- movabletype 5 アップデート
- env checker
- maildir バックアップ
- ホトトギス 藤娘
- ヨーヨーキルト 作品
- クマのルーニー
- バターを使わないパウンドケーキ
- 焼き塩 作り方
- modx アップデート
- 茹で干し大根の作り方
2009 年 12 月 20 日
とっつきにくいソースコードなどを色分け表示したい時はありませんか?Syntax Highlighterにはいろいろ種類がありますが、先日、WordPressプラグイン CodeColorerに拙作の日本語リソースを同梱していただきました。
CodeColorerの特徴は…
- プラグインを無効にしても問題なく表示される
- サーバサイド処理
- CSSで色を指定可能
CodeColorerのコアライブラリはGeSHiなので、対応言語の多さには定評があります。例えばgnuplotとかDOT languageにも対応しているんですよ。
コード表示には、この手のツールが、お便利です。
2009 年 12 月 10 日
2009年11月のアクセス解析結果(kuroneko-square.net)です。調査期間は11月1日から11月30日まで。
ブラウザ別
| Internet Explorer 8 | 32.8% |
| Internet Explorer 6 | 24.7% |
| Internet Explorer 7 | 21.9% |
| Firefox 3 | 14.1% |
| Safari | 3.1% |
IE8がIE6を上回りました。IE7は先月に続き減少。Firefoxは微増でした。
OS別
| Windows XP | 67% |
| Windows Vista | 23.9% |
| MacOS X | 3.5% |
| Windows 2000 | 1.9% |
検索語句
- 紅葉 関東 絶景
- ヨーヨーキルト 作品
- ホトトギス 藤娘
- クマのルーニー
- 楽天 フィード
- パッチワーク クリスマス
- 簡単 クリスマス小物
- 焼き塩 作り方
- タオルケーキ 作り方
- 手作り クリスマスリース 作り方
クリスマスにまつわる語句が増えました。手作り作品が目立ちます。
2009 年 12 月 7 日
このたび「YFeed」のアップデートを行いました。Yahoo!オークション関連での出力項目を追加したほか、Yahoo!オークションのオリジナルRSSフィードとのパラメータ互換性を高めました。
主な変更点は以下のとおりです。
- Yahoo!オークションで取得できるRSSフィードのパラメータを、YFeedでもそのまま使用できるようにしました。
- 即決価格や出品者ID、画像など、オリジナルRSSフィードでは取得できない項目を追加しました。
2009 年 12 月 1 日
Basic認証に関する話ではありませんので悪しからず。
かつてのBASICは高水準言語として抽象化されていて扱いやすいのですが、抽象化されていない処理については当たり前ながら具体的な手続きを書く必要があります。以下のコードはQuickBASICでの例で、入力されたパスワードをアスタリスク(*)で表示するために行っていた処理です。
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
| '/for QuickBASIC
'$lang: "qb"
'------- GUI パスワード入力サンプルプログラム
'------設定
CLS 0: WIDTH 80, 25
COLOR 1
pass$ = "abc" 'パスワード
word$ = "" '入力されたパスワード
inword$ = "" '入力途中のパスワード
'------変数の宣言
x = 21'x座標
y = 11 'y座標
r = 0 '一つづづ "*" を描くための座標
'------表示
CLS 0
LINE (140, 140)-(500, 195), 7, BF, 15
LINE (140 + 5, 140 + 5)-(500 - 5, 195 - 5), 1, B
start:
LOCATE y, x, 1'文字の座標へ移動
PRINT "ENTER PASSWORD :" '入力待ち
'------パスワード入力
in:
LOCATE y, x + 17 + r: inword$ = INPUT$(1)
IF inword$ = CHR$(8) THEN GOTO backspace 'BackSpace を押したとき
IF inword$ = CHR$(13) THEN GOTO yorn 'Enter を押したとき
IF r <= 22 THEN PRINT "*": r = r + 1 '"*" を描く
'------入力したパスワードを合成
word$ = word$ + inword$
'------パスワード入力に戻る
back:
inword$ = ""
GOTO in
'------バックスペース
backspace:
IF r >= 1 THEN r = r - 1 ELSE GOTO yorn
LOCATE y, x + 17 + r
PRINT " "
GOTO in
'------パスワードの比較・確認
yorn:
IF word$ = pass$ THEN GOTO exeexit
'------入力された情報の削除
word$ = ""
inword$ = ""
r = 0
CLS 2
GOTO start 'やりなおし
'------終了
exeexit:
CLS 0
END |
ある程度構造化してあるので判りやすいかと思います。このような処理は利用機会も多いのでクラスとして抽象化してしまえば再利用しやすいのですが、往年のQuickBASICにはそのような仕組みがなく、プログラムごとに手直しする必要がありました。昨今のBASICはオブジェクト指向を念頭に設計されているものが多いので、初期のBASICに比べれば格段に扱いやすくなっています。もっとも、FreeBASICではクラスの継承は「まだ」実装されていませんが…
それにしても、「パスワードを入力する」というUI自体は10年経っても20年経っても、それほど変わらないですね。
2009 年 11 月 26 日
当サイトに設置している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にも得手不得手があります。お互いに連携できるような工夫ができればそれが一番なのですけれど。
2009 年 11 月 23 日
かなり前に作ったあみだくじのプログラムは、以下のようなコードでした。
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ですが、この手軽さと生産性の高さにはやはり根強い需要があるような気がします。
2009 年 11 月 15 日
参考程度になるかもしれませんので、当サイトで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 |
2009 年 11 月 13 日
くろねこスクエアで使用しているドメインはVALUE DOMAINというところで管理しているのですが、頻繁にチェックしているわけではないため、新しいお知らせがあっても気づかない時があります。ATOMフィードやRSSフィードなどの配信があればフィードリーダーで更新チェックができるので言うことなしですが、なかなか対応は望めないようなので、試験的にではありますがVALUE DOMAINのアナウンスをフィードで取得できるようにしてみました。これでもう、期間限定割引なども見逃しませんよ。
しばらくは様子見・テスト運用ですが、特に問題なければGPL程度で公開したいと思います。追記:一部、最新情報を取得できない場合があるようですので修正しましたが、引き続き調査中です。
もし欲しいドメインがなかなか決まらないという方は、空きドメイン検索もできますのでご活用ください。