Thursday, May 2, 2013

キーボードを隠す簡単な方法(iPhone)

iPhoneアプリを制作している方でキーボードを隠したいときに
   [self.text resignFirstResponder];
と書いている人がほとんどだとおもいます。

ですが、これだとtextFieldにリーチできないときにどうしようもないですよね。
例えば、tableview cellの上にtext fieldをおいたとき、僕の場合エラーが出たのでテキストフィールド自体を参照できませんでした。

そんなときに役立つのがこのコード
   [self.view endEditing:YES];
この一つのコードでどんなシチュエーションにも対応できます!(多分ね!)

さらに、textfieldのデリゲートと併用して

-(void)textFieldDidEndEditing:(UITextField *)textField{
    keyword = [NSMutableString stringWithFormat:@"%@", textField.text];
}
こんな風に書くと、なんとテキストフィールドの中身もゲットできてしまうんですね〜
とてもいい働きをしてくれるのでお困りの際には試してください^^


Tuesday, April 23, 2013

勉強に対する価値観の違い

価値観というのはやっかいなものです。
なぜなら、本人にとってそれは自明のものであるのに対し他人とは異なることが多いから。
そして、多くの人は他人は自分と同じ価値観を持っていると想定しているのでめんどくさいです。

この価値観の相違は社会が変化することで生まれます。
社会が変化することで異なった価値観が形成され、衝突するというのはよくありますよね。僕も親とよく衝突する一人です。


今日は勉強に対する価値観の相違を発見したので、ちょこっと書いてみます。


勉強に対してよくいわれるのが「学生の本分だから」


このフレーズおもに大学生に対して使われると勝手に考えています(なぜなら僕がよく言われるから)
ですが、この表現僕にとってよく意味が分からないんですよね。


本分? = やらなきゃいけないこと?
社会的な立場によって本人のしたいことが抑圧される?


僕は本人がしたいことをするのが一番幸せだと思っています。
本人がしたいことに対して問題点を指摘するのは大歓迎ですが、この○○だから△△というのはどうしても納得できません。


どうして納得できないかを考えたところ、大学でする勉強への価値観が違うためだとの結論に至りました。
僕は大学での勉強を自分がしたいことを実現する手段の一つととらえています。


例えば、貧困問題を解決したい人が実際に貧困の現場に行って自分にどのような知識が不足しているかわかったからそれを学びに大学に行きたいというのが僕が考えるもっとも自然な大学へ進学する理由です。


他に考えられる理由は
1.社会的に認められたいから進学 → 社会的に認められたいという自分の欲求を実現するための大学進学
2.自分の興味あることについて学ぶのが好きだから → 自分がしたいことをするための大学進学

このような理由も理解できます


ですが、「学生なんだから勉強しなさい」と主張する人は勉強自体が目的になっているんだと思います。とにかく勉強すれば何でもいいよという考えです。


この大学での勉強という見方に違いがあるために僕は親が主張する「学生の本分は勉強」という主張にまったく共感しなかったんだと思います。別に勉強を目的とした勉強が間違っているとは思いません。それも高校までなら真だと思います


ですが、大学進学が義務ではなく、大学にいることが自分のしたいことを実現するための手段ではないという結論に至った場合は休学というのも選択肢の一つになるのではないのかなと思います。
(実は休学するという話について親ともめていますw 僕の場合ほかの事情もあって複雑なんですがねw)

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には本当にしびれた。最高だった


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


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


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