jQueryを使うと入力欄のフォーカスの色づけが簡単。

って何のことか分からないか。
mixiとかでも実装されているけど、テキストフィールドにフォーカスが当たると薄く背景色が付くUIがあるでしょ。あれの実装は超簡単。

以下のコードをどっかに書いておけばすべての入力欄に適用される。
color_targetの部分を工夫すれば限定的な適用もできる。

$(document).ready(function() {
    var color_target = "input,textarea,select,radio";
    $(color_target).focus(function() {$(this).addClass("highlighted_form")})
    $(color_target).blur(function() {$(this).removeClass("highlighted_form")})
});

メジャーモードの切り替え

emacs編集中にメジャーモードを切り替えたいことがある。
そんなときはこれ。

例1:html-modeに切り替え

M-x html-mode

例2:例1の方法で切り替えたあとで元に戻る

M-x normal-mode

で、どんな時にこれをしたいかというと、HTML編集中にJavaScriptモードにしたいときなんだ。俺のemacsに設定されているHTMLモードはJavaScriptの扱いがタコなので、まとまったJavaScriptのコーディングをするときはM-x javascript-modeしている。

まともにJavaScriptを扱えるHTMLモードを入れればいいのだろうけど、今は妥協。

Ruby on Railsで初期データの登録

テーブルの作成はmigrationで出来る。
初期データとしてつっこんでおきたいデータもmigrationで出来る。

べんり〜

初期データとしてユーザを登録する例:

class InsertInitialMaster < ActiveRecord::Migration
  def self.up
    User.create(:username=>'root',
                :email=>'root@test.com',
                 :password=>'root')
    User.create(:username=>'hoge',
                 :email=>'hoge@bar.com',
                 :password=>'bar')
  end

  def self.down
    #必要ならば上記データを削除するコードを書いておこう。
  end
end

jQueryでラジオボタンの値を取得する例

<input type="radio" name="hoge" value="1">
<input type="radio" name="hoge" value="2">
<input type="radio" name="hoge" value="3">

上のようなラジオボタンがある時に、選択されているvalueを取得する方法。

$("input[name=hoge]:checked").val()

本当はもっと良いやり方があるのかもしれないけれど、体系的に勉強している時間がない。
今作っているサービスの完成のためにとにかく動く状態を目指しているので、多少の無理矢理感は許容。

Google App Engineで携帯のGPS情報を記録してみる。


Google App Engineにめでたく登録されたので、ちょっと作ってみたかったツールを作ってみた。まだ機能もほとんどなくて「サンプル」感は拭えないが、なんとなく垢抜ければ使えそうな気もするので、公開してみる。

screenshot
http://basyo.appspot.com

簡単に説明すると出来ることは……

  • 携帯電話から位置情報+コメントを登録
  • パソコンから地図上に位置情報を見ることができる
  • (公開設定になっていれば)他人の情報も見ることができる

なんとなく発展させる方向としては

  • 友達の設定などを設けて、友達にのみ位置情報を公開できるようにする(これで旅行中の実況中継や待ち合わせに使ったり、位置情報付きのTwitter的な使い方を期待している)
  • 少し匿名性を高めたい(今はGoogleアカウント丸出しだから)
  • 使う人が多ければ「近くにいる人にコメントを送る」機能が楽しいかも

大体こんな感じのことを考えている。

現状、DoCoMoiエリア機能(簡易GPS的なもの)とauにしか対応していない。DoCoMoは俺が持っているから良いのだけど、au含め他のキャリアは試せないのだ。auは知り合いのを借りて対応したが、テストしきれずバグが多い。

携帯系のサービス作っている人はここんとこどうしてるんだろう?
あ、あれか、俺が友達少ないからいけないのか。

Google App Engine Teamからメールが来た

Google App Engine Teamからメールがきました。

あのサービスにサインアップしようとSMSを送ってもうまくいかず、なんどもトライしているうちに「これ以上SMSはおくれません」なんてエラーが出るようになってしまったのです。それを(大胆にも)Google App Engineへメッセージとして送ったところ、「紹介しといたぜ」っていうメールがきました。

でも、あれは自動送信っぽかったなぁ。
返信したらエラーで帰ってきたもんなぁ。

Pythonのインスタンス変数

追記:2009/7/14
以下の内容だとクラス変数とインスタンス変数を同列に語っており、適切ではありません。
分かっててやるのなら良いけど、まずは以下のURLに書かれた指摘をご覧頂き、各自ご判断ください。
おれの不勉強によるものです。ご指摘ありがとうございました>hirataraさん

http://d.hatena.ne.jp/hiratara/20090630/1246332064




俺はPython初心者です。文化も、歴史も、流儀も分からない。だけど、下の書き方は許せない。

class Hoge:
  def __init__(self, name):
    self.name = name

  def doSomething(self):
    print self.name

なにが言いたいかというと、Hoge.doSomething()の中で使われているself.nameってのが何を意味しているのかわからん、ということなんだ。これは短いサンプルソースだし、self.nameに値を代入しているのが、__init__内だから、まだいい。だけど、長いコードの、どっかのメソッド内で突然インスタンス変数を作り出して、別のメソッドで利用されてしまうと、どこで何が宣言されているのかが分からなくなるんだ。

やっぱり、インスタンス変数(クラス変数も!)は先頭で宣言しないと気持ち悪い。だから、初期化の必要がなくても以下のように書いておく。

class Hoge:
  #名前
  name = None

  def __init__(self, name):
    self.name = name

  def doSomething(self):
    print self.name

それとも、この書き方が当たり前?
スクリプト言語って嫌いじゃないけど、宣言はしようぜ、って思う。