UUIDとか
UUIDはなんだろう?とググったら、色々とググる感じになった。
UUID(Universally Unique Identifier)とは、ソフトウェア上でオブジェクトを一意に識別するための識別子である。UUIDは128ビットの数値だが、通常は16進数で550e8400-e29b-41d4-a716-446655440000のように表現する。元来は分散システム上で統制なしに作成できる識別子として設計されており、したがって将来にわたって重複や偶然の一致が起こらない前提で用いることができる。マイクロソフトによるGUIDはUUIDの実装の1つと見なせる。
UUIDはなぜ、分散環境で好き勝手に生成しても衝突しないのか。RFC4122規格とUUIDの性質。 | 三度の飯とエレクトロン
Cent OSのインストール
VirtualBoxとかにCent OSをインストールしてみる。
インストール関連:
VirtualBox (Windows) 上に CentOS 7 をインストールする - Qiita
Index of /Linux/centos/6.8/isos/x86_64
「はじめてのVirtualBox」-仮想CentOSに「GuestAdditions」をインストール
VirtualBoxにCentOS6.7 64bit用の仮想マシンを作成 | kakiro-web カキローウェブ
◇パッケージグループの選択1(CentOS6)◇初心者のためのLinuxサーバー構築講座(CentOS 自宅サーバー対応)☆お便利サーバー.com☆
はじめての自宅サーバ構築 - Fedora/CentOS - CentOS6 のインストール手順
ネットワーク設定関連:
VirtualBoxでCentOS6.6をminimalインストールしたときのネットワーク設定メモ - Qiita
VirtualBoxのネットワーク設定とCentOS6.5のインストール | あぱーブログ
yumのupdateできない問題:
VirtualBoxにCentOS-6.5をインストールしてyum update - りょーくん
IPv6が関係ある?
【CentOS 6】yum が DNS 名前解決できないエラーで使えない問題を解決【OSインストール後】 – oki2a24
vi /etc/sysconfig/network-scripts/ifcfg-eth0 で ONBOOT=no から次のように yes に修正しました。
gethのブロックの削除
MacBookの容量が逼迫してきたので、以前学習用に入れたEthereumのブロックのデータを削除した。
geth --help でそれっぽいコマンドを探す。 geth removedb (Remove blockchain and state databases)
消す時は数秒なのね。
Bracketsの初期設定とか
Bracketsの初期設定とか入れるエクステンションとか。
Brackets おすすめエクステンション集・解説 - Qiita参照。
- フォントファミリーに「Ricty Diminished Discord」追加、フォントサイズは16px
- Extensions Rating
- Highlight Multibyte Symbols
メモアプリで気になるもの
メモアプリでなんかいいものないかとググった。
下記の機能があるといいかな。
- Markdownが使える。
- 同期できる。
下記の四つくらいが目に付いた。
- Quiver
- セル機能で複数の記法を使用して記述が可能。高機能、表現力は高いかな。
- 同期の方法:Dropbox, iCloud Drive, Google Drive, or any other file-based cloud services
- marxico
- Boostnote
- SimpleNote
Markdown関連
- Markdown記法 チートシート - Qiita
- http://daringfireball.net/projects/markdown/syntax.php
- https://help.github.com/categories/writing-on-github/
参考サイト:
Pyenvについて
pyenvそのもののについて理解したい。
GitHub - yyuu/pyenv: Simple Python version management
pyenv/README.md at master · yyuu/pyenv · GitHub
Authoring plugins · yyuu/pyenv Wiki · GitHub
以下ざっくりREADMEから抄訳。英語で詳細まで理解しようとするのは疲れる。
概要
- rbenvのフォーク
- ユーザーごと、ディレクトリごとにPythonのバージョンを設定できる。
- Python自体に依存しないシェルスクリプト製
- 環境変数ごとPythonのバージョンを上書き
- 同時に複数のPythonのバージョンからコマンドをサーチ。toxと使う時便利。
- virtualenvを作ることもできます。あるいはpyenv-virtualenvで処理を自動化もできます。
どのように動作するか
- PATHにshim実行ファイルを挿入することでPythonコマンドを横取りする。
PATHの理解
- PATHは:で並べられたパスを左から右にサーチする。
Shimsの理解
- PATHの前にshimsのパスを入れる。
Pythonのバージョンを選ぶ
- PYENV_VERSION環境変数使う。pyenv shellコマンドでセッション中の環境変数セットできる。
- アプリケーション固有のカレントディレクトリの「.python-version」ファイル。pyenv local コマンドで変更できる。
- 親ディレクトリをルートまで辿って、最初にあった「.python-version」ファイル。
- グローバルの~/.pyenv/versionファイル。pyenv globalコマンドで変更できる。グローバルのファイルないと"system"のPython使うとみなす。
NOTE: 複数のバージョンを同時に使える。toxのようなツールを使用すれば、Python2とPython3を並行して使える。
Pythonのインストール先
- 一旦pyenvがアプリケーションが指定したpythonのバージョンを特定したら、コマンドを対応するPythonのインストール先にパスをする。
- 各バージョンのPythonは~/.pyenv/versions以下に、それぞれのディレクトリにインストールされる。
- pyenvに関して言えば、バージョン名がそのままディレクトリの名前になる。
インストール
MacならHomebrewで
$ brew update $ brew install pyenv
アップグレードする場合は、upgrade を installの代わりに使う。
インストール後は、eval "$(pyenv init -)"
をプロファイルに追加する必要が有る(それらを表示するには、brew info pyenv
を使用する)。プロファイルには一度だけ追加する必要が有る。
下記の「ベーシックなGitHubチェックアウト」の手順4以降を実行する。(シェルを再起動して、パスを有効にする。)
自動インストーラー
GitHub - yyuu/pyenv-installer: This tool is used to install `pyenv` and friends.
ベーシックなGitHubチェックアウト
- チェックアウト、(インストール先は任意)
$ git clone https://github.com/yyuu/pyenv.git ~/.pyenv
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile $ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
Zsh note: ~/.zshenv ファイルを変更。 Ubuntu note: ~/.bashrc ファイルを変更。
- shimsとオートコンプリーションを有効にするのに、pyenv initを使用するシェルに追加。初期化中にPATHに手を加えるので、eval "$(pyenv init -)"がシェルのコンフィグファイルの最後に置かれているか確認する。
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
Zsh note: ~/.zshenv ファイルを変更。 Ubuntu note: ~/.bashrc ファイルを変更。 General warning: BASH_ENV変数が.bashrcをさすように設定されているシステムがあります。そのようなシステムでは、だいたいにおいて上記のeval "$(pyenv init -)は.bashrcではなく.bash_profileにおくべきでしょう。そうしない場合、pyenvが無限ループになるような奇妙な振る舞いに遭遇するでしょう。 詳細はpyenv init getting into an infinite loop when invoked from bashrc · Issue #264 · yyuu/pyenv · GitHubを参照。
- パスの変更を反映させるためにシェルを再起動。これでpyenvが使える。
$ exec $SHELL
$ pyenv install 2.7.8
アップグレード
上記の方法でpyenvをインストールした場合、アップグレードはgitでできる。
$ cd ~/.pyenv $ git pull
特定のリリースにアップグレードするばあい、対応するtagをチェックアウトする。
$ cd ~/.pyenv $ git fetch $ git tag v0.1.0 $ git checkout v0.1.0
アンインストール
pyenvはシンプルなので、一時的に無効にすることも、アンインストールも簡単。
- pyenvを無効にする場合、シェルの起動コンフィグから単にpyenv init行を削除する。これで、pyenv shimsのディレクトリをPATHから削除して、pyenv導入以前のようにpythonコマンドのような呼び出しはシステムのPythonのバージョンを実行する。 pyenv は command lineからアクセスできるが、Python apps はバージョン切り替えの影響を受けない。
- 完全にアンインストールする場合、手順1を実行した後、pyenvのルートディレクトリも削除する。これは
pyenv root
/versions/以下のすべてのPythonのバージョンを削除する。
`pyenv root`/versions/
パッケージマネージャーでインストールした場合、最後の手順として、pyenv packageを削除する。Homebrewの場合は、
brew uninstall pyenv
コマンドレファレンス
アドバンスド設定
このセクションはシェルのプロファイルのすべての行がすることを知る必要が有る場合以外はスキップしてください。
- shimsのパスを設定
pyenvが適切に動作するための唯一の設定。主導でやる場合、
~/.pyenv/shims
を$PATH
の先頭に追加。 - autocompletionをインストール
完全にオプションだけど極めて便利。
~/.pyenv/completions/pyenv.bash
をソーシングすることで、設定できる。Zshユーザーには~/.pyenv/completions/pyenv.zsh
もある。 - shimsをRehash
時々、shimファイルを再構築する必要が出てくるでしょう。これをinitでやることで、すべてが更新されている状態にします。いつでも
pyenv rehash
で主導で実行できます。 - sh dispatcherをインストール
この部分もオプションだが、pyenv と pluginsに使用中のシェルで環境変数を変更できるようにする、
pyenv shell
のようなコマンドを使用できるようにして。sh dispatcherはcd
を上書きしたり、シェルプロンプトをハックしたりするようなクレイジーなことは一切しないが、pyenv
にシェルの機能ではなく実際のスクリプトであることが必要ななんらかの理由のために、これを安全にスキップすることができる。
実際何やっているか自分で見る場合は、pyenv init -
を実行。
Pythonバージョンのアンインストール
時間が経つにつれ、~/.pyenv/versions
ディレクトリにPythonバージョンがたまるでしょう。
古いPythonバージョンを削除するには、pyenv uninstall
コマンドで削除プロセスを自動で行います。
もう一つの方法として、単純に削除したいバージョンのディレクトリをrm -rf
を使用します。pyenv prefix
コマンドで特定のバージョンのディレクトリを見つけることができます、例)pyenv prefix 2.6.8
。
コマンドレファレンス
参照 pyenv/COMMANDS.md at master · yyuu/pyenv · GitHub
環境変数
下記設定を利用して、pyenvがどのように動作するか変えられます。
名前 | デフォルト | 説明 |
---|---|---|
PYENV_VERSION | Pythonバージョンを指定する。pyenv/COMMANDS.md at master · yyuu/pyenv · GitHubも参照 | |
PYENV_ROOT | ~/.pyenv | それぞれのPython versions と shimsが入るディレクトリを定義する。pyenv root も参照 |
PYENV_DEBUG | デバッグ情報を出力。Also as: pyenv --debug <subcommand> |
|
PYENV_HOOK_PATH | wiki参照(Authoring plugins · yyuu/pyenv Wiki · GitHub) | pyenv を引っ掛けるためにサーチされるコロン区切りのパスのリスト |
PYENV_DIR | $PWD | .python-version ファイルのサーチを始めるディレクトリ |
Bottle関連の参照サイト
Bottle関連の参照サイト
公式
- Bottle: Python Web Framework — Bottle 0.13-dev documentation
- Tutorial — Bottle 0.13-dev documentation
実際の作業例
- Python初心者のインケンがマイクロフレームワークのbottleでMVCしちゃうサンプル
- Developing with Bottle - Real Python
- How To Deploy Python Web Applications with the Bottle Micro Framework on Ubuntu 14.04 | DigitalOcean
- Python Web Frameworks: 1 Install Bottle - YouTube
- Pythonの軽量WebフレームワークBottleを試してみた(その1) - ルーティング編 (Advent Calendar 23日目) | アライドアーキテクツ エンジニアブログ
- pythonの軽量framework, Bottle - Qiita
- bottle超初歩入門 - Qiita