2015年5月21日木曜日

『クロスドメイン対応【Webサイトの開発】』

Webサイト開発していると、クロスドメインの問題で開発時に困る時があります。
クロスドメインは、クライアントアクセスポリシーファイルで、許可すれば問題ないのですが、顧客のセキュリティポリシーで許可できないと行ったことが多々あります。

このような場合、Fiddlerで解決する方法がありましたので、紹介します。

【クロスドメイン】
セキュリティ上、Webサイトからの通信(データのやりとり)は、Webサイト(HTMLファイルが置かれている)が置かれているサーバ(ドメインのサーバ)としか通信できない制約があります。
 この制約をクロスドメイン制約と呼びます。

【クライアントアクセスポリシー】 
クロスドメイン制約を許可する手段として、サーバにアクセス許可を設定するファイルを保存します。
このファイルを「クライアントアクセスポリシー」ファイルと呼び、通信先に保存します。

【セキュリティポリシー】
「企業全体の情報セキュリティに関する基本方針」で、むやみにサーバアクセスを許可しないことなどを行います。
詳しくは、Googleで「セキュリティポリシー」 で検索すれば沢山でてきます。

【Fiddler】
HTTP の通信データをみたりすることが出来るツールで、フリーのパケットキャプチャソフトになります。
ソフト開発のデバッグツールとして大変便利なソフトです。



【Fiddlerでのクロスドメイン】解決方法について
(1)クライアントアクセスポリシーファイル(clientaccesspolicy.xml)を次のような内容で作成して、
ローカルPCに保存する。
例えば、 C:\に保存。

<?xml version="1.0" encoding="utf-8"?>
<access-policy>
    <cross-domain-access>
        <policy>
            <allow-from http-request-headers="*">
                <domain uri="https://*"/>
                <domain uri="http://*"/>
            </allow-from>
            <grant-to>
                <resource path="/" include-subpaths="true"/>
            </grant-to>
        </policy>
    </cross-domain-access>
</access-policy>

(2) Fiddler4インストールして、クライアントアクセスポリシーファイルを参照するように設定する。   ※Fiddler2でも可能

・「Add Rule」を選択して、クラインアクセルポリシーの設定
 RuleEditerに保存したクラアントアクセスポリシーファイルを設定して、Save
・StreamとDecodeをクリックする




・メニューTools - Fiddler OpeionsのHTTPSタブを選択して、Decrypt HTTPS traffic をチェックする



2015年5月19日火曜日

『SEO対策や、HPの文章など、ちょっと役立つ情報 【まとめ】』

SEO対策で、『近くの○○』で検索が増加している、そうです。
HTMLのキーワード(<meta name="keywords">)や、HP内の文章に『近くの○○』を記述するとよいかもしれません。

サイトの文章作成にて、役立つ情報をまとめました。
(普段書く文章でも役立つと思います)

●括弧の使い方を学ぶ
 括弧の使い方を強く意識したことはなかったのですが、使い方一つで見栄えのある文章になります。
 以下基本的な事を実行して、HPの文章(普段仕事で使う文章も!)を綺麗にしましょう。
 ・二重かぎ括弧(『』)は、タイトルや、かぎ括弧内で括弧を使い、通常はかぎ括弧「」を使う
 ・隅付き括弧(【】)は強調に使う
 ・「波括弧{}」や「角括弧[]」は、丸括弧()の中で括弧を使い時に使用する

●三点リーダー(…)とダーシ(―)は2つ重ねて使う
 ⇒ 三点リーダーは、余韻を残したい時に使う。「……」
 ⇒ ダーシは、を中断させたり、話題を転換させたりするときに使う。「――」
   また、ダーシ「―」とハイフン「ー」は違うので注意です
(例)
× またまた・・・雨
〇 またまた・・・・・・雨

× だめだ―また電車に乗り遅れた
〇 だめだ――また電車に乗り遅れた


●疑問符と感嘆符のあとは、スペースを空ける 
(例) おっと!なんて素敵な絵なんでしょう?また見に来たいです
    おっと! なんて素敵な絵なんでしょう? また見に来たいです

【参考URL】
http://cc.mas.impress.co.jp/c/0078a8_0001bwzi_a7
http://ja.wikipedia.org/wiki/%E6%8B%AC%E5%BC%A7 
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1441088129

※検索エンジンで、「三点リーダー」や「ダーシ」など調べると使い方が書かれているものがたくさんありますので、調べて使い慣れると文章が綺麗になることでしょう

2015年5月17日日曜日

『サードパーティークッキーの扱い』について

サードパーティークッキーといきなり言われても分からない人もいると、思いますので、順を追って説明していきます。

【クッキーとは】
 初めてアクセスした Web サイトからコンピューターのハード ディスク ドライブ上に配布される小さいファイルです。
 cookie により、ユーザーの環境設定とユーザー名を保存し、Webサイトをカスタマイズすることが可能になります。

【サードパーティークッキーとは】
ドメインが異なるページから発行されたクッキーのことを言います。
表示しているWebページの中に、別のサーバーからクッキーを発行させる命令が記載して、発行させます。

【サードパーティークッキーにおける問題】
このサードパーティークッキーについて、IEとSafariについてはデフォルトで受け入れを拒否しています。
従って、クッキーを使用するサイトでは、IEとsafariで表示できなくなってしまいます。 
例えば、 socket.ioを使った通信では、接続先とWEBサイト配置場所が異なると、IEとsafariで表示できない現象が発生します。


【対応策】

下記URLに記載してありますような対策が有効となります。
(1) IE
開発者側で対応いたします。
ただし、IE9については、対応できません。

環境変数より閲覧ブラウザを判定し、IEであればheaderでポリシー宣言する。
if (ereg('MSIE', getenv('HTTP_USER_AGENT'))) {
    header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');
}


(2) Safari
 ユーザ側(ブラウザでサイトを見る人)が、

ブラウザの環境設定で、cookie受け入れポリシーを常にに変更する
※ただしセキュリティ上問題とされる可能性がありますので注意してください①メニューバーのSafariから環境設定を開く
②プライバシータブを開く
③Cookieをブロックの項目でしないを選択する


(3) その他
 モジュールの配置場所とセッション、API先を同一ドメインにして、クロスドメインを使わなくします

【参考URL】
http://nemousucom.hatenablog.com/entry/2012/12/16/235506

2015年5月13日水曜日

明日の記憶

明日の記憶という動画を見ました。
内容は、アルツハイマーに関するものです。

 【WikeiPedia】
 家庭も省みず仕事に生きる49歳、広告代理店のやり手営業マン、佐伯雅行。仕事においては大きなクライアントとの契約が決まり、プライベートにおいては娘の結婚が決まる、と順風満帆に見えた彼を突如、物忘れが激しくなる、めまい、幻覚といった不可解な体調不良が襲う。妻・枝実子に促され、しぶしぶ忙しい仕事の合間を縫って病院を訪れ診察を受けた結果、医師から若年性アルツハイマー病という診断を下される。知らないうちに自分の体内で起こっていた受け止めがたい現実に直面した彼は、錯乱し自暴自棄になり、病院の屋上から飛び降りようとするが、医師の必死の説得により何とか思いとどまる。そして屋上から階下へ戻る階段の途中で座り込み、枝実子と話し合い、二人は涙を流しながらも病気と向き合う覚悟を決める。 

http://ja.wikipedia.org/wiki/%E6%98%8E%E6%97%A5%E3%81%AE%E8%A8%98%E6%86%B6

 この動画のアツルハイマー初期症状のポイントをまとめてみました。
・50をこえると、大事なことを忘れてしますのかもしれない
 ⇒覚えるべきことを少なくする必要がある
・大したことないことでも、わすれやすくなると、危険
 ⇒日々の事でも、忘れやすくなったら注意
・本当にやばいときは、知り合いすら分からなくなるようです
・道を間違えやすくなたら、注意
・うつ病と、アルツハイマーの区別は難しい
・少し前に行ったことを忘れてしまう
・約束を覚えていない

この映画もみて、思ってのが少し自分もアルツハイマーが入っているのかも、と心配になりました。3つの言葉がすぐに思い出せませんでした。

アルツハイマーは脳が萎縮して起こるようです。
私は、2ヶ月前にMRIでなんでもなかったので大丈夫だとは思っています。
思い過ごしであればよいのですが、、、、、


アルツハイマーになったら、
・車の運転はしない
・酒はのまない
もできなくなるようです。

アルツハイマーの予防には食生活の改善がよさそうです。

健康が一番であることが、つくづく大事であうことを実感しました。
(50近くになると)いろいろ、考えさせてくれる映画です。
是非、見てください。

【動画URL】
http://www.tudou.com/programs/view/DHnZgbUT_SM/

2015年5月11日月曜日

JavaScriptのクラスの承継について

JavaScriptでは、クラスがありません

従って、C#、C++のプログラマは、JavaScriptを使うとなると、まずクラスを使って、承継方法について悩みます。
そこで、prototypeを使って擬似的にクラス表現を使います。

以下はその手段について記載します。

【コード例(1)】
var ClassA = function(cname) { this.name = cname; }
 ClassA.prototype.print = function() { console.log(this.name); } 
var a = new ClassA("クラスA"); 
a.print();
  ⇒クラスAと表示
var a = new ClassA("クラスB"); 
a.print();
  ⇒クラスBと表示 

1) まず、関数(function)を作成します。
var ClassA = function(cname) { this.name = cname; }

2) Classはnewでイスタンス(オブジェクト)を作成する
var a = new ClassA("クラスA");

3) 関数を登録する
ClassA.prototype.print = function() { console.log(this.name); }
※関数を作成すると、prototypeは自動で作成されます。
「prototype=自分の親クラスへの参照」だと考えると、理解しやすいです。

尚、もし、prototypeを使わないで以下のコードのようにすると、毎回functionが作成されます。
(下赤字に記載したように、毎回オブジェクトを作成して、print関数を定義しています)
var ClassA = function()  {
 // var this = {};  
this.print = function() { console.log(this.name); }
 // return this; 
}
prototypeを使うと、function内で、関数を定義する必要がないので、一回prototypeで定義すれば、共通で使うことができます。
var a = new ClassA("クラスB"); 
a.print();
  ⇒クラスBと表示 

4) オブジェクトを通して3)で設定した関数を実行する
 a.print();
⇒親クラスのprintを実行する

【まとめ】
汎用的な関数はprototypeに定義する


【コード例(2)】
var ClassA = function() {
    this.name = "
クラスA";

  this.surname = "クラス"
 }
var inheritsFrom = function (child, parent)
 { child.prototype = Object.create(parent.prototype); };
 var a = new ClassA();
ClassA.prototype.print = function() {
    console.log(this.name);
}
var ClassB = function() { this.name = "クラスB"; this.surname = "子クラス"; } 
inheritsFrom(ClassB, ClassA);
var b = new ClassB();
b.print();
   ⇒クラスBと表示 

1)承継関係を行う関数作成
次のような継承関数(inheritsForm)をつくり、子オブジェクトのprototypeに親オブジェクトのprototypeを設定しなおすことで、擬似継承する手もあります。

var inheritsFrom = function (child, parent)
 { child.prototype = Object.create(parent.prototype); };

上記の関数で親クラス(parent)の関数を全て、子クラス(child)にコピーします。

var a = new ClassA();
ClassA.prototype.print = function() {
    console.log(this.name);
}
var ClassB = function() { this.name = "クラスB"; this.surname = "子クラス"; } inheritsFrom(ClassB, ClassA);

クラスBはクラスAを継承しますので、ClassAのprint関数を実行できます。
var b = new ClassB();
b.print();
   ⇒クラスBと表示 

ClassBのprint関数をoverrideするには、次のように記載します。
ClassB.prototype.print = function() { 
  ClassA.prototype.print.call(this); 
  console.log(this.surname);
 }
   ⇒クラスB
   子クラス と表示

Call(this)関数によって、ClassBのprint関数が実行されます。


では、さらなる継承クラスClassCをつくるには、次のようにします。

var ClassC = function () {
    this.name = "クラスC";
    this.surname = "子のまた子クラス";
}
inheritsFrom(ClassC, ClassB);
ClassC.prototype.foo = function() {
    // Do some funky stuff here...
}
ClassC.prototype.print = function () {
    ClassB.prototype.print.call(this);
    console.log("Sounds like this is working!");
}
var c = new ClassC();
c.print();

   ⇒クラスC
   子のまた子クラス と表示



【参考URL】
http://www.codeproject.com/Articles/899662/Simple-inheritance-with-JavaScript
http://qiita.com/takeharu/items/809114f943208aaf55b3

アニメ動画 アルスラーン戦記

最近、アルスラーン戦記には待ってます。
歴史好きな人には、是非見てもらいたいです。

音楽もいいです
EDの 藍井エイル 「ラピスラズリ」 が特にいい感じ。
http://gyao.yahoo.co.jp/player/00100/v10181/v0993900000000547675/?list_id=2100566

原作は、銀河英雄伝説の田中芳樹であるので、筋もしっかりしており、見ていて飽きません。
ナルサスは、孔明?、竹中半兵衛?がモデルかな?。
ダニューンは、直江兼継ににてるかな。アルスラーンは源義経かな。
登場人物のモデルを考えるだけでなんかおもしろいです。

個人的には、ダリューンが知的、勇敢な上に、信頼の置ける人で、好んでます。
ヴァフリーズのさらし首がかなしい。

昨日は漫画喫茶にいって、1~3巻よんできました。
アニメこの先も期待できそうです。

下が動画サイトです。

http://gyao.yahoo.co.jp/special/arslan/?list_id=2100032
http://tvanimedouga.blog93.fc2.com/blog-entry-23550.html

詳細は、WikiPediaで。
http://ja.wikipedia.org/wiki/%E3%82%A2%E3%83%AB%E3%82%B9%E3%83%A9%E3%83%BC%E3%83%B3%E6%88%A6%E8%A8%98

2015年5月8日金曜日

Microsoft 次のブラウザはEdge

Microsoftの次のブラウザはEdgeという名前に決定されました。
そこで、気になるのがSilverlightは動くのか?、です。

下の開発者のブログを読む限り、Silverlightは動かなくなりそうです。
今後は、SilverlightやFlashなどのプラグインは使えなくなる傾向になりそうです。
開発としては、HTML5が主流となるのでしょう。

何かを得るには、何かを捨てなければならない、のは分かるのですが。
Microsoftの気まぐれに付き合っているような感じがしないでもない気がします。
(パフォーマンスと、セキュリティも大事だけど、既存のものを簡単にすてられると、ユーザの気持ちを本当に考えているのだろうか、と疑問に感じてしまいます)


Silverlightを使うには、Win10でIE(11)を使うことになりそうです。
(ただし、明らかになっていません)



【参考URL】
http://blogs.windows.com/msedgedev/2015/05/06/a-break-from-the-past-part-2-saying-goodbye-to-activex-vbscript-attachevent/

2015年5月7日木曜日

ネットワークにつながらない(プロキシエラー)

たまに、下の画像のようなエラーになりませんか?。


 このような場合は、以下の手順で対応すると、直ります。

1、ブラウザの「ツール」「インターネットオプション」を選択する



2、「接続」タブを選択して、「LANの設定」ボタンをクリックする
3、プロキシサーバー欄の「LANにプロキシサーバーを使用する(.........)」のチェックをはずす。




過去何度も、これにはまってます。
しかも、対応方法を忘れてしまって、結構困ったりします。

2015年5月6日水曜日

【もう一度、英語をやり直そう】英会話日記(過去の復習)

過去受けたレッスンで、復習していなかったものについて、調べておきました。

1) not .... enough
十分でない

2) smug = look at that face (どや顔)
http://masahironakata.blogspot.jp/2013/11/smug.html

3)there is more/less
http://www.e-bunpou.net/hikaku-hikakukyu.html

受験英語で丸暗記したno less than/ no more thanの復習です。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10145062555

4) on purpose (わざと)
http://friends-esl.com/phrase/phrase107.php

5) will, be+ing, be going to....
未来の事を話すときに使います。
受験英語のときにあまり、深く区別を考えてきませんでしたが、実は区別があります。
will には単純に未来のことを表現する意味が、be going toは事前に決まっていると言う意味が入っています。
http://waiwaienglish.com/futuretense-3385.html

6) make it up to you  何とかしてあげる, 埋め合わせをするよ
http://friends-esl.com/phrase/phrase32.php

7) 誤る時の文法
誤るときは、I'm sorry といいますが、その後の前置詞でforとtoについて、区別があります。
過去のことについて、誤る場合はforを使い、現在及び未来の事柄については、toを使います。

I'm sorry for .....   過去のことについて述べる
I' m sorry to .....  現在又は未来のことについて述べる

 例) I'm sorry to diasappoit you, but I can't come to party.
     I'm sorry for  disturbing you yesterday!


8) cat-sitting
 旅行中などに家へ来て猫の世話をしてもらうサービスのようです
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1131424121


■謝り言葉集
I'm sorry.
I must apologise.
Please accept my apologies.
Please forgive me.

■謝りを受け入れる言葉集
Don't worry about it.
It doesn't matter.
It's all right.
Never mind.
There's no need to apologise.
No harm done.