僕のノート、見てってください

エンジニアリングや英語、趣味について徒然なるままに

Facebookへのお問い合わせ・提案方法

Facebookページの作成をしようと思ったら、

部分的にいかがわしい文言が含まれるというだけで、(痴漢対策 <- "痴漢"的な話)

ページ名を名付けられず、くっという。

 

というわけで、

向こうの管理コストが爆増しそうなものの、

システム都合でFacebookの本義であるコミュニティ形成が阻害されているので

一報を入れることに。

 

全ての問い合わせには答えられないよ。

ということですが、皆さんも正式にこちらで投稿できるのでどうぞ。

Facebookヘルプセンター | Facebook > 報告する > ご意見・ご提案 (2016.03.21現在)

 

何かのお役に立てば。

GAE(GoogleAppEngine)でのapp.yaml設定サンプル

作成中のアプリの最終チェックしていたら、

一部CORS(Cross Origin Resource Sharing)の設定ミスがあったので調整。

 

GAEアプリでは、apacheの設定ファイルに書くような内容を

app.yamlというファイルに書くのですが、

なかなか、その設定の際にmime_typeを調べたりするのが手間だったので

良いサンプルを見つけて作業をしました。

 

こちらの通り。

GAE: App.yaml designed for serving a static site on Google App Engine (Python). Copy your static html and files into a folder called "static" next to app.yaml. Contains a bunch of mimetype declarations from html5boilerplate's .htaccess. May not be neces · GitHub

 

ちなみに、自分がハマったのは、font系ファイル(eot, svg, woff,ttf)の設定。

あとは、シングルページで、minifyしたhtmlをxhrで取得しているのですが

そこでcontent-type:text/htmlを設定し損ねていたこと。

 

と思ったら、抜け出せてなかったので、引き続き調査。

 

日々、精進。

 

PhoneGapでの署名付きapk作成手順

最近、珍しくブログ更新を継続できいるnaosk8です。

本日は、androidアプリのGooglePlayへの登録初心者な自分向けメモ。

 

GooglePlayへのapk提出に際して、

apkに対して署名を付す必要がありました。ので、その手順を。

 

まず、これでapkを生成。

$ phonegap build android --release

 

で、あとはこのサイトに記載の手順で完了!

何も迷うこと無く、すごく助かりました。多謝。

システム開発おぼえがき: Cordova(Phonegap)のコマンドラインで署名付きapkを作成する

 

ちなみに、zipalignを未適用で手動でリリース用apkに実行したのですが

導入には、こちらの手順書を参考にしました。

android sdkの`zipalign`をインストールする方法 - Qiita

 

なぜzipalignが必要なのかは、これ見て勉強になりました。

要するに、読み取り効率が良い状態を作ることで端末に優しいアプリにするため。

Androidにおいてなぜzipalignをやる必要があるのか - Qiita

 

ということで、本日は備忘メモでした。

 

CloudFlareでのSSL/TLS対応で学んだこと

自作サービスのアセット配信にCloudFlareを利用しているnaosk8です。

 

GeoLocationAPIも利用していたりで、

HTTPS化しないと位置情報の取得はゆるしませんよ」的な

お上からのお達しが近づいている気配も覚え、

このたび、SSL対応しました。

 

ということで、関連しての学びをメモ。

アプリケーションレイヤーから徐々に広がっていく感じが楽しい。

 

さて、本題。

 

SSLってなにさ?

* Secure Sockets Layer の略。

* 要するに、第三者によるデータ改ざん防止などを目的に、安全な通信方式でサーバアクセスを実現しようというもの。

* 公開鍵で、クライアント側の情報を暗号化 -> 秘密鍵で、サーバ側で複合化。

* 対応状況は、URLが"https://"で始まっていればOK。

CSS, JSなどに関するhttp://アクセスが表示ページ中に混ざっていると成立しない)

* SEOの面でも、有利らしい。

 

⬇ここによくまとまってる。

www.geotrust.co.jp

 

TLSってなにさ?

* Transport Layer Security の略。

* SSLの発展系。RFCでも定義されているもの。

* ただ、世の中的にSSLが浸透しているので、総称するときにはSSLと呼ばれがち。

⬇参照

www.symantec.com

 

■  CloudFlareでの設定方法

自分はとりあえず、体験してみたかった程度なので

Secure度は△なものの、Flexible SSLにしてみました。

 

⬇この記事が新しいし、読みやすかった。

WordPressじゃないのでそこを差し引く。

kodak-ism.com

 

■ やってみてわかったこと

* https://なコンテンツにhttp://なコンテンツが混ざっているのはNG。

  でも、その逆は大丈夫。

* 管理状態によっては、

  Access-Control-Allow-Originあたりの調整をいれる必要が生まれる。

qiita.com

* HTTP Strict Transport Securtyを設定するだけで

  "2回目以降"のアクセスについては、httpsアクセスを強要できる。

  preload:onで、最初のアクセスについても適用できるかと思ったものの

  適用されなかったです。

  何かやり方に問題があったのか、そういうものなのか。

 

boombox.js のAndroid端末でのループ再生のずれ対策

最近、備忘も兼ねて小ネタを投稿中のnaosk8です。

 

スマホで音声の取り扱いをしている人であれば

もしかしたら知っているかもしれない boombox.js

 

ライブラリのサイズも小さく、

ブラウザの各音声ファイル形式への対応を見て

適切なファイル形式の音声ファイルのみを読み込んだり、

AudioSpriteとして音声の取り扱いを出来たりと優秀なのです。

 

が、しかし、Android端末でのループ再生で、以下の問題が。

■ 前提

* Android端末

* AudioSprite利用

* ループ再生の実行

 

事象

ループ再生の実行時に

 - 想定のstart, endのタイミングでSprite化した音声が再生されない(はみだす)

 - 徐々にループがずれたり、ループタイミングがずれる。

 

■ 解決方法

ループ方式を、LOOP_NATIVEでなく、LOOP_ORIGINALにすると

内部的に呼ばれているonEndedイベントさんが働いてくれる為か、問題が解消されます。

 

boombox.get('sound').setLoop(boombox.LOOP_ORIGINAL);

 

是非、おためしあれ。

Android端末で位置情報(GeoLocationAPI)の取得失敗から抜け出せなくなったら、ひとまず、端末再起動。

位置情報を利用した

スマートフォン向けのWebサービスをつくっているnaosk8です。

 

最近、Android端末(Freetel Miyabi)を購入しました。

 

 

会社で沢山のAndroid端末を触っている自分からして

極上の品質だと言わざるを得ない優秀な端末です。

価格面からもコスパは最高過ぎます

 

そんな端末で実機検証が捗っているのですが

なかなか位置情報の取得失敗率が高く、悲しくなっています。

 

Androidデバイス自体(この端末に限らず)に難があり

再現性は不明ですが、

とあるタイミングからGeoLocationAPIの途中でハングしたり

位置情報の失敗から抜け出せなくなったりします。

 

抜け出す方法は今のところただ一つ。

 

 

 

端末の再起動。

 

 

 

ぐぐっても、割と端末の再起動を復旧方法に記載している記事も多いので、

きっとそうなのだと思います。悲しい。

 

再起動以外のオシャレな、っていうか、

フツーの、解決方法が分かったら記事を書きます。

 

FacebookのUncaughtSecurityErrorへの対応(stackoverflowより)

事象

FacebookAPIを使用しているWebページにて

いつの間にか、こんな感じのエラーが表示されるように。

Uncaught SecurityError: Blocked a frame with origin "http://static.ak.facebook.com" from accessing a frame with origin "http://localhost:8080". Protocols, domains, and ports must match. VM2813:1
Uncaught SecurityError: Blocked a frame with origin "https://s-static.ak.facebook.com" from accessing a frame with origin "http://localhost:8080".  The frame requesting access has a protocol of "https", the frame being accessed has a protocol of "http". Protocols must match.
 VM2817:1
Uncaught SecurityError: Blocked a frame with origin "http://static.ak.facebook.com" from accessing a frame with origin "http://localhost:8080". Protocols, domains, and ports must match. 

 

 

■ 答え

この限りでは無い気がしつつ、

自分の場合は、このスレッドの通り、

デバッグ用に入れていたchrome拡張機能「Ripple」の

有効化をオフにしたら解消しました。

stackoverflow.com

 

たまにこういう地味発見の和訳も投稿しようかな。