00:09.24 |
*** join/#brlcad ``Erik_
(n=erik@ftp.brlcad.org) |
00:09.32 |
``Erik_ |
points and laughs at
starseeker some |
00:09.38 |
``Erik_ |
points and laughs at
starseeker some/part |
00:09.47 |
*** part/#brlcad ``Erik_
(n=erik@ftp.brlcad.org) |
00:09.58 |
``Erik |
woops, accidently tapped the up
arrow |
00:11.28 |
``Erik |
it does seem to be dropping packets,
though |
00:12.00 |
``Erik |
or, rather, a router close to it is dropping
packets :/ |
00:12.39 |
brlcad |
yeah, there's some networking
problem |
00:12.46 |
brlcad |
50-90% packet loss |
00:12.47 |
``Erik |
with "pnap" |
00:12.56 |
brlcad |
been going since about 18:36 EDT |
00:13.26 |
brlcad |
seems to be a main sago router, main website
doesn't come up nor various routers will ping without
loss |
00:14.13 |
``Erik |
traceroute indicates sago's uplink provider
(pnap) is having issues between their backbone and sagos
drop |
00:18.14 |
*** join/#brlcad d-lo
(n=claymore@bz.bzflag.bz) |
00:26.14 |
Ralith |
brlcad: ping? |
00:32.13 |
brlcad |
Ralith: pong? |
00:37.13 |
Ralith |
there we are. |
00:37.47 |
Ralith |
was '16:02:36 < brlcad> yeah, same here'
a reply to my comment on Qt? |
00:38.59 |
brlcad |
is painfully dealing with the
network woes at the moment, apologies on delay |
00:39.10 |
Ralith |
no worries |
00:40.18 |
brlcad |
the "yeah, same here" comment was due to the
networking problems.. went to the wrong channel |
00:40.23 |
Ralith |
ahh. |
00:40.46 |
brlcad |
I type and then it shows up anywhere from 1 to
60 seconds later |
00:41.02 |
Ralith |
that would be very frustrating. |
00:41.15 |
Ralith |
so, bad time to discuss UI toolkits further I
guess :P |
00:43.36 |
brlcad |
is reading the
backlog |
00:44.15 |
brlcad |
ah, I see now -- your comment |
00:44.35 |
brlcad |
I wouldn't pick qt for native integration
capability, just a side comment I think |
00:44.55 |
brlcad |
it's more the other things (widget-wise) that
qt or rbgui or whatever provide |
00:45.13 |
brlcad |
and no, I try not to sleep |
00:45.18 |
brlcad |
a piece of you dies every time you
sleep! |
00:45.20 |
Ralith |
lol |
00:46.10 |
Ralith |
looks over Qt's widget
offerings |
00:46.11 |
brlcad |
kanzure, you see the gsoc list of converters
that folks could work on? :) |
00:46.22 |
brlcad |
I suspect that will answer your question about
sldprt files |
00:46.43 |
kanzure |
heh |
00:46.50 |
kanzure |
that did turn up in my search results a few
hours ago actually |
00:46.53 |
kanzure |
(the wiki page in particular) |
00:47.06 |
brlcad |
we show up on a lot of search
results.. |
00:47.35 |
brlcad |
I often go hunting for something only to find
a brl-cad page in the top list of results (or the top result) ...
dammit! ;) |
00:47.39 |
brlcad |
if we had it, I wouldn't be loking
:) |
00:48.03 |
brlcad |
we're just often apparently a main source for
even discussing some matters |
00:48.16 |
Ralith |
BRL-CAD is extremely unique |
00:48.19 |
Ralith |
that has that result. |
00:49.12 |
brlcad |
actually I think it happened just yesterday
when we were talking about guis and I went to search for that
screenshot I was looking for |
00:49.35 |
brlcad |
top result was that wiki discussion page about
gui options |
00:50.05 |
brlcad |
ah, the rbgui avi |
00:50.38 |
brlcad |
nay a link on rightbraingames, but our wiki
sure came up |
00:50.56 |
brlcad |
dmaybeprobably just the way I phrased
it |
00:51.19 |
Ralith |
helps that rightbraingames has barely a web
presence |
00:51.29 |
Ralith |
and that you wrote most of the relevant wiki
pages. |
00:52.18 |
``Erik |
heh, I was looking for something about some
archaic computer a few days ago and ended up at http://ftp.brl.mil O.o |
00:53.23 |
Ralith |
hmm, Qt's docs look really good. |
01:00.28 |
*** join/#brlcad dreeves
(n=dreeves@67.130.253.14) |
01:11.42 |
Ralith |
in fact it looks pretty fun to dev
for |
01:34.51 |
``Erik |
the before, in the long long ago, I used qt
due to the awesome docs and tutorials, but ended up switching to
gtk+ because of the repaint on resize issue (as well as the painful
compile times of c++ on a 120mhz cpu with 48m ram) |
01:34.51 |
``Erik |
the before time, rather |
01:34.53 |
Ralith |
that's quite the before time. |
01:35.07 |
Ralith |
Qt still has painful compile times, but that
shouldn't be a real issue |
01:35.22 |
Ralith |
since even devs will need to compile it at
most once, barring upgrades |
01:41.01 |
``Erik |
um, I meant compiling the programs that use qt
:) |
01:41.09 |
Ralith |
ah. |
01:41.18 |
Ralith |
hopefully that isn't too bad. |
01:41.27 |
*** part/#brlcad jdoliner
(n=jdoliner@c-68-51-76-57.hsd1.il.comcast.net) |
01:42.26 |
``Erik |
hm, I'm under the impression that the BRL-CAD
compile is disproportionately dominated by OpenNURBS (the only
significant chunk of c++, iirc) :/ |
01:43.06 |
Ralith |
the BRL-CAD compile isn't that bad. |
01:43.25 |
``Erik |
I know on this machine I'm running a
portmanager on right now, c++ ports grind the machine down to a
halt, and beat on swap a lot :( |
01:43.26 |
Ralith |
g3d should be a significantly smaller
codebase, depiste C++ness |
01:43.40 |
``Erik |
gtk+ compiles faster than cmake heh
:( |
01:43.46 |
Ralith |
:P |
01:44.11 |
``Erik |
pheer my 650mhz p3 with 128m ram! PHEER
IT! |
01:44.36 |
Ralith |
lol |
02:04.00 |
Ralith |
brlcad: discovery! Qt appears to ship with
support for drawing to OpenGL! |
02:04.01 |
Ralith |
:D |
02:07.32 |
Ralith |
brb |
02:28.15 |
Ralith |
returns |
02:42.27 |
brlcad |
``Erik: openNURBS did increase the compile
time by approximately 50-150% depending on plat, compiler, and
memory |
02:43.28 |
brlcad |
and increased overall code size by about 20%
with about 200k of sources |
02:43.47 |
brlcad |
c++ just compiles a whole lot slower than
c |
02:44.48 |
brlcad |
Ralith: I know -- it wouldn't be very useful
or interesting toolkit without an opengl widget :) |
02:44.54 |
Ralith |
nonono |
02:45.05 |
Ralith |
drawing to OpenGL a la stellarium |
02:45.13 |
Ralith |
that's not a custom hackjob there |
02:45.21 |
Ralith |
see:
http://labs.trolltech.com/blogs/2008/06/27/accelerate-your-widgets-with-opengl/ |
02:45.37 |
Ralith |
I grabbed and build the code; runs great,
looks simple to duplicate |
02:46.27 |
brlcad |
ah, yeah, that too |
02:48.30 |
brlcad |
that's not quite what stellarium is doing
iirc, but akin to Glitz |
02:49.24 |
Ralith |
what's stellarium doing, then? |
02:49.32 |
Ralith |
this seems to be what we need. |
02:50.41 |
brlcad |
iirc, they're inheriting off of the various qt
widget classes and overriding the drawing routine |
02:51.09 |
brlcad |
instead just drawing an alpha-channeled image
for many of those items |
02:52.16 |
brlcad |
the image drawing is still done through qt,
though, so it has the option to use ogl acceleration to blit the
image as texture quads on the backend |
02:52.26 |
brlcad |
*textured |
02:53.02 |
Ralith |
in the example I linked, if I'm reading it
correctly, it's basically just saying "Here's my GUI; render it
with OpenGL, please." |
02:53.12 |
Ralith |
and then overriding the background to draw the
3D stuff through normal OpenGL calls. |
02:54.20 |
Ralith |
of course, there'd be a bit more work in our
case since there's the need to hook everything up to Ogre instead
of pure OpenGL |
02:54.52 |
brlcad |
actually I think it'll work easier the other
way around |
02:55.04 |
Ralith |
other way around? |
02:55.27 |
brlcad |
setting up the window/view/context(s) with qt
and then initializing ogre at a lower level to use that
context |
02:55.52 |
Ralith |
ah, you're probably right |
02:56.20 |
brlcad |
instead of starting up with ogre and finding a
way to initialize qt to use it |
02:56.42 |
Ralith |
I think there's even some example code of
putting Ogre inside Qt that could be leveraged |
02:56.52 |
Ralith |
since it's basically the same
mechanisms |
02:56.57 |
brlcad |
yep |
02:58.37 |
Ralith |
sounds like a plan. |
03:03.09 |
brlcad |
"The network issue has been resolved. There
was a major DDoS attack that flooded Sago's bandwidth. The IPs that
were being attacked have been null routed which stopped the DDoS
attack." |
03:03.23 |
Ralith |
yay! |
03:31.25 |
Ralith |
brlcad: where does submitting a formal gsoc
application fit in to the participation checklist? |
03:32.23 |
Ralith |
it's suggested elsewhere that commit access
should be obtained beforehand, but that's the last item on said
list, which also includes references to mentor discussions and
design docs and such, which seems inconsistent. |
03:35.54 |
Ralith |
to put it more simply, I'm wondering what I
should get done before sending in my app; for example, should I
update the OpenGL GUI page with documentation of what we've
discussed? |
03:35.55 |
brlcad |
Ralith: the participation checklist is for
those already applied and selected, sort of a to-do list after the
fact |
03:36.00 |
Ralith |
ahh. |
03:36.24 |
brlcad |
the getting started section at http://brlcad.org/wiki/Google_Summer_of_Code
is the first steps |
03:36.39 |
Ralith |
because it contains many items that are
elsewhere emphasized as things to do beforehand. |
03:36.46 |
brlcad |
yeah, it overlaps |
03:39.22 |
brlcad |
independent lists each with items not on the
other .. should probably combine them into one, one list with two
sections perhaps |
03:40.19 |
brlcad |
e.g., first one says to interact on #brlcad ,
the other is specific to introduce yourself (and your
project) |
03:40.23 |
brlcad |
if you hadn't already |
03:40.46 |
Ralith |
kk |
04:12.02 |
*** join/#brlcad copenhague
(n=copenhag@d206-75-233-96.abhsia.telus.net) |
04:21.53 |
Ralith |
brlcad: is scripting language support a
responsibility of the editor, or something to be provided by an
external library? |
05:44.50 |
starseeker |
Arrrgh - I wish I wasn't broke...
http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&ssPageName=STRK:MEWAX:IT&item=250395300975 |
05:46.39 |
starseeker |
oh well, no storage anyway |
05:49.23 |
Ralith |
now that would be cool to model. |
05:49.54 |
Ralith |
we should build up a bunch of neat blueprints
like that and suggest people model them for future SoCs
:D |
06:37.35 |
*** join/#brlcad madant
(n=madant@117.196.144.31) |
06:49.25 |
*** join/#brlcad madant
(n=d@117.196.144.31) |
07:24.33 |
yukonbob |
hello, cadheads (from Las Vegas!) |
07:25.45 |
Ralith |
hello, yukonbobhead! |
07:25.50 |
Ralith |
what're you up to down there? |
07:28.45 |
yukonbob |
Ralith: hi |
07:29.49 |
yukonbob |
Ralith: visiting wife + kid... I'm working in
Vancouver, she's working in Alberta (with baby), and believe it or
not, this was convenient. |
07:30.18 |
yukonbob |
(she' was presenting paper earlier this week
in Vegas; she's a cultural anthropologist) |
07:30.25 |
Ralith |
that doesn't sound like much fun :/ |
07:30.34 |
Ralith |
(the vancouver/alberta thing, not the paper
thing) |
07:30.36 |
yukonbob |
Ralith: no fun at all... |
07:30.48 |
yukonbob |
Ralith: looking forward to the end of this
situation |
08:44.25 |
Ralith |
brlcad: you there? |
08:44.29 |
brlcad |
yep |
08:44.59 |
Ralith |
how does 'stubbing' functionality by backing
it with libged sound? |
08:45.23 |
Ralith |
will the interfaces be similar enough for it
to be easily converted to the geometry service? |
08:45.50 |
brlcad |
scripting support is going to be handled by
the front-end, but probably a plugin facility in the geometry
service's domain |
08:46.11 |
brlcad |
or a layer in-between |
08:46.49 |
brlcad |
that sounds good -- that's sort of what mafm's
work to date did |
08:47.09 |
Ralith |
I wasn't aware that mafm's work to date did
much talking to BRL-CAD at all. |
08:47.59 |
Ralith |
re: scripting, that leaves me a little
unclear |
08:48.25 |
Ralith |
g3d is expected to implement scripting in the
short term, but eventually it will be separated out? |
08:49.32 |
brlcad |
yeah, it already uses libged to open a .g
geometry file, display geometry, undisplay, etc |
08:50.49 |
Ralith |
ah. |
08:50.51 |
brlcad |
basically, most things will have to be handled
by the application in the short term and/or worked with the other
bigger projects as they come to fruition |
08:51.08 |
Ralith |
kk |
08:51.29 |
Ralith |
sounds like a standalone scripting system
would make yet another good soc project |
08:51.34 |
Ralith |
well |
08:51.36 |
Ralith |
maybe not |
08:51.43 |
Ralith |
as it'd have a pretty ill defined interface
for the time being, I think |
08:52.15 |
brlcad |
example, when this is done, an application
wouldn't need (or want) to have to maintain ged structures -- that
would happen by the service automatically |
08:53.08 |
brlcad |
the goal is for the client to be a
thin-client, minimum functionality with most of the logic happening
on an application-backend through a plugin-architecture |
08:53.32 |
brlcad |
notes that this is better
explained with pictures, but maybe you get the
gist |
08:54.10 |
Ralith |
I think I do, especially since it's a very
clean way to do things. |
08:54.12 |
Ralith |
very unixy. |
08:54.32 |
Ralith |
which is something increasingly (and
worryingly) rare among large-scale projects. |
08:54.50 |
brlcad |
that's why, though, I was mentioning yesterday
that the goal shouldn't be so much to focus on how it interacts
with geometry, libged, librt, geometry engine, geometry service, et
al, but to work on the gui itself and getting that framework set up
(polished, clean look and feel, etc) |
08:55.00 |
Ralith |
yeah |
08:55.02 |
Ralith |
that makes perfect sense |
08:55.16 |
Ralith |
no point spending devtime on something that'll
be deprecated in short order, and was never really good practice to
start with. |
08:55.51 |
brlcad |
a little less exciting perhaps, but it's the
only known step without -- as you note -- working on a backend
feature like a scripting module in the geometry service |
08:55.59 |
brlcad |
which would be cool, but yeah -- another
project in itself |
08:56.38 |
brlcad |
right, the measures g3d already goes to for
opening a .g is arguably already "too much", but it is nice to at
least be able to see some geometry :) |
08:56.50 |
Ralith |
I dunno, there's a *lot* of awesome-factor in
building a script-independent scripting system as you've
described. |
08:56.52 |
brlcad |
and libged does make that really
easy |
08:57.50 |
Ralith |
I figure having enough of a backend to enable
meaningful tests of usability is important. |
08:58.06 |
Ralith |
it's hard to study how practical something is
to complete a task if you can't actually complete the
task. |
08:59.07 |
Ralith |
by the way, is the BREP stuff still not very
far along? I'm wondering how far we are from easy tesselation of
arbitrary geometry. |
08:59.22 |
Ralith |
'cuz that could ad major shiny-points to a
demo. |
08:59.32 |
brlcad |
there has been some progress, but nothing you
could rely on for gsoc |
09:00.17 |
brlcad |
still, even if it could do wireframe, or
shaded display of unevaluated CSG, that much is all doable
now |
09:00.41 |
Ralith |
good point |
09:00.58 |
Ralith |
unevaluated is plenty for some nice looking
demos. |
09:01.26 |
brlcad |
and for mesh models, they'll look the
same |
09:01.36 |
brlcad |
no booleans |
09:01.50 |
Ralith |
well, mesh models isn't really what we're here
for |
09:02.07 |
Ralith |
though that would work well for pretty
pictures. |
09:03.13 |
brlcad |
yep |
09:07.11 |
brlcad |
as for the scripting separation, if you think
of the application having a front-end and a back-end, where the
front is the gui (or the V in an MVC separation) and the back
contains modular functionality in plugins |
09:07.51 |
brlcad |
one of the back modules is a command shell,
that effectively provides a terminal service |
09:08.48 |
brlcad |
within that terminal service, you're basically
running a command shell (e.g., tclsh, bash, python that (for now)
hooks through those environments to libged) |
09:09.07 |
*** join/#brlcad madant
(n=d@117.196.141.132) |
09:10.09 |
brlcad |
that command layer itself would be a nice
contained project in itself because it's easy enough to whip up an
application testing harness that provides a command prompt and lets
you switch between different scripting languages on the
fly |
09:10.37 |
Ralith |
hm |
09:10.52 |
Ralith |
so [GUI actions trigger] commands trigger
editing actions? |
09:11.11 |
brlcad |
explain? |
09:12.00 |
Ralith |
I'm having trouble seeing how the command line
could be a plugin without duplication of the editing bindings
between the GUI and the scripting system. |
09:12.15 |
Ralith |
unless the GUI is a wrapper of the command
line |
09:12.48 |
Ralith |
which could work, assuming multiple shells can
be used, and has some neat side effects like being able to easily
show a command for every gui action. |
09:13.25 |
brlcad |
the latter -- every action in the system can
be defined as a series of scriptable non-modal command
actions |
09:13.44 |
brlcad |
that's actually how the geometry service is
presently organized |
09:13.59 |
Ralith |
okay |
09:14.10 |
Ralith |
so multiple shells can be used in parallel
then? |
09:14.14 |
Ralith |
could be confusing. |
09:14.15 |
brlcad |
absolutely |
09:14.33 |
brlcad |
that'd be up to the app to limit is
possible |
09:14.52 |
Ralith |
oo, I know |
09:14.54 |
brlcad |
present an actual terminal window, for
example |
09:14.56 |
Ralith |
command prompt. |
09:15.02 |
Ralith |
shell-specific prompt. |
09:15.06 |
brlcad |
right |
09:15.08 |
Ralith |
that would disambiguate nicely |
09:15.17 |
Ralith |
also minimize confusion when using someone
else's workstation |
09:15.32 |
*** join/#brlcad madant_
(n=d@117.196.141.132) |
09:15.33 |
brlcad |
that's what I was saying about running a
command shell (within a terminal service) |
09:15.51 |
Ralith |
hm? |
09:15.56 |
brlcad |
terminal is basically a given console, in that
console, you'd only be running one shell at a time |
09:16.10 |
brlcad |
but could certainly switch shells if you
wanted |
09:16.23 |
brlcad |
just like a unix command
terminal/console |
09:16.42 |
Ralith |
I was imagining the situation in which the g3d
user is running an arbitrary shell |
09:16.49 |
Ralith |
the GUI would have to use its own
console |
09:17.11 |
Ralith |
which prevents awesome stuff like sharing
command history between GUI actions and manually entered
commands |
09:17.17 |
brlcad |
wouldn't exactly be arbitrary as we'd have to
make it work for each shell we want to support |
09:17.31 |
Ralith |
arbitrary in the sense that it might not be
the one the GUI's using. |
09:17.39 |
brlcad |
they would have a shared command history,
though |
09:17.46 |
Ralith |
how do you do that across different
shells? |
09:17.52 |
brlcad |
that's where everything is eventually going to
filter through the geometry service |
09:17.56 |
Ralith |
different syntaxes. |
09:18.08 |
Ralith |
you'd have to have some sort of action ->
shell command convertor |
09:18.14 |
brlcad |
that's actually where commands will be handled
-- just right now, that's in libged |
09:18.56 |
Ralith |
and you'd need to go from GUI shell ->
abstract action -> user shell just to generate the history
entry. |
09:19.04 |
Ralith |
or am I misunderstanding? |
09:19.43 |
brlcad |
more like "gui action -> gs command(s)
-> ged command(s)" and "terminal command -> gs command ->
ged command" |
09:20.15 |
Ralith |
ah. |
09:20.23 |
Ralith |
I was referring to command history in the
shell context. |
09:20.41 |
Ralith |
this would be a valuable learning tool,
because it'd show you how to do everything you depend on the GUI
for by hand. |
09:21.16 |
Ralith |
not critical to a functional interface, sure,
but I bet it would drastically increase the use of the more
advanced capabilities granted by scripting. |
09:21.30 |
brlcad |
ah yeah .. making the terminal show history
for gui actions would just be confusing I think -- I see that
happening as more of a command transcript |
09:22.03 |
brlcad |
where you could ask the gs for a history
transcript, and you'll see combined gui and/or console
commands |
09:22.20 |
Ralith |
yeah, I follow |
09:22.44 |
Ralith |
I just really like the idea of showing users
how to do things a more efficient way. |
09:23.09 |
brlcad |
most of the gui actions are asynchronous, most
of the console are synchronous (at least by default) |
09:23.11 |
Ralith |
there won't be nearly as much use of the
command line if you have to dig into documentation to use
it. |
09:24.02 |
Ralith |
but I suppose my point this whole time is that
a good design makes that impractical. |
09:24.28 |
brlcad |
makes what impractical? |
09:25.24 |
Ralith |
mapping GUI actions onto shell
commands |
09:25.47 |
brlcad |
ah, yeah |
09:26.06 |
brlcad |
I mean you could -- gs commands will map
pretty much 1-1 with shell commands |
09:26.32 |
Ralith |
but would it be practical to go from gs
command to shell command? |
09:26.33 |
brlcad |
that's why you'll be able to pull up an
editing history regardless of actions being performed through the
gui or via command-line |
09:26.43 |
Ralith |
and beyond that, there's higher level stuff
that could be mapped but would do so really badly |
09:26.49 |
Ralith |
e.g. complex chains of actions |
09:27.10 |
Ralith |
things that would take significant amounts of
script to produce |
09:27.14 |
brlcad |
yeah -- many gui actions will translate to
multiple commands, even a single "click" |
09:27.58 |
brlcad |
which could later be abstracted out into a
single meta-command possibly, but there will always be something
even more "meta" possible |
09:28.04 |
Ralith |
yup. |
09:28.15 |
Ralith |
which, I suppose, dooms the whole idea,
irrespective of implementation details. |
09:29.51 |
brlcad |
if you recall the command prompt in the IOE
demo, that's basically a single command that would feed/translate
directly to the gs as a gs command and map 1-1 with a ged
command |
09:30.10 |
brlcad |
and be an "action" that is scripting agnostic,
raw command |
09:30.14 |
Ralith |
yeah |
09:30.33 |
Ralith |
but a proper implementation should allow full
expressions, be they oneliners, in that context imo |
09:30.45 |
Ralith |
which includes things like loops which map
onto many gs commands. |
09:31.08 |
brlcad |
not for the on-demand command prompt -- there
is no interpreter |
09:31.16 |
Ralith |
oh? |
09:31.29 |
Ralith |
are you sure that's a good idea? |
09:31.56 |
Ralith |
you'd need to define a human-readable (and
succinct enough to be enterable) syntax for gs commands |
09:32.03 |
Ralith |
and it'd detract from the power
significantly. |
09:32.19 |
brlcad |
there is *still* a command console |
09:32.31 |
brlcad |
i'm referring to the on-demand command
prompt |
09:32.38 |
brlcad |
which is separate from the console
prompt |
09:32.53 |
Ralith |
I had thought that would just be a convenient
method of accessing it. |
09:34.00 |
brlcad |
it's possible that the on-demand prompt could
allow some form of one-liner scripting, but would not want to
complicate it's simple expressivity for things that the command
console will handle already |
09:35.07 |
Ralith |
the command console can handle simple 1:1
commands too, though |
09:35.19 |
Ralith |
so I don't see how such a shell is out of
place in the on-demand prompt. |
09:35.29 |
Ralith |
or, wait |
09:35.33 |
brlcad |
yes it's 1-1, but it does it within a
shell |
09:35.38 |
Ralith |
the prompt is focused on UI actions? |
09:35.41 |
*** join/#brlcad madant
(n=d@117.196.141.132) |
09:35.44 |
brlcad |
and you can switch shells |
09:35.50 |
Ralith |
rather than the shell being focused on editing
actions? |
09:36.09 |
brlcad |
not sure I understand your question |
09:36.36 |
Ralith |
e.g. you'd use the prompt to save a file to
local disk, and the shell to create a region. |
09:37.29 |
Ralith |
in the IOE demo the shell was for performing
environment and overarching UI related actions, rather than
directly controlling the programs. |
09:37.40 |
Ralith |
er |
09:37.43 |
Ralith |
the on demand prompt |
09:40.34 |
brlcad |
there was no shell in the IEO demo, just that
on-demand command prompt -- but yeah, that on-demand could
potentially allow environment/ui actions or lower-level
commands |
09:40.59 |
brlcad |
those can happen on a terminal console as
well, though, as it's all going through the same system |
09:41.24 |
brlcad |
I don't see much of the gui being inaccessible
from the command prompt |
09:42.18 |
Ralith |
then I'm kind of confused as to why we need to
introduce an entirely new syntax to what could just be another
interface to the shell. |
09:42.32 |
brlcad |
be able to be in either and affect the other,
or at least introspect the other as the "model" is still being
managed by the backend gs state and both the command prompt and gui
just reflect that state |
09:42.52 |
brlcad |
what OS do you use? |
09:42.59 |
Ralith |
*nixes in general |
09:43.02 |
Ralith |
Linux at the moment |
09:43.15 |
Ralith |
though I do find myself at windows
often. |
09:44.40 |
brlcad |
that on-demand prompt is inspired by and
modeled after application launchers |
09:45.08 |
brlcad |
akin to "quicksilver" on a mac if you've ever
used that |
09:45.10 |
Ralith |
my ideal application launcher is a
quick-loading one-line terminal. |
09:45.14 |
Ralith |
I haven't. |
09:45.49 |
brlcad |
I believe "Launchy" is sort of similar (just
not nearly as awesome as quicksilver) for linux and
windows |
09:45.58 |
Ralith |
haven't used that either >_> |
09:45.58 |
brlcad |
http://en.wikipedia.org/wiki/Quicksilver_(software) |
09:46.02 |
Ralith |
I keep my UI simple. |
09:46.12 |
brlcad |
ahh, here http://en.wikipedia.org/wiki/Comparison_of_application_launchers |
09:46.13 |
Ralith |
running xmonad, a minimalist tiling window
manager, at the moment. |
09:46.18 |
brlcad |
nods |
09:46.36 |
Ralith |
window management in the IOE reminded me of
it. |
09:47.35 |
brlcad |
basically it's a way to "DO THIS" on-demand
when you don't have an interactive command prompt available,
accessed via a quick hot-key like alt+space |
09:47.43 |
Ralith |
I follow |
09:47.54 |
Ralith |
but I don't see how that's not offered by a
shell. |
09:48.04 |
brlcad |
it is offered by the shell |
09:48.20 |
brlcad |
but the shell is something persistent or
something you launch, stays around, uses screen real-estate,
etc |
09:48.24 |
Ralith |
then why go to the effort of specifying an
entirely new syntax? |
09:48.34 |
Ralith |
shell in the sense of the actual
interpreter |
09:48.45 |
Ralith |
not the terminal that's displayed |
09:49.12 |
Ralith |
it seems like this would add a significant
amount to what you'd have to learn for relatively little
benefit. |
09:49.31 |
Ralith |
which infringes on the critical usability
factor. |
09:49.48 |
Ralith |
since it is, in effect, an entirely new
'language' |
09:49.54 |
brlcad |
could just be a terminology mismatch, shell to
me means 'command shell' in a traditional sense like
bash/tcsh/tclsh, those are shells -- entire interpreter
environments |
09:50.13 |
Ralith |
that's what I mean |
09:50.27 |
Ralith |
the entry box wouldn't be persistent, but the
interpreter can be. |
09:50.37 |
brlcad |
there is no new language, it basically is the
common subset of all shell interpreters |
09:50.40 |
Ralith |
which is nice, because it allows for
continuous state |
09:50.50 |
Ralith |
how do you do that when they have such varied
syntax? |
09:50.52 |
brlcad |
the interpreters without their scripting
harness -- the command portion |
09:51.28 |
Ralith |
you'd have to limit supported interpreters to
those with identical function call syntax, or something. |
09:51.38 |
Ralith |
I can't see that working at all; I must be
missing something |
09:52.12 |
brlcad |
not sure what syntax you're referring to that
would be different.. there is no syntax to learn other than the
commands themselves, which are mostly verb+noun or
noun+verb |
09:52.36 |
Ralith |
not so in python, afaik |
09:52.39 |
Ralith |
that's much more C like. |
09:53.04 |
Ralith |
it's largely a coincidence that the popular
shells that consist of most of your examples tend to offer similar
command syntax. |
09:53.29 |
Ralith |
and even for them things like setting
variables differ, although that may be outside of the scope you
describe. |
09:53.38 |
brlcad |
it's really hard to explain given you've not
used any of those application launchers :) |
09:53.47 |
Ralith |
these application launchers all use their own
language. |
09:53.51 |
Ralith |
it's a very simple one, yes |
09:53.56 |
Ralith |
but it's still something you have to
learn |
09:53.56 |
brlcad |
yes, there is no state, no variables, no
scripting. just a "do this" |
09:54.05 |
Ralith |
so it's another language. |
09:54.18 |
brlcad |
not really |
09:54.32 |
Ralith |
and thus another barrier to optimal
usability--although I suppose that's limited, since the actions
would be replicated in the other two environments.. |
09:55.06 |
Ralith |
well, I imagine shell syntax for something is
usually going to be very different from prompt syntax for
it. |
09:55.17 |
Ralith |
just as the GUI way of doing something would
be. |
09:56.01 |
Ralith |
it may be a very simple language, and even a
very intuitive one, but it's still something clearly differentiated
from a shell. |
09:56.34 |
brlcad |
back to the original example where a single
gui action would translate to one or more 'gs commands', the
on-demand prompt is basically a 1-1 to a gs command as
well |
09:56.35 |
Ralith |
but I'm realising now that that's not such a
disadvantage, given that its use is entirely optional. |
09:57.04 |
Ralith |
and that new users won't be depending on a GUI
element they've never encountered before. |
09:57.38 |
Ralith |
you've still got to define the language,
simple as it may be. |
09:57.52 |
brlcad |
I still don't get where you're getting
language from |
09:58.01 |
brlcad |
there is no logic/syntax other than "command +
args" |
09:58.10 |
brlcad |
there are no variables, no
conditionals |
09:58.17 |
brlcad |
to logical constructs |
09:58.20 |
brlcad |
s/to/no/ |
09:58.26 |
Ralith |
okay. |
09:58.35 |
Ralith |
you've still got to define a set of these
commands. |
09:58.40 |
brlcad |
"draw object" |
09:58.49 |
Ralith |
I guess that wouldn't be that much more work
than binding a new scripting language at that point,
though |
09:58.51 |
brlcad |
absolutely, that we're doing implicitly with
libged |
09:58.57 |
Ralith |
huh? |
09:59.12 |
brlcad |
that defines a set of understood geometry
editing commands in a "command+args" structure |
09:59.21 |
Ralith |
ah. |
09:59.34 |
Ralith |
and it'd be a simple matter to map literal
commands onto that. |
09:59.49 |
brlcad |
example literal command? |
09:59.58 |
Ralith |
draw object |
10:00.07 |
Ralith |
(as opposed to the actual ged library
call) |
10:01.04 |
brlcad |
that might be the missing link -- ged library
calls are intentionally a collection of commands as
functions |
10:01.20 |
Ralith |
which is why it's a simple matter. |
10:01.24 |
brlcad |
pretty every mged command now corresponds to a
libged function |
10:01.28 |
brlcad |
a single function |
10:01.37 |
brlcad |
ged_[command]() |
10:02.32 |
brlcad |
so you say "draw object", that basically calls
ged_draw(argc=2, argv={"draw", "object"}); |
10:02.41 |
brlcad |
plus a ged state structure |
10:03.07 |
brlcad |
so it knows in what context to invoke that
command |
10:04.03 |
brlcad |
so we are defining commands, sets of commands,
and arguments, but the intent is that those remain modular modeless
actions |
10:04.29 |
brlcad |
a gui action may translate to 100 ged_*()
commands through the geometry service |
10:05.20 |
brlcad |
the command terminal will allow scripting in
an environment, provide variables and logical structures, and
basically map commands directly to their ged_*
counterparts |
10:05.38 |
Ralith |
or as closely as permitted by the
shell. |
10:05.40 |
brlcad |
an on-demand command basically maps directly
to one ged_* command |
10:06.01 |
brlcad |
example? |
10:07.04 |
brlcad |
all command shells I know of boil down (or can
be boiled down) fundamentally to command+args |
10:08.11 |
Ralith |
well, python isn't a command shell in the
traditional sense, for example |
10:09.14 |
brlcad |
especially all interactive prompts like
bash/tclsh but even non-interactives like python/lisp/perl
translate |
10:10.18 |
Ralith |
I mean, the syntax will differ between calling
a python function and executing a bash command. |
10:11.16 |
brlcad |
oh yeah, syntax will definitely differ -- that
"translation" is what I was referring to earlier about having to
take efforts to hook in a new scripting interface |
10:13.24 |
brlcad |
for an object-based language like python, a
really simple way to avoid most of the issues is to make a "ged
object" that then becomes your object that takes "command+args"
parameters |
10:14.00 |
brlcad |
at least one of several ways it could be
handled |
10:14.56 |
brlcad |
there the difference is mostly noun+verb's
instead of usual verb+noun's style you find elsewhere |
10:15.25 |
brlcad |
that's where something like swig should
hopefully make life a little easier since we just define the
functions/commands and then swig does the mappings to various
languages for us |
10:15.39 |
Ralith |
yeah. |
10:18.37 |
brlcad |
i guess the original point about the on-demand
command prompt, though, was simply that it would effectively be
like the mged command prompt without the tcl scripting capability
-- syntax is identical and basically becomes a way to run a single
command very quickly (and transiently) |
10:19.16 |
brlcad |
not strictly necessary, more of a power-user
function at that, but much less intrusive than a terminal (and
generally *much* faster/efficient too) |
10:23.26 |
Ralith |
yeah, I follow |
10:23.26 |
Ralith |
makes sense now. |
10:23.50 |
Ralith |
It might be worth considering offering a
similar functionality that pipes into the shell, too,
though |
10:24.06 |
Ralith |
simply because it'd be handy to be able to
access the shell interface from anywhere with a minimum of
effort. |
10:24.19 |
Ralith |
or so I imagine |
10:24.23 |
brlcad |
I'd hope a hot-key that pops up the
terminal? |
10:24.46 |
brlcad |
I'd like an on-demand *terminal* as well, one
that you can hide/unhide, but that is always available |
10:25.10 |
brlcad |
ideally overlayed on the display |
10:25.17 |
brlcad |
like command overlays for most games |
10:27.08 |
Ralith |
that provides that pretty well,
then. |
10:33.30 |
Ralith |
brlcad: submitting my first draft proposal
now. |
10:33.35 |
brlcad |
cool |
10:34.36 |
Ralith |
I went on for a while about it, and made an
effort to provide the relevant background, so I hope it isn't
overly verbose. |
10:35.17 |
Ralith |
quite open to suggestions for
changes. |
10:40.08 |
Ralith |
in fact, please do let me know if you have any
input. |
10:41.13 |
Ralith |
tomorrow I'll see if I can write another one
up for the de-TCLification of the std libs, but I think it's late
enough tonight,. |
10:53.18 |
brlcad |
alright cool |
10:55.40 |
Ralith |
thanks for the discussion |
11:01.50 |
brlcad |
likewise |
11:02.32 |
brlcad |
good to get some of this stuff out of my head,
and to bounce old/new ideas off of others |
11:03.10 |
brlcad |
I really need to upload all of the design and
docs that have gone into things to date (along with a ton of other
BRL-CAD things that would be cool to upload) |
11:07.01 |
Ralith |
like what? |
11:09.17 |
brlcad |
hard to categorize, it's a lot of
stuff |
11:10.26 |
brlcad |
renderings/images, technical papers, design
documents, tutorials, various data sets, geometry models,
.. |
11:10.37 |
Ralith |
sounds neat |
11:10.52 |
Ralith |
any reason not to just throw it up somewhere
and work it out from there? |
11:14.12 |
*** join/#brlcad madant
(n=d@117.196.129.159) |
11:18.12 |
brlcad |
yeah, some of it would be very misleading,
some of it is not republishable as-is, some of it is almost
entirely useless, it needs at least a pass through |
11:18.59 |
brlcad |
like in my gui research, there are dozens of
shots and mockups of an LCARS interface (from star trek) |
11:19.24 |
brlcad |
was just for kicks many years ago while
thinking through some ideas and wouldn't really be useful for
anything |
11:19.39 |
Ralith |
ah, misleading would be a problem. |
11:19.43 |
brlcad |
more distraction and FUD factors of having too
much junk |
11:19.55 |
Ralith |
makes sense |
11:26.04 |
*** join/#brlcad ashishrai
(i=d2d43dfb@gateway/web/ajax/mibbit.com/x-ccc367e0f5cc43d6) |
13:11.11 |
*** join/#brlcad elite01
(n=omg@unaffiliated/elite01) |
13:12.44 |
*** join/#brlcad
hippieindamakin8 (n=hippiein@202.3.77.38) |
14:38.00 |
*** join/#brlcad madant
(n=d@117.196.139.99) |
16:11.41 |
*** join/#brlcad ashishrai
(i=dce36163@gateway/web/ajax/mibbit.com/x-977581b739ac3c13) |
16:13.40 |
*** join/#brlcad elite01
(n=omg@unaffiliated/elite01) |
17:58.37 |
brlcad |
starseeker: coil command needs a manual page
to be in src/shapes |
18:00.42 |
CIA-40 |
BRL-CAD: 03brlcad * r34101
10/brlcad/trunk/NEWS: annotate the 7.14.4 release with emphasis on
the gqa enhancements in mged and the new coil shape tool |
18:02.09 |
CIA-40 |
BRL-CAD: 03brlcad * r34102
10/brlcad/trunk/TODO: there is a coil tool now, but needs a manual
page |
18:29.59 |
starseeker |
brlcad: ok |
18:31.13 |
starseeker |
brlcad: um. there's a coil.xml file that
should be creating a coil man page |
18:35.23 |
starseeker |
um - is anyone else not able to svn co the
brlcad tree? |
18:37.11 |
madant |
update working for me :) |
18:40.13 |
starseeker |
growl |
19:18.24 |
*** join/#brlcad jdoliner
(n=jdoliner@c-68-51-76-57.hsd1.il.comcast.net) |
19:25.12 |
*** join/#brlcad dreeves
(n=dreeves@67.130.253.14) |
19:30.43 |
brlcad |
starseeker: ah! okay |
19:31.15 |
brlcad |
just noticed all the .1's in src/shapes and it
seemingly missing for that one |
19:31.26 |
brlcad |
side effect of having a separate doc
dir |
19:32.39 |
CIA-40 |
BRL-CAD: 03brlcad * r34103
10/brlcad/trunk/TODO: coil has a manual page, just in doc/docbook
give it's new-style |
20:24.47 |
*** join/#brlcad andax
(n=andax__@d213-102-41-199.cust.tele2.ch) |
21:07.39 |
*** join/#brlcad madant
(n=d@117.196.139.99) [NETSPLIT VICTIM] |
21:07.39 |
*** join/#brlcad
MinuteElectron (n=MinuteEl@unaffiliated/minuteelectron) [NETSPLIT
VICTIM] |
21:07.39 |
*** join/#brlcad pacman87
(n=pacman87@resnet-46-40.dorm.utexas.edu) [NETSPLIT
VICTIM] |
21:07.39 |
*** join/#brlcad louipc
(n=louipc@archlinux/trusteduser/louipc) [NETSPLIT
VICTIM] |
21:26.49 |
*** join/#brlcad
MinuteElectron
(n=MinuteEl@unaffiliated/minuteelectron) |
21:30.19 |
*** join/#brlcad pacman871
(n=pacman87@resnet-46-40.dorm.utexas.edu) |
21:41.45 |
*** join/#brlcad louipc
(n=louipc@archlinux/trusteduser/louipc) |
22:21.27 |
brlcad |
waves to pacman87,
wb |
22:21.35 |
starseeker |
arrrrrrgh |
22:21.44 |
starseeker |
why can't I connect to the sf
server?? |
22:21.55 |
starseeker |
upgraded to 1.6.0
even |
22:22.05 |
pacman87 |
waves back |
22:22.58 |
brlcad |
starseeker: sf doesn't like you |
22:23.38 |
starseeker |
apparently |
22:23.44 |
starseeker |
svn checkout https://brlcad.svn.sourceforge.net/svnroot/brlcad/brlcad/trunk
brlcad |
22:23.48 |
starseeker |
svn: OPTIONS of 'https://brlcad.svn.sourceforge.net/svnroot/brlcad/brlcad/trunk':
could not connect to server (https://brlcad.svn.sourceforge.net) |
22:24.28 |
brlcad |
works here |
22:25.53 |
starseeker |
ok, it's some sort of general
failure |
22:27.19 |
starseeker |
checks how subversion was
built |
22:38.17 |
``Erik |
hrm, issues connecting to bz, issues
connecting to sf, ... hrmmmm |
22:39.14 |
``Erik |
though I do vagually recall seeing 'OPTIONS'
related errors connecting to an svn server being due to a proxy
that doesn't pass the 4 or so extensions |
22:40.21 |
brlcad |
ah, good point -- starseeker, they changed
some of the http/webdav negotiation in 1.6.0 .. supposedly to
require much fewer connections and speed everything up |
22:40.30 |
brlcad |
might have introduced a bug for some
network/sever configurations |
22:48.47 |
starseeker |
brlcad: more likely I did something to my
system in that last upgrade |
22:51.41 |
starseeker |
grits his teeth and runs
revdep-rebuild |
23:06.13 |
*** join/#brlcad pacman87
(i=500@resnet-46-40.dorm.utexas.edu) |
23:17.17 |
starseeker |
oh, cute: http://bugs.gentoo.org/show_bug.cgi?id=263497 |
23:20.32 |
starseeker |
now I get to upgrade the friggin
kernel |
23:21.48 |
brlcad |
heh |
23:22.07 |
brlcad |
or downgrade glibc ;) |
23:22.39 |
brlcad |
i'm sure you could manually hack the build to
make it work, it's just that socket() call getting a bad enum
value |
23:22.51 |
starseeker |
oh, sure |
23:23.08 |
starseeker |
but if I'm going to start getting grief for
running an old kernel, might as well update it now |
23:24.49 |
brlcad |
seems pretty obscure, specific to a networking
code that is already using updated glibc interface with a specific
socket option |
23:25.19 |
starseeker |
hopes we won't see this sort
of grief if/when we use subversion in the geometry
server |
23:25.56 |
brlcad |
curious, which enum(s) is 0x80001 ? |
23:26.18 |
brlcad |
(look in /usr/include/sys/socket.h) |
23:27.40 |
brlcad |
might be easier to look at svn's sources and
find that select() call |
23:28.10 |
brlcad |
er, s/select/socket/ |
23:28.36 |
``Erik |
hugs bsd for providing a
unified cohesive system with some great release engineering
:D |
23:29.49 |
starseeker |
don't see 0x80001 in that file |
23:29.57 |
starseeker |
opps |
23:30.03 |
starseeker |
has to vacuum
now |
23:30.33 |
``Erik |
I'd guess that's a combination of
flags |
23:30.42 |
``Erik |
or'd together |
23:33.36 |
brlcad |
looks like the neon library is actually the
one to blame with the socket() call |
23:35.21 |
brlcad |
aha, found it |
23:35.28 |
brlcad |
they're using SOCK_CLOEXEC, new flag |
23:35.39 |
brlcad |
instead of just SOCK_STREAM |
23:39.14 |
brlcad |
ah, which is the high 0x80000 bit, so if it
was just 0x1, it'd work just fine |
23:39.34 |
brlcad |
returns to coding,
content |
23:40.23 |
``Erik |
coding, not migrating machines? :D
*duck* |
23:47.15 |
brlcad |
absolutely, this is a coding weekend |
23:47.24 |
brlcad |
planned |