DreamerDreamのブログ

夢想家の夢です。〜揚げたてのモヤっとしたものをラフレシアと共に〜

Conohaの512MBプランで保存したイメージを1GBプランで復元して実質のプランアップ 復元出来るのは今だけ???

僕が契約しているVPSはCentOS7とCentOS8があります。

 

共にConohaの最安512MBプラン。

dreamerdream.hateblo.jp

 

元々目的が別でしたので使い分けていましたが、1つは目的を達して現在は単に2つVPSがあるという状態になっていました。これではアップデートの度にややこしい!

と思いながらも面倒なので放置すること約1年。。 

 

<過去のアップデート備忘録>

dreamerdream.hateblo.jp

dreamerdream.hateblo.jp

 

今回は重い腰を上げ、旧CentOS7のVPSを削除、サービスは新CentOS8に引き継いで統合することにしました。そのついでに、サーバーも1GBプランに変更することにしました。

(512MBプランは自動バックアップが出来ないことやプランアップが出来ないなどいろいろと制限が多いですが、1GBプラン以上はサービスをフルで使えます。)

 

しかし問題は、512MBプランはそのままではプランアップは出来ない仕様です。

support.conoha.jp

 

一度ディスクイメージとして保存しておいて、イメージからディスクを復元すると実質のプランアップとなるわけですが・・・↓

support.conoha.jp

ここに

「メモリ512MBプランで取得したイメージでメモリ1GB以上のプランを構築することもできません。」

と明記されています。

 

えーと・・・いつからだろ、僕が512MBを契約した時には確かに512MBのイメージをそのまま1GBで使えるというブログ記事を見てこのプランを決めた記憶があるのですが・・・、いつの間にか仕様変更になったのか、或いは元々出来ないはずなのに出来てしまっていたのか。。。

 

これは新規でOSインストールしてシステム再構築するというとても面倒な作業になりそうだぞと気合いを入れてプランアップ作業に挑んだわけですが・・・↓

f:id:DreamerDream:20210807101716p:plain

ん?????

 

ダメモトで512MBプランのイメージで再構築してみたら、そのまま1GBプランに引き継げました。

 

ということで、2021/8/7現時点では512MBプランのイメージを1GBプランに復元することは可能でした。

 

しかし今後、明記されている通りに引き継げなく可能性もありますので「512MBプランでいっか」と安易に構築してしまうと将来的に困ることになるかもしれません。

 

あと、こちらの記事にいろいろとConohaの仕様が書かれていまが、

qiita.com

 

中でも衝撃的なのが

バックアップ復元すると、rootログインが許可されてしまう。

というものです。

これは知らなかったです。そういえば過去にセキュリティーを見直した時にrootログイン可能になっていて「あれ?rootログイン禁止にするの忘れてたかな?」ということがありましたがおそらくコレが原因です。

 

これは、もしOSを過去のイメージで復元してユーザーのパスワードをど忘れしてしまってもrootでなんとかログインは出来ますよー!という親切設計なのでしょうか?謎

 

ともあれ今回はスケールアップには成功しましたので512MBプランイメージから1GBプランへ復元出来ました!と備忘録を残しておきます。

 

↓詳細ページ(申し込んでいた爆安プラン)

【512MBプラン】なんと月額630円/1時間1円【ConoHa VPS】

 

 

炎天下の車内で実際にゆで卵は出来るのか? 夏休みの自由研究にいかがでしょうか?

あまりにも暑い近年の夏、炎天下に放置している車内の暑さに「車の中でゆで卵ができるんちゃうか?」こんな会話をしている方も少なからずありますね。

 

ということで、実際にゆで卵が出来るのか?

実験することにしました。

 

ダッシュボードが一番熱くなると思うので卵を並べて放置します。

f:id:DreamerDream:20210804132127p:plain

割れて汚れたら嫌なので念のためラップでくるっと巻いています。

 

本日2021年8月4日は熱中症の危険レベルはこんな感じです。

f:id:DreamerDream:20210804132425p:plain

 

今回の実験は車内放置開始が8時半ごろ〜回収が11時半ごろですので、約3時間での検証です。

※エアコン効かせて走った直後ですので実験開始時はダッシュボードはそれほど熱くありません。

 

では実験結果です↓

 

じゃじゃーんっ!

f:id:DreamerDream:20210804132141p:plain

黄身がしっかり目のイイ感じのオレンジ色

白身はどろっと半生

 

完全に温泉卵やー!!

f:id:DreamerDream:20210804132152p:plain

 

この状態であと数時間放置していたら完全なゆで卵になるのかしら?

f:id:DreamerDream:20210804132202p:plain

炎天下の車内、おそろしや・・・

 

ダッシュボードだから特に熱いわけですが、それでもこんな車内にもし生き物を置き忘れてしまったとしたら・・・と考えると恐ろしいです。

車から離れる際には持ち物チェックを怠らないようにしましょう!

 

天気とゆで卵の仕上がりを比較して夏休みの自由研究とするのも面白いかもしれません。

注意:ほぼ生な仕上がりのものは食中毒に注意して食べないようにしましょう。

 

※今回実験した卵はスタッフが責任をもってお昼ご飯にいただきました。

 

電子工作で基板の配線をうっかり断線させてしまわないためにする3つの工夫 この一手間で工作がしやすくなります

電子工作をしていると基板に付けた配線を弄ったり本体に組み込んでいるうちに配線を切断してしまうことって必ず経験しますよね。

 

何度も仮組みやテストをしているといつのまにか配線が金属疲労を起こして切れてしまいます。特に基板の根元から切れてしまうという事が多いです。

 

そこで、今回僕が電子工作で工夫をしている断線対策を一部ご紹介します。

 

例として、現在工作中のラズベリーパイのGPIOから配線を引っ張り出す基板を上げます。

f:id:DreamerDream:20210725155837p:plain

 

その① 纏める

線の種類を分けて抵抗等の余ったメッキ線を使って基板の端に纏めています。

f:id:DreamerDream:20210725162152p:plain

こうすることで配線を弄ってもハンダ付けした部分に直接付加がかからなくなり、少し引っ張ったぐらいでは線が切れにくくなります。

 

その② 貫通させる

細い線は、特に切れやすいのであえて一度穴を被膜ごと貫通させています。

f:id:DreamerDream:20210725162216p:plain

これだけで半田部分に直接負荷がかかりにくいので切れにくくなります。さらに裏側から色が解るので多色ある場合は上の説明のように配線を一カ所に纏めてしまっても後から簡単にどの線か判別することが出来ます。

 

その③ 間を空ける

基板に余裕がある場合は少しずつ分けて数えやすくしています。

f:id:DreamerDream:20210725162128p:plain

写真では20列ある線を5列ずつ分けています。

沢山ピンが並ぶと配線ミスも起こりやすくなります。

断線と直接関係ありませんが、余裕を持たせることで断線した場合にウッカリ間違った場所に取り付けてしまうことを防ぎます。

 

 

以上3選でした。

基板に余裕がある場合はこのように一工夫をすることで面倒な断線を未然に防いだり再接続しやすくする事ができます。

 

pigpiodがsystemdサービスで自動起動しない /etc/rc.localに登録して自動起動させる

サーボモーターを使う為に、少し精度の高いPWM波を出力すべく「pigpio」というライブラリを用いたプログラムを書いているのですが、プログラムを実行する前に

sudo pigpiod

と一度だけターミナルでコマンドを叩いてやる必要があるらしく、常駐させるべくsystemdを弄っていましたが、うまく起動してくれません。

 

systemctl enable pigpiod

までは受け付けるものの、再起動してプログラムを実行するとエラーが出てしまいます。

エラー

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Can't connect to pigpio at localhost(8888)

Did you start the pigpio daemon? E.g. sudo pigpiod

Did you specify the correct Pi host/port in the environment
variables PIGPIO_ADDR/PIGPIO_PORT?
E.g. export PIGPIO_ADDR=soft, export PIGPIO_PORT=8888

Did you specify the correct Pi host/port in the
pigpio.pi() function? E.g. pigpio.pi('soft', 8888)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

なぜだーorz

 

とりあえず 

sudo pigpiod

と叩いてくれということだそうです。

 

原因は・・・RPi.GPIOと競合なのか、あるいは個体差なのか・・・、

結局調べてもよくわかりませんでしたので起動時にpigpiodコマンドを実行することにしました。

方法は簡単

/etc/rc.local

pigpiodと記述するだけです。

 

rc.localの最終に「exit 0」とあるので、その前にでも書きましょう。

pigpiod

 

exit 0

ここで実行されるコマンドはroot権限で実行されるのでsudoは不要です。 

f:id:DreamerDream:20210713142357p:plain

 

これで狙い通りプログラムが実行されるようになりました。

 

pigpioは、RPi.GPIOとWringPiの良いとこ取りをしたようなライブラリです。

僕は昔ながらのRPi.GPIOで慣れているのでPWMの精度の必要な部分だけこれを利用するという使い方をしています。(だからエラーが出たのかもしれません)

<参考>

Raspberry PiのGPIO制御の決定版 pigpio を試す - karaage. [からあげ]

 

※WringPiは昔に赤外線リモコンを作った時に使ったことがあります。

dreamerdream.hateblo.jp

 

 

<参考 プログラムを自動起動させる方法>

Raspberry Piでプログラムを自動起動する5種類の方法を比較・解説 - Qiita

こちらの記事とても参考になります。

 

Linuxの現在時刻を同期させる備忘録

今までサーバーの厳密な時刻設定なんかは必要なくて、数分のズレなんか気にしていませんでした。

 

しかし自作のアプリとの時刻合わせをする用途が出て来たので今更ながらLinuxの時刻同期を行ないます。

 

といっても「chrony」をインストールして起動させるだけです。

<参考>

eng-entrance.com

 

CentOS8ならdnfで、RaspberryPIならapt-getでパッケージインストール

sudo dnf install chrony

・(インストール)

sudo systemctl start chromy

sudo systemctl enable chromy

これだけ。

 

僕の使っているVPSサーバーは実際に約5分の遅れが生じていました。

f:id:DreamerDream:20210623110542p:plain

chromy起動直後のdateコマンドによる確認、少し待つだけで綺麗に現時刻に合わせてくれます。

 

時刻合わせだけでサーバーにしないのなら設定ファイル

/etc/chrony.conf

は特に弄る必要は無い。

 

設定ファイルのこの項目

# Enable kernel synchronization of the real-time clock (RTC).
rtcsync

これで11分おきにリアルタイムクロックと同期してくれるそうです。

 

備忘録でした。

python3のsocket通信で外部からアクセスさせるためには「オールゼロ」”s.bind(( '0.0.0.0' , [ポート番号] )) ”を使う 備忘録

python3で低水準なsocket通信をしようと試みてハマッたことの備忘録です。

 

「python3 socket」等で検索をかけると簡単なsocket通信のサンプルコードが出て来ます。

 

<参考>

【Python3】Pythonでソケット通信を試してみた | DevelopersIO

 

※コードは上記ブログのものをそのまま拝借なのでここでは載せません。

コピペして自分のサーバー内で通信して接続し、「なるほど!」と納得。簡単簡単!

過去にJavaでやったことあるので理解出来ますよ!っと。

さて外部からアクセスしようとすると。。。

 

raceback (most recent call last):
File "test_socket_client.py", line 8, in <module>
s.connect( ( target , 123 ) )
ConnectionRefusedError: [Errno 111] Connection refused

 

というエラーに遭遇しました。

あれ?ポートは開放しているハズなのにおかしいな?

そもそも、

 

この.bindで指定しているIPって何なのさ?

s.bind( ( socket.gethostname() , 123 ) )

 

ということで、このsocket.gethostname()の部分をローカルに変更

[127.0.0.1]

[localhost]

としても繋がらない^^ん〜?

じゃあールーターのアドレス?

[192.168.0.1]

としても繋がらない。。。

じゃあDNS?

[接続先のDNS]

[サーバーのDNS]

[接続先のIPアドレス]

いろいろ試したけど繋がらない・・・

ググってもローカルIPアドレスしか書いて無い!?

なんだこれ???

 

諦めずに調べていくと答えを発見!

teratail.com

 

なんと、通常は「オールゼロ」というIPアドレスを設定するそうです。

[0.0.0.0]

これでOK。

s.bind( (  '0.0.0.0' , 123 ) )

 

ここでようやく意味を理解しました。

ここで設定してるIPアドレスはルーターからLANアダプタに割り振られたIPアドレスのことのようです。

f:id:DreamerDream:20210617165130p:plain

 

なるほど!どのLANアダプタからの情報を繋ぐか?ということなので通常はオールゼロ設定で問題無いですね。

 

こんな事に時間を費やしてしまって悲しい。。

サーボモーターSG90とSG92Rの分解比較 どちらにしようか悩むならSG92Rを購入すべき

 前回、サーボモーターSG90の本物と偽物を分解比較してみました。

dreamerdream.hateblo.jp

 

今回はSG90の強化版SG92RをSG90と比較してみます。

(左:SG90、右SG92R)

f:id:DreamerDream:20210616110610p:plain

 

SG92RはSG90の樹脂ギアにカーボンファイバーを配合した強化ギアになっています。

トルクもSG90が1.8kg/cm(4.8V)のところ、SG92Rは2.5kg/cm(4.8V)となっており、パワーアップしています。

 

SG90の変わりにSG92Rは使えるのか?と気になる方もあることでしょう。

サイズを比較します。

手前がSG92R、奥がSG90です。

f:id:DreamerDream:20210616110619p:plain

うーん、どっからどう見てもパッケージのサイズは「同じ」ように見えます。

f:id:DreamerDream:20210616110629p:plain製品情報を見ると数ミリ違ってたりすることもあるようですが、違いがわかりませんでした。

 

分解します。

本体は同じ4本のネジで止まっています。

f:id:DreamerDream:20210616110639p:plain

制御基板はSG90が赤色、SG92Rが緑色をしているだけで他はほぼ一緒、モーターのサイズも同じようです。

 

ギアの比較

f:id:DreamerDream:20210616110650p:plain

SG92Rが黒いので見辛いですが、

f:id:DreamerDream:20210616110700p:plain

f:id:DreamerDream:20210616110709p:plain

違いが全くわかりません^^。分解した意味・・・

f:id:DreamerDream:20210616110719p:plain

ほぼ一緒!というか全部一緒!!?

 

「こんなんでトルクアップしてるの??」と思いましたが、実際に動かしてみるとSG92Rの方が間違いなくパワーがあります。

 

<SG90でサムターンを回そうとして失敗した動画>

youtu.be

解錠は出来るのですが施錠が出来ません^^;

 

<SG92Rでサムターンを回した動画>

youtu.be

圧倒的ぱわー!!

 

サイズはほぼ同じなので何故?と感じましたが、おそらくギアに応じた強いモーターが使われているのでしょう。

SG90かSG92Rでお悩みの場合、100円程度の差なのでSG92Rを購入しておいた方が後悔が少ないと思います。

 

ちなみに、今回僕は前回記事で書いた通りSG90の偽物を購入し「安物買いの銭失い」を痛感しました。

偽物は本物よりパワーが弱く使い物になりませんでした。

kampa.me