月: 2012年11月

zenback導入してみた

zenback導入してみた

zenback

PV(ページビュー)で悩むならzenbackで一発解決!

zenbackは、たった1行のコードを埋めるだけで、ブログ記事ののPVが10%向上する魔法のサービス。しかも無料!

本当かな~と疑いつつとりあえず導入。

上記サイトではMTへの導入だったけど
このブログはWordpressなのでWordpress用
に簡単なプラグインが無いか調べてみたらやっぱりあった。

ブログ記事下にzenbackを表示する簡単方法 WordPressプラグイン「EZ zenback」

プラグインの検索で「EZ zenback」を検索してインストール

設定でzenbackのタグを埋め込み

その他項目の調整

設定の保存で終了

zenbackのエリアがちゃんと表示されるには時間がかかるみたい
なので気長に待つ。

./jqをインストールする

./jqをインストールする

MOONGIFT:JSONを使った開発のお供にどうぞ「jq」

JSONデータ構造を見やすくしてくれるコマンド。

本家サイト

jq is like sed for JSON data – you can use it to slice and filter and map and transform structured data with the same ease that sed, awk, grep and friends let you play with text.

■環境確認

# cat /etc/redhat-release
CentOS release 5.7 (Final)
# uname -a
Linux xxxxxxx.com 2.6.32-042stab049.6 #1 SMP Mon Feb 6 19:16:12 MSK 2012 i686 i686 i386 GNU/Linux

■ソースのダウンロード(今回の環境ではDownload source)

# cd /usr/local/src/
# wget http://stedolan.github.com/jq/download/source/jq.tgz
--2012-11-02 14:02:39--  http://stedolan.github.com/jq/download/source/jq.tgz
stedolan.github.com をDNSに問いあわせています... 204.232.175.78
stedolan.github.com|204.232.175.78|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 450943 (440K) [application/octet-stream]
`jq.tgz' に保存中

100%[===================================================================================================================>] 450,943      339K/s 時間 1.3s

2012-11-02 14:02:41 (339 KB/s) - `jq.tgz' へ保存完了 [450943/450943]

■ソースの展開

# tar xzvf jq.tgz
stedolan-jq-95a0074/
stedolan-jq-95a0074/.gitignore
.....ずらずら.....
stedolan-jq-95a0074/testdata

■フォルダに入ってmake

# cd stedolan-jq-95a0074/
# ls
COPYING    builtin.h   compile.h  forkable_stack.h    jv.c       jv_parse.c    jv_unicode.h          lexer.l    opcode.h       parser.gen.info
Makefile   bytecode.c  docs       frame_layout.h      jv.h       jv_parse.h    jv_utf8_tables.gen.h  locfile.h  opcode_list.h  parser.h
README.md  bytecode.h  execute.c  gen_utf8_tables.py  jv_dtoa.c  jv_print.c    lexer.gen.c           main.c     parser.gen.c   parser.y
builtin.c  compile.c   execute.h  jq_test.c           jv_dtoa.h  jv_unicode.c  lexer.gen.h           opcode.c   parser.gen.h   testdata
# make
gcc -Wextra -Wall -Wno-missing-field-initializers -Wno-unused-parameter -std=gnu99 -ggdb -Wno-unused-function -O -DJQ_DEBUG=0 -o jq parser.gen.c lexer.gen.c opcode.c bytecode.c compile.c execute.c builtin.c jv.c jv_parse.c jv_print.c jv_dtoa.c jv_unicode.c main.c
# ll
合計 860
-rw-rw-r-- 1 root root   2957 10月 22 03:52 COPYING
....
-rwxrwxr-x 1 root root 292707 11月  2 14:04 jq
....

■「jq」が出来たので「/usr/local/bin/」にシンボリックを貼ってコマンドを登録

# cd /usr/local/bin/
# ln -s /usr/local/src/stedolan-jq-95a0074/jq
# ll
合計 5932
.....
lrwxrwxrwx 1 root root      37 11月  2 14:05 jq -> /usr/local/src/stedolan-jq-95a0074/jq
.....

■サイトのサンプルを試す

# curl 'http://search.twitter.com/search.json?q=json&rpp=5&include_entities=true' | jq '.results[0]'
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  5192  100  5192    0     0  11854      0 --:--:-- --:--:-- --:--:-- 2708k
{
  "to_user_name": null,
  "to_user_id_str": "0",
  "to_user_id": 0,
  "id": 264231272392581120,
  "geo": null,
  "from_user_name": "Chris Johnson",
  "from_user_id_str": "911210857",
  "from_user_id": 911210857,
  "from_user": "CHRISpy_Json",
  "entities": {
    "user_mentions": [],
    "urls": [],
    "hashtags": [
      {
        "indices": [
          103,
          121
        ],
        "text": "accomplishedtweet"
      }
    ]
  },
  "created_at": "Fri, 02 Nov 2012 05:03:39 +0000",
  "id_str": "264231272392581120",
  "iso_language_code": "en",
  "metadata": {
    "result_type": "recent"
  },
  "profile_image_url": "http://a0.twimg.com/profile_images/2777986607/635aaa3cc2f805fb9f642d6e616e3ce0_normal.jpeg",
  "profile_image_url_https": "https://si0.twimg.com/profile_images/2777986607/635aaa3cc2f805fb9f642d6e616e3ce0_normal.jpeg",
  "source": "<a href="http://twitter.com/download/iphone">Twitter for iPhone</a>",
  "text": "It's 1 in the morning, i just finished all of my hw, i got to skype ailise and i'm not even that tired #accomplishedtweet",
  "to_user": null
}

出来たー

LPIC レベル2関連-カーネルコンパイルについて

LPIC レベル2関連-カーネルコンパイルについて

■カーネルの再構築を考慮するケース
・必要なデバイスドライバがカーネルに含まれていない
・使用しているハードウェアに最適化したカーネルを利用したい
・カーネルの最新の機能を利用したい
■カーネルコンパイル(再構築)の流れ

ハードウェアの確認
必要な機能の確認
カーネルの確認
コンパイルに必要なツールの準備
カーネルソースの入手
カーネルソースコードの展開
パッチの適用
既存カーネルの設定を反映させる
/usr/src/linuxへのシンボリックリンクを張る
カーネルを設定する
コンパイルを実行する
カーネルに動的に組み込むモジュール(ローダブル・モジュール)を/lib/modules/[カーネルバージョン]以下に格納する
カーネルに導入する
ブートローダに登録する
システムを再起動して起動を確認する

■メモ
・カーネルコンパイルの難所はカーネル・パラメータの指定内容とコンパイル時の依存関係
・静的に組み込む、組み込まない、動的に組み込むモジュールがある
・設定に迷ったらモジュールにする
・入手したカーネルは慣習として/usr/srcディレクトリに展開する
・カーネル・パラメータの設定は「menuconfig」を推奨?
・カーネルを再構築する場合はカーネルモジュールもカーネルにあわせてコンパイルしなおす必要がある
・kernel.orgで配布されているディストリビュータの手が入っていないカーネルのことをvanilla kernelという

■参考URL

Linuxカーネル・コンパイル入門 前編

Linuxカーネル・コンパイル入門 後編

Linuxカーネルの設定パラメータ

CentOSに最新カーネルを導入する(カーネル再構築)

[LPIC]カーネルの再構築(実際に実施したメモ)

The Linux Kernel Archives(カーネル開発グループが配布しているオリジナルのカーネル・ソース)

■自分でコンパイルしたログ

◇フォルダ移動
# cd /usr/src/
◇カーネルソースの取得
# wget http://www.kernel.org/pub/linux/kernel/v2.6/longterm/v2.6.32/linux-2.6.32.60.tar.bz2
◇ソース展開
# tar xjvf linux-2.6.32.60.tar.bz2
◇フォルダに入る
# cd linux-2.6.32.60
◇現在のカーネルの設定をコピー
# cp /boot/config-2.6.18-308.el5 .config
◇現在のカーネルの設定を新しい設定に反映させる
# make oldconfig | tee oldconfig.log
◇カーネルコンフィギュレーション
これやら無いと起動時にkernel panic出てびっくりした。
# make menuconfig
General setup --->
[*] enable deprecated sysfs features to support old userspace too
◇設定が反映されているか確認(yになってることを確認)
# cat .config | grep CONFIG_SYSFS_DEPRECATED
CONFIG_SYSFS_DEPRECATED=y
CONFIG_SYSFS_DEPRECATED_V2=y
◇makeする(カーネルとカーネルモジュールのコンパイル)
# make | tee make.log
◇カーネルモジュールのインストール
# make modules_install | tee modules_install.log
◇カーネルのインストール
# make install | tee install.log
◇起動の順番を変える(default値の変更)
# vim /boot/grub/menu.lst
◇再起動
# reboot
◇確認
# uname -r
2.6.32.60

※LPICレベル2の順番だと出来なかったので以下のサイトを参考に実際にコンパイルを行った。
centosのkernel再構築 2.6.18→2.6.37(stable)