Hits:118 ... « 1 2 3 4 5 6 7 8 9 10 »

電車内の空気の流れ

通勤で,電車の連結部分に立っていたんですが,電車が発車するとー前方(前の車両側)から風が流れてくる.そしてある程度速度が一定化するとー風はおさまる. また,電車がブレーキをかけてると,今度は後方(後の車両側)から風が流れてくる. なんで?

[Free]

2008/08/05 00:58 | Comments(0)

遊び中

Objective-Cを触れてみようと雰囲気でチラチラいじってみた.

あーあ,と思っていたら

-(void)hoge {
    [self release];
    [self dealloc];
}

-(void) dealloc {
    [super dealloc];
}

てな関数を作って呼び出していた! これ,release だけでいいんだね.(周りのコード見せれないからなんとも説明しにくいのですが…). フリーズしてしまっていたのは,deallocメソッドが2度呼び出されてしまっていた. release がされたときに その参照カウンタがゼロになると自動でdeallocを呼び出しているので,deallocが2回目のときにフリーズ!

まぁ〜完全に雰囲気過ぎましたね. Objective-Cおしえてぇ〜

[Objective-C] [iPodTouch] [iPhoneSDK]

2008/07/29 00:59 | Comments(0)

ENDLESS X 始動

今までのENDLESS X (homelinux.com)は,ルータがぶっ飛んでしまったのでサヨナラをした.別の形で復活する可能性はあるかも.

というわけで,最低機能しか実装していないBLOGですがこちらで地味にやっていこうかと思っております.一応iPhone/iPodにも対応しているようなしていないような….とりあえず,未実装がたっぷり☆

こちらのBLOGは,Django on GAEとなっちょります. GAEは,色々と制限があってくじけそうになったときもありましたよ…. ライブラリ,データストア,データ投入,などなど

てなわけで,Feed受け取って下さってた方やBookmarkしてくださっていた方はお手数ですがーFeed/Bookmarkしなおしてください. よろしくお願いいたします.

[Information]

2008/07/16 16:09 | Comments(0)

暇を持て余した神々の遊び 4回目

昨日もやってくれました. 前回のグダグダ感はなくよかった!笑わせていただきます. てーか,俺どんだけコレ好きやねん!!

わっるぅ〜い神々ですなぁ〜.

[comedy]

2008/06/12 10:24 | Comments(0)

GAEを触る 多対多どうするの?

最近技術的なことをやれていなかった….(何かやらねば,何か書かねば) 今日はちょっとGAEをいじった.(HelloWorldでとまっていたもんで…) 何かサービスを….とはいかずとりあえず,こちらのBLOGを移行するようなイメージでGAEに慣れようかと.

さっそく,迷ったのが多対多!Blogのタグつけ機能を!と思ったのですが,DjangoのManyToManyの同じもんがないのかなぁ〜? ○○Propertyって色々あるんだがーどれが適当なんでしょ? 正しい道なんてわからないのでーとりあえず触ろうよ!(その後,どなたからかアドバイスもらおう!ははは)

てーな,感じでスタートしたもののーめっちゃ中途半端な形で終わってしまった. 作りたいものは,Blogのタグづけなんですが,GoogleBoomarkなどのタグづけのようにカンマ区切り(自分はスペース区切り)などのテキスト入力に対応したいなぁ〜と.

多対対に関しては,中間テーブルを自分でこしらえちゃった.

class Tag(db.Model):
    """ タグモデル(抜粋)"""
    name         = db.StringProperty()

    def __unicode__(self):
        return self.name

class Blog(db.Model):
    """ ブログモデル(省略)"""
    index        = db.StringProperty()
    title        = db.StringProperty()
    content      = db.TextProperty()
    created_at   = db.DateTimeProperty(auto_now_add=True)
    updated_at   = db.DateTimeProperty()
    is_published = db.BooleanProperty(default=True)
    is_active    = db.BooleanProperty(default=True)

    # ここでタグのリストゲットしようかと
    def tags(self):
        blog_tags = BlogTag.gql(
            "WHERE blog = :blog", blog = self
        )
        return [blog_tag.tag for blog_tag in blog_tags]

class BlogTag(db.Model):
    """ 多対多処理用に用意したモデル """
    blog         = db.ReferenceProperty(Blog)
    tag          = db.ReferenceProperty(Tag)

さて,BlogTagモデルにどうやってデータ(key)を突っ込もうかしら…とりあえず,ModelFormを作ろう.

class MultiTagField(forms.CharField):
    """ タグ入力フィールド作成 """
    def clean(self, value):
        values = []
        for name in value.replace('\u3000', ' ').split(' '):
            if len(name):
                tag = Tag.gql("WHERE name = :1", name).get()
                if tag is None:
                    tag = Tag(name = name).put()
                values.append(tag)
        if not len(values):
            raise forms.ValidationError(_('This field is required.'))
        return values

class BlogForm(djangoforms.ModelForm):
    """ Blogモデルフォーム """
    tags = MultiTagField()

    class Meta:
        model   = Blog
        fields  = ('index', 'title', 'content', 'tags')
        exclude = ('created_at', 'updated_at', 'is_published', 'is_active')

ほんで,これに対して,viewから登録…

def create_object(request):
    """ Blog作成部分の一部 """
    form = BlogForm(request.POST or None)
    if request.method == 'POST':
        if form.is_valid():
            # form.save()
            cleaned_data = form.cleaned_data
            index = cleaned_data['index']
            title = cleaned_data['title']
            content = cleaned_data['content']
            blog = Blog(index=index, title=title, content=content)
            blog.put()
            # タグ登録 ここでやるのひどいね.
            for tag in cleaned_data['tags']:
                blog_tag = BlogTag(blog = blog, tag = tag)
                blog_tag.put()
            return HttpResponseRedirect(
                reverse(
                    'blog_object_detail', kwargs={"key" : blog.key()}
                )
            )

ん〜「とりあえず,とりあえず」なんてやっていたらー完全に中途半端になってしまった…. このままじゃたぶん,編集画面とかエラー画面とかのときに対応できてないよね.ふふふ

Python温泉までにもうちょっといじっておかねば!

[Django] [GoogleAppEngine] [Python]

2008/06/08 02:55 | Comments(0)

Hits:118 ... « 1 2 3 4 5 6 7 8 9 10 »