ドメイン更新止めます

ここ数年、ドメイン更新のお知らせメールを見る度に、特に自分のドメインを持たなくてもいいかなとか、違うドメイン(もっと短いものなど)が欲しくなったりしていた。とうとう今年、ドメインの更新をしないことにした。

なのでこのブログといくつかのツールは、現在のURLではアクセスできなくなります。

新しくドメインを取って移行するかどうかは考え中。Tumblr のアカウント自体を削除するつもりは無いので、stonedsoul.tumblr.com とかで残ると思う。

Ghost blog on appfog

Node.js で動くGhostappfog で動かすことができたので、メモ。

基本的には以下のページにある手順で行う。

このページに書かれていることで、それ以外に設定すべきところは次の通り

Env Variables

appfog のコンソールで Env Variables に Name “NODE_ENV”, Value “production” を設定

config.js

server 部分を次のように修正。

server: {
  // Host to be passed to node's `net.Server#listen()`
  host: '0.0.0.0',
  // Port to be passed to node's `net.Server#listen()`, for iisnode set this to `process.env.PORT`
  port: process.env.VCAP_APP_PORT
}

.afignore

Ghost に限ったことではないが、appfog で node.js を使う時は、node_modules/.bin を指定した方が良いらしいので、一応しておく。

# ignore mode_modules/.bin
node_modules/.bin/

これで動いた。

その他

メール送信は Ghost のサイトにあるドキュメントを見ればできる(Gmail を使う方法もある)。

間抜けなことに、Ghost をセットアップした時に設定したメールアドレスがわからなくなってしまったので、appfog 以下のページにある方法で mysql の users テーブルを確認したりした。。

  • MySQL (tunneling して Execute Query を使ってアクセスした)

location object と anchor element

JavaScript で Unit Test を書こうとした時、その関数が location object を 処理したり、URL の文字列からホスト名などを取得したい場合、anchor element を生成して location object の代わりに使うという方法が stack overflow にあった。

testem とか使ってテストをする場合、location.href に値を入れると画面遷移してしまうので、別のオブジェクトを用意して使えばよい。

例: URL 文字列からホスト名を取得

var mylocation = document.createElement('a');
mylocation.href = 'http://example.com/path/to/file';

var hostname = mylocation.hostname;

例: アクセスしているURLのパラメータを削除した文字列を返す関数とそのテスト

// Test
describe('callMyFuncTest', function(){
    beforeEach(function(){
        myNS.location = document.createElement('a');
    });

    afterEach(function(){
        myNS.location = window.location;
    });

    it('should return url without query string', function(){
        myNS.location.href = 'http://example.com/path?query=string';

        expect(myNS.removeQueryStr()).toBe('http://example.com/path');
    });
});

// Function
var myNS = {
    location: window.location
};

myNS.removeQueryStr = function(){
    var l = myNS.location;

    return l.protocol+'://'+l.hostname+l.pathname;
}

コードの方で少し工夫する必要はあるけど、一応これでテストできる。

参照: MDN

Page 1 of 72