Creative System Village

創造するシステム開発

2021年3月11日
by admin
0 comments

Javascriptで動作するPDFビューワ「PDF.js」を使ってみる

「PDF.js」とは

ブラウザでPDFを表示したことがあると思います。
その際にPDFはブラウザ毎に準備されているツールで表示されることになります。
しかし
その際に印刷ボタンは出したくないとか、ダウンロードは表示したくないなど、ブラウザ標準の状態ではカスタマイズすることはできません。
そこでWEBサイト側でPDFビューワを準備してしまい、ブラウザ依存はなしで行こうというわけです。
そんな機能を実現するのがJavascriptで動作するPDFビューワ「PDF.js」です。
「PDF.js」はfirefoxの標準PDFビューワとして採用されているため、信頼性は高いツールとなります。
このツールの便利な処は
WEBサイトにおいて呼び出すだけという至ってシンプルな利用方法です、Javascriptで動作するためサーバー環境などの動作条件もありません。

入手方法

ブラウザ上でJavascript動作のビューワです、サーバーの環境依存は無しですので一番最新を取得して利用してください。
ダウンロードはこちらから「https://mozilla.github.io/pdf.js/getting_started/#download」
今回は「pdfjs-2.6.347-dist.zip」でした。

設定方法

設定はいたって簡単、
①ダウンロードしたファイルを解凍
 今回「pdfjs-2.6.347-dist.zip」→解凍→「pdfjs-2.6.347-dist」フォルダに
 フォルダは「pdfjs」など短い名前が便利なのでリネームしました。
 今回はフォルダ名は「pdfjs」を利用
②WEBサーバーに配置
 今回はこちらのブログのサーバーに配置しました。
 ホームページ「/public_html/」直下に配置「/public_html/pdfjs」こんな感じで配置です。
 「pdfjs」フォルダ内は
  ├── build/
  │ ├── pdf.js – display layer
  │ ├── pdf.js.map – display layer’s source map
  │ ├── pdf.worker.js – core layer
  │ └── pdf.worker.js.map – core layer’s source map
  ├── web/
  │ ├── cmaps/ – character maps (required by core)
  │ ├── compressed.tracemonkey-pldi-09.pdf – PDF file for testing purposes
  │ ├── debugger.js – helpful debugging features
  │ ├── images/ – images for the viewer and annotation icons
  │ ├── locale/ – translation files
  │ ├── viewer.css – viewer style sheet
  │ ├── viewer.html – viewer layout
  │ ├── viewer.js – viewer layer
  │ └── viewer.js.map – viewer layer’s source map
  └── LICENSE
③呼び出し
 「viewer.html」を呼び出すだけで利用が出来ます。
 「http://csv.pa.land.to/pdfjs/web/viewer.html」をブラウザで表示すると、利用方法についてのPDFが表示されます。
 PFDビューワとして利用する場合は
 「http://csv.pa.land.to/pdfjs/web/viewer.html?file=ファイルURL」
 viewer.htmlと同一階層にPDFが存在する場合は
 「http://csv.pa.land.to/pdfjs/web/viewer.html?file=ファイル名」
 今回はサンプルPDF(sample.pdf)をviewer.htmlと同一階層に準備して作業を進めます。

利用事例

まずviewer.htmlをiframeで表示してみます。
url直打ちでブラウザで開いても同じになります。
コードは以下

<iframe src=”http://csv.pa.land.to/pdfjs/web/viewer.html” width=”390px” height=”540px”></iframe>

利用案内のPDFがデフォルト表示になります。

次にsample.pdfを表示します。
URLパラメターでfileを指定します。
viewer.htmlと同一階層ならファイル名のみでOK

<iframe src=”http://csv.pa.land.to/pdfjs/web/viewer.html?file=sample.pdf” width=”390px” height=”540px”></iframe>

次にsample.pdfをURL指定で表示します。

<iframe src=”http://csv.pa.land.to/pdfjs/web/viewer.html?file=http://csv.pa.land.to/pdfjs/web/sample.pdf” width=”390px” height=”540px”></iframe>

次にPDFビューワのツール>>マークなどを非表示にします
「viewer.html」のHTMLタグに[style="display: none;"]などスタイルを入れれば非表示に!
または
付属のCSS「viewer.css」へ設定を行い非表示に

ソースがいるがWEB内にあるのでかなり自由度は高いレイアウトが出来ます。

2020年11月25日
by admin
0 comments

レギュレーター故障で電圧低下

バッテリーの電圧低下により交差点で立ち往生

昼休みに横浜醤油とんこつラーメンを食べにバイクを出したら帰り道でバッテリー上がりに見舞われました。
交差点でキルスイッチでエンジンを止めて、再始動するとあれ??

セルが
「キュルキュルキュルキュルキュル」
これセル回ってないよ!
しかもこの回り方、電圧が足りてない??感じ

古いバイクではよくある事なのでしょう。
2006年制のバイクでですから部品の消耗は当たり前ですね。
救いだったのは押し掛けですぐに持ち直したこと無事に家までは帰れました。

原因不明の電圧低下

テスターあてると7V切ってる!これはセルも回らないですよΣ( ̄□ ̄|||)、しかしバッテリーが充電されない原因が何かですねー!場合によってはこれは大きな出費になりかねない

電圧調査

早速原因特定のために調査
調べるべきはどこまで電気でてるのか?
今回の私の事例はネットで見るとネットに前例がほとんど載っていなかったです。
仕方ないので今後のために調査の仕方はを残しておきます。
「調査方法」
バッテリー側からいきます。
①バッテリー調査
 電圧が来ていない8Vのままバッテリーが原因かバッテリーの調査を行う。
 車とブースターケーブルでつないで充電で13Vまですぐに充電されたためバッテリーが原因であることは除外 
②レギュレーター
 エンジンをかけると暖かくなってる、異常発熱のレベルかはわからないが、発熱している以上は電気がここまで来ていると判断
 テスターを充てると(バッテリーついてる状態)、バッテリーの電圧のみで発電の確認はできない。
 レギュレーター
 ネット情報ではレギュレーター故障は異常な高電圧が出力との記載が多いが全く違う状態のため、ジェネレーターの動作も確認
③ジェネレーター
 発電されているかどうかです。レギュレーターが発熱しているので発電はしています。
 ジェネレーター
 問題は発電電圧が想定内の範囲かどうかですね、こちらはレギュレーターに入力されている白い3本ラインからそれぞれテスターをあてます。
 こちらももんだいなし、アイドリング時に15-16Vです。
 この辺りはYOUTUBEで「ジェネレーター」「確認」で検索すると確認方法出てきます。
 IMG_2213
 吹かすと40-50V当たりで想定内で、ジェネレーターでの発電電圧が低いとかも無いようですね。大丈夫そうです。
 IMG_2217

原因はレギュレーターと推測

 調査の結果、バッテリーは問題ない事は確実、ジェネレーターも確信は持てないが問題はないと判断できる状態、おそらくレギュレーターという結論が出てきました。
 しかし、おかしな挙動を確認、エンジンを切って数時間放置した後にエンジンをかけるとバッテリーが充電され、暫くしてレギュレーターが発熱した後は、充電がされなくなります。
 やはり故障はレギュレーターですね。

部品調達と交換

 部品調達は3パターンかなー
①純正新品で注文1万2千円 … 文句なしで間違いない選択ですね
②純正中古で2~3千円 … メルカリやヤフオクで保証もなければ当たりはずれもある
③互換中華製で4千円 … 多少の保証はあるが信頼性はいま一つとみてる特に壊れ方が心配です。

 今回は純正中古をヤフオクで調達をチョイスしました。送料込みで2,870円、決め手は初期不良は交換してくれるとの事でしたのでこちらに決定
 純正中古を選んだ理由は、安いからですが、レギュレーターは壊れ方には何パターンかあります。今回の様に故障時に沈黙してしまう場合はバッテリーや他の電装品を壊さずラッキーな感じです。
 しかし運が悪いと故障時に異常電流が流れて危険な暴走を引き起こすこともあります。この場合は他の電装品を道ずれにすることになり、ひどい場合はジェネレーターやバッテリーも道ずれにすることもあり修理は5、10万コースなんてこともある重要な部品です。中華製は壊れ方について懐疑的な部分があり除外しました。腐っても日本製で行く事にします。

 やはりレギュレーター交換で無事に治りました。
 お店で頼めばレギュレーター交換だけでも2万円前後かかる事を考えれば安く仕上がったと思います。

2018年7月2日
by admin
0 comments

海外通販 AliExpress(アリエクスプレス)で買い物

たまーにAliExpressで買い物をしています….

たまーにというか結構利用しています。
去年は車のパーツをいろいろ購入しました。
とにかく商品量が半端なくて日本の楽○とかAma○○nとかYahooショッピン○とかの比ではありませんね。
ただし品質はよっぽどの求めない事ですね
車のパーツ
これが取り付けられるとこんな感じ
海外通販完成
海外通販の見直は値段ですね。
国内でさがせばこれだけパーツ集めると5千円ですかねー
しかしこれがAliExpressなら送料込みで1500円です!
こんな感じでお試しで使ってみたい工具は結構利用します。
そろそろ本題に入りますかね!

Android セットトップボックス

今回の購入はこちらになります!
Android セットトップボックス です
アリエクTVBOX001

アンドロイドTV BOXとは大抵はHDMI出力でつなげられるモニターやテレビをアンドロイド端末にしてしまうという優れものですね。
https://www.android.com/intl/ja_jp/tv/
詳細は「Android TV」のページなどにも載ってます、ソニーのブラビアなどは標準で搭載されているあれです!Androidアプリで色々な動画サービスが受けられるようになっている便利なテレビ、これが後付けのセットトップボックスで実現するという代物です。

Xiaomi MI TV BOX 3

そして今回購入を決めたのがXiaomi(シャオミ)の「MI TV BOX 3」、いわいる中華端末です。
しかし安かろうの中華端末とバカにしてはいけません!
なんと!日本のグッドデザイン賞を受賞しているのです。
アリエクTVBOX002
もろもろな理由と機能により、なぜか中華端末たるこの「MI TV BOX」は日本国内でも絶大な人気を誇っていて、おそらくは音声入力対応したリモコン、そして使いやすい画面UIと値段が安いのがいいのだと思われますね。
詳しい機能は別途ブロク記事を立てるとして
機能概要はこんな感じ
型番:MDZ-16-AB
CPU:S905XクアッドコアCortex-A53 2.0GHz
GPU:Mali-450
RAM:2GB DDR3
ROM:8GB eMMC
OS: Android 6.0 Marshmallow → アップデート後 Android 8.0 Oreo
Wi-Fi: 802.11a / b / g / n / ac、デュアルバンドWi-Fi 2.4GHz / 5GHz ブルートゥース:4.0
ただし利用できるアプリはかなり制限されている感じはありますねー
制限というか未対応という感じ後日アップデートで解決しているといいですが

結局どこが安いの??

MIBOX3を取り扱っているサイトは結構あります。
・アマゾン:15000円前後
・楽天:15000円前後
・ヤフーショッピング:15000円前後
海外通販サイトではどうでしょう
・GeekBuying:6600円~
・AliExpress:6600円~
今回は海外通販のうちGeekBuyingにAliExpressと国内ではYahoo!ショッピングやアマゾンなど多く取扱いがありましたが、しかし値段はまちまち、国内サイトなら1万5千円前後、海外なら6~7千円台というところですが、最安値は6500円前後のAliExpressでした。
今回はこちらで決定ですね!

英語できないけど海外通販は大丈夫???

GeekBuyingやAliExpressをはじめとする世界を対手にしている中華圏通販サイトは基本は英語で利用するようになっています。
でもっ大丈夫!英語ができなくても日本語に言語を選ぶ事ができます。
日本語はエセっぽい翻訳で、片言の日本語の様な感じですがなんとなく意味は通じます。

英語表示
サイトトップ001

日本語表示
サイトトップ002

一昔前に比べたらだいぶ利用しやすくなりました。
会員登録もこんな感じの日本語でなんとなく進めます。
注意しないといけないは住所登録などは海外から来るので漢字で登録は行わず、アルファベットで表記しないといけません。
海外表記の住所はアパート→番地→市区町村→都道府県と日本語表記の逆になります。
「海外から日本 郵便 住所 書き方」この辺りでググってみてください

個人情報の管理は海外通販で大丈夫???

私的な意見を言うと今はいいが何かあったらどうでしょうか??という感じです。そのあたりを理解して利用した方がいいかもしれないですね。
まず個人情報の管理は日本とは違うとこを理解してください、また共産党統治の国家であり法治国家ではない事もお忘れなく、有事の際に共産党と日本政府が仲良しでない場合は、資産凍結や没収、個人情報に対しても必要なら中国政府の管理下に入り自国の有益な情報と判断されれば利用されます。
クレジットの登録はデビットカードやプリペイド式のVISAカードが便利というか安心です。
AliExpressは中国浙江省に本社があるアリババグループとなっており、俺的には中国に重要情報を残していくことは心配だったので利用時のみ入金しているデビットカードを利用していました。

2017年9月22日
by admin
0 comments

PCメンテナンス-電源がお亡くなりになり応急処置

パソコンの電源は消耗品ですよ

御存知でしたでしょうか?パソコンの電源は消耗品です!
(*-ω-)*´ω`)*-ω-)*´ω`)ウンウン♪

一般的にはハードディスクやDVD/CDドライブやファンなどの稼働部品が故障で交換が必要になるのは想像できますが、電源も同じように故障します。場合によってはドライブ類よりも早く故障して「PC起動しない!!」よくある話!
Σ( ̄Д ̄;)がーんっ!

故障の原因はなんでしょう?

他のPCメンテや自作PCを二十年も組みながら見ていると、電源の故障の原因は様々で瞬間は結構派手な事も有ります。ホコリが溜たまりショート、コンデンサーが壊れる等々、このあたりはショート時に火を噴くこともあります。何気にドライブ類よりも過酷な状況で使われていることを知らない方も多いですね…電源が死ぬ時の異常電圧等でマザーボードやCPUを道ずれにする事もよくあります。AC電源の100vが入力されている訳ですからショート時の状況は悲惨な場合だってありますよ。
一度目の前で火を噴いた電源を見ましたが、凄いです!ホントに火を噴いて向かいに座っていた人が叫びながら飛び上がってました。

故障しないためには

電源が長年故障しないということは物理的に在りえないのですが、故障のリスクを下げる事だけは出来ると思います。余裕を見た容量を選ぶ、故障しないためのメンテナンス、故障頻度が少ない長期利用できる信頼を置ける製品を選び寿命を延ばすことは大切なことだと思います。

余裕を見た容量は
俺はいつも自作PCなどの電源使用容量の計算サイトなどで計算してからMAX利用の50%を目安に電源容量を決めています。
HDD・SSD・DVDで5ドライブ、グラボ無し、メモリ2枚、CPUファン1個に冷却ファン3個、マザーボードこのあたりの利用で200w程とWEB計算サイトで取得できました。
皮算用計算機サイト
容量は金額に比例なので低価格は400W、余裕を見るなら450-500W

電源メンテナンスは
ホコリが大敵です!これは出火します。年1で必ず掃除やってますよ。自作なので全部ばらしてPC全体を掃除で、掃除機でホコリ吸ったり、エアーダスターで吹き飛ばしたりします。ちなみに!綺麗好きには耐えがたいのですが、電源ケースの中の汚れが取りきれないからと、電源ケースをばらして掃除する方法はおすすめしません。

品質選定は
これも値段に比例する部分で、当然なのですが信頼のおける長期保証は価格高い傾向にありますよね。3年5年保障など保証も様々ですが、常時稼働の運用を続けるパソコンの場合は絶対に必要な選択、勿論3年保障だから3年間壊れないわけではないですが、それなりの実績をもとに3年は保障しますとなっています。一般家庭で24時間電源入れっぱなしは無人の場合もあります!そこで電源が火を噴いたらどうします?自宅PCに温度センサーや監視カメラに消化設備なんてないでしょう。ですのでそれなりの品質を使う事です。
中でもコンデンサー類が重要で結構コンデンサーが寿命を左右し、12/5/3vの電源を相手するマザーボードと違い、AC100Vのコンセント電源という強敵を相手にDC低電圧に変換という常に負担がかかる部分、105℃コンデンサ・日本製などの部品を利用されている製品を選ぶといいです。
余裕がある人は保証期限と共に電源を買いなおす人も珍しくないです。

自宅パソコンの電源が沈黙…

本題にもどりますか
電源を入れて動かない朝を迎えました。
常時電源ONなのですが丸一日家にいない場合は安全の為に電源を落として出かけます。そんな次の日の朝でしたね…
起動しない!Σ( ̄Д ̄;)がーんっ!
玄人志向のKRPW-V400Wで実に6年365日24時間稼働でした。
安いが玄人志向なかなかいい電源でいた。
電源取り出してみると何かハンダが焦げたような臭いがしたので完全にお亡くなり状態と判定、おそらくコンデンサーのショートでしょうね…

仕事出来ないのでPC動かさないと!!!
ノートも使ってますが使い勝手はデスクトップです。私の住む片田舎ではPC部品専門店は遥か100キロ先ですので、通常は通販で買ってます、それだと2-3日とかかかって話にならないですよね。結局は近くのハードオフでジャンク品の山から使えそうな電源付のPCケースを発掘、店員さんに聞いたら「電源だけはダメ」「でも電源以外のパーツはここにおいて行ってもいいですよ」との事で「電源だけの価格に値引きは出来ません」と言われケース付きで800円(税別)
DSC_0163
ちなみにEAGLEという悪名高き動物電源
∑(; ̄□ ̄A アセアセ
結局ケースいらないと言ったらドライバー渡されて自己責任でばらしておいて行って下さいとの事で電源だけ頂いてきました。応急処置なんで常時稼働はなしですが、動物電源なのでコイツがすぬ時は何か道連れにすると思う。
ばいばい(⌒ー⌒)ノ~~~

動物電源について

動物電源なるものを聞いたことは??
私も最初は知らないで使ってました。
その正体は
PCケースと一緒についている安物電源です。商品名にEAGLEやLIONなどの動物の名前が付いた電源、特徴は価格を抑えることを目的とした製品で品質は二の次となっている事、また12vの電源容量が小さい事が多いためグラボ利用などに向かない特徴があります。安かろう製品ですね
私も応急処置で無ければこれは入れないです。マザボやCPUの入れ替えも考慮して、プランが固まったら電源も一緒に入れ替えを行います。今日はPCを起動させるための一時しのぎですね。

皆さんも電源にはご注意を!

Speccy

2017年9月21日
by admin
0 comments

PCメンテナンス-CPUグリス

PCがたまに落ちる事態に….

なぜかPCがたまに落ちる??
結構根を詰めて作業中が多いのできっとCPUの稼働と関係していると踏んで
CPU温度を見れるソフトをインストールです
おすすめは「Speccy」ですね
http://www.piriform.com/speccy
こちらからダウンロードすると使えます

ちなみに英語版ですが日本語設定が有ります
メニューバーの「表示」–>「オプション」–>「言語」–>「Japanese」
設定で日本語になります

Speccy

CPU温度の確認

エンコーダーを利用してCPU稼働を上げてみます。
ブラウザ複数とYoutube再生とエンコーダを起動です
エンコーダは複数立ち上げで作業中に近い状態なのですが….
何故かエンコーダ1つでCPU温度が100℃超えてます!
お湯が沸くは! 。・゚(゜´Д`゜)゚・。
これ死亡フラグ立ってますよ

画面温度Bef

CUP稼働は85%程ですが、これ以上立ち上げるのは無理ですね…
ますはCPUグリスの塗り直しで対応です

CPUグリスの購入

ヨドバシで購入です
いやーホント申し訳ない注文のしかたでした
代金277円のグリスを配送無料でゆうパックでした
他に買う物もなくいやいやー

IMG_2404

値段は高いですが性能面では金属系の銀グリスなどがいいようです
今回はシリコンベースの安物です

CPUグリスの効果は?

塗り方は薄ーくヘラで、こんなもんか??

IMG_2410

早速CPUに負荷をかけてみてびっくり
複数ブラウザに動画再生にエンコードで68度
エンコーダ4つ立ち上げでCPU100%まで行きましょう!
これでも71度!
安物と思っていましたがCPUグリスの効果は絶大ですね

画面温度AftMax

(ノ゚ο゚)ノ オオオオォォォォォォ- 105度–>71度

コレはバカにできない結果です
277円のグリス今回は1/5程使いました

2016年7月23日
by admin
0 comments

Win7でUsersフォルダを移動(Dドライブ)する手順

 

Usersフォルダを移動したい!

CドライブのHDDからSSD化へ伴い
「Usersフォルダを移動したい!」なんて事を思いつく
今回SSD化を行いCドライブをOSとソフトインストール用に
個人設定やブラウザキャッシュ類などはDドライブへ
との設定を行う事に!
※SSD化については次回の投稿としましょう!!

Usersフォルダを移動の手順

作業手順の概要は以下
1.管理者権限のユーザー(作業用ユーザー)の作成
2.作業用ユーザーへログイン
3.UsersフォルダをDドライブへ移動
4.レジストリ編集
5.シンボリックリンク作成
この手順で行います。

1.管理者権限のユーザー(作業用ユーザー)の作成
作成手順は
コントロール パネル -> ユーザー アカウント
ここで管理者ユーザーを作成です!
アカウントの管理 -> 新しいアカウントの作成
で作成できます。
※名前はお好きに!作業後削除するので!

作業管理者

作業用の管理者追加

2.作業用ユーザーへログイン
説明は不要ですよね!
※ちゃんと元のユーザーはログオフしてくださいね!
以降は「移行管理」のユーザーで作業しますよー
エクスプローラの設定も忘れずに!
隠しファイルなど見えないとUSERフォルダ移動に役立たないです
印のあたりは設定してください!

ユーザー設定

ユーザー設定

3.UsersフォルダをDドライブへ移動
ここはコツが必要です
Cドライブのユーザーフォルダーで
移動が行えないファイルが幾つか出てきます
ログイン中のユーザーフォルダの内容なんかですね!
ここでは「移行管理」なるユーザーのファイルです
「使用中」だと警告が出ます。
迷わず「スキップ」です。
なぜなら後に消すユーザーの情報ですから
Dドライブに移動できなくても痛くもないです!

4.レジストリ編集
次はレジストリ編集です
User設定をDドライブに変更します。
レジストリのバックアップは取っておいてください
「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList」
この下の「%SystemDrive%」を「D:\」へ変更
さらに下の階層のところも「%SystemDrive%」を「D:\」へ変更

レジストリ編集

レジストリ編集

!———————————
※後書きH29.05.20
本日PCメンテで記事に訂正を入れました!
「S-1-5-21……………….」これはいじらなくてもいけます!
むしろここをいじった後にユーザー設定が保存されない状態が発生した。
いじってしまった設定を「D:\Users」→「C:\Users」に戻すと正常に動き出した
———————————!
!———————————-
※このあたりまで作業できたら
オレ的にはC:\Usersは全部削除できたらいいと思います。
作業用と通常使用のユーザーを切り替えて
若しくは作業用をもう一つ作りそこでC:\Users削除
試行錯誤してC:\Users削除してみて!
———————————-!
!———————————
※後書きH29.05.20
CドライブのUSERフォルダはセーフモードで起動で削除が簡単でした。
電源が入ったらF8を連打してるとセーフモード起動選択画面出ます。
下のシンボリックリンクもセーフモードでそのまま作成がいいですね!

※後書きH29.12.20
CドライブのUSERフォルダはログインしているユーザーの情報は移動できないです。
作業用ユーザーと交互に切り替えながらUSERフォルダの中を移動すること
またログオフではなく再起動してユーザーを切り替えてください

↓↓↓5.シンボリックへ
———————————!

5.シンボリックリンク作成
ここは重要ですね!
シンボリックリンクなるものは簡単に言えば特殊なショートカット
WINDOWSにはなじみがないショートカットです。
コマンドプロンプトと管理権限で開き以下のコマンドを実行
「mklink /J C:\Users D:\Users」
成功するとリンク形成がアナウンスされる

コマンド

コマンド

———
こいつの凄いところは
作成されたCドライブ直下の「Users」リンクを開くと
実際はD:\Usersが開かれるのだか、
システム上や利用者からはC:\Usersのフォルダを
操作しているように利用が行われる事!
実際にエクスプローラでリンクを開いてみるとわかる

シンボリックリンク

シンボリックリンク

———
なぜこんな設定が必要かというと
全てのソフトが「D:\Users」を利用してくれるとは
限らないという恐ろしい事が起こるから!
中には「C:\Users」配下のログイン中ユーザーフォルダを指定する
という回りくどいソフトも存在する
実際にDropBoxは一部DドライブUserフォルダに未対応でした。
どうしても「C:\Users」配下のユーザーフォルダを
利用したいとエラーをはきます!
こんなソフトのために「C:\Users」で作業していると
錯覚するシートカットが必要になるわけです!
———
あとは不要な管理ユーザー削除して終了です

今回はこのあたりで!
次回はHDDからSSDへ交換をやりたいですね!

2015年4月4日
by admin
0 comments

VMware Playerで開発環境を構築:第2回(JAVAとTOMCATの準備)

開発環境のバージョン

完成予定の環境は以下
・Ubuntu14.02(64ビット)
・JDK1.8
・Tomcat8
・MySql5.6
・Eclipse4.4
これをVMで行こうと思います

前回は「Ubuntu14.02」設定しました。
http://csv.pa.land.to/?p=575
今回は「JDK1.8」「Tomcat8」の設定

JAVAのインストール

当初JAVAはJDK1.7でと思ったのですが最新で行うことに!
JAVAの入手はこちらから

http://www.oracle.com/technetwork/java/javase/downloads/index.html

最新版のJDKをクリックしてください
JAVA設定01

Ubuntu版というのは無いです
Linux版64Bitをダウンロード
JAVA設定02

ブラウザからダウンロードしたファイルは「/home/develop/ダウンロード」に入ってくる
ココからはコマンドでいくので端末を起動してください。
ファイルを解凍します。

cd /home/develop/ダウンロード
tar zxvf jdk-8u40-linux-x64.tar.gz

JAVA設定03

インストール先を作成します。
「/usr/java」でもいいが「/usr/local/java」に入れます。
ディレクトリ作成して解凍フォルダを移動します。

sudo mkdir /usr/local/java
sudo mv jdk1.8.0_40 /usr/local/java/

JAVA設定04

環境設定変数を編集
端末からコマンドでVIエディターで編集

sudo vi /etc/profile

開いたら一番最後に追記です
「o」コマンドで下に追加します。

export JAVA_HOME=/usr/local/java/jdk1.8.0_40
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar

追加したら保存「wq」で保存終了
環境設定変数を反映させる為にコマンド打つか再起動ね!
JAVA設定06

JAVAイオンストールの確認

$ javac -version
javac 1.8.0_40

$ java -version
java version “1.8.0_40
Java(TM) SE Runtime Environment (build 1.8.0_40-b26)
Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode)

が表示されますか?
JAVA設定05

以上でJAVAは設定終了です!

TOMCATのインストール

Tomcatは入手はこちらから
http://tomcat.apache.org/
Tomcat8を今回は利用します。
TOMCAT設定01

「tar.gz」を選択です。
ローカルに保存して下さい。
TOMCAT設定

ダウンロードしたファイルは指定が無ければ「/home/develop/ダウンロード」に入ります。
ココからはJAVAと同じで端末からコマンドでいきます。

cd /home/develop/ダウンロード
tar zxvf apache-tomcat-8.0.21.tar.gz

TOMCAT設定03

Tomcat8へ名前を変えてインストール先に移動

mv apache-tomcat-8.0.21 tomcat8
sudo mv tomcat8/ /usr/local/

TOMCAT設定04

Tomcat8ユーザの作成

sudo groupadd -g 130 tomcat8
sudo useradd -g tomcat8 -u 130 -s /bin/sh -d /usr/local/tomcat8 tomcat8

グループ番号の空きと作成確認は以下のコマンドで一覧が出ます

tail /etc/group

実行権限の寄与

cd /usr/local/
sudo chown -R tomcat8:tomcat8 tomcat8/
sudo chmod -R g+w tomcat8/
sudo chmod -R g+s tomcat8/
cd tomcat8/bin/
sudo chmod +x *.sh

TOMCAT設定05

Tomcatの自動起動設定

sudo vi /etc/init.d/tomcat8

---------------------------
以下内容

#!/bin/bash

# Tomcat8: Start/Stop Tomcat 8
#

### BEGIN INIT INFO
# Provides: tomcat8
# Required-Start: apache2
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: tomcat8 servlet server
# Description: tomcat8 servlet server
### END INIT INFO

CATALINA_HOME=/usr/local/tomcat8
TOMCAT_USER=tomcat8
LOCKFILE=/var/lock/tomcat8

RETVAL=0
start(){
echo "Starting Tomcat8: "
su - $TOMCAT_USER -c "$CATALINA_HOME/bin/startup.sh"
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch $LOCKFILE
return $RETVAL
}

stop(){
echo "Shutting down Tomcat8: "
$CATALINA_HOME/bin/shutdown.sh
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f $LOCKFILE
return $RETVAL
}

case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 1
;;
esac
exit $?

---------------------------
TOMCAT設定06

実行権限を追加

sudo chmod +x /etc/init.d/tomcat8

起動と終了

sudo /etc/init.d/tomcat8 start
sudo /etc/init.d/tomcat8 stop

Tomcat確認
「http://localhost:8080」
TOMCAT設定07

以上でTOMCATは設定終了です!

2015年4月2日
by admin
0 comments

VMware Playerで開発環境を構築:第1回(Ubuntuの準備)

Java開発環境をVMで構築

何気に開発環境の構築というのは時間がかかるものですよねー!
今回は初めてUbuntuで開発環境に挑戦ですよー!Windows環境もいいけどライセンス問題も有るからUbuntuにしました。
環境構築は4回に分けて連載します。
第1回:Ubuntu
第2回:JDKとTomcat
第3回:Eclipse
第4回:MySql

VMware Playerのインストール

開発に携わる開発者なら知らない人もいないでしょうしインストールもしてあることでしょう!
なのでココではインストール手順は省きます。
https://www.vmware.com/jp/
こちらから入手してインストールしてください
私が使ってるバージョンは6.0.2ですね
VMPlayerバージョン
ノートや開発メインのデスクトップも全部同じバージョンに統一して利用がいいです。

開発環境のバージョン

完成予定の環境は以下
・Ubuntu14.02(64ビット)
・JDK1.8
・Tomcat8
・MySql5.6
・Eclipse4.4
これで行こうと思います

新規マシンの作成

①は新規マシンの作成を行います。
「ホーム」->「新規マシン」
新規マシン01

②後でOSをインストールを選択
新規マシン02

③OSの選択
「Linux」->「Ubuntu64ビット」
新規マシン03

④仮想マシン名を決定
「Ubuntu64Develop」はVM上で管理する為の名前で全角半角でも何でもいいです。
「D:\VMware\Ubuntu64Develop」俺は右のフォルダで管理にしました。
新規マシン04

⑤ディスクを選択
「ディスクサイズ」は気にしないディスクイメージは別ものを後に上書きします。
「仮想ディスクを単一ファイルとして格納」を選らぶ
新規マシン06

⑦ハードのカスタマイズ設定
特段設定は無いでかまいません
新規マシン07

⑧メニューに「Ubuntu64Develop」が追加される
新規マシン08

VM高速化チューニング

メモリ系のチューニングにより高速化の設定を行う
「Ubuntu64Develop.vmx」を開いて以下を追記する

MemTrimRate = "0"
mainMem.useNamedFile= "FALSE"
sched.mem.pshare.enable = "FALSE"
prefvmx.useRecommendedLockedMemSize = "TRUE"
MemAllowAutoScaleDown = "FALSE"

VMチューニング

OSイメージの取得

①「Ubuntu 14.04 LTS」を取得
以下サイトからubuntu-ja-14.04-desktop-amd64-vhd.zipを取得
https://www.ubuntulinux.jp/download/ja-remix-vhd

取得したZIPファイルを解凍するとvhd形式のディスクイメージが出てくる
これをコンバートしてVMでは利用することに成る

②コンバートソフトは「StarWind V2V Converter」
以下サイトから取得
http://www.gigafree.net/utility/virtualdrive/starwindconverter.html
ダウンロードしてインストール
ダブルクリックのみでインストールは簡単です

OSイメージコンバート

「ubuntu-ja-14.04-desktop-amd64-vhd.zip」は解凍すると
「ubuntu-ja-14.04-desktop-amd64.vhd」に成る
これを「StarWind V2V Converter」でVM形式の
「ubuntu-ja-14.04-desktop-amd64.vmdk」へ変換

手順は
①ここは次へ進む
イメージコンバート01

②vhd形式のファイルを指定
イメージコンバート02

③イメージ形式を指定
一番上でいいです
イメージコンバート03

④ディスクタイプを指定
IDEでもかまわないがSCSI形式がお勧めです
SCSI形式の方が速度が出ます
イメージコンバート04

⑤仮想ディスクの出力先を指定
指定しないでデフォルト値でもよいです
イメージコンバート05

⑥コンバート開始
マシンスペックにももるが10分ぐらいかなー??
イメージコンバート06

⑦vmdkディスクの置き換え
コンバートした「ubuntu-ja-14.04-desktop-amd64.vmdk」を「Ubuntu64Develop.vmdk」に置き換えます
この置き換え後に起動するとUbuntuのインストールが開始されます
イメージコンバート07

Ubuntuインストール

①追加されたマシンから起動
新規マシン08

②OS言語の選択
普通に日本語でいいですよね
OS設定01

③利用地域の選択
ここはデフォルト値のTOKYOでよいですよ
OS設定02

④キーボードの選択
ここはデフォルト値のTOKYOでよいですよ
OS設定03

⑤マシン情報の選択
ユーザーをdevelop
パスワードをdev1234
このあたりは利用者毎だと思うけどご自由に
OS設定04

Ubuntuアップデート

①ランチャーからアップデート
アップデート01

②パスワードの入力
この環境だとdev1234ですね!
アップデート02

③端末からコマンドでアップデート
なぜか途中でアップデートが止まった!!
最終的には端末からコマンドでアップデートした
端末を開き
sudo apt-get update
を入力
アップデート03

これでアップデート完了!

VMwareToolsインストール

VMwareツールを入れるとホストPCから仮想PC間でコピペなどができるようになります!
これは便利な機能ですね!

①VMwareのメニューからツールのインストール
これによりツールのインストールがDVDがマウントされる
VmTool設定01

②インストーラーをデスクトップへ
DVDがマウントされるとフォルダが開きます。
そこからインストーラーをデスクトップへコピー
VmTool設定02

③デスクトップのインストーラを解凍
VmTool設定03

④インストーラー情報を収集
VmTool設定04

⑤インストーラーを実行する。
収集した情報で端末へコマンドを打つ
ツールディレクトリへ移動
cd /home/develop/デスクトップ/vmware-tools-distrib
ツールインストーラーを起動
sudo ./vmware-install.pl -d
VmTool設定05

これでUbuntuのインストールは完了
再起動するとツールが利用可能になってます

2015年3月12日
by admin
0 comments

ラジオボタンを全て未選択に設定[vb.net]

何気に結構難しい!

VBだけじゃないと思うけどWEBとかでも結構ある話かな?
配置したラジオボタンは初期値は未選択状態!
例えば、3つラジオボタンがあり、初期値を入れなければ初回表示はどれも未選択状態ですよね。
これはいいよね
ただ一度どれかにチェックが入ると、もう全部チェックを無しにすることはできなくなる。
これVBだけか??
ググッて実装方法が何気に見つからない!

発想の転換!

そんな中に面白い方法を発見
非表示のラジオボタンを1つ用意してそれをチェックせよとの事
おー発想の転換ですねー!
頭の固くなったおっさんには頭が回らずぱっと思い浮かばなかった!
柔軟な脳みそが欲しー
忘れないようにココに残しておきます!
ではでは

2014年6月27日
by admin
0 comments

LINQによる集計処理(自分メモ)

いつも忘れるLINQの集計処理

毎回のことだが結構大変だよねー!忘れる度にGoogleで検索してしているのでいい加減に要点だけ残す事にした。
今回は「LINQ」
「LINQ」は簡単に言うとオブジェクトを集計するための構文という感じでしょうかかー。こちらの構文はSQLに似ており大変使いやすいモノになっています。
また処理を行えるオブジェクトは多彩で、俺は「DataTable」「自作の情報クラス」などを集計や検索に利用します。
ただーあれです!あれ!!ボケ老人は直ぐ忘れて集計でGROUP化させたりする時の使い方がDBのSQL文などと違いチト!コツが必要になる場合など忘れるんですよー!これが痛いので今回残す事に、だから仕組みを説明ではなく、俺がよく使うパターンのみを掲載です。

俺がよく使うパターン

1.オブジェクトに対して抽出処理を行う
2.オブジェクトに対してソート処理を行う
3.オブジェクトに対して件数取得処理を行う
4.オブジェクトに対してグループ集計処理を行う
こんなもんかなー

大雑把に基本構文

一番よく使うのは「FROM句」「WHERE句」「SELECT句」、注意が必要なのは「GROUP句」でSQLとは少し使い方が違います。
更には「Aggregate」この辺り押さえておきたいですね
じゃーいきなりサンプルいきますかー
コードなんで基本的な使い方覚えたら利用方法は応用で広げて色々覚えていくのが一番です。

Public Class Form1

    ''' <summary>
    ''' サンプルテーブル
    ''' </summary>
    ''' <remarks></remarks>
    Public Class SAMPLEDataTable
        Inherits DataTable

        ''' <summary>カラム定義</summary>
        Public Sub New()
            MyBase.New()
            'カラム定義
            Me.TableName = "サンプルテーブル"
            Me.Columns.Add("CODE", GetType(String))
            Me.Columns.Add("NAME", GetType(String))
            Me.Columns.Add("TYPE", GetType(String))
            Me.Columns.Add("SIZE", GetType(Long))
            '情報作成
            Me.CreateData()
        End Sub

        ''' <summary>情報作成</summary>
        Private Sub CreateData()
            Dim drN As DataRow
            drN = Me.NewRow
            drN("CODE") = "001" : drN("NAME") = "NM001" : drN("TYPE") = "A" : drN("SIZE") = 5
            Me.Rows.Add(drN)

            drN = Me.NewRow
            drN("CODE") = "002" : drN("NAME") = "NM002" : drN("TYPE") = "A" : drN("SIZE") = 4
            Me.Rows.Add(drN)

            drN = Me.NewRow
            drN("CODE") = "003" : drN("NAME") = "NM003" : drN("TYPE") = "B" : drN("SIZE") = 3
            Me.Rows.Add(drN)

            drN = Me.NewRow
            drN("CODE") = "004" : drN("NAME") = "NM004" : drN("TYPE") = "B" : drN("SIZE") = 2
            Me.Rows.Add(drN)

            drN = Me.NewRow
            drN("CODE") = "005" : drN("NAME") = "NM005" : drN("TYPE") = "B" : drN("SIZE") = 1
            Me.Rows.Add(drN)

        End Sub

    End Class

    ''' <summary>
    ''' ボタン押下イベント
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click

        Dim dtSample As New SAMPLEDataTable
        Dim oLinq As Object

        Debug.Print("!-- 1.オブジェクトに対して抽出処理を行う")
        '集計
        oLinq = From dr As DataRow In dtSample Where dr("TYPE") = "A" Select dr("CODE")
        '結果
        For Each oRow In oLinq
            Debug.Print("結果:[" & oRow & "]")
        Next

        Debug.Print("!-- 2.オブジェクトに対してソート処理を行う")
        '集計
        oLinq = From dr As DataRow In dtSample Order By dr("SIZE") Ascending Select dr("CODE")
        '結果
        For Each oRow In oLinq
            Debug.Print("結果:[" & oRow & "]")
        Next

        Debug.Print("!-- 3.オブジェクトに対して件数取得処理を行う")
        '集計
        oLinq = Aggregate dr As DataRow In dtSample Into Count(dr("CODE"))
        '結果
        Debug.Print("結果:[" & oLinq & "]")

        Debug.Print("!-- 4.オブジェクトに対してグループ集計処理を行う")
        '集計
        oLinq = From dr As DataRow In dtSample
                Group By type = dr("TYPE") Into high = Max(CInt(dr("SIZE"))), Low = Min(CInt(dr("SIZE")))
                Select type, high, Low, calc = (high * Low)
        '結果
        For Each oRow In oLinq
            Debug.Print("結果:[type=" & oRow.type & "][high=" & oRow.high & "][Low=" & oRow.Low & "][calc=" & oRow.calc & "]")
        Next

    End Sub

End Class

上のコードを実行すると以下の結果になる

!-- 1.オブジェクトに対して抽出処理を行う
結果:[001]
結果:[002]
!-- 2.オブジェクトに対してソート処理を行う
結果:[005]
結果:[004]
結果:[003]
結果:[002]
結果:[001]
!-- 3.オブジェクトに対して件数取得処理を行う
結果:[5]
!-- 4.オブジェクトに対してグループ集計処理を行う
結果:[type=A][high=5][Low=4][calc=20]
結果:[type=B][high=3][Low=1][calc=3]

この辺りでLINQは基本的な入口はこんなもんですよねー。あとはこの辺どうするの??をググッていけばマスターできます。