2012年6月24日日曜日

創業20年とやらの「ファーストサーバ」オペミスでデータ消失。だそうな



小生は使ってないので知りませんでしたが、
創業20年を謳う日本国内レンタルサーバ業者「ファーストサーバ」、オペレーションミス(正しくは、管理プログラムのバグ)で、顧客サーバの中身のデータを消失したらしい。しかも、4日経った今日でも未だに復帰はできてないですね。

http://www.fsv.jp/
http://www.itmedia.co.jp/news/articles/1206/24/news004.html

4年前からクラウド推しの小生は、日本国内の「クラウド食わず嫌い」にはかなり気を揉みました。Amazone EC2をはじめとするクラウド(ホスティング)は、稼働時間保証が甘かったりします。無人監視ですし。これを日本人は「怖い」と思うらしい。まあ無理もありませんが。しかし「安全」「怖い」の尺度が本質的に間違ってたことを、図らずもファーストサーバが証明したようなものです。

有人監視だから「間違えない」わけではない。むしろ間違えます。間違えた上でのリカバーのコストも含めて、有人監視であるわけです。「サービスのためのサービス」を提供しようとする日本人の気質は、本質的には悪くはないと思いますが、管理プログラム類の成熟度はなかなかあがらないと思うのです。作業者も仕事で使うだけですから、使い勝手とか考えない。と言うわけではないでしょうが。

「管理プログラム」は、海外の業者では、概ねオープンソース或いは自作でしょう。料亭で言えば、賄い料理を出しているようなものです。

肝は、自身がヘヴィーユーザであるか否かというところ。

オープンソースやらフリーソフトやらの成熟度の尋常でなさは、ご存知の人は多い筈。

何某かの管理プログラムがオープンソースである可能性は高いですが、商用プログラムと比べて、安全なわけでも、危険なわけでもありません。オープンソースであれば、自分で責任をとらなければならない。「作る手間が減っただけ」で「メンテナンスする手間」は寧ろ増えるのです。これが商用プログラムだったら?「文句を言う相手が外部に居る」それだけです。

2012年6月23日土曜日

動的言語で、生産性が上がる、ってどういうことだろう

久しぶりに読んでみたらおもしろかったので
http://logsoku.com/thread/hibari.2ch.net/tech/1308499587/
また考えてみます。

まず「動的言語」ってなんなの?という定義が必要だと思われます。
この系列の初回のスレッドでは、

http://logsoku.com/thread/hibari.2ch.net/tech/1306002146/

1 : デフォルトの名無しさん : 2011/05/22(日) 03:22:26.61
型をしっかり明記してこそ
安全で堅牢、バグのないソフトは作れる
と言ってるので、まずは「動的型付け言語」だと解釈するべきだと思うのだがどうか?小生もこの点では激しく同意します。一番困るのは、関数の引数の順序間違いとか入れ違い。

悪名高きPHP5でも、引数型のタイプヒンティングが付きました。ただしこれ、arrayもしくはクラス/インターフェイスに限ります。stringとかintとかboolとかは書けないわけです、片手落ちとはこのことかと。PHPでこれを使うなら、クラス名を直接書くより、interfaceをわざわざ宣言して、わざわざ指定するべきでしょう。こうすれば、PHPでも、「コンパイル時チェック」の恩恵を若干受けることができます。

ただし、C++育ちの人は、引数を沢山渡したがる気がするのだがどうだろう?4つ以上なんか、もう管理しきれませんよ。3つ以下に減らしましょうよ。protectedに仮置きするなりして。

「コンパイラ時チェック」には、もちろん関数名のタイプミス程度のダサイミスも含みます。だだしコレを理由にPHPをdisってる人は、統合エディタを使ってなかったりする。んじゃないかと思うのだがどうだろう?使用言語に限らず、統合エディタが手伝ってくれるものは素直に手伝ってもらいましょう。変数名だの勘数名だの補完。2画面開いてコピペとか、地道過ぎだし、JavaだったらEclipseを、Visual C++だったらVisual Studioを使ってるでしょう?その時点で、実は公平な比較をしてない。

で、ボチボチ「動的言語」の定義を「evalできる言語」にシフトしたいのですが。言い換えると、ランタイムコンパイル言語。

リファクタリング論まで含めると、Java+Eclipseが素晴らしい!なんて話に成りがちですが、その作業のほとんどをEclipseが肩代わりしてくれてることを忘れちゃいけません。Javaが素晴らしいわけではない。Eclipseが素晴らしいのです。つまりJava+Eclipseでようやく実用になる。生エディタでなんとなく仕事ができてしまう「動的言語」とは勝負になりません。※Javaが負けだと言っています。

動的言語のいいところは、コンパイル操作が要らないところ。もちろん最近は「スクリプト言語」でも内部ではバイトコンパイルしてますが、そんなミクロな話はしてません。「makeが要らない」と言い換えてもいい。これによって、「試行錯誤」を高回転で実施できるところです。

PHPのバグの殆どが「実行しないと判らない」のは全面的に認めるとして、しかし「デバッグができない/面倒臭い/困難」なわけではありません。JavaとかC++育ちの方々は、ステップトレースしたいところでしょうが、そんなミクロなデバッグは要りません。アチコチにvar_dumpを入れまくってアタリを付ける感じは嫌いじゃないですね。そして初級プログラマほどソレを勧めたい。
  • プログラムのバグってのは、1行単位で起こるわけではありません。
  • ある程度のプログラム量を経由して起こるものです。
そんなわけで、小生の見解として、
  • 動的言語で、コーディング時点でバグを検出しにくいのは仕方ない。諦めれ。
  • デバッグは、var_dumpなり、error_log( json_encode() )なりを入れまくれ。
    • 組み込み関数がダサイPHPは、自家製関数でwrapしてやればよかろう。
  • 関数の引数が4個以上とかは、引数クラス型チェックに頼るより、設計を見直す方が先。
  • PHPでは、interfaceを上手く使えば、ダサイタイプミスは減らせる。と思う。やらずに済んでるので。
  • JavaとPHPの生産性は、実は大して変わらない。
      • これは「PHPはJavaの劣化コピーだ」と思ってる人に言ってます。
      • 嘘だとおもったら、Eclipse禁止でJavaで仕事をしてみればいい。
      • ちなみに小生は、どっちも「生産性が高い」とは思ってません。
  • 本当はPythonで仕事したい。
  • 「プログラミングとは、言語を拡張することだ」と何某かの言語の開発者の誰かさんが言ってましたが、この観点からいうと、言語はシンプルな程優れてる、ということになる。tcl最強じゃね?(lispとか知りません)
  • 静的型付けマンセーだと思ってる方々には、Pike( http://ja.wikipedia.org/wiki/Pike ) とかイイと思いますよ。
要するに、「動的言語を使う」なら「動的言語なりの手抜き」をしないと、効率なんか上らんぞ。と。

2012年6月20日水曜日

AKIBA'S TRIP PLUS

AKIBA'S TRIPの続編というかリニューアル版、PLUS。買ってきました。
初回特典付きを買う(不可抗力だったが)のはおそらく始めてです。

(初回特典付きってぐらいだから)UMD版を買いました。ローディングはかなり短くなってますね。UMDのままでも6秒ぐらい??MEDIA INSTALLすると2秒ぐらいまで。

UMD PassportでVitaでも遊ぶ気満々だったのですが、非対応。新作だから?? しかたなくPSPで遊ぶことに。

本編のウリの一つ、モデリングのリファイン。売店のオネーサンが妙に美人に。



洋服屋再建の場所が変わってます。秋葉原駅のすぐ横。元あった場所にはゲームセンターが入ってます。



イベントシーンの構図も色々変わってます。台詞をしゃべってる時(主人公以外は概ねフルボイス)は、本人のアップになります。口パクもしてます。ああそうか、コレを見せたいのか。


とりあえず無印のデータを引き継いでみたので、いきなり「服半透明」が解禁です。だけじゃなくて、スタート直後に幾つかアイテム類を貰えます。結構な量(「幾つか」どころじゃなくて10以上)でしたが、記録を取ってなかったので内訳は判りません。

DLCのITウィッチコスプレイヤーのアバターを使用。





屋上の看板が変わったような??



イベントのほとんどは依然として健在です。





聡子さんの横顔は意外と美人。



新機能(?)目録。アレ技一覧はもともとあったよな。衣装一覧が増えたのかな。



コスプレイヤーモデルは常に笑顔を絶やしません。イベントシーンが意外と微妙な感じに。





おっとイケネエ。妹チェンジしちゃってるので、新妹モデルを拝めませんでした。


妹は、1回3000円でポーズ取ってくれます。カメラ見回すのは相変わらずの90度単位。



自警団の面々もオトコマエ(?)になっています。



新サブミッション「ミドリな大量発生」。着ぐるみ軍団30人を倒すというものです。基本的に強い装備ではないので、雑魚ですが、迂闊にローアングラー2と同時受注すると、同時発生します。

何が困るって、ミドリはいきなり戦闘を始める上に彼らはカゲヤシ。そうです、警護対象の筈のゴスロリ3人が戦闘参加してきます。しかも戦闘が始まると、ローアングラーが野次馬撮影モードに入るので、会話が成立しません。要するにローアングラー討伐は不可能に。

最初はどうしてくれようかと思いましたが、ミドリ15人倒すとミドリが復活しなくなりました。30人の筈なのに? バグってるのか救済処置なのか、とにかくローアングラー討伐して、公園に入り直して、ミドリのやりなおし。これが増えたお陰か、カゲヤシ100人炭化はかなり早期に達成できます。何がイイって、飴渡さんに「NIROマニュアル」が貰える。




2012年6月17日日曜日

今更、NHKを解約してみようとしてみた

今更、NHKを解約してみようとしてみました。

アナログテレビしかないどころか、それもアナログ期間中に処分しちゃってたので、その時点で解約の権利はあったんですが。東海沖地震で色々有耶無耶に。仕事もグチャグチャだったしね。

故に、受信料は踏み倒す気満々だったが、銀行引き落としが機能しちゃってたらしい。だからこそ今回↓の窓口応対がスムーズだった、って事もあるでしょう。まあいいか。

http://pid.nhk.or.jp/jushinryo/digital.html
これに書いてある電話番号に電話して、3分程まつ。
そりゃ、通算15万人が解約するって言うんなら、小生の順番もかなり後ろの方でしょうよ。

デジタル放送が受信できないかについては、何項目か質問がある。結構しつこい。まあオネーサンもマニュアルに従ってるだけだろうから、付き合いましょう。

  • 「ワンセグ対応の携帯電話はお持ちでしょうか」とか
  • 「ケーブルテレビ等のご加入はありませんでしょうか?」とか

今までは電波ありきなので、個々の契約者の受信方法の記録がない、って事なのでしょう。しかし、「録音してる」って話なので、ここでうかつな事を言うと、何か記録される可能性があります。まあだからって不利になるようなネタは今更言わないが。

ただし、携帯からのせいか、音質はあまり良くなかったので、聞き取りにくい時は素直に聞き返しました。「録音してる」ってのに、生返事するわけにいきません。

ワンセグ対応携帯は、本当に持ってませんよ。って言うか、そのために、ワンセグの付いてない携帯を選んで買ってますから。HTC-03a, HTC-EVO, iPhone3GS 。付いてないでしょ。国内メーカーはNHKとグルですからね。 ※はっ、iPhoneが売れてるのってそういう背景もあったりして

今後数ヶ月分、引き落としが継続するが、昨年アナログ停派まで遡って、まとめて返金するらしい。その時に引き落とし口座を(店名→支店名までは)確認しましたが。確かにその口座には残金が結構あります。割と最近足したし。

普通郵便で書類を送るから、その書類を返送してね。別の紙は駄目。って話は聞いたけど、誰かさんが確認のために見にきます。って話は、そのオネーサンは言及しませんでしたね。どうなったのだろう。どっちでもいいが。確かにつながってないし、テレビも本当にないしね。

ちなみに解約したとしてNHKと完全に切れてるかというと、切れてません。別の住所で受信料は依然払ってるので。

2012年6月16日土曜日

mercurial requirements dotencode

mercurial 1.9で作ったリポジトリは、mercurial 1.4で読めないらしい。
具体的には、こんな感じで怒られます。

中止: 必須機能 'dotencode' はサポートされていません

もしくは

abort: requirement 'dotencode' not supported!

linuxmintの常用ノートから、ubuntu10のファイルサーバにリポジトリをcloneして、いざそのリポジトリをhgwebdirから閲覧しようとすると、前述のエラーに悩まされるわけです。

小生も泡食って色々調べてしまいましたが、リポジトリが壊れてるわけではありません。
コイツは、「「リポジトリバージョン」の違い」とでも言うべき現象です。

既に出来上がってるリポジトリがどうなってるかは、.hg/requires を見れば判ります。dotencodeを使ってるリポジトリでは、当然最後の行に dotencode が書いてある筈です。ただし、このファイルのdotencodeの行を削除すれば良いかというと、残念ながら違います。リポジトリを正しく読めなくなるっぽいので、後述の再構築をする方が安善でしょう。

http://mercurial.selenic.com/wiki/RequiresFile#Known_requirements
問題のdotencodeは、1.7から増えた機能。MacOS系及びWindows系のファイルシステム対応らしい。故に1.4では読めない。というわけです。しかし流石はmercurial、リポジトリの変換機能(厳密には再構築)は存在します。もちろん1.7以上で実施する必要があります。
hg --config format.dotencode=0 clone --pull 旧リポジトリ 新リポジトリ
幾つか作っちゃったぜ。って人は、仕方がないので一括変換しましょう。

https://raw.github.com/gist/3065657/9c97d72f59e555dd73e9c1af4a6e5f386b0d04d1/oldformat.sh

古いリポジトリも依然として使えますし、1.7以上であればpush/pullできます。
もし、「オレサマはWindowsもMacOSも使わねえぜ」って人であれば、最初からこの機能はoffれます。流石はmercurial。

.hgrcにこんなのを書くらしい。
[format]
dotencode = False
念のため強調しておくと、この設定が効くのはリポジトリの新規作成(init/clone)の時だけです。の筈。前述の変換コマンドラインは、この設定を上書きしつつ処置するわけですね。

更に、このケースが問題になるのは、ローカルmercrialがリモートリポジトリを、直接参照する時だけです。hgwebdir.cgi等を使ってる場合はこれに当てはまりません。リモートのmercurialがリモートのリポジトリを操作しますから。

2012年6月14日木曜日

「一過性黒内障」

小生は肥満であり、脂肪肝であり、高血圧である。実感が伴わなければなかなか痩せようとは思うまい。ところが、自身の健康状態を真剣に考えざるをえない事が起こった。ネタは題名のとおりではある。

先週末日曜日、昼間、PSPでゲームをやっていたところ、いきなり視界の一部がボヤケる。確認してみると、右目の視野の左上3割程度が、灰色の幕が掛かったようで、何も見えない。最初は網膜剥離かと思って、仰向けにしばらく横になると、回復して完全に見えるようになった。

仮に網膜剥離だとして、寝て入れば治るものなのか?※ぼやけたのは、視力の弱い左目だけで見てるため。

近所の眼科を検索してみると、「日帰り緑内障治療」「網膜剥離治療」とか頼もしいフレーズが並んでいる。

火曜日朝、眼科医を尋ねて症状を言う。何か決めかねてる模様。結局、様々な検査で、2時間程度、保険本人負担分で4000円も掛かってしまった。

  • 「目の形」を調べる
  • 眼圧
  • 矯正視力検査
  • 視野検査
  • 眼底検査
結論からいうと、現在の目玉の状態は極めて良好。しかし、小生の証言の症状から鑑みると、「一過性黒内障」の疑いがあるという。網膜の血管が詰まって、網膜の働きが弱くなるのだが、詰まるのにも色々理由がある。

ヤバメなのは血栓で、さもなければ脳にいって脳梗塞を起こす可能性があるという。更に、眼球の動脈が静脈を圧迫して、血流が悪くなってる可能性がある。動脈硬化の気があるという話であった。目で済んで良かったのか悪かったのか?ちなみに、黒内障が発症すると、血流が滞ってる部位が、眼底撮影で白く映るという。小生のはちゃんとオレンジ色ではあった。

脳梗塞に、失明の危険、ヤバメの話が二つも出てきてしまった。おまけに動脈硬化ときた。
網膜の血管の詰まる位置次第で、見えなくなる範囲はいかようにも変化する。中心部近くで起これば、ほとんど全滅だ。緑内障、白内障、黒内障、シリーズのようにも見えるが、「見えなくなる」からこその「「黒」内障」であるというわけだ。

一瞬で視力を失う経験には、小生もさすがに戦々恐々とせざるを得ない。まずは食事から考えてみる。玉ねぎがいい、と例のネイルサロンの技師に聞いたので、毎晩食べてはいる。これだけで改善はするまいが。

2012年6月13日水曜日

「こちらになります」

「こちらになります」が耳に付き始めてだいぶ経ちますが、

http://netafull.net/neta2007/020251.html

早4年ですか。そうですか。

「中間的な丁寧さ」というニュアンスは判らんでもありませんが、どうして「語尾を丁寧にする」というアプローチしかないのでしょうか。正直、頭悪いと思う。「「語尾を丁寧っぽくしたら丁寧語」だと思ってるわけだから。

ただし、丁寧語以前の問題として、コンビニ店員は、同じ店でも接客の質のばらつきが大きすぎます。
  • レシートを渡さない。
  • 袋詰めが下手
  • レジ待ちがつまってる時のフォローが遅い|来ない
  • 深夜だからって、楽しそうに私語&談笑。
最初の話に戻って、接客質問の文言

  • 「温めますか?」の質問の文言
    • 「温めどうなさいますか?」YES/NOだけで返答に成らない。
    • 「そのままで大丈夫ですか?」何が?
  • 「レジ袋に入れますか?」の質問の文言
    • 「そのままで大丈夫ですか?」何が?

正直、この質問の文言がオカシイ奴は、頭が悪いと思う。コンビニ店員の仕事は「丁寧語を話す」ではありません。それは社会人としての常識って話で、あわてて頑張ってる場合じゃない。偽丁寧語を使う程度で、本来の作業が疎かになってもらっちゃ困ります。客としてじゃなくて、それで店のイメージが下がって売上が下がって、店長が困るのよ。