IRC log for #brlcad on 20140618

00:08.14 ``Erik mmm, lasagna code *drool* </homer>
00:29.09 *** join/#brlcad backom (75c76a87@gateway/web/freenode/ip.117.199.106.135)
00:30.19 backom hello, i am tring to convert .g into vrml. File is converted incompletely into vrml format.
00:31.36 backom syntax used is as : g-vrml -o mybox.wrl mybox.g sphere1.s box1.s cyl1.s cyl2.s cyl3.s
00:40.09 backom hello brlcad
00:41.01 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
01:00.22 *** join/#brlcad FreezingCold (~FreezingC@135.0.41.14)
01:02.34 *** join/#brlcad backom (75c76a87@gateway/web/freenode/ip.117.199.106.135)
01:52.10 ``Erik http://www.youtube.com/watch?v=TRPKOrTRE0w&list=PLzxw__7_u01DHnu7ZSbkRQski0Emu-NNX&feature=share&index=2
02:32.50 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
03:15.53 brlcad hcurtis: your declaration still creates a static array (of size "numberOfRegions") instead of a dynamic array (using a pointer and bu_malloc or bu_calloc
03:17.53 brlcad your "different approach" is closer to being right, but still is missing the initial allocation and an initial size
03:18.42 brlcad also can't base it on numberOfRegions (we don't know that), it just needs to grow as needed.
04:03.56 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
04:53.34 hcurtis brlcad: Thank you for the feedback.
05:36.02 *** join/#brlcad ishwerdas (~ishwerdas@59.91.112.18)
05:38.05 *** join/#brlcad piyushparkash (~piyushpar@117.205.77.209)
05:52.37 Notify 03BRL-CAD Wiki:Hcurtis0010 * 7303 /wiki/User:Hcurtis0010/GSoC2014/logs:
06:24.27 *** join/#brlcad FreezingCold (~FreezingC@135.0.41.14)
06:24.27 *** join/#brlcad albertcoder (~albertcod@101.215.8.157)
06:24.27 *** join/#brlcad teepee (~teepee@gateway/tor-sasl/teepee)
06:24.27 *** join/#brlcad hcurtis (b82d2cf1@gateway/web/freenode/ip.184.45.44.241)
06:24.27 *** join/#brlcad ejno (~ejno@unaffiliated/kazaik)
06:24.27 *** join/#brlcad Guest4446 (~Ch3ck@66-118-151-70.static.sagonet.net)
06:24.27 *** join/#brlcad cwstirk (~charlie@c-24-9-78-79.hsd1.co.comcast.net)
06:24.27 *** join/#brlcad oana_ (~oana@188.209.97.130)
06:24.27 *** join/#brlcad caen23_ (~caen23@92.83.166.162)
06:24.27 *** join/#brlcad raj12lnm (uid35020@gateway/web/irccloud.com/x-gtyofukgykgusznl)
06:24.27 *** join/#brlcad kanzure (~kanzure@131.252.130.248)
06:24.27 *** join/#brlcad mpictor (~mark@c-68-58-38-45.hsd1.in.comcast.net)
06:24.27 *** join/#brlcad starseeker (~starseeke@66-118-151-70.static.sagonet.net)
06:24.27 *** join/#brlcad KimK (~Kim__@ip68-102-30-143.ks.ok.cox.net)
06:24.27 *** join/#brlcad archivist (~archivist@host81-149-189-98.in-addr.btopenworld.com)
06:24.27 *** join/#brlcad zxq9 (~ceverett@FL9-125-199-207-150.okn.mesh.ad.jp)
06:24.27 *** join/#brlcad yiyus (1242712427@je.je.je)
06:24.27 *** join/#brlcad brlcad (~sean@66-118-151-70.static.sagonet.net)
06:24.27 *** join/#brlcad ankesh11 (uid8015@gateway/web/irccloud.com/x-npcokdntikhhjpbb)
06:24.27 *** join/#brlcad n_reed (~molto_cre@66-118-151-70.static.sagonet.net)
06:24.27 *** join/#brlcad Guest3313 (~Ch3ck@66-118-151-70.static.sagonet.net)
06:24.27 *** join/#brlcad fenn (~fenn@131.252.130.248)
06:24.27 *** join/#brlcad ``Erik (~erik@pool-74-103-94-19.bltmmd.fios.verizon.net)
06:24.28 *** join/#brlcad maths22 (~maths22@66-118-151-70.static.sagonet.net)
06:24.28 *** join/#brlcad ChanServ (ChanServ@services.)
06:24.28 *** mode/#brlcad [+o ChanServ] by holmes.freenode.net
12:56.53 *** join/#brlcad infobot (~infobot@rikers.org)
12:56.53 *** topic/#brlcad is BRL-CAD || http://brlcad.org || logs: http://ibot.rikers.org/%23brlcad/ || GCI winners: Jacob Burroughs and Peter Amidon! || GSoC 2014 selections are announced! Thank you to all we got to work with. Remember that SOCIS is coming up right around the corner and you don't need a summer of code to get involved with open source.
12:58.06 d_rossberg what's m_lineSegment?
12:58.28 d_rossberg ok, i see
12:59.07 d_rossberg you need a handle to rt_sketch_internal too
12:59.40 andrei_ I have that in the Sketch class/object
12:59.48 d_rossberg maybe as a protected variable in Segment
13:00.02 d_rossberg (you need it in Line)
13:00.14 andrei_ I figured, but I was trying to see why
13:01.36 andrei_ I looked this up ELEMENTS_PER_VECT2D, this is a simple two value, the only possbile reason I see we could need an sketch internal pointer
13:01.38 andrei_ is vertex count
13:01.44 d_rossberg and then the start point is verts[m_lineSegment->start] and the end point is verts[m_lineSegment->end]
13:02.59 d_rossberg verts is a member of rt_sketch_internal
13:03.37 andrei_ ah, so we store the vertex array inside Sketch
13:03.55 andrei_ I'll modify it now
13:04.43 *** join/#brlcad chick_ (~chick_@41.205.22.41)
13:04.44 andrei_ aaaaaaaaaah, now I see why you said this. We couldn't "tie" the segments together without using this, each segment would've started from origin
13:11.09 andrei_ I added this on Line( will add on others as well) : protected:
13:11.09 andrei_ <PROTECTED>
13:11.12 andrei_ meh;
13:11.12 andrei_ <PROTECTED>
13:11.13 andrei_ <PROTECTED>
13:11.38 andrei_ but don't we need a method to set this pointer to the sketch? or am I wrong?
13:13.44 *** join/#brlcad clock (~clock@77-58-143-135.dclient.hispeed.ch)
13:13.58 *** join/#brlcad teepee- (bc5c2133@gateway/web/freenode/ip.188.92.33.51)
13:21.32 *** join/#brlcad piyushparkash (~piyushpar@117.205.77.209)
13:30.53 *** join/#brlcad chick_ (~chick_@41.205.22.41)
13:37.34 d_rossberg yes, with the constructor which now gets the line_seg only (now it needs at least the verts too)
13:38.21 d_rossberg so, you'll add the rt_sketch_internal which has the verts as a member variable
13:41.47 andrei_ so this : Line(void) throw() : Segment(), m_lineSegment(0) {}
13:41.51 andrei_ becomes
13:42.02 andrei_ <PROTECTED>
13:42.04 andrei_ and so on
13:42.15 andrei_ m_sketch is how I named the internal pointer
13:44.09 *** join/#brlcad albertcoder (~albertcod@101.216.93.183)
13:47.49 Zhao_Anqing d_rossberg: I tested hollowed model, cut off a small sphere from a bigger sphere.
13:47.54 d_rossberg i would make the m_sketch a member of Segment
13:48.18 Zhao_Anqing the result of facetize still is one model, nmgregion, and shell.
13:48.44 andrei_ ah, you have a point. Thanks! This solves up most of my questions, thanks a lot !
13:49.00 d_rossberg Zhao_Anqing: hollows shouldn't be a problem, but two spheres in some distance?
13:49.48 Zhao_Anqing actually, the result of facetize seems just a set of triangles in one shell.
13:49.55 Zhao_Anqing Let me try it now.
13:51.36 Zhao_Anqing I use nmg_pr_m_struct_counts to print counts of structure on the console. is there any commands to do such thing better?
13:53.19 d_rossberg ufortunately i don't know any better method
13:54.18 d_rossberg i tried g2asc, with no success (the implementation is buggy)
13:55.25 Zhao_Anqing I add a function call when use facetize, then I can see the number of every level of nmg structure.
13:55.46 Zhao_Anqing now, I get the result of two seperated sphere.
13:55.57 Zhao_Anqing still one model, one region , and one shell
13:57.26 Zhao_Anqing It looks interesting, so can I make sure the result of facetize is always *ONE* shell?
13:58.12 Zhao_Anqing If so, things will be simpler.
13:59.33 d_rossberg at least after the reorganisation of the nmg primitive you can be sure, there won't be any model or nmgregion any more
14:01.03 d_rossberg but, all signs are of the single shell hypothesis
14:02.40 d_rossberg so, it should really be simple
14:04.26 Zhao_Anqing OK. I will try to deal with import/export again.
14:04.34 Zhao_Anqing Thanks a lot. :)
14:05.39 *** join/#brlcad albertcoder (~albertcod@117.238.196.28)
14:12.59 *** part/#brlcad ishwerdas (~ishwerdas@117.214.202.189)
14:13.15 brlcad Zhao_Anqing: hollowing out a sphere results in one shell? is that shell properly using that reverse feature you meantioned earlier?
14:13.47 brlcad andrei_: I saw your e-mail -- all your questions are answered now?
14:13.58 andrei_ yes!
14:14.05 andrei_ finally no more confusion
14:14.39 andrei_ thanks a lot :D
14:16.15 brlcad I have some other comments, do you have a couple minutes for a pm talk?
14:16.22 andrei_ yes
14:20.16 Zhao_Anqing brlcad: yes, the cutted part displays in dotted line.
14:20.39 Zhao_Anqing I use r comb.r u sph1.s - sph2.s
14:20.51 Zhao_Anqing then facetize -n comb.r
14:23.01 Zhao_Anqing I use nmg_pr_m_struct_counts to print the count, it shows there is only one shell, always.
14:32.52 brlcad Zhao_Anqing: ouch, that sounds like it'll really complicate things?
14:33.26 brlcad I mean, it's right ... but I'm not sure I realized nmg also had that ability to keep track of interior/exterior faces
14:35.17 d_rossberg that's right, but they are all members of the same shell
14:43.36 brlcad was that already being tracked by the shell or in the model?
14:44.10 *** join/#brlcad alisha (~alisha@115.245.164.76)
14:45.55 brlcad if they can be the same shell, it's not clear to me then what it really means to be a shell, why you couldn't have multiple surfaces stored in one "shell" structure (we'd just rename shell to mesh or poly or polymesh or whatever)
14:46.13 brlcad kind of like how bots store multiple surfaces in one structure, doesn't know or care
14:46.27 brlcad just needs some acceleration structures in the shot routine
14:47.35 brlcad if we allowed that, you wouldn't need to do any comb trickery (which I have questions about too)
14:48.04 d_rossberg it looks like it's possible to have multiple surfaces (or volumes) in one shell, this was my question to zhao
14:48.47 d_rossberg and indeed, it looks like we don't need any combination tricks
14:50.34 d_rossberg e.g. the facetize command: it'll run into trouble if there is more than one shell, in this case only the first shell can be converted into a bot
14:52.57 d_rossberg nmgs with more than one shell will cause problems at multiple places => allow only one shell, if a group is neede use a combination (but i havn't found such a place yet)
14:56.18 brlcad confusing terminology
14:59.34 brlcad are you saying "if there are nmgs with more than one surface (spanning multiple shells) causing problems in more than one place, we should limit nmgs to only one surface (one shell) and employ comb tricks" or are you saying "if there are nmgs with more than one surface (spanning multiple shells) causing problems, limit them to one shell (with multiple surfaces) until we find a case where that doesn't work" ? :)
15:00.40 brlcad if a shell can indeed have multiple surfaces, I think we should just make that work (if it doesn't) and call it done
15:01.38 *** join/#brlcad chick_ (~chick_@41.205.22.41)
15:01.59 brlcad attempts a facetize of sph - torus
15:04.52 brlcad andrei_: this may be of remote utility when thinking about class design: http://doc.spatial.com/qref/ACIS/html/group__ACISGEOMETRICENTITIES.html (and the parent http://doc.spatial.com/qref/ACIS/html/group__ACISGEOMETRY.html which has more component types) ... just keep in mind that you're working with a MUCH more simplified API so yours is more about constructors, inheritance, and how the data is getting stored in private structures
15:06.42 d_rossberg i'm saying: nmgs with more than one shell (this is a structure inside the nmg, what it is good for doesn't matter here) are causing problems in more than one place, that's a fact
15:07.41 d_rossberg the structures above the shell in the nmg are for grouping purpose only
15:07.52 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
15:09.03 d_rossberg so, let's reduce the nmg to one shell and do the grouping with the usual BRL-CAD comb if needed
15:10.39 brlcad okay, but I guess my confusion is that he's already started doing that, quite in the middle of that even
15:10.43 d_rossberg the usual routines (import, export, ray-trace, boolean ops, etc.) are able to handle the comb and the nmg-shell
15:10.52 brlcad thought elimination of nmgregion and model were a given :)
15:11.55 brlcad do we know if ray tracing already handles a shell with
15:12.00 brlcad multiple surfaces?
15:12.14 d_rossberg there was a confusion on how the "combination when needed" should be handled
15:12.15 brlcad (besides an interior surface)
15:12.50 d_rossberg the ray-trace should be able to handle these shells because this is what we have now
15:13.08 brlcad I'm not sure it'd ever be needed except for backwards-compatibility if the code can't currently handle multiple-surface shells and that gets fixed
15:13.31 d_rossberg the fact is that we are only using single shell nmgs
15:13.40 brlcad sure
15:13.49 brlcad at least exposed in userland
15:15.00 d_rossberg model and nmgregion are good for confusion only
15:15.00 brlcad would be quick to check E, ev, and all the polygonal exporters where multi-shell nmgs might have existed, but it still doesn't matter if a single shell can basically hold data for N shells
15:15.14 brlcad well, can't forget API complexity
15:15.23 brlcad the API clearly wasn't complex enough as it was
15:16.36 brlcad I see no problems ditching nmgregion and model entirely even if we do have code that relys on or supports multishell within model
15:16.45 brlcad like I said, I thought that was a given! :)
15:18.17 brlcad and I'd even go further -- that we should make mutli-surface shells work if they do not and rename that shell struct to somthing better
15:18.50 brlcad even if those "new" nmg objects cannot be read by old versions of BRL-CAD
15:19.12 brlcad we need to move forward with what makes sense to the API
15:21.16 d_rossberg it will probably renamed to rt_nmg_internal
15:21.44 brlcad :)
15:22.50 d_rossberg at the moment it looks like we don't need to change the disk format, multiple shells can be joined with nmg_js() (an "old" function)
15:24.39 d_rossberg just looked at bigE.c: there are many r = BU_LIST_FIRST(nmgregion, &eptr->l.m->r_hd) without a NEXT (same for shell)
15:26.09 brlcad wow, facetize -n of a sph - torus worked perfectly
15:26.34 brlcad do you know how to discern whether this made multiple shells from within mged/archer?
15:28.21 brlcad Zhao_Anqing: sorry, I keep referring to you with the wrong pronoun! my apologies
15:29.02 d_rossberg this can only be done by changing the code: zhao put an nmg_pr_m_struct_counts() in the facetize code
15:29.03 brlcad here we go, looks like the get command will dump an nmg
15:31.46 brlcad huh, of course rt_nmg_get() has the R{} and S{} commented out, heh .. so it combines them all into one shell during g2asc too
15:32.06 brlcad hm, so that should be a good way to test multiple-surface shells..
15:33.25 d_rossberg yes, rt_nmg_get() is one of the routines which can't handle multiple nmgregions and shells correctly
15:34.08 d_rossberg but with only a few changes it works perfectly for the single shell nmg
15:57.22 brlcad looks like it's working perfectly here with multiple surfaces inside a single shell
15:57.45 brlcad (without any changes)
15:58.12 brlcad Zhao_Anqing: so perhaps no comb trickery is needed after all...
15:58.25 *** join/#brlcad piyushparkash (~piyushpar@117.205.77.209)
16:12.03 Zhao_Anqing brlcad: yes, if all facetize result is just single shell. the task to deal with this part becomes simpler. I will not change the file format to storage new nmg structure.
16:13.04 Zhao_Anqing some combination-like structure is also needless.
16:13.12 brlcad Zhao_Anqing: so it looks like facetize and the bigE command and ascii export only deal with one shell -- have you looked at any of the others?
16:13.13 *** join/#brlcad Ch3ck (~Ch3ck@66-118-151-70.static.sagonet.net)
16:13.18 brlcad the converters
16:13.28 brlcad yeah, a comb structure sounds unnecessary
16:14.39 brlcad i.e., what code will actually even create a multiple-shell nmgregion?
16:18.43 Zhao_Anqing for example, the facetize.c
16:20.02 Zhao_Anqing db_walk_tree traversal target primitive/comb, then put the result of facetize in the variable 'facetize_tree'
16:25.46 brlcad Zhao_Anqing: so it'll put a hierarchy into multiple regions ... but where do multiple shells come from
16:26.27 brlcad I'd expect a comb with multiple regions turn into a model with multiple nmgregion with one shell each
16:26.51 brlcad which I guess is the same problem ....
16:26.55 brlcad tests that theory
16:33.31 Zhao_Anqing the facetize result is just a set of triangle. These face/edge information can be put in one or more shells, but the meaning is the same.
16:34.04 Zhao_Anqing the db_walk_tree transform all primitives into nmg structure/the triangles.
16:34.22 brlcad so, "facetize -n" is what I was referring to
16:35.07 brlcad result should be polygons, not necessarily triangles
16:37.12 brlcad it's wasn't clear before today (at least to me) that ray tracing supported the interpretation of a shell containing more than one surface
16:38.33 brlcad particularly with subtracted interiors (with potentially even other interior surfaces) can be interepreted in a variety of ways, so it's not a given that the meaning is the same
16:40.19 brlcad testing, though, I was able to subtract a torus and get a valid result (with is incredibly surprising to me) as that's an exterior surface, and interior one at the surface boundary of the torus, and ... oh hum, I guess I didn't really test an interior interior surface
16:45.09 Zhao_Anqing eh, I know the common situation of nmg is: when I get a hollowed model, it should be two shell, one inner shell and one outter shell. But current nmg in BRL-CAD is, just put all polygons in one shell to represent such structure.
16:45.46 Zhao_Anqing when you use command 'facetize -n', it will call ged_facetize in facetize.c
16:46.43 Zhao_Anqing at first, it use db_walk_tree to get facetize result of all primitives.
16:47.43 Zhao_Anqing at this step, it will get a tree with multiple models. each represent a facetize result of a primitive.
16:48.10 Zhao_Anqing then nmg_boolean is called to merge them into one shell.
16:48.31 Zhao_Anqing I mean put all faces/edges into one shell.
16:48.39 brlcad calls nmg_boolean per region right?
16:49.09 brlcad note that region != nmgregion
16:49.27 brlcad region is a geometric construct that affects db_walk_tree() callbacks
16:50.20 ankesh11 The current benchmark script doesn't seem to platform independent, as in there isn't a benchmark executable in the installation. There is a .sh script, which is not cross-platform. How do users from platforms other than Linux submit their logs?
16:50.26 Zhao_Anqing eh..region...give me some time to check the codes.
16:50.30 brlcad regions are basically combinations with a flag set, impling they now occupy space (they have mass/volume)
16:51.06 brlcad ankesh11: same way as users on Linux
16:51.23 brlcad they e-mail them
16:51.59 ankesh11 Yes, but the lack of an executable means they have to run the script via something like Cygwin.
16:52.55 ankesh11 in Windows that is
16:53.18 brlcad Zhao_Anqing: I'm familiar with the nmg facetization processing pipeline, but there are just some details that need to be looked up like whether ANYTHING actually does create 1) an nmg 'model' with multiple nmgregion with one or more shells per nmgregion and 2) an nmg model with a single nmgregion with more than one shell
16:53.38 brlcad if both 1 and 2 are NO ... that really simplifies things
16:54.02 brlcad ankesh11: yep
16:54.24 brlcad (and there's efforts to fix that deficiency, obviously non-optimal)
16:54.39 brlcad but they still submit the same, the log is e-mailed
16:55.25 brlcad automatic submission would be good, but we're not doing that yet
16:55.54 brlcad (because it's a bit of work to do portably)
16:56.11 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
16:58.12 ankesh11 Yes, which brings me to the question of supporting FTP uploads. One possible would be to integrate it within the current script via another command line argument, another would be to have a new Python script which would be straight-forward to implement.
16:58.32 Zhao_Anqing brlcad: OK. I understand what you mean, I almost make make sure so, but I know 'almost' is not enough. I need check them carefully again. It seems nmg_booltree_evaluate deal with all tree node including the region.
17:00.01 Zhao_Anqing and to make sure, I will check the facetize routines for all primitive, see whether they just create single shell or not.
17:00.33 brlcad Zhao_Anqing: the only places that come to mind are facetize -n (which looks to be NO for both), g2asc (also NO), E and ev commands, and the converters
17:00.33 ankesh11 Should supporting FTP uploads be a focus now? I feel the Web Interface and Emails are two good methods to upload log files. FTP would be good, but not a necessary feature.
17:01.06 brlcad Zhao_Anqing: good idea ... whether a particular primitive might create multiple regions or shells
17:01.38 brlcad ankesh11: what's your web interface look like?
17:02.27 Zhao_Anqing OK. give me some time, and I will check them.
17:03.42 ankesh11 brlcad: http://imgur.com/a/RhPLe
17:05.40 *** join/#brlcad clock (~clock@77-58-143-135.dclient.hispeed.ch)
17:07.03 brlcad ankesh11: so a manual user upload interface
17:08.20 brlcad ankesh11: I think the most useful next step is a web API upload, maybe something REST / ajax / jsonified
17:08.38 brlcad then we can work on getting the benchmark suite automatically submitting to that API
17:09.58 brlcad you'll need/want some way to queue any uploads so benchmarks numbers can be sanity-checked
17:10.02 ankesh11 Right, what I can do is have a python script that uploads to the server via a POST API. This can be then coupled to the benchmark script file.
17:10.23 brlcad can't couple python, that's a major dependency
17:10.44 brlcad as much as I like python :)
17:11.13 brlcad that's all infrastructure that the benchmark suite will need to have implemented
17:11.56 brlcad you could implement the python script to show how it'll communicate, then we'll turn that into C API internal to the suite
17:12.33 ankesh11 Okay, will look into it.
17:14.06 brlcad Zhao_Anqing: so my test of facetize -n with a *proper* layering of interior surfaces was a success .. i'm really a bit surprised that works :)
17:14.30 brlcad that it's actually keeping faceuse->orientation set correctly all the way down
17:14.39 ankesh11 I had a couple of other questions as well which I drafted in an e-mail to the list.
17:18.49 *** join/#brlcad piyushparkash (~piyushpar@117.205.77.209)
17:21.02 brlcad ankesh11: I'm aware of the two issues you identified and will get you set up as soon as I'm able, you'll just have to make due in the meantime
17:23.06 ankesh11 brlcad: Thanks. :)
17:23.09 brlcad there are certainly aspects of openbenchmarking.org that would be good to have, but we need to be far more easier to use and the interface should be more modern/beautiful/responsive
17:23.09 *** join/#brlcad albertcoder (~albertcod@117.224.171.194)
17:24.59 brlcad ankesh11: another example is http://www.speedtest.net/
17:25.49 brlcad obviously they focus on networking performance and the 3d glitz is superfluous, but the simplicity of the results and comparisons are easy to navigate and interpret
17:26.19 brlcad especially http://www.speedtest.net/results.php
17:26.24 brlcad (after you run the test)
17:26.53 ankesh11 Yes, that is one of the primary principles I have in mind. The question was to access in what way should I serve the data to the developers.
17:27.35 brlcad I'm not understanding
17:27.43 brlcad those two sites give some examples on how to serve the data
17:27.59 brlcad there's nothing specifici to developers...
17:28.08 brlcad or are you asking about a developer API to the database information?
17:28.47 ankesh11 Yes, but wouldn't the core developers want access to the bulk information, rather than just results after uploading a file.
17:29.14 ankesh11 We have visualizations for that, I was trying to understand if we need smething like performance indexes etc.
17:29.17 brlcad this is intended to be a public resource, just like those two sites
17:29.50 brlcad the devs will be able to log into the server and look at the actual log files
17:29.59 ankesh11 Fine.
17:30.02 brlcad (which should be stored in a folder with some indexing mechanism)
17:30.40 brlcad we will want a variety of views on the data through the web site ...
17:31.23 ankesh11 Okay, to be clear, the views I have worked on are of the aggregate data. Not individual results.
17:31.59 brlcad the screenshot you just showed displays an individual result or is that across all logs?
17:32.08 ankesh11 Across all logs
17:32.25 brlcad okay, that's interesting in itself
17:32.37 brlcad so let's break this down
17:33.04 brlcad you want to have at least one view that just displays all of the available information for a given result
17:33.23 brlcad basically, everything the back-end is able to extract from a log
17:33.36 brlcad that's #1
17:35.09 ankesh11 Okay, it can be done definitely for the logs uploaded manually via the web interface.
17:35.18 brlcad you'll want to compare a given result with the database, thats #2, and that view is a bit more complicated because they may wish to only compare some subset of the database results
17:35.55 brlcad it should be doable for all logs, no?
17:36.23 brlcad we want to keep track of the log originals so we can rebuild the database or do additional processing later that we didn't think about
17:38.11 brlcad for #2, that subset might be based on results for similar/different CPUs, architectures, memory levels, clock cycles, results submitted "near my location", results submitted in a given timeframe, ...
17:38.36 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
17:38.47 brlcad then there's #3, show me the data in the database in aggregate form, very similar to #2 but without the comparison aspect
17:39.18 ankesh11 All the uploaded logs will be stored in a separate folder, yes.
17:39.29 ankesh11 How do we do it for logs sent via an e-mail?
17:39.43 ankesh11 The immediate results view that is.
17:40.58 ankesh11 Okay, I get it I think. We can reply with the address to a unique URL that shows and compares the submitted results.
17:41.04 brlcad put all incoming logs into a queue directory, then they can be processed at a throttleable rate
17:41.14 brlcad right!
17:41.57 brlcad that unique URL could be e-mailed to them on submission (optionally) so they have it, or with account profiles, they could get added to their account profile so they can look at their submitted results later
17:42.19 brlcad you'll want some unique key, maybe and md5 hash
17:42.39 brlcad that'd make it easy to locate using command-line tools too
17:44.40 ankesh11 These are great inputs. I will get started with them.
17:47.11 brlcad excellent progress, keep it up!
17:47.18 brlcad oh, something else to work on
17:47.32 brlcad it'd be nice if your style matches the GCI style guide that I mentioned a while back
17:49.15 brlcad http://www.google-melange.com/gci/task/view/google/gci2013/5844328496758784
17:49.31 brlcad alas, nobody made the css file for it, so you'll have to do that yourself
17:56.48 brlcad responded to e-mail with a summary of what we talked about here, for others
17:56.56 starseeker makes a note to try tinypy sometime...
18:00.18 ankesh11 <PROTECTED>
18:01.24 brlcad ankesh11: screenshot? demo?
18:01.36 brlcad it's a very flexible color scheme...
18:01.55 Notify 03BRL-CAD Wiki:Valneastarcevic * 0 /wiki/User:Valneastarcevic:
18:02.03 ankesh11 I don't have a saved copy.
18:03.05 ankesh11 Probably I don't put much effort to make everything look well too. I will try that, and show you the results.
18:03.25 brlcad okay, thanks ... it should be possible to make it look snappy
18:03.39 brlcad the style is just a guide, some elements are left to interpretation
18:04.20 brlcad like you could still have a white background with colorful banner and menu options, or the gray background with colorful elements
18:04.35 ankesh11 Yes, is it okay if I stick to the style and use a framework like Bootstrap to build. That saves a lot of pain, I don't have to worry about responsiveness and such things too.
18:04.49 brlcad it's more about using colors within the theme
18:05.25 ankesh11 Okay.
18:05.41 brlcad what are you using now?
18:06.58 ankesh11 This is bootstrap too, just customized a few elements.
18:07.20 brlcad then what are you really asking? :)
18:07.31 brlcad is your question "is it okay to keep using bootstrap?"
18:08.20 ankesh11 Yes, essentially.
18:08.35 brlcad heh
18:09.01 brlcad well that's an interesting discussion in itself
18:09.25 brlcad I know there was talk from dr. rai about using existing infrastructure
18:09.38 brlcad making this work within a mediawiki context, iirc
18:10.12 ankesh11 Ah, it's just adding a CSS file to the project.
18:10.14 ``Erik ankesh11: by 'customized', do you mean that you changed parts of the less code and recompiled it, or did you override stuff with a second css file?
18:10.21 brlcad I do see this benchmark suite site as it's own entity so that's not entirely necessary in my perspective but it does beg some questions about how things like user accounts will be managed
18:13.02 ankesh11 ``Erik: The latter, except that I didn't use another file to overwrite stuff, everything's in place.
18:14.55 ``Erik ah, I'm using a free cdn for the core bootstrap, then I have a small css file for my modifications :)
18:15.56 ``Erik brlcad: is the jun6 server maintenance reschedule, or were they able to replace the pmm without having to shut down?
18:16.02 ``Erik rescheduled, even
18:16.45 kanzure brlcad, what's the simplest way to render a scene to png? i'd like to add a png output helper function to the python bindings.
18:17.38 kanzure by scene i think i mean wdb db_i or something
18:17.49 ``Erik kanzure: "rt -o file.png file.g top" should work
18:18.16 ``Erik libicv does 'smart'ish output formatting :)
18:18.23 kanzure i am not using files
18:18.27 kanzure so i don't have a file.g
18:18.54 kanzure can i just call an entry function somewher?
18:18.56 kanzure *somewhere
18:19.52 ``Erik um, there's no library to generate an image, the rt executable does the prep stuff and calls rt_shootray a bunch of times, filling in the buffer
18:20.26 kanzure does the rt executable just call a function in librt somewhere?
18:21.11 brlcad ``Erik: I received no word, so I presume it was probably a temporary network outage only or hasn't happened yet
18:21.59 ``Erik rt kinda works liked rt_prep(); for(j=0;j<height;j++) for(i=0;i<width;i++) { /* build vector for buffer[i][j] */ rt_shootray(); } save_to_file();
18:22.28 brlcad plus view_pixel() for every fixel to color it correctly
18:23.21 kanzure how does mged's mouse-rotatable viewer work? raytrace every time there's a mouse movement?
18:23.22 brlcad it could very easily be turned into LIBRT API, but right now it's part of the ray trace user interface framework (RTUIF)
18:23.27 brlcad which is front-end code
18:24.12 brlcad the rtgl and adrt viewers work like that, but mged draws a wireframe by default (or polygons)
18:24.53 brlcad mged has a proper 3d view, so it's basically an opengl context
18:25.15 brlcad and you manually tell it when to raytrace
18:25.29 brlcad (unless you're using rtgl, which nobody is)
18:25.54 kanzure maybe i'll just embed the opengl context into a qt/gtk event loop to sit next to the python interpreter
18:26.16 brlcad n_reed should get that working again/better now that he's all so much more familiar with the code now
18:26.22 brlcad and with all his copious spare time :)
18:27.19 kanzure i should have been more stern about which commits i merged into python-brlcad :(
18:27.29 brlcad kanzure: you could certainly do that .. our display manager is pretty easily embedded (that's what holds the opengl context)
18:27.50 brlcad how so?
18:28.23 kanzure pm ok?
18:28.33 brlcad sure
18:43.33 *** join/#brlcad mihaineacsu (~mihaineac@92.85.193.175)
18:49.03 kanzure how about this, instead of the solution i have implemented there, it should be the opposite: a blacklist of function names that should not be included (ged_open, because that's a custom function in that file), and everything else gets used automatically by introspection
18:56.15 Notify 03BRL-CAD:bob1961 * 61347 (brlcad/trunk/src/tclscripts/archer/Archer.tcl brlcad/trunk/src/tclscripts/archer/ArcherCore.tcl): Added code to get around Tcl's "file writable somefile" failure (i.e., command always returns 0 when on windows and the file in question is on a remote drive.
18:56.43 kanzure brlcad: https://github.com/kanzure/python-brlcad/commit/1c25ce30ad1ed6f695a0bb504187f79cacb81bc0
19:12.16 *** join/#brlcad clock (~clock@77-58-143-135.dclient.hispeed.ch)
19:16.04 brlcad kanzure: that could work too, but to me it's the same interface fail -- it's almost the same amount of work to put in a proper registration API (espeically if you count that this would now be the third work-around)
19:16.19 kanzure what does this have to do with registration in particular?
19:17.12 brlcad what do you mean?
19:17.36 brlcad by the way, your exclusion list is awefully short .. print out all the ged_ functions it found and compare to your prior list ;)
19:19.47 kanzure my exclusion list is based on the functions already defined in that file
19:19.50 kanzure which was only two
19:19.58 kanzure so the exclusion list should be of length two
19:20.09 kanzure e.g. open and close have custom definitions in that file
19:23.57 brlcad not sure that's relevant to my point or I'm misunderstanding something
19:24.12 brlcad it looks like it's taking the command string and looking it up in the dictionary of library symbols
19:24.32 brlcad if it tries to invoke ged_view_update, for example, it's probably going to "do bad things"
19:25.15 brlcad before, it wasn't possible to invoke ged_view_update, so no potential crash case
19:25.36 kanzure this is only exporting/exposing symbols, not invoking the functions
19:26.07 kanzure actually now that i think about it i'm not sure why this is here if you can just call brlcad._bindins.libged.ged_view_update directly
19:27.27 brlcad but the function is (potentially) invoked later based on that export/binding being made available to the user, no?
19:28.25 *** join/#brlcad vladbogo (~vlad@79.115.184.216)
19:31.43 kanzure yes. but also, the user can supply the arguments when invoking at that time.
19:33.06 brlcad I guess that's my point; there's a handful of private functions named "ged_" that cannot be invoked (at least not without wrapping more data types and structs) ... pass them an arg and they'll just crash
19:33.47 kanzure iirc all structs are being wrapped at the moment, although not always in nice accessible thoughtful ways
19:34.21 brlcad there are private structs
19:34.44 brlcad like I said, these are naming violations
19:34.52 brlcad they shouldn't have the ged_ prefix
19:40.09 kanzure alright
19:40.45 kanzure In [12]: libwdb.mk_metaball.argtypes[-1]
19:40.46 kanzure Out[12]: brlcad._bindings.libwdb.LP_c_double_Array_5
19:40.57 kanzure In [13]: type(brlcad._bindings.libwdb.LP_c_double_Array_5)
19:41.01 kanzure AttributeError: 'module' object has no attribute 'LP_c_double_Array_5'
19:41.20 kanzure ~magic~
19:41.58 kanzure it's _ctypes.PyCArrayType apparently
19:42.11 brlcad that recently changed iirc or was proposed to be changed (I think by raj) and I haven't thought through all the implications
19:42.35 brlcad he wanted a double[5] to get turned into a double * .. probably due to this very issue
19:45.00 kanzure python/ctypes sometimes gets confused when certain ctypes primitives are imported from different libraries
19:45.14 kanzure often this is a dependency issue, like the same struct getting two different definitions
19:45.44 kanzure this often appears as "ArgumentError: ... expected Sphere instead of Sphere"
19:58.18 Notify 03BRL-CAD:starseeker * 61348 (brlcad/trunk/include/rt/arb_edit.h brlcad/trunk/src/libged/edarb.c and 2 others): Refactor permute into librt.
20:20.28 Notify 03BRL-CAD Wiki:Vladbogolin * 7306 /wiki/User:Vladbogolin/GSoC2014/Logs: /* Week 5 */
20:58.04 Notify 03BRL-CAD:starseeker * 61349 (brlcad/trunk/include/rt/arb_edit.h brlcad/trunk/src/libged/edarb.c and 2 others): refactor editarb into librt. Probably want to consider a mechanism for passing more informative strings back up the call stack in these cases...
20:59.36 Notify 03BRL-CAD:starseeker * 61350 brlcad/trunk/include/rt/arb_edit.h: ws
21:02.46 andrei_ does anyone know how fastf_t differs from double, I'm using grep but it's producing an awful lot of output
21:03.46 andrei_ uh, apparently it s .. double, cool
21:07.57 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
21:11.49 kanzure brlcad, what is the correct format of const fastf_t *verts[5] for mk_metaball? i tried passing a ctypes.c_double * 5 of (((1, 1, 1), 1, 0), ((0, 0, 1), 2, 0)) but i get a segmentation fault
21:36.00 Notify 03BRL-CAD Wiki:Albertcoder * 7307 /wiki/User:Albertcoder/GSoC2014/logs: /* Week 5 */
21:36.17 andrei_ nevermind, fixed it, was a typo
21:39.48 Notify 03BRL-CAD Wiki:Albertcoder * 7308 /wiki/User:Albertcoder/GSoC2014/logs: /* Week 5 */
22:02.54 brlcad andrei_: it's usually double -- that can be set to float or even some complex type though
22:03.32 andrei_ ah, thanks, my error was just a typo, then.
22:04.10 andrei_ that makes no sense, I meant that I understood what you said, but my error was just a typo, so it works
22:06.59 brlcad kanzure: I'm not sure what (((1, 1, 1), 1, 0) translates to with ctypes, but I'd think ((1,1,1,1,0), (0,0,1,2,0), ... nctlpts-1) would be the format to match the arg no?
22:07.32 brlcad I'd expect (((1, 1, 1), 1, 0) to turn into (pointer, int, int)
22:08.18 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
22:08.39 brlcad it's expecting an array with #nctlpts entries, five values each
22:29.30 andrei_ brlcad: you still around?
22:30.22 andrei_ there's an array of control points in Nurb class, and I need to have a method to add control points to that array
22:31.21 andrei_ The array is dynamically allocated, and I need to find an efficient way to reallocate it(As we can't know beforehand how many ctl points we have)
22:31.52 andrei_ as far as I know reallocating it to double is the best solution , as it s O(n)
22:49.35 Notify 03BRL-CAD Wiki:Popescu.andrei1991 * 7309 /wiki/User:Popescu.andrei1991/devlogs2014: /* Week 5 */
22:50.02 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
23:05.37 brlcad ankesh11: what's your question :)
23:05.55 brlcad ankesh11: oops, sorry, meant for andrei but he apparently left
23:10.45 *** join/#brlcad FreezingCold (~FreezingC@135.0.41.14)

Generated by irclog2html.pl Modified by Tim Riker to work with infobot.