物事はそう簡単には行かない

半分 Programming modeに移行しています

今日日曜日は、23:00頃羽田発の ANA LosAngels便でアメリカに飛びます アメリカには日曜日の夕方到着し、そこから自動車で数時間移動し、月曜日、火曜日と缶詰で会議に参加です もちろん英語ばかりの会議でありとても辛い、つらい つらい 辛い

そして、火曜日の昼からは開放され、そのまま車でLAに移動するのですが、到着は 18:00頃となるでしょう LAで Cedas Sinai Hospitalの皆と会食し、今度は LA発 0:00AM頃の便で羽田に戻ります 羽田に到着すれば、既に木曜日 4:30AM頃でしょう この便は良く使うのですが、羽田に到着しても公共交通機関も動いていないし、お店はやっていないし、本当に始末に悪いのです そして、この木曜日は僕はそのまま国内線に移動して、千歳行きの始発便で札幌に移動なのです

札幌で夕方までお仕事して、できればその木曜日の便で鎌倉に戻りたいなあ そうでないと、金曜日朝からたくさん入っている外来患者さんに迷惑かけるし、その後のPCIにも影響してしまいます

いやいやこんな話をするためにブログを今立ち上げた訳ではないのです

Pythonに再び、いや三度、いや、よたび、ごたび、・・・・、うんじゅったび 立ち向かっているのですが、Bash on Ubuntu on Windows10で走らせたりして喜んでいます

それは良いのですが、そもそも Pythonでやろうとしていることは、DICOM Viewerを作ることなのです かつてこれに挑んだ時の壮絶な戦いを ここに記載しております 最後に動画で DICOM-XAを再生出来た時にはそれまでの僕の人生の 10年間が報われました

しかし、今再び壁に立ち向かっているのです これについては、アメリカに着いてから記しましょう

浮気者

今週も忙しかったなあ

17日月曜日、Slender Clubも終了し、安らげるかと思えば午前外来に引き続き、午後は慢性完全閉塞などのPCI二例、その後 病棟新入職員歓迎会が大船の居酒屋さんで開催され、当然のことながら立場上も参加せねばなりません

でも偉かったですねえ、心に決めて一滴もアルコールを飲みませんでした

翌日は朝から二例のTAVI、そう言えば最近僕は自らTAVIせずに、口先介入ばかりしています まあこれも若い人のためには仕方無いことでしょう

そして、何だか疲れ切り、水曜日19日は、本当はその前日夜から函館に入る予定がキャンセルとなり、急遽時間ができたので、溜まっていた仕事を片付けることができました そして、夜の便で札幌に入ったのです

20日木曜日は札幌でTAVI 2例の proctoringをしました、とても高齢の方お二人であり、しかもお一人は急速に心不全が進行し、胸が真っ白に近くなっていました もうTAVIをせねば限界の方でした という訳でとても high risk症例だったのです それでも、二例バッチリうまく決めることができました

もっとも僕は Proctoringですので、手出しはしません、口出しも最小限で、危険回避の時のみです それでうまく行ったのはとても嬉しいですね

本日金曜日 21日は、たくさんの外来患者さんの診療してから、少し危険な症例で、僕がずっと10年間以上も外来で間歇的に診てきた患者さんのPCIをしました その後、慢性完全閉塞に対するPCIの院内 Proctoringをしました そして今に至るのです

ここまで読んでも何が浮気者か分かりませんね

実は、ある方に引きづられて Pythonを勉強しているのですが、丁度良い書籍が Kindleで出たので、それを見ながら codeを打ち込んでいます ここで問題となるのが、Editorです

これまで、 Unix/Linus標準の Vi/Vim、恋するエディタと称される Sublime Text3、GitHub渾身のエディタ Atomとつまみ食いしてきました そして、今は以前使ってみてすぐにやめた Visual Studio Code (通称 VS Code)に浮気しているのです これは、あの Microsoftが作り、毎週のように upgradeしている Open sorce productでする 特徴は多くの plug inが開発されているのです

何が便利かと言えば、 .pyとファイル名をつければ、そのファイルを Python実行ファイルと認識し、カラーリングしてくれるのみか、Terminal (Bash)も内包しているので、すぐに実行できるのです これは便利ですねえ とても便利です

もちろん Vimや、Sublime Textあるいは Atomでも同様のことはできるのですが、VS Codeは何しろ軽い、そして分かりやすいのです これでようやく自分の気持も「さあいざ Python」という感じになってきました もっとも浮気性なので何時まで持つかな?

仮想環境

今新しくなった僕の MacBook Proは強力な CPUと広大な disk領域を持っていますので、まずは Parallels上に Windows10をインストールし、さらに VirtualBox上に、Vagrantを用いて Ubuntuをインストールしました つまり、仮想の三台のシステムが同時に動作していることになります

そして、その上で python-virtualenvを用いて python3.5.1をインストールしたところです これに関しては相当に迷ったのです やり方が分からなかったのですが、このページを参照して何とかできました 助かりました

何時もありがとう

本日は第10回日中友好TRIセミナー + Slender Club Japan Live in 東可児病院というのが開催され、中国から 20名ぐらいの先生、そして Slender Clubの面々と一緒に東可児病院の講堂にいます

朝一番目の症例として右冠動脈の慢性完全閉塞の患者さんを治療させて頂きました 何時ものように金子くんが助手をして下さいました 金子くんとのペアはこれまでライブデモンストレーションにおいて多分これが4回目ぐらいではないでしょうか 何時も助けられています ありがとうです

さてそれを終了し、少し進歩しました 次のコードがエラー無く動いたのです 大分進歩です

class Complication():
 def __init__(self, severity=0):
 self.__severity = severity
 print("The severity of this complication is {}.".format(severity))
 def getSeverity(self):
 return self.__severity
 severity = property(getSeverity)

if __name__ == "__main__":
 comp1 = Complication()
 comp2 = Complication(1)
 x = [comp1, comp2]
 [print(xx.severity) for xx in x]

結構素晴らしいことです いつくもの段階を登った感じを自覚します

これなんですよ

これこれ この雰囲気 この世界が求めるものだったのですよ いかにもカッコイイ ただされだけなのですが とてもいわゆる Macには見えないですよね Unixの世界になっています 求めるのはこれなのです

求める世界
求める世界

OSX上で、Sublime Text 3、Atomそして VIM/GVIM/MacVIM上で Python3を一発で走らせる

全然プログラムも書かないくせに、Pythonの環境構築ばかりに凝っています それであっという間に時間が流れて行くのです それはそれは楽しい作業であり、なかなかうまくいかないことがまた楽しいのです とは言うものの、ついに昨夜目標を達成しました
それは、僕の環境(つまりは色々な Pythonをインストールしてあるだけでなく、OSXには初めから Python2.7がインストールされているので、そのような混在した環境、という意味です、つまり僕の MacBook Proでは成り立っても、他の方々のMacでは成り立たない可能性も高いのです)で、Sublime Text3、Atom、VIM、GVIMにおいてプログラムを書いたものが、それぞれ Cmd-b、Ctrl-i、そしてCtrl-e、Ctrl-eというショートカットで Python 3.5.1 Interpreterがその今書いたブログラムを走らせることができるようになったのです
これは素晴らしいことであり、効率が良いのはもとより、何より画面を傍で見ていれば、とてもかっこ良く、いかにもハッカーが何か恐ろしいことをやっているように見えるのです そうに決まっています 何よりも画面が綺麗であり、神秘的で高速に変化していくのです
そして、同様の環境は既に SurfacePro4の Windows10でも Sublime Text 3、Vimで実現したのです
一番大変だったのは、OSX Sublime Text 3です この「恋に落ちるエディタ」と称されている素晴らしい Editorですが、その上で Python 3.5を走らせるのは大変でした

まずは自分が走らせたい現在走らせている Python interpreterが何処にあるか調べねばなりません

$which python

これにより

/Users/*****/anaconda/bin/python

が戻ってきましたので、僕の現在の Pythonは /Users/*****/anaconda/bin/pythonにあることが分かります

そこで、これからがめんどくさいのですが Sublime Text 3のメニュー Sublime -> Preference -> 基本設定-ユーザ で設定ファイルを開きます

そこで その設定ファイルを

{
	"build-env":
	{
		"PATH": "/Users/*****/anaconda/bin/python"
	},
	"cmd":
	[
		"/Users/*****/anaconda/bin/python"
	],

のように修正するのです これにより Sublime Text 3では Cmd-Bで Pythonが自動的に走るようになり快適になりました ここまで来るのに相当調べまくりましたよっ

OSXと Windows10の間でクロス・プラットフォーム環境をつくる

現在主体として使用しているマシンは MacBook-Proです この上の native OSである OSX El Capitanで色々としています しかし、数カ月前に SurfacePro-4を手に入れてから、Windows10でも遊んでいます
実はそれ以前には OSX上で Parallels Desktopを動かし、その上で Windows10を動かしていたのですが、やはり重く、MacBook-Proが熱くなることがしばしばだったので辞めました
とは言っても、二つの OSは大分と性格が異なります 今年の夏になれば、Ubuntu-Bashが Windows10 nativeとして走るようになり、そうなればこの垣根は一挙に取り払われるのでしょう それを非常に期待しています
しかし、現在は未だそうは行きません
そこで、二つをつなぐものとして、Pythonを走らせることにしたのです Pythonを走らせる、と言ってもプログラムを描くには Editorが必要です もちろん、Pycharmなどの IDEも存在し、それは Javaで走るためそもそもが Cross Platformなのですが、重いのです 気軽に書く、という訳には行きません
そこで取り組んだのが、Vim (GVim)を両者で走らせることでした 色々な設定ファイルをいじくる必要がありますが、無事両方のOS上で、Ctrl-eを押せば、Python programが走るようになりました
そして次に取り組んだのが Sublime Text3でした これは秀逸の editorですが、これでも Ctrl-bを押せば Python programが走るようになりました
こうなるともうどのマシンを使っているのか分からなくなってしまいます 

数日間の苦労の果てにようやくできました

この処 Pythonと格闘しています 格闘と言っても未だまだ理解が足りないので、試作プログラムを走らせた時に目で見える変化が無いと困るのです それでTkinterを用いて作りました

#!/Users/******/anaconda/bin/python
# -*- coding: utf-8 -*-

from tkinter import *
from tkinter.colorchooser import *
import sys
def colorRed(n): 
    global label1
    label1.configure(bg='#%02x0000' % scale1.get())

def getColor():
    global label1
    color = askcolor()
    label1.configure(bg=color[1])

root = Tk()
label1=Label(root, text="この部分の背景色が変化します", fg='#ffffff')
label1.pack()
scale1 = Scale(root, label='色を指定して下さい', orient='h', from_=0.0, to=255, command=colorRed)
scale1.pack()
Button(root, text="指定する色の選択", command=getColor).pack()
Button(root, text="終了", command=exit).pack()
root.mainloop()

これを走らせると 次のようになります

プログラム走らせた直後
プログラム走らせた直後

スライダーを動かすとラベルの背景色が変化します

スライダーを動かしたところ
スライダーを動かしたところ

今度は色選択ダイアログから直接色を選択します

色選択ダイアログからの色指定
色選択ダイアログからの色指定

色選択ダイアログで指定した背景色に変化しました

背景色が変化しました
背景色が変化しました

さて、プログラムの最初にある二行はそれなりに重要です

#!/Users/******/anaconda/bin/python
# -*- coding: utf-8 -*-

このうちの最初の一行は Python interpreterがこのパソコンの何処にインストールされているかを示しています

そして二行目は、文字コードとして UTF-8を使用するよ と宣言しているのです これをしないと、走らない場合がありますよ

さて、上記の実行結果では、一部文字が欠けていますが、それはもちろんすぐに直せますよ それには一部分を修正すれば良いのです

 

 scale1 = Scale(root, label='色を指定して下さい', orient='h', length=250,  from_=0.0, to=255, command=colorRed)

これでバッチリです

再度 Python環境構築

現在の Pythonには version 3 (主体は v3.5)と version 2 (主体は v2.7)の二系統あります もちろん version 3.5の方が言語体系として合理的であり、かつスピードも早いのですが、これまで創られた膨大なライブラリの多くが 2.7にしか対応していないので、簡単には 2.7一辺倒という訳には行かないのです

そこで、 pyenvという仮想環境を構築するツールが造られ、それを用いれば 3.5系と 2.7系に切り替えることができるように世の中には書いてあります

でも、事はそんなに簡単なものではなく、実際にそれをできる人はいわゆるプロの領域の人々のみなのです しかも、anacondaという Python環境構築ツールを用いれば更に困難なのです

ここ金浦空港ラウンジでの3時間の時間潰しで挑戦しました 参考にしたサイトは数多くありますが、新しいこのサイトが参考になりました 一部記述に誤りがありますが、それは仕方有りません

その結果

$pyenv local anaconda3-2.4.0

で Python 3.5.1が走り

$pyenv local anaconda3-2.4.0/envs/py2

で Python 2.7.1が走るようになりました 目出度しめでたしです

Vimで編集中の Python scriptをそのまま実行する

最強のエディタと称される Vimを練習中です その練習の一環として、Pythonの簡単なスクリプト書いて Pythonの勉強がてら Vim操作法の勉強もしています

この時に、いちいち書いたスクリプトを Vimの中で IDEの如く実行できれば便利なのにと思い色々調べてみましたところ、ありましたね ここです 感謝感激です

つまり .vimrcの中に

autocmd BufNewFile,BufRead *.rb nnoremap <C-e> :!ruby %
autocmd BufNewFile,BufRead *.py nnoremap <C-e> :!python %
autocmd BufNewFile,BufRead *.pl nnoremap <C-e> :!perl %

というおまじないを書き込むのです こうするとC-e (Macの keyboardで Control keyを押しながら、eのキーを押すこと)すると何と Vimのコマンド行に、Pythonの場合には

:!python %

というのが現れますので、それを Enterすれば現在書いているスクリプトが実行されます 何と便利でしょうか