1、Frameworkを追加
#import <AssetsLibrary/AssetsLibrary.h>
#import <ImageIO/ImageIO.h>

2、サンプルコード
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary*)info {

    [picker dismissModalViewControllerAnimated:NO];

    // カメラロールからiPhoneカメラで撮った場合、GPSなど取得可能
    NSURL *url = [info objectForKey:UIImagePickerControllerReferenceURL];
    ALAssetsLibrary *lib = [[[ALAssetsLibrary alloc] init] autorelease];
    NSLog(@">>>>>> %@", url);
   
    [lib assetForURL:url
        resultBlock:^(ALAsset *asset){
            ALAssetRepresentation *representation = [asset defaultRepresentation];
            NSUInteger size = [representation size];
            uint8_t *buff = (uint8_t *)malloc(sizeof(uint8_t)*size);
            if(buff != nil){
                NSError *error = nil;
                NSUInteger bytesRead = [representation getBytes:buff fromOffset:0 length:size error:&error];
                if (bytesRead && !error) {
                    NSData *photo = [NSData dataWithBytesNoCopy:buff length:bytesRead freeWhenDone:YES];


                    CGImageSourceRef cgImage = CGImageSourceCreateWithData((CFDataRef)photo, nil);
                    NSMutableDictionary *imageMetadata = (NSMutableDictionary *)CGImageSourceCopyPropertiesAtIndex(cgImage, 0, nil);
                    if (imageMetadata) {
                        NSLog(@"%@", [imageMetadata description]);
                       // GPSはこんなかんじで取得
                        if ([imageMetadata valueForKey:@"{GPS}"]) {
                              CLLocationDegrees lat = (CLLocationDegrees)[[[imageMetadata objectForKey:@"{GPS}"] objectForKey:@"Latitude"] doubleValue];
                              CLLocationDegrees lng = (CLLocationDegrees)[[[imageMetadata objectForKey:@"{GPS}"] objectForKey:@"Longitude"] doubleValue];
                        }

                    } else {
                        NSLog(@"no metadata");
                    }
                    CFRelease(cgImage);
                }
                if (error) {
                    NSLog(@"error:%@", error);
                    [error release];
                    free(buff);
                }
            }
        }
        failureBlock:^(NSError *error){
                 NSLog(@"error:%@", error);
             }];

}
--- どこかで、---
queue = [[NSOperationQueue alloc] init];
---

ASIHTTPRequest で setDelegate:self をしていた場合、
かつqueueを利用する場合、
queueのオペレーションから requestを引っぱり、
queueをリリースする。
queue以下にdelegateがあるオブジェクトがあるときは、
末端までたどり、何らかの方法でキャンセルする。
queueは最小単位で使う方がよい。
元のオブジェクトをリリースしたらちゃんと末端も処理できるような感じで、
かつ、わかりやすくやならないと、いけないみたい。(反省、、、)
ベースのqueue管理を作るより、最小単位で組み込みその大本をリリースするが良さげ。


 if (queue) {
        for (ASIHTTPRequest *request in queue.operations) {
            [request clearDelegatesAndCancel];
        
        }
        [queue cancelAllOperations];
       // 例 [queue waitUntilAllOperationsAreFinished];
       // waitUntilAllOperationsAreFinished だと処理が終わるまで待つ。

        [queue release];
        queue = nil;
}

iphone convertToUTC メモ

| コメント(0)
- (NSDate *)convertToUTC:(NSDate*)sourceDate {
    NSTimeZone *currentTimeZone = [NSTimeZone localTimeZone];
    NSTimeZone *utcTimeZone = [NSTimeZone timeZoneWithAbbreviation:@"UTC"];

    NSInteger currentGMTOffset = [currentTimeZone secondsFromGMTForDate:sourceDate];
    NSInteger gmtOffset = [utcTimeZone secondsFromGMTForDate:sourceDate];
    NSTimeInterval gmtInterval = gmtOffset - currentGMTOffset;

    NSDate *destinationDate = [[NSDate alloc] initWithTimeInterval:gmtInterval sinceDate:sourceDate];
    return destinationDate;
}

今年のスリランカの豆をシティーローストで焙煎して飲む。

酸味、コク、旨味、バラスがよい。

ブレンドしても結構他の豆を引き立てる感じがする。

長年にわったってやってきたフェアトレードコーヒー成果をあげるひも近いと思う。


【 2030年のコーヒー教室 】

ある大学の講座のテーマ
「スリーパーダコーヒー物語」
2030年5月1日10時
講師は、  80歳の半ばになるコーヒーおじさん
講座の学生は、コーヒーの勉強を志す 20代の男女20人

「2000年にスリランカコーヒーを発見した コーヒーおじさんの話」
2010年 白髪のコーヒーおじさんは、2030年は、もっともっと白髪になっていました。でもスリーパーダコーヒーがおじさんに英気を与え、すごく元気でした。
白髪だけは、どうしても気になり、髪は短くカットしたコーヒーおじさんでした。

そのコーヒーおじさんのスリランカコーヒー講座です。

2030年 コーヒーは、南の国の60か国以上で生産されるが、コーヒーに山の名前が付いた世界のコーヒーブランドは、「ブルーマウンティン」「キリマンジャロそして「スリーパーダ」も「3大マウンテンブランド」の一つとして、日本でもようやく有名になり始めていました。
 
●幻のスリーパーダコーヒー
  
スリランカは、昔はコーヒーの一大産地だったのは、本当の話なの?
 
スリランカとはどんな国なの?

何で、スリランカコーヒーなの?
1868年にコーヒーが病気になり、次第に紅茶になりました。そして世界で第2番目の紅茶産地になったのよ。

スリランカはシンハラ語で輝く島という意味
インドの涙ともいう。
ルビーなど宝石もたくさん取れる
素敵な島


●スリランカのコーヒーは?

もっともおいしいコーヒー
 これだけ、焙煎により味の変化があるコーヒーは珍しい
 自分たちで実際に飲んでみよう

少しスリランカのコーヒーの勉強
・オランダ人がコーヒー栽培を1658年に始めた。
・オランダからイギリスやフランスなどに貿易していた

コーヒーの焙煎
・コーヒーは濃い焙煎のコーヒーだった?
・ミルクや砂糖も入れて飲んでいた
・貴族や王宮で飲んでいた
・コーヒーは瞬く間に、庶民にも広がった
・19世紀・・・スリランカはイギリスの支配下になった

世界有数のコーヒー産地
・1850年代 世界で、貿易量第3位だった。
・しかし、コーヒーが生産できなくなった
・コーヒーの病気になったのがその理由
・現在のような紅茶の畑になった
・今やスリランカは、セイロン紅茶として世界の紅茶になった

●おじさんは、その頃は、どんな人だった?

コーヒーおじさんは、タバコは30年くらい吸っていたが、ある時から止めた
   なぜって?
学生 コーヒーの味のデリケートのところが、わかるため・・・
先生 「おじさんは、料理はできない、ぐうたらで、不器用な人・・・
 目立つのは好まない、・・・本当はそうではない
  何でもやりたい、・・・でも三日坊主

 ・スリランカにコーヒーコーヒー事業を立ち上げようというおじさんがいた。
 それは、日本人だった。50歳を過ぎたころから、頭は白髪がおおい、しゃべりが下手な早口で、聞き取りにくいおじさんだった。
 おじさんにスリランカにお友達がいて、日本人でスリパーダという、山にお坊さんとしていたのだ。
 スリパーダは4つの宗派の共同の山で、たくさんの人が山の頂上を目指して歩きました。
そこの敬虔な山の中腹にあるお寺の住職として50年修行した。

 スリーパーダサポーターを募集したのはなぜ?
 おじさんは、コーヒーをフェアトレードで買ってあげたので、貧乏な村人は喜んで、自分の村でもコーヒーを植えて、買って欲しい、買って欲しいという声が、いっぱい出てきた。

 村人の植えるコーヒーは、数万本になった。それだけのコーヒーはおじさんだけでは、どうしようないほどになった。
しかし、フェアトレードで買ってあげると子どものごはん、学校、着るもの、家族が幸せになるので、何とかしてあげたい。しかし、個人の力では、もう限界だ!
おじさんは、きつくて、きつくて、仕方がなかった。
もうやめたくなった。

 ラヴァナゴダ村の一番最初のコーヒーは、ラーマ神が降り立ったところとして、伝説の地です。そのラーマの神のお告げが、「おじさん。あなたは自分だけ一人しようと、思っているからだめなのです。みんなを信頼しなさい。」

 おじさんは、その言葉をきいて、元気になり、気持ちも楽になりました。
 
●ところで、最後になるが、コーヒーとは何だろう?
  森と共にできるコーヒー
  自然の力でできるコーヒー


あれ! 夢を見ていたのか。現実に戻ってしまった。
でも、スリーパーダコーヒーのために、サポーターを集めなければ・・・。

ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDownloadCache:[ASIDownloadCache sharedCache]];
[request setCacheStoragePolicy:ASICachePermanentlyCacheStoragePolicy];
[request setCachePolicy:ASIOnlyLoadIfNotCachedCachePolicy];

ASIDownloadCache *cache = [[ASIDownloadCache alloc] init];
[cache setStoragePath:[[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"ASIHTTPRequestCache"]];
[cache removeCachedDataForRequest:request];

これで行けた。
ASIDownloadCacheのremoveCachedDataForRequestを使う。
storagePathを指定してあげないと行けないようだったので上記のNSSearchで取得。
これは、ASIDownloadCache.mを眺めてたら分かった。



メモ
# self は tornado の HTTP Handler
import json
import bson.json_util

def dump(self, arg):
    self.set_header("Content-Type", "application/json")
    self.finish(string_dump(arg))

def dumps(self, obj, root='root'):
    self.set_header("Content-Type", "application/json")
    self.finish(string_dumps(obj, root))

def string_dump(arg):
    return json.dumps(arg, default=bson.json_util.default)
       
def string_dumps(obj, root='root'):
    lst = []
    for x in obj:
        lst.append(x)
    return string_dump({root:lst})



node.js  dato korega iranai na...
python dato server gawa no shoriga ooitoki ni rakunanokana.


1、コーヒー価格の高騰(今年さらに高騰する可能性大)
今年は天候が理由でブラジルの生産量減る可能性あり
http://www.new.coffeeclubnetwork.com/redes/form/post?pub_id=2576
http://geocities.yahoo.co.jp/gl/beans8055/view/20110308/1299577365

1lbは約450グラムなので、トレード価格1キロあたり600円ぐらいになっています。
単純に倍以上になっていきます。(多分さらに高騰するとかんがえられます。)

また、市場の豆の価格が上がると、フェアトレード豆も同時に上がってしまいます。
高く売れる方に豆を売りたい思うのが生産者のマインドです。

スリランカは特殊な例なので、国際市場に左右されませんが、
国際市場で取引している国は、フェアトレードの概念があてはまりづらくなると考えられます。

イヴァンさんも鈴木さんのコーヒーも直接価格保証
(安いときもそれなりの価格、市場が高い時はその価格)
での仕入れになります。

2、コロンビアの豆
http://www.ico.org/index.asp(国際コーヒー協会)
レポートがいくつかあるのですが、コロンビアの豆の生産高は減っているようです。

3、有機JASの課題
有機JASの場合、肥料の生産がとても大変らしく、ブラジルのように数百ヘクタールの
農地を固形有機肥料のみで生産するのはとても生産側にリスクがあるとことです。
なので、どうしても小規模の農園のみ有機JASのコーヒー豆が生産可能となるようです。
(小規模といっても日本人にとっては大きいと思いますが、、、)
結果、イヴァンさんは(140ヘクタールの農地の肥料を)有機液体肥料(有機窒素)をつかうことにしました。
科学肥料は一切使っていません。
鈴木さんは農地が小さいので、有機JASでの運用が可能のようです。
ただ、有機JASの認定維持費用が年間農地の広さできまりますので、
かなりの額かかっていると思います。

4、世界の経済情勢

私としては今の経済状況が普通でバブル期(好景期)の状態がむしろ異常だったのではと思っています。
相対的に経済状況が悪化したとしても、その範囲で生活をしていくと思っています。

ただ、そんな状況下、実際問題として、
投機マネーが「世界情勢不安」の中落ち着き先をもとめてさまよっていると考えています。
コーヒーの生産量はそこまで減っていないのと、(icoの資料みても)
輸出、輸入の量も多少変化はあっても、
ここまで価格が高騰するまでの変化はないと考えると、
この価格高騰のは不可思議です。

また、このように投機マネーによって価格が一定していないと、
生産者から消費者までの間の業者に負担が重くのしかかり、
結局、破綻し、生産者や消費者がこまる結果になってしまう可能性も否めません。

結果考えられる事、(専門ではないので、不勉強でしたらすみません。)
為替不安定、情勢不安が続き、国が資本注入して、
お金が世の中に出回ると急激なインフレになる場合もある?

投機家がお金を持ちすぎてだぶつと
そすると、また、そのお金がどこかへ流る?
そうすると、価格が高騰?
最悪、インフレスパイラルにはいる可能性?

5、感想

新卒で仕事が無いのもとても異常な状態ですが、
企業に勤めるという社会ではなくなっていくように思えます。
また、情報・物質の流通構造が大きく変化しライフスタイルに影響を与えていると思います。

そんな中、新時代の若者は沢山あるものから選択する事を常にもとられて育ってきました。
取捨選択能力の高い若者がこれから社会に進出し本当に良い物を選択して行くとした場合、
どのような社会になるか気になるところです。
無駄な物を買わなくなる場合、消費エネルギーはへっていくと思います。
そうなると無駄な消費でなりたっていた資本主義社会が破綻するのではと考えてしまいます。

いろいろと、不安になる情報が多い中、
コーヒーを飲んでほっと一息できるような
おいしいコーヒーを飲む事ができたらと願っています。

こころにゆとりがもてるような誇り高い気持ちで日々を過ごして頂ければと、
ナチュラルコーヒーのお客様に期待しています。

まだまだ、不勉強なところがあるのですが、
今後ともナチュラルコーヒーを何卒宜しくお願い申し上げます!

xcode から vim へ

| コメント(0)
そろそろ脱xcodeでvimに移行することに。

備忘録

【入れるもの】
autocomplpop.vim
これでリアルタイムキーワード保管
決定、C+y
下、C+n
上、C+p

snipMate
filetype plugin
helptags ~/.vim/doc

.vimrc
追加



cocoa.vim



Match Bracket for Objective-C

あとはググっておしまい。

まえのブログの続き、
xcodeで使う時。

project setting -> build で、
Open Linker Flags を

$(SRCROOT)/opencv_device/lib/libopencv_core.a $(SRCROOT)/opencv_device/lib/libopencv_legacy.a $(SRCROOT)/opencv_device/lib/libopencv_imgproc.a $(SRCROOT)/opencv_device/lib/libopencv_objdetect.a -lstdc++ -lz

と設定、
SRCROOT
コンパイルしたopencv_*を置いておく。

あと、
Search Paths のHeader Search Path と Library Search Path に
simulator と device の include と lib のパスを記述。

開発環境の準備完了。

最近のコメント

アイテム

  • DSC_0016_small.jpg
  • Logitec 無線LANルータ  MicroRouter  54Mbps  11bg LAN-PWGR.jpg
  • stock.jpg
  • 31rmjKykfYL._SL500_AA280_.jpg
  • P6010075.JPG
  • P5290075.JPG
  • P5290074.JPG
  • P5290060.JPG
  • P5290070.JPG
  • P5290069.JPG

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。