code logs -> 2006 -> Fri, 03 Nov 2006< code.20061102.log - code.20061104.log >
--- Log opened Fri Nov 03 00:00:53 2006
00:00 ReivSLEP is now known as Reiver
00:03 Jan[phone] [~Cerulean@Nightstar-10302.columbus.res.rr.com] has quit [Quit: I shouldn't pour this on another's lap...]
00:18 * ToxicFrog flails
00:18
<@ToxicFrog>
nslookup works.
00:19
<@ToxicFrog>
gethostbyname() doesn't.
00:21
< Vornotron>
:/
00:25
<@ToxicFrog>
(this is, unsurprisingly, in windows)
00:44 Stephenie [Safyra@Nightstar-4370.ok.ok.cox.net] has joined #code
00:44 Janus [~Cerulean@Nightstar-10302.columbus.res.rr.com] has joined #Code
00:52
< Vornotron>
...well, I guess this is what I get for using a random password generator.
00:52
<@ToxicFrog>
?
00:53
< Vornotron>
Here's a password I won't be using: {@`c%7.1?L
00:55
< Vornotron>
(1..10).inject('') {|base, k| base + (rand(94) + 32).chr}
00:56
< Vornotron>
I get a password that I can't even write down without screwing up.
00:56
<@Reiver>
To be fair, that's a pretty good password, though!
00:56
< Vornotron>
Yeah, it's damn good.
00:57
<@Reiver>
Although perhaps a tad too short.
00:57
<@ToxicFrog>
Dude, it's {@`c%7.1?L.
00:57 * Janus is reminded of child-proof asperin.
00:57
<@Reiver>
So make it {@`c%7.1?L*&q !
00:57 * Reiver >.>
00:58
<@Reiver>
Our passwords at work were required to be 12 characters+.
00:58
< Vornotron>
There's only 53 861 511 409 489 970 176 distinct 10 character passwords that can be generated by this algorithm.
00:58
<@McMartin>
I though the idea of passwords was that you didn't write them down~
00:59
< Vornotron>
McM: exactly my point.
01:04
<@Reiver>
McM: Could you explain this to my workplace, please?
01:05
<@Reiver>
We used to have a system where to get local admin rights to a computer required one, long and fairly secure password. Logging in as such notified the network manager, but otherwise you had no access to the network as a whole.
01:06
<@Reiver>
(By 'fairly secure' I mean 'It wasn't /quite/ a random string, but something actually able to be memorised'.)
01:06
<@Reiver>
It got changed every couple weeks, but allowed us to quickly and easily install/troubleshoot software in the feild.
01:07
<@Reiver>
However, it was then decided that having a global password for every machine was insecure!
01:07
<@McMartin>
Which it is!
01:07
<@McMartin>
But people hate security!
01:07
<@Reiver>
So they changed the system to a sixteen character random text string, different on every machin and changing every 2-3 days.
01:08
<@Reiver>
Now, this practically ensures that no hacker is going to guess our passwords!
01:08
<@Reiver>
...It also entirely gurantees no IT person is ever going to be able to log into a machine in the feild without having written down the password before heading out...
01:09
<@Reiver>
>.<
01:09
<@Reiver>
This always struck me as inherently moronic, but.
01:09
<@McMartin>
I approve of the "different on every machine" part, but they should still be memorizable.
01:10
<@McMartin>
i.e., brief the IT guys when they go out, thwart hostile clients with keyloggers
01:11
<@Reiver>
Example password: e75qIst!xVm`Plz
01:11
<@Reiver>
(I made that up, but it looks pretty much like the ones we had to deal with.)
01:12
<@Reiver>
(Might I note one has to be very careful to distinguish between a lowercase and uppercase V when scribbling down a password in a hurry?)
01:13
<@Reiver>
Which is entirely ruining the point anyway, but if you expect me to remember twelve of those strings before walking out to manually update software on machines halfway accross campus, you've got another thing coming, and it's probably my boot~
01:15
<@Reiver>
I'll freely admit a single 'global' password was not a good idea.
01:15
<@Reiver>
But replacing the passwords with ^ that, um...
01:17
<@Reiver>
The IT support staff just looked at the new system rules when they were announced by the network staff and went "...Right. Writing them down it is, then. Fuckwits."
01:18 * Reiver shrugs. And then they made users have 12+ character passwords with at least three of the [a-z] [A-Z] [0-9] [!~`etc] groups present.
01:19
<@Reiver>
Oh, and they changed monthly.
01:20
<@Reiver>
I didn't have a problem with this personally. And I guess it gave the helpdesk folks something extra to do - lots of password resets. :p
01:35 Thaqui [~Thaqui@Nightstar-26630.broadband-telecom.global-gateway.net.nz] has quit [Ping Timeout]
01:35 ToxicFrog|Lab [~ToxicFrog@Nightstar-2174.cpe.net.cable.rogers.com] has quit [Operation timed out]
01:35 ToxicFrog [~ToxicFrog@Admin.Nightstar.Net] has quit [Operation timed out]
01:41 ToxicFrog [~ToxicFrog@Admin.Nightstar.Net] has joined #code
01:41 mode/#code [+o ToxicFrog] by ChanServ
01:54 Vornotron [~vorn@Nightstar-18307.slkc.qwest.net] has quit [Quit: ]
02:29 Stephenie [Safyra@Nightstar-4370.ok.ok.cox.net] has quit [Quit: ]
02:29 Stephenie [Safyra@Nightstar-4370.ok.ok.cox.net] has joined #code
02:39
<@Raif>
Our school has a single global password... you'll never guess what it is.
02:39
<@Raif>
Well, the one they had for the first two years I was going there was "st3llarst4rs4u"...\
02:39
<@Raif>
Now, it's 1q
02:40
<@Raif>
(I shit you not)
02:42
< Vornicus>
heh
02:44 Vornicus [~vorn@67.50.40.ns-3674] has quit [Quit: Leaving]
02:44 Vornicus [~vorn@67.50.40.ns-3674] has joined #code
02:50 Syloq [Syloq@Admin.Nightstar.Net] has joined #code
02:51 Syloq is now known as Syloqs-AFH
02:59 Thaqui [~Thaqui@Nightstar-24792.broadband-telecom.global-gateway.net.nz] has joined #code
03:07 Janus [~Cerulean@Nightstar-10302.columbus.res.rr.com] has quit [Quit: bathipoo'n'bedibye]
04:01
<@Reiver>
O.o
04:02
< Vornicus>
?
04:06 You're now known as TheWatcher
04:16
<@Reiver>
1q for a password.
04:16
<@McMartin>
Awesome.
04:16 * McMartin reimplements Lex in Python in, like, 25 lines of code.
04:16
<@Reiver>
...
04:17
<@Reiver>
Lex?
04:17
<@McMartin>
Pre-included regexp packages + lambdas ftw~
04:17
<@McMartin>
Lex = lexical analyzer generator.
04:17
<@McMartin>
In this case it's not so much a "generator" since Python code is fairly clean to begin with. So you just define a list of patterns and actions, and let it go to town
04:18
< Vornicus>
it's a parser-machine
04:18
<@McMartin>
Well, lexer
04:18
< Vornicus>
well, okay
04:18
< Vornicus>
it's a tokenizer-machine
04:32
<@McMartin>
The other nice bit is that since token names are all strings (woo dynamically-typed languages), I can just hand it lists of meaningful punctuation and reserved words.
04:58 Reiver is now known as ReivOut
06:14 You're now known as TheWatcher[afk]
06:25 Raif [~corvusign@Nightstar-7918.hsd1.mn.comcast.net] has quit [Killed (NickServ (GHOST command used by Raif_))]
06:30 ReivOut is now known as Reiver
06:38 ChalcyGettingBetter is now known as Chalcedon
06:50 Syloqs-AFH [Syloq@Admin.Nightstar.Net] has quit [Connection reset by peer]
08:25 Mahal [~Mahal@Nightstar-11770.worldnet.co.nz] has quit [Quit: It's hard to be mad at someone who misses you while you're asleep. ]
08:53 Vornicus is now known as Vornicus-Latens
08:58 Chalcedon is now known as ChalcyZzz
09:17 You're now known as TheWatcher
09:52 Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code
09:52 mode/#code [+o Chalcy] by ChanServ
09:53 ChalcyZzz [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout]
11:46 Ev3 [~Shemhazai@Nightstar-8502.ds1-ba.adsl.cybercity.dk] has quit [Ping Timeout]
12:40 Thaqui is now known as ThaquiSleep
13:47 ChalcyGone [~Chalceon@60.234.221.ns-21239] has joined #code
13:49 Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout]
14:40 You're now known as TheWatcher[afk]
14:51 You're now known as TheWatcher
15:52 You're now known as TheWatcher[afk]
16:04 Raif [~corvusign@Nightstar-7918.hsd1.mn.comcast.net] has joined #code
16:04 mode/#code [+o Raif] by ChanServ
16:20 You're now known as TheWatcher
16:47 Reiver is now known as ReivZzz
17:24 Vornicus [~vorn@Nightstar-18307.slkc.qwest.net] has joined #code
17:24 mode/#code [+o Vornicus] by ChanServ
17:29 You're now known as TheWatcher[afk]
17:32 * Chalain reads the backscroll.
17:33
<@Chalain>
People keep forgetting that locks have TWO purposes.
17:33
<@Chalain>
The first, obviously, is to make unauthorized entry difficult.
17:33
<@Chalain>
The second, however, is to make authorized entry easy.
17:34
<@Chalain>
McMartin: Would you be amenable to sharing your 25-line tokenizer? I'd be most interested in seeing how (a good) one works.
17:35
<@Chalain>
Also: 5600RPM laptop drive + 190MB Postgres database import == pain
17:37
<@Vornicus>
Chalain: what db are you pulling that's 190mb?
17:37
<@Chalain>
Ennesby's production db. It's filled with synch statements.
17:41
<@ToxicFrog>
Chalain: presumably, it's "walk down the list of regexes, return stuff for the first one that matches, advance over input"
17:41 * ToxicFrog idly ponders implementing this using coroutines
17:43
<@Vornicus>
I have a bzip of ennesby production that's only 8mb
17:43
<@Chalain>
ToxicFrog: Nod. I've never written or seen written a lexer, however. I need to break one apart before a summary of them becomes meaningful. :-)
17:44
<@Chalain>
Vornicus: So do I. But, please, how do you make the zip go into the psql?
17:44
<@Chalain>
Hint: you unzip it, yielding a 182mb sql file. :-(
17:45
<@Chalain>
It's imported now, though.
17:45
<@Vornicus>
..95% compression?
17:45
<@Chalain>
Also, how old is your zip file--this morning's dump was 10Mb
17:45
<@Chalain>
Yup
17:45
<@Chalain>
the change_lock_hack table compresses HARD
17:45
<@Vornicus>
midnight
17:46
<@Chalain>
Huh. Weird.
17:46
<@Chalain>
Oh, wait--does your dump have the schema?
17:46
<@Vornicus>
yes
17:46
<@Vornicus>
it doesn't have drops tho
17:46
<@Chalain>
Hmm. Weird.
17:46
<@Vornicus>
and it's not verbose
17:46
<@Chalain>
drops? I don't think mine does; I just did--AHHH.
17:47
<@Chalain>
I did column-inserts to ensure that the dump was restorable on a different server.
17:47
<@Vornicus>
OH
17:47
<@Vornicus>
that'd do it
17:49
<@ToxicFrog>
Chalain: the canonical way to build a lexer is with a DFA.
17:49
<@ToxicFrog>
And the lexer generators lex(1) and flex(1) work by taking a set of regular expressions and generating a DFA from them.
17:49
<@ToxicFrog>
In the case of Python, you have regex comparison functions right there, so you can just use them directly.
17:49
<@Chalain>
defineTLA(DFA)
17:50
<@ToxicFrog>
Deterministic Finite Automaton.
17:50
<@Chalain>
Ah.
17:50
<@ToxicFrog>
A type of finite state machine.
17:52
<@Chalain>
I need to build some parser/lexers at some point, just for fun.
17:53
<@ToxicFrog>
I highly recommend it.
17:53
<@Chalain>
I've played with flex/bison in the past but they both fairly scream at you, "This will generate an inefficient parser!"
17:53
<@ToxicFrog>
Building a lexer-parser for some relatively simple language (Lisp, for example) from scratch is loads of fun.
17:54
<@Chalain>
I've never seen such popular software that so proudly proclaimed its uselessness. :-)
17:54
<@ToxicFrog>
For larger stuff you kind of need flex/bison to minimise the amount of hideous screaming horror.
17:54
<@Chalain>
Actually, I tentatively have a goal of building a scheme interpreter over the next year or so.
17:55
<@ToxicFrog>
A worthy goal.
17:55
<@ToxicFrog>
I never got around to code generation, myself.
17:55
<@Chalain>
Oh, that reminds me.
17:55
<@Chalain>
I need to see if emacslisp does tail-call optimization.
17:55 * Vornicus wrote a lexer in about... oh... 4 hours, using an 8-line function and a 200-char regex.
17:56 * ToxicFrog highly recommends the Dragon Book for this, and Sisper's "Introduction to the Theory of Computation"
17:56
<@ToxicFrog>
Vornicus: that is all kinds of obscene.
17:56
<@Vornicus>
It's still live too.
17:56
<@ToxicFrog>
Schlock?
17:56
<@Vornicus>
Yep
17:57
<@ToxicFrog>
(perhaps I shouldn't be calling it obscene considering some of the things I've done with regexes. But it is)
18:04
<@Chalain>
Nope. Looks like tail recursion in emacslisp craps out at about depth 135.
18:05
<@ToxicFrog>
...emacslisp isn't tail-recursive?
18:06
<@Chalain>
doesn't appear to optimize for it, no.
18:06
<@ToxicFrog>
Don't lisp implementations have to be tail-recursive?
18:06
<@Chalain>
No. Scheme requires it.
18:06
<@ToxicFrog>
Aah.
18:15 ToxicFrog is now known as ToxicFrog|AFN
18:23
<@McMartin>
Chalain: It's not a good tokenizer, actually, at least we define "good" as "acts exactly like the standard ones do since the 60s" or "produces really fast code".
18:23
<@McMartin>
s/we/if we/
18:23
<@McMartin>
In particular, I had to do some noticably ugly hacks to get reserved words to work, because I'm not saying "match all possible tokens simultaneously and return the largest one"
18:25
<@McMartin>
But as long as all your reserved words could double as identifiers if they weren't reserved words, it works.
18:26
<@McMartin>
That said, http://www.stanford.edu/~mcmartin/simple-lex.py
18:26
<@McMartin>
It's longer now because I added in an actual lexer for my query language.
18:37
<@Chalain>
Eeenteresting.
18:37
<@Chalain>
Cool, thank you.
18:37
<@Chalain>
Do you have a sample program for your query language? :-) I guess you're just tokenizing here so there's no grammar spec.
18:37
<@McMartin>
Yeah, just tokenizing, there. The actual lexer/parser is in java.
18:37
<@McMartin>
One moment.
18:38
<@McMartin>
If SF stops being a bitch
18:38
<@Chalain>
Oh man, yeah. I hate it when Science Fiction is mad at me.
18:38 * Chalain ducks.
18:39
<@McMartin>
http://pql.cvs.sourceforge.net/pql/pql/queries/sql_inject.query?revision=1.5&vie w=markup
18:39
<@McMartin>
SQL injection
18:40
<@McMartin>
Kind of overkill, really, since these kind of injection attacks only use two or three of the clauses in StringProp(), but.
18:42
<@Chalain>
Wow. Very cool.
18:43
<@McMartin>
Yeah, most of my thesis is on this language I developed and Things To Do With It.
18:43
<@McMartin>
Hopefully by the time I get around to doing the thesis I'll have more than one actually published paper on it~
18:47 * Chalain laughs.
18:47
<@Chalain>
You mean you are getting a degree in a Problems In Search Of A Solution?
18:47
<@Chalain>
s/Problems/Problem/
18:47
<@Chalain>
Dammit.
18:48
<@Chalain>
I cannot think clearly today.
18:48
<@Chalain>
Solution In Search of a Problem.
18:48
<@Chalain>
I'm wittier when I'm not Chalain = Chalain.filter(rand)
18:49
<@McMartin>
Oh, the academic interest point is "Provided a problem to a pre-existing solution in search of a problem"
18:50
<@McMartin>
But the papers are all on bigfinding and self-defending programs
18:50
<@McMartin>
Pwnz0rsh1p makes a handy problem that everything can solve.
18:50
<@Chalain>
hee
18:50
<@McMartin>
Speaking of pwnz0rsh1p.
18:51
<@McMartin>
As #code wasn't around when I first made the observation.
18:51 You're now known as TheWatcher
18:51
<@McMartin>
I find it highly amusing that in software engineering terminology, Object A "owns" Object B if A destroys B in every possible run of the program.
18:51
<@McMartin>
PwN3d!!!!!!!1!!
18:51
<@Chalain>
lol
18:52
<@McMartin>
(Typically actually because B is in some sense "part of A" and so is cleaned up in A's destructor, but still)
18:52
<@Chalain>
"In this orthography, symbol B is a mnemonic for b1tch."
18:52
<@Vornicus>
...hee
18:56
<@Chalain>
OBJECT A HAS TAKEN THE LEAD.
18:56
<@Vornicus>
okay, that's jsut kinda sad
18:57 * Chalain frags Vornicus.
18:59 ToxicFrog|AFN is now known as ToxicFrog
19:00 * Vornicus leaves bits all over the office.
19:00 * Vornicus likes the word "bigfinding" by the way
19:01
<@McMartin>
bigfinding?
19:01
<@McMartin>
Ah.
19:01
<@McMartin>
bugfinding.
19:01
<@Vornicus>
But the papers are all on bigfinding and self-defending programs
19:02
<@Vornicus>
I know, it's a typo - but it sounds like it /should/ mean something
19:03
<@Chalain>
Heh, true
19:05
<@McMartin>
Chalain: As it happens, my immediate takeaway from the project is that the Hard Part isn't actually finding things that are wrong, it's getting the application into a state where you can have machine tools look at it.
19:06 * Chalain believes it.
19:08 * ToxicFrog finally follows the above link.
19:08
<@ToxicFrog>
It looks like a Java/SML hybrid. o.O
19:10
<@McMartin>
Individual subqueries are, in fact, regular expressions of Java statements.
19:11
<@McMartin>
Or subquery invocations or equality assertions.
19:21 Syloq [Syloq@Admin.Nightstar.Net] has joined #code
19:22 Syloq is now known as Syloqs-AFH
19:25
<@Vornicus>
...arg. It's so nice having a Linux box on my desk. It's too bad it's the server, I want to play with iiiiit.
19:34
<@ToxicFrog>
Hee.
19:34 * ToxicFrog found this out ages ago
19:36 * McMartin kicks pdflatex in the bitch, replaces it with a bash script.
20:10 Mahal [~Mahal@Nightstar-11770.worldnet.co.nz] has joined #Code
20:10 mode/#code [+o Mahal] by ChanServ
20:28 ChalcyGone is now known as Chalcedon
20:49 Ev3 [~Shemhazai@Nightstar-8502.ds1-ba.adsl.cybercity.dk] has joined #Code
20:54 Chalcedon [~Chalceon@60.234.221.ns-21239] has quit [Quit: rebooting]
20:55 aoanla [~sam@Nightstar-24475.range81-156.btcentralplus.com] has joined #code
21:00
<@Vornicus>
So several of my coworkers are standing behind me discussing point of sale systems. Every time they use the acronym, I have to stifle giggles.
21:02
< aoanla>
"PoS"?
21:02
< aoanla>
I see.
21:03 Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code
21:03 mode/#code [+o Chalcedon] by ChanServ
21:05 Mahal is now known as MahalOUT
21:12 Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout]
21:19 EvilSLEPLord is now known as EvilInTransitLord
21:45 ToxicFrog is now known as ToxicFrog|AFN
22:19 donhuan [~dino@Nightstar-14342.dlp409.bih.net.ba] has joined #Code
22:19 donhuan [~dino@Nightstar-14342.dlp409.bih.net.ba] has left #Code []
22:30 EvilInTransitLord is now known as Jo}{n
22:33 ThaquiSleep is now known as Thaqui
22:33 ReivZzz is now known as Reiver
23:11 Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code
23:11 mode/#code [+o Chalcedon] by ChanServ
23:31 aoanla is now known as caps[t-2]
23:36 caps[t-2] [~sam@Nightstar-24475.range81-156.btcentralplus.com] has quit [Quit: Leaving]
--- Log closed Sat Nov 04 00:00:53 2006
code logs -> 2006 -> Fri, 03 Nov 2006< code.20061102.log - code.20061104.log >