- 本システムは,計算機内のワーキングディレクトリを推定,分類し,仮想フォルダとして提示する.
- 仮想フォルダは,ワーキングディレクトリへのシンボリックリンクにより作成される.このため,仮想フォルダ自体を削除しても,元のワーキングディレクトリへの影響は無い.
- 本システムでは,以下の3種類の仮想フォルダが生成される.
RECENT
: 直近3週間で使用したワーキングディレクトリUSED/YYYY/MM
: YYYY年のサブフォルダにMM月に使用したワーキングディレクトリCLUSTERING/TaskX
: TaskXに作業内容ごとに分類されたワーキングディレクトリが提示される
- 実装の詳細は,TECHNICAL-MEMOに記述する.
- Python 3.x
- fswatch
$ sudo apt install fswatch
aptでインストールできない場合,
$ wget https://github.com/emcrisostomo/fswatch/releases/download/1.14.0/fswatch-1.14.0.tar.gz
$ tar -zxvf fswatch-1.14.0.tar.gz
$ cd fswatch-1.14.0
$ ./configure
$ make
$ sudo make install
$ sudo ldconfig
# MacPorts
$ port install fswatch
# Homebrew
$ brew install fswatch
$ git clone [email protected]:Ryota0312/polaris.git
$ cd polaris
$ pipenv install
- ※ how to get pipenv (example)
sudo pip3 install pipenv
$ git clone [email protected]:Ryota0312/polaris.git
$ cd polaris
$ pip install -r requirements.txt
- python パッケージがシステム全体にインストールされるため注意.
settings.yml
に設定を記述する.以降で必須設定項目と任意設定項目について説明する.settings.yml.sample
をコピーして編集すると良い.
PYTHON_PATH
: pythonのパス.$ which python
の結果.仮想環境を用いている場合$ pipenv run which python
など.ACCESS_LOG_FILE_PATH
: アクセス履歴の場所(絶対パス)VIRTUAL_FOLDER_PATH
: 仮想フォルダ生成先(絶対パス)DB_PATH
: ワーキングディレクトリのデータベース(絶対パス)CFAL_SETTINGS
: CFALの設定HOME_DIRECTORY
: ホームディレクトリを設定(絶対パス)IGNORE_LIST
: 監視対象から除外するファイルを正規表現で指定する.複数指定可能.(絶対パス)
VIRTUAL_FOLDER_NAME
: 仮想フォルダの名前.VIRTUAL_FOLDER_PATH/VIRTUAL_FOLDER_NAME
に各仮想フォルダが生成される.CLUSTERING
: 作業内容別仮想フォルダの名前を設定USED
: 使用時期別仮想フォルダの名前を設定RECENT
: 最近使用したワーキングディレクトリの仮想フォルダの名前を設定
WD_DISCOVER_SETTINGS
: ワーキングディレクトリ推定に関する設定weight
: 階層の深さによる重み.例) [7,5,3,1] は,1-2層目が7,2-3層目が5...4層目以降は1move_threshold
: 分割の閾値density_threshold
: 機械的なファイル生成とみなすファイル更新密度の閾値
CLUSTERING_SETTINGS
: クラスタリングに関する設定pca_nconponents
: 主成分分析による次元圧縮の次元数div_threshold
: 階層的クラスタリングによるデンドログラムを分割する閾値save_dendrogram
: クラスタリング時にデンドログラムを保存するかどうか(True/False)
$ pipenv run polaris init
$ pipenv run polaris cfal --init
$ pipenv run polaris cfal --start
$ pipenv run polaris enable
-
有効化
$ pipenv run polaris enable
-
無効化
$ pipenv run polaris disable
CFAL
は,元々以下のリポジトリで開発していたが,本システムに統合した.- 起動
$ pipenv run polaris cfal --init
$ pipenv run polaris cfal --start
- 停止
$ pipenv run polaris cfal --stop
$ pipenv run polaris update
$ pipenv run polaris create
$ pipenv run polaris disable
$ pipenv run polaris cfal --stop
$ scripts/uninstall.sh
/proc/sys/fs/inotify/max_user_watches
の値が小さいことが原因で発生している.
-
$ sudo emacs /etc/sysctl.conf
-
fs.inotify.max_user_watches = XXXXXX
を追記.XXXXXX
はホームディレクトリ以下のファイル数程度が良いはず. -
sudo /sbin/sysctl -p
$ sudo apt-get install tk-dev
$ sudo apt-get install python3-tk