変奏現実

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

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

自動運転車の時代には維持管理にマンパワーが無駄に必要

自動運転車の時代?甘過ぎる。
整備された平らなアスファルトの道のみを行き来きできるのはごく限られた地域だけで、今時分の様に積雪量が多く日常的に除雪が間に合わない状況になったらもうダメだろう。
都庁がクリスタルタワーの様に見える様な天候では無理に近い。

濃霧のため、★★自動運転車は起動しません★★★

とか天気予報に出ることになるのだろう。
脇道のたった10cmの新雪でも固く固められた雪の上にシャーシを乗り上げてしまえば立ち往生。
両脇を雪山で固められ車両1台分しか幅が無い道でどうすれ違うことができるだろうか?
デコボコの雪道の不意に妙な方向への車体の滑りにカウンターを当てるのは慣れるまではかなり難しい。
滑っていく方向に進み、滑っていく方向にハンドルを切り、まっすぐになったら、元の方向に戻る。
慣れてしまえば当たり前だが、路面状況や荷重配分などで、全く違う方法で切り抜けることも必要。
そんなプログラミングなんて面倒だし、プログラムのテストは更に面倒でとても無理。
多分、自動運転車の時代が来たら、市内の道は完全舗装、除雪も完璧にクリアしないといけないだろう。
真っ先に必要になるのは自動運転の除雪機だろうね。
それが出来ても周囲の交通整理は人間がやるしかないだろう。(大笑
しかも困惑した状況への対応もやはり人間がやるしかないだろう。(大笑
と云う訳で自動運転車の時代が来たら色々なクレームが地方行政にいっぱい来ることになるだろう。
そのクレームの対応もやはり人間がやるしかないだろう。(大笑
ま、不景気だからそれでも良いのかもしれない。
但し、 完全自動運転車が出来ない訳では無い。
だが、それは呆れるくらい使いこなした後に完成されるものだ。
そう、自動運転車の時代は自動運転車がありきたりになって初めてやってくる。
人間が運転する方が危ないくらいになったらね。
また、自分で自動車を運転するのが面倒とか、オーナーになりたいとは思わない。
そんな流れも必要だろう。
そして、それは着実に進行している。
その最大の難関が『タクシー業界』である。
金持ちだけが自動運転車に乗っている間はいいが、
先の状況からすれば、普及はレンタルカー会社から始まるだろう。

スマホで簡単に貸し出しできますとか何とか。

だが、普及しだしたら先の業界の大反対は避けられないだろう。
何と云っても「余剰人員を取り込み社会に貢献している業界」なのだから。
一方、自動車のオーナーが減れば、ガソリンスタンドもかなり影響が出るだろうし、更にセルフサービスのガソリンスタンドも自動運転車対応をしなければならない大変そうだ。



DN2820FYKH

DN2820FYKHはBay Trail-M版のCeleron N2820を搭載したNUC。
主な特徴は、

  • ストレージが2.5インチサイズの普通のSATAに変わり、ケースの高さが倍になった。
  • マルチカントリー対応 AC プラグ付いている。
  • mPCIは、インテル® Wireless-N 7260BN が刺さっている。
  • バックパネル・ヘッドフォン/マイクロフォン・ジャックがある。
  • USB3がやっと1個付いた。

と普通さを全面に出しており、でメモリと2.5インチのSSDを買えばすぐ使えるが、

  • DDR3L-1600/1333 S.O.DIMM

Celeron N28201.35Vタイプのメモリしか使えない、普通の1.5Vタイプはダメないので要注意。
対応OSはWindows8.xかLinux、Windows7はドライバが絶望的、また今現在Bay TrailはWindows8.x(32ビット)のみ対応になっていて4月以降に64ビット版用のドライバが出る見込みでそれまで待ちになる。
※Windowsの64ビット版は32ビット版アプリを32ビット版のエミュレート機能で対応するが、ドライバーは64ビット版しか受け付けないので32ビット版ドライバー同包のアプリはまず使えない。(地デジチューナー等)
今使っているDCCP847DYCeleron® Processor 847でDN2820FYKHになりCPUがパワーアップした感じだがグラフィクスは似たようなものだ。
Windows8.1(32ビット)で使うことを前提にするならDN2820FYKHの方がいいだろうし、メモリが高目のDDR3Lだが32ビット版なら4GBを使い切れないので、1枚でいいかも。
Windows8.1(64ビット)で使うならDCCP847DYになるが実際にはちょっと負荷を翔ければCPUのパワー不足が酷いことになるのでCPUはi5やi7の方がいい。
ブログ鯖で使うなら安い方のDN2820FYKHの方で十分だし安めの2.5インチタイプのSSDを使えるのでメリットは大きい。その辺に置いておくなら・・・高さが倍になっても困らない。(笑
そんな訳でWindows8.xでDN2820FYKHを使いたいなら4月にドライバーが出るのを待つしかない。だから今は安いのかな?
いつもそうだが、INTEL製マザーボードの泣き所は各種OSでサポートが行き届いていないLANチップで、インターネットからドライバーをダウンロードしようにもLANが使えない。それに似たような型番のLANチップのドライバーをごまかしてセットアップするのは結構手間がかかる。



Pionner BDR-209JBK 【評価:う~む】

パイオニアの内蔵型Blu-ray Discドライブ(ソフト付)。
ドライブ自体はWindows8.1 TMらしいのだが、Blu-ray関係は何かとWindow8.xでは動作しないソフトが多く、有名なトコのモノでも怪しいので、添付ソフトもWindows8.1 TMで揃っていれば嬉しい。
だが、同包されるPowerDVD10のページを見ると、動作環境のリンクにはVista,WindowsXP,Windows7までしか書いてない、どうやらPowerDVD13まで待たないとWindows8.xでは使えない可能性が高い。
ただ、PowerDirector 10はWindows8.xに対応しているっぽいが、プレビューが見えない可能性もある。
という感じで、Windows8.xで使用することはあまり眼中にないようである。
ちょっと残念な話だった。
次回に期待します。
 



マクロとスクリプトとインタープリタとコンパイラ

インタープリタとコンパイラは仕組みこそ違うが「ソースを読んで実行する」と云う目的では全く同じ方向を向いている。
これに対してマクロやスクリプトは専用のパーツではなく、よく使う既存パーツを繋いで一本でっちあげることに特化したものだ。
何だか同じものの様にも思えるが、マクロやスクリプトは既製品をうまく使える様にできているので既製品をどう使いこなすかが重要で、一方インタープリタとコンパイラではどれだけ独自の機能(特注品)を作りだすかが重要になっている。
結果を云ってしまえば、インタープリタとコンパイラで既製品を作り、マクロやスクリプトでいつもの作業の手間を省きあわよくば自動化してしまうのが一番使い道としては正解となる。
例えるなら、エクスチェンジャーとそのRedaer,Mapper,Writerをバラバラに作り、XMLで組合せ、スクリプトとして実行させるのが、一例と云うことになる。
一々、

exchenger  -r:<reader-name> -m:<mapper-name> -w:<writer> -i:<input-name>  -o:<output-name>

と書くよりも、XMLの先頭にコメントを1行追加して、

<!-- exchanger -->
<xml>
<reader>{reader-name}</reader>
<mapper>{mapper-name}</mapper>
<writer>{writer-name}</writer>
<input>{input-name}</input>
<output>{output-name}</output>
</xml>

をシェルでexchangerを呼び出す様な仕組みを入れてみると楽そうだ。
残念ながら、どの辺が汎用品で、どこからが特注品なのか、はっきりしない今日では、日曜プログラマーかサーバー運用者ぐらいしか使いこなせないのが実情である。
だから、一本化できないかなと考えているところ・・・(大笑



人間の才能は幼いうちに何をしてたかで決まる?

「大成した人は幼い頃から慣れ親しんでいた道だった」的な話である。
何となく納得がいく様な気もするが、そうでもない様な気もする。
と云うのも、幼い頃から慣れ親しんでいた道を進んでも、大成できなかった人もいるのだ。
更に、大多数は「親から押し付けられたものは嫌いになる」法則が適用されるので、失敗例となり、僅かな成功例から結果を類推してもあまり参考にはならないのである。
野球など人生よりずーっと長い歴史がある分野ならもしかしたら幼い頃からやっていれば成功例になりえるかもしれないが、PCの様に歴史がやっと数十年になり『レールが充分伸びてきた』と云ってよいのだがモバイルに押されてヨタヨタで先は長くなさそうである。
でも、「もう野球は飽きられた」と云う時期(野球中継がどんどん無くなっていた時期)も彼らは黙々と野球をやっていて、彼らが輩出したことで「野球自体が見直された事実」を考えると、廃れ流行りに敏感なすぎても成れるものではないだろう。
残念だがその分野の「申子」と呼ばれた人たちは「天賦の才能」を持つ「運の良かった」人たちである。
アタリが少ない「成功例」と云って良いだろう。

  • なれてよかったね。滅多になれるものじゃないんだよね。
  • なれなくて残念だったね。でも大抵の人はいつか卒業するものさ。

程度の話でしかなく、あまりこだわっても無駄でしかない。
極端な話、宝くじの一等を引き当てる人は少なからず実在するハズだが、それも「運の良かった」人たちでしかないことと同じことであり、その人たちのマネをしても一等を引き当てることは至難の業で、仮に引き当てたならやはりその人も「運の良かった」人たちの一人になるだけの話である。
つまり、宝くじを買わなければ一等を引き当てる可能性は0だが、買ってもほぼ0である様に、幼児教育も確かに必要なのだろう。ただし、大成する可能性はほぼ0である。
その辺の十分な理解が必要だろう。
ま、早い話が「やってみないことには判らない」だけの話。(大笑
 
 
 
 



エクスチェンジャー

CSVで作ったデータをデータベースに入れる。
EXCELで作ったデータをデータベースに入れる。
隣のデータベースで作ったデータをデータベースに入れる。
など普通は「データ移行」と呼ばれる作業は
実は「データ変換」な作業で、
データを変換する万能ツール「エクスチェンジャー」を作ると仕事が捗る。
仕組みは簡単。
仕事で使うデータの大半は1行にデータが固まっているので、
Readerとデータのマッピング処理とWriterの1セットをINIファイルやXMLファイルに書き、それを読み込ませて実行させればよい。
やりかたは1データ(1行)づつReaderから読み、そのデータをWrirerが判るように順番を入れ替えたり、データの名前や形式を変換し、Writerに手渡せばよい。
これはおおよそどんな言語でも同じ様に作れるし、大した仕組みでもない。
が、設定ミスや設定漏れをちゃんと指摘する仕組み(エラーログやテストモード)を用意しないと
実際に動かしてみないとうまくできているか判らない。
テストデータを用意しておけば気楽にチェックできる。
但し、実際に数万件のデータを流してみて引っかかった場合にどうするか(諦める:ROLLBACK、頑張る:AUTOCOMMIT)ぐらいの設定モードが必要だ。
多分、失敗したデータが欠落しているのでその分を流し直すだけならトラブルも解消しやすい場合が多いだろう。
しかし、一件でも失敗したら全部元に戻したい場合もある。
エクスチェンジャーを作る際には、どう使われるか、よく考えて色んな仕組みを用意しないと、
普段は設定して流すだけの単純作業なので、何か変だな?となった時に非常に困惑する状況に陥りやすいのでこの点は要注意だ。
使い方のサンプル例だけではなくトラブル時のマニュアルなんかも用意しておいた方がいいだろう。
アレ?使い物にならないじゃないか?なんて気が付くこともある。(大笑



リア充嗜好プログラミング

「AにBが無いと不便なんで追加しとくね。」
と云う感じでメソッドを増やすのがリア充の『嗜好プログラミング』。
仲間内で快適なら何でもOKなのである。
ま、便利になるならありがたい。
ただ、その場しのぎで追加するのでINTERFACEにBを定義してしまうとBが無い他のクラスからブーイングが出る、しかし延々と同じ処理のメソッドが全く別系統のクラスのソースにコピペされるのも厄介である。かと云ってBという処理をプロパティ化しクラスAから分離すれば他でBを実装しているところを一斉に変えなくてはいけない。
但し、ラフな結合手段を取っている箇所ならあまり問題はない。
てな感じで、リア充嗜好プログラミングは、ラフな結合手段な結合手段で出来ていなくてはならないから、最初から最後まで見通しが悪いままとなる。
勿論、当人の頭の中にはちゃんと入っているので、当人とその仲間だけは何も支障が無い。
 
※例:どこかのオンラインゲームの運営のパッチ等



原発の再稼働問題

原発の発電を止めても危険性は無くならない。

だったら勿体ないから再稼働したら?

と云う話が進んでいる。
あの大地震で判ったことは「いつもニュースで流れていた小さい扱いで済んでいた小さな原発の事故」も「手が施しようが無い事態」になってしまうことだった。安全な状態だったら普通に解決できることも、「放射線濃度が高すぎ⇒人手を入れられない⇒何もできない」ということだった。
と云うのも、ロボットアームや全自動機械を使い遠隔操作で安全に作業できる区画は「常時人間が入ったら危ない場所」に限られているのだ。いつも安全な場所(と思っている)ところでそんな機材を使うのは「日頃扱っている普通の機械より扱いにくく、しかも高価と決まっている」ので一般的な観点からも「不経済であり効率的な作業ができる設備」とは云えないから「日頃扱っている普通の機械」を使っているハズだ。普通に考えればね。
そんなところまで汚染されれば容易に「想定外の事態」になってしまい「何もできない」状態に陥ってしまう。これまた普通に考えてもそうなる。
どうしようもなくなり、色々かき集めて、色々やっている訳だ。
だが、その結果は再稼働する原発に反映されているという話は無い。
一応、資料を見直し、大丈夫そうだからOKかな?という話だったり、地層を観れば活断層とか両極端な話ばかりだ。
では、なぜちゃんと議論なり調査なりが出来ないのだろうか?
1.自信が無い。
ちゃんと議論なり調査なりをし大多数が納得できるような議論や施工などを行っても再稼働後にまた「大事故」にならない保障にはならない。あくまでも大多数が納得しただけの話なのだから予想を裏切られることはありうる。しかしその時になって大方の人が「仕方が無い」と納得するとは全く思えない空気が満ちている。
2.原発を放置しても安全ではない。
人の噂も45日。放置しておくと感心が薄れるが、安全管理意識も薄れていくのは当然の帰結。
3.だったら、とりあえず再稼働してみる方が安心。
またまた「大事故」になったら「不備がありました。」と深々と頭を下げる。
だけでいいじゃないか。
という流れだ。
部外者から見えるのはその程度だ。
それなりに善処した結果なのだろうが・・・
次のオリンピックまでにもう一回やっちまったらアウトだろうな。
忘れてるかもしれないけど、最近は大きな地震って多いんだよね。



手の施しようが無い

Javaでのシステム開発は手の施しようが無い。
そう思うようになった。
詳しくは書かないけど、
今回も

完成品しか眼中にないシロモノだった。

思うに『物造り日本』が前世期の歴史になってしまい

完璧なものが出来ているなら単体のテストはサラっと動くハズ。
そこで手間取ると云うことは、製造(色々なファイル)段階の品質が悪い。

と思う

消費者指向のシステムエンジニア

が数多くいるのだろう。
少し違うかもしれないけど

コアゲーマーなシステムエンジニア

と云った方が意味が通じるかもしれない。
※プレイするけど製品は作らないという意味。
※ボクはライト系ゲーマーです。
※そう云う背景もあってゲーム開発には今も一切係わっていません。
こうなってくると、

今はソースを書いたら負けです!

としか言いようが無い。
ソフトウェア開発で「同じ内容の仕様書」を見て「考えながら同じソースを書く」ことはまず起きません。
なぜなら、同じものならファイルをコピーするだけでいくらでも量産できるからです。
ですから、ソフトウェア開発は試作品を作るのと同じです。
試作品ですから、その設計書を読み、パーツを作り、組み立て、塗装してみたら

クズだった!

となることがあっても当然です。
※普通、考えた時はイケルと思ったけどなぁ~な結果を量産品で出さないための試作品ですからね。
そして、特注品な訳ですから、その経験が生きるのはクズのリテイクを泣きながらやっている時だけです。他に応用が効く訳もありません。ただ用心深くなり人を見れば疑い出すだけです。
生産性を高めると云われているワークフレ-ムも判りやすく且つ品の良い言葉を選べば、
優秀な自己流プログラミングは他人に読める訳がない法則(※特にJavaScript)
に従っていて大抵はクズなのです。
すれっからしのStrutsの良さは、注意書きのストックがいっぱいあるということであり、扱いやすい訳ではありません。
※それでも新しい(怪しい)ワークフレームよりはマシかもしれません。
その最左翼と云える『jQueryの人気に便乗して開発中のNode.js』は今どうでしょうか?
いつになってもVer.1.0が出ることがないような気もします。
なんとなく懐かしいザナドゥ・プロジェクトなんかも思い出しちゃいますね。※結局、自然消滅。
閑話休題。
で、その仕様書なりフレームワークなりの意味するところを一番理解した時がやってくるのはシステム開発終了。つまり最後まで試行錯誤が続くわけですね。
まとめると

システム開発

のはずが

  • システムを構成するワークフレーム

 

  • 開発手法

 

  • 開発ツール

 

  • 品質管理

 

等などの

 

『実証実験』

に成り下がってしまうのです。

  • サーバーの余力があれば云いたい放題!

 

  • サーバーの余力が無くなれば禁則事項の乱発!

 
という話はどこでも聞く話です。

貧層なホストを

 

なんとか使っていたCOBOL時代より

 

寒い時代になったものだ

 
 
と云ってよろしいのではないでしょうか。(濠泣
 
それらの顛末から得た教訓は、
A と B を組み合わせると、必ず両方の悪い点が露呈する。
例えば、すれっからしのStrutsは、XMLをジョブ制御に見立てて色々なリソースを実行する仕組みですが、デバッグは実機でよろしく!となっています。勿論Eclipseでデバッグできるような仕組みがある場合もありますが、無い時もあります。
では、実機が存在しないのにどうテストするの?と云えば、

完璧ならちょっとテストすればOKだよね?

の方針はここでも生きています。
それでもJavaのシステム開発に手を出す理由と云えば・・・
マシなところをまだ知らないだけでは?と思っているからです。
今のところ、ハズレだけですけどね。
いつかは・・・と思いたいですね。
ボクなりの解釈では、JavaScriptにJavaコンパイラを載せれば全て解決できると思っています。
そう、なんでもJavaで書けばいいのです。
ではEclipseは最高?と云えば、そうではありませんね。
無理やり作り上げてる感じでいっぱいです。
ワークスペースはよく壊れますし、最悪の場合は起動すらしないバージョンもあります。
なぜ、そうなってしまったのかは、沢山の人の手で努力と汗で作られたので、思い違いな箇所がやっぱりあるのでしょう。
Javaだけでもそんな感じですから、単純にJavaと何かを組み合わせると、もう途端にダメになります。
Javaソースだけで出来ていればEclipseがあればNot Found Classなどと指摘され実際に動かす前にソースが足りない事も事前に察知できますよね。
誰かがXMLやプロパティファイルからJavaコードをマッピングするアイデアをここに差し込むと、このアイデアが重大な欠陥を呼び起こします。
EclipseがXMLやプロパティファイルに書いた参照クラスが実在しなくてもNot Found Classと指摘してくれないのです。
たったそれだけのことですが、動かしてみないと判らないシロモノに劣化してしまうのです。
そして大抵は動かなくなった場所でプログラムが異常終了。その先どうなるのかは想像するしかありません。オマケに止まった場所から再開できることはまずありません(継続できそうもないので停止したんですから)ので、この先のバグは?1個?10000個?そんなの判る訳が無いので、見通しなんてただの思い付き、ソコが非常に困ります。
EclipseにはJavaソースのimportsとClassPathを頼りに探索するプラグインが入っており、これが【問題】ビューに色々と悩みを書き込んでくれるのですが、そこにXMLやプロパティファイルで疑似的なクラスパスを実装しても探索不能になるのも当然です。
それでも、独自仕様のXMLに参照クラスを書いても、これを手がかりに探索するプラグインを作り同じ様にNot Found Classと【問題】ビューに書き込めば良いのですが、当然ながら何種類もの設定方法があったりすると、正しいのか間違っているのかTRUE/FALSEで判断するのも難しくその判断のため、独自の設定が別途に必要になったり、その設定ミスが原因でNot Found Classが出ない可能性もあり得ます。
消費者指向のシステムエンジニアは、

完璧なものが出来ているなら単体のテストはサラっと動くハズ。
そこで手間取ると云うことは、製造(色々なファイル)段階の品質が悪い。

どうやっても最後にはここにたどり着いてしまいます。
なぜなら、消費者指向エンジニアですから『無謀な納期、気まぐれな仕様の変更や追加、つまりサプライズハプニングが大好きで、その経過を見学することに生きがいヤリガイを感じているようです。』ですから、プラグイン開発にも『後出し』することになります。
そんな状況でも『どんな無理な要求にも対応し素晴らしいプラグイン』を作りあげたとしも、末端のプログラマーにリリースされるまでの長い期間の間は『いつも機能不全なプラグイン』でしかないのです。
そして、ついに

予算と時間をかけてプラグインを作る

と誰かが一大決心をした場合にはもっと状況が悪化します。
予算と時間をかければリリースは大幅に遅れるのも当然ですよね?
※試作品ですから
もしかすると開発終了後にリリースされるかもしれませんね?
と云う訳で、どんな些細なものでも、

いつも機能不全なプラグイン

しか手に入らない体制であり、
ひたすらソースを目視し直観に頼るしか手が無いのです。
よくよく考えると、

最初から打つ手がないんだね。

Eclipse?
あんなの飾りですよ!
偉い人には判らないのですよ!
でもEclipseが無かったら?
もっと酷いことになることは間違いありません!
JavaDocのバルーン・ヘルプも無く、XMLを何かに読み込ませたり、Javaソースをコンパイルするまで単純な文法エラーすら気が付かないでしょうからね。
そうそう最近は3Dプリンタがありますよね。
どうせ試作品同然のシステム開発なら、仕様書を読み込んでとりあえず3Dプリンタみたいにソースをでっちあげるツールはできないのでしょうか?
実際そういうのもあるのですが、大枠のプロジェクトや大まかなクラスを決め打ちで出すものやBeanに特化したものなど色々です。しかしいずれも、やはり作れない部分があります。残りの部分(多いか少ないかは色々)は、ツールの都合に合わせて、Javaコードや設定ファイルをあちこち張り合わることになります。どう云う訳か色々なツールを組み合わせて一式でっちあげるという流れになることがありません。
そうなると、結局、ツールに合わせて、色々試行錯誤し、考えたりする手間が増えるだけなんです。
なぜそうなってしまうのか?無能なのでしょうか?
ボクは、仕事が無くなるのが嫌なので、ちゃんとしたツールは「使わない」「作らない」「売らない」の3原則を掲げて厳守しているのだろうと思っています。(大笑



やっと出てきたゲーム向けのNUC

と云ってもGIGABYTE 「BRIX Pro」シリーズのGB-BXi5-4570Rのこと。
Iris Pro graphics 5200内臓のCore i5-4670Rを積んでいる。
注意点はRタイプはBGA(基盤直付け)なのでCPU(Core™ i5-4570R 3.20 GHz)を交換するのは無理だろう。
発熱量も大きいのでCPUファンが強化されついでに2.5インチHDDも積めるようになったので高さが倍以上になりACアダプタも勢いデカくなっている。
それでも、本体が62 mm × 111.4 mm × 114.4 mmだから十分に小さい。
なお日本での発売は未定。
 




top