Hatena::ブログ(Diary)

ゲシュタルト崩壊間近

2011-07-08

ブログ移行します

お久しぶりです。

この度、wordpressでブログをつくったので、はてなから移行しようと思います。

よろしくお願いします。


ゲシュタルト崩壊間近 - http://alice.so-far.biz

2011-07-04

shareSRC Version2 Beta リリースしました!

とうとう、shareSRC Version2 Betaがリリースです。

以前のダサいデザインや使いにくいUIなどがよくなった気がします。多分。



shareSRC - http://sharesrc.appspot.com



Version2の新機能

  • 1,コードレビュー
    • 共有されているコードにレビューが書けるようになりました。
    • 某大手掲示板のように「>>数字」と書くと、その数字の行に対してコメントができます。
    • ユーザーIDは好きな名前で結構ですし、匿名でも結構です。
  • 2,Good!ボタン
    • 某f◯cebo◯kの「いいねボタン」と同じようなもので、
    • コードにイイなとおもったら押してください。
  • 3,検索機能
    • v2では「タイトル検索」、「タグ検索」、「フレーズ検索」の3つの検索が行えます。
    • フレーズ検索では、コードの中を検索することができます。
    • たとえば「<div id='test'>」なんていう検索もできます。
  • 4,CUIクライアント
    • いちいちファイルをコピーしてアップロードするのが面倒、という方へ。
    • このクライアントを使えば、楽にshareSRC上へアップロード出来ます。
    • きちんとタグもつけられます。
    • ダウンロードもできます。トークン或いはタイトルでコードをダウンロードします。
    • CUIクライアントのダウンロードはaboutページからできます。



新機能はざっとこれくらいです。

あとはコードページが見やすくなったりしています。

v1ではコードにつく付随情報は「タイトル」、「トークン」、「どこからフォークされたか」という情報だけでしたが、

v2では「タイトル」、「トークン」、「作成された日付」、「タグ」、「レビュー件数」、「どこからフォークされたか」という多くの情報をコードが持っています。

とにかく使ってみてください。




これから追加していきたい機能

これから追加したい機能は、forkされている流れがみえる「forkツリー」などです。

これ以降、随時開発を続けてもっと多くの機能をつくっていきたいと思っています。




なお、バグをみつけた場合は、@Alice1017へリプライいただくか、

このブログのコメントにてお願いします。



shareSRC - http://sharesrc.appspot.com

2011-06-27

jQueryで$("form").submit()が効かなくなる

先週くらいから、jQueryで$("form").submit()が動かなくなるということがおこっていました。

たったいま、正常に動き始めましたので、メモ & 他の人のために書きます。


効かなくなる理由

自分はinput:buttonでsubmitボタンを書き、他のinput要素が空でないかをjavascriptで確認したあと、submitするという処理をかいていたのですが、そのinput:buttonのidがsubmitだったのです。


これが理由でした。

ちなみに、idではなくclassがsubmitだった場合は正常に動きます。(多分。というかclassで書いてたときに動いてたので。)



というわけで、jQueryの$("form").submit()が効かなくなったら、ボタンのidを確かめましょう!

2011-06-19

GAEのListPropertyについて

今日、現在絶賛開発中のShareSRCVersion2にタグ機能を実装しました。

そのときに使ったのがListPropertyで、なかなか面白いので紹介します。


クラスでデータストアモデルを設計するときには、

class TestData(db.Model):
       namelist = db.ListProperty(item_type=str)

このような書き方をします。

item_typeはリストの中身の型。

つまり、

namelist = ["apple","android","docomo"]

というような文字型のリストであればitem_typestrになります。


データを取り出すときは、db.Query(データストア名).filter()を使って面白いことが出来ます。たとえば…

db.Query(TestData).filter("namelist =", "android")

このように書くと、"android"という値がnamelistにある要素を取得することができます。

つまり、

>>> db.Query(TestData).filter("namelist =", "android").get().namelist
["apple","android","docomo"]

こういうことですね。


これでタグ機能及びタグ検索機能を実装することができます。

タグ検索の場合は、全体のタグをもつ新しいデータストアを設計する必要があります。

class Tags(db.Model):
    Tagname = db.StringProperty()

Tags(Tagname="python").put()

このようにして、たとえばpythonというタグで検索を書けるときには、パラメータかなにかでタグ名をわたして、

tag = self.request.get("tag")
filter = db.Query(CodeData).filter("tags =", tag)
data = filter.fetch( filter.count() )
for item in data:
    print item.title

このようなコードを書けば、pythonというタグがあるコードのタイトルを表示させることができるわけです。


もし、リストの値が数値ならば、filter()メソッドで論理演算子をつかうことができます。

db.Query(DBname).filter("valuelist >", 10)

この場合は、リストの各数値が10より大きいかどうかを調べるfilterです。


詳しくは以下のURLへどうぞ。


型とプロパティ クラス - Google App Engine

http://code.google.com/intl/ja/appengine/docs/python/datastore/typesandpropertyclasses.html#ListProperty

2011-05-22

最近の開発環境の変化について

こんにちは。

最近、僕の開発環境が変わってきたので、報告をしてみます。


ざっと報告すると、

  • 1, Vimerになりました
  • 2, screen使いになりました

これだけです(笑)



僕はMacBookProユーザなのですが、以前つかっていたエディタCotEditorというGUIのものでした。

このエディタは、シンプルですが使いやすく、シンタックスハイライトも多くの言語をサポートしていて、

開発のために使っても申し分ないエディタです。


ですが、このエディタはタブ機能が無く、複数のスクリプトを見ながら作業するということが容易にできません。

これがMacユーザになってからの悩みでした。正直、GUIのエディタを捨ててvimerになるという選択肢がここでもあったのですが、やはりタブ機能がないのと、キーマップを覚えなければいけないことと相まって、なかなかVimに手を伸ばせない状態でした。




で、この僕がVimerになるきっかけになったのがscreenです。



screenとは、GNUによって開発されたフリーな端末多重接続ソフトウェアである。1台の端末や接続したリモートの端末から、全く別々の複数の端末へと同時に接続する事が出来る。コマンドライン上で複数のプログラムを実行したり、シェル上でプログラムを実行させたまま接続を解除したりする時等に非常に役に立つソフトウェアである。

GNU screen - wikipediaより引用


この複数の端末への同時接続が出来ることによって、これをタブ機能と同じように使うことができるのです。


たとえば、一つ目の端末にはPythonスクリプトをvimで開き、

f:id:alicehimmel:20110522111731p:image:w360


二つ目の端末ではHTMLファイルをvimで開けば、

これでもうHTMLファイルを見ながらPythonスクリプトを書く、という作業ができるのです。

僕はまだscreenに慣れていないので使い切れていないのですが、

このscreenでは他にも画面を分割したりできるので、すごくおすすめです。

f:id:alicehimmel:20110522111732p:image:w360



これでscreenの良さに気づき、否が応でもVimerになろうと決意しました。


ここで「なんでemacsユーザにならなかったの?」と思う人もいらっしゃると思いますが、

僕は以前から、十数行くらいのスクリプトはvimで書いていたので、vimに慣れていたんですね。

emacsでもよかったんですが、新しくキーマップを覚えるのに抵抗がありまして。

なのでvimというCLIエディタを選びました。


Vimerになったのには他にも理由があり、vimはプラグインが豊富なんですね。

僕もvimerになろうと決意した時に、二つのプラグインを入れました。

このプラグインのインストールやキーマップで、twitterフォロワーさんにいろいろと教わりました。

キーマップを覚えるのに少し時間はかかりますが、vimは直感的に操作できるのでとても便利です。


いれたプラグインは、

  • 1, smooth_scroll.vim - vimにおいて快適にスクロールするためのプラグイン
  • 2, zencoding.vim - zencodingというHTMLを簡単に書けるようにするプラグイン

このふたつです。

どちらもおすすめです。


vimのプラグインのインストールは、

$HOME/.vim/plugin下に.vimスクリプトを置けば完了です。


screenのインストールは、MacユーザならMacPortsを使ったインストールが早いでしょう。

port search screen などしてからversionが一番高いものをインストールすると良いと思います。


CLIエディタとGNU screenの相性はとても良いので、みなさんもつかってみてはいかがですか?

ここまで記事を読んで下さり、誠にありがとうございました!