VPS作業記録8

今回は、nginxの設定します!

設定の目標は、
・静的なファイルをちゃっちゃと返す
・/jupyterにアクセスしたら、jupyterにアクセスできる
・/djangoにアクセスしたら、gunicornで動いているdjangoにアクセスできる(保留)
・/jupyterと/djangoのところに、Basic認証をつけたい
あたりかなと思います。

お供には、nginx実践入門です。
amzn.to

続きを読む

VPS作業記録7

今日(1/24)はnginxの設定をやります。

英語のチュートリアルを読んで挫折して以来の再挑戦です。

基本的な設定ファイルの書き方を知って、
最低限、静的なファイルを返せるサーバーにすることです。

先日発売されたばかりの「nginx実践入門」を片手に作業します。
amzn.to

続きを読む

VPS作業記録6

VPSとは、直接は関係ないほうのメモ。

gitで、つまずいたところやTips

tagをつけたけど、pushできない・・・

Push a tag to a remote repository using Git? - Stack Overflow
が参考になった。
あとは、ここですねGit - タグ

「Git のタグには、軽量 (lightweight) 版と注釈付き (annotated) 版の二通りがあります。」というところだったり、
上記を読みつつ、なぜtagが2種類あって、どう使い分けるかのみたいなところを理解しておくと、よさげ。

よーするに

git push origin tagname

が答え。

リモートにpushしたけど、そのコミットいらなかった・・・

そこで使うのは、revert。僕はてっきりcommitを「消す」作業だと思って、よくわからないcommitが増えて、悩みました。

「git revert」は正確には、commit を無かったことにするのではなく、対象の commit の変更を相殺するような差分commitを自動で生成するというものです。

Git で コミットを無かったことにする方法 (git revert の使い方) - akiyoko blog

ということだそうです。変な歴史を残してしまいましたが、revertを使えば、「元に戻す」作業はできます。
revert作業コミットもリモートにpushしてしまえば、リモートも元に戻った状態になる。
本当にcommitをなかったことにする方法もありますが、意味合いが違うことがわかりました。

cloneしたら、masterしかなかった・・・

単純に知らなかっただけなんですが、もしなにかのブランチの途中からcloneして作業しようと思った場合は、
ちゃんとリモートブランチを、ローカルにもってきておく必要があるんですね。
参考:Git - リモートのブランチをcloneする - Qiita

git checkout -b development origin/development

ローカルでは好きな名前のブランチ名をつけることができます。

プロンプトにブランチを表示させる(Linux Bash

gitでmasterだけ使ってcommitしてるだけみたいな状況から、branchを使うようになったら、今自分がどのbranchにいるのかをぱっと知れたほうが便利だよなーと思うようになりはじめました。で、やっぱり世の中にはハックがあるわけで、参考になりました。
Linux - プロンプトをカスタマイズしてgitブランチを表示する - Qiita
プロンプトにでてくれれば、便利。

leaflet.jsというものを存在を知る

もとのきっかけは、Python pandas + folium で Leaflet をもっと使いたい - StatsFragmentsで紹介されてるfiliumというPythonのライブラリだったんですが、leaflet.js自体もとても面白そうでした。
なので、ちょっといじって遊んでみることにしました。
どんなものなのかすらわかってなかったのですが、「Googleマップで使われているような、地図の拡大縮小とかドラッグでの移動とかピンを置いたりするのを実装してくれているやつ」という感じだと思います。
で、ポイントは、地図は任意のものが使える(逆にいうと、leaflet.jsに含まれていない)ようです。
leafletjs.com
地図の画像以外も表示できます。参考:leafletで地図以外の画像を扱う場合 - Qiita
結構よさげ!

WSGIとはなんなのか・・・

Djangoに必要な環境で、apacheだとmod_wsgiというモジュールがーとか、wsgiに対応しているサーバーならとか、いろいろでてきて、WSGIってなんだろという疑問をもっていました。
参考:WSGI / Rack / PSGI てなんぞ
RubyのRackとあわせて、なるほどーと思いました。

VPS作業記録5

2015/1/10の作業記録です。

bash-completionをインストールするの巻です。

昨日、gitのコマンドなどを補完するgit-completion.bashを入れたのですが、
同様に、サービスのコマンドとかも便利に補完してくれるものもあるんじゃないのかなーと思ったら、
やっぱりありました。

heartbeats.jp
を参照しました。

さくらVPSでCentOS6をデォルトで入れたまんまだと、epelリポジトリって、
特に設定を追加せずとも、そのまま使えるみたいなんですね(本当?)。

なので、

# yum install bash-completion

を実行しただけで無事使えるようになりました。



ここで、epelがどんな風に設定されているのか、ちょっと気になったので、調べてみました。
CentOS6.7 64bitのyumリポジトリにEPELを追加 | kakiro-web カキローウェブ

# yum list installed | grep epel
                      1:1.3-7.el6       @epel                                   
epel-release.noarch   6-8               @epel/6.6  

だったので、yumでepelリポジトリって追加していた模様。いつしたんだろう?

# cat /etc/yum.repos.d/epel.repo 
[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

[epel-debuginfo]
name=Extra Packages for Enterprise Linux 6 - $basearch - Debug
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch/debug
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-6&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
gpgcheck=1

[epel-source]
name=Extra Packages for Enterprise Linux 6 - $basearch - Source
#baseurl=http://download.fedoraproject.org/pub/epel/6/SRPMS
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-source-6&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
gpgcheck=1

[epel]のところでenabled=1となっているので、デフォルト(yum install hogeをしただけで入れられる)として有効になっているようです。
なるほど。

続きを読む

最近気になってること(2016年1月 ITエンジニア本大賞編)

「最近気になってること」というタイトルで、ときどき自分の興味関心のあることをつらつらとリストにして書き連ねていますが、
2016年のITエンジニア本大賞の投票が始まったよーという話がTLに流れてきて、
そういえば、受賞作のうち、どれくらい読んだことあるんだろう、知りたいなってのと、
読んでないやつで面白そうなやつないかな、見つかるといいなという思惑で、
ちょっと調べてみました。

2014年

タイトル 読んだ? 個人的なコメント
アジャイルサムライ NO これは既にこれから読む予定
Webを支える技術 YES 結構前に読んだ気がする
コーディングを支える技術 NO
SCRUM BOOT CAMP THE BOOK NO
安全なWebアプリケーションの作り方 NO 存在は知ってたけど、気になる。
達人プログラマー NO 読みたいけど、絶版
なぜシステム開発は必ずモメるのか? NO
リーダブルコード YES 去年読んだ
リーン開発の現場 NO
リファクタリング プログラムの体質改善テクニック NO

10冊中2冊って、意外に少なかった。
thenextbook.jp

2015年

タイトル 読んだ? 個人的なコメント
ITエンジニアのための【業務知識】がわかる本 NO
インタフェースデザインの心理学 NO
Web制作者のためのCSS設計の教科書 モダンWeb開発に欠かせない「修正しやすいCSS」の設計手法 NO
オブジェクト指向における再利用のためのデザインパターン(改訂版) NO
GitHub実践入門 NO 気になる・・・
シェルスクリプト高速開発手法入門 NO
新装版 リファクタリング 既存のコードを安全に改善する NO 新装版に変わってますが、二年連続っぽい。
SCRUM BOOT CAMP THE BOOK NO 二年連続。
達人に学ぶ SQL徹底指南書 初級者で終わりたくないあなたへ NO 安定のミックさん
チーム開発実践入門 NO

全滅しました。0冊。ちらほら、書影はみたことあるのが多いのですが、実際に読んだのは、なかったです。
www.shoeisha.co.jp

VPS作業記録4

今日は、Gitの入門記事を読んで、Gitのお勉強です。

その記録ではなくて、
git statusとか何回もうってると、
statusとかが補完できないことにちょっとイライラしてしまったのですが、
やっぱり世の中には便利な機能はすでにあるんですね。

【2ステップ】Gitコマンドでtab補完を有効にする - Qiita
を参考にします。
まずは、

# find / | grep git-completion.bash

をしてしまいます。すると、

/usr/share/doc/git-1.7.1/contrib/completion/git-completion.bash

と、git-completion.bashを見つけられたので、

source /usr/share/doc/git-1.7.1/contrib/completion/git-completion.bash

を、~/.bashrc に追記しました。

VPS作業記録3

2015/1/8は、nginxです。

http://nginx.org/en/linux_packages.html#stable
に従って、yumにnginxレポジトリを追加する。

具体的には、/etc/yum.repos.d/nginx.repo

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/6/$basearch/
gpgcheck=0
enabled=1

という内容のファイルを作る。

これでおっけーらしいので、

# yum install nginx

でインストール。

# nginx -v
nginx version: nginx/1.8.0

起動は

# nginx

のコマンド。

で、ブラウザで自分のIPアドレスにアクセスして、確認すると、
Welcome to nginx!
が表示されてて、無事動いたと。


さて、ドキュメント。ロシア語と英語のみ・・・。
まずはビギナーズガイドをを読む。

Beginner’s Guide


デフォルトの設定ファイルは、3つのどこかに、nginx.confがあるよと書いてあるので、探す。

# find / | grep nginx.conf
/etc/nginx/conf.d
/etc/nginx/conf.d/example_ssl.conf
/etc/nginx/conf.d/default.conf
/etc/nginx/nginx.conf

となったので、/etc/nginx/nginx.confにあると。

起動は、nginx、終了は、nginx -s quit、設定ファイルの再読み込みは、nginx -s reload。

で、設定ファイルをいじって、ガイドに従って、/data/wwwのデータを表示させてみようと思ったら、

できなかったので、ここまで。

別件

vimで日本語をタイプすると文字化けがおこっていた。
調べると、環境変数LANGを変えればよいとのこと。

なので、

LANG="ja_JP.UTF-8"
export LANG

の2行を、~/.bashrcに加えるか、全ユーザーに適応したいなら/etc/profileに追加するか、する。

が、日本語に変わってしまうのもあれなので、

LANG="en_US.UTF-8"

にした。一応これでも日本語も入力できた。