Older blog entries for sej (starting at number 123)

tnt, if you're interested in vector-graphic libraries, check out this sub-topic page at the Vector Graphics Foundry. The Anti-Grain Geometry library seems the most actively developed at present. It may be the most feature complete, I don't know. I do know it uses an evolved anti-aliasing raster rendering technique derived from libart and TrueType. libplot is also worth considering -- it is a librarification of the X11 renderer.

As for searching for the one true vector graphics library, I wouldn't try. Find the one that works for you. Ideal would be a few good libraries, and a few good interchange formats. We are lacking the generally accepted free-software friendly interchange format. Complete things like Flash, OpenML, and even SVG are patent encumbered. If you exclude multi-media data (sound and motion), the Sketch format might be complete enough with its language for gradient-fills, etc.. If you create one yourself, let me know and I'll add it to my lists.

17 Jan 2002 (updated 17 Jan 2002 at 22:18 UTC) »
mobius once said:

Why must every language have it's own ideas of what operators should do what? Yes, some are stupid. But Why should I have to remember that commas are list separators except in the case where there are two of them in a row? And what if I have an empty item in my list?

Mostly, what's wrong with having "+" or "." be the cat operator? + makes sense in that you're getting the sum of two strings. </rant inspiredBy=sej>

I guess this was in response to this diary entry. As a friend of mine used to say, thanks for asking :-)

First, I should explain my command interpreter supports 3 distinct aggregrate data structures: randomly-indexed lists (or arrays), sequentially-accessed streams, and attribute-lists (or dictionaries). There is also a string data type, but it is a scalar entity as far as this discussion (and yes, "+" concatenates two strings).

Attribute-lists are accessed with a "." notation. If "abc" is an attribute-list, "abc.xyz" resolves to a name/value pair (an attribute), where "xyz" is the name, and the value is arbitrary (if there is no "xyz" attribute in the "abc" list it resolves to nil). So the "." is taken.

The other two aggregate data types are somewhat orthogonal to each other, lists which are traversed by iterating an index variable, and streams which are traversed until a next operator returns nil. Streams have an APL-like ability to overdrive scalar operations. "1,2,3,4" is a list of length 4. "1,,2,,3,,4" is a stream that will return 4 values. "1,2+3,4" is a stream that will return 2 values, 4 and 6.

The reason for liking ",," as the stream concatenator is that a long time ago I've employed ".." as the integer iteration operator ("1..10" is a stream that will generate a count from 1 to 10), and "**" as the repeat operator ("1**10" is a stream that will generate ten 1's). So the ",," was a natural as the third exclusively stream-based operator.

So the short answer to your mild rant is that different languages use operators in a different manner because they are trying to accomplish different things. To quickly conclude that the choice of operators is idiosyncratic and frivolous might be a mistake, when the truth might be the choice of operators is idiosyncratic but not at all frivolous. :-)

p.s. streams are nil terminated, but lists/arrays can have nil entries.

gdb support for debugging g++-3.* compiled code is improving, thanks to drow (and others, I'm sure). Using the cvs version, you can print the contents of most classes. A little thing, I know, but hard to live without. Now if we could only see the virtual function table pointer, and get a fix for breaking by line numbers...

A pleasant side-effect of constantly building and testing gdb is knocking off known bugs for ivtools. Anybody want to join the party?

bagder, you're da man. Not only for thinking out of the copyleft box. Today I was unable to upload to a new funky ftp server at my web providers using any kind of ftp utility. But cURL could do it. And for the first time I've got a command-line upload utility that works for me.

Release 1.0.1 of ivtools. The release everyone waits for. The release numbered the same as the highway I commute on everyday (for a whole 3 exits worth), the highway that runs from Seattle to Los Angeles right through Silicon Valley.

New fun features include a transparent background color for making semi-transparent patterns, and a set of comdraw commands for raster creation, poking, and (polygonal) clipping.

In related news pstoedit-3.31 is out, with better idraw format support. Now you can enter drawtool - into the print dialog box of Netscape, for example, and have the Postscript rendered directly into a graphics editor for further editing before printing.

tk, I think an article on the free software civil war would be interesting, but I have a feeling the resultant discourse would not alleviate the discord. Maybe you should try that experiment. I was inspired to make the secret society comment after following your link to ESR's Dancing with Gods article.

Sometimes I think an esoteric and gnostic programming society already exists, but the members are mostly hermits, and their works are often overlooked in favor of those with greater allegiance to one or the other side in the civil war.

17 Dec 2001 (updated 17 Dec 2001 at 21:32 UTC) »
cjwatson, the Illuminatus Trilogy will do that to you. Enjoy it.

tk, maybe we should go for a secret society instead of a movement :-).

tk sez: I agree with your (slef's ?) view that building on each other's work is necessary for an efficient development model. Indeed, I think this'll be a good pragmatic (or as you put it, "realistic") argument for the original FS ideal: that sharing code makes development more efficient, but in order for this sharing to achieve its full potential, there must be no legal constraints on the work or the sharing process, save those necessary to ensure the absence of other constraints. Now that'd be a better argument for going into FS than all of RMS's rhetoric. Perhaps a new movement should be started. :-)

I'm all for rebooting into a new movement aimed at maximizing programmer collaboration and productivity, and leaving behind all the arguments about user freedoms vs. business appeal. Time for a third party in software politics.

Just surveyed some of my ancient Usenet postings. I reread a GPL license query where I've regretted the wording all these years, and found out much to my surprise I had been polite and reasonable. Whew...

Had a dream last night about falling in love with an information-sharing movement, then realizing it was run by an information-sharing revolutionary intent on abolishing non-free information. Then I woke up and it was still true. Oh well, I had those few hazy moments of liking the dream, in a world where the inclusive AND takes precedence over the exclusive OR.

Thought I'd take a break after ivtools-1.0. I guess its an addiction. Soon we'll have 1.0.1, the release everybody waits for.

I finally made a menu option for a transparent background color, a mechanism that has always been available under the hood in the framework, but never exposed in the drawing editor GUI. This makes for a lightweight version of alpha-transparency.

I was somewhat inspired to complete this task when we rented a PlayStation2 over Thanksgiving, and played ESPN Extreme Games. The video screens emulate the DVE (digital video effects) device used by ESPN to inset scores and stats. But instead of full-blown alpha transparency to make them partially transparent, they use a stipple pattern, half black dots, half transparent. Much faster when you don't have the alpha-compositing hardware (and I guess I should know, I'm the software engineer on the real-world DVE used by ESPN).

And what about alpha-compositing in ivtools? Still biding my time, waiting to see if the X11 Rendering extension is easy to use and becomes ubiquitous, or whether some other wunder-library shows up (libart? Ghostscript renderer?). Or I might evolve the rather complete building blocks already in ivtools for double-buffered rendering to do the task. I wouldn't get anti-aliasing at the same time, and that would be nice. Hmmm...

Anyone else find it amusing that pmcgovern is making inverted use of the popular distinction between open-source and free-software that RMS has labored to create? Admit it, we have a truly religious conflict here, judging and separating people not on their actions or results, but on slight differences in their belief systems. No problem really, I believe independent experiments lead to faster progress, 'cuz (one of) my (current) religion(s) is science.

114 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!