2007-01-01から1年間の記事一覧

書いたエントリは、引っ込めれない。

上記のエントリに対して、id:bonlife氏よりコメントを頂きました。 ありがとうございます。(実は、僕ひそかに氏のブログの購読者だったりします。) まさか、SOS団のカウンタよろしく、カウンタのほとんどを自分で 回しているようなブログにコメントが書か…

Pythonモジュールのソースを読もうとしたら、C言語のソースにぶち当たった

PythonのRandomモジュールのソースコードを読んでみようと思い立ち、 random.pyを開いたら、 import _random と、_randomっていうモジュールが読み込まれていて、 これがRandomクラスの親クラスになっていた。 はて、_random.pyってあったっけ?と思い、ディ…

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

レシピ2.6 乱数を生成する #!/usr/bin/env python # -*- coding: utf-8 -*- import random # 25 <= n <= 75 の乱数を1つ生成する print random.randrange(25,75+1) print random.randint(25,75) # a から z までの文字から10個を無作為に抽出する str = "ab…

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

データベースの修正 Blobテーブル カテゴリ情報を追加しました。 class Blog(SQLObject): blog_name = UnicodeCol(length=32) description = UnicodeCol(length=128) user_id = ForeignKey('User') entries = MultipleJoin('Entry') Categories = MultipleJo…

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

データベースの設定 プロジェクトを作成したので、次に使用するデータベースの設定を行います。 tgBlogディレクトリ配下にある「dev.cfg」ファイルを 編集することによって設定が可能となります。 「dev.cfg」ファイルを開くと、以下のように書かれた箇所が…

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

レシピ2.2 浮動小数点を丸める #!/usr/bin/env python2.4 # -*- coding: utf-8 -*- # 小数点第2位で丸め込み fnum = 0.74 print "%.1f" % fnum fnum = 0.75 print "%.1f" % fnum 結果 $ ./recipe22.py 0.7 0.8

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

プロジェクトの作成 PythonやTurboGearsなど、開発に必要なものは 既にインストール済みなので、早速プロジェクトを生成する。TurboGearsでプロジェクトを生成するには、 「tg-admin」コマンドを使用する。 $ tg-admin quickstart Enter project name: tgBlo…

ブログとか作ってみたいかと その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-2005…

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

RSSとかトラックバックやらは置いといて、 基本的な部分、表示・登録・編集・削除機能を サクッと考えてみる。 DBのあれこれ ・ユーザ情報 ・TGデフォルトのテーブルを使用する・ブログ情報 ・ブログ名 ・ブログの説明・エントリ情報 ・タイトル ・本文 ・作…

Programming Language Examples Alike Cookbook

PLEAC - Programming Language Examples Alike Cookbook (http://pleac.sourceforge.net/)Perlクックブックのお題を、Python、Ruby、Haskellと言った25個の他言語で再現しているサイト。自分もPythonで挑戦中ですが、ここまでの再現は、うん無理。

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…

Haskellのお勉強 その21

読了ふつうのHaskellプログラミング ふつうのプログラマのための関数型言語入門作者: 青木峰郎,山下伸夫出版社/メーカー: ソフトバンククリエイティブ発売日: 2006/06/01メディア: 単行本購入: 25人 クリック: 314回この商品を含むブログ (320件) を見る

Haskellのお勉強 その20

関数2 Haskellでは、関数同士を(.)関数で連結させて、 新しい関数を作成することができる。 例えば、 numberOfLines cs = length $ lines cs は numberOfLines = length . lines のように書ける。

 Haskellのお勉強 その19

関数について1 Haskellにおける関数の定義とは、 「〜する処理」という関数に対して、変数を束縛すると 言う意味で、これを「関数束縛」という。 また、関数も値として処理に使用することができる。 関数の中には、「高階関数」と「無名関数」を言うのがあ…

Haskellのお勉強 その18

第7章「基本的な構文」を読み終わったので、まとめ。1.コメント 1行コメント main = print $ square 5 -- nの2乗 square :: Int -> Int square num = num * num ブロック形式コメント main = print $ square 5 {- nの2乗 -} square :: Int -> Int square …

 Haskellのお勉強 17

第6章「基本的な値」を読み終わったのでまとめ。Haskellには、以下の型が存在する。 真偽値(Bool値) 数値 (Int型、Integer型、Float型、Double型) 文字 (Char型) 文字列 (String型=[Char]型) タプル ((a,b)型) ユニット(()型) リスト ([a]型) …

Haskell のお勉強 その16

式を計算し値を得ることを「評価」という。 Haskellでは、「遅延評価」という評価方法を用いて、式から値を求める。 「遅延評価」は、ある式を本当に必要になるまで評価しないという評価方式で、 Haskellでは、「最外簡約」と「グラフ簡約」と用いて、実現し…

Haskell のお勉強 その15

fgrepコマンドの作成 fgrepは、あるパタンを含む文字列を抽出するためのコマンドです。 import System import List main = do args <- getArgs cs <- getContents putStr $ fgrep (head args) cs fgrep :: String -> String -> String fgrep pattern cs = un…

Haskell のお勉強 その14

echoコマンドの作成 import System main = do args <- getArgs putStrLn $ unwords args 今回出てきた新しい要素は、 import宣言、getArgsアクション、unwords関数の3つです。まず、import宣言についてです。 これは、関数や変数を定義しているモジュールを…

Haskell のお勉強 その13

map関数は、第2引数として渡されたリストの各要素に対して 第1引数で渡された関数を適応し、その結果をリストにまとめてます。今回、注目するのは、 「第2引数として渡されたリストの各要素に対して 第1引数で渡された関数を適応」という部分。リストの…

Haskell のお勉強 その12

パターンマッチを用いたexpandコマンドの作成。まずは、ソースの作成 tabStop = 8 main = do cs <- getContents putStr $ expand cs expand :: String -> String expand cs = concatMap expandTab cs expandTab :: Char -> String expandTab '\t' = replicat…

Movable Type オブジェクト・リファレンス

MTソース解読に必要なページhttp://www.sixapart.jp/movabletype/manual/object_reference/

Haskell のお勉強 その11

前回、高次関数の使用方法について学んだので、例題をやってみる。 作成するコマンドは、expandコマンド。 expandコマンドは、以下のような働きをするコマンド。 タブをスペースに変換する まずは、テスト用データ hoge hoge hoge hogetabを'\t'で表すと、 h…

僕の仕事とは関係のない別案件が炎上してます。

PostgreSQLのソースが格納されているディレクトリの 構成が、結構解り易くて良いなぁ。

Haskell のお勉強 その10

高次関数について 高次関数っていうのは、関数を引数に取るような関数のことで コードで書くとこんな感じ。 main = print $ map square [1,2,3] square :: Int -> Int square n = n * n 今回、注目する点は、 map square [1,2,3] で、これは map $ square [1…

Perlのchomp()みたいなもの

strip()メソッドを使うのね。 #!/usr/bin/env python import sys for line in sys.stdin: print line.strip() http://osksn2.hep.sci.osaka-u.ac.jp/~taku/osx/python/readfile.htmlより こうも書ける。 #!/usr/bin/env python import sys for line in sys.s…

Haskell のお勉強 その9

Haskellは、C言語やJavaと同様のコンパイル時に静的な型チェックを するプログラミング言語らしい。 でも、これまでの変数や関数の戻り値に対して、明示的には型を宣言していない。 していないにも関わらず、静的な型チェックが行われているらしい。 これは…

はじめてのCSS

CSS

はじめてCSSを使った。 お、おもしろいじゃない。 <html> <head> <meta http-equiv="Content-Type" content="text/html"> <meta http-equiv="Content-Style-Type" content="text/css" > <style type="text/css"> </meta></meta></head></html>

Haskell のお勉強 その8

標準入力から読んだバイト数を数えるコマンド、countbyteを書きなさい。 main = do cs <- getContents print $ length cs 標準入力から読んだ単語数を数えるコマンド、countwordを書きなさい。 main = do cs <- getContents print $ length $ words cs words…