at backyard

Color my life with the chaos of trouble.

自宅のインターネットサービスプロバイダ(ISP)を調べる方法

契約先のインターネットサービスプロバイダ(ISP)の調べ方

少し前のことだが、Googleのドキュメントを見てる時にたまたま発見した。

www.whoismyisp.org

自宅のIPアドレスとかの確認方法はcmanとかがあるけど、ISPはそういえば知らなかったなと思い、メモ。
(もしかして cmanISPも調べられたりする?)

ちなみに参照したGoogleのドキュメントは下記。

support.google.com

JavaScriptのクエスチョンを2つ連続で各ショートハンドの正体(??)

コールドリーディングしていたら出てきた、これ ⇒ ??

なんていう名前なのか調べたら、 Null合体演算子 という名前らしい

developer.mozilla.org

この演算子は左辺が null または undefined の場合に右の値を返し、それ以外の場合に左の値を返します。

実際にやってみた

null ?? 'hoge'
// hoge

undefined ?? 'hoge'
// hoge

false ?? 'hoge'
// false

false ?? 'hoge'
// false

true ?? 'hoge'
// true

0 ?? 'hoge'
// 0

"" ?? 'hoge'
// ""

1 ?? 'hoge'
// 1

'fuga' ?? 'hoge'
"// fuga"

ちなみにNode.jsではv14移行でないと使えないらしい

macからDocker上で動くUbuntuにMicrosoft Remote Desktopでアクセスする

以前勉強しながら取っていた備忘録が下書きフォルダに埋もれようとしていたので救出した。
危ない危ない。

内容は macからDocker上で動くUbuntuにMicrosoft Remote Desktopでアクセスする というもの。


今回勉強がてら下記のリポジトリを触ってみた。 docker上でxrdpを動かして、RDP接続できるようにしたもの

github.com

ちなみにxrdpとは、LinuxにRDPを提供するサーバプログラムのこと。RDPとはMicrosoft Remote Desktop Protocolのことで、macからの場合は、Microsoft Remote Desktop を使ってアクセスする形となる。

つまり、Windowsからなら何もインストールせずに繋げるよう。

以下、ローカルで試してみた際のメモ。

まずはimageをpullする

docker pull scottyhardy/docker-remote-desktop

起動シェルを作る。 (リポジトリ内にある、起動シェルを参考にしている)

#!/usr/bin/env bash

docker run --detach \
    --rm \
    --hostname="$(hostname)" \
    --publish="3389:3389/tcp" \
    --name="remote-desktop" \
    scottyhardy/docker-remote-desktop

停止するときのスクリプトはこちら (こちらもリポジトリ内にある、起動シェルを参考にしている)

#!/usr/bin/env bash

docker kill remote-desktop

macからアクセスする際はMicrosoft Remote Descktopを使ってアクセスする
インストールはApp Store経由で行った。

Microsoft Remote Desktop

Microsoft Remote Desktop

apps.apple.com

接続先は localhost:3389 を指定することで接続できる

接続時のユーザ名とパスワードはどちらも ubuntu である。

f:id:shinshin86:20200526213535p:plain

実際にアクセスしてみたところ

使用していないDockerコンテナを一括で削除する方法

今更ながら知ったのだが、使用していないDockerコンテナを一括で削除する便利なコマンドがDockerには用意されていた。 (ただしバージョンが 1.13 以上である必要がある。ただ、今であれば基本的に使えるはず)

docker container prune | Docker Documentation

下記のコマンドを打つと、本当に全て消していいのか?と聞かれるので y を押すと、一括で削除してくれる。

docker container prune

もっと docker ps でコンテナIDを抽出したのを docker rm に食わせて〜的なことを考えていた古い頭がアップデートされて良い気分。

ちなみに他にこういうコマンドないのかなーと思って調べてみたら、まとめてくれている方がいたので、そのなかのいくつかの記事を貼っておく

Docker一括削除コマンドまとめ - Qiita

docker system pruneでDockerのお掃除をする話 - EnsekiTT Blog

Dockerを使ってmacからwindowsアプリに触る

ちょっとした好奇心でmacからwindowsアプリに触れてみたくなった。

これはそんな備忘録であり、とりあえず試してみた的なメモとなっている。

Dockerでwineを動かす

こちらのリポジトリを使わせてもらった。感謝。

github.com

なお、こちらのREADMEにも書かれている通り、GUIアプリを起動しないのであれば、これ単体で良いが、もしGUIを起動させたいなら下記のコンテナと組み合わせる必要がある
(同じ開発者が作っている。)

github.com

こちらはVNC Server(X11vnc)と連携してフレームバッファ付きX11 server(Xvfb)を提供するサービスコンテナとのことで、正直ここらへんは詳しくないのだが、どうやら

  • x11vncはVNCサーバー
  • xvfbは、ディスプレイハードウェアや物理的な入力デバイスを持たないマシン上で動作する X サーバ

ということのようだ。
後でちゃんとさらっておきたいところなので、下のドキュメントを後で読んでみようと思い、こちらにもメモする。

X11vnc - ArchWiki

XVFB

今回はwindowsアプリを GUI で触ってみたいと考えているので、上の2つのリポジトリを触っていくことにする。

Docker image作成

というわけで、まずはdocker imageの作成から。
どちらも git pull してローカルでビルドしていく。

wineのdocker image

suchja-wine というタグでビルドしている。

git clone https://github.com/suchja/wine.git
cd wine
docker build -t suchja-wine .

x11serverのdocker image

suchja-x11server というタグでビルドしている。

git clone https://github.com/suchja/x11server.git
cd x11server
docker build -t suchja-x11server .

ビルドは以上となる。

x11serverとwine、それぞれのdocker コンテナを起動させる

コンテナの起動は下記の通り。
VNC_PASSWORD=newPW というのがVNCで接続したときに使用するパスワード

# x11server起動
docker run -d --name display -e VNC_PASSWORD=newPW -p 5900:5900 suchja-x11server:latest

# wineを起動
docker run --rm -it --link display:xserver --volumes-from display suchja-wine:latest /bin/bash

macのfinder上で command + kvnc://localhost:5900 を入力し、上のパスワードを入れると、黒い画面に接続される。
これで接続自体はOK

あらかじめwineを動かしているコンテナ内で下記のコマンドを実行していく必要がある

# wine初期化
wine wineboot --init

# バージョンを表示してみる
wine --version

# メモ帳を起動してみる
wine notepad.exe

これでメモ帳が起動する

ちなみにこのやり方で起動した場合、アプリのタイトルバーなどが表示されない。
(ウィンドウを閉じるボタンがついている部分)

このDocker imageには winegui というエイリアスが用意されており、これはいくつかの引数を渡してwineを起動する。
これを実行することでタイトルバーなどが表示された形でwindowsアプリが起動できる。

winegui notepad.exe

閉じるための x ボタンなどが表示されているのが分かる。

ちなみに上の winegui の実際のコマンドの内容は下記のようだ

alias winegui='wine explorer /desktop=DockerDesktop,1024x768'

色々と知らないことに触れられて楽しかった。

notionで箇条書き(リスト)のネストの戻し方がわからない

notion使っていて、ちょっと不便だなって思ったこと。

箇条書き(リスト)で書くとき、

 * hogehoge1
   * fugafuga1
   * fugafuga2
 * hogehoge2
   * piyopiyo1
   ・
   ・

みたいなのができないこと。

一度ネストしてしまうと、一段ネストを戻すことができず、より深くするか、箇条書きをやめるかしかできなかった。

実現方法をググってもぱっとやり方でてこなかったので、どなたか御存知でしたらコメントいただけると。。。。

追記: Shift + Tabでネストを戻すことが可能

コメントで教えていただきました!とてもありがたい...!

聖剣伝説3 リメイクでクリア後のレベル上げおすすめスポット

f:id:shinshin86:20200523163910p:plain

あまり調べきれていないので、もっと効率的なやり方はあるかもしれないが、個人的には結構効率よく上げられた感じがするやり方をここに書いていく
ちなみに1時間ほどのプレイ時間でレベルが70から80ぐらいまで挙げることができた。
また、プレイ時間のうち、30分間は(要は3個)神秘のクッキーを使用している。

1.エンカウントアップを珍獣マニアマタローから入手しておく

火山島ブッカを脱出以降、商業都市バイゼルの港に珍獣マニアマタローが出現する。
話しかけるとリンクアビリティ「エンカウントアップ」を入手できるので、レベル上げ前に入手しておく。

2.アニスの禁域にあるアルテナ城の中庭へ向かい、後はひたすら敵を倒し続ける

アニスの禁域を進めていくと、ショートカットが2つ出現するが、そのうちのアルテナ城にすぐ行ける方のショートカットに入り、中庭のような場所へ向かう。
(ショートカットを使えばすぐに行ける場所)。

下記の 神ゲー攻略 内のページに有る アニスの禁域Ⅰ(アルテナ) という場所がそのマップになる。 【聖剣伝説3 リメイク】アニスの禁域のマップと攻略チャート | 聖剣伝説3攻略Wiki - 神ゲー攻略

ここには敵が出現するポイントが2箇所あるが、エンカウントアップを装備しておくと、片方を倒すともう片方が復活するという状態になるので、往復しながら短時間のうちに経験値稼ぎができる。

神秘のクッキーを使用しながら経験値稼ぎを行えば、なかなか効率よく貯まっていく。

なお、パーティーにアンジェラがいる場合は、魔法連発で良い感じに敵を一層していける。
(炎が弱点のモンスターが何体かいるのでエクスプロードでガンガンなぎ倒せていける)

追記: アニスの禁域のケヴィンのエリア(ビーストキングダム)のほうがもっと効率よくレベル上げできるかも!

下記リンク先の アニスの禁域Ⅳ(ビーストキングダム) 内のエリアのほうがさらに効率よく経験値を稼げるかも。

【聖剣伝説3 リメイク】アニスの禁域のマップと攻略チャート | 聖剣伝説3攻略Wiki - 神ゲー攻略

ボロビンリーダーだけは早めに倒さないと魔法を跳ね返すようになってしまうので(カウンタマジックを使う?)、そこだけ気をつける必要があるが、それ以外はサクッと倒し続けていける。
(アンジェラがいると、魔法で一層していける)