code logs -> 2009 -> Wed, 09 Dec 2009< code.20091208.log - code.20091210.log >
--- Log opened Wed Dec 09 00:00:20 2009
00:15 AbuDhabi [annodomini@Nightstar-6ea44333.adsl.tpnet.pl] has quit [[NS] Quit: o/` This time, baby, I'll beeeeee bulleeeeet-prooooof! o/`]
00:27 Derakon[work] [Derakon@Nightstar-d44d635e.ucsf.edu] has quit [[NS] Quit: Leaving]
00:54 Derakon[AFK] is now known as Derakon
01:08 Tarinaky [Tarinaky@Nightstar-e3228473.adsl.virginmedia.net] has quit [Operation timed out]
01:09 Tarinaky [Tarinaky@Nightstar-e3228473.adsl.virginmedia.net] has joined #code
01:26 * gnolam blarghs.
01:30
< simon`>
McMartin, and if you glue one end to a table, you get a stack?
01:32
< simon`>
I suppose the table itself is the stack, so the glued-on pipe would be a scope.
01:33
< Alek>
if you used the pipe as a "telescope", would that be a PEEK?
01:34
< Alek>
and if you used it as an extension to reach the monitor power button, would it be a POKE?
02:05 Rhamphoryncus [rhamph@Nightstar-a62bd960.abhsia.telus.net] has quit [Client closed the connection]
02:06 Rhamphoryncus [rhamph@Nightstar-a62bd960.abhsia.telus.net] has joined #code
02:52
<@McMartin>
[I7] BrenBarn says, "pirates code in R"
02:52
<@McMartin>
[I7] vaporware says, "There are no functions, pirates never return anything."
02:52
<@McMartin>
[I7] BrenBarn says, "no, there are functions, but the only thing you can return is cannon fire"
02:52
<@McMartin>
[I7] vaporware says, "Obfuscated pirate code uses the variable X in multiple places so you never know where the treasure is buried."
02:55
< gnolam>
*snerk*
02:56
<@McMartin>
This became less fun after they noticed that R is a real language named for the best-fit measure in statistics, and that it's actually really commonly used. =P
02:57<~Reiver> ... oh, they hadn't realised that point?
02:58
<@McMartin>
Not at that point, no.
03:00
< simon`>
oh, heh
03:00
< simon`>
that adds an element
03:00
< simon`>
initially I thought, "what do pirates and statisticians really have in common?"
03:01
<@McMartin>
They're fairly standard deviants?
03:01
<@McMartin>
>_>
03:01 * Alek stabs mcm
03:32 * Reiver
03:32 * Reiver throws McMartin off the earth.
03:32 * McMartin is now known as McMartian
04:07 gnolam [lenin@Nightstar-38637aa0.priv.bahnhof.se] has quit [[NS] Quit: Z?]
07:02 Derakon is now known as Derakon[AFK]
07:57 AnnoDomini [annodomini@Nightstar-6ea44333.adsl.tpnet.pl] has joined #code
07:57 mode/#code [+o AnnoDomini] by Reiver
08:33 You're now known as TheWatcher
08:37
<@AnnoDomini>
Hmm. I'm supposed to set up a firewall for this Debian installation.
08:38
<@AnnoDomini>
Like, block everything that's not used - which includes almost everything.
08:38
<@McMartin>
Whitelist 22 and 80, call it a day~
08:40
<@AnnoDomini>
I have Apache, MySQL and phpmyadmin installed, and I also plan on somehow making SSH work. What ports should I leave open?
08:56
<@AnnoDomini>
I'm trying to check what IPs my interfaces have. This is done with 'ifconfig', right?
08:58
<@AnnoDomini>
I'm asking because that doesn't work, it says there's no such command.
08:59 Rhamphoryncus [rhamph@Nightstar-a62bd960.abhsia.telus.net] has quit [Client exited]
09:01
<@TheWatcher>
AD: /sbin/ifconfig - that will not be in the path for normal users (and, depending on the security of the setup, may not work for normal users)
09:04
<@TheWatcher>
Also, for apache: port 80, and port 443 if you are using https at all. ssh needs port 22. All other ports should be set to DROP (or REJECT if you want to play nice) - you shouldn't have MySQL set up to do tcp connections unless you really need that functionality (unless you're connecting to the database from another machine, you don't) - it should be using local unix sockets
09:05
<@AnnoDomini>
Very well.
09:08
<@AnnoDomini>
Are there any good tutorials for doing this? I found http://www.crazysquirrel.com/computing/debian/network/firewall.jspx
09:09 gnolam [lenin@Nightstar-38637aa0.priv.bahnhof.se] has joined #code
09:18
<@TheWatcher>
http://www.frozentux.net/iptables-tutorial/iptables-tutorial.html is the big one, but there's details that vary from distro to distro
09:40 Tarinaky [Tarinaky@Nightstar-e3228473.adsl.virginmedia.net] has quit [Ping timeout: 121 seconds]
09:54 Tarinaky [Tarinaky@Nightstar-53dc2f91.adsl.virginmedia.net] has joined #code
10:16 MyCatSchemes [mycatverbs@Nightstar-3b2c2db2.bethere.co.uk] has joined #code
10:20
<@TheWatcher>
How to tell that your code is irritating you, #17: when documenting a function, you unconsciously put things like "specified in the arghuments"
10:55 Tarinaky [Tarinaky@Nightstar-53dc2f91.adsl.virginmedia.net] has quit [Ping timeout: 121 seconds]
11:09 Tarinaky [Tarinaky@Nightstar-b1c005b5.adsl.virginmedia.net] has joined #code
11:16 Syloqs-AFH [Syloq@NetworkAdministrator.Nightstar.Net] has quit [Connection reset by peer]
11:17 * AnnoDomini scratches head, trying to enable 443 whitelisting using shorewall's rules file.
11:21
<@AnnoDomini>
Hmm. It seems to work.
11:22
<@AnnoDomini>
Not that I have SSH or HTTPS up, but at least port 80 is open and I'm getting what I want through it.
11:22
<@TheWatcher>
Woot.
11:26
<@AnnoDomini>
Are there any good virtual machine softwares for Linux (particularly Debian)? I'm pondering switching to Linux from Windows, but I still want to play games that don't run on Linux. As well as be able to complete Windows-only projects demanded by my Uni.
11:30 * AnnoDomini must go now.
11:31
<@TheWatcher>
http://www.linux-kvm.org/page/Main_Page might be a good place to start, but I've no idea about its usability for games. Also look at wine and forks
11:32
<@TheWatcher>
*and its forks
11:47
< gnolam>
AnnoDomini: dual boot.
12:12 KazWork [kazrikna@Nightstar-55f6a2b4.xen.prgmr.com] has quit [Ping timeout: 121 seconds]
12:33 KazWork [kazrikna@Nightstar-55f6a2b4.xen.prgmr.com] has joined #code
12:39 KazWork [kazrikna@Nightstar-55f6a2b4.xen.prgmr.com] has quit [Ping timeout: 121 seconds]
13:00 KazWork [kazrikna@Nightstar-55f6a2b4.xen.prgmr.com] has joined #code
13:04 KazWork [kazrikna@Nightstar-55f6a2b4.xen.prgmr.com] has quit [Ping timeout: 121 seconds]
13:05 KazWork [kazrikna@Nightstar-55f6a2b4.xen.prgmr.com] has joined #code
13:45 * TheWatcher eyes this schroedinbug, blughs
14:26
<@AnnoDomini>
gnolam: Personally, I'd rather avoid dual boot, because I want to have my cake and eat it too.
14:54 You're now known as TheWatcher[afk]
15:13
< MyCatSchemes>
Wine will give you slightly worse performance and less support for fancy shaders than native Win32.
15:13
< MyCatSchemes>
If you already have the Wintendo license, dual-booting is much easier.
15:14
< Namegduf>
I prefer VMs, because dropping IRC and everything else to switch OS doesn't meet my definition of "easy".
15:14
< MyCatSchemes>
(IMHO, YMMV, but it's what I do and I work exclusively on Linux)
15:15
<@AnnoDomini>
Namegduf: Complete agreement.
15:16
<@AnnoDomini>
MyCatSchemes: At the risk of sounding retarded, I'm a retro gamer - there's bajillions of good old games I haven't played yet.
15:17
< MyCatSchemes>
Fair enough. I don't think wine's performance is actually an issue for anything older than... Half-Life 2?
15:17
< MyCatSchemes>
Anything that can be configured to use DirectX 8.1 shaders or below will usually run just fine.
15:18
< MyCatSchemes>
And DX9 shader support has probably improved since the last time I tried it.
15:18
<@AnnoDomini>
I need to finish HL1. Damn alien nutsack made me quit it last time I tried.
15:18
< MyCatSchemes>
Oh wow.
15:19
< MyCatSchemes>
You were *really* close to the end.
15:19
<@AnnoDomini>
So I understand. Anything that hard could not be anything but the final boss, right?
15:20
< MyCatSchemes>
Actually the nutsack is the last but one boss.
15:20
< MyCatSchemes>
But IMO the final boss is easier to kill.
15:32 AbuDhabi [annodomini@Nightstar-9b577ddb.adsl.tpnet.pl] has joined #code
15:34 AnnoDomini [annodomini@Nightstar-6ea44333.adsl.tpnet.pl] has quit [Ping timeout: 121 seconds]
15:38 AnnoDomini [annodomini@Nightstar-9b577ddb.adsl.tpnet.pl] has joined #code
15:38 mode/#code [+o AnnoDomini] by Reiver
15:40 AbuDhabi [annodomini@Nightstar-9b577ddb.adsl.tpnet.pl] has quit [Ping timeout: 121 seconds]
16:01 You're now known as TheWatcher
16:31 * Kazriko instead uses two computers and Synergy to link them... Windows system for games and some work related things, linux system for everything else...
16:32
<@Kazriko>
Work related, because the DynamicC and Scadapack 350 compilers are both wintendo only.
16:33
<@Kazriko>
Even if I found a way to have them give me the source to their GCC compiler, they use a custom linker that is windows only. :(
16:35
< Alek>
hee
16:35
< Alek>
the spider nutsack?
16:35
< Alek>
that's like a level or 2 away from final boss, iirc?
16:35
< Alek>
whatever happened to Black Mesa Source, anyway? they haven't updated in over a year. ;_;
16:42
<@TheWatcher>
They're probably emulating Valve release dates
16:42
<@TheWatcher>
Probably someone needs to steal their source before it can be released.
17:01 Rhamphoryncus [rhamph@Nightstar-a62bd960.abhsia.telus.net] has joined #code
18:34 Attilla [The.Attilla@FBC920.642D35.9A3E39.B3DA70] has joined #code
18:34 mode/#code [+o Attilla] by Reiver
18:38
< MyCatSchemes>
'?'
18:39 Attilla [The.Attilla@FBC920.642D35.9A3E39.B3DA70] has quit [Ping timeout: 121 seconds]
18:57 Attilla [The.Attilla@FBC920.58502B.1ADD6E.CC89EF] has joined #code
18:57 mode/#code [+o Attilla] by Reiver
19:31 Derakon[work] [Derakon@Nightstar-d44d635e.ucsf.edu] has joined #code
19:31
< Derakon[work]>
I have a problem...
19:31
< Derakon[work]>
I've found yet another variable named "f"...
19:31
< Derakon[work]>
And this time I have no idea what an appropriate name for it would be.
19:32
< Derakon[work]>
Here's the code in question: http://paste.ubuntu.com/338232/
19:33
< Derakon[work]>
The problem being solved here: we have a 512x512 greyscale bitmap. By default this shows the darkest bits as black and the lightest bits as white. This can cause important information to be invisible, though.
19:33
< Derakon[work]>
So we can change what "black" and "white" are; these are the min/maxes in self.imageScaleMinMaxes.
19:33
< Derakon[work]>
But WTF are fBias and f here?
19:34
< Derakon[work]>
(Oh, whoops. This paste includes the definition of maxUShort: http://paste.ubuntu.com/338233/ )
19:35 MyCatSchemes [mycatverbs@Nightstar-3b2c2db2.bethere.co.uk] has quit [[NS] Quit: Leaving]
19:43
<@TheWatcher>
I'd use 'scale' for 'f', or 'scalefactor'. fBias I'd just use bias or maybe channelbias...
19:43
<@McMartin>
is "fBias" using Hungarian?
19:44
< Derakon[work]>
I wouldn't think so.
19:45
<@McMartin>
Normally I'd assume so, but the idea that Seb has even heard of any kind of naming discipline, good or bad
19:45 * Derakon[work] calls f scaleFactor and fBias scaleFloor for now.
19:45
< Derakon[work]>
He's clearly heard of prepending "m_" to member variables.
19:45
< Derakon[work]>
Though it's also clear he doesn't understand why you'd do this.
19:46
<@McMartin>
And thus why in Python you do not need to?~
19:46
< Derakon[work]>
Right.
19:46
< Rhamphoryncus>
Derakon[work]: a little googling shows that each pixel is multiplied by SCALE, then has BIAS added
19:46
< Derakon[work]>
Rhamphoryncus: gotcha, thanks.
19:46 * Derakon[work] renames maxUShort to maxWhiteValue while he's at it.
19:47
< Rhamphoryncus>
I am confused by the opengl page with actual descriptions: http://www.talisman.org/opengl-1.1/Reference/glPixelTransfer.html
19:48
< Derakon[work]>
You think that's bad? Check out the Python autodocs: http://www.wxpython.org/docs/api/wx.glcanvas.GLCanvas-class.html#SetCurrent
19:48
< Derakon[work]>
In particular, see how the docs for Context say "See GetContext", which is itself entirely undocumented?
19:48
< Rhamphoryncus>
No no, that's GOOD
19:49
< Rhamphoryncus>
that's why it's confusing me. It's unnatural
19:49
< Rhamphoryncus>
Yours is what I expect
19:49
< Derakon[work]>
Oh. You're pleasantly surprised.
19:50 * Derakon[work] bookmarks the actually useful OpenGL docs.
19:51
< Rhamphoryncus>
'xactly
19:52 * TheWatcher does valuely note that using glPixelTransfer* is going to have a potentially significant performance overhead
19:53
<@TheWatcher>
*vaguely
19:53
< Derakon[work]>
Not surprising, TW, but fortunately this isn't a live-updated image.
19:53
<@TheWatcher>
Oh, okies.
19:53
< Derakon[work]>
So FPS can be as low as, oh, one per second.
19:54
< Derakon[work]>
This is a mosaic -- a stitched-together view of the contents of the slide, made by taking multiple exposures from different positions.
19:54
< Derakon[work]>
And each image is tracked separately, then they're overlaid onto the view.
19:55 * TheWatcher nod
19:55
<@McMartin>
Fair enough
19:55
<@McMartin>
That said, you may still be better off with glTexSubImage2D.
19:55
< Derakon[work]>
Entirely possible.
19:56
< Derakon[work]>
I'm working on cleaning up code style and basic implementation offenses (e.g. unused variables, blatant code repetition) right now.
19:56
< Derakon[work]>
Once I can bear to read the code for sustained periods, I'll start reimplementing it.
19:56
< Derakon[work]>
(I estimate I've removed 225 lines of code from this file, which is now 919 lines long, and I'm on line 614)
19:58
< Derakon[work]>
...okay, doOnFrameChange() is a no-op function. It's not passed as a callback to anything. But it is invoked by other functions directly! In fact, the OnMove() function's only action is to call doOnFrameChange()!
20:02
<@TheWatcher>
cargo cult programming?
20:03 * TheWatcher wouldn't be surprised if he didn't copy and paste from an example or something >.>
20:04
< Derakon[work]>
Very likely, given that in the OpenGL-related code (and nowhere else), I've found semicolons in his Python.
20:04
<@McMartin>
;_;
20:05
<@TheWatcher>
literally
20:06
< Derakon[work]>
Oh, there's a new one. I've seen him use "evt" and "event" for event-driven functions, but now we have "ev" too.
20:09
< Derakon[work]>
...sigh. This class has a function "decideZoom_not_drag()" that, when called, tells you whether drag-clicking the middle mouse button zooms or translates the view.
20:09
< Derakon[work]>
There's a toggle switch that controls that behavior.
20:10
< Derakon[work]>
When you flip the toggle switch, he replaces the function with a different one!
20:10
<@TheWatcher>
....
20:11
< Derakon[work]>
See? http://paste.ubuntu.com/338246/
20:11
< Namegduf>
...wow.
20:12
<@TheWatcher>
That's... special.
20:12
<@McMartin>
Mmm, mutable continuation
20:12
<@McMartin>
*continuations
20:13 gnolam [lenin@Nightstar-38637aa0.priv.bahnhof.se] has quit [[NS] Quit: Z?]
20:38 Finale [c0cb88fe@Nightstar-14e5d099.mibbit.com] has joined #code
20:51 MyCatSchemes [mycatverbs@Nightstar-f43ca811.blueyonder.co.uk] has joined #code
21:17 * Derakon[work] sighs at variable names midButt, midIsButt, and rightButt.
21:17
< Finale>
ahaha
21:18
< Tarinaky>
You horny bugger.
21:18
< Derakon[work]>
Tarinaky: oh, this isn't my code.
21:19
< Derakon[work]>
Or rather, it is, but I declaim all responsibility for its contents.
21:19
< Derakon[work]>
It was written by Sebastian.
21:19
< Tarinaky>
Pfft. I declaim all responsibility for my code too- doesn't mean I'm not -actually- responsible :p
21:23
< Finale>
who or what is Sebastian?
21:23
< Finale>
the hermit crab from The Little Mermaid?
21:23
< Namegduf>
Yes, exactly.
21:24
< Finale>
and he writes Dera's code? >_>
21:26
<@McMartin>
Sebastian is his accursed predecessor, who fled to Germany just before he arrived.
21:27
< Derakon[work]>
Oh, great. wx MouseEvent instances will tell you that the generated event is a "motion" event (as opposed to a button-press event), but AFAICT they don't include the previous mouse position, so you do in fact have to store it yourself.
21:27
< Derakon[work]>
"Just before" is a misnomer; there's a gap of at least a year in there in which another person had the dubious pleasure of being the nominal maintainer of the program. I don't think he did all that much though.
21:27
<@McMartin>
wx ;_;
21:28
<@McMartin>
We have finally, finally, as of our release last week, purged wx completely from our entire codebase.
21:28
< Derakon[work]>
Congrats!
21:28 * McMartin checks the calendar.
21:29
<@McMartin>
It took us almost two years to do, and it was a continuous project.
21:29
< Derakon[work]>
How big is the codebase?
21:29
< Derakon[work]>
And how big is your team?
21:30
<@McMartin>
We had two people on UI at the time, and the codebase is several hundred KLOC, I believe.
21:30
< Derakon[work]>
Okay, so my ~15KLOC codebase with one developer isn't completely outside the realm of possibility then.
21:30
<@McMartin>
(Some of the issue was that our replacement GUI library had to catch up on the "being embeddable in specific corners of the guest OS", which itself took awhile)
21:34 * TheWatcher args at cow-orker, who appears to have decided that all the target users for the anim comp site are so stupid they can barely hold a mouse the right way up
21:34
< Finale>
what'd he do?
21:35 * Tarinaky flips his mouse over then starts complaining that the cursor won't move.
21:36
< Finale>
ahaha
21:36
< Tarinaky>
Shouldn't have done that. I've got crap on my mouse now -.-
21:36
<@McMartin>
Is your cow-orker wrong?
21:37
< Derakon[work]>
Mph...I wish Python had proper support for static variables.
21:37
<@TheWatcher>
He emailed me whilst testing the entry submission wizard to complain that the display of the stages in the wisard across the top (essentially the same sort of thing that Amazon use on their checkout system) is "confusing" because it doesn't have gigantic fucking arrows between each stage
21:37
< MyCatSchemes>
TheWatcher, an entirely reasonable complaint.
21:37
< Derakon[work]>
I don't want to have to have a class-level variable just to track the mouse position at the last mouse event. >.<
21:38
< MyCatSchemes>
Animate the arrows so that they appear with a pulsating glow against the background, too.
21:38
< Derakon[work]>
TW: as it happens, many users get confused by the "breadcrumb trail" in Amazon's checkout system.
21:38
< Derakon[work]>
Since they expect to be able to click on it.
21:38
<@TheWatcher>
Dera: with mine you can
21:38
< Derakon[work]>
That said, I don't think many of them fail to realize that it's describing a sequence.
21:38
<@TheWatcher>
Provided you haven't actually hit the final 'enter competition' button on the last page, you can jump to any step you want
21:39
<@TheWatcher>
Or just follow the Next > buttons
21:39
< Derakon[work]>
Well, my standard response to this kind of UI feedback is "Okay, thanks, I'll want to get feedback from multiple users before making a change though."
21:39
< Derakon[work]>
So you can just toss him that line and then ignore him.
21:40
<@TheWatcher>
MyCatSchemes: I'm actually wondering if I shouldn't have an irritating animated dog in the corner that randomly pops up helpful hints on using the interface
21:40
<@TheWatcher>
It monosyllables.
21:40
<@TheWatcher>
*In
21:40
< MyCatSchemes>
Paperclip.
21:41
< MyCatSchemes>
That or a purple gorilla.
21:41
<@TheWatcher>
Oooh, I like that one, yeah.
21:41
< Derakon[work]>
Like this one? http://www.pinkgorillagames.com/images/site/banner.png
21:41
<@TheWatcher>
Purple gorilla, that randomly smokes weed and gets increasingly incoherant as the wizard progresses.
21:42
<@TheWatcher>
(although, seriously, I have bumped this issue over to several others, some of whom used to be in the target audience, so)
21:42
< MyCatSchemes>
I meant as in that stupid Bonzi Buddy thing.
21:42
< MyCatSchemes>
Anyone remember that? I've never actually met anyone who actually installed it, though.
21:45
< Derakon[work]>
I remember reading about it, but as a Mac user it was a non-issue for me.
21:50
< Derakon[work]>
...so, in addition to cmnone() (set colormap to none) and cmcol() (set colormap to colorized mode), we have cmgrey() and cmgray(). And they do different things!
21:51
< Derakon[work]>
Fortunately, both are also unused. Goodbye.
21:51
< Tarinaky>
Derakon[work]: I know people who installed it.
21:51
< Tarinaky>
Derakon[work]: They used to be my friends.
21:52 * TheWatcher eyes
21:52
<@TheWatcher>
Derakon[work]: 'Sebastian Haase'?
21:53
< Derakon[work]>
That's him!
21:53
< Derakon[work]>
Curious: how'd you find him?
21:54
<@TheWatcher>
Search google for 'cmgrey cmnone' and you find http://code.google.com/p/priithon/source/browse/trunk/Priithon/usefulX2.py
21:55
< Derakon[work]>
Ah, yes.
21:55
<@TheWatcher>
And I think looking at some of that is making me physically ill, and I don't even do python
21:55
< Derakon[work]>
I haven't touched the Priithon shit yet.
21:55
< Derakon[work]>
It's a "support library" he made.
21:56
< Derakon[work]>
I think the goal was to provide something like the SciPy+Python install, so you can download it and just get started working.
21:56
< Tarinaky>
I don't know python well but it looks about as bad as my code.
21:57
< Derakon[work]>
For a laugh, take a look at the repo changelist.
21:59
<@AnnoDomini>
"## FIXME"
21:59 * AnnoDomini laughs.
21:59
< Derakon[work]>
No, no, comments like FIXME and TODO are perfectly legitimate.
21:59
< Derakon[work]>
Of course, most of the TODOs I've encountered in this codebase are ancient and/or irrelevant.
22:01 AnnoDomini [annodomini@Nightstar-9b577ddb.adsl.tpnet.pl] has quit [[NS] Quit: Arghleblargh.]
22:15
<@McMartin>
usefulX2.py ;_;
22:16
< Derakon[work]>
Eyep.
22:17
< Derakon[work]>
Note that he has to do "import usefulX as Y" in this program, because X is already taken by the "seb" module.
22:24
<@McMartin>
14:22 <@geordan> hey, i like "raise 'xx'"
22:24
<@McMartin>
14:22 <@geordan> that's almost vladish
22:24
<@McMartin>
14:22 <@geordan> except the argument of the raise does not itself raise an exception
22:24
<@McMartin>
14:22 <@geordan> so i can't give full marks.
22:24
<@McMartin>
(the vlad in question tended to raise 18/0)
22:24
<@McMartin>
(or evaluate it, several times, after every trtuern.
22:24
< Derakon[work]>
Note that every time he tries to raise a string, he gets an exception, because raising a string is deprecated.
22:24
<@McMartin>
Sometimes he'd return several times first, too.
22:24
<@McMartin>
return
22:25
<@McMartin>
Excellent point! I will remind them of this fact.
22:28
<@McMartin>
14:25 < elis> ok, line 2667 is pretty choice
22:29
< Derakon[work]>
...oh my.
22:29
< Derakon[work]>
Okay, new plan!
22:29
<@McMartin>
Now I know how to do C templates in Python. -_-
22:29
< Derakon[work]>
Any time I find a reference to Priithon, I rip it out entirely!
22:30
< Tarinaky>
That bad?
22:30
<@McMartin>
That bad.
22:30
< Derakon[work]>
Worse.
22:31
< Derakon[work]>
_define_vgAddXXX() is a function that calls exec() on a string that it modifies based on passed-in arguments. That string in turn defines a function vgAddFoo() (where Foo is actually an object type).
22:31
< Derakon[work]>
The net result is that you call _define_vgAddXXX() with a whole bunch of types, and it generates a bunch of different vgAddFoo functions and inserts them into the module namespace.
22:31
< Derakon[work]>
I think.
22:32
<@McMartin>
Much as I malign it, this is an obvious job for inheritance.
22:32
< Derakon[work]>
Quite.
22:34 * TheWatcher randomly and completely coincidentally emails a number of people he knows in various positions warning them to be very careful to never hire this guy >.>
22:34
< Derakon[work]>
Heh.
22:45
< Rhamphoryncus>
trivia: python's string exceptions use identity comparisons. this means that 'xx' in one module will not match the 'xx' in another module
22:48 * Rhamphoryncus boggles at priithon
22:49
< Rhamphoryncus>
Derakon[work]: that's the sort of garbage you have to maintain?!
22:50
<@McMartin>
If by "maintain" you mean "replace"...
22:51
< Rhamphoryncus>
That or this turns into the monty python accountant's sketch
22:59 * Derakon[work] returns from discussing a broken computer with one of the biologists.
22:59
< Derakon[work]>
Rhamphoryncus: that's a separate pile of garbage.
22:59
< Derakon[work]>
It's a "support library" that Sebastian put together, which the program I'm using only rarely interacts with. It's used more by the postprocessing software.
22:59
< Rhamphoryncus>
Yeah, but it's on the same grade of what you're working on?
23:00
< Derakon[work]>
I've deliberately avoided looking at it extensively, but I'd wager they're on similar levels, yeah.
23:00
< Derakon[work]>
There's a reason that when I do a style overhaul on these files, not one line is unchanged!
23:00
< Rhamphoryncus>
The blanket exception handlers alone could be hiding more serious bugs
23:02
< Derakon[work]>
Anyway, the thing I was called away for is a secondary system that's been having hardware difficulties.
23:02
< Derakon[work]>
In this case, a frame capture camera attached to a microscope (not the microscope; a different one) is showing a black screen.
23:02
< Derakon[work]>
I know jack all about this microscope, and there's only one biologist who's currently using it.
23:02
< Derakon[work]>
Well, not using. Because it's broken.
23:03
< Derakon[work]>
Of course he requires it to get his research done. *sigh*
23:03
< Derakon[work]>
This is the bad side of working in an academic setting: you don't necessarily have anyone available with the required expertise to do something, but it has to be done anyway.
23:04
<@McMartin>
Which explains a good deal of why Seb happened in the first place~
23:04
< Derakon[work]>
Heh. Point.
23:05
< Derakon[work]>
I just kinda miss being able to say "Sorry, not my responsibility" when something I wasn't hired to fix breaks.
23:06
<@TheWatcher>
Heh
23:07 * TheWatcher knows that one...
23:08
<@TheWatcher>
(Although, that said, most of the time I don't mind. Well, that any my job description is so bloody nebulous that nobody is actually sure where my responsibilities begin and end)
23:09
<@McMartin>
My job description is basically "member of the Client Team"
23:12
< Derakon[work]>
I don't think I really have a job description beyond "software specialist".
23:12
< Derakon[work]>
But that "software" is very important!
23:13
< Derakon[work]>
It means I'm not a "hardware" specialist, let alone a "computer" specialist.
23:14
<@TheWatcher>
Officially, I'm "Teaching Fellow (course development)", but in reality what I do is 50% sysadmin, 50% software dev, 50% research, 50% course development, and another 30% or so of teaching, tech support, hardware maintenance and the like >.>
23:14
<@TheWatcher>
(yes, I know...)
23:19
< Derakon[work]>
I just don't want to have to deal with more than one broken thing at a time.
23:20
< Derakon[work]>
I'm getting a bit of a groove going here with the "let's make the code look nicer even if the design is still shit" stuff, so distracting me with "argh, LMX is broken" is unpleasant.
23:20
< Derakon[work]>
...it occurs to me. I was told that the "X" in LMX and OMX stands for "experimental". But I think it actually stands for "Sebastian".
23:21
< Derakon[work]>
Maybe I can get the new microscope (currently supposed to be named OMXT) renamed.
23:23
<@McMartin>
It's now Good instead of eXperimental.
23:23
<@McMartin>
OMG TEH OMG
23:28
< Finale>
lol
23:32
< Derakon[work]>
Original file: 1144 lines. I went through and fixed style problems, removed some code duplication, and deleted unused functions and features.
23:32
< Derakon[work]>
It's now 751 lines long.
23:32
<@McMartin>
:scigonk:
23:46
< Derakon[work]>
...
23:46
< Derakon[work]>
From my flist: "Errr... "rectal fried data"? No thanks!
23:46
< Derakon[work]>
Errr... "rectal fried data"? No thanks!
23:46
< Derakon[work]>
(I'm pretty sure my coworker meant "rectified data". At least, that's what I'm going to keep telling myself.)"
23:46
< Derakon[work]>
Whoops. Accidentally double-copied.
23:55
<@TheWatcher>
.... I'm so having to restrain myself from commenting on that post, as I doubt 'rora would approve ¬¬
23:56
< Derakon[work]>
Oh, go on!
23:57
<@TheWatcher>
I suspect that scatological punnery would get me Looked At
23:57
< Derakon[work]>
Ahh, well.
23:58
< SmithKurosaki>
Oh god
23:58
< SmithKurosaki>
Please, someone explain excptions
23:58
< SmithKurosaki>
Or well, how to deal with java exceptions
23:58
< Derakon[work]>
Exceptions stop normal execution of your program.
23:58
< Derakon[work]>
When you throw an exception, the program backs up the call stack until it reaches a catch block for that exception.
23:59
< Derakon[work]>
So say you have Foo call Bar call Baz which throws an IOException.
23:59
< Derakon[work]>
In Foo, you know that calling Bar can result in IOExceptions, so you put the call to Bar inside a try/catch statement, with the catch statement set to look for IOExceptions.
23:59
< Derakon[work]>
When Baz throws the exception, Baz stops immediately and returns to Bar. Bar doesn't catch the exception, so it also stops and returns to Foo. Then you hit your catch statement.
--- Log closed Thu Dec 10 00:00:23 2009
code logs -> 2009 -> Wed, 09 Dec 2009< code.20091208.log - code.20091210.log >