さくらVPS512に契約し、ScientificLinuxをインストールして色々
さくらVPS512プランに契約し、ScientificLinuxをインストールし、
設定をした。
以下、メモです。
ScientificLinuxのインストール
以下を参考に、というかそのまま実行。
http://www.glidenote.com/archives/1135
自分がちょっとハマったのは、VNCの接続で、
『View Only』のチェックボックスにチェックを入れていて、
画面操作ができなかったという、間抜けな…
不要なデーモンを止める
不要なデーモンを止めて、現状では以下のデーモンが
OS起動時に起動する設定になっている。
$ chkconfig --list | grep :on acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off cpuspeed 0:off 1:on 2:on 3:on 4:on 5:on 6:off microcode_ctl 0:off 1:off 2:on 3:on 4:on 5:on 6:off network 0:off 1:off 2:on 3:on 4:on 5:on 6:off rsyslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off sysstat 0:off 1:on 2:off 3:off 4:off 5:off 6:off
リモートアクセスユーザの作成
リモートアクセス用ユーザhogehogehogeを作成し、
パスワードを設定し、グループをwheelにする。
# useradd hogehogehoge # passwd hogehogehoge # usermod -G wheel hogehogehoge
sudoを使用の設定
2007-10-11
以下コマンドにて、sudoを使用できるユーザを設定する。
# visudo
コメントアウトされている以下の箇所を有効にする。
%wheel ALL=(ALL) ALL
これで、グループwheelに属するrootとhogehogehogeがsudoを
利用できるようにて設定された。
sshの設定
まず、アクセス元のクライアント側で公開鍵を作成し、
アクセス先のサーバ側にコピーする。
$ ssh-keygen -t rsa $ scp .ssh/id_rsa.pub hogehogehoge@hostname:./
サーバ側での処理は以下の通り。
$ mkdir .ssh $ cat id_rsa.pub >> .ssh/authorized_keys $ chmod 700 .ssh $ chmod 600 .ssh/*
sshの設定ファイルを以下の通り、設定
/etc/ssh/sshd_config
アクセス可能なユーザを指定する。
AllowUsers hogehogehoge
標準のポート番号は危ないので、変更。
Port 1234567890
ルートでのログインを禁止する。
PermitRootLogin no
公開認証でログインを可能にする。
PubkeyAuthentication yes
パスワードログインを禁止する。
PasswordAuthentication no
selinuxを無効にする
$ sudo vi /etc/selinux/config SELINUX=disabled
LAMY2000 L401 リフィル まとめ
LAMY ラミー 4色 ボールペン 油性 2000 L401 正規輸入品
- 出版社/メーカー: LAMY
- 発売日: 2013/01/06
- メディア: オフィス用品
- 購入: 7人 クリック: 141回
- この商品を含むブログ (13件) を見る
純正のでも書き味が悪いというわけではないのだが、
書き始めが、かすれる。そして、なによりリフィルが高い。
ジェットストリームのリフィルをLAMY2000で使えれば、
最強だと思うんんだけど、対応していないようだ。
ということで、LAMY2000に使用できるリフィルを調べてみた。
まぁ、ググっただけです。
PILOT | BRF-8EF | 油性 | 0.5mm | 黒 | 84円 |
PILOT | BRF-8F | 油性 | 0.7mm | 黒・赤・青・緑 | 84円 |
PILOT | BRF-8M | 油性 | 1.0mm | 黒 | 84円 |
PILOT | LHRF-20C3 | ゲルインキ | 0.3mm | 黒赤青 | 210円 |
PILOT | LHRF-20C4 | ゲルインキ | 0.3mm | 黒赤青 | 210円 |
ZEBRA | LHRF-20C4 | ゲルインキ | 0.3mm | 黒赤青 | 210円 |
ZEBRA | 4C-0.4芯 | 油性 | 0.4mm | 黒 | 105円 |
ZEBRA | 4C-0.5芯 | 油性 | 0.5mm | 黒 | 84円 |
ZEBRA | 4C-0.7芯 | 油性 | 0.5mm | 黒青赤緑 | 84円 |
ZEBRA | 4C-0.7芯-N | 油性 | 0.7mm | いろいろ | 168円 |
ZEBRA | 4C-1.0芯-N | 油性 | 1.0mm | 黒青赤緑 | 84円 |
ZEBRA | 4C-1.0芯-N | 油性 | 1.0mm | いろいろ | 168円 |
ZEBRA | JSB-0.4芯 | ゲルインキ | 0.4mm | いろいろ | 168円 |
ZEBRA | JSB-0.5芯 | ゲルインキ | 0.5mm | いろいろ | 168円 |
BRF-8Fか、4C-0.7をまず、試してみようと思う。
PILOT | ご指定のページが見つかりません
ゲルインキボールペン替芯(LHRF-20) | 筆記具 | ボールペン | 替芯 | ゲルインキボールペン替芯 | 製品情報 | PILOT
ZEBRA | ゼブラ株式会社 | 油性ボールペン替芯
ZEBRA | ゼブラ株式会社 | ジェルボールペン替芯
rubyでハッシュのハッシュ
h = Hash.new{ |hash,key| hash[key] = {} }
Ruby 2次元のハッシュ -Rubyで2次元のハッシュを扱いたいです。perlで- その他(プログラミング・Web制作) | 教えて!goo
Kwartzの学習メモページ
Kwartz - kuwata-lab.com
るびま
るびま
学習したことをメモがてら、載せていく。
ex
プレゼンテーションデータファイルex.html
<table> <tr id="list"> <td id="mark:item">Foo</td> </tr> <tr id="dummy:d1"> <td>Bar</td> </tr> </table>
プレゼンテーションロジックファイルex.plogic
#list { logic: { for member in @members _stag _cont _etag end } } #item { value: @x; }
プレゼンテーションデータファイルとプレゼンテーションロジックファイルから、
テンプレートファイルex.rbhtmlを生成する。
$ kwartz -l rbtenjin -p ex.plogic ex.html > ex.rbhtml
テンプレートファイルex.rbhtml
<table> <?rb for member in @members ?> <tr id="list"> <td>#{@x}</td> </tr> <?rb end ?> </table>
メインプログラムファイル
#!/home/rdera/.rvm/rubies/ruby-1.9.2-p180/bin/ruby -Ku require 'tenjin' engine = Tenjin::Engine.new() context = { :members => ['A','B','C'], :x => 'abcdefg', } s = engine.render('ex.rbhtml',context) print s
出力は以下の通り。
<table> <tr id="list"> <td>abcdefg</td> </tr> <tr id="list"> <td>abcdefg</td> </tr> <tr id="list"> <td>abcdefg</td> </tr> </table>
Kwartz-Ruby Users' Guide - kuwata-lab.comに
沿って、学習を進める。
まず、『1−4Complex Example』
1-4
プレゼンテーションファイルexample2.html
<table> <tr bgcolor="#CCCCFF" id="mark:list"> <td id="mark:name">foo</td> <td> <a href="mailto:foo@mail.com" id="mark:email">foo@mail.com</a> </td> </tr> </table>
プレゼンテーションロジックexample2.plogic
/* * an element which is marked by 'id="mark:list"' * - print value of a variable 'color' as bgcolor attribute value. */ #list { attrs: "bgcolor" color; logic: { @members.each_with_index do |member, i| color = i % 2 == 0 ? '#FFCCCC' : '#CCCCFF'; _stag # start tag _cont # content _etag # end tag end } } /* * an element which is marked by 'id="mark:name"': * - print value of member[:name] as content of the element. */ #name { value: member[:name]; } /* * an element marked by 'id="mark:email"': * - print value of member[:email] as contentn of the element. * - print "mailto:" and member[:email] as href attribute value. */ #email { value: member[:email]; attrs: "href" "mailto:#{member[:email]}"; }
テンプレートファイルを生成する。
$ kwartz -l rbtenjin -p example2.plogic example2.html > example2.rbhtml
テンプレートファイルexample2.rbhtmlは以下の通り。
<table> <?rb @members.each_with_index do |member, i| ?> <?rb color = i % 2 == 0 ? '#FFCCCC' : '#CCCCFF'; ?> <tr bgcolor="#{color}"> <td>#{member[:name]}</td> <td> <a href="#{"mailto:#{member[:email]}"}">#{member[:email]}</a> </td> </tr> <?rb end ?> </table>
メインプログラム
#!/home/rdera/.rvm/rubies/ruby-1.9.2-p180/bin/ruby -Ku require 'tenjin' engine = Tenjin::Engine.new() context = { :members => ['x','y'], :name => 'name', :email => 'email', :x => { 'name' => 'xxx', 'email' => 'em'}, :y => { 'name' => 'yyy', 'email' => 'em'} } s = engine.render('example2.rbhtml',context) print s
実行してみたが、うまくいかない。
以下、実行時のメッセージ。
example2.rbhtml:6:in `[]': can't convert Symbol into Integer (TypeError) from example2.rbhtml:6:in `block (2 levels) in _render' from example2.rbhtml:3:in `each' from example2.rbhtml:3:in `each_with_index' from example2.rbhtml:3:in `block in _render' from /home/rdera/.rvm/gems/ruby-1.9.2-p180/gems/tenjin-0.6.1/lib/tenjin.rb:625:in `instance_eval' from /home/rdera/.rvm/gems/ruby-1.9.2-p180/gems/tenjin-0.6.1/lib/tenjin.rb:625:in `render' from /home/rdera/.rvm/gems/ruby-1.9.2-p180/gems/tenjin-0.6.1/lib/tenjin.rb:940:in `render' from ./tenjin2.rb:15:in `<main>'
よく分からず、ハマっている。。。
とりあえず、飛ばして、学習を進める。
1-5
どのようなプレゼンテーションロジックを書けば、
どのようなテンプレートファイルが生成されるのか。
プレゼンテーションデータファイルは引き続き、以下の通り。
<table> <tr bgcolor="#CCCCFF" id="mark:list"> <td id="mark:name">foo</td> <td> <a href="mailto:foo@mail.com" id="mark:email">foo@mail.com</a> </td> </tr> </table>
1
プレゼンテーションロジックファイル
#list { logic: { for member in @members _stag _cont _etag end } }
テンプレート
<table> <?rb for member in @members ?> <tr bgcolor="#CCCCFF"> <td>foo</td> <td> <a href="mailto:foo@mail.com">foo@mail.com</a> </td> </tr> <?rb end ?> </table>
2
プレゼンテーションロジックファイル
#list { logic: { for member in @members _elem end } }
テンプレートは1と同様。
3
プレゼンテーションロジックファイル
#list { logic: { _stag for member in @members _cont end _etag } }
テンプレート
<table> <tr bgcolor="#CCCCFF"> <?rb for member in @members ?> <td>foo</td> <td> <a href="mailto:foo@mail.com">foo@mail.com</a> </td> <?rb end ?> </tr> </table>
4
プレゼンテーションロジックファイル
#list { logic: { _stag print expr _etag } }
テンプレート
<table> <tr bgcolor="#CCCCFF"> #{expr} </tr> </table>
5
プレゼンテーションロジックファイル
#list { value: expr; }
テンプレートは4と同様。
6
プレゼンテーションロジックファイル
#list { logic: { print expr } }
テンプレート
<table> #{expr} </table>
7
プレゼンテーションロジックファイル
#list { elem: expr; }
テンプレートは6と同様。
8
>プレゼンテーションロジックファイル
#list { logic: { _cont } }
テンプレート
<table> <td>foo</td> <td> <a href="mailto:foo@mail.com">foo@mail.com</a> </td> </table>
9
プレゼンテーションロジックファイル
#list { logic: { } }
テンプレート
<table> </table>
10
プレゼンテーションロジックファイル
#list { logic: { _element(foo) # expand other element marked with name 'foo' } }
テンプレート
.....
いまいち、良く分からず。
保留。
11
プレゼンテーションロジックファイル
#list { logic: { _content(foo) # expand content of other element } }
テンプレート
.....
いまいち、良く分からず。
保留。
12
プレゼンテーションロジックファイル
#list { logic: { i = 0 for member in @members i += 1 if i % 2 == 0 color = '#FFCCCC' else color = '#CCCCFF' end _elem # '_elem' is equivarent to _stag + _cont + _etag end } }
テンプレート
<table> <?rb i = 0 ?> <?rb for member in @members ?> <?rb i += 1 ?> <?rb if i % 2 == 0 ?> <?rb color = '#FFCCCC' ?> <?rb else ?> <?rb color = '#CCCCFF' ?> <?rb end ?> <tr bgcolor="#CCCCFF"> <td>foo</td> <td> <a href="mailto:foo@mail.com">foo@mail.com</a> </td> </tr> <?rb end ?> </table>
kwartzでtenjinを使う方法
Makoto Kuwataさんに教えて頂きました。
早すぎる最適化オジサン on Twitter: "@rdera とりいそぎ、kwartz 3.2.0用のパッチを作成しました。http://gist.github.com/646778 これを例えばpatch.diffで保存し、kwartz.rbがあるディレクトリでpatch -p1 < patch.diffを実行して下さい"
patch to support RbTenjin · GitHub
kuwata-lab.com
patchをダウンロード
$ git clone git://gist.github.com/646778.git
ダウンロードしたpatchファイル名を変更しとく
$ mv 'patch to support RbTenjin' patch.diff
kwartz.rbのあるディレクトリでpatch適用
$ patch -p1 < patch.diff
で、使えるようになる
$ kwartz -l rbtenjin -p ex.plogic ex.html > ex.rbhtml
jqueryで追加した要素のjavascriptを実行できない
題記の件で、ハマっている。
index.htmlが以下の通り。
<html> <head> <link rel="stylesheet" type="text/css" href="./css/common.css"> <meta http-equiv="Content-Script-Type" content="text/javascript"/> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> <script type="text/javascript" src="./js/hoge.js"></script> </head> <body> <a href="javascript:void(0);" class="hoge">aiueo</a> </body> </html>
.hoge { color: red; }
./js/hoge.jsは以下の通り。
$(function() { $('.hoge').click(function(event){ $(this).after("<br><a href=\"javascript:void(0);\" class=\"hoge\">aiueo</a>"); }); });
で、index.htmlに表示される『aiueo』リンクをクリックすると、
その下に新たにリンク『aiueo』が追加される。
だが、そのリンク『aiueo』をクリックしても、
何の変化もない。つまり、javascriptが実行されない。
なぜなのか、どうすれば良いのか。
cssは適用されているのになぁ〜。
ntpの設定をした
以下の記事を参考に、というか、その通り、nptを設定してみました。
404 Blog Not Found:tips - ntpサーバー選びの傾向と対策
インストール
# yum install ntp
まず、ntpdateで同期
# ntpdate ntp.nict.jp
nptデーモンの設定
# vi /etc/ntp.conf
既存のserver〜の記述を以下の通り、書き換える。
server ntp.nict.jp iburst maxpoll 9 server 0.jp.pool.ntp.org iburst maxpoll 9 server 1.jp.pool.ntp.org iburst maxpoll 9 server 2.jp.pool.ntp.org iburst maxpoll 9
ntpdを起動する。
# /etc/rc.d/init.d/ntpd start
自動的にntpdが起動するようにする。
# chkconfig ntpd on
ローカルネットワークに他のサーバがあり、
ntpで時刻を同期したい場合は、上で設定したサーバと
同期するように設定する。