vim – ソースコードの折り畳み

vimの役立ち機能を知りました。
前のメモに書いたけど、タイトル違うから別メモに書き直し。

それはvimソースの折り畳み機能! これまた強力。
http://blog.remora.cx/2011/01/folding-sources-on-vim.html

例えばPerlとかで。

sub hogehoge {  # {{{
print "some process";
}  # }}}

こうやって書くと。

3lines hogehoge {

こんな感じで補完してくれる。便利や~。

無きゃ無いでそれなりに使えるvimだけど、
まだまだ便利機能が隠れてそう。

文字コードあるある

最近はutf8も使えた方がいい機会が多い気がする。
「何故utf8なのか?」の理由を自分なりに調査。
歴史も知れてなんとなくスッキリ^^

文字コードの略歴

  • コンピュータの発展に伴い文字コードも多様化。
  • 現在では100種類以上の代表的な文字コードが存在する。
  • アルファベット圏では文字コードの発展が早かったが、漢字圏は言語固有で発展。
    • これらは基本的に互換性がない場合がほとんど。
  • 互換性問題を回避するために考えだされた文字コードがUnicode。

用語定義

  • 文字符号化方式:Ascii表など、bit列を文字に変換するルール。
  • 符号化文字集合:文字を重複なく集めたもの。全アルファベット(a-zA-Z)、全ひらかな(あ-ん)みたいな感じ。
  • キャラクタセット:文字符号化方式と符号化文字集合とを合わせた高級概念。主にMIMEを主眼にできた様子。

代表的な文字コード

  • 1バイト文字コード
    • 1バイト系文字コードは「半角文字」と呼ばれたりする
    • Ascii
  • 2バイト文字コード
    • 2バイト系文字コードは「全角文字」と呼ばれたりする
    • ISO-2022-JP (俗称JISコード)
    • EUC (-JP, -KR, -etc)
    • Shift-JIS
    • Unicode(多言語文字集合)

まとめ

  • 文字コードに関してはあまりはっきりした定義がない。
    • ちゃんとした定義があるのかもだが理解には時間がかかりそう。
    • 見るページによってバラバラ。「バラバラです」って説明も多いw
  • 今後のことを考えると当面はutf8を使用するのがよさげ。

PHPでwebプログラミング

PHPを使って何か便利プログラムを書いてみようと思う。
興味があるこのはこんな感じ。

  • webサービスにログイン処理する。

※パスワード管理をうまくやれるとナオヨシ

  • ブラウザを装った動きをする。
    • クッキーとかその辺りも含める
    • Javascriptとかも無問題

これなら慣れてるPerlのがいいかw

サーバ状況確認

今のサーバ環境を整理。

残り3ヶ月弱。
VPSに乗り換えたい気分ではある。
できる限りここでやってみるかな。

DNSなどのサービス運用はできないかもだけど、
VirtualHostなのか、Web系のものを作ることはできる。

Cactiをインストール via yum

すごーーーく久々に書きます。。
ほんと久々過ぎてはてなダイアリーの書き方を忘れるほど(笑

rrdtoolをyumインストール

以前はrrdtoolのインストールにもdagリポジトリを使いましたが、何気にコマンドを実行してみたらrrdtoolがインストールできました。

sudo yum install rrdtool
:
Dependencies Resolved
================================================================================================================
Package                                 Arch                Version                    Repository         Size
================================================================================================================
Installing:
rrdtool                                 x86_64              1.3.8-6.el6                base              293 k
Installing for dependencies:
dejavu-fonts-common                     noarch              2.30-2.el6                 base               59 k
dejavu-lgc-sans-mono-fonts              noarch              2.30-2.el6                 base              393 k
dejavu-sans-mono-fonts                  noarch              2.30-2.el6                 base              450 k
Transaction Summary
================================================================================================================
Install       4 Package(s)
Total download size: 1.2 M
Installed size: 2.7 M
Is this ok [y/N]: y

いつの間にか使えるようになったのですね。
スバラシイ!!

そして、今まで自然と使っていた顔文字がこのPCには入っていない!
まー、大した問題ではないので、その内気が向いたらいれます。
もう入れないかもですねf^^;

Cacti本体をyumインストール

なんとこれもありました。

$ yum list | grep cacti
cacti.noarch                              0.8.8a-2.el6                  epel

もしや、、DefaultでEnableに設定しているかと思って設定を見ましたが、ちゃんとOFFになってました。

$ cat /etc/yum.repos.d/dag.repo
[dag]
name=Dag
baseurl=http://ftp.riken.jp/Linux/dag/redhat/el$releasever/en/$basearch/dag/
enabled=0
gpgcheck=1
gpgkey=http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt

ということでCacti本体もyumで入れてしまいます。

$ sudo yum install cacti
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
* base: ftp.nara.wide.ad.jp
* epel: ftp.kddilabs.jp
* extras: ftp.nara.wide.ad.jp
* updates: ftp.nara.wide.ad.jp
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package cacti.noarch 0:0.8.8a-2.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================================================
Package                 Arch                     Version                          Repository              Size
================================================================================================================
Installing:
cacti                   noarch                   0.8.8a-2.el6                     epel                   2.0 M
Transaction Summary
================================================================================================================
Install       1 Package(s)
Total download size: 2.0 M
Installed size: 5.4 M
Is this ok [y/N]:

スバラシイ。

と思ったらnet-snmpを入れ忘れていたのでこれもインストール。
問題なく入ります。

$ sudo yum install net-snmp

いざCacti設定

と、、、/var以下くらいに入っているかと思って見てみてもCactiいません。。
どこ行った!! と思ったときにピーンと閃きました^^)b
httpdのconfを確認しよう!!
ということで確認!!

$ cat /etc/httpd/conf.d/cacti.conf ←ありました^^)b
:
<Directory /usr/share/cacti/>
 こんなところに!!
:

ということでいろいろ状況を確認していましたが、
ちょっと困ったことに、今のサーバは名前ベースのVirtualHost設定してるの忘れていました。

VirtualHost対応

Alias /cacti    /usr/share/cacti

結局名前ベースでVirtualHostしていて、元々のサーバ名で
webサービスを立ち上げていないので、上記のAlias設定だけでは上手く動作しないので以下を追加。

権限が無い!というエラーが出続けるのでユーザをapache所有に。

sudo chown apache -R /usr/share/cacti

やっぱりダメなのでVirtualHost設定。

# Alias /cacti    /usr/share/cacti コメントアウト
<VirtualHost *:80>
ServerAdmin mail@sample.org
ServerName server.hoge.fuga.com
Alias /cacti /usr/share/cacti
CustomLog logs/cacti-access_log common
ErrorLog logs/cacti-error_log
</VirtualHost>

VirtualHost対応はこれでOK!
でも繋がらなかったのでよくよく設定を見てみると
localhostからしかアクセスを許可しない設定に。。
ということで、Allow from x.x.x.x とIPを足してやりました。
そしたらエラーが変わりました。

MySQL環境を整える

ここまでやるとMySQLのエラーに変わったのでこれに対応。

FATAL: Cannot connect to MySQL server on 'localhost'. Please make sure you have specified a valid MySQL database name in 'include/config.php' [feedly mini]

ということで、丁寧にエラーにファイル名を書いてくれているので中身を修正。

$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "cactipass";

さらにMySQLに空でデータベースを作成。

create database cacti;
grant all privileges on cacti.*
to cactiuser@localhost
identified by 'cactipass';
flush privileges;

adodb.inc.php line 833 エラーに悩む。。

こんなエラーです。

PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted (tried to allocate 523800 bytes) in /usr/share/cacti/lib/adodb/adodb.inc.php on line 833

小一時間格闘しましたが、解決せず。。
一日たって改めていろいろをwebを探し回ったところ解決策を発見!
http://forums.cacti.net/about38106.html

ここで言っているのはMySQLのテーブル定義をしていないので上手く動いてない。
ということでした。

しかし、このページにもある cacti.sql を読み込ませろとのこと。
でも /usr/share/cacti の下を探してもない。。
ということで、本家のtar.gzを解凍したら中に入ってたのでインストール。

wget http://www.cacti.net/downloads/cacti-0.8.8a.tar.gz
tar zxvf cacti-0.8.8a.tar.gz
cat cacti-0.8.8a/cacti.sql
:
mysql -u root -p
xxxx
mysql> use cacti
mysql> source cacti-0.8.8a/cacti.sql
Query OK, 0 rows affected (0.03 sec)
:
mysql>

これでようやくcactiにアクセスできるようになりました。。
なんか、ちょっと回り道しましたが、何とか使えるようになりました。
いろいろと探し回ったりしたので文章書くのも日をまたいでて
一部端折られてたりしますf^^;;;

気になる点が遠慮なくご連絡を。
わかる範囲で回答します!

cacti spineをインストールする

spineはCで書かれた高速Pollerとのこと。
今まで処理速度的に困ってはいなかったが今回初めて入れてみる。

Spineインストール

$ sudo yum --enablerepo=dag install cacti-spine

インストールおわった 笑

Spine動作確認

$ which spine
/usr/bin/spine
$ spine
06/25/2013 11:37:24 AM - SPINE: Poller[0] FATAL: Unable to read configuration file! (Spine init)

これでOKみたいです。
あとはCactiの方からcmd.phpでなくてspineを選べばいい。

さくらVPS優遇施策期間が一ヶ月延長!

SAKURAさん今日メールが届いてました。

■優遇施策の実施期間
 2012年3月29日(木)12:00 [正午] ~ 2012年5月20日(日)23:59まで
 ※当初は、2012年3月29日(木) 12:00 [正午] ~ 2012年4月20日(金) 23:59
  までを予定しておりましたが、上記の通り1ヶ月間延長いたします。

つまりこの期間で移行するということでしょう。
ただ、VPSの反響?のせいもありVPSの在庫がないとのことf^^;
f:id:kuchida123:20120411234457g:image

移行したいのは1Gプラン、どんなにがんばっても2Gプラン。
8Gプランはオーバースペックだしお金もかかる。
似たようなこと考えている人が多いので売り切れてるのでしょうねw

ひとまず、移行期間に新しくVPSを契約して、その後に1年契約VPSを解約。
解約後に早めに新VPSへデータの引っ越し作業をしないといけないので
あまりダラダラやってられないのが現状でしょう。。

となると1ヶ月伸びたことですし移行する先のプランの契約は
VPS在庫が補充されるという4月16日までは様子見します。

新しいVPSは使えない!
古いVPSは契約切れで使えない!
とかなるとデータを保存する先がないので全部消えてしまします。。

いやぁ、、Wordpressとかでも引っ越しやすさに視点を置いて
かかれている記事とかをたまに見たりしますが、こうやってサーバ側の
事情で引っ越しをせざるを得ない場合があることを考えると
普段から引っ越しを見越したサービス導入を考えておくことは
なかなか重要なことだったりしますね。

ということで!
しばらくSakuraさんの様子をうかがっていたいと思います^^
たいがいいろんなところでニュースになるでしょうし
動きはチクイチ入ってくるでしょう!!