Hatena::ブログ(Diary)

poi-poi-capsuleの日記 RSSフィード Twitter

2011-06-07

全然記事更新してなかったw

今は、ガラパゴスリーダーの開発は中断してます。

といっても、まぁ、自分の使うツールだから、メンテナンスはちょくちょくやっていこうかなと思いますが。

現在はiPhoneアプリ制作と並行してWebアプリ制作してます。

世に出せるレベルにまで品質を上げたいところですなぁ。

最近、これらの開発で感じるのは、少人数で開発しても大企業に勝てる世の中になってきたんじゃないかな?と感じる。

iPhoneアプリはひたすらアプリ制作に専念できるし、最近ではGoogleWebStoreなるものまで世に出てきた。

実装したいなぁ、と思う機能もどこかのWebサービスAPI呼び出せば、簡単に実現できるし、ソフトウェアをホストするサーバも用意しなくてよくなった。

余計な作業に囚われず、開発に没頭できるプラットフォームを選ぶ必要が自分にはあるわけで、それを叶えてくれるのが自分の場合、iPhoneアプリ制作だったり、Webアプリ制作だったりする。

今は自分の考えを信じてやり遂げてみようと思う次第である。

RSSリーダーもWebベースのモノに作り替えるかもしれないなぁ。

Google Packaged Appあたりを使って。

2010-11-30

ガラパゴスリーダーもJSONフレームワークを利用するようにした。

はてなブックマークブックマークデータの形式が「JSON」なんですけど、私はこれを自前のプログラムで構造解析してたんです。

それが、あまり保守性が良くないので、JJSONフレームワークを導入することにしました。

そこで、ぐぐってみるとObjective-Cで作られたJSONフレームワークがあるじゃないですか!!!

コレ↓

json-framework - A strict JSON parser/generator for Objective-C - Google Project Hosting

早速、ガラパゴスリーダーに導入したので、作業メモ

1.ここからJSON v2.3.1 (Mac).zipダウンロード

2.ファイルを解凍して「Classes」フォルダの名前をJSONに変更。

f:id:poi-poi-capsule:20101130172459j:image

3.ガラパゴスリーダーのXcodeプロジェクトの適当な位置に先程の「JSON」フォルダをドラッグ&ドロップ。

f:id:poi-poi-capsule:20101130172921j:image

4.ソース修正・実行

使い方はいたって簡単。まず、はてなブックマークのエントリー情報のサンプルを以下に示します。

{

count = 4;

eid = 26928933;

"entry_url" = "http://b.hatena.ne.jp/entry/news4vip.livedoor.biz/archives/51659410.html";

favorites = (

);

"has_asin" = 0;

"original_url" = "http://news4vip.livedoor.biz/archives/51659410.html";

"recommend_tags" = (

"\U6d77\U5916",

"\U3053\U308c\U306f\U3072\U3069\U3044",

2ch,

VOCALOID

);

title = "\U30102ch\U3011\U30cb\U30e5\U30fc\U901f\U30af\U30aa\U30ea\U30c6\U30a3:KAT-TUN\U306e\U65b0\U66f2\U304c\U30dc\U30ab\U30ed\U4eba\U6c17\U66f2\U306b\U305d\U3063\U304f\U308a\Uff1f\U3000\U4f5c\U8005\U300c\U30b7\U30e7\U30c3\U30af\U3059\U304e\U308b\U300d";

"title_last_editor" = "";

url = "http://news4vip.livedoor.biz/archives/51659410.html";

}

この情報をJSONフレームワークによって拡張されたNSStringのJSONValueを使ってtitleフィールドの値を取得してみます。

#import "JSON.h"

-(NSDictionary *)getMyEntry:(NSString*)reciveString 
{
    //格納されたブックマークエントリー情報をパースしてみる
    NSDictionary *result = [reciveString JSONValue];

    //タイトル
    NSString * titleString = [NSString String];
    [titleString setString:[myEntryDict objectForKey:@"title"]];

    NSLog("%@", titleString)
	
    return result;
}

今度はデータを複数持っているrecommend_tagsフィールドの値を取得してみます。

#import "JSON.h"

-(NSDictionary *)getMyEntry:(NSString*)reciveString 
{
    //格納されたブックマークエントリー情報をパースしてみる
    NSDictionary *result = [reciveString JSONValue];

    //おすすめタグ
    NSArray * tagsArray = [myEntryDict objectForKey:@"recommend_tags"];
    [recommendField setObjectValue:tagsArray];			
    for (NSString * str in tagsArray)
    {
        NSLog("%@", str )
    }
}

こんなに簡単に使えるなら、もっと早く導入しときゃよかったですね。(^_^;)

2010-11-28 【書評】「オープンソースがなぜビジネスになるのか」読了

ソフトウェアについてよく友達に聞かれるのが、

フリーソフトってなんで無料で公開してんの?金とったほうが良いじゃん」

って質問。

自分はこの質問に対して明確な答えはないけど、大体以下のような感じで返している

  • 単なる腕試し。
  • 金取ると、使ってくれる人が大幅に減る。できるだけ多くの人に使ってもらいたい。そして反応を見たい。
  • よその金とってるソフトウェアを出し抜く為。

こんな答えで良いのかと、疑問を感じ、本書を読んでみた次第である。

読む前は、「〇〇というソフトウェアは〇〇ドル稼いだ。」とかいう話なのかな?と期待したが、やっぱりそういう話ではなかった(笑)

本書は、オープンソースの歴史や成果、日本のハッカーについて多くのページを割いている。

オープンソースがどの様にして世の中を加速させているか知るには良い本だと思う。

もちろん、オープンソースビジネスの仕組みについても知ることができますよ。でも、〇〇ドル稼いだとかいう話ではない(笑)

オープンソースにすることによって利害が一致した企業や個人が開発を加速させる→評判を呼び、利用者が増える→投資を呼ぶ

オープンソースを利用しているユーザ企業のサポートで儲ける

とか、間接的な利益がほとんどなんだろうね。


そんなこんなで、読了後、俺は一人でシコシコ、プログラミングしてる現状のままで良いのか?

もっと人と結びついてハッカー達の様に批評し合い切磋琢磨していくべきではないのか?と強く感じた。

冒頭の質問の答えもまだ、煮詰まってないなぁ。

2010-10-10

ガラパゴスリーダー:既読状態の同期化を行った。

ガラパゴスリーダーにはまだ未熟な点がある。

  1. 他所のアプリケーション等が記事を既読状態しても、ガラパゴスリーダーは未読のまま
  2. 既読記事を取得しない。

今回は「1」の対策を行った。対処方法は簡単。

http://www.google.com/reader/api/0/stream/items/ids?s=user/-/state/com.google/read&n=1000&ot=「最終フィード更新日(UNIXTIME)」

    • n:取得件数。今回の対処は1000件に固定している。
    • ot:時間(UNIXTIME)を指定。指定日時以降の既読記事のIDが取得できるようになる。

このAPIを呼ぶと、XML形式で既読記事のリストを取得できる。以下のような感じ。

<object>
−
<list name="itemRefs">
−
<object>
<number name="id">1373612409382796416</number>
−
<list name="directStreamIds">
<string>user/06355903953600506410/state/com.google/read</string>
</list>
<number name="timestampUsec">1265507049751538</number>
</object>
</object>

このリストの

<number name="id">1373612409382796416</number>

が記事取得時に保持した一意なIDとリンクしているので、データベースに検索をかけてマッチした記事を既読化して上げれば良い。

そして、メモリに展開されている記事に対しても同様に検索して既読化してやる必要がある。

それと、データベースやメモリに保持しているIDは16進数化されているので、取得した既読リストのIDを16進数に変換してあげる必要がある。

※IDの桁がでかいので、long long型を使って16進数化した。

まぁ、こんなもんですよ。

あとは他所のアプリケーションで既読化した記事をどうやって取得するかだな。

リリースはもうちょっと待ってください。

2010-08-17

今月号(9月号)のMacFan にガラパゴスリーダーが紹介されてるぅぅ。

たまたま自分で発見してびっくり!見開き分2ページも割かれてますよ。(96P〜)

実は、MacFanの7月号(表紙は私の大好きな矢沢の永ちゃんw)でも掲載されてたのですが、その時はチョイ出演みたいな感じでした。

それが、ちゃんと操作説明や解説を入れてくれるとは・・・作った甲斐がありましたよ。(泣)

編集の内容も私の意図を理解しており、大満足です。

お恥ずかしい。。

今回の失敗点です。

・まだ、作りかけの部分がスクリーンショットされててスゲー恥ずかしかったです(笑)

・「poi-poi-capsule」という、私が適当に考えてつけた名前が紙面に載ってるのを見て、命名は慎重に選ぶべきだったと後悔しました。。

・シンボルアイコンもデザイン変えようと思ってたんです。。だけど、もう定着しつつあるし、これを正式なアイコンにしてしまっても良いかなと思ってます(;^_^)

これから

自分の力でソフトを作れることを自分に証明したいと思い、ここまでやって来たのですが、よくよく考えると、自分の力だけでは作ってないんですよね。

このソフトを作るときにブログ参考書を利用してますし、先人が公開していたソースコードとかもかなり参考にしてます。

自分もその先人達のように、みんなが参考にしてもらえるような情報をネットに提供していきたいと思いますよ。