IRC log for #brlcad on 20081208

00:01.20 *** join/#brlcad IriX64 (n=IriX64@bas2-sudbury98-1177593682.dsl.bell.ca)
00:02.26 IriX64 apologizes to ``Erik for telling him an untruth, was my own code ``Erik, i stopped playing with the dll ages ago, inadvertent tied it to my system :)
00:11.27 *** join/#brlcad Ralith (n=ralith@216.162.199.202)
03:08.43 *** join/#brlcad louipc (n=louipc@archlinux/trusteduser/louipc)
05:45.02 *** join/#brlcad louipc (n=louipc@archlinux/trusteduser/louipc)
06:01.47 *** join/#brlcad IriX64 (n=IriX64@bas2-sudbury98-1177593682.dsl.bell.ca)
09:31.34 *** join/#brlcad geocalc (n=geocalc@lns-bzn-38-82-253-85-99.adsl.proxad.net)
09:34.06 *** join/#brlcad clock_ (n=clock@84-72-91-240.dclient.hispeed.ch)
11:42.32 claymore Morning all
12:19.42 *** join/#brlcad Ralith (n=ralith@216.162.199.202)
12:42.22 CIA-6 BRL-CAD: 03davidloman * r33310 10/iBME/ (branches/ tags/ trunk/ trunk/docs/ trunk/include/ trunk/src/): Initial setup of project directories.
13:44.02 brlcad mornin'
13:44.58 CIA-6 BRL-CAD: 03davidloman * r33311 10/iBME/trunk/ (16 files in 2 dirs):
13:44.58 CIA-6 BRL-CAD: Moving iBME to its own module. rt^3 is developing in a bit too many directions
13:44.58 CIA-6 BRL-CAD: and has become more of a 'misc' module. My hope is to streamline organization
13:44.58 CIA-6 BRL-CAD: with iBME and pull over applicable aspects of rt^3 as iBME development
13:44.58 CIA-6 BRL-CAD: progresses.
13:45.01 claymore howd7!
13:45.07 claymore howd7 even!
13:45.20 claymore fingers are cold and slow :/
13:49.15 CIA-6 BRL-CAD: 03davidloman * r33312 10/iBME/trunk/ (87 files in 9 dirs):
13:49.16 brlcad claymore: i'm a bit concerned by that direction, to be honest
13:49.46 brlcad it's effectively a fork
13:50.57 claymore I have been thinking about the organization for a long while now, and, honestly, there are several distinctly different efforts in rt^3.
13:50.59 brlcad it's also pretty natural for things to seem cluttered and messy when it's not code you wrote (whether it *actually* is or isn't)
13:52.04 claymore And that the way that the iBME/GS/GE is porgressing, it was going to rapidly take over the rt^3 module... and i definetly don't want to step on peoples toes.
13:52.37 claymore So the path I see is to seperate, evaluate and re integrate.
13:52.47 brlcad it's akin to you saying, I don't want to play in that playground over there (where everyone else already is playing), come play in this new one I'm making over here
13:53.30 brlcad I mean it's a *really* classic developer trait to do that .. but it's rarely *rarely* ever productive for long-term maintenance
13:54.09 claymore brlcad: That may be your interpretation ;), but in reality is me stepping back, evaluating and coming back in a few minutes ;)
13:54.38 brlcad like I said before, the 'rt^3' module is no different in direction than what you're calling the iBME module
13:54.51 brlcad the projects, goals, and implementation pieces are even the same
13:57.48 claymore To a point, sure. But like I said, I don't want to presume to start re-arranging other people's code when they might not have the same goals.
13:58.00 brlcad we should have the same goals
13:58.11 brlcad if we don't, then that's a much bigger problem that has to be addressed
13:58.26 brlcad and not something that can be done later
13:58.58 brlcad we should have the *exact* same goals frankly, and no work to date has led me to see anyone doing anything not within the same goals
14:00.11 claymore :) if you say so then
14:00.29 brlcad you shouldn't just start re-arranging other code regardless -- you should talk to those that worked on it, that's part of the collaboration and (more importantly) part of the long term maintainability
14:01.51 brlcad it's also not "people's" code -- there can be stewards for portions of the code, but there aren't personal boudaries in the code
14:02.09 brlcad there should be nothing that prevents anyone else from working on and improving *any* other code
14:02.19 brlcad no matter who wrote it, how new or old that code has been there
14:03.42 claymore when would be a good day to bounce some build system questions off ya?
14:04.06 brlcad any day
14:04.18 brlcad shoot
14:07.15 CIA-6 BRL-CAD: 03davidloman * r33313 10/rt^3/trunk/src/iBME/: Moving GS and GE components in adhere to rt^3 guidelines.
14:07.45 claymore non specific, more general questions, actually. :/
14:09.15 CIA-6 BRL-CAD: 03davidloman * r33314 10/rt^3/trunk/docs/: Moving GS and GE components in adhere to rt^3 guidelines.
14:09.57 claymore the network connection here keeps f-ing up my commits... have to do them peicemeal :/
14:10.05 brlcad for what it's worth, here's a really good article from Joel that summarizes that trait aspect I was referring to
14:10.15 CIA-6 BRL-CAD: 03davidloman * r33315 10/rt^3/trunk/src/ (5 files in 5 dirs): Moving GS and GE components in adhere to rt^3 guidelines.
14:10.16 brlcad they should be piecemeal to begin with :)
14:10.37 brlcad moved this from here to there (because of blah reason)
14:10.54 brlcad http://www.joelonsoftware.com/articles/fog0000000069.html
14:11.23 claymore exactly. Problem is moving 4 or 5 dirs is just a bit too much. Connection drops. grrr...
14:15.11 brlcad hm, I haven't seen that on the mac
14:17.15 claymore I would blame the ide I am using, but the internet and ftp are all flaky too. probably Windows :/
14:21.04 brlcad probably
14:22.16 brlcad another good article from Joel (though not as poignant as the first), http://www.joelonsoftware.com/articles/fog0000000348.html
14:23.08 brlcad they breach into the higher level forkage issues (ala M3) pretty exemplary
14:27.47 claymore good articles.
14:28.04 brlcad joel is awesome
14:28.30 brlcad i've not yet met the guy, but he has some outstanding articles and a couple really good books
14:28.57 brlcad one little pocket book that I think every manager that hires a software developer (or computer geek in general) should absolutely read
14:29.03 brlcad as in required reading
14:30.24 brlcad "Smart & Gets Things Done", it's a great little guide to computer geeks, quick read
14:35.00 claymore bookmarked that, thanks :)
14:35.36 brlcad I have it if you want to borrow it sometime
14:35.58 brlcad can be read in less than an hour
14:37.41 claymore ha, now you sound like my wife. She downed the LotR trilogy in less than a day. lol. I don't read fast at all.
14:37.45 claymore ADD maybe.
14:39.50 brlcad heh
14:40.45 claymore So, since you offered, how does the BRLCAD build system work ? :)
14:41.39 brlcad we use what's called the GNU Build System aka the GNU Autotools aka .. Autoconf + Automake + Libtool
14:42.54 brlcad I should prefice that the autotools are going to seem like hell BUT you should keep in mind that there is a reason that it is organized and implemented the way it is
14:43.42 brlcad whether those reasons are good or bad today or even relavant any more are certainly debatable, but it's one of those high-hurdle devmanship projects that take a long time to become good at
14:44.18 brlcad that said, it's by far the most commonly used build system too, by quite a huge margin
14:44.54 archivist a black art build system :)
14:45.05 brlcad there are a few others coming up in the ranks (cmake being a big notable one), but it's still top-dog and one that almost "does it all" and is usually pretty easy to find someone knowledgeable in
14:46.10 brlcad so the build system starts with autogen.sh -- that is a script that I wrote that overcomes common configuration problems and "prepares the build system"
14:46.52 brlcad it's effectively NO DIFFERENT than running a tool called "autoreconf" that sets the stage
14:47.20 brlcad but as it's one step higher, it can actually detect, fix, accommodate, etc, other configuration issues
14:48.30 brlcad so other starting point files -- there are configure *templates* (i.e. configure.ac or configure.in depending on the project, .ac in our case) and automake Makefile templates (the Makefile.am files)
14:49.09 brlcad when you run autogen.sh/autoreconf, it turns the configure.ac into a configure shell script and the Makefile.am files into Makefile.in files
14:50.14 brlcad when you run the configure script, it turns the Makefile.in files into a traditional unix-style "Makefile", and when you run "make", it traverses through the hierarchy accordingly
14:52.21 brlcad if everything is set up right, the user that downloads a source tarball from us doesn't need the GNU autotools to be installed -- they merely need a shell interpreter to run the configure script and 'make' (and a compiler)
14:53.31 brlcad those are bare minimal requirements that give a consistent and portable build environment
14:53.55 claymore cool. thanks for that. No i just need to read up on make lol.
14:54.39 brlcad actually, not much
14:54.53 brlcad because you shouldn't really be writing much/any make logic
14:55.27 brlcad you write automake directives, which basically amount to setting variables
14:55.46 claymore Well, I am looking at the contents of the individual subdir makefile.am files. Just need to know how to define my own binaries and includes.
14:56.04 brlcad it's usually a lot easier to (start to) grasp the gnu autotools by looking at exisitng projects than it will be by reading up on it
14:56.16 claymore remember, I am a long time windows turd learning this for the first time :)
14:56.17 brlcad if only because there are so many options, things you can and cannot do
14:56.30 claymore kk, sound advice.
14:57.09 brlcad actually, the minimal bits that are in rt^3 now for the previous code are a decent minimal starting point
14:57.33 brlcad it'll take you through ./autogen.sh && ./configure && make should work
14:58.02 brlcad so you can see some minimal stubbing in the top-level configure.ac file, and how the Makefile.am files are organized to build libraries and binaries
14:58.14 brlcad and it only builds a couple, so it should be pretty straitforward
14:59.07 brlcad the 'brlcad' module gets into a lot more advanced/complicated/special cases and logic/infrastructure needed to support the much bigger complexity there
14:59.23 brlcad rt3's is nearly minimal
14:59.49 claymore Excellent, thanks!
15:01.11 brlcad so that's the 'easy' one to get up and running (someone autotool-enabled should be able to wrap everything you've done to date in less than an hour) if what you have compiles
15:01.21 claymore Other question: in header files, is it a compiler specific standard to use a #if !defined(__MYHEADER_H__) for a file called myheader.h ?
15:01.47 brlcad that said, you could also use cmake since it's not the main module -- but there the knowledge base is much smaller, we're just getting started with that
15:02.15 brlcad mafm started his gui work for gsoc using cmake
15:02.59 brlcad that's not compiler-specific, but yeah -- pretty standard to have headers protect themselves from multiple inclusion/declarations
15:03.17 brlcad which was something I was going to change in what you have already, actually
15:03.29 brlcad uuids in preprocessor directives is a bit nutty
15:03.57 brlcad I mean it's clear why, but fugly as all hell
15:04.12 brlcad the usual is something like:
15:04.29 claymore right, I understand the multiple inclusion protection, its just the '__MYHEADER_H__' thing.. didn't know if that was just good practice or some sorta standard.
15:04.52 brlcad #ifndef __MYHEADER_H__
15:04.55 claymore the UUID's are EnterpriseArchitect vomit. in process of cleaning it up right now.
15:04.56 brlcad #define __MYDEAHDER_H__
15:05.03 brlcad ...contents
15:05.04 brlcad #endif
15:05.37 brlcad just good practice
15:06.04 brlcad and if you want to get *really* pedantic about it, they probably shouldn't have a double-leading underscore
15:07.04 brlcad even though that's what all of the brlcad module headers do (and what many/most projects use)
15:07.30 brlcad "BC_MYHEADER_H" would be the non-offensive compromise
15:07.39 brlcad or some variation thereof
15:07.48 claymore Curious... whats the big deal with double underscore vs not?
15:08.38 brlcad technically speaking, double-underscore preprocessor directives are reserved for the compiler to use for internal purposes
15:09.05 brlcad the chance that the compiler would ever use something that conflicts, though, is absurdly small
15:10.37 brlcad at least given the _H__
15:11.02 claymore hrm, okay cool.
15:11.05 brlcad you can see the built-in preprocessor defines for linux with: touch file.h && gcc -dM -E file.h
15:24.16 claymore thats a pretty neat trick :)
15:28.08 claymore are the lines at the end of each file (aka //Local Variables: ) for emacs and other editors?
15:39.38 *** join/#brlcad elite01 (n=omg@unaffiliated/elite01)
15:43.37 CIA-6 BRL-CAD: 03davidloman * r33316 10/rt^3/trunk/src/ (6 files in 3 dirs):
15:43.37 CIA-6 BRL-CAD: Changed header preprocessor directives so that they are NOT UUIDs anymore.
15:43.37 CIA-6 BRL-CAD: Moved Header files to include/ directories. Renamed all file extensions from
15:43.37 CIA-6 BRL-CAD: .cpp to .cxx per rt^3 standards. Added //Local Variables: blocks at the end of
15:43.37 CIA-6 BRL-CAD: each file per rt^3 standards.
15:43.53 brlcad yes
15:44.30 brlcad they have a specific format that is recognized by some editors that help enforce/encourage consistent indentaiton and other whitespace rules
15:46.15 claymore kewl, thanks again!
15:47.12 claymore grumbles about the cruddy network io :/
15:47.22 CIA-6 BRL-CAD: 03davidloman * r33317 10/rt^3/trunk/src/GeometryService/Jobs/ (24 files):
15:47.57 CIA-6 BRL-CAD: 03davidloman * r33318 10/rt^3/trunk/src/GeometryService/ (36 files in 2 dirs):
15:47.57 CIA-6 BRL-CAD: Changed header preprocessor directives so that they are NOT UUIDs anymore.
15:47.57 CIA-6 BRL-CAD: Moved Header files to include/ directories. Renamed all file extensions from
15:47.57 CIA-6 BRL-CAD: .cpp to .cxx per rt^3 standards. Added //Local Variables: blocks at the end of
15:47.57 CIA-6 BRL-CAD: each file per rt^3 standards.
15:48.29 CIA-6 BRL-CAD: 03davidloman * r33319 10/rt^3/trunk/src/GeometryEngine/ (45 files):
15:48.30 CIA-6 BRL-CAD: Changed header preprocessor directives so that they are NOT UUIDs anymore.
15:48.30 CIA-6 BRL-CAD: Moved Header files to include/ directories. Renamed all file extensions from
15:48.30 CIA-6 BRL-CAD: .cpp to .cxx per rt^3 standards. Added //Local Variables: blocks at the end of
15:48.30 CIA-6 BRL-CAD: each file per rt^3 standards.
15:49.51 CIA-6 BRL-CAD: 03davidloman * r33320 10/rt^3/trunk/include/ (4 files in 2 dirs):
15:49.51 CIA-6 BRL-CAD: Changed header preprocessor directives so that they are NOT UUIDs anymore.
15:49.51 CIA-6 BRL-CAD: Moved Header files to include/ directories. Renamed all file extensions from
15:49.51 CIA-6 BRL-CAD: .cpp to .cxx per rt^3 standards. Added //Local Variables: blocks at the end of
15:49.52 CIA-6 BRL-CAD: each file per rt^3 standards.
15:49.52 brlcad if you want to change anything about the 'standards' spelled out, speak up -- that is more so that everything is consistent than it is as a "thou shalt"
15:50.11 brlcad and so we're not always discussing bikeshed issues that don't matter much ;)
15:50.26 brlcad but there are a few things that are easy
15:51.12 CIA-6 BRL-CAD: 03davidloman * r33321 10/rt^3/trunk/include/GeometryService/ (5 files in 2 dirs):
15:51.12 CIA-6 BRL-CAD: Changed header preprocessor directives so that they are NOT UUIDs anymore.
15:51.12 CIA-6 BRL-CAD: Moved Header files to include/ directories. Renamed all file extensions from
15:51.12 CIA-6 BRL-CAD: .cpp to .cxx per rt^3 standards. Added //Local Variables: blocks at the end of
15:51.13 CIA-6 BRL-CAD: each file per rt^3 standards.
15:51.32 claymore Oh I will. I just need to understand al the 'current standards' and what they imply first :)
15:52.09 CIA-6 BRL-CAD: 03davidloman * r33322 10/rt^3/trunk/include/GeometryService/Jobs/ (9 files):
15:52.09 CIA-6 BRL-CAD: Changed header preprocessor directives so that they are NOT UUIDs anymore.
15:52.09 CIA-6 BRL-CAD: Moved Header files to include/ directories. Renamed all file extensions from
15:52.09 CIA-6 BRL-CAD: .cpp to .cxx per rt^3 standards. Added //Local Variables: blocks at the end of
15:52.09 CIA-6 BRL-CAD: each file per rt^3 standards.
15:52.45 claymore apologizes for the commit spam... can't seem to commit any more than 8-10 files at one time without the connection dropping.
15:52.59 brlcad there is no such thing!
15:53.11 brlcad you can't commit too frequently :)
15:53.15 CIA-6 BRL-CAD: 03davidloman * r33323 10/rt^3/trunk/include/GeometryService/ (9 files):
15:53.15 CIA-6 BRL-CAD: Changed header preprocessor directives so that they are NOT UUIDs anymore.
15:53.15 CIA-6 BRL-CAD: Moved Header files to include/ directories. Renamed all file extensions from
15:53.15 CIA-6 BRL-CAD: .cpp to .cxx per rt^3 standards. Added //Local Variables: blocks at the end of
15:53.15 CIA-6 BRL-CAD: each file per rt^3 standards.
15:53.16 brlcad you really cannot
15:53.35 claymore has very evil thoughts....
15:53.38 brlcad I would have said there were at least four commits in there regardless :)
15:53.58 brlcad seriously, it can/should usually be as often as you hit "Save"
15:54.12 CIA-6 BRL-CAD: 03davidloman * r33324 10/rt^3/trunk/include/GeometryEngine/ (16 files):
15:54.12 CIA-6 BRL-CAD: Changed header preprocessor directives so that they are NOT UUIDs anymore.
15:54.12 CIA-6 BRL-CAD: Moved Header files to include/ directories. Renamed all file extensions from
15:54.12 CIA-6 BRL-CAD: .cpp to .cxx per rt^3 standards. Added //Local Variables: blocks at the end of
15:54.12 CIA-6 BRL-CAD: each file per rt^3 standards.
15:54.28 brlcad the messages become much more meaningful the smaller the commit size
15:54.38 brlcad and useful 10 years later
15:54.43 claymore I am working on it. I just have to curb my pseudo-OCD towards 'commiting' vs 'saving' ;)
16:41.26 CIA-6 BRL-CAD: 03davidloman * r33325 10/rt^3/trunk/ (33 files in 3 dirs): refactored a few classes to use 'DbObject' instead of 'Resource'
17:14.17 *** join/#brlcad Elrohir (n=kvirc@p5B14D2D4.dip.t-dialin.net)
18:12.43 CIA-6 BRL-CAD: 03davidloman * r33326 10/rt^3/trunk/src/GeometryEngine/ (8 files): Cleaned up references in both cxx and h files after classname refactor. Individual classfiles in src/GeometryEngine now compile.
18:17.27 CIA-6 BRL-CAD: 03davidloman * r33327 10/rt^3/trunk/include/ (14 files in 2 dirs): Cleaned up references in both cxx and h files after classname refactor. Individual headerfiles in include/GeometryEngine now compile. Added 'iBMECommon.h' file to typedef UUID and URL classes until they are implemented.
19:11.41 CIA-6 BRL-CAD: 03davidloman * r33328 10/rt^3/trunk/ (27 files in 6 dirs): Cleaned up references in both cxx and h files after classname refactor. Individual files in include/GeometryService and src/GeometryService now compile.
20:57.39 *** join/#brlcad louipc (n=louipc@archlinux/trusteduser/louipc)
22:24.48 *** join/#brlcad prasad_ (n=psilva@static-96-255-52-7.washdc.fios.verizon.net)
22:24.57 *** part/#brlcad prasad_ (n=psilva@static-96-255-52-7.washdc.fios.verizon.net)
23:24.30 *** join/#brlcad Ralith_ (n=ralith@216.162.199.202)
23:32.59 *** join/#brlcad Ralith_ (n=ralith@216.162.199.202)

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