変奏現実

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

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

本命の3Dプリンタが出てこない理由

今よく出ている3Dプリンターは、熱接着剤銃(グルーガン)で接着剤を盛っていくみたいなものだ。グルーガンはグルースティック(長さ10cm)の材料をセットして使うが中には長いリール状の材料を後ろから詰め込むタイプのものもある。これをX-Yプロッタの上にペンの替わりに取り付けれたのが今の3Dプリンターだ。
過去にナノマシンが結構評判が良かったが、部品の摩耗がひどいらしく、今一つだったが、多分3Dプリンタとしては本命だろう。
グルーガンで盛っていく手順を追っていけば、盛れる限界が判る。

  • 重力に逆らえない。
  • 盛れる材料の種類は限られている。
  • そんなに強度は無い。

そのため、足場材と組み合わせることで、自由度を上げているものの。
出来上がるのは、3Dプリンターだから◎かな?な程度のものだ。
金型でプラスチックを射出成形したものだといったら、多分×な仕上がり具合だ。
※バリとかあるし・・・
中には金属材料も使えるものもあるが溶接でもしているのかな?ただ、普通に売っている金属素材の程度の高温高圧にも耐えられない粗悪品としか云いようがないものしかできないようだ。
では、射出成形並の品質のものはナノマシンで作れないのだろうか?
答えは「作ってみないと判らない」
成型具合は多分、今よりマシだと思うけど、強度や重力の影響のゆがみが今の3Dプリンターの様に重力下の影響を強く受けつつ形成されるものとは異なるので、一時間放置すると鏡餅状になってしまっているかもしれない。(大笑
残念だが、ナノマシンでも分子単位でちゃんと結合させないと、今よりどうしょうもないモノしかできない可能性は高い。
悪く云えば、今3Dプリンタで出来るものは、素材を適当な形に積み上げ、ギュっと熱い手で固めた程度のものしかできない。
分子間結合、金属結合、これらをちゃんと再現できてやっとまともなものが出来上がるのだ。
でも、ギュっと熱い手で固めた程度でOKなら、今でもOK。(大笑
仮にちゃんとした強度を持った金属結合を再現できるような3Dプリンタが出来たら?
自動車や銃や戦闘機などは作れるだろうか?
多分、作れるだろう。ただ、その機動力や破壊力を良く知っているものなら、ちゃんと使い物になるのかテストしてみないことには危なくて仕方がない。仮に自転車を作ってみたとして、走っている最中にバラバラになったらどうなるか?(笑
どんな完璧な製造工程でも欠陥品が生まれない訳では無い。出荷されないだけなのだ。
3Dプリンタのそう遠くない問題は、出来上がったものの「品質管理」ではなく「品質検査」をどうやるか?だろう。
残念だが、3Dプリンタでは「品質検査」はできない。これが今の3Dプリンタの最大の欠点なのだ。
目で見て判るのは見た目だけなのだ。中身までは判らない。(大笑



ルーター不調

またココに繋がらなくなった。
ルーターをリブートしたら繋がった。
5台程度でつながらなくなるのかな?
それとも無線の調子が悪いのか?
ファームウェアを戻した方がいいかな?
ルータ(WHR-G301N)のDHCPリース画面を見ると
(*) WEB設定を行っているパソコンのIPアドレス(192.168.***.***)
のもう一つの*が無かったので、
これが原因らしい。
MACアドレスと空のIPアドレスを指定して追加してみた。

192.168.***.***(*) **:**:**:**:**:** –:–:– 手動割当

が追加された。
多分、これでいいのだろう。
【本当の原因?】
ルータを再起動したときに
もう、上のIPアドレスを使っている奴(PC)がいたから(大笑
で、多分今のファームウェアは、
同じセグメント上の存在しない他のDHCPサーバーに遠慮して、
PCを立ち上げた時にDHCPリクエストを無視していたのだろう。
と云うことで、
ルーターを立ち上げるときはルーターの有線LANのケーブルは抜いておいた方がいいらしい。



中華PAD

サムスンのタブレットのバッテリーがへたってしまい、充電しながら使用するしかなくなったので、yahooで特価6000円の中華PADを買ってみた。
専用のACアダプターでは1時間ほどで充電できるが、USBでは電源OFF状態にしないと充電できないっぽい。
電源ボタンをOFFしても、使用1分=バッテリー1%のペースで減っていくので、全く使わないときは長押ししてシャットダウンするのが筋なのだろう。
画面はたったの800×480、ブラウザでみた感じではレンダリングの負荷が大きいようでスクロールするとボヤーっと表示、暫くするとぼやけが消える。解像度が低すぎるのだろうか?
インスト状態のYoutubeではエラーばかりで動画は見れず、PlayStoreからインストしなおし、開発者パッケージのインストも必要だったが、ちゃんと見れるようになった。
3DMarkのベンチは、ダウンロードの時点でかなり時間がかかり、
起動すると、エラー!(大笑
BDレコーダの再生は無理そう。SONYのページでは、RECOPLAとTwonky Beamを入れればBDの録画が見れるハズだが、PlayStoreでRECOPLAを検索すると説明ページまでジャンプせず事実上インスト不可。
色々リンクをたどり、ダウンロードページまで行ってみたら・・・未対応機器のメッセージが出た。
Twonky BeamもBDレコーダの中を検索できるものの再生でエラー。
と結果から観れば惨敗としか云いようがない。
だが、そこが中華PADなのだ。
中華PADでは出来ないことを
スペックはそうかわらない様に見えるのに高値なAndroid製品が実現している。
と云うことはAndroid製品は製品として使えるまでに色々とチューニングが必要だと云うことだ。
タブレットで色々やりたいことができるまでは色々と敷居が高いのだ。
と云うことが判る。
それなのに、
バージョンアップばかりやってるので
最近は高いものばかりになってしまった(大笑
なんとも情けないOSなんだなぁ~
と理解できる。
そして、それを有償でやっているのがMSのWindowsである。
が、最近はアップグレードは無償?路線に傾いているようだが・・・(大笑
今時の使い物になるものと、使い物にならないものを簡単に見比べる方法がある。
電源をOFFだけではなくOSをシャットダウンしてから起動させるだけ
この起動時間が長いほど使い物にならない。
長いのはCPUやGPUが古かったりメモリが足りなかったり、色々理由があるのだ。
でも、アマゾンやyoutubeやブログをちょっと見る分には十分なハードウェアだ。
でも無線の速度が低く、ダウンロード中は操作不能になることもある。
なお、モデル番号はSoftwinerEvb、Androidバージョンは4.1.1。
3DMARKは、空メモリ1GB推奨とかメッセージが出るも進めると途中でハングアップ。
しかしZeepad7.0と認識したようで大雑把なスペックが判った。
Zeepad7.0のスペックは、
Chipset:Allwinner A13
CPU:Cortex-A8
GPU:Mali-400
メモリ:512MB
OS:4.1.1
メモリ容量以外は多分同じなのだろう。
次に買う時はOSのバージョンだけではなくTEGRA3とか4とかGPUもチェックが必要なようだ。
だが全く使えないシロモノではない、電池の減りがはやく、3DMarkやBD録画の再生ができないという欠点は大きいけどね。(大笑
ps
設定の「モバイルネットワークを使用する」にチェックが入っていたのでOFFにした。
何度かのVeriosnUp後に3DMarkが起動できるようになったが「1GB必要です。」というあれれ?なメッセージの後、LOADINGバーが6割ほどで止まる。どうやら空メモリが1GB必要らしい。



node.jsのデバッグ

コマンドラインでのデバッグはできたけど、ソースを見ながらのデバッガでソースを見れなかった。
原因は判らない。

http://127.0.0.1:8080/debug?port=5858
を表示した後に何かしなければいけないのかもしれないけど
ま、それはいい。
ただ、
http://127.0.0.1:8080/debug?port=5858
のために
npm -g install node-inspector

すると結構はソースが必要なのには驚いた。
今はまだ
ソースレベルデバッガをNode.jsに移植してみたぉ!
って感じがするので、1.0.0まで待つべきなのだろう。
そんなこんなで、
自前.jsで一式作った方がマシな気がしてきた。



node.js インストール linux

Linux版をnode-v0.10.21-linux-x64.tar.gzをダウンロードできたけど、
困ったことにページにはインストールは説明がない。
仕方が無いので解凍してみる
# tar xzf  node-v0.10.21-linux-x64.tar.gz
# cd node-v0.10.21-linux-x64
中にREADME.mdが入っているので、
その通りにやってみるようとしたが
開発者自身のリストアのメモであるらしいことが判ったので・・・
おとなしくnpmからインストールすることにする。
※一度インストールできたら利用できそうな気もする。
※だが、大幅な変更があったら、やっぱりダメだろうなぁ~って気もする。
# yum   -y   install   openssl-devel
# git   clone     git://github.com/creationix/nvm.git ~/.nvm
# .   .nvm/nvm.sh
# nvm   install   0.10.21
/usr/bin/which: no shasum in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/tripwire/sbin:/root/bin)
######################################################################## 100.0%
Now using node v0.10.21
# node -v
v0.10.21
#

で終わり。
次にソース・デバッガ

# npm install node-inspector
・・・
長いので中略
・・・
node-inspector@0.5.0 node_modules/node-inspector
tqq async@0.2.9
tqq strong-data-uri@0.1.0 (truncate@1.0.2)
tqq glob@3.2.6 (inherits@2.0.1, minimatch@0.2.12)
tqq rc@0.3.1 (deep-extend@0.2.6, ini@1.1.0, optimist@0.3.7)
tqq express@3.4.4 (methods@0.1.0, range-parser@0.0.4, cookie-signature@1.0.1, fresh@0.2.0, debug@0.7.3, buffer-crc32@0.2.1, cookie@0.1.0, mkdirp@0.3.5, commander@1.3.2, send@0.1.4, connect@2.11.0)
mqq socket.io@0
インストールはうまくいったのか?
状況はサッパリ判らない。
nodeコマンドのパスを通したら動くようになったが、
やっぱりソースは見えなかった。
そんな訳で
# rm -rf node-*
ps.2018/10/16
node.js用のユーザを作り、
https://nodejs.org/dist/v8.12.0/node-v8.12.0-linux-x64.tar.xz
を再ダウンロード。解凍。
vi ~/.bash_profile
でPATHにnode-v8.12.0-linux-x64.tar.xzを解凍した先のbinディレクトリィを追加し保存&リロード。
. ~/.bash_profile
node
> process.env
いっぱい出てくる。
> .exit で退席
とりあえず、PATHだけでも動くらしい。
https://nodejs.org/en/docs/guides/getting-started-guide/
のapp.jsを動かしてみるが、127.0.0.1では他のPCから見れないので、
app.jsをルータが割り振ったLANのIPアドレスに変え、
firewall-cmd --get-active-zones
でpublicだったら・・・※違った場合はpublicの部分を差し替えてコマンドを実行
firewall-cmd --add-port=3000/tcp --zone=public --permanent
firewall-cmd --reload
でポートを解放してやっと見えるようになる。
ThorntailやAngularやWebStormを動かすにはまだ遠い。


GeForce GTX 780 Ti

とりあえず
糊代を全部使い果たしてみました!
という感じがした。
勿論、歩留まりを上げるために削ってあった部分(SMX)を有効化しているのだから、

歩留まりは悪そうだ。

チップの選別を通過できる数はそれなりで、
落選したチップが『前のウルトラハイエンドっぽい名前』でゾロゾロ出回りそうな気がする。
その意味では

憧れのTITANがさらに身近になりそうだ。

既に購入済みの人も、
2枚目や3枚目の購入を考えれば
悪い話ではない。
 
しかし、ゆっくりしてると更なる円安がやってくるかもしれず、
また消費税もあるあがりそうなので、
時期は・・・
むずかしいなぁ~
 
もうウルトラハイエンドは諦める方がいいかも。



VBAのメモ(未検証)~VBでJavaでも読めるUTF-8のファイルを作るには~

どうしてもVBAでUTF8のテキストを作る場合は、ADODB.Streamオブジェクトを利用すると良いらしい。
EXCELシートになってる仕様書からデータを抜いて、Linux系のサーバーにCSVファイルをアップしなければならない場合には便利かもしれない。
なお、こんな面倒なことをするよりは、EXCEL君にはWindows用にシフトJISでCSVファイルを作ってもらい、LinuxサーバーにPHPでテキストをアップするutf-8のコードページのHTMLからアップすればブラウザがコードページを都合良く変換してくれるので汎用で便利なことは云うまでもないし、FFFTPが使えるなら、コードページと改行コードをちゃんと変換してくれそうだが、最近はFTPで接続できないケースが普通なので、FFFTPっぽいPHPのページを作るのが一番だろう。

あると便利な定数

LineSeparator用のLineSeparatorsEnum

定数 説明
adCR 13 改行復帰を示します。
adCRLF -1 既定値です。改行復帰行送りを示します。
adLF 10 行送りを示します。

Typeプロパティ用のStreamTypeEnum

定数 説明
adTypeBinary 1 バイナリ データを表します。
adTypeText 2 既定値です。Charset で指定された文字セットにあるテキスト データを表します。

Openメソッド用のStreamOpenOptionsEnum

定数 説明
adOpenStreamAsync 1 非同期モードで Stream オブジェクトを開きます。
adOpenStreamFromRecord 4 Source パラメータの内容を、既に開かれている Record オブジェクトとして識別します。既定動作では、Source は、ツリー構造のノードを直接指定する URL として処理します。このノードに関連付けられた既定ストリームが開かれます。
adOpenStreamUnspecified -1 既定値です。既定オプションで Stream オブジェクトを開くことを指定します。

textWrite用のStreamWriteEnum 値

定数 説明
adWriteChar 0 既定値です。Stream オブジェクトに対して、Data パラメータで指定したテキスト文字列を書き込みます。
adWriteLine 1 Stream オブジェクトに、テキスト文字列と行区切り文字を書き込みます。LineSeparator プロパティが定義されていない場合は、実行時エラーを返します。

SaveToFile用のSaveOptionsEnum

定数 説明
adSaveCreateNotExist 1 既定値です。FileName パラメータで指定したファイルがない場合は新しいファイルが作成されます。
adSaveCreateOverWrite 2 FileName パラメータで指定したファイルがある場合は、現在開かれている Stream オブジェクトのデータでファイルが上書きされます。

使い方

Dim outStream As Object

Set  outStream = CreateObject(“ADODB.Stream”)

outStream.Type = adTypeText

outStream.charset = “utf-8″  ’規定値は”Unicode” すなわちJavaやJavaScriptと同じUnicode(16ビット)である。

outStream.LineSeparator = adLF ‘LinuxではLFのみがデフォ。

outStream.textWrite   <UTF-8で書き込みたいテキスト>, adWriteLine

outStream.SaveToFile  <ファイル名>, adSaveCreateOverWrite

outStream.Close

※注意

このままではファイルの先頭にUnicodeのテキストを意味する3バイトのBOMコードが付いてしまうので、Javaで読むと痛い目に逢う。

もしサクラエディタを使っているなら作ったファイルを開くと画面右下に「UTF-8 BOM付」と表記されているハズ。

「名前を変えて保存」することでBOMコードは勝手に消えるが、毎回それをやるのも面倒なので・・・
同じことをやればいい。(ハズ 未検証!

outStream.Open       ’SaveToFile で設定した内容を再利用可?

‘バイナリーモードに変え、

outStream.Type = adTypeBinary

‘ファイルの先頭から3バイトのBOMコ-ドを読み飛ばし、

outStream.position(3)

‘中身(UTF-8になっているテキストをバイナリ形式で)を吸い上げる。

Dim binaryData As Variant

binaryData = outStream.read

そして

outStream.Close

もう一度開き直す。

outStream.Open

outStream.Type = adTypeBinary

outStream.Write(binaryData)

outStream.SaveToFile, adSaveCreateOverWrite ’※これが余計な3バイトを消す。ハズ?

outStream.Close

とする。
一抹の不安は、本当にbinaryDataが文字化けしないのか?だが、これはやってみないと判らない(笑
なお、Openメソッドの説明文を読むとCloseしてもプロパティ設定を変更してもう一度開くことができます。と書いてあるのでOpenはオプションなしでOK。
adSaveCreateOverWrite がトランケートしてくれるのか心配なら、Closeした後に一旦ファイルを消すといい。
なお、元ネタはこっちのページ JavaScriptだけど実証済のようだ。



やっぱり

やっとJavaも脆弱性を突かれる様な存在になった。
詳しいことは知らないけど、JREのJavaScriptにはセキュリティホールがいっぱいあるらしく、
本当にセキュリティを考えるなら、JREをインストしたなら、ブラウザのJavaScriptはOFFにしなくてはいけないそうだ。
と云うことは、WindowsやMacのパソコンにJREやJDKをインストすることはセキュリティ上好ましくないと云うことになる。
と云うことはEclipseの利用はセキュリティ上好ましくないと云うことになる。
 
本当にセキュリティを考えるなら、Javaは使うべきではない。
だって、JITコンパイラはclassファイルをバイナリーな実行コードを変換して実行する(かのように動作する)ものなので、実装上も危うく、ダイレクトにJITコンパイラを改ざんされたら、どうにでもされてしまう。
やっと、当たり前のことが云える雰囲気になったのかな?
 
それにしても、詐欺メールが多すぎる
そろそろ、HTMLに
<a href=”http://hogehoge.c0.jg”>http://hogehoge.co.jp</a>
※左は数字の0、右は英小文字のo。
なんて書いてあったら、クリックするとThunderbirdみたいに
「表記とは異なるドメインへ移動しようとしています。詐欺リンクかもしれません?移動しますか?
(はい)(いいえ)」
とか出てもよさそうなものだが、どのブラウザもなぜかやらない?
多分、そんなことされたら、営業妨害だ!と騒いでいるトコロがあるのかもしれないけどね。



なぜセキュリティを理由に新しいものに手を出させたくないのか?

理由は単純。
簡単なこともめんどくさくすることが仕事なので、
その辺のスマホとクラウドの組み合わせで簡単に仕事をこなされては困るからだ。
営業上の都合と考えれば理解もできるだろう。
しかし、
そんなところに長居をすると
普段便利なものを使わない習慣が付いているので
単なるi-phoneファンな中高年になってしまうしかない。

あのクラウドには大規模なRDBがあって一生懸命照会業務がうごめいているとか、そんな想像に偏ってしまう。

あの中にはRDBどころかDBの欠片もない。

中はセッションのIDをお互い持ち合っているだけで動いている。

あるのは巨大なハッシュ・リストだけ。

だから、技術者としての転職も困難と云える。
だからこそ、
技術者として人材の流れは一方向だけ。
だから。セキュリティが保たれる可能性もあるだろう。
ま、
それでも職があればマシと思えば、それも悪くないかもしれない。
 
 
 




top