トップ «前の日記(2010-08-08) 最新 次の日記(2010-08-11)» 編集

はじめてのにき

ここの位置付け

2004|11|
2005|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|

ToDo:


2010-08-09

_ Hello!

いつものことながら hello が動くと嬉しい。

i@um ~/test> cat hello.c
#include <stdio.h>
int main() {
    printf("Hello, world!\n");
    return 0;
}

i@um ~/test> gcc hello.c
i@um ~/test> ./a.out
Hello, world!
i@u4 ~/wrk/ld-mach-o
> scp i@um:test/a.out .
a.out                               100% 8704     8.5KB/s   8.5KB/s   00:00
i@u4 ~/wrk/ld-mach-o
> ./macho2elf a.out elf
i@u4 ~/wrk/ld-mach-o
> ./elf
Hello, world!

あとは引数とかとシンボルのリネームとかかな。

引数の方はこんなコード書いて

#include <stdio.h>

int main(int argc, char* argv[]) {
  printf("argc=%d\n", argc);
  printf("argv[0]=%p\n", argv[0]);
  printf("argv[0]=%s\n", argv[0]);
  printf("argv[1]=%p\n", argv[1]);
  printf("argv[1]=%s\n", argv[1]);
  return 42;
}

実行すると、

> ./elf foo
argc=2
argv[0]=0x7fff558ef3d4
argv[0]=./elf
argv[1]=0x7fff558ef3da
argv[1]=foo

引数あってるじゃん… ELF と Mach-O は 起動時の ABI は一緒ってことかね。

いつも思うんだけど printf ってこう、 不審な値が入ってることなんていくらでもあるはずだから、 多少チェック入れて欲しいよねとか思う。 出力前に引数の値チェックする safe_printf みたいなのあってもいいと思う。 glibc の printf は %s で null check するのはえらいと思う。

あとグローバル変数忘れてた。 たぶん動かんのでチェックしよう。

(00:02)

_ ゴルフ場

ひさびさにスレが目に入ったので見たら色々要望とかあった。 アンテナに入れておこう…

http://pc12.2ch.net/test/read.cgi/tech/1173057314/l50

さて Scala は何故入れなかったんだっけ… たぶん強烈に遅かったんだと思う。 しかしまぁいいかと今度入れよう。

Ioke ってのはなんだろう入れよう。

むうちょっと日和った Io for JVM or CLR って感じかな。 コンセプトは良さげ。

XSLT って普通の入力処理できるんだろうか、まぁ入れよう。 処理系は何がいいんだろう。

pugs => rakudo はそうなんだよなぁ。 pugs 自体が死んだようなもんに見えるので、 両方残すとかはなるべくしたくなかった。

  • この記録は pugs 特有の機能を使っているように思う
  • そして rakudo ではこの記録は破れなさげ

というようなものは、 まぁ教えてくれれば消したいと思う。 そういうのは少ないと思うんだけど、どうなんだろう。

99.rb の 14B は消したみたいだ。 fib.c の 21B か…これはどう見てもおかしいな。 消すか。消そう。消した。 万が一復帰する必要があった時用メモ:

["", 21, 0.000241, Sun Sep 28 18:39:34 +0900 2008, [0], 0]
["", 21, 0.089871, Sun Sep 28 18:27:00 +0900 2008, [0], 0]

Octave 。あれ標準入力とかあるんかいな。入れよう。

use form 。つか use form はひどすぎるのでなんとかするべき。

(01:52)

_ rakudo star crash

http://atnd.org/events/6687

最近色んなことを記録してないのがよくないと思ったので、 とりあえず記録しておく。

Perl6 は思った通りというか、 やはりとても面白かった。 なんていうか、色んな問題に他言語から取ってきた手法じゃなくて、 ユニークな解を与えていくって感じで、とてもいい。 ただ Rules だけはちょっと失望感があるかなぁ… まだしっかり見てないからわからんけど。

今一つ配列とリストの区別がつかないのと、 それらの結合演算子の無いっぽいのが痛いぽかった。 いや , でひっついたりもするけどそのへんよくわかってない。 () で書くのが Parcel or List で [] で書くのが Array 、 @a に入ってるのも Array 、って感じか、な。

コードとしては、 フィボナッチに感銘を受けつつ、 にはさんパスカル書いてくださいとか人に丸投げしてたら書いてくれたので、 それをちょっと縮めたりしてたのを xhl さんが大幅に縮めて下さった、

([1],{0,@^_ Z+@^_,0}...*)[^13]>>.say

がまぁいい感じだったと思う。

あとこの fizzbuzz もいいなぁ。長いけど。

http://d.hatena.ne.jp/lyrical_logical/20100807/1281199290

落とす方は無限リスト作るとすぐメモリ使い果たすのがアホかという感じではあった。 メモリ使い果たす時に GC が無限再帰して stack overflow してるのは興味深かった。

あとは parrot/rakudo のコードを眺めてる時間も多かったと思う。 言語作る人ってメタメタしいの好きだよねえと思った。

(02:08)

_ kernel 読書会

だいぶ前のやつ。

http://www.slideshare.net/suzaki/ss-4707229

正直何言ってるんかなー的な話が多かったかなぁ。 なんか終わった後に感想は書いてあった。

流れとしては、

  • まぁ普通のマルチユーザはありえんけど
  • 仮想化というのなら安全に切り離されてて安くなるじゃないか!
  • ちょっと待って! 仮想化されてても VMM とかドライバにバグがあるとか、そいうことあると結構こわいよ!?

って感じなのかな。

全体的にクラウドってのがこいう心配しなきゃいけないほどマジメにみんな考えてることなんだなぁ…というのが感想だったと思う。僕の自分の中との温度差にびびった感。

まぁそれより、 hyoshiok さんが楽天のコミュニティとのつきあいガイド的なのをプレゼンされてて面白かった。 OSS すいしんーみたいなのって、言うのはとっても簡単だけど、それでもなかなか会社は言ってくれないことなので、それを言うだけでも素晴らしいことだと思った。

そしてしかし実際にすいしんーって感じにするには、それは僕の理解が正しければ従業員がそれなりに忙しくない必要があって、そいう面のサポートをするのは会社としては短期的には真にコストのかかることであって、そして大変なんじゃないかなぁと思う。というような話をしてみた、が、どの程度説明できたかに自信はさっぱりない…どの程度うまくいってるかというと、それなりにはうまくいってるけど完璧ではないくらいだと思うんだけど、グーグルは結構マジでこのへんにコストを割いていると思っている。僕の感覚ではヒラ従業員の意識とかうんぬんとかよりそいうサポートみたいなのが無いと現実問題としてキツいと思うんだよなぁ。

なんか OSS の中にあるバグとかって普通に追う人は追うと思うんだけど、 // 弊社向け hack! とかいうコメントと共にローカルへの変更だけになっちゃうケースが多いんじゃないかなぁと漠然と思っていて、そこをちゃんと還流していくか否かってのは仕事に余裕があるか否かと、その人になんかそいう精神があるか異なか否かがたぶんあって、後者がある人ってのはもうほっといても勝手にやるので、たぶん禁止さえしてなければ実際のところどうでもよくて、多数であろう前者の方のサポートはなんか重要なんじゃないかなぁ…という。

で、一番重要な話はこう実際英語とかどうすかと聞いたことなんだけど、割と好意的に受け入れられているらしい。潰しの効くスキルだからいい機会である、って感じなのかな、という印象だった。

そしてそれは、個人的には大変残念というか、くやしいというか。なんか漠然とこうずっと、英語とかとの向き合い方はマジメに考えないといけないのか、それともほっといてなぁなぁのうちに退社してニートになるか、というのが漠然とあるのだけど、真面目に考えた方がいいのかなぁ…

こうなんで英語イヤかというと、それはまぁ色々理由らしきものは考えられて。僕は自分で勝手に自分は勉強熱心であると思っていて(主に知らない人に知ったかぶれる程度の知識を修得することに関して)。で、それは今まで基本的に、あまり目的とか深く考えず単に知りたいから勉強してきただけっていうのが強くて、そこはなんか漠然と、否定しちゃいけない部分な気がしていて。ていうのはこう、塾とか予備校とか TOEIC とかでもいいんだけど、無理矢理こう、学校とか会社に行くためにおべんきょー、みたいなのをやっている人を見て、どうもあまりうまくいってなさげだなぁとか思ったのが強いんだけど、まぁそいう現実的なものは後からついてくるべきことであって、動機であってはいけないと、こう漠然とした俺ルールがあって。今後仕事で潰しが効きそうだから英語勉強ってのは、それに見えて大変イヤなのだった、というのも理由の一つかなぁと思う。

まぁ趣味は言い訳なのでこれも言い訳でしかないとおもう

(02:23)

_ pugs と parrot

この件に関しては、言語ごとに集計しつつも、 その投稿がなされた時のバージョンを記録、 っていうやりかたをするべきだったんだと思う。 同じようなやりかたで例えば JRuby なんかもサポートできるといいんだろうと思う。

言語をリモート実行するようなものをこれから作る人は そのへん気をつけるといいんじゃないかなぁ。

(02:46)

本日のツッコミ(全4件) [ツッコミを入れる]
_ satyr (2010-08-09 08:47)

> pugs 特有
http://golf.shinh.org/reveal.rb?Nothing/kt3k_1194791683&pl6 とかですよね

_ yt (2010-08-09 19:38)

すっかり忘れていたのですが、お手数でなければゴルフ場のAdaのコンパイラをgcc-4.5系列にバージョンアップしていただけないでしょうか。
条件演算子が使えるようになっていますので、だいぶ短くなる……はずなのです。

_ shinh (2010-08-10 01:55)

おー pugs は <> 使えたんですね…これ消して回るとなると結構もりもり消さんといかん感じですかね困る。

_ shinh (2010-08-10 01:55)

gcc のアップデートはちょっとめんどくさいですね… Debian に入ったら必ずやるです。

お名前:
E-mail:
コメント:
人生、宇宙、すべての答え
本日のリンク元

2010年
8月
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
1.isshiki(2010-08-27 03:40) 2.shinh(2010-08-18 12:30) 3.もわ(2010-08-18 09:02)
search / home / index

全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。

shinichiro.hamaji _at_ gmail.com / shinichiro.h