Umi Uyuraのブログ

Titaniumを使ったスマートフォンアプリ開発を中心に、プログラミング関連の作業ログ。

Superfly10周年記念ライブのライブ・ビューイングに行ってきました

去年、春に始まったラジオ番組「Superfly into the Radio」が、喉の不調ということで途中で打ち切りになってしまって以降、あまり表立った活動を目にしていなかったので、1ファンとしても心配していました。

今回のライブのMCや、途中に挟まれたライブまでのドキュメンタリータッチの映像などで知ったのは、1年以上歌からは離れていた状態だったとのこと。

何はともあれ、また彼女の歌が聴けることがうれしいですね。

Superflyのライブビューイング観た!

そんな休養期間が終わって最初のライブ。

全国の映画館でライブ・ビューイングがあるということで、私は横浜のブルク13で見ていました。


ライブ会場は東京オペラシティコンサートホール。クラシックや演劇などのイメージが強いところなのでどういうライブになるのかと思っていましたが、オーケストラを従えてのアコースティックな編成ということで納得。

そして驚いたのは、髪をバッサリ切ってベリーショートなスタイルになったSuperfly!

やっぱり長い髪をなびかせながら歌うイメージが強かったので、これは意外でしたねー。


厳選されたオーケストラアレンジの楽曲も、どれも良かったです。

個人的に一番好きな「Wildflower」が入っていたのが、さらに満足。

ライブ・ビューイングだったけど、相変わらず力強い歌で、パワーをもらいました。


個人的にはそんなこともあり、到着したのは第一幕の終わり頃だったので、最初の方は見逃してしまったのが残念。

あとで当日のセットリスト見たら、Box Emotionsからのオーケストラ合いそうな曲を3つもやっていて、仕事とは言え遅れたのが悔やまれる。

ぜひ、映像作品化して欲しい。


次はライブ会場で見たい!

Box Emotions

Box Emotions

pylintで2スペースインデント用の設定

Pythonの標準的なコーディング規約であるPEP8では、インデントは4スペースと定められています。

PEP 8 -- Style Guide for Python Code | Python.org

個人的には、しばらくメインで書いていたJavaScriptを2スペースでやっていたこともあって、なんとなくPython書くときは2スペースインデントで書いているのですが、そうすると静的チェックで使っているpylintでいくつかエラーが発生してしまいます。

umi-uyura.hatenablog.com

そこで以下の点を変更することで、2スペース用の設定にすることができました。

[FORMAT]

...

# String used as indentation unit. This is usually "    " (4 spaces) or "\t" (1
# tab).
indent-string='  '

# Number of spaces of indent required inside a hanging  or continued line.
indent-after-paren=2

...

インデントを2スペースとする

2スペースのインデントで発生したエラーは、 Bad indentation. Found 2 spaces, expected 4 [bad-indentation] というものでした。

この場合は indent-string の設定を、デフォルトでは ' ' とスペース4つとなっているため、 ' ' とスペース2つにすることで、上記エラーにならないようになりました。

括弧に続く行のインデントも2スペースとする

indent-after-paren もデフォルトは 4 なのですが、そのままでは以下のように次の行に継続するような場合のインデントを2スペースにすると、 Wrong hanging indentation (add 2 spaces). [bad-continuation] という警告が出てしまいます。

my_list = [
  1, 2, 3,
  4, 5, 6,
]

そこで、ここも 2 を設定しておくことで、エラーとならなくなりました。

参考

gnupackでWindowsの環境変数PATHを引き継ぐ

gnupackを使いだして一つ困ったのは、Windows側で設定している環境変数PATHが引き継がれなかったことでした。

そのままだと、Windows側でも使うプログラムのPATHをCygwinEmacs上で再設定しなければならず、二重・三重の管理となってしまうので避けたいところ。

そこで調べてみたところ、解決方法を見つけたのでメモ。

対象

項目 バージョン
gnupack devel 13.06-2015.11.08

解決方法

\root\startup_config.ini 内で、PATHを設定設定している箇所があるのですが、その中で、最初に PATH = として既存のPATHをクリアしているような記述を発見。

 [Process Variable]
    CYGWIN_DIR = %ROOT_DIR%\app\cygwin\cygwin

    HOME      = %ROOT_DIR%\home
    TMP       = %TEMP%\gnupack
    TEMP      = %TMP%
    SHELL     = /bin/bash
    CYGWIN    = winsymlinks:lnk
    MAKE_MODE = unix
    TZ        = JST-9
    LANG      = ja_JP.utf8

    # PATH =          # ←この部分が既存の環境変数を消していたっぽい
    PATH = %PATH%;%EMACS_DIR%\bin
    PATH = %PATH%;%LOCAL_DIR%\bin
    PATH = %PATH%;%CYGWIN_DIR%\bin
    PATH = %PATH%;%ROOT_DIR%\app\script
    PATH = %PATH%;%ROOT_DIR%\app\vim
    PATH = %PATH%;%windir%\system32;%windir%;%windir%\system32\Wbem
    PATH = %PATH%;%WINDIR%\System32\WindowsPowerShell\v1.0

そこで、上記のように該当部分をコメントアウトすることで、既存のPATHも残るようになりました。

これにより、gnupackと共通で使いそうなものはWindows環境変数側に寄せることができるので、一元管理できて便利。

Robo 3T(旧Robomongo)でmLab(Heroku Add-on)につなぐ

オープンソースのMongoDBクライアントであるRobomongoをたまに使っていたのですが、いつの間にか高機能なMongoDB IDEのStudio 3T(旧MongoChef)の会社に買収されて、Robo 3Tという名前になっていました。

Robomongo is now Robo 3T, with MongoDB 3.4 support

というわけで、MongoDBのHerokuアドオンであるmLabにRobo 3Tでつないだ際のメモです。

確認環境

項目 バージョン等
OS Mac OS X 10.11.6
Robo 3T 1.1.1

mLabへの接続情報の確認

mLabへの接続情報は、環境変数 MONGODB_URI にあります。

プロジェクトフォルダにて以下のコマンドを叩くか、Heroku Dashboardから該当アプリのConfig Variablesから確認します。

$ heroku config:get MONGODB_URI -a <app name>

すると、以下の様な形式の文字列が取得できます。

mongodb://<user>:<password>@<host>:<port>/<database>

mLabへつなぐ

Robo 3Tを起動すると出て来るダイアログで「Create」を選択する。

f:id:umi-uyura:20171019235344p:plain

Connectionタブの以下の項目に、接続情報から以下のものを転記する。

  • Address: <host> : <port>

f:id:umi-uyura:20171019235405p:plain

Authenticationタブの以下の項目に、接続情報から以下のものを転記する。

  • Perform authenticationにチェックを入れる
  • Database: <database>
  • User Name: <user>
  • Password: <password>

f:id:umi-uyura:20171019235420p:plain

「Test」ボタンを押して、接続確認。

f:id:umi-uyura:20171019235437p:plain

「Connect」を押して接続。

f:id:umi-uyura:20171019235453p:plain

おわり

Robo 3Tもマルチプラットフォームで展開されているので、WindowsLinuxでも使えます。

DBeaverでHeroku Postgresにつなぐ

久々にHerokuを触ることになり、DBもHeroku Postgresなので、Windowsで使えるPostgreSQLGUIクライアントがないかと探していたところ、良さそうなものを発見。

DBeaver

PostgreSQL専用というわけではなく、MySQLSQLiteなどいろいろなデータベースをサポートしている上に、実はマルチプラットフォームで展開しているものでした。

で、いざHeroku Postgresにつなごうとしたところで、単純にDatabase Credentialsをコピペしただけでは繋がらなかったので、接続方法をメモ。

確認環境

項目 バージョン等
OS Windows 10 Pro
DBeaver 4.2.0

Heroku Postgresへの接続情報の確認

Heroku Postgresへの接続情報は、環境変数 HEROKU_POSTGRESQL_COLOR_URL (※ COLOR 部分はいろいろと変わる)にあります。

プロジェクトフォルダにて以下のコマンドを叩くか、Heroku Dashboardから該当アプリのConfig Variablesから確認します。

$ heroku config:get HEROKU_POSTGRESQL_COLOR_URL -a <app name>

すると、以下の様な形式の文字列が取得できます。

postgres://<user>:<password>@<host>:<port>/<database>

Heroku Postgresへつなぐ

左側に表示されるDatabase Navigator内で右クリックして「Create new connection type」、もしくはメニュー「Database」→「New Connection」を選ぶ。

f:id:umi-uyura:20171018235534p:plain

Select new connection type内で「PostgreSQL」を選択する。

f:id:umi-uyura:20171018235547p:plain

Generalタブ内で、先に調べた接続情報から以下のものを転記する。

  • host
  • port ※たぶんPostgreSQLのデフォルトポート 5432 が設定済
  • database
  • user
  • password

f:id:umi-uyura:20171018235600p:plain

Driver propertiesタブ内で「sslmode」に require と入力する。

f:id:umi-uyura:20171018235613p:plain

「Test Connection」で問題がなければ、あとは「Next」「Next」「Finish」でOK。

f:id:umi-uyura:20171018235625p:plain

Driver propertiesの「sslmode」の設定をしていないと、接続時にエラーになります。

ということが、Herokuドキュメントに書かれていました。

Connecting to Heroku Postgres Databases from Outside of Heroku | Heroku Dev Center

おわり

MacではPSequelをメインで使っていましたが、わりとDBeaverの使い勝手が良かったので、個人Macにも導入することにしました。

gnupackのCygwinを指定したディレクトリで開く

先日、 chereエクスプローラからCygwinを開く設定を付けましたが、Emacsで作業中にカレントディレクトリをCygwinで開きたい場合があり、その方法を調べてみました。

やり方

  1. クリップボードに、Cygwinを開きたい Windowsのパス を格納する。
  2. startup_cygwin.exeを実行する
$ cygpath -w "$(pwd)" | tr -d '\n' > /dev/clipboard && /root/startup_cygwin.exe 

Windowsclip コマンドでも良かったのですが、文字化けすることがあったので変更。

間に tr を入れているのは、 cygpath の出力結果に含まれる最後の改行があると、移動がおこなわれなかったためです。

この設定に気づいたきっかけ

gnupackの設定ファイルを眺めていたときに、Chdir_With_Clipboard という項目を発見。

もしかして、クリップボード上のパスへのディレクトリ移動フラグ?と気付いたのがきっかけで、それならこんなことできるかも?と試してみました。

/root/startup_config.ini

 [startup_cygwin.exe]
    Cmdline_Image        = "%term.exe%" -e "%bash.exe%"
    Application_Id       = Mintty
    Init_Current_Dir     = %HOME%
    Chdir_With_Clipboard = yes
    Synchronous_Run      = no
    Load_Private_Font    = yes
    Tune_Cygwin_Mount    = yes
    Tune_Cygwin_Profile  = yes
    Convert_Cygwin_Path  = yes

Emacsから呼び出す

Lispはよくわからないので、シェルスクリプト経由で開くことにしました。

こんな感じのスクリプトをPATHが通った場所に設置。

Open current directory in Cygwin

それをEmacsから呼び出す関数を用意して、適当なキーバインドを割り当て呼び出しています。

https://github.com/umi-uyura/dot.emacs.d-gnupack/blob/master/lisp/win-open-folder.el

(defun open-cygwin()
  "cyghere CURRENT-DIRECTORY"
  (interactive)
  (process-query-on-exit-flag (start-process-shell-command "open folder in Cygwin" nil "cyghere")))

参考

エクスプローラのコンテキストメニューからCygwinを起動する

エクスプローラで作業しているときに、あるフォルダをカレントディレクトリにしたCygwinプロンプトを開きたいときがあります。

Cygwinに含まれる chere というコマンドを使うことで、エクスプローラコンテキストメニューCygwinを追加することができました。

f:id:umi-uyura:20170829232155p:plain

chereをインストール

setup.exeか、gnupackには標準で含まれている apt-cyg コマンドなどを使い、 chere コマンドをインストールします。

$ apt-cyg install chere

コンテキストメニューに追加

Cygwinプロンプトのショートカットを右クリックし、「管理者として実行」します。

f:id:umi-uyura:20170829232226p:plain

起動したCygwinプロンプト内で、以下のように chere を実行します。

$ chere -i -cm1 -s bash -t mintty -e "Cygwin Here(&W)"
  • -1 を付けないと、.bashrcが読み込まれませんでした
  • -e の後ろは、コンテキストメニューに表示される文言です
  • デフォルトではアンインストーラを導入してくれますが、うまく動かなかったので、-m で不要にしました

f:id:umi-uyura:20170829232250p:plain

コンテキストメニューの削除

アンインストーラは使えませんでしたが、

$ chere -u

コンテキストメニューが削除されます。

注意点

gnupackの場合、本来は startup_cygwin.exe で起動しているが、それを使っていないので、一部gnupackでカバーしている機能が使えないっぽいです。

参考