CentOS7.x Selinux /home/user-id/www file_contexts 不具合

CentOS7.x の /home/user-id/www のファイルタイプが、インストールから暫くは、
httpd_sys_content_t だったのに、restorecon -vv -RF /home/xxx を何回かやっていたら、
いつの間にか、変わっていた。

Perl cgi sample for dynamic generate of Java Jnlp.

Perl cgi から、Java Jnlp を吐き出すサンプル プログラム を作ってみました。

一番最初に、
Content-type: application/x-java-jnlp-file;charset=utf-8\n\n
を吐き出せばOKです。

興味のある方らこちらからどうぞ。

PIC24 を使った usb マウス to ps/2 変換 プログラム

自宅のパソコンの切り替え機が、PS/2 対応なので、ずっと PS/2 マウス・キーボードを使っていますが。
その、PS/2 マウスが具合が悪いので、新しいマウスに買い替えたいと常々思っていたのですが、
生憎、近頃はPCショップで気の利いた、PS/2 マウスを見かけません。

なので、試しに USBマウス to PS/2 変換アダプターなるものを、購入して USBマウスで試してみたのですが、やっぱり、うんともすんとも動きません。残念!
そこらへんで売っている USB マウス PS/2変換アダプターは、USBにしか対応していないマウスには使えないとの事です。(どうやらコンボマウスとか言うマウスでないと...と最近判明)

このUSB マウス PS/2変換アダプターが、又曲者で、中にICチップの1も入っていなくて、単に配線しているだけの代物の様です。

そこで、無いものは自分でつくろうと、思って、

eclipse adt プラグインのサポートが終わったので、仕方無しに、
Android Studio 2.1.2 を Windows10 にインストールして使いはじめてみました。

最初は、バンドル版のインストールを行ってみましたが、その時は、Java 64bit版が
必要だとおこられたので、渋々 Java 64bit 版もインストールして使っていましたが、
Android Studio Windouws 対応の zip 版を使うと、java 32bit でもOKみたいです。

zip版を適当なフォルダーに展開して、bin/studio.exe を実行すると Java 32bit で大丈夫でした。
C++ CGIの作成の為のクラス・ライブラリーを作成してみました。

C++ CGI で、GET / POST リクエストを簡単に取り込むクラス、
CGI.cpp , CGILite.cpp を作成してみました。

esp8266 Wi-Fi HttpServer

おんちゃんも、最近、 esp8266 を始めてみました。
Wi-Fi で自宅のLanに接続して、WebServerを動かすプログラム例が有ったので、
早速、Arudino IDE からプログラムを書き込めるようにして、esp8266に書き込んでみました。

今日来たメールのソースを見ていたら

今日来たメールを、開かずに、メーラのプロパティーからソースを見ていたら、
html の中の img タグの src ="xxxx" で送り主のサーバーの画像を参照していたのを
偶然見つけたのですが。

Microsoft Edge の hostsファイルの記述

Microsoft Edge の hostsファイルの記述が、従来と違う様なので、メモしました。

どうやら、 word1.word2 の形式にするみたいです。
Raspberry Pi に USB Web カメラ C270 を繋げて、Mjpeg-Streamer で、以前問題無く表示されていたのに、最近久しぶりに試してみたら画像が出てきません。

結論から先に言えば、最近のパッケージアップデートで、kernel 3.18 になって、bcm2835-v4l2 カーネルモジュールが、YUYVモードでしか動作せず、MJPEGモードで動作しなくなったのが原因みたいです。

Java socket keep-alive 使いかた

Java socke keep-alive (http protocol response)の使いかたについて。

Java http server の Keep-alive による Http Responsse の返し方に関して、
大雑把な説明ですが、参考になればと思い書いてみました。

重要な点は、3箇所だけです。

1. server socket のKeepAlive の設定
Socket sock = servsock.accept();
sock.setKeepAlive(true); // this is important No.1

2.http response ヘッダーの特に2か所の記述 Content-Length:xxx と 注1)Connection: Keep-Alive です。
注1) HTTP 1.1 では、必要ないみたい。
HTTP/1.1 200 OK\r\n or HTTP/1.0 200 OK\r\n
Date: xxxxx\r\n
Server: xxxxx\r\n
Content-Length: body-size\r\n // "body-size" is very important No.2
Keep-Alive: timeout=5, max=20\r\n // timeout -> sec ,here is a little important
Connection: Keep-Alive\r\n // here is important No.3 , but if HTTP 1.1 no need
Content-type: text/html\r\n\r\n

body-size は、実際の長さに必ず合わせます。(これが、今回、一番重要です!)
htmlや画像ファイルなどは、ファイルサイズが最初から分かるから問題ないのですが、
perl CGI の出力を受ける場合は、大変です。
CGIの出力データを一度バッファに取り込んで、最終の長さを計算するか、チャンクに分割してその都度送信するかだと思います。
apache のHTTPレスポンスを見ると、チャンクでは無いように見えますが!