2017年6月29日木曜日

FreeBSD で fine-uploader を使ってみた(その3)

 前々回,FreeBSD で fine-uploader を使ってみた(その1)として fine-uploader によるサーバーへのファイルのアップロードについて書いた。 また,前回FreeBSD で fine-uploader を使ってみた(その2)として Endpoint ルーチンについて書いた。
 今回は chunking(分割送信)の際の結合ルーチンについて書こう。 結合ルーチンは通常の Endpoint ルーチンとは別に用意された Endpoint ルーチンであり,分割送信が完了した時(全ての分割ファイルの送信が完了した時)に呼ばれる。 そのため,中身は通常の Endpoint ルーチンとほぼ同じに見える。

 以下に chunking の結合用の Endpoint ルーチンのソースを書いておく。 説明はソースの後で書こう。

FreeBSD で fine-uploader を使ってみた(その2)

 前回,FreeBSD で fine-uploader を使ってみた(その1)として fine-uploader によるサーバーへのファイルのアップロードについて書いた。 そこでは,fine-uploader ライブラリを使ったアップロードのポータルサイト(入口サイト)について書いた。 今回は fine-uploader ライブラリを使う際のサーバー側(ファイルを受け取る)ルーチンについて書こう。

 サーバー側の受け取りルーチンは fine-uploader では Endpoint と呼ばれる。 fine-uploader のserver-example には,PHP,node.js,Java,Python のサンプルもあるが,ここではPerlによる Endpoint のサンプルをベースにして,多少アレンジしたものを用いた。

 以下に Perl による Endpoint を書こう。

2017年6月28日水曜日

FreeBSD で fine-uploader を使ってみた(その1)

 続きとして,FreeBSD で fine-uploader を使ってみた(その2)に Endpoint ルーチンについて書いた。
さらに,FreeBSD で fine-uploader を使ってみた(その3)に,分割送信時のファイルの結合ルーチンについて書いた。

 なんかタイトルがごちゃごちゃしてしまったが,要は fine-uploader を使ってみた,というお話である。

 以前から,サーバーにファイルをアップロードしてもらうのに Uber Uploader というのを使っていた。Uber Uploader はいわゆる Ajax を使って,Progress Bar を表示しながらアップロードをしてくれる,というもので,2011 年にこのブログに Uber-Uploader 6.8.2 の使い方(その1)として Uber Uploder の使い方を書いてみた。
 しかし,Uber Uploader もそろそろ古くなり,更新もされなくなっており,php の新しいバージョンに対応していない,などの問題が出始めた。 そこで,progress bar を表示してくれるアップローダーを探し,fine-uploader というのを使ってみたので,ここに書いておこう。

 fine-uploader は,基本的は JavaScript を使ったファイルのアップローダー用ライブラリである。 一番いい点としては,他のライブラリ(例えば jQuery など)等を使わなくても済む,という点がある。 他のライブラリ等を使わないといけないとなると,その別ライブラリ等のバージョンが上がると uploader が使えなくなる可能性が出てくる。 Uber Uploader の場合も,Perl のパッケージが更新されると不具合が出たり,php のバージョンが上がると不具合が出たりした。 jQuery や php は,ときどき後方互換性がないバージョンアップがなされるため,ある日突然アップローダーが使えなることがある。 自分が書いたスクリプトなら,どこでどのライブラリやパッケージを使ったかを知っているので修正は比較的簡単だが,他の人が作ったライブラリだと,どこに問題があるのかを探るところから始めないといけないため修正が大変である。そのために,他のライブラリに依存してない,というのは大きな魅力である。

 その点,fine-uploader は jQuery を使うこともできるが,jQuery なしでも使えるので,何かあれば自分で対処しやすいと考えた。 fine-uploader の使い方については,fine-uploader の公式サイトのドキュメントのページに書いてある(英語だけど…)が,少しだけ説明しておこう(説明になってないかも…)。

2017年5月27日土曜日

Gms-g9 の firmware をアップデートした

 以前にも同様のことをしているので,Gms-g9 の firmware をアップデートしたも参考にして欲しい。
 以前から,GlobalTop製の GNSS/GPS ユニット Gms-g9 を使っている。 このユニットは現在は Titan 3 という名前になり,Sierra Wireless という会社に移管されたみたいに書いてあるが,商品紹介ページは (2017/5現在) 未だに GlobaTop 内の Titan 3 のページにある…。
この GNSS ユニットはパッチアンテナ付きであり,充電池と記録ユニットと組み合わせただけの簡単なロガーを作成可能である。 ユニットは,アメリカの GPS,ロシアの GLONASS,日本のみちびきなどの電波を受信可能となっている。 そのため多くの衛星の電波を受信でき,簡易ロガーの割には GNSS ログのズレが少なくお手頃な GNSS チップとなっている。 (私が作った簡易 GNSS ロガーの例:ランニングエレクトロニクス社製 Gms-g9 基板使用 GNSS ロガー 3号機の製作

 ユニットを手に入れるには,当初はヨーロッパの mirifica (商品名 Titan 3) というネットショップから買ったが,最近はランニングエレクトロニクス (商品名 Gms-g9) など,国内でも購入可能となっている。

 今回,久しぶりに Gms-g9 の firmware をアップデートした。 以前(Gms-g9 の firmware をアップデートした)もアップデートしたが,その時は AXN 3.20 というバージョンへのアップデートだった。 今回は AXN 3.8 (AXN3.8_8397_3333_96.1151100.1.bin) というバージョンのファイルを手に入れたので,せっかくだからと思いアップデートしてみた。

 コンピュータと接続してアップデートを行うが,コンピュータとの接続は,SparkFun の FTDI ユニット (3.3V 駆動タイプ) とブレッドボードを使ってつないだ。 コンピュータから USB-mini ケーブルで FTDI ユニットを接続し,その反対側をブレッドボードに接続した。 Gms-g9 ユニットがついたミニボードもブレッドボードに指し,FTDI と Gms-g9 ユニット間をケーブルでつないだだけ,である。 つなぎ方は,3V3 → Vcc,GND → GND,TXO → RX0,RXI → TX0 とした。

2017年4月22日土曜日

OpenLayers 3 を使ってみよう(その21:Highcharts でルートの標高グラフを表示)

 これは,OpenLayers 3 を使ってみよう(その20:Open Street Map を表示させる)からの続きになる。 OpenLayers 3 を使ってみよう(その0:はじめに:地理院地図を表示)に目次がある。 その13までのページでは OpenLayers v3.7.0 で書いてきたが,ここでは OpenLayers 3.20.1 で書かれている。
 前回(その20:Open Street Map を表示させる)は,その19:その9からその18までのまとめに Open Street Map の表示を追加してみた。 今回は,Highcharts というグラフ表示のスクリプトを使って,経路の標高を表示させよう。

2017年3月28日火曜日

Blogger で highlight.js を使ってみた

 このサイトでは,FreeBSD だの OpenLayers だの,コンピュータのプログラム関連のことを書いていることも多い。 そんな時,どうしても必要なのがソースコードの表示である。 つい最近までは,
function() {
    hogehoge;
}
のような表示の仕方をしていた(今でもこの形式のものが多いが…)。

 しかし,この表示だとあまりにプレーンすぎるので,自動的に色つけなどをして表示してくれるものが欲しかった。 候補としては SyntaxHighlighter というのがあるのは知っていた(SyntaxHighlighter を使ってみた )のだが, 今回 highlight.js というのに挑戦してみた,というお話。

 きっかけはと言うと,前回の投稿にある個人サイトの https: 化である。 highlight.js は https: 化とは直接は関係ないが, https: サイトを作る際に,ページ内で http: プロトコルのサイトからファイルを読み込んでいると「このサイトは安全ではない」と言われる。 その件を Blogger に書いている時に, Blogger サイトはどうなんや?と思い始めたのが一つのきっかけとなっている。 しかし,https: 化と highlight.js はすぐには結びつかないが…。

 そんな時に,ソースコードの表示はやはり highlight させたいなぁ,と思い始めたのだった。 以前「SyntaxHighlighter を使ってみた 」で SyntaxHighlighter に挑戦したが,いまいちうまく働かない部分があったので,その時は諦めてしまっていた。 しかし,今回,ふと「再挑戦」してみようと思った,というのが直接のきっかけである。

 最終的に highlight.js を使うことにしたが,まずは SyntaxHighlighterhighlight.js の比較をしてみたいと思う。

2017年3月21日火曜日

MyDNS と Let's Encrypt を使って,FreeBSD 上の apache24 を https 化してみた(その5)

 FreeBSD 上の apache24 で運用している個人サイトの https 化(通信の暗号化)の話の(その4)である。
目次
 (a) その1:MyDNS を使って web サーバーをたてる
 (b) その2:オレオレ認証を使った https 化
 (c) その3:Let's Encrypt を使ったサーバー認証
 (d) その4:vhost や ssl などの apache24 の設定
 (e) その5:サイトの内容に関する注意点(今回,最終)

 今回はセキュアなサイトを作る際の注意点について書こう
何を書きたいかというと,apache で https: 化を行っても,内容の記載によってはサイトが安全とはならない場合があるので,そのあたりについて書こうと思う。

 ここまで,web サイトの通信の暗号化の技術的な面について書いてきたが,内容によってはサイトが「安全ではない」とされてしまうことがあった。 私も,個人のサイトで暗号化をして,一番簡単なテストページならブラウザに誉めてもらえるようになったが,いざ肝心なページを見に行くと, この接続は安全ではありませんだの一部が安全でないためブロックしましただのと言われてしまうことがあった。

 例えば Firefox の場合,この接続は安全ではありませんと言われる場合は,下の画像のようにアドレスバーの左の鍵マークが灰色+黄色の警告マークになる。

2017年3月20日月曜日

MyDNS と Let's Encrypt を使って,FreeBSD 上の apache24 を https 化してみた(その4)

 FreeBSD 上の apache24 で運用している個人サイトの https 化(通信の暗号化)の話の(その4)である。
目次
 (a) その1:MyDNS を使って web サーバーをたてる
 (b) その2:オレオレ認証を使った https 化
 (c) その3:Let's Encrypt を使ったサーバー認証
 (d) その4:vhost や ssl などの apache24 の設定(今回)
 (e) その5:サイトの内容に関する注意点(最終)

 今回は暗号化に際しての apache の設定について書いておこう。

 その2:オレオレ認証を使った https 化でも apache の設定について書いたが,今回は Let's Encrypt を使う場合の設定の変更点や,1台のマシンに複数のホスト名をつける話(バーチャルホスト),古いサイト名へのアクセス(http:でのアクセス)の強制的な https: への移行,などについて書こうと思う。

(1) 証明書の登録
 まずは Let's Encrypt によるサーバーの証明書(ドメイン認証の証明書)を apache に登録しよう。 記入するのは FreeBSD の場合「/usr/local/etc/apache24/extra/httpd-ssl.conf」である。 その中の「SSLCertificateFile」と「SSLCertificateKeyFile」を書き直せばよい。 Let's Encrypt による証明書は「/usr/local/etc/letsencrypt/live/」に最新版があるので,それらを指定している。
SSLCertificateFile "/usr/local/etc/letsencrypt/live/www.hogehoge.mydns.jp/fullchain.pem"
SSLCertificateKeyFile "/usr/local/etc/letsencrypt/live/www.hogehoge.mydns.jp/privkey.pem"
 これで apache を再起動すればブラウザも安全なサイトと表示してくれるはずである。

(2) バーチャルホスト
 証明書を登録すれば安全なサイトになるが,以前の暗号化前のサイト名でのアクセスへの対処や,1台のマシンに異なるサイト名でアクセスをさせたい場合などがあるため, バーチャルホストを登録しておくのがよい。

MyDNS と Let's Encrypt を使って,FreeBSD 上の apache24 を https 化してみた(その3)

 FreeBSD 上の apache24 で運用している個人サイトの https 化(通信の暗号化)の話の(その3)である。
目次
 (a) その1:MyDNS を使って web サーバーをたてる
 (b) その2:オレオレ認証を使った https 化
 (c) その3:Let's Encrypt を使ったサーバー認証(今回)
 (d) その4:vhost や ssl などの apache24 の設定
 (e) その5:サイトの内容に関する注意点(最終)

 今回は Let's Encrypt でサーバー証明書(正しくはドメイン認証)を取得して,より安全な通信を確保する話をしてみよう。

 Let's Encrypt は,無料でドメイン証明書を発行してくれるサービスであり, いろんな企業が後援しているらしい。 Let's Encrypt は日本語サイトなので,ハードルは高くはないと思う。 ちなみに,使い方は Let's Encrypt の使い方や, ユーザーガイドを見るといいと思う。 コマンドは コマンド一覧に記載がある。

 Let's Encrypt を使う際の注意点としては,
 「一定期間内に取得できる認証数に制限(上限)がある」
 「認証要求時に apache を止めないといけないことがある(止めない方法もあるらしい)」
 「認証の証明書の有効期限は90日なので,更新が必要」
などがある。

2017年3月19日日曜日

MyDNS と Let's Encrypt を使って,FreeBSD 上の apache24 を https 化してみた(その2)

 FreeBSD 上の apache24 で運用している個人サイトの https 化(通信の暗号化)の話の(その2)である。
目次
 (a) その1:MyDNS を使って web サーバーをたてる
 (b) その2:オレオレ認証を使った https 化(今回)
 (c) その3:Let's Encrypt を使ったサーバー認証
 (d) その4:vhost や ssl などの apache24 の設定
 (e) その5:サイトの内容に関する注意点(最終)

 今回は,通称オレオレ認証(自己署名証明書)を使って,apache24 の https 化の設定をしてみよう。
必要なものは,
 ・秘密鍵(private key)
 ・証明書署名要求(csr)
 ・サーバー証明書(crt)
である。 これら(実際には key ファイルと crt ファイル)があれば,https 化が可能となる。 今回はオレオレ証明書をopensslで作る(詳細版) (ろば電子が詰まっている)を参考にした。