2009/06/30

1987年のIOCCC作品であるbiggar.cをgeekなページなんかでたまたま見かけた。
biggar.cのソースコードは

P;

以上。
は?と思われたでしょうが秘密はコンパイラオプションに有ります。

$cc -DC="R>0" -DI="if(T)O" -DO="c=write(1,&c,1);" -DP="main(){X}"\ -DR="read(0,&c,1)" -DT="c!=015" -DW="while(C)I" -DX="char c;W" biggar.c

コンパイラオプション-Dでマクロを設定しているわけです。
こちらに書き下したものが有ります。

こんな感じです。
main(){
char c;
while(read(0,&c,1)>0)
if(c!=015) c=write(1,&c,1);
}
「IOCCC 1987 P;」なんかでググるといろいろ出てきます。
もちろんgccでも出来ます。
ccをgccに変えるだけで。
gccに関してはここなんかやman gccを見たりしました。
-Dmacro=valueで臨時にマクロを定義。

というわけで以前gccでコンパイルできる最短のHello,world!、最短のソースコードに挑みましたが、それよりさらに短い物に挑んで見たいと思います。
ソースコードhello.cの中身はこう

A

以上、半角一文字。
おそらく最短。

このAにマクロを設定する。
コンパイラオプションは

$gcc -DA="int main(void){char H='H';char e='e';char l='l';char o='o';char S=',';char w='w';char r='r';char d='d';char E=0x21;char N=0x0A;write(1,&H,1);write(1,&e,1);write(1,&l,1);write(1,&l,1);write(1,&o,1);write(1,&S,1);write(1,&w,1);write(1,&o,1);write(1,&r,1);write(1,&l,1);write(1,&d,1);write(1,&E,1);write(1,&N,1);return 0;}" hello.c

まともなソースコード風に書き下すと

int main(void){
/*初期化*/
char H='H';
char e='e';
char l='l';
char o='o';
char S=',';
char w='w';
char r='r';
char d='d';
char E=0x21;//!
char N=0x0A;//改行コード
/*出力*/
write(1,&H,1);
write(1,&e,1);
write(1,&l,1);
write(1,&l,1);
write(1,&o,1);
write(1,&S,1);
write(1,&w,1);
write(1,&o,1);
write(1,&r,1);
write(1,&l,1);
write(1,&d,1);
write(1,&E,1);
write(1,&N,1);
return 0;
}

printfやput系はSegment Faultとなるのでwriteを使った。
charで文字一種類ずつ宣言してwriteで出力、
の流れです
"が使えないのと!がマクロのイベントか何かと認識されるのと
改行コードでの改行の出力がポイント。

09/09/09 少し改良。文章を。

2009/06/29

結城さんの日記を読んでいたら

"wikipediaに「数学ガール」の項目が出来ていました。"

とな?

数学ガール - Wikipedia

読んでみたが・・・・

とりあえずGJ!!

キャラクター紹介が濃い!

数学のトピックがGJ!

て、今思い出したけど

私まだ原作持ってなかった・・・orz

図書館で借りてきただけだった・・・

2009/06/28

MP3プレイヤ ZEN STONE 2GB

スピーカー内蔵モデルの青が届いた

Amazon.co.jpから

STONEの名の通り本当に小石のような大きさです

音質はちょっと聴いた感じでは悪くは無かったです

人生で初めて買ったポータブル音楽プレイヤです

そういえば中学の時はカセットを使ってたな

MDじゃなくて

2009/06/27

昨日髪の毛を切った

事はおいといて

Unix-like toolsなるものをインストールしてみた

ようはDOS、というかコマンドプロンプトでlsとかpwdとかのコマンドを

使えるようにするってやつです

インストールはいたって簡単

展開してbinディレクトリにPATHを通すだけ

ついついdirじゃなくてlsって打っちゃったりする人にお勧め

tmanでつまずいた人への追記
tmanを使うにはMANPATHという環境変数を作って

値はインストール先\ntuxtl***(バージョン)\man

例)C:\Program Files\ntuxtl014\man

とする。最後に;を付けないこと。

そしてそれでも無理なら

manディレクトリ以下の***(コマンド名).txtの拡張子を

すべてmanに変える

私は先にbinにパスを通して

(例の通りなら)

>cd C:\Program Files\ntuxtl014\man
>rename *.txt *.man

とした

2009/06/26


昨日夕方、
新しい眼鏡を取りに行った

今度のは
蒼っぽいやつです

ちょっと乱視の度が
キツくなっています

幅が前のより狭いです

外出時用になりそうです
↑新メガネ ↓新旧メガネs




2009/06/25

昨日ヱヴァンゲリヲンの序1.01を見た

ラミエルかわいいよラミエル

変身シーンなんか素敵

エヴァの中で一番好きな使徒戦はイロウル戦だけど

破を見に行くべきか行かざるべきか

明後日だっけか、公開

2009/06/24

今日は心療内科に行く予定です、が

先ほどまで雨が降っていたようです

行く時と帰る時に降りませんように

2009/06/23

アニメの最終回で

季節の変わり目を察知する

今日この頃

夏か・・・

ついでにその日の深夜に放送されるアニメで

曜日を判定する

2009/06/22

土曜日に眼鏡を買いに行った

出来るのは今週中

蒼っぽいメタルフレームの眼鏡

乱視ちょいあり

楽しみ

ああ、どんどん目が悪くなっていく・・・

2009/06/21

賢そうな・才女っぽい言葉遣いの僕っ子キャラ、

たとえばハルヒの佐々木、efの広野凪・・・

そういうキャラにも私は萌える

あとすらっとした感じのファッションのめがねキャラ

たとえば(特に劇場版)空の境界の蒼崎橙子

かんなぎの私服姿の木村貴子もいれてもいい

眼鏡キャラで思い出した

新エヴァの新キャラ真希波(マキナミ)・マリ・イラストリアスもいい

賢そうなキャラが好きなのかね・・・私は

眼鏡属性といい年上属性といい

2009/06/20

gccでコンパイルできる最短のソースコードというものを昨日いろいろ試してみた。
結果は・・・これです。

main;

以上、半角5文字。
ええ、警告出ますとも。
たしか何も無しは無理だったような。
ちなみに思いついた中で最短のHello,world!のソースは

main(){puts("Hello,world!");}

以上、半角30文字。
でもAnarchy Golfによると1位は21文字だそうな。どうやってるんだろう・・・。

おまけ

$ man life
No manual entry for life
$ man love
No manual entry for love

人生と恋愛のマニュアルは無しですか・・・そうですか・・・

09/09/09 少し文章を改善。

2009/06/19

昨晩から今日にかけてのことです

一旦寝たはいいもののまた起きて

そのまま歩くと途中で立ち眩み?眩暈?をおこして

座り込んでしまうということがありました

しばらく座るか寝転がっているとマシにはなって

また歩くけどまた座り込む、というか倒れこむということが有りました

あー、危なかったなー あのときは

手がぶるぶるしてたもんなー

顔に血の気がなかったものなー

息が苦しかったものなー

て、笑い事じゃないな

2009/06/18

サブ機には結局またEcolinux-ezをいれました

パッケージも一通り入れました

Emacs22(gtk),geany,gcc,build-essential,

OOo,gimp,Inkscapeとかいろいろ

使わなくてもなぜか入れる

・・・・最近書くネタが無くなってきた

でも今日まで毎日更新してるしな・・・

2009/06/17

Ecolinux-ezを入れたサブ機FMV 716NU3が

突然

fsck周りで起動しなくなった。

調べてみたけどめんどくさいので

再インストールでもしようと思う

とりあえす~/以下のバックアップはとっておいた

ついでにOSもそろそろ変えようかな

2009/06/16

バインドルーンというものがある

簡単に言えばいくつかのルーン文字をまとめて書く・あわせる

という感じのものだ

たとえばハーケンクロイツ卐は

シゲル






という太陽を意味するルーンを二つあわせたもの、らしい

というわけで私のネット上での名前のひとつ、

悠空(Yuku)をバインドルーン化してみようと思う

こんな感じですかね

2009/06/15

昨日「ほしのこえ」と「劇場版 空の境界 伽藍の洞」を見た

「ほしのこえ」は・・・

よくわかんなかったけど

なんかこう日常の世界の素晴らしさといいますか

・・・いや、悪くは無いんですよ?

見る価値は有ります

「空の境界」の方は

とりあえず映像が良かった

アクションとか

「手持ちのアンサズでは~」のシーンで一発でルーンだと分かった私って・・・

いや、少しでも魔術についてしってたら普通か

いや、魔術について噛った事があるって普通じゃないな

2009/06/14

最近大学受験勉強もかねて

数学I+Aのニューアクションαという参考書をやっている

持ってる教科書とのレベルのギャップが凄い

でも解いていてけっこうおもしろい

我流の数学でやってるので正解率は著しく低い

今の高校生はオイラーの公式・等式をやらんのですな・・・

e^iπ+1=0

自然対数の底e

円周率π

虚数単位i

乗法の単位元1

加法の単位元0

加法

乗法

累乗

がひとつの式にまとまっている

2009/06/13

メモリ届きました

メイン機Gateway ML6020jのメモリを+1GBで2GBに
(I increased the memory of the main machine.1GB→2GB. )

かつDual Channnel

とっても速いです

何度やっても起動しないと思っていたら

差込が悪いだけだったり

元の通りにいれたのに起動しなくなったと騒いだりと

トラブルだらけでしたが

なんとか出来ました

メモリの総量が2048じゃないのがちょっと気になる

2のn乗じゃないとたまに気になる

もとのメモリ10MB減ってる・・・

P.S.
アクセスカウンタが500を超えてました

2009/06/12

最近DRAGON QUEST V(PS2)を続きからやっている

エスタークが15ターン以内に倒せない

あとは闇のトロフィーだけなのに

とりあえず今は天空への塔で

スライムベホマズンを仲間にしようとがんばっている

他には

最近"複雑系入門-知のフロンティアへの冒険"という本を

読んでいる

前にも読んだ事はあるが

今読んでも結構面白い

複雑系の入門書って感じ

2009/06/11

昨日はいつもは有線のメイン機で

なんとか無線LANが出来ないかと頑張ってた

WEPキーを入れられるところまでは出来たが

(それ以前は入力すら不可・"範囲内に接続が(ry・再度(ryとか)

正しいWEPキーを入れても"接続を待っています"でタイムアウト

無線LANデバイスは本体内蔵

なんかこいつはもともと無線は悪かったんだよな

できてもすごく遅かったし

ルータ側に問題は無いはず

他のパソコンじゃたまにつながりにくいが

繋がってるし

2009/06/10

最近SkypeやJane StyleやGlary UtilitiesをUpdateした

SkypeやGlary Utilitiesはインターフェイスが大きく変わっていて

ちょっとビックリした

Glary Utilitiesはレイアウトはさほど変わってなかった

Skypeはいろいろと変わっていて最初はちょっと使いづらかったかな

Jane Styleに関してはYahoo!検索バー(゚⊿゚)イラネ

そういや今思い出しましたが

携行機のdebian lennyのX Window Systemをlxdeに変えました

インストールはsudo apt-get install lxdeでやった覚えがある

結構軽くなったかな

2009/06/09


キングカワイソスが可愛い

から書いて見みた

2009/06/08

Linux等の端末とかで

sudo genki

とか

make love

とか一度はやるよね

プロンプトをYUKI.N>にするのも

export PS1="YUKI.N>"でいけるか?

2009/06/07

My Computers(MAGI)の欄を編集

ただいまメイン機のメモリ増設を検討中

メモリ増設の目安は

コミットチャージ合計/物理メモリ合計≦0.8

らしい

普通に使う分にはギリギリ足りているんだが・・・

CPUが非力だしな・・・

2009/06/06

精神安定剤の服用過多なのか

それとも血中濃度が下がっていないのか

頭がボーっとする

気をつけなければ

判断能力が著しく低下している

2009/06/05

昨日友人とカラオケに行ってきました

また例の如く一覧にするのかというと

さすがにそれはめんどくさいので

適当に覚えている範囲で

前回に載せていたものはめんどくさいので載せません

地上の星
ヘッドライト・テールライト
宙船

以上中島みゆきさんの

Astrogation
SECRET AMBITION
MASSIVE WINDER

以上水樹奈々さんの

ほかにはQueenの

Don't stop me now
I was born to love you
We will Rock you


Red flaction
緋色の空

友人はけいおん!や種死、アイマス系、

JAP(BASARAの)、ON/OFF等をいれていました
cc,gcc,g++等で

int x,y;
printf("x:");x=getchar();
printf("y:");y=getchar();

等とするとy=gethcar();の部分が実行されない

これはscanf("%d",&y);等としても不可だったと思う

仕方ないので

#include<stdlib.h>
#define MAX 256
char buf[MAX];

とでもして

printf("x:");fgets(buf,MAX,stdin);x=atoi(buf);
printf("y:");fgets(buf,MAX,stdin);y=atoi(buf);

とでもしている

fgetsにしたのはgetsでは警告が出るため

2009/6/16追記
fflush(stdin);やrewind(stdin);で入力バッファをクリアすれば

getchar()やscanfでもいけるらしい

2009/06/04

突然ですがここでアメリカ国歌星条旗(The Star Spangled Banner)について

星条旗よ永遠なれ(Stars and Stripes Forever)と書かれる事があるが

これは、アメリカの国の行進曲(National March)でまったくの別の曲

アメリカ国歌星条旗の歌詞は

フランシス・スコット・キー(Francis Scott Key)が書いた

マクヘンリー砦の守り(The Defence of Fort M'Henry)という詩が元になっている

メロディは当時酒飲み歌だった

天国のアナクレインへ(To Anacreon in Heaven)が元になっている

だから元は酔っ払いの歌なんて言われることがある

最近では

Whitney Houstonが湾岸戦争(The Gulf War)開戦直後の1991年に

スーパーボウル(Super Bowl)で歌ったものがCD化され大ヒットした

またロック・ギタリストのJimi Hendrixが

1969年のウッドストック・フェスティバル(Woodstock Music and Art Festival)で

ギターで演奏したものも有名

最近読んだ本に書いてありました

2009/06/03

バーゼル問題


ζ(2)=∑ 1/k^2=π^2/6
k=1


今ふと思い出した

かつて"数学ガール"でオイラーの解法を見て完動した覚えがある

そういや最近数学やってないな

φ(黄金比)は私の嫁

2009/06/02

Eclipseと聴いて思い浮かべるもの

・バスカッシュのアイドルグループ(エクリップス)・・・アニメ好きですか

・JavaのIDE(Eclipse)・・・プログラマの方ですか

・月食・日食・・・科学者の方ですか。それとも英語得意な人ですか。
(本来の意味はこれ)

・Eclisp・・・Lisperですか。綴りと音微妙に違います

バスと聴いて思い浮かべるもの
・(乗り物の)バス・・・正常です

・(風呂の)バス・・・たぶん正常です

・(音楽の)バス・・・ちょっと音楽家です

・(ブラック)バス・・・釣りやってますか

・(コンピュータの)バス・・・ちょっとコンピュータよりです

2009/06/01

最近"ネットvs.リアルの衝突―誰がウェブ2.0を制するか"という本を読んだ

最初は主にP2PソフトWinnyについて書かれていた

途中からは

おおざっぱなインターネットとかコンピュータの過去の対立・バトル

そして今~未来について書かれていた

ような気がする

というかほとんど内容忘れている

ちょっとしか覚えていない

さっきパラパラとは見返しはしたけど

感想としては

なかなか面白い本ではありました

私は馬鹿ですから難しい事は(゚⊿゚)シラネ

というか分からない

ただネットによって世界は変わってきてるとおもう

そして変わるべきだと思う


ああもう書いてて何がなんやら分からんようになった

とりあえず「読んで損は無かった」。私は


なんだこの馬鹿が書いたみたいな文章はw

中身が無い。いやこの投稿について

もうどうでもいいや