2016/08/06(土) [n年前の日記]
#1 [nitijyou] 今日も暑かった
福島市のあたりは37度になるよ、と朝のニュースで流れてたけど…。今日も暑かった…。エアコンを動かしてるけど、部屋の温度が下がらない…。
◎ エアコンスーツを作れないものか。 :
それにしても…。エアコンの、部屋全体を冷やすという仕組みが、なんだかもったいないなと。人間が居る所だけ冷やせれば、損失が少ないだろうに…。
寝袋みたいな冷却スーツって作れないものかな…。たしか、映画「ロボコップ」のスーツって最初は暑かったけど、2作目で水冷システムを導入できてちょっとは楽になったという話を聞いたような記憶もあるので、そういう感じのスーツを作って…。
街のあちこちで、そういうスーツを見かける光景が実現したら、なんだかちょっとSF。
寝袋みたいな冷却スーツって作れないものかな…。たしか、映画「ロボコップ」のスーツって最初は暑かったけど、2作目で水冷システムを導入できてちょっとは楽になったという話を聞いたような記憶もあるので、そういう感じのスーツを作って…。
街のあちこちで、そういうスーツを見かける光景が実現したら、なんだかちょっとSF。
[ ツッコむ ]
#2 [python] Pythonで1文字だけキー入力ってどうやるんだろう
Raspberry Pi上のPythonスクリプトで、例えばカーソルキーを押すと、数字が増えたり減ったりするようなことをしたいなと。Windows上でも、Linux上でも、同じスクリプトで動作するなら尚嬉しい。
ググってみたら一般的には getch() なるものを使うようで、 _getch にそれらしいパッケージが。しかしコレは、pip install getch と打ってもインストールできない。なんだか大量にエラーが出る。
_py-getch なるパッケージもあった。 _joeyespo/py-getch: Portable getch() for Python. によると、pip install py-getch でインストールできて、以下のような感じで使えるらしい。
py-getch なら Windows10 x64 + Python 2.7.11上でインストールできたし、動作も確認できた。また、VMware + Ubuntu 16.04上でもインストールできた。
しかし、「1」「a」等のフツーのキーならともかく、カーソルキーを叩いた際に、妙な表示になる…。
_windows - Python method for reading keypress? - Stack Overflow でそれらしい記述が。コピペして動作確認。
ところが、このスクリプトを VMware + Ubuntu 16.04 LTS 上に持っていって動かすと、カーソルキーを押した瞬間に終了してしまう…。
おそらく、Windows上では 224,xxx という数字が返ってくるけど、Linux上では 27,xxx という数字が返ってきている、ような気がする。どちらかに特化した書き方をしないとダメなのだろうか…。
以下のようなスクリプトを書いて確認してみたり。
Windows10 x64 + cmd.exe上で、カーソルキーの、↑、↓、→、←を押すと、こうなる。
Ubuntu + bash上で、カーソルキーの、↑、↓、→、←を押すと、こうなる。
以下のような関係になってるのかな。
Windows は、0xe0 が届いた後、カーソルキーの種類を示すコードが届くけど、Linux では、0x1b,0x5b が届いた後、カーソルキーの種類を示すコードが届く、ということなのかなと。ただ、カーソルキーの種類を示すコードは、Windows と Linux では一致してないようで。
やはりどちらかに特化して書かないとダメかしらん。
ググってみたら一般的には getch() なるものを使うようで、 _getch にそれらしいパッケージが。しかしコレは、pip install getch と打ってもインストールできない。なんだか大量にエラーが出る。
_py-getch なるパッケージもあった。 _joeyespo/py-getch: Portable getch() for Python. によると、pip install py-getch でインストールできて、以下のような感じで使えるらしい。
from getch import getch, pause key = getch() print 'You pressed:', key pause()
py-getch なら Windows10 x64 + Python 2.7.11上でインストールできたし、動作も確認できた。また、VMware + Ubuntu 16.04上でもインストールできた。
しかし、「1」「a」等のフツーのキーならともかく、カーソルキーを叩いた際に、妙な表示になる…。
_windows - Python method for reading keypress? - Stack Overflow でそれらしい記述が。コピペして動作確認。
from getch import getch, pause print "Push any key. (ESC : exit)" while True: key = ord(getch()) if key == 27: # ESC print "ESC : exit." break elif key == 13: # Enter print "Enter" pass elif key == 224: # Special keys key = ord(getch()) if key == 80: print "Down Arrow" elif key == 72: print "Up Arrow" elif key == 75: print "Left Arrow" elif key == 77: print "Right Arrow" else: print "You pressed: %s (%d)" % (chr(key), key) if key == "x": print "exit." break pause()要するに、カーソルキー等の特殊なキーを叩いた場合は、「コレは特殊なキーだよ」と示すコードがまず1個届いて、その直後に「押されたキーは○○だよ」と示すコードが届くのだろうと。少なくとも Windows上では、このスクリプトでカーソルキーが押されてることを判別できた。
ところが、このスクリプトを VMware + Ubuntu 16.04 LTS 上に持っていって動かすと、カーソルキーを押した瞬間に終了してしまう…。
おそらく、Windows上では 224,xxx という数字が返ってくるけど、Linux上では 27,xxx という数字が返ってきている、ような気がする。どちらかに特化した書き方をしないとダメなのだろうか…。
以下のようなスクリプトを書いて確認してみたり。
from getch import getch, pause for i in range(20): key = getch() print "%d : 0x%02x" % (len(key), ord(key))
Windows10 x64 + cmd.exe上で、カーソルキーの、↑、↓、→、←を押すと、こうなる。
1 : 0xe0 1 : 0x48 1 : 0xe0 1 : 0x50 1 : 0xe0 1 : 0x4d 1 : 0xe0 1 : 0x4b
Ubuntu + bash上で、カーソルキーの、↑、↓、→、←を押すと、こうなる。
1 : 0x1b 1 : 0x5b 1 : 0x41 1 : 0x1b 1 : 0x5b 1 : 0x42 1 : 0x1b 1 : 0x5b 1 : 0x43 1 : 0x1b 1 : 0x5b 1 : 0x44
以下のような関係になってるのかな。
↑ | ↓ | → | ← | |
Windows | 0xe0 0x48 | 0xe0 0x50 | 0xe0 0x4d | 0xe0 0x4b |
Linux | 0x1b 0x5b 0x41 | 0x1b 0x5b 0x42 | 0x1b 0x5b 0x43 | 0x1b 0x5b 0x44 |
Windows は、0xe0 が届いた後、カーソルキーの種類を示すコードが届くけど、Linux では、0x1b,0x5b が届いた後、カーソルキーの種類を示すコードが届く、ということなのかなと。ただ、カーソルキーの種類を示すコードは、Windows と Linux では一致してないようで。
やはりどちらかに特化して書かないとダメかしらん。
[ ツッコむ ]
#3 [linux] MobaXtermを試用
_Windowsに採用されたBash (Ubuntu)を試してみる
という記事経由で、MobaXterm なるソフトがあると知ったので試してみたり。sshクライアントにもなるし、Xサーバにもなる、らしい。
要するに、WindowsからLinux機にsshでアクセスしたり、Linux + X WindowアプリをWindows上で使えるソフト、という説明で合ってるのかどうかちょっと分からんけど大体そんな感じのことができるソフトだそうで。
_MobaXterm free Xserver and tabbed SSH client for Windows
_MobaXterm を ssh/mosh/X11 クライアントとして使う(Windows) - Qiita
_MobaXtermによるCADツールの利用
_MobaXterm: Windowsでのcygwinに代わるターミナル環境
Portable版、MobaXterm_v9.1.zip をDLして解凍。中には、
色んなファイルが圧縮してまとめてあるようで、起動するまで結構時間がかかった。 _MobaXtermでMoshクライアント機能が利用できない問題について によると、Windowsのテンポラリフォルダだか、アプリ別設定保存フォルダだかに、ごっそり解凍してから起動してる、という話が。
ちなみにポータブル版ではなくインストーラ版もインストールしてみたけど、そちらも exe を1つだけ置いといて、起動時にごっそり解凍してるようで。インストーラ版を使えば起動が速くなるというわけでもないらしい。
色々触ってみたけれど…。Raspberry Pi3 にsshでアクセスした状態で…
xclock & と打ってみたら例の時計が表示されたり、
xeyes & と打ってみたら例の目玉が表示されたり、
oneko -sakura と打ってみたら「はにゃーん」「ほえ〜」のアレが表示されたりで、
なんだかちょっと感動。
ちなみに、Raspberry Pi上で xclock だの xeyes だのをインストールするのは…。sudo apt-get install x11-apps と打ったような。違ったかな。たしかそのはず。oneko は、sudo apt-get install oneko でインストールできた。
_Debian -- wheezy の x11-apps パッケージに関する詳細
_Linuxだからできないなんて言わないよ 猫がマウスカーソルを追いかけるソフト oneko
ただ、MobaXterm を使っていて気になったけど、sftp だか scp だかの転送速度が遅いなと。MobaXterm に限った話ではなく、暗号化して転送してるから当たり前だろうけど。
暗号化方式をもっと弱いものに変えればCPU負荷が減って転送速度も多少は改善するのだろうけど。
_winSCPを使って高速にデータ転送する技 - Qiita
_WinSCPの暗号化方式による転送速度の違い パソコン鳥のブログ/ウェブリブログ
しかし、MobaXterm が暗号化形式を変更できるのか、そこからして分からず。どこかにオプション項目がありそうな気もするのだけど…。
要するに、WindowsからLinux機にsshでアクセスしたり、Linux + X WindowアプリをWindows上で使えるソフト、という説明で合ってるのかどうかちょっと分からんけど大体そんな感じのことができるソフトだそうで。
_MobaXterm free Xserver and tabbed SSH client for Windows
_MobaXterm を ssh/mosh/X11 クライアントとして使う(Windows) - Qiita
_MobaXtermによるCADツールの利用
_MobaXterm: Windowsでのcygwinに代わるターミナル環境
Portable版、MobaXterm_v9.1.zip をDLして解凍。中には、
- CygUtils.plugin
- MobaXterm_Personal_9.1.exe
- MobaXterm_Personal_Customizer_9.1.exe
色んなファイルが圧縮してまとめてあるようで、起動するまで結構時間がかかった。 _MobaXtermでMoshクライアント機能が利用できない問題について によると、Windowsのテンポラリフォルダだか、アプリ別設定保存フォルダだかに、ごっそり解凍してから起動してる、という話が。
ちなみにポータブル版ではなくインストーラ版もインストールしてみたけど、そちらも exe を1つだけ置いといて、起動時にごっそり解凍してるようで。インストーラ版を使えば起動が速くなるというわけでもないらしい。
色々触ってみたけれど…。Raspberry Pi3 にsshでアクセスした状態で…
xclock & と打ってみたら例の時計が表示されたり、
xeyes & と打ってみたら例の目玉が表示されたり、
oneko -sakura と打ってみたら「はにゃーん」「ほえ〜」のアレが表示されたりで、
なんだかちょっと感動。
ちなみに、Raspberry Pi上で xclock だの xeyes だのをインストールするのは…。sudo apt-get install x11-apps と打ったような。違ったかな。たしかそのはず。oneko は、sudo apt-get install oneko でインストールできた。
_Debian -- wheezy の x11-apps パッケージに関する詳細
_Linuxだからできないなんて言わないよ 猫がマウスカーソルを追いかけるソフト oneko
ただ、MobaXterm を使っていて気になったけど、sftp だか scp だかの転送速度が遅いなと。MobaXterm に限った話ではなく、暗号化して転送してるから当たり前だろうけど。
暗号化方式をもっと弱いものに変えればCPU負荷が減って転送速度も多少は改善するのだろうけど。
_winSCPを使って高速にデータ転送する技 - Qiita
_WinSCPの暗号化方式による転送速度の違い パソコン鳥のブログ/ウェブリブログ
しかし、MobaXterm が暗号化形式を変更できるのか、そこからして分からず。どこかにオプション項目がありそうな気もするのだけど…。
[ ツッコむ ]
#4 [pc] VMware Player上で Ubuntu 16.04LTSをインストールしてみたり
今まで VMware Player上で Ubuntu 14.04LTSをインストールして時々起動して実験してたけど。「Ubuntu 16.04にアップグレードできるよ」と言ってきたのでついアップグレード、してみたものの、どうせならクリーンインストールして環境を作ったほうがいいのかなと思えてきたわけで。
ということで、別途 16.04LTSをクリーンインストールしてから、14.04LTSのイメージは削除。
環境設定は以下を参考にして作業。
_Ubuntu 16.04 LTSをインストールした直後に行う設定 & インストールするソフト
VMware Tools は…。今回から、open-vm-tools (open-vm-tools-desktop)をインストールしてみる方向で。
_ubuntu 16.04 インストール(2) vmware tools - kashiの日記
_VMwarePlayer上のArchLinuxとホストOSとフォルダ共有をする失敗談 - みちのいに!!
_VMware による open-vm-tools のサポート (2074713) | VMware KB
共有フォルダの設定を別途しないといけないのがちと面倒。
ということで、別途 16.04LTSをクリーンインストールしてから、14.04LTSのイメージは削除。
環境設定は以下を参考にして作業。
_Ubuntu 16.04 LTSをインストールした直後に行う設定 & インストールするソフト
VMware Tools は…。今回から、open-vm-tools (open-vm-tools-desktop)をインストールしてみる方向で。
_ubuntu 16.04 インストール(2) vmware tools - kashiの日記
_VMwarePlayer上のArchLinuxとホストOSとフォルダ共有をする失敗談 - みちのいに!!
_VMware による open-vm-tools のサポート (2074713) | VMware KB
共有フォルダの設定を別途しないといけないのがちと面倒。
[ ツッコむ ]
以上、1 日分です。