So-net無料ブログ作成

検索エンジン "YaCy" のスクリーンショット。 [P2P検索エンジン YaCy]

YaCy_SS_(2015_01_31)_1_Edited_1 P2P検索エンジンの "YaCy" のスクリーンショット画像。検索ページが表示されている。
https://c2.staticflickr.com/6/5623/22004122609_ff3a6c2d79_o.png
これはP2P通信技術を使ったインターネット検索エンジンである " YaCy " の検索ページのスクリーンショットです。
Firefox ウェブ ブラウザーの検索窓もYaCyを既定の検索エンジンにしてありますが、このページからもウェブ ページや画像などが検索出来ます。
この検索ページは、自分のローカル ホストのページです。

YaCy_SS_(2015_01_31)_2_Edited_1 P2P検索エンジンの "YaCy" のスクリーンショット画像。検索結果のページが表示されている。
https://c2.staticflickr.com/6/5766/22201284591_41eb7aa05d_o.png
"YaCy" でキーワードとして "東京スカイツリー" と入力して検索した結果が表示されております。
おそらく、ほとんど私のPC内の索引だけで表示されております。
何故ならば、2015年1月31日現在に於いては、日本人の利用者が極めて少ないからです。
YaCy利用者のほとんどがアメリカとヨーロッパ地域の人達のようです。
アジア地域の利用者が非常に少ないのが残念なところです。
せめて日本人利用者が100人程になれば、検索も速く正確になるものと思われるのですが、なかなか利用者が現れません。
公正公平な情報へのアクセスを求める人は、どうぞYaCyをDHT (分散ハッシュ テーブル)を共有する設定で、最低でも1週間程度は試してみてください。宜しくお願い申し上げます。
私はGoogleの他にもYaCyという選択肢があるという事はとても重要であると考えております。

因みに、1週間と申しましたのは、私がYaCyを起動している時といない時とでは、検索速度と結果の精度が大きく変わるからです。この事につきましては、利用者が増えれば冗長性が改善されて、均一になる筈です。また、各利用者のPCにDHTが共有されてデータがキャッシュされれば、これも検索速度と精度の改善に繋がります。
初めの数日間はおそらく満足の行く結果は得られませんが、どうぞ長く利用してみてください。

尚、私はYaCyだけではなく、Googleの検索エンジンも併用しております。

YaCyの公式ウェブサイトのURL:
http://yacy.net/en/index.html


[私のブログ記事]

分散型検索エンジン YaCy の導入解説
http://crater.blog.so-net.ne.jp/2015-07-21

メディア プレイヤーは "mpv" で決まり! [ソフトウェア]

2017年11月3日に記事の一部を改訂致しました。

mpv_SS_(2017_11_03)_1 ソフトウェア メディア プレイヤーの "mpv" のスクリーンショット画像。 東京都の丸の内を撮影したヴィデオを再生しているところ。 OSCが表示されている。
https://c1.staticflickr.com/5/4452/38106902632_63e3556685_o.png
ソフトウェア メディア プレイヤーの " mpv " の2017年11月3日現在のスクリーンショット画像です。
かつてのヴァージョンとはOSCのデザインが変更されております。
私は現在PCのOSにDebian Linux系の " Ubuntu 16.04 LTS " を使用しております。

"Ubuntu" の公式ウェブサイトのURL:
http://www.ubuntu.com/

2017年11月3日現在に於きまして、私にとって、この環境での最も優れた動画再生ソフトウェアは " mpv " のようです。

mpvはMPlayerのフォークであるMPlayer2を基にして、更にプログラム コードを洗練させた超軽量なソフトウェアで、とても高い評価を得ているようです。

基本的には ~/.mpv/config ファイルに設定を書いて置き、キーボード ショートカットだけでも快適に操作できます。
ですが、やはりマウスとグラフィカル ユーザー インターフェイスでシークなどの操作をしたくなります。
2015年1月28日現在に於きましては、mpvを " Ubuntuソフトウェアセンター " からインストールした場合にはGUIが利用出来ない構成のプログラムとなっております。
そこで、mpvの公式ウェブサイトに掲載されているPPA (Personal Package Archive)からインストール致します。

"mpv" のウェブサイトのURL:
http://mpv.io/

上記mpvのウェブサイトには使い方や設定の仕方の詳細が掲載されております。

D. McMahon 様の "Mpv media player (FFmpeg version)" のPPAのURL:
https://launchpad.net/~mc3man/+archive/ubuntu/mpv-tests

上記PPAを端末で次のコマンドにより登録します。
sudo add-apt-repository ppa:mc3man/mpv-tests
sudo apt-get update


次のコマンドでインストールします。
sudo apt install mpv



すると、シンプルなGUIで操作できるメディア プレイヤーが使えるようになりました。
動画ファイルへの関連付けは、その動画ファイルを右クリックしてコンテキスト メニューを出して、 " プロパティ " をクリックし、 " 開き方 " のタブを選択して、一覧からmpvを選んでから " デフォルトに設定する " ボタンをクリックすると出来ます。

GUIでのシークと、スペース キーでの一時停止と、ピリオド キーでのコマ送りと、f キーでのフルスクリーン化s キーでのスクリーンショットの保存だけでも充分に快適に使えます。

尚、ヴィデオ カードによるハードウェア アクセラレーション先鋭化フィルターの適用やデインターレース処理は設定ファイルに設定を書き込んで行います。

2017年11月3日現在の設定ファイルは次のものです。
~/.mpv/config

この設定ファイルに私は以下の様に記述致しました。
# Write your default config options here!

cache=262144

screenshot-format=png
screenshot-template=/home/xxxxx/mpv_Screenshots_1/%F_%wHh%wMm%wSs%wTms

hwdec=vdpau-copy
vo=gpu
deinterlace=yes
sharpen=0.6

[extension.wmv]
profile-desc="profile for .wmv files"
hwdec=vaapi
vo=opengl
profile=opengl-hq


cacheの単位は[kB]です。
スクリーンショット画像の保存用のファイル パスを指定する "screenshot-template=" にある "xxxxx" にはユーザー名が入ります。
その後のファイル名の書式はについては次のURLを参照して下さい。
http://mpv.io/manual/stable/#screenshot

" hwdec=vdpau-copy " で、ハードウェア デコーダーは " vdpau-copy " を指定致しました。
" VDPAU " はNVIDIAのヴィデオ カードを使用している場合に利用可能なオプションです。
NVIDIAのGPUを搭載していない場合は他のオプションを試してみて下さい。
" vdpau-copy " ではヴィデオカードからメイン メモリーのRAMへ動画データを戻します。
この事により、デインターレース処理やスクリーンショットの保存が可能になります。
" vo=gpu " で、ヴィデオ出力に " gpu " を指定致しました。
" deinterlace=yes " でデインターレース処理を有効化致しました。
" sharpen=0.6 " で先鋭化フィルターを適用致しました。

実は先日までは今とは異なる設定で、GPUのハードウェア アクセラレーションだけで処理を行っていたのです。
ところが、アップデートによりGPUのハードウェア アクセラレーションでフィルター処理するとスクリーンショットが保存できなくなってしまいました。
その為、GPUからメイン メモリーに動画データを戻し、CPUでソフトウェア処理させることに致しました。
これでフィルター処理しつつスクリーンショット画像を保存できるようになりましたが、引き換えにCPU使用率が上がってしまいました。
やや残念なアップデートです。

尚、私が利用しているドライヴァーのヴァージョンはLaunchpadにあるPPAの " Graphics Drivers Team " が提供して下さっている " 384.98 " です。

->->
[2017年5月26日記載]
私はmpvでVDPAUによるハードウェア アクセラレーションを使用して動画を再生しております。
しかし、私の環境に於いてVDPAUのハードウェア デコードを有効にすると唯一、 " WMV " 系の動画ファイルだけは再生に問題が生じるようです。
具体的には、映像の移動量が多い場面で、輪郭が破綻したり、ブロック状の酷いノイズが発生致します。
発生するブロック状のノイズは画面全体的に緑色になることもあります。
昔からこの問題があるのですが、未だに解消されておりません。

そこで、上記の設定ファイルにありますように、拡張子が " .wmv " のファイルを再生する際にプロファイルを読み込ませてVDPAUの代わりに " VA API " を使用するように指定する事によって正しく " WMV " 系の動画ファイルを再生する事が出来ます。
" hwdec=vaapi " で、ハードウェア デコーダーに " VAAPI " を指定致しました。
" vo=opengl " で、ヴィデオ出力に " OpenGL " を指定致しました。
" profile=opengl-hq " とする事で高画質化致しました。
<-<-

Latteにありがとう。 [mafoeva (Latte)]

->->
[2017年4月22日追記]
その後、名前が変わって2017年4月22日現在は " mafoeva " として活動なさっているようです。
ヴォーカルの方の名前は色々と変わって、2017年4月22日現在は " 絵梨子 " さんとなっているようです。
<-<-

昨年の4月にLatteという音楽ユニットに出会って以来、彼等の音楽CDである、 "明日が降って来る前に" のPCに取り込んだファイルをオーディオ システムで幾度となく再生しております。

今でも聴く度に涙が込み上げて来ます。
旋律と、音と、歌詞と、声が、私の心の琴線に触れるのですね。

他には無い、特別な感覚があります。
何とも不思議なものです。
素敵な音楽を与えてくれたLatteに感謝しております。

erico_1 Latteのericoさんがマイクを持ち歌唱している場面の上半身の写真。
Latteの美しきヴォーカルの "erico" さん。
彼女の歌声が、とても好きです。

そしてLatteでピアノを演奏している、にこやかな笑顔の "ジローマンドラゴラ" さん。
彼の音楽的感性と、奏でるピアノの音は心の琴線に共鳴します。

彼等の音楽をもっと聴きたいと思いますが、音源のリリースはあるのだろうか。
"FishEye" を聴きたい。
"桜吹雪" を聴きたい。
全ての歌を聴きたい。

Latteの音楽は私のハートの形にピタリと一致してしまったのですよ。


"Latte" の公式ブログのURL:
http://ameblo.jp/lattemusic/

分散型検索エンジンのYaCyがヴァージョン アップしました。 [P2P検索エンジン YaCy]

Linux, Windows, Macのマルチ プラットフォーム対応の分散型検索エンジンである " YaCy " (ヤスィー)のヴァージョン 1.82がリリースされました。

YaCyの公式ウェブサイトのURL:
http://yacy.net/en/index.html

開発者達の努力により、機能や性能が継続的に改善され続けております。

今回のヴァージョン アップは、IPv6 (Internet Protocol Version 6)への対応が注目すべき点です。
近い内にアドレスが枯渇するといわれるIPv4から、無尽蔵とも言えるアドレスが利用可能なIPv6への移行は必要な事であり、この時期にYaCyの対応が済んだのは喜ばしい事です。

IPv6に関するWikipediaのページのURL:
http://ja.wikipedia.org/wiki/IPv6

YaCy version 1.82にはその他にも様々な改良が施されている様です。

ところで、YaCyを利用される場合、出来ればDHTの共有をしていただきたいと思います。
DHTとは "Distributed Hash Table"の頭字語で、日本語では分散ハッシュ テーブルと言います。

DHTに関するWikipediaのページのURL:
http://ja.wikipedia.org/wiki/分散ハッシュテーブル

YaCyの積極的な利用者はインターネット上のウェブサイトをYaCyのクローラーに巡回(クロール)させて、ウェブ ページの記述とリンクを元に、そのページと他のページや画像等のコンテンツの索引(インデックス)を作成します。
Google等が膨大な数の専用コンピューターを使って行っているのと基本的には同じ事をそれぞれのYaCy利用者達が行います。
定期的に任意のウェブサイトを自動でクロールさせるように設定しても良いですし、好きなサイトのURLをクローラーの入力欄にコピー&ペーストしてその場でクロールさせる事も出来ます。

こうして出来上がったインデックスはそのままでは大き過ぎて検索が困難ですので、素早く検索する為のハッシュ テーブルが生成されます。
そのハッシュ テーブルをP2P (Peer to Peer)の通信技術で多くの利用者間で共有します。

P2Pに関するWikipediaのページのURL:
http://ja.wikipedia.org/wiki/Peer_to_Peer

従いまして、DHTの共有を拒否している場合、おそらくですが、自分がクロールさせたページと他の利用者から送られて来たリンクしか検索結果に現れません。
ですので、是非ともDHTの共有を許可する設定にしていただきたいと思います。

因みに、私のPCが有しているインターネット上のリンクの数は約11,000,000にも達しております。

皆様のご協力をお待ちしております。


[私のブログ記事]

分散型検索エンジン YaCy の導入解説
http://crater.blog.so-net.ne.jp/2015-07-21


私のFlickr ページ [オンライン フォト ストレージ]

まずは、私が昔撮影した写真や、PCのスクリーンショットなどをアップロードしてあるFlickrのページを御紹介致します。

" Sound_Gene's albums on Flickr " のURL:
https://www.flickr.com/photos/129042667@N08/sets/

私のFlickrのアルバム一覧です。
大した写真はございませんが、今後もこのサーヴィスに写真やスクリーンショット画像などをアップロードして行きたいと思っております。

Moon_(2014_08_05)_Edited_(2014_08_17)
https://farm8.staticflickr.com/7567/16113574728_57fa753970_o.png
月の写真です。撮影日は2014年8月5日の夜。月齢9.5。視直径31.9'。輝面比0.65。


消滅と復活 [日常]

私は先日、ブログを突然に何らの断りもせずに消滅させてしまいました。
私はとても臆病で不安定な人間です。
多くの人々に見ていただいていたのに、失礼な事を致しました。

今後、少しづつ以前の記事を復活させつつ、新たにブログを再開したいと思います。
どうぞ宜しくお願い申し上げます。

新年。シリアル通信ソフトウェア製作。 [PC]

新年明けまして、おめでとうございます。
今日から西暦2015年、平成27年でございます。
メェー メェー メェー。
未年ですね。

今年は良い年になって欲しいですよね。

先程、ちょっとしたPC プログラム作成の仕事をしておりました。
今となってはすっかりレガシー規格になってしまった、RS-232 シリアル ポート経由のシリアル通信プログラムです。
依頼主様はWindows OS環境ですので、私のPCのOSであるUbuntu 14.04 LTSをホスト OSとして、 " Oracle VM VirtualBox " という仮想化ソフトウェアをインストールして、仮想マシンの上にWindows 7をインストールしました。
" Oracle VM VirtualBox " のヴァージョンは4.3.20です。
Windows 7のライセンス認証は電話で行うことになりました。
フリー ダイヤルで、全て自動音声ガイダンスでした。

次に、Windows 7に以下のソフトウェアをインストール致しました。
ウェブ ブラウザーとして、Firefox。
日本語入力システムとして、Google 日本語入力。
セキュリティー ソフトウェアとして、Symantecの旧製品であるノートン アンチウイルス。
私が以前使用していたWindows向けの統合開発環境であるVisual Studio 2010。
懐かしのH8 マイコンの統合開発環境であるHigh-performance Embedded Workshop (HEW)。
H8 マイコンのフラッシュ メモリーへのプログラム書き込みソフトウェアであるFlash Development Toolkit (FDT)。

何故今更H8 マイコンかと申しますと、依頼主様のPCの通信相手である装置が持ち出し出来ない為、模擬の通信相手が必要で、手元にあったのがH8 3687Fのボードだったからです。

自作PCのI/O パネルにはシリアル通信の為のD-sub 9-pinのコネクターがありません。
シリアル ポートはレガシー規格であり、現在のPCには装備されておりません。
私は秋月電子通商で販売されている、USB-シリアル変換ケーブルを持っていたので、これを使用する事に致しました。

秋月電子通商 / "USB-シリアル変換関係の商品情報ページ" のURL:
http://akizukidenshi.com/catalog/c/cusb232/

次のウェブサイトを参照して、シリアル ポートの設定を行いました。

山本卓 様のブログより
"VirtualBoxでシリアルポート(COMポート)を使う" のページのURL:
http://sgry.jp/blog/2011/04/24/429/

Choreonoid ホームページ / "GR-001をPCに接続し、コレオノイドとの接続を確認する" のページのURL:
http://choreonoid.org/ja/choreograph-tutorial/connectGrobot.html
尚、上記のウェブ ページは次のウェブサイトの一部です。
"Choreonoid ホームページ" のURL:
http://choreonoid.org/ja/index.html

日経LINUX / Linuxコマンド集 / "【gpasswd】グループを管理する" のページのURL:
http://itpro.nikkeibp.co.jp/article/COLUMN/20131226/527405/

纏めますと、以下の様になります。
Ubuntu 14.04 LTSの環境で、USB-シリアル変換ケーブルをPCのUSB ソケットに挿します。
" /dev/ttyUSB0 " というファイルが新たに出来ている事を確認致します。
USB-シリアル変換ケーブルを挿す前に既にttyUSB0が在った場合にはttyUSB1が出来る筈です。

" /dev/ttyUSB0 " はそのままではアクセス権限が無いようです。
" /dev/ttyUSB0 " は " dialout " というグループの所有となっているので、ユーザーのアカウントをこのグループに参加させる必要があるようです。
端末を起動し、次のコマンドを実行します。
gpasswd -a USER_NAME dialout
上記のUSER_NAMEにはあなたのものを入力して下さい。
これにより、 " /dev/ttyUSB0 " にアクセス出来るようになります。

次に、 " Oracle VM VirtualBox " を起動します。
Oracle VM VirtualBox マネージャーの " 設定 " ボタンをクリックし、左のコラムから " シリアルポート " を選択します。
" ポート1 " タブの " シリアルポートを有効化 " のチェック ボックスにチェック マークを付けます。
" ポート番号 " は " COM1 " にしました。
" ポートモード " は " ホストデバイス " にします。
" ポート/ファイルパス " に USB-シリアル変換ケーブルを挿した際に出来たファイルを指定します。
私の場合は " /dev/ttyUSB0 " を入力致しました。
" OK " ボタンをクリックして準備完了です。

ゲスト OSのWindows 7を起動してコントロール パネルからデバイス マネージャーを起動してシリアル ポートの確認と設定を行い、その後は通常のWindows 7環境と同じ様にシリアル ポートが使用出来ました。

その後は、H8 マイコンからSCI経由で通信するプログラムをHEWでC言語で作成し、FDTでフラッシュ メモリーに書き込みました。

Windows用の有名なターミナル エミュレーション ソフトウェアである " Tera Term " を使って通信の確認を致しました。
Tera Termに関するWikipediaのページのURL:
http://ja.wikipedia.org/wiki/Tera_Term

最初に接続した時には正しく通信が出来ませんでした。そもそもUSB-シリアル変換ケーブルでCOM ポートが正常に使えているかどうかを確認する必要があります。
そこでD-sub 9-pinのメス側コネクター部品の予備があったので、これの2番端子と3番端子の間に抵抗器をハンダ付けしてケーブルのプラグに装着させて、送信信号がそのまま受信されるループバック テストを行いました。
結果、PC側のシリアル ポートには問題が無い事が分かりました。
マイコンのプログラムを見直したところ、ちょっとした間違いがあり、それを修正したら正常に通信出来ました。


次にVisual Studio 2010のVisual C++でWin32APIを使用したGUI プログラムを作成開始しました。
シリアル通信をして、コマンドを送信してデータを取得してファイルとして保存するだけの、極簡単なプログラムです。
Visual Studioはパーツのドラッグ & ドロップによる配置が出来たり、とても簡単にソフトウェアが作成出来るように作られているのですが、私は昔ながらのC言語とアセンブリ言語しか使えず、また、これらが好きですので、C言語によるプログラミングをしております。
C言語とWin32APIなどでのプログラミングの方が、ハードウェアやソフトウェアの仕組みを意識しながら書く事になるので、プログラミングを楽しめるのではないかと思います。

複数人で協同で行う仕事であれば、やはりオブジェクト指向言語でカプセル化された細粒度の解り易いクラスを沢山作って、または、高度に抽象化されたライブラリを使って、効率的にプログラミングした方が良いのでしょう。