軸がぶれてきたのでとりあえず6月の目標を

以前に書いた目標と今やって行きたいことがだいぶずれてきたので改めて目標を立ててみます。

ちょっとどういう方向性でいきたいかっていうのがはっきりしていないところもあるので、
とりあえず6月の目標を。

以下は習慣的なこと

  • Project Eulerの問題を1日15分の時間を与えてコツコツ解く。
  • Code Academyを1日15分やる。
  • 健康維持のために
    • 朝起きたときと寝る前にヨガをする。
    • 1日5000歩は歩く

ちなみにTOEICは940点取れたのでよしとする。

悪魔のささやきには惑わされない!「アジャイルプラクティス達人プログラマに学ぶ現場開発者の習慣」

アジャイルプラクティス 達人プログラマに学ぶ現場開発者の習慣

アジャイルプラクティス 達人プログラマに学ぶ現場開発者の習慣

図書館で目に入ったので借りてみました。いわいる読み物なのでサクサク3時間くらいで読めてしまいました。 気に入ったのは本書に散りばめられている「悪魔のささやき」というコーナー

たとえば
「とりあえず不具合は手っ取り早く修正しちゃおうぜ」
みたいなことが書いてあって。修正による影響範囲も考えてようねって話に続くわけです。

「悪魔のささやき」にはへっぽこの僕は「うんうん俺も仕事している時にこんな感じになったことあるな。」って思わず共感してしまいます。
でもこれってDon'ts"ですからね。やっちゃいけない。気をつけよう。そんな気持ちが啓発されます。
天使からのアドバイスというコーナーもあって"Dos"が書かれていますが、やっぱこういうのって「悪魔のささやき」みたいな失敗体験、失敗例があってこそ説得力が増すんですよね。

手元においておいて詰まった時に読み返したい一冊です。

アジャイルに関しては以下の書籍も読んでみたいと考えています。

アジャイルサムライ−達人開発者への道−

アジャイルサムライ−達人開発者への道−

Intermediate Perl 第一章 学習メモ

タイトルのとおりです。最近やっと重い腰を上げて読み始めました。   週1章くらいのペースで読んでいければいいかなと思います。

Intermediate Perl

Intermediate Perl

メモ

  • use lib '<path>'; でモジュールをロードするパスを設定できる
  • ローカルで実行する場合はlocal::libを使うと良い
  • cpanm便利

Excersise

1

#!/usr/bin/env perl
use 5.10.0;
use strict;
use warnings;

use File::Spec;
use Cwd;

my $dir = getcwd;
my @files = glob "*";
foreach my $file (@files){
    my $fullPath = File::Spec->catpath( undef, $dir, $file );
    print "    $fullPath\n";
}

実行結果

$ ./intermed_c01_problem01.pl
   /home/fakeyakuza/dev/study.perl/intermed_c01_001.pl
   /home/fakeyakuza/dev/study.perl/intermed_c01_002.pl
   /home/fakeyakuza/dev/study.perl/intermed_c01_003.pl
   /home/fakeyakuza/dev/study.perl/intermed_c01_004.pl
   /home/fakeyakuza/dev/study.perl/intermed_c01_problem01.pl
   /home/fakeyakuza/dev/study.perl/intermed_c01_problem02.pl
   /home/fakeyakuza/dev/study.perl/intermed_c01_problem02_2.pl

2

Module::CoreListの使い方がよくわからず答えを写経。

実行結果

$ ./intermed_c01_problem02_2.pl |more
                                AnyDBM_File 5
                                  App::Cpan 5.011003
                                 App::Prove 5.010001
                          App::Prove::State 5.010001
                  App::Prove::State::Result 5.010001
            App::Prove::State::Result::Test 5.010001
                           Archive::Extract 5.009005
                               Archive::Tar 5.009003
                     Archive::Tar::Constant 5.009003
                         Archive::Tar::File 5.009003
                        Attribute::Handlers 5.007003
                                 AutoLoader 5
                                  AutoSplit 5
                                          B 5.005
                                 B::Concise 5.006001
                                   B::Debug 5.005
                                 B::Deparse 5.005
                                    B::Lint 5.005
                                    (以下略)

3

モジュールのインストール

$ cpanm local::lib
    $ cpanm --local-lib=~/perl5 local::lib && eval $(perl -I ~/perl5/lib/perl5/ -Mlocal::lib)
$ cpanm -f usiness::ISBN (テストが通らなかったので渋々-fをつけた)

コード

#!/usr/bin/env perl
use 5.10.0;
use strict;
use warnings;

use local::lib;
use Business::ISBN;

my $isbn = Business::ISBN->new(9781449393090);

print $isbn->group_code,"\n";
print $isbn->publisher_code,"\n";

実行結果

$ ./intermed_c01_problem03.pl
1
4493

雑感

root権限なくてもlocal::lib + cpanm + perlbrewで自分仕様のperl開発環境が構築できるのは便利です。

hadoopのインストールに挑戦

Virtual Boxで動いているCentOSにhadoopを入れてみました。

下記のダウンロードページからtar.gzファイルをダウンロード。

Index of /apache/hadoop/common/hadoop-1.1.2

$ wget http://mirrors.go-part.com/apache/hadoop/common/hadoop-1.1.2/hadoop-1.1.2.tar.gz
$ tar xzf hadoop-1.1.2.tar.gz

JAVA_HOMEを指定する。こうしないとjvmがないよと怒られる。

$ export JAVA_HOME=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/

PATHにも追加しておく。これでどこでもhadoopコマンドが使える。

$ export HADOOP_INSTALL=/home/kisho/hadoop-1.1.2/
$ export PATH=$PATH:$HADOOP_INSTALL/bin

これで完了。バージョンを確認してみる・・

$ hadoop version
Hadoop Unknown
Subversion Unknown -r Unknown
Compiled by Unknown on Unknown
From source with checksum Unknown

・・・ってunknown連発。なんかおかしい。
でもなんか普通に動きそうなので今回は放置。

$ hadoop
Usage: hadoop [--config confdir] COMMAND
where COMMAND is one of:
  namenode -format     format the DFS filesystem
  secondarynamenode    run the DFS secondary namenode
  namenode             run the DFS namenode
  datanode             run a DFS datanode
  (以下略)

今日はここまでー。

Redmine + gitosis失敗からのRedmine+SVN

先日vpsにRedmine環境を構築したのの続きです。
debian vpsにnginx+sqlite3+unicorn+Redmine - 腹八分な記録

今回はgitとの連携にトライしました。
下記の記事を参考にさせて頂き、作業を進めました。

Redmineとgitosisプラグインでgitosisを使う | misty-magic.h

が、なぜかプラグインをインストール出来ない。
RUBY_ROOT」という変数を使ってはいけないというエラーが発生・・。

で、配布元のページをみてみると・・・。

PluginGitosis - Redmine

we don’t guarantee it will work for you.

なんてことが書いてあった!
動く保証ないよ〜ってことらしい。

これは厄介だ。
しょうがないのでRedmine + SVNで行くことにしました。

SVNサーバーの構築は下記のページを参考に。

subversionサーバを設定する(debian lenny,squeeze)(ubuntu 11.04)

あとは下の画像のような感じでリポジトリを設定して完了です。

とりあえずRedmine周りの作業はこれで終わり。