2012/07/04

[iGoogle]終了!!

ついにこの日が来たかー。

on November 1, 2013, we will be retiring iGoogle.

via:An update on iGoogle
ネットは、よく「インタラクティブだ」、「インタラクティブだ」と騒がれていたが、本当に「インタラクティブなの?」という疑問を抱きながらネットサーフィンしていたときに、ちょうどこのサービスが当時リリースされました。

これこそ、インタラクティブだと思い、数々のiGoogle gadgetを作ってきましたが、終了と聞くとなんだか感慨深いものがあります。

gadget apiは、open socialに受け継がれ今なお止まることなく進化しているので、今後は、open socialに期待していこうかなと。

2012/07/03

[YouTubeAPI]videoidに紐つくfeed情報

YouTubeのvideoidに関するfeed情報がほしかったので、取得方法を調査
で、答えがこちら、

What does the data returned by the API look like
Open these URLs in your browser to find out:

http://gdata.youtube.com/feeds/api/videos/gzDS-Kfd5XQ?v=2&prettyprint=true
http://gdata.youtube.com/feeds/api/videos/gzDS-Kfd5XQ?v=2&prettyprint=true&alt=json
http://gdata.youtube.com/feeds/api/videos/gzDS-Kfd5XQ?v=2&prettyprint=true&alt=jsonc
Notes:

gzDS-Kfd5XQ is the Id of the video.
I recommend the 3rd one because it has the smallest footprint

via:How to get thumbnail of YouTube video link using YouTube API?
これ、どうやって発見したんだろうと、公式ガイドを探していたら、Reference Guide: Data API Protocolにありました。

やっぱりよく読まないとだめだなー。

2012/07/02

[django][Python]render_to_responseについて

django1.4の環境下ではじめての Django アプリ作成、その 4をそのまま実装するとバグではまってしまいました。

どうやら問題となっているのは、下の箇所

return render_to_response('polls/detail.html', {
    'poll': p,
    'error_message': "選択肢を選んでいません。",
})
色々と調べた結果、「はじめての Django アプリ作成」チュートリアルをやったメモ その4に行き当たり、下のような書き方にすれば、エラーがとれました。
return render_to_response('polls/detail.html', 
    {'poll':p,'error_message': u"選択肢を選んでいません。".encode('utf-8')},
    context_instance=RequestContext(request))
ってか、なんで、context_instanceがいるのだろうか?

ちょっとなぞが残ったままに終わりました。

2012/07/01

[Python][django]adminのURLについて

はじめての Django アプリ作成、その 2を読んでみると、adminページへのマッピングが下のようになっています。

from django.conf.urls.defaults import *

# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    # Example:
    # (r'^mysite/', include('mysite.foo.urls')),

    # Uncomment the admin/doc line below and add 'django.contrib.admindocs'
    # to INSTALLED_APPS to enable admin documentation:
    # (r'^admin/doc/', include('django.contrib.admindocs.urls')),

    # Uncomment the next line to enable the admin:
    (r'^admin/(.*)', admin.site.root),
)
が、実際に、django1.4で試すとadmin.site.rootではなく、admin.site.urlsでもいけます。(でふぉ)
from django.conf.urls import patterns, include, url
from django.conf.urls.defaults import *

# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    (r'^polls/$', 'polls.views.index'),
    (r'^polls/(?P\d+)/$', 'polls.views.detail'),
    (r'^polls/(?P\d+)/results/$', 'polls.views.results'),
    (r'^polls/(?P\d+)/vote/$', 'polls.views.vote'),
    # Examples:
    # url(r'^$', 'testsite.views.home', name='home'),
    # url(r'^testsite/', include('testsite.foo.urls')),

    # Uncomment the admin/doc line below to enable admin documentation:
    # url(r'^admin/doc/', include('django.contrib.admindocs.urls')),

    # Uncomment the next line to enable the admin:
    url(r'^admin/', include(admin.site.urls)),
)


2012/06/30

[Python][django]model作成時のラベルについて

はじめての Django アプリ作成、その 1で下記のような記述がありました。

from django.db import models

class Poll(models.Model):
    question = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')

class Choice(models.Model):
    poll = models.ForeignKey(Poll)
    choice = models.CharField(max_length=200)
    votes = models.IntegerField()
DateTimeFieldメソッドの引数になっている「date published」ってなんぞや?

リファレンスを調べてもわからなかったのですが、いろいろさわっているうちに、これは、adminページで表示されるラベル文言であることがわかりました。

デフォルトでは、変数名になるのですが、独自にカスタマイズしたい場合に、この引数に設定すればおkです。

なんだかわかってすっきりしました。

2012/06/28

[Python][django]sqlite3の設定時の注意

setting.pyファイルでDATABASESの設定ができるのだが、sqlite3を設定する場合は、ENGINEキーの設定もそうだが、NAMEキーの設定も注意したい。

例えば、windowsで設定する場合は、下のようになる。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': 'C:/Django-1.4/testsite/database/test.sqlite',
        'USER': '',
        'PASSWORD': '',
        'HOST': '',
        'PORT': '',
    }
}
要注なのだが、windowsの場合でも、NAMEキーのディレクトリ設定は、「\」(エンマーク)ではなく「/」であるところ。

「\」にしてしまうと、正常終了しないので、気をつけたい

2012/06/27

[Python][django]タイムゾーンと言語設定

djangoのタイムゾーンと言語設定はどうすればいいのだろうか?
settings.pyを見ると、TIME_ZONEには、
http://en.wikipedia.org/wiki/List_of_tz_zones_by_nameを見ろと書かれていたし、同様に、LANGUAGE_CODEに関してはhttp://www.i18nguy.com/unicode/language-identifiers.htmlを参照してほしいとあったが、列挙されているデータを見るのがめんどくさくなってしまったので、あえてぐぐることに。

タイムゾーンと言語を日本に設定
settings.TIME_ZONE = 'Asia/Tokyo'
settings.UAGE_CODE = 'ja'

via:Djangoアプリ作成手順
なるほど、上のように設定すればいいわけですね。

2012/06/26

[Blogger]I/O Liveを貼り付けてみる

「I/O Live」と呼ばれるこの新ツールは、テキスト入力を「Google+」に依存している。Google+アカウント上で投稿したものが、同ウィジェット上に表示される。ほかのテキスト入力方法はない。

via:グーグル、「Google I/O」カンファレンス用のライブブログツールを提供
というわけでさっそく下に貼り付けてみた。

現状、これだけだと、何が便利なのかがわからない。

そもそも、ブログ上で、このようなバーツを貼り付けたところで、有効活用されるのだろうか?

YouStreamでも、実際に、そのページに訪問して、コメントを残すことが多いだろうし。

結果がどうなるのか非常に気になる。

2012/06/25

[Objective-C][iOS]unknown type name

確実に、import文でクラス定義をインポートしているのに、なぜかエラー??

どうしてかなーっと思ってぐぐったら答えがありました。

This problem happen to me once.

I was importing the "APPDelegate.h" in my h file and in my APPDelegate.h I was importing the file too (it shouldn't be a problem but...)

What I did: I changed the Import from my own .h to .m and it worked :)

via:unknown type name in objective c
どうやら、AppDelgateファイルをインポートしていたのが原因のようです。

確かに削除したら、うまくいった。

以降から気をつけたいですね。

2012/06/24

[Python]PATHを通す

windows環境下で、pythonを立ち上げる場合に、毎回、毎回、python.exeがあるところまで、ディレクトリを移動させて、pythonとコマンドを打つのはめんどい。

そこで、pythonと打っただけで、起動するように、pathの設定をしました。

設定方法は、環境変数PATHの設定を読みながら、「環境変数」ボタンを押して、PATH変数に、python.exeまでのディレクトリを入ればおk

これで、次回以降困ることはありませんね。

2012/06/23

[ゲーム]ガーディアンクルスを始めました

スクエニの最新ソーシャルゲームのガーディアンクルスをはじめました。




理由は、わかりませんが、とにかくはまっています。

新規登録時に招待ID SF53563 を入力するとお互いにレアカードが貰えますので、もしご興味がある方は、app storeより無料でダウンロードできますよ。

2012/06/22

[GoogleAppEngine][Python]DATETIMEについて

GoogleAppEngineを使って、gqlを発行する際に、WHERE句にDATETIMEという関数を使って指定することができる。

で、どうやら、マニュアルを読んでみると、こんな感じでいけちゃうようだ。

WHERE hoge < DATETIME(2012,6,2,2,4,6)
と同時に、文字列のような形で、
WHERE hoge < DATETIME(2012,06,02,2,4,6)
と0を付与しても、正常動作するようだ。

これ、すっげー便利。

2012/06/21

[iOS][Objective-C]NSNotificationCenterのpostNotificationNameでパラメータ送信

今まで、NSNotificationCenterクラスのpostNotificationNameメソッドで登録されているメソッドをコールすることができたのですが、その際に、今回、パラメータも送りたい場合、どうすればいいのだろうか?

iPhoneSDKというかObjective-Cでコールバック [iphone]
によると、単純にobjectキーにパラメータを付与すればいけそうだ。

ただ、その際に、受け取る側はどうすればいいのだろうか?

答えは、単純、同エントリーにはこのように書かれていた。

// ViewA.m
- (void) transitView:(NSNotification*)note {
// argを取り出す
id obj = [note object];
}

via:iPhoneSDKというかObjective-Cでコールバック [iphone]
確かに同じやり方でできた!!

これで、パラメータの扱い方にも困らないぞと。

2012/06/20

[iOS][Objective-C]UIImageViewでtouchesBeganがコールされない件

昨日の記事につづいて、実は、UIImageViewでも、同様にtouchesBeganがコールされず。。。

原因を調査したところ、userInteractionEnabledをYESに設定すればタッチを感知してくれました。

というか、デフォルトでYESでもいいと思うんだけど。

なぜ、この仕様になっちゃっているのだろうか?

2012/06/19

[iOS][Objective-C]UIScrollViewでtouchesBeganがコールされない件

なるほど、そういうことだったの、単純だな。

UIViewControllerのviewプロパティーにUIScrollViewのインスタンス変数を設定しても、なぜか、UIViewController上ではtouchesBeganがコールされず。。。

原因を調査したところ、下記を見つけた

ただし、UIScrollviewの上では効かないんですよね。

UIScrollviewの上をタッチすると呼ばれないんです。

・・・省略・・・
こんな感じでUIScrollViewを継承した独自のクラスを作って、

・・・省略・・・

via:UIScrollViewでタッチを感知する為には。。
つまり、UIScrollViewを継承させたクラスを作れば解消するとのこと。

実際に試したら、うまくいきました。

ってか、なぜ、そうなっちゃっているの?www

2012/06/18

[iOS][Objective-C]NSStringのformatについて

NSStringのstringWithFormatメソッドやNSLogなどを使ってフォーマットした文字列を出力するときがありますが、そもそも、NSStringを設定したい場合は、どうすればいいのだろうか?

String Format Specifiersを読むと、どうやら、「%@」でいけるようだ。

結果的にこうなる。

NSLog("this is %@",@"hoge");
実行した結果、「this is hoge」と出力されました。

NSStringはしょっちゅうデバッグを行なう必要があるので、これは便利ですね。

2012/06/17

[GoogleAppEngine][Python]gqlのBoolean値について

Google App Engine上でqueryを発行するときに、gqlというものを使います。

その際に、他のsqlと同じようにクエリーでブーリアンを使うことができるのですが、その方法を調べました。

GQL リファレンスを見ると、「TRUE または FALSE」と書かれていたので、単純に、

WHERE hoge = FALSE
または、
WHERE hoge = TRUE
で発行することができました。

2012/06/16

[本]Google Analyticsではじめるテストマーケティング

読了
Google Analyticsではじめるテストマーケティング
Google Analyticsではじめるテストマーケティング
高橋 直樹

第1章 Webサイトを使いこなして売上げを伸ばそう!
1-1 あなたのWebサイトは本当に役立っていますか?
1-2 Webマーケティングを成功させるポイント

第2章 Google Analyticsでできること
2-1 Google Analyticsは無料で高機能!
2-2 Google Analyticsを導入する
2-3 本格的に使う前の準備
2-4 Google Analyticsの主な機能

第3章 Google Analyticsの基本的な使い方
3-1 「マイレポート」で人気ページを知る
3-2 コンバージョンを設定する
3-3 情報を解析する「期間」を設定する
3-4 基本情報を確認する
3-5 複数項目の掛け合わせでお客様のニーズを知る
3-6 同業他社サイトと比較する
3-7 モバイルサイトを計測する
3-8 解析した情報を見やすくする
3-9 テストマーケティングの流れ

第4章 訪問者数を増やす方法
4-1 どんなお客様が訪問しているかを知る
4-2 リアル広告の効果が高い顧客を探り出す
4-3 AdWordsを使って訪問者数を増やす

第5章 直帰率・離脱率を下げる方法
5-1 直帰されてしまっているページを見つける
5-2 直帰率の高いページを改善する
5-3 離脱を少なくする

第6章 コンバージョンをアップする方法
6-1 コンバージョンが上がらない原因
6-2 ニーズをつかんでいるかを確認する
6-3 ページ構成や入力フォームを確認する
6-4 コンバージョンに至るまでにボトルネックがあるか確認する

第7章 訪問頻度をアップする方法
7-1 メールマガジンを発信して集客する
7-2 リピーターに再訪してもらう方法

第8章 Twitterやリアル販促と連動した集客方法
8-1 Twitterを使ってWebサイトへ集客する
8-2 リアル営業とのクロスメディア施策

via:目次
最近、本ブログの解析を始めるようになり、だいぶ前からGoogle Analyticsを導入しているものの実際に使いこなすところまではいっていなかったので、amazonで単純に検索結果の上位にヒットした本書を手に取りました。

結論からいうと非常にわかりやすい。

最初の導入の手続きから使い方まで初心者向けにわかりやすく解説していると思いました。

ただやはり読む前から想像していた通り注意してほしいのは、PVやセッションの具体的な改善方法については書かれていない。あくまでも指針であるが、それだけでも十分だと感じた。

何点か気になることがあったのだが、twitterからのアクセス分析のところで、これって他の短縮URLサービスからきた場合も、同じように計測できるのだろうか?

本書ではURLの掲載がないし、twitterのツイートされている画像もなかったので、怪しいところがあると感じた。

コラムで「mixiは若者向けの会社に強い」とあったが、果たして本当だろうか?
greeじゃーないのだろうか?
ってか、mixi??
ミクシィに迫る、フェイスブックの日本アクティブユーザー数が1千万人超える
なんていうエントリーもあるぐらいだから、実際には、facebookに注力した方がいいのかなと思ったり。
まー出版されたのが、2011年の3月なので、しょうがないと言えば、しょうがないのかも。

メルマガやtwitterからのアクセス解析を紹介しているのだから、facebookのlikeボタンからのアクセス解析方法も紹介してほしかったなと。

最後に、「3-1 「マイレポート」で人気ページを知る」で「利用状況の数値を確認する」のぐだりで、新規セッションの割合計算で10173人のお客様のうち57%にあたる約5800人までは理解できたが、その次の、直帰率の47%を使って4770人のお客様と2770人の新規お客様と結論づけていたが、この数字は、直帰率ベースでみた場合の、来店お客様とそのうちのお客様という認識でよかったのだろうか?

数式が書かれていなかったので、理解できなかった。

以上をトータルとして考えてもやはり、やはり入門書として本書はおしである。

2012/06/15

[iOS][Objective-C]国際化対応1 国名を取得する

iOSアプリを作る上で一つのキーワードになるのは、アプリを使っていただいている方の言語環境や国。

国名を取得することによって基準点からどのぐらい離れているのか計測することが可能になるので(もちろん別の方法もあるのですが)、取得方法について調べてみました。

Cocoaを使わずにFoundation.Frameworkを使って取得したかったので、iOSのNSLocaleを見ながら調査。

で、結論として、以下の内容で落ち着きました。

NSLocale *locale = [NSLocale currentLocale];
id countryCode = [locale objectForKey:NSLocaleCountryCode];
if([countryCode isKindOfClass:[NSString class]]){
NSLog(@"This is NSString so country is %@",(NSString*)countryCode);
}
実行結果は、
This is NSString so country is JP
と表示されました。

これで国別に処理を行うときに困らなさそうです。

2012/06/14

[iOS][Obective-C]UIApplicationのdelegateを取得する

UIApplicationDelegateのプロパティー取得したい場合は、どうすればいいだろか?

答えはここにありました。

DoTodoAppDelegate *appDelegate = (DoTodoAppDelegate *)[[UIApplication sharedApplication] delegate];
self.managedObjectContext = appDelegate.managedObjectContext;

via:AppDelegateの参照を得る方法
この方法は、超便利。

メモ、メモ