ページ

2013年10月30日水曜日

コストコ購入リスト 1

コストコで買い物した商品リスト

・ガーリックウィンナー

 若干ぱりっとしてない感じ。とにかくでかい。

























・ベーグル (プレーンとシナモン)

    シナモンはあんまし美味しくなかったorz

 

・ドライマンゴー

     普通に美味しい♪

























・ツールキット

    色々入ってる割に安かった(2000円くらい)ので購入


パン屋探索 1 - 石窯パン工房クリーブラッツ -

石窯パン工房クリーブラッツ若草店




所在地     : 福岡県大野城市若草3-5-13
TEL          : 092-595-7711
営業時間 : 7:00 〜 19:00

今までのパン屋さんの中で一番かも・・・
近くにコープがあったので、帰りに買い物。

大きな地図で見る

・カレーパン

 具がごろごろしていて、さっくさくでした。

・朝食パン的な

 朝食でいただきました。。。

・メロンパン?的な

 外側さくさくでおいしかったす。


2014/07追記
変わり種を購入。何にしてもパンの生地がうまい。
飲み物(コーヒー、その他)も無料で飲めるし、BGMも良い。








2013年10月22日火曜日

WebRTC調査 3


WebRTCのネイティブ API調査



1. WebRTC概要

   WebRTCは、簡単なJavaScript APIを介して、リアルタイムコミュニケーション(RTC)機能を備えたWebブラウザを有効に自由、開いているプロジェクトです。
   WebRTCコンポーネントは最高のこの目的を果たすために最適化されています。

   私たちの使命:豊富な、高品質を有効にするには、 RTCアプリケーションは簡単なJavaScript APIとHTML5を経由してブラウザで開発することができます。

   WebRTCイニシアチブは、Googleは、MozillaとOperaでサポートされているプロジェクトです。
   このページは、 Google Chromeのチームによって維持されている。

   note :
   via                ・・・~を介して
   capabilities        ・・・機能
   optimized        ・・・最適化
   purpose            ・・・目的

2. アーキテクチャ

  http://www.webrtc.org/reference/architecture
 
  大まかに2つの層に分かれる
  (1) ネイティブな箇所 C/C++で実装
  (2) WebAPI
 
  (1)内に存在するコンポーネント
 
  ① WebRTC Native C++ API
 
  ② 通信/セッション
     セッションコンポーネントはジングル/ XMPPプロトコルを使用するか、必要とせずに、 libjingleから再使用部品によって構築されています。
 
     1. RTP Stack
        RTPのためのネットワーク?スタック、リアルタイムプロトコル。
        ※RTP ・・・ Real-time Transport Protocol(リアルタイム トランスポート プロトコル、RTP)は、
        音声や動画などのデータストリームをリアルタイムに配送するためのデータ転送プロトコルである。
        届かなかったパケットは無視。UDPがメイン。UDP以外の通信プロトコルも使える。
       
     2. STUN/ICE
        コールはさまざまなタイプのネットワークを横切る接続を確立するためにSTUNとICEメカニズムを使用することができ成分。
       
     3. Session Management
        コールセットアップと管理層を可能にする、セッション層を抽象化。これはアプリケーション開発者にプロトコル実装の決定を残します。
 
  ③ 音声認識 Voice Engine
 
  ④ ビデオ Video Engine
     ビデオエンジンは、カメラからネットワークへ、ビデオのフレームワークビデオメディア鎖であり、ネットワークからスクリーンに関する。
    
     1. VP8
        VP8(ブイピーエイト)はGoogleに買収されたOn2テクノロジー社が開発した、ビデオコーデックの一つである
        ※関連項目
          WebM ・・・ ビデオコーデックにVP8、音声コーデックにVorbis、メディアコンテナとしてMatroskaのサブセットを採用している。ファイルの拡張子は「.webm」。
          パテントプール ・・・特定の技術に対するライセンス規約の団体
         
     2. Video Jitter Buffer
        ビデオの動的ジッタバッファ。ジッタおよび全体的なビデオ品質上のパケット損失の影響を隠すのに役立ちます。
       
        ※Jitterとは・・・ジッター (Jitter) とは、電気通信などの分野において、時間軸方向での信号波形の揺らぎ自身や、
        その揺らぎによって生じる映像などの乱れのことを指す。「いらいらする」という意味の英語"Jitter"に由来する。
       
     3. Image enhancements
        例えば、 Webカメラによる画像キャプチャからビデオノイズを除去する。
       
       
       
       
       
       
       
       
       
       
       

99. PeerJSライブラリ

    PeerJSが完了すると、構成、および使いやすいピアツーピア接続APIを提供することでブラウザのWebRTC実装をラップ。
    何もIDと装備されていて、ピアはリモートピアにP2Pデータやメディアストリーム接続を作成することができます。



2013年10月19日土曜日

RaspberryPiと戯れてみる 3 - VPNサーバー化 -

■ Raspberry PiをVPNサーバー化してみる

まず、VPNを作る代表的なプロトコルである、「PPTP」、「IPSec」を勉強。
どちらも認証、暗号化、カプセル化を行う。

・PPTP(Point to PointTunneling Protocol)

・・・Microsoft社によって提案された暗号通信のためのプロトコル。2台のコンピュータの間で情報を暗号化して送受信するので、インターネットを通じて安全に情報をやり取りできる。企業などで、インターネットを介した遠距離のLAN間接続や、社員がインターネットを通じて社内LANにアクセスするのに使われる。同社のWindows NTシリーズには標準でPPTPの機能が付属する。

・IPSec(Security Architecture for IP)

・・・インターネットで暗号通信を行うための規格。IPのパケットを暗号化して送受信するため、TCPやUDPなど上位のプロトコルを利用するアプリケーションソフトはIPsecが使われていることを意識する必要はない。現在インターネットで使われているIPv4ではオプションとして使用することができるが、次世代のIPv6では標準で実装される。


今回はPPTPを使用したVPNサーバ作りに挑戦
参考サイト 
http://qiita.com/sumyapp/items/b7300a9ffa316d676aa1

1. Pptpdのインストール

 pi@raspberrypi ~ $ sudo apt-get install pptpd
 


















2. Pptpdの設定

自身のIPと接続クライアントへの割当IP
【 /etc/pptpd.confの編集 】
pi@raspberrypi ~ $ diff /etc/pptpd.conf /etc/pptpd.conf.org
76,77c76,77
< localip 192.168.0.4
< remoteip 192.168.0.234-238,192.168.0.245
---
> #localip 192.168.0.1
> #remoteip 192.168.0.234-238,192.168.0.245

3. DNSの設定

接続してきたクライアントが使用するDNSサーバの設定
【 /etc/ppp/pptpd-optionsの編集 】
pi@raspberrypi ~ $ diff /etc/ppp/pptpd-options /etc/ppp/pptpd-options.org
55c55
< ms-dns 192.168.0.1
---
> #ms-dns 10.0.0.1

4. 接続クライアントのアカウント設定

【 /etc/ppp/chap-secretsの編集 】
pi@raspberrypi ~ $ sudo diff /etc/ppp/chap-secrets /etc/ppp/chap-secrets.org 
3c3
< chopper pptpd chopper *
---
> 

5. IPフォワード設定

IPフォワード(IPフォワーディング - IP forwarding)とは
・・・他のホストから受け取ったIPパケットを別の経路へ向けて再送信すること。これを専門に行うネットワーク機器にはルータがある。また、プロキシサーバやファイアウォールがプライベートネットワークとインターネットの間で行っているのもIPフォワーディングと言える(厳密には、IPより上位のプロトコルに基づいて動作していることがあるのでIPフォワーディングに含めないという立場もある)。IPフォワーディングの際に一定条件を満たすパケットのみを転送するようにしたものがパケットフィルタリングである。

※宛先アドレスが自分では無いパケットも転送するようにしなければ、VPN経由で接続した端末からのパケットはすべて破棄されてしまう

【 /etc/sysctl.confの編集 】
pi@raspberrypi ~ $ diff /etc/sysctl.conf /etc/sysctl.conf.org
28c28
< net.ipv4.ip_forward=1
---
> #net.ipv4.ip_forward=1
44c44
< net.ipv4.conf.all.accept_redirects = 0
---
> #net.ipv4.conf.all.accept_redirects = 0
52c52
< net.ipv4.conf.all.send_redirects = 0
---
> #net.ipv4.conf.all.send_redirects = 0

※参考サイトとに書いてある項目が無かったりしたので、あるのだけコメントを外す。

6. MTU/MRUの設定

【 /etc/ppp/optionsの編集 】
pi@raspberrypi ~ $ diff /etc/ppp/options /etc/ppp/options.org
80c80
< mru 1280
---
> #mru 542
185c185
< mtu 1280
---
> #mtu <n>

6. ルータの設定

ポートフォワード設定
一般的な家庭では、ブロードバンドルータの類の下にサーバをぶらさげているかと思います。このように pptpd サーバが LAN の内部にある場合、ポート転送が必要になります。ルータの設定にて TCP の 1723 番ポートと、プロトコルの 47 番を pptpd サーバに転送してください。TCP の 47 番ポートではなく、47 番のプロトコル(GRE)であることに注意してください。

※GREとは
GRE ( Generic Routing Encapsulation ) はトンネルプロトコルの1つです。RFC1701, 2784で定義されています。トンネルプロトコルにはLayer2トンネリングのL2F, PPTP, L2TPとLayer3トンネリングのGRE, IPsec等があります。トンネリングとは、あるトラフィックを別のプロトコルでカプセル化して伝送することにより、通信を行う技術です。
パケットのカプセル化とその解除はトンネルの両端の機器で行う為、両端の機器が直結しているように見えます。

・自宅ルータの設定内容
ルータ ATerm BL190HW    ATerm D9C9DC






これでいける。。。はずだが、Android端末からは接続できませんでした。。
※ちなみにRaspberry PIにはパケットが到着している模様
解析ツール sudo tcpdump -s0 -i eth0 -X port 1723
http://linux-biyori.sakura.ne.jp/setting/st_tcpdump.php

※追加 2013.10.26
その後つながらない事の調査

http://www.kurobuti.com/blog/?p=4275
↑サイトを参考に /var/log/pptpd.logにログ出力

・Android端末からの接続時のエラーログ
Plugin /usr/lib/pptpd/pptpd-logwtmp.so loaded.
pptpd-logwtmp: $Version$
using channel 8
Using interface ppp0
Connect: ppp0 <--> /dev/pts/1
sent [LCP ConfReq id=0x1 <mru 1280> <asyncmap 0x0> <auth chap MS-v2> <magic 0xbfcfb351> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <mru 1280> <asyncmap 0x0> <auth chap MS-v2> <magic 0xbfcfb351> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <mru 1280> <asyncmap 0x0> <auth chap MS-v2> <magic 0xbfcfb351> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <mru 1280> <asyncmap 0x0> <auth chap MS-v2> <magic 0xbfcfb351> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <mru 1280> <asyncmap 0x0> <auth chap MS-v2> <magic 0xbfcfb351> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <mru 1280> <asyncmap 0x0> <auth chap MS-v2> <magic 0xbfcfb351> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <mru 1280> <asyncmap 0x0> <auth chap MS-v2> <magic 0xbfcfb351> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <mru 1280> <asyncmap 0x0> <auth chap MS-v2> <magic 0xbfcfb351> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <mru 1280> <asyncmap 0x0> <auth chap MS-v2> <magic 0xbfcfb351> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <mru 1280> <asyncmap 0x0> <auth chap MS-v2> <magic 0xbfcfb351> <pcomp> <accomp>]
LCP: timeout sending Config-Requests
Connection terminated.

Modem hangup

LCP: timeout sending Config-Requests ◀︎ここが怪しい?

Connect: ppp0 <--> /dev/pts/1 ◀︎これは何をしているのか?
https://www.grnt.ne.jp/internet_config.php?cnt=40
↑ここにこんな記述が
PPPOEで接続した場合の仮想NICは【ppp0】になります。iptables等でNICを設定している場合は【ppp0】に変更して下さい

PPPoEとは・・・
http://www.n-assist.com/booknavi/pppoe.htm

NICとは・・・
http://e-words.jp/w/NIC-2.html

iptablesとは・・・
Linuxに実装されたファイアウオール機能です。Linuxカーネル2.4以降に組み込まれています。
 iptablesでは、コンピュータがやり取りするパケットを、あらかじめ定義しておいた「チェイン」単位に分類し、チェインごとにどのような処理を行うかを「ルール」として設定します。

 主なLinuxディストリビューションでは、次の3種類のチェインが標準で用意されています(図1)。

・INPUT
(サーバーへ到達するパケット)
・FORWARD
(サーバーを通過するパケット)
・OUTPUT
(サーバーから送出するパケット)
 ユーザーが新しいチェインを追加することもできます。

 ルールでは、パケットの送出元(ソース・アドレス)やパケットのあて先(ディスティネーション・アドレス)などを指定し、該当するパケットに対し、どのような処理を行うかを指定します。処理には、パケットを破棄する「DROP」、拒否パケットを送出する「REJECT」、許可をする「ACCEPT」などを指定します。

現在のiptablesの設定
pi@raspberrypi ~ $ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination   


RaspberryPiと戯れてみる 2 - 無線化 -

■ 無線化、断念・・・orz

    http://d.hatena.ne.jp/pasela/20121224/raspi_wlanのサイトを参考に
    無線化を試みた所、できずに断念しました。別の日に再挑戦予定!!

1. 無線LANアダプタ購入

     

















サイトと同じものを購入。ができませんでした。

2. とりあえずアダプタを挿入し起動

【確認に使用したコマンド一覧】
NO コマンド 説明
1 dmesg カーネルのメッセージバッファの内容を表示する。"display message" の略。
2 lsmod カーネルのモジュール状態を表示する
3 lsusb USBでバイス情報の表示

デバイス認識はされているっぽい。
後はサイト通りに進めていくが、接続できない。。。

3. GUIからWifi Configを使用して接続

とりあえずGUI起動。
$ startx

http://mmbrothers.exblog.jp/16810289のサイトを参考に進めるが。。
WifiConfigを起動してもアダプターを認識しないのは何故?

ん〜何がなんだか分からないので、今日は断念!!


2013年10月16日水曜日

gem install XXXX で 「~ native gem requires installed build tools.」が出てきた場合



DevKitを入れるといいらしい
http://github.com/oneclick/rubyinstaller/wiki/Development-Kit

※DevKit
どうやらWindows上のネイティブな部分をさわるgemをinstallする
時に必要らしい

1. DevKit-tdm-XXXXXXXXXXXXXXX-sfx.exeをダウンロード

2. 解凍したディレクトリ直下に移動

3. ruby dk.rb init する
   config.ymlが作られ、中にrubyのパスが書かれるらしい。

4. ruby dk.rb install する

これでgem install できるようになる

2013年10月14日月曜日

WebRTC調査 2

今回はWebRTCで一番煩わしい部分のP2P通信を担当してくれる
ライブラリのPeerJSを解説。

PeerJSとは・・・
WebRTC というブラウザ同士がサーバなしで通信しあって(要するにP2P)ビデオチャットなどができる仕組みの一部として自由なデータの送受信もできる機能があって、そこの部分を簡潔にラッピングしてくれるライブラリ

使い方は2通り

・ Cloud上にサーバーを用意してくれており、アカウント登録を行う事で利用可能
    http://peerjs.com/peerserver
    名前、メールアドレス、パスワードを送るとメールが届き、新しい API キーを作成できる画面に
    くる。「Create new API key」ボタンを押すと最大同時接続数を入力する画面が出てくるけど、
    取りあえず初期設定のまま進むと API キーが発行された。

・ ローカルネットワーク上に自分でサーバーも作成可能

 使用方法

 1. htmlページにPeerJSを使用する為のPeerJSクライアントをinclude
  <script src="http://cdn.peerjs.com/0.3/peer.min.js"></script>
 
 2. Peerオブジェクトを作成
  var peer = new Peer({key: 'lwjd5qra8257b9'}); 
 ・keyはP2P通信で相手に自分の存在を通知するキー
 ・第二引数はアカウント情報
 
 3. 接続成功時
  peer.on('open', function(id) {
    console.log('My peer ID is: ' + id);
  });

APIリファレンス