--- 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 |