#emc-devel | Logs for 2010-03-12

[00:38:00] <skunkworks> logger_dev: bookmark
[00:38:00] <skunkworks> Just this once .. here's the log: http://www.linuxcnc.org/irc/irc.freenode.net:6667/emcdevel/2010-03-12.txt
[03:02:43] <jepler> argh, I can't find my memory leak
[03:23:41] <SWPadnos> no pun intended :)
[04:02:20] <skunkworks> it will be the last place you look!
[04:10:36] <CIA-2> EMC: 03jepler 07master * re3f88a00e382 10/ (bin/profile_axis configs/sim/profile_axis.ini): make it easier to profile axis
[04:10:36] <CIA-2> EMC: 03jepler 07master * r7b83d18cb287 10/src/emc/usr_intf/axis/scripts/axis.py: get rid of unneeded import
[04:10:41] <CIA-2> EMC: 03jepler 07master * rc4958f8b2dc6 10/lib/python/rs274/ (glcanon.py interpret.py): remove unneeded initializations
[04:10:42] <CIA-2> EMC: 03jepler 07master * rae44e7ac5d9c 10/lib/python/rs274/glcanon.py: remove redundant method
[04:10:42] <CIA-2> EMC: 03jepler 07master * r217bb65cbe66 10/src/emc/rs274ngc/gcodemodule.cc: Remove unneeded offsetof hack
[04:10:43] <CIA-2> EMC: 03jepler 07master * r76aa1b1e736a 10/src/emc/rs274ngc/gcodemodule.cc: correct error message
[04:10:44] <CIA-2> EMC: 03jepler 07master * r94d74594d6f6 10/src/emc/usr_intf/axis/scripts/axis.py: a redraw is required after the rotation changes
[04:10:44] <CIA-2> EMC: 03jepler 07master * r5a34cb731121 10/lib/python/rs274/glcanon.py: make it always legal to call extents_info
[04:10:47] <CIA-2> EMC: 03jepler 07master * r5ca9e2585a5e 10/lib/python/rs274/glcanon.py: simplify since it's always OK to call extents_info
[04:10:47] <CIA-2> EMC: 03jepler 07master * r98f2639aa3a3 10/src/emc/usr_intf/axis/scripts/axis.py: get rid of redundant code
[04:10:50] <CIA-2> EMC: 03jepler 07master * rc9e4da623001 10/lib/python/ (glnav.py rs274/glcanon.py): move methods to base class
[04:10:51] <CIA-2> EMC: 03jepler 07master * rddc50bd79d85 10/ (3 files in 3 dirs): make my editor use the right settings
[04:10:52] <CIA-2> EMC: 03jepler 07master * r94a8d2be35c1 10/src/emc/rs274ngc/gcodemodule.cc: wrap long lines
[04:10:53] <CIA-2> EMC: 03jepler 07master * rfbddf7e4e89b 10/src/emc/usr_intf/axis/scripts/axis.py: make the preset view buttons react to a rotate
[04:10:54] <CIA-2> EMC: 03jepler 07master * r81a7b0c428a1 10/lib/python/glnav.py: rotate should snap into perspective mode
[04:10:54] <CIA-2> EMC: 03jepler 07master * r957d57a884ad 10/lib/python/rs274/glcanon.py: get rid of dead code
[04:10:55] <CIA-2> EMC: 03jepler 07master * r15a3782828b1 10/lib/python/rs274/glcanon.py: reduce memory usage of display lists
[04:11:00] <CIA-2> EMC: 03jepler 07master * r47459e452750 10/lib/python/rs274/glcanon.py: fix display of origin when rotated
[04:11:37] <jepler> actually it wasn't a memory leak. I was generating more stuff than I expected, so memory usage was worse than the baseline .. but not because of a "leak" per se
[04:16:16] <jepler> 'night
[09:56:41] <aystarik> ok, my patch gives about 2.5 times speed up of reload_file for my test file (14.840 -> 5.747). making arcsegment accept list lowers it to 5.575.
[09:57:36] <aystarik> this is with xy_rotation applied
[10:28:21] <micges_work1> aystarik: try this gcode: http://filebin.ca/usmhat/v60.iso
[10:30:53] <aystarik> micges: best is 6.113
[10:34:13] <aystarik> vanilla: 8.243
[10:34:27] <aystarik> still some speedup
[10:35:37] <micges_work1> here 4 sec on master before any speedup patches :)
[10:36:04] <aystarik> hardware OpenGL?
[10:36:54] <aystarik> jepler: hi
[10:37:42] <aystarik> re: list to arcsegment -- is there a need to deref it after call?
[12:40:57] <JT-Dev> hmmm, git branch -r shows origin/v2.4_branch but git checkout v2.4_branch gives me an error pathspec did not match
[12:41:18] <JT-Dev> then it says did you forget to git add?
[13:26:00] <jepler> JT-Dev: if it's the first time you're checking out v2.4_branch, then you need to: git checkout -b v2.4_branch origin/v2.4_branch
[13:26:05] <jepler> as for the other message, I dunno
[13:26:22] <JT-Dev> thanks jepler
[13:26:30] <jepler> aystarik: I'm a little surprised that the numeric stability of repeatedly rotating by theta is OK, but a little test shows that it is..
[13:31:05] <aystarik> doubles are forgiving...
[13:32:23] <jepler> here's my profiling data, then I'm off to the office .. http://emergent.unpy.net/files/sandbox/emc2-arc-profiling-data.txt
[13:37:22] <aystarik> cool, almost 3 times speedup
[13:38:27] <aystarik> did you see the last patch to update axis with current rotation?
[13:40:38] <jepler> yeah, isn't it the same as 47459e452750a822f1e823fdf0fe81f81850a401 (which I pushed less than 12 hours ago)
[13:41:43] <jepler> thanks for catching the order of operations bug in my code; I was obviously testing with zero translations
[13:43:36] <micges_work1> aystarik: can you try run gcode I've pasted?
[13:44:13] <aystarik> micges -- I already told you numbers for it, remember?
[13:44:30] <micges_work1> aystarik: not load, run it in simuator :)
[13:46:08] <micges_work1> I have bug here and want to confirm
[13:47:04] <aystarik> it's running
[13:47:51] <micges_work1> ok, thanks
[13:48:04] <aystarik> jepler, is there need to DECREF list?
[13:48:05] <jepler> aystarik: you asked a question about reference counting. Here's how to find the answer: http://docs.python.org/c-api/object.html#PyObject_CallMethod says The C arguments are described by a Py_BuildValue() format string; that functions documentation says Pass a Python object untouched (except for its reference count, which is incremented by one).
[13:48:44] <jepler> so yes, when you passan "O" through PyObject_CallMethod it isn't stealing the reference so typically you have to Py_DECREF it
[13:49:02] <jepler> pass an
[13:49:27] <aystarik> it was missing in your code, so I tried to understand...
[13:49:44] <aystarik> micges, should I wait for it to complete?
[13:51:34] <jepler> aystarik: where in my code? You mean, because my code was structured to return the list, not use PyObject_CallMethod?
[13:51:42] <jepler> or is there a refcounting bug in my code
[13:53:40] <aystarik> I am not python programmer, so ask stupid questions...
[13:54:18] <jepler> I updated http://emergent.unpy.net/files/sandbox/emc2-arc-profiling-data.txt with a profile that does your repeated rotation instead of sin+cos in inner loop, but it didn't get fast. Item 3.5.
[13:54:25] <jepler> and now I really need to go to the office and do the job that pays the bills
[13:54:38] <jepler> see you later
[13:55:37] <jepler> latest changes pushed to my personal git tree as noted in that file
[13:56:17] <aystarik> see you
[19:26:36] <alex_joni> there are days when I really hate software
[19:28:11] <micges> what happens?
[19:28:38] <jepler> only some days?
[19:34:19] <alex_joni> micges: lost 4h today debugging a strange issue with some proprietory software
[19:34:23] <alex_joni> actually my email client
[19:34:56] <alex_joni> seems it wants to act smart, and looks at files I attach, when it sees a lot of ASCII it decides to encode it as quoted-printable instead of base64
[19:35:27] <alex_joni> which wouldn't be a problem per se, but yahoo and google and other likewise smart email clients decide to replace 0x0A 0x0D with 0x0D
[19:35:30] <cradek> what? a proprietary email client?
[19:35:33] <alex_joni> which for a binary file is bad
[19:35:51] <alex_joni> cradek: I know, I know.. but I got about 8yrs of email in there
[19:36:07] <alex_joni> switching to thunderbird didn't quite work out as good as I hoped
[19:36:44] <cradek> the 8-yrs-ago you must not have been very smart then :-P
[19:37:06] <skunkworks_> I switched from outlook express to thunderbird... 7 years of emails
[19:37:57] <skunkworks_> I broke out each year into an archive before the tranfer - it wouldn't do it in one big folder.
[19:38:46] <alex_joni> skunkworks_: yup, OE here too
[19:38:58] <SWPadnos> there's a piece of proprietary software that apparently is very good at migrating emails between different MUAs. It might be worth the one-time hit
[19:39:04] <alex_joni> cradek: they did update it 2008 or so
[19:40:32] <alex_joni> skunkworks_: I have lots of folders
[19:41:18] <alex_joni> ~8GB in 155 folders
[19:42:19] <micges> alex_joni: what was wrong on TB mail import?
[19:44:51] <skunkworks_> ah - I only had 2.14gb of emails...
[19:45:33] <alex_joni> micges: well.. it worked eventually, but there were little details that annoyed me on TB
[19:45:48] <alex_joni> just like I didn't liek Outlook
[19:45:56] <alex_joni> or the new Live Mail
[19:46:06] <micges> I see
[19:46:09] <alex_joni> that one is really bad (performance wise)
[19:46:31] <micges> yes I saw it, it's crap
[19:46:36] <SWPadnos> I don't particularly like TB either. I'm using SeaMonkey now (finally upgraded from Mozilla 1.7.x in the last 6 months)
[19:47:07] <jepler> I keep meaning to take a serious look at notmuch or sup, but mutt + separate full-text indexing is nice too.
[19:47:18] <jepler> of course, that assumes you are content with a text-mode mail client
[19:47:56] <SWPadnos> it's funny. I prefer it when people use plain text in their emails, but I like the presentation of text emails better a graphical client
[19:48:14] <SWPadnos> things like graying or italicizing quoted text, along with a gray bar at the left
[19:48:54] <SWPadnos> I can't stand it when I get a 12k email that says something like "Hi - you want to have lunch?"
[19:49:11] <SWPadnos> the other 11.9k being the stupid formatting shit that OE sticks in there
[19:49:23] <jepler> oh, who cares if an e-mail is 12k or 1k to say one line of text.. you never see it
[19:49:39] <SWPadnos> me, me! :)
[19:49:44] <jepler> but heaven forbid some fuzzy thinker should actually be able to display red or large text on my screen without my sayso
[19:55:21] <skunkworks_> I gave up on IE because everytime you had a email folder bigger than 1gb - you couldn't compact them anymore.
[19:56:29] <skunkworks_> TB has been serving me pretty well. No big complaints. I like the calender addon - (lightning) because it is compatable with the outlook calender.
[19:56:56] <skunkworks_> IE never had such a utillity.
[19:57:05] <skunkworks_> *OE
[19:57:32] <micges> we gave up OE becaouse large amount of emails ofter caoused to email database broke and all email was lost
[19:57:41] <skunkworks_> yep
[19:58:23] <jepler> mail should be stored in a structure no more complicated than mbox or maildir
[19:58:39] <jepler> binary-format metadata is acceptable ONLY IF it is an optimization and can be rebuilt from the underlying mail
[19:59:40] <cradek> so-called "enterprise" mail systems (for instance where there is just one copy of an attachment that some idiot sent to everyone in the company) seem like they could be a good idea. Too bad nobody has managed to do it right, yet...
[20:00:11] <jepler> mmmmmaybe
[20:02:25] <SWPadnos> Actually, I think Novell's GroupWise was about as close to perfect as anyone has gotten in that realm
[20:02:31] <SWPadnos> and it was very very good
[20:03:16] <jepler> explode the MIME structure into a directory structure for each message (call it 'mimedir'), then use hard-link magic on any big files
[20:03:22] <SWPadnos> you could un-send things that hadn't been read yet. it had excellent markup abilities along with audit trails, it did the "single storage" thing for attachments (and emails I think)
[20:03:38] <cradek> sorry no, groupwise was a piece of shit
[20:03:43] <SWPadnos> heh
[20:04:04] <skunkworks_> so - we got some the older style opto22 16 port boards cheap(4) (we have a ton of opto22 input modules) and the cards are made to have an edge connector. well - it just so happens that the old floppy drive edge plug will work great - I can make up cables that go between that and the 50 pin scsi cable.
[20:04:05] <SWPadnos> I guess it depends on whether you were evaluating it for possible use, using it, or administering it :)
[20:04:15] <SWPadnos> (I only did the first two, and not for long ;) )
[20:05:02] <SWPadnos> ok, time to bring the tax check to the accountant bbl
[20:05:06] <cradek> it did the dumbass trick of accepting a message, then responding to whoever was listed in "From" if it thought it was spam for YEARS after everyone knew not to do this
[20:05:55] <cradek> it would bomb if you sent it mail too fast, so I hid it behind a sendmail machine which would patiently give it one message at a time
[20:07:27] <cradek> (also insert a "haha netware haha" here somewhere too)
[20:07:33] <cradek> ... but the snake was cool
[20:08:08] <cradek> skunkworks_: does that end up wired right? that's pretty slick.
[20:08:31] <skunkworks_> yes - the ground is on one side - logic on the other.
[20:09:49] <skunkworks_> splitting them out for mutible boards might take a little thinking.. 16 doesn't go into 24 very well ;)
[20:11:55] <cradek> hmm yeah
[20:12:10] <skunkworks_> I have not counted all the inputs yet though.... I know I need atleast 27 outputs.
[20:12:31] <cradek> I bet you always need more than you think
[20:12:57] <skunkworks_> yes - I am thinking 2 boards are going to be needed
[20:14:55] <skunkworks_> going to need 15 inputs just for the toolreader.. ;) (could use the printer port for that I guess... (if I could turn it into all input)
[20:16:14] <cradek> if you had 3 5i20 you'd have 9 plugs. you could use 8 plugs for 12 of your 16 bit opto boards... otherwise I think you can't make it come out even.
[20:16:26] <cradek> you'd have plenty of I/O, that's for sure.
[20:17:07] <skunkworks_> heh
[20:24:43] <PCW> 2x24 = 3x16
[20:25:09] <cradek> oh sure, use your fancy math
[20:28:56] <skunkworks_> heh
[20:29:07] <skunkworks_> you guyz!
[20:29:21] <PCW> I just reduced your big fraction...
[20:29:23] <PCW> I think there are 32 output module racks as well
[20:29:53] <skunkworks_> I have 1 24 port one that plugs right in - awesome.
[20:30:11] <cradek> I luckily ended up with three of those for jr.
[20:30:53] <skunkworks_> nice
[20:31:15] <PCW> so mill a little adaptor with two 50 pin headers and 3 x 34
[20:40:02] <cradek> I'd just lazily get some ribbon and crimp up the cables appropriately
[20:40:13] <skunkworks_> that is my plan.
[20:40:47] <PCW> Ya, you dont use the cable +5 its should be do-able just by crimping 2 50pin headers on the 3x 34 floppy pin cables
[20:41:02] <PCW> (if you dont)
[20:42:06] <PCW> maybe a single strand 2-3 Y for the +5V cable power
[21:05:16] <skunkworks_> my inital plan is to crimp the connectors so the 5 volts powers on 16i/0 board and then jump to the rest (they have screw terminals also)
[21:06:31] <skunkworks_> *on = one