Monday, April 22, 2013

aws, sdk php2でS3にアップロード

Amazon Web Servicesが提供するS3にファイルをsdk php2を使ってアップロードする仕方の紹介です。
ここを参考にしたので、もっと知りたい方はこちらを見てください。英語です
http://docs.aws.amazon.com/aws-sdk-php-2/guide/latest/service-s3.html

Case1: /var/www/htmlにsample.txtがある
 require "vendor/autoload.php";
 use Aws\S3\S3Client;
 
 $bucket = "Bucket name";
 $client = S3Client::factory(array(
  'key' => 'Your Key',
  'secret' => 'Your Secret Key',
  'region' => 'Your Region' ));
 //このclientの作り方はhttp://docs.aws.amazon.com/aws-sdk-php-2/guide/latest/service-s3.html
 //こちらのリンクのCreating a clientを参考にしてください
 $client -> putObject(array(
  "Bucket" => $bucket,
  "Key" => "fromFopen.txt",
  "SourceFile" => "/var/www/html/sample.txt",
  "ACL" => "public-read"
 ));


これでアップロードできます。自分の環境に合わせて$bucketやputObjectの中身は変えてください。ポイントは"SourceFile"でアップロードしたいファイルを指定しているところです。

Case2: フォームで指定された画像をアップロードする

        //上と同じなので省略
 $bucket = "/*省略*/";
 $client = S3Client::factory(/*省略*/));
 $fileName = $_FILES["picture"]["name"];
 $filePath = "pictures/" . $fileName;

 if(move_uploaded_file($_FILES["picture"]["tmp_name"], $filePath)){
  $client -> putObject(array(
   "Bucket" => $bucket,
   "Key" => $fileName,
   "Body" => fopen(sprintf("/var/www/html/%s", $filePath), "r+"),
   "ContentType" => "image//*写真の種類、jpg, pngとか*/".
   "ACL" => "public-read"
  ));
 } else{
  echo "Not OK!";
 }

写真の時はなぜだか"SoueceFile"ではうまくいかなかったので、"Body"に変えました
これでアップロードできます^^

Sunday, April 21, 2013

置かれた場所で咲きなさいの前提条件

「置かれた場所で咲きなさい」

この言葉を聞いたことがある方はたくさんいるはずだ。今いる状況が酷でも自分で努力して何とかしなさい、頑張ってみなさいと励ますためによく使われる。


でも、この表現には一つ前提条件がある。それは「咲く努力ができる環境にすでにいる」ということ。
咲くと表してるので花で説明しよう。


花が咲くには条件がある。光だったり、栄養素だったり、水だったり。花が咲くにはまず咲く環境が整っていることが前提条件だ。花がどんなに努力しても、水がない砂漠、光が届かない暗闇に置かれたら咲くことはできない


これを人間の話に戻そう。やはり花と同様に人間にも咲くには環境が大事だ。もし今いる環境で頑張れないと思っている人にこの「置かれた場所で咲きなさい」といった言葉は、今の場所に居続けなきゃいけないとストレスを与えるだろう。


もし今の場所にいるのが心底いやだったら別に場所を変えてもいいんじゃないですかね?
場所を変えて心機一転で頑張ればいいじゃないですか。その場所を離れるという行動を起こせたのなら新しい場所でも何とかできると思いますよ、僕は



Saturday, April 20, 2013

AVPlayerが働かないときは

以下のような簡単なAVPlayerで音楽を流したいと思ったのになぜだかうまく行かなかったときの解決策

    NSURL *url = [[NSURL alloc]initWithString:@"http://localhost/social-alarm1/musics/sampleMusic.mp3"];
    AVPlayer *player = [[AVPlayer alloc]initWithURL:url];
    [player play];

*AVFoundation/AVFoundation.hは.hファイルで読み込みをしています。

これをこうすると僕の場合は解決しました。
.mファイル

@interface ViewController () {
    AVPlayer *player;
}
@end

@implementation ViewController

- (void)viewDidLoad {/*省略。何もいじってません*/}
- (void)didReceiveMemoryWarning {/*省略。何もいじってません*/}

- (IBAction)startMusic:(id)sender {
    NSURL *url = [[NSURL alloc]initWithString:@"http://localhost/social-alarm1/musics/sampleMusic.mp3"];
    player = [[AVPlayer alloc]initWithURL:url];
    [player play];
}
@end
言葉で書くとするなら、「AVPlayerのインスタンスを.mファイルの最初のinterfaceで書くとなぜかうまくいく」ですね

Friday, April 19, 2013

awsのphp sdkインストールではまる

Amazon Web Servicesのphp sdkではまったのでどうやってインストールしたのか書いておきます
こちらの公式ドキュメントにそってインストールしていきました
http://docs.aws.amazon.com/awssdkdocsphp2/latest/gettingstartedguide/sdk-php2-installing-the-sdk.html(日本語)

参考にさせてもらったリンクはこちらです
--http://www.1x1.jp/blog/2013/04/aws_sdk_for_php2_auto_scaling.html
--http://blog.suz-lab.com/2012/11/aws-sdk-for-php-version-2composer.html

以下のコマンドではまりました。

php composer.phar install

このコマンドを投げたときにこのような文が表示されてインストールされないんです
  [Seld\JsonLint\ParsingException]                                        
  "composer.json" does not contain valid JSON                             
  Parse error on line 1:                                                  
                                                                          
  ^                                                                       
  Expected one of: 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '[' 
結局このエラーの原因は正しいcomposer.jsonファイルを編集していないからでした。
以下のコマンドで正しいcomposer.jsonファイルを開き、jsonを書き込みましょう

sudo vim /home/ec2-user/composer.json
//以下を書き込む
{
  "require": {
      "aws/aws-sdk-php": "*"
  }
}
これでばっちりです^^

自分の思い

ちょっと思ったこと。


僕は初音ミクとインターネットが好きだ。好きな理由はこれらのプロダクトが今まで関わりがなかった人たちをつなげたからだと思う。


初音ミクなんて本当にすごい。作る人がいて、pvをつける人がいて、それを歌ってしまう人がいる。初音ミクという作品がなかったらつながらなかった人たちがつながる。
だから、Google Chromeの初音ミクのCMには本当にしびれた。最高だった


インターネットも本当にすごい。僕がインターネットやプログラミングに興味を持ったのはインターネットである人のことを知ってからなんだけど、絶対に知り得ないであろうはるか上にいる人たちを知ることができる。パソコンでつながる。ハンパない


僕が本質的に作りたいものは今まで関連がなかった人たちをつなげて、そのつながった人たちを夢中にさせるプロダクトなのかもしれない


時々自分の本質がひょこっと顔を出すときがある。もしかしたら今回はそれが起きたのかもしれない

Thursday, April 18, 2013

RDSにphpから接続

この2日間くらいにサーバーとドメインを用意してネットワークの構築を行っていました
これから僕が使っていくのは、こちらのリンクになります→http://social-alarm.co/
.comはすでに申し込まれていて取得できませんでした

今回の記事はその過程でAWSのデータベースにphpから接続できなくてはまったのでそのphpからデータベースに接続する方法です

なかなか回り道したのですが、こちらの方のリンクの手順に従えば接続できるようになるはずです^^→http://www3441ui.sakura.ne.jp/wordpress/?p=479

Friday, April 12, 2013

NSLocalNotificationのサンプル

スリープ状態でもバイブと音でアプリの更新情報を教えてくれるあの機能です
NSLocalNotificationでネットワークにつなげることはできず、デバイスだけで完結してしまっている機能なので、facebookのようなメッセージがあったことを知らせるnotificationはPushNotificationで調べてください
(Notificationのapple公式ドキュメント => https://developer.apple.com/jp/devcenter/ios/library/documentation/RemoteNotificationsPG.pdf)
日本語です

ここではLocal Notificationの使い方を忘れないようにメモしておきます。
(参考にしたサイト => http://ameblo.jp/porcom-yokoyama/entry-11134501691.html)
コピペですww問題があったら消します

    NSDate *now = [NSDate date];
    NSDate *notifyTime = [now dateByAddingTimeInterval:10];
    
    UILocalNotification *notify = [[UILocalNotification alloc] init];
    
    notify.fireDate = notifyTime;
    notify.timeZone = [NSTimeZone defaultTimeZone];
    notify.hasAction = YES;
    notify.alertBody = @"時間です。";
    notify.alertAction = @"起動する。";
    notify.soundName = UILocalNotificationDefaultSoundName;
    
    [[UIApplication sharedApplication] scheduleLocalNotification:notify];

上の参考リンクではNotificationの削除の仕方も載っているので、参考にしてください