pandocでdocxファイルをmdへ変換(Dockerで環境用意)
環境
手順
PowerShellで以下のコマンドを実行
ファイル名「SOURCEFILE.docx」「OUTPUTFILE.md」を適宜修正のこと
docker run -it --rm -v "$(pwd):/data" marcelhuberfoo/pandoc-gitit pandoc --extract-media=. -f docx -t markdown_github SOURCEFILE.docx -o OUTPUTFILE.md
- --extract-media=.
- docx内の画像を変換して指定フォルダへ出力
参考
- 公式リファレンス
- docxを(画像含めて)変換
- Dockerイメージ
- 今回使用したもの
- 参考にしたもの(ビルドは2年前で少し古い?docxは変換できず)
firestoreのサンプル「quickstart-js」を試した(がローカルでの動作確認に失敗した)
TL;DR
実行したコマンドだけ抜粋
# サンプルプロジェクトのダウンロード git clone https://github.com/firebase/quickstart-js # firestore チュートリアルのディレクトリへ移動 cd ./quickstart-js/firestore # Dockerコンテナ起動 docker run --rm -it -p 5000:5000 -v "$(pwd):/srv" devillex/docker-firebase /bin/bash # (以下、コンテナ内での操作) cd /srv firebase login --no-localhost firebase use --add # すべてのファイルをデプロイ firebase deploy #(クラウド上にホスティングされたページにアクセス)
概要
firebase環境構築済みのDockerイメージをお借りして、quickstart-jsのfirestoreサンプルを試してみた。
(ただし、2017年12月時点でFirestoreはまだβ版。でも、内部構造はGoogleのDatastoreとほぼ同じみたいなので私的に期待大)
クラウドへデプロイしてホスティングされたアプリの動作確認はできたが、ローカルのDockerコンテナで実行したアプリの動作確認には失敗した。 そこまでの手順のメモ。(自分用の備忘なのでDocker自体の使い方とかも記述した)
環境とか
- Windows 10 Pro
- Docker for Windows Community Edition Version 17.09.1-ce-win42 (14687)
- Dockerイメージ
- devillex/docker-firebase:latest (2017/12/20頃)
- quickstart-js のコミットハッシュ値
- 149898be49e398b3cbd472e89baec5498d8353d0
詳細な内容とか
使い方は↓のreadme.mdに概ね準拠。ただし、クラウドへデプロイする部分は本記事で追記した内容。
Firebase クラウドコンソールでプロジェクト作成
Firebaseクラウドコンソール:https://console.firebase.google.com/?hl=ja
- Firebaseプロジェクトを作成
- Firebase クラウドコンソールで匿名認証を有効にする
- Authentication > SIGN-IN METHOD > Anonymous > Enable > SAVE
- Firebase クラウドコンソールでFirestoreを有効にする
- Database > TRY FIRESTORE BETA > ENABLE
Dockerコンテナ起動
2つポートを割り当ててDockerコンテナを起動する。
docker run --rm -it -p 9005:9005 -p 5000:5000 -v "$(pwd):/srv" devillex/docker-firebase /bin/bash
- --rm
- コンテナが終了したらコンテナを削除。
- -it
- 擬似端末(pseudo-tty(text-terminal))を通して(-t)、コンテナを対話的に実行(-i)
- -v "$(pwd):/srv"
- -p 5000:5000
- ホストのポート5000をDockerコンテナのポート5000に割り当て
- -pオプションはDockerfileのExposeコマンド相当。
firebaseのクラウドコンソールへログイン
(以降の操作はコンテナ内で行うこと)
cd /srv firebase login
- ブラウザでshellに表示されたアドレスへアクセスし、ログインするアカウントを選択
- 成功すると、以下の画像のような画面へリダイレクトする
- ローカルホストへリダイレクトせずにログインする場合
- 以下のように、「--no-localhost」をつけて実行する
- この場合は、ポート9005のバインドは不要
firebase login --no-localhost
firestore機能のみ部分デプロイ
firebase deploy --only firestore
- -- only : 部分デプロイ
- firebase.jsonファイルで定義された、"firestore"機能(のアクセス権限の設定)のみデプロイする
- 参考:https://firebase.google.com/docs/cli/?hl=ja#partial_deploys
ローカルで実行(失敗する)
firebase serve # http://localhost:5000 へアクセス
- こうなる
クラウドへデプロイ
(firebase serveをCtrl+Cで中断した後)
firebase deploy
- 成功すると以下のような画面になる
- 「Add Mock なんとか」ボタンを押したかも
その他
firebaseコマンドリファレンス https://firebase.google.com/docs/cli/?hl=ja#deployment
Docker for Windowsでカレントディレクトリをボリュームにマウントする
概要
- Docker for Windowsではpwd(または Get-Locationコマンドレット)で取得したWindows表記の絶対パスがLinux表記に読み替えられるので、pwdでディレクトリ指定可能
- ただし、ホスト側ドライブのマウント許可が必要
手順
ホスト側ドライブのマウント許可
タスクトレイのDocker for Windwosアイコン - settings - Shared Drives - マウントしたいドライブにチェックを入れてApply
参考 qiita.com
ドライブの共有が有効になっているか確認
docker run --rm -v c:/Users:/data alpine ls /data #出力例 Administrator All Users ...
カレントディレクトリをマウントしてイメージを実行
docker run --rm -v "$(pwd):/data" alpine ls /data # または docker run --rm -v "$(Get-Location):/data" alpine ls /data #カレントディレクトリのファイル等一覧が表示される…はず
Windows10とUbuntu16のデュアルブート環境構築 GPUあり、UEFIモード
はじめに
Windows10とUbuntuのデュアルブート環境を構築しようとしても、以下が問題になってうまくいかないことがある。
これらを回避しつつインストールする方法の説明
目標
- Windows10・Ubuntu16 のデュアルブート環境
- Windows10がインストールされたPCにUbuntu16をインストールする。本稿の手順ではUbuntu14はインストールできず。
- grubでUEFIブート
- Windows・Ubuntuともにオンボード・GPUともにディスプレイ出力可能
筆者の環境
実際の手順
os-prober
(筆者の環境ではこの時点でWindows Boot Managerを発見できたので次へ。発見できなかったときは↓を参考にして対応)
- grubのエントリを追加する
terminalで以下のコマンドを実行
grub-mkconfig -o /boot/grub/grub.cfg
- Ubuntuを再起動。grubにWindowsが表示されることを確認する。
1. UbuntuでGPUを利用できるようにする
1. __NVIDIAのドライバをインストール__
terminalで以下のコマンドを実行
sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt-get update sudo apt-get install nvidia-367
1. シャットダウン
1. GPUを取り付け
1. BIOSでiGPU Multi-Monitor をEnableに設定
チップセットがH270の場合… Advanced → System Agent(SA) Configuration → Graphics Configuration → iGPU Multi-Monitor をEnabledに設定
1. __GPUを認識しているか確認__
terminalで以下のコマンドを実行
nvidia-smi
取り付けたGPUを認識しているはず。
1. マルチディスプレイの設定
参考:
Cloud9のNode.js環境でkeras-jsのデモをビルドする
※Node.jsの基礎知識があれば特別な操作は必要ないです。
Nodeは初心者でビルドの仕方がわからなかったので、備忘として残します。
概要
keras-jsはブラウザ上でkerasモデル(ニューラルネットモデル)を実行できるライブラリ、GPUも利用できる。 GitHub - transcranial/keras-js: Run Keras models in the browser, with GPU support
keras-jsの公式デモはNode環境でビルドする必要があるが、自前PCにNodeをインストールするのがめんどくさい。 でもCloud9のNode環境なら自前PCの環境を汚すことがないし、IDEも使いやすい。
手順
1. Cloud9でワークスペースを作成
- 「https://c9.io/」へアクセス
- 新しいワークスペースを作成
- 以下のように設定する
- 「Clone from Git or Mercurial URL (optional)」に「https://github.com/transcranial/keras-js」を指定
- 「Choose a template」に「Node.js」を指定
2.クラウドIDEでデモをビルド
IDEの下の方にある「bash」ビューで以下のコマンドを実行する
npm install
- demosフォルダ内のソースコードをビルド
- package.jsonの"scripts"にdemoのビルド用コマンドが記述されている。これを実行するのが↓のコマンド。
- ビルドにはwebpackを利用している。demos/webpack.config.jsの情報を参照してビルドし、demos/dist/bundle.jsに結果を出力する。
- ビルドに14秒ほどかかる
npm run demos:build
3.demoをビルドできたか確認
- IDEの左のほうにあるワークスペースビューからindex.htmlを右クリック→Runを選択
- Apache httpdが起動した旨が、IDEの下のほうのビューに表示される。指示に従って「https://(ワークスペース名)-(Cloud9アカウント名).c9users.io/index.html」へアクセス
- 公式のデモページ「https://transcranial.github.io/keras-js/」と同じ内容なら成功
- ビルドに失敗していると、index.htmlにアクセスできても各種kerasデモサンプルが動作しない。
蛇足
demoをビルドする際に、developモードかproductionモードを指定できる。
それぞれのモードでkerasモデルの参照先が異なる。
webpackを引数なしで実行するとdevelopモードでビルドしてしまい、kerasモデルがリンク先に存在せずdemoが動作しない。
productionモードでビルドすると、↓のリポジトリからモデルを読み込むので正常に動作する。
GitHub - transcranial/keras-js-demos-data: Keras.js demos data
SuperDevModeでデバッグしているがページ右下にリロードボタンが表示されないとき
- http://localhost:9876/ にアクセス
- ページの内容に従い、「Dev Mode On」のブックマークレットをブックマークバーに登録
- 該当ページで「Dev Mode On」を実行
- (「Can't find any GWT Modules on this page.」と表示される)
- ページ再読み込み
- これをしなかったためにうまくいっていないと勘違いした。
参考:http://stackoverflow.com/questions/24235669/gwt-superdev-cant-find-gwt-modules