Ubuntu 12.04.4 にHeartbleed OpenSSL脆弱性対策

opensslをアップデートして、"1.0.1-4ubuntu5.12"が表示されれば大丈夫そう。

$ sudo apt-get update
$ sudo apt-get dist-upgrade
$ /etc/nginx# dpkg -l | grep openssl
ii  openssl                         1.0.1-4ubuntu5.12                    Secure Socket Layer (SSL) binary and related cryptographic tools

チェックツール

http://filippo.io/Heartbleed/

秘密鍵は再作成した方がよさ気(オレオレ証明書だけど。。)


参考

https://www.jpcert.or.jp/at/2014/at140013.html
http://www.ubuntu.com/usn/usn-2165-1/
http://qiita.com/ukitazume/items/f382bcc420dc7815684f

GruntでSass/Compassのコンパイル~ブラウザリロード

モジュールインストール

npm install grunt-open --save-dev
npm install grunt-contrib-watch --save-dev
npm install grunt-contrib-connect --save-dev
npm install grunt-contrib-compass --save-dev

Gruntfile.js

module.exports = function(grunt) {
  grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    compass: {
        dist: {
		    basePath: 'sass/',
			options: {
				cssDir: 'css'
			}
        }
    },
    watch: {
      options: {
        livereload: true,
        nospawn: true
      },
      sass: {
        files: 'sass/*.scss',
        tasks: ['compass']
      }
    },
    connect: {
      livereload: {
        options: {
          port: 12345
        }
      }
    },
    open: {
      server: {
        path: 'http://localhost:<%= connect.livereload.options.port %>'
      }
    }
  });

  grunt.registerTask('default', ['connect','open','watch']);

  grunt.loadNpmTasks('grunt-contrib-watch');
  grunt.loadNpmTasks('grunt-contrib-connect');
  grunt.loadNpmTasks('grunt-contrib-compass');
  grunt.loadNpmTasks('grunt-open');

};

LiveReload用の拡張機能をインストール→Chromehttps://chrome.google.com/webstore/detail/livereload/jnihajbhpnppcggbcgedagnkighmdlei

grunt実行。

grunt

1.connect~openでブラウザを開く
2.watchでsass/*.scssの更新監視
3.更新されたタイミングで、commpassでsccsをコンパイル
4.livereloadで、ブラウザが自動更新される。

GruntでJS/CSSを結合/圧縮

環境構築は省略

Gruntfile.js

module.exports = function(grunt) {
  grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    concat: {
		multiple_file: {
			files: {
				// 画面ごとに別ファイルを読み込みたいときは、カンマ区切りで記述
				'js/test.js': ['js/jquery-1.11.0.min.js', 'js/bootstrap.min.js']
			}
		}
    },
	uglify: {
		js_uglify: {
			options: {
				banner: '/*! Banner Comment.\n\n <%= grunt.template.today("dd-mm-yyyy") %> */\n'
			},
			files: {
				'js/test.min.js': ['js/test.js']
			}
		}
	},
	cssmin: {
	  add_banner: {
	    options: {
	      banner: '/* My minified css file */'
	    },
	    files: {
	      'css/test.css': ['css/**/*.css']
	    }
	  }
	}
  });
 
  grunt.loadNpmTasks('grunt-contrib-uglify');
  grunt.loadNpmTasks('grunt-contrib-concat');
  grunt.loadNpmTasks('grunt-contrib-cssmin');

};

実行

$ grunt concat
Running "concat:multiple_file" (concat) task
File "js/test.js" created.

Done, without errors.

$ grunt uglify
Running "uglify:js_uglify" (uglify) task
File js/test.min.js created: 127.62 kB → 128.05 kB

Done, without errors.

$ grunt cssmin
Running "cssmin:add_banner" (cssmin) task
File css/test.css created: 158.75 kB → 122.79 kB

Done, without errors.


ハマったこと。
こんな感じでシングルタスクとして定義すると、エラーになる。

grunt.registerTask('uglify', ['uglify']);


minifyはちょっと怪しいので様子見。
http://moqada.hatenablog.com/entry/2014/02/12/013203

gitにSHH公開鍵接続する

秘密鍵がデフォルトの「id_rsa」ならば、以下のコマンドで接続出来る。

git clone ssh://ssh_user_name@server_host:port/home/repository/hoge.git

gitのショートカットコマンド設定

git config --global alias.br 'branch'
git config --global alias.co 'checkout'
git config --global alias.st 'status'
git config --global alias.cmm 'commit'

以下コマンドのように実行できる。

git br develop

Gitのリモートリポジトリ操作

※本エントリは、謝りを含んでいる可能性があります。

2ユーザで、リモートリポジトリにpush~pullする操作のテスト。
branch、merge、rebaseなどは追って・・・。

■サーバ側でリモートリポジトリを作成する。

$ sudo mkdir -p /usr/local/git/test.git
$ cd /usr/local/git/test.git/
$ sudo git --bare init --shared=true

■クライアント側で、ローカルリポジトリを作成する。

[user1@server ~]$ git init

ユーザ登録しておく

[user1@server ~]$ git config --global user.name "user1"
[user1@server ~]$ git config --global user.email user1@mail

新規ファイルをコミット

[user1@server ~]$ $ touch test.txt
[user1@server ~]$ $ git add test.txt
[user1@server ~]$ $ git status
[user1@server ~]$ $ git commit -m "test commit"

リモートリポジトリの追加

[user1@server ~]$ $ git remote add origin ssh://user1@reposerver:22/usr/local/git/test.git
[user1@server ~]$ $ git remote -v
origin ssh://user1@reposerver:22/usr/local/git/test.git (fetch)
origin ssh://user1@reposerver:22/usr/local/git/test.git (push)

リポジトリサーバにpush

[user1@server ~]$ $ git push origin master

■クライアント側、別のユーザ(user2)でclone ユーザ登録しておく

[user2@server ~]$ git config --global user.name "user2"
[user2@server ~]$ git config --global user.email user2@mail

チェックアウト

[user2@server ~]$ git clone ssh://user2@reposerver:22/usr/local/git/test.git

ユーザ2で追加コミット、リポジトリサーバにpush

[user2@server ~]$ $ touch test2.txt
[user2@server ~]$ $ git add test2.txt
[user2@server ~]$ $ git status
[user2@server ~]$ $ git commit -m "test2 commit"
[user2@server ~]$ $ git push origin master

■クライアント側、user1で取り込み

[user1@server ~]$ $ git pull origin master

参考:

http://git-scm.com/book/ja/Git-%E3%81%AE%E5%9F%BA%E6%9C%AC-%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%88%E3%81%A7%E3%81%AE%E4%BD%9C%E6%A5%AD

http://open-groove.net/git/git-branch-merge/

nodejsインストール

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs
# node -v
v0.10.26