ソースコードを皆でマッタリ読もう会(初心者歓迎){}

このエントリーをはてなブックマークに追加
1( ^-^)o旦~~~~
ソースコードをま〜たり解読しながら一杯やりませんか。
ありそでなかったスレッドなんで無謀にも立てちゃいました(笑)
プログラム板に立てようかとも悩みましたが、あえてLinux板にしました。

プログラミング入門者大歓迎。
つーか、はじめに宣言しておきますが、スレ主がヘタレ入門者です(笑)
たぶん挫折すると思いますが、せっかくLinuxを入れてオープンソースを
利用させてもらっているんだから・・・いやま、ちょっとした好奇心で。
2login:Penguin:2007/12/18(火) 17:30:44 ID:/YP3vefp
で、どれを読むの?
3login:Penguin:2007/12/18(火) 17:44:16 ID:Ss/U39a7
>>1
うせろ
4login:Penguin:2007/12/18(火) 18:22:30 ID:KbWryziz
5login:Penguin:2007/12/18(火) 18:30:08 ID:WyuHjE9Q
6login:Penguin:2007/12/18(火) 20:34:36 ID:Hw7034JG
1の努力が試されるとき。
7login:Penguin:2007/12/18(火) 21:16:29 ID:qzak6LyU
>>4
なんつーキモいヘッダーファイルだ。
8login:Penguin:2007/12/18(火) 21:21:48 ID:sPkSz4VR
あのbourne shellの悪名高きソースか
気付かなかった
9login:Penguin:2007/12/18(火) 22:27:47 ID:g4HiNXWp
10login:Penguin:2007/12/18(火) 22:50:20 ID:R+RTpjLO
http://sartak.katron.org/nh/src/monst.c.txt
ローグライク崇め奉ってる連中は↑読んで
さっさとUNIX板のNethackスレから撤退して欲しいよ
11login:Penguin:2007/12/18(火) 22:58:52 ID:g4HiNXWp
>>10
そのコード、C99で書き直すとすっきりする予感。
12login:Penguin:2007/12/19(水) 15:01:39 ID:e02yQg60
>>4
その手を使えば簡単に新種のプログラミング言語をつくれたんだww
13login:Penguin:2007/12/19(水) 18:53:05 ID:WrancIir
>>11
色々な改造表現が可能だよね。
攻撃一回のパターンを構造体にする代わりに
単一の攻撃       を'-'をセパレータとして"攻撃種類-攻撃属性-3d4(D&Dダイス表現)"の文字列として表現するとか
さらにそれら攻撃のリストを':'をセパレータとした"攻撃1:攻撃2:攻撃3:攻撃4:攻撃5:攻撃6"の文字列として表現するとか。
別にローグライクだってデータ構造自体には独自性は無いって事がわかってくれると嬉しい
14login:Penguin:2007/12/19(水) 22:20:27 ID:YJ9VwWjD
>>13
お前、センスないな。
15login:Penguin:2007/12/21(金) 08:23:04 ID:bkjK4DQt
>>14
可変幅フォントを採用するようなセンスは欲しくない。正直言って。
16login:Penguin:2007/12/21(金) 18:09:05 ID:p4adG9ny
struct Hoge {
unsigned x:31;
unsigned y:1;
}
後ろのコロン数字なんだけど、
これどういう意味??
17login:Penguin:2007/12/21(金) 20:13:41 ID:Yh+dqHwt
ヒント:足して32
18login:Penguin:2007/12/21(金) 21:32:31 ID:p4adG9ny
え・・・まさか 32 bit のうち、
x に 31 bit 割り当てて y に 1 bit 割り当ててるってこと??
19login:Penguin:2007/12/21(金) 23:06:39 ID:2IO5/NZD
つ ビットフィールド
20login:Penguin:2007/12/21(金) 23:16:21 ID:p4adG9ny
>>19
サンクス。理解した。
ビットフィールドって本でチラっとだけ読んだ事あったけど忘れてたよ。
21login:Penguin:2007/12/22(土) 01:16:54 ID:jhXFc7Sf
まあ使わんけどね。

struct hoge {
unsigned hilo:4;
unsigned lohi:4;
} val;

val.hilo = 1;

でビット並びが 00010000/00000001/10000000/00001000 のどれなのか
コンパイラ依存では使いにくい(ビットフィールドは並び順規定がなくて
詰め込みの都合で前後入れ替わったりもOKだったはず)。結局自分で
unsigned 8bitなフィールドでビット演算すればいいや、みたいなことになる。
22login:Penguin:2007/12/23(日) 19:25:18 ID:kTiXk5SW
bit-fieldは、PICやAVRのコントロールレジスタを弄る時に重宝してます。
23login:Penguin:2008/01/21(月) 14:39:36 ID:CLm+aD3F
コンパイラ依存だということさえ頭の片隅にあればおk
24login:Penguin:2008/02/14(木) 23:21:33 ID:8zLNc2ft
>>19
できるよ。
以上。
はい次の方。
25login:Penguin:2008/03/06(木) 12:02:04 ID:vblp5Eja
オープンソースとはいっても意外と誰もソースコードを読んでいる人はいなかったりしてwww
26login:Penguin:2008/03/06(木) 13:09:06 ID:FXTf91Yy
必要もないのに読みふけるような人はあまりいないのでは。
趣味の欄に「ソースコードを読むこと」と書いた人にはあまりお目にかからない。
修正したいこととかがあれば読んで修正して、
それが他人の役にもたちそうならパッチ送ってる。
27login:Penguin:2008/03/06(木) 22:01:34 ID:TTvqLA2j
ねぇねぇ、マジレスだがパッチ送るとかそういうのって具体的にはどうするの?
とあるアプリに機能追加してみたら、人も使うかなって感じになったんだけど
MLにも参加してないし、だいたいOSSのそこらの流儀ってよくわからんのですよ。
英語のコミュニケーションも自信ないしなぁ。
28login:Penguin:2008/03/07(金) 01:11:04 ID:KCHuH3b4
>>27
BTSがあればそこにでもたたき送れば?
なければメンテナのメールアドレスに送る。

英語は Please apply this patch. でええやん。
内容説明はちゃんとしたほうがいいが、最初は簡単。
patchがrejectされると返答に困ったりするが。
29login:Penguin:2008/03/08(土) 01:49:14 ID:NurH5bQ8
>>28
ありがとう。デベロッパの代表メールアドレスのほうに送ってみる。
しかしbugfixでもないし、なかなか緊張するなぁ。
30login:Penguin:2008/04/11(金) 03:36:55 ID:LecVb+N3
プログラミング文法(C言語&Perl)の基礎を習いたての人が読むのに丁度いい
ソースって何かありますか?
31login:Penguin:2008/04/11(金) 04:03:26 ID:6UH1WEiq
>>30
リナックスカーネル。
良質のコメント、解説が巷に溢れてることがその理由。
32login:Penguin:2008/04/11(金) 04:56:07 ID:cN/3gfl3
>>30
プログラミングテクニック―UNIXコマンドのソースコードにみる実践プログラミング手法
http://www.ascii.co.jp/books/books/detail/4-7561-4389-X.shtml
どうだろ

リナックスカーネルってwww難易度高すぎorz
33login:Penguin:2008/04/11(金) 05:10:02 ID:6UH1WEiq
>>32
変な先入観持ってないか?
34login:Penguin:2008/04/11(金) 10:04:54 ID:PqytVBqB
>>30
> プログラミング文法(C言語&Perl)の基礎を習いたての人は

まずソースを読むより教科書の写経でいいからガリガリ書いた方がいい。
古典だがK&R(プログラミング言語C)とラクダ本(プログラミングperl)は必修。
人のソース読むのはその後でいいよ。
35login:Penguin:2008/04/11(金) 11:03:11 ID:QobCpyde
>>33
Linux kernelの参考書(特に日本語のやつ)はほとんど参考にならん。
なので>>30にはきついと思う。

読むなら自分で使っていると思われるGNUツールとかかな。
36login:Penguin:2008/04/11(金) 15:51:58 ID:s/b26oPJ
>>30
ffmpegのソース。あれは見といて損は無い。
37login:Penguin:2008/04/12(土) 17:38:24 ID:o9k8LBSw
>>35
良い洋書はどんなのがある?
38login:Penguin:2008/04/13(日) 10:37:09 ID:e/aLH6cc
>>37
>>35じゃないけど、オライリーのあれは結構読みやすかった。
39login:Penguin:2008/04/14(月) 07:43:47 ID:36aMauXk
Understanding the linux kernel
40login:Penguin:2008/04/15(火) 19:54:35 ID:tZv50PYB
>>36
cmdutil.cだけちょっと眺めたら、hoge_hoge_or_dieとかいう関数がいくつかあって
「これ何てPerl?」と思ったわw
41login:Penguin:2008/10/30(木) 14:37:15 ID:4fBvQ5WR
Hoshu Linux
42login:Penguin:2009/01/05(月) 14:44:38 ID:F80+y0td
cp mkdir ls rm...
これらのソースコードを見るはどのパッケージを落とせばいいの?
43login:Penguin:2009/01/05(月) 14:54:18 ID:Ia2jZgu0
>>42
coreutils
44login:Penguin:2009/01/05(月) 19:25:55 ID:UgNbHOkg
>>43
サンキュー!!!!!!
45login:Penguin:2009/12/16(水) 15:39:54 ID:1gCW4gVR
.c はC言語のソースファイル
.h はそのヘッダファイル
.adと.manは何でしょうか。
46login:Penguin:2009/12/17(木) 08:13:43 ID:o3R/HXsk
>>45
何故ベストを尽くさないのか
47login:Penguin:2010/02/09(火) 01:15:09 ID:nFZ00pe1
勉強や趣味でソース読むならBSDのコマンドが一番いいと思うがな。
見た目もきれいだし、とにかく簡潔で短い。
48login:Penguin:2010/04/27(火) 21:48:14 ID:hESDmhVT
BSDは、パクリ放題。Appleにもええようにされて
それでも耐えてるドSって感じ。まあ、それと
ソースは関係ないので、読んでもいいんじゃない?

でも一番は自分の興味があったり、使ってたりする
ソースコード。読むんじゃなくて眺める所から始めても
いい。ただし毎日すること。
49login:Penguin:2010/05/02(日) 04:20:41 ID:gmdb4oK4
ソースコードなんてごくごく僅かな人(ごく一部のハッカー)にしか読まれていないよね。
50login:Penguin:2010/05/02(日) 21:59:06 ID:l3Scyk+0
>>49
ハッカーじゃないけど困ったら読むよ。
51login:Penguin:2010/05/04(火) 01:04:48 ID:iArEJzJC
こんな過疎スレがまだ生き残っていたのかwwww
52login:Penguin:2010/05/04(火) 05:45:47 ID:WhPJ0ufn
ボードゲームの考察に使う時間をなくして
再びsource codeの読みふけに参戦する
53login:Penguin:2010/06/01(火) 02:52:08 ID:OeR9+q5K
使ってる環境全て制覇したいけど
まったくはかどらない
集中力が続かないな
印刷して寝ながら見たほうがいいかも

数学と英語の勉強のし直してる
なんか毎日勉強ばっか
それにしても英語ってほんと苦手
英語は日本語の感覚から遠すぎるな
あまりに手応えを感じられないので
息抜きにほかの言語の学習したりしてる
54login:Penguin:2010/07/27(火) 17:28:16 ID:0utad5S3
つ TinierMe
55login:Penguin:2010/09/30(木) 23:10:20 ID:d43U8nyo
>>49
この前はOBPagerをビルドするのにエラー箇所を調べていたり、
さらにその前はpiewmのビルドが通らなくてエラー箇所を調べ...。

ビルドでエラー起きたらエラーメッセージを検索して修正方法を
見つけてとか普通にやってる。Quick Hack程度だけどね。
たまにMakefileなんかも修正するね(autoconf使ってないものとか)。

>>53
内容を理解するだけに限定するのであれば英語は勉強するものではないと思うよ。
同じ文章ばかり読んで検証で触り続ける→自然と読めるようになる。
56login:Penguin:2010/10/02(土) 01:17:19 ID:Ck6tyIpf
mozilla(seamonkey)のアドオンであるperapera-kunをインストールしたんだけど、
マウスで単語の上をなぞってもポップアップウィンドウがぜんぜん表示されない。
ソースコードを検索してみたら、どうやらC#で書かれてある。だから動かないわけか?
57login:Penguin:2010/10/02(土) 15:52:19 ID:EtjQCPuc
58login:Penguin:2010/10/02(土) 19:02:56 ID:oSNdbfkU
てっきり音読するスレかと……
59login:Penguin:2010/10/03(日) 20:54:24 ID:xp8s1SI0
オープンソースとは言っても作成者以外に誰も読んでいないコードが大半なんでしょ?
でも、誰かが読んでくれているとは思っている。思い込んでいるだけかも。
60login:Penguin:2010/10/03(日) 21:40:25 ID:jqMDnbvc
>59
おまえの(ry
日本だと、そういうのは見えないだけで意外と読まれていると思うよ。
つか、ブログに掲載されているコードなんか毎日読んでいるよな?

たとえばブログ作ってソース書き込んでおけば外出先でも参照できる。
それにHighlightあるからhtml化して読んだら?
ttp://www.andre-simon.de/

読みたいのであればi3とかはお勧めかと思われる。
(コメントやドキュメント丁寧かつ豊富)
ttp://i3.zekjur.net/


読み方はPGやFLOSS関係者でもない限り方法は知られてないのがオチ。
(理解できるかどうかは除いて)ソースコードを読むのは意外と難しいことではないんだけどね。
時間かかるから自分との戦い。

一日で理解できないから一気に読まないとか、誰も教えないしな。
61login:Penguin:2010/10/14(木) 18:10:29 ID:TDK71fn+
3000行以下のコードってことでQuarkWMのソース読んでいるが...
ケチつけるの大好きなら楽しめるかと(要するに初心者が書きそうなコードで普通にひどい)。
ttp://quarkwm.sourceforge.net/

むしろこういうコードでも普通に動くってのが潔いがな。
62login:Penguin:2010/10/19(火) 12:16:36 ID:gnJImgM/
どういう点を修正したほうがいいんでしょうか?
63login:Penguin:2010/10/28(木) 12:19:23 ID:PAFIn/ow
>>62
それ(QuarkWM)本気で言っているのか?...!!
こいつは初心者のやってしまうパターンだらけなんだが...

- なにこの腐ったmain()関数は?
- マジックナンバー乱用しすぎ。なに、その11ってのは?
- unsigned intに型定義してIなんかハンガリアン風の命名を普通やらない。
やられると解析やりづらい上に構文強調表示効かなくなる。そんなことするならエディタの補完機能を使う。
- それ以前に命名規約がおかしいし、不必要なマクロ定義がいくつかある。
- includeの使い方が変というか勉強不足。関数とかexternでやるでしょ普通。
- 関数プロトタイプ宣言?なにそれおいしいの?
- 三項演算子の使い方がおかしい。というか三項演算死亡遊戯に酔っている。可読性下げているでしょ。
- カンマの後に半角スペース入れろよ。環境やフォントによっては区別付かないんだぜ。

etc...

ソースコードは書くより読むほうが時間がかかるわけで...。
これのひどさを自覚できないのであれば、まずdwmを読んだほうがいいです。
64login:Penguin:2010/10/28(木) 15:42:50 ID:v+f2ZMg0
>>63
foo || dieのようなもの
というのもなかなか素敵。

#includeがuseの代わりだったりして。
65login:Penguin:2010/10/31(日) 15:47:45 ID:HP4NV0JQ
良スレ乙。Linuxerにこんなに親切な人がいるとは。永久保存。
66login:Penguin:2011/01/24(月) 11:55:55 ID:15hC7JTx
オーライリーの 詳解Linuxカーネル を読んだ事ある人、感想お願いします
67login:Penguin:2011/01/28(金) 18:57:48 ID:n8AM7dMX
>>66
OSいじりたい人なら面白い。
6866:2011/02/07(月) 22:10:48 ID:lehsLcDP
>>67
どうもです

今日図書館行って借りてきた
毎日興味ある所から少しずつよんでこ
69login:Penguin:2011/02/20(日) 14:59:10.44 ID:ZL/VQ5DE
オライリーの本って内容濃くて面白いんだけど、実際値段表示を見ると萎えるな。。。
中古で買うと割と安いんだが
70login:Penguin:2011/03/04(金) 02:16:58.83 ID:FUhI6sKu
>>63
フリーのソースにけち付ける場合は、
自分で書き直してから、
「これに差し替えるほうが良い」ってやんわりとけちを付けるのが正解だと思う。

何の生産性も無く、端から見て文句ばっかり言ってる人間ってのはクズだよ。
71login:Penguin:2011/07/11(月) 02:49:53.11 ID:ShNAK0f0
>>61-64
CodeGolfみたいなノリで、コードサイズまで縮めようとしたのかなこれ…それはそれで中途半端だが

#define or else if

とか最初見たとき自分の#defineについての知識を疑ったw
なんだコレは、最近のプリプロセッサには俺の知らない機能があるのか?と
72login:Penguin:2011/07/11(月) 11:18:05.68 ID:WYxqwA0g
>>71
俺スタイルを貫いた結果だろう
そこはかとなく漂うPerl臭
73login:Penguin:2011/08/31(水) 20:04:08.77 ID:DXmozGto
XeditとかXfontselとかのGUIプログラミングをしたいんですが、
情報がなさすぎる。
74login:Penguin:2011/09/05(月) 23:27:40.80 ID:nROM6nbv
今の時代にxlibつかうのか…。
75login:Penguin:2011/10/02(日) 11:09:12.31 ID:iheLpSj6
既存のツールキットがどれも気に入らなくて
76login:Penguin:2012/03/01(木) 02:37:59.70 ID:Hex+S/OH
>>63
三項演算子の中で巨大な#ifdefで分岐してるソース見たけどそういう使い方はいいの?
77login:Penguin:2013/09/07(土) 16:19:58.06 ID:q36DWI95
マッタリ
78login:Penguin:2014/02/20(木) 12:15:04.91 ID:ZbH3CZV/
読もうよ
79login:Penguin
7‚�-â�������¬Œ������¬7ˆ·(ìz}Ý——€
���ñ�
�

このように変な文字で表示されるのは何故ですか?