FC2ブログ

皆既月食

6年ぶりらしいが、見逃さないようにしよ。
18時過ぎから21時までか。

今月28日、6年ぶりに皆既月食 : 日本惑星協会

スポンサーサイト

void main

いまさらながら

    void main(void)

久しぶりに見た。

ANSI-C(C89)以降、mainには、
    int main(void)
    int main(int, char **)*1
の2種類しか規定されていない時代が続いているわけだが、古いK&Rスタイルを引きずる古い古い世代や、MSのC++からCを学習した世代にはまだこの因習が引き継がれている。

現存のコンパイラの殆んどはmainが戻り値を返さなくても、正常に実行可能なモジュールを作成してくれるので、動けばいいという向きには良いのかもしれないが、OSへ値は返さねばならず、それが

1. 必ず成功(0)を返す
2. 最後の処理結果を返す

のかは処理系によるだろう。(まぁ(2)だと思うが)
んでそういう意識を持ってコーディングしているならまだましかもしれないが。

んで、動けばいいという主張が通るかどうか、という点だが、昨今の状況ではそうとも言えない。
まず、ANSI準拠をうたっているコンパイラでは、mainが値を返していないことについて、警告を出す。
つまり、void mainとコーディングしてあるということは、適切なコンパイルオプションを与えずに開発を行っている可能性を示唆することになる。

手もとのgcc version 3.4.6[FreeBSD]では、デフォルトで

    warning: return type of 'main' is not 'int'

が出力されるが、処理系によっては、warningレベルの指定をしなければ警告を出さないものもある。

mainが値を返すべきかそうでないのかはもう今更どうでもいい話なんだが、はっきりしているのは、void mainと書くべきでないという事で。
少なくともプロなら。



*1  mainの第2引数を、*argv[]と書いたりargv[][]と書いたり、まぁいろいろあるとは思うが、それはそれ。
    また、第3引数でenvを持つものも一般的ではあるが処理系依存であって、少なくともANSI-C(C89)には記述がない(はず)。

一時記憶減衰中

目の前に、半分ほど入ったコーヒーカップが二つ並んでいる。



最近良くやる。
出先で仕事してる時も、半分入った缶コーヒーが何本か並ぶ。
さぁ帰りましょうとノートを閉じると、その裏から飲みかけのお茶やらジュースやらが顔を見せる。
もう茶飯事。

この間は、記憶を無くす夢まで見る始末。
ちょっとビビリ始めた新米壮年。

そんでも古い記憶が消えるわけじゃなく、ほんの数分前の記憶がすっぽり抜けるだけだから、生活に大きな支障が出るわけでもなく。
後から「あーっ、そうだった」、と思い出す事もなく、全く記憶にございません、状態も、数を重ねれば慣れてくるもので。(^^;

まだまだ現役の所存でござる。面倒かけるけどもよろしくの。

新世代ネットワーク

/.Jの記事より
日本発「新世代ネットワーク」は2015年実現目標

この中で、AKARIプロジェクトについて触れられているので見てみた。

NICT (独立行政法人情報通信研究機構)の内部研究室となる、新世代ネットワーク研究センターによるプロジェクトであり、NXGN(Next Generation Network)を経て、NGN(New Generation Network)を2015年に実用化する事を目標にしたものである。

ホワイトペーパー、と呼んでいいのか、概念設計書を見てみると、まぁ大層立派なお題目が並ぶ。

諸外国の次世代、新世代ネットワーク構想プロジェクトに遅れを取るな、的な気持ちは十分わかるし、それが必要な場面も増えていくのだろう。

しかし、資料を読み進めていくうちに、どんどん気になってくるのが、技術的な側面に偏りすぎている事で。
確かに新しい技術ってのは、重要だし面白いし楽しい事なんだけれども、「白紙から始める」と大見得切っている割にEnd-Userに見えるものは今と変わりがないもので。

「ネットワーク」とは一体なんなのか、なんだったのか。
電算、オートメーションがIT、ICTと呼び方が変わって、本質的に一体何が変わったのか。
インターネットが破綻した破綻したと結論づける以前に、もうちょっと構造的な分析をして欲しかった。そして、構造的に「白紙」から考察して欲しかったなぁ、

と、このおいぼれた経済学部除籍の中途半端に文系な技術屋のおっさんは思ったりする。

いや、ようは難しすぎてわかんね、ってことなんだけどさ。(^^;
NICが1000円でお釣りがくるような今がちょっと気に入ってるってだけのこと。(__;はい、勉強します。

命名かぐや認定証

今年の春先に一般公募していた、
月周回衛星 SELENEの愛称。

大方の予想どおり、かぐやに決定し、応募者の一人として、よっしゃよっしゃと満足していたのが数ヶ月前。

そしたら今日突然JAXAから郵便物が届いた。
かぐや命名認定証


小さなバッヂもおまけ。
かぐやバッヂ


なんか貰えるのを期待してたわけじゃないので、ちょっとうれしい。

ちなみに地球から見て月の左下の真ん中辺、俺んだから

###
1701名も貰ったのね(^^; JAXAも頑張っとるのー
http://www.jaxa.jp/countdown/f13/special/nickname_j.html

そーいやー、南極観測船の名前も募集してたな。
新南極観測船の船名募集!
### 2007/08/16 追記
延期されていた、かぐや(H-IIA13号機)の打上げが、9月13日(木)午前10
時35分47秒にケテーイ。

tail

ファイルの尻を表示するプログラムのtail(テイル、テール)。

稼働中システムのLOGファイルの監視をする時などは、
%>tail -f logfile
のように使う。

LOGファイルに対する追加書き込みがあればそれを表示し、無ければそこで待つ。という開発現場では良く使われる重宝なもので。

ところがこのtail -f、LinuxとFreeBSDではまるで実装が異なる。

Linuxの場合は単にblockingでreadを使う。
ただしこのreadは通常ファイルではEOFでREAD可能を返してくれる。
従って、通常ファイルに対してはread後(EOF検出後)に幾許かのsleepをかますことになる。(5秒とか)
つまりblockingによる待ち状態にはLinuxの場合はなり得ない。

これがFreeBSD4.1以降だと、keventちうsystem callが使えるようになっている。
このkeventは、通常ファイルのEOFもblockで(selectライクに)待つようにできているため、FreeBSDのtail -fは、きっちりblockで待つように、すっきりしたロジックになっている。

for(;;) {
    ...
    kevent
    ...
    while ((ch = getc(file->fp)) != EOF) {
        ...
        if (putchar(ch) == EOF)
            oerr();
        ...
    }

元々FreeBSDのソースとLinuxのソースはかなり違うのだけれども、これは特別で、簡単な処理(短いソース)の割になかなかわかりやすくて面白い。

されどtail、って感じ。

懲りもせずFreeBSD6.2R

ということで再度FreeBSD 6.2Releaseのインスコ。
freeBSD6.2R


gnome全盛の今時AfterStepかよ、という話もあるんだが、使い慣れてるし、まぁこんな感じで。

Microsoft Basic Optical Mouse

懸賞で当たった、Microsoft Basic Optical Mouse (P58-00047)

p58_00047


定価で1800円というまぁ消耗品扱いのマウスなんだけれども、今まで使っていたボール式のが小汚くなっていたので、いい機会ってことで交換。

使い心地はというと、全体に軽くスムーズで長時間の使用でも疲れることもなくいい感じ。
ただ、廉価版だからなのかなんなのか、ホイール部の収まりが甘く、前後左右に微妙な遊びができているのが気になる。
これまで使っていたLogitech M-S48(たぶん本物)のホイール部は実にしっかりできていて、それと比べるとこのMSのやつはかなり頼りない。

そんでもまぁ久々のマウス交換なので、頑張って慣れないと。

Windowsに変わるもの

Windowsに変わるものを焦点に、
Fedora Core 6
Ubuntu 6.06 desktop
Vine Linux 4.1
を使ってみたんだが。

ぶっちゃけ、GNOMEなんで全部おんなじ。
シャットダウン用のボタンがあったり、窓切替ボタンがあったり、みたいな些細な違いはあるけれど。

使ってみた中で一番元気を感じたのは、Ubuntu
新しいからなんだろうが、各アプリケーションを積極的にいぢる気持ちが感じられるし、サポート年月を明確にしていて、プロジェクトとして勢いが感じられる。

まぁその辺のちょこちょこした不具合の修正や、使い勝手の向上ってのは、同じベースなのでそれぞれ順次改修されていって、そのうち差異はなくなっていくのだろう。

軽く感じられたVineは、少々poorな環境でもそこそこ使えるだろうと思うし、自動アップデートやその他の機能も、入れりゃ同じになるんだろうし、これといって、目立つハンディもない。

んで結論としては、
Windows要らね
ってことになる。(最初からその気だったんだが(^^;)

Office環境が整って、CUPSが標準になって印刷も不安なく。
CD/DVDの操作も手間なく、音も動画もちゃんと出て。
USB機器も認識するし、SambaでNASも軽々。
アップデートもできちゃって。

Vistaで音が出ません!なんて言ってるような輩はみんなGNOME使えと。

Windowsの牙城だった年賀状印刷なんてそれこそWebアプリでできちゃいそうだし、OSの勢力図が塗り替えられる日も近いね。

んでもって自分はどうするかというと、データの引越しめんどくさいんで、メインはしばらくはFadora Core 6。
サブは開発も絡むし、性分的にFreeBSD+Afterstep。(^^;

だってさー、ソース追うのは絶対楽だし、やっぱりBSD系は魅力あるんだもん。(^^;

Xのプログラミングも少しやらねばなー

Vine Linux 4.1

勢いにのってVine Linux 4.1を試用中。
vine-screenshot


インストールはRedHatでおなじみのanaconda
すいすいっときて、「デスクトップ」でインストール。

これまたおなじみとなった、GNOMEの画面。
フォントがちょいと異なるが、だいたいFedora, Ubuntuと同じ。
メーラにSylpheedがデフォルトなのはポイント高いかも。

んでもって、OpenOffice.orgがインストされてなかった。
この状態でHDD使用量は2GB弱。
動作はFedoraに比べるとずいぶん軽いような気もするが、んー、あんまりわかんない。(^^;
自動アップデートチェックがなかったり、ちょっと独自性が出てるんだけれども、たぶんネット主体ならこのまんまで全然問題なく使えそう。
WindowsネットワークがNASを発見してくれなかったのがちと残念。

Ubuntu

今日は、Ubuntu

とりあえず、ubuntu-ja-6.06-desktopをインストール。

ubuntu desktop


同じGNOMEってことで、画面構成やメニューも殆どFedora Coreと同じ。

インストールも、名前とパスワードくらいの入力で、勝手にどんどん進んでいって終了。
最初の起動時に表れたUpdateは151。まぁこんなもんでしょう。

んでもって、インストール直後のHDD使用量はってぇと、約3GB。決して軽量ってわけではない。

それでもサクっと入れた直後から、Mozilla FireFoxが使えて、メールが使えて、OpenOffice.orgのオフィススイートが使えてプリンタもスキャナも使えて、GImpで画像が扱えて、音楽が聞けて、CD/DVDが焼ける。

MP3デコーダが入っていなかったり、AVIが見れなかったりは、多少手をかけなければならないが、それもたいした作業ではないだろうし、必要ない人には必要がない。

あまりにFedora Coreとおんなじ(Fedora CoreがUbuntuと同じ?)でちょっと拍子抜け。

子供にあてがうならこのくらいがちょうどいいのかもね。

#2007/08/05 追記
日本語(SJIS)ファイル名を含むアーカイブを展開すると、Ubuntuはちゃんとファイル名が日本語で読めるようになるのね。Fedoraだとこうはいかなかった。
なんかこういうちまちました所(Evolutionのヘッダの化け化けとか)に手を入れてるようで、勧めるならFedoraよりもUbuntuだな、今の所は。
あ、Fedoraも7になってるから変わってるのかもしれん。

キャラクタ

文字の意味のcharじゃなくて、キャタビラ三菱とも何の関係もなくて、マスコット的な意味のキャラクタ。

まぁいろんなキャラクタってぇのがあるもんで。

中には、えぇ加減にせぇよ!ってのもある。

東部鉄道:遺失物検索システム
わすレモンちゃんwasulemon-tyan

首都圏コンピュータ技術者共同組合北海道営業所
メッカモ

著作権を恐れず載せちゃうけれども、もちょっとどうにかならんのかいな、と。

こういったキャラクタで個人的に最も秀逸だと思うのはやっぱり


Duke


かな。スマート過ぎるけれども。

シュールさで言えば何といってもうるまでるび系。

プロフィール

f_yamaki

Author:f_yamaki

アクセスカウンタ
最近の記事
最近のコメント
最近のトラックバック
月別アーカイブ
カテゴリー
ブロとも申請フォーム

この人とブロともになる

ブログ内検索
RSSフィード
リンク