Personal info for forrest

This person is currently certified at Apprentice level.

Name: Forrest Cahoon

Homepage: http://www.abstractfactory.org/

Notes: ahhh ... PostScript artist ... see my webpage. I'll improve these notes one day.

Recent diary entries for forrest:

3 Apr 2002  »

I have a perl module that hooks into the ghostscript API, and I've implemented enough to be useful: I can feed postscript into the interpreter and catch errors that I would miss using a "magic pipe" into the command-line gs.

I haven't implemented gsapi_set_stdio() yet, and I'm not certain what would be most useful for my module to do with that (although I would like to redirect stdio & stderr), but I want to get what I've got to do something useful first.

To be really useful to me, I have to get a callable library working on VMS. I went about this in a trial-and-error manner, starting by trying to put all the object files from the Ghostscript build in a big library, and removing modules that appeared to have conflicts until I could get the example C file from the API doc to link with it.

I succeeded in getting that example to run, but later I discovered a problem: gsapi_exit() was actually exiting the program! (Like, it must call C's exit().) It happened to work for that example, but it is so wrong. Phooey.

I've looked at the source, trying to trace down gsapi_exit(), but the problem continues to elude me. I've tried looking at the unix build script to figure out which modules should go in the library (and which modules shouldn't), but man, that build script is a bear! To say that it's hard for me to follow would be an understatement.

I wonder what's going on with my library?

7 Dec 2001  »

I've got a question about the Ghostscript API: I suppose this is probably a good place to ask it ...
int
gsapi_run_string (gs_main_instance *instance, const char
*str, int user_errors, int *pexit_code);
What the heck are user_errors and pexit_code for? The small example given in the API doc passes in zero for user_errors and doesn't check the value of pexit_code.

I've looked around in the rest of the gs docs and somewhat at the source code, but I'm still mystified. I've decided to proceed for the moment with "I guess I can just do like the example and ignore them", with the understanding that later on I'll probably have to go back and do it right.

Anyone care to give me a hint?

15 Oct 2001  »

Ok, I've just submitted Bug #471389 to the Ghostscript BTS. It's a strange problem with pdf rendering using GS 7.00.

I spent several days going through a huge program-generated ps file containing private data to come up with a file that illustrates the problem in less than 20 lines of postscript. I hope my work is appreciated!

I only recently discovered the shared-library system and associated Ghostscript API: this is a development which has me excited because it will allow me to hook Ghostscript into Perl in a seamless manner.

I hope the support will be there for VMS. I might have the time to look into that some; but I'm no expert in such matters. The Perl developers have managed to integrate VMS shared library support: perhaps some lessons could be taken from them.

I can't even get 7.02 to build on my Debian box now -- that's probably my stupidity, so no bug report yet:

bash$ make
src/unixlink.mak:56: warning: overriding commands for target
`gs'
src/unixlink.mak:42: warning: ignoring old commands for
target `gs'
src/unix-dll.mak:66: warning: overriding commands for target
`bin/libgs'
src/unix-dll.mak:62: warning: ignoring old commands for
target `bin/libgs'
src/unix-dll.mak:72: warning: overriding commands for target
`bin/gs'
src/unixlink.mak:66: warning: ignoring old commands for
target `bin/gs'
src/unix-dll.mak:75: warning: overriding commands for target
`bin/gs'
src/unix-dll.mak:72: warning: ignoring old commands for
target `bin/gs'
make: Circular bin/libgs <- bin/libgs dependency dropped.
make: *** No rule to make target `.so.7.02', needed by
`bin/libgs'.  Stop.
If I can manage to pursue this further, I'll look into the VMS angle.

13 Apr 2001 (updated 13 Apr 2001)  »

Oh, joy. Ghostscript 7.00 won't compile under VMS (at least, using MMK it doesn't).

The error is exactly the same as reported in bug #227684 for gs 6.50, except this time the patches he provided that made 6.50 compile for me won't work.

Yeah, I'll file a bug report in the appropriate place when I get around to it. I just thought I could gripe a little here without having to provide lots of details.

Update: I logged it here.

2 Apr 2001  »

I got several responses to my question about how to check that Ghostscipt is my interpreter ... I'll summarize here eventually, but the e-mails aren't at hand right now.

Thanks to everyone who responded!

I have an idea in the back of my mind I thought I'd mention here ... one of those things I'd like to look into one day, but don't have the background, and since I am interested in so many things, I don't know when I would get to it.

I would like to experiment with dithering algorithms which, instead of being designed for accurate reproduction, are designed for artistic effect.

In monochrome rendering, this could mean intentionally creating the moiré effects that most algorithms work hard to avoid, and trying to control them in some manner.

In color rendering, one needn't always pick the closest available colors to the target color ... perhaps randomness could be introduced?

I think there's lots of room for interesting effects here, but I have sooo much to learn about the theory of dithering before I could approach it.

1 older entry...

Others have certified this person as follows:

[ Certification disabled because you're not logged in. ]

[ Home | Articles | Account | People | Projects ]