RedisのCクライアント(hiredis)を試してみた

RedisのCクライアントであるhiredisをちょっと試してみた際のメモ。
使用した環境はCent OS 5.8(仮想OS)。
まずは以下のコマンドを実行してインストールを実施。特にエラーなく終了。

> git clone git://github.com/redis/hiredis.git
> cd hiredis
> make
> sudo make install

テストプログラムは以下。

#include <stdio.h>
#include "hiredis.h"

int main(void) {
    redisContext *c = redisConnect("127.0.0.1", 6379);
    if (c->err) {
        printf("Connect NG: %s\n", c->errstr);
    } else {
        redisReply *reply = redisCommand(c, "PING");
        printf("PING: %s\n", reply->str);
        freeReplyObject(reply);
    }
    return 0;
}

以下のコマンドでビルド実施。

> gcc hiredisTest.c -L/usr/local/lib/ -I/usr/local/include/hiredis/ -lhiredis

で、作成したプログラムの実行結果は以下。特に問題なくhiredisを使うことが出来た。

> a.out
PING: PONG

CentOSにredisをインストールした時のメモ

CentOS 5.8にredis 2.6.7をインストールした際にやった事をメモしておく。

> wget http://download.redis.io/redis-stable.tar.gz
> tar xvzf redis-stable.tar.gz
> cd redis-stable
> make

Redis Quick Start – Redisに従い、上記コマンドを実行すると以下のエラーが発生。

zmalloc.o: In function `zmalloc_used_memory':
/home/tomute/redis_lessons/redis-stable/src/zmalloc.c:223: undefined reference to `__sync_add_and_fetch_4'
collect2: ld はステータス 1 で終了しました
make[1]: *** [redis-server] エラー 1
make[1]: ディレクトリ `/home/tomute/redis_lessons/redis-stable/src' から出ます
make: *** [all] エラー 2

ということでError compiling branch 2.6 in RHEL5 with 32bit mode · Issue #753 · antirez/redis · GitHub等を参考に、Makefileを以下のように修正。

(変更前)
$(MAKE) CFLAGS="-m32" LDFLAGS="-m32"
(変更後) -march=i686を追加
$(MAKE) CFLAGS="-m32 -march=i686" LDFLAGS="-m32"

その後以下のように再度makeすると無事makeに成功。

> make clean
> make

が、make testをすると以下のエラーが発生。

You need 'tclsh8.5' in order to run the Redis test
make[1]: *** [test] エラー 1
make[1]: ディレクトリ `/home/tomute/redis_lessons/redis-stable/src' から出ます
make: *** [test] エラー 2

tclsh8.5が必要ということで、tclsh8.5をインストールして、再度make testを実施すると無事成功。
最後にmake installを実行すればインストール終了である。
インストールが成功したかどうかは以下のコマンドを実行して確認する。

> redis-server --version
Redis server v=2.6.7 sha=00000000:0 malloc=jemalloc-3.2.0 bits=32

【tclsh8.5のインストール】

> wget http://prdownloads.sourceforge.net/tcl/tcl8.5.13-src.tar.gz
> tar xvzf tcl8.5.13-src.tar.gz
> cd tcl8.5.13/unix
> ./configure
> make
> make test

【メモ】
CentOSのバージョン確認方法

> cat /etc/redhat-release

Mininetのセットアップ

スタンフォード大学で開発されているMininetというツールを使うとOpenFlowを気軽に試せるという事で、試しにセットアップした際のメモを以下に記載しておく。


使用環境
ホストOS: Mac OS X 10.8.2
仮想化ソフト: VirtualBox 4.2.6


Mininetのセットアップ
基本的には本家サイトのセットアップ手順に従い実施。

  1. ダウンロードサイトからmininet-2.0.0-113012-amd64-ovf.zipをダウンロードして解凍。
  2. VirtualBoxのメニューで[File] -> [Import Appliance...] -> [Open appliance...]を選択し、解凍したフォルダ内にあるmininet-vm.ovfをインポート。これで仮想マシン(mininetが入ったUbuntu 12.10)のインポートが出来る。
  3. VirtualBoxのメニューで[Setting] -> [Network]を選択し、「Adapter 1」の「Attached to」を「NAT」から「Bridged Adapter」に変更。これで仮想マシンにホストOSからtelnet等でログイン出来るようになる。
  4. インポートした仮想マシンを起動

以上でセットアップは終了である。

How to stop "Listen has fallen back to polling" warning of Sass while watching for changes.

You would have a following warning message while you are trying to watch for changes with Sass.

---------------------------------------------------------------------------

WARNING: Listen has fallen back to polling, learn more at https://github.com/guard/listen#fallback.

---------------------------------------------------------------------------

 

In this case, run following command at first.

---------------------------------------------------------------------------

> gem install listen

---------------------------------------------------------------------------

 

Then, if you still have a warning message like as follows,

---------------------------------------------------------------------------

[Listen warning]:

  Missing dependency 'rb-inotify' (version '~> 0.8.8')!

  Please run the following to satisfy the dependency:

    gem install --version '~> 0.8.8' rb-inotify

  

  For a better performance, it's recommended that you satisfy the missing dependency.

  Listen will be polling changes. Learn more at https://github.com/guard/listen#polling-fallback.

---------------------------------------------------------------------------

 

Run following command (It depends on the message).

---------------------------------------------------------------------------

gem install rb-inotify

---------------------------------------------------------------------------

 

MacBook Proへの移行でやった事メモ

2008年の末にMacBookを買ってから約4年ほど使用して来たのだが、流石に動作が重くて厳しくなって来たので、つい先日MacBook Pro 15インチ Retinaディスプレイモデルを購入。
データの移行はMacの移行アシスタントとを使ったのであっさりと終わったのだが、一部再設定などが必要になった所があったので、その辺をメモしておく。


【再設定した項目】
・プリンタ
 設定が引き継がれていなかったので、再度設定する必要があった。
OS XTwitterFacebook統合機能
 設定は引き継がれていたのだが、何故か認証に失敗のエラーが出て投稿出来ず。
 一旦設定を削除して再設定(旧マシンの方で設定削除してから実施)。
Google Drive
 アプリを起動するとGoogle Driveのフォルダがないといったようなエラーが出たので、一旦フォルダを削除して、再設定を実施。
iTunesでのコンピュータの認証
 古いMacBookは人に譲るので、認証を取り消す作業を忘れず実施。
iPhoneiPadの接続
 iPhoneiPadは自動認識されなかったので、一旦ケーブルで直接MacBook Proに接続して、同期を実施。移行はWiFiに接続していれば自動認識されるようになった。


【引き継げなかった項目】
・TimeMachineの履歴
 TimeMachineのデータからではなく、古いMacBookから直接データ移行したせいか、TimeMachineの過去履歴を移行出来なかった。ただ、特に必須ではなかったので移行はせず。


【その他】
・Hosterの再インストール
 Mountain Lionにバージョンアップした時も発生したのだが、Hosterが起動しなくなったので再インストール。再インストールしたら問題は解消。
Cyberduckの前提となるJava SE 6のインストール
 CyberduckをインストールしようとするとJava SE 6のインストールが必要と出てきたので、インストールを実施。Java SE 6が移行されなかった?


MacBook ProRetinaディスプレイモデルを2日ほど使ってみた感想だが、やはり画面の綺麗さは凄いというのが一番。iPhone 5Retinaディスプレイはそこまで凄いと思わなかったのだが、やはり画面が大きいとその良さが分かりやすいのかも。あと、13インチから15インチに画面サイズが変わったのだが、思った以上に大きくなったと感じる(良い意味で)。
ちなみにデータ移行はWiFiでやったのだが、4時間程度で終わったので、有線LANなくて大丈夫かなと思っていたが杞憂であった。

Codecademyのベータテストに参加する方法

最近オンラインでプログラミングを学べるサイトが沢山出てきたが、その中の一つCodecademyJavaScriptjQueryを中心に学ぶことが出来る。


しかし、このCodecademyのベータテストに参加すると、JavaScriptに加えてRubyPythonも学ぶことが出来るようになる(本日時点ではベータテストでもRubyはまだ準備出来ていない模様)。


ベータテストへの参加は非常に簡単なので、以下に説明する。
1. Codecademyのトップページの右上部にある[Settings]メニューを選択する
2. [Edit Account]の画面が開くので[Settings]タブを選択する
3. [Settings]画面を下にスクロールしていくと、以下の画面のように[Become a Beta Tester]というメニューが出てくるので、ベータテストに参加したい言語を選択し[Update Settings]のボタンを押す。

以上でベータテストへの参加登録は終了である。


ベータテストへの参加登録終了後に、コース一覧画面を表示すると、以下のように言語の選択肢として[Python]が表示されるようになり、同時に[Beta mode]にチェックを入れると、ベータテスト中の学習コースが表示されるようになる。

なお、ベータテスト中の学習コースは問題が不完全だったり、正しい回答をしても正解にならない等、色々不具合はあると思われるが、そういう時は[Send feedback]のメニューからどんどん問題点を送信して、品質向上に貢献しよう。


Keyboard shortcuts for HP WebOS running in VirtualBox on Mac OS.

  • fn + left  -->  Pushing Home button (Minimizes and maximizes the card)
  • fn + right + right -->  Showing lock screen
  • fn + F6 + F9  -->  Rotating device clockwise
  • fn + F9 + F6  -->  Rotating device counterclockwise
  • left or right  -->  Switching the app left or right in the Card view
  • left click + swipe  -->  Scrolling window

f:id:tomute:20120604232218p:plain

Note: After shrink an app image with fn + left key, drag the app and drop it off the screen (e.g. buttom of the screen), and you can clear the app.