code logs -> 2009 -> Wed, 30 Sep 2009< code.20090929.log - code.20091001.log >
--- 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
code logs -> 2009 -> Wed, 30 Sep 2009< code.20090929.log - code.20091001.log >