code logs -> 2012 -> Wed, 14 Nov 2012< code.20121113.log - code.20121115.log >
--- Log opened Wed Nov 14 00:00:36 2012
00:01 * Reiv curses, sets the whole sodding thing on fire.
00:12 * TheWatcher patpats reiv
00:14
< Reiv>
... and I just got told this is a priority.
00:14
< Reiv>
Well.
00:15
<@TheWatcher>
Dump to csv, import to non-shitty database server on a machine you have full access to, write script in language you know to do it, profit.
00:15 * Reiv , uh
00:15
< Reiv>
May not actually know any languages. >_>
00:16 * Reiv is not really a programmer any more. He just writes goddamn SQL queries all day and shuffles config settings in database managers.
00:18
<@TheWatcher>
If the data isn't confidential, if you send me the csv files I can sort something for you if you can give me a precise spec of what's needed, but that won't be for at least another 10 hours (as I have to, y'know, sleep)
00:20
< Reiv>
TheWatcher: Appreciated, but it unfortunately probably is.
00:20 * Reiv is a little fuzzy where the privacystuff ends, but this is a list of serial numbers for assets owned, and which property IDs they are attached to.
00:21
<@TheWatcher>
yeah, probably not something they want me seeing
00:21 You're now known as TheWatcher[T-2]
00:22
< Reiv>
niTW!
00:22
< Reiv>
Thanks for the general assit, anyhow.
00:23
<~Vornicus>
what's up?
00:23 You're now known as TheWatcher[zZzZ]
00:27
< Reiv>
Vorn: I need to compare 40k rows in an excel file to a database with 600k rows
00:28
<~Vornicus>
oh.
00:28
<~Vornicus>
Yes that might be more than excel can handle.
00:28
<~Vornicus>
I gotta go with what Watcher says
00:28
<~Vornicus>
it is however movie time
00:31
< gnolam>
Well, define "handle".
00:31
< gnolam>
It can definitely load it - I have a 45k row Excel file on my computer that I've extracted data from.
00:32
< Reiv>
Enjoy, Vorn!
00:32
< Reiv>
Gnolam: Yeah, 45k row is easy
00:32
< Reiv>
This is /600k/ row
00:33 Derakon[AFK] is now known as Derakon
00:33
<@himi>
The 600k rows are in excel too?
00:34
< Reiv>
Not yet, no
00:34
<@himi>
You'll be totally screwed if you try that
00:34
< Reiv>
But I am unable to pipe from Excel to this particular database.
00:35
<@himi>
Better to move the 40k rows into something saner
00:35
< Reiv>
So I may need to consider piping in the other direction. :/
00:35
<@himi>
um
00:35
< Reiv>
(Read-only databases are fun!)
00:35
<@himi>
dump to csv, then import into something like sqlite
00:35
< Reiv>
Yeah
00:35
< Reiv>
Even then not entirely sure how I'm meant to fix this stuff~
00:36
<@himi>
How complex is the real database you're comparing with?
00:37
< Reiv>
It's crud.
00:38
< Reiv>
The real database is pretty much a flat table (It's a file storage system)
00:38
<@himi>
Can you export /it/ to CSV?
00:38
< Reiv>
Each row has a blob or equivalent to hold the file, a column of keywords, and date/uid stuff.
00:38
<@himi>
Hm
00:39
<@himi>
With an SQL interface?
00:39
< Reiv>
It's the column of keywords I'm trying to wrangle.
00:39
< Reiv>
That could probably go into a csv, but then I get to play Fun With Databases during work time.
00:40
<@himi>
I'm thinking in terms of getting both bits of data you care about into sqlite, then let sqlite/SQL-fu do most of the work
00:41
<@himi>
Which is nice if you're familiar with SQL
00:42
< Reiv>
I am
00:42
< Reiv>
The main issue is that even when I /get/ it into SQL
00:42
< Reiv>
I'm not entirely sure how to do the task anyway.
00:43
<@himi>
Well, at least you'd be in a position where you /could/ compare the data sets
00:43
<@himi>
As it is now you can't, and the options you've got with the current databases sound pretty limited
00:49
< gnolam>
Also, someone should beat the designers of your database to death with a North Atlantic Boyce Cod.
00:50
< Reiv>
It's a Generic Filestore System
00:50
< Reiv>
It's not often, I suspect, it gets batch queries run against it.
01:09 himi [fow035@D741F1.243F35.CADC30.81D435] has quit [Client closed the connection]
01:09 himi [fow035@D741F1.243F35.CADC30.81D435] has joined #code
01:09 mode/#code [+o himi] by ChanServ
01:12 rms [rstamer@Nightstar-e681a855.org] has joined #code
01:14 himi [fow035@D741F1.243F35.CADC30.81D435] has quit [Connection closed]
01:14 himi [fow035@D741F1.243F35.CADC30.81D435] has joined #code
01:14 mode/#code [+o himi] by ChanServ
01:20 Vornotron [vorn@ServerAdministrator.Nightstar.Net] has joined #code
01:21
< Vornotron>
Reiver: the awesome thing about SQL is that you can often go from what you want your data to look like to the query
01:21 Vornicus [vorn@ServerAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds]
01:22 VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [Client closed the connection]
01:22 VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code
01:22 Vornotron is now known as Vornicus
01:22 mode/#code [+qo Vornicus Vornicus] by ChanServ
01:25
< Reiv>
Vorn: Whut?
01:28
<~Vornicus>
I mean, well
01:29
<~Vornicus>
In other languages if you want to massage data into a particular shape you have to write filters and shit and handle records and linking and and and
01:29
<&McMartin>
Woo, Linq~
01:30
<~Vornicus>
in SQL you go "okay what data do I want" and you fill in your SELECT clause and your FROM clause and then you go "okay what do I care about" and you fill in your WHERE clause and so on and so forth
01:30
<~Vornicus>
and it's just a lot easier in a declarative language like SQL
01:40
< Reiv>
As compared to
01:42
<&McMartin>
Java
01:43
< Reiv>
... OK yes.
01:44
<~Vornicus>
or even sensible langauges like python. SO often I find myself going "I already have the sql query written in my head, why do I have to spend ten lines doing this out"
01:47
<&McMartin>
Java is extra bad at it though due to a lack of an unsigned 8-bit type
01:47
<&McMartin>
-_-
01:47
<&McMartin>
-_-
01:50
<~Vornicus>
why does that matter?
01:50
<&McMartin>
It makes doing the python struct thing a lot more inconvenient
01:52
<~Vornicus>
structs are happy fun, true
01:54 * McMartin should probably actually solve that one Once And For All Goddamn It for Java.
01:55
<&McMartin>
Both the Python-style Struct stuff (which for the JVM needs to return int[] and can't support 64-bit or floats) and a general binary reader that Does It Right.
01:57
< Reiv>
Do eeet
02:24 Attilla [Obsolete@Nightstar-1c742edd.as43234.net] has quit [Ping timeout: 121 seconds]
02:56 VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [[NS] Quit: Program Shutting down]
03:04
<&Derakon>
Mental note: the other Angband devs are not used to style-matching.
03:04
<&Derakon>
(And they didn't read, or at least didn't internalize, the style guide)
03:05
<~Vornicus>
Oh no fun
03:07 ErikMesoy [Erik@Nightstar-f338e130.80-203-18.nextgentel.com] has joined #code
03:07 ErikMesoy|sleep [Erik@Nightstar-e8459361.80-203-16.nextgentel.com] has quit [Ping timeout: 121 seconds]
03:27 Kindamoody[zZz] is now known as Kindamoody
05:01 Derakon1 [Derakon@Nightstar-a3b183ae.ca.comcast.net] has joined #code
05:01 Derakon [Derakon@Nightstar-a3b183ae.ca.comcast.net] has quit [NickServ (GHOST command used by Derakon1)]
05:01 Derakon1 is now known as Derakon
05:01 mode/#code [+ao Derakon Derakon] by ChanServ
05:03 * Vornicus wonders why the stuff isn't rendering.
05:03
<&jerith>
Maybe you need to add more heat?~
05:04 * McMartin delivers a mighty uppercut until jerith, knocking him into the backdrop.
05:04
<&ToxicFrog>
"unto", surely.
05:05
<&McMartin>
Quite so
05:05
<&jerith>
Wait. I'm now a limit on a combat maneuver?
05:06
< celticminstrel>
Uh what.
05:06
< celticminstrel>
Heh.
05:06
< celticminstrel>
Nice typo.
05:10
<~Vornicus>
there it goes.
05:10
< celticminstrel>
?
05:10
<&jerith>
It finally rendered, I assume.
05:11
< celticminstrel>
Oh. Duh. >_>
05:11
<~Vornicus>
Stupid Error O'Clock: so I have a list of planets that I want to render to a surface; this is (currently) done without doing dirty or stale stuff: it's done every frame.
05:11
<~Vornicus>
I wasn't seeing any planets.
05:12
<&McMartin>
Got your windings backwards?
05:12
<~Vornicus>
THe reason for this is, I was using () instead of [] for my planet building listcomp
05:12
<&jerith>
A gencomp should work fine for most things.
05:12
<~Vornicus>
So it was an iterator, not a list, and after the first frame there were no new planets to list!
05:13
<&jerith>
Assuming you're iterating over it at some point.
05:13
<&jerith>
Ah.
05:13
<~Vornicus>
I'm iterating over the same, randomly generated, list repeatedly.
05:13
<&jerith>
Because you're iterating over it multiple times.
05:13
<~Vornicus>
And using it up? Not so fun.
05:17
<~Vornicus>
Okay, now that that's done, need to fix some placement issues (because planets are responsible for their own rendering, they also build their own placement rect)
05:18
<~Vornicus>
(and I had a directional error)
05:20 Kindamoody is now known as Kindamoody|breakfast
06:00 Syloq_Home [Syloq@NetworkAdministrator.Nightstar.Net] has quit [Client closed the connection]
06:06
<~Vornicus>
okay. 107 lines in, got basic rendering of the galaxy map done.
06:06 * Vornicus hunts up text drawing because that is next.
06:07
<&Derakon>
If you ever move beyond SDL rendering, drawing text will become the hugest pain ever.
06:08
<~Vornicus>
Fortunately this one doesn't need anything better, I'm doing nothing fancy at all.
06:11 * Azash gets to uni, sits down at fancy workstation, immediately feels code apathy descend
06:19
<~Vornicus>
okay using SPace Empires 4 art for this is, uh
06:20
<~Vornicus>
Way too photorealistic.
06:25 Vornicus [vorn@ServerAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds]
06:28 Kindamoody|breakfast is now known as Kindamoody
06:36 Derakon is now known as Derakon[AFK]
06:47 Kindamoody is now known as Kindamoody|out
07:05 Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #code
07:05 mode/#code [+qo Vornicus Vornicus] by ChanServ
07:06 himi [fow035@D741F1.243F35.CADC30.81D435] has quit [Ping timeout: 121 seconds]
07:15 celticminstrel [celticminst@Nightstar-05d23b97.cable.rogers.com] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!]
07:22
<~Vornicus>
Something cartoony, vivid-colored, ships that are bright red or green or blue or magenta or something and have very different shapes...
08:42 Pandemic [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [Client closed the connection]
09:03 You're now known as TheWatcher
09:06
< Syk>
oh man
09:06
< Syk>
doing research for my business
09:06 Attilla [Obsolete@Nightstar-e58340cf.as43234.net] has joined #code
09:06
< Syk>
my major competitor in town charges $115/hr...
09:39
<@Tarinaky>
That sounds like a sweet gig.
09:39
<@Tarinaky>
What's the catch?
09:41 Vornicus [vorn@ServerAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds]
09:48
< Syk>
Tarinaky: it's in the middle of nowhere :P
09:48
< Syk>
but, my major competitor isnt trusted at all, and is shoddy
10:09 Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #code
10:09 mode/#code [+qo Vornicus Vornicus] by ChanServ
10:13 RichyB [richardb@Nightstar-3b2c2db2.bethere.co.uk] has joined #code
10:18
<@froztbyte>
sounds like opportunity for good money to be made then
10:19
< Syk>
mhmmm
10:49
<@Tarinaky>
Reading week is kicking my ass.
10:50
<@Tarinaky>
Half my lectures aren't running so I can complete assignments I don't have.
10:52
<@TheWatcher>
Parse error on line 10:50:06.1
10:59
<@Tarinaky>
Is that character 1 or word 1?
11:00
<@TheWatcher>
The first line in 10:50:06 - or more to the point how do you complete assignments you don't have?
11:00
<@TheWatcher>
Is this "Zen and the Art Of University Courses" or something?
11:00
<@Tarinaky>
Joint Honours Student.
11:01
<@Tarinaky>
Assignments that I, personally, don't have (but other people do)
11:04 Attilla [Obsolete@Nightstar-e58340cf.as43234.net] has quit [Ping timeout: 121 seconds]
11:04 Attilla [Obsolete@Nightstar-78ad1d0f.as43234.net] has joined #code
11:10
<@Tarinaky>
So yeah. Currently say around waiting for meetings...
11:10
<@Tarinaky>
Except there's no friends in the computer lab to talk to :(
11:11
<@Tarinaky>
I should probably take this opportunity to brush up on my programming or something.
12:16
<@Tarinaky>
Argh. WHy will you not concatenate a list on to a string :/
12:22
<@TheWatcher>
Does python have a join()? You might need to do the equivalent of a $foo .= join(" ", @list)
12:23
<@Tarinaky>
I should clarify, what I want is for it to just spew something like [a, b, c] where a, b and c are the elements of the list.
12:23
<@Tarinaky>
Which, presumably, have repr defined for them at least >.>
12:26
< RichyB>
"[%s]" % ", ".join(map(repr, some_iterable_thing))
12:26 Pandemic [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code
12:26 VirusHome [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code
12:26 VirusHome [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [Connection reset by peer]
12:26
< RichyB>
or just call repr() on the list itself, which will recursively repr() all of its elements.
12:27
<@Tarinaky>
Nm, got it.
12:27
< RichyB>
repr() of a generator or something won't be pretty to look at.
12:27
<@Tarinaky>
Fortunately it isn't a generator~
12:27 * TheWatcher sticks 'z-index: 2317; /* /o\ */' in this css, wonders if anyone in work'll notive
12:27
<@Tarinaky>
Right, I need to go do laundry then.
12:27
< RichyB>
BTW, don't repeatedly concatenate strings in a loop in Python. You'll end up doing quadratic copying on some (but not all) implementations.
12:28
< RichyB>
str.join() is usually what you want on bytestrings, and unicode.join() is what you want when handling text.
12:29 * TheWatcher blughs vaguely
12:34 * TheWatcher is trying to get his brain back into a 28k loc project he hasn't touched in two months, tries to remember where he was working on it
12:38 * Azash suggests making user stories/tasks lists in google docs for easy overview
12:40 * RichyB suggests firing it up and using it until it segfaults or you hit a missing feature. :)
12:41
< RichyB>
Having written user stories is a good idea, then you can do some of the QA without having to think too hard by walking through them.
12:42
<@Azash>
RichyB: We do that in my current major project and it works really well
12:42
<@Azash>
Also for splitting into tasks
12:44
<@TheWatcher>
RichyB: I should have noted - 28 thousand lines of perl code
12:44
<@TheWatcher>
It's a web app
12:46
<@TheWatcher>
And I have plenty of use case specs, todo list, etc - the problem was that I had to shelve it on short notice due to fuckups during semester. Thankfully, I have git logs of where I was working
12:48
<&jerith>
TheWatcher: I'm doing the same on a branch of two related projects that add up to abot 40kloc.
12:48
<&jerith>
I've been working on those codebases between then and now, but different parts of them.
12:48
<&jerith>
So instead of a lack of information, my brain is full of incorrect information. :-/
12:49
< Syk>
user stories? owo
12:51
< Syk>
like... a sort of how they'd use it?
12:51
<&jerith>
Syk: It's terminology from one of the agile methodologies.
12:51
<&jerith>
A "user story" is a description of a particular facet of a feature from the user's point of view.
12:52
<&jerith>
The idea is that it's a single testable chunk of functionality.
12:54
< RichyB>
It's about the users' goals rather than exact features, too.
12:55 * jerith nods.
12:55
<&jerith>
The basic foundation of the methodology being that everything is user-driven.
12:56
< RichyB>
A brief user story would be something like, "Bob the Builder wants screws. Bob clicks on bookmark for ScrewSellerDirect.com, finds the 5mm countersunk pozi-headed screws that he wants, enters an order for 500 of them, is charged for them, and next day they arrive at Bob's address."
13:02
<@Tarinaky>
I wish I'd known the term "User Stories" at the last group project meeting I was at.
13:02
<@Tarinaky>
I had a hard time explaining what I was thinking with my usual social impedements.
13:08
< gnolam>
From elsechan: http://windows95tips.tumblr.com/
13:08
<&jerith>
I don't really like working with user stories and such, because I'm not really building that kind of software.
13:09
<&jerith>
"programmer stories", on the other hand...~
13:09
<@Tarinaky>
Isn't half the point that 'user' is an abstract term?
13:09 * Pandemic has to think about user crap all the time, is also out of beer, these two things are related
13:09
<@Tarinaky>
A user could be a sufficiently advanced perl script running as a daemon in a datacenter in montreal.
13:09
< Pandemic>
user is an abstract term, what the user does is not how ever
13:10
<@Tarinaky>
Noting that most users in the non-abstract term could be replaced with a sufficiently advanced perl script~ :p
13:11
<&jerith>
Tarinaky: Sure, but features like "high availability" and "can handle a million messages a day" don't fit that model very well.
13:11
< Pandemic>
please do so, I'd like to replace most of marketing.....
13:12
< Pandemic>
high availability, higher 10 temps, train them the exact way, kill off 5 of them
13:12
< Pandemic>
the system is still not redundent... >.>
13:13 * Pandemic appologieses, has very little faith in "users" referancing organic human like life forms
13:14
<@Tarinaky>
It's okay.
13:14
<@Tarinaky>
I am the reason why.
13:15
< Pandemic>
unless you have ever worked as a user on a network that I've had to run, no, you aren't the reason
13:15
<@Tarinaky>
You are not the only admin in the world.
13:16
<@Tarinaky>
Somewhere is the man I drove to drink.
13:16
<@Tarinaky>
And he never thanked me for it.
13:16
< Pandemic>
lol
13:16
< Pandemic>
that bastard
13:16
<&jerith>
Tarinaky: Did you actually give him a lift to the pub?~
13:16
<@Tarinaky>
No.
13:17
< Pandemic>
thats why he never thankd you
13:17
< Pandemic>
if you cause him to loos 10 years of life in his liver, the least you can do is give him a ride
13:17 * jerith notices that his project manager has fallen offline.
13:17 * Pandemic steps away from the network plug of jerith's project manager
13:18
<@Tamber>
Tarinaky: You 'accidentally' bundled him into a taxi to a bar in the Czech Republic? =p
13:18
<&jerith>
I wonder if this has anything to do with the fact that he's telling our scary account manager person "no" as hard as is necessary to make it stick.
13:19
<@Tarinaky>
Poor reception in the trunk of the don's car.
13:20
<@Tarinaky>
Pfft. Trying to start a new project is a nightmare.
13:20
<&jerith>
Howso?
13:21
<@Tamber>
Naming D:
13:21
<&jerith>
Ah, yes.
13:21
<@Tarinaky>
Not having anything build-able.
13:21
<@Tarinaky>
Or at least, nothing that appreciably does anything.
13:22 * Pandemic drops a 5400ZL HP Procurv Switch on Tarinaky's desk
13:22
< Pandemic>
here could you finish configuring this for me
13:22
<@Tarinaky>
Why on earth would I do that?
13:24
<&jerith>
Tarinaky: This is a great opportunity to start writing unit tests for all the bits that you're writing.
13:24
<@Tarinaky>
I have been.
13:24
<@Tarinaky>
It still does nothing appreciable.
13:25
<@Tarinaky>
Honestly. I think I am going about this entirely the wrong way :/
13:25
< Pandemic>
becuase I've been at it the past three days and I'm kinda done?
13:25
<@Tarinaky>
Pandemic: I fail to see this as an incentive.
13:26
< Pandemic>
for motivation....
13:26
< Pandemic>
how about I apply you with copious amounts of a beverage of your choosing?
13:27
<@Tarinaky>
That's better!
13:27
<@Tarinaky>
When do I start?
13:27
< Pandemic>
hrm..... half an hour?
13:27
<@Tarinaky>
Sure, see you soon.
13:28 * Pandemic learns that Tarinaky will do almost any thing for copious amounts of a beverage of her choosing.....
13:30
<@Tarinaky>
http://windows95tips.tumblr.com/
13:34 * Tarinaky pffts and decides to do a paper model.
13:47
<&jerith>
Tarinaky: I find a list of passing tests gives me the feeling of productivity at least as much as playing with a more complete implementation does.
13:48
<@Tarinaky>
Yeah. I don't really know what I'm doing enough to write any... good tests.
13:50
<&jerith>
Tarinaky: This is a good opportunity to practice, then.
13:50
<@Tarinaky>
I meant in terms of the problem space.
13:50
<&jerith>
Is the code in a public repo?
13:50
<@Tarinaky>
No.
13:50
<&jerith>
And what's the problem space?
13:50
<@Tarinaky>
I don't know.
13:50
<@Tarinaky>
Hence the problem :p
13:53
<&jerith>
How can you write the code if you don't know what the problem is?
13:53
<@Tarinaky>
That's what I'm having trouble with.
13:54
<@Tarinaky>
Look, am I just really bad at communicating?
13:55
<&jerith>
I'm just trying to get a handle on where your current issues are so I can try help you find a way around them.
13:55
<&jerith>
So, let's start from the beginning. Why does this project exist?
13:55
<@Tarinaky>
Because I am bored.
13:55
<&jerith>
Ah.
14:04
<&jerith>
Tarinaky: So what is the end goal here?
14:04
< Pandemic>
if you are board...........
14:05
<@Tarinaky>
I am not a board.
14:05
<@Tarinaky>
I am bored.
14:05
<&jerith>
Tarinaky: But are you aboard?~
14:05
<@Tamber>
Pandemic is a lysdexic; and it *would* explain the 2x4 he's holding...
14:05
<@Tarinaky>
jerith: Distract myself for the next few days. Try to get more stuff to go in my portfolio.
14:06
<@Tarinaky>
I apologise then.
14:08
<&jerith>
Tarinaky: Those two goals don't have very much in common with each other, but they aren't incompatible.
14:08
< Pandemic>
what Tamber said
14:08
<&jerith>
It sounds like you're not achieving either of them at the moment, which indicates that you should rethink things.
14:08
<@Tarinaky>
Yup.
14:09
<&jerith>
So maybe come up with a new project which is both fun and portfolioable.
14:10
<&jerith>
Also, the portfolio thing probably means you should put it in a public repo.
14:10
<@Tarinaky>
Eventually.
14:10
<&jerith>
Why not now?
14:11
<@Tarinaky>
Because I haven't got anything I want to put in my portfolio yet.
14:11
<&jerith>
Hrm.
14:11
<&jerith>
So you want to only choose your best things to make public?
14:12
<@Tarinaky>
Pretty much.
14:13
< Syk>
heh, I made up my portfolio
14:13
< Syk>
it's cobbled together as hell
14:14
<&jerith>
I can pretty much guarantee that in a couple of years you'll be embarrassed about almost any code you write now.
14:14
<&ToxicFrog>
Mine is pretty much just "all of my stuff on github"
14:14
<&ToxicFrog>
Which is all of my stuff that I've written since starting to use git.
14:14
<@TheWatcher>
What jerith said (with a few exceptions)
14:14
<&ToxicFrog>
Much of it is unfinished. Much of it is embarassing.
14:14
<&jerith>
If you aren't, you've stagnated as a developer and I don't want to hire you.
14:15
<&jerith>
The key is to transcend the embarrassment.
14:15
< Syk>
jerith: I wrote some code in 2010 and I am so embarrassed now about it
14:15
<@TheWatcher>
(I recently found some C code I'd written back in 2001 or so that was, while rather simplistic in places, shockingly decent quality really)
14:16
<&jerith>
Be able to say "I wrote that code when I was young and inexperienced. I'd do it differently today, but it solves the problem and doesn't really need to be rewritten."
14:16
< Syk>
like... pre-actually learning SQL
14:16
<&ToxicFrog>
But it's still a good log of what I've done as a developer.
14:16
< Syk>
if you remove a user from the db, running versions of it crash
14:17
< Syk>
it's horrible software.
14:17
<&ToxicFrog>
And evidence that I program on my own time, for the joy of it.
14:17
< Syk>
but that concept is going to be what i'm going to be rewriting, to sell
14:17
< Syk>
so I've at least learnt from it
14:17
<&jerith>
I have lots of half-built projects in github.
14:17
<@TheWatcher>
Likewise
14:17
<@Tarinaky>
I tend to prune the worst of my half-built stuff from github.
14:18
< Syk>
having used it for 3 years, and having 50-100 staff use it, I know what's used and what isn't, what helps and what needs improving
14:18
<@Tarinaky>
It keeps it a bit neater.
14:18
<&jerith>
Define "worst".
14:18
<@Tarinaky>
Stuff I have no intention of finishing and without any saving merit.
14:18
<&jerith>
I have a bunch of half-built things in various places.
14:18
<@Tarinaky>
Typically barely started.
14:18
<&jerith>
Some of them are completely useless.
14:19
<&jerith>
I'm pretty embarrassed about most of the stuff on my personal website, but I occasionally receive email from people who tell me how something helped them solve a problem they had.
14:20 * Syk tinkers with some stuff
14:20
< Syk>
i'm making my invoices in HTML
14:20
<&ToxicFrog>
jerith: yeah, same here. Some of them I have no intention of ever finishing; they stay there as historical curiosities.
14:21
< Syk>
i'm tempted to experiment with Twisted + Python + PGSQL to get the hang of it, with an invoicing system
14:21
<@Tarinaky>
I have a tendancy for projects to die at about this point.
14:21
<@Tarinaky>
The "Pfft, I have no idea what I'm trying to do here" stage.
14:21
< Syk>
since i really like the template
14:21
<&jerith>
Syk: billable.me
14:21
< Syk>
http://reddrgn.net/taxinvoice.pdf
14:22
<&jerith>
Syk: A colleague of mine built that back when he was freelancing.
14:23
< Syk>
oooh, shiny
14:23
< Syk>
I think it would be good for practice for me to build my own, however
14:24
< Syk>
so i do stupid code in a little project rather than one i'm going to try and sell
14:26
< Syk>
I can't wait until Friday evening...
14:48
<@froztbyte>
Syk: I'll pm what I just suggested to the author of billable.me in another #code
14:48
<@froztbyte>
might give you some ideas :)
14:50
< Syk>
froztbyte: danke
15:01
<@Tarinaky>
Things that trip me up in Python after doing all my Uni assignments in Java... The 'is' keyword.
15:03
<@froztbyte>
haha
15:07 Syloq_Home [Syloq@NetworkAdministrator.Nightstar.Net] has joined #code
15:18 celticminstrel [celticminst@Nightstar-05d23b97.cable.rogers.com] has joined #code
15:55 celticminstrel [celticminst@Nightstar-05d23b97.cable.rogers.com] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!]
15:56 Syk is now known as syksleep
16:18
<~Vornicus>
<3 is
16:22
< RichyB>
I fucking love the fact that "is" implements what Java refers to as "=="
16:23
< RichyB>
freeing up the "==" operator to be overloaded by types that define __eq__
16:23
< RichyB>
which means that equality on objects is no longer a pointless clusterfuck.
16:24
< RichyB>
(a.equals(b)) is not clearer than (a == b).
16:38
<&jerith>
"is" doesn't implement what Java refers to as "=="/
16:38
<&jerith>
It tests object identity.
16:39
<&jerith>
"1 is 1" will probably return True, because small integers are cached. (I forget the actual terminology.)
16:40
<&jerith>
"10**10 is 10**10" will probably return False.
16:40
<@Namegduf>
It is what Java means by == for objects, though.
16:40
<@Namegduf>
Identity and equality being distinct tests is kinda neat when one isn't ===
16:41
<@Namegduf>
And there isn't awful automatic type conversion
16:41
<&jerith>
Yes, but *not* what it means for primitive types.
16:41
<@Namegduf>
Yes.
16:42 KiMo [Kindamoody@Nightstar-05577424.tbcn.telia.com] has joined #code
16:42 mode/#code [+o KiMo] by ChanServ
16:42 Kindamoody|out [Kindamoody@Nightstar-05577424.tbcn.telia.com] has quit [Ping timeout: 121 seconds]
17:05
< RichyB>
jerith: right, but Python doesn't have an equivalent of Java's fuckawful primitive/object distinct.
17:05
< RichyB>
*distinction
17:06
< RichyB>
"Everything is an object" is actually true in Python, unlike java.
17:06
< RichyB>
Still, point taken.
17:06
< RichyB>
IMHO this makes Java even shitter - "==" is a value comparison except when it's a pointer comparison / "==" is a pointer comparison except when it feels like being a value comparison.
17:08
<&jerith>
Quite.
18:53 KiMo is now known as Kindamoody
19:11
< RichyB>
I think that there's a way to write a bottom-up merge sort with O(1) space overhead on mutable singly-linked lists. ?
19:16 RichyB [richardb@Nightstar-3b2c2db2.bethere.co.uk] has quit [[NS] Quit: Leaving]
19:24
<~Vornicus>
RichyB: I can see O(log n) space but O(1) is I suspect a stretch.
19:26
<@Azash>
When does == for two objects in Java not do pointer conversion?
19:26
<@Azash>
I don't think "feels like" enters the picture
19:28
<~Vornicus>
well, between objects it doesn't
19:28
<~Vornicus>
but your primitive types - the numeric types, boolean, and char - it compares by value, and will even type convert between them.
19:29
<~Vornicus>
Java may even do automatic unboxing for their wrapper objects.
19:30
<@Azash>
That's a pretty well defined difference though
19:31
<~Vornicus>
it's in particular the type conversion that makes it really bad.
19:34 Kindamoody is now known as Kindamoody[zZz]
19:55
<@Tarinaky>
When is "will probably" a good idea for a comparison operator?
19:55
<@Tarinaky>
>.>
19:56
< ErikMesoy>
When you're stressed.
19:56
<@Tarinaky>
1 is 1 will be true because they're both literals, and literals are optimised out. >.>
19:57
<@Tamber>
maybe_equal, is_kinda_equal
19:57
<@Tamber>
sorta_equal_if_you_squint
19:57
< gnolam>
Tarinaky: fuzzy logic!
19:57
<@Tarinaky>
a = 1; b = a; a is b will also be true because both a and b point at the same literal/memory >.>
19:57
<@Tarinaky>
And everything else I'm fuzzy on.
19:59
<@Tarinaky>
a = 1; b = 2*a; a = 2; a is not b... I think.
20:01
< Pandemic>
if I read that correctly, you set b to be 2
20:01
< Pandemic>
by b=2*a at the point whene A was 1
20:01
<@Tarinaky>
Yes. So a == b.
20:01
< Pandemic>
then you assign a to 2
20:01
<@Tarinaky>
but a is not b.
20:02
< Pandemic>
so logicly the same value
20:02
<@Tarinaky>
They're handles pointing to different addresses.
20:02
< Pandemic>
but not the same meory space
20:02
<@Tarinaky>
Which is what python's 'is' comparator represents.
20:02
< Pandemic>
memory*
20:02
<@Tarinaky>
They're two, different, twos.
20:02
<&jerith>
>>> a = 1; b = 2*a; a = 2; a is b
20:02
<&jerith>
True
20:03
<@Tarinaky>
Oh.
20:03
<@Tarinaky>
Well. So much for that then.
20:03
<&jerith>
There's only one copy of small integers.
20:03
<&jerith>
>>> 100 is 100 * 1
20:03
<&jerith>
True
20:03
<&jerith>
>>> 1000 is 1000 * 1
20:03
<&jerith>
False
20:04
<@Tarinaky>
What is a "small integer"
20:04
<&jerith>
An implementation detail.
20:04
<@Tarinaky>
This seems like a really bad thing.
20:05
<&jerith>
You can't rely on small integers from different places being the same object, but why would you want to?
20:05
<@Tarinaky>
No. But you can't rely on small integers from different places being different objects.
20:05
<&jerith>
Sure. But why would you want to?
20:05
<@Tarinaky>
Consistency.
20:06
<&jerith>
Literals come from the same place.
20:06
< Pandemic>
that seems like it has to potential to be pointer hell...
20:06
<@Tarinaky>
I think the point is that you don't use pointers in Python.
20:06
< Pandemic>
like a doubly linked list if you forget to alwyas handel simbling relationships
20:07
<@Tarinaky>
The main purpose of 'is' is for comparing mutable objects like objects.
20:07
<&jerith>
Pandemic: Why? If you're depending on object identity of integers, you're almost certainly doing it wrong.
20:07 * Pandemic arees with jerith
20:07
< Pandemic>
agrees
20:07
<&jerith>
Python doesn't really have pointers.
20:07
<@Tarinaky>
It has references.
20:07
<@Tarinaky>
Pointers is a C neologism.
20:08
<@Tarinaky>
*As a C neologism
20:08
<@Tarinaky>
Hmm. Neologism isn't the word I'm looking for.
20:08
<@Tarinaky>
Malpropism?
20:08
< ErikMesoy>
Paleologism?
20:08
< Pandemic>
thingie
20:08
<&jerith>
Python has objects and variables.
20:09 * Pandemic hasn't messed with python
20:09
<@Tarinaky>
Yeah, but its identifiers are references.
20:09 * Pandemic has used C++
20:09
< Pandemic>
and a fair amount of vscript
20:09
< Pandemic>
vbscript*
20:10
<@Tarinaky>
And, as far as I am aware, they aren't the kind of sufficiently advanced magic Java handles are.
20:10
<@Azash>
20:55 <@Tarinaky> When is "will probably" a good idea for a comparison operator?
20:10
<@Azash>
Java comparison operators are deterministic.
20:10
<@Tarinaky>
We're not talking about Java.
20:11
<&jerith>
So are Python's.
20:11
<&jerith>
It's just that certain objects being identical might be surprising.
20:12
<@Tarinaky>
Python's are non-deterministic if you allow 'small integers' to be undefined/implementation specific.
20:12
<@Tarinaky>
At least, until you define 'small integers' or pick an implementation.
20:12
<@Tarinaky>
Maybe?
20:12
<@Tarinaky>
IDK.
20:12
<@Tarinaky>
I should shut up.
20:13
<&jerith>
Tarinaky: The language spec doesn't say anything about the identity of small integers.
20:14
<&jerith>
I think certain strings are thingied as well.
20:14
<&jerith>
But again, you shouldn't be relying on that.
20:14
<@Tarinaky>
Not the point :p
20:14
<&jerith>
You should be using it for mutable objects or certain builtins.
20:15
<&jerith>
Like None and True and False and such.
20:17
<@Tarinaky>
Stupid question number #439: is it acceptable, in python, to use a singleton array to make something mutable that normally would not be?
20:18
<&McMartin>
I would normally use a reference object with a single field instead.
20:18
<@Tarinaky>
Is there a shorthand for that?
20:18
<&McMartin>
This is a stange enough thing that you don't want it to be short
20:19
<&McMartin>
a = Mutable(init_value)
20:19
<@Azash>
Tarinaky: We were when you said quoted string
20:20
<@Tarinaky>
Azash: I thought we were talking about Python.
20:21
<&jerith>
Tarinaky: I write closures around single-element lists occasionally.
20:21
<@Tarinaky>
Closures?
20:21 Attilla_ [Obsolete@Nightstar-e95b0203.as43234.net] has joined #code
20:23 Attilla [Obsolete@Nightstar-78ad1d0f.as43234.net] has quit [Ping timeout: 121 seconds]
20:29
<&ToxicFrog>
<3 closures
20:34
<&ToxicFrog>
Tarinaky: functions that access locals in their enclosing scope.
20:34
<@Tarinaky>
Isn't that a method?
20:37
<@Tarinaky>
Okay. I think I have a decent idea what my project is now.
20:37
<@Tarinaky>
Remake of Decker using slightly more modern cyberpunk/netrunner tropes.
20:42
<&McMartin>
Tarinaky: You can express one in terms of the other, formally
20:43
<&McMartin>
In practice only one will actually work the way you want it to.
20:48 * gnolam stabs people who use the word "lag" to describe low framerates.
20:48
<@Tarinaky>
In a video game there's a causation between low frame rates and 'lag' in the controls.
20:49
<&McMartin>
It's a better term than "frameskip" for modern engines.
20:52
<@Tarinaky>
Attributes for a 'Host'... Bureaucracy (how hard it is to perform 'administrative' actions), Clarity (how hard it is to hide yourself and how easy it is to navigate), Paranoia (how resistant programs are to vandalism, and how many defensive programs there are)
21:03
<&ToxicFrog>
Tarinaky: a typical closure might look something like this:
21:04
<&ToxicFrog>
function mkcounter(x) return function() x = x+1; return x; end end; counter1 = mkcounter(0); counter2 = mkcounter(0)
21:04
<&ToxicFrog>
counter1 and counter2 are closures over x.
21:04
<&ToxicFrog>
(different xs, actually)
21:06
<&ToxicFrog>
As you realized, you can implement closure features using objects (the closure's upvalues - the locals in the enclosing scope - become private members, and the closure itself a method), and objects using closures (members become upvalues)
21:26
< Reiv>
Is Vornicus about?
21:30 VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code
22:07 ErikMesoy is now known as ErikMesoy|sleep
22:14
<~Vornicus>
Now Vornicus is about
22:15
<~Vornicus>
You shouldn't be comparing shit to True and False anyway
22:22
< Reiv>
Hello Vorn
22:22
< Reiv>
So, in regards to that fantastic filter you showed me last time
22:22
< Reiv>
Is there a way to make it use more clever rules?
22:22
< Reiv>
I have been given a new challenge.
22:22
<~Vornicus>
Give me an example of a rule
22:23
< Reiv>
Each relay has a serial number. I need to line up relays to installations in both systems A and B
22:23
< Reiv>
And then compare them and list where the serial numbers /don't/ match
22:23
<~Vornicus>
So wait. Installation attaches to relay
22:23
< Reiv>
Relays attach to installations, to be more accurate
22:23
<~Vornicus>
okay fine.
22:23
< Reiv>
With the /glorious/ wrinkle that a Relay may attach to multiple installations >_<
22:24
< Reiv>
(IE a block of flats and an economising electrician)
22:24
< EvilDarkLord>
Can installations attach to multiple relays?
22:25
<~Vornicus>
and then what you need is to show situations where there's an installation in one relay according to system A but in another relay for system B?
22:25 himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code
22:25 mode/#code [+o himi] by ChanServ
22:26
< Reiv>
I need to show installations where there's one relay in system A but a different relay for system B, yes.
22:26
< Reiv>
This is mostly because someone failed to do the paperwork when doing a relay swap
22:26
< Reiv>
And one side has better paperwork than the other.
22:28
<~Vornicus>
OKay that's not too hard. do this query on both systems: "select installation_id, relay_id from installations"
22:29
<~Vornicus>
load 'em into one thing. Note that installations should only have one relay of course
22:29
< Reiv>
OK
22:29
< Reiv>
Duplicates allowed?
22:29
< Reiv>
IE Install 123 has relay ABC
22:30
< Reiv>
Next line down 123 has relay DEF
22:31 Vash [Vash@Nightstar-b43e074a.wlfrct.sbcglobal.net] has joined #code
22:31 mode/#code [+o Vash] by ChanServ
22:31
<~Vornicus>
Wait, you actually have a many to many...
22:31
<~Vornicus>
Or rather
22:31
<~Vornicus>
Are both of those lines from system A?
22:31
< Reiv>
It's a many:many, yes
22:31
< Reiv>
Though better to say a few:many
22:32
<~Vornicus>
oh this sucks.
22:32
<~Vornicus>
I don't know if you can do this in excel. I don't even know if you can do this in SQL
22:32
< Reiv>
You're kidding.
22:32
<~Vornicus>
well, hm
22:32
<~Vornicus>
You can do an outer join, in proper sql, but it has to be a full outer join.
22:32
< Reiv>
"Tell me which serial numbers don't match up" should not be... /that/ hard?
22:33
< Reiv>
... cartesian join?
22:33
<~Vornicus>
no, cartesian join is different.
22:34
<~Vornicus>
An inner join shows you only those records such that A and B match.
22:34
< Reiv>
hm
22:34
<~Vornicus>
A right outer join shows you those records where A and B match, /and/ those records from A where there is no match at all from B
22:35
< Reiv>
Is this easier if we forgo the installs for the initial comparison?
22:35
<~Vornicus>
A left outer join shows you where A and B match, /and/ those records from B where there's no match at all from A
22:35
< Reiv>
No, that doesn't work does it because we have no way of knowing which relay pairs don't match. Fuck.
22:35
<~Vornicus>
A full outer join shows you A-B matches, As without a B, and Bs without an A
22:35
< Reiv>
Oh, those ones, yes.
22:36 himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds]
22:37
<~Vornicus>
This job calls for, if i understand it correctly: "SELECT a.installation, a.relay, b.installation, b.relay FROM system_a.installation_relays a FULL OUTER JOIN system_b.installation_relays b ON a.installation = b.installation AND a.relay = b.relay"
22:39
<~Vornicus>
...WHERE a.installation != b.installation
22:40
<~Vornicus>
no, don't like that clause. WHERE a.installation IS NULL OR b.installation IS NULL
22:40
<~Vornicus>
full outer join is hard to find though, so let me think
22:43
< Reiv>
Yeah
22:43
< Reiv>
Is it easier if we make it a left join?
22:44
< Reiv>
Database A is considered to be correct; we're looking for where Database B does not line up.
22:45
<~Vornicus>
SQLite I know has Left Join
22:47
< Reiv>
Oh, I was talking logically.
22:47
< Reiv>
As in: If one of the databases can be considered true, does this change our query complexity at all?
22:48
<~Vornicus>
Not significantly.
22:48
<~Vornicus>
Actually you still need a full outer because you really do need to know the full list of discrepancies and a left join will only give you one side of the story.
22:49
< Reiv>
I see
22:49 * Reiv ponders
22:49
< Reiv>
Does it become doable in Excel again if the task is simplified to be "Give me a list of all the relay serials in A but not in B", ignoring the installation bit?
22:51
<~Vornicus>
Can probably do that, yes
22:57 celticminstrel [celticminst@Nightstar-05d23b97.cable.rogers.com] has joined #code
22:57
<@AnnoDomini>
McMartin: I wish there were a way to quickly offload fuel in the starbase.
22:57
<@AnnoDomini>
I just bought over a thousand fuel from the Melnorme and it takes ages to offload it.
22:58
<&McMartin>
I forget, did we put in PgUp/PgDn for that?
22:58
<~Vornicus>
I remember doing that to the Druuge
22:58
<@AnnoDomini>
Doesn't work. I'm playing 0.6.2.
23:09
< Reiv>
OK!
23:09
< Reiv>
I got preliminary clearance
23:09
< Reiv>
Vorn: The situation has been simplified
23:09
< Reiv>
I have two databases, A and B. They have relay serial numbers.
23:10
< Reiv>
I need to find where A has a serial number but B does not.
23:10
< Reiv>
I will then take those serial numbers and shove back /into/ A, wherein I shall extract the salient details about them.
23:10
< Reiv>
Is this Excel-able?
23:12
<@Vash>
For Half and any other person in here that likes/plays minecraft: http://cheezburger.com/6763484672
23:13
<@Vash>
... shit
23:13
<@Vash>
I thought this was fleet
23:13
<@Vash>
anyway
23:18 * TheWatcher eyes MediaWiki::API, wonders wtf it is playing at
23:19
<@TheWatcher>
"You need to give the URL to the mediawiki API php." - that would be the 'api' => 'http://blablalba/api.php' in your sodding config, you useless pile of code
23:21
<@TheWatcher>
*eyes the code* It /actually/ wants api_url, of course.
23:27 * Reiv pokes Vorn, if he's handy. Ideally, he'd like to have this sucker running in an hour or so, then he can do lunch. Has pizza!
23:28
< celticminstrel>
Yay pizza! Why don't I have pizza? :(
23:30
< Reiv>
Because you didn't buy it for dinner on Monday night by dint of it being the only thing left open.
23:31
<~Vornicus>
Reiv: thinking. Using the filter system may not be the best.
23:31 * Azash sadly eyes the clock saying "1:31"
23:31
< celticminstrel>
Heh.
23:31
<@Vash>
PIZZAAAAAAAAAAAAAAAAAAAAa
23:31
<~Vornicus>
Your best bet.
23:31
< celticminstrel>
Monday, eh?
23:31 * Vash gnaws vorn
23:31
<~Vornicus>
I think, it...
23:31
<~Vornicus>
shit you had to say that word didn't you.
23:31
<@Vash>
I'm a pizza fiend. Vorn, I think, dislikes the fact that I love pizza to death
23:31
<@Vash>
I could eat that more than once a week.
23:32
<@Vash>
... everyday.
23:32
<@Vash>
mushroom or pep, or both
23:32
<@Vash>
specially if it has cheese int eh crust
23:32
<@Vash>
the*
23:32
< celticminstrel>
Bah, that's boring pizza.
23:32
<@Vash>
extra cheese
23:32
<@Vash>
well
23:32
<@Azash>
Same, I joke occasionally that when I get a full-time job I'll probably spend the first month eating pizza daily :p
23:32
<@Vash>
Sooooooooooooorry, princess!
23:32
<~Vornicus>
REason you don't want to use filter is because it's best when there's not that many clauses
23:32
<~Vornicus>
it's "excuuuuuuse me" actually
23:32
<~Vornicus>
Anyway
23:33
<~Vornicus>
Pop your lists of relays and installations into two sheets in Excel.
23:34
<~Vornicus>
So you have relays in column A and installations in column B, or vice versa.
23:34 * Azash has pizza cravings now, shakes fist at Reiv
23:35
<@Vash>
celmin: I don't like too much meat on pizza, and I specially don't like sausage. And the other veggies feel too strong at times. I can eat green pepper and onion just fine on foods that vorn and I make... but in pizza... I don't know. just doesn't seem right for me
23:35
<~Vornicus>
in column C put a CONCATENATE that goes (for cell C2) =CONCATENATE(A2, "::", B2)
23:35
<@Vash>
mushroom doesn't have much of a strong taste. so I can taste everything equally... ?
23:35
< celticminstrel>
I need at least black olives and mushrooms or it's boring. >_>
23:35
<~Vornicus>
Or whatever symbol in the middle is guaranteed to not be in either serial number.
23:35
<@Vash>
as does pepperoni
23:35
<@Vash>
.....
23:35
<@Vash>
vorn and I dislike olives
23:35
<@Vash>
so, uh
23:36
<@Vash>
no olives in anything ever
23:36
<~Vornicus>
Then in column D put a placeholder. 1 or something.
23:36
< celticminstrel>
Well, feta cheese can substitute for the olives, sorta.
23:36
<@Vash>
won't that be too salty?
23:36 * Vash tends to groupd feta with parmessan and havarti cheese... o_O
23:36
<~Vornicus>
Do this for both sheets, then copy both C columns as values into the same column in the third sheet
23:37
< Reiv>
Vorn: Uh er
23:37
<~Vornicus>
Now, over in the data tab there's a button that says "remove duplicates". Select your column of Cs and hit that.
23:38
<~Vornicus>
Reiv: uh er?
23:38
< celticminstrel>
Well... it does make it saltier, I guess,
23:38
< Reiv>
This is exceptionally clever but obsolete. I'm officially on Plan B now
23:38
<~Vornicus>
Okay.
23:38 * Reiv sees what you were doing though, it's awesome~
23:38
< Reiv>
Concatenate to force joins, haha
23:39
< celticminstrel>
Of course there's normal cheese too.
23:39
<~Vornicus>
Excel is scary powerful.
23:39
<~Vornicus>
Once in a while I forget precisely how powerful it really is.
23:41
< Reiv>
So, the Simple Plan B:
23:42
< Reiv>
List of all serials from one side, list of serials from the other side
23:42
< Reiv>
Want all serials on side A not in side B
23:42
< Reiv>
This is easy, yes? >_>
23:42
< Reiv>
I can even force no-duplicates.
23:43
< syksleep>
wheeee, this morning is good
23:43 syksleep is now known as sykwerk
23:43
<&ToxicFrog>
woop
23:43 himi [fow035@D741F1.243F35.CADC30.81D435] has joined #code
23:43 mode/#code [+o himi] by ChanServ
23:43
< sykwerk>
sometimes it's the second bright spark idea that's the best
23:46
< sykwerk>
ugh, work again
23:46
< sykwerk>
but oh well
23:46
< sykwerk>
only two more days!
23:50 * Reiv prod Vorn cheerfully enough
23:51
<~Vornicus>
Reiv: yeah, VLOOKUP, tell it to return column 1, and use exact mach
23:51
<~Vornicus>
match
23:52
< Reiv>
... ahahaha then filter it yes?
23:52
<~Vornicus>
exact match gives you an N/A error when the thing looks up.
23:53
<~Vornicus>
er, when it can't find the thing you're looking for.
23:58
<&McMartin>
CURLM_OUT_OF_MEMORY (3)
23:58
<&McMartin>
You are doomed.
23:59
<~Vornicus>
that is a pretty doomy error.
--- Log closed Thu Nov 15 00:00:51 2012
code logs -> 2012 -> Wed, 14 Nov 2012< code.20121113.log - code.20121115.log >

[ Latest log file ]