0

さよなら2011

さて恒例の今年の目標の総括。

人と会いまくる
これといった理由はないけど、あまりできなかった気がする。

朝早く起きる/会社を早くでる
7月頃から超達成。

プライベートワークは変な構成で作る
node.jsやobjective-c等を深堀りできたのは良かったけど、物足りない。
スマホアプリの開発とsymfonyは自分には合ってないと改めてわかった一年。

2chまとめサイトは(あまり)みない
1%くらいは減った気がする。

どうすれば儲かるかどんなサービスを作れば人気が出るかを考える癖と時間を作る
多少はできた気がするけどもの足りず。

技術書を読む
あんま読んでないわー。
ミステリーばっかり読みすぎた。

気軽にコードを書く
wimax購入してから少しは気軽に書くようにはなったかな。

たまに夜走る
年に3回くらい走った…

子供にいろんな経験をさせる
天体観測もできたし、川遊びにもかなり連れていけた。
これはまあ満足。

この年になると一年一年が劇的に変わるわけではないけど、緩やかではあるけど良い方向には向かったと思う。

知り合いが使える程度いいやと思ってたツイエバが20000ユーザーを超えようとしているし、おかげでEvernoteクラスタの人とも多く知り合えるようになった。これはいい収穫になった。

家も買った。
嫁も息子も喜んでいるのできっとこれはいい買い物だったはず。

では良いお年を。

0

evernoteAPIをphpで使う(notestore)

前回はユーザーデータを扱うuserstoreを使ったけど、今回はノートを扱うnotestoreというモジュールを使う方法です。「notestore」となってるけど、実際はuserstoreでできる事以外はnotestoreでできます。
ノートやノートブックを操作するのは勿論、タグに関する事、同期に関する事、共有に関する事もnotebookに属します。

■ユーザーデータと同様、notestoreのインスタンスを生成します。
$noteStoreTrans = new THttpClient('sandbox.evernote.com', 80, '/edam/note/' . $_SESSION['shardId'], 'https');
$noteStoreProt = new TBinaryProtocol($noteStoreTrans);
$noteStore = new NoteStoreClient($noteStoreProt, $noteStoreProt);

userstoreとTHttpClientの引数がuserstoreと少し違う。
/edam/user/が/edam/note/(shardId)というものに変わる。
shardIdはgetAccessTokenでoauth_token、oauth_token_secretと同じようにedam_shardという名前で取得できてるはずなのでsessionにでも入れとく便利です。
値は永続的なものなのかユーザーによってどう変わるか分からないけど自分の環境はずっと「s1」が返ってくる。

あとはnoteStoreのインスタンスでごにょごにゅする。

noteStoreに64ものサービスがあるので代表的なところだけ書きます。
■ノートブックを取得
まず公式のサンプルにもあるlistNotebooksを使う。
$notebooks = $noteStore->listNotebooks($_SESSION['accessToken']);

戻り値はオブジェクトになっているので、プロパティにアクセスして情報をとる形になります。

foreach ($notebooks as $notebook) {
// ノートブックの名前
echo $notebook->name;
// ノートブックのユニークなID。ノートブックの名前が変わっても変わらない。
echo $notebook->guid;
}

■ノート検索
findNotesとedam_notestore_NoteFilterを使って検索をする。
以下の例は「ほげ」と書かれたノートを10件取得するというもの。
$filter = new edam_notestore_NoteFilter();
$filter->words = "ほげ"; // 検索したいワード
$noteList = $noteStore->findNotes($_SESSION['accessToken'], $filter, 0, 10);

検索したいワードは普段Evernoteの検索で使うものと同じです。
普通の文字列からsource:やtodo:を使った高度な検索も使えます。
参考: Evernoteを自由に検索するための10の条件

ループで回してメタ情報を取得していく。
foreach ($taskNotes->notes as $note) {
// 属してるノートブックのユニークID
echo $note->notebookGuid
// ノートのユニークID
echo $note->guid
// ノートのタイトル
echo $note->title
}

ただこれだと肝心のノートの内容が取れない。
ノートの内容を取るには別のメソッドをサービスを利用する。

■ノートの内容を取得
$contents = $noteStore->getNoteContent($_SESSION['accessToken'], '2f7rfbc8-0d46-4bf9-91f2-2da715cs99e5');
第二引数はノートのユニークID(guid)が入る。戻り値はstring。
内容はXHTMLに似たENMLで記述されているので、後はPHP Simple HTML DOM Parserとか使ってパースしてやる。

ENMLはこんな形になってます。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE en-note SYSTEM "http://xml.evernote.com/pub/enml2.dtd">
<en-note><div>ほげほげ</div>
<div>テスト</div>
<div><en-todo></en-todo>やること1</div>
<div><en-todo></en-todo>やること<span style="color: #ff6600;">2</span></div></en-note>

0

大阪西梅田で仕事のできるカフェ

夏ごろに急に目覚めて、勝手にフレックスで早め出社&早め退社を始めてみたところ、仕事の効率も上がるし、体調も良いし、夜起きてる息子に会えるしで完全にこの生活にはまってます。
もちろん朝が辛い時もあるけど、このメリットを享受できると思うと起きれてしまう。以前は典型的な夜型人間だった自分としては、この早め出社が続いてるのが不思議でならない。

最近は、wimaxに加入した事もあって会社付近のカフェで仕事をして出社&退社なんておしゃれな人間にしかできないと思ってたことをやったりしてます。
と言う事で、大阪西梅田付近で仕事しやすいカフェ情報です。
個人的な感想なんで悪しからず。
たぶん続編がある。

好みの場所は以下の通り。

  • おしゃれ過ぎない。
  • おっさん臭過ぎない。
  • 静か。
  • wifiが入る。
  • 禁煙。

タリーズ コーヒー 堂島新藤田ビル店
営業時間 7:30〜20:00
会社に近いので気軽に行ける。
閉店が早い。
吹き抜けで開放感があるのはいいが寒い。
wimaxで問題なくネットへの接続ができる。
学生は少なくサラリーマンが大半のせいか喫煙席の方が広い。
コーヒーは普通。(¥300)

サンマルクカフェ 大阪堂島店
営業時間 7:00〜22:00
1階と地下1階があって地下1階が禁煙。但しwimaxでネットが繋がらない。
良くも悪くも携帯(softbank)も繋がらない。
こんな感じで外の世界と遮断されるので本読んだりアイデアを纏めたりする時には最適。
ただこの地下、音が響く。
声のでかい人間が1人でもいると、店内がなんとも言えない雰囲気になる。
チョコ黒はうまいけど、コーヒーは残念。
サンマルクは「コーヒー ブラック(¥190)」と「コーヒー ブレンド(¥200)」があり、
「ホットコーヒー」と頼むと「コーヒー ブレンド」がでてきます。
ブラックで構わない場合はちゃんとブラックとたのんだ方がいいです。

ノードカフェ
営業時間 7:30〜23:00
第三ビルの地下2階にあるカフェ。
wimaxが入らないもののwifiが使えるので便利。
おしゃれ過ぎずダサ過ぎず雰囲気はいい。
ソファーもあるしPC席と言われる壁に面した席もあるしで色んな使い方ができる。
昼過ぎはヤングが多いらしく騒がしくなるらしいけど、朝8時前後は快適。(いや、テレビがうるさかった。このテレビ角度的に大半の人が見えてないのではと思う。)
おいしいと言われるこの店のベーグルはこの時間は提供されていない。
場所を選ばなければ喫煙席から煙草の煙がくる。
コーヒーは意外?とおいしい。(¥200)