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