32nd Diary

トップ | 最新 | 過去の日記 | もっと過去の日記

2004年
5月
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
めーるあどれす
ruby -rbase64 -e'puts Base64.decode64 %q(dGFrYW5vMzJAZ21haWwuY29t)'



2004-05-24 (Monday) [長年日記]

バイト関係の話題&スクラップからネタを整理してお届け.

[UNIX] Turbolinux 10 F..., Dual Handed Keyboard

以前ぷらっとホームから受けとったダイレクトメイルより面白ろそうなアイテムを抜粋.

Turbolinux 10 F...
5/28発売開始.なんつ〜か,このネーミングはどうかと思った..
一応,Turbolinuxの主張によると,

キーワードは、たのしい(Fun)、自由(Freedom)、ミライ(Future)...。FamilyでもFriendでもなんでも構いません。これからのパソコンライフスタイルはあなた自身が創造してください。そして、あなたの "F" を見つけてください。

だそーな.これ見た瞬間,「なんでもかまわんのか……,じゃぁ,性行為(Fxck)の"F"だな」とか思った私はNGだろうか.たぶん,NGだ.あ.Foolもいいかも.(まだ言ってるよ……
Dual Handed Keyboard
敢えて形には突っ込まない.が,

カーソルキー・エンターキー・バックスペースキーなどの極めて使用頻度の高いキーが全て親指に割り当てられていますので、使い慣れてしまえば、極めてわずかな手の動きだけで入力ができるようになります。

使用頻度低いか?>カーソル,エンター,バックスペース
まぁ,まともな(?)UNIXユーザだったらそこらのキーは使わんでも大丈夫ですけど…そういうターゲットじゃないよな.これ.
そして一番重要な点に突っ込みを入れておこう………値段高っ!!

[Mobile] 味ぽん@キマイラ(週間モーニング No.25 P.308)

私はこのマンガを読んでいないのですが,味ぽん*1が載ったとかで2chで話題になってました.

これが話題の画像.
話題の画像

ちょっと嬉しかったので転載してみました……まさか,こんくらいでは逮捕されんよね?(とかいう

*1 味ぽん: 日本無線から発売されたAirH" PHONE第一号.

[Work][UNIX] プロセスが恐しいほど上ってしまったとき.

ときには,シェルに向かって,コマンドを叩いても"fork: Resource temporarily unavailable"とかいうょゎぃメッセージとともにコマンドが機能しない状況になることもありましょう.

今日はそんな場合のはなし.

まず,注意すべき点はうかつにログアウトしないことである.ログアウトしたが最後,ログインシェルが前記のエラーで立ち上がらん,ということにもなりかねない.というか,なる.

次に注意すべき点は,頼れるコマンドはbuiltinのもののみである.というところ.ちなみにこれにより使用できるコマンドは"builtin help"などで確認することができる.

このとき一番頼れるコマンドはcd, echo, killである.ちなみにechoはシェルが*を展開する,というUNIX的な性質を用いて,カレントディレクトリの内容を表示するのに使う.つまり,"echo *"でディレクトリの内容を表示できるわけだ.

結局,対処すべき方法としては,まず,/procの中を見る.

で,たいていリソースが不足しているようなときは万単位でプロセスが上っていたりするので,殺してもよい千番台にあたりをつけ,"kill 13[0-9][0-9][0-9]"とかゆー感じでkillってあげよう.なんならkill -9も可.(当然,当方は無保証ですけど.

とりあえず,コマンドが入力できるようになったら,sync;sync;syncか?(わら

早急なリブートもオススメなんである.

[Work][Java][Ruby] Rubyプログラマの弊害?

今日Javaで書いたソースコードをレビューしてもらった.

以前から思っていたんだけれど,バイト先にこういう機会がなかったため,どんなにヘボイコードを書いても指摘されなかったんですよねぇ.これからもこういう機会があればよいかなぁ.と思う.

で,指摘された点はふたつ.

まず,ひとつめは親子や兄弟の関係にないクラスのくせに同じ接尾辞を付けていた,という点.一度,実装を離れてクラス図の段階で見ないと気づかんのよね.しかし,これにより可読性を低下させてしまうことも確か.

この名付けについては負はこちらにあるな.要反省なんである.

名付けには気を付けていたし,自信をもってたので,これはちょっとショックだった.

ふたつめは,ライブラリクラスなどの継承*1は止めたほうがええよ.ということだった.

しっかし,これは指摘された瞬間絶望的な気分になった.だってさぁ〜,Rubyプログラマって平気でこういうことやるでしょ?(わら

ちなみに,Javaでのこれによる主な弊害は二つ.

まずは隠蔽の崩れ.MyVector extends Vectorとしたときに,MyVectorはVectorのメソッドがすべて呼べちゃうよね.っておはなしだ.が,Rubyではインスタンスのメソッドは生成後でも自由自在に公開,非公開にできる*2しなぁ……(Module#private_instance_methodとModule#public使えば全部非公開にして必要なのだけ公開できるし.)

つぎの問題点は継承させたいときにVector以外のものが継承できんではないか!!という問題.こいつは単継承由来の問題点だな.よって,Rubyでも当然の問題が起きそうな気がする……が,そいつは気のせいで,Mixinを使うと多重継承の必要性はないと言っていいほどになるしなぁ……でもって,Rubyの場合はinterfaceうんぬん以前にまぁ,メソッド呼んでみ.話はそれからだ.って感じだからなぁ.(ぶ

一応,moduleの使用例でも挙げておきます.

おそらく普通のプログラマには痛みを伴なうほどの不自然な感覚を覚えるコードですけど,Rubyプログラマにとっては比較的ふつーなコードです.

*1 ライブラリクラスなどの継承: 具体的にはextends Vectorでしたな.

*2 生成後でも自由自在に公開,非公開にできる:まぁ,型のチェックがないからな.

#! /usr/bin/env ruby
module WithString
  def withAster
    return "*" + self + "*"
  end
end
 
class String
  include WithString
end
 
str = String.new("hoge")
print str.withAster

出力結果は"*hoge*"となる.RubyプログラマはStringクラスの拡張さえも,場合によっては厭わない(はず)(というか,個人的には結構やる.).

結局,こーいった便利な機能がある言語は,これに慣れてしまったときの弊害ってのが意外と大きいのではないか,と感じたなぁ.

あと,レビューによって自分より知識のない人からの評価*1が明らかに下ってる気がするのが気になる.「32さん,レビューでボコボコに言われてたよ.」と嬉しそうに言ってた人いたし……

まぁ,私の考えとしては,技術力向上のためにはプライドもくそもないのですから,知識や技術のないやつに何言われようともべつにかまわんです.

が,それによって,私が正しい意見を言ってもなかなか通りにくくなるんじゃなかろーか,という危惧はあるんですよなぁ.(人ってたいていは「スゴイ人*2」の言うことはよく聞くけれど,「スゴクない人*3」の言うことはよく聞いてくれん.特に知識が足りなく,自分で考える能力が欠如している場合にその傾向が強いと思われる.)

かといって,レビューは多くの人数でやった方がいいとは思うしなぁ……

って,今日のレビューの場合,自分が書いたコードのレビューなのに,その場に自分が居なかった*4のが悔しいんですけどね.

...しっかし,クラスライブラリの継承しないようにしたら,(主観的に)ソースコードがすげぇ汚くなったなぁ...むぅ.残念...

*1 知識のない人からの評価: ちょっと失礼な言い方ですな.失敬.

*2 スゴイ人: もちろん,その人の主観で.

*3 スゴクない人: 「スゴイ人」に同じ

*4 自分が居なかった: まぁ,ボクは常勤じゃないんで時間もなかなか合わないしなぁ.

本日のPingbacks(全0件)