たんでー のすべての投稿

fedora15にindefero をインストールしてみた。

一言で感想を言うと、面倒くさい。redmineをインストールしたときも何ぼかめんどくさかったが、それでもあっちはいくらか使えただけまし。日本語のインタフェースがなさそうなのはわかっていたが、正直説明がたりなくてわかりませ〜ん。明日もうちっと試して見てもうまくいかなかったらあきらめる。

とりあえずインストールは、rpmを作っている人が居たのでそれを拾ってくるところから。

http://www.llaumgui.com/pages/depot-llaumgui

から好きなものを拾っていけばいい。(http://www.indefero.net/open-source/ から、ubuntu版もリンクがあるので、そちらが良い人はそちらから、、、)

ただ、rpm版はインストールの説明がないので面倒くさい。

とりあえず、indeferoとphp-plufのrpmをダウンロードして、依存性も一気に解決すべくyumでインストール。デフォルト設定だとpostgresqlを使うんだけど、yumの依存性で引っ張ってこれないので、postgresql-serverもインストール。(設定ファイルを変えればsqliteでもいけそうだったけど、書き込み権限がなんちゃら言われて面倒くさかったのでデフォルト通りにpostgresqlにした。)

インストール前にやること。

postgresユーザになって、apacheからpostgresを叩けるようにcreateuser、createdbなど適当に。デフォルトのデータベース名はwebsite なので、createdb website しておけばよし。(postgresqlのこの辺のコマンド名って嫌い。pghogehogeみたいなコマンド名にしてくれたらよかったのに、、、。どうでもいいけど。)

設定ファイルは /etc/indefero/idf.php この中を読んでいじる。gitリポジトリの場所とか、データベースの名前とか、メールを使うか、などなど、適当にここで設定する。

次に http://projects.ceondo.com/p/indefero/page/Installation/ (web.archive.orgへのリンク) の途中からそっくり実行する。

つまり、 cd /usr/share/indeferoしてからindeferoのデータベースのユーザになってから、php /usr/share/php/pluf/migrate.php –conf /etc/indefero/idf.php -a -i -d

これでindeferoが http://localhost/indefero から見えるようになっているはずだけど、とりあえず一人目の管理ユーザを手で作らないといけないようなので、それをデータベースにねじ込むスクリプトを書いて実行。


<?php
require '/usr/share/indefero/IDF/conf/path.php';
require 'Pluf.php';
Pluf::start('/usr/share/indefero/IDF/conf/idf.php');
Pluf_Dispatcher::loadControllers(Pluf::f('idf_views'));
$user = new Pluf_User();
$use-->first_name = 'John';
$user->last_name = 'Doe'; // Required!
$user->login = 'doe'; // must be lowercase!
$user->email = 'doe@example.com';
$user->password = 'yourpassword';
// the password is salted/hashed
// in the database, so do not worry :)
$user->administrator = true;
$user->active = true;
$user->create();
print "Bootstrap ok\n";
?>

これでとりあえず上で設定したユーザ名、パスワードでログインできるようになる。

使い方はまた今度。本命はgitoriousと思っているので使わないかもしれない。

==
で、gitリポジトリを突っ込むには、/usr/share/doc/indefero/doc/以下にある中からgitの説明書きを読んで従う。どうも鍵の取り込みがうまくいかなかったので、もう仕方なくパスワード認証で無理やり通して試してみたけど、使う範囲の中ではどうしてもredmineの方が日本語UIとか整っていたりして使い勝手は上。redmineにコードレビュープラグイン突っ込んだ方がたぶん使いやすい。まぁ、ウェブ上のサーバにあげて複数の人間がそこのリポジトリとやり取りするならどうしてもredmineよりindeferoの方がいいっていうことになるんでしょう。イントラで使うならredmineで十分。次はgitoriousを試す。

え、windowsとかIEって別に悪くないよね?

最近windowsとかIEとかの株が自分の中で上がっているのだが、他の人は共感してくれないようだ。「最近windowsがいいと思ってるんですよね〜」とかいうと、珍しい〜、とか反応が帰ってくるし、個人的にはfirefoxは面倒で遅くてあまり使いたくない。

結局、普通の人が使うのはパソコンのOSではなくて、OS上のソフトウェアである(つまり、windows対応ソフトを使いたくて仕方なくコンピュータを使うっていう場合が多い)ことだとか、ハードウェアの対応がどうしたってwindowsの方が上だとか、なんだかんだいってローカリゼーションに手を抜いていないあたりが、windowsとかIEのいいところ。chromeを使っても、cjkフォントが気持ち悪いとかいうのが検索すればすぐに出てくる。

対して自分が思うlinuxのいいところは、ディストリビューションごとに形式は異なるけれども、しっかりソフトウェアパッケージ管理がなされているところ。他には、プログラミング環境が整っているところとか、金かけずにサーバ構築できるあたりだろう。デフォルトの状態でなにができるかっていうのは結構大事。

apple?知らん。好きにしろ。まぁ、UIは馬鹿にしたらバチがあたるよね。

centOS6.0来たぞ〜〜〜〜

どうも最近は運営がグダグダなのか、scientific linuxに結構遅れた挙句、やっとcentos6.0が出た様子。

どうもこれが、というかRHELがlinuxの基準になってしまっているようなところが自分の周りではたまにあって、まぁなんだ、要はサポート期間が長すぎて新しいのが出ず、パッケージが古くなってしまっていろいろとはかどらない時があるんですよこれがまた。まぁ、6.0が出たから、新しいサーバをこれで設定すりゃ向こう何年も安心っちゃ安心なんだけど、どうも、時間とともに腐ってしまう、ということがなければいいんだけどなぁ、、、。

長期のサポート期間と、それなりの先進機能の両立はうまく達成しているように見えるのはubuntuなんだけど、どうなのやら。redhatもfedoraはcentoosよりももうちょっと活発なように見えるけれども、実際はどうなんだろう。

落ちはない。これだけ。

ひさびさの平日休み

平日の休みはいいねえ〜。

まずは昨日のITホワイトボックスの録画を見てfacebookでも始めようかと思ってアカウント作成し始めるもメールアドレスの登録に難ありでやっぱりやめたり、えーいや〜と、hotmailで新しいメールアドレスのエイリアスを作り、やっぱ変えようかなと思って削除して作り直してみたら最大数だからダメだと怒られたり。

あとはまぁ、今まで会費を払っていなかった某会の終身会費をえいやっと納付して、暑いなぁ~と思いながらも、近所の某商店街で久々に大学芋を買って、うちに帰っていただいた。

次に、壊れていたカバンを修理に出すべく浅草へ。もうなんか古いから部品が〜、とか、高くつくから〜的なことを言われながらもとりあえず8400円分修理をお願い。わざわざもってったのに、そのまま持って帰るのは正直しゃくだったしな。で、そのあと仲見世通りを通って浅草寺へお参りをして、今日のおみくじを引いた。このとき、警備員の人が間もなくご閉堂ですよ〜〜とすごく叫んでいた。

んで、店は冷やかして浅草から上野へいき、何となく上野で降りて、アトレとかアメ横をぶらぶら。アトレで見たフレンチプレスが欲しくなったが、何となく買わなかった。これは失敗。アメ横を御徒町まで歩いたけれども、魚屋に声をかけられる。なんか3000円とか5000円の値段がついたマグロの塊を1000円だの500円で譲ると言われたが、正直となりのしゃけ切り身10を500円くらいで譲ってほしかったなぁ。だいたいにして、だいぶ安いのでなければ、定価ついてないようなもの買いたくならない性分なんですよ。はい。

最後は池袋へ。フレンチプレスを求めに東急ハンズ、西部、ロフトを回ったが、上野のアトレで見たやつよりいいのがなかった。ぬぬぅ。で、最後に某カメラに行ってノートパソコンを冷やかした。eeepad transformerいいなぁと思いつつ、わきのノートパソコンはいまいちだったなぁ。10万切る、15.6インチの、フルHDなノートはエプソンとMSIしか扱ってなかったまだまだ微妙かなぁ。あとは、電気代的にも、ivibridgeかAMDの新しいのを積んだのが出るまでは控えとくべきか〜。フルHDで表示するのに別途グラボを載せないとまだできないみたいだし〜。

あとは、西部で見たカップがちょっと気になった。

で、帰って寝た。休日はいいねぇ。

テキストエディタ、人に使わせるなら

やっぱり gnu nano ですよね。eeもまぁまぁ簡単でいいんだけど、日本語対応的に考えてnanoの勝ち。

UNIXとかlinuxになれた人は、どうしても自分の成功体験からviやemacsを人に勧めがちだけど、普通の利用者の観点から言えば、そのサーバで必要な仕事ができればいいだけで、エディタの使用方法に習熟することが必ずしも重要でないことはままある。そのような場合に、学習曲線がきついvimやemacsや無印viやedを無理やり使わせるのは必ずしも得策ではなく、nanoのような、使い方がいちいち画面に出るエディタの方が便利という話。というか、いまどきのgnu nanoはキーバインドが好き放題にいじれるんですね〜。これでword的なキーバインド、 (Ctrl-sで上書き保存とか、名前ついてたと思うんだけどなんだっけ?)をあらかじめいれといてあげればwindowsのメモ帳よりも便利なテキストエディタの完成!素晴らしい。

難点は、UTF-8なものじゃないと日本語がいまいち都合が悪そうな点。やっぱりlinux的にはSHIFT-JISとか見るよりも、i18n対応はUTF-8で全部おさめちゃうんですかねぇ。日本語対応さえなんとかしてくれればもっとnanoを人にすすめられるのだが、、、。

===

実際のところ、CUIでエディタ使わないといけない環境では、UTF-8しか使えないっていうのはつらいかもしれない。GUI対応できるなら、それこそ好きなエディタ使えってことになるし。。。。viとか使うのかなあ。

linux で使える圧縮形式あれこれ。やっぱりlzopだよね〜

基本的にtarから呼び出せるやつで有望な連中は、 gzip, bzip2, xz, lzop あたり。

gzipは圧縮に時間がそれなりにかかるが、伸張decompressionは結構はやくて、圧縮率はそれなり。

lzopは圧縮伸張がやたらめったらはやくて、無圧縮のtar作成とたいして変わらない。圧縮率はgtarより悪いが、まぁ個人向けストレージがここまで安い時代には、十分と思う。SAS玉つかうなら話は別だけどさ〜。うちでは無理です。

bzip2は圧縮伸張にかかる時間はそれなりで、圧縮率はまぁまぁ高い。xzとか出てくるとちょっと使いにくい。

xzは圧縮にすごく時間はかかるが伸張はbzip2くらい。圧縮率は今回あげた中では一番大きい。

ストレージ容量重視ならxz、圧縮に時間をかけていいならgzip、とくに理由がなければlzopといったところかなぁ。

公式サイトに書いている “lzop is usually IO-bound and not CPU-bound” という一言が非常に強力かつ魅力的。http://www.lzop.org/

 

git と hg と bzr と svn と

git の宣伝はこれ http://whygitisbetterthanx.com/ hgでもそんなにブランチ切るのが遅いの?ほんとに?

個人的にはpythonなしでもインストールできるgitとsvnしか選択肢がない。

で、いろいろ調べた最近はやりの分散型ソース管理システムの比較。

まず、svn対git svnの有利な点は、中央リポジトリが一つあってわかりやすいことと、リビジョン番号が連版になっていること。さらに、大きなバイナリファイルが扱えるという点。 https://git.wiki.kernel.org/index.php/GitSvnComparison

hg対git では、hgの方が履歴書き換え形のコマンドが使えない点と、ローカルリポジトリ固有のリビジョン番号がある点。ただ、リポジトリによって違うリビジョン番号は混乱の元なので、ちょっと使いにくいかなぁ。windowsとの親和性でもやっぱりhgという話。hgはoctopus mergeがない?

http://hgbook.red-bean.com/read/how-did-we-get-here.html

bzr対gitでは、bzrはsvn的な中央リポジトリも使えるし、bzr2.0からhg並みのスピードがでるという点でいろいろ便利そう。launchpadがあるし、バックにcanonicalがついてるから、いろいろはかどるんだろうなぁという印象。

http://doc.bazaar.canonical.com/migration/en/why-switch-to-bazaar.html

分散型リポジトリ系ではどれもこれも巨大なバイナリファイルが扱えないという点はどれも同じ。

基本的にはgitの方がややこしいけどgitは速い、という反応。githubとかgitoriousがあるので、将来的にはgitかなぁという感がある。まぁ個人的にはgitなんですけどね。どうせwindowsで使おうというわけではないので。

amahiをsheevaplugにインストール中。

インストール用シェルスクリプトをちゃんと読まずにやったのでちょっと手間取った。http://wiki.amahi.org/index.php/Amahi_Plug_Edition

SDカードにイメージを入れるところまではいったが、どうにもうまく起動しない。つうか、sheevaplugって、/bootがあまり大きいとうまく起動しないからいろいろ面倒なことをしないといけないはずだったけど、今回のインストールプロセスではその辺が書いてないことに気付いた。うーん。2GBのSDカード用意するのか??

途中で邪魔が入ったので今日のところはこの辺でおしまい。

しかし、ちょうどタイムリーにhttp://blog.amahi.org/2011/06/21/apple-hits-amahi-with-a-cease-and-desist-wait-what/
こういう話もあって、だんだんAppleが嫌いになるね。

 

 

fedora15でsyslogが保存されないupgradeのバグに当たった。

fedora14からfedora15にアップグレードするときのバグで、/var/log/messagesが保存されないというのに当たった。

http://www.spinics.net/linux/fedora/fedora-users/msg398294.html

 

ちなみに、このバグに気付いたのは、linuxのサスペンドから復帰できないバグにあたって、ログでもさらうかと思ったから。messagesがなければさらうもなにもない。まぁ、しょうがあるまい。

ちなみん、gnome3環境は割と快適。マウスの移動速度を最速にしないとイラつくかもしれない、ってくらいかな。よもやlinuxでwindowsキーをフル活用する世の中になるとは思わなかったよ。

dokuwikiのプラグインではまり

症状は、特定プラグイン追加後に、管理>サイト設定を表示しようとすると上のバーのところだけ表示されてその下は真っ白。httpのエラーログにはろくなものが残っていない。

いろいろと調べて、結局原因は、そのプラグイン(wikicalendar http://www.dokuwiki.org/plugin:wikicalendar?s[]=wikicalendar)でphp5.2で追加された関数を使っていたこと。プラグインのサイトの下の方に書いてあった。もちろん勝手にphpのアップデートなんかできる環境ではなく、サイトにあった対応をしてもうんともすんとも言わないのであきらめ。

RHELなんだけど、導入した時期が悪かった、、、、。微妙にふるくてパッケージが腐っている、、、。勘弁してほしいなぁ。

いいかげんgooブログやめるかな〜。

gooブログは著しくコードが書きにくいのでだいぶ困る。で、どうせやるならレンタルサーバ的なものを借りてやらむという話。電気代とか心配だしね。

で、ちょっと見て回ったけど、root権限あるけど管理をきっちりやる方がいいのかなぁ。個人向けIaaSっぽいサービスがいくつかある。VPSとかいう名前でサービスされている。ただのレンタルサーバだと、ユーザは各ユーザ領域を適当に使うイメージ?VPSだと/以下全部手を入れられるイメージかな。chrootで押し込められてるのかもしれないけど。

500円/月 とかのやつがあるから本当にそっちにブログを移してしまおうか、検討中。いきなりやめることはしないけど、少なくともgooに払っている御布施は引き上げてもいいかも。wordpressとかdrupalとかjoomlaとかを入れて遊びたいかなぁ。そこまで重いことはできないか??

今はバックアップとしては家サバに2台ハードディスクをつないで適当なタイミングでrsyncしているけれど、このバックアップを地理的に離れたところにおきたい。転送量課金がないところにして、貴重なデータの2重化先としても使いたいのだけれども、そういう使い方って現実的なんだろうか。10GB超えるので選択肢は限られるが、、、。はてさて。

すげ〜今更だけど、「史上最大のコーディングスキル判定」をやってみた。

14か月くらいいまさらだけど、気になってのでやってみた

問題は

http://www.itmedia.co.jp/enterprise/articles/1004/03/news002_2.html

 

要件が書いていないチートイツは無視で、5枚目牌を待つ待ちも許容した。(前者は割と簡単。後者もまぁできるけど、問題に定義されていないので無視。1113334447777というテンパイ形も許容)

 

テンパイ形だけ分かればいいので、最初にメンツを取れるだけとって、4つ取れたらタンキ待ち確定。3つ取った後、4つ目のメンツが取れなかったら、残りの4枚がトイツ+ターツか、トイツ2個になっていたらテンパイ形にする。

 

で、この手の問題はやっぱり再帰関数だよねということで、文法を思い出しながらocamlで試行錯誤して3時間。for文使った方が楽だと思いなおして、ロジックを整理してrubyで書き直して全テンパイ形を得られるまで2時間ちょっと。出力とか、繰り返し回数減らすのにちょっといじって1時間、ってあたり。rubyで書いたといっても、使ったのは配列の関数くらいで、ほとんどcだった。 このあたりは普段rubyでかかないので勘弁してくださいってことで、、、。


# -*- coding: utf-8 -*-
##史上最大のコーディングスキル判定
##グローバル変数の定義
$pai=[1,2,3,4,5,6,7,8,7,9,9,9,1] #牌の組み合わせ。処理前にソートされる。
$pai2=[1,1,1,1,1,1,1,1,1,1,1,1,1] #牌をとったらそのインデックスの要素は0になる。
$all=Array.new # テンパイ形の牌の組み合わせの配列を要素にもつ配列。テンパイ形が全て入る。
$len=$pai.length
##判定関数たち。引数は$paiのインデックス
def isMenzu(h1,h2,h3)
  return ($pai[h2] == $pai[h1]+1 && $pai[h3]==$pai[h2]+1) || ($pai[h1]==$pai[h2] && $pai[h1]==$pai[h3])
end
def isToizu(h1,h2)
  return $pai[h1]==$pai[h2]
end
def isTarzu(h1,h2)
  return $pai[h2]==$pai[h1]+2 || $pai[h2]==$pai[h1]+1 || $pai[h2]==$pai[h1]
end
##残り1枚になったときのタンキ待ちの組み合わせを$allに入れる
def hantei1(arr)
  for i in 0..12
    if $pai2[i]==1
      $all.push((arr +[[$pai[i],-1]]).sort)
    end
  end
end
##残り4枚になったとき、対子+ターツの形を$allに入れる。面子+タンキはhantei1で判定済みのはず。
def hantei4(arr)
  a1=Array.new
  a2=Array.new
  for k in 0..12
    if $pai2[k]==1
      a1.push(k)
    end
  end
  if a1.length==4
    0.upto(2){|i|
      (i+1).upto(3){|j|
        if isToizu(a1[i],a1[j])
          a2=a1.dup
          a2.slice!(j)
          a2.slice!(i)        ## このあたりもっときれいに書けないかなぁ。
          if isTarzu(a2[0],a2[1])
            tmp=arr.dup
            tmp.push([$pai[a1[i]],$pai[a1[j]]])
            tmp.push([$pai[a2[0]],$pai[a2[1]],-1]) # -1は、結果出力時に待ちになっている部分を判定するためのゴマカシ
            $all.push(tmp.sort) # sortしたものを入れておくと重複排除のときに簡単になる
          end
        end
      }
    }
  end
end

def make_list(ans,num,count) # ansはテンパイ形の13枚の組み合わせを作るために、3つずつ牌の組み合わせを入れる。
  if count==4 # 残り1枚
    hantei1(ans)
  else
    num.upto($len-3){|i|
      next if $pai2[i]==0
      (i+1).upto($len-2){|j|
        next if $pai2[j]==0
        (j+1).upto($len-1){|k|
          next if $pai2[k]==0
          if isMenzu(i,j,k) # 重複なしに適当に取った3枚がメンツになっているなら、次のメンツをとる。
            $pai2[i],$pai2[j],$pai2[k]=0,0,0
            make_list(ans+[[$pai[i],$pai[j],$pai[k]]],i+1,count+1)
            $pai2[i],$pai2[j],$pai2[k]=1,1,1
          end
        }
      }
    }
    if count==3 # 残り4枚からメンツを取らなかったとき
      hantei4(ans)
    end
  end
end

# main part
if $len == 13
  $pai.sort!
  make_list(Array.new,0,0)
  $all.uniq!
  # output result
  $all.each{|arr|
    arr.each{|a1|
      if (a1.index(-1)).nil?
        c1="("
        c2=")"
      else
        c1="["
        c2="]"
      end
      printf(c1)
      a1.each{|a2|
        printf("%d",a2) if a2 != -1
      }
      printf(c2)
    }
    printf("\n")
  }
end

 

こんなかんじ。ocamlで書いてたときに、for文てどうやって書くんだっけと思った時点で、rubyで書いた方が早いと思ってしまったのです、、、。make_list関数をocamlで書こうとしている間に時間切れ。結局、ループ変数を全部引数に持たせて再起関数を書けばできたような気もしつつ。結果を全部突っ込む配列を用意しないでスマートに書けたらいいんだけど、重複を排除するんだよなぁと思うと、どうしてもこんな感じ。例外処理は、、、別に変なもの入力しないから勘弁してください。 チンイツ形以外にも拡張するには、適当に数字を離して牌の名前を振れば問題なく行けるはず。マンズ 1〜9 ソーズ 21〜29 ピンズ 41〜49 字牌 60,63,66,,,, とか。役の判定を考え出すと面倒だなあ。

っつうか、ブログ書いてる間にすでに繰り返し回数減らす変更を思いついてしまって、どうしようもないな。まぁ、make_listに渡すnumが、num>4+count*3 だと一回も回らないっていう条件を入れ忘れたってこと。(その後、実際にループを減らすのをやってみましたが、そのif文を入れると、単純で時間がかからない時は早くなるけど、1111222233334みたいな、ややこしくて時間がかかる場合には遅くなることがわかった。どうしようもないね。)

なんか、gooブログでソース書こうとすると、だいぶムカつくね。もうやめようかな。

結局、自分はプログラマとしてはいまいちっぽいので、よかったというべきか悪かったというべきか、、、
まぁ、コーディングが仕事というわけじゃないし、ruby自体書くのは久しぶりなんだ、、、。

==
当時いろいろとコーディングされた物が公開されているのでみてみた。そうか、作業配列の作り方がまずかったか。配列arr[i]に、牌iの枚数をぶち込んで、枚数を勘定してその数字はメンツになれるかどうかを、一つ一つの数字ごとに判断するという手があったか。参考になるなぁ。

久々に床屋で顔そりしてもらった

いつもの床屋で年単位で久しぶりに顔そりしてもらった。800円なり。まぁ、毎度頼むほどじゃないけど、たまにはいいかな。アフターシェーブローションと乳液?をしっかり顔にぬられた。長いハサミを鼻に突っ込まれて鼻毛を切られたのはちょっと驚いた。そのハサミ、当然してると思うけど、ちゃんと消毒してますよね?

小さい頃には頬にカミソリが当たるのがくすぐったくて嫌いだった、、。まぁさすがに今となってはそんなことはない。

そこの床屋には、言葉を話せない人が働いているんだけれども、(耳も悪いのか、言葉だけなのか、はちょっとわからないけれども) 今日はそのおじさんにあたった。仕事ぶりには文句はないし、意思疎通もジェスチャーと他の店員のフォローがあるから特に問題なし。髪を切られながら無駄話する必要がないので気が楽だ。まぁわざわざ指名してまでやってもらうほどではないけど、いろんな人がいるんだなぁ、ってことで。

 

クラブダイドーの景品がとどきましたよ〜

今日届きました。途中で80pくらいためたカードをなくしたりしたけれど、だいぶかけてためた300ポイントを、景品に変えた。で、この四月からの景品はちょっといまいちだったので、100pのカードケースと、50pのドリップコーヒーをたくさん。まぁどうせならということで50pの小銭入れ。

本当は500pのカバンが欲しかったけど、まぁ仕方ない。小銭入れはちょっと残念な感じ。正直いらなかったな。

次のカードを一枚つけてくれたのは、、、、ちょっと笑ってしまった。ちゃっかりしているなぁ。

近所の自販機がポイントやめちゃったから、なかなかたまらないんだよねぇ。

kongregateでゲームなぞやってた

5月の連休明けから、kongregateでフラッシュゲームなぞやってる。

全部英語ではあるけれども、gooの一日30分ゲームのMonster’s Denが時間無制限で(ただし英語で)遊べるというので始めたけれども、数時間で終わるしょうもないゲームが腐るほどあって、どれをやるか選ぶのが大変。というか、上位のページに表示されるようなものしかやらないんで、どれも数時間は遊べる。終わったらもう二度とやらないレベルなのも結構多いけど、スマートフォン時代のゲームってそんな感じだよね。

プレイヤーが年をとっていて時間がとれないから軽いゲームがうける?

んで、一部の(といっても結構多い)ゲームでは、ゲーム中で条件を満たせばバッジとポイントがもらえるというどこかで聞いたようなシステムがあって、これがまたいろいろやりたくなる。で、まぁいろいろ手をつけたけど、そろそろ飽きてきたかな。

今は、tyrantをやっているくらい。課金しなければ一日にできる時間が限られているので、朝と夜だけせいぜい15分ずつやるくらい。まぁよかろ。

自戒を含めたメモ書き

忘れないように。

独自仕様のオンパレードなシステムに対してのトラブルシュートがうまくなってもしょうもない、と今日ふと思った。そこからのプラスアルファをどうするか、だよなぁ〜。
まぁ、そこで自分でなければ加えられない付加価値が小さくはない、ということは言えるけれども、いくらトラブルシュートがうまくなっても、チームに貢献できたとしても給料には全く(?)反映されないわけで、さて、どうするか。

結局、独自仕様云々という話なので、打って出るにはスキルを積めていないし、まだあまりになにもやっていない。それは選択肢にはまだ入らないのかなぁ〜。そもそもプログラマーですらない。つうか、うちの職場でいくらプログラムを扱っても、世間一般に通用するプログラムを書ける人間にはならないような、、、。

で、今から何を勉強するか、それで変わってくるわけで、さてどうするか。
たぶん、何もしないんだろうか。それもまたいいんだけれども。

fedora15でgnome3を使った件

windows7ライクなデスクトップになったけど、windows7よりは好みかな。
windows7のalt+tabって、結構いつも忘れてしまって、いつも使わないんだよなぁ、、、。さて。

windowsキーを押したり左上にマウスカーソルを持っていくと、ランチャ件ブックマークバーが起動して、そこからアプリを選ぶという感じ。デスクトップの背景で右クリックしてもコンテクストメニューが何も出なくなったし、上の方のパネルの表示もあまり柔軟でない感じ(横長ディスプレイであれを広く表示されると邪魔。左に置きたいかなぁ。)

んで、gnome3では、デスクトップ画面とランチャー画面を切り替えながら使う感じなんだけど、これって、マウスのインターフェースには向いていなくて、タッチパネルによりむいている気がする。タラタラ左上までマウスを持っていくのが面倒だし。。。

あとは、デスクトップ数が動的に増える(つまり、常に空のデスクトップが一番下に表示される。(これって、実は制限数あったりする?))ので、ブラウザやメーラはえいやっと全画面表示してしまって、デスクトップ切り替えで使うのが便利っぽい。今後スレートPCとか、タブレット端末がたくさんでてくると、こういったUIが主流になっていくんだろうなぁ。windows8も変わるっていうし。

しかし、linuxでwindowsキーを多用することになるとは、、、、今までも機能はあったのかもしれないけど、使ったことはなかった。そもそも、マウスに最適化されたGUIなのに、キーボードショートカットを覚えるっていうのも、なんか思想が曲がっている気がするんだけど、それってワタクシだけなのでしょうか〜〜

5月の連休にベトナムに行ってきた話。

ベトナムにした理由は、1週間前でも航空券がそれなりの値段でとれたから。宿もそれなり。
もうちょっといい宿に泊まってくれば良かったかなぁ、と思っていたりする。

日程は、4月30日午後の飛行機でハノイ。
深夜着でホテルへ。タクシーの運ちゃんが言うには、4月30日はベトナムの祝日だったとか。

止まったホテル。日本人がよくとまる、らしい。

5月1日は町をぶらぶら。
連中は、歩道をバイク置き場か店かくらいにしか思っていないのかも。だいぶ歩道が歩きにくい。
メーデーなので祝日だったとか、タクシーの運ちゃんが話してました。
博物館とかをみたりして適当に街歩き。
その日の晩にホテルのロビーで日本人に話しかけられ、ハロン湾が良かったという話だったので、その日のうちにその辺の旅行代理店(地球の歩き方にパチモンだとかなんとか書いてあったようなところ)に向かって$17払って申込。
夜は水上人形劇(water puppetry)を観劇。昼にチケットを買いに行ったら、もう2日先までないと貼り紙していたが、窓口に聞いてみたら席があった。なんだそら。

ホテルで朝食をとりながら周りの風景を撮影。やたら壁が薄い、細長い家があったり、天井に飲み水の?タンクが目立ったり。どうやってあげたんだ?

歩きにくいイメージ図

なんたら市場。2階の床、薄くない?

刑務所後の博物館。フランス人はひで—ことしやがった。俺たちはアメリカにも寛容だったぜ!という内容だったかな。

街の真ん中にある湖の上の小島。デカイ亀があがったのを、神話に出てきた亀だ〜ってことで大事にして、はく製にしてとって置いてある。なんかすごい人だかりだった。

水上人形劇。絵は地味かも。

5月2日はハロン湾クルーズ。
これで一日つぶれた。買ってもっていったサンダルが足にあわなくて靴ずれ。
ハノイに帰ってから、コンビニ的な店の存在に気付いた。水を買うときなんかは、その辺の店でぼったくられるよりはよほどましな良心的な定価販売をしていた。買う時にわざわざ価格を交渉するなんて面倒すぎてやってられないと思うんだけどなぁ。わざわざ値段がついてない市場に物を買いに行って喜ぶ人の気持ちは、正直わからないんです。

ハロン湾写真こんな感じの、海に石灰質の岩が突き出している感じです。

船の上で生活している人たち。もとから住んでたんだろうけど、観光で食っているんだろうなぁ、、、。

こんな鍾乳洞があったりしました。色をつけるのはなんなんだろうね。

コンビニで買った怪しい飲み物。なんだサムライドリンクって!ちゃんとコカコーラ製!中身はリアルゴールド的な感じでしたよ。

なぜかフランスパンの屋台がたくさんあった。繁華街のみならず、ハロン湾へ向かう道路上にも。売れるのか!?

5月3日は朝ホテルの周りをぶらぶらしてからタクシーで空港へ。
$25も払ったのに、コーヒー飲みたいからいくらかよこせとせがまれた。
昼過ぎの飛行機でホーチミン。国内線にのるときに、「み〜ず〜だ〜め〜!」と言われて、ペットボトル入りの水を没収された。
ハロン湾の宿を頼んだ旅行代理店では、だいぶ安くホテルを頼めたようだったなので、現地で頼んだ方がよかったのかもと思い、空港で宿を探してみる。(後ほどその辺の旅行代理店で値段を確かめてみたら、しっかり$8/日だけぼられてましたが。)空港の旅行代理店の人は、地球の歩き方の本にだいぶ慣れているみたいで、ここに書いてあるホテルだよ〜、と教えてくれた。正直ホテルは微妙だったけどな。つうか、日本人いきすぎだろう、、、。

ホーチミンについてから屋台でジュースなぞ飲む。
たぶんこれがいけなかった。氷入り。
ぶらぶら午後の街歩き、のはずが、ドリアンのあの味ともあいまって、みるみる吐き気が、、、。
途中でダチョウの有精卵入りの肉まん的なものを食べたけれども、もう微妙な味だったことしか覚えてない。
あとはホテルに戻って吐いたりとか。水を補給するも、自分の体が袋どころか筒のようにダダ漏れになっているのではないかなぁと思いました。正直後悔した。

戦犯の?ドリアンスムージー。こんなものさえなければ、、、

ここの屋台の肉まん?をくった。ベトナムでも葉鍵っぽいのが流行ってるのか〜と妙に感心。
すぐに気持ち悪くなってきたけどね。

5月4日は、夕方までホテルでうなってました。
テレビで、現地版ミリオネアやってました。あんまり引っ張らない感じだった?ベトナムまでも番組を売りにいくとは商魂たくましいなぁ、と思ったけれども、ベトナムの方でも需要があるのかな?テレビのチャンネルはひょっとしたら全部国営放送だった?結構チャンネル数はあった。
ホテルではベッドに横になってうなりながら、dynabookazでネット。ベトナムは、いろんなところでタダの無線LANを使わせていましたが、あまりに多すぎて混線した?ぶつぶつ接続が切れました。まぁ、最初は役立つかどうか、荷物が増えて面倒かもしれないけど、念のため、、、と思って持っていたdynabookazがだいぶ役立った。ネットにつながっていると、宿の予約とかにはすごく便利なので、今後も持っていこう。国内旅行のときにはwifiがネックですけどね〜。やはり軽いのは正義ということで。

5月5日はなにしたっけ? yogen frutsなんかあるのか〜、と思って入ったのは覚えてる。あとは、迎賓館?的なところに入ったかなぁ。まぁとにかく、へろへろになりつつもホーチミンの街をぶらつきました。バイクが多すぎて空気が汚いので、マスク付けました。なんかその辺のわりと高級そうな百貨店的な店に入ってご飯を食べたりしました。もう屋台では食べられない〜〜〜

ホーチミンの公園にあった自動販売機。試す度胸はなかった。 

郵便局のちかくにあった教会。まぁこの辺をぶらつきました。

5月5日の飛行機で成田へ。6日朝着。飛行機は狭くてあんまり好きじゃないなぁ。
空港のレストランでさえ無線LANが使えた。日本ではここまでは無理だろうなぁ、、、、。有料サービスとなってしまっているし。

fedora15にあげたけど、、、

preupgradeして、yumで変なのが残ってないかみて、/etcのしたの設定ファイルをちょろっとみておしまい。
texまわりのフォントが派手に変わっているようだけど,だいぶ使っていなかったから,いつから変わったのか不明。まぁいいけどさ。
壁紙の雰囲気が変わったね。

gnome3はうちのPCではフォールバックモードになってしまうので、不便になっただけ。LXDEにしている。

もう一台の方は余裕で動くはずだけど,preupgradeが通らない(プロクシのせい?)なので、来週暇を見て。

初回起動時に出たエラーメッセージはログが残ってないからもうすでにわからん。

git でハマった

いろいろあってgitを使い始めた今日この頃。
outofmemoryでcloneとかgcとかいろいろはかどらない事態に遭遇したのでメモ。

原因はある程度の大きさのバイナリ定数ファイル。
ulimitでユーザーの対話シェルでのメモリはガッツリ制限されてる環境での作業が行われているのだけれども、この定数ファイルがメモリの制限値を越えているのが原因で、outofmemoryエラーが発生しているものと考えられる。っつうか、ユーザは0.1%もメモリをつかえないって、ちょっとひどいな。ジョブスケジューラにジョブを投げればメモリもたくさん使えるんだけれども、これって、ちょっと使い勝手がよくない。どうしたものか,,,。(そもそも、darcsやmercurialやbazaarでなくてgitなのは、pythonやghcが入っていない環境で、とりあえずユーザー権限でインストールして使うため、というのも半分はある。つまり、そもそもインストールできるのはgitだけだったという話。svnはすでにはいってるんですけどね。)

といっても、これらのファイルはプログラムには不可分なので、できればリポジトリで一括管理したいところ。でも、他のマシンで試して見たところ。全部で10GB越えるようなリポジトリは、ちょっといろいろはかどらない気がする。でかすぎるんだよなぁ。。。個々のファイルはそれほどでもなんだけれども、、、。

https://git.wiki.kernel.org/index.php/GitSvnComparison
このあたりの記事を読むと、バイナリファイルの管理はsvnの方が良さげとか書いてあるし、他の分散型cvsについても、ちょっと検索すれば、すぐに大きなバイナリ定数ファイルはまずいことがわかる。

結局、定数をどうしても管理するなら、svnを使うというのが、スジなんじゃないかと思いつつも、そういうことはさせてくれないような感じだし、そもそも他人に使わせる段になったら問題。割と困ってしまっている。tarで固めて適当に保存するのがいいのかなぁ。。。rsyncとかつかってみたりして。

—-
結局、バイナリファイルは管理しないことにした。
定数ファイルをそうそう変更することもないので、変更時にtar.gzで固めておけばいいやという判断。

—-
ちなみに、pythonがない環境でのgitのインストールは、公式サイトからtarを拾ってきて
gmake configure
configure –prefix=”path” #CFLAGS=64bitオプションとかもお好みで
config.mak.autogenを編集して、最後にNO_PYTHON=YesPleaseを追加。
Makefileかconfig.mak.autogenのどっちだったか忘れたけど、もしgnu installにパスが通っていなかったら、installコマンドでgnu coreutilsから入れたinstallを使うように、install=を書きなおしておく。
(ちなみに、その環境の下ではcoreutilsのコンパイルは簡単だったので省略)
で、あとは普通に
gmake
gmake test
gmake install
でOK
—-
あと、/bin/shがbashじゃないとダメっぽい。stashとか。ひょっとしたら作業環境のshの方が悪いのかもしれないけど。