ニッパーを買った

たまにLANケーブルの成端作業を行うのですが、切断系のいい道具を持っておりませんでした。
パンドウイットのニッパーが気になっていたのですが、短いとのレビューと値段が結構するので悩んでおりました。
そこで他に良さそうなニッパーないかなぁと探していたら良さそうなニッパーを見つけたので買いました。
ツノダ(TSUNODA) TTC つかめるニッパー 薄刃タイプ バネ付 125mm TH-125NC
切った時に破片がどこかに行ってしまうことがよくあったので、切ったもののホールド機能が欲しいなと思って探して、値段も千円ちょっととパンドウイットのものと比べるとだいぶ安かったので買ってみました。LANケーブルにも使えるよって動画で説明もしてたので公式が言ってるなら安心だろうってのも決めてでした。
下の画像の右下の赤いニッパーです。

使ってみるととてもいい感じです。
芯線は綺麗に切れますし、ホールド機能もよく働いています。
一緒にケーブルカッターも買ったのですが、それよりもこっちのニッパーでLANケーブル切った方が切断面が綺麗でした。(使い方的に大丈夫だろうか…)
小さくて持ち運びもしやすくていう事ないです。

AWSの勉強

クラウドの勉強をやろうと思って以下の本を買って、読み込みとハンズオンを行いました。
AWSクラウドの基本と仕組み
AWSではじめるインフラ構築入門 安全で堅牢な本番環境のつくり方

(一応このサイトもAWSのLightsailを使って雑に作ってます)

AWSクラウドの基本と仕組み 感想

クラウドとAWSを何も知らない人が入門として読むにはよいなと思いました。
また、AWSのサービスが浅く広くまとめられているのでイメージがつかめます。
NASとか使っているとS3とかよく出てきて、なんだかわかりませんでしたが信頼性の高いストレージなんだなーと浅くわかるようにはなりました。

AWSではじめるインフラ構築入門 安全で堅牢な本番環境のつくり方 感想

こちらはハンズオンを行う内容でした。
作成したものとしては
– ネットワーク (VPC)
– Webサーバ (EC2)*2
– ロードバランサ(EC2)
– データベース (RDS)
– メール用のストレージ(S3)
– メールサーバ(SES)
– 踏み台サーバ (EC2)
– キャッシュ(ElastiCache)
など
いろんなサービスがあるなーと感じながら、自分で操作して簡単に出来上がっていくので非常に面白かったです。細かく操作について書いてあるので、あまり迷うことなくできましたが、タイポに気づかずつらい場面もありました。
SESに関しては画面が結構変わってましたが、何とか出来ました。左側のメニューでドメインやEmailが分かれておらず全て「Verified identities」にまとまっているようでした。
書籍だとやはりクラウドの更新頻度についていくのが大変ですね。

AWSだと、サーバ事態にネットワーク設定をしないので結構変な感じがありました。
VPCでネットワークの設定やルーティングをすると、EC2もそれを参照してやってくれるので、いつも設定している身としては楽だけど違和感がすごいです。

Linuxの知識等がないとコマンドうったり、ローカルからサーバへのsshで引っ掛かりそうだなと思いました。

後日、AWSの課金額がきましたが、いつも500円くらいなのが1万ぐらいになってて短期間で頑張ればよかったなと思いました。ただ、初期導入コストがほぼなしでこれだけの規模のものを個人で展開できるのは改めてクラウドの良さだと感じました・

factorioサーバをたてる

factorioサーバを立てたくなったため、たてました。立てるまでの流れを雑に書きます。
参考
factorio jp wiki

サーバの選定

グローバルIPアドレスの固定がオンプレだとできる環境が現在ないため、どこかのサービスを利用することにしました。調べていくとFactorioのサーバ初期設定が含まれているサービスがありました。
ConoHa VPS
簡単そうだし、これでいいかと思いとりあえずはじめめてみました。
月額968円の1GB 2CPU SSD100GBのプランです。

こんな感じでポチポチしてたらできあがりました。
あとは、できあがったサーバのIPv4アドレスを確認して、Factorio側で接続したらOKです。

問題が…

接続も無事完了したのですが、サービス側で設定をされたので、カスタマイズ方法がわかりません。ゲームログイン時のパスワードをかけたり、modの追加のやりかたがわからず、一から建てることにしました。サーバの再選定はめんどくさいので、同じプランで素のUbuntuから建てることにしました
(Alma LinuxやRockey Linuxも対応してるんだなぁと思いました。)

こんな感じで設定しました。

出来上がったサーバーにWebブラウザからコンソール接続。
rootアカウント、サーバ作成時に設定したパスワードを入力しログイン。
まず、Firewallの設定を行いました。

#firewallサービスのインストール
apt install firewalld

#デフォルトのzoneをdropに変更
firewall-cmd –set-default-zone=drop

#許可するサービス、ポートの設定 Factorioで使うデフォルトのポートは UDPの34197
firewall-cmd add-service=ssh –permanent
firewall-cmd add-port=34197/udp –permanent

# 上記設定の適用
firewall-cmd –reload

つぎに必要なファイルを取ってきます。この作業は自分のPC側で行って、SCPでサーバーに持っていきました。
HeadlessのFactorioのファイルを公式からダウンロードします
アカウントがない場合は作成してください。
右下の頭のないペンギンをクリックするとダウンロードできます。 (ちょっとかわいそうなアイコンだなと思いました)。


ダウンロードしたファイルををscpを使ってサーバへ送ります。
scp factorio_headless_x64_versionnum.tar.xz root@サーバーのIPアドレス:/tmp

#サーバー側で受け取ったファイルを展開します
cd /tmp
tar Jxvf factorio_headless_x64_versionnum.tar.xz

展開したファイルの実行ファイルがある場所まで移動し、セーブデータを作成します
cd factorio/bin/x64
./factorio –create ../../saves/hogehoge.zip

# 起動して、Ctrl + cで終了すると、mod用のフォルダが作成されます
./factorio –staret-server hogehoge.zip

次にfactorioを遊ぶ環境を準備していきます
ローカルPCで遊びたい環境に設定したfactorioを新しくはじめます。ゲームが始まったらセーブを行い、作成したセーブデータをサーバーに送ります。
作成したセーブデータは、以下のディレクトリにzipファイルでおいてあります。C:\Users\%USERNAME%\AppData\Roaming\Factorio\saves

作成したセーブデータをサーバーに送ります
scp savedata.zip root@サーバーのIPアドレス:/tmp/factorio/bin/x64

追加したいmodを公式から手動でダウンロードします
ダウンロードしたmodをすべてzipのままサーバーへ送ります
scp mod.zip root@サーバーのIPアドレス:


サーバー側の作業
mod-list.jsonの書き換え
modはディレクトリに入れるだけでなく有効化するmodを以下のjsonファイルで有効化する必要があります。modの名前とenabledにtrueを入れると有効化されます。
/tmp/factorio/mods/mod-list.json

{
  "mods":
  [
    {
      "name":"base",
      "enabled": true
    },
    {
      "name":"bobassembly",
      "enabled": true
    },    
  {
      "name":"bobclasses",
      "enabled": true
    },
    {
      "name":"bobelectronics",
      "enabled": true
    },    {
      "name":"bobenemies",
      "enabled": true
    },
    {
      "name":"bobequipment",
      "enabled": true
    },    {
      "name":"bobgreenhouse",
      "enabled": true
    },
    {
      "name":"bobinserters",
      "enabled": true
    },    {
      "name":"boblibrary",
      "enabled": true
    },
    {
      "name":"boblogistics",
      "enabled": true
    },    {
      "name":"bobmining",
      "enabled": true
    },
    {
      "name":"bobores",
      "enabled": true
    },    {
      "name":"bobplates",
      "enabled": true
    },
    {
      "name":"bobpower",
      "enabled": true
    },    {
      "name":"bobrevamp",
      "enabled": true
    },
    {
      "name":"bobtech",
      "enabled": true
    },    {
      "name":"bobvehicleequipment",
      "enabled": true
    },
    {
      "name":"bobwarfare",
      "enabled": true
    },    {
      "name":"clock",
      "enabled": true
    }
  ]
}


server-settings.example.jsonのコピーと書き換え
サーバーの設定を変更します。参加にパスワードが必要など。
Wikiを参照して作りました。

サーバープログラムの実行
cd /tmp/factorio/bin/x64/
./factorio –start-server savedata.zip server-settings server-settings.example.json

あとで清書しよう…


gitの勉強

今更なんですが、gitの勉強を始めました。
現在は、コマンドベースで一人で使ってるだけなので、多人数でブランチとか切ったりするような用途の使い方が全く分かってないです。
以下の本を参照にGUIベースのソフトからとりあえずやってみて、多人数で使うときに出てくる言葉とか基本を押さえていこうと思います。

わかばちゃんと学ぶ Git使い方入門〈GitHub、Bitbucket、SourceTree〉

とりあえず触り始めましたけど、GUIだとボタン探したりツールの慣れが必要ですね。GUIだとソフトのバージョンが上がるとUIもすぐ変わりそうなイメージです。
基本的にはコマンドからにして、グラフィカルに見たい場合だけGUIのツール使うとかにしたほうが作業はかどりやすそうな感じです。

今日覚えたやつ
# commitを表示
git log –oneline
# 過去のcommitに一時的に戻る x : git log –onelineで表示されたハッシュ
git checkcout xxxxxx
#過去のcommitからまた現在の最新にもどる
git checkout master

# 新規ブランチを切る
git checkout -b

https://www.atmarkit.co.jp/ait/articles/2004/30/news017.html
https://qiita.com/2m1tsu3/items/6d49374230afab251337

lidarによる3Dスキャンアプリとフォトグラメトリの3Dモデル生成の比較

iPad Proでlidarセンサを使ったアプリによるスキャンと写真のみからフォトグラメトリで生成したしたそれぞれの建物の写真です。VRに持ち込みました
フォトグラメトリの写真もiPad Proで撮りました。初めての超広角レンズ。

使用したソフト
Lidarによる3Dスキャンアプリ 3d Scanner App
フォトグラメトリ 3DF Zephyr Lite Steam Edition

それぞれの使った感想について書き残します。

3d Scanner App

3d Scanner App を使った場合の制作フロー

  1. 対象物の周りを3d Scanner Appを使って撮っていく
  2. リアルタイムで画面上に3Dモデルのメッシュができていく
  3. 必要なメッシュが作成できたらスキャンを止める
  4. 3Dモデルにテクスチャを張ってもらう
  5. 作成したモデル (.obj) をGoogleドライブ等に挙げる
  6. PCで受取り、好きなようにいじる

3d Scanner AppではiPad Proを対象物に向けながら、周りを歩けばモデルが生成できます。リアルタイムでメッシュができていく過程は素晴らしいですね。その後、アプリ内で数分程度でテクスチャの生成まで行えます。というわけで、非常に楽です。ただ、Lidarの範囲外 (数メートル?) になると手も足もでないです。モデルの屋根が全然できていないのがわかるかと思います。また、作成したテクスチャの解像度が選べないので、きれいなテクスチャを使った3Dモデルを作るのが厳しいですね。3Dモデルによってテクスチャの解像度が違うようなので、ポリゴン数などで決まるのでしょうか。どうすればきれいに撮れるかがよくわからないです。
アプリ内でできる3Dオブジェクトの編集はトランスフォームだけみたいなので、編集する際はPC必須ですね。

lidarを使ったアプリを用いて生成した3Dモデル

アプリのいい点は
お手軽にすぐできる
形もそこそこよくできてる
リアルタイムでメッシュが見れ、穴埋め的な感じでスキャンをしていきやすい

フォトグラメトリによる生成

制作フローは割愛。
写真に写っていれば、距離に関係なく生成できるところと、テクスチャの解像度が選べるのがやはり強いですね。作成途中でフィルタリングやいらないメッシュの削除等もできるので、細かく作っていきやすいです。
しかし、数百枚も写真を撮り、数時間かけて生成する流れは大変ですね。

写真のみから生成した3Dモデル

とりあえず、お手軽に3Dスキャンしたモデルを出力したいという方はiPad Proはよい選択なのではないかと思います。ただ、小物が苦手という話があったり、自分で試した室内フォトグラメトリはあまり良い結果ではありませんでした。
屋外で自分と同じような大きさを持ったものとかがやりやすいかもしれませんね。

iPad Proを買いました

先日、こんなツイートを発見しました。

iPad ProのLidarを使って現実にある物体を3Dスキャンするアプリですね。趣味で画像から3Dのデジタルデータを生成するフォトグラメトリを行っておりますが、こちらは画像のみから生成するため、かなりの計算を行い、相当な処理時間がかかります。対して、Lidarを使った場合だとリアルタイムでメッシュの生成が行えており、すごい楽なんじゃないかと気になってしまい、このアプリのため+αで購入してしまいました。

自分の部屋を試しにやってみましたが、あまりきれいにはテクスチャを貼ることができませんでした。部屋が物だらけというのもあり、掃除をして、きれいなテクスチャが張れるような撮り方を練習してみたいと思います。
よくできたら、モデルの投稿とかできたらいいなぁと思います。
ゆくゆくは広域フォトグラメトリやりたいですね。

httpsに対応させました

Amazonさんの説明ページにあったので、やってみました。
https://aws.amazon.com/jp/premiumsupport/knowledge-center/linux-lightsail-ssl-bitnami/
画面に従って適当にやってたらできてしまいました。
全然勉強にならない…。

bitnamiのツールでどのような設定をやっているか、確認する必要がありそうです。
https://docs.bitnami.com/bch/how-to/understand-bncert/

サイトのURLにwwwを付けるかどうか迷いましたが、なしの方向でいきたいと思います。

ドメイン取得

お名前.comでドメインを取得しました。やっすいドメインですが。
DNSは本で勉強していましたが、やっぱり実際に触らないと身につかないですね。Aレコードとかなんのこっちゃってなります。

この記事書いている間にドメインとIPアドレスの紐付けができたようです。早いな…。

昔、先輩が自分のドメインを持って、自分のサイトが表示されるのをめっちゃ楽しそうにしてたの話してくれた時は
「ほーん」
って感じで聞いてたんですけど、今ならその気持ちがわかる気がします。

次はSSL化を目指しますかね。

Amazon Lightsailへterminalからsshでログイン

Webブラウザのからは簡単にコマンドラインが開けたが、端末のターミナルでsshでログインできないものかと調べたらできた。

Amazon Lightsailのインスタンスページからssh用の鍵をダウンロードし、それの実行権限を変更してssh
デフォルトだと664になっているらしい。
chmod 600 key_filename
で変更した。
ssh接続の際は
ssh -i key_filename XXX.XXX.XXX.XXX -l bitnami
XXX.XXX.XXX.XXX: 接続先IPアドレス
で接続できた。

[参考]
https://dev.classmethod.jp/articles/amazon-lightsail-ssh-key-options/
https://qiita.com/ntkgcj/items/6450e25c5564ccaa1b95

chmodのオプションよく忘れます。学生時代は実行ファイルに実行権限つけただけだったので u+x がほとんどで、セキュリティも気にしない場合は 777 付けてました。
今回は逆にwarningでtoo openと怒られたので、緩ければ動くというわけでもないんですね。セキュリティ的に甘いのはもちろんよくないけど