--- Log opened Wed Sep 30 00:00:02 2009 |
00:10 | | Derakon[work] [Derakon@Nightstar-d44d635e.ucsf.edu] has joined #Code |
00:10 | < Derakon[work]> | Well, didn't get much of a chance to stress-test it with custom Python scripts. |
00:10 | < Derakon[work]> | One of the biologists is transferring data off of the cockpit machine, and it is definitely less stable when that's happening. |
00:11 | < Derakon[work]> | Makes it an average of, oh, 30 seconds before crashing. |
00:11 | < Derakon[work]> | So something about using WinSCP to transfer gigabytes of files is interfering with normal program operation. |
00:11 | < Rhamphoryncus> | heh |
00:11 | < Derakon[work]> | Whether that's just not multitasking nicely, or a matter of disk access, or what, I don't know. |
00:12 | < Rhamphoryncus> | A bogged disk should just cause delays |
00:12 | < Derakon[work]> | Right, but disk delays are orders of magnitude worse than context-switching delays. |
00:13 | < Rhamphoryncus> | If the microscope code causes a crash because of delays then you definitely need to add the right sanity checks there. Let you at least know it's the cause |
00:13 | < Derakon[work]> | I just wish I knew how to add the right sanity checks. |
00:14 | < Rhamphoryncus> | Hard to give suggestions without looking at the code |
00:14 | < Derakon[work]> | Hard to give suggestions even if you had the code, believe me. ?.? |
00:14 | < Rhamphoryncus> | I do, but I like threading ;) |
00:15 | < Derakon[work]> | Heh. |
00:15 | < Rhamphoryncus> | How many different threads do you have and which ones interact with the microscope? |
00:16 | <@Vornicus> | Karnaugh maps are not friendly for minimizing NAND count. |
00:16 | < Derakon[work]> | IIRC, we have one UI thread, four camera threads, and one file-writing thread. |
00:16 | < Derakon[work]> | We don't talk to the hardware directly; it's all done through an intermediary computer called DSP. |
00:16 | < Derakon[work]> | Which queues up lists of actions and executes them. |
00:17 | < Derakon[work]> | (E.g. move slide to this location, then iteratively move it along the Z axis .5 microns at a time, taking a photo with each active camera after each step) |
00:17 | < Rhamphoryncus> | ... |
00:17 | < Rhamphoryncus> | The purpose of the camera threads is to read out all the cameras simultaneously? |
00:17 | < Derakon[work]> | I have to say I'm not certain. |
00:18 | < Finale> | queue... delays.... sounds to this ignorant noob like queue overflow. |
00:18 | < Rhamphoryncus> | It's a single core box |
00:18 | < Rhamphoryncus> | It CAN'T be simultaneous |
00:18 | < Derakon[work]> | I know we use the camera threads to tell the cameras what their aperture, exposure, etc. settings are. |
00:18 | < Derakon[work]> | I don't know if there's any reading going on. |
00:18 | < Rhamphoryncus> | You can probably put a big lock around them, so only one sends commands at a time |
00:19 | < Derakon[work]> | I think that reads are only done with the file-writer thread, though. |
00:20 | < Derakon[work]> | (Note that anything involving changing the C code is iffy since we'd have to rebuild the software...) |
00:20 | < Rhamphoryncus> | ugh |
00:20 | < Rhamphoryncus> | You know there's probably some stupidly simple bugs in the C code, right? |
00:20 | < Derakon[work]> | Entirely possible, but it's almost as much of a rat's nest as the Python is. I need to dive in and reread it. |
00:20 | < Derakon[work]> | Not looking forward to that. |
00:21 | < Rhamphoryncus> | You need to delete it :/ |
00:21 | < Derakon[work]> | Heh. |
00:21 | < Rhamphoryncus> | Burn it. To death. |
00:21 | < Derakon[work]> | Then spend the next year and a half reimplementing it. |
00:21 | < Rhamphoryncus> | Naw, you reimplement it first. Significantly easier than the original implementation |
00:22 | | * Vornicus fiddles with Simon's problem. Wonders whether he really wants to optimize NAND count, or whether depth would be more appropriate. |
00:24 | < Derakon[work]> | Having spent a bit more time with the code, I think I may be able to redesign it piecemeal. |
00:25 | | * TheWatcher would heartily recommend this, if it appears viable. |
00:25 | < Derakon[work]> | Once I get through the sudden rush of initial feature requests, I'll go through and start turning each module into a properly-designed thing with well-behaved interfaces with the rest of the system. |
00:25 | < Rhamphoryncus> | Even if it doesn't appear viable it seems more productive than what you've done so far |
00:26 | | * Vornicus actually isn't sure he's got the chops to solve Simon's problem! |
00:26 | < Derakon[work]> | Rhamph: well, as far as fixing this particular bug, I've not made much progress, no. |
00:26 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: Leaving] |
00:26 | < Derakon[work]> | I have managed to add several useful features though, and cleaned up the code very slightly where I have. |
00:27 | < Derakon[work]> | Er, where I've touched it. |
00:28 | < Derakon[work]> | Most of the existing modules, while horribly-named, do a good job of presenting how the code should be logically organized. E.g. sebC.py, which has most of the code controlling the cameras, should be named "camera.py" or something like that, and should have a better-defined interface and keep all camera state locally instead of in seb.py. |
00:28 | < Derakon[work]> | So I could rename sebC.py, find all references to it and fix those, pull any camera-related state out of seb.py and into the newly-named module, figure out what it does and redesign its interface, all without having to completely rewrite everything else. |
00:29 | < Rhamphoryncus> | sounds like a good start |
00:29 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #Code |
00:29 | | mode/#code [+o Vornicus] by Reiver |
00:29 | < Rhamphoryncus> | You're in version control, right? |
00:29 | < Derakon[work]> | We got a repo on bitbucket set up, yes. |
00:30 | < Derakon[work]> | Checkins are a bit clunky and probably not done as often as they should be, but it's far better than what it used to be. |
00:30 | < Rhamphoryncus> | good enough |
00:30 | < Derakon[work]> | (I should look into Mercurial clients on Windows) |
00:31 | | You're now known as TheWatcher[T-2] |
00:37 | | Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has joined #Code |
00:37 | | You're now known as TheWatcher[zZzZ] |
00:46 | < gnolam> | Vornicus: Oh? NOR/NAND is all in the final inversion step. |
00:52 | | * gnolam blehs. |
00:53 | < gnolam> | I've got most of the framework in place now. But now I need to write the triangle strip generator. |
00:53 | < gnolam> | ... I mean, "Now I just need a stripper". ;) |
00:54 | <@Vornicus> | it gives you AND/OR and NOR/NAND. |
00:54 | <@Vornicus> | Whether the NOR/NAND is optimal is not a very good question if all you have is NAND. |
00:55 | | Derakon[work] [Derakon@Nightstar-d44d635e.ucsf.edu] has quit [[NS] Quit: Leaving] |
00:57 | | GeekSoldier_ [Rob@Nightstar-e86e3e0d.ip.cablemo.net] has joined #Code |
00:59 | | GeekSoldier [Rob@Nightstar-e86e3e0d.ip.cablemo.net] has quit [Ping timeout: 121 seconds] |
01:06 | <@Vornicus> | optimal, that is, as far as NAND count goes. |
01:07 | | Finale [c0cb88fe@Nightstar-14e5d099.mibbit.com] has quit [[NS] Quit: home time.] |
01:12 | | GeekSoldier_ is now known as GeekSoldier |
01:19 | | Attilla [The.Attilla@FBC920.65CFFF.37C84B.137EA7] has quit [[NS] Quit: ] |
01:26 | | Derakon[AFK] is now known as Derakon |
01:32 | | Attilla [The.Attilla@FBC920.65CFFF.37C84B.137EA7] has joined #Code |
01:32 | | mode/#code [+o Attilla] by Reiver |
02:29 | | gnolam [lenin@Nightstar-38637aa0.priv.bahnhof.se] has quit [[NS] Quit: Z?] |
02:48 | | dmlandrum_ [dmlandrum__@Nightstar-54510c8f.sfldmi.ameritech.net] has quit [[NS] Quit: Leaving] |
02:48 | | dmlandrum [dmlandrum__@Nightstar-54510c8f.sfldmi.ameritech.net] has joined #Code |
03:05 | | Attilla [The.Attilla@FBC920.65CFFF.37C84B.137EA7] has quit [[NS] Quit: ] |
05:15 | <@Derakon> | http://www.youtube.com/watch?v=mOZqRJzE8xg |
05:15 | <@Derakon> | Early computer graphics work with a lightpen. |
05:22 | <@Derakon> | And a news program from 1962: http://www.youtube.com/watch?v=USyoT_Ha_bA&feature=player_embedded |
05:28 | | DirePinkhair [none@4FC299.0B945E.939E19.8ED2FC] has joined #Code |
05:29 | | ASCII [none@Nightstar-a7d2ccfd.dyn.optonline.net] has quit [Ping timeout: 121 seconds] |
06:21 | | AnnoDomini [farkoff@Nightstar-bfa70341.adsl.tpnet.pl] has joined #Code |
06:22 | | mode/#code [+o AnnoDomini] by Reiver |
06:48 | | Derakon is now known as Derakon[AFK] |
08:02 | | gnolam [lenin@Nightstar-38637aa0.priv.bahnhof.se] has joined #Code |
08:55 | | Vornicus is now known as Vornicus-Latens |
08:59 | | Rhamphoryncus [rhamph@Nightstar-a62bd960.abhsia.telus.net] has quit [Client exited] |
09:23 | | You're now known as TheWatcher |
09:30 | | Reiver [reaverta@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: I ATENT'T DEAD] |
09:47 | | Reiver [reaverta@ServerAdministrator.Nightstar.Net] has joined #Code |
09:47 | | mode/#code [+qo Reiver Reiver] by ChanServ |
09:58 | | Reiver [reaverta@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: I ATENT'T DEAD] |
10:02 | | Reiver [reaverta@ServerAdministrator.Nightstar.Net] has joined #Code |
10:02 | | mode/#code [+qo Reiver Reiver] by ChanServ |
10:18 | | Attilla [The.Attilla@FBC920.65CFFF.37C84B.137EA7] has joined #Code |
10:18 | | mode/#code [+o Attilla] by Reiver |
11:30 | < gnolam> | Oh dear Lord. |
11:31 | < gnolam> | Instructions for the lab are finally up, and looking through the code I find |
11:31 | < gnolam> | TextureData *sheepFace, *blackFace, ... |
11:32 | < gnolam> | I don't know if I'll be able to keep from cracking up when I describe how I solved "the blackface assignment"... |
13:32 | | Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has quit [[NS] Quit: This computer has gone to sleep] |
16:00 | < Alek> | ahahahahaha |
16:00 | < Alek> | won't the instructor feel sheepish |
16:16 | | * AnnoDomini wonders if StarOffice is better or worse than OpenOffice. |
16:25 | <@jerith> | It isn't. |
16:27 | <@jerith> | I think it just has a few proprietary plugins included or something. |
16:27 | <@jerith> | OpenOffice isn't my favourite piece of software, but I won't rant about it now. :-) |
16:39 | <@AnnoDomini> | Heh. |
16:39 | <@AnnoDomini> | Hmm. How about Lotus Symphony's word processor? Any good? |
16:40 | < gnolam> | I haven't noticed any real difference between StarOffice and OpenOffice. |
16:55 | | GeekSoldier [Rob@Nightstar-e86e3e0d.ip.cablemo.net] has quit [Ping timeout: 121 seconds] |
16:57 | | Derakon[work] [Derakon@Nightstar-d44d635e.ucsf.edu] has joined #Code |
17:00 | < Derakon[work]> | Well, I have a consistent crash now. |
17:01 | < Derakon[work]> | I set up a script that would continually open a file for writing, write 100000 lines to it (including calculating square roots and cosines), close it, open it, read all the lines, and close it again. |
17:01 | < Derakon[work]> | If I run two copies of that script in the background, then the microscope software crashes. |
17:01 | | Rhamphoryncus [rhamph@Nightstar-a62bd960.abhsia.telus.net] has joined #Code |
17:01 | < Derakon[work]> | Hullo, Rhamph! |
17:02 | < Derakon[work]> | I have a consistent crash now. |
17:02 | < Derakon[work]> | I set up a script that would continually open a file for writing, write 100000 lines to it (including calculating square roots and cosines), close it, open it, read all the lines, and close it again. |
17:02 | < Derakon[work]> | If I run two copies of that script in the background, then the microscope software crashes. |
17:02 | < Rhamphoryncus> | cool |
17:03 | < Derakon[work]> | With only one copy of the script, the microscope software runs fine so long as you don't try to do anything while it's running an experiment. It'll crash if you, for example, try to drag a window around. |
17:03 | < Derakon[work]> | So it definitely looks like the software is load-sensitive, for some meaning of the word "load". |
17:29 | < Rhamphoryncus> | I'm curious, if you bodge the file writing so it writes nothing, does it run perfectly? |
17:42 | < Rhamphoryncus> | and is it possible to setup a network write, or perhaps a second drive for the current microscope run? |
17:42 | < Rhamphoryncus> | or a raid even |
17:54 | < Derakon[work]> | Sorry, I was off testing things and talking to the boss. |
17:55 | < Derakon[work]> | The script I'm running looks basically like this: http://paste.ubuntu.com/282313/ |
17:55 | < Derakon[work]> | If I comment out lines 3 and 4, then I'm back at the "works fine unless I move a dialogue box around" behavior. |
17:56 | < Derakon[work]> | Note that if the scirpts aren't running at all, then you can usually interact with the program without anything breaking. Usually. |
17:59 | < Derakon[work]> | Er, scripts. |
18:08 | | Vornicus-Latens [vorn@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: ] |
18:19 | < Rhamphoryncus> | I mean remove the writing of the real program |
18:26 | < Derakon[work]> | Oh. That's trickier; I haven't managed to trace exactly how the files get written yet. |
18:35 | | Derakon[work] [Derakon@Nightstar-d44d635e.ucsf.edu] has quit [Ping timeout: 121 seconds] |
19:32 | | Finale [c0cb88fe@Nightstar-14e5d099.mibbit.com] has joined #Code |
19:48 | < Finale> | "There is no such thing as too-fast internet." |
20:14 | < Rhamphoryncus> | Derakon[AFK]: still, mirroring to another drive (or other computer) between runs may improve uptime |
20:17 | | Derakon[work] [Derakon@Nightstar-d44d635e.ucsf.edu] has joined #Code |
20:21 | | AnnoDomini [farkoff@Nightstar-bfa70341.adsl.tpnet.pl] has quit [Ping timeout: 121 seconds] |
20:27 | | AnnoDomini [farkoff@Nightstar-072306da.adsl.tpnet.pl] has joined #Code |
20:27 | | mode/#code [+o AnnoDomini] by Reiver |
20:44 | | Derakon[work] [Derakon@Nightstar-d44d635e.ucsf.edu] has quit [Operation timed out] |
20:55 | | Rhamphoryncus [rhamph@Nightstar-a62bd960.abhsia.telus.net] has quit [Ping timeout: 121 seconds] |
21:10 | | Rhamphoryncus [rhamph@Nightstar-a62bd960.abhsia.telus.net] has joined #Code |
21:22 | | Syloqs_AFH [Syloq@is.an.awesome.Network.Administrator.on.Nightstar.Net] has quit [[NS] Quit: ] |
21:44 | < gnolam> | Argh. Someone hit me, please. |
21:45 | | * Finale fwaps gnolam. |
21:46 | < Finale> | now what was that for? |
21:47 | < gnolam> | I had been staring at my tristrip generation code for at least half an hour, trying figure out why the generated vertices were all over the place. |
21:47 | < gnolam> | I forgot to multiply the index with the stride in the test rendering code. :P |
21:48 | < Finale> | ?_? |
22:00 | | Derakon[nobrains] [Derakon@Nightstar-d44d635e.ucsf.edu] has joined #Code |
22:03 | < Derakon[nobrains]> | So my boss has been working on microscopes for about three decades now. |
22:03 | < Derakon[nobrains]> | He has some funny ideas about modern computers. |
22:04 | < Derakon[nobrains]> | Today he asked me if we might be able to speed things up by telling the computer to not bother drawing anything to the screen. |
22:04 | < Derakon[nobrains]> | Like, anything. |
22:04 | <@AnnoDomini> | Hmmm. |
22:04 | < Derakon[nobrains]> | He wanted all display logic to shut off for the entire computer while experiments were running. |
22:04 | <@AnnoDomini> | Well, wouldn't it? :P |
22:04 | < Derakon[nobrains]> | No, because the slowdown from figuring out how to implement such a feature would overwhelm any runtime gains. :p |
22:05 | <@AnnoDomini> | Methinks he wants a custom, purpose-built operating system. :P |
22:05 | < Derakon[nobrains]> | Oh, he's mentioned many times how he doesn't like not having complete control over the computer. |
22:06 | <@TheWatcher> | Tell him to install gentoo~ |
22:06 | <@AnnoDomini> | Old computer scientist is old? |
22:06 | < Derakon[nobrains]> | Old biologist who worked on computers back when they were VAXen is old. |
22:07 | <@AnnoDomini> | I seep. |
22:07 | <@TheWatcher> | Also, Dera, the problem with the element positioning I was having a couple of days ago? Turns out the problem and solution were bleeding ovious. |
22:07 | <@TheWatcher> | *obvious |
22:07 | <@AnnoDomini> | I'd try to politely explain to him that We Don't Do That Stuff Anymore. If that doesn't work, lies-to-old-people. |
22:08 | < Derakon[nobrains]> | Ahh, the "wow I'm a dumbass" bug class. |
22:08 | < Derakon[nobrains]> | I'm not gonna lie to him, but I have been using the phrase "In my professional opinion" a lot. |
22:08 | <@TheWatcher> | Well, more the 'forgetting the nuances of css positioning' |
22:08 | <@TheWatcher> | specifically what happens when you try to position elements that are children of an element that has position: absolute set |
22:09 | < Derakon[nobrains]> | Ahh. |
22:11 | <@TheWatcher> | Yeah, I forgot that the position is relative to that position:absolute parent, not the page, and was adding in a bunch of offsetTops and offsetLefts I shouldn't have been |
22:11 | <@AnnoDomini> | Is he giving you any actual trouble? |
22:11 | < Derakon[nobrains]> | In unrelated news, the Python module we're using to access remote objects (a.k.a. cameras), Pyro, doesn't like it when we unplug the microscope lab from the rest of the network. |
22:12 | < Derakon[nobrains]> | AD: mostly he's just coming up with hypotheses that could, in Bizarro World, actually be the cause of the problem, but are vanishingly unlikely to be in the real world. |
22:12 | < Derakon[nobrains]> | He doesn't really mandate how I approach the problem, though. He's just trying to help. |
22:13 | <@AnnoDomini> | Oh, okay. |
22:13 | < Derakon[nobrains]> | Emphasis on the word "trying" there, mind you. |
22:16 | <@AnnoDomini> | You could suggest he take a year or two in CS. :P |
22:17 | < Finale> | except that that could make him even more dangerous? |
22:17 | < Derakon[nobrains]> | More to the point, it'd be rude of me. |
22:20 | <@AnnoDomini> | Complete your job, and only then suggest it~ |
22:20 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #Code |
22:20 | | mode/#code [+o Vornicus] by Reiver |
23:03 | | Derakon[nobrains] [Derakon@Nightstar-d44d635e.ucsf.edu] has quit [[NS] Quit: Leaving] |
23:11 | | * gnolam gives up on his terrain code for the day. |
23:12 | < gnolam> | Oh well. At least it - and the Lab from Hell - made me honor International Blasphemy Day. :P |
23:12 | <@McMartin> | Hee |
23:12 | | * McMartin DENIES MARINARA SAUCE THREE TIMES |
23:15 | < Finale> | gnolam: wut? |
23:16 | | * Vornicus now has a demonstration array-stack in HTML/JS |
23:16 | < gnolam> | Finale: http://www.google.com/search?&q=international+blasphemy+day |
23:16 | < gnolam> | Or did you mean the Lab from Hell? |
23:17 | <@Vornicus> | ...marinara sauce? |
23:18 | < gnolam> | (The Lab from Hell was a rigid body physics lab. With a positively cyclopean framework - that only half worked - and reference material with the formulas all wrong. :P) |
23:21 | <@McMartin> | Vornicus: I dunno. How does one blaspheme against the Flying Spaghetti Monster? |
23:22 | <@Vornicus> | Ah. |
23:22 | <@Vornicus> | But... alfredo sauce! |
23:55 | | * Vornicus now spends 20 minutes rejiggering his stack into a circular queue. |
--- Log closed Thu Oct 01 00:00:16 2009 |