現在のページの位置:ホーム » Blog

くろねこスクエア Labs


«

WordCamp山盛り。おなかいっぱい

WordCampケーキ
WordCampフィナーレ♪

くろねこスクエアの半分はMODxでできているわけですが、何よりこのブログはWordPressですし、WP日本語フォーラムにも(新参者だけど)時々顔出しているし、参加してもいいよね!ってことでWordCamp YOKOHAMA 2010へ行ってきました。内容は色々な方が言及しているので「楽しかったよ」の一言で割愛。

AED搭載自動販売機
会場にはAEDも完備

閉幕後、とある場所でtunakkoさん、xenoさんたちが「スマートフォンを重ねてみた」をやっていたのです。そこへカイさん、takamorryさん、IKUKOさん他…が1台ずつ献上したと思ったら、Yurikoさんが加わって。

情報端末
手前に積んであるのは全部Yurikoさんの所有・・・

こんなに賑やかになりました。

でもこれってありがちだよね…

というわけで、全部積んでみた。

情報端末山盛り
「見事なオブジェ feat. Yuriko」 あ、あぶないっ!

iPadもあったけど、さすがにこの上には乗りませんでした。

おまけ

ところで、WordCampで配られた名札のアイコン画像が、なぜか見にくくなってしまっていて、いわゆる闇のカラス状態。

名札 kurosquare
名札の紙は白いのに、アバターの部分だけ背景が黒なのはなぜ??

どうして??と考えてみたけど、

  1. アルファチャンネルに対応していない
  2. アイコン画像部分が黒で塗りつぶされている

のどちらかでしょう。でも2010年にもなって、ましてやWordCampともあろうものが「PNGのアルファチャンネルに対応していない」なんてことは「ありえない」はずなので、たぶん「アイコン画像部分が黒で塗りつぶされている」んでしょう(どこぞの古いブラウザじゃないんだから)。名札の地色が黒だったら仕方ないんですが、白なのになぜ!!

少し残念だったので、ちゃんとしたアバターを載せておきます。

kurosquare
中の人はこんな感じです

アクセス解析2009年12月

2009年12月のアクセス解析結果(kuroneko-square.net)です。調査期間は12月1日から12月31日まで。

ブラウザ別

Internet Explorer 831.7%
Firefox 322.2%
Internet Explorer 620.3%
Internet Explorer 717.8%
Safari4.1%

Firefoxが増加しました。IE8は横ばい。IE7は先月に続き減少。

OS別

Windows XP66.2%
Windows Vista22.2%
MacOS X4.2%
Windows 73.3%
Windows 20001.5%

検索語句

  1. movabletype 5 アップデート
  2. env checker
  3. maildir バックアップ
  4. ホトトギス 藤娘
  5. ヨーヨーキルト 作品
  6. クマのルーニー
  7. バターを使わないパウンドケーキ
  8. 焼き塩 作り方
  9. modx アップデート
  10. 茹で干し大根の作り方

CodeColorer – WordPressプラグイン

とっつきにくいソースコードなどを色分け表示したい時はありませんか?Syntax Highlighterにはいろいろ種類がありますが、先日、WordPressプラグイン CodeColorerに拙作の日本語リソースを同梱していただきました。

CodeColorerの特徴は…

  • プラグインを無効にしても問題なく表示される
  • サーバサイド処理
  • CSSで色を指定可能

CodeColorerのコアライブラリはGeSHiなので、対応言語の多さには定評があります。例えばgnuplotとかDOT languageにも対応しているんですよ。

コード表示には、この手のツールが、お便利です。

アクセス解析2009年11月

2009年11月のアクセス解析結果(kuroneko-square.net)です。調査期間は11月1日から11月30日まで。

ブラウザ別

Internet Explorer 832.8%
Internet Explorer 624.7%
Internet Explorer 721.9%
Firefox 314.1%
Safari3.1%

IE8がIE6を上回りました。IE7は先月に続き減少。Firefoxは微増でした。

OS別

Windows XP67%
Windows Vista23.9%
MacOS X3.5%
Windows 20001.9%

検索語句

  1. 紅葉 関東 絶景
  2. ヨーヨーキルト 作品
  3. ホトトギス 藤娘
  4. クマのルーニー
  5. 楽天 フィード
  6. パッチワーク クリスマス
  7. 簡単 クリスマス小物
  8. 焼き塩 作り方
  9. タオルケーキ 作り方
  10. 手作り クリスマスリース 作り方

クリスマスにまつわる語句が増えました。手作り作品が目立ちます。

YFeed オークション検索 アップデート

このたび「YFeed」のアップデートを行いました。Yahoo!オークション関連での出力項目を追加したほか、Yahoo!オークションのオリジナルRSSフィードとのパラメータ互換性を高めました。

主な変更点は以下のとおりです。

  • Yahoo!オークションで取得できるRSSフィードのパラメータを、YFeedでもそのまま使用できるようにしました。
  • 即決価格や出品者ID、画像など、オリジナルRSSフィードでは取得できない項目を追加しました。

BASICでパスワード認証

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年経っても、それほど変わらないですね。

MovableType 5.0にアップデート

当サイトに設置しているMovableType Open Sourceを5.0にアップデートしました。

MT4と比べるとブログ管理画面のデザインが変わりました。WordPressをかなり意識したデザインになっていますので、初めて見る人にはどちらも同じに見えるでしょうが、旧来からの個人ユーザにはWordPressへの移行を促すデザインにも見えるかもしれませんね。

当サイトではテスト環境としての使用のみで、メインとして使う予定は今のところありません。どちらかというと、MovableTypeとは別にCCとGPLで公開されている絵文字アイコンのほうに魅力を感じているのが実情です。

TypePad 絵文字一覧

Creative Commons License
TypePad 絵文字アイコン画像 by Six Apart Ltd is licensed under a Creative Commons 表示 2.1 日本 License.

いろいろな汎用CMSが日々栄枯盛衰(とそれに伴い互いに切磋琢磨)を繰り返していますが、どのCMSにも得手不得手があります。お互いに連携できるような工夫ができればそれが一番なのですけれど。

1990年代のあみだくじ

かなり前に作ったあみだくじのプログラムは、以下のようなコードでした。

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をバックアップするシェルスクリプト

参考程度になるかもしれませんので、当サイトで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 のフィード

くろねこスクエアで使用しているドメインはVALUE DOMAINというところで管理しているのですが、頻繁にチェックしているわけではないため、新しいお知らせがあっても気づかない時があります。ATOMフィードやRSSフィードなどの配信があればフィードリーダーで更新チェックができるので言うことなしですが、なかなか対応は望めないようなので、試験的にではありますがVALUE DOMAINのアナウンスをフィードで取得できるようにしてみました。これでもう、期間限定割引なども見逃しませんよ。

しばらくは様子見・テスト運用ですが、特に問題なければGPL程度で公開したいと思います。追記:一部、最新情報を取得できない場合があるようですので修正しましたが、引き続き調査中です。

もし欲しいドメインがなかなか決まらないという方は、空きドメイン検索もできますのでご活用ください。


カテゴリー

タグ

ぐるなび アクセス解析 オープン キャッシュ サイト サムネイル スパム チャット ドメイン バックアップ バーコード ブログパーツ 価格.com 地図 変換 携帯 更新履歴 楽天 測地系 環境変数 API BASIC blog CMS cron Download Feed flex FreeBASIC Google IM IPアドレス latest Mobile Eye+ MODx MovableType mozshot PageRank pidgin QRコード Services_KakakuCom WGS84 WordPress WWW Yahoo

アーカイブ

Feed

メタ情報