2>/dev/null

ふぉれんじっくやさんになりたいです

VBから逃げ、VMwareに浮気した人間の末路とは………

………またエラー吐いたので奮闘劇をここに記す。


第一章:VMware PlayerとDevice/Credential Guardには互換性が無いそうですよ


解決に至るプロセスは以下のサイトを参考にしている

https://yoshidastyle.net/Blogs/2016/11/04/vmware-player_devicecredential-guard


1.1ドライブの分割について

上記のサイトを読んでるうちに、見知らぬ概念に出会った。その名も、「ドライブの分割」である。えっ、ドライブって分割できるの?ってなった。そもそもファイルとディレクトリの違いもついてないような情弱なので←後で白黒はっきりさせます。


https://freesoft-100.com/pasokon/disknokannri.html

このサイトの力をお借りして理解に励もうと思う

………と思ったのだが、思ったより領域喰うし、細かいファイル容量を設定できないので、EaseUS Partition Masterなるフリーソフトを使うことにした。

URLはこちら→https://jp.easeus.com/partition-manager-software/free.html

msys2 64bit環境でipconfigしたら文字化けした

タイトルの通りです

*状況:scpでファイル持ってくる時にip知りたいなとなり、ipconfigした結果→

*原因:http://yuu-glassdog.hatenablog.com/entry/2014/10/21/163409をのぞいてみると、なにやらwindowsがshift-jsで出力するのに対して、msys2がそれと異なる文字コードでいることが原因かも

*対策:nkfでビルドして、.bashrcに書き込んだりなんだリするらしい

.bash_aliasesの中身 echo '.bash_aliases'

Aliases for MSYS2 bash alias hogeを一時的に無効にするには\hoge

移動しやすく alias ..='cd ..' alias ...='cd ../..' alias -- -='cd -'

lsを使いやすく alias ls='ls --color=auto --show-control-chars --time-style=long-iso -FH' alias ll='ls -lA' alias la='ls -A' alias sl=ls

設定の読み込み alias relogin='exec $SHELL -l' alias re=relogin

画面消去 alias c=clear alias cls=reset

Windowsっぽく alias dir=ll alias path='echo -e ${PATH//:/\n}'

ディスクサイズ alias df='df -h' alias du='du -h' alias du1='du -d1'

grepを使いやすく grep -r hogeで./以下のファイルの中身からhogeを検索 find | grep hogeで./以下のファイル名からhogeを検索 whereis hogeでコマンドの関連場所を検索(bin, src, man) type -a hogeでコマンドを検索 alias grep='grep --color'

Windowsコマンド文字化け対策 function wincmd() { CMD=$1 shift $CMD $* 2>&1 | iconv -f CP932 -t UTF-8 } alias cmd='winpty cmd' alias psh='winpty powershell' alias ipconfig='wincmd ipconfig' alias netstat='wincmd netstat' alias netsh='wincmd netsh' pingのコマンド名混同を避けるため絶対パスで指定 alias ping='wincmd /c/windows/system32/ping'

ネットワーク確認用 alias ping1='ping www.google.com' alias ping2='ping 192.168.0.1'

mingw32用 msysのmakeと被らないようにコマンド名が変えられている alias make='mingw32-make' alias m='make -j3'

https://qiita.com/Ted-HM/items/4f2feb9fdacb6c72083c

上記サイトのbashrc丸パクリしたものをsourceでちゃんと読み込むよう設定し直したらうまく読み込みました

$CMD $* 2>&1 | iconv -f CP932 -t UTF-8

多分というか絶対ここでなんかうまくやってる

パイプの左の処理は一見して良くわからないが、右は検索してすぐ出てきた。

iconvコマンド https://www.atmarkit.co.jp/ait/articles/1609/12/news019.html

explanation: -fコマンド --from-codeで入力のエンコードを表す。入力されてきた文字を任意の文字コードに変換する。 grammar: iconv -hoge A Bと使う。おそらくメッセージの表示がwindows依存だから直す。(terminalあったら勝手に変換されるとか考えてた)

とかやってたら左部分の処理も出てきた https://qiita.com/tsubasaogawa/items/9495ad6e903998c4d1ac

標準エラー出力 2 を 標準出力 1 と同じ設定にするらしい ↑ 標準出力と標準エラー出力を一括してリダイレクト。リダイレクトは分かるけど、&は正規表現かなんかかな?

………どうやら違うみたいだ、、、分からん。

f:id:taikohaijin44:20190811112927p:plain
ipconfig

無事直ったからよしとするか

Windows10でVirtual Boxの環境構築を試みた結果死ぬほど苦戦した話

Windows10でVirtual Box(kali linux)の構築

 目的:エラーが多すぎて今何をしているのか分からないというような状況に陥ってしまったので、状況整理をかねて筆を執る。

モチベ:そもそもVirtual Boxをいじり始めたきっかけがコンピュータハイジャッキングを読み始めたことにあり、最終目標はkali linuxの構築。以下のページでは、各エラーの出所と原因を分析しながら箇条書きします。

 

 1.「 Raw-mode is unavailable courtesy of Hyper-V.(VERR_SUPDRV_NO_RAW_MODE_HYPER_V_ROOT).」のエラー
2.HostNetworkInterfaceWrapのエラー

3.そもそも論でVB側のバグだから削除して再インストール!?

 
1.「 Raw-mode is unavailable courtesy of Hyper-V.(VERR_SUPDRV_NO_RAW_MODE_HYPER_V_ROOT).」のエラー

→これは、仮想マシンのもろもろの設定が終わっていざ起動しようとする際に発生します。なんかHyper-vがなんちゃらとか言ってますが、BIOSの仮想支援機能もWindows10のHyper-Vの有効化もチェック済み。エラー内容で検索をかけてみると、Virtual box Host-only Adapterに関する記事がたくさんでてきた。多分これだろう。

f:id:taikohaijin44:20190715131419p:plain

 

そもそもなかった件についてkwsk

 

後、VB(virtual box)のバージョンが古い人も一定数いたからそれも確認したが、 6.0.8で最新だった。

 

じゃあ、VB host-only ethernet adapter(VBEA)の作り方探しにいくか

 

https://t-shukujo.com/win10update_host_only_adapter_setup/

良さげなサイト見つけた!これをもくもくしてると、なにやらHost Network Manegerとやらをいじってアダプタを作成するらしいのだが…

 

 

2.HostNetworkInterfaceWrapのエラー

 

f:id:taikohaijin44:20190715135541p:plain

またか…  挫折しそう

 

例のごとくエラーメッセージで検索かけたら下記サイトに飛びました。

http://www.makisima.org/v3/2010/11/12/virtualbox-err-host-only-network/

 

操作>>ハードウェアの追加>>ネットワークアダプタの選択>>ディスク使用

>>\Program Files\Sun\VirtualBox\drivers\network\netadp\VBoxNetAdp.inf(僕の環境ではadpの後ろに6がついてた)

 

でできるらしい…しかし…

 

f:id:taikohaijin44:20190715150413p:plain

実家のような安心感さえ覚えるエラー画面

笑うしかない………フヒ

 

https://forums.tomsguide.com/threads/failed-installation-of-a-network-adapter.310328/

 

懲りずに検索すると上記のサイトが、中身に目を通すと、

Before installing latest drivers, follow the good habit of removing older driver versions using

とのこと、前に入ってた古いドライバ消してみる。

……………………………

変わらねぇ…それどころかアダプター消しちゃったけど大丈夫なのか?

 

途方に暮れながら、ネットの海をさまよってたらまた新しいの見つけた

https://superuser.com/questions/856082/virtualbox-network-adapter-fails-to-install

 

 

 疲れたのでここまで

こちらの記事で完結しているので、よければ参照してください。

https://blog.hatena.ne.jp/taikohaijin44/tetsukirimountain.hatenablog.com/edit?entry=26006613378948658

Powershellで外付けメモリのファイル操作って出来んの?

タイトルにもある通り、powershellで外付けメモリ内のファイル操作も有効なのか検証したかった。

 

検証には下記のサイトを参考にした

https://www.adminweb.jp/command/file/index8.html

 

その中にあった以下にコマンドを見たとき、

attrib c:¥test¥document¥*.*

C:とあるならば、Dドライブのパス指定も通せるんじゃね?ってなって

 

ls D:hoge/fuga

 

で任意のパス指定したら、中身を表示することに成功した。

 

しかし、fugaディレクトリの中身が00~13で0{1..13}でブレース展開しようにもうまくいかないことに気づく。(いわゆる0埋め)これも下記サイトにて発見。(そろそろ頭使わんとなぁ)

https://qiita.com/daifuku_mochi2/items/e8f17a1a226a418eba56

 

そのあと、powershellスクリプト書くサイト見つけて、「まあファイル名変更するコードくらいならかけるやろ」と思って試すが断念。供養。

 

https://tonari-it.com/windows-powershell-rename/

 

これも時間あり次第手を加える所存

 

 

ABC130の考察と復習

AtCoderのコンテストに初参加した話

  1. 問題
  2. 結果
  3. 考察と改善点

1.問題

https://atcoder.jp/contests/abc130

ざっと見た感じ400まではいけそうだと感じた。(できるとは言ってない)

2.結果

100点しかとれなかった(泣)

3.考察と改善点

  • A - Rounding

X,A は 0 以上 9 以下の整数です。

X が A 未満の時 0A 以上の時 10 を出力してください。

  1. #include<stdio.h>
  2. int main(){
  3. int x=0,a=0;
  4. scanf("%d%d",&x,&a);
  5. if(x<a) printf("0\n");
  6. else if(x>=a) printf("10\n");
  7. return 0;
  8. }

 

さすがにこれは解けました。(これ解いた後、謎の腹痛に襲われてタイムロス)

  • B - Bounding

問題文

数直線上を N+1 回跳ねるボールがあり、1 回目は 座標 D1=0i 回目は 座標 Di=Di1+Li1(2iN+1) で跳ねます。

数直線の座標が X 以下の領域でボールが跳ねる回数は何回でしょうか。

制約

  • 1N100
  • 1Li100
  • 1X10000
  • 入力は全て整数である

入力

入力は以下の形式で標準入力から与えられる。

N X
L1 L2 ... LN1 LN

最初問題文よく理解できなかったけど、たいして難しくない(というよりかは、真正面から解こうとするよりかはいかに表面をくみ取り、数学的に処理するかと考えた方が楽)と思った。

  1. #include<stdio.h>
  2. #define N 100
  3. int main(){
  4. int n,x,l[N],d[N];
  5. int i,cnt=0;
  6. d[0]=0;
  7. scanf("%d%d",&n,&x);
  8. for(i=0;i<n;i++){
  9. scanf("%d",&l[i]);
  10. d[i+1]=d[i]+l[i];
  11. if(d[i]<=x) cnt++;
  12. }
  13. printf("%d\n",cnt);
  14. return 0;
  15. }

第一段階。

コンパイルも通ったし、WAも2ケースしか出ていない。すぐ終わるやろ。と調子に乗っている状況。原因も良く分かっていない。(結局こいつに時間取られて他の問題ろくに見もしなかった。)後、scanf記述する際、メモリ参照忘れるクセ直した方がよい。

 

  1. //thank you for plain
  2. #include<stdio.h>
  3. #define N 100
  4. int main(){
  5. int n,x,l[N],d[N+1];
  6. int i,cnt=0;
  7.  
  8. scanf("%d%d",&n,&x);
  9. d[0]=0;
  10. for(i=0;i<n;i++){
  11. scanf("%d",&l[i]);
  12. d[i+1]=d[i]+l[i];
  13. }
  14. for(i=0;i<=n;i++){
  15. if(d[i]<=x) cnt++;
  16. }
  17. printf("%d",cnt);
  18. return 0;
  19. }

 

第二段階。

これ一生懸命直してるときに、全く同じ変数使って書いてたplainさんには感謝。(意図的なのかどうかは定かではない。)

…………………………………今見返したら、「X 以下の領域で」と明記されていた。

問題としては、漸化式の処理はx回目を含まないように記述していたが、x回目を含む処理をするカウンタ部分の実装も一緒にぶち込んでたのが原因だと発覚した。〇してぇ…原因わかったのですっきり

~~とりあえず今はここまで、時間できたら再開します