code logs -> 2008 -> Sat, 13 Sep 2008< code.20080912.log - code.20080914.log >
--- Log opened Sat Sep 13 00:00:01 2008
--- Day changed Sat Sep 13 2008
00:00
<@Serah>
<Consul> But she's pretty smart, talented at math, and hates drinking and partying. <- Could you please stuff her in a box and mail her here. I need someone sane to hang with.
00:00
<@ToxicFrog>
I don't know how well it pays here, I've never discussed pay grades with Mike, but it's a hell of a lot more involved than button-pushing.
00:00
<+Consul>
I loved being a blue-collar IT guy, back when it meant something. Being the guy behind the scenes keeping systems runnign smoothly for the engineers was a nice position, and at the time, paid well.
00:01
<+Consul>
MyCatVerbs: I watch a metric ton of British comedy, especially panel shows, so I've picked up a quirky sense of humor.
00:02
<@ToxicFrog>
(I hope it pays well, because if it weren't for him this place would fall to bits. He gets a fair amount of down time, but when he is working, he's working his ass of.)
00:02
<+Consul>
David Mitchell is one of my heroes now. :-)
00:02
<@Serah>
Fun, my work is like that.
00:02
<@Serah>
Although I don't watch sitcoms.
00:03
<@Serah>
I tend to play computer, or chat.
00:03
<@Serah>
Like now.
00:03
<@ToxicFrog>
I tend to play nethack or visit IRC.
00:03
<@ToxicFrog>
But my downtime tends to be stuf like "waiting for SGOS to rebuild"
00:04
<@ToxicFrog>
Whereas his is "everything is working perfectly, there's no maintenance pending, I can play Quake until something goes wrong"
00:05
<@ToxicFrog>
I kind of envy him that, but on the other hand, he's also the guy who has to deal with it when the legacy NT4 machine we keep around for the guys in Sunnyvale starts eating its own intestines.
00:05
<@ToxicFrog>
So, on the whole, I figure he deserves the relaxation~
00:05
<+Consul>
My favorite part of the job was getting to build new tools for the other IT people. I introduced the entire Windows admin department to wikis, and suddenly, the lead guy goes "hey! We could track all of our IPs in that instead of that stupid spreadsheet we use now!"
00:06
<@ToxicFrog>
We wikified a few years ago. So damn useful!
00:06
<+Consul>
I had to modify some code to restrict editing to logins. This was before lots of wiki projects for different purposes were around.
00:07
<+Consul>
Unfortunately, it didn't get deployed when I was still there.
00:07
<+Consul>
I had basically found a script that was a basic wiki engine, then wrapped some auth code around it. Crude, but it worked.
00:08
<+Consul>
The server I had it on couldn't be accessed from the outside.
00:09
<@ToxicFrog>
We're using some sort of off-the-shelf wiki, I forget which
00:09
<@ToxicFrog>
Also restricted to the company intranet.
00:21
<+Consul>
Anyway, I was going to invite her over for my homemade pizza sometimes, because quite frankly, she needs it! :-)
00:21
<@Serah>
I like how conversation can go from babies to hot intelligent fashion chicks, to ITgeeks and how they pass time.
00:21
<@Serah>
And back to fashionchick.
00:21
< AbuDhabi>
Hey, guys, want to hear about my new DnD character? ;)
00:22
<+Consul>
Is she a hot fashionchick?
00:22
<@Serah>
AD; Sure. in a more related channel. I personally prefer to hear about hot skinny fashionchicks.
00:22
<+Consul>
With a +4 Rod of Fabulousness?
00:22
<@Serah>
I don't know, you said so.
00:22
<@Serah>
You're the one that is going to invite her over for pizza.
00:23
< AbuDhabi>
Consul: Rod of Lordly Might. :P
00:23
<+Consul>
Serah: I was responding to AbuDhabi's mention of a DnD character.
00:23
<@Serah>
I wasn't.
00:23
<+Consul>
Yes, she's hot, and tanned, but veru skinny.
00:23
<+Consul>
very*
00:24
<+Consul>
She's also 18, and therefore, legal.
00:24
< AbuDhabi>
18 Charisma, you mean. :P
00:24
<+Consul>
(That's for whoever may be eavesdropping.) :-)
00:25 * ToxicFrog waves to the NSA interception systems
00:25
<@Serah>
Bush Jihad Echelon Bin Laden echelon echelon!
00:25
<@Serah>
Echelon echelon you're so much fun!
00:36
<@MyCatVerbs>
AbuDhabi: bah, humbug. If you have a CHA-based character and you haven't blasted it all the way up to 22 or more, you're slacking. :)
00:38
< AbuDhabi>
1st level core? :P
00:40
< AbuDhabi>
Anyway. I need my sleep.
00:40 AbuDhabi [AnnoDomini@Nightstar-29066.neoplus.adsl.tpnet.pl] has quit [Quit: If nothing we do matters, all that matters is that we do.]
00:41
<@Serah>
I do too! When does anyone consider my needs.
00:41
<@Serah>
Well, Consul you're going to have to go on about the skinny hot fashionchick you're got the hots for.
00:41
<+Consul>
I don't think I have the hots for her. She's nice enough. But I'm 32, and she's 18, and that feels wrong.
00:42
<+Consul>
Plus I'm fat and I hate myself for it.
00:44
<+Consul>
Wow, that killed the conversation. :-)
00:48 * Serah PatPats Consul.
00:48
<@Serah>
Batman killed the conversation.
00:48
<@Serah>
And I'm mediating as my IRCoppish duty has me do at times.
00:48
<+Consul>
Ah, 'k
00:49
<@Serah>
So please do continue with your telling.
00:49
<@Serah>
Also, I know the best cure for obecity.
00:49
<@Serah>
It's called excersize.
00:49
<+Consul>
Don't make pizzas?
00:50
<@Serah>
I have a tendency not to either.
00:50
<@Serah>
Pizzas are yummy, don't live without them.
00:50
<+Consul>
I have plans for a cross-country bike ride to take place over next summer.
00:50
<+Consul>
You see, I'm fat, but not out of shape. I can walk 2 miles to the library and 2 more back without thinking about it.
00:50
<+Consul>
I do it all the time, actually.
00:51
<+Consul>
And I keep a fairly quick pace (I pass most other people on the sidewalks.)
00:51
<+Consul>
I outrun the other kids at school on the stairwells, going up four floors.
00:52
<+Consul>
And while they're wheezing at the top, I'm already at my classroom.
00:53
<+Consul>
I walk to school (about twenty minutes each way) four days a week.
00:53
<@Serah>
So all in all you're doing a good job, just not enough of it.
00:53
<@Serah>
Muscles in shape, especially lungs.
00:54
<@Serah>
Losing weight shouldn't be a problem.
00:54
<+Consul>
Except it is.
00:54
<+Consul>
I do really like food.
00:54
<+Consul>
I don't eat as much as I used to.
00:54
<+Consul>
But if I don't do something soon, I'll end up dying at 40.
00:54
<+Consul>
So, I'm planning on a cross-country bikeride next summer.
00:55
<@Serah>
I'm buying rollerskates.
00:57
<@ToxicFrog>
I need to try rollerskating sometime.
00:57
<@ToxicFrog>
At the moment I bike everywhere, though.
01:00
<@Serah>
I like rollerskating, it's fun.
01:00
<+Consul>
I still haven't decided where to go.
01:00
<+Consul>
I have a few contacts in New York City.
01:01
<+Consul>
I've never been there.,
01:01
<+Consul>
I live in Michigan.
01:01
<@Serah>
I hear britain is nice. ^_^
01:02
<+Consul>
No, a bicycle, not a pedalo. :-P
01:02
<+Consul>
(Paddle boat to Americans. :-)
01:03
<@Serah>
You should invite the skinny hot fashion chick.
01:03
<@Serah>
From hereon abbreviated SHFC.
01:07
<+Consul>
Nah, I'm sure she has her own plans. She's a beach bum, on top of it all.
01:08
<@Serah>
Get a motionbike, bring it with you to the beach, hang with SHFC.
01:10
<+Consul>
But then I wouldn't get to see the country from my bike.
01:12
<@Serah>
You aren't going to anyway, you're going to see roads.
01:12
<+Consul>
And people along the way.
01:15
<@Serah>
Your plan seems flawed.
01:15
<+Consul>
The point is to lose weight in a fast, probably unhealthy, and rather dramatic way.
01:16
<+Consul>
And finally have an interesting story to tell in my otherwise extremely dull life.
01:19
<@Serah>
Yeah, exactly.
01:19
<@Serah>
The story part will be missing if you're just biking along the road to distant people whom you will only spend one or two days with.
01:20
<+Consul>
Okay, what would you suggest? Sit around with SHFC and not lose weight, and continue to hate myself for being fat?
01:20
<@Serah>
Oh no, but if you're going for stories you have to bring a friend, otherwise you can't validate them and they will just be tall tales.
01:21
<@Serah>
And I suggest bringing a tent and camping out in swamps.
01:21
<@Serah>
People generally tend to want to listen to other people's hardship more than having to go through it themselves.
01:21
<+Consul>
The tent is no problem. Being alone is most of the point, actually.
01:22
<@Serah>
But that'd be counterproductive to stories.
01:22
<@Serah>
Why do you want to be alone?
01:23
<+Consul>
Because that's the person I am. I lived alone for a long time, and was happy. Now I'm stuck with other people while going back to school, and am unhappy.
01:25
<@Serah>
I don't think I'll ever be able to understand that, I'm trying though.
01:31 * Serah dances with Consul.
01:32
<+Consul>
I don't like to dance.
01:32
<+Consul>
I have quirks like that.
01:32
<+Consul>
I also hate wearing hats.
01:34
<@Serah>
Not many weighty people like to dance.
01:34
<@Serah>
I love hats, I dislike jewelry.
01:34
<@Serah>
Hats are so nice, except I tend not to wear any.
01:34
<@Serah>
I just like the concept that is hat.
02:16
<@gnolam>
Funny hats - one of the few universal humor concepts.
02:17
<@gnolam>
(The other two are "Men in women's clothing" and "People hurting themselves")
02:17
<@ToxicFrog>
Men in women's clothing is only universal to cultures which distinguish clothing types between the two
02:17
<@ToxicFrog>
. :P
02:19
<@gnolam>
Which cultures don't?
02:20
<@ToxicFrog>
Don't know offhand, but I'm quite sure they do, have or will exist.
02:22
<@McMartin>
Hee
02:22
<@McMartin>
So, I was complaining that some of my code here at work seemed to be failing about a quarter of the time.
02:22
<@McMartin>
My more knowledgable co-workers in reply ask me how what I'm doing 75% of the time is even theoretically possible.
02:24
<@gnolam>
Hah.
02:24
<@ToxicFrog>
If it works the rest of the time, though, it's clearly possible
02:25
<@ToxicFrog>
Or is the punchline "turns out it was failing 100% of the time but not always in the same way"?
02:25
<@McMartin>
Yes, though in fairness, you aren't *supposed* to be hacking around with physical addresses while living entirely in userland.
02:25
<@McMartin>
It was working depending on process scheduling.
02:25
<@ToxicFrog>
Aah
02:25
<@ToxicFrog>
waitwaitwait, physical addresses?
02:25
<@ToxicFrog>
o.O
02:25
<@McMartin>
SCIENCE
02:26
<@ToxicFrog>
Yes, but in userspace?
02:26
<@McMartin>
Yes
02:26
<@McMartin>
It works as long as the process hasn't changed, thus shifting the virtual address lookup table!
02:26
<@McMartin>
I can't go into any further detail without violating NDAs.
02:26
<@McMartin>
So, well
02:26
<@McMartin>
:science:
02:27
<@gnolam>
... no, that's not science. That's /voodoo/.
02:27
<@ToxicFrog>
Fair enough.
02:27
<@ToxicFrog>
All the work I've done wiht phyaddrs is in kernel device drivers, setting up buffers for hardware accelerated crypto and the like
02:28
<@McMartin>
Yeah, that's why I was doing this. Kernel device drivers are Work.
02:28
<@McMartin>
And I wasn't sure if the technique would work at all, so I tried it in userspace unwisely first.
02:31
<@McMartin>
The other fun side point here is that since I don't feel like pwning the shit out of my actual machine here, I'm running it inside VirtualBox, which has *very consistent* process scheduling inside its environment, it seems, because the failures ended up repeatable within it.
02:35 gnolam [lenin@Nightstar-1382.A163.priv.bahnhof.se] has quit [Quit: Z?]
03:17 Bobsentme [Bobsentme@Nightstar-25867.dsl.sfldmi.sbcglobal.net] has quit [Connection reset by peer]
04:18 Serah [~Z@Nightstar-5401.atm2-0-1041217.0xc329e232.boanxx12.customer.tele.dk] has quit [Connection reset by peer]
04:25 Serah [~Z@Nightstar-5401.atm2-0-1041217.0xc329e232.boanxx12.customer.tele.dk] has joined #Code
04:25 mode/#code [+o Serah] by ChanServ
04:36 Vornotron is now known as Vornicus
04:37 Vornicus is now known as NSGuest-1032
04:38 NSGuest-1032 is now known as Vornicus
06:10
<@jerith>
MyCatVerbs: I prefer emacs, but it requires a lot more setup. I usually use g?vim on machines where my time or use is limited.
06:27 Serah [~Z@Nightstar-5401.atm2-0-1041217.0xc329e232.boanxx12.customer.tele.dk] has quit [Ping Timeout]
08:06 Vornicus is now known as Vornicus-Latens
08:12 AnnoDomini [AnnoDomini@Nightstar-29066.neoplus.adsl.tpnet.pl] has joined #Code
08:12 mode/#code [+o AnnoDomini] by ChanServ
08:33 gnolam [lenin@Nightstar-1382.A163.priv.bahnhof.se] has joined #Code
08:33 mode/#code [+o gnolam] by ChanServ
08:48 Netsplit DeepThought.NY.US.Nightstar.Net <-> Troika.TX.US.Nightstar.Net quits: crem, +DiceBot, @gnolam, +Consul, @Attilla, Vornicus-Latens, Shoukanjuu, @Thaqui, @AnnoDomini, @Chalcedon, (+2 more, use /NETSPLIT to show all of them)
08:53 Doctor_Nick [~.@Nightstar-12626.tampfl.fios.verizon.net] has quit [Client exited]
11:06 You're now known as TheWatcher
13:27
<@MyCatVerbs>
Awww, lost lotsa peoples. :(
13:27
<@GeekSoldier_>
yeah.
13:27
<@GeekSoldier_>
#code has been rather active lately.
13:27 GeekSoldier_ is now known as GeekSoldier
13:27
<@GeekSoldier>
who
13:27
<@MyCatVerbs>
Netsplit a few hours back. Bisected the channel.
13:28
<@GeekSoldier>
yeah, I see that.
13:28
<@MyCatVerbs>
Deepthought and Troika cut away from one another at 08:53 London time.
14:30 Attilla [~The.Attil@92.23.31.ns-20263] has joined #code
14:30 mode/#code [+o Attilla] by ChanServ
14:58 * TheWatcher eyes seamonkey
14:58
<@TheWatcher>
... why are you shoving a mass of white underneath my xml pages?!
15:00
<@TheWatcher>
So, I have valid xhtml 1 strict content, with a .css file that contains body { background-color: black; } but unless the page takes up the whole browser window, it shows this expanse of white after the end, argh
16:12 Reiver [~reaverta@Nightstar-10517.xdsl.xnet.co.nz] has joined #Code
16:12 mode/#code [+o Reiver] by ChanServ
16:19
<@Reiver>
MyCatVerbs: You about?
16:20
<@MyCatVerbs>
Reiver: yes.
16:21
<@Reiver>
MCV: Do you know how to get a serverip of the server you're currently sitting on?
16:21
<@Reiver>
I need Blargh's IP, and cannot connect to it without.
16:22
<@Reiver>
Were you using mIRC, it'd be literally $serverip and then tab, but I know not irssi, I'm afraid...
16:32 Reiver is now known as Reiv[DeepT]
17:14 DiceBot [~Reiver@Nightstar-10517.xdsl.xnet.co.nz] has joined #Code
17:15 Vornicus [~vorn@64.252.27.ns-13126] has joined #code
17:29
<@ToxicFrog>
python people!
17:29
<@ToxicFrog>
Traceback (most recent call last):
17:29
<@ToxicFrog>
File "awesum.py", line 74, in <module>
17:29
<@ToxicFrog>
import gtk.glade
17:29
<@ToxicFrog>
ImportError: No module named glade
17:30
<@ToxicFrog>
I have pygtk, libglade2, and whatnot installed
17:30
<@ToxicFrog>
If I had gtk.glade, where would it be in the filesystem and, more importantly, what would it be called?
17:31
< Vornicus>
$PYTHON_LIB/site_packages
17:31
<@ToxicFrog>
Thankye
17:31
< Vornicus>
I don't know what it would be called exactly, try just "glade"
17:32
<@ToxicFrog>
Hmm. locate glade | grep py only returns stuff in /usr/share/doc.
17:34
<@ToxicFrog>
Aha
17:34
<@ToxicFrog>
It's pygtk2-libglade that I need
17:34
<@ToxicFrog>
yum whatprovides ++
17:35
<@ToxicFrog>
...and it turns out the program I've been trying to get working doesn't do what I want anyways.
17:37
<@TheWatcher>
Woe
17:38
<@ToxicFrog>
All I want is something like <insert any SFV program here>, for linux, using md5sum or sha1sum
17:39
<@ToxicFrog>
Yes, I can fake it with find+sha1sum, but I'd rather have a nice convenient package I can use
18:50 Syloq [Syloq@NetAdmin.Nightstar.Net] has joined #code
18:51 Syloq is now known as Syloqs-AFH
19:00 Shoukanjuu [~Shoukanju@Nightstar-19174.dhcp.embarqhsd.net] has joined #code
19:00
< Shoukanjuu>
Is it just me, or did something go down? >_>
19:04 Reiv[DeepT] [~reaverta@Nightstar-10517.xdsl.xnet.co.nz] has quit [Ping Timeout]
19:04
< Vornicus>
Not just you.
19:05 gnolam [lenin@Nightstar-1382.A163.priv.bahnhof.se] has joined #Code
19:05 mode/#code [+o gnolam] by ChanServ
19:06 RBot [~Reiver@Nightstar-10517.xdsl.xnet.co.nz] has joined #Code
19:06 DiceBot [~Reiver@Nightstar-10517.xdsl.xnet.co.nz] has quit [Ping Timeout]
19:07 RBot is now known as DiceBot
19:14 Reiv[DeepT] [~reaverta@Nightstar-10517.xdsl.xnet.co.nz] has joined #Code
19:27 Doctor_Nick [~.@Nightstar-12626.tampfl.fios.verizon.net] has joined #code
20:03 jerith [~jerith@Nightstar-21563.slipgate.za.net] has joined #code
20:45 Thaqui [~Thaqui@121.98.137.ns-13370] has joined #code
20:45 mode/#code [+o Thaqui] by ChanServ
20:58 Thaqui [~Thaqui@121.98.137.ns-13370] has quit [Quit: Thaqui]
21:32 Chalcedon [~Chalcy@Nightstar-2160.ue.woosh.co.nz] has joined #code
21:35 Reiv[DeepT] [~reaverta@Nightstar-10517.xdsl.xnet.co.nz] has quit [Ping Timeout]
21:36 DiceBot [~Reiver@Nightstar-10517.xdsl.xnet.co.nz] has quit [Ping Timeout]
21:40 DiceBot [~Reiver@Nightstar-10517.xdsl.xnet.co.nz] has joined #Code
21:42 Reiv[DeepT] [~reaverta@Nightstar-10517.xdsl.xnet.co.nz] has joined #Code
21:48
<@McMartin>
So, I've just purchased my first reference book for Win32 system programming.
21:48
<@McMartin>
I'd say I feel dirty, but I don't. It's an opportunity to see what the VMS guys have been up to.
21:50
<@McMartin>
(And because it's low level enough that it's a "this is how you would go about implementing MSYS" kind of thing)
21:51
<@McMartin>
(Which is why I got it. Interprocess and memory mapping silliness is a large part of what I seem to need for my job)
21:52
<@McMartin>
(Except without the actually implementing MSYS part, because (a) it actually exists already and (b) it's more "these applications rely on stuff that's implemented at the man section 2 level and they need Win32 equivalents" so I can be higher level about it)
22:09 Reiv[DeepT] [~reaverta@Nightstar-10517.xdsl.xnet.co.nz] has quit [Ping Timeout]
22:09 Doctor_Nick [~.@Nightstar-12626.tampfl.fios.verizon.net] has quit [Client exited]
22:12 Serah [~Z@Nightstar-5401.atm2-0-1041217.0xc329e232.boanxx12.customer.tele.dk] has joined #Code
22:12 mode/#code [+o Serah] by ChanServ
22:15 Reiv[DeepT] [~reaverta@Nightstar-10517.xdsl.xnet.co.nz] has joined #Code
22:18 Doctor_Nick [~.@Nightstar-12626.tampfl.fios.verizon.net] has joined #code
22:22 DiceBot [~Reiver@Nightstar-10517.xdsl.xnet.co.nz] has quit [Ping Timeout]
22:31 DiceBot [~Reiver@Nightstar-10517.xdsl.xnet.co.nz] has joined #Code
23:06 Reiv[DeepT] [~reaverta@Nightstar-10517.xdsl.xnet.co.nz] has quit [Ping Timeout]
23:07 DiceBot [~Reiver@Nightstar-10517.xdsl.xnet.co.nz] has quit [Ping Timeout]
23:13 Reiv[DeepT] [~reaverta@Nightstar-10517.xdsl.xnet.co.nz] has joined #Code
23:16 DiceBot [~Reiver@Nightstar-10517.xdsl.xnet.co.nz] has joined #Code
23:18
<@McMartin>
Ugh. Flashbacks to wxWidgets.
23:18
<@McMartin>
On the other hand, unlike wxWidgets, Win32 actually enforces its requirements on the source, it looks like.
23:19
<@McMartin>
So despite having to put in conversion macros everywhere, your code will either compile everywhere or nowhere.
23:19
<@McMartin>
As opposed to "on one set of systems and god help you if you want to coexist with applications that disagreed".
23:20 Reiv[DeepT] [~reaverta@Nightstar-10517.xdsl.xnet.co.nz] has quit [Nick collision (older nick overruled)]
23:20 Reivles [~reaverta@Admin.Nightstar.Net] has joined #Code
23:21 RBot [~Reiver@Nightstar-10517.xdsl.xnet.co.nz] has joined #Code
23:21
<@C_tiger>
Hmmm... anyone have a good idea for how to set up a many-dimensional data structure?
23:22 DiceBot [~Reiver@Nightstar-10517.xdsl.xnet.co.nz] has quit [Ping Timeout]
23:22
<@McMartin>
C: Sure, all kinds of ideas. What language?
23:22
<@McMartin>
And how many dimensions, and how ragged is it?
23:22
<@C_tiger>
perl
23:22
<@C_tiger>
ragged?
23:23 Reiv[DeepT] [~reaverta@Admin.Nightstar.Net] has joined #Code
23:23
<@McMartin>
OK, I believe in Perl ragged is the only option.
23:23
<@McMartin>
You have a list of references to lists.
23:23
<@McMartin>
Ragged means those lists you're referring to don't have to all be the same length.
23:23 Reivles [~reaverta@Admin.Nightstar.Net] has quit [Ping Timeout]
23:23
<@C_tiger>
Ok, in theory they're not ragged at all.
23:23 DiceBot [~Reiver@Nightstar-10517.xdsl.xnet.co.nz] has joined #Code
23:24
<@C_tiger>
mostly it's about how to store it.
23:24 * McMartin nods
23:24
<@C_tiger>
persistantly.
23:24 RBot [~Reiver@Nightstar-10517.xdsl.xnet.co.nz] has quit [Ping Timeout]
23:24
<@McMartin>
How many dimensions?
23:24
<@C_tiger>
Ok, so every week, I have 300+ people give responses to 4 questions.
23:24
<@C_tiger>
So not that many dimensions.
23:25 Reiv[DeepT] is now known as Reiver
23:25
<@C_tiger>
just time, person, response.
23:25
<@McMartin>
OK
23:25
<@C_tiger>
erm question.
23:25
<@McMartin>
I'll explain it in terms of two dimensions, because it's easier, but...
23:25
<@C_tiger>
but I need it to be easy to slice.
23:25
<@C_tiger>
I mean I can either make an array of hashes of hashes.
23:25
<@McMartin>
You're going to have to prioritize one, regardless.
23:25
<@C_tiger>
or a hash of arrays of hashes.
23:25
<@McMartin>
Or a single array and a cunning array of indices.
23:25
<@C_tiger>
ah, so I _will_ have to prioritize one.
23:25
<@C_tiger>
drat.
23:26
< Shoukanjuu>
Is there anything special you need to do to get a network drive to be seen on other computers? Oo;
23:26
<@McMartin>
Well, this is always true, since you're collapsing a dimension
23:26
<@McMartin>
Even with 2 you have to pick row- or column-major.
23:26
<@C_tiger>
hmm... true.
23:26
<@C_tiger>
darn.
23:26
<@McMartin>
(I'm assuming here by "slicable" you mean "I can take a linear chunk and have it be that row/column/whatever)
23:26
<@McMartin>
(For all others you need a stride)
23:27
<@McMartin>
HOWEVER, with a single array and well-chosed strides you should be able to have a stride of 1 for one and a stride of N for any other dimension.
23:27
<@McMartin>
After an initial offset.
23:27
<@McMartin>
And then you don't have to dick around with hashes.
23:27
<@McMartin>
Or references.
23:27
<@McMartin>
But you will probably need accessor functions to keep things straight.
23:27
<@C_tiger>
right. So the most important two questions I need to answer is 1) in a given week what is everyone's response to a given question
23:27
<@C_tiger>
2) how has a given person's response to a given question changed over time?
23:28
<@McMartin>
OK, so I'd use one of these formats
23:28
<@McMartin>
[Week 1][Person 1][Q][A][Q][A][Q][A][Person 2][Q][A]...[Week 2][Person 1]...
23:28
<@McMartin>
The number of Persons is constnt?
23:29
<@McMartin>
Er, Constant
23:29
<@McMartin>
With a linear list like that, there's a single stride that will let you hop through weeks - the size of a single Week record.
23:29
<@McMartin>
And for a Week's results, you just grab that full record.
23:29
<@C_tiger>
The number of persons isn't constant.
23:29
<@C_tiger>
as people join in and drop out.
23:29
<@McMartin>
OK
23:30
<@C_tiger>
but questions should be constant.
23:30
<@C_tiger>
(man, I hope so)
23:30
<@McMartin>
That also means neither week nor person is constant, doesn' tit.
23:30
<@McMartin>
But we can *make* week be constant if we allow "No Response", right?
23:30
<@C_tiger>
And backfill?
23:30
<@McMartin>
Yeah.
23:30
<@C_tiger>
yeah.
23:31
<@McMartin>
Then you can go [Person][Q][A-W1][A-W2]...[A-Wn][Q][A-W1]...
23:32
<@C_tiger>
Ok.
23:32
<@McMartin>
This gives you a constant stride to hop people.
23:32
<@McMartin>
And a single chunk to read an entire person.
23:32
<@McMartin>
And another constant stride to hop questions within a person.
23:32
<@McMartin>
And a single chunk for a timespan for a person.
23:33
<@McMartin>
That said, the fact that we're backfilling means this really is ragged
23:33
<@C_tiger>
Hmmm... Ok... so this is a hash of hash of arrays?
23:33
<@McMartin>
I'm imagining it as a single array, actually.
23:33
<@C_tiger>
Ah.
23:33
<@McMartin>
If you're nesting references, you're using a ragged form and the "natural" representation is something like an XML document.
23:33
<@C_tiger>
... I'm not quite sure I can figure out how that works.
23:34
<@McMartin>
x[0]=Person 1
23:34
<@McMartin>
x[1]=Q1,W1 Answer
23:34
<@McMartin>
x[2]=Q1,W2 Answer
23:34
<@C_tiger>
ok.
23:34
<@McMartin>
x[NUM_WEEKS+1]=P1,Q2,W1 Answer
23:34
<@C_tiger>
but I have to shift a whole lot of data every week to fill it in, right?
23:36
<@McMartin>
Right, but you're reading it in and out of a file already
23:36
<@McMartin>
You can interrupt the read to add the new space
23:36
<@McMartin>
NUM_WEEKS keeps changing, though, yes.
23:36
<@McMartin>
And yeah
23:36
<@C_tiger>
Ah.
23:36 jerith [~jerith@IRCop.Nightstar.Net] has quit [Quit: leaving]
23:36
<@McMartin>
This is really better suited to be ragged arrays or, in afact, a relational database
23:36 jerith [~jerith@Nightstar-21563.slipgate.za.net] has joined #code
23:36
<@C_tiger>
Ok.
23:36
<@McMartin>
In which you'd have PERSON WEEK QUESTION ANSWER
23:36
<@McMartin>
And basically a 4xN list of those.
23:36
<@C_tiger>
Ok.
23:36
<@McMartin>
And then you have MySQL or whoever actually do the indexing on it to optimize for your queries.
23:36
<@C_tiger>
Right.
23:36
<@McMartin>
Alternately
23:36
<@C_tiger>
I figured the answer was something like that.
23:36 DiceBot [~Reiver@Nightstar-10517.xdsl.xnet.co.nz] has quit [Ping Timeout]
23:36
<@McMartin>
Store it as a 4xN list and read it in sorted depending on what you're asking
23:36
<@McMartin>
Which is the quick and dirty approach.
23:36 Reiver [~reaverta@Admin.Nightstar.Net] has quit [Ping Timeout]
23:37
<@C_tiger>
sadly, I have no idea how to actually use mysql.
23:37
<@ToxicFrog>
Shoukanjuu: if by "network drive" you mean "windows SMB share", consult the necronomicon.
23:37
<@McMartin>
Well, if you only have two queries, you can read in these lines and use them to build your hash of hashes of arrays or whatnot differently depending on what the question is
23:37
<@McMartin>
Essentially having two programs interpret the same file differently
23:37
<@C_tiger>
Ah, actually that makes sense.
23:37
<@ToxicFrog>
(this is not a cute name for a book with an otherwise boring title; I mean consult the actual book of madness, because no mortal agency can help you now)
23:38
<@McMartin>
I mention MySQL et al because there's been about 30 years of research into doing this for any set of questions as long as your organize the data roughly like this, so if it gets too hairy your best bet will be to avail yourself of their collected experience
23:38
<@C_tiger>
Right.
23:38
<@McMartin>
But in the meantime, it's flexible, it's easy to read, and there's no requirement that the program's internal representation match the file's format.
23:39
<@C_tiger>
Ok, well I figure I'll need to learn mySQL at some point but I agree, quick and dirty is really the best way to go right now.
23:39
<@McMartin>
OK, upon further consideration
23:39
< Shoukanjuu>
By network drive, I mean it's an external connected through the router that worked before I set static IP and neglects to work even after I set that device up for static IP
23:39
<@McMartin>
Have the file look like this:
23:39
<@McMartin>
Bob:1:1:A
23:39
< Shoukanjuu>
Also, be right back.
23:39
<@ToxicFrog>
Shoukanjuu: so it's a NAS?
23:39
<@McMartin>
(Person, week, Q, A)
23:39
<@McMartin>
One per line
23:39
<@ToxicFrog>
What protocol does it use?
23:39
< Shoukanjuu>
And by right back, I mean it'll be a while
23:39
<@C_tiger>
McM, right.
23:40
<@McMartin>
split on : to get four variables
23:40
<@McMartin>
Build your structures as needed from that.
23:40
< Shoukanjuu>
I...damn, I don't know
23:40
<@C_tiger>
and keep only the lines I need.
23:40
<@McMartin>
Right
23:40
<@McMartin>
But if you're asking a bunch of questions of the same form, note, it's much more efficient to build your structures once and then ask all your questions repeatedly
23:40
< Shoukanjuu>
I'll tlak about it in a bit
23:40
<@McMartin>
Otherwise you have to do a complete rescan on every question, which will suck.
23:41
<@C_tiger>
McM, right. But most importantly, the order of the data in the file is irrelevant.
23:41
<@McMartin>
I'd say "One program to read it once, answer Big Question #1 for everyone; another for Question #2 with a totally different internal data structure"
23:41
<@McMartin>
Yes, that's critical here.
23:41
<@McMartin>
Other than the order of the fields on each line having to be the same.
23:42
<@McMartin>
If you can swing it, you'll thank yourself later if you also make it ignore any line that starts with #
23:42
<@C_tiger>
so I can have a totally seperate program parse out my data each week and just tack it on the bottom.
23:42
<@McMartin>
Yup
23:42
<@C_tiger>
McM, genius.
23:42
<@McMartin>
And the # thing is so that it can also put in comments regarding who appended it, when it was there, what the field order is, etc.
23:42 Reiv[DeepT] [~reaverta@Admin.Nightstar.Net] has joined #Code
23:42
<@C_tiger>
Right.
23:42 * McMartin is firmly of the opinion that all data file formats should allow comments.
23:43
<@McMartin>
And # is the traditional one, so.
23:43
<@C_tiger>
Ok, off to work on this. Thanks a ton. I think I would have made a mess of arrays and hashes.
23:43
<@McMartin>
(And I think it's as easy as "next if /^\#/;" in your "for <>" loop)
23:43
<@McMartin>
(But consult people who have used Perl much more recently for that)
23:43
<@McMartin>
At your service
23:44 Shoukanjuu [~Shoukanju@Nightstar-19174.dhcp.embarqhsd.net] has quit [Operation timed out]
23:44
<@McMartin>
I hasten to add that if it is be more convenient to have the actual data processing program have a mess of arrays and hashes to get your answers (so that it can do an x["Bob"][1][2] kind of thing, or whatever) that's totally OK
23:44
<@McMartin>
Just don't reflect it in the data file.
23:45
<@McMartin>
IME, though, Perl is pretty nasty about multidimensional data representation compared to things like, say, Python.
23:46 DiceBot [~Reiver@Nightstar-10517.xdsl.xnet.co.nz] has joined #Code
23:46
<@ToxicFrog>
Perl type warts interact confusingly with composite data structures ;.;
23:47
<@McMartin>
Yes. If you find yourself doing a great deal of multidimensional data processing you may find the investment of learning Python worthwhile
23:47
<@McMartin>
As Python is *much* better at nesting lists and dictionaries (its names for arrays and hashes)
23:50 Reiv[DeepT] [~reaverta@Admin.Nightstar.Net] has quit [Ping Timeout]
23:53 DiceBot [~Reiver@Nightstar-10517.xdsl.xnet.co.nz] has quit [Ping Timeout]
23:58 Reiv[DeepT] [~reaverta@Admin.Nightstar.Net] has joined #Code
--- Log closed Sun Sep 14 00:00:25 2008
code logs -> 2008 -> Sat, 13 Sep 2008< code.20080912.log - code.20080914.log >