<Python> 相対パス + ipythonでエラー

下記のようなファイル構成をとっていて、、

 % tree hage
hage
├── __init__.py
└── main.py
├── hige
│   ├── __init__.py
│   └── core.py

1 directory, 4 files

で、main.pyで、

from hige.core import *

として、インポートする。
この場合は、ipythonで、run main.pyは問題なく動く。
が、pipでインストールする場合、こける。

が、相対パスでインポートする記述の場合、 つまり、

from .hige.core import *

とすると、 ipythonでのrun main.pyはこけるが、
pipインストールは成功する。

どっちもうまくならんもんか?、、 と思っていたら、
いつものスタックさんに回答があった。

下記でうまくいった。

try:
    from .hige.core import *
except Exception:
    from hige.core import *

いつも助かるスタックオーバーフローさん。
stackoverflow.com

<Python> listから空のものを除く

listから、空つまり、"のものを除く。
リスト内包表記を使えば一発。

リスト作成。

In [1]: aaa = '''
   ...: aaa
   ...: bbb
   ...: ccc
   ...: '''

In [2]: aaa.split('\n')
Out[2]: ['', 'aaa', 'bbb', 'ccc', '']

In [3]: lst = aaa.split('\n')

In [4]: lst
Out[4]: ['', 'aaa', 'bbb', 'ccc', '']

で、リスト内包表記

In [5]: [x for x in lst if x is not '']
Out[5]: ['aaa', 'bbb', 'ccc']

<Google Cloud Platform> Google Cloud SDKを入れなおす。

前にWindows版 --> Linux版 on msys2 と入れて、ぐちゃぐちゃ?っぽくなってしまったので、入れなおした。
両方削除して、Linux版だけ入れた。

下記から、zipをダウンロードして展開。

Linux 用のクイックスタート  |  Cloud SDK のドキュメント  |  Google Cloud Platform

 % gunzip google-cloud-sdk-180.0.0-linux-x86_64.tar.gz

 % tar xvf google-cloud-sdk-180.0.0-linux-x86_64.tar

 % cd google-cloud-sdk

 % ./install.sh
Welcome to the Google Cloud SDK!

To help improve the quality of this product, we collect anonymized usage data
and anonymized stacktraces when crashes are encountered; additional information
is available at <https://cloud.google.com/sdk/usage-statistics>. You may choose
to opt out of this collection now (by choosing 'N' at the below prompt), or at
any time in the future by running the following command:

    gcloud config set disable_usage_reporting true

Do you want to help improve the Google Cloud SDK (Y/n)?  n


Your current Cloud SDK version is: 180.0.0
The latest available version is: 185.0.0

┌──────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│                                                Components                                                │
├──────────────────┬────────────────────────────────────────────────┬──────────────────────────┬───────────┤
│      Status      │                      Name                      │            ID            │    Size   │
├──────────────────┼────────────────────────────────────────────────┼──────────────────────────┼───────────┤
│ Update Available │ BigQuery Command Line Tool                     │ bq                       │   < 1 MiB │
│ Update Available │ Cloud SDK Core Libraries                       │ core                     │   7.0 MiB │
│ Not Installed    │ Cloud Datalab Command Line Tool                │ datalab                  │   < 1 MiB │
│ Not Installed    │ Cloud Datastore Emulator                       │ cloud-datastore-emulator │  17.7 MiB │
│ Not Installed    │ Cloud Datastore Emulator (Legacy)              │ gcd-emulator             │  38.1 MiB │
│ Not Installed    │ Cloud Pub/Sub Emulator                         │ pubsub-emulator          │  33.2 MiB │
│ Not Installed    │ gcloud Alpha Commands                          │ alpha                    │   < 1 MiB │
│ Not Installed    │ gcloud Beta Commands                           │ beta                     │   < 1 MiB │
│ Not Installed    │ gcloud app Java Extensions                     │ app-engine-java          │ 118.7 MiB │
│ Not Installed    │ gcloud app PHP Extensions                      │ app-engine-php           │           │
│ Not Installed    │ gcloud app Python Extensions                   │ app-engine-python        │   6.1 MiB │
│ Not Installed    │ gcloud app Python Extensions (Extra Libraries) │ app-engine-python-extras │  27.8 MiB │
│ Installed        │ Cloud Storage Command Line Tool                │ gsutil                   │   3.3 MiB │
└──────────────────┴────────────────────────────────────────────────┴──────────────────────────┴───────────┘
To install or remove components at your current SDK version [180.0.0], run:
  $ gcloud components install COMPONENT_ID
  $ gcloud components remove COMPONENT_ID

To update your SDK installation to the latest version [185.0.0], run:
  $ gcloud components update

==> Source [/home/Nekoyuki/google-cloud-sdk/completion.zsh.inc] in your profile to enable shell command completion for gcloud.
==> Source [/home/Nekoyuki/google-cloud-sdk/path.zsh.inc] in your profile to add the Google Cloud SDK command line tools to your $PATH.

For more information on how to get started, please visit:
  https://cloud.google.com/sdk/docs/quickstarts

で、つづきはこちら。
Cloud SDK ツールの承認  |  Cloud SDK のドキュメント  |  Google Cloud Platform

こちらも参考になる。

qiita.com

<Github> pushでユーザ、パスワード省略

pushするときに、ユーザuser、パスワードpasswordを省略する方法。

.netrcに書き込めばいいらしい。

 % more ~/.netrc
machine github.com
login username
password xxxxxxx

この記事がよくまとまってました。
qiita.com

<Bash, zsh> シェル変数が定義されているかを判定する方法

シェルShellで変数Variableが定義されているかを判定する方法。
調査した結果、3つの方法があるっぽい。

-v 変数がセットされてるか? どうか? -n 変数の長さが0でないNonzero lengthか? どうか? -z 変数の長さが0 nzero lengthか? どうか?

チェックする。

 % HAGE="hage"; [ -v HAGE ]; echo $?
0

 % unset HAGE ; [ -v HAGE ]; echo $?
1

 % HAGE="hage"; [ -n "$HAGE" ]; echo $?
0

 % unset HAGE ; [ -n "$HAGE" ]; echo $?
1

 % HAGE="hage"; [ -z "$HAGE" ]; echo $?
1

 % unset HAGE ; [ -z "$HAGE" ]; echo $?
0

luna2-linux.blogspot.jp

d.hatena.ne.jp

<Vim> Unite.vimをいれた。

:regレジスタregisterの内容を確認して、ヤンクyankしていたのだが、
すぐに使い方を忘れる、、あと、レジスタの番号を覚えていないとヤンクできない、、
が記憶力のないあたしとしては、いまいち感がでてきた。

Unite.vimをいまさらながら入れてみた。
よかった。

github.com

設定は下記とした。
shift + uUniteを呼び出すキーとした。
<ESC>2発でUniteを閉じる。

" Unite.vim
" ----------------------------------------------
let g:unite_enable_start_insert=1                                       "Start with insert-mode
let g:unite_source_history_yank_enable =1
let g:unite_source_file_mru_limit = 200
nnoremap <silent> Uy :Unite history/yank<CR>
nnoremap <silent> Ub :Unite buffer<CR>
nnoremap <silent> Uf :UniteWithBufferDir -buffer-name=files file<CR>
nnoremap <silent> Ur :Unite -buffer-name=register register<CR>
nnoremap <silent> Um :Unite file_mru buffer<CR>
autocmd FileType unite nnoremap <silent> <buffer> <ESC><ESC> :q<CR>
autocmd FileType unite inoremap <silent> <buffer> <ESC><ESC> <ESC>:q<CR>

<Vim> オムニ補完

オムニ補完Omni completeを設定してみた。

下記を.vimrcに書き込む。
pythonは、どうもJedi-vimとぶつかるっぽいので、切る。

" Omnifunc
" ----------------------------------------------
autocmd FileType css setlocal omnifunc=csscomplete#CompleteCSS
autocmd FileType html,markdown setlocal omnifunc=htmlcomplete#CompleteTags
autocmd FileType javascript setlocal omnifunc=javascriptcomplete#CompleteJS
" autocmd FileType python setlocal omnifunc=pythoncomplete#Complete     "Off due to conflict with jedi-vim
autocmd FileType xml setlocal omnifunc=xmlcomplete#CompleteTags

マニュアル。
http://vim-jp.org/vimdoc-ja/usr_24.html#24.3