ブログとか作ってみたいかと その1

名前を考える

 TurboGears + Blog = tgBlog

概出感がありますが、仮ということでtgBlog(仮)としよう。

開発環境

Python Version Info
  * Python 2.4.3

TurboGears Version Info

  * TurboGears 1.0.4b1
  * cElementTree 1.0.5-20051216
  * elementtree 1.2.6-20050316
  * SQLAlchemy 0.3.10
  * TurboKid 1.0.3
  * TurboJson 1.0
  * TurboCheetah 0.9.5
  * simplejson 1.7.1
  * setuptools 0.6c6
  * RuleDispatch 0.5a0.dev-r2306
  * PasteScript 1.3.3
  * FormEncode 0.7.1
  * DecoratorTools 1.4
  * configobj 4.4.0
  * CherryPy 2.2.1
  * Cheetah 2.0rc8
  * kid 0.9.6
  * RuleDispatch 0.5a0.dev-r2306
  * Cheetah 2.0rc8
  * PyProtocols 1.0a0
  * PasteDeploy 1.3
  * Paste 1.3

また、データベースは、sqlite3を使用。

ブログとか作ってみたいかと その0


RSSとかトラックバックやらは置いといて、
基本的な部分、表示・登録・編集・削除機能を
サクッと考えてみる。

DBのあれこれ

・ユーザ情報
 ・TGデフォルトのテーブルを使用する

・ブログ情報
 ・ブログ名
 ・ブログの説明

・エントリ情報
 ・タイトル
 ・本文
 ・作成日時

・コメント情報
 ・ユーザ名
 ・タイトル
 ・コメント
 ・作成日時

・カテゴリ情報
 ・カテゴリ名


・ユーザ情報は、 ブログ情報と一対多の関係を持つ。
・ブログ情報は、 エントリ情報と一対多の関係を持つ。
・エントリ情報は、コメント情報と一対多の関係を持つ。
・カテゴリ情報は、エントリ情報と多対多の関係を持つ

処理のあれこれ

・表示
  ・題名
  ・ブログ説明
  ・エントリ
    ・5つずつ表示する。
  ・月リンク
    ・対象月のエントリを表示する。
  ・日付リンク
    ・対象日分のエントリを表示する。
  ・カテゴリリンク
    ・対象カテゴリのエントリを表示する。
  ・プロフィールリンク
    ・ユーザ情報を表示する。

・登録、変更、削除
  ・ユーザ情報
    ・変更が可能
  ・ブログ情報
    ・変更が可能
  ・エントリ情報
    ・登録、変更、削除が可能。
  ・コメント
    ・登録、削除が可能。
  ・カテゴリ情報
    ・登録、変更、削除が可能

Perlクックブックのお題をPythonで解いてみた その12

レシピ2.1 文字列が有効な数値であるかどうかをチェックする。

こんな感じ?

#!/usr/bin/env python2.4
# -*- coding: utf-8 -*-

def checkInteger(num="0",base=10):
    try:
        int(num,base)
        print "%5s is integer" % num
    except ValueError:
        print "%5s is not integer" % num

def checkFloat(num="0.0"):
    try:
        float(num)
        print "%5s is float" % num
    except ValueError:
        print "%5s is not float" % num

if __name__=="__main__":

    checkInteger("10")
    checkInteger("07",8)
    checkInteger("0xf",16)
    checkFloat("10")
    checkFloat("10.0")


結果

$ ./recipe21.py
   10 is integer
   07 is integer
  0xf is integer
   10 is float
 10.0 is float

Haskellのお勉強 その21

読了

ふつうのHaskellプログラミング ふつうのプログラマのための関数型言語入門

ふつうのHaskellプログラミング ふつうのプログラマのための関数型言語入門

Haskellのお勉強 その20

関数2

 Haskellでは、関数同士を(.)関数で連結させて、
 新しい関数を作成することができる。

 例えば、

numberOfLines cs = length $ lines cs

numberOfLines = length . lines

のように書ける。

 Haskellのお勉強 その19

関数について1

 Haskellにおける関数の定義とは、
 「〜する処理」という関数に対して、変数を束縛すると
 言う意味で、これを「関数束縛」という。

 また、関数も値として処理に使用することができる。

 関数の中には、「高階関数」と「無名関数」を言うのがあって、
 「高階関数」は、関数自体を引数にしたり、戻り値にしたりできる・
 「無名関数」は、変数束縛しない関数で、

\num -> num * num

のように書く。