matthew as a q.

目標10記事quant

実行されているスクリプトから見た相対パスを指定する[Python]

背景
Pythonスクリプトを実行したファイルで、別のpythonファイルを読み込んで使うことがよくある。
設定を読み込むだけのスクリプトを作成してimportして使用する場合、現在実行しているフォルダではなく、
その読み込みスクリプトから設定ファイルのパスを指定したくなる。

手順

import os
script_dir = os.path.dirname(__file__)

script_dirに実行されているスクリプトのパスが入っている。

stackoverflow.com

デバッグシンボルのキャッシュ出力ディレクトリの変更[Visual Studio][Debug Symbol]

# Background
通常、%UserProfile%\AppData以下に出力されるデバッグシンボルだが、何らかの事情(Cドライブが異様に容量小さい等)によって、
デフォルトの出力先ではなく、自身の指定した出力先に出力してほしいことがある。
そこでデバッグシンボルキャッシュの出力先を変更する方法を記載する。


# Procedure
"Tools" -> "Options" -> "Debugging" -> "Symbols"

f:id:takeknock:20181214014916p:plain
After Symbols selected

右側のCache Symbols in this directoryへ、出力したい先を記載する。

底地

 

底地とは、借地権付きの土地、つまり「その土地を借りてその上に建物等を建てる権利」が土地とは別に切り出され、借地権は別にされている分、その土地の利用ができず自由が効かない土地のこと。

 

スター・マイカの借家人がいる状態でマンションや家を安く買ってキャピタルゲイン狙うのと同じように、不自由だけど安い土地を買って、借家人が借地権を返却し価値が上がった後に売却してキャピタルゲインを得たり、償却後も保有し続けて借地権料でフローを得る等で、REITに組み込まれることが多いらしい。

 

投資法人くん on Twitter: "投資法人はなぜ底地を買うかというと、償却後の利回りが取れるからです あとは更地価格がぶっ飛んでて、テナントが抜け次第キャピタルゲインを取りに行く場合もありますね"

 

投資法人くん on Twitter: "とても今更な話ですが、上場リートをはじめとして不動産ファンドの多くは家賃収益を配当金として投資家に分配しているわけですが、その原資は 家賃収入 -空室損 -不動産事業経費 -修繕費(≒ここまでがNOI) -減価償却費……● -AMfee等 となっています 底地の場合は配当原資が残りやすいんですよ"

 

いつかは返却?借地権付き建物のメリットとデメリットについて | 住まいのお役立ち情報【LIFULL HOME'S】

強連結成分分解[アルゴリズム][メモ]

# 強連結成分とは

強連結成分とは、ある集合Sについて、任意のx, y in Sについて、x->yの有向道を持つもの。

 

# 強連結成分分解とは

有向グラフから、強連結成分を抽出するアルゴリズム

 

## アルゴリズム

### ある頂点vから深さ優先探索をし、行き止まりとなった順番をt(v)とする。

↑こう書くとスタートする頂点vによって、t(v)が変わるように見えるがほんと?

 

###  数字の大きな頂点から順に深さ優先探索する。行き止まりを見つけたら、そこまでに辿った頂点を1つの強連結成分とする。

 

### 辿ってない頂点がなくなるまで上記を繰り返す。

 

docker composeとkubernetes

## Docker Compose
Docker imageを連携させて起動できる。起動順序等設定はYAMLファイルに記載。
単一ホスト上での稼働。

## Kubernetes
Docker imageを連携できる。複数端末上でのオーケストレーション、稼働が可能。

gihyo.jp

Github上レポジトリの.gitignoreをローカルレポジトリに適用し、かつGithub上新レポジトリをリモートレポジトリとして登録する

# モチベ

  • githubでレポジトリ作成時に選択して生成できる.gitignoreを使いたい
  • その.gitignoreをすでに作成済みの手元PC上のローカルレポジトリに適用したい
  • まだgithub上にリモートレポジトリを作ってないので、合わせて作りたい
  • できるだけスマートに上記を行いたい

# やり方

  • github上でレポジトリ作成。その際、.gitignoreを生成。今回は以下のレポジトリをサンプルとして話を進める

git@github.com:takeknock/cva_py.git

  • ローカルレポジトリで以下のコマンドを実行してリモートレポジトリを登録

git remote add origin git@github.com:takeknock/cva_py.git

  • 登録したリモートレポジトリのmasterブランチをローカルレポジトリのmasterブランチにマージ(以下はmasterブランチにいるものとして実行)

git fetch
git merge origin/master