.bash_profileが反映されない!!

先日来 terminalの挙動がおかしくなっていました それは根本的には .bash_profileが反映されない、というものでした
したがって、たとえば composerにより laravel/installerをインストールしても、それが反映されないのです。正確に言えば、もっと訳の分からない挙動を示していいたのです
つまり、

$composer global require "laravel/installer"

として MacOSに Laravel installerをインストールします。そうすると bashの設定ファイル ~/.bash_profileの最後にきちんと以下の一文が書き込まれます

export PATH="/Users/******/.composer/vendor/bin:$PATH"

これにより terminalを再起動すれば、その部分も読み込まれ

$echo $PATH

とすれば、きちんと環境変数 PATHに追加されている筈です!

ところが、これが反映されないのです 何でだ??? もちろん

source ~/.bash_profile

として明示的に.bash_profileを読み込ませれば反映されますが、そうせねば反映されないのです。これは bashが壊れたか? とまじに思いました。

しかし、発見しました ネットでは見つけられなかったので誰か困っている方もおられると思いますのでここに記録しておきます。

ターミナルのメニュー
ターミナルのメニューから環境設定を選択する
環境設定メニュータブからシェルを選択
環境設定メニュータブからシェルを選択
シェルタブ選択すねると、「シェル無いで実行」というチェックボックスがある
シェルタブ選択すねると、「シェル無いで実行」というチェックボックスがある

このチェックボックスをチェックするとシェル内で新たなまっ更なシェルが立ち上がる感じで、~/.bash_profileが読み込まれません!!!

なんとなんとこんなオプションがあったなんて!!!

 

僕のbashに一体全体何が起こったのか?

昨日TAVI三例とMitraClip一例の合間に突然のごとく気がついたのです また Visual Studio Code (VS Code)上でかんたんなHaskell programをテストがてらに書いていて、それを VS Codeのターミナルで走らせようと思ったところ、なんとなんと VS Codeターミナル画面から command promptが消失しているのです

これって、要するにコマンド打ち込めません $stack ghc ****.hsとして Haskellプログラムをコンパイルしようとても、なにせその $ が無いのです!!!

まさか、と思い Macのターミナルを立ち上げるとここにも $が無いのです これは大変な事態になりました 何も悪いことはしていません それなのに突然そんなことになったのです 前日はそんなことありませんでした

ひょっとして bashでなく zshでは大丈夫では? と zshを $より立ち上げようとするのですが何しろその $が無いっ!!

きっと、~/.bashあるいは ~/.bash_profileという bashの設定ファイルが壊れたためか? と思いそれを何とか VS Codeの「開く」という graphical interfaceで開こうとしても、今度は 隠しファイル(先頭に .がついたファイルで通常の Macからは見ることも存在も知ることができないファイル)を調べようとしても、何しろそれが見れないのです。そこで、今度は「コマンド」+「シフト」+「.」を押したところ、隠しファイルを見ることができましたので、それで両方の設定ファイルを調べても何も変わっていないのです

今度はとりあえず、「ターミナル」の「環境設定」から立ち上がりシェルを zshに変更し、とりあえずターミナルで zshを立ち上げそれにより操作をしました。まずは、この環境設定から、zsh上で $/bin/bash –version により現在のシステムbashの versionを調べると version 3.2.57(1)となっていました

これは MacOS Mojaveをインストールすると立ち上がる bashですが、何しろ現在の bashは version 5.0.11なので相当に古いものです

そこで次にzshより立ち上がるコマンドをbashにしたのです そして、homebrewで最新の bashをインストールしました

これにより $which bashとすると /usr/local/bin/bashとなり、bash –versionも version 5.0.11となりました

今は訳のわからないままこの状態で動かしています 一体全体何が突然起こったのでしょうか? どなたか Unixに詳しい方教えて下さい

Dockerの何回目かの勉強

これまで何回も Docker習得に挑み、挫折してきました 挫折すると暫く、そうですね数ヶ月間 Dockerのことは忘れ、またブーメランのように戻ってくるのです さあ今度はどうでしょうか また挫折するのかな?

そもそも Dockerとは Container-baseの仮想コンピューターシステムです 何と言えばいいか、例えば自分の MacBook Proの上に、たとえば Linux serverを何個も同時に動かしたりできるのです これは現代コンピューターサイエンスのもっとも進んだ利用なのだと思います

何れにしても目標としては、自分の MacBook Proの上に、Linux Web + PHP + MySQL (つまりいわゆる LAMP: L = Linux, A = Apache Web Server, M = MySql database server, P = PHP or Python programming language)を構築し、それを使用して Web program開発をすることなのです 現在はこの目的のために MAMPを利用しているのです

実はアメリカから帰国する前に「やったあ できた」と思ったのですが、その後検討すると Chromeでしか作動しない、FireFoxや Safariでは動作しない、http://localhost:8080/ではアクセスできない などの問題点があり、これではプログラム開発できません

それでゼロ点に回帰してやり直すことにしました 本日はこんなこと学びました

MacBook Proの bash terminal上で

$ screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty

と入力し、Enterを押す そうすると

linuxkit-025000000001:~#

という待受になりこの時点で Linuxが Dockerコンテナの中で作動しだすが、ここで exitと入力すると あれあれ不思議 bash terminal上にこの Docker container上で動作する Linuxが遊び心でこんな素敵な画面を出力するのです

Welcome to LinuxKit

                        ##         .
                  ## ## ##        ==
               ## ## ## ## ##    ===
           /"""""""""""""""""___/ ===
          {                       /  ===-
           ______ O           __/
                          __/
              ___________/

linuxkit-025000000001 login: root (automatic login)

Welcome to LinuxKit!

NOTE: This system is namespaced.
The namespace you are currently in may not be the root.
login[483]: root login on 'ttyS0'
linuxkit-025000000001:~#

このままだと終了しないので、Ctrl-a kと入力することにより、Macbook Proの terminal bashに復帰します

こんなことですが、Dockerの始めの一歩でした 是非とも皆様方試みて下さい

ちなみにこのクジラの絵ですが、Dockerの trade markですクジラが貨物船のようにコンテナを積み込んでいる模式絵なのです 面白いですね

昨日は散々な目に

12/25月曜日は午後無事飛行機が飛び、羽田に戻ることができました 12/26火曜日朝一番から非常に難しいTAVI治療をさせて頂きました ずっとずっと鎌倉の外来や入院でこれまで15年間以上に渡って診療させて頂いてきた患者さんです

色々な病気が背景にあり、ご高齢でもあり、TAVIという治療そのものが非常なリスクを伴います 医師としてTAVIを行うべきか、このまま自然経過に任せるべきか 非常に悩みどころです しかし、最終的にはTAVIにより治療を行わせて頂きました 途中色々な悪魔の洞穴とでも言うべき事態がありましたが、最終的に無事乗り切ることができました

12/27水曜日は朝からずっと外来診療 年末は皆さん方駆け込みもあり患者さんがたくさんになります そして複雑な問題をそれぞれの患者さんが抱えておられ、外来診療も簡単には済みません

そうこうしている内に、木曜日には飛行機で羽田からの便が一杯であるとの情報があり、急遽水曜日夜の便で札幌に入ることにしました 実はこの日は鎌倉で循環器内科関連の忘年会でしたが、それへの出席はキャンセルしました ようやく 20:55羽田発の便をとることができ、羽田空港には 20:00には到着したのですが、何と飛行機出発が 21:40に遅れる、との連絡あり、結局さらに飛行機は遅れ、千歳空港に着陸したのが 23:30でした

結果的に 12/28木曜日 0:30AMに宿にたどり着いたのです そして本日は朝から札幌東徳洲会病院でTAVI三例です これまで色々な思いをかけながらTAVIを推進してきました 今年は本当に大変で色々と考えさせられる年でしたねえ

そうそう一つ忘れない内に、bootstrap4をインストールする方法の中で今一番簡単だと思っている方法

まずインストールする folderに移動する
そこでコマンドラインから

$npm install bootstrap@v4.0.0-beta.2

これを行うだけです もちろん前提としては node.jsがインストールされ、node package manager (npm)が作動することです

本日は

本日月曜日 昨日クリスマス・イブというのに一人で夜札幌に入りました 道は雨のために雪が溶け、はなはだ危ない

夜遅くにこの滑りそうな道を歩けば危険と考え、歩いて一分のラーメン屋さんに入り 魚介系スープ味噌ラーメンというのを食べました その後道路を渡って MaxValueで買い物しようかとも思ったのですが、道をクロスすることが危険と考えそれもやめ、そのまま部屋に入りました

部屋に入ればやることもなく、

$code ~/.bash_profile

として、VisualStudio Codeという Microsoftが OpenSourceで出している近頃僕のお気に入りの 高機能text editorを立ち上げ、.bash_profileを少し整理しました

そして、その後 眠りに落ちました

本日は 7:00AMに札幌東徳洲会病院心臓センターに出勤し、TAVI患者さんのCT dataの解読を行い、そして本日は一人超重症の患者さんのTAVIが臨時であります そのために雪のリスクを賭けて札幌に入りました

ところで、本日午後の便で戻る予定なのですが、天気予報によれば午後から大荒れとなりそうです 間に合うでしょうか?

再度 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すれば現在書いているスクリプトが実行されます 何と便利でしょうか

Pythonで OpenCVを取り扱う

このところ数ヶ月間に渡り Pythonを少しずつかじりつつあります 日本では松本氏がゼロから作り上げ、今や世界のWeb Programmingの世界をリードする一つとなっている有名な Rubyという言語が有名ですし、実績もあります

しかし、科学技術の世界では圧倒的に Pythonという言語がトップを占めています その理由としては、科学技術の世界に特化したライブラリが豊富にあるからです

コンピューターで汎用に画像処理をするソフトウェア・フレームワークの代表が Open CV (Computer Vision)というツールなのですが、この本体は Cで書かれているのです しかし、C以外の言語に対するインターフェースが豊富に用意されており、特に Pythonに対する接続は容易である、とされています

しかし、プロでなければそのような接続自体がちんぷんかんぷんなのです これを何とかしようとここ数日のめり込んでいました 資料としてはインターネット上にあるものだけであり、色々な Key wordsで検索し、それらしきページを読み、そして試しているのですが、なかなかうまくいきませんでした

現在僕の OSXには Python処理系が、もともと OSXと一緒にインストールされているもの、Homebrewでインストールしたもの、Pyenv環境でインストールしたもの、そして anacondaを用いてインストールしたもの、そして最後に MacVim同梱のもの、と合計5つも入っているのです それぞれに、Python3.5系と、Python2.7系があるのです

Python単独でももちろんお仕事できますが、PythonのPythonたる所以は 豊富なライブラリの存在です 特に必須のものが、Numpy, Matplot, Tkinterなどですが、その一つとして CV2があります これがOpenCV 2.0/3.0のライブラリなのです

もともと CV libraryは OS Xにはインストールされてませんので、インストールせねばなりません しかし しかし これが難しい 色々試みてもことごとく失敗 いやインストールそのものは誰が行ってもできるのですが、肝腎の Pythonそのものとリンクしないのです 何が何やらさっぱり分かりません

そこで $which pythonで現在用いている pythonがどこに存在するのか調べましたところ、僕の場合には

/Users/******/.pyenv/shims/python

にあるのです そしてインストールに用いたのは anacondaだったのです そこで

$conda install -c https://conda.anaconda.org/menpo opencv3

としたところ、見事にインストールが開始となりました そしてきちんとインストールされたことを確認するためにまず Pythonを立ち上げました

$python

そうすると Pythonが立ち上がり bashの画面は次のようになります

Python 3.5.1 |Anaconda 4.0.0 (x86_64)| (default, Dec  7 2015, 11:24:55)
[GCC 4.2.1 (Apple Inc. build 5577)] on darwin
Type "help", "copyright", "credits" or "license" for more information.

この >>>という Python待受の中で、

>>>import cv2
>>>cv2.__version__

とすると、見事に ’3.1.0’と最新の version番号が戻りました これでとにもかくにも cv2ライブラリがきちんと読み込まれたことが確認できたのです 長い道のりでした

本日は UPS友の会

本日土曜日は 8:00AMに自宅を出発し、電車で麹町まででかけています これは USP友の会が開催している シェル芸勉強会に出席するためです

何時もはとても難しくついていけそうもないのですが、今日は特別に初心者向けに開催して下さっているのです とは言っても参加者の年齢は皆せいぜい 30歳、僕だけ超年寄りですので浮いていますがそれでも頑張って参加しています

皆さんパソコンを持込み、プログラム書いて勉強しています 頑張るぞ