futabooo blog

色々手をつけすぎてすぐに忘れるので備忘録

vimの設定ファイル.vimrcをgithubで管理する

最近自分のメインマシンであるMBAを買い換えたいなーという衝動にかられています。
PCを買い換えると、データの移行が本当に面倒だなーと感じます。
少しでも軽減するために今回vimの設定ファイルはgithubで管理することにしました。
mac環境での使用を想定しています。

現状ホームディレクトリにある.vimrcを管理対象に変える。
途中で作成している.gitignoreは現状.DS_Storeしか記入していません。今後必要に応じて編集予定。

$ cd
$ mkdir dotfiles
$ mv .vimrc ./dotfiles/.vimrc
$ cd dotfiles
$ vi .gitignore
$ git init
$ git add ./
$ git commit -m "first commit"


ここいらでgithubリポジトリーを用意する。
詳しくは公式のHelpやCreate A Repo · GitHub Help
ググレカスということで。


githubに作成したリモートリポジトリにpushする

$ git remote add origin https://github.com/futabooo/dotfiles.git
$ git push -u origin master


シンボリックリンクを作成しておく

$ cd
$ ln -s ./dotfiles/.vimrc .vimrc

これでgithubでの管理ができるようになりました。


別環境で使いたい場合はgit cloneしてシンボリックリンクを作成する

$cd
$ git clone https://github.com/futabooo/dotfiles.git
$ ln -s ./dotfiles/.vimrc .vimrc


この方法を使えば色々な設定ファイルをgithubで管理できそうですね。

ソースからrubyをcheckinstallでインストールしたらなんかわけわからなくなった

rubyをインストールしようとして色々やっていたら、
なんかわけわからなくなった\(^o^)/

追記:2014/02/07

$ ./configure --prefix=/usr
にしたらいけた。なぜかはわからない。

追記:2014/02/06

rpmのインストールコマンド実行時にディレクトリの権限が書き換わってしまうらしい。
そっちはchownで治ったけど、セグメンテーション違反です。の方はいまだ治らず\(^o^)/

作業時参考URL
さくらのVPS を改めて使いはじめる 9 – Ruby、Redmine、Subversion | アカベコマイリ
CentOSにRubyをcheckinstallでRPMにしてインストールする。 - オープンソースこねこね

$ wget http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.0.tar.gz
$ tar zxvf ruby-2.1.0.tar.gz
$ cd ruby-2.1.0
$ ./configure
$ make
$ cp -p ./ruby ./bin/  #←これやらないと別のエラーに見舞われる


ome of the files created by the installation are inside the home directory: /home

You probably don't want them to be included in the package.
それらを表示しますか? [n]: n
それらをパッケージから除外しますか?(yesと答えることをおすすめします) [n]: n

Some of the files created by the installation are inside the build
directory: /home/futabooo/ruby-2.1.0

You probably don't want them to be included in the package,
especially if they are inside your home directory.
Do you want me to list them?  [n]: n
それらをパッケージから除外しますか?(yesと答えることをおすすめします) [y]: n

tempディレクトリにファイルをコピー..OK

Stripping ELF binaries and libraries...OK

manページを圧縮..OK

ファイルリストを作成..OK

You requested to review the .spec file for this package.
Now you'll have the chance to review and optionally modify this file.

Enterキーを押すと続けます。   #viで編集するときに "//usr/local/bin/ruby" がなければたす


RPMパッケージを作成..OK

注意: パッケージはインストールされません

tempファイルを削除..OK

doc-pakディレクトリを削除..OK

バックアップパッケージを書き込み..OK

temp dirを削除..OK


**********************************************************************

 Done. The new package has been saved to

 /root/rpmbuild/RPMS/x86_64/ruby-2.1.0-1.x86_64.rpm
 You can install it in your system anytime using:

      rpm -i ruby-2.1.0-1.x86_64.rpm

**********************************************************************

$ sudo rpm -ivh /root/rpmbuild/RPMS/x86_64/ruby-2.1.0-1.x86_64.rpm
準備中...                ########################################### [100%]
   1:ruby                   ########################################### [100%]
$ ruby -v
セグメンテーション違反です
$ cd
-bash: cd: /home/futabooo: 許可がありません

さくらVPSでmysql-server起動に失敗した時

現在下記の連載?をみつつさくらVPSでサーバー構築中。
さくらのVPS を使いはじめる 5 – MySQL のインストールと初期設定 | アカベコマイリ


エラー。

$ sudo /etc/rc.d/init.d/mysqld start
MySQL Daemon failed to start.
mysqld を起動中:                                           [失敗]


ログ表示。

$ tailf /var/log/mysqld.log
140202 21:42:21 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
140202 21:42:21 [Warning] '--default-character-set' is deprecated and will be removed in a future release. Please use '--character-set-server' instead.
/usr/libexec/mysqld: Table 'mysql.plugin' doesn't exist
140202 21:42:21 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
140202 21:42:21  InnoDB: Initializing buffer pool, size = 8.0M
140202 21:42:21  InnoDB: Completed initialization of buffer pool
140202 21:42:21  InnoDB: Started; log sequence number 0 44233
140202 21:42:21 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
140202 21:42:21 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

これを

[mysqld]
default-character-set=utf8

こう書き換える

[mysqld]
character-set-server=utf8

これだけだと後半のエラーが解決しなかった。
それは下記のサイトでかいけつ。
さくらVPS mysqlが起動できない - プログラム開発 作業メモ

githubにsshで接続しようとした時にはまった

こちらを参考にしながら進めていました。
ターミナルからgithubのリポジトリにアクセスする設定(sshの設定) - Qiita [キータ]

結論。下記部分はおまけということでやらなかったのが良くなかった。

次はおまけです。sshコマンドのオプションを省略する設定です。

$ vi ~/.ssh/config
Host github.com
 HostName      github.com
 IdentityFile  ~/.ssh/github_id_rsa
 User          git


githubで作成したリポジトリにいざローカルからpushしようとしたらエラー発生

$ git push -u origin master
The authenticity of host 'github.com (192.30.252.129)' can't be established.
RSA key fingerprint is ***************************************
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com' (RSA) to the list of known hosts.
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

githubのヘルプをみる
Error: Permission denied (publickey) · GitHub Help

In that example, we did not have any keys for SSH to use. The "-1" at the end of the "identity file" lines means SSH couldn't find a file to use. Later on, the "Trying private key" lines also indicate that no file was found. If a file existed, those lines would be "1" and "Offering public key", respectively:

ヘルプに書いてあったコマンド打ってみる

$ ssh -vT git@github.com
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: Connecting to github.com [192.30.252.128] port 22.
debug1: Connection established.
debug1: identity file /Users/futabooo/.ssh/id_rsa type -1
debug1: identity file /Users/futabooo/.ssh/id_rsa-cert type -1
debug1: identity file /Users/futabooo/.ssh/id_dsa type -1
debug1: identity file /Users/futabooo/.ssh/id_dsa-cert type -1

マイナス1ってことはファイルが見当たらないらしい。。。

今回自分は参考URLみながら「github_id_rsa」って名前で作ったことを思い出した。
そして最初のおまけ設定をすることで解決。

configを書いていないとデフォで「id_rsa」を探しに行くってことなのかな。

はじめて業務外でチーム開発をして思ったこと

ほぼ反省。

チームとして

  1. 簡単なコーディング規約ぐらい決めておけばよかった
  2. 進捗報告はコードレビューしながら週1ぐらいでやればよかった
  3. 早めにバージョン管理を導入するべきだった
  4. ツールを途中で変更することも考えておくべきだった

リーダーという役割を担った自分個人として

  1. プレッシャーをもっとかければよかった
  2. 動くものを作るということをもっと伝えればよかった
  3. コードを書くべきではなかった

チームとして

簡単なコーディング規約ぐらい決めておけばよかった

最低限、定数名・変数名・関数名あたりで、
パスカルケース・キャメルケース・スネークケース・アッパーケース
のどれを何に使うのかぐらい決めておけばよかった。
今回の場合業務でJavaな人、PHPな人、C#な人が集まっていたわけで、
みんな普段の規約も違うので。。。

進捗報告はコードレビューしながら週1ぐらいでやればよかった

上の反省と絡む点もある。これやっとけば途中で気づけた。
もう一個はアプリケーションの全体に影響するような変数をそれぞれ
個別の担当箇所で作っていたこと。
gameClearFlag的なのが別のスクリプトに存在する。。。
Statusクラスとか途中で作る発想が生まれてたかもしれない。

早めにバージョン管理を導入するべきだった

最初の頃はzipで固めてLINEで共有してた\(^o^)/
さっさとバージョン管理導入するべきだった。
後半になって無理!ってなってから導入したが、
使い方もよく分からん状態であんま機能しなかった。
ちなみに今回はgitとcodebreakを使った。

その時チームメンバー向けにサクッと書いた記事
Unity4.3のプロジェクトをcodebreakで管理する - WhereToStart

ツールを途中で変更することも考えておくべきだった

連絡はほぼLINE使ってた。
ChatWork使えばよかった。
タスクふれない\(^o^)/


書いてて疲れてきました。休憩。
リッチマン、プアウーマンの石原さとみが超絶可愛い理由 - NAVER まとめ


リーダーという役割を担った自分個人として

プレッシャーをもっとかければよかった

もともと強制力のあった開発ではなかったのですが、
やるからにはもっとプレッシャーをかけて上げるべきだったと思いました。
なぁなぁでやってても何も身につかないし、
結局終わってもやり切った感がなくて楽しくないかもなーと思います。
みんながどう思ってるか知らんけど。

動くものを作るということをもっと伝えればよかった

モチベーションに関わるところですね。
どんなにちゃちくてもいいから最初に動くものを作るべきだと
もっと伝えればよかった。
最初っから機能洗いだして、担当振ってーとかやっていたけど、
それじゃ手が動かせない状態だったなーと。
みんな初めて触るUnityだったわけですし。

コードを書くべきではなかった

リーダーという役割を担っていながら自分で巻き取る作業が多かった。
いっそのこと自分は書かないと決めて役割をはたせばよかったなーと。
いや、理想は書きつつもリーダーとしての役割もやるべきだった。
どっかで「自分がリーダーなんて」って自分で上限決めてた感がありました。


まとめ

わーと30分ぐらいで書いたので文章もめちゃくちゃだし読みづらいかもしれませんが、
はじめて「チーム開発」をしたうえで思ったことを書きました。
チームメイトに聞いたらもっと色々でてきそうだなー(´・ω・`)

作ったアプリ近々GooglePlayに公開します。

GooglePlayで公開するためのkeystoreを作成する

ターミナルで下記コマンドを適宜書き換えて実行。
色々質問飛んでくるので全部入力すれば、カレントディレクトリにkeystoreファイルが作成される。

keytool -genkey -v -keyalg RSA -keystore 証明書ファイル名.keystore -alias 証明書別名 -validity 有効期限の日数