Locana, SVG, cross-platform GUI meanderings

In article 0c7401c2ce25$21faedc0$0300a8c0@austin.rr.com,

From: “Phil Tomson” ptkwt@shell1.aracnet.com
Newsgroups: comp.lang.ruby
To: “ruby-talk ML” ruby-talk@ruby-lang.org
Sent: Thursday, February 06, 2003 2:53 PM
Subject: Re: locana, SVG, cross-platform GUI meanderings…

In article Pine.GSO.4.53.0302061656510.27369@neelix,

   [...]

bit at SVG. So would it be possible to create SVG-based GUIs that
[…]
Phil

Hiya Phil,

AFAIK, for an SVG gui to be useful it would need to handle events.
[…]

Phil et al,

I agree with your assessment that it would be a killer Ruby application
to be able to create browser delivered interfaces using a vector based
renderer (rather than HTML). For the reasons outlined above I don’t
think that SVG is up to it…but Macromedia Flash IS up to it. So,

Scalable Vector Graphics (SVG) Full 1.2 Specification
suggests that forms and widgets are on the agenda for SVG, as are
events. Is Flash an open standard?

No. And I know that folks on the Linux side of things tend to hate Flash
and therefore avoid it.

I have mixed feelings. It may not be an open
standard, but it’s widespread and so on. It’s in the
same league IMO with PDF and Postscript and (to a
lesser extent) RTF.

…perhaps… Isn’t the Postscript standard pretty well publicised
though? Lots of the free tools are now letting you write PDF files too
now, so that spec must be pretty open too (or at least easy to reverse
engineer).

Besides the fact it’s not open, is there any other
reason Linux people hate Flash? My friend hates it,
but he hates LOTS of things. :slight_smile:

Well, I think a lot of 'em think it add a huge amount of bloat to web
pages.

But we’re talking about building a GUI on it so that may not be an issue,
though personally I probably wouldn’t work on a project which used Flash
as the basis of a GUI primarily because it is a closed standard, while I
would consider (if I had the time, so I’m speaking hypothetically here)
building a GUI using SVG which is an open standard… but that’s just my
opinion.

Phil

···

Hal E. Fulton hal9000@hypermetrics.com wrote:

----- Original Message -----

Hugh Sasse Staff Elec Eng hgs@dmu.ac.uk wrote:

On Thu, 6 Feb 2003, Richard Kilmer wrote:

On Thursday, February 6, 2003, at 04:24 AM, Holden Glova wrote:

“Or perhaps the truth is less interesting than the facts?”
Amy Weiss (accusing theregister.co.uk of engaging in ‘tabloid journalism’)
Senior VP, Communications
Recording Industry Association of America

Ok. FreeBSD was hard.

What about: http://www.macromedia.com/shockwave/download/alternates/#linux

“These Linux packages (RPM, DEB, ebuild) are available for manual download,
apt-get, urpmi, or emerge for these supported operating systems: RedHat,
Mandrake, SuSE, Conectiva, Debian, Gentoo, Generic.”

If your target audience is 100% FreeBSD - then I agree. Don’t use Flash.

Useable Flash?? That’s our job. The fact that you can make a bad product
with a tool does not mean the tool is bad.

Macromedia has been very active in promoting useable Flash. They hate the
eye-candy too…

-Rich

···

----- Original Message -----
From: “Eric Hodel” drbrain@segment7.net
To: “ruby-talk ML” ruby-talk@ruby-lang.org
Sent: Thursday, February 06, 2003 2:37 PM
Subject: Re: locana, SVG, cross-platform GUI meanderings…

Besides the fact it’s not open, is there any other
reason Linux people hate Flash? My friend hates it,
but he hates LOTS of things. :slight_smile:

My dislike of flash is that it doesn’t build on FreeBSD, unless I use
the Linux ABI, which means I have to download and install a bunch of
Linux libraries (which really is trivial, portupgrade -N linux_base),
but then I have to use a Linux browser, which means I can’t modify said
browser (namely phoenix) because I’d need a linux box to compile it.

Also, I’ve only seen one useable flash site, the rest just annoy me with
eye-candy, and block navigation (which is especially annoying when
using w3m, as I often do).

Right, it’s not that the pages don’t look cool or don’t have interesting
content; the problem is that they either don’t work correctly, or that
the use of Flash doesn’t add anything to the page that can’t be done
with HTML.

And ever since those annoying hamsters, the number of Flash-humor sites
has been growing at an alarming rate. If they were funny, that would be
one thing, but many of them are just plain stupid.

Paul

···

On Fri, Feb 07, 2003 at 06:37:41AM +0900, Eric Hodel wrote:

Also, I’ve only seen one useable flash site, the rest just annoy me with
eye-candy, and block navigation (which is especially annoying when
using w3m, as I often do).

But we’re talking about building a GUI on it so that may not be an issue,
though personally I probably wouldn’t work on a project which used Flash
as the basis of a GUI primarily because it is a closed standard, while I
would consider (if I had the time, so I’m speaking hypothetically here)
building a GUI using SVG which is an open standard… but that’s just my
opinion.

so i’m polling here. i am working on a Ruby GUI, and it is in the very early
stages. right now i am planning to use the GGI api for graphics rendering.
what are the merits of SVG compared to something like GGI? what would be the
draw in using one over the other? can SVG reasonably accomadate a GUI
toolkit? could both SVG and GGI be used together seemlessly? by the way, GGI
dosn’t do font rendering and i was looking at using FreeType2 for that.

please advise.

···


tom sawyer, aka transami
transami@transami.net

What’s the difference between an open standard like SVG which
specifications are freely available and a supposedly closed standard
like Flash which specifications are also freely available ?

Is this just because SVG is driven by the W3C (after having beeing
driven by Adobe, IIRC) and Flash is driven by the baaaaad Macromedia ?
Because once again, both specifications are freely available.

···

Phil Tomson ptkwt@shell1.aracnet.com wrote:

But we’re talking about building a GUI on it so that may not be an issue,
though personally I probably wouldn’t work on a project which used Flash
as the basis of a GUI primarily because it is a closed standard, while I
would consider (if I had the time, so I’m speaking hypothetically here)
building a GUI using SVG which is an open standard… but that’s just my
opinion.


Luc Heinrich - lucsky@mac.com

Useable Flash is the developers responsiblity.

The fact that I can do something annoying or stupid in Ruby doesn’t mean
Ruby is annoying or stupid.

It means that the developer is annoying or stupid… which actually isn’t
the case most of the time… it’s the marketing department of the company
that paid for the developer.

I’ve been asked several times to create ‘non-useable’ Flash… I turned them
down, and they found somebody else. Their fault and problem… I personally
hate Flash ads… especially the ones that pop up using wmode=transparent…
and then don’t have a close button, and stay in the middle of the friggin
page… yeah… I don’t visit that site again.

I understand what you’re saying - but it doesn’t translate into ‘Flash is
bad’.

-Rich

···

----- Original Message -----
From: “Paul Brannan” pbrannan@atdesk.com
To: “ruby-talk ML” ruby-talk@ruby-lang.org
Sent: Thursday, February 06, 2003 2:54 PM
Subject: Re: locana, SVG, cross-platform GUI meanderings…

On Fri, Feb 07, 2003 at 06:37:41AM +0900, Eric Hodel wrote:

Also, I’ve only seen one useable flash site, the rest just annoy me with
eye-candy, and block navigation (which is especially annoying when
using w3m, as I often do).

Right, it’s not that the pages don’t look cool or don’t have interesting
content; the problem is that they either don’t work correctly, or that
the use of Flash doesn’t add anything to the page that can’t be done
with HTML.

And ever since those annoying hamsters, the number of Flash-humor sites
has been growing at an alarming rate. If they were funny, that would be
one thing, but many of them are just plain stupid.

Paul

Paul Brannan wrote:

And ever since those annoying hamsters, the number of Flash-humor sites
has been growing at an alarming rate.

Hey, back off the hamsters, man.

“Tom Sawyer” transami@transami.net wrote in message
news:200302061800.52047.transami@transami.net

so i’m polling here. i am working on a Ruby GUI, and it is in the very
early
stages. right now i am planning to use the GGI api for graphics rendering.
what are the merits of SVG compared to something like GGI? what would be
the
draw in using one over the other? can SVG reasonably accomadate a GUI
toolkit? could both SVG and GGI be used together seemlessly? by the way,
GGI
dosn’t do font rendering and i was looking at using FreeType2 for that.

I just took a second look at FLTK - I’m not through looking at it so this is
preliminary.
Up to this point I have considered Fox the best crossplatform choice, but I
have been wondering a lot about developing GUI natively in OpenGL. All the
toolkits I have looked at have not really been any serious option, except
perhaps GLGooy, but it is intended for Game development and spends all the
CPU on creating frames. GLGooey apparently uses the best FreeType (FTGL)and
OpenGL helper frameworks available (GLFW) - so with respect to FreeType it
may be worth a look. An OpenGL GUI can be be rendered like any normal 2D API
without redrawing the entire frame over and over (but this is not the GLGooy
way, unfortunately).

FTGL http://homepages.paradise.net.nz/henryj/code/
GLFW Casino utan Svensk Licens » Nya Casinon utan Spelpaus
GLGooy http://nwaldren.bei.t-online.de/glgooey.htm

Then I became aware the FLTK preferably renders to OpenGL. I no longer
remember my objections againts FLTK and I need more research - but there is
new FLTK 2.0 in the pipeline with multiple theme support (or potential for
it). Apparently IME (asian input) and UTF-8 is supported or at least in the
planning.

NVDIA drives OpenGL development and releases drivers to Linux and FreeBSD.
OpenGL should be as good as any 2D drawing API with 3D as a bonus to the
extend the CPU and GPU are fast enough.
Therefore it makes sense to develop GUI in OpenGL rather than stuffing
OpenGL into the GUI as a special case.
With the future 3D graphics adapters even on the average laptop, OpenGL is
indeed interesting. Of course Direct-X is also relevant, but not exactly
cross-platform.

When developing GUI applications you often end up needing a userinterface
that looks like other known GUI’s: a tree control, tool bars, dockable
windows. And inevitable these are not natively available so you either need
to purchase extremely buggy third party tools doing something similar, or
implement it youself, which is faster because you don’t need to fight the
bugs you didn’t write. And whatever is considered native OS widgets are
outdated anyway. Just look at how many different drawing styles Windows
provides in Microsoft products. Only starting with .Net do you actually get
access to a fairly updated GUI toolkit.

In consequence, you might as well use a powerful graphics API for drawing
the controls you need to draw anyway.
The major problem with OpenGL is that it does not come with an event model
or font support. Font can be handled using FTGL but the event model can be
more tricky.

Perhaps FLTK adds a layer on OpenGL that handle events and allows you to
extend with you own widgets without bogging down the CPU and without crappy
updates - or perhaps not - but then I’d rather draw manually.

SVG is nice and has improved a lot lately - but it’s still to sluggish to be
real GUI platform, although for client server alternative SVG or Flash are
interesting.

I have a vision of a thin OpenGL client with a socket to the server
application. Basically like HTML, but with a permanent socket connection and
none of the HTML DOM ambiguities. I guess not unlike how Flash works, except
using OpenGL.
Given all the crap time spend and making hopeless GUI’s in browsers, one
might as well spend the time writing a client server GUI architecture that
actually works and which compiles and all platforms supporting OpenGL.

So purely based on FLTK rendering OpenGL I think I’ll give it a second look.
That said, I have nothing against Fox if it just fixes minor drawing
problems and solves the internationalization issue - it just doesn’t allow
me to extend widgets in OpenGL.

And face it - we can either go native 3D GUI now or wait until Microsoft and
Apple does it and the do it. I’m not saying everything should be 3D, but I
wouldn’t mind reading my mails like starwars intro when logging into the
system :wink:
What I’m saying is that staying with 2D API’s has limited life expectancy.

Mikkel

:slight_smile:

Hal

···

----- Original Message -----
From: “Paul Brannan” pbrannan@atdesk.com
To: “ruby-talk ML” ruby-talk@ruby-lang.org
Sent: Thursday, February 06, 2003 3:54 PM
Subject: Re: locana, SVG, cross-platform GUI meanderings…

And ever since those annoying hamsters, the number of Flash-humor sites
has been growing at an alarming rate. If they were funny, that would be
one thing, but many of them are just plain stupid.

But we’re talking about building a GUI on it so that may not be an issue,
though personally I probably wouldn’t work on a project which used Flash
as the basis of a GUI primarily because it is a closed standard, while I
would consider (if I had the time, so I’m speaking hypothetically here)
building a GUI using SVG which is an open standard… but that’s just my
opinion.

What’s the difference between an open standard like SVG which
specifications are freely available and a supposedly closed standard
like Flash which specifications are also freely available ?

IMHO, SVG is more driven by notions of architectural correctness, while Flash
is more market-driven. You also want to keep in mind that Flash plugins are
available for all major browsers on all platforms, while there is no functioning
SVG plugin for the latest browsers on Linux and perhaps other “non-
mainstream” platforms? (At least I don’t think there is–I use Linux and have
made repeated attempts to find such a plugin). Personally, I favor the greater
openness and “correct” architecture of SVG, but the market may have other
ideas.

Is this just because SVG is driven by the W3C (after having beeing
driven by Adobe, IIRC) and Flash is driven by the baaaaad Macromedia ?
Because once again, both specifications are freely available.

I wouldn’t call the Flash specification “freely available.” Free of charge, yes. But
in order to obtain it, you have to join Macromedia’s developer program; in order
to do that, you have to give them, oh, I don’t remember exactly, but various
information about your company. You also have to tell them what kind of
software you are developing and when you plan to release it, agree to certain
quality standards for any released software (not that I’m against quality
standards), and I think you have to give Macromedia certain rights over your
code. I did this about a month ago, so I don’t remember in great detail, but the
agreement was very clearly designed to limit the rights of developers and
protect Macromedia’s interests. And (though I’m not a lawyer) I got the distinct
impression that Macromedia’s license conditions would make it very difficult, if
not impossible, to develop open-source software for Flash.

I’m not alleging an evil intentions here, just saying that the Flash spec is far
from free, in the sense that open source people usually mean the term.

···

On 8 Feb 2003 at 4:07, Luc Heinrich wrote:

Phil Tomson ptkwt@shell1.aracnet.com wrote:


Matt Gushee
Englewood, CO USA

One entity cannot change an open standard without consultation, then
insist you upgrade or refuse to support you, etc. Consider why
using object tags in web pages isn’t commen practice: Internet
Explorer (very commonly used) doesn’t support this, but has it’s own
embed tag, which is not in the standard. Or: just how many dialects
of BASIC were there…?

    Hugh
···

On Sat, 8 Feb 2003, Luc Heinrich wrote:

What’s the difference between an open standard like SVG which
specifications are freely available and a supposedly closed standard
like Flash which specifications are also freely available ?

What’s the difference between an open standard like SVG which
specifications are freely available and a supposedly closed standard
like Flash which specifications are also freely available ?

With an open standard, the control is shared between many individuals.

Is this just because SVG is driven by the W3C (after having beeing
driven by Adobe, IIRC) and Flash is driven by the baaaaad Macromedia ?
Because once again, both specifications are freely available.

Since the standard is closed, what stops Macromedia from changing it in
such a way that breaks alternate implementations of players, authoring
tools, etc. This is far less likely to happen if control of the
standard is shared between many interests.

···

Luc Heinrich (lucsky@mac.com) wrote:


Eric Hodel - drbrain@segment7.net - http://segment7.net
All messages signed with fingerprint:
FEC2 57F1 D465 EB15 5D6E 7C11 332A 551C 796C 9F04

In article 1fq10nz.1dbc9zz1fuo4w0N%lucsky@mac.com,

But we’re talking about building a GUI on it so that may not be an issue,
though personally I probably wouldn’t work on a project which used Flash
as the basis of a GUI primarily because it is a closed standard, while I
would consider (if I had the time, so I’m speaking hypothetically here)
building a GUI using SVG which is an open standard… but that’s just my
opinion.

What’s the difference between an open standard like SVG which
specifications are freely available and a supposedly closed standard
like Flash which specifications are also freely available ?

Is this just because SVG is driven by the W3C (after having beeing
driven by Adobe, IIRC) and Flash is driven by the baaaaad Macromedia ?
Because once again, both specifications are freely available.

Fair question… Whereas the spec for creating ‘programs’ with Flash (is
‘program’ the right word here? Maybe ‘presentations’ would fit better) is
open because Macromedia wants people to develop ‘presentations’ with their
tool. However, the program for running these ‘presentations’ isn’t. I
suppose that someone could come up with their own implementation for playing
Flash presentations but so far I don’t believe anyone has AND perhaps there are
legal issues in the license for the Flash spec (“Thou shalt not try to
create your own Flash player based on this spec” ? I guess that’s a good
question: is there anything keeping, for example, the Mozilla project from
making their own Flash player? If not, then why isn’t someone working on
this?)

Now, let me place another qualification on my original statement:

Personally I probably wouldn’t work on a project for free which used
Flash as the basis of a GUI primarily because it is a closed standard
(or at least the player is closed at this point). However, if I were being
paid to do so I wouldn’t have a problem with it.
[I’m not sure why I should volunteer to do a project which promotes the interests of a commercial company. Does that make more sense? I’m not saying that Macromedia is evil only that it’s a corporation that is looking out for it’s profits which of course is what corporations do, but why should I promote their interests without being compensated for doing so?]

Phil

···

Luc Heinrich lucsky@mac.com wrote:

Phil Tomson ptkwt@shell1.aracnet.com wrote:

“Tom Sawyer” transami@transami.net wrote in message
news:200302061800.52047.transami@transami.net

But we’re talking about building a GUI on it so that may not be an
issue,
though personally I probably wouldn’t work on a project which used Flash
as the basis of a GUI primarily because it is a closed standard, while I
would consider (if I had the time, so I’m speaking hypothetically here)
building a GUI using SVG which is an open standard… but that’s just my
opinion.

so i’m polling here. i am working on a Ruby GUI, and it is in the very
early
stages. right now i am planning to use the GGI api for graphics rendering.
what are the merits of SVG compared to something like GGI? what would be
the
draw in using one over the other? can SVG reasonably accomadate a GUI
toolkit? could both SVG and GGI be used together seemlessly? by the way,
GGI
dosn’t do font rendering and i was looking at using FreeType2 for that.

please advise.

This fairly new /. article has a good summary but seems to be missing
GLGooey

Someone mentions rendering widgets on textures - this is the kind of stuff
I’d like to see but which non-one is doing.

I looked af FLTK 1.x on Windows. It’s generally clean and fast - it does not
abuse the CPU and do not have the rendering glitches that Fox sometimes
has - like a delayed flash of the entire GUI when selecting a menu (or
something like that). But in the demo I looked at, edit box did not
understand ctrl+Z for undo and similar. I guess you could add this though.
tabs in dialogs holding a text box would create a tab instead of tabbing to
next control. A button with focus will be pushed by space instead of enter -
enter works like tab. Scroll-bars are missing a gray line making them look a
little odd.
In 2.0 there will be multiple rendering devices with OpenGL and native
Windows/Mac OS-X support. I don’t know how the Fltk 1.x is rendered on
Windows, but demos do show OpenGL GUI without hogging CPU.
Generally I think the rendering technology is good, but platform
compatibility must be better - it’s not a matter of native vs. non-native
rendering. The response to user input events must match the platform.
I guess these things can be fixed when implementing the application, but it
is annoying.
I noticed an add-on to Fox that improves the way connections are attached to
GUI actions to handle click events - that removes one important problem
where it would otherwise be difficult to use member functions as event
targets.

Overall FLTK leaves a fairly good impression - you can certainly make useful
GUI’s.
I guess I’d still prefer the Fox GUI though.

However, if I were about to write my own OpenGL widgets, I would seriously
consider using FLTK as a foundation.

wxWindows: I never actually downloaded and tested it, but it’s fairly large
and smells a lot like MFC which isn’t a good thing. MFC is ok, but old.

Mikkel

Mikkel:

Quick nitpicky point:

OS X does draw everything in 3D using OpenGL. All 3D-looking widgets
are, in fact, 3D widgets, I believe.

Heck, I remember that even the Terminal had OpenGL-rendered text. There
was a whole thread (elsewhere) about how awful the text looked on it…

but please don’t let this post throw the thread off… :slight_smile:

-rh

···

And face it - we can either go native 3D GUI now or wait until
Microsoft and
Apple does it and the do it. I’m not saying everything should be 3D,
but I
wouldn’t mind reading my mails like starwars intro when logging into the
system :wink:
What I’m saying is that staying with 2D API’s has limited life
expectancy.

Mikkel,

http://www.ugcs.caltech.edu/~leon/ruby/gutopia/paragui.html

this was originally one of the primary target plaforms for GUtopIa until i
rethought and decided to split the project into two parts. 1) high level
interface definition language, for which any one can make a binding too,
whether it be GTK, FLTK, FOX, ParaGUI, etc. And 2) a lower level pure Ruby
GUI, which will build off Wise as a starting point, but using a
cross-platform backend toolkit (i.e. GGI).

note: the state of 3D GUI is still in early stages. that’s the only reason why
i did not go strictly with ParaGUI. but ParaGUI looks to be the best one so
far.

you can thank Leon Torres for the binding by the way.

···

On Thursday 06 February 2003 07:35 pm, MikkelFJ wrote:

What I’m saying is that staying with 2D API’s has limited life expectancy.


tom sawyer, aka transami
transami@transami.net

There is a GPL Flash library/viewer/plugin:

Wilbert


Wilbert Berendsen (http://www.xs4all.nl/~wbsoft/)
“The most reliable proof that there are extraterrestrial intelligent
lifeforms out there is that nobody actually tries to get in contact
with us.” – Dirk Mueller

···

On Friday 07 February 2003 21:28, Phil Tomson wrote:

In article 1fq10nz.1dbc9zz1fuo4w0N%lucsky@mac.com,
[…] I suppose that someone could come up with
their own implementation for playing Flash presentations but so far I
don’t believe anyone has AND perhaps there are legal issues in the
license for the Flash spec (“Thou shalt not try to create your own
Flash player based on this spec” ? I guess that’s a good question: is
there anything keeping, for example, the Mozilla project from making
their own Flash player? If not, then why isn’t someone working on
this?)

why should I promote their interests without being compensated for doing
so?]

Phil

Because they promote the distribution, fixing and support of the player that
powers your project.

Most of the heavy-hitters in Flash application development are who they are
because they created open source projects that use the Flash player.

… plus - MM has more to lose than you do, if the Flash player dies.

-Rich

“MikkelFJ” mikkelfj-anti-spam@bigfoot.com wrote in message
news:3e442f5c$0$139$edfadb0f@dtext01.news.tele.dk…

“Tom Sawyer” transami@transami.net wrote in message
news:200302061800.52047.transami@transami.net

Overall FLTK leaves a fairly good impression - you can certainly make
useful
GUI’s.

I just forgot one major problem: When dragging a window over a FLTK window
it should redraw, but it doesn’t - so you easily get a messed up window.

Mikkel

“Tom Sawyer” transami@transami.net wrote in message
news:200302062038.30946.transami@transami.net

What I’m saying is that staying with 2D API’s has limited life
expectancy.

Mikkel,

http://www.ugcs.caltech.edu/~leon/ruby/gutopia/paragui.html

this was originally one of the primary target plaforms for GUtopIa until i

I have looked at ParaGUI and when I mentioned looking at 3D GUI’s I was also
thinking of this one.
It is one of the better offers, but I was never impressed with the
screenshots provided. That doesn’t mean things don’t evolve at ParaGUI.

rethought and decided to split the project into two parts. 1) high level
interface definition language, for which any one can make a binding too,
whether it be GTK, FLTK, FOX, ParaGUI, etc.

I’m a bit concerned with the match everything - generally yes - a
standardized way for GUI’s in Ruby is great - it’s just that there or so
many ways to bind events. GLGooy uses bidirectional connections like Fox and
at a higher level FreeRide Software Bus. I think FLTK and wxWindows uses a
waterfall / bubble up principle like MFC and HTML DOM - but I need to look
more at FLTK - I don’t really fancy the waterfall method because it’s hard
to tell which handler catches the event.

And 2) a lower level pure Ruby

GUI, which will build off Wise as a starting point, but using a
cross-platform backend toolkit (i.e. GGI).
Sounds like Computer Graphics Interface - didn’t it die long ago?

note: the state of 3D GUI is still in early stages. that’s the only reason
why
i did not go strictly with ParaGUI. but ParaGUI looks to be the best one
so
far.

I agree it’s early - but you still have a great 2D API in OpenGL - and I’m
not saying 3D buttons should be in 3D space necessarily - but I wan’t to be
able to manipulate graphs in 3D as a natural extension to the GUI. Earlier I
was hooked on SDL but realized OpenGL propably is the best choice.

Mikkel

···

On Thursday 06 February 2003 07:35 pm, MikkelFJ wrote: