View | Details | Raw Unified | Return to bug 124447
Collapse All | Expand All

(-)Makefile (-22 / +22 lines)
Lines 10-39 Link Here
10
.include "Makefile.inc"
10
.include "Makefile.inc"
11
.endif
11
.endif
12
12
13
INDEXLINK= multimedia.html
13
#all: build
14
14
all: build
15
FXML = multimedia-input.xml
15
	cd output && make all DIRPRFX=multimedia/output/
16
FHTML = \
16
17
	multimedia.html.intro \
17
install:
18
	multimedia.html.pre \
18
	cd output && make install DIRPRFX=multimedia/output/
19
	multimedia.html.post
19
20
FLIST = multimedia.created
20
TEMPLATES=	multimedia.sgml.intro \
21
FSCRIPT = multimedia.pl
21
		multimedia.sgml.post \
22
22
		multimedia.sgml.pre \
23
.if exists(${FLIST})
23
		multimedia.html.intro \
24
DATA!=	cat ${FLIST}
24
		multimedia.html.post \
25
.else
25
		multimedia.html.pre \
26
DATA=	${INDEXLINK}
26
		multimedia-input.xml
27
.endif
28
29
all: ${FLIST}
30
27
31
clean:
28
clean:
32
	if test -f ${FLIST} ; then \
29
	-${RM} output/*
33
		xargs ${RM} < ${FLIST} && ${RM} ${FLIST} ; \
34
	fi
35
30
36
${FLIST}: ${FSCRIPT} ${FXML} ${FHTML}
31
build:
37
	perl -Tw ${FSCRIPT}
32
	(test -d output || ${MKDIR} output ) && \
33
	cd output && \
34
	${LN} -fs ../Makefile.output Makefile && \
35
	( for f in ${TEMPLATES}; do ${LN} -fs ../$$f $$f; done ) && \
36
	${PERL} -Tw ../multimedia.pl && \
37
	${RM} -f *.html
38
38
39
.include "${WEB_PREFIX}/share/mk/web.site.mk"
39
.include "${WEB_PREFIX}/share/mk/web.site.mk"
(-)Makefile.inc (+4 lines)
Added Link Here
1
# $FreeBSD$
2
3
WEBBASE?=       /data/multimedia
4
WEB_PREFIX?=    ${.CURDIR}/../../..
(-)Makefile.output (+15 lines)
Added Link Here
1
.if exists(../../Makefile.conf)
2
.include "../../Makefile.conf"
3
.endif
4
.if exists(../../Makefile.inc)
5
.include "../../Makefile.inc"
6
.endif
7
8
DOCS!=		cat multimedia.sgml.created
9
DATA=		multimedia.xml
10
11
WEBDIR=		multimedia
12
13
WEB_PREFIX:=	${WEB_PREFIX}/../
14
15
.include "${WEB_PREFIX}/share/mk/web.site.mk"
(-)multimedia-input.xml (-151 / +155 lines)
Lines 317-328 Link Here
317
		Certification.
317
		Certification.
318
		</p><p>
318
		</p><p>
319
		See the following links for more information:
319
		See the following links for more information:
320
		</p>
320
		<ul>
321
		<ul>
321
		<li>https://register.bsdcertification.org/register/get-a-bsdcg-id
322
		<li>https://register.bsdcertification.org/register/get-a-bsdcg-id</li>
322
		<li>http://reedmedia.net/books/freebsd-basics
323
		<li>http://reedmedia.net/books/freebsd-basics</li>
323
		<li>http://www.osbr.ca
324
		<li>http://www.osbr.ca</li>
324
		</ul>
325
		</ul>
325
		</p>
326
	    ]]></desc>
326
	    ]]></desc>
327
	    <overview>http://bsdtalk.blogspot.com/2008/01/bsdtalk139-dru-lavigne.html</overview>
327
	    <overview>http://bsdtalk.blogspot.com/2008/01/bsdtalk139-dru-lavigne.html</overview>
328
	    <tags>bsdtalk,interview,dru lavigne,the best of freebsd basics</tags>
328
	    <tags>bsdtalk,interview,dru lavigne,the best of freebsd basics</tags>
Lines 347-363 Link Here
347
	<item source="bsdtalk" added="20080125">
347
	<item source="bsdtalk" added="20080125">
348
	    <title>Central Syslog</title>
348
	    <title>Central Syslog</title>
349
	    <desc><![CDATA[
349
	    <desc><![CDATA[
350
		<p>
350
		Setting up a central syslog server.
351
		Setting up a central syslog server.
352
		</p>
351
		<ul>
353
		<ul>
352
		<li>If you are concerned about the security of your logs, use a dedicated machine and lock it down.
354
		<li>If you are concerned about the security of your logs, use a dedicated machine and lock it down.</li>
353
		<li>Keep clocks in sync.
355
		<li>Keep clocks in sync.</li>
354
		<li>You may need to change log rotation schedule in /etc/newsyslog.conf. You can rotate based in size and/or time. This can be as much a policy decision as a hardware decision.
356
		<li>You may need to change log rotation schedule in /etc/newsyslog.conf. You can rotate based in size and/or time. This can be as much a policy decision as a hardware decision.</li>
355
		<li>On central log host, change syslogd flags to listen to network. Each BSD does this differently, so check the man pages. Also, check out the -n flag for busy environments.
357
		<li>On central log host, change syslogd flags to listen to network. Each BSD does this differently, so check the man pages. Also, check out the -n flag for busy environments.</li>
356
		<li>Make sure host firewall allows syslog traffic through.
358
		<li>Make sure host firewall allows syslog traffic through.</li>
357
		<li>Be careful to limit syslog traffic to just the trusted network or hosts. FreeBSD man page refers to syslogd as a "remote disk filling service".
359
		<li>Be careful to limit syslog traffic to just the trusted network or hosts. FreeBSD man page refers to syslogd as a "remote disk filling service".</li>
358
		<li>For heavy logging environments, it is important to have a dedicated network. A down syslogd server can create a lot of "ARP who-has" broadcasts.
360
		<li>For heavy logging environments, it is important to have a dedicated network. A down syslogd server can create a lot of "ARP who-has" broadcasts.</li>
359
		<li>Most network devices such as printers and commercial firewalls support sending to a central syslog server. Take a look at "Snare" for Windows hosts.
361
		<li>Most network devices such as printers and commercial firewalls support sending to a central syslog server. Take a look at "Snare" for Windows hosts.</li>
360
		<li>To send messages from a Unix host, specify the host name prepended with @ instead of a file for logging in /etc/syslog.conf. For example, change /var/log/xferlog to @loghost.mydomain.biz. You can also copy and edit the line to have it log to both a local file and a remote host.
362
		<li>To send messages from a Unix host, specify the host name prepended with @ instead of a file for logging in /etc/syslog.conf. For example, change /var/log/xferlog to @loghost.mydomain.biz. You can also copy and edit the line to have it log to both a local file and a remote host.</li>
361
		</ul>
363
		</ul>
362
	    ]]></desc>
364
	    ]]></desc>
363
	    <overview>http://bsdtalk.blogspot.com/2008/01/bsdtalk138-central-syslog.html</overview>
365
	    <overview>http://bsdtalk.blogspot.com/2008/01/bsdtalk138-central-syslog.html</overview>
Lines 646-663 Link Here
646
	<item source="bsdtalk" added="20070901">
648
	<item source="bsdtalk" added="20070901">
647
	    <title>Why I like the CLI</title>
649
	    <title>Why I like the CLI</title>
648
	    <desc><![CDATA[
650
	    <desc><![CDATA[
651
		<p>
649
		Why I like the CLI:
652
		Why I like the CLI:
653
		</p>
650
		<ul>
654
		<ul>
651
		<li>Uses minimal resources. Less space, less memory, fewer dependencies.
655
		<li>Uses minimal resources. Less space, less memory, fewer dependencies.</li>
652
		<li>Transparency. GUI hides internals, limits options.
656
		<li>Transparency. GUI hides internals, limits options.</li>
653
		<li>Similar between Unix-like systems. GUI tools seem to change every week.
657
		<li>Similar between Unix-like systems. GUI tools seem to change every week.</li>
654
		<li>Remote management. SSH rocks.
658
		<li>Remote management. SSH rocks.</li>
655
		<li>Everything is text. Configs, devices, output. CLI is natural complement.
659
		<li>Everything is text. Configs, devices, output. CLI is natural complement.</li>
656
		<li>Pipes and scripts. One time is hard, a thousand times is easy.
660
		<li>Pipes and scripts. One time is hard, a thousand times is easy.</li>
657
		<li>Only need a few tools. Grep, sed, awk, vi, cron.
661
		<li>Only need a few tools. Grep, sed, awk, vi, cron.</li>
658
		<li>Text config files. Easy to version, share, and comment.
662
		<li>Text config files. Easy to version, share, and comment.</li>
659
		<li>Requires reading skills instead of clicking skills.
663
		<li>Requires reading skills instead of clicking skills.</li>
660
		<li>Much faster when you know what you are doing.
664
		<li>Much faster when you know what you are doing.</li>
661
		</ul>
665
		</ul>
662
	    ]]></desc>
666
	    ]]></desc>
663
	    <overview>http://bsdtalk.blogspot.com/2007/08/bsdtalk127-why-i-like-cli.html</overview>
667
	    <overview>http://bsdtalk.blogspot.com/2007/08/bsdtalk127-why-i-like-cli.html</overview>
Lines 917-938 Link Here
917
	    <title>One Time Passwords</title>
921
	    <title>One Time Passwords</title>
918
	    <desc><![CDATA[
922
	    <desc><![CDATA[
919
		<ul>
923
		<ul>
920
		<li> Important when you don't trust the computer you are using, such as a library computer or internet kiosk.
924
		<li> Important when you don't trust the computer you are using, such as a library computer or internet kiosk.</li>
921
		<li> Available by default in Free/Net/Open BSD.
925
		<li> Available by default in Free/Net/Open BSD.</li>
922
		<li> FreeBSD uses OPIE, Net/Open use S/Key.
926
		<li> FreeBSD uses OPIE, Net/Open use S/Key.</li>
923
		<li> One time passwords are based on your pass phrase, a non-repeating sequence number, and a seed.
927
		<li> One time passwords are based on your pass phrase, a non-repeating sequence number, and a seed.</li>
924
		<li> Initial setup should be done directly on the server.
928
		<li> Initial setup should be done directly on the server.</li>
925
		<li> "skeyinit" for Net/Open, "opiepasswd -c" for FreeBSD.
929
		<li> "skeyinit" for Net/Open, "opiepasswd -c" for FreeBSD.</li>
926
		<li> Enter a pass phrase that is not your regular account password.
930
		<li> Enter a pass phrase that is not your regular account password.</li>
927
		<li> Find your current sequence number and seed with "opieinfo" or "skeyinfo", for example: "497 pc5246".
931
		<li> Find your current sequence number and seed with "opieinfo" or "skeyinfo", for example: "497 pc5246".</li>
928
		<li> Generate a list of the next 10 passwords and write them down, using "opiekey -n 10 497 pc5246" or "skey -n 10 497 pc5246".
932
		<li> Generate a list of the next 10 passwords and write them down, using "opiekey -n 10 497 pc5246" or "skey -n 10 497 pc5246".</li>
929
		<li> When you log in from a remote machine that might have a keystroke logger, you can now use a one time password instead of your regular password.
933
		<li> When you log in from a remote machine that might have a keystroke logger, you can now use a one time password instead of your regular password.</li>
930
		<li> For OpenBSD, log in as account:skey, for example "bob:skey", which will cause the system to present the s/key challenge.
934
		<li> For OpenBSD, log in as account:skey, for example "bob:skey", which will cause the system to present the s/key challenge.</li>
931
		<li> For NetBSD, the system will always present you with the s/key challenge if it is configured for your account, although you can still use your regular password.
935
		<li> For NetBSD, the system will always present you with the s/key challenge if it is configured for your account, although you can still use your regular password.</li>
932
		<li> FreeBSD by default will force you to use a one time password if it is configured for your account.
936
		<li> FreeBSD by default will force you to use a one time password if it is configured for your account.</li>
933
		<li> If you want both OPIE and password authentication, FreeBSD allows you to list trusted networks or hosts in /etc/opieaccess.
937
		<li> If you want both OPIE and password authentication, FreeBSD allows you to list trusted networks or hosts in /etc/opieaccess.</li>
934
		<li> Instead of carrying a list of passwords around, you can use s/key generators on a portable device that you trust, such as a palm pilot.
938
		<li> Instead of carrying a list of passwords around, you can use s/key generators on a portable device that you trust, such as a palm pilot.</li>
935
		<li> For more info, check the man pages.
939
		<li> For more info, check the man pages.</li>
936
		</ul>
940
		</ul>
937
	    ]]></desc>
941
	    ]]></desc>
938
	    <overview>http://bsdtalk.blogspot.com/2007/06/bsdtalk117-one-time-passwords.html</overview>
942
	    <overview>http://bsdtalk.blogspot.com/2007/06/bsdtalk117-one-time-passwords.html</overview>
Lines 1279-1298 Link Here
1279
	    <title>Getting to know X</title>
1283
	    <title>Getting to know X</title>
1280
	    <desc><![CDATA[
1284
	    <desc><![CDATA[
1281
		<p>
1285
		<p>
1282
		Getting to know the X Window System.<br>
1286
		Getting to know the X Window System.<br />
1283
		Make sure you are in a text only mode. You might
1287
		Make sure you are in a text only mode. You might
1284
		need to change how the system boots, or boot into
1288
		need to change how the system boots, or boot into
1285
		single user mode.
1289
		single user mode.
1286
		</p><p>
1290
		</p>
1287
		<ul>
1291
		<ul>
1288
		<li>"startx" to make sure X is working right.
1292
		<li>"startx" to make sure X is working right.</li>
1289
		<li>"X" by itself gives the basic grey screen.
1293
		<li>"X" by itself gives the basic grey screen.</li>
1290
		<li>"ctrl" and "alt" and "backspace" keys at the same time will zap X.
1294
		<li>"ctrl" and "alt" and "backspace" keys at the same time will zap X.</li>
1291
		<li>"X & xterm -display :0"
1295
		<li>"X &amp; xterm -display :0"</li>
1292
		<li>"xterm -geometry +300+300"
1296
		<li>"xterm -geometry +300+300"</li>
1293
		<li>"twm" or "metacity"
1297
		<li>"twm" or "metacity"</li>
1294
		</ul>
1298
		</ul>
1295
		</p>
1296
	    ]]></desc>
1299
	    ]]></desc>
1297
	    <overview>http://bsdtalk.blogspot.com/2007/03/bsdtalk104-getting-to-know-x.html</overview>
1300
	    <overview>http://bsdtalk.blogspot.com/2007/03/bsdtalk104-getting-to-know-x.html</overview>
1298
	    <tags>bsdtalk,X</tags>
1301
	    <tags>bsdtalk,X</tags>
Lines 3202-3208 Link Here
3202
		UKUUG LISA 2006 took place in Durham, UK in March,
3205
		UKUUG LISA 2006 took place in Durham, UK in March,
3203
		2006. On this page, you can find my slides from
3206
		2006. On this page, you can find my slides from
3204
		this conference.
3207
		this conference.
3205
		<br>
3208
		<br />
3206
		OpenBSM is a BSD-licensed implementation of Sun's
3209
		OpenBSM is a BSD-licensed implementation of Sun's
3207
		Basic Security Module (BSM) API and file format,
3210
		Basic Security Module (BSM) API and file format,
3208
		and is the foundation of the TrustedBSD audit
3211
		and is the foundation of the TrustedBSD audit
Lines 3235-3246 Link Here
3235
		spanning the BSD's. On this page, you can find my
3238
		spanning the BSD's. On this page, you can find my
3236
		slides from the FreeBSD developer summit and full
3239
		slides from the FreeBSD developer summit and full
3237
		conference.
3240
		conference.
3238
		<br>
3241
		<br />
3239
		Status report on the TrustedBSD Project: introduction
3242
		Status report on the TrustedBSD Project: introduction
3240
		and status regarding Audit, plus a TODO list;
3243
		and status regarding Audit, plus a TODO list;
3241
		introduction to the priv(9) work recently merged
3244
		introduction to the priv(9) work recently merged
3242
		to 7.x.
3245
		to 7.x.
3243
		<br>
3246
		<br />
3244
		The FreeBSD Project is one of the oldest and most
3247
		The FreeBSD Project is one of the oldest and most
3245
		successful open source operating system projects,
3248
		successful open source operating system projects,
3246
		seeing wide deployment across the IT industry. From
3249
		seeing wide deployment across the IT industry. From
Lines 3332-3338 Link Here
3332
		to attend the conference itself, and my talks were
3335
		to attend the conference itself, and my talks were
3333
		presented in absentia by Poul-Henning Kamp and Ed
3336
		presented in absentia by Poul-Henning Kamp and Ed
3334
		Maste, who have my greatest appreciation!
3337
		Maste, who have my greatest appreciation!
3335
		<br>
3338
		<br />
3336
		The FreeBSD SMPng Project has spent the past five
3339
		The FreeBSD SMPng Project has spent the past five
3337
		years redesigning and reimplementing SMP support
3340
		years redesigning and reimplementing SMP support
3338
		for the FreeBSD operating system, moving from a
3341
		for the FreeBSD operating system, moving from a
Lines 3364-3370 Link Here
3364
		BSDCan 2004 took place at the University of Ottawa
3367
		BSDCan 2004 took place at the University of Ottawa
3365
		in Ottawa, Canada. On this page, you can find my
3368
		in Ottawa, Canada. On this page, you can find my
3366
		slides from the conference.
3369
		slides from the conference.
3367
		<br>
3370
		<br />
3368
		Robert Watson will describe a variety of pieces of
3371
		Robert Watson will describe a variety of pieces of
3369
		work done as part of the TrustedBSD Project, including
3372
		work done as part of the TrustedBSD Project, including
3370
		the TrustedBSD MAC Framework, Audit facilities for
3373
		the TrustedBSD MAC Framework, Audit facilities for
Lines 3781-3787 Link Here
3781
		as an IPv6 router and tunneling system will also
3784
		as an IPv6 router and tunneling system will also
3782
		be covered.
3785
		be covered.
3783
		</p><p>
3786
		</p><p>
3784
		<b>Bio</b><br>
3787
		<b>Bio</b><br />
3785
		Gene Cronk, CISSP-ISSAP, NSA-IAM is a freelance
3788
		Gene Cronk, CISSP-ISSAP, NSA-IAM is a freelance
3786
		network security consultant, specializing in *NIX
3789
		network security consultant, specializing in *NIX
3787
		solutions. He has been working with computers for
3790
		solutions. He has been working with computers for
Lines 3862-3880 Link Here
3862
		beat the price.
3865
		beat the price.
3863
		</p><p>
3866
		</p><p>
3864
		We plan on covering the following topics:
3867
		We plan on covering the following topics:
3868
		</p>
3865
		<ul>
3869
		<ul>
3866
		<li>what it is
3870
		<li>what it is</li>
3867
		<li>how it works
3871
		<li>how it works</li>
3868
		<li>where to get it
3872
		<li>where to get it</li>
3869
		<li>how to install it
3873
		<li>how to install it</li>
3870
		<li>how to configure it
3874
		<li>how to configure it</li>
3871
		<li>how to customize it for your environment
3875
		<li>how to customize it for your environment</li>
3872
		<li>where the data is stored
3876
		<li>where the data is stored</li>
3873
		<li>how to write a basic plug-in
3877
		<li>how to write a basic plug-in</li>
3874
		</ul>
3878
		</ul>
3875
		</p>
3876
		<p>
3879
		<p>
3877
		<b>About the Speaker</b><br>
3880
		<b>About the Speaker</b><br />
3878
		Marc Spitzer started as a VAX/VMS operator who
3881
		Marc Spitzer started as a VAX/VMS operator who
3879
		taught himself some basic scripting in DCL to help
3882
		taught himself some basic scripting in DCL to help
3880
		me remember how to do procedures that did not come
3883
		me remember how to do procedures that did not come
Lines 3941-3947 Link Here
3941
		surprisingly useful (and fun)- for developers,
3944
		surprisingly useful (and fun)- for developers,
3942
		sysadmins, and anyone working with BSD systems.
3945
		sysadmins, and anyone working with BSD systems.
3943
		</p><p>
3946
		</p><p>
3944
		About the speaker<br>
3947
		About the speaker<br />
3945
		Isaac Levy, (ike) is a freelance BSD hadker based
3948
		Isaac Levy, (ike) is a freelance BSD hadker based
3946
		in NYC. He runs Diversaform Inc. as an engine to
3949
		in NYC. He runs Diversaform Inc. as an engine to
3947
		make his hacking feed itself, (and ike). Diversaform
3950
		make his hacking feed itself, (and ike). Diversaform
Lines 3984-3990 Link Here
3984
		of such attacks on servers designed to provide
3987
		of such attacks on servers designed to provide
3985
		network intensive services such as HTTP or routing.
3988
		network intensive services such as HTTP or routing.
3986
		</p><p>
3989
		</p><p>
3987
		About the speaker<br>
3990
		About the speaker<br />
3988
		Steven Kreuzer is currently employed by Right Media
3991
		Steven Kreuzer is currently employed by Right Media
3989
		as a Systems Administrator focusing on building and
3992
		as a Systems Administrator focusing on building and
3990
		managing high transaction infrastructures around
3993
		managing high transaction infrastructures around
Lines 4102-4108 Link Here
4102
		the global policy. Our goal is a coherent,
4105
		the global policy. Our goal is a coherent,
4103
		enterprise-wide response to any network threat.
4106
		enterprise-wide response to any network threat.
4104
		</p><p>
4107
		</p><p>
4105
		<b>Biography</b><br>
4108
		<b>Biography</b><br />
4106
		Matthew Burnside is a Ph.D. student in the Computer
4109
		Matthew Burnside is a Ph.D. student in the Computer
4107
		Science department at Columbia University, in New
4110
		Science department at Columbia University, in New
4108
		York. He works for Professor Angelos Keromytis in
4111
		York. He works for Professor Angelos Keromytis in
Lines 4188-4196 Link Here
4188
	    <title>New York City BSD Con 2006: BSD is Dying - A Cautionary Tale of Sex and Greed</title>
4191
	    <title>New York City BSD Con 2006: BSD is Dying - A Cautionary Tale of Sex and Greed</title>
4189
	    <desc><![CDATA[
4192
	    <desc><![CDATA[
4190
		<p>
4193
		<p>
4191
		<b>BSD is Dying</b><br>
4194
		<b>BSD is Dying</b><br />
4192
		<b>A Cautionary Tale of Sex and Greed</b><br>
4195
		<b>A Cautionary Tale of Sex and Greed</b><br />
4193
		<b>Jason Dixon</b><br>
4196
		<b>Jason Dixon</b><br />
4194
		<b>October 28, 2006</b>
4197
		<b>October 28, 2006</b>
4195
		</p><p>
4198
		</p><p>
4196
		First and foremost, I would like to thank the unique
4199
		First and foremost, I would like to thank the unique
Lines 4333-4355 Link Here
4333
		understandable by everyone, (even techs without
4336
		understandable by everyone, (even techs without
4334
		UNIX knowledge), and the gear is cheap - this saves
4337
		UNIX knowledge), and the gear is cheap - this saves
4335
		time and money.
4338
		time and money.
4336
		<br>
4339
		<br />
4337
		In the meantime, the features of your average Linksys
4340
		In the meantime, the features of your average Linksys
4338
		or Netgear router often leave MUCH to be desired,
4341
		or Netgear router often leave MUCH to be desired,
4339
		(https auth management, for one simple example).
4342
		(https auth management, for one simple example).
4340
		<br>
4343
		<br />
4341
		Enter m0n0wall and PFSense, 2 BSD based packaged
4344
		Enter m0n0wall and PFSense, 2 BSD based packaged
4342
		router/firewall solutions that are as solid and
4345
		router/firewall solutions that are as solid and
4343
		full featured as you`d expect from any BSD system-
4346
		full featured as you`d expect from any BSD system-
4344
		PLUS THEY HAVE HTML WEB INTERFACES FOR MANAGEMENT!
4347
		PLUS THEY HAVE HTML WEB INTERFACES FOR MANAGEMENT!
4345
		<br>
4348
		<br />
4346
		m0n0wall and PFSense become an easy sell in any
4349
		m0n0wall and PFSense become an easy sell in any
4347
		small professional enviornment, any competent tech
4350
		small professional enviornment, any competent tech
4348
		can manage the network within minutes... At home,
4351
		can manage the network within minutes... At home,
4349
		in every hackers home network, they free the hacker
4352
		in every hackers home network, they free the hacker
4350
		to have trusted tools available, but are as time-saving
4353
		to have trusted tools available, but are as time-saving
4351
		as using any Linksys router.
4354
		as using any Linksys router.
4352
		<br>
4355
		<br />
4353
		m0n0wall and PFSense are both light and clean,
4356
		m0n0wall and PFSense are both light and clean,
4354
		designed to run on embedded systems- (Soekris,
4357
		designed to run on embedded systems- (Soekris,
4355
		WRAP), but are monsters when unleashed on even
4358
		WRAP), but are monsters when unleashed on even
Lines 4358-4364 Link Here
4358
		to manage the router for your DSL when you get home?
4361
		to manage the router for your DSL when you get home?
4359
		But then doesn`t it bug you to use a chincey Linksys
4362
		But then doesn`t it bug you to use a chincey Linksys
4360
		box?
4363
		box?
4361
		<br>
4364
		<br />
4362
		Ike has been a member of NYC*BUG since we first
4365
		Ike has been a member of NYC*BUG since we first
4363
		launched in January 2004. He is a long-time member
4366
		launched in January 2004. He is a long-time member
4364
		of the Lower East Side Mac Unix User Group. He has
4367
		of the Lower East Side Mac Unix User Group. He has
Lines 4384-4390 Link Here
4384
		 millions of messages to OKCupid`s subscribers.
4387
		 millions of messages to OKCupid`s subscribers.
4385
		 Topics covered will be system tuning and sendmail
4388
		 Topics covered will be system tuning and sendmail
4386
		 hacks used in house to achieve massive throughput.
4389
		 hacks used in house to achieve massive throughput.
4387
		 <br>
4390
		 <br />
4388
		 Alfred Perlstein is the CTO of OKcupid.com, the
4391
		 Alfred Perlstein is the CTO of OKcupid.com, the
4389
		 largest free online dating site. He has been a
4392
		 largest free online dating site. He has been a
4390
		 FreeBSD hacker for five years, he`s worked on NFS,
4393
		 FreeBSD hacker for five years, he`s worked on NFS,
Lines 4458-4471 Link Here
4458
	    <title>Episode 06 of "FreeBSD for all" uploaded</title>
4461
	    <title>Episode 06 of "FreeBSD for all" uploaded</title>
4459
	    <desc><![CDATA[
4462
	    <desc><![CDATA[
4460
		<p>
4463
		<p>
4461
		This week we talk about-
4464
		This week we talk about
4465
		</p>
4462
		<ul>
4466
		<ul>
4463
		<li>Macromedia plugin
4467
		<li>Macromedia plugin</li>
4464
		<li>FreeBSD-Linux differences part 2
4468
		<li>FreeBSD-Linux differences part 2</li>
4465
		<li>John Baldwin Introduction
4469
		<li>John Baldwin Introduction</li>
4466
		<li>Podcast anouncement - call for co-hosts!
4470
		<li>Podcast anouncement - call for co-hosts!</li>
4467
		</ul>
4471
		</ul>
4468
		</p>
4469
	    ]]></desc>
4472
	    ]]></desc>
4470
	    <overview>http://freebsdforall.blogspot.com/2006/06/episode-06.html</overview>
4473
	    <overview>http://freebsdforall.blogspot.com/2006/06/episode-06.html</overview>
4471
	    <tags>freebsd for all,talk,john baldwin,freebsd vs linux</tags>
4474
	    <tags>freebsd for all,talk,john baldwin,freebsd vs linux</tags>
Lines 4497-4506 Link Here
4497
	    <desc><![CDATA[
4500
	    <desc><![CDATA[
4498
		<b>Our Topic:</b>
4501
		<b>Our Topic:</b>
4499
		FreeBSD's ACPI implementation: The details.
4502
		FreeBSD's ACPI implementation: The details.
4500
		<br>
4503
		<br />
4501
		<b>Our Speaker:</b>
4504
		<b>Our Speaker:</b>
4502
		Nate Lawson, FreeBSD Committer.
4505
		Nate Lawson, FreeBSD Committer.
4503
		<br>
4506
		<br />
4504
		<b>Our Topic:</b>
4507
		<b>Our Topic:</b>
4505
		FreeBSD's ACPI implementation is based on code for ACPI released
4508
		FreeBSD's ACPI implementation is based on code for ACPI released
4506
		by Intel. Nate and others wrote the glue code to make this code
4509
		by Intel. Nate and others wrote the glue code to make this code
Lines 4521-4532 Link Here
4521
	    <desc><![CDATA[
4524
	    <desc><![CDATA[
4522
		<b>Our Topic:</b>
4525
		<b>Our Topic:</b>
4523
		Network Protocol Development Tools and Techniques for FreeBSD
4526
		Network Protocol Development Tools and Techniques for FreeBSD
4524
		<br>
4527
		<br />
4525
		<b>Our Speaker:</b>
4528
		<b>Our Speaker:</b>
4526
		George Neville-Neil, co-author of the "Design and
4529
		George Neville-Neil, co-author of the "Design and
4527
		Implementation of the FreeBSD Operating System"
4530
		Implementation of the FreeBSD Operating System"
4528
		"daemon" book.
4531
		"daemon" book.
4529
		<br>
4532
		<br />
4530
		<b>Our Topic:</b>
4533
		<b>Our Topic:</b>
4531
		While computers have gotten faster and more powerful
4534
		While computers have gotten faster and more powerful
4532
		the tools we use to develop network protocols, such
4535
		the tools we use to develop network protocols, such
Lines 4538-4547 Link Here
4538
		developing a library for use in protocol testing.
4541
		developing a library for use in protocol testing.
4539
		This talk will cover three topics:
4542
		This talk will cover three topics:
4540
		<ol>
4543
		<ol>
4541
		<li>Developing and testing kernel code with Virtual Machines
4544
		<li>Developing and testing kernel code with Virtual Machines</li>
4542
		<li>Finding good tests for networking code
4545
		<li>Finding good tests for networking code</li>
4543
		<li>Packet Construction Set (PCS) a new library for
4546
		<li>Packet Construction Set (PCS) a new library for
4544
		    writing protocol tests
4547
		    writing protocol tests</li>
4545
		</ol>
4548
		</ol>
4546
		]]></desc>
4549
		]]></desc>
4547
	    <tags>bafug,presentation,freebsd,packet construction set,george neville-neil</tags>
4550
	    <tags>bafug,presentation,freebsd,packet construction set,george neville-neil</tags>
Lines 4960-4966 Link Here
4960
		    <tags>slides</tags>
4963
		    <tags>slides</tags>
4961
		</file>
4964
		</file>
4962
		<file>
4965
		<file>
4963
		    <url><![CDATA[http://vp.video.google.com/videodownload?version=0&secureurl=uAAAANDveMbSROZ54T6ovHpX7U46rpfxARh9qN1NEemo6WM7qeDBk-8GxxtGIXTqDRuaHnUUJVcUs0bf539CXM4fqBp6xeb9INr7CRp9JPcKZeT9UsSqDsvdYZhiN7xnPzju7rN379RkfS47rjI8TnCJ1iQdrEqhd8Okw_KJcO7O3Iq00GUYYZaedmq5jrmy1ezFXGAG6KURgb8RV19cCaui1U0zVEKd2ApjzlxRHSi89QBih_VSyFE64p3haNyy76qCVQ&sigh=GK-OoKkmqQWNalgoUzB4HmzA3EI&begin=0&len=3967520&docid=-2979502732836620391]]></url>
4966
		    <url><![CDATA[http://vp.video.google.com/videodownload?version=0&amp;secureurl=uAAAANDveMbSROZ54T6ovHpX7U46rpfxARh9qN1NEemo6WM7qeDBk-8GxxtGIXTqDRuaHnUUJVcUs0bf539CXM4fqBp6xeb9INr7CRp9JPcKZeT9UsSqDsvdYZhiN7xnPzju7rN379RkfS47rjI8TnCJ1iQdrEqhd8Okw_KJcO7O3Iq00GUYYZaedmq5jrmy1ezFXGAG6KURgb8RV19cCaui1U0zVEKd2ApjzlxRHSi89QBih_VSyFE64p3haNyy76qCVQ&amp;sigh=GK-OoKkmqQWNalgoUzB4HmzA3EI&amp;begin=0&amp;len=3967520&amp;amp;docid=-2979502732836620391]]></url>
4964
		    <length>1:06:07</length>
4967
		    <length>1:06:07</length>
4965
		    <desc>Google Video</desc>
4968
		    <desc>Google Video</desc>
4966
		    <tags>mp4</tags>
4969
		    <tags>mp4</tags>
Lines 5065-5077 Link Here
5065
		 </p>
5068
		 </p>
5066
	    ]]></desc>
5069
	    ]]></desc>
5067
	    <overview><![CDATA[
5070
	    <overview><![CDATA[
5068
		http://video.google.com/videoplay?docid=-4400856579609253323&total=1&start=0&num=10&so=1&type=search&plindex=0
5071
		http://video.google.com/videoplay?docid=-4400856579609253323&amp;total=1&amp;start=0&amp;num=10&amp;so=1&amp;type=search&amp;plindex=0
5069
		]]></overview>
5072
		]]></overview>
5070
	    <tags>google,presentation,freebsd,freebsd project,robert watson</tags>
5073
	    <tags>google,presentation,freebsd,freebsd project,robert watson</tags>
5071
	    <files>
5074
	    <files>
5072
		<file>
5075
		<file>
5073
		    <url><![CDATA[
5076
		    <url><![CDATA[
5074
			http://vp.video.google.com/videodownload?version=0&secureurl=uAAAAMnsi51RXPgEl7zGKAWEdrKWWWjUJ5q602Nvd2V5YwaDTyCIRM5k8Rq4nUZipL4tHODLiuiSxq34qoHi8TiEyXrdjKI8_WN0fXSKQYyrrlrWKMWd5Vw7AuXiu_B0uHEadc-fR6np2MP0ItJbT-Zx-J0-GCx0Mya2fQLoLG2pb55veUzTepcJz2RsKjNaGM-XUHpxqTZoIh0rggQIkNp-vZzghRb_8JQanc00ChX2CYB3LogDCHj1hpnFFmFd-2sEEg&sigh=ZrfuqGS7FqWRpFYVklZH1V4LRj4&begin=0&len=3053322&docid=-4400856579609253323
5077
			http://vp.video.google.com/videodownload?version=0&amp;secureurl=uAAAAMnsi51RXPgEl7zGKAWEdrKWWWjUJ5q602Nvd2V5YwaDTyCIRM5k8Rq4nUZipL4tHODLiuiSxq34qoHi8TiEyXrdjKI8_WN0fXSKQYyrrlrWKMWd5Vw7AuXiu_B0uHEadc-fR6np2MP0ItJbT-Zx-J0-GCx0Mya2fQLoLG2pb55veUzTepcJz2RsKjNaGM-XUHpxqTZoIh0rggQIkNp-vZzghRb_8JQanc00ChX2CYB3LogDCHj1hpnFFmFd-2sEEg&amp;sigh=ZrfuqGS7FqWRpFYVklZH1V4LRj4&amp;begin=0&amp;len=3053322&amp;docid=-4400856579609253323
5075
		    ]]></url>
5078
		    ]]></url>
5076
		    <size>321 Mb</size>
5079
		    <size>321 Mb</size>
5077
		    <length>51 minutes</length>
5080
		    <length>51 minutes</length>
Lines 5728-5734 Link Here
5728
		category in the FreeBSD ports tree</a> and has
5731
		category in the FreeBSD ports tree</a> and has
5729
		become the maintainer of over 20 of the hamradio
5732
		become the maintainer of over 20 of the hamradio
5730
		ports.  She also contributed to the <a
5733
		ports.  She also contributed to the <a
5731
		href="http://www.hamsexy.com/wiki/index.php?title=FreeBSD&redirect=no">FreeBSD
5734
		href="http://www.hamsexy.com/wiki/index.php?title=FreeBSD&amp;redirect=no">FreeBSD
5732
		entry at Hampedia</a>, the Wikipedia for ham
5735
		entry at Hampedia</a>, the Wikipedia for ham
5733
		operators.
5736
		operators.
5734
		</p><p>
5737
		</p><p>
Lines 6057-6063 Link Here
6057
	    <tags>bsdcan,bsdcan2008,devsummit,devsummit2008,freebsd,embedded,rafal jaworowski</tags>
6060
	    <tags>bsdcan,bsdcan2008,devsummit,devsummit2008,freebsd,embedded,rafal jaworowski</tags>
6058
	    <files>
6061
	    <files>
6059
		<file>
6062
		<file>
6060
		    <url><![CDATA[http://wiki.freebsd.org/200805DevSummit?action=AttachFile&do=get&target=devsummit-200805-embedded_summary.pdf]]></url>
6063
		    <url><![CDATA[http://wiki.freebsd.org/200805DevSummit?action=AttachFile&amp;do=get&amp;target=devsummit-200805-embedded_summary.pdf]]></url>
6061
		    <length>6 pages</length>
6064
		    <length>6 pages</length>
6062
		    <size>58 Kb</size>
6065
		    <size>58 Kb</size>
6063
		    <desc>PDF file</desc>
6066
		    <desc>PDF file</desc>
Lines 6075-6081 Link Here
6075
	    <tags>bsdcan,bsdcan2008,devsummit,devsummit2008,freebsd,smp,robert watson</tags>
6078
	    <tags>bsdcan,bsdcan2008,devsummit,devsummit2008,freebsd,smp,robert watson</tags>
6076
	    <files>
6079
	    <files>
6077
		<file>
6080
		<file>
6078
		    <url><![CDATA[http://wiki.freebsd.org/200805DevSummit?action=AttachFile&do=get&target=20080515-stack-parallelism.pdf]]></url>
6081
		    <url><![CDATA[http://wiki.freebsd.org/200805DevSummit?action=AttachFile&amp;do=get&amp;target=20080515-stack-parallelism.pdf]]></url>
6079
		    <length>8 pages</length>
6082
		    <length>8 pages</length>
6080
		    <size>70 Kb</size>
6083
		    <size>70 Kb</size>
6081
		    <desc>PDF file</desc>
6084
		    <desc>PDF file</desc>
Lines 6093-6099 Link Here
6093
	    <tags>bsdcan,bsdcan2008,devsummit,devsummit2008,freebsd,portmgr,erwin lansing</tags>
6096
	    <tags>bsdcan,bsdcan2008,devsummit,devsummit2008,freebsd,portmgr,erwin lansing</tags>
6094
	    <files>
6097
	    <files>
6095
		<file>
6098
		<file>
6096
		    <url><![CDATA[http://wiki.freebsd.org/200805DevSummit?action=AttachFile&do=get&amp;target=portmgr-BSDCan2008.pdf]]></url>
6099
		    <url><![CDATA[http://wiki.freebsd.org/200805DevSummit?action=AttachFile&amp;do=get&amp;target=portmgr-BSDCan2008.pdf]]></url>
6097
		    <length>14 pages</length>
6100
		    <length>14 pages</length>
6098
		    <size>146 Kb</size>
6101
		    <size>146 Kb</size>
6099
		    <desc>PDF file</desc>
6102
		    <desc>PDF file</desc>
Lines 6240-6259 Link Here
6240
		PBI installer for PC-BSD desktops.
6243
		PBI installer for PC-BSD desktops.
6241
		</p><p>
6244
		</p><p>
6242
		The presentation will be divided into two main sections:
6245
		The presentation will be divided into two main sections:
6243
		<br>
6246
		<br />
6244
		The Push Button Installer (PBI) Format
6247
		The Push Button Installer (PBI) Format
6248
		</p>
6245
		<ul>
6249
		<ul>
6246
		<li>The basics of the PBI format
6250
		<li>The basics of the PBI format</li>
6247
		<li>The PBI format construction
6251
		<li>The PBI format construction</li>
6248
		<li>Add & Remove scripting support within PBI
6252
		<li>Add &amp; Remove scripting support within PBI</li>
6249
		</ul>
6253
		</ul>
6254
		<p>
6250
		Building PBIs from Ports "Auto-magically"
6255
		Building PBIs from Ports "Auto-magically"
6256
		</p>
6251
		<ul>
6257
		<ul>
6252
		<li>The PBI build server & standalone software
6258
		<li>The PBI build server &amp; standalone software</li>
6253
		<li>Module creation & configuration
6259
		<li>Module creation &amp; configuration</li>
6254
		<li>Converting messy ports into PBIs
6260
		<li>Converting messy ports into PBIs</li>
6255
		</ul>
6261
		</ul>
6256
		</p>
6257
	    ]]></desc>
6262
	    ]]></desc>
6258
	    <tags>bsdcan,bsdcan2008,slides,pc-bsd,ports,pbi,kris moore</tags>
6263
	    <tags>bsdcan,bsdcan2008,slides,pc-bsd,ports,pbi,kris moore</tags>
6259
	    <files>
6264
	    <files>
Lines 6478-6484 Link Here
6478
		<i>Beer, prizes, secrets, Works In Progress</i>
6483
		<i>Beer, prizes, secrets, Works In Progress</i>
6479
		<p>
6484
		<p>
6480
		The traditional closing...
6485
		The traditional closing...
6481
		<br>
6486
		<br />
6482
		with some new and interesting twists. Sleep in if
6487
		with some new and interesting twists. Sleep in if
6483
		you must, but don't miss this session.
6488
		you must, but don't miss this session.
6484
		</p>
6489
		</p>
Lines 6637-6676 Link Here
6637
		cover the in-kernel debugger DDB and the external
6642
		cover the in-kernel debugger DDB and the external
6638
		debugger kgdb which is used to perform post-mortem
6643
		debugger kgdb which is used to perform post-mortem
6639
		analysis on kernel crash dumps.
6644
		analysis on kernel crash dumps.
6640
		</p><p>
6645
		</p>
6641
		<h2>Introduction to Debugging the FreeBSD Kernel</h2>
6646
		<h2>Introduction to Debugging the FreeBSD Kernel</h2>
6642
		<ul>
6647
		<ul>
6643
		<li>Basic crash messages, what a crash looks like
6648
		<li>Basic crash messages, what a crash looks like
6644
		    <ul>
6649
		    <ul>
6645
		    <li>typical panic() invocation
6650
		    <li>typical panic() invocation</li>
6646
		    <li>page fault example
6651
		    <li>page fault example</li>
6647
		    </ul>
6652
		    </ul></li>
6648
		<li>"live" debugging with DDB
6653
		<li>"live" debugging with DDB
6649
		    <ul>
6654
		    <ul>
6650
		    <li>stack traces
6655
		    <li>stack traces</li>
6651
		    <li>ps
6656
		    <li>ps</li>
6652
		    <li>deadlock examples
6657
		    <li>deadlock examples</li>
6653
		    <li>show lockchain
6658
		    <li>show lockchain</li>
6654
		    <li>show sleepchain
6659
		    <li>show sleepchain</li>
6655
		    <li>Adding new DDB commands
6660
		    <li>Adding new DDB commands</li>
6656
		    </ul>
6661
		    </ul></li>
6657
		<li>KGDB
6662
		<li>KGDB
6658
		    <ul>
6663
		    <ul>
6659
		    <li>inspecting processes and threads
6664
		    <li>inspecting processes and threads</li>
6660
		    <li>working with kernel modules
6665
		    <li>working with kernel modules</li>
6661
		    <li>using scripts to extend
6666
		    <li>using scripts to extend</li>
6662
		    </ul>
6667
		    </ul></li>
6663
		<li>examining crashdumps using utilities
6668
		<li>examining crashdumps using utilities
6664
		    <ul>
6669
		    <ul>
6665
		    <li>ps, netstat, etc.
6670
		    <li>ps, netstat, etc.</li>
6666
		    </ul>
6671
		    </ul></li>
6667
		<li>debugging strategies
6672
		<li>debugging strategies
6668
		    <ul>
6673
		    <ul>
6669
		    <li>kernel crashes
6674
		    <li>kernel crashes</li>
6670
		    <li>system hangs
6675
		    <li>system hangs</li>
6671
		    </ul>
6676
		    </ul></li>
6672
		</ul>
6677
		</ul>
6673
		</p>
6674
	    ]]></desc>
6678
	    ]]></desc>
6675
	    <tags>bsdcan,bsdcan2008,slides,paper,debugging,freebsd,john baldwin</tags>
6679
	    <tags>bsdcan,bsdcan2008,slides,paper,debugging,freebsd,john baldwin</tags>
6676
	    <files>
6680
	    <files>
Lines 6715-6732 Link Here
6715
		This talk discusses the port of the DTrace facility
6719
		This talk discusses the port of the DTrace facility
6716
		to FreeBSD and demonstrates examples on a live
6720
		to FreeBSD and demonstrates examples on a live
6717
		FreeBSD system.
6721
		FreeBSD system.
6722
		</p>
6718
		<ul>
6723
		<ul>
6719
		<li>Introduction to the D language - probes, predicates and actions.
6724
		<li>Introduction to the D language - probes, predicates and actions.</li>
6720
		<li>dtrace(8) and libdtrace - the userland side of the DTrace story.
6725
		<li>dtrace(8) and libdtrace - the userland side of the DTrace story.</li>
6721
		<li>The DTrace kernel module, it's ioctl interface to userland and the provider infrastructure in the kernel.
6726
		<li>The DTrace kernel module, it's ioctl interface to userland and the provider infrastructure in the kernel.</li>
6722
		<li>DTrace kernel hooks and the problem of code licensed under Sun's CDDL.
6727
		<li>DTrace kernel hooks and the problem of code licensed under Sun's CDDL.</li>
6723
		<li>What does a DTrace probe actually do?
6728
		<li>What does a DTrace probe actually do?</li>
6724
		<li>DTrace safety and how it is implemented.
6729
		<li>DTrace safety and how it is implemented.</li>
6725
		<li>Build system changes to add CTF (Compact C Type Format) data to objects, shared libraries and executables.
6730
		<li>Build system changes to add CTF (Compact C Type Format) data to objects, shared libraries and executables.</li>
6726
		<li>The DTrace test suite.
6731
		<li>The DTrace test suite.</li>
6727
		<li>A brief list of things to do to port the DTrace facility to other BSD-derived operating systems.
6732
		<li>A brief list of things to do to port the DTrace facility to other BSD-derived operating systems.</li>
6728
		</ul>
6733
		</ul>
6729
		</p>
6730
	    ]]></desc>
6734
	    ]]></desc>
6731
	    <tags>bsdcan,bsdcan2008,slides,dtrace,freebsd,john birrell</tags>
6735
	    <tags>bsdcan,bsdcan2008,slides,dtrace,freebsd,john birrell</tags>
6732
	    <files>
6736
	    <files>
Lines 6889-6900 Link Here
6889
		to the user. Then we will shift gears and discuss
6893
		to the user. Then we will shift gears and discuss
6890
		the extended socket API that is available to SCTP
6894
		the extended socket API that is available to SCTP
6891
		users and will cover such items as:
6895
		users and will cover such items as:
6896
		</p>
6892
		<ul>
6897
		<ul>
6893
		<li>The two socket programming models
6898
		<li>The two socket programming models</li>
6894
		<li>Extended system calls that support the SCTP feature set.
6899
		<li>Extended system calls that support the SCTP feature set.</li>
6895
		<li>What model may fit you best
6900
		<li>What model may fit you best</li>
6896
		</ul>
6901
		</ul>
6897
		</p>
6898
	    ]]></desc>
6902
	    ]]></desc>
6899
	    <tags>bsdcan,bsdcan2008,abstract,freebsd,sctp,randall stewart</tags>
6903
	    <tags>bsdcan,bsdcan2008,abstract,freebsd,sctp,randall stewart</tags>
6900
	    <files>
6904
	    <files>
Lines 6957-6963 Link Here
6957
	    <desc><![CDATA[
6961
	    <desc><![CDATA[
6958
		<h1>Opening session</h1>
6962
		<h1>Opening session</h1>
6959
		Welcome to BSDCan 2008
6963
		Welcome to BSDCan 2008
6960
		<br>
6964
		<br />
6961
		Traditional greetings
6965
		Traditional greetings
6962
	    ]]></desc>
6966
	    ]]></desc>
6963
	    <tags>bsdcan,bsdcan2008,slides,dan langille</tags>
6967
	    <tags>bsdcan,bsdcan2008,slides,dan langille</tags>
Lines 6976-6983 Link Here
6976
	    <title>BSDCan-2007 - Videos</title>
6980
	    <title>BSDCan-2007 - Videos</title>
6977
	    <overview>http://people.freebsd.org/~julian/BSDCan-2007/</overview>
6981
	    <overview>http://people.freebsd.org/~julian/BSDCan-2007/</overview>
6978
	    <desc><![CDATA[
6982
	    <desc><![CDATA[
6979
		The 2007 BSDCan conference<br>
6983
		The 2007 BSDCan conference<br />
6980
		Kirk McKusick - Code Reading of Locally-Connected Sockets<br>
6984
		Kirk McKusick - Code Reading of Locally-Connected Sockets<br />
6981
	    ]]></desc>
6985
	    ]]></desc>
6982
	    <tags>bsdcan,bsdcan2007,talks,kirk mckusick</tags>
6986
	    <tags>bsdcan,bsdcan2007,talks,kirk mckusick</tags>
6983
	    <files>
6987
	    <files>
Lines 6995-7002 Link Here
6995
	    <title>BSDCan-2007 - Videos</title>
6999
	    <title>BSDCan-2007 - Videos</title>
6996
	    <overview>http://people.freebsd.org/~julian/BSDCan-2007/</overview>
7000
	    <overview>http://people.freebsd.org/~julian/BSDCan-2007/</overview>
6997
	    <desc><![CDATA[
7001
	    <desc><![CDATA[
6998
		The 2007 BSDCan conference<br>
7002
		The 2007 BSDCan conference<br />
6999
		Erwin Lansing - The state of the FreeBSD Ports Tree<br>
7003
		Erwin Lansing - The state of the FreeBSD Ports Tree<br />
7000
	    ]]></desc>
7004
	    ]]></desc>
7001
	    <tags>bsdcan,bsdcan2007,talks,erwin lansing,ports</tags>
7005
	    <tags>bsdcan,bsdcan2007,talks,erwin lansing,ports</tags>
7002
	    <files>
7006
	    <files>
Lines 7032-7039 Link Here
7032
	    <title>BSDCan-2007 - Videos</title>
7036
	    <title>BSDCan-2007 - Videos</title>
7033
	    <overview>http://people.freebsd.org/~julian/BSDCan-2007/</overview>
7037
	    <overview>http://people.freebsd.org/~julian/BSDCan-2007/</overview>
7034
	    <desc><![CDATA[
7038
	    <desc><![CDATA[
7035
		The 2007 BSDCan conference<br>
7039
		The 2007 BSDCan conference<br />
7036
		Kris Kennaway - Scalability Update 2007<br>
7040
		Kris Kennaway - Scalability Update 2007<br />
7037
		Progress on FreeBSD SMP performance and scalablity
7041
		Progress on FreeBSD SMP performance and scalablity
7038
		since BSDCan Dev Summit 2006
7042
		since BSDCan Dev Summit 2006
7039
	    ]]></desc>
7043
	    ]]></desc>
Lines 7053-7059 Link Here
7053
	    <title>BSDCan-2007 - Videos</title>
7057
	    <title>BSDCan-2007 - Videos</title>
7054
	    <overview>http://people.freebsd.org/~julian/BSDCan-2007/</overview>
7058
	    <overview>http://people.freebsd.org/~julian/BSDCan-2007/</overview>
7055
	    <desc><![CDATA[
7059
	    <desc><![CDATA[
7056
		The 2007 BSDCan conference<br>
7060
		The 2007 BSDCan conference<br />
7057
		Qing Li - Routing, ARP and ND6
7061
		Qing Li - Routing, ARP and ND6
7058
	    ]]></desc>
7062
	    ]]></desc>
7059
	    <tags>bsdcan,bsdcan2007,talks,qing li,routing arp and nd6</tags>
7063
	    <tags>bsdcan,bsdcan2007,talks,qing li,routing arp and nd6</tags>
Lines 7072-7078 Link Here
7072
	    <title>BSDCan-2007 - Videos</title>
7076
	    <title>BSDCan-2007 - Videos</title>
7073
	    <overview>http://people.freebsd.org/~julian/BSDCan-2007/</overview>
7077
	    <overview>http://people.freebsd.org/~julian/BSDCan-2007/</overview>
7074
	    <desc><![CDATA[
7078
	    <desc><![CDATA[
7075
		The 2007 BSDCan conference<br>
7079
		The 2007 BSDCan conference<br />
7076
		Marko Zec explains the vimage architecture
7080
		Marko Zec explains the vimage architecture
7077
	    ]]></desc>
7081
	    ]]></desc>
7078
	    <tags>bsdcan,bsdcan2007,talks,marko zec,vimage</tags>
7082
	    <tags>bsdcan,bsdcan2007,talks,marko zec,vimage</tags>
Lines 7091-7097 Link Here
7091
	    <title>BSDCan-2007 - Videos</title>
7095
	    <title>BSDCan-2007 - Videos</title>
7092
	    <overview>http://people.freebsd.org/~julian/BSDCan-2007/</overview>
7096
	    <overview>http://people.freebsd.org/~julian/BSDCan-2007/</overview>
7093
	    <desc><![CDATA[
7097
	    <desc><![CDATA[
7094
		The 2007 BSDCan conference<br>
7098
		The 2007 BSDCan conference<br />
7095
		Max Laier - PFIL, firewalls and locking
7099
		Max Laier - PFIL, firewalls and locking
7096
	    ]]></desc>
7100
	    ]]></desc>
7097
	    <tags>bsdcan,bsdcan2007,talks,max laier,ipf</tags>
7101
	    <tags>bsdcan,bsdcan2007,talks,max laier,ipf</tags>
Lines 7202-7208 Link Here
7202
	    <desc><![CDATA[
7206
	    <desc><![CDATA[
7203
		"FreeBSD Portsnap - 
7207
		"FreeBSD Portsnap - 
7204
		What (it is), Why (it was written), and How (it works)"
7208
		What (it is), Why (it was written), and How (it works)"
7205
		by Colin Percival (cperciva@FreeBSD.org)<br>
7209
		by Colin Percival (cperciva@FreeBSD.org)<br />
7206
		(Note: use ^L to get back in non-fullscreen mode)
7210
		(Note: use ^L to get back in non-fullscreen mode)
7207
	    ]]></desc>
7211
	    ]]></desc>
7208
	    <tags>bsdcan,bsdcan2007,pdf,portsnap,freebsd,colin percival</tags>
7212
	    <tags>bsdcan,bsdcan2007,pdf,portsnap,freebsd,colin percival</tags>
(-)multimedia.pl (-83 / +239 lines)
Lines 2-14 Link Here
2
2
3
#
3
#
4
# $Id$
4
# $Id$
5
# $FreeBSD: www/en/multimedia/multimedia.pl,v 1.2 2008/05/30 15:22:01 remko Exp $
5
# $FreeBSD$
6
#
6
#
7
7
8
use strict;
8
use strict;
9
use XML::Parser;
9
use XML::Parser;
10
use Data::Dumper;
10
use Data::Dumper;
11
use POSIX;
11
use POSIX;
12
use IO::File;
12
13
13
my @months = (
14
my @months = (
14
    "", "January", "February", "March",
15
    "", "January", "February", "March",
Lines 17-23 Link Here
17
    "November", "December"
18
    "November", "December"
18
);
19
);
19
20
20
my @createdfiles = ();
21
my @createdhtml = ();
22
my @createdsgml = ();
23
my @createdxml = ();
21
24
22
my @tree = ();
25
my @tree = ();
23
my @values = ();
26
my @values = ();
Lines 28-33 Link Here
28
my %sources;
31
my %sources;
29
my $sid = "";
32
my $sid = "";
30
my %tags;
33
my %tags;
34
my $tag = "";
31
35
32
sub addtags {
36
sub addtags {
33
    my $tags = shift;
37
    my $tags = shift;
Lines 78-89 Link Here
78
     && $treeindex == 5) {
82
     && $treeindex == 5) {
79
	$items[$ci]{fc}++;
83
	$items[$ci]{fc}++;
80
    }
84
    }
85
86
    if ($treeindex == 3 &&
87
	$element eq "tags") {
88
	$tag = "";
89
    }
81
}
90
}
82
91
83
sub xml_end {
92
sub xml_end {
84
    my $expat = shift;
93
    my $expat = shift;
85
    my $element = shift;
94
    my $element = shift;
86
95
96
    if ($treeindex == 3 &&
97
	$element eq "tags") {
98
	@{$items[$ci]{tags}} = split(/,/, $tag);
99
	addtags($tag);
100
    }
101
87
    $values[$treeindex] = ();
102
    $values[$treeindex] = ();
88
    $treeindex--;
103
    $treeindex--;
89
}
104
}
Lines 122-129 Link Here
122
		    return;
137
		    return;
123
		}
138
		}
124
		if ($tree[3] eq "tags") {
139
		if ($tree[3] eq "tags") {
125
		    @{$items[$ci]{tags}} = split(/,/, $value);
140
		    $tag .= $value;
126
		    addtags($value);
127
		    return;
141
		    return;
128
		}
142
		}
129
143
Lines 240-331 Link Here
240
# HTML overview output
254
# HTML overview output
241
#
255
#
242
sub print_htmlitem {
256
sub print_htmlitem {
257
    my $fhandle = shift;
243
    my $item = shift;
258
    my $item = shift;
244
    my %item = %{$item};
259
    my %item = %{$item};
245
    my $source = shift;
260
    my $source = shift;
246
    my %source = %{$source};
261
    my %source = %{$source};
247
262
248
    print FOUT "<li><p>";
263
    print $fhandle "<li><p>";
249
    if (defined $item{overview}) {
264
    if (defined $item{overview}) {
250
	print FOUT "<a href=\"$item{overview}\">$item{title}</a>\n";
265
	print $fhandle "<a href=\"$item{overview}\">$item{title}</a>\n";
251
    } else {
266
    } else {
252
	my %media = %{$item{files}{0}};
267
	my %media = %{$item{files}{0}};
253
	print FOUT "<a href=\"$media{url}\">$item{title}</a>\n";
268
	print $fhandle "<a href=\"$media{url}\">$item{title}</a>\n";
254
	if (defined $media{size} || defined $media{length}) {
269
	if (defined $media{size} || defined $media{length}) {
255
	    my $s = "";
270
	    my $s = "";
256
	    print FOUT "(";
271
	    print $fhandle "(";
257
	    if (defined $media{size}) {
272
	    if (defined $media{size}) {
258
		print FOUT "$media{size}";
273
		print $fhandle "$media{size}";
259
		$s = ", ";
274
		$s = ", ";
260
	    }
275
	    }
261
	    if (defined $media{length}) {
276
	    if (defined $media{length}) {
262
		print FOUT "$s$media{length}";
277
		print $fhandle "$s$media{length}";
263
		$s = ", ";
278
		$s = ", ";
264
	    }
279
	    }
265
	    print FOUT ")";
280
	    print $fhandle ")";
266
	}
281
	}
267
    }
282
    }
268
    print FOUT "<br>Source: <a href=\"", $source{url}, "\">",
283
    print $fhandle "<br>Source: <a href=\"", $source{url}, "\">",
269
	$source{name}, "</a><br>\n";
284
	$source{name}, "</a><br>\n";
270
    print FOUT "Added: ",
285
    print $fhandle "Added: ",
271
	    substr($item{added}, 6, 2), " ",
286
	    substr($item{added}, 6, 2), " ",
272
	    $months[substr($item{added}, 4, 2)], " ",
287
	    $months[substr($item{added}, 4, 2)], " ",
273
	    substr($item{added}, 0, 4), "<br>\n";
288
	    substr($item{added}, 0, 4), "<br>\n";
274
289
275
    print FOUT "Tags: ";
290
    print $fhandle "Tags: ";
276
    {
291
    {
277
	my $first = 1;
292
	my $first = 1;
278
	foreach my $t (@{$item{tags}}) {
293
	foreach my $t (@{$item{tags}}) {
279
	    print FOUT ", " if (!$first);
294
	    print $fhandle ", " if (!$first);
280
#	    join(", ", @{$item{$t}}), "<br>\n";
295
#	    join(", ", @{$item{$t}}), "<br>\n";
281
	    my $th = $t;
296
	    my $th = $t;
282
	    $th =~ s/ /_/g;
297
	    $th =~ s/ /_/g;
283
	    print FOUT "<a href=\"multimedia-tag-$th.html\">$t</a>";
298
	    print $fhandle "<a href=\"tag-$th.html\">$t</a>";
284
	    $first = 0;
299
	    $first = 0;
285
	}
300
	}
286
    }
301
    }
287
    print FOUT "<br>\n";
302
    print $fhandle "<br>\n";
288
303
289
    if (defined $item{overview} && defined $item{files}) {
304
    if (defined $item{overview} && defined $item{files}) {
290
	my $c = 0;
305
	my $c = 0;
291
	foreach my $m (keys(%{$item{files}})) {
306
	foreach my $m (keys(%{$item{files}})) {
292
	    my %file = %{$item{files}{$m}};
307
	    my %file = %{$item{files}{$m}};
293
	    print FOUT ", " if ($c++);
308
	    print $fhandle ", " if ($c++);
294
	    if (defined $item{prefix}) {
309
	    if (defined $item{prefix}) {
295
		print FOUT "<a href=\"$item{prefix}/$file{url}\">$file{desc}</a>";
310
		print $fhandle "<a href=\"$item{prefix}/$file{url}\">$file{desc}</a>";
296
	    } else {
311
	    } else {
297
		print FOUT "<a href=\"$file{url}\">$file{desc}</a>";
312
		print $fhandle "<a href=\"$file{url}\">$file{desc}</a>";
298
	    }
313
	    }
299
	    if (defined $file{size} || defined $file{length}) {
314
	    if (defined $file{size} || defined $file{length}) {
300
		my $s = "";
315
		my $s = "";
301
		print FOUT " (";
316
		print $fhandle " (";
302
		if (defined $file{size}) {
317
		if (defined $file{size}) {
303
		    print FOUT "$file{size}";
318
		    print $fhandle "$file{size}";
304
		    $s = ", ";
319
		    $s = ", ";
305
		}
320
		}
306
		if (defined $file{length}) {
321
		if (defined $file{length}) {
307
		    print FOUT "$s$file{length}";
322
		    print $fhandle "$s$file{length}";
308
		    $s = ", ";
323
		    $s = ", ";
309
		}
324
		}
310
		print FOUT ")";
325
		print $fhandle ")";
311
	    }
326
	    }
312
	}
327
	}
313
	print FOUT "<br>\n";
328
	print $fhandle "<br>\n";
314
    }
329
    }
315
    print FOUT "$item{desc}\n";
330
    print $fhandle "</p>\n";
331
    print $fhandle "$item{desc}\n";
332
    print $fhandle "</li>\n";
316
}
333
}
317
{
334
{
318
    $createdfiles[$#createdfiles+1] = "multimedia.html";
335
    $createdhtml[$#createdhtml+1] = "multimedia.html";
319
    open(FOUT, ">multimedia.html");
336
    $createdsgml[$#createdsgml+1] = "multimedia.sgml";
337
    my $fhtml = new IO::File;
338
    my $fsgml = new IO::File;
339
340
    open($fhtml, ">multimedia.html");
320
    open(FIN, "multimedia.html.pre");
341
    open(FIN, "multimedia.html.pre");
321
    my @lines = <FIN>;
342
    my @lines = <FIN>;
322
    close(FIN);
343
    close(FIN);
323
    print FOUT @lines;
344
    print $fhtml @lines;
324
    open(FIN, "multimedia.html.intro");
345
    open(FIN, "multimedia.html.intro");
325
    @lines = <FIN>;
346
    @lines = <FIN>;
326
    close(FIN);
347
    close(FIN);
327
    print FOUT @lines;
348
    print $fhtml @lines;
328
    print FOUT "<h2 id=\"latest\">Newest resources</h2>\n";
349
    print $fhtml "<h2 id=\"latest\">Newest resources</h2>\n";
350
351
    open($fsgml, ">multimedia.sgml");
352
    open(FIN, "multimedia.sgml.pre");
353
    @lines = <FIN>;
354
    close(FIN);
355
    print $fsgml @lines;
356
    open(FIN, "multimedia.sgml.intro");
357
    @lines = <FIN>;
358
    close(FIN);
359
    print $fsgml @lines;
360
    print $fsgml "<h2 id=\"latest\">Newest resources</h2>\n";
329
361
330
    my $month = "";
362
    my $month = "";
331
363
Lines 333-370 Link Here
333
	my %item = %{$items[$order]};
365
	my %item = %{$items[$order]};
334
	my %source = %{$sources{$item{source}}};
366
	my %source = %{$sources{$item{source}}};
335
	if (substr($item{added}, 0, 6) ne $month) {
367
	if (substr($item{added}, 0, 6) ne $month) {
336
	    print FOUT "</ul><h2>", $months[substr($item{added}, 4, 2)+0], " ", substr($item{added}, 0, 4), "</h2><ul>";
368
	    if ($month ne "") {
369
		print $fhtml "</ul>\n";
370
		print $fsgml "</ul>\n";
371
	    }
372
	    print $fhtml "<h2>", $months[substr($item{added}, 4, 2)+0], " ", substr($item{added}, 0, 4), "</h2><ul>";
373
	    print $fsgml "<h2>", $months[substr($item{added}, 4, 2)+0], " ", substr($item{added}, 0, 4), "</h2><ul>";
337
	    $month = substr($item{added}, 0, 6);
374
	    $month = substr($item{added}, 0, 6);
338
	}
375
	}
339
376
340
	print_htmlitem(\%item, \%source);
377
	print_htmlitem($fhtml, \%item, \%source);
378
	print_htmlitem($fsgml, \%item, \%source);
341
    }
379
    }
342
380
343
    print FOUT "</ul>\n";
381
    print $fhtml "</ul>\n";
344
345
    open(FIN, "multimedia.html.post");
382
    open(FIN, "multimedia.html.post");
346
    @lines = <FIN>;
383
    @lines = <FIN>;
347
    close(FIN);
384
    close(FIN);
348
    print FOUT @lines;
385
    print $fhtml @lines;
386
    close($fhtml);
349
387
350
    close(FOUT);
388
    print $fsgml "</ul>\n";
389
    open(FIN, "multimedia.sgml.post");
390
    @lines = <FIN>;
391
    close(FIN);
392
    print $fsgml @lines;
393
    close($fsgml);
351
}
394
}
352
395
353
#
396
#
354
# HTML cloud output
397
# HTML cloud output
355
#
398
#
356
{
399
{
357
    $createdfiles[$#createdfiles+1] = "multimedia-tags.html";
400
    $createdhtml[$#createdhtml+1] = "tags.html";
358
    open(FOUT, ">multimedia-tags.html");
401
    $createdsgml[$#createdsgml+1] = "tags.sgml";
402
    my $fhtml = new IO::File;
403
    my $fsgml = new IO::File;
404
    open($fhtml, ">tags.html");
405
    open($fsgml, ">tags.sgml");
406
359
    open(FIN, "multimedia.html.pre");
407
    open(FIN, "multimedia.html.pre");
360
    my @lines = <FIN>;
408
    my @lines = <FIN>;
361
    close(FIN);
409
    close(FIN);
362
    print FOUT @lines;
410
    print $fhtml @lines;
363
    open(FIN, "multimedia.html.intro");
411
    open(FIN, "multimedia.html.intro");
364
    @lines = <FIN>;
412
    @lines = <FIN>;
365
    close(FIN);
413
    close(FIN);
366
    print FOUT @lines;
414
    print $fhtml @lines;
367
    print FOUT "<h2 id=\"latest\">Tags</h2>\n";
415
    print $fhtml "<h2 id=\"latest\">Tags</h2>\n";
416
417
    open(FIN, "multimedia.sgml.pre");
418
    @lines = <FIN>;
419
    close(FIN);
420
    print $fsgml @lines;
421
    open(FIN, "multimedia.sgml.intro");
422
    @lines = <FIN>;
423
    close(FIN);
424
    print $fsgml @lines;
425
    print $fsgml "<h2 id=\"latest\">Tags</h2>\n";
368
426
369
    my $month = "";
427
    my $month = "";
370
428
Lines 377-392 Link Here
377
    foreach my $tag (sort size(keys(%tags))) {
435
    foreach my $tag (sort size(keys(%tags))) {
378
	my $ftag = $tag;
436
	my $ftag = $tag;
379
	$ftag =~ s/ /_/g;
437
	$ftag =~ s/ /_/g;
380
	print FOUT "<font style=\"font-size:${size}pt\"><a href=\"multimedia-tag-$ftag.html\">$tag</a></font>\n";
438
	print $fhtml "<font style=\"font-size:${size}pt\"><a href=\"tag-$ftag.html\">$tag</a></font>\n";
439
	print $fsgml "<font style=\"font-size:${size}pt\"><a href=\"tag-$ftag.html\">$tag</a></font>\n";
381
	$size-- if ($c++%10 == 0 && $size > 2);
440
	$size-- if ($c++%10 == 0 && $size > 2);
382
    }
441
    }
383
442
384
    open(FIN, "multimedia.html.post");
443
    open(FIN, "multimedia.html.post");
385
    @lines = <FIN>;
444
    @lines = <FIN>;
386
    close(FIN);
445
    close(FIN);
387
    print FOUT @lines;
446
    print $fhtml @lines;
388
447
389
    close(FOUT);
448
    open(FIN, "multimedia.sgml.post");
449
    @lines = <FIN>;
450
    close(FIN);
451
    print $fsgml @lines;
452
453
    close($fhtml);
454
    close($fsgml);
390
}
455
}
391
456
392
#
457
#
Lines 394-414 Link Here
394
#
459
#
395
{
460
{
396
    foreach my $tag (keys(%tags)) {
461
    foreach my $tag (keys(%tags)) {
462
	my $fhtml = new IO::File;
463
	my $fsgml = new IO::File;
464
397
	my $ftag = $tag;
465
	my $ftag = $tag;
398
	$ftag =~ s/ /_/g;
466
	$ftag =~ s/ /_/g;
399
	$createdfiles[$#createdfiles+1] = "multimedia-tag-$ftag.html";
467
	$createdhtml[$#createdhtml+1] = "tag-$ftag.html";
400
	open(FOUT, ">multimedia-tag-$ftag.html");
468
	$createdsgml[$#createdsgml+1] = "tag-$ftag.sgml";
469
	open($fhtml, ">tag-$ftag.html");
470
	open($fsgml, ">tag-$ftag.sgml");
401
471
402
	open(FIN, "multimedia.html.pre");
472
	open(FIN, "multimedia.html.pre");
403
	my @lines = <FIN>;
473
	my @lines = <FIN>;
404
	close(FIN);
474
	close(FIN);
405
	print FOUT @lines;
475
	print $fhtml @lines;
406
	open(FIN, "multimedia.html.intro");
476
	open(FIN, "multimedia.html.intro");
407
	@lines = <FIN>;
477
	@lines = <FIN>;
408
	close(FIN);
478
	close(FIN);
409
	print FOUT @lines;
479
	print $fhtml @lines;
410
	print FOUT "<h2 id=\"latest\">Tag: $tag</h2>\n";
480
	print $fhtml "<h2 id=\"latest\">Tag: $tag</h2>\n";
411
	print FOUT "<ul>\n";
481
	print $fhtml "<ul>\n";
482
483
	open(FIN, "multimedia.sgml.pre");
484
	@lines = <FIN>;
485
	close(FIN);
486
	print $fsgml @lines;
487
	open(FIN, "multimedia.sgml.intro");
488
	@lines = <FIN>;
489
	close(FIN);
490
	print $fsgml @lines;
491
	print $fsgml "<h2 id=\"latest\">Tag: $tag</h2>\n";
492
	print $fsgml "<ul>\n";
412
493
413
	foreach my $item (@items) {
494
	foreach my $item (@items) {
414
	    my %item = %{$item};
495
	    my %item = %{$item};
Lines 435-450 Link Here
435
		}
516
		}
436
	    }
517
	    }
437
518
438
	    print_htmlitem(\%item, \%source) if ($found);
519
	    print_htmlitem($fhtml, \%item, \%source) if ($found);
520
	    print_htmlitem($fsgml, \%item, \%source) if ($found);
439
521
440
	}
522
	}
441
523
442
	print FOUT "</ul>\n";
524
	print $fhtml "</ul>\n";
443
	open(FIN, "multimedia.html.post");
525
	open(FIN, "multimedia.html.post");
444
	@lines = <FIN>;
526
	@lines = <FIN>;
445
	close(FIN);
527
	close(FIN);
446
	print FOUT @lines;
528
	print $fhtml @lines;
447
	close(FOUT);
529
	close($fhtml);
530
531
	print $fsgml "</ul>\n";
532
	open(FIN, "multimedia.sgml.post");
533
	@lines = <FIN>;
534
	close(FIN);
535
	print $fsgml @lines;
536
	close($fsgml);
537
448
    }
538
    }
449
}
539
}
450
540
Lines 452-469 Link Here
452
# HTML all-sources output
542
# HTML all-sources output
453
#
543
#
454
{
544
{
455
    $createdfiles[$#createdfiles+1] = "multimedia-sources.html";
545
    my $fhtml = new IO::File;
456
    open(FOUT, ">multimedia-sources.html");
546
    my $fsgml = new IO::File;
547
548
    $createdhtml[$#createdhtml+1] = "sources.html";
549
    $createdsgml[$#createdsgml+1] = "sources.sgml";
550
    open($fhtml, ">sources.html");
551
    open($fsgml, ">sources.sgml");
552
457
    open(FIN, "multimedia.html.pre");
553
    open(FIN, "multimedia.html.pre");
458
    my @lines = <FIN>;
554
    my @lines = <FIN>;
459
    close(FIN);
555
    close(FIN);
460
    print FOUT @lines;
556
    print $fhtml @lines;
461
    open(FIN, "multimedia.html.intro");
557
    open(FIN, "multimedia.html.intro");
462
    @lines = <FIN>;
558
    @lines = <FIN>;
463
    close(FIN);
559
    close(FIN);
464
    print FOUT @lines;
560
    print $fhtml @lines;
465
    print FOUT "<h2 id=\"latest\">Sources</h2>\n";
561
    print $fhtml "<h2 id=\"latest\">Sources</h2>\n";
466
    print FOUT "<ul>\n";
562
    print $fhtml "<ul>\n";
563
564
    open(FIN, "multimedia.sgml.pre");
565
    @lines = <FIN>;
566
    close(FIN);
567
    print $fsgml @lines;
568
    open(FIN, "multimedia.sgml.intro");
569
    @lines = <FIN>;
570
    close(FIN);
571
    print $fsgml @lines;
572
    print $fsgml "<h2 id=\"latest\">Sources</h2>\n";
573
    print $fsgml "<ul>\n";
467
574
468
    my $lastsource = "";
575
    my $lastsource = "";
469
    foreach my $item (@site_order) {
576
    foreach my $item (@site_order) {
Lines 471-491 Link Here
471
	next if ($lastsource eq $item{source});
578
	next if ($lastsource eq $item{source});
472
	$lastsource = $item{source};
579
	$lastsource = $item{source};
473
580
474
	print FOUT "<li><a href=\"multimedia-source-$lastsource.html\">", $sources{$item{source}}{name}, "</a>\n";
581
	print $fhtml "<li><a href=\"source-$lastsource.html\">", $sources{$item{source}}{name}, "</a>\n";
582
	print $fsgml "<li><a href=\"source-$lastsource.html\">", $sources{$item{source}}{name}, "</a>\n";
475
    }
583
    }
476
584
477
    print FOUT "</ul>\n";
585
    print $fhtml "</ul>\n";
478
    open(FIN, "multimedia.html.post");
586
    open(FIN, "multimedia.html.post");
479
    @lines = <FIN>;
587
    @lines = <FIN>;
480
    close(FIN);
588
    close(FIN);
481
    print FOUT @lines;
589
    print $fhtml @lines;
482
    close(FOUT);
590
    close($fhtml);
591
592
    print $fsgml "</ul>\n";
593
    open(FIN, "multimedia.sgml.post");
594
    @lines = <FIN>;
595
    close(FIN);
596
    print $fsgml @lines;
597
    close($fsgml);
598
483
}
599
}
484
600
485
#
601
#
486
# HTML per-source output
602
# HTML per-source output
487
#
603
#
488
{
604
{
605
    my $fhtml = new IO::File;
606
    my $fsgml = new IO::File;
607
489
    my $lastsource = "";
608
    my $lastsource = "";
490
    foreach my $item (@site_order) {
609
    foreach my $item (@site_order) {
491
	my %item = %{$item};
610
	my %item = %{$item};
Lines 493-528 Link Here
493
	if ($lastsource ne $item{source}) {
612
	if ($lastsource ne $item{source}) {
494
613
495
	    if ($lastsource) {
614
	    if ($lastsource) {
496
		print FOUT "</ul>\n";
615
		print $fhtml "</ul>\n";
616
		print $fsgml "</ul>\n";
617
497
		open(FIN, "multimedia.html.post");
618
		open(FIN, "multimedia.html.post");
498
		my @lines = <FIN>;
619
		my @lines = <FIN>;
499
		close(FIN);
620
		close(FIN);
500
		print FOUT @lines;
621
		print $fhtml @lines;
501
		close(FOUT);
622
		close($fhtml);
623
624
		open(FIN, "multimedia.sgml.post");
625
		@lines = <FIN>;
626
		close(FIN);
627
		print $fsgml @lines;
628
		close($fsgml);
629
502
	    }
630
	    }
503
	    $createdfiles[$#createdfiles+1] = "multimedia-source-$item{source}.html";
631
	    $createdhtml[$#createdhtml+1] = "source-$item{source}.html";
504
	    open(FOUT, ">multimedia-source-$item{source}.html");
632
	    $createdsgml[$#createdsgml+1] = "source-$item{source}.sgml";
633
	    open($fhtml, ">source-$item{source}.html");
634
	    open($fsgml, ">source-$item{source}.sgml");
635
505
	    open(FIN, "multimedia.html.pre");
636
	    open(FIN, "multimedia.html.pre");
506
	    my @lines = <FIN>;
637
	    my @lines = <FIN>;
507
	    close(FIN);
638
	    close(FIN);
508
	    print FOUT @lines;
639
	    print $fhtml @lines;
509
	    open(FIN, "multimedia.html.intro");
640
	    open(FIN, "multimedia.html.intro");
510
	    @lines = <FIN>;
641
	    @lines = <FIN>;
511
	    close(FIN);
642
	    close(FIN);
512
	    print FOUT @lines;
643
	    print $fhtml @lines;
644
645
	    open(FIN, "multimedia.sgml.pre");
646
	    @lines = <FIN>;
647
	    close(FIN);
648
	    print $fsgml @lines;
649
	    open(FIN, "multimedia.sgml.intro");
650
	    @lines = <FIN>;
651
	    close(FIN);
652
	    print $fsgml @lines;
653
513
	    $lastsource = $item{source};
654
	    $lastsource = $item{source};
514
	    print FOUT "<h2 id=\"latest\">$source{name}</h2>\n";
655
	    print $fhtml "<h2 id=\"latest\">$source{name}</h2>\n<ul>\n";
515
	    print FOUT "<ul>\n";
656
	    print $fsgml "<h2 id=\"latest\">$source{name}</h2>\n<ul>\n";
516
	}
657
	}
517
	print_htmlitem(\%item, \%source);
658
	print_htmlitem($fhtml, \%item, \%source);
659
	print_htmlitem($fsgml, \%item, \%source);
518
660
519
    }
661
    }
520
    print FOUT "</ul>\n";
662
    print $fhtml "</ul>\n";
663
    print $fsgml "</ul>\n";
664
521
    open(FIN, "multimedia.html.post");
665
    open(FIN, "multimedia.html.post");
522
    my @lines = <FIN>;
666
    my @lines = <FIN>;
523
    close(FIN);
667
    close(FIN);
524
    print FOUT @lines;
668
    print $fhtml @lines;
525
    close(FOUT);
669
    close($fhtml);
670
671
    open(FIN, "multimedia.sgml.post");
672
    @lines = <FIN>;
673
    close(FIN);
674
    print $fsgml @lines;
675
    close($fsgml);
526
}
676
}
527
677
528
#
678
#
Lines 579-592 Link Here
579
	print FOUT "<pubDate>$date</pubDate>\n";
729
	print FOUT "<pubDate>$date</pubDate>\n";
580
	print FOUT "<enclosure url=\"", htmlentities($file{url}), "\" length=\"1\" type=\"application/octet-stream\" />\n";
730
	print FOUT "<enclosure url=\"", htmlentities($file{url}), "\" length=\"1\" type=\"application/octet-stream\" />\n";
581
	print FOUT "<description>";
731
	print FOUT "<description>";
582
	print FOUT htmlentities("$item{title}<br>From: $source{name}<br>");
732
	print FOUT htmlentities("$item{title}<br/>From: $source{name}<br/>");
583
	print FOUT htmlentities("Tags: $tags<br>\n");
733
	print FOUT htmlentities("Tags: $tags<br/>\n");
584
	print FOUT htmlentities("$item{desc}");
734
	print FOUT htmlentities("$item{desc}");
585
	print FOUT "</description>\n";
735
	print FOUT "</description>\n";
586
	print FOUT "</item>\n";
736
	print FOUT "</item>\n";
587
    }
737
    }
588
738
589
    $createdfiles[$#createdfiles+1] = "multimedia.xml";
739
    $createdxml[$#createdxml+1] = "multimedia.xml";
590
    open(FOUT, ">multimedia.xml");
740
    open(FOUT, ">multimedia.xml");
591
741
592
    my @s = stat("multimedia-input.xml");
742
    my @s = stat("multimedia-input.xml");
Lines 624-631 Link Here
624
# Created files
774
# Created files
625
#
775
#
626
{
776
{
627
    open(FOUT, ">multimedia.created");
777
    open(FOUT, ">multimedia.html.created");
628
    foreach my $f (@createdfiles) {
778
    foreach my $f (@createdhtml) {
779
	print FOUT "$f\n";
780
    }
781
    close(FOUT);
782
783
    open(FOUT, ">multimedia.sgml.created");
784
    foreach my $f (@createdsgml) {
629
	print FOUT "$f\n";
785
	print FOUT "$f\n";
630
    }
786
    }
631
    close(FOUT);
787
    close(FOUT);
(-)multimedia.sgml.intro (+24 lines)
Added Link Here
1
<h1>FreeBSD Multimedia Resources List</h1>
2
<p>
3
Links on this page refer to multimedia resources (podcast, vodcast,
4
audio recordings, video recordings, photos) related to FreeBSD or
5
of interest for FreeBSD users.
6
</p>
7
8
<p>
9
This list is available as <a href="multimedia.html">chronological
10
overview</a>, as a <a href="tags.html">tag cloud</a> and
11
via <a href="sources.html">the sources</a>.
12
</p>
13
14
<p>
15
This list is also available as RSS feed <a href="multimedia.xml"><img
16
src="http://www.freebsd.org/layout/images/ico_rss.png" alt="RSS Feed"></a>
17
</p>
18
19
<p>
20
If you know any resources not listed here, or notice any dead links,
21
please send details to
22
<a href="mailto:edwin\@FreeBSD.org">Edwin Groothuis</a> so that
23
it can be included or updated.
24
</p>
(-)multimedia.sgml.post (+4 lines)
Added Link Here
1
    &footer;
2
  </body>
3
</html>
4
(-)multimedia.sgml.pre (+8 lines)
Added Link Here
1
<!DOCTYPE HTML PUBLIC "-//FreeBSD//DTD HTML 4.01 Transitional-Based Extension//EN" [
2
<!ENTITY date "$FreeBSD$">
3
<!ENTITY title "FreeBSD Multimedia">
4
<!ENTITY % navinclude.about "INCLUDE">
5
<!ENTITY base "..">
6
]>
7
<html>
8
    &header;

Return to bug 124447