自動化厨のプログラミングメモブログ │ CODE:LIFE

Python/ExcelVBA/JavaScript/Raspberry Piなどで色んなことを自動化

Pythonのスコープ(変数の参照・代入可能範囲?)でつまづいた。グローバル変数を関数内で変更するには

今日Flask-ngrokというライブラリを使っていてつまづいたので戒めメモ。

Pythonのグローバル変数は関数内で代入できない

num = 0

def num_func ():
    num = 1
    print("num " + x)

このように実行したときにてっきりnum 1と表示されると思っていましたが、表示されたのはnum 0でした。

実はPythonのグローバル変数は関数内で参照はできるが、変更はできないらしいです。

困った・・・。と調べていたらありました。

【Python】ローカル変数とグローバル変数 | アルゴリズム雑記

関数内でglobal宣言すれば代入可能

num = 0

def num_func ():
    global num 
    num = 1
    print("num " + x)

関数内で代入したい変数名の前にglobalと付けて宣言したあとなら関数内で代入可能らしい!

やっぱりこういう基礎的なところすっ飛ばして動くもの作ろうとするとちょいちょいつまづきますね笑

でも真面目に基礎やるのが嫌いなので走りながら勉強します。

Raspberry PiからPythonでWEB経由でWoLしてみる

前回はAndroidアプリの「Wol Wake on Lan Wan」からグローバルIPを指定してポートフォワーディングでマジックパケットを転送していました。

しかし、これではルーターに穴を開けることになるのでセキュアじゃない。

ような気がするので自宅で常時起動しているRaspberry Piを経由してWOLすることにします。

あと、なんか9月になってから「Wol Wake on Lan Wan」が公開停止になってるし。

できるようになること

  • Google Homeなどから音声コマンドでPCを起動

用意するもの

  • Raspberry Pi
  • IFTTTアカウント
  • Beebotteアカウント
  • Google Assistantが使える端末
  • WoLできるようにしたPC

WoLできるようにする設定は前回の記事の「PCのMACアドレスを確認」までを参照ください。

code-life.hatenablog.com

まずはPythonのライブラリをインストールしてテスト

wakeonlan

https://pypi.org/project/wakeonlan/

続きを読む

TeamViewerが突然商用利用として5分で切断されてしまったが5日ほどで解除された

以前までChromeリモートデスクトップを利用していたが、ふとTeamViewerのことを思い出して利用を再開してみたところこれが超便利だった。

ことの発端はスマートフォンにBluetoothキーボードを接続した状態でChromeリモートデスクトップを使ってみたときのこと。 キーボードから入力した文字が全く別の文字として入力されてしまい、文章なんて書けたものではなかった。

他のリモートツールはどうかと言うことでTeamViewerを試してみたら完璧な動作でした!

  • キー入力をそのまま伝達される
  • 操作対象PCの解像度を自由に再設定できる
  • ワンボタンでWOLできる
  • マウスカーソルが大きめで見やすい

これに加えて一番驚いたのがPCからスマートフォンを遠隔操作できるということ。

スマートフォン側にHostアプリをインストールして接続しておくとスマホを完全に遠隔操作できてしまう。ちょっと怖くもありますが超便利です。

8/25突然PCの遠隔操作開始時に商用利用判定をくらう

会社に居たときに接続するのがマズイのかわかりませんが、スマートフォンから自宅PCに遠隔で接続しようとしたら「商用利用の疑いがあります・・・あと5分で切断されます」的なメッセージが表示された。

Google Playのレビューにも同様のメッセージが表示されて使えなくなってしまった最悪といった内容の声が多く寄せられていた。

商用利用の判定基準

TeamViewerのQ&Aページを参照したところ以下のように記載がある。 PC環境依存とのことなのでシェアウェアが入っているとかWindowsのエディションはHomeじゃないとかそういうことなんだろうか・・・。

Q: 商業利用とは何ですか?

A: 当社は、直接的または間接的に支払いが発生している商用目的である環境にてTeamViewerを使用するものと定義しています。これには以下のユースケースが含まれます。

  • ご自宅から会社のコンピューターへ遠隔操作をした場合、会社のコンピューターは商用環境にある為、そこに直接支払いが生じていなくても商用利用と判断されます。
  • お客様や同僚にサポートを提供する場合、そこに直接費用が発生していない場合でも、商用利用が適用されます。
  • TeamViewerを使用してクライアントまたは顧客のデバイスに接続する場合、TeamViewerは商用利用となります。

Q: ホームオフィスは商用利用が適用されますか?

A: はい。ご自宅でTeamViewerを使用している場合、ご自宅にある業務用コンピューターに、ほんの短期間でも接続してメールの内容をチェックしても、商用利用が適用されます。これはTeamViewerをアカウントが個人のものか会社のメールアドレスかに依存するわけではなく、あくまで使用環境に依存しています。 しかし、問い合わせメールフォームから商用利用ではないので解除してくれるようにお願いすればあっさり数日後に解除してくれたっぽいです!

全文はこちら

community.teamviewer.com

個人利用再開の申請方法

以下のメールフォームから申請する。

https://www.teamviewer.com/en/support/commercial-use-suspected/

Q&Aではログファイルを提出するようにと記載があるが、現時点ではファイルの添付ができないようなので省略して多分OK。

Affected TeamViewer IDは「使用中のID」に表示されている9桁の数字です。 f:id:maru0014:20180902220414p:plain

本文についてはこちらの例文を参考に英語で連絡すれば数日で解除されると思います。 miyamedia.net

”Using TeamViewer to help family and friends without receiving any financial compensation is considered personal use.”

I only wish to control my sub computer with my home devices. Please check my Device ID and unlock limit.

Chrome拡張機能「stylish」が使えなくなった代わりに「Stylus」を使ってみた

以下の記事にもあるようにChrome拡張機能の中でも定番といっても過言ではない「Stylish」が利用不可能に。

代替品として完璧な「Stylus」を使ってみました。

forest.watch.impress.co.jp

Stylishとは

カスタマイズCSSを任意のページに反映させる拡張機能。 例えば文字サイズが小さく見づらいサイトがあれば文字サイズが大きくなるようにfont-size: 120%;としたり、メインコンテンツ以外のバナーなどが多く見づらければそれを非表示にしたりなどが可能。

ようは見づらいサイトを自分専用に見やすくカスタマイズできる拡張機能である。

続きを読む

スマホアプリで外出先から自宅のPCを遠隔起動してみる「Wol Wake on Lan Wan」

最近はありえないくらい暑い日が続きますね。

そんな中我が家のメインPCは誰も使ってないのに常時稼働しています。何故かと言うと「出先からリモートデスクトップで遠隔操作したいから」。 以前はマイニングPCとしても稼働させていたのでまだ良かったですが、今はいつ遠隔操作するかも分からないけど念のためにつけっぱなししているだけ状態。 すごくもったいないですよね。そして排熱のせいで部屋が暑い暑い・・・。

そこで、外出中はスリープ状態にしておいてリモートで作業したくなったときだけ電源をONにする方法はないか探していたところWake-on-LANという方法に行き着きました。

Wake-on-LAN(ウェイク・オン・ラン、略称WoLあるいはWOL)は、コンピュータネットワーク(主にLAN)に繋がっているコンピュータの電源を遠隔で投入するAMDが開発した技術あるいはその行為を指す。

引用元: Wake-on-LAN - Wikipedia

これは良い!と思いましたがLanということはローカルネットワーク。つまり外出先では使えないということ。

それでは駄目なのでさらに調べていたらWanから起動する方法が見つかったのでメモしておきます。

続きを読む