IRC log for #brlcad on 20140822

00:00.17 Notify 03BRL-CAD:ejno * 62370 brlcad/branches/bullet/src/libged/CMakeLists.txt: remove the simulate/refactoring subdirectory
00:18.45 Notify 03BRL-CAD:ejno * 62371 brlcad/branches/bullet/src/libtclcad/tclcad_obj.c: fix assignment outside of array bounds
00:24.21 Notify 03BRL-CAD:starseeker * 62372 (brlcad/trunk/src/other/poly2tri/poly2tri/common/shapes.cc brlcad/trunk/src/other/poly2tri/poly2tri/common/shapes.h and 3 others): I suspect there is more to do here to properly propagate return codes up the call stack, but get a start on removing code from poly2tri that will exit on failure. As a library, poly2tri shouldn't be deciding to quite - that's up to the parent application.
00:48.36 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
01:20.09 Notify 03BRL-CAD:ejno * 62373 (brlcad/trunk/src/libtclcad/tclcad_eval.c brlcad/trunk/src/libtclcad/tclcad_obj.c brlcad/trunk/src/libtclcad/tclcad_private.h): make tclcad_eval_var() non-variadic; vls has a nicer syntax but it isn't type-safe
01:35.39 Notify 03BRL-CAD:starseeker * 62374 (brlcad/trunk/src/other/poly2tri/poly2tri/common/shapes.cc brlcad/trunk/src/other/poly2tri/poly2tri/common/shapes.h and 6 others): Start shifting towards using pointers... will most likely need to handle null cases if we're not going to quite mid-process.
01:49.15 Notify 03BRL-CAD:ejno * 62375 (brlcad/trunk/src/libtclcad/cmdhist_obj.c brlcad/trunk/src/libtclcad/tclcad.c and 4 others): revert some of r62358 (work on escaping tcl commands)
02:55.05 brlcad starseeker: interesting change .. what's the shift towards using pointers for?
02:55.57 andrei__ brlcad: I'll send an email related to geometric kernel and what I can do from now on these days, I've been busy writing my thesis
03:16.10 brlcad andrei__: thanks -- a brief summary of your overall gsoc accomplish, particularly for this second half, would be greatly appreciated
03:18.18 andrei__ brlcad: that I can do, probably even today. Where should I put it, tho?
03:18.28 andrei__ is brlcad wiki ok?
03:19.07 brlcad a summary on/near your log or on your project page, yeah that works
03:19.30 brlcad to persist that information
03:19.38 brlcad but a couple paragraphs to the mailing list would be good too for the immediate audiences
03:41.08 mihaineacsu I'm working on binary attributes and something doesn't add up here http://goo.gl/lQiGhV . This is from db5_export_attributes and I get it that it's trying to follow the format aname1 NULL value1 NULL but it seems the name's null padding is placed a byte too far and it's written over anyways by the value string.
04:01.21 brlcad hi mihaineacsu
04:01.30 mihaineacsu hi brlcad!
04:02.15 brlcad the snippet you show looks right to me
04:03.26 brlcad len in the number of chars (without a nul byte), so cp should go to len+1 for writing the nul byte
04:03.40 mihaineacsu yeah, agreed
04:03.48 brlcad the format is "key\0value\0"0
04:03.56 brlcad oops, "key\0value\0"
04:04.22 brlcad (note NULL is not technically the same as a nul byte or
04:04.26 brlcad \0
04:06.13 mihaineacsu uhhm, but isn't the second peformed memcpy writing over the '\0' ?
04:09.19 mihaineacsu I was thinking the right way is cp += len; *cp = '\0'; ++cp; and now write the value
04:11.18 *** join/#brlcad Zhao_Anqing (~clouddrif@183.157.160.21)
04:16.41 mihaineacsu brlcad: correct me if I'm wrong
04:31.05 *** join/#brlcad Zhao_Anqing (~clouddrif@183.157.160.21)
04:32.44 brlcad mihaineacsu: you might not be wrong, that's not very old code and any issue would be fully masked with zero-initialized data (which it is almost certainly using)
04:33.08 brlcad did you try running in a debugger or adding a print statement to confirm/check?
04:34.27 mihaineacsu I haven't, I'm rewritting binary attributes, it was crashing after a series of import/exports so I'm guessing I messed up the format somewhere
04:34.30 brlcad also, though, would need to check our v5 spec if that's the file i/O layer reading from the on-disk memory buffer
04:37.15 mihaineacsu that's the file indeed. I've lost count how many times I've checked the spec file. I'm following Tom's proposal notes
04:41.34 mihaineacsu by "rewritting binary attributes", I mean I reverted the changes I made and started over again; print statements pointed it crashes after a series of import/exports (after creating a material object with float density and listing it with 'l')
04:41.35 brlcad it does indeed look like it's going too far, so just have to confirm in a debugger and check what the spec says
04:49.54 brlcad mihaineacsu: so looking back through that code snippet's history, I see where it went wrong
04:50.16 mihaineacsu forgot to run blame
04:51.58 brlcad code was converted from bcopy to memset, and in the process the +1 was distributed
04:52.22 brlcad basicaly, it should be len = strlen() + 1;
04:52.50 brlcad so it memsets the nul byte, increments past the nul for the value
04:53.13 *** join/#brlcad vladbogo (~vlad@86.121.96.194)
04:54.13 brlcad the code is actually just getting lucky .. results in the same byte pattern one wants, but only because the cp buf starts out as all zero's
04:54.14 mihaineacsu yeah, I mean it couldn't have worked if it hadn't operated on previously zero-initialized data
04:54.24 mihaineacsu exactly
04:54.55 brlcad so name is "key" and len is 3 and cp buf is "key\0\\0\0\0\0\0...
04:55.42 mihaineacsu right
04:56.28 brlcad rather, [k][e][y][\0][\0] .. cp is updated to point to that 5th slot, sets it to nul, and then immediately overwrites the nul with value and another double-nul
04:57.29 mihaineacsu yeah, I was nitpicking because I thought I'm not following the format right
04:57.32 brlcad so both the old and the new end up with [k][e][y][\0][v][a][l][\0][\0][...]
04:57.43 brlcad well, that's worth checking :)
04:58.33 brlcad but just looking through the history itself, there's no mention and that would be somewhat unusual
04:58.41 brlcad good catch
04:58.53 brlcad going to fix it? that's make a fine isolated patch
04:59.09 mihaineacsu yeah, it's part of the binary attributes
04:59.39 brlcad I mean not connected to any other changes, the code is (presumably) wrong on trunk sources
05:00.07 brlcad patches ideally change one and only one thing when they have to be manually applied
05:00.08 mihaineacsu aah, okay, I'll submit a separate patch for it
05:00.38 mihaineacsu what about features?
05:00.48 brlcad patches are so you can get commit, which is frankly more important than your entire project ;)
05:00.53 Notify 03BRL-CAD Wiki:Madcoder3753 * 0 /wiki/User:Madcoder3753:
05:01.04 brlcad what about features?
05:01.50 mihaineacsu well, I realize the patch for material objects is a pain to go through because it's over a thousand lines
05:02.13 mihaineacsu should it be submitted differently?
05:02.18 brlcad indeed
05:03.32 brlcad so this is really a community devmanship issue
05:03.40 brlcad we don't want you submitting patches
05:03.44 brlcad you don't want to submit patches
05:03.55 brlcad they're tiresome and exhausting to review
05:04.28 brlcad and not an effective way to share code over a long period of time (repeatedly to the level of granularity we like to speak)
05:04.45 brlcad we require patches to ensure adherence to our dev principles
05:05.13 brlcad so patches should be short, sweet, and simple -- easy to review -- and most of all PERFECT
05:06.30 brlcad new devs have to have a couple perfect patches before they're granted commit, but then they do usually get that right/responsibility if they're interested in contributing or working on a project
05:06.35 brlcad anyone can do that
05:07.15 brlcad the trick is what is meant by "perfect" .. that means absolutely no issues that would incur time on another dev to clean up after your patch is applied
05:08.09 brlcad which can be egregious issues like the patch not even compiling and blatant logic errors, or more subtle issues like bad names or (most common) not following our code conventions and/or style
05:09.09 brlcad so yeah, find something really simple and isolated to change (more than a few lines, the patch does still have to be a meaningful and substantive improvement to code), and submit that as a patch
05:10.02 brlcad your big material patch shouldn't be submitted differently unless there's one or two simple things in it that can be broken out, reviewed independently as some small but real improvement, and is ... flawless
05:10.59 brlcad ideally, you'd hold off on that one until you got commit access, then you'd proceed to turn that beast into dozens of commits, commenting as you go along with log messages
05:11.05 brlcad make sense?
05:11.17 mihaineacsu it makes perfect sense
05:11.56 brlcad apologies if that wasn't clear .. HACKING mentions these points in a variety of ways, but often what it really means is lost on the reader
05:12.14 mihaineacsu I'm more familiar with git and for me at least it's a bit easier to track pull requests there
05:12.30 brlcad we like LOTS and lots of small commits
05:12.40 brlcad so yeah, we want you working just like you would with git
05:13.30 brlcad just it's not your git repo, it's someone else's .. so there are measures in place to make sure you aren't disruptive
05:14.31 mihaineacsu I'll finish the binary attributes and review the material objects again this weekends. Do you think you can look over them next week?
05:14.49 brlcad so instead of you doing your own thing and sending pulls, you're actually empowered to just make the changes (effectively pulling them yourself into our main master)
05:14.55 brlcad yep
05:16.09 brlcad it forces communication and lets us ensure adherence to our code standards (which are undeniably much higher than most projects)
05:17.13 brlcad have you worked with any centralized / master repo before that you didn't own but you could directly pull / commit into?
05:17.27 mihaineacsu yes
05:17.41 brlcad anything I might recognize? :)
05:17.42 mihaineacsu but they were all git repos
05:18.17 mihaineacsu it's not a public repo unfortunately, it was for work
05:18.44 brlcad git doesn't really change anything in this regard (I can set up a centralized git repo just fine)
05:18.52 mihaineacsu otherwise, just small projects, some I even shared with andrei
05:19.36 brlcad it's whether someone else is integrating your work into a main branch or whether you are tightly having to coordinate your activity with others (on that main master)
05:21.27 brlcad anyways, .. so yeah, lets get you going quickly -- if/when you have a perfect patch ready to go, send me the link
05:22.29 brlcad being careful about following style is usually the hardest for new devs not familiar with the myriad of possible coding styles there are out there and how to adjust their dev environment
05:22.40 mihaineacsu ok, I'll look over ones I already submitted and make sure they're presentable.
05:23.01 brlcad we still use mixed tabs+spaces, which is unusual
05:23.55 mihaineacsu right
05:23.58 brlcad yeah, see if there is *anything* about your patch that can be improved without increasing the scope of what the patch changes (better != doing more)
05:25.02 brlcad proper braces, tabs, function names, var names, no compile warnings, applies cleanly to trunk checkout, nothing in the patch that is a temporary "work in progress" that actually makes the code worse before it makes it better,e tc
05:27.43 brlcad if you see anything, I can almost guarantee you that I'll see it too ... the trick is making it an unambiguous improvement that is downright trivially easy to review and accept (should be absolutely no reason to not accept it)
05:27.56 brlcad and once you get to that point, you work on making every commit just like that ;)
05:33.56 mihaineacsu yep
05:46.16 Notify 03BRL-CAD:zhaoanqing * 62376 (brlcad/branches/nmgreorg/include/raytrace.h brlcad/branches/nmgreorg/src/libged/bev.c and 16 others): change the name of NMG functions in librt from nmg_XXX to rt_nmg_XXX.
05:53.32 *** join/#brlcad mihaineacsu_ (~mihaineac@92.85.193.65)
07:07.39 Notify 03BRL-CAD:zhaoanqing * 62377 (brlcad/branches/nmgreorg/src/adrt/load_g.c brlcad/branches/nmgreorg/src/conv/dxf/g-dxf.c and 20 others): update the calling of rt functions after change their name. program is avaliable on Linux.
07:11.30 *** join/#brlcad chick_ (~chick@41.205.22.96)
07:13.00 *** join/#brlcad ries (~ries@D979EA84.cm-3-2d.dynamic.ziggo.nl)
07:40.05 *** join/#brlcad FreezingCold (~FreezingC@135.0.41.14)
07:51.46 *** join/#brlcad chick_ (~chick@41.205.22.96)
08:41.34 *** join/#brlcad teepee- (bc5c2133@gateway/web/freenode/ip.188.92.33.51)
08:46.02 *** join/#brlcad Izakey (~Isaac@195.24.220.134)
09:57.06 *** join/#brlcad chick_ (~chick@41.205.22.96)
10:09.05 *** join/#brlcad teepee- (bc5c2133@gateway/web/freenode/ip.188.92.33.51)
10:20.34 *** join/#brlcad teepee- (bc5c2133@gateway/web/freenode/ip.188.92.33.51)
10:48.12 starseeker brlcad: eventually, i'd like to push that algorithm down into libbn
10:51.25 starseeker (i.e., into C)
10:52.10 starseeker I also have vague notions that pointer NULL testing will be useful handling bad states, but we'll see
10:53.45 starseeker doubt I'll end up with a libbn conversion at the end of this particular push, but you never know - and even if I don't hopefully the next stage in that direction will be easier after this
11:47.48 *** join/#brlcad Izakey (~Isaac@195.24.220.16)
12:00.39 *** join/#brlcad clock (~clock@77-58-143-135.dclient.hispeed.ch)
12:39.11 Notify 03BRL-CAD:iiizzzaaakkk * 62378 brlcad/trunk/src/librt/primitives/hrt/hrt.c: rt_hrt_plot() function to draw the wire frame of the heart
12:41.34 *** join/#brlcad clock (~clock@77-58-143-135.dclient.hispeed.ch)
12:41.58 *** join/#brlcad Zhao_Anqing (~clouddrif@183.157.160.21)
12:43.38 Izakey brlcad, ``Erik, starseeker You can take a look at some images of the heart's wire frame (rendered using mged) http://brlcad.org/~Izak/Heart_Wireframe_right.png, http://brlcad.org/~Izak/Heart_Wireframe_front.png and http://brlcad.org/~Izak/Heart_Wireframe_Top.png
13:13.49 ``Erik nice, apple sandbox uses tinyscheme http://reverse.put.as/wp-content/uploads/2011/06/The-Apple-Sandbox-BHDC2011-Paper.pdf
13:23.02 Notify 03BRL-CAD:starseeker * 62379 brlcad/trunk/src/other/poly2tri/poly2tri/sweep/sweep.cc: Avoid crashing if null points come back - this gets the 'bad' step import of the neo1973 with the old step-g from a couple weeks ago drawing.
13:26.09 *** join/#brlcad teepee- (bc5c2133@gateway/web/freenode/ip.188.92.33.51)
13:31.24 Notify 03BRL-CAD:starseeker * 62380 brlcad/trunk/src/other/poly2tri/poly2tri/sweep/sweep.cc: More null checks.
13:52.28 Notify 03BRL-CAD:starseeker * 62381 (brlcad/trunk/src/other/poly2tri/poly2tri/sweep/sweep.cc brlcad/trunk/src/other/poly2tri/poly2tri/sweep/sweep.h and 2 others): Used Node pointers for some functions.
14:18.00 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
14:18.09 Notify 03BRL-CAD:starseeker * 62382 (brlcad/trunk/src/other/poly2tri/poly2tri/sweep/sweep.cc brlcad/trunk/src/other/poly2tri/poly2tri/sweep/sweep.h): ws, more null checking
14:21.23 *** join/#brlcad clock (~clock@77-58-143-135.dclient.hispeed.ch)
14:42.57 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
15:00.05 *** join/#brlcad Izakey (~Isaac@195.24.220.16)
15:12.53 ``Erik http://www.miaumiau.cat/2014/08/gpu-marching-cubes-in-webgl/
15:48.00 *** join/#brlcad teepee- (bc5c2133@gateway/web/freenode/ip.188.92.33.51)
15:53.51 *** join/#brlcad ashank (~ashank@115.250.31.229)
16:07.58 Notify 03BRL-CAD:starseeker * 62383 (brlcad/trunk/src/other/poly2tri/README.md brlcad/trunk/src/other/poly2tri.dist): Scrub unnecessary files out of poly2tri.
16:08.39 *** join/#brlcad chick_ (~chick@41.205.22.96)
16:20.49 Notify 03BRL-CAD Wiki:Shishir1972 * 0 /wiki/User:Shishir1972:
16:22.32 *** join/#brlcad Izakey (~Isaac@195.24.220.134)
16:28.18 *** join/#brlcad ashank (~ashank@115.250.31.229)
16:39.10 *** join/#brlcad Ch3ck_ (~localhost@195.24.220.134)
16:46.44 *** join/#brlcad vladbogo (~vlad@86.124.248.31)
18:01.17 Notify 03BRL-CAD:carlmoore * 62384 brlcad/trunk/doc/docbook/system/man1/en/g-nmg.xml: remove some underscores & a comma; more serious -- remove fake -( item
18:04.12 mihaineacsu http://www.cs.cmu.edu/~om3d/
18:12.13 Notify 03BRL-CAD:carlmoore * 62385 (brlcad/trunk/doc/docbook/system/man1/en/g-obj.xml brlcad/trunk/doc/docbook/system/man1/en/g-raw.xml): do what has become my routine touching-up
18:13.53 Notify 03BRL-CAD:bob1961 * 62386 (brlcad/trunk/src/libfb/if_ogl.c brlcad/trunk/src/libfb/if_wgl.c): Updates to libfb's ogl_clear(), ogl_refresh(), wgl_clear() and wgl_refresh() that relate to being controlled externally.
18:39.14 Notify 03BRL-CAD:ejno * 62387 brlcad/branches/bullet/src/libged/CMakeLists.txt: revert r62359
19:04.13 Izakey brlcad ``Erik Seen the images of the heart's wire frame ?
19:12.34 *** join/#brlcad clock (~clock@77-58-143-135.dclient.hispeed.ch)
20:02.49 *** join/#brlcad clock (~clock@77-58-143-135.dclient.hispeed.ch)
20:12.26 *** join/#brlcad FreezingCold (~FreezingC@CPE602ad06bea2a-CM602ad06bea27.cpe.net.cable.rogers.com)
20:29.50 Notify 03BRL-CAD:carlmoore * 62388 (brlcad/trunk/doc/docbook/system/man1/en/g-shell-rect.xml brlcad/trunk/doc/docbook/system/man1/en/g-step.xml and 2 others): touchup; problem in that I could not completely eliminate the indentation in the g-tankill EXAMPLE
20:37.52 Notify 03BRL-CAD:carlmoore * 62389 brlcad/trunk/doc/docbook/system/man1/en/g-var.xml: for g-var, reduce use of boldface; do the routine underscore fix as well
21:21.09 Notify 03BRL-CAD:carlmoore * 62390 (brlcad/trunk/doc/docbook/system/man1/en/g-vrml.xml brlcad/trunk/doc/docbook/system/man1/en/g-x3d.xml and 5 others): touchup
21:37.12 *** join/#brlcad FreezingCold (~FreezingC@CPE602ad06bea2a-CM602ad06bea27.cpe.net.cable.rogers.com)
21:44.25 Notify 03BRL-CAD:carlmoore * 62391 brlcad/trunk/doc/docbook/system/man1/en/gif-fb.xml: I do NOT use boldface for the command name in an EXAMPLE
21:46.55 *** join/#brlcad chick_ (~chick@41.205.22.96)
22:27.09 *** join/#brlcad clock (~clock@77-58-143-135.dclient.hispeed.ch)
23:03.10 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)

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