変奏現実

パソコンやMMORPGのことなどを思いつくまま・・・記載されている会社名・製品名・システム名などは、各社の商標、または登録商標です。

この画面は、簡易表示です

インターネット

仮想デスクトップ

マルチモニターと似たようなデスクトップの使い方を1つのモニターでページを切り替えて扱えるソフトのこと。遠く離れたサーバーで動くOS(Windowsなど)のデスクトップ画像を手元の端末で表示し、手元のマウスとキーボ-ドで操作できるVDI(仮想デスクトップインフラ)と云うのもあり、「仮想デスクトップ」の意味はかなり曖昧になっている。
要はパソコンにデスクトップ付のOSをインストしたかの様に扱えるけど、

  • 実はデスクトップが何倍も広いんです。
  • 実はOSは遠くのサーバーにインストールされてるんです。

という感じで「実は・・・なんです。」が付けば「仮想デスクトップ」なのかもしれない。
ただ

  • 実はディスクがサーバーの中なんです。

は最初からディスクレスと云う呼び名が付いていた。
ブラウザの画面にデスクトップっぽい内容を表示する「ウェブデスクトップ」も「仮想デスクトップ」の一種で、お手軽に遠くのサーバーのデスクトップを操作(GUI)できる。しかし機能やGUIの表現に制限(ブラウザやHTMLあるいはセキュリティ上の制約)が多く、開き直ってデスクトップそのものをHTMLブラウザ仕立てにすることで解消したOSもあるようだ。
もともと「仮想***」という用語は「***に似てるけど、ちょっと違う」の意味であり、こんな感じなんだと大体のイメージが付くと別の名(通称)が付くので時節モノである。
※仮想メモリは例外的に長く使われており、未だ通称が無い。このままスマートメモリが実現してしまうと先に絶滅しかねず不憫である。
※仮想メモリはCPUから見た(論理)メモリアドレスを都合の良い様に(物理)メモリアドレスにアドレスを変換する機能と、メモリの容量をオーバーしたデータをディスクに退避するスワップ機能の2つで構成される。GUIでは複数のアプリを順不同で操作することが多く、アプリからメモリ領域の全てを読み書きできる仕組みでは、使っているアプリやその組み合わせにより、データ破壊やアプリの異常終了さらにシステムダウンにまで起きてしまう始末で、今ではアプリのメモリ領域は互いに隠ぺいするのは当たり前になり、アドレス変換のみが機能している状態を特に「仮想メモリ」とは云わなくなっている。



Another MySQL daemon already running with the same unix socket.

ブレーカーが落ちたので再起動したけど、

データベース接続確立エラー

と出るだけ、

# /etc/rc.d/init.d/mysqld start
Another MySQL daemon already running with the same unix socket.
mysqld を起動中:                                           [失敗]

でもそんなハズはない。
dmesgも特に出ていない。
mysqlのログは、/var/log/mysqld.logなので読んでみると

#tail /var/log/mysqld.log

131203  4:29:32 [Note] /usr/libexec/mysqld: Shutdown complete

131203 04:29:32 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
131203 04:29:34 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
131203  4:29:34  InnoDB: Initializing buffer pool, size = 8.0M
131203  4:29:34  InnoDB: Completed initialization of buffer pool
131203  4:29:34  InnoDB: Started; log sequence number 0 44233
131203  4:29:34 [Note] Event Scheduler: Loaded 0 events
131203  4:29:34 [Note] /usr/libexec/mysqld: ready for connections.
Version: ‘5.1.71’  socket: ‘/var/lib/mysql/mysql.sock‘  port: 3306  Source distribution

ロックファイルか、今ならmutexを使うんだろうが、大昔のUNIXから使われている手法はロックファイルを作れたら独占。使い終わったら消すことで、セマフォ代わりにする。

勿論、不意の停電にはとても弱い。

# ls -al /var/lib/mysql/
合計 20500
drwxr-xr-x   5 mysql mysql     4096 12月  3 04:29 2013 .
drwxr-xr-x. 28 root  root      4096  5月  3 03:47 2013 ..
drwx——   2 mysql mysql     4096  1月  1 02:05 2014 ********DB
-rw-rw—-   1 mysql mysql  5242880 12月  3 04:29 2013 ib_logfile0
-rw-rw—-   1 mysql mysql  5242880  4月  8 03:14 2013 ib_logfile1
-rw-rw—-   1 mysql mysql 10485760 12月  3 04:29 2013 ibdata1
drwx——   2 mysql mysql     4096  4月  8 03:14 2013 mysql
srwxrwxrwx   1 mysql mysql        0 12月  3 04:29 2013 mysql.sock
drwx——   2 mysql mysql     4096 12月 29 06:57 2013 ********DB

確かに残ってる。

# rm  /var/lib/mysql/mysql.sock
rm: remove ソケット `/var/lib/mysql/mysql.sock’? y
# service mysqld  start
mysqld を起動中:                                           [  OK  ]

OK。
てか、/tmp/mysql.sock に変えた方がいいんじゃないのか?



2014年も平らなUIのターン?

さて年が明け2014年がやってきました。
古いと云わつつある立体感のあるボタンのデザインですが、前世期のMS-Windows3.xがウケた主な理由は平面なボタンから立体感のあるボタンのデザインに変わったことでした。
当時の光学マウスは高値の華、主流は機械(ボール)式でした。そのボールも専用のマウスパッドの上でも空転しやすく微妙な力加減が必要で、長時間操作すると肩が凝ってしまう始末でした。そういう感じでしたから、マウスポインタを画面の中のボタンまで移動し、クリックしても平らなボタンがピカっとハイライト(高輝度)やカラーコードを反転するだけで物足りなかったのでしょうね。
しかし昨今のタブレットやスマホではディスプレイの上で指をスライドさせて操作することが多いせいで、ディスプレイが平面であることを強く意識してしまい、画面に映されるものも立体感がない平面なデザインの方が直接触っている感じがします。スワイプするモノがリアルで立体的だったら重そうじゃないですか?(笑
そうなんです、色がちょっと変わったりする軽い感じの方がぴったりなんです。
そうそうマウスよりも更に古いものにライトペンがありました。今ではタブレットペンとして形を変えて復活してしまいました。そうなんです手に持って扱うタブレットなら指より細いタブレットペンの方が実に操作しやすいのです。
そう考えると、「30年ひと昔」と昔の人は云ってましたが、UIもそんな感じで、グルグルと取り替えてるだけなのかもしれません。
画面に直接触らず操作できるマウスが丁度良かったのも、前世期ディスプレイの主流だったブラウン管の構造が真空管そのもので静電気や磁気の影響を受けやすく直接手で触るのは控えた方が長持ちしそうだったことも要因の一つだったかもしれません。
では、ディスプレイを直接手で触ると、どうしても汚れやすいですから次第にイライラの原因になり、PS-VITAみたい本体裏側からも操作するUIの方がクールになるのでしょうか?
もしかすると専用の3Dメガネが必要ない3Dディスプレイが主流になれば、見えるけど触れない立体的なフルサイズのキーボードやマウスが浮かび上がってくるのかもしれませんよね?
とすれば、UIのデザインの移り変わりも、ディスプレイの持つ長所や短所とかなり密接な関係にある様です。
果たして、「昔のタブレットのディスプレイは2Dつまり平面な表現しかできず、キーボードが飛び出さなかったから、直接ディスプレイの上をなぞってたんだよね?だからすぐ汚れて・・・」などと云っているボクが居そうな未来は来るのでしょうか?(大笑



Facebookは衰退してしまったのか?

Facebookが衰退したのかどうかは知らないけど。
SNS全体の衰退が激しいことは実感している。
スマホやタブレットの利用者が増え、パソコンに向かって記事や日記を書く人の割り合いが相対的に減っていることが主な原因だ。
スマホやタブレットでは画面が小さいので、文章と文章の間に画像が入り込んでいる様なレイアウトより、画像はクリックしたら自動的に画面サイズにズーム表示してくれた方がマシだったりする。つまり、twitterのようにダダダとテキストだけ書きこんだ方がマシ、テキストのみのスレの方が会話のログが残って便利なのだ。UIの仕組みからも既存のSNSをスマホやタブレットで扱うのは面倒を通り越していた。
これに対してFacebookには自己アピールというもう一つの要素がある。もともとアメリカの子供が自己紹介するページの様なものが発祥で、ここから発展して自己と対応する「いいね」ボタンが発明された訳だ。
それ自体、面白い要素であったのだが、飽きられるのも速かった様だ。「いいね」を押すにはFacebookのアカウントが必要だ。それじたいが面倒な気もするが、よーく考えると個人を特定されてしまう仕組みでもある。
「特定の傾向の記事」に対して「いいね」を押す人は、「その逆の傾向の記事」に対しても「いいね」を押す人である。のような「いいね」を押す傾向が公開されたりもするので、ある意味、公開アンケートの状況を呈しており、これを逆に遡ることができれば、容易に、ボタンを押すことで横顔が見えてきてしまう訳だ。
そして、一番厄介なのは人間個人が、◎や×を押す判断は、気分だけで変化するものでもなく、色々な状況によって左右されるので、気が付けば押す基準がブレている訳で、そんな情報を集めるほど結果は不正確であり、どうしようもない傾向しか見えてこないものだ。別の傾向例えば、トレンドのように変化するのが当然!ブレて当たり前と主張する趣旨の傾向については賞味期限がとても短いので、有効な気がする。しかし、それも、何度も締切を過ぎてしまえば、トレンドを追いかける対象そのものが陳腐化してしまうので、長く保存するだけ無駄だろう。
と云う訳で、蓄積したものがゴミと化していくわけだ。
となるとアカウントに紐付いた情報やリンクの大掃除が必要で、使う期間が長くなるほどに結構面倒な作業になってしまう。
だったら「いいね」押すだけなら、twitterで十分な気もする。
つまり、中途半端だった訳かな?
※この場合、Facebookよりも人間の方が・・・である。



jsonをHTMLのTABLEで表現してみた

おなじみのJSONをTABLEで表示してみた。
やはりツリー表示の方が判りやすい気がした。
名前が英語のままでは読みにくいような気がしたので辞書も追加。
詳しいことはソース嫁。
サンプルデータはてきそうにあさったもの。
もう少し改造して、
JSONの改行して見やすくしたり、
一行に戻したり
TABLEのデータを書き換えものを、JSONに戻したい。
とか色々思うけど・・・
単純に「タブレーション」と「一行に戻す」この2つさえあれば、差支えない。
データ間違ってるけど、どこだっけ?「タブレーション」、そうココ!カキカキ
んーでも送信するときは1行にしないと面倒で「一行に戻す」、よしこれで・・・(大笑
psⅠ.
PCにHTMLを保存してchromeで開くと、iframeの部分が文字化けする。どうやらPC上のファイルはシフトJISに変換しないとダメらしい。
psⅡ.
JSONを【一行に戻す】ボタンと【適当に改行を入れてみた】ボタンを追加してみた。どうも調子が悪い。
ps.Ⅲ
treeっぽくolタグでTREE展開するボタンも追加。
改行の仕方も同じように修正。
辞書の差し替えを追加。
TABLEやTREEに展開した時に使ったHTMLのソースも一緒に表示するようにした。主にコピペ用。
なお、画面下のサンプルでしか動作を確認していないので、いい結果が出ないことの方が多い気がする。(笑



ゲーミングPCは難しい?

動画を観てて時々絵が止まったりカクカクな絵の動きになるのはイヤですよね。
で、動画再生支援の付いているグラボやそういう状況に特化したアプリ(止まるくらいなら画質を下げる等)を使ったりする訳で、
ゲーミングPCもゲームやってる最中に絵がカクカクとかもっと広い画面で観たいとか不満を大方解消する目的でパーツを寄せ集めたPCです。ゲームによって必要な機能や性能が異なることが多いので、ゲームごとに推奨PCまでありますよね。
厄介な点はオンラインなど配信型の場合、パッチやバージョンアップで素材(モデルやテクスチャーデータなど)が追加されていき、色んな装備の人が画面に映ると、カクカクしてくることが次第に増えていくことです。
つまり、頻繁なアップデートのあるゲームでは時間の経過とともにモッサリ感が出てくることがある訳です。
大方はメモリを増やしたり、HDDからSSDに変えて、増えてしまったデータも難なく扱えるようにすることで解決できますが、GPUに送り出すデータ転送量が飛躍的増えた場合にはCPU、一度の描画で扱うデータが増えたらGPUをもっと性能がよいものに変えざるを得なくなります。
GPUは概ねPCIe×16スロットのままで形状は変わってないですが、データ転送速度はVerによって倍々と変わってますし、CPUに至っては形状そのものが変わっているのでマザボの交換も必要だったり、しかもマザボの交換と一緒にメモリも交換しないとCPUの性能が伸びそうも無かったりすると、買い替えた方がマシな状況も出てきます。
そこまで行きつかなくても、画質設定を一段さげることで、問題なくゲームできるならその方がマシです。
一方で際限なく高性能な(予算の都合もあるけど)PCを買い求め、広い画面、高画質、高FPSな嗜好的ゲーミングPCもありますが、これは旬(話題性が高い)な高価なパーツを集めたもので、大方はかなりオーバースペックになっているハズです。でも、どうせ買うなら最高のもの(ゲーム内と同じ衝動)が欲しい人もいるので、願ったり叶ったりなのでしょう。
では普通にゲームするならどうしたらいいんでしょう。
 
ひたすら高性能を求めて、ドンドンPCを買い替えるのも変な気がします。
高性能=消費電力も高い図式もあるので、自宅の電気の契約容量ではブレーカーが落ちてしまう場合もあるでしょう。
逆にコストパフォーマンスぎりぎりでは発熱や騒音がひどくPC自体が短命になってしまう場合もあります。
 
トリアエズ、そのゲームの推奨PCを買って、他もやりたくなったら、そのまま体験してみて、やばいなぁ~と思ったら、PC買った店で店員に相談するのが一番かも。
ネットなら同じゲームをしてる人の日記を見てみたりするのがいいかもしれない。(上には上がいるし、下には下がいるので逆効果な場合もあるかもしれない。
 
FF14やるから・・・と買ったCPUがLGA1156で、翌年出た次世代型でソケットがLGA1155に急遽替わり、短命になってしまった経緯もあるけど、INTELのHASWELLについては、その次のCPUではマザボに直接ハンダ付けするBGAに変えていくと云うことだったのでLGA1150は短命っぽく変える気はなかったが、暫くはLGA1150を延命する方針になったらしい。この辺もその時期によって変わってくるだろう。
だから、買い替えたいな~とかパワーアップしたいな~と思ったら、PC専門サイトから情報を集めるあたりから始めるといいような気がする。(振り回される可能性も高いけど・・・
宣伝記事もあるので、多少は時系列で記事を読み、他のPC専門サイトと見比べた方がいいだろう。(アタリマエか・・・
 
と云う訳で、全然ためにならない内容になってしまった。
それくらいゲーミングPCを選ぶのは難しいものなのかもしれない。(大笑



何故?Haswell【LGA1150】版Thin Mini-ITXマザー

Thin Mini-ITXの魅力は、薄さである。
何台も用意しなければいけないなら用途(会社のPCの仮想デスクトップ化など)では、厚みが薄いと並べるのが楽だ。1cm低くなれば10台並べると、10cmも余裕が出てくるからだ。規模が大きいほど、実感できる。
Thin Mini-ITXより小さいnuc(規格ではなく企画モノ)はThin Mini-ITXよりちょっと厚い。理由は基盤の片面にコネクタ類とCPUの冷却機構を取り付けるスペースがないので、片面にコネクタ類、反対側に冷却機構を取り付けておりエアーフローの邪魔になる突起物が無いので冷却効率は良くなっているので、一番薄いのはThin Mini-ITXなのだ。
一応、Thin Mini-ITXマザーにもPCIeスロットは付いているが、×4である。ノートPC嗜好であるHaswellではデスクトップ向けではGPUはIvy Bridgeとそう変わらない、またHaswellになってTDPが上がった分しっかり冷却できるのか?ちょっと疑問だったりする。もっとも待機電力はぐっと下がった分、チブチビと使う分には、問題ないだろうけどね。(笑
で、HaswellのThin Mini-ITXにどんな魅力があるだろうか?GPU抜きでBlog鯖でも作るならOKかもしれない。しかしGPUも使う仮想デスクトップ向けとなると、どうだろう?高効率の画面データの圧縮支援でもあればよかったかもしれないがそんなものはないので、白っぽい画面では画面の更新も普通ではあるけど、ロック画面(大抵は黒っぽい)にするとバラバラバラバラとタイル塗りするようなのはげんなりする。そう仮想デスクトップするならそれなりの動画圧縮支援付のGPUが付いてる方がいいのだが、GPUの性能によほど余裕が無ければ無理な話なので、仮想デスクトップはいつまでもバラバラとロック画面に切り替わることになるだろう。
という訳で、デスクトップもIvy BridgeからHaswellに変えても、さっぱり違いが判らないが、Thin Mini-ITXも同じである。
多分、GT3e搭載のnucでも出れば、買い替えてよかった!とでも思うのだろうが、そんな商品が出る予定を聴いたことは無い。(大笑



サーバーを仮想化すると嬉しい訳

サーバーを仮想化すると何が嬉しいか?
それは・・・
インスト仕立てのイメージを残しておけば、元に戻すのが簡単だから(大笑
サーバーに必要なパッケージ(アプリとかサービス)を入れているうちに、使用しているライブラリィのバージョンの競合問題とか色んなことが発生する。
そうなったら、とりあえず、前の状態に戻すのが一番だ。
しかし、何かトラブルが発生すると、アンスト自体失敗しかねず、何かゴミファイルが残っていることに気が付かないと、それがきっかけになってパッケージの再インストに失敗することも多い。
そう、何かパッケージを入れる前に、仮想化の管理ツールからディスクのスナップショットを取っておくのが一番なのだ。
そうしておけば、とりあえずインストして、終わったら直前のスナップショットに巻き戻すなんてこともできる。
パッケージの設定方法はなぜか色々あって、どれが一番良い結果になるのか・・・・・・・・・・・・・・・・・・・・・・・

やってみないと判んない!

なんて場合にも便利だ。
失敗する度にOSから入れ直しなんてやってられないからね。
・・・(遠い目
それに無償パッケージばかりなら、うまくいったイメージをコピーして、比較的短い時間でサーバーの数を増やすこともできる。
Windows8 PROにHyperVを追加すれば、仮想サーバーを作ることができるから、そこで、お試しでCentOSの新しいバージョンや古いバージョンを作って様子を見ることもそれほど費用をかけずにできる。※仮想サーバーで使う分のメモリを用意しておく必要はある。
ただ、DiXim Digital TVと何かが競合するようで、BDレコーダの録画が見れなくなるのが欠点だけどね。(渇いた笑
 
そんな訳で、サーバーが扱いやすいものだったら、仮想化なんて不要なのだ!と云う点は押さえておこう。
 
つまり仮想化をプッシュしてくるという意味は結構根が深いのだ。
でも、現実問題として扱いやすいものなんて、早々巡り合えない訳で・・・
やはり仮想化は便利。
しかし、仮想化しなくても扱いやすいのが一番だよね!



nucなCentOSのブログ鯖を無線LANで繋ぐ方法

一言で云えば無茶。
/etc/sysconfig/network-scripts/ifcfg-eth0 のようにBOOTPROTO=”dhcp” を書けば、勝手にIPアドレスが貰える訳では無い。
無線LAN接続で、ログインして暫くたった後にブラウザやメーラを起動するハズ!そう云う考えで作られていることを痛感した。
大事なことなので復習しよう。
まず、wpa_supplicantパッケージをインストして、
# wpa_passphrase {SSID}  {パスワード}  >> /etc/wpa_supplicant/wpa_supplicant.conf
でひな形を作った後に、
無線LANの環境に合わせて、

proto=WPA2
key_mgmt=WPA-PSK
proto=WPA WPA2
pairwise=CCMP TKIP
group=CCMP TKIP WEP104 WEP40

などを追加し、
# service   wpa_supplicant   start
# ifup wlan0
# chkconfig   wpa_supplicant   on
これで起動したときに無線LANが使えるような気がするが
実際には無線LANのSSIDの認証をした後に毎回
# ifup  wlan0
が必要らしい。
しかし、モニターすら繋いでいないのに素で、起動の度にキーボードを繋ぐのも面倒なので、
/etc/init.d/wpa_supplicant に
ifup wlan0を追記するのが現実的。
 
 
何度かコールドスタートを行い、 安定したことを確認したら、
# ifdown eth0
で有線LANをOFF、ルータからIPアドレスの割当てをMACアドレス指定の手動設定に変更し、外部から80ポートでアクセスがあれば飛ばすようにする。
※このブログを見るにはIPアドレスのURLで十分だが、FF14のブログの方はマルチドメイン寄生型なので、無理。
/etc/hosts に
自身のマシン名.ドメイン名     192.168.***.***
名前でIPアドレスを引ける様にしておかないと、WordPressの自動バックアップのメールが届かないっぽい。
また、メール送信にはトリガーとなる真夜中のアクセスが必要らしい。
 
しかし、LANケーブル一本減らすには面倒すぎるなぁ~



結局EJBは無駄飯食いでしかなかった

EJBを使ったJavaのなんたらシステムが起動した後に、中のEJBが安定するまでの時間は運用してみないと誰にも判らない。
と云うのも、ヤベーと誰かが気が付いて、実装クラスのインスタンスをインタフェースの変数にインジェクションするからだ。
云ってしまえば、インタープリターのごとき仕業であるので、遅いの一言に尽きる。
EJBを使えばjUnitでmockが便利なんて詭弁でしかない。
大体、mockのソースの賞味期限は数か月にも満たないのが普通で、
そんくらいなら、Eclipseで、src/main/javaとsrc/test/javaのクラスパスの順番を変えるくらいで十分だし、その為だけにjUnitのテストソースからプロセス起動するようなことをしてもよいだろう。
※当時の言い分: EJBが出来た頃はEclipseなぞ無く、エディタ+Shell+吐き出されるログが全てだったので、環境変数のクラスパスを手で変更するのは大変危険だった。
とあるよく使うDaoなりActionなりをEJBで作り、jUnitでテスト環境を作ったとしよう。
それをベースに10~20個のコピペのようなものは、非常に簡単にできる。
しかし、
本当の地獄はその後に始まる。
Daoに何か変更が入ると、上記のコピペに一斉に修正が必要になる。
10個ならマシだが・・・100個だったら、結構大変だ。
そして、
当然の帰結として誰も誰も使わなくなり、
更に数か月が過ぎると、全く使い物にならないjUnitソースの残骸が残るだけなのだ。
無論、プロジェクトの立ち上げ時には非常に役に立つ。
但し、その後は捨てるものだ。
最後に残るのはEJBで作ったDaoやAction
どうやってテストするんだろうね?
え、実際に画面を実行?
です。(キッパリ
だって、その方がちゃんとしたテストデータもテストケースもあって、役に立つんですからね。
ここに到達してしまうと、
jUnitなんてもう使う訳もない。
※当初の仕様から全く変わっていないものを除く。
別に、直接Daoオブジェクトを作っても何も支障が無いことに気が付くわけである。
Actionだって、httpセッション経由で起動をかけることだって、別に難しい訳でもない。
それでも、今なおEJBは生き残っている。
理由はいたって簡単、
大半の機能を使うこともないlog4jを何となく使ってしまうのと同じなのだ。
多分、Java系の定番jarファイルを使うのを止めたら・・・
別世界なんだろうな。(大笑
 
 
 




top