コンテンツにスキップ

Recent Posts

Github PagesとOctopressで作ったブログに独自ドメインを設定する

本ブログをリニューアルしたついでに新しくドメインを取ってこのブログに適用してみた。

Github PagesとOctopressを使ったブログへの独自ドメイン設定のメモとして残しておく。

やるべきこと

今回は blog.sojiro.me というサブドメインを使うことにしたので、やるべき手順は以下の2つのみ。

  • DNSホストにGithub Pagesのドメインを向いたCNAMEレコードを追加する
  • ブログのソースに CNAME ファイルを追加する

Node.jsを使ってWeb Serverを作ってみました

Node.jsを使って簡単なWeb Serverを作ってみた際のメモ。

今回使うNode.jsのバージョン

$ node -v
v0.10.32

Web Serverオブジェクトの準備

Node.jsにはWeb Serverの機能を備えたオブジェクトが用意されている

var http = require('http');
var server = http.createServer();

Nodeの http モジュールを読み込んだ後、 createServer() メソッドでWeb Serverオブジェクトを取得できる

初めてのMongoDB

NoSQLの流れを汲むMongoDBを初めて使ってみるにあたり、基本的な操作をまとめてみる。

基本的な用語

  • データベース(database)
  • コレクション(collection)
  • ドキュメント(document)

データベース

MySQLなどのRDBMSにおけるデータベース、という言葉とほぼ同じ意味として使われる。 データ管理の大元となる単位。

コレクション

RDBMSにおけるテーブル(table)に相当するもの。 MongoDBはスキーマレスなので、テーブルのように厳格なスキーマが決まっている訳ではなく、特定の対象に対するデータの集まり(正にコレクション)と言える。

ドキュメント

RDBMSにおけるレコード(record)に相当するもの。 各コレクションを構成する要素であり、BSONと呼ばれるJSONライクな形式で記述される。

AWSのLinuxにMongoDBをインストール

AWSで借りたサーバーにmongoDBが入っていなかったのでインストールした手順

YUMの設定

パッケージ管理システムであるYUMにmongoDB用の設定を追加する

$ sudo vim /etc/yum.repos.d/mongodb.repo

``` bash /etc/yum.repos.d/mongodb.repo [mongodb] name=MongoDB Repository baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/ gpgcheck=0 enabled=1

これでYUMにmongoDBのリポジトリが追加される

<!-- more -->

## mongoDBのインストール
今回は何も考えず最新のバージョンをインストールするので以下のコマンドで実行する
``` bash
$ sudo yum install mongodb-org
読み込んだプラグイン:priorities, update-motd, upgrade-helper
...
============================================================================================================================================================================================================
 Package                                                  アーキテクチャー                             バージョン                                       リポジトリー                                   容量
============================================================================================================================================================================================================
インストール中:
 mongodb-org                                              x86_64                                       2.6.6-1                                          mongodb                                       4.9 k
依存性関連でのインストールをします:
 mongodb-org-mongos                                       x86_64                                       2.6.6-1                                          mongodb                                       6.8 M
 mongodb-org-server                                       x86_64                                       2.6.6-1                                          mongodb                                       9.0 M
 mongodb-org-shell                                        x86_64                                       2.6.6-1                                          mongodb                                       4.3 M
 mongodb-org-tools                                        x86_64                                       2.6.6-1                                          mongodb                                        90 M

トランザクションの要約
============================================================================================================================================================================================================
インストール  1 パッケージ (+4 個の依存関係のパッケージ)

総ダウンロード容量: 110 M
インストール容量: 277 M
Is this ok [y/d/N]: y
Downloading packages:
...
完了しました!

確認

$ mongo --version
MongoDB shell version: 2.6.6

インストール完了

参照

VimにおけるTABとスペースの扱いについて

Vimでは <TAB> やインデントについてその挙動を設定することができる。いくつか設定方法があるが、これまでこれらに関する .vimrc の設定は何も考えずにただコピペしていたので記述を見直してみた。

tabstop

tabstop<TAB> にいくつのスペースを設定するか決めることができる。

set tabstop=4

これで <TAB> に半角4つ分が設定される。

HUBOTを使ったSlack Bot作成メモ

SlackにBotを入れたいと思い、少し調べてみたところHUBOTがやはり簡単らしいのでやってみた

HUBOT用のAPI Tokenを取得する

まずはSlackのチームメニューからConfigure Integrationsを選択

{% img /images/slack_hubot/team_menu.png %}

様々な外部サービスとの連携メニューからHUBOTを選択する

{% img /images/slack_hubot/add_hubot.png %}

追加するbotの名前を入力

{% img /images/slack_hubot/set_botname.png %}

ここまでのステップを踏むとAPI Tokenが記されたページが表示される

そしてこの段階でbotがSlackにjoinする

{% img /images/slack_hubot/join_bot.png %}

MacにNode.jsとMongoDBをインストールしたメモ

某勉強会でNode.jsとMongoDBを使うということがあったので、インストールした際のメモを残しておく。

Homebrewのインストール

HUBOTを使ったirc-bot作成メモでも触れた通り、以下の方法でインストールを試みる。

$ ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go/install)"
Whoops, the Homebrew installer has moved! Please instead run:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Also, please ask wherever you got this link from to update it to the above.
Thanks!

どうやらHomebrewのインストーラーの場所があれから変わったようで、以下のパスで再度実行。

コマンドのレスポンスとして新しいパスをメッセージに残してくれるのはありがたい。

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

これでHomebrewのインストールは完了したのであとはサクサク必要なものをインストールするのみ。

screenを使ってみる

デタッチ/アタッチという強力な機能をもった仮想端末管理アプリケーションであるscreenを使ってみた。

screenの設定ファイルを編集する

screenの操作に使うほとんどのコマンドはプレフィックスを用いる。 このプレフィクスがデフォルトでは ctrl + a のため、Shellの行頭移動と被ってしまうので設定を編集する。

ついでに色々編集してみた。( ctrl +^ で表す)

escape ^j^j
startup_message off
defkanji utf-8
defencoding utf-8
encoding utf-8 utf-8
caption always "%{= wb} %-w%{=bu dr}%n %t%{-}%+w %= %{=b wk} [%l] %{=b wb}%y/%m/%d(%D) %{=b wm}%c"
autodetach on
bell_msg "^G"
defscrollback 10000
vbell off
bind n screen
bind h prev
bind j next
bind l windowlist

Ruby on Railsで初めてアプリを作ってみる #5 -controllerとviewの追加-

生成したリソースに対応するcontrollerを作成し、このリソースに対するviewとそのためのアクションを追加していく。

rails generate controller

controllerを作成する。controllerの名前は1文字目が大文字で、複数形を指定するのがrailsの規約である。

$ rails g controller Stocks
# rails generateコマンドは rails g と省略できる

このコマンドでcontrollerのファイルとviewのファイルが生成される。

Ruby on Railsで初めてアプリを作ってみる #4 -リソースの生成-

Ruby on Railsで初めてアプリを作ってみる #3 -scaffoldジェネレータ-scaffold コマンドを使ったリソースの生成を行ったが、このコマンドでは決められた形式でのリソースの生成にしか対応できないため、手動で自由にリソースを作成してみる。

rails generate model

まずはモデルを作成する。railsの規約に従って、モデルは単数系、最初の文字を大文字で始める。

$ rails generate model Stock title:string

このコマンドで generateg と省略できる。また、要素の属性はデフォルトが string なので、 string も省略することができる。

省略したコマンドが以下。

$ rails g model Stock title

このコマンドでmodelに加えてmigrateファイルが生成されるのでDBをmigrateする。

$ bundle exec rake db:migrate