2013年10月20日日曜日

CMSを作りたい

 RailsでわかりやすいCMSを作れたらいいんですけど、大変そうなので、今の夢はDelphiでCMSみたいなものを作る、です。
 ウェブサイトを構築するのにRailsはよく使われていますけど、Viewフォルダを見てもhtmlファイルがまとまっているわけではなくて参考にできない状態です。もっとわかりやすいスタイルがあるんじゃないかと思っています。
 胸を張って言えますけど僕はWeb技術が発展するよりも前に入力フォームを利用したセットアップを考案していました。頑張ればできたかも知れません。
 そういうわけもあってBBSをつくった次はCMSなんかを作りたいんです。本当を言うとe-Commerceをローカライズして使えるようになりたかったんですけど、Delphiも使いたいし・・・理想を言えばRailsを活用してさっぱりとして手の加えやすいものを作るのが一番なんですけど、データベース関連で未だわかりづらい点があるので、まあ書籍を1冊買えばすむことでしょうけれど、とりあえずはDelphiで構築したい。
 ただしそんな巨大なCGIファイルは読み込みに時間かかりすぎるだろうと思うのですが。

2013年10月16日水曜日

JavaScriptからPythonへの切り替えを望む

 JavaScriptは以前僕も重要な言語として一押ししましたけれど、久しぶりになにか書こうと思っても複雑すぎる印象を受けます。簡単な機能で満足していればいいのですが・・・。
 Pythonをブラウザが実装するのは無理だと思うのですが、JavaScriptのようなわかりづらい記述早めにしていただかないと時代に取り残されていきそうです。
 ちょっとブログを再開したのですがタイプミスや変換ミスが目立ちます。皆様にはご迷惑をおかけしております。

2013年10月13日日曜日

コマンドラインツールは便利か

 初心者はWindowsのコマンドラインプロンプトが面倒だと思います。Windowsだけを触っているのなら上級者だってあんなものいらないと思うかもしれません。けれどもLinuxを便利に使おうとするとウェブには色々とコマンドラインツールの使い方が載っています。
 ただ文字を入力するだけではなくてちゃんとTabキーを押せば入力補助がついていますから、結構使いやすいものです。それに慣れてくればいろいろ試してみようと思うものです。プログラミングをしていてデータベースを作成しようとすると、総合的に見てビジあるツールよりもコマンドラインの方がまだ使いやすいです。
 文字列というのはタイプミスがあったら動いてくれないという不安はありますが、裏を返せばそれだけユニークな、ダブってない表現が可能なわけであり捨てたものではありません。
 ブログで紹介するのも結論から初めてこのように入力してくださいとしておけば通信情報も少なくてすみます。画像を色々と貼り付けて解説するのは骨が折れる。
 初心者に分かりやすいシステムかもしれません^_^

2013年4月21日日曜日

Lazaruのインストールとリポジトリ

 Lazarusの正式リリースが出ていますね。Ubuntuでは0.9なので評価版です。そこでLazarusをインストールして見ることにしました。果たしてどうなっているのでしょう。
 バージョンアップを追いかけていきたいのでリポジトリを追加することにしました。ホームページを見るとgetlazの作り方にキー取得の方法がしっかりと書かれているので、忘れたときはここを見ればいいと思いました。
  getlazのことをお知らせしたくて書きました。データベースコンポーネントのダウンロードファイルも用意されていますので、Firebirdなども試せると思います。
 フォントなどカスタマイズして使いやすくなったらまたレポートします。
 http://wiki.freepascal.org/Lazarus_release_version_for_Ubuntu

2013年4月18日木曜日

フリーの統合開発環境TheIDE

 Ubuntuを使っています。Ultimate++という統合開発環境が紹介されていたのでインストールして見ました。実物の名前はTheIDEというらしいです。
 まずUbuntuにはPPAが用意されていたので、パッケージをダウンロードしなくてすむように、そちらでのインストールを選択しました。
 PPAを登録して、暗号鍵かな、キーサーバーから取得して、忘れずにエクスポートします。参考にしたリンクを載せておきます。
https://news.ycombinator.com/item?id=1605144
 キーサーバーとかはダウンロードサイトで表示されるようになっています。PPAの登録も、アップデートマネージャを使って補助してもらうことができます。
 導入するパッケージはtheideとtheide-dbg以外のファイルです。どうやらGTKを利用したソフトでは無いのでnogtkを選択する必要があります。
 インストールが終わったらコマンドラインからtheideと入力して見ました。 よくわかりませんが、インストール画面が出たので実行が終わるとTheIDEがインストールされています。
 使い方はよくわかりませんでした。Delphiと同じようなソフトだと期待していたのですが、僕は使いこなせませんでした。

2013年3月21日木曜日

gameover() 関数の作成

 どの位置からでも呼び出せるgameover()関数というのを作成して利用しようと思います。これまではゲーム終了のタイミングが一箇所だったので必要ありませんでしたが、ともかく前置きはよしてコードを見て行きましょう。

def gameover():
    game.run = False
    pygame.time.delay(2000)

ちなみに他の部分は毎回一緒です。game.runはレコード型ですね、宣言わかりますか。
 敵キャラが消えた瞬間にゲームを終了させたいので作って見ました。これまではwhile timer():とやってメイン関数のループから抜けていました。
変更のあったtimer()関数です。戻り値がなくなっています。

def timer():
    temp = pygame.time.get_ticks()
    if game.time+300 < temp:
        game.time = temp
        if cap.visible == True:
            move(K_DOWN)           
        else:           
            cap.start()           
            if checkcap() == False:
                gameover()



メイン関数を次のように書き換えれば、どの関数からgameover()を呼び出しても直感的に即座に終了させることができます。

def main():
    start()
    while game.run:
        keydown()
        draw()
        timer()

2013年3月20日水曜日

Python pygame.image.load()

 日記としてつけ始めたこのブログですが、Webに貢献できるようにProgramming Tipsも載せていこうと思います。そのほうがページランクも上がるでしょうから。

Python+Pygameで画像を読み込む方法です。代表的なのがウェブに乗っています。例えば次のようなもの。

import pygame

image = pygame.image.load('picture.bmp').convert()

このコードでimageプロパティに画像が代入されます。convert()することによってSurfaceに貼り付けるときに機械の処理が楽になるそうです。

pygame.init()
screen = pygame.display.set_mode((200,100))
screen.blit(image,(0,0))

ウィンドウを作って先ほどの変数に格納した画像を書き込んでいます。pygame.init()をまず最初に呼び出して初期化してからscreenを作るみたいですね。

さて、今回一番重要なイメージの読み込みですが、実はネットに書かれている上記の方法ではWindowsでは動作してもLinuxではファイルをみつけることができません。ですので以下のように書き換えておくのが良いと思います。記入例では.pyファイルと同階層にあるdataディレクトリに画像を格納してある設定です。
 import sys,os

image = pygame.image.load(os.path.join(path(),'data','picture.bmp').convert()

def path():
    for name in sys.argv:
        if os.path.exists(name) == True:
            return os.path.dirname(name)
    return ''

一行で書くべき文は改行を入れないでください。Pythonの基本です。path()というのは自作関数です。このようにすれば実行時引数から絶対パスを取得します。カレントディレクトリがどこであっても絶対パスを返すらしく、今のところ問題は出ていません。あしからず。
ところで、関数の使い方については検索してウェブで調べてご覧になってください。