code logs -> 2009 -> Thu, 12 Nov 2009< code.20091111.log - code.20091113.log >
--- Log opened Thu Nov 12 00:00:14 2009
00:00
< McMartin>
The docs imply only on OS X right now.
00:00
< Namegduf>
Ah.
00:00
< McMartin>
You may need to use gccgo to do that, though; I'm using the Plan 9 compilers.
00:01 You're now known as TheWatcher[T-2]
00:06 You're now known as TheWatcher[zZzZ]
00:06 AnnoDomini [farkoff@Nightstar-30729f3d.adsl.tpnet.pl] has quit [[NS] Quit: <>There is no phenotype</>]
00:07 Tarinaky [Tarinaky@Nightstar-056b4d13.adsl.virginmedia.net] has quit [Connection closed]
00:18
< simon`>
any of you who use graphviz?
00:29
< ToxicFrog>
I've used it a tiny bit
00:47 MyCatVerbs [mycatverbs@Nightstar-492e7e67.co.uk] has quit [[NS] Quit: leaving]
00:47 MyCatVerbs [mycatverbs@Nightstar-f43ca811.blueyonder.co.uk] has joined #code
00:50 Orthia [Orthianz@Nightstar-beaca266.xnet.co.nz] has quit [Client closed the connection]
00:50
< simon`>
ah, shape=none was what I was looking for.
00:57 Orthia [Orthianz@Nightstar-beaca266.xnet.co.nz] has joined #code
00:57 Orthia [Orthianz@Nightstar-beaca266.xnet.co.nz] has quit [Client closed the connection]
01:05 Orthia [Orthianz@Nightstar-beaca266.xnet.co.nz] has joined #code
01:06
< simon`>
http://stuff.anarcho.dk/eps-elim.png -- I'm wondering, how would one systematically eliminate epsilon-transitions in NFAs?
01:07
< simon`>
I made this example to illustrate a problem with, in this case, simply collapsing state 2 into state one because state 3 leads back to state 2 but shouldn't lead back to state 1.
01:08
< simon`>
I've got a textbook algorithm for NFA->DFA that doesn't have this problem but runs in exponential time.
01:24
< McMartin>
NFA->DFA is, IIRC, basically intrinsically exponential.
01:24
< simon`>
yes
01:24
< simon`>
but NFA->NFA-with-no-epsilon-transitions shouldn't have to be.
01:25
< McMartin>
Ah, I see.
01:25
< simon`>
I can collapse epsilon-transitions in polynomial time, but I run into the problem I drew above
01:25
< McMartin>
I'm pretty sure that if you're clever about your NFA->DFA algorithm you can get collapse "on the way"
01:26
< simon`>
i.e. I can't collapse node 1 and 2 together since the resulting NFA is not equivalent with the original.
01:26
< simon`>
McMartin, well, the NFA->DFA does include collapsing e-transitions since they can't exist in the DFA.
01:27
< McMartin>
Well, yeah, but I'm saying that if you're smart about the conversion, then it isn't "very" exponential - that is, it's only exponential in the worst possible case.
01:27
< McMartin>
Anyway, it looks like you'd want to add a flag that only permits a collaps if all outgoing transitions are epsilon.
01:27
< SmithKurosaki>
nfa and dfa == ??
01:27
< McMartin>
Non-deterministic/Deterministic Finite Automaton.
01:27
< McMartin>
The abstract computing machine responsible for the recognition of regular expressions.
01:28
< SmithKurosaki>
Ahh
01:28
< McMartin>
Operates in linear time and constant space.
01:28
< simon`>
they're notations for describing regular languages
01:29
< McMartin>
That too.
01:30
< McMartin>
Anyway, @simon, why do you want to do this intermediate NFA-with-fewer-epsilons step?
01:31
< McMartin>
I think you can sort of do it as-needed for any sane language and not get burned very hard.
01:31
< McMartin>
In this case, you'd go "OK, so, start, that's 12; on c it goes to 5, on a it goes to 34"
01:31
< McMartin>
"34 goes to 2 on input b"
01:32
< McMartin>
And then there's your DFA, four states, boom.
01:32
< simon`>
McMartin, it's an exercise in my book.
01:32
< McMartin>
Aha.
01:33
< simon`>
I'm not sure if it's useful at all. it seems that there's also a practical point in converting to DFAs at some point.
01:33
< McMartin>
Yeah, that last part is what I'm skeptical about, at least for sane languages.
01:33
< McMartin>
Designing such an algorithm would be my third thought.
01:33 Orthia [Orthianz@Nightstar-beaca266.xnet.co.nz] has quit [Client closed the connection]
01:34
< McMartin>
My first thought would be "do I need to optimize at all, or can I just follow epsilons each transition as needed"
01:34
< McMartin>
Once that became a performance problem, I'd cache the results of following epsilons and do a memoized algorithm
01:34
< McMartin>
And only if that failed too would I consider such an algorithm.
01:35
< simon`>
I can't imagine that it'd ever be a performance problem unless I had some mechanism that generated NFAs with excessively many epsilons as some side-effect.
01:35
< McMartin>
(In a situation where you actually deploy an automaton to do lexing with, it should *always* be a DFA)
01:35
< simon`>
right
01:35
< McMartin>
Well, the usual way of rendering regexes into NFAs does in fact have shitloads of epsilons.
01:35
< McMartin>
Alternation has four per, for example.
01:36
< McMartin>
I'd mainly worry about a situation where you have, say, n^2 nodes for some large n and n epsilon transisitoins randomly assigned with in.
01:40
< McMartin>
(Part of my thesis research involved designing and proving some things about a severely weird automaton variant that among other things could recognize intersections of CFGs.)
01:41 Orthia [Orthianz@Nightstar-beaca266.xnet.co.nz] has joined #code
01:43
< simon`>
McMartin, are you currently a researcher?
01:45
< simon`>
my week assignment said "using a regular expression, extract the title in an HTML page. assume that the HTML page is well-formed." so I assumed HTML 4.01-compliancy and did this multi-line variant that supports the correct tags, case sensitivity and possible whitespace.
01:52
< McMartin>
simon: No; I completed my degree last year and have been a software engineer for some months afterwards.
01:53
< McMartin>
That's a reasonable request, though it does, indeed, rely on certain quirks of HTML.
01:53
< simon`>
well, I think they want you to type <title>(.*?)</title>
01:53
< simon`>
whereas mine is:
01:53
< simon`>
<\s-*[Tt]\s-*[Ii]\s-*[Tt]\s-*[Ll]\s-*[Ee]\s-*\
01:53
< simon`>
\(?:(?:[Ll]\s-*[Aa]\s-*[Nn]\s-*[Gg]\|[Dd]\s-*[Ii]\s-*[Rr]\)=".*?")?\s-*\
01:53
< simon`>
>\s-*\(.*?\)\s-*\
01:53
< simon`>
<\s-*/\s-*[Tt]\s-*[Ii]\s-*[Tt]\s-*[Ii]\s-*[Tt]\s-*[Ll]\s-*[Ee]\s-*>
01:53
< simon`>
(we have to use Emacs regex)
01:53
< Vornicus>
;_; ;_;
01:54
< simon`>
\s- is PCRE's \w
01:54
< simon`>
err
01:54
< simon`>
\W
01:54
<@Derakon>
I suggest you supply the simple version first, and then say "But this can fail in these situations, so I designed this more robust pattern".
01:54
< simon`>
\s I mean!
01:55
< simon`>
Derakon, that's what I did :) I have this sort of monolog in my report with incremental improvements.
01:55
< McMartin>
What Derakon said.
01:55
< McMartin>
Of course, you can also just do a [^>]* instead of directly matching the attributes.
01:56
<@Derakon>
Well, you have to make certain you grab the contents of the title tag.
01:56
< simon`>
I just realized, however, that what they want us to do is explain which emacs commands we used to do a practical search in a buffer. it's interesting how a mandatory part of the compilers course is learning emacs.
01:56
<@Derakon>
But after that, yeah.
01:56
<@Derakon>
Simon: (
01:56
<@Derakon>
Er. :(
01:56
<@Derakon>
Use vim!
01:57
< simon`>
a couple of people complained, asking if they couldn't simply use whichever regex engine that wasn't too esoteric and any editor they like. and one of the lecturer politely responds in finnish-swedish (that is, swedish with finnish influences). it's impossible to understand what he says.
01:57
< simon`>
lecturers*
01:58
< simon`>
Derakon, I'm actually thinking about switching to Emacs, but I need to find out how good Viper is.,
01:58
< simon`>
I just really want that "normal" mode from vi. being able to type commands without modifiers is just so convenient.
01:58
<@Derakon>
I'm pretty certain I've heard that emacs has a command mode.
01:58
<@Derakon>
I wouldn't know what it is or if it's any good, but it has everything else.
02:04
< McMartin>
Meta-x, basically.
02:04
< McMartin>
That's "type command name" mode.
02:04 * McMartin messes with go some more.
02:05
< McMartin>
The object files are like 3/4 text, wtf.
02:05
<@Derakon>
More Go?
02:05
< McMartin>
Yeah.
02:05
< McMartin>
Go is today's lightsaber chair fight.
02:06
< McMartin>
I'm not sure I yet believe the "no function overloading" claim, given that you can attach methods at any time to arbitrary types, including types like "anything that also has these other methods defined on it" or "these typedeffed primitive types"
02:07
< McMartin>
While it's true that f(i) means one and only one function signature, i.f() can be made to work on anything you want
02:09
< simon`>
hm
02:10
< simon`>
way too much Go talk today.
02:10
< McMartin>
Well, it did come out yesterday, and it is by the inventor of C.
02:10
< McMartin>
One must expect a certain level of buzz.
02:12
< simon`>
hahaha, this is hilarious:
02:12
< simon`>
Viper (vi-clone plugin for Emacs) has this startup message that describes Viper as having 5 levels, 1 being closest to vi, 5 being closest to emacs.
02:13
< simon`>
"It is suggested to reach level 3 to be productive" (paraphrased)
02:13
< simon`>
that reminds me that Scientology's leveling system also rates people as "clear" when they reach level 3.
02:13
< McMartin>
Ahahaha
02:14 Orthia [Orthianz@Nightstar-beaca266.xnet.co.nz] has quit [Client closed the connection]
02:14
< McMartin>
(Also, I am a programming language geek; I need to evaluate Go at least a bit to maintain my street cred, such as it is)
02:14
< simon`>
of course
02:15
< simon`>
I heard from some people earlier that Go is like pointer-safe C with CSP-style concurrency.
02:17 * simon` thinks he'll stick with erlang for concurrency and C for speed at least until the point where he has to do something practical. :-P
02:17
< ToxicFrog>
Mmm, erlang
02:17
< simon`>
yes, mmm indeed.
02:18
< McMartin>
The fact that Go cites Erlang as related makes me happy
02:19
< McMartin>
The fact that it hates inheritance also makes me happy.
02:19
<@Derakon>
What about inheritance annoys you?
02:19
<@Derakon>
Simple inheritance is often useful, I find.
02:19
< Namegduf>
Interface do seem much more logical.
02:19
< simon`>
I'm not sure if I said this already, but there was a guest talk at my uni with a guy who demonstrated how, if you use anonymous functions and the Y-combinator instead of named recursion, you can overcome some restrictions in erlang's module system since it requires either a function or a module(file) name when spawning processes on remote nodes.
02:20
< simon`>
McMartin, class inheritance?
02:20
< McMartin>
simon: Quite.
02:20
<@Derakon>
I'd hate to have to implement the draw() function on every monster type in Jetblade...likewise, it seems like poor design to have an external draw() function that reaches into the monster's innards to draw it.
02:21
< McMartin>
Go's mechanism is Objective-C style static/dynamic typing combined with type inference, which produces a result superficially simliar to Haskell's typeclasses, which have spoiled me forever.
02:21
< Namegduf>
"reaches into innards" is orthagonal to inheritance's purposes; that's abstraction.
02:21
< simon`>
McMartin, yes, also me.
02:21
< McMartin>
Derakon: You'd do it in reverse; you'd have a Drawable interface which exposes the bits that the drawer needs, and then Draw takes a Drawable.
02:22
< McMartin>
Go seems to be trying to have it both ways with the "verbs that take arbitrary nouns, and you can extend it later" vs. "nouns with verbs attached, and similar nouns have at least those"
02:22
<@Derakon>
Ah.
02:22 Orthia [Orthianz@Nightstar-27840d6a.xnet.co.nz] has joined #code
02:23
< McMartin>
The former is more ML-y, the latter more OO-y, and for various historical reasons I prefer the former
02:23
< simon`>
ugh
02:23
< McMartin>
As a result, my OO designs have a strong "functional accent"
02:23
< Namegduf>
Yeah; you define an interface, and everything which has functions matching it able to operate on it qualifies.
02:23
< simon`>
I hope they don't try to have the language do too much.
02:23
< McMartin>
simon: No risk of that so far >_<
02:24
< McMartin>
The library's, in my estimation, maybe 20% of where it needs to be
02:24 * simon` still has a 2lbs Scala book he plans to read when he is out of important stuff to do.
02:24
< Namegduf>
The library seems fine enough.
02:24
< Namegduf>
Sockets, regular expressions, even HTTP stuff.
02:24
< McMartin>
Namegduf: Which is in turn basically exactly Objective-C "protocol"s.
02:24
< Namegduf>
Could use more container classes, but that might just be my C++ talking
02:25
< McMartin>
The Empty protocol means you don't need much for that, and workable arrays and maps are 90% of what you need right there
02:25
< Namegduf>
Yeah, although I wouldn't call their arrays any more 'workable' than C+
02:25
< Namegduf>
*C++
02:25
< Namegduf>
Er, C
02:25
< McMartin>
At least they carry bounds.
02:26
< McMartin>
Right now its foreign interfaces are a bit too primitive, so I couldn't, for instance, use Go as the core logic for a non-command-line utility.
02:26
< McMartin>
(socketed client-server counts as command-line here)
02:27
< McMartin>
I didn't see any equivalent to Python's struct module, though the type system isn't very amenable to that
02:27
< McMartin>
I may whip up a structstream module to deal with that.
02:27 * simon` has some vague idea that it might not be so bad to work as an Erlang programmer.
02:28
< McMartin>
Hrm, I hope they allow floating point type-punning.
02:28
< simon`>
type-punning?
02:29
< simon`>
well, regarding the standard library: if they try to beat C, it shouldn't be so hard.
02:29
< McMartin>
Heh
02:30
< McMartin>
"Given a uint32 or uint64, return the float or double those bits represent, or vice versa."
02:33
< McMartin>
OCaml's bits_of_float or float_of_bits.
02:35
< simon`>
oh
02:35
< simon`>
so, return the same data as a different type.
02:35
< simon`>
this Viper program isn't too bad.
02:35
< McMartin>
Yeah.
02:36
< McMartin>
The point is that calling float_of_bits(1) shouldn't return 1.0, it should return EPSILON_32.
02:36
< McMartin>
(or whatever it is that you'd need for that for IEE 754)
02:38
< McMartin>
Basically, this means that it would have seriously trouble writing a file parser for IFF formats that include floating point
02:43
< Namegduf>
McMartin: I suspect you're read it as a series of bytes
02:43
< Namegduf>
*you'd
02:43
< Namegduf>
That's just a guess, though.
02:45
< McMartin>
Yeah.
02:45
< McMartin>
The question is "given four bytes, how do I get a float32"
02:45
< McMartin>
And I managed to get the unsafe package to do it.
02:46
< McMartin>
1.0 is in fact 0x3f800000 in the relevant standard.
02:49 * McMartin whips up a floatbits package.
02:51
< gnolam>
"This reminds us of an episode told by Gell-Mann. On one of his early visits to the RAND Corporation in Santa Monica, California, he was handed a stack including the RAND Table of Random Numbers. A small piece of paper fluttered out of it and fell to the floor. When he picked it up, he found it was an errata sheet to the tables."
02:55 Attilla [The.Attilla@FBC920.480E8C.3E679A.E258A8] has quit [[NS] Quit: ]
02:59
< simon`>
any of you emacs users?
02:59
< simon`>
I can't find lookarounds in emacs regex
02:59
< simon`>
(?< and (?= in PCRE
03:04
< simon`>
would you say that it's possible or not to fulfill this assignment without lookarounds? "Match the title between <title> and </title>"?
03:04
< simon`>
I mean, you *have* to have some kind of zero-width assertion to check that <title> and </title> are there without also making them a part of the match.
03:05
< McMartin>
http://paste.ubuntu.com/316530/
03:07
< simon`>
it's nice that "unsafe" is all over the screen if you do nasty things.
03:07
< McMartin>
Hm, actually, I don't have to declare p outright like that.
03:07
< McMartin>
I can just do p := in each case and then not have the "var p" lines.
03:07
< McMartin>
But yeah, I just ran my python struct test suite against them and they look good.
03:08
< McMartin>
To the outside world, floatbits is "typesafe".
03:08
< McMartin>
In scare quotes because the entire point of it is to wreck type coherence in one very specific way.
03:08 gnolam [lenin@Nightstar-38637aa0.priv.bahnhof.se] has quit [[NS] Quit: Z?]
03:42
< Reivles>
sex#: gawk ; grep ; touch ; unzip ; mount /dev/girl -t wet ; fsck ; fsck ; fsck ; yes ; yes ; yes ; umount /dev/girl ; zip ; sleep
03:44 Syloqs_AFH [Syloq@NetworkAdministrator.Nightstar.Net] has joined #code
03:45 Syloqs_AFH is now known as Syloqs-AFH
03:51
< simon`>
I wonder how zero-width assertions are implemented.
03:52
< simon`>
I suppose regexes with them in can also be converted to DFAs.
04:26 Vornicus [vorn@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: Leaving]
04:28 Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #code
04:48 Reivles [reaverta@ServerAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds]
04:50 Orthia [Orthianz@Nightstar-27840d6a.xnet.co.nz] has quit [Ping timeout: 121 seconds]
04:51 Orthia [Orthianz@Nightstar-a2722f4e.xnet.co.nz] has joined #code
04:54 Reivles [reaverta@ServerAdministrator.Nightstar.Net] has joined #code
05:00 Vornicus [vorn@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: ]
05:04 Orthia [Orthianz@Nightstar-a2722f4e.xnet.co.nz] has quit [Ping timeout: 121 seconds]
05:04 Syloqs-AFH [Syloq@NetworkAdministrator.Nightstar.Net] has quit [Connection reset by peer]
05:08 Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #code
05:18 Orthia [Orthianz@Nightstar-4a486b19.xnet.co.nz] has joined #code
05:22 Orthia [Orthianz@Nightstar-4a486b19.xnet.co.nz] has quit [Ping timeout: 121 seconds]
05:27 Reivles [reaverta@ServerAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds]
05:46 Reiver [reaverta@ServerAdministrator.Nightstar.Net] has joined #code
05:49 Orthia [Orthianz@Nightstar-4a486b19.xnet.co.nz] has joined #code
05:53 Orthia [Orthianz@Nightstar-4a486b19.xnet.co.nz] has quit [Ping timeout: 121 seconds]
06:07 Reiver [reaverta@ServerAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds]
06:23 Reiver [reaverta@ServerAdministrator.Nightstar.Net] has joined #code
06:55 Reiver [reaverta@ServerAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds]
06:59 Reiver [reaverta@ServerAdministrator.Nightstar.Net] has joined #code
07:09 AnnoDomini [farkoff@Nightstar-30729f3d.adsl.tpnet.pl] has joined #code
07:10 You're now known as TheWatcher
07:20 Tarinaky [Tarinaky@Nightstar-056b4d13.adsl.virginmedia.net] has joined #code
07:23 crem [moo@Nightstar-8ca3eea7.adsl.mgts.by] has joined #code
07:25 Derakon is now known as Derakon[AFK]
07:36 Reiver [reaverta@ServerAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds]
07:44 Reiver [reaverta@ServerAdministrator.Nightstar.Net] has joined #code
07:58 Reiver [reaverta@ServerAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds]
08:06 Reiver [reaverta@ServerAdministrator.Nightstar.Net] has joined #code
08:15 You're now known as TheWatcher[afk]
08:42 Reiver [reaverta@ServerAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds]
08:48 Reiver [reaverta@ServerAdministrator.Nightstar.Net] has joined #code
08:56 Reiver [reaverta@ServerAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds]
08:58 Rhamphoryncus [rhamph@Nightstar-a62bd960.abhsia.telus.net] has quit [Client exited]
09:03 MyCatVerbs [mycatverbs@Nightstar-f43ca811.blueyonder.co.uk] has quit [Ping timeout: 121 seconds]
09:08 Reiver [reaverta@ServerAdministrator.Nightstar.Net] has joined #code
09:16 Reiver [reaverta@ServerAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds]
09:19 Vornicus is now known as Vornicus-Latens
09:22 Reiver [reaverta@ServerAdministrator.Nightstar.Net] has joined #code
09:36 Reiver [reaverta@ServerAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds]
09:43 Reiver [reaverta@ServerAdministrator.Nightstar.Net] has joined #code
10:02 Orthia [Orthianz@Nightstar-4a486b19.xnet.co.nz] has joined #code
10:13 You're now known as TheWatcher
10:31 Orthia [Orthianz@Nightstar-4a486b19.xnet.co.nz] has quit [Ping timeout: 121 seconds]
10:32 DirePinkhair [pinkhair3d@Nightstar-a7d2ccfd.dyn.optonline.net] has joined #code
10:34 Pinkhair [pinkhair3d@Nightstar-a7d2ccfd.dyn.optonline.net] has quit [Ping timeout: 121 seconds]
10:56 You're now known as TheWatcher[d00m]
11:01 MyCatVerbs [mycatverbs@Nightstar-492e7e67.co.uk] has joined #code
11:08 DirePinkhair is now known as Pinkhair
11:12 AnnoDomini [farkoff@Nightstar-30729f3d.adsl.tpnet.pl] has quit [Ping timeout: 121 seconds]
11:18 Orthia [Orthianz@Nightstar-4a486b19.xnet.co.nz] has joined #code
11:18 AnnoDomini [farkoff@Nightstar-c63fb9d8.adsl.tpnet.pl] has joined #code
11:32 You're now known as TheWatcher
11:33 Attilla [The.Attilla@FBC920.480E8C.3E679A.E258A8] has joined #code
11:33 mode/#code [+o Attilla] by ChanServ
11:38 Orthia [Orthianz@Nightstar-4a486b19.xnet.co.nz] has quit [Client closed the connection]
11:41 * AnnoDomini very carefully attempts to install a Debian.
11:42
< AnnoDomini>
Wow. That went fast.
11:42
< AnnoDomini>
Virtual PC crashed almost immediately after I selected 'Install'.
11:45 Orthia [Orthianz@Nightstar-4a486b19.xnet.co.nz] has joined #code
11:56
<@TheWatcher>
Impressive!
12:25
< AnnoDomini>
It gets to the 'Booting kernel.' prompt, then dies.
12:41 Orthianz [Orthianz@Nightstar-e221c515.xnet.co.nz] has joined #code
12:42 Orthia [Orthianz@Nightstar-4a486b19.xnet.co.nz] has quit [Ping timeout: 121 seconds]
13:17 kelna [kelnadraco@842092.2332EB.125732.AFD842] has joined #code
13:17
< kelna>
hello all is there a female furry looking for a mate in this channel, and it snot for me
13:18
< AnnoDomini>
Attilla: Banzor, plox.
13:19
< kelna>
is that a yes not or go away?
13:20
< Namegduf>
w
13:21
< kelna>
k
13:24 mode/#code [+b *!*kelnadraco@*] by TheWatcher
13:24 kelna was kicked from #code by TheWatcher [That's a go away]
13:24
< Namegduf>
Er, oops, looks like I accidentally hit some keys there.
13:26
<@Attilla>
oh sorry, wasn't paying attention here
13:33 mode/#code [+oo SmithKurosaki ToxicFrog] by TheWatcher
13:34 mode/#code [+ooo Reiver Vornicus-Latens jerith] by TheWatcher
13:34 mode/#code [+ooo AnnoDomini McMartin MyCatVerbs] by TheWatcher
13:35 mode/#code [+o Orthianz] by TheWatcher
13:41 Orthianz [Orthianz@Nightstar-e221c515.xnet.co.nz] has quit [Ping timeout: 121 seconds]
13:56 You're now known as TheWatcher[d00m]
14:01 AnnoDomini [farkoff@Nightstar-c63fb9d8.adsl.tpnet.pl] has quit [Ping timeout: 121 seconds]
14:04
<@MyCatVerbs>
Doesn't this channel use Chanserv's AOP list?
14:07 AnnoDomini [farkoff@Nightstar-4b576a12.adsl.tpnet.pl] has joined #code
14:07 mode/#code [+o AnnoDomini] by Reiver
14:20
<@SmithKurosaki>
No, Rev is opbotting
14:21 AnnoDomini [farkoff@Nightstar-4b576a12.adsl.tpnet.pl] has quit [Ping timeout: 121 seconds]
14:30 AnnoDomini [farkoff@Nightstar-f733b573.adsl.tpnet.pl] has joined #code
14:30 mode/#code [+o AnnoDomini] by Reiver
14:34 AnnoDomini [farkoff@Nightstar-f733b573.adsl.tpnet.pl] has quit [Ping timeout: 121 seconds]
14:35 AnnoDomini [farkoff@Nightstar-3e109cd7.adsl.tpnet.pl] has joined #code
14:35 mode/#code [+o AnnoDomini] by Reiver
14:40 crem [moo@Nightstar-8ca3eea7.adsl.mgts.by] has quit [Client closed the connection]
14:47 crem [moo@Nightstar-8ca3eea7.adsl.mgts.by] has joined #code
14:54 Syloqs_AFH [Syloq@NetworkAdministrator.Nightstar.Net] has joined #code
14:55 Syloqs_AFH is now known as Syloqs-AFH
15:11 You're now known as TheWatcher
15:27 You're now known as TheWatcher[afk]
16:42 Tarinaky [Tarinaky@Nightstar-056b4d13.adsl.virginmedia.net] has quit [Ping timeout: 121 seconds]
16:57 Tarinaky [Tarinaky@Nightstar-4fa31ea0.adsl.virginmedia.net] has joined #code
17:00 Rhamphoryncus [rhamph@Nightstar-a62bd960.abhsia.telus.net] has joined #code
17:17 gnolam [lenin@Nightstar-38637aa0.priv.bahnhof.se] has joined #code
17:18 You're now known as TheWatcher
17:39 Derakon[work] [Derakon@Nightstar-d44d635e.ucsf.edu] has joined #code
18:26 Alek [omegaboot@Nightstar-02457fcc.emhril.sbcglobal.net] has quit [Ping timeout: 121 seconds]
18:31 Alek [omegaboot@Nightstar-f480e3e0.emhril.sbcglobal.net] has joined #code
18:33 * Derakon[work] finishes cataloguing 27 configuration values for running experiments.
18:34
< Derakon[work]>
Now there's the 22 status variables, not counting the ones that are stored in global scope.
18:35 * jerith offers a large stone tablet upon which to enscribe them.
18:35
< Derakon[work]>
I'm using my lab notebook, but thanks.
18:58 Alek [omegaboot@Nightstar-f480e3e0.emhril.sbcglobal.net] has quit [Ping timeout: 121 seconds]
19:02 Alek [omegaboot@Nightstar-cd2572ea.emhril.sbcglobal.net] has joined #code
19:27
< Rhamphoryncus>
jerith: I have to keep fighting the urge to chat here instead. So many years of habit to undo ;)
19:27
<@jerith>
:-)
19:28
< Derakon[work]>
Context?
19:28
<@jerith>
I'm writing a dicebot for Google Wave.
19:28
<@jerith>
So we're playing with Wave as a collaborative design tool.
19:29
< Derakon[work]>
Ahh.
19:29
< Rhamphoryncus>
just a wee bit rough around the edges..
19:33 crem [moo@Nightstar-8ca3eea7.adsl.mgts.by] has quit [Ping timeout: 121 seconds]
19:38
<@jerith>
Very.
19:38 * jerith should head bedwards with the laptop that actually has enough computrons for wave.
19:39 crem [moo@Nightstar-8ca3eea7.adsl.mgts.by] has joined #code
20:31 Alek [omegaboot@Nightstar-cd2572ea.emhril.sbcglobal.net] has quit [Client closed the connection]
20:38 Derakon[work] [Derakon@Nightstar-d44d635e.ucsf.edu] has quit [Ping timeout: 121 seconds]
20:38 Alek [omegaboot@Nightstar-cd2572ea.emhril.sbcglobal.net] has joined #code
20:41 * AnnoDomini tries VMWare.
20:41
<@AnnoDomini>
Now what kind of kernel does Debian 5 have?
20:42
<@AnnoDomini>
Seems like 2.6.x but I can't be sure.
20:42
< Namegduf>
Yes, it's 2.6.x
20:42
< Namegduf>
I mean, I think Etch was, too.
20:45
<@AnnoDomini>
Now, I'm not supposed to install any sort of GUI - the teacher requires we do this in pure text mode.
20:45
<@AnnoDomini>
How do I do it?
20:46 Derakon[work] [Derakon@Nightstar-d44d635e.ucsf.edu] has joined #code
20:46
<@McMartin>
There should be installation instructions.
20:46
<@McMartin>
... that said, which version of VMware are you using here?
20:47
< Namegduf>
AnnoDomini: What media are you using?
20:47
< Namegduf>
Either way, the installer should prompt for stuff to install.
20:47
< Namegduf>
Don't select "desktop system"
20:47
<@AnnoDomini>
McMartin: Workstation 6.5.1.
20:47
<@AnnoDomini>
Namegduf: I has a web install disc.
20:47
< Namegduf>
Ah, good.
20:48
< Namegduf>
Then yeah, just run it, it installs a base system them prompts for you to pick general things, and optionally specific packages.
20:48
<@AnnoDomini>
I'm at the 'installer boot menu' screen. Options: Install, Graphical install, Advanced options, Help.
20:48
<@AnnoDomini>
Under some options, I see some GUIs to choose. I might not want this.
20:49
< Namegduf>
Just select "install"
20:49
<@AnnoDomini>
SO BE IT.
20:49 Alek [omegaboot@Nightstar-cd2572ea.emhril.sbcglobal.net] has quit [Ping timeout: 121 seconds]
20:50
<@McMartin>
Workstation may try to be "helpful" for you; if it gives you too much guff, make a blank VM and load it into Player, then go from there.
21:00 Alek [omegaboot@Nightstar-cd2572ea.emhril.sbcglobal.net] has joined #code
21:06 Alek [omegaboot@Nightstar-cd2572ea.emhril.sbcglobal.net] has quit [Ping timeout: 121 seconds]
21:15
<@AnnoDomini>
Can I select 'standard system'? I deselected 'desktop environment'.
21:19
<@AnnoDomini>
I guess I should.
21:28
< Derakon[work]>
There, that's the 22 status variables catalogued.
21:28
< Derakon[work]>
It's frankly sad just how many of these have only one, tightly-constrained purpose.
21:28
< Derakon[work]>
Why are they embedded into an entirely unrelated module in the global namespace for that module? :(
21:29 Finale [c0cb88fe@Nightstar-14e5d099.mibbit.com] has joined #code
21:29
<@TheWatcher>
Dera: cargo cult programming.
21:30
< Derakon[work]>
Mmm...I associate cargo cult programming with "I don't know what this does, but I think it's necessary so I'm including it".
21:30
<@TheWatcher>
Yeah, probably true
21:30
< Derakon[work]>
This reads to me as more of a "I'm too lazy to do proper data hiding".
21:30
<@TheWatcher>
Actually, going what you've described of the guy who worke don that, I'd suspect it's more just not knowing any better
21:31
<@TheWatcher>
*going off
21:31
< Derakon[work]>
Yeah, that too.
21:32
< Derakon[work]>
He doesn't know any better to realize that the proper definition of "being lazy" in this situation is to practice proper data hiding.
21:39 * gnolam blarghs, starts working around the lack of SDL_Image.
21:39
<@AnnoDomini>
So, I'm at the prompt. I've installed it. And logged in. What do I do now?
21:50
< Derakon[work]>
Gnolam: are we meant to read that as "I don't have SDL_Image and thus must do workarounds" or as "SDL_Image doesn't do something I want so I much work around it"?
21:50
< Derakon[work]>
Normally I'd read it as the former, but knowing your attitude towards the SDL...
21:52
< gnolam>
As in "I have SDL_Image, but at least one system it has to work on doesn't, so I must create hacky workarounds".
21:53
< Derakon[work]>
Ahh.
22:15
<@McMartin>
AnnoDomini: Well, if you've logged in, you're there, and so now you do whatever it is you were going to do.
22:22 Derakon[work] [Derakon@Nightstar-d44d635e.ucsf.edu] has quit [[NS] Quit: Leaving]
22:22 Vornicus-Latens is now known as Vornicus
22:24 * gnolam stabs SDL.
22:24
< gnolam>
Would it /really/ have been that much trouble to have a canonical getpixel()/putpixel()? :P
22:30
< gnolam>
Preferably non-crashing ones, unlike the example. :P
22:32
<@McMartin>
Yes, because then people would use it, and it's a hard-sync operation.
22:33
<@McMartin>
That said, I'd use FillRect with a 1x1 SDL_Rect, so that I don't have to worry about the image format in-memory.
23:33 AnnoDomini [farkoff@Nightstar-3e109cd7.adsl.tpnet.pl] has quit [[NS] Quit: (...) By this point, the astute reader has picked up that Nethack isn't a "game" as much as an extremely prolonged and extremely elaborate form of masochism. Ask any serious player.]
23:46 Derakon[work] [Derakon@Nightstar-d44d635e.ucsf.edu] has joined #code
23:46
< Derakon[work]>
Okay, design question for y'all.
23:48
< Derakon[work]>
The way experiments work mechanically, there's a lot of "tell the microscope to move the slide to this position, and let me know when it's done". Since tying up the UI during this period is undesirable, there's a lot of "call me when you're done"-type of stuff going on.
23:48
< Derakon[work]>
Right now, all of the control logic is being done using generators.
23:48
< Derakon[work]>
They return None when they want to wait, and the caller invokes next() on them when it wants to return control to them.
23:48
< Derakon[work]>
This does have the handy property of letting the functions maintain a whole bunch of state automatically, but I can't help but feel it's kinda hackish.
23:48
< Derakon[work]>
If only because Sebastian wrote it~
23:49
< Derakon[work]>
Any better suggestions?
23:58
<@Vornicus>
I'd set it up so that your microscope commands thing has a callback, and the callback drops something into the event queue (which yourGUI system should have)
23:59
< Derakon[work]>
The question is mostly "how do I pickup where I left off without having to manually cache a bunch of state?"
--- Log closed Fri Nov 13 00:00:06 2009
code logs -> 2009 -> Thu, 12 Nov 2009< code.20091111.log - code.20091113.log >