1 | (use srfi-1) ;; take |
---|
2 | (use srfi-19) ;; make-date date->string |
---|
3 | (use sxml.serializer) |
---|
4 | |
---|
5 | (define lambda-news (lambda () |
---|
6 | (call-with-input-file "news.dat" |
---|
7 | (lambda (in) |
---|
8 | (let ((news (read in))) |
---|
9 | (map (lambda (ns) |
---|
10 | (let ((y (list-ref (car ns) 0)) |
---|
11 | (m (list-ref (car ns) 1)) |
---|
12 | (d (list-ref (car ns) 2)) |
---|
13 | (h (list-ref (car ns) 3)) |
---|
14 | (i (list-ref (car ns) 4)) |
---|
15 | (s 1)) |
---|
16 | (let ((dt (make-date 0 s i h d m y 0))) |
---|
17 | `(li (@ (id ,(string-append "news" (date->string dt "~Y~m~d~H~M~S")))) |
---|
18 | (span (@ (class "date")) ,(date->string dt "~Y/~m/~d(~a)")) |
---|
19 | " : " ,@(cdr ns))))) |
---|
20 | (take news 20))))))) |
---|
21 | |
---|
22 | (define main (lambda (args) |
---|
23 | (call-with-output-file "index.html" |
---|
24 | (lambda (out) |
---|
25 | (display "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>" out) |
---|
26 | (newline out) |
---|
27 | (display "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\"" out) |
---|
28 | (newline out) |
---|
29 | (display "\t\"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">" out) |
---|
30 | (newline out) |
---|
31 | (srl:sxml->xml |
---|
32 | `(html (@ (xmlns "http://www.w3.org/1999/xhtml") (xml:lang "ja")) |
---|
33 | (head |
---|
34 | (meta (@ (http-equiv "Content-Type") (content "text/html; charset=UTF-8"))) |
---|
35 | (meta (@ (http-equiv "Content-Language") (content "ja"))) |
---|
36 | (meta (@ (name "keywords") (content "Scheme"))) |
---|
37 | (meta (@ (name "description") (content "日本の Scheme ユーザのためのハブサイト。日々 Scheme 情報を発信しています。"))) |
---|
38 | (link (@ (rel "shortcut icon") (href "favicon.ico") (type "image/x-icon"))) |
---|
39 | (link (@ (rel "stylesheet") (type "text/css") (href "index.css"))) |
---|
40 | (link (@ (rel "alternate") (type "application/atom+xml") (title "Scheme-users.jp Atom Feed") (href "http://scheme-users.jp/atom.xml"))) |
---|
41 | (title "Scheme-users.jp - 日本の Scheme ユーザのためのハブサイト") |
---|
42 | (script (@ (type "text/javascript") (src "comment.js")) "/* comment.js */")) |
---|
43 | (body |
---|
44 | (p (@ (style "margin-left:0;")) |
---|
45 | (a (@ (href "http://scheme-users.jp/")) |
---|
46 | (img (@ (src "./images/top.png") (alt "scheme-users.jp") (style "border:none;"))))) |
---|
47 | |
---|
48 | (h1 "日本の Scheme ユーザのためのハブサイト") |
---|
49 | |
---|
50 | (p (a (@ (href "http://conferences.yapcasia.org/ya2008/") (title "YAPC::Asia 2008 - May 15-16th in Tokyo, JAPAN")) "YAPC::Asia 2008") |
---|
51 | " で " (a (@ (href "http://conferences.yapcasia.org/ya2008/user/780") (title "ユーザ情報: YAPC::Asia 2008 - May 15-16th in Tokyo, JAPAN")) "Michael Schwern") |
---|
52 | " は「SEO に有効な独自ドメインを取って、もっと Perl 初心者が集まりやすい nice な Perl の情報を集めたサイトを作れ!」といったそうです。" |
---|
53 | "そして「" (a (@ (href "http://perl-users.jp")) "Perl-users.jp - 日本のPerlユーザのためのハブサイト") "」ができました。") |
---|
54 | (p "これは " (strong "Scheme") " も同じではないのか?" |
---|
55 | "そう思って scheme-users.jp ドメインを取り、ここに scheme-users.jp を開始します。" |
---|
56 | "完全に perl-users.jp とか js-users.jp とか as-users.jp とかにインスパイアされています。" |
---|
57 | "本当にありがとうございます。" "ノープランです。") |
---|
58 | |
---|
59 | (h2 "ポリシー的な物") |
---|
60 | (ul |
---|
61 | (li "日本語とS式で語り合う。") |
---|
62 | (li "このサイトの想定する利用者層は、超初心者から超上級者まで。") |
---|
63 | (li "たとえば " (a (@ (href "http://www.r6rs.org/")) "R6RS") |
---|
64 | " で、いきなり言語仕様が変更されたとしても、" |
---|
65 | "しっかり初心者層にリーチし、最新のトレンドに近づけるように。") |
---|
66 | (li "Users ってついてるけど、日本人は Users ってついてるものが好きだからという理由だけなので " |
---|
67 | (a (@ (href "http://schemers.org/")) "schemers.org") " とか " |
---|
68 | (a (@ (href "http://practical-scheme.net/wiliki/wiliki.cgi")) "WiLiKi") |
---|
69 | " とかそういうのと競合になるとかスピンアウトしたとかそういうのではありません。" |
---|
70 | "レイヤーが違います。")) |
---|
71 | |
---|
72 | (h2 (a (@ (href "news.html")) "LAMBDA NEWS") " " |
---|
73 | (span (@ (style "font-size:10pt; font-weight:normal; color:red;")) |
---|
74 | "(" (a (@ (style "color:#FF8888;") (onclick "comment()")) "情報募集中!") ")")) |
---|
75 | (ul ,@(lambda-news)) |
---|
76 | |
---|
77 | (table (@ (style "margin:10px auto;")) |
---|
78 | (tr |
---|
79 | (td (a (@ (href "http://shibuya.lisp-users.org/")) |
---|
80 | (img (@ (src "./images/shibuya-lisp.png") (alt "Shibuya.lisp") (style "border:none;"))))) |
---|
81 | (td (a (@ (href "http://www.lingr.com/room/common-lisp-jp")) |
---|
82 | (img (@ (src "./images/clpm8.png") (alt "慢性的CL勉強会@Lingr8時だョ!全員集合") (style "border:none;")))))) |
---|
83 | (tr |
---|
84 | (td (@ (style "text-align:center;")) (a (@ (href "http://tips.lisp-users.org/scheme/")) "逆引きScheme") " 作成中!") |
---|
85 | (td (@ (style "text-align:center;")) "CL勉強会@Lingr 次回 : 11月22日(土) 午後8時" (br) "お題 : 『" (a (@ (href "http://common-lisp.net/project/metatilities/")) "Metatilities") " を読む』"))) |
---|
86 | |
---|
87 | (h2 "Scheme チャット") |
---|
88 | (ul |
---|
89 | (li (a (@ (href "irc://irc.freenode.net/Lisp_Scheme")) "irc.freenode.net#Lisp_Scheme") " (UTF-8) : Common Lisp や Arc など他の Lisp の話題もあります。[" (a (@ (href "http://lambdarepos.org/kaela/")) "過去ログ") "]") |
---|
90 | (li (a (@ (href "http://www.lingr.com/room/gauche")) "Gauche (at Lingr)") " : [" (a (@ (href "http://www.lingr.com/room/gauche/archives")) "過去ログ") "]") |
---|
91 | (li (a (@ (href "http://wassr.jp/channel/lisp")) "Wassr LISP チャンネル") " : ") |
---|
92 | (li (a (@ (href "http://wassr.jp/channel/gauche")) "Wassr Gauche チャンネル") " : みんな大好き Gauche")) |
---|
93 | |
---|
94 | (h2 "Scheme コミュニティ") |
---|
95 | (ul |
---|
96 | (li (a (@ (href "http://shibuya.lisp-users.org/")) "Shibuya.lisp")) |
---|
97 | (li (a (@ (href "http://www.kahua.org/")) "Kahua Project"))) |
---|
98 | |
---|
99 | (h2 (a (@ (href "http://scheme-users.jp/planet/")) "Planet Scheme Japan")) |
---|
100 | (p (a (@ (href "http://scheme.dk/planet/")) "Planet Scheme") |
---|
101 | " の " (a (@ (href "http://scheme-users.jp/planet/")) "日本版") |
---|
102 | " を作りたいと考えています。参加者募集中です!" |
---|
103 | " Scheme について書いたブログならどなたでも参加できます。") |
---|
104 | (ul |
---|
105 | (li (a (@ (href "http://d.hatena.ne.jp/higepon/")) "ひげぽん OS とか作っちゃうか Mona-") " [" (a (@ (href "http://d.hatena.ne.jp/higepon/rss2")) "RSS") "]") |
---|
106 | (li (a (@ (href "http://cadr.g.hatena.ne.jp/g000001/")) "わだば Lisper になる") " [" (a (@ (href "http://cadr.g.hatena.ne.jp/g000001/rss2")) "RSS") "]") |
---|
107 | (li (a (@ (href "http://blog.livedoor.jp/naoya_t/")) "柴ログ") " [" (a (@ (href "http://blog.livedoor.jp/naoya_t/index.rdf")) "RSS") "]") |
---|
108 | (li (a (@ (href "http://d.hatena.ne.jp/fujita-y/")) "Y.FUJITA::NOTEPAD::YPSILON") " [" (a (@ (href "http://d.hatena.ne.jp/fujita-y/rss2")) "RSS") "]")) |
---|
109 | |
---|
110 | (h2 "日本でよく使われている処理系") |
---|
111 | (ul |
---|
112 | (li (a (@ (href "http://practical-scheme.net/gauche/index-j.html")) "Gauche") " : " (a (@ (href "http://practical-scheme.net/wiliki/wiliki.cgi?Shiro")) "Shiro") " さんが開発している処理系。ライブラリとドキュメントが充実。はじめての方はまずは " (a (@ (href "http://practical-scheme.net/gauche/index-j.html")) "Gauche") " を使いましょう。") |
---|
113 | (li (a (@ (href "http://code.google.com/p/ypsilon/")) "Ypsilon") " : ピンボールゲームで有名な " (a (@ (href "http://www.littlewingpinball.com/")) "LittleWing") " で開発されている高性能な R6RS 処理系。") |
---|
114 | (li (a (@ (href "http://code.google.com/p/mosh-scheme/")) "Mosh") " : " (a (@ (href "http://www.monaos.org/")) "MonaOS") " の開発者の " (a (@ (href "http://d.hatena.ne.jp/higepon/")) "Higepon") " さんが新しく作りはじめた処理系。期待しましょう :-)") |
---|
115 | (li (a (@ (href "http://code.google.com/p/sigscheme/")) "SigScheme") " : " (a (@ (href "http://code.google.com/p/uim/")) "uim") " のために作られた R5RS 処理系。") |
---|
116 | ;;(li (a (@ (href "http://mono.kmc.gr.jp/~yhara/w/?BiwaScheme")) "BiwaScheme") " : JavaScript で作られた処理系。") |
---|
117 | (li (a (@ (href "http://www.plt-scheme.org/")) "Plt Scheme") " : 世界的に利用されている高性能な Scheme インタプリタ。グラフィカルな開発環境が付属している。") |
---|
118 | (li (a (@ (href "http://www.gnu.org/software/guile/")) "GNU Guile") " : " (a (@ (href "http://www.gnu.org/")) "GNU Project") " で開発されている処理系。") |
---|
119 | (li (a (@ (href "http://www.gnu.org/software/mit-scheme/")) "MIT/GNU Scheme") " : Scheme の故郷 MIT で開発されている処理系。")) |
---|
120 | |
---|
121 | (h2 "初心者向け学習サイト") |
---|
122 | (ul |
---|
123 | (li (a (@ (href "http://www.shido.info/lisp/idx_scm.html")) "もうひとつの Scheme 入門")) |
---|
124 | (li (a (@ (href "http://www.unixuser.org/~euske/doc/scm-sd7/")) "Scheme プログラミング入門")) |
---|
125 | (li (a (@ (href "http://www1.ocn.ne.jp/~scheme/scheme-start.html")) "まったく初めての人のための Scheme")) |
---|
126 | (li (a (@ (href "http://www.stdio.h.kyoto-u.ac.jp/~hioki/gairon-enshuu/SchemeNotes/scheme.html")) "Scheme への道")) |
---|
127 | (li (a (@ (href "http://karetta.jp/book-cover/gauche-hacks")) "Gaucheプログラミング(立読み版)")) |
---|
128 | (li (a (@ (href "http://www.ccs.neu.edu/home/dorai/t-y-scheme/t-y-scheme.html")) "Teach Yourself Scheme in Fixnum Days") |
---|
129 | " / " (a (@ (href "http://www.sampou.org/scheme/t-y-scheme/t-y-scheme.html")) "独習 Scheme 三週間")) |
---|
130 | (li (a (@ (href "http://www.htdp.org/")) "How to Design Programs")) |
---|
131 | (li "[Think IT] Gauche でプログラミング!") |
---|
132 | (ul |
---|
133 | (li (a (@ (href "http://www.thinkit.co.jp/article/74/1/")) "第 1 回 Gauche をはじめてみませんか?")) |
---|
134 | (li (a (@ (href "http://www.thinkit.co.jp/article/74/2/")) "第 2 回 超! Gauche 入門")) |
---|
135 | (li (a (@ (href "http://www.thinkit.co.jp/article/74/3/")) "第 3 回 簡単 Web プログラミング!")) |
---|
136 | (li (a (@ (href "http://www.thinkit.co.jp/article/74/4/")) "第 4 回 Gauche で超高生産性 Web アプリ!")) |
---|
137 | (li (a (@ (href "http://www.thinkit.co.jp/article/74/5/")) "第 5 回 Gauche で COOL な Web アプリ!")))) |
---|
138 | |
---|
139 | (h2 "定番サイト") |
---|
140 | (ul |
---|
141 | (li (a (@ (href "http://practical-scheme.net/")) "Practical Scheme") " | " (a (@ (href "http://practical-scheme.net/wiliki/wiliki.cgi")) "WiLiKi")) |
---|
142 | (li (a (@ (href "http://schemers.org/")) "schemers.org")) |
---|
143 | (li (a (@ (href "http://srfi.schemers.org/")) "SRFI - Scheme Requests for Implementation")) |
---|
144 | (li (a (@ (href "http://www.schemers.org/Documents/Standards/R5RS/")) "R5RS - Revised 5 Report on the Algorithmic Language Scheme")) |
---|
145 | (li (a (@ (href "http://www.r6rs.org/")) "R6RS - Revised 6 Report on the Algorithmic Language Scheme")) |
---|
146 | (li (a (@ (href "http://swiss.csail.mit.edu/projects/scheme/")) "The Scheme Programming Language")) |
---|
147 | (li (a (@ (href "http://mitpress.mit.edu/sicp/")) "SICP - Structure and Interpretation of Computer Programs")) |
---|
148 | (li (a (@ (href "http://www.scheme.com/tspl3/")) "The Scheme Programming Language Third Edition")) |
---|
149 | (li (a (@ (href "http://www1.ocn.ne.jp/~scheme/")) "やっぱり Scheme だね")) |
---|
150 | (li (a (@ (href "http://lambda.bugyo.tk/hatena/")) "はてなようせいとまなぶ Scheme の形式的意味論")) |
---|
151 | (li (a (@ (href "http://lambda.bugyo.tk/hatena/r5rs.html")) "はてなようせいとまなぶ R5RS の表示的意味論")) |
---|
152 | (li (a (@ (href "http://ja.doukaku.org/lang/scheme/")) "どう書く?org Scheme部")) |
---|
153 | (li (a (@ (href "http://www.math.u-toyama.ac.jp/~iwao/Scheme/scheme.html")) "Algorithmic Language Scheme")) |
---|
154 | (li (a (@ (href "http://groups.google.co.jp/group/comp.lang.scheme")) "comp.lang.scheme")) |
---|
155 | (li (a (@ (href "https://www.google.com/calendar/embed?src=fvijvohm91uifvd9hratehf65k%40group.calendar.google.com")) "IT勉強会カレンダー"))) |
---|
156 | ;;(li (a (@ (href "http://t-code.org/scheme-aa.html")) "ポルナレフ")) |
---|
157 | |
---|
158 | (h2 "その他の *-users.jp") |
---|
159 | (ul |
---|
160 | (li (a (@ (href "http://air-users.jp/")) "air-users.jp") " : 日本の AIR ユーザのためのハブサイト") |
---|
161 | (li (a (@ (href "http://arc-users.jp/")) "arc-users.jp") " : 日本の Arc ユーザのためのハブサイト") |
---|
162 | (li (a (@ (href "http://as-users.jp/")) "as-users.jp") " : 日本の ActionScript ユーザのためのハブサイト") |
---|
163 | (li (a (@ (href "http://awk-users.jp/")) "awk-users.jp") " : 日本の AWK ユーザのためのハブサイト") |
---|
164 | (li (a (@ (href "http://c-users.jp/")) "c-users.jp") " : 日本の C/C++ ユーザのためのハブサイト") |
---|
165 | (li (a (@ (href "http://cakephp-users.jp/")) "cakephp-users.jp") " : 日本の cakePHP ユーザのためのハブサイト") |
---|
166 | (li (a (@ (href "http://emacs-users.jp/")) "emacs-users.jp") " : 日本の Emacs ユーザのためのハブサイト") |
---|
167 | (li (a (@ (href "http://erlang-users.jp/")) "erlang-users.jp") " : 日本の Erlang ユーザのためのハブサイト") |
---|
168 | (li (a (@ (href "http://hauhau-users.jp/")) "hauhau-users.jp") " : 日本の はうはう ユーザのためのハブサイト") |
---|
169 | (li (a (@ (href "http://haxe-users.jp/")) "haxe-users.jp") " : 日本の heXe ユーザのためのハブサイト") |
---|
170 | (li (a (@ (href "http://hsp-users.jp")) "hsp-users.jp") " : 日本の HSP ユーザのためのハブサイト") |
---|
171 | (li (a (@ (href "http://io-users.jp/")) "io-users.jp") " : 日本の Io ユーザのためのハブサイト") |
---|
172 | (li (a (@ (href "http://js-users.jp/")) "js-users.jp") " : 日本の JavaScript ユーザのためのハブサイト") |
---|
173 | (li (a (@ (href "http://perl-users.jp/")) "perl-users.jp") " : 日本の Perl ユーザのためのハブサイト") |
---|
174 | (li (a (@ (href "http://php-users.jp/")) "php-users.jp") " : 日本の PHP ユーザのためのハブサイト") |
---|
175 | (li (a (@ (href "http://php5-users.jp/")) "php5-users.jp") " : 日本の PHP5 ユーザのためのハブサイト") |
---|
176 | (li (a (@ (href "http://pyobjc-users.jp/")) "pyobjc-users.jp") " : 日本の PyObjC ユーザのためのハブサイト") |
---|
177 | (li (a (@ (href "http://python-users.jp/")) "python-users.jp") " : 日本の Python ユーザのためのハブサイト") |
---|
178 | (li (a (@ (href "http://rails-users.jp/")) "rails-users.jp") " : 日本の Rails ユーザのためのハブサイト") |
---|
179 | (li (a (@ (href "http://smalltalk-users.jp/")) "smalltalk-users.jp") " : 日本の Smalltalk ユーザのためのハブサイト") |
---|
180 | (li (a (@ (href "http://vim-users.jp/")) "vim-users.jp") " : 日本の Vim ユーザのためのハブサイト")) |
---|
181 | |
---|
182 | (h3 "管理人") |
---|
183 | (p "このサイトは " |
---|
184 | (a (@ (href "http://practical-scheme.net/gauche/index-j.html")) "Gauche") " の " |
---|
185 | (a (@ (href "http://practical-scheme.net/gauche/man/gauche-refj_148.html")) "sxml.serializer") " を使って生成しています。" |
---|
186 | (br) |
---|
187 | "コードは " (a (@ (href "http://lambdarepos.org/")) "LambdaRepos") " の Subversion にて管理しています。" |
---|
188 | (a (@ (href "http://lambdarepos.org/")) "LambdaRepos") " の Committer である関数型言語ハッカーならどなたでも書き換える事が出来ます。") |
---|
189 | (p "なにかあれば何らかの手段で " |
---|
190 | "(string-append \"info\" \"@\" \"scheme-users.jp\")" |
---|
191 | " まで連絡ください。") |
---|
192 | (p "文章のライセンスは、特に明記が無い限り全て " |
---|
193 | (abbr (@ (title "Creative Commons Attribution license")) "CC-by") |
---|
194 | " でお願いします。"))) |
---|
195 | out) |
---|
196 | (newline out))) |
---|
197 | 0)) |
---|