MongoDBインストール(windows, ubuntu, macOS)
リレーショナルデータベースも触ったことのない人間がいきなりMongoDBを導入してみたのでメモ。
ついでにインストールはwindows, ubuntu, macからそれぞれ行ってみた。
公式ページには大体書いてる。
2018/9/6時点ではv4.0.2が最新らしい。
Install MongoDB Community Edition — MongoDB Manual
Community EditionとEnterprise Editionの二つがあるが、個人&ローカル利用ならCommunity Editionで事足りるのでそちらを入れる。
Enterpriseはセキュリティとかの機能がサポートされて有料になるらしい。詳しくは公式を。
インストール(windows)
以下のURLにアクセス。
MongoDB Download Center | MongoDB
[Community Server] ->[Windows] とタブを開き、VersionはOSのビットを選択(画面ではWindows 64-bit)
後はインストーラの指示に従ってインストール。ある意味らくちんかもしれない。
途中でMongoDB Compass Communityというソフトも入れるかどうか聞かれるが、これはクライアントGUIツールと呼ばれるものである。要はGUIでデータベースをいじれる。
こういうツールの使い方も覚えておくと後々便利かもしれない。
参考↓
dev.classmethod.jp
インストールできたらpathを通す。
[windowsキー] → 「環境変数」で検索し環境変数を編集する
Pathを選択し編集し、MongoDB\Server\4.0\binまでのpathを追加↓
できたらコマンドプロンプトを起動し、
mongod --version
でバージョン表示されるか確認する。
インストール(ubuntu)
Ubuntu公式リポジトリのmongoDBはバージョンが古く、最新バージョンを取得するには一手間必要である。
公式リポジトリ以外からパッケージを取得するためには、そのリポジトリを認証するための公開鍵をキーチェーンに取り込まなければならない。
まず公開鍵と取り込む
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
その後ソースリストの作成
ubuntu14.04の場合
echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
ubuntu16.04の場合
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
ubuntu18.04の場合
echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
あとはリポジトリ更新してインストール
sudo apt update sudo apt install mongodb-org
ターミナルで
mongod --version
とか打ち込んでバージョン情報が表示されるならインストールできてる。
ちなみに最初に取得した公開鍵のことをGPGキーとか言ったりする。GNU Privacy Guardという暗号化ソフトで生成されるらしいが詳しいことはわからないので気が向いたらまた調べる。
一応参考サイト
概要のみ↓
tech.nikkeibp.co.jp
GPGの使い方とか↓
qiita.com
インストール(mac)
homebrewでさくっと。
brew update brew install mongodb
らくちんすぎる。
手動で入れたい場合は公式からtarファイルを落とす。
以下URLから[Community Server] → [OSX]と選択してtarファイルをダウンロード。
ターミナルで以下のコマンドをたたき展開。
tar -zxvf mongodb-osx-ssl-x86_64-4.0.2.tgz
展開されたディレクトリを適当な場所に移し、ディレクトリ内の/binにパスを通す。
~/.bashrcに以下を追加。
export PATH=<path-to-mongodb-directory>/bin:$PATH
参考とか
使い方
Karl Seguinj氏のThe Little MongoDB Bookというのが勉強になるらしい。しかも無料。
githubでもtexソースが公開されてる。
GitHub - karlseguin/the-little-mongodb-book: The Little MongoDB Book
各言語への訳が有志で行われており、日本語ではMongoDBの薄い本という邦訳が有名っぽい。もうちょい他に訳あったやろ
この薄い本が検索上位に来ることが多いが、内容が古いらしいので以下の「MongoDBの手引き」のほうが良いかも
github.com
困ったときの公式ドキュメント
The MongoDB 4.0 Manual — MongoDB Manual
Markdownが書きたいのでAtomとVSCodeを整備して比較する
Markdownを書くための環境設定などをメモする。
普段はVSCodeを使っているが、github開発のAtomもmarkdownと親和性が高そうなので比べてみた。
環境はmacbook pro、macOS Sierra 10.12.6
Atom
Atomはデフォルトでmarkdownに対応しており、macならctrl + shift + m
でリアルタイムプレビューを表示できる。
それに加えて拡張機能も豊富であり、以下のサイトで色々紹介されている。
qiita.com
とりあえず以下の拡張は便利だった。
markdown-writer
各種ショートカットが追加され、キーバインドなどを設定可能。
便利。この後のtool-bar-markdown-writerがもっと便利。
tool-bar-markdown-writer
markdown編集時に、エディタ上部にtool-barが表示される。
markdownの記法を覚えてなくてもGUIで直感的に扱えるようになる。テーブル整形とかも便利。
tool-bar
とmarkdown-writer
のパッケージが必要。
markdown-pdf
Atomはデフォルトでhtml出力には対応しているが、pdfなどで出力するにはこのパッケージが必要。
コード部分なども綺麗に出る。
Atomはプレビューや出力のhtml, pdfのデザインなどがデフォルトで綺麗なとこが最大の利点かもしれない。
以下のはちょっと問題があった。
markdown-scroll-sync
プレビューをスクロールすると自動で該当するテキスト部分までスクロールしてくれる。
機能自体は便利で良いのでが、自分の環境ではなぜか動作しなかった。。
Mac以外なら動くのかもしれない。アプデ待ち。
markdown-toc
目次を自動生成してくれるパッケージ。
トピック名を変更しても上書き保存時に目次も変更してくれるのでよい。
が、これで生成したhtmlやpdfのリンクは機能しない。。意味ねえ。。
当然プレビューのリンクも効いていない。
ググってみて、先人がいたと思ったらなんかちょっと違った。
take-she12.hatenablog.com
日本語はidが生成されなくてリンクが正常にいかないらしいということはわかったが、英語でもリンクされない。
何故なのか・・・。
Atom側の問題なのかもしれない。解決できる気がしないのでとりあえず放置。
と思ったらすごいのがあった。
markdown-preview-enhanced
プレビュー、TOC作成、プレビューとスクロール同期に加えてlatex数式埋め込みからPDF、html、ebook出力などめっちゃ多機能である。
数式埋め込みなど全ての機能を使うには別途パッケージが必要だが、これを入れるだけでとりあえず
- スクロール同期プレビュー
- TOC自動作成
- html出力(リンク生きてる, ただし日本語はだめ)
の三つは実現できる。もうこれだけでいいね!
PDF出力はpuppeteer, phantomJS, princexmlの三つに対応している。princexmlは有償なのでよくわからない。
残り二つについて試してみた
puppeteer
Nodeのライブラリ。今までNode.jsとかいうのに触れた機会がなく、基礎知識など皆無だがとりあえず使う方法だけメモしておく。
Node.jsについての説明は以下だけ読んだ。
qiita.com
qiita.com
macで導入するにはまずhomebrewを導入する。多分↓のでできる。
qiita.com
その後nodeをインストールする。
brew install node echo 'export PATH="/usr/local/share/npm/bin:$PATH"' >> ~/.bash_profile
するとnpmが使えるようになっているので、
npm install -g puppeteer
とするとpuppeteerでのPDF出力が可能となる。
ここまでやってから、どうやらnodebrewとやらがあるということに気がついた
mmorley.hatenablog.com
homebrewではNode.jsのバージョン管理ができないらしい。
今はよくわかんないので必要になってからでいいかな・・・
VSCode
VSCodeもデフォルトでmarkdownプレビューに対応している。
しかし自動で分割してくれず、shift + command + V
で同じ領域の別タブにプレビュー→自分で画面分割という手順を踏む必要があり、あまりスマートな感じがしない。
以下のパッケージが非常に役に立つ。
Markdown Preview Enhanced
MPE再び。デフォルトでは微妙なmarkdownプレビューを改善してくれる。
Atomと同じctrl + shift + m
(またはcommand + K からの V
)でMPE Previewを表示でき、自動で画面分割してくれるので余計な操作はいらない。
もはやこれでほぼ事足りる。
一応こんなのもある。
Markdown PDF
VScodeデフォルトのプレビューをPDF変換する。
上書き保存時に自動変換する機能や、スタイルシートを指定して自分好みのpdfを出力できる機能がついており、拡張性が高い。
ただデフォルトだとVScodeのプレビューのまま出てくる上にフォントサイズが少々大きい。
色々いじりたい人向け。ドキュメントが日本語で読みやすい
Markdown All in One
ショートカット、テーブルフォーマット、アウトライン表示などなど、編集する際に役立つ機能が詰まった拡張。
VScodeでがっつりmarkdownを編集する人にはいいかもしれない。
ただしbold体、italic体をトグルするショートカットがVScode自体のショートカットと重複するので注意が必要。
.bstファイルをいじって著者名表記を変える
bibtexで引用する際に注意すべき点として、
- 引用順をどうするか
- 著者名表記をどうするか
がまずあげられる。分野によると思うが、自分がよく使うのは
- 文献を引用された順にソート
- 著者名のファーストネームはイニシャル
なので、それに合わせて.bstファイルをいじる方法をメモする。
デフォルトのテンプレ
欧文用ではplain.bst, unsrt.bstを使い、和文にはjplain.bst, junsrt.bstを使う。
plainでは参考文献がアルファベット順に出力し、
unsrtでは引用された順に出力する。
特に設定を書き換えない場合は参考文献を載せたい場所で
\bibliographystyle{plain} \bibliography{reference.bib}
みたいに書けば良いが、自分でいじった.bstファイルを使う場合はtexソースと同じディレクトリに.bstファイルを置く。
ここではjunsrt.bst
をいじって自分用のmyjunsrt.bst
をつくる。
/usr/local/texlive/2016/texmf-dist/pbibtex/bst/junsrt.bst
を適当にコピー。
jplain.bst
も同じ場所にある。バージョンとかは適宜読み換える。
見つからない場合は
find /usr/local/ -name junsrt.bst
とかしたら出てくる。windowsもtexlive/以下にあるんじゃないかな。知らんけど。
書き換え
.bstファイル内では、
FUNCTION {---定義名---} { ----定義の内容---- }
という形で各種表記の仕方が定義される。
こんな感じ↓
FUNCTION {format.names} { 's := #1 'nameptr := s num.names$ 'numnames := numnames 'namesleft := { namesleft #0 > } { s nameptr "{ff}{ll}" format.name$ is.kanji.str$ {s nameptr "{ff}{ll}" format.name$ 't :=} {s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=} if$ nameptr #1 > { namesleft #1 > {", " * t * } { t "others" = { s is.kanji.str$ {"$B$[$+(B" * } {", et~al." * } if$ } { s is.kanji.str$ {", " * t * } { numnames #2 = {" and " * t * } {", and " * t * } if$ } if$ } if$ } if$ } 't if$ nameptr #1 + 'nameptr := namesleft #1 - 'namesleft := } while$ }
著者名の出力を変えるにはFUNCTION {format.names}
の中身を書き換える。
上記のnameptr
とか書いているあたりを見る
{s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=}
この部分。
{ff~}{vv~}{ll}{, jj}
で著者名の表記を指定する。
- {f}でファーストネームを頭文字のみ表示、{ff}で全て表示
- {l}でラストネームを頭文字のみ表示、{ll}で全て表示
- {v}でミドルネームを頭文字のみ表示、{vv}で全て表示
- {j}でJr.を頭文字のみ表示、{jj}でJr.全て表示
- `~`をつけるとそこで改行されなくなる。姓と名で改行されないようにするために使われる。
- `.`をつけるとその位置にピリオドを表示
- `, `をつけるとその位置にカンマを表示
で変えられる。
例えばJohn Fitzgerald Kennedyが著者名の時、
- {f.~}{v.~}{ll}{, jj} で J. F. Kennedy
- {ff~}{v.~}{l.}{, jj} でJohn F. K.
みたいになる。
【追記 18/2/5】
一行前の
{s nameptr "{ff}{ll}" format.name$ 't :=}
の部分は日本語表記に使用される。ここを書き換えると漢字の苗字の一文字目だけ表示されたりするのでいじらない。
他にもタイトルや出版年の出力を変えることができるらしい。
少なくとも情報系の学会や研究会ではtexフォーマットが与えられることが多いので使う機会はなさそうだが・・・
自前で作る必要がある場合に役立つかもしれない。
○参考元
bst ファイルのカスタマイズ - Okomeda Net
LaTeXで参考文献の形式を変更する方法(bstファイルの編集) - けつあご日記
Visual Studio Codeの拡張とか初期設定とか
約一年半の沈黙を破り更新。
いや沈黙というか普通にサボってただけなんだが・・・
社会人になってもコンスタントに更新できるだけの気力があるかどうかはわからない。
でもできるだけ勉強したこととかを更新していきたい
エディタの話。最近Visual Studio Codeに乗り換え、いい感じなので初期設定などをメモしておく。
自分は最初Sublime textを使ってたが、拡張の設定などが煩雑であまり好きになれなかった。
あと「これ無料版やで!気に入ったら買ってや!」っていうポップアップも地味に鬱陶しかった。。
なのでAtomに切り替えたのだが、拡張を入れていくとかなり重くなってしまい、ついにイライラがピークに達したのでリストラした。
- 拡張を入れても十分軽い
- gitやターミナルにデフォルトで対応
- デバッグ機能も最初から搭載
と、かなり使い勝手が良い。
というか最初からある程度の機能が備わっているので、拡張を入れずともそこそこ使えるのである。
それがVSCodeの魅力とも言える。
逆に不便に感じたことは
- 複数プロジェクトを同時に開けない
- たまにauto formatが効かない(OS依存?)
などがある。
異なる場所にあるディレクトリをサイドバーで同時に開く機能がVSCodeにはないらしい。
シンボリックリンクを使う方法もあるようだが、まあデフォで対応してくれたらその方が嬉しい。
あとubuntuで使用してる時にpythonのauto formatが効かない時がある。
これに関してはよくわからん。誰か直してくれ(他力本願)
とまあ色々あるがいい感じなので初期設定をメモしておく。
当方現在はpythonがメインなのでpython系の拡張が多いです。
拡張
Atom Keymap
その名の通り、Atomのキーバインドをそのまま持ち込める。
もちろんVSCode内でキーバインドをカスタムすることもできるが、他のエディタに慣れた人ならそのまま使えるのが良い。
Sublime Text Keymapもありますよ。
Shortcuts
画面下のステータスバーにターミナルなどのショートカットを追加する。
あんま使わないけどあったら便利か?
file-icons
サイドバーのアイコンが変わる。
いっぱい種類があるので調べて見ると楽しいかも。
LaTeX Workshop
latexがビルドできるようになり、pdfファイルをvscode内のtabで表示できる。
pdfはブラウザでも表示できる。
シンタックスハイライトやオートフォーマットも追加される。便利。
詳しくは以下
qiita.com
VSCode でLatexの日本語環境を作る · GitHub
Project Manager
プロジェクトを切り替えるコマンドを追加できる。
上述の通り、VSCodeではサイドバーで異なる場所にあるディレクトリを同時に開くことができない。
代案としてこの拡張を使えば、同時には開けないが切り替えはスムーズにできる。
Python系
とりあえず入れた。シンタックスハイライトやらスニペットやらが追加される。
この中でも`Python`はpythonでコーディングするなら必ず入れる。lintとCode formatが使えるので便利
Setting Sync
非常に便利。gistを使って複数の端末で設定を共有できる。
利用するにはGithubアカウントが必要になる。利用方法は以下を見ればわかりやすい
marketplace.visualstudio.com
設定
Macなら設定ファイルは`/Users/ユーザー名/Library/Application Support/Code/User/settings.json`に書かれているが、
VSCodeで⌘ + ,
でGUI的に設定できる。windowsやlinuxならctl+,
だと思う
ここに設定を書き込むわけだが、検索して変えたい設定をクリックするだけで設定ファイルに自動で記述される。
例えばエディタ内のルーラの位置を変えたければ、検索窓にrulersとか入れて出てきた設定を選択すればよい。
拡張の設定もここで変えられる。
以下に自分の設定をのせとく
【18/2/1 更新】
{ "editor.multiCursorModifier": "ctrlCmd", "editor.formatOnPaste": true, "editor.renderWhitespace": "all", "python.linting.pylintEnabled": false, "python.linting.pep8Enabled": true, "editor.wordWrap": "on", "editor.rulers": [ 80 ], "[python]": { "editor.rulers": [ 79 ] }, "editor.formatOnSave": true, "[latex]": { "editor.formatOnSave": false }, "latex-workshop.latex.toolchain": [ { "command": "ptex2pdf", "args": [ "-l", "-ot", "-kanji=utf8 -synctex=1", "%DOC%" ] }, { "command": "pbibtex", "args": [ "%DOCFILE%", "-kanji=utf8" ] }, { "command": "ptex2pdf", "args": [ "-l", "-ot", "-kanji=utf8 -synctex=1", "%DOC%" ] }, { "command": "ptex2pdf", "args": [ "-l", "-ot", "-kanji=utf8 -synctex=1", "%DOC%" ] } ], "latex-workshop.latex.autoBuild.onSave.enabled": false, "editor.renderControlCharacters": true, "workbench.startupEditor": "newUntitledFile", "workbench.activityBar.visible": true, "python.linting.mypyArgs": [ "--errors-only" ], "python.formatting.autopep8Args": [ "--errors-only" ], "workbench.colorTheme": "Adapta Nokto", "window.title": "${activeEditorLong}", "sync.gist": "2adb76066f632f1f22a2798c7d57e1c2", "sync.lastUpload": "2018-02-01T03:57:43.855Z", "sync.autoDownload": false, "sync.autoUpload": false, "sync.lastDownload": "", "sync.forceDownload": false, "sync.anonymousGist": false, "sync.host": "", "sync.pathPrefix": "", "sync.quietSync": false, "sync.askGistName": false, "editor.minimap.showSlider": "always", "workbench.iconTheme": "file-icons", }
メモしておくと、
- `Python`拡張はデフォルトでpylintを使うが、自分はpep8派なので以下の記述を加える
"python.linting.pylintEnabled": false, "python.linting.pep8Enabled": true,
- pep8でwarningとerrorの箇所を示してくれるが、warning山ほど出すぎてしんどいのでとりあえずerrorだけ表示するように設定
"python.linting.mypyArgs": [ "--errors-only" ], "python.formatting.autopep8Args": [ "--errors-only" ],
- latex関係を導入。
"latex-workshop.latex.toolchain": [ { "command": "ptex2pdf", "args": [ "-l", "-ot", "-kanji=utf8 -synctex=1", "%DOC%" ] }, { "command": "pbibtex", "args": [ "%DOCFILE%", "-kanji=utf8" ] }, { "command": "ptex2pdf", "args": [ "-l", "-ot", "-kanji=utf8 -synctex=1", "%DOC%" ] }, { "command": "ptex2pdf", "args": [ "-l", "-ot", "-kanji=utf8 -synctex=1", "%DOC%" ] } ], "latex-workshop.latex.autoBuild.onSave.enabled": false,
toolchainを指定することでbibtexファイルとかを一発でビルドしてくれる。詳しくは上述のサイト。
ついでにlatex-workshop.latex.autoBuild.onSave.enabled
をtrueにすると保存時に自動ビルドされる。デフォルトでtrueになっているが煩わしいのでfalseにした
- 保存時にオートフォーマットする。この機能がAtomの拡張より格段に軽くて使いやすい。
"editor.formatOnSave": true,
- ウィンドウのタイトルバーにカレントディレクトリのパスを表示。
"window.title": "${activeEditorLong}"
- 言語ごとに設定を変えることができる。pep8は79文字制限があるので、pythonの時はルーラを79文字の位置にする
"[python]": { "editor.rulers": [ 79 ] },
また自分のlatexファイルはぐっちゃぐちゃなのでもはや我流で行きたい。latexでは切る。
"[latex]": { "editor.formatOnSave": false },
latexでオートフォーマットするにはlatexindentというツールを導入する必要がある。
以下のサイトでなにかわかるかもしれない。
tex.stackexchange.com
Setting Sync使えばこれも自動でバックアップされるのでメモする意味もないかもしれないが一応。
今後VSCodeがもっと栄えてくれると嬉しい。
Windowsノート グラフィック設定を電源接続時と同じにする
所持していた古いノートPCにWindows10をクリーンインストールしたところ,
グラフィック設定が変わってしまったのでメモしておく.
具体的には
- 電源に接続すると,一瞬画面が暗転して元の画面に戻る
- 電源接続時はぬるぬる動くのに,バッテリー駆動時はなんかカクカクする(リフレッシュレートが変わっている)
- 背景が暗いページを表示すると画面輝度が暗くなる.明るいページだとまた明るくなる
のような症状が現れた.
一応直し方をメモしておく.
環境
TOSHIBA dynabook R731(古い)
windows10 pro をクリーンインストールしたところ,
Intel(R) HD Graphics 3000 が自動で取得された.
リフレッシュレートを設定
インテルのグラフィックプロパティを立ち上げ,
「電源」-> 「バッテリー駆動」から
「ディスプレイ リフレッシュレートの切替」のチェックを外す.
「ディスプレイ」-> 「一般設定」の
リフレッシュレートを 60Hz に設定する
これで電源を抜き差しするたびに画面が暗転することはなくなり,
かつバッテリー駆動時でもぬるぬる動くようになる.
画面の輝度調整を無効
同じくインテルのグラフィックプロパティから,
「電源」-> 「バッテリー駆動」から
「ディスプレイ省電力テクノロジー」のチェックを外す.
かつ「バッテリー駆動」「電源接続」の両方の電源プランを
「最長バッテリー駆動時間」に設定する.
これで画面輝度が一定になる.
ならない場合はコントロールパネル -> 電源オプション -> プラン設定の変更から
「詳細な電源の変更」を開き,「ディスプレイ」->「自動輝度調整を有効にする」をオフにする
これでたぶんいける
バッテリー駆動時と電源接続時で画面輝度を変えたくないなら
「ディスプレイの明るさ」からそれぞれ同じ輝度に設定しておく
とりあえず電源回りは解決したけど
根本的にスペック足りてないしなこれ
新しいPC欲しいなぁ...新型macbook air早く出ないかなぁ...