2010-06

2010-06-15 

生きてます(ちょっと日記サボっただけでリアル死亡説が流れたことがあったので。家族の間で)。

えー、手術までした腰椎椎間板ヘルニアですが、なんかまた腰の調子が悪いです。ぶっちゃけまた立ち仕事してます。再発の可能性はゼロではないので、また医者に診てもらいます。

とはいえブログの更新が滞っているのは単にネタがないからであり、ブログすらままならないほど酷いというわけでは。

マジで本当に他にネタがないので、メタルの話でも。最近良く聴いてる奴とか、ネタバンドとか。

2010-06-17 

Python 2.5 と 2.6 以降では、 SocketServer.TCPServer の実装が大分変わってんのな。具体的には serve_forever メソッドの実装が 2.5 の時代だと

    def serve_forever(self):
        """Handle one request at a time until doomsday."""
        while 1:
            self.handle_request()

なんて素朴だったのが、 2.6 だと select モジュール使うようになってるとか。また 2.6 からは shutdown メソッドが実装されているが 2.5 には存在せず、これらが相まって妙な問題を引き起こすことがある。

俺がやりたかったのは 2.5 の TCPServer (実際にはもっと継承ツリーの先の方だけど) をベースにしたクラスに shutdown メソッドのようなものを実装することだったのだが、そのためには serve_forever をオーバーライドせねばならず、そしてそのオーバーライドの内容によっては 2.6 での動作に影響が出るという、若干面倒な事になった。

C の #ifdef みたいなもんで多用というか濫用は禁物だが、以下のような逃げの一手を打つのがこういう時には手っ取り早い。

class MyHTTPServer(TCPServer):
    __python_version = ... #Pythonのバージョンの取得
    if __python_version < 2.6:
        def serve_forever(self):
            #2.6系統ではオーバーライドの必要無し
            ...

        def shutdown(self):
            #2.6系統には既に実装されている
            ...

ってかこういうのを「漏れのある抽象化」っていうんだろうなー。

2010-06-19 

「プログラミング言語の速度は重要だよ派」と「ボトルネックは他にあることが多いからそこまで重要じゃないよ派」の争いはいい加減グルグル回りすぎて虎がバターになってる気がするのでどうでもいいというか、お前らそんな事で言い争ってる暇があるなら俺の仕事を手伝ってくれ! いや、マジで。

2010-06-20 

「履歴書を綺麗に書いているか」とか「判子が真っ直ぐ捺されているか」とかで相手が仕事をきちんとできるかどうかわかるわけねーだろ。アホか。仮にえらいこと字が汚くて判子が曲がって捺されてる履歴書があったとして、

この三つの判断って常に書類だけでできんの? さらに

この二つが混ざってきて、それ本当に区別できんのか? 「俺にはできる!」という人は間違いなくエスパーであり、エスパーというのはまず間違いなくヤク中か詐欺師なので、薬物中毒者の更生施設に入るか、あるいは警察に自首することをオススメする。

どうでもいいけど、世の中には本当にどんなに頑張っても字が汚くて他人が読み解くのが困難、というか書いた本人でもあっという間に判読不能になる人ってのはいるもんだよ。まあぶっちゃけ俺がそうで、

とまあ 20 年弱にわたって「お前の字は人間が読めるものではない」「OCR のエッジケーステストスイート」と言われ続けて全然直らなかったので、俺はもう履歴書の綺麗さで足切りする会社には就職できない。

まあそもそも、腰を盛大にやってしまっているので、今後普通の会社に勤められるかというとスゲー無理くさいんだが。もはや普通に椅子に座ってプログラミングを行うという行為がかなり無理(また立ちながらプログラミングですよ)。

追記:履歴書の綺麗さが云々の問題は、手書き履歴書でなくとも可とし、また写真の貼り付けの義務付けをやめるという極めて簡単な対応であらかた解決する。

2010-06-21 

諸事情により Atom の拡張方法について調べたんだが、 http://tools.ietf.org/html/rfc4287 のスキーマ読む限りじゃ大抵の要素に事実上任意の属性が付けられるっぽいな。例えば atom:link だと

atomLink =
   element atom:link {
      atomCommonAttributes,
      attribute href { atomUri },
      attribute rel { atomNCName | atomUri }?,
      attribute type { atomMediaType }?,
      attribute hreflang { atomLanguageTag }?,
      attribute title { text }?,
      attribute length { text }?,
      undefinedContent
   }

という定義になっているのだが、これらのうち atomCommonAttributes は undefinedAttribute を含んでおり、その定義は

undefinedAttribute =
  attribute * - (xml:base | xml:lang | local:*) { text }

となっているので、名前空間にさえ注意すれば大丈夫だろう。

2010-06-22 

手書き履歴書がどうのこうのの話の続き。ってかこれが本題。

俺はかつて勤めていた企業(中小の下請けソフトウェアハウス)で新卒・中途問わず新人の採用の可否の相談役、採用後の研修の担当、結果としてダメなこりゃだった奴の首切り判定の職務に就いていた事があり、要するに割と人事に近いところにいたのだが、はっきりいって手書きの履歴書は単に読むのがタルいだけなのでいい加減に電子化してくれよと思っていた。まあ、俺にそこまでの事を提案する権限なんぞなかったわけだが。

それで履歴書の字が綺麗かとか判子の向きだとかは、まあ本人の能力との相関関係は見られなかったとしか言いようがない。きちんとした履歴書を書いてきた上で面接にも通り、そして一ヶ月も経たずに辞めていった奴とか普通にいたし、逆に「え? よくこいつをあの上司が通したな。ボーダーラインギリギリじゃね?」って感じの子がえらいこと飲み込みが早くて教える俺は楽だったということもあった。一番多かったのは「あらゆる意味でそこそこ」だったのだが、それは当たり前か。

仮に手書き履歴書の見てくれで落とすことを正当化するに足る理由があるとすれば、例えば手作業の書類仕事が多い場合などが思い浮かぶが、だったら最初から募集要項にそういう旨を書けばいいだろう。どのような人材が欲しいのか明確にせずに採用活動をして「ろくな人材がこねえ」とボヤいてるなら、そんな会社にまともな人材が来るわけねえだろとしか言いようがない。まともな人材ってのは、大抵は自分を必要としている企業を探してそこに行っちまうもんだろうが。俺が前の会社に入ったのだって、ほとんど事故みてえなもんだったし。

とはいえ、募集要項にあまりキツい条件を書けないってケースもあるのが話をややこしくしてるんだが。これは中小の IT 系企業の話なんでどんだけ一般性があんのかわからんが、そういった企業には新卒採用どころか中途採用でも「未経験者歓迎」としているところがある。それも、かなりの数だ。それは別に研修が物凄く充実しているとか、業務を技術が必要なところとそうでないところにきっちりわけて、後者は素人をちょっと訓練すればそれで間に合うようにしてあるとか、そういうわけではない。「未経験者歓迎」と書かないと、そもそも応募してくる人数が激減する、酷いときは皆無になるからだ。実際、前の上司に「お前に募集要項書かせたり面接やらせたら、絶対に一人も採用できない」と言われたことがある。そんなもんだからダメダメな人材が普通に応募してくるわけだ。

そういう事情もあったりするので、「ものすげえ論外が応募してくる可能性があるため、それを手っ取り早く落とす」ためのフィルターとして手書き履歴書が使われている可能性は否定できない。が、応募者にろくでもない奴が多いと感じるなら、それはろくでもない奴でも応募する気になるような形で募集をかけてる事の証拠と思った方が良い。もしも採用戦略の見直しができるのなら、即座にやるべきであろう。お互いのためにも。

そして先に出した中小の下請けソフトウェアハウスのように、採用戦略を変えられないようなところは一体どうすればいいのかだが、俺はもうどうしようもないと感じ、それが俺が会社というか SI 業界からドロップアウトした理由の一つだった。