PaaSなWebサーバの日本語TLD対応状況
「.みんな」のドメインをいくつか取得したので、何か簡単なサービスをAzureのWebサイトで作ろうと思ったら、「.みんな」のドメインが設定できなかったので、他のPaaSはどうなのか調べてみた。
EngineYard
OK
Heroku
OK
Sqale
OK
Webサイト(Windows Azure)
NG
バリデーションがかかり、登録できない。
SSLを有効にして、専用のIPアドレスをバインドすれば、もしかしたらできるかもしれない。(それでもAzureのコントロールパネル上ではできないだろうけど)
canvasで編集した画像をAWS SDK for JavaScript in the Browserを使ってS3にアップロードする
アップロード用ユーザの作り方は「S3 IAM policy」で検索
バケットの設定は「S3 Bucket policy」で検索
単にローカルファイルをアップロードしたいだけなら
AWSの公式サンプルを参考にすれば簡単に実装できます。
http://aws.amazon.com/jp/developers/getting-started/browser/
canvasで作成した画像をS3にアップロードするには
ここから本題
S3へファイルをアップロードする際には、putObject()というメソッドを使用します。
putObject()に与えるハッシュのBodyというキーの値は、input[type=file]か、ファイルのバイナリ列を渡さなければなりません。
ところがcanvasから画像のバイナリ列を取り出す手段は(たぶん)無く、toDataURL()でBase64エンコードされた文字列を取り出し、バイナリにデコードする必要があります。
dataURLをバイナリに変換するライブラリをGithubで見つけましたので、それを使用しました。 https://github.com/rgeraldporter/canvas-polyfill-DataURLtoBlob/blob/master/dataURLtoBlob.js
以下のようなコードを書きました。(canvasの操作をする処理等は省略しております)
<!DOCTYPE html> <html> <head> <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script> <script type="text/javascript" src="https://sdk.amazonaws.com/js/aws-sdk-2.0.0-rc1.min.js"></script> <script type=“text/javascript” src=“https://rawgithub.com/rgeraldporter/canvas-polyfill-DataURLtoBlob/master/dataURLtoBlob.js”></script> </head> <body> <div> <canvas id="TheCanvas"></canvas> <button id="TheButton">upload</button> </div> <script type="text/javascript"> var bucketName = 'YourBucketName'; var regionName = 'ap-northeast-1'; AWS.config.update({ accessKeyId: 'YourAccessKeyId', secretAccessKey: 'YourSecretAccessKey', }); var bucket = new AWS.S3({ params: { Bucket: bucketName, Region: regionName, }, }); $(function () { $('#TheButton').on('click', function () { var canvas = $(‘#TheCanvas’); var dataURL = canvas[0].toDataURL(‘image/jpeg’); var binaryData = dataURLtoBlob(dataURL); bucket.putObject( { 'ACL': 'public-read', 'Key': ‘YourUploadingObjectKey’, 'ContentType': 'image/jpeg', 'Body': binaryData, }, function (error, data) { if (error === null) { } else { } } ); }); }); </script> </body> </html>
注意
- 性質上、アクセスキーを隠すことができないので、publicなアプリケーションには使用しないこと
気になること
- putObject()のコールバック関数に渡されるdataにこれといって何も入っておらず、使い道がない
CakePHP2でModelのアソシエーションをまとめて外す方法
全て外したいだけなら
$this->Model->recursive = -1;
一旦全て外して、アソシエーションを設定し直したいなら
たくさんのアソシエーションが設定してある。
この場所では1個だけJOINすれば事足りるのだけれど、不要なものを全てunbindModel()
するのが面倒。そんな時に
例えば、コントローラの中で
$this->Model->belongsTo = array(); $this->Model->hasMany = array(); $this->Model->hasOne = array(); $this->Model->hasAndBelongsToMany = array();
あるいは、AppModelクラスに次のようなメソッドを定義する
// app/Model/AppModel.php class AppModel extends Model { public function unbindAllAssociation() { $this->belongsTo = array(); $this->hasMany = array(); $this->hasOne = array(); $this->hasAndBelongsToMany = array(); } }
上の例は少々乱暴な気がしますので
// app/Model/AppModel.php class AppModel extends Model { public function unbindAllAssociations($reset = true) { foreach ($this->_associations as $associationName) { foreach ($this->{$associationName} as $modelKey => $modelValue) { $modelName = is_numeric($modelKey) ? $modelValue : $modelKey; $this->unbindModel(array($associationName => array($modelName)), $reset); } } } }
全てのアソシエーションを外してからModel::bindModel()
で必要なモデルを結合すれば良い。
ここまでするなら別のModelを書いたほうが良い気もするけれど
コミットしたら鳥海が抜錨するgit hookをつくった #艦これAdventCalendar 5日目
「好き」と伝えるAPIを実装したけど、特にログ取ってないので使われたかどうかわからない。
http://oh-sky.hatenablog.com/entry/2013/04/21/201719
よく考えたら、大人になって、社会人になって、エンジニアになって、
おじさんと話すことは多くなったが、女の子と話すことがない。
告白なんて夢のまた夢だと気づいた。
でも、やっぱり女の子に告白されると嬉しい。
とくに可愛い女の子に告白されたら嬉しい。
可愛い女の子といえば、高雄型重巡洋艦四番艦 鳥海だと思う。
鳥海に「私も嬉しいです」とか言われたい。僕も嬉しいです。
鳥海に「こっ、これも何かの任務なのですか!?」とか言われたい。とても重要な任務です。
なので、コミットしたら鳥海の台詞が流れるgit hookを作った。
$ git init $ alias vim=emacs $ vim .git/hooks/post-commit -- #!/bin/bash dir='/path/to/chokai/voices/dir/' files=(`/bin/ls $dir`) afplay $dir${files[($RANDOM % ${#files[@]})]} & -- $ chmod +x .git/hooks/post-commit
コードを書いてコミットをする、たったそれだけで鳥海に 「私の計算通りだったわ。もちろん、司令官さんの作戦だから、できたのよ。」とか言われる。最高。重油漏れそう。
n番煎じ、ごめんなさい。
以上、艦これAdventCalendar 5日目でした。
5日目でした。
大事な事なので2度言いました。
ブラウン管テレビを処分する下調べ #大掃除AdventCalendar
大掃除AdventCalendarとは
こちら http://www.adventar.org/calendars/164
絶賛参加者募集中
なぜテレビを処分するか
テレビはスマイルプリキュアが終わってから一切見ていない。
いい加減、無駄に受信料払い続けるの嫌なので、テレビ処分してNHKとの契約をやめます。
テレビの処分方法
リサイクル料金を払って、自治体で処分してもらう
埼玉県川口市では、自治体での回収は行っておらず、業者に持ち込むか運搬を依頼(有料)する必要があるらしい。
http://www.city.kawaguchi.lg.jp/kbn/28050024/28050024.html
リサイクル料に加えて運搬費用がかかるというのは大変にアレなので却下
無料で引き取ってくれる業者があるらしいが
http://www.highbridge-computer.jp/recycle/products/
送料だけで済むのは魅力的だが、2000年製以降という条件・・・。
うちのテレビ。1998年製なんだ・・・。
他にも、2000年製以降という条件でのみ取り扱う業者が多数。2000年の前後で何があったというのか。
ここで処分することに決めた
ここ http://pc-danboru.com/form_tv.html
処分費用と送料がかかるが、たぶん川口市公式の方法より安く収まると思う。 問い合わせをしたところ、処分費用は1,500円と言われた。(時期やモノによって違うらしいので、要確認)
テレビ処分残タスク
- 処分費用振込
- 梱包・発送
- NHK解約