2014年11月30日日曜日

野生の証明

先日、高倉健さんがなくなりました。
健さんで、最初にみた映画を覚えていませんが、健さんで最初に感動した映画は覚えています。
「野生の証明」です。

どのような映画だったか、今ではうろ覚えですが、また見たくなったので、動画を探してみました。

http://video.fc2.com/content/20120716s6xHh42y/&tk=T0Rnek16azBOREE9

出演者をみると、すでに鬼籍に入った人が沢山出演していました。
松方弘樹も、この当時は怖い人って感じです。
この後、「元気が出るテレビ」や梅宮さんとの釣りで、面白い人になってしまいましたが、、、、

追悼でぜひ見てください

薬師丸ひろこ、若いです

2014年11月29日土曜日

「「めんどくさい人」の取り扱い方法」 をよんで

人付き合いって難しいですね。
間違った反応をすると、関係が壊れますし、
良いことをするつもりが悪いほうにいってしまったり。。。。。

コンビニに

「めんどくさい人」の取り扱い方法 

という本がありましたので、買って読んでみました。



とりあえず、この本にそって、うまくやっていきたいと思います。

以下、本に書いてあって、役に立ちそうなことをまとめました。

1)人の話を聞かず、自分のことばかり話す人
 ⇒この人はこどもなんだと思い、適当にあいづちを打って、話題を変える

2)なんでもすぐ仕切りたがる、自称「リーダー」な人(「何様のつもり?」の人)
 ⇒うまくおだてて、限られた役割でせっせと働いてもらう
   「お願いしたいことがあるんだけど」と下手に出て持ち上げる

3)「でも」「だけど」と、必ず横槍を入れる人
 ⇒理詰めで反論するか、「じゃあ、やって」と任せてしまいましょう

4)なにかと昔の自慢話をしたがる「終わっている」人
 ⇒時間の無駄、どうしても聞かなければならないときはボランティアのつもり

5)忙しいのに、えんえんとムダ話をしてくる人
 ⇒話が途切れる瞬間をつくり、すかさずその場を離れましょう

6)人の陰口ばかり話す、ゴシップ好きな人
 ⇒ネガティブな噂話には、リアクションをしないでおく

7)口を開けば不平不満ばかり言う人
 ⇒不満ばかり言うと人と一緒にいると伝染します。愚痴を言い始めたら、全く違う話題に変えてしまいましょう

8)いちいちイヤミをかぶせてくる人
 ⇒「いやー。そうなんですよ」と笑って切り返し、一枚上手な人になる

9)「でも」「だって」と自己弁護ばかりの人
 ⇒もいわずにじっと待つ。すると、沈黙に押されて、自分の非を認めだすでしょう

10)話がくどくて、いらいらさせられる人
 ⇒無理に話をやめさせると、余計にこじれます。質問などして、方向転換を試みましょう

11)すぐにバレる言い訳をする人
 ⇒あまりに下手な言い訳が過ぎるようなら、「理由はいいから、とっとと仕事して」とカツをいれましょう

12)うんちく語りが多すぎて、うんざりな人
 ⇒「あまり興味ないんで」と言って、切り上げてしまいましょう

13)相手によって、あからさまに態度を変える人
 ⇒「ここだけの関係」と割り切って、クールに仕事をする(淡々と仕事をする)


その他にいろいろ「めんどうな人」と対応について、書かれています。
読みやすいので、気軽に読める本でした。
ただ850円と少し高いです。




2014年11月28日金曜日

システム管理のお仕事(その5)

今回は、リリース管理について、まとめます。

ソフト開発すると、バグ修正することに、モジュールをリリースします。
その時に、いつ、どのような内容でモジュールをリリースしたのかバージョン管理することで、不具合の再起(デグレ)時のソース確認作業等、役に立つことができます。
また、お客様の問い合わせや、モジュールの再インストール等でも利用できます。

http://www.itmedia.co.jp/im/articles/1009/09/news110.html
http://www.itmedia.co.jp/enterprise/articles/0710/18/news011.html

リリース管理の最終目標は、変更管理が計画した変更を、本番環境に確実に実装することであり、そのために不可欠なのが「テスト」「リハーサル」となります
確実にテストされたバージョンのみをリリースすることを保証するようにます。

リリース前のテストでの確認内容は次のようになります。
(1)計画されたリリース手順が問題なく実行できるか
(2)計画されたリソースに過不足はないか
(3)リリースがほかのITインフラに負の影響を与えないか
(4)仮にリリースに失敗した場合、安全に元の状態に戻せる(切り戻し)か
(5)切り戻しの手順は確立されているか

リハーサルを行うのも重要で、可能であれば、(仮想的なものでもいいから)本番環境とまったく同じ環境を作ってリハーサルするのが望ましいといえます 。

又、本番環境にリリースしたすべてのソフトウェアのインストールキット、リリースの手順書、ソフトウェアのマニュアルなどを1カ所に集めて保管しておくことが重要になります。
ソフトウェアの再インストールが発生した場合でも、DSL(DML)を参照すればそこにすべてのキットと手順書、マニュアルが存在しているので迅速に対応できるのです。

DSL :(Definitive Software Library:確定版ソフトウェアの保管庫)
DML :(Definitive Media Library:確定版メディアライブラリ)

廃棄されたアプリケーションもある程度の期間保管しておくことも重要で、バージョン管理も必ず行いましょう。

システム管理のお仕事(その4)

今回は、変更管理についてまとめてみます。

変更管理は、以下の3つの変更の分類できます。
1)ハードウェアの変更
新規、追加(拡張)、修理 (置き換え)など
2)ソフトウェアの変更
新規、追加(バージョンアップ)、修理 (パッチ) など
3)人の変更
手順・仕組み変更、担当者変更など

http://www.itmedia.co.jp/im/articles/1007/06/news095.html

ITILでは、次のよう記されています。
「すべての変更を効率的かつ迅速に取り使うために、標準化された方法、手順が使われることを確実にすることと、それによって変更に起因するインシデントがサービス品質に与える影響を最小限にし、組織の日々の運用を改善すること」(ITIL v2)

「顧客の変化する事業要件に対応すると同時に、価値を最大化し、インシデント、中断、手直しを削減すること、およびサービスとビジネスニーズを整合させるような、事業と IT の変更要求に対応すること」(ITIL v3)

正直分かりづらいです、要は「変更が原因で業務に負の影響が起きるのを避ける」といったことになります。

ITILでは、次の手順が記されています。
「軽微な変更、標準化された手順が確立している変更を除いて)すべての変更は変更管理プロセスを通す」「その変更が妥当なものか、ほかに類似の変更要求はないか、変更をいつ、どのように行えばいいかといったことを決める変更諮問委員会(CAB:Change Advisory Board)を召集する」

これらは理想ではありますが、小さい会社では、このような事は、難しいです。
そこで、次ぐのことを守っておきます。
・すべての変更をシステム管理者や、マネージャが認識
・変更による影響を把握

変更内容を記憶しておくのはむずかしいので、EXCELなどに記録として残しておいた方がいいです。
その結果、システム追加時とかのテストとかで有効に利用できます。 


WebMatrixって便利そう

 Microsoftが提供している無料でWebサイトを構築できるツールであるWebMatrix
というものがあります。
これをつかうと、 Node.js+Soket.ioが使えそうです。

しかし、Node.jsでExpressサイト構築を行うと、インストールが失敗します。
Microsoft Azureを使用する環境が必要なようでした

WebMatrixを使えば、掲示板や、CMSなどいろいろなコンテンツを簡単に作れそうです。
このツールを学習するといろいろ役立ちそうです。

詳細は、以下のサイト及びマニュアルを読んでみてください。
 http://www.microsoft.com/japan/web/webmatrix/learn/


●WebMatrixを利用した開発
Microsoftから無償で公開されているWebMatrixを利用します。
 http://www.microsoft.com/web/webmatrix/
 上記URLからダウンロードが完了したら,パッケージを実行してインストールボタンをクリックします。

下記参考サイトでは、WebMatrixを使って、Soket.ioを使ったサイト構築手順が一部だけ紹介されています。
http://gihyo.jp/dev/serial/01/realtimeweb/0002


Node.jsとSoket.ioとSilverlight(3)

Node.js+Soket.io+Javascriptを使ってみます。

こちらの参考サイトをみて、環境作成を試してみます。
http://testcording.com/?p=1164

1) 仮想サーバ(PC内にLinux環境を作成して、Linux側をサーバと仮想する)の作成
 virtualBox 日本語 
 上記リンク先からダウンロード・インストールします。
現在起動しているOS(Windowsなど)をホストOSといい、ViuralBox側をゲストOSといい、サーバとして見立てて、ホストOSからアクセスするという感じの仕組みとなります。

VirtalBoxについては、次のサイトが一番詳しくのってました。
http://virtual-soft1.nnn2.com/
 



2) Linux(Ubuntu)のダウンロード
 Ubuntu
 上記のリンク先からUbuntuのISOイメージ(ubuntu-ja-12.04.1-desktop-i386.iso)をダウンロードします。

3) VirtualBox内でUbuntuをインストールするための事前準備
メニュー【ファイル】【環境設定】で設定ダイアログ表示して、ホストオンリーアダプタを追加する
・「VirtualBox」を起動し、「新規(N)」を選択します。
・ 「新規仮想マシンの作成」ウィザードが開きます。「次へ(N)」を選択。
・ 「名前(N)」へ仮想マシンを識別するための名前を入力します(「Ubuntu 12.04 LTS」と入力)。「OSタイプ(T)」は使用するOSに合わせて設定。ここでは「オペレーティング システム(S)」が「Linux」、「バージョン(V)」が「Ubuntu」となります(私の環境で自動で切り替わりました)。
選択後、「次へ(N)」を選択します。
・仮想マシンに割り当てるメモリの量を設定します。ここでは推奨通り512MB割り当てています。設定後「次へ(N)」を選択します。
・続いて仮想ハードディスクを設定します。新規作成する場合は「新規ハードディスクの作成(C)」を選択して「次へ(N)」を選択。
・「新規仮想ディスクの作成」ウィザードが開きます。作成する仮想ディスクの種類を選択して「次へ(N)」を選択します。ここではVirtualBoxの標準的なタイプである「VDI」を選択しています。
・作成する仮想ディスクを固定サイズにす選択します。選択後「次へ(N)」を選択します。
・仮想ディスクの保存先(事前に保存先フォルダを作成する)を決定し、そのサイズを選択します(スクリーンショットでは20.00GBを選択)。選択後「次へ(N)」を選択します。
・確認して「Create」を選択します。

すると仮想ディスクの作成が始まるので完了するまでしばらく待ちます。
(結構作成に時間がかかります)

・ 確認して「Create」を選択します。

詳細は、 参考サイト : http://zakkiweb.net/ubuntu/1204/0.shtml を参照にしてください

4) 仮想マシンの初期設定を行う
・作成した仮想マシンを選択して「設定(T)」を選択します。
・「システム」では「マザーボード(M)」タブで「IO APICを有効化(I)」を選択、「プロセッサ(P)」タブでは「プロセッサ数(P)」で「2」を設定
・「ディスプレイ」では「ビデオ(V)」タブで「ビデオメモリ(M)」を「12MB」、拡張機能「3Dアクセラレーションを有効化(3)」を選択しています。
・「ストレージ ツリー(S)」から「IDE コントローラ」の「空」を選択して、右の「属性」にある「CD/DVDドライブ(D)」からディスクアイコンを押し「仮想CD/DVDディスクファイルの選択...」を選択して、ダウンロードしたUbuntuのISOファイルを選択。
・設定が完了したら「OK」を選択して終了です。

5) Linux(Ubuntu)インストール
しばらく待つとLive CDから起動し、セットアップのための画面が表示されます。
「ようこそ」の画面が表示されたら「Ubuntu をインストール」を選択します。

詳細は、 参考サイト : http://zakkiweb.net/ubuntu/1204/1.shtml を参照してください
※ここで登録したパスワードは忘れないように、どこかにメモしておく

6) Guest Additionsのインストール
Guest Additionsは、ホストOSとゲストOS間のドラッグ&ドロップやコピー&ペーストを行うためのツールです。
手順は、5) の参考サイトを参照ください

7) 端末の起動
デスクトップで[Alt+F2]を押すと表示されるアプリケーションランチャーに
[gnome-terminal]と入力すれば、端末が起動します。

端末の起動方法は次の方法でも可能です
・[アプリケーション] → [アクセサリ] → [端末]をクリックする。
・Ctrl + Alt + T を押します。(ショートカットキー)

尚、ubuntuの基本操作は、 参考サイト
http://blog.livedoor.jp/hiroumauma/archives/958159.html
を参照ください


8) ネットワークの設定
ネットワークの説明は以下のサイトが詳しいです。
http://blog.asial.co.jp/634

私も、アダプタ2〜4のタブがdisable(タブを押せない)な状態でハマりました。
"ゲストOSの電源をOFF"にしてからVirtualBoxの設定画面に戻ると,押せるようになりました。

設定可能後に、私の会社環境の場合は、アダプター1にNAT、アダプター2に内部ネットワーク
で外部接続可能になりました。


システム」→「システム管理」→「ネットワーク」で、IPアドレスが確認できます。
もしくは、端末でifconfigを入力すると、確認できます。

ただし、内部ネットワークでは、ホストOSからの通信はできません。

ホスト オンリーアダプタの設定をしなければなりません。
以下のサイトに書かれていますように、環境設定のネットワークで、ホストオンリーアダプタを
追加しなくってはなりません。
http://blog.youria.jp/kyo/mac/ssh_ubuntu_on_virtualbox/ 
メニューの「ファイル」「環境設定」で、 表示されたダイアログの左欄から「ネットワーク」を選んで、
「ホストオンリーネットワーク」タブを選んで、右側アイコンで追加をします。
⇒私の環境だとエラーで作成できませんでした。


ホストオンリーアダプタを追加したら、私の環境でエラーとなりました。
エラー回避方法を検索したところ、以下の情報がありました。

※(Virtualbox:ホストオンリーネットワークに接続できない対処(その1))
(ホストオンリーアダプターは、ホストマシンと仮想マシン間でのみ通信可能なホストオンリーネットワークと呼ばれるネットワークを利用します(外部との通信はできません))
 http://blog.offline-net.com/2014/03/30/virtualbox-host-only-network-unable-to-connect/

※(Virtualbox:ホストオンリーネットワークに接続できない対処(その2))
Virtualboxをリスタートするとよいという情報もありました。
http://totech.hateblo.jp/entry/2014/07/10/075959

※その他にネットワークの設定方法に書かれたサイト
http://mo-mo.hatenablog.com/entry/2014/02/18/155714
http://codenote.net/virtualbox/146.html

上記回避方法で、コマンドがないとか言われて、エラー回避できませんでした。
ところが、 Ver.4.3.12をインストールしてしたら、ホストオンリーネットワークが追加されていました。
(バグ?か?。リスタートが効いたのか?)
Ver4.3.12のインストーラ:VirtualBox-4.3.12-93733-Win.exe
その他に行ったこととしては、
・下記アドレスを参考にして、Vagrantのインストール及びCntOSのインストール
http://knowledge.sakura.ad.jp/tech/1552/
http://qiita.com/daichi87gi/items/d5da33c76295ee32a735
・hosts編集ツール(Hosts File Manager)インストール
・SSHターミナル(Putty,Tera Term)インストール
を行いましたが、何が原因でネットワーク環境が改善したかは不明です。



<その他>
XAMPPのダウンロード・インストール
XAMPPとは、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージとしてまとめたもので、主として開発用あるいは学習用ではあるが、イントラネットなどにおいて実運用環境として使うために必要とします。
Apache(Web サーバ)、MySQL(SQLデータベースサーバ)とWebプログラミング言語であるPHPや同目的で使われるPerlの4つの主要ソフトウェアと phpMyAdminなどの管理ツール、さらにSQLiteなど、いくつかの補助的なソフトウェアとライブラリモジュールが含まれている。もともと個別に インストールしていたものを一括でインストールできるようにしたモジュールです。
XAMPPの意味は、 以下となっています。
X - Windows、Linux、Mac OS X、Solarisのクロスプラットフォーム。
A - ApacheのA
M - MySQLのM
P - PHPのP
P - PerlのP

<参考用サイト>
●VirtualBoxに関する情報など
http://wp2.trojanbear.net/954.html
http://blog.ks2.info/?p=573
http://blog.simtter.com/windows%E3%81%ABvirtualbox%E3%81%A7ubuntu%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%97%E3%82%88%E3%81%86/
http://blog.asial.co.jp/634
http://yudoufu.hatenablog.jp/entry/20100117/1263677767
http://www.tettori.net/post/852/
http://baldwin.ivory.ne.jp/wp/2011/01/09/493/
http://d.hatena.ne.jp/replication/20120304/1331734148
http://d.hatena.ne.jp/replication/20111108/1320762287
http://d.hatena.ne.jp/replication/20110430/1304129088
http://d.hatena.ne.jp/replication/20110427/1303875126
http://www.nukanobu.com/pukiwiki/index.php?CentOS%2Fnode%20-Socket.io-
http://dev.classmethod.jp/etc/virtualbox-ubuntu-ssh/
http://vividcode.hatenablog.com/entry/virtualbox/shared_folder
http://shokai.org/blog/archives/6060
http://www.glamenv-septzen.net/index.php?id=1268_1
http://testcording.com/?p=1223
http://blog.b0ne.me/web-programming/node.js-socket.io

●Soket.ioでの通信結果
http://www.atmarkit.co.jp/ait/articles/1306/04/news021.html

●ゲーム
http://html5experts.jp/knockknockjp/10481/

●動画
http://www.youtube.com/watch?v=0TeTpWpVYjA

2014年11月25日火曜日

DMMの戦略

DMM会長の対談の記事をみつけました。

http://dmm-news.com/article/899539/

売れそうなものは何でもチャレンジして、だめならさっさと撤退といった戦略を行っているそうです。
たしかに、話題になるとすぐチャレンジしますね。
3Dプリンターとか。たしか、たけしが宣伝してたけど、最近CMみかけなくなった。

最近は英会話のCMがやたら流れていますね。
これは、今後オリンピックもあって、英語が必要な時代になるからのではないでしょうか。
世間では小さい子供の時から英語を勉強するようになっているようですね。

http://news.yahoo.co.jp/pickup/6139795

 DMMはクーポンまで手を出していたのは知りませんでした。

「エロからエコまでなんでも売れ!」だそうです。

以下のサイトも読むと、DMMってどのような会社なのかも、少し分かりました。
チャレンジ精神がすごいですね。
http://dmm-news.com/article/899280/
http://dmm-news.com/article/899494/

このサイトの対談をみると、押尾学事件といい、うわさって、嘘が多いのだなーとつくづく思います。
マスコミって信じられないですね。



2014年11月21日金曜日

織田信長

織田信長の現在の当主の話がのっていていました。
知られていない情報を知るのっておもしろいですね。

信長の“名声インフレ”でそうです。
人気は最近できたものなのですね。

http://dot.asahi.com/wa/2014110500090.html

信長は、京都市北区・船岡山の建勲(けんくん)神社にまつられているそうです。
初耳でした。しかも、織田家は福井から出ていたのですね。
名家も今は貧乏で、修繕だけで大変だそうです。
http://dot.asahi.com/news/domestic/2014111300075.html

有楽斎側の当主の話もありました。
http://dot.asahi.com/news/domestic/2014061200135.html
こちら側は、茶人になってますね。


黒田官兵衛に関する逸話もありました。
http://dot.asahi.com/news/domestic/2014111900080.html?page=2

有馬家に関する話もありました。
やはり、有馬記念は、大名の有馬家につながっていたのでした。
http://dot.asahi.com/news/domestic/2014071700083.html


2014年11月20日木曜日

林先生の痛快!生きざま大辞典(6)

頑張っているあなた!、ぜひこの動画みてください

http://newskeimatomedouga.blog.fc2.com/blog-entry-11165.html

がんばらなくっていいんだよ。

言葉はなにをいったかでなく、誰がいうかが重要です、とのことです。

千日回峰行って、地球一週分もあるくのですね。
やめるくらいなんら、命を絶つほどの覚悟が必要ですので、
達成すると、やはり聖人になるのかもしれません。

9日間、不眠不臥断食断水って、出来る人がいるのですね。
(9日間のどう入り後の映像がすごいです)

私は40前に、三日徹夜で、もう意識もうろうとなりました。
情けない。。。。。

色即是空空即是色

オクシモロン、始めて知りました。

2014年11月16日日曜日

【もう一度、英語をやり直そう】英会話日記(11/13)

お金の読み方

$130
= one hundred thirty dollars
$10.50
= ten fifty
とよみ、dollarsをつけません。

詳しく勉強したい人はこちらのサイトを読むと分かりやすいです。

日本では、ちゃんと単位(円)をつける習慣がありますが、単位をつけなくってもアメリカでは、その物のだいたいの等価が頭の中に前提であるので 意外に混同しませんそうです。

oneとthatの違い
oneとthatについても勉強しました。

that で置き換えるためには、名詞に何か修飾語がついている必要があり、形容詞句や形容詞節などの修飾語句がつく名詞であることが条件になる。基本的に"the+名詞"を that で置き換えます。
例) How much is that ring over here?

that は限定されていたり、特定されていたりする名詞の言い換えで、"the+名詞"の言い換えとなります。
"a+名詞"の言い換えが問われる場合、that ではなく one になります。oneは数える名詞に使います

詳しく勉強したい人はこちらのサイトを読むと分かりやすいです。



2014年11月13日木曜日

林先生の痛快!生きざま大辞典(5)

自分は自発的な意志をもっていきているのだろうか。
単に役人的に生きているのではないだろうか。
この動画をみていると、最近の私は自分はドイツの将校アイヒマンと同じように生きてしまっている気がする。
20,30代の頃は仕事終わった後も学校に通って、夢を持って生きていた。
思ったように生きるのって難しいですね。

まだ、人生終わったわけではないので、頑張っていこう!と思う。

その他、この動画で次のようなことを学びました。
「考えたことは、書くことだ。書くことは大事」
「人生で、出会った人で、人はかわる」
「理解とは、注意深く直面し抵抗すること」

アンナハーレントは良く知らないので、「人間の条件」読んでみようかな。
若いときに、もと本を読んでおけばよかったと思います。

http://varadoga.blog136.fc2.com/blog-entry-50976.html

「世界最大の悪は、平凡な人間が行うことなのです。
そんな人には、動機信念邪推悪意もない」とのことです。



林先生の痛快!生きざま大辞典(4)

今回は調教師の矢作さんでした。
この厩舎の馬は人気薄でくるんだよなー。
しかも、血統が悪そうな馬だったり、名前が変な馬が多いんだよなー。
また、乗っている騎手が国分とか、買いづらい騎手が多いです。
なにか秘訣があるはずです。
動画みれば、なにか分かるかもしれません。

結局は、頭いい人がやることが違うなー、と思いました。

http://video.fc2.com/content/20141112HmHxq06C

仕事って、結局は給料がいいと自然といい仕事ができて、長続きするのだと思いました。

「遊びが充実しないと、仕事も充実しない」とのことです。

2014年11月10日月曜日

Node.jsとSoket.ioとSilverlight(2)

●WebSoket
 HTML5仕様を構成する要素の一つで、JavascriptのWebSocket APIとサーバサイドのWebSocketで双方向通信を可能にします。

HTTPとの違いはクライアントとサーバ間で、
・アプリケーション的に繋ぎっぱなし(クライアントがサーバからの情報を即座に受け取れる)
双方向データ通信
が可能となります。

HTTPは、各リクエスト間で状態(ステート)を共有しません(通信ごとにHTTPコネクションを開く・閉じるのを繰り返す)。
WebSoketは一度クライアントとサーバとの間で接続が確立されると、その後のやり取りで状態を共有することができます。
以上から、HTTPのことをステートレスと呼ぶのに対し、WebSoketのことをステートフルと呼びます。 

HTTPでは、今までは、ステートを共有できないので、情報共有するため、以下の方法を使用しました。
・クッキーに情報を保存する
・リクエストのURIパラメータにすべての値を指定する(例:http://example.com/?val=[a,b,c])
WebSocketは、状態共有できていますので、このようは事をせずに済みます。
また、WebSoketではつなぎっぱなしなので、HTTPヘッダ送信といった無駄なトラフィックを省略できます。

そしてWebSocketのステートフルな性質を利用することで「サーバサイドプッシュ」を実現することができます。
必要なときにサーバサイドから情報を送ることができれば、ムダなトラフィックを減らすことができます。

WebSocketをブラウザから使うためのJavaScript 例は次のようになります。
---------------------------------------------------------------
//wsはhttpの代わりで、WebSoketコンストラクタ引数に接続先を指定します
var ws = new WebSocket("ws://localhost:8080/WebSocketSample/wsdemo");
// オープン時の処理を指定します
ws.onopen = function() { 
 // サーバにメッセージ送信
 ws.send("message to send"); 
 }; 
// メッセージ受信時の処理を指定します
ws.onmessage = function (evt) { var received_msg = evt.data; ... }; 
// 終了時の処理を指定します
ws.onclose = function() { // websocket is closed. };
--------------------------------------------------------------- 

参考URL:
http://labs.opentone.co.jp/?p=2522
http://www.atmarkit.co.jp/ait/articles/1010/05/news133_2.html
http://www.atmarkit.co.jp/ait/articles/1111/11/news135.html

サーバサイド、クライアントサイドのサンプルはこちらの方がわかりやすいです。
http://chitan.hateblo.jp/entry/2012/07/08/220030

注意点は、IEの場合、WebSocketから使えるのはIE10からとなります。

●Socket.IO
Node.js環境のWebSocketのリアルタイム通信を実現するラッパーライブラリとなります。
WebSoketは、Google ChromeやFirefoxの最新版など、WebSocketに対応したモダンブラウザでなければ動作しません。
Socket.IOは「リアルタイムWeb技術の実装方式を隠蔽し、すべてのブラウザ・モバイルデバイスでリアルタイム通信を可能とすること」を目指して開発されています。
つまり、Socket.IO APIを用いてサーバ側・ブラウザ側の実装を行えば、ネットワークやブラウザの状況から最適なリアルタイムWeb技術が選択され、IE5.5といった古い ブラウザからiPhone/Androidのブラウザまで、幅広いブラウザでリアルタイム双方向通信が可能です。
(Soket.IOの方で、Socket接続(Adobe Flash Socket)、Comet(Ajax long polling、Ajax multipart streaming、Forever Iframe)、ポーリング(JSONP Polling)を選択します)

参考URL:
http://codezine.jp/article/detail/7075

http://codezine.jp/article/detail/6502

HTTPヘッダーの情報

時々レスポンスデータの解析を行いますが、その都度、情報を調べないといけないので、
メモで必要な情報を残しておきます。

参考URL :
http://web-tan.forum.impressrd.jp/e/2010/01/12/7156

●HTTPリクエスト
1)1行目:HTTPリクエスト行
メソッド」「URL」「HTTPのバージョン」の3つの情報が含まる。
メソッド:GET=HTTPリクエストでは「データ本体」は送られない
     POST=HTTPヘッダーの後にデータ本体が続きます

 2)2行目以降:HTTPヘッダー
ユーザーエージェント名(User-Agent) :  
 ブラウザの種類やOSの情報
・リファラ(Referer) : 
 どのページから発生したリクエストなのかを示します。
 例えば、ページAにあるリンクをクリックしてページBに行った場合に、ページBへのHTTPリクエストにリファラーとしてページAが入る
・更新されていたら(If-Modified-Since)/同じでなければ(If-None-Match) :
 ブラウザは、一度表示したデータを「ローカルキャッシュ」として保存しておき、同じデータは何度も通信して取得しなくてもいいようにしています。そのときの情報となります。
・ クッキー(Cookie)
・受け取り希望(Accept、Accept-Language、Accept-Encoding、Accept-Charset)

● HTTPレスポンス
 「レスポンス状態行」「HTTPヘッダー」「データ本体」の3つのパートがあります。

1)1行目:レスポンス状態行 
 ここには、「HTTPステータスコード」などが含まれます。

200番台は成功
 200:OK、データを送ります

300番台はリダイレクト
 301:新しい場所から取得してください(今後もずっと)
 302:新しい場所から取得してください(今回だけ)
 304:変更されていません(データ本体は送られない)

400番台はクライアント側のエラー
 401:ユーザー認証が必要です
 403:アクセスが禁止されています
 404:見つかりませんでした

500番台はサーバー側のエラー
 500:内部エラー
 503:現在はサービス提供不可能



2)HTTPヘッダー 
 各種の状態を示す情報が入れられている部分です。
・コンテンツタイプ(Content-Type)
  データがHTMLなのか画像なのかや、文字コードなどの情報。
・ 再利用期限(Expires)
 取得したデータを再度サーバーに問い合わせなくてもブラウザが再利用していい期限(キャッシュの制御に使われる)。
・データの最終更新日時(Last-Modified)やエンティティ情報(ETag)
 次回同じデータをリクエストする際に、これらの情報を使って更新されているかどうかを確認します。
・キャッシュ制御(Cache-ControlやPragma)
 ブラウザや通信を橋渡しするプロキシが、データのキャッシュをどう扱うかの情報。
・接続状況(Connection)
 接続を持続するのか(keep-alive)、毎回接続を切断するのか(close)。ブラウザもサーバーもHTTPバージョン1.1の持続接続(keep-alive)を使える場合、通信のやりとりが効率良くなります。
・移動先(Location)

facebookの「いいね!」ボタンは、2015年5月以降動かなくなります

https://developers.facebook.com/docs/apps/upgrading

 Facebookは、2014年4月30日に、新しい「バージョン2.0」のAPIを導入しました。
それによって、それまで使われていたバージョン1のAPIは、
1年後の2015年4月30日で有効期限が切れると決められました。

いいね!ボタンが2014年4月30日より前に設置されていた場合は、バージョン1のAPIを使うようになっているため、2015年4月30日を過ぎると動かなくなります。

-------------------------------------------------------------------------

Facebookのソーシャルプラグインの「いいね!ボタン(ウェブ)」のページを参考に、
新しいコードに書き換える必要があります。
https://developers.facebook.com/docs/plugins/like-button

わからなければ、とりあえずいまの「all.js」を呼び出している部分を探して
「sdk.js」と変えるだけでもいいという話もありますが、実際に試してみないと
 分かりませんね。

例えば、次のように修正するようです。

 <div id="fb-root"></div>
< script>(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/ja_JP/all.js#xfbml=1";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

<div id="fb-root"></div>
< script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/ja_JP/sdk.js#xfbml=1&version=v2.0";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

 ただし、「いいね!」はすごく使われているので、実際に2015年5月で本当に動かなくなるのか
?、「バージョン1.0の有効期限を延長」となるのか様子を見守りたいです。

Node.jsとSoket.ioとSilverlight(1)

 Silverlightでのリアル通信を行うのに、「Node.js+Soket.io+JavaScript+Silverlight」を組み合わせて
行わなければなりません。
そこで、実現する為に、調べた内容を記録として、記載していきます。

●Node.jsとは?
JavaScriptはユーザーのブラウザで動作するプログラミング言語ですが、Node.jsはサーバー側用のJavaScriptです。
JavaScriptのシングルスレッドをサーバ側で使う事で、リアルタイム通信を実現いたします。
Node.jsでは、WebSoketのラッパーのSocket.ioというリアルタイムな通信を実現するライブラリを扱うことができます。

詳しくは、次のURLを参照ください。
http://gihyo.jp/dev/serial/01/nodejs/0001
http://mdlab.jp/project/node_js/01.html
http://www.atmarkit.co.jp/ait/articles/1102/28/news105.html

記事の内容をまとめますと、
Node.jsはシングルスレッドベースの非同期処理となる
・ノンブロッキングI/O
 データの送受信(I/O)が完了を待たず(ブロックせず)に、次の処理をうけつけ、それぞれを並列に実行する
・イベントループ
 スレッドを1個しかもたないイベントループです。1つしかスレッドを持たないので、メモリ消費量を劇的に抑えている。
 そのため、「C10K問題」とよばれている「アクセスするクライアント数が1万を超えると、サーバーのスレッド(並列処理の単位)数が増えすぎて、サーバーのメモリーなどのリソースが不足してしまうという問題」が起きない。
http://tech-public.blogspot.jp/2012/12/nodejsc10k.html 

最近サーバがパンクする報告がよく来ますが、C10K問題であるようだ。
設計と実装はずれがあるので、サーバ1個だと、どのくらいのユーザが使っているのかはわかりませんが、1万ユーザの可能性があるアプリだと、すぐパンクするような気がします。

Node.jsの仕組みに関しては、
http://itpro.nikkeibp.co.jp/article/COLUMN/20120725/411441/
に記載敷いてる下記内容が イメージしやすい。
スターバックスの接客方式をイメージすると分かりやすい。客はレジで注文と支払いを済ませると、配膳口近くで注文した飲み物ができるのを待つ。飲み物ができたかどうかに関係なく、レジでは次々と注文を受け付ける。配膳口では、できた順に商品を客に渡す。このため昼時に多数の来客があっても、レジ前の行列はできにくい。 

●問題点?
ただし、Node.jsもいろいろ問題がありそうなので、諸手を上げて使用するレベルなのか、実際つかってみないと分からないようだ。
http://www.anlyznews.com/2011/02/nodejs.html 

この中で、以下2点 が少し気になりました。
イベントループ・モデルで処理を直列化しているので、あるリクエストの処理に時間がかかる場合、他の全てのリクエストをブロックする可能性がある。
・あるページを表示するためのサーバー側のJavaScriptの文法エラーが、サーバーの停止を引き起こす。簡単なプログラム・ミスが、アプリケーションの非クリティカルな部分に発生したとしても、システム全体がダウンする結果となる。

 時々、訳分からずエラーなるときがあるが、これって、サーバ側のJavaScriptの文法エラーといったことはないだろうか?。

これから、実際に使ってみて、問題点を見つけていこうと思います。

Javascriptでステータスバーにメッセージを表示させる

JavaScriptを使ってステータスバーにメッセージを表示させる方法のメモ

●IE11でステータスバーを表示させる
 タイトルバーの何も表示されていない箇所で右クリックし、表示された一覧から「ステータスバー」をクリックします。

http://121ware.com/qasearch/1007/app/servlet/relatedqa?QID=016042

●JavaScript関数作成
引数のmsgをIEのステータスバーに設定します
 function OutputStatusBar(msg)
 {
     window.status = msg;
 }

●Silverlightアプリケーションで、ステータスバーにメッセージ表示する
Windowは、ブラウザ外実行でないときでないと使用できません。
したがって、IsRunningOutOfBrowserでブラウザ外実行か確認後、JavascriptのOutputStatusBar
にメッセージとして、 "Initializing ....."を渡します。

 if (Application.Current.IsRunningOutOfBrowser == false) {
     System.Windows.Browser.HtmlPage.Window.Invoke("OutputStatusBar", "Initializing .....");
}


無事メッセージ表示できました。

デバッグでダイアログ表示したり、debug.writelineを使うより有効に使えそうです。



2014年11月7日金曜日

SilverlightからJavascriptの使い方


 Silverlight⇔Javascriptの双方向呼び出し方法について調べたので情報公開します。
WPFでも使えそう。


まず、C#側でのJavaScript関数の呼び出しです!

●マネージコード(C#)でクラスを作成する
呼び出される関数にはScriptableMember属性が必要となります。
 
【ScriptableClass.cs】
 public class ScriptableClass 
 { 
  [ScriptableMember] 
  public void ShowAlertPopup(string message) 
  { 
   MessageBox.Show(message, "Message From JavaScript", MessageBoxButton.OK);
  } 
 }

●マネージコード(C#クラス)の登録
 スクリプト可能なマネージ コード オブジェクトを作成して、スクリプトから呼び出されるようにします。
 例えば、App.csのApplication_Startup関数内で、次のように記載します。

【App.xaml.cs 】
private void Application_Startup(object sender, StartupEventArgs e)
 { 
  this.RootVisual = new MainPage(); 

  HtmlPage.RegisterScriptableObject("ScriptableClass", new ScriptableClass());
 }

● MainPageにボタンの追加
ボタンクリック時の実行される”DisplayAlertMessage”がJavaScriptの関数になります。
二番目の引数が DisplayAlertMessage”へのデータ私になります。
 
【MainPage.xaml 】
<Button x:Name="CallingButton" Content="Call JavaScript Method From Silverlight" Height="25" Click="CallingButton_Click"/>

【MainPage.xaml.cs】
private void CallingButton_Click(object sender, RoutedEventArgs e)
 { 
System.Windows.Browser.HtmlPage.Window.Invoke ("DisplayAlertMessage", "From Silverlight");
 }

● HTMLにJavaScriptの追加
<script type="text/javascript">
  function DisplayAlertMessage(param1)
 {
   alert("your are invoke method of javascript \n" + param1);
 }  
</script> 


今度は、JavaScriptからC#での関数の呼び出しです!
● HTMLにボタン追加します
CallSilverlightがJavaScriptの関数で、この関数内でC#の関数を実行します

<div>  
<div style="width: 250px; background: lightblue; font-weight: bold;height:30px"> 
 HTML Part 
 </div>  
<div> 
 <input type="button" value="Calling Silverlight Method From Javascript" onclick="CallSilverlight();" />
 </div>  
</div>

● ロード時の処理を追加します
<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="80%"> 
 <param name="source" value="ClientBin/Silverlight2JSViseVersa.xap" /> 
 <param name="onError" value="onSilverlightError" /> 
 <param name="background" value="white" /> 
 <param name="minRuntimeVersion" value="4.0.50826.0" /> 
 <param name="autoUpgrade" value="true" /> 
  <param name="onLoad" value="pluginLoaded" /> 
  <a href=http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0 style="text-decoration: none">  
<img src=http://go.microsoft.com/fwlink/?LinkId=161376 alt="Get Microsoft Silverlight" style="border-style: none" /> 
 </a> 
 </object> 

●JavaScript関数を作成します。
HML内に記載します。
ScriptableClassがApp.csで登録した名前です。
ShowAlertPopupが一番最初に記載したC#での関数です。

<script type="text/javascript"> 
  var slCtl = null;
 function pluginLoaded(sender, args) {
 slCtl = sender.getHost(); 
 }  
function CallSilverlight() {
 slCtl.Content.ScriptableClass.ShowAlertPopup ("Testing for Calling Silverlight Method\n From Javascript"); 
 } 
</script>

参考用URLを以下に記載します。
http://msdn.microsoft.com/ja-jp/library/cc903928(v=vs.95).aspx
http://msdn.microsoft.com/ja-jp/library/cc838145(v=vs.95).aspx
http://msdn.microsoft.com/ja-jp/library/cc645076(v=vs.95).aspx
http://msdn.microsoft.com/ja-jp/library/cc645085(v=vs.95).aspx
http://gihyo.jp/dev/serial/01/silverlight/0002
http://techblog.yahoo.co.jp/tips/silverlight/
http://www.codeproject.com/Articles/293515/Calling-Silverlight-Method-from-Javascript-and-Jav
http://www.atmarkit.co.jp/fdotnet/dotnettips/902slobjcallfromjs/slobjcallfromjs.html

半角長音記号の入力

カードを、半角で入力したいとき、どうやりますか?。

悩んで調べたので、メモで残します。

「カード」と入力して、 無変換キー2回を押します。

⇒「カード」半角カタカナ長音です。

担当者ごとに、工数を出す場合などで、使用するEXCEL関数は、SUMIFを使用します。

例えば次の画像のように工数を振った時には、

=SUMIF(F4:F20,"木村",D4:D20)
=SUMIF(F4:F201,"浅野",D4:D20)
とすれば、木村さんと、浅野さんごとに、工数を計算することができます。

詳細は、次のURLを読んでください。
http://www.excel-list.com/sumif.html

 

2014年11月6日木曜日

商標権について、お勉強

以前、いしん君というキャラクタをつくろうといった話がありました。
で、にたようなキャラクタがあるが、商標権ってどうするんだろう、とおもっていました。

以下のサイトで商標権について書いてありましたので、勉強してみました。

http://www.atmarkit.co.jp/ait/articles/1305/16/news018.html
 

●商標とは
商品やサービスをビジネスとして提供するときに出所を示すために使う名称やマーク」となります。
iPhone、初音ミクなど商標で、しかも、パン屋の看板に付いている屋号も商標で、立体物も 商標となるそうです。

●商標権とは
特許権や意匠権(意匠/デザイン特許)と同様、商標の使用を独占できる(他人による類似商標の使用を禁止できる)権利となります。

言葉やロゴの使用そのものを独占できる権利ではなく、その言葉やロゴを、製品やサービスを提供する際に出所を表示するために使用する(つまり、商標的に使用する)ことを独占できる権利です。

商品やサービスが類似していなければ、商標としては類似ないことになります。
例えば、朝日新聞、アサヒビールは登録商標であり、言葉としては類似していますが、商品やサービスがまったく異なるため、商標としては類似することなく互いに共存できています。

 ●商標権を得るためには
 商標権を得るためには特許庁に出願を行ない、審査を受けて、登録します。
出願も商標(名称やマーク)に加えてどの商品やサービスで使用するかを指定して行います。
商標の場合は特許と異なり、新規性・進歩性は必要ないので、既存の言葉を選ぶこともできます(いしんくんも、可能ですね)。

登録要件として最も重要なのは、自社の商品と他社の商品を区別できるか(自他商品の識別性)です。
例えば、パーソナル・コンピュータを指定商品として「パソコン」という商標を出願すると確実に拒絶になります。

その他、品質の誤認を招く商標や他人の業務との混同を招く商標など、独占権を付与すべきでない商標は拒絶されます。

また、先願主義なので、類似の商標がすでに登録されていた場合には後の出願は拒絶されます。

なお、特許権は出願日から原則20年、意匠権は登録日から20年と期限が定められていますが、商標権は10年ごとの更新時に登録料を支払えば永遠に存続します。

●「商標的使用」の概念
言葉やマークが製品やサービスの出所を示す機能を提供していなければ、それは商標ではありません。そのような使用に対しては商標権の効力は及びません。

例えば、ポルシェ(PORSCHE)という言葉やロゴは独ポルシェ社が商標権を持つ登録商標なので、車体にPORSCHEという言葉が付いた車を製造・販売などできるのは独ポルシェ社、あるいは、同社からライセンスを受けた企業だけとなります。

しかし、自動車雑誌でポルシェという言葉を使って記事を書くために独ポルシェ社の商標権の使用許諾を得る必要はありません。
この場合、ポルシェという言葉を商標的に(製品やサービスの販売とともに)に使っているわけではないからです。

ネットの世界では、すぐに模倣されてしまいます。
例えば、「美人時計」というサービスがありますが、そのアイデア自体の模倣を防ぐことは困難ですが、商標登録することで(実際、登録されています)類似名称のサービスを排除できるでしょう。

いしんくんのケースですが、商標権を確保しておかなければ、偽物商品を防ぐことができませんので、商標登録は重要です(実際に「ゆるキャラ」が商標登録されています)。

2014年11月5日水曜日

秋です!

家で柿を沢山とりました。


柿は体にいいそうです。
ただし、食べ過ぎると体を冷やすので一日一個がいいとのことです。

http://kenkou-tabemono.info/index.php?%E6%9F%BF%E3%81%AE%E6%A0%84%E9%A4%8A%E3%80%81%E5%8A%B9%E8%83%BD%E5%8A%B9%E6%9E%9C
http://matome.naver.jp/odai/2135372400792959501
http://daii.jp/food/kaki.php

●良い柿の見分け方
 へたがきれいで、へたが果実に張りつき果実との間に隙間がないものが良い柿です

果皮がしっとりして張りがあり、全体的に色づいているもの、また持ったときに重みがあるもの

●栄養分
ビタミンC、ビタミンA、βカロテン、カリウム、タンニン

●主な効能
風邪予防、美肌効果、高血圧予防、動脈硬化予防、がん予防、二日酔い改善
ビタミンCは、柿100g(中型の柿1/2個)あたり70mgも含まれ、ビタミンCの1日の推奨量が100mgなので、普通の柿を1個食べるだけで1日分のビタミンCが補給できる
ビタミンAは、皮膚や粘膜を正常に保ち、外部からの細菌やウィルスの侵入を防ぎ、病気への抵抗力を高めたり、ガン予防の効能があります

英語で「パースモン」というそうです。
今日の英会話でさっそく使ってみます。

2014年11月4日火曜日

パンダアップデートとは?

SEO対策について、調べていると、「パンダアップデート」という言葉がでてきました。
なんだこれ?
というわけでしらべてみました。

http://www.seohacks.net/basic/terms/panda_update/

低品質なコンテンツが検索結果上位に表示されにくくするため」のGoogleの検索アルゴリズム・アップデートの呼称です。
つまり、SEO対策ばかりで品のよくないホームページを検索上位にしないために、Googleが対策
した手段のわけです。

ここにかいてあるように以下の逆のことをすると、品が良いことになり、SEO上位になりそうですね。

・独自性や専門性が低い
・広告の占める割合が多く独自コンテンツの割合が低い
・内容が乏しく、薄っぺらい
・サイト内の他のページと共通する部分が大半
・外部サイトからのリンクを得られていない
・ソーシャルメディアで共有されていない
・他サイトと内容が重複している

 最近アルゴリズムが更新されたようですが、まじめに作成したサイトであれば影響はなさそうです。
http://seopack.jp/seoblog/20140926penguin4-1/ 

 勉強がてらで、以下の記事もSEOを考える上で参考になります。
http://searchenginewatch.com/article/2377004/Google-Panda-and-the-High-Risk-of-Using-Aggressive-or-Deceptive-Advertising

「Windows PC修理」の広告 の対策(3)

IEとFirefoxで「PC修理」など、いろいろ表示された広告がでなくなりました。
効果があったようです。


ただし、今日クロームを初めて立ち上げたら、クロームの方で「PC修理」の
広告が表示されました。

①クロームを起動して、右上の 「Google Chromeの設定」アイコンクリックする
②履歴を選択して、「閲覧履歴データの消去」のボタンクリック

これで、完了かな?。

明日再度確認します。

-------------------------------------
<いらない広告対策のまとめ>
・ブラウザにて、怪しいアドインを無効
・ブラウザの履歴・キャッシュ・クッキー削除
・スタートアップから、怪しいプログラム・サービス削除
・怪しいプログラム本体削除 (コントロールパネルから削除)
 ⇒コンパネで全部削除できないので、「IObit Uninstaller」をインストールして、残骸を削除する

2014年11月1日土曜日

林先生の痛快!生きざま大辞典(3)

イーロンマスクご存知でしょうか?。
恥ずかしながら、私は知りませんでした。

天才は凡人と違うな、とつくづく思います。
「現代文ができるには数学をしっかりやらないといけない。
「なんでお金がかかるかしっかり調べる」
「失敗したときに、リーダーの資質が問われる」(失敗したから次に繋がる)

失敗しても、それを糧にして、くよくよせず日々精進です。
(伸びる子は、模試でくよくよしないで、分からない事がわかったというそうです)

学ぶことが多いですね。

ぜひ皆様にも見てもらいたいです。

http://video.fc2.com/content/20140423xdZN9qzL

このようなすごい人がいるから、便利な世の中になっていくのですね。
パチンコやっている凡人には、なにも世の中変えられないというのが分かります。

林先生の痛快!生きざま大辞典(2)


林先生の痛快!生きざま大辞典で、ビリージーンを
やってました。
凡人の私には天才、成功人の考えが少し分かった気がしました。
昨日の日銀の黒田総裁の考えが分からなかったけど、なんか分かった気がしました。
「人と同じことやって失敗するなら、人と違ったことやって失敗した方がいい」
「偏見でみないで、数字でみる」
考え方が少しかわりそうです。

ぜひ、皆さんに見てもらいたいです。

http://variety007.blog.fc2.com/blog-entry-1221.html

予告編はこちら
https://www.youtube.com/watch?v=YfcQtp1GG4Q


今度TSUTAYAでマネーボール借りて、みてみよ