投稿

2016の投稿を表示しています

【講演メモ】第5回京商インバウンド対策企業ミーティング(村山慶介氏 株式会社やまとごころ 代表取締役)

イメージ
第5回京商インバウンド対策企業ミーティング 最新動向から見るインバウンドのマーケットの動きから、
「モノからコトへ」外国人旅行者のニーズに対応するための戦略について考えます。 講演 村山慶介氏(株式会社やまとごころ 代表取締役) 旅行博での話 ジャカルタ旅行博にて 海外旅行博に出かけた時の話。 観光のPRだけでなくガンガン物販していた日本企業が多々出展。着物を着て写真を撮るようなイベントを東京都が実施。(人気)インドネシアからの訪日旅行は価格が高いのが現状(でも売れている) 北海道は台湾中国の観光客がほとんど。2割3割減ってきている。 台湾旅行博にて 神社が出展していた(東京大神宮)
旅行博に出てダイレクトに消費者とコミュニケーション 旅行博の意味合いの変遷 過去は旅行会社にチケットを預けておけば売ってくれた。
個々最近は売ってくれずに全部はけない。
団体から個人にシフトしてきているので、ダイレクトに消費者と接点を持たなければならなくなった。 ビジット・ジャパン, 日本ならではの体験 外国人の体験ツアーについて 欧米の方々(富裕層)に人気な体験は「相撲稽古みてちゃんこを食べる」 アニメとのコラボ(聖地巡礼) 日本のアニメとコラボした聖地巡礼
ベトナムでどら焼きが売れている
インドネシア人のスキな日本の食べ物 => 鮨天ぷらうどんどらやき
ドラえもんのおかげで人気のよう 普通に過ごしていても、海外の目線がないからわからない。
現地の方々の目線を理解すること が大事。 マーケットの動き 日本の旅行収支の推移
人口減少と国内市場の限界 インバウンド市場の魅力プラスオンの市場しがらみ、既得権益がない狙う市場や切り口次第で No.1 を目指せる テーマを絞れば絞るほどそこは空き地 事例として「ひたち海浜公園」が挙げられた。
1枚の写真1枚がWeb 上で拡散され、あっという間に有名になった。
1年間で観光客数 9.3倍に伸びた。



外国人観光客からみた日本の観光スポットといえば、「ゴールデンルートとひたち海浜公園」 爆買いは終わったのか? 中国人観光客の消費単価は年々下がってきている。
化粧品日用品に関しては下がっていないが。
昨今の円安のおかげで売上が落ち込んでいた高単価な商品はもどってきた感はある。 一人あたり消費額は減少しているものの、他の国よりも依然として中国人観…

【桂川】肉汁ブッシャー!手づくりハンバーグの店とくら 桂本店

イメージ
京都界隈で有名な手作りハンバーグの超人気店

「手づくりハンバーグの店 とくら 桂本店」



箸を少し入れるだけで溢れ出てくるとウワサの肉汁。
この目に焼き付けてきましたのでまとめておきます。

日曜のお昼ごろ伺いましたが、
人気店ということもあって混み合っておりました。。
でも、わりと店員さんの手際の良さのおかげか、
お客さんの回転率が良くそんなに待たずに入れました。



店内はオープンキッチンで、
対面のカウンター席が8人くらいと、テーブル席が全部で20席ほどあります。  

メニューはハンバーグ中心で、ソースがいろいろと選べる様子。

私はスタンダードな
「オリジナルハンバーグ 300g (900円) + 洋風セットのスープ・サラダ・ご飯 (450円)」
を注文しました。

ハンバーグを焼く際は、ヘラで押さえつけたりはせず、
じっくりと蓋をして焼き上げている感じ。  

焼き上がりはふっくらと丸く膨らんでいて、
肉汁が中に閉じ込められてとてもジューシーな仕上がり。

記念にウワサの肉汁がぷっくりとしたハンバーグから溢れ出す様を動画に収めました。  
お箸を入れた瞬間に溢れ出してとまらない肉汁。  



程よい酸味の効いた特製ソースとの相性は抜群で、
とってもジューシーなハンバーグで、至福のひと時でした。
リピート必至です。

デキるビジネスマンの「超・箇条書き」スキルを身につける

箇条書きってなぜ重要?

凡庸にして最強のスキル、それが箇条書き。

情報過多の時代。
ニュース配信サイトやまとめサイトの人気の高まりからもわかるように、短く魅力的にまとめることが求められています。

箇条書きには「読み手や聞き手の情報処理の負荷を減らす」機能があり、
今の時代に強く求められるスキルになりました。

日本では箇条書きを習うシーンはほぼ皆無ですが、
海外では箇条書きはロジカルシンキングと同じくらい重要なスキル。
「bullet points」とか呼ばれてます。

うんうん、強く求められるスキルなのはわかった。

じゃぁどうやってそのスキルを上げるのか...?

「超・箇条書き」という本にその答えが書かれています。




この本では大きく 3つの技術を挙げています。

その技術要素は

「構造化」
「物語化」
「メッセージ化」

です。


構造化

受け手が全体像を一瞬で理解できるように、情報のレベル感を整えることが構造化です。

そのための手法として
「自動詞と他動詞を使い分ける」
「直列と並列で考える」
「ガバニング」
があります。

自動詞と他動詞を使い分ける

ある瞬間の静止画、すなわち「状態・現象」を伝える場合は自動詞を使います。

* コップが落ちる
* ボールペンがある

ある瞬間の動画、すなわち「行為」を伝える場合は他動詞を使います。

* 私はコップを落とす
* あなたがボールペンを置いた

これを全体で統一してグルーピングの指針とすることで、箇条書きを構造化します。

そこで初心者がやりがちなのが「体言止め」

超箇条書きでは体言止めはご法度です。

理由は、体言止めというのは多義的であり、曖昧だからです。

たとえば「コストの低下」といったときに、
]コストが下がった事実なのか、将来的にコストを下げるのか、はたまたはたまたコストを下げているところなのか。。。
そもそも状態を表すのか行為を表すのかも不明なのでご法度です。

直列と並列で考える

箇条書きのつながりに時間が流れていれば直列型で、過去・現在・未来といったグルーピングをして順番に伝えます。

時間が流れていない場合は、カテゴリ別に列挙して伝えます。

ガバニング

「ガバニング = Governing = 統制する」の意。

頭出しで「ポイントは3つ」といったまとめを宣言することで、受け手が全体像をいち早く把握できるようにします。

物語化

抽象度が高…

Django on Heroku 最速セットアップ手順書

ソースコード
* まずはじめに読むべき資料 - Getting Started on Heroku with Python   Heroku が提供しているサンプルコード に機能追加する方法で進めると楽
* リモートに Push する前にセキュリティ周りの設定を確認する - settings.py の DEBUG が False か,  etc
知っておくと便利な Tips
# heroku 上でアプリを破棄 & 生成 $ heroku destroy app_name $ heroku create app_name
# ローカルの sandbox ブランチを heroku のマスターブランチに push $ git push heroku sandbox:master
# アプリにアクセス $ heroku open
# リモートリポジトリを操作( heroku run <command> ) $ heroku run ./manage.py migrate
# スーパーユーザーの作成 $ heroku run ./manage.py createsuperuser

Atom チートシート

dotinstall の Atom 入門やってみた。1時間くらい見て、自分にとって有益そうなものをまとめてみました。
コマンドパレット(Command+Shift+p)
ファイル検索(Command+t)文字列の検索・置換(Command+f)次の検索結果へ(Command+g/Command+Shift+g)全体からの検索・置換(Command+Shift+f)
指定行への移動(Control+g)
マルチカーソル(Command+Click or Command+Option)
パネルの分割(Command+k 矢印)パネル間の移動(Command+k Command+矢印)パネルを閉じる(Command+w)
Markdown文書のプレビュー(Control+Shift+m)Shell Commandsのインストール(Atom>Install Shell Commands) atomコマンドapmコマンド

Django @ Ubuntu

# port=80 を開いておく sudo apt-get update sudo apt-get install -y emacs git 

# 仮想環境のセットアップ sudo apt-get install -y apache2 python3-pip python3.4-venv python3 -m venv myenv source myenv/bin/activate pip3 install mod_wsgi-httpd pip3 install django mod_wsgi django-admin startproject proj
# サーバー側 (Apache) のセットアップ # sudo emacs /etc/apache2/apache2.conf の末尾に
Include hoge.httpd.conf 
# を追加





sudo apachectl restart
したあと、
curl http://52.197.57.214/
で動作確認。



# Mecab のインストール

http://www.trifields.jp/how-to-use-mecab-in-ubuntu-14-04-and-python-3-1196
sudo apt-get install -y mecab mecab-ipadic-utf8 libmecab-dev sudo pip3 install mecab-python3




Amazon Linux(@ec2) 上に Python3.5 w/ django をセットアップ

http://hqac.hatenadiary.com/entry/2015/11/29/125634


# tmp以下はメモリに展開されるので高速
cd /tmp

# Python3 のセットアップ
wget https://www.python.org/ftp/python/3.5.0/Python-3.5.0.tgz
sudo yum install -y gcc zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel

tar zxvf Python-3.5.0.tgz
cd Python-3.5.0
./configure --prefix=/usr/local/python
sudo make
sudo make install

# シンボリックリンクを貼る
sudo ln -s /usr/local/python/bin/python3 /usr/local/bin/python
sudo ln -s /usr/local/python/bin/pip3.5 /usr/local/bin/pip

# 仮想環境上で作業
cd ~/

python -m venv myenv source myenv/bin/activate pip install --upgrade pip

# 必要な物をインストール pip install django
# アクセスできるか試す django-admin startproject proj python proj/manage.py runserver 0.0.0.0:8000
=> http://ipaddress:8000 でアクセス。 アクセス出来ない場合はセキュリティグループの設定で 8000 ポートが開放されているか確認

Django を mod_wsgi で Apache 上にデプロイする

* 公式ドキュメント読め
https://docs.djangoproject.com/ja/1.9/howto/deployment/wsgi/modwsgi/

* Apache 再起動しろ

$ sudo apachectl restart
* httpd.conf を編集しろ
- static ファイルのパスをエイリアスする
- wsgi モジュールのロード
- WSGIScriptAlias, WSGIPythonPath の設定
- アクセス権限設定
- db のファイルパーミッション変更
   $ chmod 777 -R db.sqlite3

# Added @ 2016/05/28
Alias /static/ /path/to/project/mysite/polls/static/
LoadModule wsgi_module /path/to/project/venv/lib/python3.5/site-packages/mod_wsgi/server/mod_wsgi-py35.cpython-35m-darwin.so
WSGIScriptAlias /wsgi /path/to/project/mysite/mysite/wsgi.py
WSGIPythonPath /path/to/project/venv/lib/python3.5/site-packages/:/path/to/project/mysite
<Directory /path/to/project/mysite/polls/static>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted

    <Files wsgi.py>
    Require all granted
    </Files>
</Directory>
<Directory /path/to/project/mysite/mysite>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory…

Django チートシート

https://media.readthedocs.org/pdf/test-driven-django-development/latest/test-driven-django-development.pdf


* Virtualenv で仮想環境のセットアップ
(python3 で作りたいので適宜 $ alias python=python3 しておく)

- 生成: $ virtualenv venv
- アクティベート: $ source ./venv/bin/activate - モジュールのインストール:  $ pip install django - requirements.txt の生成: $ pip freeze > requirement.txt - requirements.txt からインストール: $ pip install -r requirements.txt 
* git 設定関連 - ignore ファイル生成: $ echo "*.pyc" > .gitignore
* Django でサイトを作る - 雛形作成: $ django-admin startproject project   (移動 cd myblog) - DBファイルの作成: $ python manage.py makemigrations - DBファイルの反映: $ python manage.py migrate - スーパーユーザー作成: $ python manage.py createsuperuser - サーバー起動: $ python manage.py runserver
* アプリを追加 - 雛形作成: $ python manage.py startapp app

コードスニペットを環境セットアップ要らずに超速実行する Tips

エンジニア間でのサンプルコードの共有に便利なツールがあったのでメモ。
repl.it とかいうウェブサービスです。

出会いの背景:
業務でフランス人エンジニアと協業するようになり、
Pull request のレビュアーに追加したところ、
You'd better do just as <LINK> ... みたいなチャットが飛んできた。

クリックするとサンプルコードが書かれたウェブサイトに飛んだ。
C++ のコードが書かれてたんだけど、
ウェブ上で実行できるのねこれ。
コードスニペットの簡単な実行とか、
この文法C++11 からだっけ?みたいなちょっとしたサンドボックスとして結構便利でした。
https://repl.it/CQfp

Selenium で ChromeDriver を操作してみる by Python

Rakuten への自動ログインのサンプルスクリプト


* やること

- ログインページにアクセスして、ユーザーID・パスワードの id タグを割り出す。
  => userid, passwd であることがわかる。

- ユーザーID・パスワードを入れて submit する処理( @login() )を実装
 => 適当なユーザーID・パスワードを引数指定。成功するとログイン完了。

- Chrome Driver をダウンロード
 Firefox の場合は Selenium にChromeDriver のパスを指定する必要があるので、path_to_driver に設定します。
ChromeDriver は以下のリンクからダウンロード。
https://sites.google.com/a/chromium.org/chromedriver/downloads

Tensorflow on Docker

Tensorflow を Docker で実行する手順:

* Docker quick start terminal を起動

* ポート指定・デーモン起動
- docker run -itd -p 8888:8888 b.gcr.io/tensorflow/tensorflow

* jupyter 接続
- http://Docker コンテナ側の ip アドレス:8888

Webスクレイピング with Python ~ BeautifulSoup + Requests ~

requests モジュールで HTTP リクエスト。
BeautifulSoup でパース
ってな感じに鬼のように簡単に url とタイトルをぶっこ抜いてみます。
抜き出したいリンクは "entry-link" というクラス名がついている a タグです。


橋下徹さんの話を聞いてきた。

雑多なメモ:


パッション
一生懸命やって初めて少しだけ上層部に少し伝わる

差別化
他の人の発言は調べ上げて同じこと言わない。テレビでの話。
営業して、何時でも働いた。
他の人の数倍の速さで問題解決する。

その他
仕事とは自分が成長するためのもの。
仕事を通して何が学べるか。
官僚の残業は国会質疑応答の想定問答作らされたり、非効率なことをさせられてて可哀想。

メモ:

$ apt-get -qq update$ apt-get install -y git$ git clone https://github.com/aymericdamien/TensorFlow-Examples$ ipython notebook$ tensorboard --logdir="<path to log dir>"

Docker コンテナ上で Tensorflow を触ってみた

Google の TensorFlow とかいうディープラーニングモジュールを触ってみる。
ホストPC(Mac) に依存関係を意識して個々のモジュールをインストールするのが激しく面倒なので、開発環境はDocker使います。

* Docker を使うと、ホストPCと隔離された環境でアプリケーションが実行できます。必要な開発ツールがインストール済みのイメージがクラウドに上がってるのでそれ使います。(依存関係の解決とか、いろいろクソ面倒なステップをスキップできて幸せです)

# boot2docker を始めは使っていましたが、deprecated な warning がコンソールに履かれてたので、docker-machine に移行しました。

資料
* 簡単に大雑把に把握する目的で dotinstall の Docker 入門
http://dotinstall.com/lessons/basic_docker

* 一冊くらいは薄い本読んでおく


セットアップ
ホストPC側

* ポートフォワーディング設定(8888はipython向け、6006はtensorboard向け)しつつ tensorflow インストール済みのイメージを実行
  $ docker run -it -p 8888:8888 -p 6006:6006 b.gcr.io/tensorflow/tensorflow /bin/bash



* Virtualbox のポートフォワーディング設定をします( 8888, 6006 )
* コンテナの全削除
 $ docker ps -aq | xargs docker rm

Docker コンテナ側
  $ ipython notebook
  $ tensorboard --logdir=<PATH_TO_LOG_DIR>

プログラミング
http://localhost:8888/notebooks/Untitled.ipynb にアクセス。
matplotlib の動作確認。インライン描画の確認。

%pylab inline
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(-3, 3, 0.1)
y = np.sin(x)
plt.plot(x, y)

冬の最新行列グルメ 待ち時間ランキング @ SmaSTATION 2/6 放送分

イメージ
2月6日のSmaSTATION!! でやってた『冬の最新行列グルメ 待ち時間ランキング』をまとめておきます。

真冬の行列グルメ待ち時間ベスト10

第10位 香川一福 (東京都) 13分18秒



第9位 のど黒めし本舗 いたる (石川県)15分3秒


第8位  門司港名物 焼きカレー (福岡県) 26分15秒


第7位  あさ利 ネギラーメン (青森県) 37分49秒


第6位 あげづき (東京都) 38分20秒


第5位  愛と勇気と炎の拉麺屋たいらん (宮城県) 40分14秒





第4位 牡蠣ハウス マルハチ (福岡県) 54分55秒



第3位 幸せのパンケーキ 表参道店 (東京都) 1時間4分2秒


第2位 小さな小さなラーメン屋 春紀 (新潟県) 1時間13分56秒

第1位 いろり家 (神奈川県) 1時間23分42秒



ヤフーデータサイエンスワークショップに行ったメモ

イメージ
角田直行さん Data infrastructure at scale
Yahoo のインフラの話 規模の紹介 100以上のサービス 日本の7割の人が使ってる Dub ブラウザごとにカウントしたアクセス数5億
支えるデータインフラ データパイプラインにおいて 使用しているツール テラデータ Storm Hadoop  Oracle MySQL Cassandra  ロギング対象 15000 nodes Hadoop 7000nodes
スマスマ会見時トラフィック 200億リクエスト 去年の同じ日で60億弱だから3倍以上。

これからの挑戦 指数関数的な扱うデータの増加 Hortonworks と協業してHadoop の改善 オープンソースへの貢献 オープンハードウェアへの貢献 Open compute project 海外データセンター 電力的なコスト


爆速機械学習サービス応用編 Arxive.org(間違っとるかも) ベイジアンフィルタ的な話。

Kibana + elastic search  http://qiita.com/hiyuzawa/items/bad1a7e29fc8d1820bea
なぜビッグデータが選挙の予測を可能にするのか ヤフービッグデータレポート 検索クエリは人の興味関心の分析に向いている 感情分析はtwitter の方が向いている 必要な目的に応じて様々な目的に対応したデータを活用する

Python で Slack bot の実装をしてみた

Slack の bot ツールでは以下の curl コマンドでメッセージ送信ができる。

Example$> curl --data "Hello from Slackbot" $'https://<hoge>.slack.com/services/hooks/slackbot?token=<token>&channel=<channel>' ok token をパラメータ設定して、データをおみやげにして POST すればメッセージが送られるとのこと。
かなり簡素(Authとか不要)なので勉強のため、Python スクリプトでメッセージ送るスクリプトを書いてみた。
使い勝手とかマジで糞だけど python に慣れるためということで。。

https://github.com/ks6088ts/SlackTool


だいぶ脱線して、以下のこともついでに勉強してた

json ファイルの読み書き
tokenとか見ちゃダメなパラメータ群はまとめて json ファイルに。
Pythonの基礎 ファイル(JSON)の読み込み編
これ参考にしてしまったけど、本来は with 使ってスコープ外れたらリソース開放みたいにナウい感じに書きたい。

Optionparser 機能
help とかあったほうがいいよねと思いたち、追加で実装。
使い勝手がまだ糞だけど使えることは確認した。
必須オプションが抜けてたら死ぬ機能は無いんかな。。。?
https://github.com/ks6088ts/SlackTool/commit/ef2272ca434f2548e1c7195785615558991c0747

パッケージ生成
slack の仕様に依存する処理はまとめてパッケージにしてみた。
ユーザーコード側には抽象化したインタフェースを提供する意図で。
__init__.py をおいて、from package import file_name って感じにロードすればOK
https://github.com/ks6088ts/SlackTool/commit/1bf346bb3d23d0b4601a5df01d6f966d028c156d


とりあえずスクリプトは動いた。
あとやりたいことはこんな感じかな。

- unitte…

cURL で web 上のコンテンツを自動ダウンロードする

イメージ
$ curl http://example.com/index.html -O すればダウンロードできるとかいうけど、
実際はそんなうまくいかない場合もある。
某動画サイトで cURL つかって動画のダウンロードを上記要領でやったらうまくいかなかった。


Chrome の developer tool 使って、Network タブからどんな HTTP リクエストがやり取りされているか見てみた。
やたらリダイレクトされてた。


-L つければ余裕かとおもいきやそうでもなかった。
Header を偽装すれば行ける?いやいけない。


こまったのでいろいろ調べてたら、
Chrome にはユーザー操作で発生したリクエストを cURL コマンドで教えてくれる便利機能があった。

Chrome Feature: Copy as cURL
(LORNAJANE Blog より引用)

右クリックでコピーして terminal にペーストして Enter。
万事解決した。
とりあえず複雑な処理してたら -L つけて、
データ取得のために -O つければ幸せになれます。

HTML ソースから、ファイル名の規則とかディレクトリの構成を推測すれば、
欲しいものだけ連番ダウンロードできて幸せになれたりします。
ということで
curlコマンドで連番サイトの全データを取得する もリンクしておきます。


めでたしめでたし。

Django 高速学習

参考になったページ:

Python Django チュートリアル
 読みやすい。
 このチュートリアルを追ったリポジトリがこれ。自分の復習用。
https://github.com/ks6088ts/DjangoTutorial

ファイルの文字コードをUTF-8に変換
 "UnicodeDecodeError: 'utf-8' codec can't decode byte" 的なエラーが出た。
 template として使っていた html ファイルのエンコーディングが違ってたというオチ。
 utf-8 に変換ってどうやるんだと困ったときに参照。

Test-Driven Development with Python
 テスト駆動開発と Django が同時に学べるすぐれもの。
 地味にテスト実装とか参考になるのでおすすめ。
 私はいきなりこれを読んだけど、日本語文献ということで Python Django チュートリアルの記事をはじめに読むのをおすすめします。


EC2 上で Django on python3 の開発環境作る話。

GitHubにSSH接続できるようにする方法     1  sudo yum update -y
    2  cd ~/.ssh/
    3  ssh-keygen -t rsa -C test@gmail.com
    4  sudo yum install -y emacs git
    5  emacs ~/.ssh/config
    6  chmod 600 id_rsa config
    7  cat id_rsa.pub # 公開鍵を github 側に登録
    8  ssh -T git@github.com

===============================================

Python3.4 のインストール Amazon Linux AMI 2015.03 Release Notesに従う。 $ sudo yum install python34-virtualenv -y
Python2->Python3 への変更処理
$ python --version Python 2.7.10 $ sudo alternatives --set python /usr/bin/python3.4
$ python --version Python 3.4.3 $ pip --version pip 6.1.1 from /usr/lib/python3.4/dist-packages (python 3.4)
===============================================
dotfiles の設定

   36  git clone git@github.com:username/dotfiles.git    37  ln -s /path/to/dotfiles/.emacs.d ~/ ===============================================
番外編
Test-Driven Development with Python
amazon linux上に、firefoxをインストール Selenium 上でのテストコード実行のため
===============================================

TravisCI で Github のリポジトリを自動テストに通す

簡単な yaml ファイル書くだけで自動で CI が回る、そんな時代。
https://docs.travis-ci.com/user/languages/python

TravisCI とのインタフェース

.travis.yml をリポジトリルートに置く。
python のコードをテストしたかったけど、いろいろテスト環境作るために依存モジュールのインストールスクリプトを書く必要がある。

依存モジュールの吐き出し
Python テスト環境の切り出しのために依存しているモジュールのピックアップが必要だったので以下のコードで環境を吐き出す。
$ pip freeze -l > requirements.txt

吐き出したモジュール群は
$ pip install -r requirements.txt
でインストールできる。これを .travis.yml の install: に書けば OK

Github のリポジトリにバッジつける
TravisCI のページに行って、バッジクリックすると Markdown のコードが取得できる。
これをREADME.md に追記すればOK.

wget でルーターに Basic 認証してみる

Basic認証
wget で Basic 認証を試してみる。 # Buffalo のルーターで Basic 認証して再帰的にページをダウンロード $ wget --http-user="root" --http-passwd="" http://192.168.11.1/ -r

Django で静的ファイルを参照できるようにする

Django で生成される動的なコンテンツと、静的ファイルベースで作成されたページ群を分離してリポジトリ管理するための更新作業メモ。

方針
- 静的ファイルのページ群をDjangoプロジェクトから切り出す
- Django のリポジトリに外部リポジトリとして追加する

Django 側の設定
project/settings.py に以下のコードを追加
# Static files directory
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static/static_repo"),
]
外部リポジトリの追加
$ git submodule add <リポジトリのURL> <生成先>
生成先を project/static/static_repo とする。

リポジトリのクローン
外部リポジトリは --recursive つけると自動的に clone してくれる
$ git clone git@github.com:username/repo.git --recursive

emacs の dotfiles を github で運用してみる

* Github に .emacs.d 以下のコードを置く https://github.com/ks6088ts/dotfiles
GitHubにSSH接続できるようにする方法 上のリポジトリを適当なディレクトリに clone (ここでは ~/repo/dotfiles)
* シンボリックリンクを貼る $ ln -s ~/repo/dotfiles/.emacs.d ~/