OPEN SOURCE LABORATORY

投稿日:2011年4月21日 -投稿者 koyamamoto

pythonでスクレイピング

rubyでスクレイピングしている記事が目に入ったので

突発的にpythonでスクレイピングする記事を書きたいと思います。

内容も同じことを目指したいと思います。

セットアップ~ブログ記入完了まで1時間30分しかありませんが始めます。

 

まずこれを書いているマシンがセットアップしたてのためまっさらな環境です :-)

まずpythonのインストールからはじめました。

 http://www.python.org/download/

3.0系が出て時間がたちましたが、

GAEなどをはじめとしていまだに2.0系でないと対応できないものも多く

ここでは2.7.1を利用します。

Winではexeからインストールを行い、

環境変数PATHにインストールしたディレクトリを追加しました。

 

次にあると便利なeasy_installを入れておきます。

今回ただスクレイピングするだけなら必要ありませんが

せっかくですし便利なので入れておきましょう。

 http://peak.telecommunity.com/dist/ez_setup.py

インストールの仕方はほかのサイトなどで詳しく解説されていますのでそちらも参照お願いします。

上のリンクからpythonファイルをダウンロードし、

 > python ez_setup.py

と実行してやることでインストール完了です。

Winなので”C:\Python27\Scripts”のようにSriptsディレクトリをPATHに追加してください。

 

easy_installが入ったのでこれを利用してBeautiful Soupをインストールします。

 > easy_install beautifulsoup

これだけで完了です。簡単ですね、素敵ですね。

easy_installを入れた甲斐がありました。

 

さてここまで出ようやく準備が整いましたので本題に入ります。

まずBeautiful Soupを使うためにimportします。

 >>> from BeautifulSoup import BeautifulSoup

urllib2も利用しますのでこちらもインポートします。

 >>> import urllib2

 

さてそれではスクレイピングをはじめます。

まずスクレイピングするURLの指定とBeautifulSoupへの読み込みを行います。

 >>> url = “http://www.kdl.co.jp/

 >>> srcHtml = urllib2.urlopen(url).read()

 >>> soup = BeautifulSoup(html)

これで下ごしらえは完了です。

変数soupにhtmlソースがいい感じに溶け込みました。

 

さてこのスープからタグ<a>を抜き出してみます。

もっとも単純に抜き出す方法は

 >>> soup(“a”)

とすることです。

画面上にずらずらと<a>~</a>の部分が表示されたと思います。

改行くらい・・・という場合は

 >>> for a in soup(“a”):
    …   print a

のようにpythonの一般的な処理を行います。

タグは必要ないよ、大切なのは中身だよ、という場合には

 >>> for a in soup(“a”):
    …   print a.contents

を試してみてください。

 

さて先ほどの

 >>> soup(“a”)

は変数soupを使うと

 >>> soup.findAll(“a”)

とも書けます。

findAllは第二引数以下にタグ内の要素を指定できます。

「ヘッダータブのaタグのみ抜き出し」ということは

divタグの要素id=”globalNav”がほしいということですので

 >>> soup.findAll(“div”, id=”globalNav”)

とすることで取得できます。

このままではdivタグ全体が取れてきますので

 >>> for divs in soup.findAll(“div”, id=”globalNav”):
   …    divs.findAll(“a”)

とすることで目的の<a>~</a>のみが取り出せましたね。

 

最終的に

>>> for divs in soup.findAll(“div”, id=”globalNav”):
   …   for aaa in divs.findAll(“a”):
   …     for a in aaa.contents:
   …       print a
   …
ホーム
ソリューション
事例紹介
会社概要
CSRへの取組み
採用情報

と中身だけ取り出すことができました。

(最後強引過ぎですかね・・・。先輩のpython使いに指導されそうです。。)

—–

from BeautifulSoup import BeautifulSoup

import urllib2

url = “http://www.kdl.co.jp/

srcHtml = urllib2.urlopen(url).read()

soup = BeautifulSoup(html)

for divs in soup.findAll(“div”, id=”globalNav”):
    for aaa in divs.findAll(“a”):
        for a in aaa.contents:

            print a
—–

 

投稿日:2011年4月14日 -投稿者 S.M.

PDFからテキストを抜き出すには

今回はPDFからテキスト文を抜き出す方法についてです。
PDFからテキストを抜き出すにはpdftotextコマンドを使います。
通常インストールしたCentOSには入っていないので、yumからインストールします。
yum install poppler poppler-utils poppler-devel

==================================================================================================================================================================================================================
 Package                                           Arch                                     Version                                                  Repository                                              Size
==================================================================================================================================================================================================================
Installing:
 poppler                                           i386                                     0.5.4-4.4.el5_5.14                                       rhel-i386-server-5                                     3.0 M
 poppler-devel                                     i386                                     0.5.4-4.4.el5_5.14                                       rhel-i386-server-5                                     592 k
 poppler-utils                                     i386                                     0.5.4-4.4.el5_5.14                                       rhel-i386-server-5                                      73 k

Transaction Summary
==================================================================================================================================================================================================================
Install       3 Package(s)
Upgrade       0 Package(s)

Total download size: 3.7 M

無事インストールが完了したらpdftotextコマンドが使えるようになっているはずです。

ここまで来たらあとは簡単。
pdftotextでテキスト化したいPDFを選択するだけです。
今回は弊社のプレスリリースから「セルフオーダー用タブレットPCアプリを発表しました。」をテキスト化してみましょう。

Read the rest of this entry »

投稿日:2011年4月13日 -投稿者 S.M.

rubyでスクレイピング

今回のネタはrubyを使ったスクレイピングについてです。

PHPとかでもできますが、敢えてrubyで挑戦してみました。
ということで、早速スクレイピングしてみたいと思います。
まずは弊社HP(http://www.kdl.co.jp/)からaグのみを抜き出してみましょう。
検証した環境は以下の通り。
バージョンがちょっと古いですが、1.8系であれば最新版でも動くかと思います。
ruby 1.8.5 (2006-08-25) [i386-linux]
ruby-gem 1.3.5
nokogiri 1.4.4
ソースは以下のとおり。
■ sample.rb
$KCODE = “UTF8″
require ‘rubygems’
require ‘nokogiri’
require ‘open-uri’
page = open(“http://www.kdl.co.jp/”)
html = Nokogiri::HTML(page.read, nil, ‘UTF-8′)
html_a = html.search(‘//a’)
html_a.each_with_index do |a, i|
  puts a
end
さてさて、結果は...

Read the rest of this entry »

投稿日:2011年3月7日 -投稿者 S.M.

androidアプリを公開してみて

今回はandroidの開発を決意~現在に至るまでの軌跡を書いてみたいと思います。
1月8日に神戸で行われた関西アンカンファレンスで発表した元ネタですので、
プレゼン資料と被ってる部分もありますが、ご容赦ください。
ということで、これまでのandroidの取り組みを時系列で書いてみると・・・
 ■ 2010年5月(GW)
   会社の同僚数名と萩に開発合宿に行く。
  当時これと言ってやりたいことがなかったので、
  これから流行りそうなandroidアプリでも触ってみるかと
  軽い気持ちでアプリ開発に手を出すことに。
   合宿中に自分が歩いた経路を記録するアプリを作るが、
  既にgoogleがMyTracksという作りたかった機能すべてを盛り込んだアプリを
  出してて絶望する。
 ■ 2010年6月
   5月に注文したandroid端末(HTC Desire)が一ヶ月経ってようやく届く。
  6月末から1週間旅に出るつもりだったので、それまでにアプリを作ろうと決意する。
——————————————————————————–
毎年夏に有給をとって1週間旅に出るというのをここ数年やっています。
去年は「青森・北海道」、一昨年は「北陸」を1週間かけて回ってきました。
で、移動手段は主に車を使い、1回の旅行で1,000~2,000kmぐらい走るんですが、
土地勘のない場所で”安い”ガソリンスタンドを探すは毎回苦労していました。
これまではホテルの無線LANを利用し、gogo.gsというサイトで
周辺の安いスタンドを探すという手段を取っていましたが、
せっかくスマートフォンを手に入れたので、アプリはないかと探してみましたが、
当時androidアプリはなく、「無いのなら自分で作ってやろう」ということで
アプリの作成に取り掛かりました。
~ 実際に使ってみて ~
 旅先で何回か使ってみてたところ、投稿が多い地域では結構使えるかも
という印象を持ちました。
ただ、地方に行くほど投稿件数が少なく、検索してもほとんどヒットしないケースも・・・
——————————————————————————–
 ■ 2010年7月
  オレオレ機能満載だったアプリを万人向けに改修し、
 7月18日にandroidマーケットにリリース。
  →リリース後1週間で1,000ダウンロードを記録する。
  アプリをリリースして1週間ほど経ったある日、
 android情報サイトからレビューの掲載確認メールが突然届く。
  →レビュー掲載後、2日間で1,000ダウンロードを記録し、
   その後もコンスタントにダウンロードされる。

Read the rest of this entry »

投稿日:2011年2月25日 -投稿者 T.H.

WordCamp福岡に参加してみて

こんにちは!

洗濯物を溜めてしまい、私服がなくなり
スーツで出社しているT.H.です。
2/19(土)にWordCamp福岡に行って参りました!
自身でコンタクトフォームのプラグインを公開しているのですが、
そのプラグインがきっかけでスピーカーとして参加させて頂けました!
↓いっちょ前に写真も載せていただいています 笑
http://2011.wordcampfukuoka.com/speakers/
当日の朝、新幹線で福岡入り。
で、博多駅で朝定食(魚うまかった!)を食べて、会場の九州産業大学さんへ
会場へ着いて受付。
受付は女子ばかり!かなり華やか!さすが福岡です。
で、早速、はじめのセッション。
マックラケン直子さんのセッション
「パブリッシングツールWordPressのこれから」
WordPress3.0は現在約3000万ダウンロード。
もはや、ブログツールやCMSの枠を超えて、プラットフォームになろうとしてますね。
いくつかセッション回ってとうとう自分の番。ガクガクブルブル。
テーマは「WordPressのプラグインを公開してみて」
というタイトルで最近公開したプラグインの紹介や公開して自分の中で変わったことを
紹介してWordPressでプラグインを公開することの魅力について話しました。
いろんな意見を頂き、プレゼン中、寝癖がたってたわりには上出来だったんじゃないかなと思ってます!
今回はWordPressコミュニティの人達とも仲良くなれたり、セッション持たして
頂いたり、非常に収穫の多いWordCamp福岡でした。
最後にWordPressについて。
以前はブログツールという呼ばれ方をされていましたが、
今や公式サイトの方では「Publishing Tool」という呼ばれ方をされています。
今やは世界の約8.5%のwebサイトが
WordPressで出来ているというデータも存在しています。
おそらく、将来的には多くのコニュニティやプラグイン、テーマに支えられ
webという世界でのひとつのプラットフォームに進化していくことでしょう。
というか自分はプラグイン開発者としてWordPressをプラットフォームと言われるまで進化させたいという夢があります。
誰でも簡単にソフトウェアを進化させる人になれるのはやっぱオープンソースの魅力ですね!
今後も頑張っていきたいと思います!

投稿日:2011年1月28日 -投稿者 koyamamoto

pwconvでも復帰できないパスワード変更時エラーに対応する

Red Hatを使用していてパスワードを変更する必要があったので、
いつものように
  $ passwd
したところエラーが発生しました。
  Changing password for user hogehoge.
  passwd: Authentication token manipulation error

だそうです・・・。

(※以下は必ずテスト環境かバックアップをとった上でお試しください※)
ところでユーザーを作成した場合、
ユーザのアカウント(パスワードなど)情報は
/etc/passwdへ書きこまれて保存されています。
  $ cat /etc/passwd
していただくと中身が確認できますね。
ずらずらっとユーザの情報が表示されると思います。

もしかすると表示された内容を見て
「あれ?パスワードはどこ?」という方がいらっしゃるかもしれません。
そうです、passwdファイルに書きこまれたパスワードは
伏字(x)に置き換えられています。
passwdファイルは誰でも見ることができるため、
ここにパスワードを暗号化せず保存してしまうとバレバレだからですね。

今度は/etc/shadowを見てみましょう。
  $ cat /etc/shadow

どうですか?
もし一般ユーザなど権限のないユーザの場合
cat: /etc/shadow: Permission denied」と表示されたはずです。
試しにrootユーザでもう一度実行すると内容が表示されます。

つまりpasswdファイルは
shadowファイルにハッシュ化されて保存されていますので
他の人にはバレないような仕組みになっています。
passwdファイルからshadowを作るためにはpwconvコマンドを使います。

さて最初の話に戻りますね。
まれにですが上のpasswdとshadowがうまく噛み合わず、
パスワード変更時にうまく変更できずエラーが発生する場合があります。
それが「Authentication token manipulation error」なんです。

検索するとよく出てくる対処法は
  $ pwconv
を再実行してpasswdとshadowをもう一度付きあわせてやる方法です。
たいていこれでうまくいくと思います。

しかし今回はこれでもうまくいきませんでした。
pwconvすら効かないほどに機嫌が悪かったようです。

いろいろ悩みましたがshadowファイルをpasswdに戻して
    # passwdファイルにパスワードが書かれた状態に一度戻して
もう一回pwconvしてみる作戦を試しました。

まずpwconvの逆のコマンドpwunconvを実行します。
権限ユーザの必要がありましたのでrootになりました。
  $ su
  # pwunconv
確認すると/etc/shadowがなくなり、/etc/passwdに「x」ではなく
ハッシュ化されたパスワードが書かれています。
さてもう一shadow化するので
  # pwconv
としました。
passwdを確認するときちんとパスワードは「x」に置き換えられていて
shadowも作成されていました。

ようやくパスワード変更が試せます。
  $ passwd
  New password:
と新しいパスワードを聞かれたのでうまくいったみたいですね。

passwdとshadowの整合性を取り直してもだめなときは
shadowを一度捨ててもう一度つくり直してみてください

パスワード変更時に起きるトラブルへの対策でした。

投稿日:2011年1月18日 -投稿者 T.H.

node.jsをインストールしたときのメモ

こんにちは。

年末年始に金を使いすぎ、
最近カレーとカップめんばかり食べているT.H.です。
や、やさいが食べたい。。
さて、本題に入りまして、最近なにかと話題のnode.jsをインストールして試してみました。
node.jsとはネットワークサーバが構築できるイベント駆動型のサーバサイドjavascriptです。
google製のV8エンジンを使用して動作します。
特徴として非常に高速に動作してくれます。
apache等の通常のネットワークサーバはスレッドモデルといって、1スレッドが「リクエスト→サーバでの処理→レスポンス」を処理するわけですが、サーバでの処理が非常に重かったりすると、リクエストに大量に待ちが生じてしまったりするわけです。
ところが、イベント駆動型のnode.jsは1つのリクエストを捌くとサーバの処理を待たずして次のリクエストを捌きに行きます。リクエスト、サーバの処理、レスポンスを1つの塊ではなく、別個のイベントとして順次処理していくため非常に高速に動きます。
わかりやすい説明はこちらから
http://www.atmarkit.co.jp/fcoding/articles/websocket/01/websocket01a.html
今回のゴールとしてはnode.jsでhttpリクエストに対して「Hello World」を返すネットワークサーバを立てるところまでやってみたいと思います。
実行環境
CentOS4(5系が身近になかった。。)
node.js-0.2.6
python(2.4以降)
openssl
node.jsのインストール

本家サイトよりnode.jsをダウンロードします

# wget http://nodejs.org/dist/node-v0.2.6.tar.gz
# tar zxvf node-v0.2.6.tar.gz
# cd node-v0.2.6
# ./configure

さっそくconfigureでこける。。pythonのバージョンが2.3.4だかららしい。

なのでバージョンを2.7にアップ。

# wget http://www.python.org/ftp/python/2.7/Python-2.7.tgz
# tar zxvf Python-2.7.tgz
# cd Python-2.7/
# ./configure
# make
# /usr/sbin/checkinstall –fstrans=no
# rpm -Uvh /usr/src/redhat/RPMS/i386/Python-2.7-1.i386.rpm

今度はconfigureは通った
# ./configure
# make

どきどきどき。make通れよ~。

../src/platform_linux.cc:29: error: `PR_SET_NAME’ was not declared in this scope
Waf: Leaving directory `/root/node-v0.2.6/build
Build failed:  -> task failed (err #1):
        {task: cxx platform_linux.cc -> platform_linux_4.o}

 あーーーー!!!Cent4は古すぎたか。。ということで/src/platform_linux.cc:29行目を

コメントアウトしても問題ないらしいので、コメントアウト。
void OS::SetProcessTitle(char *title) {
  if (process_title) free(process_title);
  process_title = strdup(title);
–  prctl(PR_SET_NAME, process_title)
++ //  prctl(PR_SET_NAME, process_title);
}

再度、makeを実行

# make
# make install

→ ’install’ finished successfully (1.168s)

無事インストール完了。

Hello Worldサーバの構築

node.js公式サイトのサンプルソースをコピペしてexample.jsという名前で保存します。

var http = require(‘http’);
http.createServer(function (req, res) {
  res.writeHead(200, {‘Content-Type’: ‘text/plain’});
  res.end(‘Hello World\n’);
}).listen(8124, “127.0.0.1″); //ポート8124のアクセスに対して「Hello World」を返す
console.log(‘Server running at http://127.0.0.1:8124/’);

先ほどのjsを実行します。

# /usr/local/bin/node example.js
Server running at http://127.0.0.1:8124/

そしてブラウザから実際にアクセスしてみると。。

nodejs.jpg
 
ちゃんとHello Worldが返ってきました。
他にもnode.js用のフレームワークやMysql用ドライバなんかも出ているようですね。

node.jsのフレームワーク「Express」
 http://github.com/visionmedia/express 

MySQLドライバの「node-mysql」 
http://github.com/masuidrive/node-mysql 

node.jsとMySQLで割と普通のデータベースウェブアプリを作ってみるチュートリアル

http://sakuratan.biz/archives/3101

投稿日:2010年12月24日 -投稿者 S.M.

[android] アプリにGoogleAnalyticsを埋め込むには

今回はandroidアプリにGoogleAnalyticsを仕込む方法を紹介します。
GoogleAnalyticsといえば「Webサイトのアクセス解析でしょ」と思われがちですが、
スマートフォンアプリ(iphone,android)でも利用が可能です。
① Google Analytics SDK for Androidの用意
以下のページからSDKをダウンロードします。
http://code.google.com/intl/ja/mobile/analytics/download.html
# 2010/12/07時点での最新版は0.8
ダウンロードしたら、ファイルを展開してプロジェクトに組み込みます。
eclipseを開いて、プロジェクトを右クリック→「ビルド・パス」→「ビルド・パスの構成」を選択し、
ライブラリタブを選択。「外部 Jar 追加」を選択し、「libGoogleAnalytics.jar」を選択します。
次にAndroidManifest.xmlに以下のパーミッションを追加します。
  <uses-permission android:name=”android.permission.INTERNET” />
  <uses-permission android:name=”android.permission.ACCESS_NETWORK_STATE” />
② Analyticsアカウントの用意
次は、Analyticsのアカウントを用意し、プロファイルを作成します。
# 既にプロファイルを用意している場合は③に進んでください。
まず、↓のページにアクセスし、Analyticsの登録を行います。
http://www.google.com/intl/ja/analytics/
アカウントができたら、次はプロファイルを作成します。
「プロファイルを追加」リンクをクリックして、プロファイルの新規作成画面を表示します。
「トラッキングするサイトのURL」に適当なURLを入力し、完了ボタンをクリックします。
すると、サマリーページに先ほど登録したプロファイルが追加されるので、
追加されたプロファイルの「UA-xxxxxxx-x」をメモしておきます。
analytics_main.png
③ アプリに組み込む
ここからは実際にアプリに組み込んでいきます。
組み込みを行うにあたって、以下の4つを記述します。
①GoogleAnalyticsTrackerのインスタンスの作成
②トラッキングの開始
③トラッキング(ページ or イベント)
④トラッキングの停止
———————————————————————-
import jp.pinetail.android.sample.analytics.R.id;
import com.google.android.apps.analytics.GoogleAnalyticsTracker;
import android.app.Activity;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
public class MainActivity extends Activity {
    
    GoogleAnalyticsTracker tracker;
    
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        // ① インスタンスの作成
        tracker = GoogleAnalyticsTracker.getInstance();
        // ② トラッキングの開始
        // 20秒間隔でトラッキングデータを送信する
        tracker.start(“UA-xxxxxxx-x”, 20, this);
        // ③ トラッキング(ページビュー)
        tracker.trackPageView(“/MainActivity”);
                
        Button btn = (Button) findViewById(R.id.Button01);
        btn.setOnClickListener(new OnClickListener() {
            public void onClick(View arg0) {
                // ③ トラッキング(イベント)
                tracker.trackEvent(“Category”, // Category
                        ”Action”,              // Action
                        ”Label”,               // Label
                        0);                    // Value
            }
        });
    }
    @Override  
    protected void onDestroy() {
        super.onDestroy();
        // ④ トラッキングの停止
        tracker.stop();
    }
}
———————————————————————-
トラッキングを埋め込んだら、アプリを操作してAnalyticsに反映されるまでひたすら待ちます。
反映されるまで最大24時間かかるらしいので、気長に待ちます。
で、後日反映された結果を眺めてみました。
・コンテンツ サマリー
analytics_content.png
trackPageViewで設定した内容が反映されてます。
・イベント トラッキングの概要
analytics_event.png
trackEventで設定した内容が反映されてます。
この他にもOSのバージョン、画面の解像度も調べることができます。
# 「ユーザー」 → 「PC環境」 → 「オペレーティング システム」
analytics_os.png
海外だと2.2がメインという記事がちらほら書かれてますが、
日本だとやっぱり2.1が多いですね。
あと、残念ながらtrackPageViewでは機種名(xperia、IS03等)は取得できないようです。
機種名を別途とりたい場合はsetCustomVarメソッドを使えばいいようです。
※ setCustomVarは任意のデータを取得できますが、
   個人情報を取得するのはやめましょう!
wrote by S.M.

投稿日:2010年12月21日 -投稿者 senryaku

ブログリニューアルのお知らせ

いつも「オープンソース研究室」をご愛読いただき、ありがとうございます!

かねてよりご好評をいただいております、
「オープンソース研究室」ブログ事務局からのお知らせです。

KDLの精鋭が最先端のオープンソースに関する情報をお届けする
当ブログですが、12月22日付でリニューアルいたしました!

リニューアルにあたり、執筆メンバーも心機一転。
KDLの若きエース達がそれぞれの得意分野を生かし、
皆様へオープンソースに関することや、SEの心情なども織り交ぜた
さまざまな最新情報をお届けします。

では、以下にメンバーを紹介します!

■■■■■ 大柳晋也 ■■■■■

今まで書いたのを自己紹介代わりとします。
17 本書いてますねー。
これからも幅広くネタを収集していきたいです。
Cubby を触ってみるための前準備をする(1) (/open/2009/12/30/cubby_1/
PHP カンファレンスに行ってきた (/open/2009/09/06/php/
JavaScript で TDD (/open/2009/08/09/javascript_tdd/
Lime で TDD (/open/2009/07/13/lime_tdd/
PHP で TDD その3 (/open/2009/05/31/php_tdd_3/
PHP で TDD その2 (/open/2009/04/18/php_tdd_2/
PHP で TDD (/open/2009/04/05/php_tdd/
PHP で TDD その3SubSonic を使ってみた (/open/2008/11/04/subsonic/
SmartSVN を試してみる (/open/2008/09/12/smartsvn/
Putty でアンチエイリアスなフォント (/open/2008/08/29/putty/
Subversion クライアント QSvn (/open/2008/08/08/subversion_qsvn/
俺の Eclipse (/open/2008/07/29/_eclipse/
php_ctemplate を使ってみる (/open/2008/07/16/php_ctemplate/
Google ctemplate を使ってみる (/open/2008/07/09/google_ctemplate/
MySQL のフロントエンド その2 (/open/2008/06/28/mysql_2/
MySQL のフロントエンド (/open/2008/06/15/mysql/
Mac 用 Subversion クライアント Versions.app (/open/2008/06/08/mac_subversion_versionsapp/
■■■■■
■■■■■ S.M. ■■■■■
ずっと前から記事を書いてますが、リニューアルということで改めて自己紹介です。
入社以来「PHP一筋」と言っていいほど仕事ではPHPばかり触ってますが、プライベートではRailsやJavaをちょこちょこいじってます。
最近はandroidにどっぷりハマっててアプリを公開したりしてます。
■■■■■

■■■■■ 山本大作 ■■■■■

「運用・保守」業務が多く、サーバ管理がメインのインフラ系エンジニアです。
「Windows系サーバ保守」からインフラ系への道に突入しましたが、入社1年目に経験した「Linuxサーバ構築・運用」でLinuxの魅力にどっぷりはまりました。
「効率化」「自動化」というキーワードに興味があります。
日々の業務で習得したノウハウや、「効率化・自動化」の切り口で行ってきたことなどをメインで投稿していきたいと思います。よろしくお願いします!
■■■■■
■■■■■ T.H. ■■■■■
仕事はwebシステムの構築や保守をやっています。
プライベートでWordPressをいじったりしています。最近、WordPressに問い合わせフォームが設置できるプラグインを公開しました。
プラグイン公式サイト→http://horike.lolipop.jp/iqfm/
また、HTML5関連の技術にも興味を持っています。特にスマートフォン+HTML5の技術でなにかできないかなーと妄想したりしています。
今後ともよろしくお願いします!
■■■■■

■■■■■ 山本浩生 ■■■■■

ブログには以下のようなことを書こうと考えています。
・遭遇したトラブルの解決法
・最新の話題・ニュース
例えば、PCをサーバーや開発環境として使っていて遭遇する問題とその解決方法や、スマートフォンやIT絡みの(個人的に)旬な話題、プログラミング言語Scalaについてなど、テーマは絞らず幅広く(雑多に)取り上げていこうと考えていますのでよろしくお願いします。
■■■■■
今後益々活発になっていくであろうオープンソース界。
さまざまな視点から最新情報をお届けしてまいりますので、
今後とも「オープンソース研究室ブログ」をよろしくお願いいたします!

投稿日:2010年5月18日 -投稿者 S.M.

kumofsをインストールしてみた

今年はじめに公開されたKVSのkumofsを今さらながらインストールしてみました。

「kumofsってなんぞや?」っていう方はこちらへどうぞ。
インストールした環境は以下のとおり。
CentOS5.2
g++4.1
ruby1.8.5
後にこの環境でインストールしたことを後悔することに‥
詳細は後ほど。
では、早速kumofsをインストールしていきます。

Read the rest of this entry »