東山n条より

京都在住情報系学生のメモ。

Rails3 で model に column を追加。

Rails3 でモデルに新しいカラムを追加して,データベースに反映させる。

rails g migration AddColnameToTablename colname:datatype
rake db:migrate

大文字と小文字の区別が大事。ちなみに使えるデータのタイプはこれら。

:binary
:boolean
:date
:datetime
:decimal
:float
:integer
:primary_key
:string
:text
:time
:timestamp

・参考にさせて頂いたサイト
【Rails3】カラムの追加をワンライナーで書く
Rails Guilde - Migration/suppoeted-types

MacOS1.8.2 で YaTex + GNU Emacs24.2 の環境を整える

卒論を書くために Mac OSX 1.8.2 (Mountain Lion) で,YaTex(やてふ) + TeXShop + GNU Emacs24.2 で Tex を書くための環境を整えました。

1.platex をインストールする。

Macports を使ってplatexをインストールします。

sudo port install ghostscript-fonts-hiragino  
sudo port -d install pTeX +utf8 +motif  

時間がかかりますが、うまくいけば /opt/local/bin に platex がインストールされます。

2.GNU Emacs24 をインストールする。

GNU Emacs For Mac OS X で GNU Emacs24 .dmg をダウンロード + インストールする。
shell 上で emacs を立ち上げたい場合は,.bashrc 等に下記を加える。

alias emacs='/Applications/Emacs.app/Contents/MacOS/Emacs -nw'

3.YaTex の環境設定をする。

YaTexのサイト から,YaTexを落として解凍して makefile のCarbonEmacs の部分を

EMACS=/Applications/Emacs.app/Contents/MacOS/Emacs
PREFIX=/Applications/Emacs.app/Contents/Resources
EMACSDIR=${PREFIX}

と書き換えてから,解凍したフォルダで make install する。

sudo make install
sudo make install-info

あとは,~/.emacs.d/init.el など elispのPATHが通っている所に下記を加える。

;; yatex-mode
(setq auto-mode-alist
      (cons (cons "\\.tex$" 'yatex-mode) auto-mode-alist))
(autoload 'yatex-mode "yatex" "Yet Another LaTeX mode" t)
(setq tex-command (expand-file-name "~/Library/TeXShop/bin/platex2pdf-utf8"))

4.TexShop のインストール

TexShopのサイトから,TexShop を落として解凍する。 デフォルトでは,~/Library/TexShop/bin/ptex2pdf-utf8, ~/Library/TexShop/bin/platex2pdf-utf8 はないので,ここを参考にファイルを作成する。

cp ~/Library/TeXShop/bin/ptex2pdf-euc ~/Library/TeXShop/bin/ptex2pdf-utf8
cp ~/Library/TeXShop/bin/platex2pdf-euc ~/Library/TeXShop/bin/platex2pdf-utf8

あとはここここを参考に,TexShop の環境設定をする。

以上でTexShoptexファイルを開いてから,emacstex ファイルを編集している時に

C-c t j

をすれば自動的にpdfビューワーが更新されるようになります。

UNIXコマンド look で utf-8 の文字列を2分探索

lookコマンドは,ファイルや標準入力から文字列を2分探索で高速に検索できます。 2分探索するため,入力はソートされている必要があります。

例えば、英単語が1行ずつ入っている file1 から文字列 word1 を検索する場合は以下のようになります。

sort file1 | look word1

日本語(utf-8)の単語が1行ずつ入っている file2 から文字列 word2 の検索を行いたい場合は,

env LC_ALL=C sort file2 | look word2

で行う事ができます。

Proxy 越しで Macport を使う

研究室の iMac で Macport がこんなメッセージが出て、 selfupdate できなくなった。

User% sudo port selfupdate
Warning: xcodebuild exists but failed to execute
--->  Updating MacPorts base sources using rsync
Error: /opt/local/bin/port: port selfupdate failed: Error synchronizing MacPorts sources: shell command failed (see log for details)

Macports の設定ファイル /opt/local/etc/macports/macports.conf の proxy の設定の部分に以下の設定すると sefupdate できるようになった。
<hostname>, <port> を適宜変更してください。

~~~ 中略 ~~~
# 
proxy_override_env    yes
# HTTP proxy:
proxy_http      <hostname>:<port>
# HTTPS proxy:
proxy_https     <hostname>:<port>
# FTP proxy:
proxy_ftp        <hostname>:<port>
# rsync proxy:
proxy_rsync     <hostname>:<port>
# hosts not to go through the proxy (comma-separated, applies to HTTP, HTTPS,
# and FTP, but not rsync):
#proxy_skip            internal1, internal2, internal3

Mac (Mountain Lion) でシェルを zsh に変更する。

Mac OSX 10.8 Mountain Lion でシェルを bash から zsh に変更する。
デフォルトで /ect/shells に /bin/zsh があるので、ログインするシェルを変更するだけ。

システム環境設定の「ユーザとグループ」を開く。鍵を開く。
シェルを変更したいユーザを右クリックして詳細オプションを開く。
ログインシェルを/usr/local/bin/zshに変更する。

後は、.bashrc にある設定を .zshrc に移すだけ。
僕はこのサイトを参考に設定しました。

  • 参考にさせて頂いたサイト

Mac (Lion) にzshをインストール
.zshrcを設定してみる

  • .zshrc の設定に参考になりそうなサイト

おすすめzsh設定

Mac において aspell を使って Emacs でスペルチェック

MacOSX 1.8.2 において、aspell を使って Emacs でスペルチェックを行えるようにします。

1.aspell を Macport でダウンロード・インストール

sudo port install aspell  
sudo port install aspell-dict-en  

port で aspell と辞書をインストールする。

2.英語のスペルチェック用に .aspell.conf を用意

echo "lang en_US" > ~/.aspell.conf

英語のスペルチェックに aspell を使用するために,.aspell.conf を用意する。

3..emacs に aspell の設定を行う

;; spel-checker                                                                                                                                  
(setq ispell-program-name "/opt/local/bin/aspell")
(eval-after-load "ispell"
  '(setq ispell-skip-region-alist (cons '("[^A-Za-z0-9 -]+")
                                        ispell-skip-region-alist)))

aspell が英語と日本語に混じった文章にも対応するように .emacs に設定を行う・
以上で設定は終了。

後は、スペルチェックを行いたい単語で

M-x $

もしくは、スペルチェックを行いたい範囲を選択して

M-x ispell-region

文章全体をスペルチェックを行いたい場合は

M-x ispell-buffer

でスペルチェックを行う事ができる。

tr , sed を使って、空白を改行に変換。

Macで hoge.txt 内の空白を改行に変換するには,

cat hoge.txt | sed 's/ /¥n/g'

または

cat hoge.txt | tr  ' ' '¥n'

また,改行したを空白に変換した結果を sort して uniq するには,

cat hoge.txt | sed 's/ /¥n/g' | sort | uniq 

~参考~
逆引きUNIXコマンド/sedを使ってスペースの文字列操作を行う