PostgreSQLのコマンド集(自分用)
テーブルが存在したときにだけ削除(存在しないときは何もしない)
DROP TABLE IF EXISTS your_table_name;
カラムの削除
alter table テーブル名 drop column カラム名;
カラムの追加
alter table テーブル名 add column カラム名;
特定のカラムの後に追加したいとき
alter table テーブル名 add column カラム名 after 前のカラム名;
foobarという名前のview定義が知りたい
SELECT definition FROM pg_views WHERE viewname = 'foobar';
全ビューを調べたい
SELECT viewname, definition FROM pg_views ;
ログイン
psql -U USERNAME -d DATABASE
version関数でPostgresqlのバージョン確認
SELECT version();
テーブルの一覧表示
\d
ログアウト
\q
databaseを指定して論理バックアップ
pg_dump -U USERNAME DBNAME > dumpfile.sql
スキーマ確認
\dn
データベース一覧
\l
.sqlファイルを流し込む
\i dump.sql
UPDATE
UPDATE TABLE_NAME
SET id = 0, name = 'hogehoge'
WHERE id = 1;
※標準SQLの仕様上、文字列を扱う場合はシングルクオーテーションを使用する
INSERT
INSERT INTO TABLE_NAME VALUES
(1, 'wow'),
(2, 'FOO!'),
(3, 'Awesome!');
データベースクラスタのセットアップ
initdb -D /usr/local/pgsql/data
参考サイト
https://www.postgresql.jp/document/9.4/html/creating-cluster.html
MySQLのコマンド集(自分用)
バージョン
5.7.19
mysqlクライアントにログイン後、mysqlのバージョンを調べる方法
STATUS
文字コード確認
show variables like "chara%";
テーブルの構造を確認する
DESC table_name;
show columns from TABLENAME;
MySQLの出力結果をファイルにはきだしたいとき
SELECT * FROM table_name
INTO OUTFILE "/tmp/mysql.csv"
FIELDS TERMINATED BY ',';
データのインポート
mysql -u root -p dbname < export.sql
データベースの作成
CREATE DATABASE DBNAME;
データベースの削除
DROP DATABASE DBNAME;
他の実行環境で作成されたJupyter notebookが自分の環境でdead kernelになるときの対処方法
イントロダクション
人から頂いたipynbファイルが自分の実行環境でdead kernelになってしまいました。つらみ(´・ω・`)
解決方法
jupyter notebookが生成してくれる.ipynbファイルはjson形式のテキストファイルです。( The Jupyter Notebook Format — IPython 3.2.1 documentation )
お好みのテキストエディタでおもむろに.ipynbファイルをひらいていただくとファイルの最後の方にmetadataというところがありますので、そこを自分の環境に書き換えると動きます。自分の環境を知る方法ですが、jupyter notebookで新しい.ipynbファイルを生成すると、そのnotebookの中身のmetadataが自分の環境です。
# Replace前の例 "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python [conda root]", "language": "python", "name": "conda-root-py" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.11" } },
# Replace後の例 "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.0" } },
これで無事dead kernelにならずにipynbファイルを動かすことができました!!(`・ω・´)
ですがソースコードは変換されずそのままですので自分の環境での検証は必須です。お気をつけください。
Ubuntu16にPHPbrewを用いた開発環境の構築してみた
Vim使ってPHPでステップ実行したいいいいい(`;ω;´)
ふと、ある日そう思ったわけです。
そんなわけなのですが、今回のゴールはphpbrewで自在にphpのバージョンを変えることができるところまで頑張ってみようと思います。
環境
- Ubuntu 16.04
- phpbrew 1.22.6
手順
まずは必要なパッケージのインストールをします
sudo aptitude install apache2 apache2-dev php php-curl sudo service apache2 start
でlocalhost
にブラウザからアクセスして"Apache2 Ubuntu Default Page"というタイトルのページにつながればおっけーですb
次にphpbrewのインストールです(詳しくはhttps://github.com/phpbrew/phpbrew/blob/master/README.ja.mdを参照)
curl -L -O https://github.com/phpbrew/phpbrew/raw/master/phpbrew chmod +x phpbrew sudo mv phpbrew /usr/local/bin/phpbrew phpbrew init
.bashrcか.zshrcあたりに以下の設定を追記した後、ターミナルを再起動か、設定ファイルを再読込させます。
[[ -e ~/.phpbrew/bashrc ]] && source ~/.phpbrew/bashrc
Ubuntu仕様のApacheではモジュールのOn/Offをコマンドで行います。phpbrewでphpのインストールを行う際、/etc/apache2/mods-enabled
に指定の.confファイルがなければ設定の書き込みに失敗して正しくビルドされません(phpに関するenabledなモジュールが1つもインストールされてない場合は特に意識する必要はないと思われます(未確認))。自分のモジュールの状況を確認して各自以下のコマンドを実行してください。また、PHP5とPHP7のモジュールを同時にOnにしてしまうとコンフリクトして正しくapache2が起動されませんので注意してください
# PHP5系をインストールしたくて、現在enabledなモジュールがPHP7のとき a2dismod php7 a2enmod php5 # PHP7系をインストールしたくて、現在enabledなモジュールがPHP5のとき a2dismod php5 a2enmod php7
古いバージョンのphpが欲しい場合は--old
をつけます。また、インストール時にphp本体と一緒にapache2のモジュールもインストールされますのでエラーが出たら指示にしたがってアクセス権の変更などをおこなってください
phpbrew update phpbrew update --old phpbrew known --old phpbrew install 5.3.29 +default +apxs2 phpbrew switch 5.3.29
後々ステップ実行できるようにxdebugのインストールもしておきます。新しいバージョンのXDebugだと古いバージョンのPHP用にはコンパイルされていないことがあるそうなので、うまく行かない人はインストールするXDebugのバージョンを下げて試してみてください(参考URL: Failed to install xdebug · Issue #538 · phpbrew/phpbrew · GitHub)
phpbrew ext install xdebug # うまく行かない人はバージョンを調べて適当に古いバージョンをインストール phpbrew ext known xdebug phpbrew ext install xdebug 2.2.7
phpのバージョンを切り替えたあとは忘れずapache2を再起動しましょう
sudo service apache2 restart
ここまででPHPのバージョンを自在に切り替えることができるようになりました(できない人はコメントにて教えていただけると助かります!)
所感
PHP自体はすごく書きやすい言語だと思うけど、開発環境とかプロジェクトの管理とかでその人のセンスがもろに出そうな気がしました。何事もまずは整理整頓からですね!
それではみなさんよいPHPライフを!
参考にしたサイト様
http://qiita.com/keitaoouchi/items/f9f3287d7d5e82dd382aqiita.com
WindowsでVimの環境を整える
みなさんお久しぶりです今回はWindowsでKaoriyaさんVimの設定に挑戦してみたのでやり方をメモしておきます
解凍して出てきたフォルダを
C:\Program Files
あたりに設置します起動させる際に、Kaoriyaさんの便利設定を読み込んだあと
C:\Users\.vimrc
までユーザー設定を読み込みにいってくれます。今回はvimの設定ファイルはMacやLinuxでのVimの環境と揃えるために自分のリポジトリから引っ張ってきたものを使いました
C:\Program Files\vim80-kaoriya-win64\switches\catalog
にあるutf-8というファイルをC:\Program Files\vim80-kaoriya-win64\switches\enabled
にコピーすることで、KaoriyaVim内部のエンコーディングをutf-8にすることができるようです。いまのところデフォルトのcp932でも問題なさそうなので、ここらへんの設定はまた後日ご報告できればと思います
fudist - WindowsのKaoriya版vim/gvimの問題と対処
感想
KaoriyaさんVim最高!!KaoriyaさんVim使わずに+LuaのVimをコンパイルするのエグかった(挫折した)ので。。。
【小話】MacBookにUbuntu入れたけどMacOSに戻した話
みなさんこんにちは!
今回は、「職場のワークステーションにubuntu16を入れて愛用してるので、きっとプライベートで使ってるMacBookに入れても超快適だろう!と思ったらそうでもなかった話」です
Install
今回はUbuntuのブータブルUSBを作成して、MacBookにクリーンインストールしました
MacBook+Ubuntuで気になるところ
さっくりまとめ
- Laptopの製品を使うときはやっぱり推奨のOS使っとくのが無難
- MacOS使いやすすぎ!!
- またUbuntuのモジュールまわりとかを開発したくなったらホストOSにUbuntu入れるかもですが、しばらくはMacOS + VM(UbuntuとかFedoraとか)で過ごしてみたいと思います
- 次はUbuntu推奨のLaptopPCを買って、そこにUbuntu入れるのがいいなー。
そんなわけでみなさんよいPCライフを!
EC2+cuDNN+Chainerでディープラーニング用爆速計算環境を手に入れる
みなさーん!DeepLearning、楽しんでますかぁーーー!
みなさん「.........(^ω^#)ビキビキ」
え、GPU搭載の計算環境がなくて全然楽しめてない?
そんなときはAWSでEC2インスタンスを立ち上げて爆速計算環境を手に入れよう!!!!
ということで今回はAWSでEC2の立ち上げからChainerのインストールまでの作業手順をまとめてみたいと思います
EC2インスタンスの立ち上げ
EC2インスタンス立ち上げの前にregionを選択します。
regionによってだいぶ値段が違うので、現在どのくらいの値段なのか気になる方は、料金 - Amazon EC2 | AWSの「オンデマンドインスタンス価格」の欄を見ると参考になります。
値段をそんなに気にしない方はTokyoリージョン、少しでも安いのがいい人はOregonリージョンで行きましょう。僕はOregonリージョンにしました。
次にインスタンスの立ち上げです。Services(左上) > EC2 > Launch Instance > AWS Marketplace > 検索欄で「NVIDIA」と検索 > 「Amazon Linux AMI with NVIDIA GRID GPU Driver」を選択 > Typeは「g2.2xlarge」を選択 > Launchをクリック!
LaunchをクリックするとKey pairを選択する画面が出現しますので、「Create a new key pair」を選択してKey pairを新規作成します。Key pairとはAWSで作成したインスタンスにアクセスするために必要なドアの鍵のようなものです。ドアの鍵をなくしたらドアは絶対に開けれません。ダウンロードしたキーはなくさないようにしましょう。$HOME/.ssh配下においておくのがおすすめです。
うまくいけばそれでインスタンスが立ち上がるはずです!
なんか2時間待てとか言われる
AWSアカウントを作成したばかりだと2時間くらいはEC2インスタンスが立ち上げられないことがあるそうです。オッケーされるまで待ちましょう。
インスタンスの利用上限枠が0なのでインスタンスを立ち上げられませんと言われる
Services(左上) > EC2 > Limitsよりg2.2xlargeの Current Limitが0になってる方は、右隣のRequest limit increaseより上限を1つか2つ上げてもらうようお願いしましょう。多分ですが、日本語でも聞いてもらえると思います。
インスタンスの立ち上げが終わった方は下記のコマンドでアクセスしてみましょう
ssh -i [ダウンロードしてきた.pemファイル] ec2-user@[EC2インスタンスのIPアドレス]
うまく接続できればEC2インスタンスの立ち上げは終了です
cuDNNのインストール
cuDNNとは、めちゃくちゃざっくり言うとDeepLearningの計算スピードをあげてくれるライブラリのことです。
NVIDIA cuDNN | NVIDIA Developerより、ユーザ登録をしたあと、CUDAのVersionにあったcuDNNをローカルのPCにダウンロードしてきます(先程立ち上げたインスタンスには既にCUDAがインストールされています。/opt/nvidia/cuda/version.txtを見ればCUDAのバージョンが分かります)。
ダウンロードが終わったら、下記コマンドでEC2インスタンスにアップロードしましょう。
scp -i [ダウンロードしてきた.pemファイル] アップロードしたいファイル ec2-user@[EC2インスタンスのIPアドレス]:~/
cuDNNのインストール手順は以下のとおりです
gzip -dc [filename] | tar xvf - sudo cp -P ~/cuda/include/cudnn.h /opt/nvidia/cuda/include/ sudo cp -P ~/cuda/lib64/libcudnn* /opt/nvidia/cuda/lib64/ sudo chmod a+r /opt/nvidia/cuda/lib64/libcudnn*
which nvcc
してエラーがでなければcuDNNのインストールは完了です。
参考:nvidia - How can I install CuDNN on Ubuntu 16.04? - Ask Ubuntu
Chainerのインストール
sudo pip install chainer
サンプルコードをダウンロード&実行
wget https://github.com/pfnet/chainer/archive/v1.15.0.1.tar.gz tar xzf v1.15.0.1.tar.gz python chainer-1.15.0.1/examples/mnist/train_mnist.py --gpu 0
エラーがでずに2~3分で計算が終われば環境設定は終了です。
使い終わったら忘れずインスタンスを消しましょう
EC2 > Instances > Actions >Instance state > Stop
さいごに注意点
AWSは従量課金制です。EC2インスタンスをつけっぱなしにすると1日で2000円くらいの損失がでてしまいます。また、EC2で利用するストレージや通信料など、さまざまな課金対象がありますので心配な方は今回作成したインスタンスをTerminate(削除)しておくのが一番安全です。
僕はまだ計算に利用しますので、ひとまずEC2をStopして保持してみることにしました。おそらく利用しなくても月数百円のコストがかかっていくと思います。
また、今回紹介した方法は僕の作業ログなので自分で作業する際は自己責任でお願いします
やってみたいけど不安で怖い!って方は僕がどんどん手伝いますので質問等ありましたらガンガン連絡ください!
それではみなさま良いDeepLearningライフを!