Bring the multimedia chapter towards .sgml
PR: 124447 Submitted by: edwin
This commit is contained in:
parent
df9daf88fc
commit
3fc4db31d3
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/www/; revision=32192
3 changed files with 425 additions and 265 deletions
|
@ -1,4 +1,4 @@
|
|||
# $FreeBSD: www/en/multimedia/Makefile,v 1.1 2007/05/15 21:30:41 keramida Exp $
|
||||
# $FreeBSD: www/en/multimedia/Makefile,v 1.2 2007/05/15 21:53:43 keramida Exp $
|
||||
|
||||
.if exists(../Makefile.conf)
|
||||
.include "../Makefile.conf"
|
||||
|
@ -10,30 +10,30 @@
|
|||
.include "Makefile.inc"
|
||||
.endif
|
||||
|
||||
INDEXLINK= multimedia.html
|
||||
#all: build
|
||||
all: build
|
||||
cd output && make all DIRPRFX=multimedia/output/
|
||||
|
||||
FXML = multimedia-input.xml
|
||||
FHTML = \
|
||||
multimedia.html.intro \
|
||||
multimedia.html.pre \
|
||||
multimedia.html.post
|
||||
FLIST = multimedia.created
|
||||
FSCRIPT = multimedia.pl
|
||||
install:
|
||||
cd output && make install DIRPRFX=multimedia/output/
|
||||
|
||||
.if exists(${FLIST})
|
||||
DATA!= cat ${FLIST}
|
||||
.else
|
||||
DATA= ${INDEXLINK}
|
||||
.endif
|
||||
|
||||
all: ${FLIST}
|
||||
TEMPLATES= multimedia.sgml.intro \
|
||||
multimedia.sgml.post \
|
||||
multimedia.sgml.pre \
|
||||
multimedia.html.intro \
|
||||
multimedia.html.post \
|
||||
multimedia.html.pre \
|
||||
multimedia-input.xml
|
||||
|
||||
clean:
|
||||
if test -f ${FLIST} ; then \
|
||||
xargs ${RM} < ${FLIST} && ${RM} ${FLIST} ; \
|
||||
fi
|
||||
-${RM} output/*
|
||||
|
||||
${FLIST}: ${FSCRIPT} ${FXML} ${FHTML}
|
||||
perl -Tw ${FSCRIPT}
|
||||
build:
|
||||
(test -d output || ${MKDIR} output ) && \
|
||||
cd output && \
|
||||
${LN} -fs ../Makefile.output Makefile && \
|
||||
( for f in ${TEMPLATES}; do ${LN} -fs ../$$f $$f; done ) && \
|
||||
${PERL} -Tw ../multimedia.pl && \
|
||||
${RM} -f *.html
|
||||
|
||||
.include "${WEB_PREFIX}/share/mk/web.site.mk"
|
||||
|
|
|
@ -317,12 +317,12 @@
|
|||
Certification.
|
||||
</p><p>
|
||||
See the following links for more information:
|
||||
<ul>
|
||||
<li>https://register.bsdcertification.org/register/get-a-bsdcg-id
|
||||
<li>http://reedmedia.net/books/freebsd-basics
|
||||
<li>http://www.osbr.ca
|
||||
</ul>
|
||||
</p>
|
||||
<ul>
|
||||
<li>https://register.bsdcertification.org/register/get-a-bsdcg-id</li>
|
||||
<li>http://reedmedia.net/books/freebsd-basics</li>
|
||||
<li>http://www.osbr.ca</li>
|
||||
</ul>
|
||||
]]></desc>
|
||||
<overview>http://bsdtalk.blogspot.com/2008/01/bsdtalk139-dru-lavigne.html</overview>
|
||||
<tags>bsdtalk,interview,dru lavigne,the best of freebsd basics</tags>
|
||||
|
@ -347,17 +347,19 @@
|
|||
<item source="bsdtalk" added="20080125">
|
||||
<title>Central Syslog</title>
|
||||
<desc><![CDATA[
|
||||
<p>
|
||||
Setting up a central syslog server.
|
||||
</p>
|
||||
<ul>
|
||||
<li>If you are concerned about the security of your logs, use a dedicated machine and lock it down.
|
||||
<li>Keep clocks in sync.
|
||||
<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>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>Make sure host firewall allows syslog traffic through.
|
||||
<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>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>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>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>If you are concerned about the security of your logs, use a dedicated machine and lock it down.</li>
|
||||
<li>Keep clocks in sync.</li>
|
||||
<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>
|
||||
<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>
|
||||
<li>Make sure host firewall allows syslog traffic through.</li>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
</ul>
|
||||
]]></desc>
|
||||
<overview>http://bsdtalk.blogspot.com/2008/01/bsdtalk138-central-syslog.html</overview>
|
||||
|
@ -646,18 +648,20 @@
|
|||
<item source="bsdtalk" added="20070901">
|
||||
<title>Why I like the CLI</title>
|
||||
<desc><![CDATA[
|
||||
<p>
|
||||
Why I like the CLI:
|
||||
</p>
|
||||
<ul>
|
||||
<li>Uses minimal resources. Less space, less memory, fewer dependencies.
|
||||
<li>Transparency. GUI hides internals, limits options.
|
||||
<li>Similar between Unix-like systems. GUI tools seem to change every week.
|
||||
<li>Remote management. SSH rocks.
|
||||
<li>Everything is text. Configs, devices, output. CLI is natural complement.
|
||||
<li>Pipes and scripts. One time is hard, a thousand times is easy.
|
||||
<li>Only need a few tools. Grep, sed, awk, vi, cron.
|
||||
<li>Text config files. Easy to version, share, and comment.
|
||||
<li>Requires reading skills instead of clicking skills.
|
||||
<li>Much faster when you know what you are doing.
|
||||
<li>Uses minimal resources. Less space, less memory, fewer dependencies.</li>
|
||||
<li>Transparency. GUI hides internals, limits options.</li>
|
||||
<li>Similar between Unix-like systems. GUI tools seem to change every week.</li>
|
||||
<li>Remote management. SSH rocks.</li>
|
||||
<li>Everything is text. Configs, devices, output. CLI is natural complement.</li>
|
||||
<li>Pipes and scripts. One time is hard, a thousand times is easy.</li>
|
||||
<li>Only need a few tools. Grep, sed, awk, vi, cron.</li>
|
||||
<li>Text config files. Easy to version, share, and comment.</li>
|
||||
<li>Requires reading skills instead of clicking skills.</li>
|
||||
<li>Much faster when you know what you are doing.</li>
|
||||
</ul>
|
||||
]]></desc>
|
||||
<overview>http://bsdtalk.blogspot.com/2007/08/bsdtalk127-why-i-like-cli.html</overview>
|
||||
|
@ -917,22 +921,22 @@
|
|||
<title>One Time Passwords</title>
|
||||
<desc><![CDATA[
|
||||
<ul>
|
||||
<li> Important when you don't trust the computer you are using, such as a library computer or internet kiosk.
|
||||
<li> Available by default in Free/Net/Open BSD.
|
||||
<li> FreeBSD uses OPIE, Net/Open use S/Key.
|
||||
<li> One time passwords are based on your pass phrase, a non-repeating sequence number, and a seed.
|
||||
<li> Initial setup should be done directly on the server.
|
||||
<li> "skeyinit" for Net/Open, "opiepasswd -c" for FreeBSD.
|
||||
<li> Enter a pass phrase that is not your regular account password.
|
||||
<li> Find your current sequence number and seed with "opieinfo" or "skeyinfo", for example: "497 pc5246".
|
||||
<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> 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> For OpenBSD, log in as account:skey, for example "bob:skey", which will cause the system to present the s/key challenge.
|
||||
<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> FreeBSD by default will force you to use a one time password if it is configured for your account.
|
||||
<li> If you want both OPIE and password authentication, FreeBSD allows you to list trusted networks or hosts in /etc/opieaccess.
|
||||
<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> For more info, check the man pages.
|
||||
<li> Important when you don't trust the computer you are using, such as a library computer or internet kiosk.</li>
|
||||
<li> Available by default in Free/Net/Open BSD.</li>
|
||||
<li> FreeBSD uses OPIE, Net/Open use S/Key.</li>
|
||||
<li> One time passwords are based on your pass phrase, a non-repeating sequence number, and a seed.</li>
|
||||
<li> Initial setup should be done directly on the server.</li>
|
||||
<li> "skeyinit" for Net/Open, "opiepasswd -c" for FreeBSD.</li>
|
||||
<li> Enter a pass phrase that is not your regular account password.</li>
|
||||
<li> Find your current sequence number and seed with "opieinfo" or "skeyinfo", for example: "497 pc5246".</li>
|
||||
<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>
|
||||
<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>
|
||||
<li> For OpenBSD, log in as account:skey, for example "bob:skey", which will cause the system to present the s/key challenge.</li>
|
||||
<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>
|
||||
<li> FreeBSD by default will force you to use a one time password if it is configured for your account.</li>
|
||||
<li> If you want both OPIE and password authentication, FreeBSD allows you to list trusted networks or hosts in /etc/opieaccess.</li>
|
||||
<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>
|
||||
<li> For more info, check the man pages.</li>
|
||||
</ul>
|
||||
]]></desc>
|
||||
<overview>http://bsdtalk.blogspot.com/2007/06/bsdtalk117-one-time-passwords.html</overview>
|
||||
|
@ -1279,20 +1283,19 @@
|
|||
<title>Getting to know X</title>
|
||||
<desc><![CDATA[
|
||||
<p>
|
||||
Getting to know the X Window System.<br>
|
||||
Getting to know the X Window System.<br />
|
||||
Make sure you are in a text only mode. You might
|
||||
need to change how the system boots, or boot into
|
||||
single user mode.
|
||||
</p><p>
|
||||
<ul>
|
||||
<li>"startx" to make sure X is working right.
|
||||
<li>"X" by itself gives the basic grey screen.
|
||||
<li>"ctrl" and "alt" and "backspace" keys at the same time will zap X.
|
||||
<li>"X & xterm -display :0"
|
||||
<li>"xterm -geometry +300+300"
|
||||
<li>"twm" or "metacity"
|
||||
</ul>
|
||||
</p>
|
||||
<ul>
|
||||
<li>"startx" to make sure X is working right.</li>
|
||||
<li>"X" by itself gives the basic grey screen.</li>
|
||||
<li>"ctrl" and "alt" and "backspace" keys at the same time will zap X.</li>
|
||||
<li>"X & xterm -display :0"</li>
|
||||
<li>"xterm -geometry +300+300"</li>
|
||||
<li>"twm" or "metacity"</li>
|
||||
</ul>
|
||||
]]></desc>
|
||||
<overview>http://bsdtalk.blogspot.com/2007/03/bsdtalk104-getting-to-know-x.html</overview>
|
||||
<tags>bsdtalk,X</tags>
|
||||
|
@ -3202,7 +3205,7 @@
|
|||
UKUUG LISA 2006 took place in Durham, UK in March,
|
||||
2006. On this page, you can find my slides from
|
||||
this conference.
|
||||
<br>
|
||||
<br />
|
||||
OpenBSM is a BSD-licensed implementation of Sun's
|
||||
Basic Security Module (BSM) API and file format,
|
||||
and is the foundation of the TrustedBSD audit
|
||||
|
@ -3235,12 +3238,12 @@
|
|||
spanning the BSD's. On this page, you can find my
|
||||
slides from the FreeBSD developer summit and full
|
||||
conference.
|
||||
<br>
|
||||
<br />
|
||||
Status report on the TrustedBSD Project: introduction
|
||||
and status regarding Audit, plus a TODO list;
|
||||
introduction to the priv(9) work recently merged
|
||||
to 7.x.
|
||||
<br>
|
||||
<br />
|
||||
The FreeBSD Project is one of the oldest and most
|
||||
successful open source operating system projects,
|
||||
seeing wide deployment across the IT industry. From
|
||||
|
@ -3332,7 +3335,7 @@
|
|||
to attend the conference itself, and my talks were
|
||||
presented in absentia by Poul-Henning Kamp and Ed
|
||||
Maste, who have my greatest appreciation!
|
||||
<br>
|
||||
<br />
|
||||
The FreeBSD SMPng Project has spent the past five
|
||||
years redesigning and reimplementing SMP support
|
||||
for the FreeBSD operating system, moving from a
|
||||
|
@ -3364,7 +3367,7 @@
|
|||
BSDCan 2004 took place at the University of Ottawa
|
||||
in Ottawa, Canada. On this page, you can find my
|
||||
slides from the conference.
|
||||
<br>
|
||||
<br />
|
||||
Robert Watson will describe a variety of pieces of
|
||||
work done as part of the TrustedBSD Project, including
|
||||
the TrustedBSD MAC Framework, Audit facilities for
|
||||
|
@ -3781,7 +3784,7 @@
|
|||
as an IPv6 router and tunneling system will also
|
||||
be covered.
|
||||
</p><p>
|
||||
<b>Bio</b><br>
|
||||
<b>Bio</b><br />
|
||||
Gene Cronk, CISSP-ISSAP, NSA-IAM is a freelance
|
||||
network security consultant, specializing in *NIX
|
||||
solutions. He has been working with computers for
|
||||
|
@ -3862,19 +3865,19 @@
|
|||
beat the price.
|
||||
</p><p>
|
||||
We plan on covering the following topics:
|
||||
<ul>
|
||||
<li>what it is
|
||||
<li>how it works
|
||||
<li>where to get it
|
||||
<li>how to install it
|
||||
<li>how to configure it
|
||||
<li>how to customize it for your environment
|
||||
<li>where the data is stored
|
||||
<li>how to write a basic plug-in
|
||||
</ul>
|
||||
</p>
|
||||
<ul>
|
||||
<li>what it is</li>
|
||||
<li>how it works</li>
|
||||
<li>where to get it</li>
|
||||
<li>how to install it</li>
|
||||
<li>how to configure it</li>
|
||||
<li>how to customize it for your environment</li>
|
||||
<li>where the data is stored</li>
|
||||
<li>how to write a basic plug-in</li>
|
||||
</ul>
|
||||
<p>
|
||||
<b>About the Speaker</b><br>
|
||||
<b>About the Speaker</b><br />
|
||||
Marc Spitzer started as a VAX/VMS operator who
|
||||
taught himself some basic scripting in DCL to help
|
||||
me remember how to do procedures that did not come
|
||||
|
@ -3941,7 +3944,7 @@
|
|||
surprisingly useful (and fun)- for developers,
|
||||
sysadmins, and anyone working with BSD systems.
|
||||
</p><p>
|
||||
About the speaker<br>
|
||||
About the speaker<br />
|
||||
Isaac Levy, (ike) is a freelance BSD hadker based
|
||||
in NYC. He runs Diversaform Inc. as an engine to
|
||||
make his hacking feed itself, (and ike). Diversaform
|
||||
|
@ -3984,7 +3987,7 @@
|
|||
of such attacks on servers designed to provide
|
||||
network intensive services such as HTTP or routing.
|
||||
</p><p>
|
||||
About the speaker<br>
|
||||
About the speaker<br />
|
||||
Steven Kreuzer is currently employed by Right Media
|
||||
as a Systems Administrator focusing on building and
|
||||
managing high transaction infrastructures around
|
||||
|
@ -4102,7 +4105,7 @@
|
|||
the global policy. Our goal is a coherent,
|
||||
enterprise-wide response to any network threat.
|
||||
</p><p>
|
||||
<b>Biography</b><br>
|
||||
<b>Biography</b><br />
|
||||
Matthew Burnside is a Ph.D. student in the Computer
|
||||
Science department at Columbia University, in New
|
||||
York. He works for Professor Angelos Keromytis in
|
||||
|
@ -4188,9 +4191,9 @@
|
|||
<title>New York City BSD Con 2006: BSD is Dying - A Cautionary Tale of Sex and Greed</title>
|
||||
<desc><![CDATA[
|
||||
<p>
|
||||
<b>BSD is Dying</b><br>
|
||||
<b>A Cautionary Tale of Sex and Greed</b><br>
|
||||
<b>Jason Dixon</b><br>
|
||||
<b>BSD is Dying</b><br />
|
||||
<b>A Cautionary Tale of Sex and Greed</b><br />
|
||||
<b>Jason Dixon</b><br />
|
||||
<b>October 28, 2006</b>
|
||||
</p><p>
|
||||
First and foremost, I would like to thank the unique
|
||||
|
@ -4333,23 +4336,23 @@
|
|||
understandable by everyone, (even techs without
|
||||
UNIX knowledge), and the gear is cheap - this saves
|
||||
time and money.
|
||||
<br>
|
||||
<br />
|
||||
In the meantime, the features of your average Linksys
|
||||
or Netgear router often leave MUCH to be desired,
|
||||
(https auth management, for one simple example).
|
||||
<br>
|
||||
<br />
|
||||
Enter m0n0wall and PFSense, 2 BSD based packaged
|
||||
router/firewall solutions that are as solid and
|
||||
full featured as you`d expect from any BSD system-
|
||||
PLUS THEY HAVE HTML WEB INTERFACES FOR MANAGEMENT!
|
||||
<br>
|
||||
<br />
|
||||
m0n0wall and PFSense become an easy sell in any
|
||||
small professional enviornment, any competent tech
|
||||
can manage the network within minutes... At home,
|
||||
in every hackers home network, they free the hacker
|
||||
to have trusted tools available, but are as time-saving
|
||||
as using any Linksys router.
|
||||
<br>
|
||||
<br />
|
||||
m0n0wall and PFSense are both light and clean,
|
||||
designed to run on embedded systems- (Soekris,
|
||||
WRAP), but are monsters when unleashed on even
|
||||
|
@ -4358,7 +4361,7 @@
|
|||
to manage the router for your DSL when you get home?
|
||||
But then doesn`t it bug you to use a chincey Linksys
|
||||
box?
|
||||
<br>
|
||||
<br />
|
||||
Ike has been a member of NYC*BUG since we first
|
||||
launched in January 2004. He is a long-time member
|
||||
of the Lower East Side Mac Unix User Group. He has
|
||||
|
@ -4384,7 +4387,7 @@
|
|||
millions of messages to OKCupid`s subscribers.
|
||||
Topics covered will be system tuning and sendmail
|
||||
hacks used in house to achieve massive throughput.
|
||||
<br>
|
||||
<br />
|
||||
Alfred Perlstein is the CTO of OKcupid.com, the
|
||||
largest free online dating site. He has been a
|
||||
FreeBSD hacker for five years, he`s worked on NFS,
|
||||
|
@ -4458,14 +4461,14 @@
|
|||
<title>Episode 06 of "FreeBSD for all" uploaded</title>
|
||||
<desc><![CDATA[
|
||||
<p>
|
||||
This week we talk about-
|
||||
<ul>
|
||||
<li>Macromedia plugin
|
||||
<li>FreeBSD-Linux differences part 2
|
||||
<li>John Baldwin Introduction
|
||||
<li>Podcast anouncement - call for co-hosts!
|
||||
</ul>
|
||||
This week we talk about
|
||||
</p>
|
||||
<ul>
|
||||
<li>Macromedia plugin</li>
|
||||
<li>FreeBSD-Linux differences part 2</li>
|
||||
<li>John Baldwin Introduction</li>
|
||||
<li>Podcast anouncement - call for co-hosts!</li>
|
||||
</ul>
|
||||
]]></desc>
|
||||
<overview>http://freebsdforall.blogspot.com/2006/06/episode-06.html</overview>
|
||||
<tags>freebsd for all,talk,john baldwin,freebsd vs linux</tags>
|
||||
|
@ -4497,10 +4500,10 @@
|
|||
<desc><![CDATA[
|
||||
<b>Our Topic:</b>
|
||||
FreeBSD's ACPI implementation: The details.
|
||||
<br>
|
||||
<br />
|
||||
<b>Our Speaker:</b>
|
||||
Nate Lawson, FreeBSD Committer.
|
||||
<br>
|
||||
<br />
|
||||
<b>Our Topic:</b>
|
||||
FreeBSD's ACPI implementation is based on code for ACPI released
|
||||
by Intel. Nate and others wrote the glue code to make this code
|
||||
|
@ -4521,12 +4524,12 @@
|
|||
<desc><![CDATA[
|
||||
<b>Our Topic:</b>
|
||||
Network Protocol Development Tools and Techniques for FreeBSD
|
||||
<br>
|
||||
<br />
|
||||
<b>Our Speaker:</b>
|
||||
George Neville-Neil, co-author of the "Design and
|
||||
Implementation of the FreeBSD Operating System"
|
||||
"daemon" book.
|
||||
<br>
|
||||
<br />
|
||||
<b>Our Topic:</b>
|
||||
While computers have gotten faster and more powerful
|
||||
the tools we use to develop network protocols, such
|
||||
|
@ -4538,10 +4541,10 @@
|
|||
developing a library for use in protocol testing.
|
||||
This talk will cover three topics:
|
||||
<ol>
|
||||
<li>Developing and testing kernel code with Virtual Machines
|
||||
<li>Finding good tests for networking code
|
||||
<li>Developing and testing kernel code with Virtual Machines</li>
|
||||
<li>Finding good tests for networking code</li>
|
||||
<li>Packet Construction Set (PCS) a new library for
|
||||
writing protocol tests
|
||||
writing protocol tests</li>
|
||||
</ol>
|
||||
]]></desc>
|
||||
<tags>bafug,presentation,freebsd,packet construction set,george neville-neil</tags>
|
||||
|
@ -4960,7 +4963,7 @@
|
|||
<tags>slides</tags>
|
||||
</file>
|
||||
<file>
|
||||
<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>
|
||||
<url><![CDATA[http://vp.video.google.com/videodownload?version=0&secureurl=uAAAANDveMbSROZ54T6ovHpX7U46rpfxARh9qN1NEemo6WM7qeDBk-8GxxtGIXTqDRuaHnUUJVcUs0bf539CXM4fqBp6xeb9INr7CRp9JPcKZeT9UsSqDsvdYZhiN7xnPzju7rN379RkfS47rjI8TnCJ1iQdrEqhd8Okw_KJcO7O3Iq00GUYYZaedmq5jrmy1ezFXGAG6KURgb8RV19cCaui1U0zVEKd2ApjzlxRHSi89QBih_VSyFE64p3haNyy76qCVQ&sigh=GK-OoKkmqQWNalgoUzB4HmzA3EI&begin=0&len=3967520&amp;docid=-2979502732836620391]]></url>
|
||||
<length>1:06:07</length>
|
||||
<desc>Google Video</desc>
|
||||
<tags>mp4</tags>
|
||||
|
@ -5065,13 +5068,13 @@
|
|||
</p>
|
||||
]]></desc>
|
||||
<overview><![CDATA[
|
||||
http://video.google.com/videoplay?docid=-4400856579609253323&total=1&start=0&num=10&so=1&type=search&plindex=0
|
||||
http://video.google.com/videoplay?docid=-4400856579609253323&total=1&start=0&num=10&so=1&type=search&plindex=0
|
||||
]]></overview>
|
||||
<tags>google,presentation,freebsd,freebsd project,robert watson</tags>
|
||||
<files>
|
||||
<file>
|
||||
<url><![CDATA[
|
||||
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
|
||||
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
|
||||
]]></url>
|
||||
<size>321 Mb</size>
|
||||
<length>51 minutes</length>
|
||||
|
@ -5728,7 +5731,7 @@
|
|||
category in the FreeBSD ports tree</a> and has
|
||||
become the maintainer of over 20 of the hamradio
|
||||
ports. She also contributed to the <a
|
||||
href="http://www.hamsexy.com/wiki/index.php?title=FreeBSD&redirect=no">FreeBSD
|
||||
href="http://www.hamsexy.com/wiki/index.php?title=FreeBSD&redirect=no">FreeBSD
|
||||
entry at Hampedia</a>, the Wikipedia for ham
|
||||
operators.
|
||||
</p><p>
|
||||
|
@ -6057,7 +6060,7 @@
|
|||
<tags>bsdcan,bsdcan2008,devsummit,devsummit2008,freebsd,embedded,rafal jaworowski</tags>
|
||||
<files>
|
||||
<file>
|
||||
<url><![CDATA[http://wiki.freebsd.org/200805DevSummit?action=AttachFile&do=get&target=devsummit-200805-embedded_summary.pdf]]></url>
|
||||
<url><![CDATA[http://wiki.freebsd.org/200805DevSummit?action=AttachFile&do=get&target=devsummit-200805-embedded_summary.pdf]]></url>
|
||||
<length>6 pages</length>
|
||||
<size>58 Kb</size>
|
||||
<desc>PDF file</desc>
|
||||
|
@ -6075,7 +6078,7 @@
|
|||
<tags>bsdcan,bsdcan2008,devsummit,devsummit2008,freebsd,smp,robert watson</tags>
|
||||
<files>
|
||||
<file>
|
||||
<url><![CDATA[http://wiki.freebsd.org/200805DevSummit?action=AttachFile&do=get&target=20080515-stack-parallelism.pdf]]></url>
|
||||
<url><![CDATA[http://wiki.freebsd.org/200805DevSummit?action=AttachFile&do=get&target=20080515-stack-parallelism.pdf]]></url>
|
||||
<length>8 pages</length>
|
||||
<size>70 Kb</size>
|
||||
<desc>PDF file</desc>
|
||||
|
@ -6093,7 +6096,7 @@
|
|||
<tags>bsdcan,bsdcan2008,devsummit,devsummit2008,freebsd,portmgr,erwin lansing</tags>
|
||||
<files>
|
||||
<file>
|
||||
<url><![CDATA[http://wiki.freebsd.org/200805DevSummit?action=AttachFile&do=get&target=portmgr-BSDCan2008.pdf]]></url>
|
||||
<url><![CDATA[http://wiki.freebsd.org/200805DevSummit?action=AttachFile&do=get&target=portmgr-BSDCan2008.pdf]]></url>
|
||||
<length>14 pages</length>
|
||||
<size>146 Kb</size>
|
||||
<desc>PDF file</desc>
|
||||
|
@ -6240,20 +6243,22 @@
|
|||
PBI installer for PC-BSD desktops.
|
||||
</p><p>
|
||||
The presentation will be divided into two main sections:
|
||||
<br>
|
||||
<br />
|
||||
The Push Button Installer (PBI) Format
|
||||
<ul>
|
||||
<li>The basics of the PBI format
|
||||
<li>The PBI format construction
|
||||
<li>Add & Remove scripting support within PBI
|
||||
</ul>
|
||||
Building PBIs from Ports "Auto-magically"
|
||||
<ul>
|
||||
<li>The PBI build server & standalone software
|
||||
<li>Module creation & configuration
|
||||
<li>Converting messy ports into PBIs
|
||||
</ul>
|
||||
</p>
|
||||
<ul>
|
||||
<li>The basics of the PBI format</li>
|
||||
<li>The PBI format construction</li>
|
||||
<li>Add & Remove scripting support within PBI</li>
|
||||
</ul>
|
||||
<p>
|
||||
Building PBIs from Ports "Auto-magically"
|
||||
</p>
|
||||
<ul>
|
||||
<li>The PBI build server & standalone software</li>
|
||||
<li>Module creation & configuration</li>
|
||||
<li>Converting messy ports into PBIs</li>
|
||||
</ul>
|
||||
]]></desc>
|
||||
<tags>bsdcan,bsdcan2008,slides,pc-bsd,ports,pbi,kris moore</tags>
|
||||
<files>
|
||||
|
@ -6478,7 +6483,7 @@
|
|||
<i>Beer, prizes, secrets, Works In Progress</i>
|
||||
<p>
|
||||
The traditional closing...
|
||||
<br>
|
||||
<br />
|
||||
with some new and interesting twists. Sleep in if
|
||||
you must, but don't miss this session.
|
||||
</p>
|
||||
|
@ -6637,40 +6642,39 @@
|
|||
cover the in-kernel debugger DDB and the external
|
||||
debugger kgdb which is used to perform post-mortem
|
||||
analysis on kernel crash dumps.
|
||||
</p><p>
|
||||
</p>
|
||||
<h2>Introduction to Debugging the FreeBSD Kernel</h2>
|
||||
<ul>
|
||||
<li>Basic crash messages, what a crash looks like
|
||||
<ul>
|
||||
<li>typical panic() invocation
|
||||
<li>page fault example
|
||||
</ul>
|
||||
<li>typical panic() invocation</li>
|
||||
<li>page fault example</li>
|
||||
</ul></li>
|
||||
<li>"live" debugging with DDB
|
||||
<ul>
|
||||
<li>stack traces
|
||||
<li>ps
|
||||
<li>deadlock examples
|
||||
<li>show lockchain
|
||||
<li>show sleepchain
|
||||
<li>Adding new DDB commands
|
||||
</ul>
|
||||
<li>stack traces</li>
|
||||
<li>ps</li>
|
||||
<li>deadlock examples</li>
|
||||
<li>show lockchain</li>
|
||||
<li>show sleepchain</li>
|
||||
<li>Adding new DDB commands</li>
|
||||
</ul></li>
|
||||
<li>KGDB
|
||||
<ul>
|
||||
<li>inspecting processes and threads
|
||||
<li>working with kernel modules
|
||||
<li>using scripts to extend
|
||||
</ul>
|
||||
<li>inspecting processes and threads</li>
|
||||
<li>working with kernel modules</li>
|
||||
<li>using scripts to extend</li>
|
||||
</ul></li>
|
||||
<li>examining crashdumps using utilities
|
||||
<ul>
|
||||
<li>ps, netstat, etc.
|
||||
</ul>
|
||||
<li>ps, netstat, etc.</li>
|
||||
</ul></li>
|
||||
<li>debugging strategies
|
||||
<ul>
|
||||
<li>kernel crashes
|
||||
<li>system hangs
|
||||
</ul>
|
||||
<li>kernel crashes</li>
|
||||
<li>system hangs</li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
</p>
|
||||
]]></desc>
|
||||
<tags>bsdcan,bsdcan2008,slides,paper,debugging,freebsd,john baldwin</tags>
|
||||
<files>
|
||||
|
@ -6715,18 +6719,18 @@
|
|||
This talk discusses the port of the DTrace facility
|
||||
to FreeBSD and demonstrates examples on a live
|
||||
FreeBSD system.
|
||||
<ul>
|
||||
<li>Introduction to the D language - probes, predicates and actions.
|
||||
<li>dtrace(8) and libdtrace - the userland side of the DTrace story.
|
||||
<li>The DTrace kernel module, it's ioctl interface to userland and the provider infrastructure in the kernel.
|
||||
<li>DTrace kernel hooks and the problem of code licensed under Sun's CDDL.
|
||||
<li>What does a DTrace probe actually do?
|
||||
<li>DTrace safety and how it is implemented.
|
||||
<li>Build system changes to add CTF (Compact C Type Format) data to objects, shared libraries and executables.
|
||||
<li>The DTrace test suite.
|
||||
<li>A brief list of things to do to port the DTrace facility to other BSD-derived operating systems.
|
||||
</ul>
|
||||
</p>
|
||||
<ul>
|
||||
<li>Introduction to the D language - probes, predicates and actions.</li>
|
||||
<li>dtrace(8) and libdtrace - the userland side of the DTrace story.</li>
|
||||
<li>The DTrace kernel module, it's ioctl interface to userland and the provider infrastructure in the kernel.</li>
|
||||
<li>DTrace kernel hooks and the problem of code licensed under Sun's CDDL.</li>
|
||||
<li>What does a DTrace probe actually do?</li>
|
||||
<li>DTrace safety and how it is implemented.</li>
|
||||
<li>Build system changes to add CTF (Compact C Type Format) data to objects, shared libraries and executables.</li>
|
||||
<li>The DTrace test suite.</li>
|
||||
<li>A brief list of things to do to port the DTrace facility to other BSD-derived operating systems.</li>
|
||||
</ul>
|
||||
]]></desc>
|
||||
<tags>bsdcan,bsdcan2008,slides,dtrace,freebsd,john birrell</tags>
|
||||
<files>
|
||||
|
@ -6889,12 +6893,12 @@
|
|||
to the user. Then we will shift gears and discuss
|
||||
the extended socket API that is available to SCTP
|
||||
users and will cover such items as:
|
||||
<ul>
|
||||
<li>The two socket programming models
|
||||
<li>Extended system calls that support the SCTP feature set.
|
||||
<li>What model may fit you best
|
||||
</ul>
|
||||
</p>
|
||||
<ul>
|
||||
<li>The two socket programming models</li>
|
||||
<li>Extended system calls that support the SCTP feature set.</li>
|
||||
<li>What model may fit you best</li>
|
||||
</ul>
|
||||
]]></desc>
|
||||
<tags>bsdcan,bsdcan2008,abstract,freebsd,sctp,randall stewart</tags>
|
||||
<files>
|
||||
|
@ -6957,7 +6961,7 @@
|
|||
<desc><![CDATA[
|
||||
<h1>Opening session</h1>
|
||||
Welcome to BSDCan 2008
|
||||
<br>
|
||||
<br />
|
||||
Traditional greetings
|
||||
]]></desc>
|
||||
<tags>bsdcan,bsdcan2008,slides,dan langille</tags>
|
||||
|
@ -6976,8 +6980,8 @@
|
|||
<title>BSDCan-2007 - Videos</title>
|
||||
<overview>http://people.freebsd.org/~julian/BSDCan-2007/</overview>
|
||||
<desc><![CDATA[
|
||||
The 2007 BSDCan conference<br>
|
||||
Kirk McKusick - Code Reading of Locally-Connected Sockets<br>
|
||||
The 2007 BSDCan conference<br />
|
||||
Kirk McKusick - Code Reading of Locally-Connected Sockets<br />
|
||||
]]></desc>
|
||||
<tags>bsdcan,bsdcan2007,talks,kirk mckusick</tags>
|
||||
<files>
|
||||
|
@ -6995,8 +6999,8 @@
|
|||
<title>BSDCan-2007 - Videos</title>
|
||||
<overview>http://people.freebsd.org/~julian/BSDCan-2007/</overview>
|
||||
<desc><![CDATA[
|
||||
The 2007 BSDCan conference<br>
|
||||
Erwin Lansing - The state of the FreeBSD Ports Tree<br>
|
||||
The 2007 BSDCan conference<br />
|
||||
Erwin Lansing - The state of the FreeBSD Ports Tree<br />
|
||||
]]></desc>
|
||||
<tags>bsdcan,bsdcan2007,talks,erwin lansing,ports</tags>
|
||||
<files>
|
||||
|
@ -7032,8 +7036,8 @@
|
|||
<title>BSDCan-2007 - Videos</title>
|
||||
<overview>http://people.freebsd.org/~julian/BSDCan-2007/</overview>
|
||||
<desc><![CDATA[
|
||||
The 2007 BSDCan conference<br>
|
||||
Kris Kennaway - Scalability Update 2007<br>
|
||||
The 2007 BSDCan conference<br />
|
||||
Kris Kennaway - Scalability Update 2007<br />
|
||||
Progress on FreeBSD SMP performance and scalablity
|
||||
since BSDCan Dev Summit 2006
|
||||
]]></desc>
|
||||
|
@ -7053,7 +7057,7 @@
|
|||
<title>BSDCan-2007 - Videos</title>
|
||||
<overview>http://people.freebsd.org/~julian/BSDCan-2007/</overview>
|
||||
<desc><![CDATA[
|
||||
The 2007 BSDCan conference<br>
|
||||
The 2007 BSDCan conference<br />
|
||||
Qing Li - Routing, ARP and ND6
|
||||
]]></desc>
|
||||
<tags>bsdcan,bsdcan2007,talks,qing li,routing arp and nd6</tags>
|
||||
|
@ -7072,7 +7076,7 @@
|
|||
<title>BSDCan-2007 - Videos</title>
|
||||
<overview>http://people.freebsd.org/~julian/BSDCan-2007/</overview>
|
||||
<desc><![CDATA[
|
||||
The 2007 BSDCan conference<br>
|
||||
The 2007 BSDCan conference<br />
|
||||
Marko Zec explains the vimage architecture
|
||||
]]></desc>
|
||||
<tags>bsdcan,bsdcan2007,talks,marko zec,vimage</tags>
|
||||
|
@ -7091,7 +7095,7 @@
|
|||
<title>BSDCan-2007 - Videos</title>
|
||||
<overview>http://people.freebsd.org/~julian/BSDCan-2007/</overview>
|
||||
<desc><![CDATA[
|
||||
The 2007 BSDCan conference<br>
|
||||
The 2007 BSDCan conference<br />
|
||||
Max Laier - PFIL, firewalls and locking
|
||||
]]></desc>
|
||||
<tags>bsdcan,bsdcan2007,talks,max laier,ipf</tags>
|
||||
|
@ -7202,7 +7206,7 @@
|
|||
<desc><![CDATA[
|
||||
"FreeBSD Portsnap -
|
||||
What (it is), Why (it was written), and How (it works)"
|
||||
by Colin Percival (cperciva@FreeBSD.org)<br>
|
||||
by Colin Percival (cperciva@FreeBSD.org)<br />
|
||||
(Note: use ^L to get back in non-fullscreen mode)
|
||||
]]></desc>
|
||||
<tags>bsdcan,bsdcan2007,pdf,portsnap,freebsd,colin percival</tags>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#!/usr/bin/perl -w
|
||||
|
||||
#
|
||||
# $Id: multimedia.pl,v 1.2 2008-05-30 15:22:01 remko Exp $
|
||||
# $Id: multimedia.pl,v 1.3 2008-06-12 19:02:27 remko Exp $
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
|
@ -9,6 +9,7 @@ use strict;
|
|||
use XML::Parser;
|
||||
use Data::Dumper;
|
||||
use POSIX;
|
||||
use IO::File;
|
||||
|
||||
my @months = (
|
||||
"", "January", "February", "March",
|
||||
|
@ -17,7 +18,9 @@ my @months = (
|
|||
"November", "December"
|
||||
);
|
||||
|
||||
my @createdfiles = ();
|
||||
my @createdhtml = ();
|
||||
my @createdsgml = ();
|
||||
my @createdxml = ();
|
||||
|
||||
my @tree = ();
|
||||
my @values = ();
|
||||
|
@ -28,6 +31,7 @@ my $ci = -1;
|
|||
my %sources;
|
||||
my $sid = "";
|
||||
my %tags;
|
||||
my $tag = "";
|
||||
|
||||
sub addtags {
|
||||
my $tags = shift;
|
||||
|
@ -78,12 +82,23 @@ sub xml_start {
|
|||
&& $treeindex == 5) {
|
||||
$items[$ci]{fc}++;
|
||||
}
|
||||
|
||||
if ($treeindex == 3 &&
|
||||
$element eq "tags") {
|
||||
$tag = "";
|
||||
}
|
||||
}
|
||||
|
||||
sub xml_end {
|
||||
my $expat = shift;
|
||||
my $element = shift;
|
||||
|
||||
if ($treeindex == 3 &&
|
||||
$element eq "tags") {
|
||||
@{$items[$ci]{tags}} = split(/,/, $tag);
|
||||
addtags($tag);
|
||||
}
|
||||
|
||||
$values[$treeindex] = ();
|
||||
$treeindex--;
|
||||
}
|
||||
|
@ -122,8 +137,7 @@ sub xml_char {
|
|||
return;
|
||||
}
|
||||
if ($tree[3] eq "tags") {
|
||||
@{$items[$ci]{tags}} = split(/,/, $value);
|
||||
addtags($value);
|
||||
$tag .= $value;
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -240,92 +254,110 @@ my @date_order = ();
|
|||
# HTML overview output
|
||||
#
|
||||
sub print_htmlitem {
|
||||
my $fhandle = shift;
|
||||
my $item = shift;
|
||||
my %item = %{$item};
|
||||
my $source = shift;
|
||||
my %source = %{$source};
|
||||
|
||||
print FOUT "<li><p>";
|
||||
print $fhandle "<li><p>";
|
||||
if (defined $item{overview}) {
|
||||
print FOUT "<a href=\"$item{overview}\">$item{title}</a>\n";
|
||||
print $fhandle "<a href=\"$item{overview}\">$item{title}</a>\n";
|
||||
} else {
|
||||
my %media = %{$item{files}{0}};
|
||||
print FOUT "<a href=\"$media{url}\">$item{title}</a>\n";
|
||||
print $fhandle "<a href=\"$media{url}\">$item{title}</a>\n";
|
||||
if (defined $media{size} || defined $media{length}) {
|
||||
my $s = "";
|
||||
print FOUT "(";
|
||||
print $fhandle "(";
|
||||
if (defined $media{size}) {
|
||||
print FOUT "$media{size}";
|
||||
print $fhandle "$media{size}";
|
||||
$s = ", ";
|
||||
}
|
||||
if (defined $media{length}) {
|
||||
print FOUT "$s$media{length}";
|
||||
print $fhandle "$s$media{length}";
|
||||
$s = ", ";
|
||||
}
|
||||
print FOUT ")";
|
||||
print $fhandle ")";
|
||||
}
|
||||
}
|
||||
print FOUT "<br>Source: <a href=\"", $source{url}, "\">",
|
||||
print $fhandle "<br>Source: <a href=\"", $source{url}, "\">",
|
||||
$source{name}, "</a><br>\n";
|
||||
print FOUT "Added: ",
|
||||
print $fhandle "Added: ",
|
||||
substr($item{added}, 6, 2), " ",
|
||||
$months[substr($item{added}, 4, 2)], " ",
|
||||
substr($item{added}, 0, 4), "<br>\n";
|
||||
|
||||
print FOUT "Tags: ";
|
||||
print $fhandle "Tags: ";
|
||||
{
|
||||
my $first = 1;
|
||||
foreach my $t (@{$item{tags}}) {
|
||||
print FOUT ", " if (!$first);
|
||||
print $fhandle ", " if (!$first);
|
||||
# join(", ", @{$item{$t}}), "<br>\n";
|
||||
my $th = $t;
|
||||
$th =~ s/ /_/g;
|
||||
print FOUT "<a href=\"multimedia-tag-$th.html\">$t</a>";
|
||||
print $fhandle "<a href=\"tag-$th.html\">$t</a>";
|
||||
$first = 0;
|
||||
}
|
||||
}
|
||||
print FOUT "<br>\n";
|
||||
print $fhandle "<br>\n";
|
||||
|
||||
if (defined $item{overview} && defined $item{files}) {
|
||||
my $c = 0;
|
||||
foreach my $m (keys(%{$item{files}})) {
|
||||
my %file = %{$item{files}{$m}};
|
||||
print FOUT ", " if ($c++);
|
||||
print $fhandle ", " if ($c++);
|
||||
if (defined $item{prefix}) {
|
||||
print FOUT "<a href=\"$item{prefix}/$file{url}\">$file{desc}</a>";
|
||||
print $fhandle "<a href=\"$item{prefix}/$file{url}\">$file{desc}</a>";
|
||||
} else {
|
||||
print FOUT "<a href=\"$file{url}\">$file{desc}</a>";
|
||||
print $fhandle "<a href=\"$file{url}\">$file{desc}</a>";
|
||||
}
|
||||
if (defined $file{size} || defined $file{length}) {
|
||||
my $s = "";
|
||||
print FOUT " (";
|
||||
print $fhandle " (";
|
||||
if (defined $file{size}) {
|
||||
print FOUT "$file{size}";
|
||||
print $fhandle "$file{size}";
|
||||
$s = ", ";
|
||||
}
|
||||
if (defined $file{length}) {
|
||||
print FOUT "$s$file{length}";
|
||||
print $fhandle "$s$file{length}";
|
||||
$s = ", ";
|
||||
}
|
||||
print FOUT ")";
|
||||
print $fhandle ")";
|
||||
}
|
||||
}
|
||||
print FOUT "<br>\n";
|
||||
print $fhandle "<br>\n";
|
||||
}
|
||||
print FOUT "$item{desc}\n";
|
||||
print $fhandle "</p>\n";
|
||||
print $fhandle "$item{desc}\n";
|
||||
print $fhandle "</li>\n";
|
||||
}
|
||||
{
|
||||
$createdfiles[$#createdfiles+1] = "multimedia.html";
|
||||
open(FOUT, ">multimedia.html");
|
||||
$createdhtml[$#createdhtml+1] = "multimedia.html";
|
||||
$createdsgml[$#createdsgml+1] = "multimedia.sgml";
|
||||
my $fhtml = new IO::File;
|
||||
my $fsgml = new IO::File;
|
||||
|
||||
open($fhtml, ">multimedia.html");
|
||||
open(FIN, "multimedia.html.pre");
|
||||
my @lines = <FIN>;
|
||||
close(FIN);
|
||||
print FOUT @lines;
|
||||
print $fhtml @lines;
|
||||
open(FIN, "multimedia.html.intro");
|
||||
@lines = <FIN>;
|
||||
close(FIN);
|
||||
print FOUT @lines;
|
||||
print FOUT "<h2 id=\"latest\">Newest resources</h2>\n";
|
||||
print $fhtml @lines;
|
||||
print $fhtml "<h2 id=\"latest\">Newest resources</h2>\n";
|
||||
|
||||
open($fsgml, ">multimedia.sgml");
|
||||
open(FIN, "multimedia.sgml.pre");
|
||||
@lines = <FIN>;
|
||||
close(FIN);
|
||||
print $fsgml @lines;
|
||||
open(FIN, "multimedia.sgml.intro");
|
||||
@lines = <FIN>;
|
||||
close(FIN);
|
||||
print $fsgml @lines;
|
||||
print $fsgml "<h2 id=\"latest\">Newest resources</h2>\n";
|
||||
|
||||
my $month = "";
|
||||
|
||||
|
@ -333,38 +365,64 @@ sub print_htmlitem {
|
|||
my %item = %{$items[$order]};
|
||||
my %source = %{$sources{$item{source}}};
|
||||
if (substr($item{added}, 0, 6) ne $month) {
|
||||
print FOUT "</ul><h2>", $months[substr($item{added}, 4, 2)+0], " ", substr($item{added}, 0, 4), "</h2><ul>";
|
||||
if ($month ne "") {
|
||||
print $fhtml "</ul>\n";
|
||||
print $fsgml "</ul>\n";
|
||||
}
|
||||
print $fhtml "<h2>", $months[substr($item{added}, 4, 2)+0], " ", substr($item{added}, 0, 4), "</h2><ul>";
|
||||
print $fsgml "<h2>", $months[substr($item{added}, 4, 2)+0], " ", substr($item{added}, 0, 4), "</h2><ul>";
|
||||
$month = substr($item{added}, 0, 6);
|
||||
}
|
||||
|
||||
print_htmlitem(\%item, \%source);
|
||||
print_htmlitem($fhtml, \%item, \%source);
|
||||
print_htmlitem($fsgml, \%item, \%source);
|
||||
}
|
||||
|
||||
print FOUT "</ul>\n";
|
||||
|
||||
print $fhtml "</ul>\n";
|
||||
open(FIN, "multimedia.html.post");
|
||||
@lines = <FIN>;
|
||||
close(FIN);
|
||||
print FOUT @lines;
|
||||
print $fhtml @lines;
|
||||
close($fhtml);
|
||||
|
||||
close(FOUT);
|
||||
print $fsgml "</ul>\n";
|
||||
open(FIN, "multimedia.sgml.post");
|
||||
@lines = <FIN>;
|
||||
close(FIN);
|
||||
print $fsgml @lines;
|
||||
close($fsgml);
|
||||
}
|
||||
|
||||
#
|
||||
# HTML cloud output
|
||||
#
|
||||
{
|
||||
$createdfiles[$#createdfiles+1] = "multimedia-tags.html";
|
||||
open(FOUT, ">multimedia-tags.html");
|
||||
$createdhtml[$#createdhtml+1] = "tags.html";
|
||||
$createdsgml[$#createdsgml+1] = "tags.sgml";
|
||||
my $fhtml = new IO::File;
|
||||
my $fsgml = new IO::File;
|
||||
open($fhtml, ">tags.html");
|
||||
open($fsgml, ">tags.sgml");
|
||||
|
||||
open(FIN, "multimedia.html.pre");
|
||||
my @lines = <FIN>;
|
||||
close(FIN);
|
||||
print FOUT @lines;
|
||||
print $fhtml @lines;
|
||||
open(FIN, "multimedia.html.intro");
|
||||
@lines = <FIN>;
|
||||
close(FIN);
|
||||
print FOUT @lines;
|
||||
print FOUT "<h2 id=\"latest\">Tags</h2>\n";
|
||||
print $fhtml @lines;
|
||||
print $fhtml "<h2 id=\"latest\">Tags</h2>\n";
|
||||
|
||||
open(FIN, "multimedia.sgml.pre");
|
||||
@lines = <FIN>;
|
||||
close(FIN);
|
||||
print $fsgml @lines;
|
||||
open(FIN, "multimedia.sgml.intro");
|
||||
@lines = <FIN>;
|
||||
close(FIN);
|
||||
print $fsgml @lines;
|
||||
print $fsgml "<h2 id=\"latest\">Tags</h2>\n";
|
||||
|
||||
my $month = "";
|
||||
|
||||
|
@ -377,16 +435,23 @@ sub print_htmlitem {
|
|||
foreach my $tag (sort size(keys(%tags))) {
|
||||
my $ftag = $tag;
|
||||
$ftag =~ s/ /_/g;
|
||||
print FOUT "<font style=\"font-size:${size}pt\"><a href=\"multimedia-tag-$ftag.html\">$tag</a></font>\n";
|
||||
print $fhtml "<font style=\"font-size:${size}pt\"><a href=\"tag-$ftag.html\">$tag</a></font>\n";
|
||||
print $fsgml "<font style=\"font-size:${size}pt\"><a href=\"tag-$ftag.html\">$tag</a></font>\n";
|
||||
$size-- if ($c++%10 == 0 && $size > 2);
|
||||
}
|
||||
|
||||
open(FIN, "multimedia.html.post");
|
||||
@lines = <FIN>;
|
||||
close(FIN);
|
||||
print FOUT @lines;
|
||||
print $fhtml @lines;
|
||||
|
||||
close(FOUT);
|
||||
open(FIN, "multimedia.sgml.post");
|
||||
@lines = <FIN>;
|
||||
close(FIN);
|
||||
print $fsgml @lines;
|
||||
|
||||
close($fhtml);
|
||||
close($fsgml);
|
||||
}
|
||||
|
||||
#
|
||||
|
@ -394,21 +459,37 @@ sub print_htmlitem {
|
|||
#
|
||||
{
|
||||
foreach my $tag (keys(%tags)) {
|
||||
my $fhtml = new IO::File;
|
||||
my $fsgml = new IO::File;
|
||||
|
||||
my $ftag = $tag;
|
||||
$ftag =~ s/ /_/g;
|
||||
$createdfiles[$#createdfiles+1] = "multimedia-tag-$ftag.html";
|
||||
open(FOUT, ">multimedia-tag-$ftag.html");
|
||||
$createdhtml[$#createdhtml+1] = "tag-$ftag.html";
|
||||
$createdsgml[$#createdsgml+1] = "tag-$ftag.sgml";
|
||||
open($fhtml, ">tag-$ftag.html");
|
||||
open($fsgml, ">tag-$ftag.sgml");
|
||||
|
||||
open(FIN, "multimedia.html.pre");
|
||||
my @lines = <FIN>;
|
||||
close(FIN);
|
||||
print FOUT @lines;
|
||||
print $fhtml @lines;
|
||||
open(FIN, "multimedia.html.intro");
|
||||
@lines = <FIN>;
|
||||
close(FIN);
|
||||
print FOUT @lines;
|
||||
print FOUT "<h2 id=\"latest\">Tag: $tag</h2>\n";
|
||||
print FOUT "<ul>\n";
|
||||
print $fhtml @lines;
|
||||
print $fhtml "<h2 id=\"latest\">Tag: $tag</h2>\n";
|
||||
print $fhtml "<ul>\n";
|
||||
|
||||
open(FIN, "multimedia.sgml.pre");
|
||||
@lines = <FIN>;
|
||||
close(FIN);
|
||||
print $fsgml @lines;
|
||||
open(FIN, "multimedia.sgml.intro");
|
||||
@lines = <FIN>;
|
||||
close(FIN);
|
||||
print $fsgml @lines;
|
||||
print $fsgml "<h2 id=\"latest\">Tag: $tag</h2>\n";
|
||||
print $fsgml "<ul>\n";
|
||||
|
||||
foreach my $item (@items) {
|
||||
my %item = %{$item};
|
||||
|
@ -435,16 +516,25 @@ sub print_htmlitem {
|
|||
}
|
||||
}
|
||||
|
||||
print_htmlitem(\%item, \%source) if ($found);
|
||||
print_htmlitem($fhtml, \%item, \%source) if ($found);
|
||||
print_htmlitem($fsgml, \%item, \%source) if ($found);
|
||||
|
||||
}
|
||||
|
||||
print FOUT "</ul>\n";
|
||||
print $fhtml "</ul>\n";
|
||||
open(FIN, "multimedia.html.post");
|
||||
@lines = <FIN>;
|
||||
close(FIN);
|
||||
print FOUT @lines;
|
||||
close(FOUT);
|
||||
print $fhtml @lines;
|
||||
close($fhtml);
|
||||
|
||||
print $fsgml "</ul>\n";
|
||||
open(FIN, "multimedia.sgml.post");
|
||||
@lines = <FIN>;
|
||||
close(FIN);
|
||||
print $fsgml @lines;
|
||||
close($fsgml);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -452,18 +542,35 @@ sub print_htmlitem {
|
|||
# HTML all-sources output
|
||||
#
|
||||
{
|
||||
$createdfiles[$#createdfiles+1] = "multimedia-sources.html";
|
||||
open(FOUT, ">multimedia-sources.html");
|
||||
my $fhtml = new IO::File;
|
||||
my $fsgml = new IO::File;
|
||||
|
||||
$createdhtml[$#createdhtml+1] = "sources.html";
|
||||
$createdsgml[$#createdsgml+1] = "sources.sgml";
|
||||
open($fhtml, ">sources.html");
|
||||
open($fsgml, ">sources.sgml");
|
||||
|
||||
open(FIN, "multimedia.html.pre");
|
||||
my @lines = <FIN>;
|
||||
close(FIN);
|
||||
print FOUT @lines;
|
||||
print $fhtml @lines;
|
||||
open(FIN, "multimedia.html.intro");
|
||||
@lines = <FIN>;
|
||||
close(FIN);
|
||||
print FOUT @lines;
|
||||
print FOUT "<h2 id=\"latest\">Sources</h2>\n";
|
||||
print FOUT "<ul>\n";
|
||||
print $fhtml @lines;
|
||||
print $fhtml "<h2 id=\"latest\">Sources</h2>\n";
|
||||
print $fhtml "<ul>\n";
|
||||
|
||||
open(FIN, "multimedia.sgml.pre");
|
||||
@lines = <FIN>;
|
||||
close(FIN);
|
||||
print $fsgml @lines;
|
||||
open(FIN, "multimedia.sgml.intro");
|
||||
@lines = <FIN>;
|
||||
close(FIN);
|
||||
print $fsgml @lines;
|
||||
print $fsgml "<h2 id=\"latest\">Sources</h2>\n";
|
||||
print $fsgml "<ul>\n";
|
||||
|
||||
my $lastsource = "";
|
||||
foreach my $item (@site_order) {
|
||||
|
@ -471,21 +578,33 @@ sub print_htmlitem {
|
|||
next if ($lastsource eq $item{source});
|
||||
$lastsource = $item{source};
|
||||
|
||||
print FOUT "<li><a href=\"multimedia-source-$lastsource.html\">", $sources{$item{source}}{name}, "</a>\n";
|
||||
print $fhtml "<li><a href=\"source-$lastsource.html\">", $sources{$item{source}}{name}, "</a>\n";
|
||||
print $fsgml "<li><a href=\"source-$lastsource.html\">", $sources{$item{source}}{name}, "</a>\n";
|
||||
}
|
||||
|
||||
print FOUT "</ul>\n";
|
||||
print $fhtml "</ul>\n";
|
||||
open(FIN, "multimedia.html.post");
|
||||
@lines = <FIN>;
|
||||
close(FIN);
|
||||
print FOUT @lines;
|
||||
close(FOUT);
|
||||
print $fhtml @lines;
|
||||
close($fhtml);
|
||||
|
||||
print $fsgml "</ul>\n";
|
||||
open(FIN, "multimedia.sgml.post");
|
||||
@lines = <FIN>;
|
||||
close(FIN);
|
||||
print $fsgml @lines;
|
||||
close($fsgml);
|
||||
|
||||
}
|
||||
|
||||
#
|
||||
# HTML per-source output
|
||||
#
|
||||
{
|
||||
my $fhtml = new IO::File;
|
||||
my $fsgml = new IO::File;
|
||||
|
||||
my $lastsource = "";
|
||||
foreach my $item (@site_order) {
|
||||
my %item = %{$item};
|
||||
|
@ -493,36 +612,67 @@ sub print_htmlitem {
|
|||
if ($lastsource ne $item{source}) {
|
||||
|
||||
if ($lastsource) {
|
||||
print FOUT "</ul>\n";
|
||||
print $fhtml "</ul>\n";
|
||||
print $fsgml "</ul>\n";
|
||||
|
||||
open(FIN, "multimedia.html.post");
|
||||
my @lines = <FIN>;
|
||||
close(FIN);
|
||||
print FOUT @lines;
|
||||
close(FOUT);
|
||||
print $fhtml @lines;
|
||||
close($fhtml);
|
||||
|
||||
open(FIN, "multimedia.sgml.post");
|
||||
@lines = <FIN>;
|
||||
close(FIN);
|
||||
print $fsgml @lines;
|
||||
close($fsgml);
|
||||
|
||||
}
|
||||
$createdfiles[$#createdfiles+1] = "multimedia-source-$item{source}.html";
|
||||
open(FOUT, ">multimedia-source-$item{source}.html");
|
||||
$createdhtml[$#createdhtml+1] = "source-$item{source}.html";
|
||||
$createdsgml[$#createdsgml+1] = "source-$item{source}.sgml";
|
||||
open($fhtml, ">source-$item{source}.html");
|
||||
open($fsgml, ">source-$item{source}.sgml");
|
||||
|
||||
open(FIN, "multimedia.html.pre");
|
||||
my @lines = <FIN>;
|
||||
close(FIN);
|
||||
print FOUT @lines;
|
||||
print $fhtml @lines;
|
||||
open(FIN, "multimedia.html.intro");
|
||||
@lines = <FIN>;
|
||||
close(FIN);
|
||||
print FOUT @lines;
|
||||
print $fhtml @lines;
|
||||
|
||||
open(FIN, "multimedia.sgml.pre");
|
||||
@lines = <FIN>;
|
||||
close(FIN);
|
||||
print $fsgml @lines;
|
||||
open(FIN, "multimedia.sgml.intro");
|
||||
@lines = <FIN>;
|
||||
close(FIN);
|
||||
print $fsgml @lines;
|
||||
|
||||
$lastsource = $item{source};
|
||||
print FOUT "<h2 id=\"latest\">$source{name}</h2>\n";
|
||||
print FOUT "<ul>\n";
|
||||
print $fhtml "<h2 id=\"latest\">$source{name}</h2>\n<ul>\n";
|
||||
print $fsgml "<h2 id=\"latest\">$source{name}</h2>\n<ul>\n";
|
||||
}
|
||||
print_htmlitem(\%item, \%source);
|
||||
print_htmlitem($fhtml, \%item, \%source);
|
||||
print_htmlitem($fsgml, \%item, \%source);
|
||||
|
||||
}
|
||||
print FOUT "</ul>\n";
|
||||
print $fhtml "</ul>\n";
|
||||
print $fsgml "</ul>\n";
|
||||
|
||||
open(FIN, "multimedia.html.post");
|
||||
my @lines = <FIN>;
|
||||
close(FIN);
|
||||
print FOUT @lines;
|
||||
close(FOUT);
|
||||
print $fhtml @lines;
|
||||
close($fhtml);
|
||||
|
||||
open(FIN, "multimedia.sgml.post");
|
||||
@lines = <FIN>;
|
||||
close(FIN);
|
||||
print $fsgml @lines;
|
||||
close($fsgml);
|
||||
}
|
||||
|
||||
#
|
||||
|
@ -579,14 +729,14 @@ sub print_htmlitem {
|
|||
print FOUT "<pubDate>$date</pubDate>\n";
|
||||
print FOUT "<enclosure url=\"", htmlentities($file{url}), "\" length=\"1\" type=\"application/octet-stream\" />\n";
|
||||
print FOUT "<description>";
|
||||
print FOUT htmlentities("$item{title}<br>From: $source{name}<br>");
|
||||
print FOUT htmlentities("Tags: $tags<br>\n");
|
||||
print FOUT htmlentities("$item{title}<br/>From: $source{name}<br/>");
|
||||
print FOUT htmlentities("Tags: $tags<br/>\n");
|
||||
print FOUT htmlentities("$item{desc}");
|
||||
print FOUT "</description>\n";
|
||||
print FOUT "</item>\n";
|
||||
}
|
||||
|
||||
$createdfiles[$#createdfiles+1] = "multimedia.xml";
|
||||
$createdxml[$#createdxml+1] = "multimedia.xml";
|
||||
open(FOUT, ">multimedia.xml");
|
||||
|
||||
my @s = stat("multimedia-input.xml");
|
||||
|
@ -624,8 +774,14 @@ EOF
|
|||
# Created files
|
||||
#
|
||||
{
|
||||
open(FOUT, ">multimedia.created");
|
||||
foreach my $f (@createdfiles) {
|
||||
open(FOUT, ">multimedia.html.created");
|
||||
foreach my $f (@createdhtml) {
|
||||
print FOUT "$f\n";
|
||||
}
|
||||
close(FOUT);
|
||||
|
||||
open(FOUT, ">multimedia.sgml.created");
|
||||
foreach my $f (@createdsgml) {
|
||||
print FOUT "$f\n";
|
||||
}
|
||||
close(FOUT);
|
||||
|
|
Loading…
Reference in a new issue