old-www/LDP/LG/issue31/gm.html

1172 lines
50 KiB
HTML

<!--startcut ==========================================================-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="GENERATOR" CONTENT="Mozilla/4.03 [en] (X11; I; Linux 2.0.30 i486) [Netscape]">
<META NAME="Author" CONTENT="Michael J. Hammel">
<META NAME="Description" CONTENT="The Monthly Column of Computer Graphics for Linux Systems.">
<TITLE>Graphics Muse</TITLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#CC0000" ALINK="#FF6600">
<!--endcut ============================================================-->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<!-- =============================================================
These pages are designed by Michael J. Hammel. Permission to
use all graphics and other content is granted provided you give
me (or the original authors/artists) credit for the work and this
copyright notice is not removed.
(c)1997, 1998 Michael J. Hammel (mjhammel@graphics-muse.org)
============================================================= !--><!-- The Button box as a client side imagemap --><MAP NAME="nav-main"><AREA SHAPE="rect" HREF="#mews" coords="20,18 185,40"><AREA SHAPE="rect" HREF="#webwonderings" coords="10,60 185,83"><AREA SHAPE="rect" HREF="#musings" coords="90,102 185,130"><AREA SHAPE="rect" HREF="#resources" coords="70,152 185,180"></MAP>
<!-- The Button box as a client side imagemap -->&nbsp;<MAP NAME="nav-main"><AREA SHAPE="rect" HREF="#mews" coords="20,18 185,40"><AREA SHAPE="rect" HREF="#webwonderings" coords="10,60 185,83"><AREA SHAPE="rect" HREF="#musings" coords="90,102 185,130"><AREA SHAPE="rect" HREF="#resources" coords="70,152 185,180"></MAP>
<TABLE BORDER=0 COLS=2 WIDTH="100%" >
<TR>
<TD><IMG SRC="../gx/hammel/gm3.gif" ALT="Welcome to the Graphics Muse" NOSAVE HEIGHT=216 WIDTH=441 ALIGN=LEFT></TD>
<TD VALIGN=BOTTOM>
<CENTER><FONT SIZE=-1>Set your browser as wide as you'd like now.&nbsp;
I've fixed the Muse to expand to fill the aviailable space!</FONT></CENTER>
<CENTER><FONT SIZE=-2>&copy; 1998 by <A HREF="mailto:mjhammel@graphics-muse.org">mjh</A>&nbsp;</FONT></CENTER>
</TD>
</TR>
</TABLE>
&nbsp;
<HR WIDTH="100%">
<TABLE BORDER=0 COLS=2 WIDTH="100%" >
<TR>
<TD WIDTH="185"><IMG SRC="../gx/hammel/muse-image-map.gif" ALT="Button Bar" BORDER=0 USEMAP="#nav-main" HEIGHT=200 WIDTH=185 ALIGN=LEFT></TD>
<TD VALIGN=TOP><B><FONT SIZE=+1>muse:</FONT></B>&nbsp;
<OL>
<LI>
<I>v;</I> to become absorbed in thought&nbsp;</LI>
<LI>
<I>n;</I> [ fr. Any of the nine sister goddesses of learning and the arts
in Greek Mythology ]: a source of inspiration&nbsp;</LI>
</OL>
&nbsp;<IMG SRC="../gx/hammel/w.gif" ALT="W" HEIGHT=28 WIDTH=36 ALIGN=BOTTOM>elcome
to the Graphics Muse! Why a "muse"? Well, except for the sisters aspect,
the above definitions are pretty much the way I'd describe my own interest
in computer graphics: it keeps me deep in thought and it is a daily source
of inspiration.&nbsp;
<CENTER><FONT SIZE=-1>[<A HREF="#mews">Graphics Mews</A>][<A HREF="#webwonderings">WebWonderings</A>][<A HREF="#musings">Musings</A>]
[<A HREF="#resources">Resources</A>]</FONT></CENTER>
</TD>
</TR>
</TABLE>
&nbsp;
<BR><IMG SRC="../gx/hammel/t.gif" ALT="T" HEIGHT=28 WIDTH=26 ALIGN=LEFT>his column
is dedicated to the use, creation, distribution, and discussion of computer
graphics tools for Linux systems.
<BR>&nbsp;
<BR><IMG SRC="./gx/hammel/bookcover.jpg" HSPACE=10 VSPACE=10 HEIGHT=250 WIDTH=154 ALIGN=RIGHT>Well,
it's been a couple of months since we last spoke.&nbsp; I've been working
on a major project for the past year and the last 3 months have been exceptionally
busy.&nbsp; But the project is done, or very nearly so (a few minor details
left to handle) - and that project is a book on the Gimp.&nbsp; It's called
<I><U>The Artists Guide to the Gimp</U></I> and should hit the shelves
sometime in September.&nbsp; All I can say is, I hope you like it.&nbsp;&nbsp;
Writing a technical book is harder than I thought.&nbsp; My next one is
going to be fictional novel.&nbsp; You don't have to do a CD, tons of images,
or 2nd editions for those.
<P>There were plenty of graphics related news announcements since the last
Muse.&nbsp; Unfortunately, I just didn't keep up with them and they've
expired from my news feed.&nbsp; So what I've got this month is pretty
recent info.&nbsp; I did hang onto a few tidbits from mailing lists I've
been scanning, plus email from a few readers.&nbsp; It's funny - I get email
about really old versions of the Muse every now and then.&nbsp; I think
people are still just finding out about it.
<BR>&nbsp;
<BR>In this month's column I'll be covering ...
<UL>
<LI>
creating dynamic web pages with msql and CGI.pm</LI>
<LI>
Gimp 1.0 - well, just a little.</LI>
</UL>
I'll have more for next month, but I just finished the book with only 3
days to get the Muse done.
<P><A NAME="mews"></A>
<BR>&nbsp;
<TABLE BORDER=0 COLS=1 WIDTH="100%" >
<TR>
<TD><IMG SRC="../gx/hammel/mews.gif" ALT="Graphics Mews" HEIGHT=53 WIDTH=242 ALIGN=LEFT></TD>
</TR>
</TABLE>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Disclaimer: Before I get too far into this
I should note that any of the news items I post in this section are just
that - news. Either I happened to run across them via some mailing list
I was on, via some Usenet newsgroup, or via email from someone. I'm not
necessarily endorsing these products (some of which may be commercial),
I'm just letting you know I'd heard about them in the past month.
<BR>&nbsp;
<TABLE BORDER=0 COLS=3 WIDTH="100%" >
<TR>
<TD COLSPAN="3" WIDTH="100%" BGCOLOR="#000000"><IMG SRC="../gx/hammel/cleardot.gif" ALT="indent" HSPACE=30 VSPACE=2 HEIGHT=1 WIDTH=1 ALIGN=LEFT></TD>
<TD></TD>
</TR>
<TR>
<TD WIDTH="50%">
<H2>
Xi Graphics releases fully integrated Linux distribution</H2>
This isn't really graphics related, but Xi is an X server vendor.&nbsp;
And X server vendors are pretty important to the Linux graphics world.&nbsp;
So, here it is.&nbsp;
<P>Xi Graphics is now providing a commercial Linux distribution which includes
their <B><FONT COLOR="#993300">Accelerated X</FONT></B> server and their
maximum/CDE desktop product.&nbsp; Unit price is $214.95 for the Executive
Edition and $364.95 for the Developers Edition.&nbsp;
<P>For more details:&nbsp;
<BR>Kyle Fink&nbsp;
<BR>Xi Graphics&nbsp;
<BR>(303) 298-7478&nbsp;
<BR>kyle@xig.com</TD>
<TD ROWSPAN="3" WIDTH="2" BGCOLOR="#000000"><IMG SRC="../gx/hammel/cleardot.gif" ALT="indent" HSPACE=1 HEIGHT=1 WIDTH=1></TD>
<TD WIDTH="49%">
<H2>
Panasonic PalmCam utility</H2>
Fredrik Roubert has released a very early version (v0.3) of a driver for
the <B><FONT COLOR="#993300">Panasonic PalmCam</FONT></B>, an NV-DC1000
digital camera.&nbsp; According to Robert a couple of the features include
the ability to specify ranges to download and to preview or delete several
images in one session.&nbsp;
<P>For more information, check out his web page at&nbsp;
<BR><A HREF="http://www.df.lth.se/~roubert/NV-DC1000.html">http://www.df.lth.se/~roubert
/NV-DC1000.html</A>&nbsp;
<P>The package is available from the following sites:&nbsp;
<BR><A HREF="ftp://ftp.df.lth.se/pub/users/roubert/Linux">ftp://ftp.df.lth.se/
pub/users/roubert/Linux</A>&nbsp;
<BR><A HREF="ftp://sunsite.unc.edu/pub/Linux/apps/graphics/capture">ftp://sunsite.unc.edu/
pub/Linux/apps/graphics/capture</A>&nbsp;
<BR>&nbsp;</TD>
</TR>
<TR>
<TD BGCOLOR="#000000"><IMG SRC="../gx/hammel/cleardot.gif" HSPACE=1 HEIGHT=1 WIDTH=1></TD>
<TD BGCOLOR="#000000"><IMG SRC="../gx/hammel/cleardot.gif" HSPACE=1 HEIGHT=1 WIDTH=1></TD>
</TR>
<TR>
<TD>
<H2>
Linux / 3-D SIGGRAPH Report</H2>
At SIGGRAPH '98 in Orlando, Florida Daryll Strauss and Brian Paul organized
a special interest group (SIG) session to talk&nbsp;
<BR>about Linux, 3-D hardware acceleration, and related topics.&nbsp;
<P>Attendence was greater than expected with 100-150 people attending.&nbsp;
<P>A summary of presentations taken by Brian Paul, author of the Mesa package,
can be found at&nbsp;
<BR><A HREF="http://glide.xxedgexx.com/SIGNotes.html">http://glide.xxedgexx.com/
SIGNotes.html</A>&nbsp;
<P>
<HR WIDTH="100%">
<H2>
Blender News</H2>
There were a number of updates to Blender, the 3D modelling page from NeoGeo.&nbsp;
Here is a snapshot of annoucements from their News page:&nbsp;
<P>Blender manual (1998-07-10)&nbsp;
<UL>All information you need, packed in cool design at paper: the Blender
1.5 manual is scheduled to ship in October. Information about pricing and
pre-ordering will be available in August.&nbsp;</UL>
The Unofficial Blender Mailing list (1998-06-16)&nbsp;
<UL>To subscribe: send mail to <A HREF="mailto:majordomo@iqm.unicamp.br">majordomo@iqm.unicamp.br</A>
with the text&nbsp;
<CENTER><FONT SIZE=-1>subscribe blender3d your@email.address</FONT>&nbsp;</CENTER>
To post, send your message to <A HREF="mailto:blender3d@iqm.unicamp.br">blender3d@iqm.unicamp.br</A></UL>
Version 1.34 for Linux/FreeBSD available today. (1998-06-04)&nbsp;
<UL>Many bugs fixed and included some features: Play (flipbook). Use it
for playback test animations (Hamx) Frame counter during anim playback.&nbsp;
Read the BlenderBeta page for more.</UL>
</TD>
<TD>
<H2>
Linux IEEE-1394 (FireWire) Subsystem - Status report</H2>
Emanuel Pirker is working on the Linux IEEE-1394 (<B><FONT COLOR="#993300">FireWire</FONT></B>)
Subsystem for a while now and thought it would be a good idea to give a
small status report.&nbsp;
<P>IEEE-1394 is the name of a high-speed but low-cost serial bus. Apple
has trademarked it as "FireWire". Current implementations reach 200 Mbit/s,
soon we will have 400 and then 800 and so on. FireWire is designed for
consumer multimedia (e. g. connecting a digital video camera to your PC)
and high-speed peripherals (hard disks, CD ROMs, but also scanners, printers).
Since it provides quality of service (guaranteed bandwith and bounded latency)
it can also be used in industrial real-time applications.&nbsp;
<P>Support for Windows (NT) and Rhapsody is coming (some items are already
operational) but Linux users also want to benefit from this technology
- so Emanual started the development as a university project last winter.&nbsp;
<P>He now has a clearly designed subsystem, an Adaptec AIC-5800 driver
and some code to test it. Not all FireWire functions can be used now but
he has reached a point where the API is stable and other people can also
contribute work (e.g. a video camera driver).&nbsp;
<P>So if you are interested in this, just email Emanual - more (wo)manpower
is desperately needed.&nbsp;
<P>Contact addresses:&nbsp;
<BR>WWW:&nbsp; <A HREF="http://www.edu.uni-klu.ac.at/~epirker/ieee1394/">http://www.edu.uni-klu.ac.at/
~epirker/ieee1394/</A>&nbsp;
<BR>E-Mail: <A HREF="mailto:epirker@edu.uni-klu.ac.at">epirker@edu.uni-klu.ac.at&nbsp;</A>&nbsp;
<BR>&nbsp;
<BR>&nbsp;
<HR WIDTH="100%">
<P>Some late entries:&nbsp;
<P><A HREF="http://www.wizards.dupont.com/cristy/ImageMagick.html">ImageMagick
4.0.8</A>&nbsp;
<BR><A HREF="http://www.inforoute.capway.com/brunet3/">Panard Vision -
Portable Real-time 3D Engine for Linux</A>&nbsp;
<BR><A HREF="http://www.ssec.wisc.edu/~brianp/Mesa.html">Mesa 3.0 beta
7</A>&nbsp;
<BR><A HREF="ftp://ftp.mostang.com/pub/sane/">SANE 0.74</A>&nbsp;
<BR><A HREF="http://www.fas.harvard.edu/~lukka/freewrl">FreeWRL 0.14</A>&nbsp;
<P>For more details on these, check out <A HREF="http://www.freshmeat.net">Freshmeat.net.</A></TD>
</TR>
<TR>
<TD COLSPAN="3" WIDTH="100%" BGCOLOR="#000000"><IMG SRC="../gx/hammel/cleardot.gif" HSPACE=1 HEIGHT=1 WIDTH=1></TD>
</TR>
</TABLE>
<H2>
XVScan 1.80 Scanning software</H2>
tummy.com, ltd. is pleased to announce <B><FONT COLOR="#993300">XVScan
Version 1.80</FONT></B>, which now includes support for Microtek ScanMaker
E3 and E6 scanners as well as HP SCSI ScanJet scanners.&nbsp; Currently
the Microtek support is available on Linux and Solaris, but our other platforms
will include that support shortly.
<P>XVScan is based on the popular <B><FONT COLOR="#993300">xv</FONT></B>
image manipulation software for X Windows and includes a fully licensed
copy of xv. It is source available commercial software.
<P>If you've never used John Bradley's XV image manipulation software,
it's difficult to describe how powerful it is. XV reads and writes files
in a dozen different formats, provides powerful color-map editing, window
capture, color-space conversion, cropping, image manipulation algorithms,
and the list goes on.
<P>XV gives you powerful image and color-map manipulation, support for
over a dozen image formats, as well as the Visual Schnauzer, and an easy
to use graphical interface to view and catalog your scanned images.&nbsp;
Supported images formats include: PNG, GIF, JPEG, progressive JPEG, TIFF
(compressed and uncompressed), PostScript (requires ghostscript), PBM/PGM/PPM
(raw and ascii), X11 Bitmap, XPM (X PixMap), Sun Rasterfile,
<P>With XVScan, you now have the ability to scan directly into XV in a
very cost efficient (and more importantly time efficient) manner.
<P>See our website <A HREF="http://www.tummy.com/xvscan/">http://www.tummy.com/xvscan/</A>
for a full list of supported scanners.
<P><U>What's New in Version 1.80</U>
<OL>
<LI>
Microtek ScanMaker E3 and E6 support</LI>
<LI>
HP ScanJet 5P push button scanning</LI>
<LI>
Updated JPEG and TIFF conversions</LI>
</OL>
The Linux version requires working generic SCSI driver. It has been tested
with versions 1.2.7 and higher of the kernel.
<P>The current version of XVScan is 1.80 dated 1998-06-11 based upon XV
version 3.10a dated 12/29/94.
<P>XVScan is $US50 for Linux, HP-UX, FreeBSD and BSD/OS for free ftp delivery.
XVScan is $US80 for Solaris bundled with SGLite SCSI driver.&nbsp; CD-ROM
Media $US20. Contact xvscan@tummy.com to order or order on the web at <A HREF="https://www.tummy.com/ordering/onlineorder.phtml">https://www.tummy.com/ordering/onlineorder.phtml.</A>&nbsp;
Payment accepted via check, Visa/Mastercard/Discover/AMEX cards.
<P>Contact tummy.com, ltd, phone: (970) 223-8215, fax: (408) 490-2728,
<BR>URL: &lt;<A HREF="http://www.tummy.com/xvscan/">http://www.tummy.com/xvscan/</A>>
<BR>email: &lt;<A HREF="mailto:xvscan@tummy.com">xvscan@tummy.com</A>>
<P>
<HR WIDTH="100%">
<H2>
S.u.S.E. releases new X servers for Rendition, Cyrix, SiS and 3DLabs</H2>
S.u.S.E. is proud to announce the release of a new set of X servers for
several popular graphic chipsets.
<P>To avoid confusion and to clearly state that these servers are part
of XFree86, S.u.S.E. has changed the naming scheme of its servers. Instead
of the XSuSE prefix, they now use XFCom, which is short for XFree86 Compliant.&nbsp;
XFree86 compliance is intended to mean that the sources for these servers
are ALREADY part of the XFree86 development sources and will be released
as part of one of the next XFree86 releases.&nbsp; This is the major difference
to servers with the XBF prefix, which stands for X Binary Free and means
that sources for these servers are only available under NDA and therefore
cannot be included in XFree86.
<P>Following this naming scheme, we have renamed the XSuSE_Elsa_GLoria
server to XFCom_3DLabs and XSuSE_SiS to XFCom_SiS. Additionally, we have
added to new servers that support the very popular Rendition Verite chipsets
and the all-in-one Cyrix MediaGX CPU that includes graphics functionality.
<P><B><FONT COLOR="#993300">XFCom_Rendition</FONT></B> supports the Rendition
Verite V1000, V2100 and V2200 chips.&nbsp; Among the boards supported are
<UL>
<LI>
miroCRYSTAL VRX</LI>
<LI>
Diamond Stealth II S220</LI>
<LI>
Hercules Thriller3D</LI>
<LI>
Creative Labs 3D Blaster PCI</LI>
<LI>
Canopus Total-3D</LI>
<LI>
Sierra Screaming 3D</LI>
</UL>
<B><FONT COLOR="#993300">XFCom_Cyrix</FONT></B> supports the Cyrix MediaGX
CPU
<P>XFCom_SiS supports
<UL>
<LI>
SiS 6201</LI>
<LI>
SiS 6202</LI>
<LI>
SiS 6205</LI>
<LI>
SiS 5597</LI>
<LI>
SiS 5598</LI>
</UL>
<B><FONT COLOR="#993300">XFCom_3DLabs</FONT></B> supports
<UL>
<LI>
GLINT 500TX + GLINT Delta + IBM RGB 526DB</LI>
<UL>
<LI>
Elsa GLoria L</LI>
<LI>
Diamond Fire GL 3000</LI>
</UL>
<LI>
GLINT MX + GLINT Delta + IBM RGB 526DB</LI>
<UL>
<LI>
Elsa GLoria L/MX</LI>
</UL>
<LI>
Permedia + GLINT Delta + IBM RGB 526DB</LI>
<UL>
<LI>
Elsa GLoria S</LI>
<LI>
Diamond Fire GL 1000</LI>
</UL>
<LI>
Permedia 2</LI>
<UL>
<LI>
Elsa GLoria Synergy</LI>
<LI>
Elsa Winner 2000/Office</LI>
<LI>
Diamond Fire GL 1000 PRO</LI>
<LI>
Creative Blaster Exxtreme</LI>
<LI>
Leadtek WinFast 2300</LI>
<LI>
Accelstar Permedia II</LI>
</UL>
</UL>
All these servers are available as Linux x86 libc5 binaries at
<BR><A HREF="http://www.suse.de/XSuSE/XSuSE_E.html">http://www.suse.de/
XSuSE/XSuSE_E.html.</A>
<P>Binaries for other operating systems as well as glibc binaries will
be released, soon.&nbsp; For all questions and support concerning these
servers please do NOT contact XFree86 but send email to <A HREF="mailto:x@suse.de">x@suse.de</A>
instead.
<P>
<HR WIDTH="100%">
<P>&nbsp;<!--
-- Did You Know Section
-->
<H4>
Did You Know?</H4>
A comment on IRTC-L stated:
<UL>As I understand, in a cinema, the width is twice as long as the height.</UL>
Bernd Sieker, regular contributer to the IRTC list, offered the following
responses:
<UL>No, that's not really true.&nbsp; The most commonly used formats are:</UL>
&nbsp;
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=5 COLS=3 WIDTH="260" NOSAVE >
<TR NOSAVE>
<TD NOSAVE></TD>
<TD NOSAVE>Name</TD>
<TD>Aspect Ratio</TD>
</TR>
<TR NOSAVE>
<TD></TD>
<TD NOSAVE>Super 35</TD>
<TD>1:1.33</TD>
</TR>
<TR>
<TD></TD>
<TD>Academy</TD>
<TD>1:1.37</TD>
</TR>
<TR NOSAVE>
<TD NOSAVE></TD>
<TD>Wide Screen</TD>
<TD>1:1.66</TD>
</TR>
<TR>
<TD></TD>
<TD>Wide Screen</TD>
<TD>1:1.85</TD>
</TR>
<TR>
<TD></TD>
<TD>16:9</TD>
<TD>1:1.77</TD>
</TR>
<TR>
<TD></TD>
<TD>Cinemascope</TD>
<TD>1:2.35</TD>
</TR>
</TABLE>
&nbsp;
<UL>So most common cinama formats are not twice as wide as high, only Cinemascope
is more than twice as wide as it is high. But this format is not as common
as some people think. It requires a special aspherical distortion lens
on both the projector and the camera.
<P>As far as I remember the scenes for Jurassic Park were rendered in 8000x6000
(1:1.33), but often much less is sufficient, like 4000x3000.</UL>
Another question from the same list:&nbsp; What are NTSC and PAL?
<P>Again, Bernd Sieker supplies an answer:
<UL>These are the two most common colour encoding stamdards for television.
NTSC is used in the United States and, I think, Japan, PAL is used in most
parts of Western Europe (except France. There is a third standard, called
SECAM, which is used in France and parts of Eastern Europe.</UL>
<UL>PAL and SECAM use 50 fields/s (a field is half a frame), NTSC uses
60 fields/s and fewer lines, so the bandwidth of the signals is almost
equal in all formats (Something on the order of 5 MHz).
<P>For TV the horizontal resolution is not fixed, whereas the number of
lines is; use the following for sqaure pixel aspect ratio:
<P>PAL:&nbsp; 768x576
<BR>NTSC: 640x480
<P>Note that the number of lines are fixed and should not be altered, all
systems work with these values.
<BR>&nbsp;</UL>
<!--
-- Q and A Section
-->
<H4>
<B><FONT SIZE=+0>Q and A</FONT></B></H4>
<I>Q:</I>&nbsp; Anyone know how to set up an Wacom Artpad for use with
Gimp, or if this is possible. I think I have to use XInput or something.
<BR>&nbsp;
<P>A:&nbsp; <A HREF="mailto:juergen@callisto.fulda.net">Juergen Schlag</A>
responded:
<UL>A few months ago I tried to set up my Wacom PenPartner with X11.&nbsp;
You need to configure your system like the following:</UL>
<UL>
<LI>
run Linux with a X11 server which supports the Xinput Extension (my old
S3-Board running under the XFree-Server works well, but the XSuSE-Server
for PERMEDIA2-Boards doesn't work).</LI>
</UL>
<UL>
<LI>
install the Xinput driver for the Artpad (see the docs). I used a patched
driver for the PenPartner.</LI>
</UL>
<B><I><FONT COLOR="#993300">Muse</FONT></I></B>:&nbsp; What driver and
what docs?&nbsp; Anyone know what he meant by this?
<UL>
<LI>
edit the Xinput-Section of your /etc/XF86Config to load the driver when
X11 starts (see the man-pages for XF86Config and your X-server)</LI>
</UL>
<UL>
<LI>
recompile the GTK toolkit with the Xinput-support enabled. see the README
and INSTALL file for the command switch to do this.</LI>
</UL>
<UL>
<LI>
restart your computer, start X11 and Gimp. if no error message occured
your artpad should work well</LI>
</UL>
&nbsp;
<TABLE BORDER=0 COLS=1 WIDTH="100%" BGCOLOR="#000000" NOSAVE >
<TR>
<TD><IMG SRC="../gx/hammel/cleardot.gif" HEIGHT=3 WIDTH=1></TD>
</TR>
</TABLE>
<H2>
Reader Mail</H2>
<A HREF="mailto:dmschmit@rasc-sparc.tamu.edu">Dan Schmitt </A>wrote:
<UL>The polyray site seems to have moved.&nbsp; It now seems to live at:
<BR><A HREF="http://www.inf.fu-berlin.de/tec/software/public/public_html/grafik/polyray.html">http://www.inf.fu-berlin.de/tec/software/
public/public_html/grafik/polyray.html</A></UL>
<A HREF="mailto:mbeast@tls.com">Michael B. East</A> wrote:
<UL>Check out the new home page for sceda, now called sceda II! Let me
know what you think!
<BR>It's at <A HREF="http://www.tls.com/mbeast">www.tls.com/mbeast.</A></UL>
<A HREF="mailto:spm@arpc65.arm.ac.uk">Scott Manley </A>wrote:
<UL>You might be interested to add this little programm to your list of
Unix 3D graphics utilities - it generates fractal asteroids using a few
parameters given to it on the command line.
<BR><A HREF="http://star.arm.ac.uk/~spm/asteroid_impact/gen_asteroid.c">http://star.arm.ac.uk/~spm/
asteroid_impact/gen_asteroid.c</A></UL>
<B><I><FONT COLOR="#993300">'Muse</FONT></I></B>:&nbsp; Thanks for the
pointers guys!
<BR>&nbsp;
<BR><A HREF="mailto:smartin@usit.net">Steve Martin </A>wrote me about some
information in the Linux Graphics mini-Howto:
<UL>Regarding the page <A HREF="http://www.graphics-muse.org/linux/lgh.html">http://www.graphics-muse.org/linux/lgh.html</A>,
in the section <B>Creation Tools,</B> you mention that:</UL>
<UL>
<UL>"If you wish to write shaders in BMRT, you really need The Renderman
Companion book by Steve Upstill which is available from Addison Wesley.&nbsp;
This text also describes the RIB format.&nbsp; Shaders in BMRT are just
text files written in the Renderman Shading Language (described in the
book - it's a subset of C); the shader is run through the BMRT shader compiler
"slc" and then it can be used in your renderings."</UL>
I would point out a couple of inaccuracies if I may.&nbsp; First, Mr. Upstill's
book completely ignores the RIB format; he concentrates exclusively on
the procedural binding (i.e. the C-language API).&nbsp; Secondly, regarding
the Renderman Shading Language, Mr. Upstill writes:
<BR>&nbsp;
<UL>"The most obvious characteristic of this shader is a superficial resemblance
to a function in the C programming language."...
<BR>"This makes the shading language easier to learn, but one must beware
of assuming the shading language is C."</UL>
</UL>
<UL>The text makes it clear that, while there are some syntactic similarities
between the two languages, the RSL is *not* a "subset of C".</UL>
<B><I><FONT COLOR="#993300">'Muse</FONT></I></B>:&nbsp; You are completely
correct.&nbsp; I stand corrected.
<UL>Finally, I would recommend that anyone wanting to learn to write shaders
for Renderman read, in addition to the Renderman Companion, <I><U>Texturing
and Modelling:&nbsp; A Procedural Approach</U></I> by David S. Ebert et
al. It is a much more thorough and intensive work on procedural texturing
than is RC, and uses examples written almost exclusively in the Renderman
Shading Language.</UL>
<B><I><FONT COLOR="#993300">'Muse</FONT></I></B>:&nbsp; It is indeed.&nbsp;
I've got that text.&nbsp; It's not an easy read, but it's certainly a thorough
coverage of the subject.
<UL>Hope this helps. Keep up the good work.</UL>
<B><I><FONT COLOR="#993300">'Muse</FONT></I></B>:&nbsp; It does help.&nbsp;
Thanks for clearing this up.&nbsp; I intend on doing a complete rewrite
of the LGH soon, but I don't know when it will be complete.
<P><A HREF="mailto:raanders@altoplanos.net">Roderick A. Anderson</A> asked
about converting GIF's to interlaced GIF's.
<UL>Are there any programs that run on a Linux platform to convert GIFs
to an interlaced format?&nbsp; Free first (of course),then commercial,
then</UL>
<B><I><FONT COLOR="#993300">'Muse</FONT></I></B>:&nbsp; NetPBM, I think.&nbsp;
ImageMagick may also do so.&nbsp; A commercial package is Image Alchemy,
but it's priced for corporate use and not so much for individual use (I
think - it's been awhile since I checked).
<UL>hostageware or some variation.&nbsp; I've been too busy to upgrade
my system to RedHat Linux 5.0 (semester is almost over soon) so I haven't
been able to try a recent version of gimp. (The version I have is less
powerful then xpaint.)</UL>
<B><I><FONT COLOR="#993300">'Muse</FONT></I></B>:&nbsp; Boy, that's an old
version.&nbsp; If you have time try the 1.0 version from <A HREF="http://www.gimp.org">www.gimp.org</A>.&nbsp;
You'll need to grab the GTK 1.0 libs first - <A HREF="http://www.gtk.org">www.gtk.org</A>.&nbsp;
The Gimp can read in non-interlaced GIF's and convert them to interlaced.&nbsp;
It's pretty easy to do.
<P>
<HR WIDTH="100%">
<BR><A NAME="webwonderings"></A>
<BR><IMG SRC="../gx/hammel/webwonderings.jpg" HEIGHT=57 WIDTH=246>
<H1>
Building dynamic web pages</H1>
Recently I started a complete rewrite of my web site, <A HREF="http://www.graphics-muse.org">graphics-muse.org</A>.&nbsp;
This is the 5th time I've done this over the past 5 years although I haven't
had my own domain that long.&nbsp; This rewrite comes from the obvious
need to make the my graphics resources searchable and easier to update.&nbsp;
So, I've had to add a database and learn to create dynamic pages.&nbsp;
The database part is easy - I'm going to use <A HREF="http://www.Hughes.com.au/">msql</A>.&nbsp;
I've used it for a few simple databases at home and it's quite sufficient
for my relatively simple needs.&nbsp; Dynamic pages are something new,
however.&nbsp; And for this, I need to step into the world of <A HREF="http://www.perl.com">Perl</A>.
<P>I used to pride myself on the number of languages I had taught myself
over the years.&nbsp; In recent times, however, I've found myself falling
behind the curve, having grown comfortable and satisfied with C.&nbsp;
Although I still think C suffices for most projects I realize that I need
to move on to newer, object oriented, languages.&nbsp; I hate C++.&nbsp;
I've done a little work with it and it's just a perversion of C in my eyes.&nbsp;
Java is my long term goal, primarily because I make a living doing graphical
interfaces and Java is the future for people like me.&nbsp; Perl, on the
other hand, is simply the tool of choice for the Web.&nbsp; I didn't want
to learn yet another scripting language, but it's hard to avoid if I'm going
to try to do Web developement.&nbsp; So, Perl it is.
<P>Fortunately, creating dynamic Web pages with Perl turns out to be pretty
simple.&nbsp; A perl module called, conveniently, Msql allows me easy access
to my databases and the CGI.pm module makes generation of HTML a breeze.&nbsp;
Both the msql database and CGI.pm have printed texts available so learning
both is a bit easier than the traditional man-page browsing with which
I've grown up.&nbsp; We'll take a look at how we can use both the Msql
and CGI.pm modules to create a very simple dynamic page.
<P>This discussion does not expect you to understand how to program in
perl, but it would help.&nbsp; We're going to step through the process
without going into huge detail here.&nbsp; Also, when I talk about the
database I'll use lowercase - msql - but when I talk about the perl module
I'll use uppercase - Msql.&nbsp; You should, however, be a little familiar
with how SQL statements look, or at least not be afraid of looking at them.&nbsp;
What we'll use in this example is pretty basic and you should be able to
interpret what's going on from the code and the explanations.
<P>First, what tools do you need for this experiment?
<UL>Perl 5.003 patchlevel 7 or higher
<BR>msql 1.0.x
<BR>CGI.pm 2.38
<BR>The Msql module</UL>
These just happen to be the versions I installed on the server that hosts
my domain.&nbsp; I don't know what the version of the Msql module is, but
you can find it on a <A HREF="http://www.perl.com/CPAN/">CPAN</A> mirror.&nbsp;
Apparently if you have perl 5.004 you already have CGI.pm (it's part of
the standard distribution since 5.004).&nbsp; If not you'll need to grab
the module from one of the CPAN mirrors.&nbsp; CPAN is the Comprehensive
Perl Archive Network and is where you can find all sorts of modules for
use with Perl.&nbsp; Modules are extensions to perl.&nbsp; The CGI.pm module
allows you to use methods and functions to generate HTML output in a CGI
script.&nbsp; Similarly, the Msql module allows you methods for accessing
an msql database.&nbsp; The current version of the msql database is 2.0.x,
but this seemed to have some problems when I tested simple inserts on a
Solaris box, so I'm working with the more stable 1.0.x version, which happens
to be what's on my server anyway.
<P>Ok, now let's create a simple database.&nbsp; Make sure the msql database
is installed properly (follow the directions with the package - it's pretty
straightforward to build and install).&nbsp; Start the database daemon:
<UL><B><FONT FACE="Times New Roman,Times">% msqld&amp;</FONT></B></UL>
Next you need to create an empty database, which we'll call "muse".&nbsp;
Use the msqladmin command for this:
<UL><B><FONT FACE="Times New Roman,Times">% msqladmin create muse</FONT></B></UL>
We can now use the msql monitor to interactively add a table and populate
the table, but let's do this the easy way.&nbsp; We'll create a text file
with the commands and then feed it to the monitor in batch mode.&nbsp;
The text file looks like this (including comments):
<UL><TT><FONT SIZE=-1># drop existing table.&nbsp; If it doesn't exist,
msql will basically ignore this.</FONT></TT>
<BR><TT><FONT SIZE=-1>drop table tools</FONT></TT>
<BR><TT><FONT SIZE=-1>\g</FONT></TT>
<P><TT><FONT SIZE=-1># Create a new table in the database</FONT></TT>
<BR><TT><FONT SIZE=-1>create table tools (</FONT></TT>
<BR><TT><FONT SIZE=-1>&nbsp;&nbsp; tooltype&nbsp;&nbsp;&nbsp;&nbsp; int
not null,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
# 0: hand tool;&nbsp; 1: power tool</FONT></TT>
<BR><TT><FONT SIZE=-1>&nbsp;&nbsp; toolname&nbsp;&nbsp;&nbsp;&nbsp; char(255)
not null&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
# name of the tool</FONT></TT>
<BR><TT><FONT SIZE=-1>)</FONT></TT>
<BR><TT><FONT SIZE=-1>\p\g</FONT></TT>
<P><TT><FONT SIZE=-1># Insert a few entries into the table</FONT></TT>
<BR><TT><FONT SIZE=-1>insert into tools values (0, 'hammer') \g</FONT></TT>
<BR><TT><FONT SIZE=-1>insert into tools values (0, 'screwdriver') \g</FONT></TT>
<BR><TT><FONT SIZE=-1>insert into tools values (1, 'table saw') \g</FONT></TT></UL>
Save this to a file called "t<A HREF="tools.msql">ools.msql</A>".&nbsp;
The filename is arbitrary.&nbsp; The "\p" and "\g" tell the monitor to
print the command as its run and to actually run the command, respectively.&nbsp;
Note that the text names are enclosed in single, not double, quotes!&nbsp;
You can feed this to the monitor using the following command:
<UL><B><FONT FACE="Times New Roman,Times">% msql muse &lt; tools.msql</FONT></B></UL>
It's a simple database, but this is a simple example.&nbsp; Now let's build
a CGI script using perl that will display a couple of tables, one of which
will contain the entries from the database.&nbsp; The first thing is to
tell the script to use perl5 and to load the Msql and CGI.pm modules:
<UL><TT><FONT SIZE=-1>#!/usr/bin/perl5</FONT></TT>
<P><TT><FONT SIZE=-1># Import modules of interst.</FONT></TT>
<BR><TT><FONT SIZE=-1>use CGI qw/:standard :html3 :netscape/;</FONT></TT>
<BR><TT><FONT SIZE=-1>use Msql;</FONT></TT></UL>
The location of your perl5 binary may be different, so check that first.&nbsp;
The stuff after "use CGI" tells perl which functions from CGI to load.&nbsp;
In this case we're loading the standard functions, plus the HTML3 and netscape
extensions.&nbsp; There are multiple methods for specifying these extensions.&nbsp;
You'll need to check the Perl or CGI.pm documentation (see end of this
article) for details on how to use a different syntax.
<UL><TT><FONT SIZE=-1># print out the HTML HEAD section</FONT></TT>
<BR><TT><FONT SIZE=-1>print header,</FONT></TT>
<BR><TT><FONT SIZE=-1>&nbsp;&nbsp; start_html(</FONT></TT>
<BR><TT><FONT SIZE=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -author=>'webmaster@graphics-muse.org',</FONT></TT>
<BR><TT><FONT SIZE=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -title=>'My Little
Tools',</FONT></TT>
<BR><TT><FONT SIZE=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -bgcolor=>'#FFFFFF',
-text=>'#000000'</FONT></TT>
<BR><TT><FONT SIZE=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; );</FONT></TT></UL>
This prints out the &lt;HEAD> section for you.&nbsp; Just modify the author
and title lines to suite your needs.&nbsp; Next comes our connection to
the msql database:
<UL><TT><FONT SIZE=-1># Open the Msql connections and select the databases
of interest.</FONT></TT>
<BR><TT><FONT SIZE=-1>my $dbh1 = Msql->connect();</FONT></TT>
<BR><TT><FONT SIZE=-1>$dbh1->selectdb('muse');</FONT></TT></UL>
The first line after the comment assigns a database handle to the variable
dbh.&nbsp; The next line use the selectdb() method to access the database
named "muse".&nbsp; Pretty simple, eh?&nbsp; You can specify a remote host
in the connect() method in the first line.&nbsp; You can also specify the
name of the database there.&nbsp; But I think explicitly calling them out
like this makes the code a little easier to maintain for someone who might
come along later and not quite understand what was going on.
<P>Ok, you've opened the connection to the database.&nbsp; Let's grab the
tools table entries.
<UL><TT><FONT SIZE=-1>my $sth = $dbh1->query("SELECT * from tools");</FONT></TT>
<BR><TT><FONT SIZE=-1>my @rows;</FONT></TT>
<BR><TT><FONT SIZE=-1>my @result;</FONT></TT>
<BR><TT><FONT SIZE=-1>while (@result = $sth->fetchrow)</FONT></TT>
<BR><TT><FONT SIZE=-1>{</FONT></TT>
<BR><TT><FONT SIZE=-1>&nbsp;&nbsp; push( @rows, td({-align=>'CENTER', -valign=>'CENTER'},
$result[1]) );</FONT></TT>
<BR><TT><FONT SIZE=-1>}</FONT></TT>
<BR><TT><FONT SIZE=-1>my $tools_list =</FONT></TT>
<BR><TT><FONT SIZE=-1>&nbsp;&nbsp; table( {-border=>1, -cellpadding=>'1',
-cellspacing=>'5'},</FONT></TT>
<BR><TT><FONT SIZE=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Tr(@rows)</FONT></TT>
<BR><TT><FONT SIZE=-1>&nbsp;&nbsp; );</FONT></TT></UL>
Looks a little confusing, but it's not really.&nbsp; The first line assigns
a handle from the SELECT statement to the variable sth.&nbsp; The handle
is used to access each row of the table that matched the SELECT query.&nbsp;
In this case, the query() method selected all rows from the table "tools".&nbsp;
If we had opened another database (besides the "muse" database) we would
have used a different database handle, such as dbh2, instead.&nbsp; Of
course we would have had to selected that database with the selectdb()
method like we did with dbh1 earlier.
<P>The next two lines just define the variables rows and result to be local.&nbsp;
However, these variables will both be list variables.&nbsp; Lists are special
in perl - you can access all the entries in the list using the @ symbol
as a prefix, or you can access individual elements of the list by prefixing
the variable name with a $ symbol and using an array element number.&nbsp;
We'll see examples of both in a moment.
<P>The next 4 lines are a while() loop that process each row returned from
our SELECT query.&nbsp; The fetchrow() method is used to assign the current
row to the @result list.&nbsp; A row, of course, consists of two entries:&nbsp;
the tooltype and the toolname.&nbsp;&nbsp; The push() line says to append
the following to the @rows list:
<UL><TT><FONT SIZE=-1>td({-align=>'CENTER', -valign=>'CENTER'}, $result[1])</FONT></TT></UL>
The @rows list is empty to start, so each time through we're adding a new
entry to the list.&nbsp; Each entry is the CGI.pm modules code for specifying
a table element.&nbsp; The stuff between the curly braces are the table
element arguments.&nbsp; After that comes a list of what goes into the
element.&nbsp; In this case, you get the tools name - $result[1].&nbsp;
Remember we assigned the current table row to the @result list, and we're
accessing an element of that list by using the $ prefix and an array index.&nbsp;
The index always starts at 0, so an index of 1 means the second element
of the list.&nbsp; What happens after this while() loop is run is that
you have a list of table elements with all the tools names in them.&nbsp;
We'll be using these when we create a table in just a moment.
<P>Below the while() loop is another local variable, tools_list.&nbsp;
This variable will be used to output a table in our page.&nbsp; The table()
function comes from CGI.pm and is used to generate a table.&nbsp; Note
that neither this nor the td() functions in the while() loop have actually
been output yet.&nbsp; We're just storing these in variables for later
output.&nbsp; Again, the curly braces enclose arguments for the table HTML
tag.&nbsp; After that is another embedded CGI.pm function - Tr().&nbsp;
This function has an uppercase first letter only because perl has its own
"tr" function and there needs to be a distinction between the two.&nbsp;
In most cases, the CGI.pm functions will use lowercase only.&nbsp; The
Tr() function creates a table row.&nbsp; Embedded within this is are all
the table elements we stuffed into the @rows list.&nbsp; Still with me?&nbsp;
Great!&nbsp; All that's left is to output this back to the browser.
<UL><TT><FONT SIZE=-1># Now print the complete table</FONT></TT>
<BR><TT><FONT SIZE=-1>print</FONT></TT>
<BR><TT><FONT SIZE=-1>&nbsp;&nbsp; center(</FONT></TT>
<BR><TT><FONT SIZE=-1>&nbsp;&nbsp; table(</FONT></TT>
<BR><TT><FONT SIZE=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {-border=>1, -width=>'100%',
-cellpadding=>1, -cellspacing=>5},</FONT></TT>
<P><TT><FONT SIZE=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Tr(</FONT></TT>
<BR><TT><FONT SIZE=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
td({-align=>'CENTER', -valign=>'CENTER'}, $tools_list),</FONT></TT>
<BR><TT><FONT SIZE=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )</FONT></TT>
<BR><TT><FONT SIZE=-1>&nbsp;&nbsp; )</FONT></TT>
<BR><TT><FONT SIZE=-1>);</FONT></TT>
<P><TT><FONT SIZE=-1># End of HTML output.</FONT></TT>
<BR><TT><FONT SIZE=-1>print end_html;</FONT></TT></UL>
The print() command is from perl.&nbsp; It just prints to standard output,
which is what you want for CGI scripts.&nbsp; The center() function comes
from CGI.pm and will center the following table.&nbsp; The table() function
comes from CGI.pm also.&nbsp; We've already created a table earlier, in
our $tools_list variable.&nbsp; Now we're going to embed that earlier table
inside another table.&nbsp; We define the new tables arguments, followed
by a single table row (Tr()) and a single element in which we add the $tools_list
table.
<P>Save all this to a file called <A HREF="web.pl">web.pl</A> in your cgi-bin
directory on your web server.&nbsp; Make sure the script has execute permissions.&nbsp;
You can see this little scripts output by accessing <A HREF="http://www.graphics-muse.org/cgi-bin/web.pl">www.graphics-muse.org/cgi-bin/web.pl.</A>&nbsp;
It's not much, but it shows how easy it is to integrate a little bit of
database info into a web page.&nbsp; For what it's worth, it only took me
about 2 days to get all this down, mostly by experimenting with examples
in the printed texts.&nbsp;&nbsp; It would have been quicker, but I did
it at work and ducking from coworkers took most of my time.
<P>Speaking of documentation, the texts you want are
<UL>
<LI>
<I><U>Offical Guide to Programming with CGI.pm</U></I> by Lincoln Stein,
published by Wiley Press.</LI>
<LI>
<I><U>Official Guide to MiniSQL 2.0</U></I> by Briand Jepson and David
J. Hughes, by Wiley Press.</LI>
</UL>
The msql guide is applicable to the 2.0 release, but I found it useful
for a refresher on using msql.&nbsp; If you need 1.0.x documentation, you
can check out the <A HREF="http://www.Hughes.com.au/">msql web site.</A>
<BR>&nbsp;
<P>
<HR WIDTH="100%">
<P><A NAME="musings"></A>
<BR>&nbsp;
<TABLE BORDER=0 COLS=1 WIDTH="100%" >
<TR>
<TD><IMG SRC="../gx/hammel/musings.gif" ALT="Musings" HEIGHT=52 WIDTH=247 ALIGN=LEFT></TD>
</TR>
</TABLE>
&nbsp;
<TABLE BORDER=0 COLS=1 WIDTH="100%" BGCOLOR="#000000" NOSAVE >
<TR NOSAVE>
<TD NOSAVE><IMG SRC="../images/cleardot.gif" HEIGHT=2 WIDTH=2></TD>
</TR>
</TABLE>
<H2>
<A NAME="xserver"></A></H2>
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=2 COLS=3 WIDTH="100%" NOSAVE >
<TR NOSAVE>
<TD VALIGN=TOP ROWSPAN="3" WIDTH="50%" NOSAVE>
<H2>
Gimp 1.0</H2>
For those of you who have been&nbsp;
<OL>
<LI>
living under a rock</LI>
<LI>
tied up and held captive by aliens</LI>
<LI>
or changing your oil for the past 3 months</LI>
</OL>
I have news for you:&nbsp; <B><FONT COLOR="#CC6600">Gimp 1.0</FONT></B>
has been released.&nbsp; The announcement came back on June 5th.&nbsp;
Since I haven't done a 'Muse column since April perhaps you missed it.&nbsp;
For some reason the trumpets didn't seem to blare as loud as I expected
they might when the announcement hit the mailing lists and comp.os.linux.announce.&nbsp;
I guess I expected more fanfare.&nbsp; Maybe there was and I missed it.&nbsp;
I was changing my oil for a while back then, too.&nbsp; Or maybe that was
the month I was with the aliens.&nbsp; It's been a long summer.&nbsp;
<P>As I mentioned at the top of this column (you know, the part you probably
don't read each month), I've spent the last year working on a book on the
Gimp.&nbsp; <A HREF="http://www.ssc.com">SSC</A>, the publishers of the
<A HREF="http://www.linuxjournal.com">Linux Journal</A> and the host of
the <A HREF="http://www.linuxgazette.com">Linux Gazette</A>, had contacted
me in June of 1997 about the possibility of doing the book.&nbsp; I thought
it was a great idea, so I jumped into it.&nbsp; The hard part has been
trying to keep the work up to date.&nbsp; Much of the writing had to wait
till there was some light at the end of the 1.0 development tunnel.&nbsp;
Not suprisingly, the past 3 months I've been buried in updates and last
minute details.&nbsp; This has been the longest last minue of my life.&nbsp;
<P>But I'm fairly happy about the book.&nbsp; It will be printed in 4-color
on glossy paper and there are lots of images and examples.&nbsp; There
is also a CD which will include all the images from the book, plus lots
of other good stuff.&nbsp; There are some things I didn't get in because
there just wasn't any time left.&nbsp; They'll have to wait for the next
edition or for articles in the Linux Journal.&nbsp; Or maybe in the 'Muse.&nbsp;
Anyway, one year is plenty for the first edition.&nbsp;
<P><A HREF="http://www.gimp.org">Gimp 1.0</A> source actually comes in
three packages:&nbsp; the core distribution, the extras package, and the
unstable package.&nbsp; The core and extras package build and install fairly
easy.&nbsp; The unstable package includes a number of very handy plug-ins
but you have to understand how to build them a little more than the core
and extras packages.&nbsp;
<P>Some of the more interesting features of the 1.0 release include a rather
good Print plug-in that can work with a number of HP and Epson printers
directly and also supports Postscript output.&nbsp; So you can print directly
to a postscript capable printer or run the output through Ghostscript.&nbsp;
<CENTER><A HREF="#next-column">-Top of next column-</A></CENTER>
</TD>
<TD ROWSPAN="3" WIDTH="2" BGCOLOR="#000000" NOSAVE><IMG SRC="../images/cleardot.gif" HEIGHT=2 WIDTH=2></TD>
<TD WIDTH="49%" NOSAVE><LH><A NAME="next-column"></A><B>More Musings...</B>&nbsp;</LH>&nbsp;
<P>No more musing this month.</TD>
</TR>
<TR NOSAVE>
<TD BGCOLOR="#000000" NOSAVE><IMG SRC="../images/cleardot.gif" HEIGHT=2 WIDTH=2><IMG SRC="../gx/hammel/cleardot.gif" HEIGHT=3 WIDTH=3></TD>
</TR>
<TR NOSAVE>
<TD VALIGN=TOP NOSAVE>Another great Plug-in is the GFig plug-in, which
allows you some limited drawing capabilities.&nbsp; You can draw circles,
curves, boxes and other shapes, repositions them, render them on separate
layers using any brush shape and color.&nbsp; The interface is a bit clunky,
but it's still an improvement on the default drawing tools.&nbsp;
<P>Other recent improvements over older development releases include:&nbsp;
<UL>
<LI>
runtime configuration via the Preferences dialog</LI>
<LI>
a Netscape interface to access online resources</LI>
<LI>
a better menu organization</LI>
<LI>
frequently used layer functions accessible via buttons now</LI>
<LI>
lots of Script-Fu scripts</LI>
</UL>
The Gimp has gotten quite a bit of press recently, including some blurbs
in the online version of Publish magazine and on NPR (National Public Radio).&nbsp;
Check Zach's <A HREF="http://xach.dorknet.com/gimp/news/">Gimp News</A>
site for more information on these.&nbsp;
<P>There are still a few things that need work, not the least of which
is support for more color models.&nbsp; But this has been discussed at
length on the developers list and a few people appear to be working on
it, at least to some extent, for the 1.2 release.&nbsp; The Gimp will have
a numbering scheme like the Linux kernel, where even numbers are public
releases and odd numbers are developers releases.&nbsp; Currently, the
1.0.4 version is the latest public release.&nbsp; There is a 1.1&nbsp;
<P>I intend to focus more of my energies towards the Gimp from now on.&nbsp;
The 'Muse columns future depends on some discussions I'm having with SSC
about another project, but for now it's just discussion.&nbsp; In any case,
after all this time, I finally plan on working on some plug-ins and scripts.&nbsp;
Since 1.0 is out, I can't whine about not having a stable version anymore.&nbsp;&nbsp;
I'll be hanging out on the Gimp-User mailing list trying to help out there.&nbsp;
With 1.0 out, it's time for the user community to show what can be done
with the tools.&nbsp;
<BR>&nbsp;
<BR>Besides, maybe we have another Gimp-based <A HREF="http://www.sirius.com/~fenster/">Diane
Fenster</A> out there.&nbsp;
<BR>&nbsp;
<BR>&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
<TABLE BORDER=0 COLS=1 WIDTH="100%" BGCOLOR="#000000" NOSAVE >
<TR NOSAVE>
<TD NOSAVE><IMG SRC="../images/cleardot.gif" HEIGHT=2 WIDTH=2></TD>
</TR>
</TABLE>
&nbsp;
<TABLE BORDER=0 COLS=1 WIDTH="100%" >
<TR>
<TD><IMG SRC="../gx/hammel/resources.gif" ALT="Resources" HEIGHT=57 WIDTH=246 ALIGN=LEFT></TD>
</TR>
</TABLE>
The following links are just starting points for finding more information
about computer graphics and multimedia in general for Linux systems. If
you have some application specific information for me, I'll add them to
my other pages or you can contact the maintainer of some other web site.
I'll consider adding other general references here, but application or
site specific information needs to go into one of the following general
references and not listed here.
<BR>&nbsp;
<TABLE BORDER=0 COLS=2 WIDTH="100%" NOSAVE >
<TR NOSAVE>
<TD NOSAVE>Online Magazines and News sources&nbsp;
<BR><A HREF="http://www.news.com/">C|Net Tech News</A>&nbsp;
<BR><A HREF="http://www.eklektix.com/lwn/">Linux Weekly News</A>&nbsp;
<BR><A HREF="http://slashdot.org/">Slashdot.org</A>&nbsp;
<P>General Web Sites&nbsp;
<BR><A HREF="http://www.graphics-muse.org/linux/lgh.html">Linux Graphics
mini-Howto</A>&nbsp;
<BR><A HREF="http://www.graphics-muse.org/ugu/ugu.html">Unix Graphics Utilities</A>&nbsp;
<BR><A HREF="http://www.digiserve.com/ar/linux-snd/">Linux Multimedia Page</A>&nbsp;
<P>Some of the Mailing Lists and Newsgroups I keep an eye on and where
I get much of the information in this column&nbsp;
<BR><A HREF="http://www.gimp.org">The Gimp User and Gimp Developer Mailing
Lists</A>.&nbsp;
<BR><A HREF="http://www.irtc.org">The IRTC-L discussion list</A>&nbsp;
<BR><A HREF="news:comp.graphics.rendering.raytracing">comp.graphics.rendering.raytracing</A>&nbsp;
<BR><A HREF="news:comp.graphics.rendering.renderman">comp.graphics.rendering.renderman</A>&nbsp;
<BR><A HREF="news:comp.graphics.api.opengl">comp.graphics.api.opengl</A>&nbsp;
<BR><A HREF="news:comp.os.linux.announce">comp.os.linux.announce</A>&nbsp;</TD>
<TD><IMG SRC="../gx/hammel/gmuse.jpg" HSPACE=10 HEIGHT=270 WIDTH=190></TD>
</TR>
</TABLE>
<A NAME="future"></A>
<H2>
Future Directions</H2>
Next month:
<BR>As usual, I'm not sure exactly what will be covered next month.&nbsp;
My next major project is a rewrite of my graphics-muse.org web site so
you can expect I'll probably have something for Web Wonderings.&nbsp; POV-Ray
3.0 is out in beta, I hear.&nbsp; Anyway, we'll see which way the winds
blow by the end of August.
<P><A HREF="mailto:mjhammel@graphics-muse.org">Let me know what you'd like
to hear about!</A>
<P>
<HR WIDTH="100%">
<DIV ALIGN=right><FONT SIZE=-1>&copy; 1998 <A HREF="mailto:mjhammel@graphics-muse.org">Michael
J. Hammel</A></FONT></DIV>
<!--===================================================================-->
<P> <hr> <P>
<center><H4>Previous ``Graphics Muse'' Columns</H4></center>
<p>
<A HREF="../issue11/gm.html">Graphics Muse #1, November 1996</A><br>
<A HREF="../issue12/gm.html">Graphics Muse #2, December 1996</A><br>
<A HREF="../issue13/gm.html">Graphics Muse #3, January 1997</A><br>
<A HREF="../issue14/gm.html">Graphics Muse #4, February 1997</A><br>
<A HREF="../issue15/gm.html">Graphics Muse #5, March 1997</A><br>
<A HREF="../issue16/gm.html">Graphics Muse #6, April 1997</A><br>
<A HREF="../issue17/gm.html">Graphics Muse #7, May 1997</A><br>
<A HREF="../issue18/gm.html">Graphics Muse #8, June 1997</A><br>
<A HREF="../issue19/gm.html">Graphics Muse #9, July 1997</A><br>
<A HREF="../issue20/gm.html">Graphics Muse #10, August 1997</A><br>
<A HREF="../issue22/gm.html">Graphics Muse #11, October 1997</A><br>
<A HREF="../issue23/gm.html">Graphics Muse #12, December 1997</A><br>
<A HREF="../issue25/gm.html">Graphics Muse #13, February 1998</A><br>
<A HREF="../issue26/gm.html">Graphics Muse #14, March 1998</A><br>
<A HREF="../issue27/gm.html">Graphics Muse #15, April 1998</A>
<P><HR><P>
<center><H5>Copyright &copy; 1998, Michael J. Hammel <BR>
Published in Issue 31 of <i>Linux Gazette</i>, August 1998</H5></center>
<!--===================================================================-->
<P> <hr> <P>
<A HREF="./index.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../index.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./roelofs.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./dibona.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P>
<!--startcut ==========================================================-->
</BODY>
</HTML>
<!--endcut ============================================================-->