--- Log opened Fri Oct 28 00:00:47 2011 |
00:35 | | celticminstrel [celticminst@Nightstar-5d22ab1d.cable.rogers.com] has joined #code |
00:40 | | Omega is now known as Alek |
00:41 | < sshine> | the intro course at DIKU (Copenhagen, Denmark) is in Standard ML. |
00:42 | < sshine> | the second programming course is in Java. |
00:42 | < TheWatcher> | Back when I was an undergrad, manchester did SML, MIPS assembler, and C in parallel. |
00:42 | < sshine> | TheWatcher, as intro? :) |
00:42 | < TheWatcher> | Yep |
00:43 | < TheWatcher> | Now they do Java. |
00:43 | < McMartin> | That's an odd combination unless you're also teaching compilers |
00:43 | | * McMartin tends to think you should start at one level of abstraction and move down |
00:43 | < TheWatcher> | (oh, and teach-yourself-PHP-disasterously) |
00:43 | < sshine> | haha |
00:43 | < TheWatcher> | (but that's a tautology, really) |
00:43 | < McMartin> | (Is there non... right) |
00:43 | < kwsn> | you have reinvented php better |
00:43 | | You're now known as TheWatcher[T-2] |
00:43 | < kwsn> | but that's still no justification |
00:43 | < McMartin> | BUT THAT IS STILL NO EXCUSE |
00:44 | < celticminstrel> | Who has reinvented PHP better? |
00:44 | < sshine> | I like Javascript: The Good Parts... maybe there's a PHP: The Good Parts pamphlet. |
00:44 | < kwsn> | celticminstrel: http://colinm.org/language_checklist.html |
00:44 | < celticminstrel> | (I like JavaScript actually. It's kinda a bit Pythony.) |
00:44 | < Alek> | Monty Pythony? |
00:44 | < sshine> | celticminstrel, I don't see the resemblance. |
00:45 | | Derakon[AFK] is now known as Derakon |
00:45 | < McMartin> | sshine: JS:TGP is insane |
00:45 | | You're now known as TheWatcher[zZzZ] |
00:45 | < sshine> | celticminstrel, except that they can both do funky, dynamic things with "classes" and are multiparadigm. |
00:45 | < sshine> | McMartin, in what way? |
00:45 | < McMartin> | "JavaScript, of course, doesn't have a currying operator but we can fix that by modifying Function.prototype" |
00:45 | < McMartin> | He considers "the language has keywords" to be one of "the awful parts" |
00:46 | < McMartin> | Along with "IEEE 754 compliance" |
00:47 | < sshine> | I don't recall the bad parts. I just liked being given a sufficient subset of a confusing language. |
00:48 | < celticminstrel> | sshine: It's not a big resemblance. |
00:48 | < celticminstrel> | But there are some similarities. |
00:53 | | * Derakon eyes that checklist, amuseds at the "has/lacks" for all the really flamewar-capable stuff, like significant whitespace and strong typing. |
00:53 | < celticminstrel> | ...I don't understand how that checklist is supposed to work. |
00:54 | <@Derakon> | Someone suggests something, you respond with the checklist with appropriate items checked off. |
00:55 | <@Derakon> | E.g. http://subterrane.com/files/spamsolution.html |
00:58 | <@Derakon> | "Taking the wider ecosystem into account, I would like to note that...[ ]You have reinvented [Lisp|Javascript|Java|C++|PHP] but worse; [ ]You have reinvented PHP but better, but that's still no justification; [ ]You have reinvented Brainfuck but non-ironically." |
00:58 | <@Derakon> | Didn't McM mention that Brainfuck was originally non-ironic? |
00:58 | < ToxicFrog> | Yes. |
00:58 | < ToxicFrog> | Also, my favorite part of that checklist is still: |
00:58 | < ToxicFrog> | [ ] Your type system is unsound [ ] Your language cannot be unambiguously parsed |
00:58 | < ToxicFrog> | [ ] a proof of same is attached |
00:58 | < ToxicFrog> | [ ] invoking this proof crashes the compiler |
00:59 | < celticminstrel> | "spooky action at a distance"? |
00:59 | <@Derakon> | Quantum entanglement. |
01:00 | < celticminstrel> | Right, but how does that fit in this context? |
01:00 | | * Vornicus-Latens invented a language once. |
01:00 | < ToxicFrog> | Hmm. premake looks pretty sweet. |
01:00 | <~Vornicus-Latens> Its primary feature was that all "keywords" were symbolic: if was "??" |
01:01 | | * celticminstrel wants to invent a language, even if it's only for fun and no-one ever uses it. |
01:01 | < ToxicFrog> | Vornicus-Latens: every time I invent a language it ends up with the conclusion that I've invented a subset of (lua|lisp|forth) for a specific purpose, and I might as well reuse an existing implementation of same instead~ |
01:01 | <~Vornicus-Latens> heh |
01:01 | < Alek> | lol |
01:01 | < ToxicFrog> | ...ok, sometimes I've reinvented part of bash or cpp as well. |
01:01 | < Alek> | or it's just a renaming of another existing language. |
01:01 | < Alek> | see: brainfuck. |
01:02 | < Alek> | also wasn't there a chzbrgr version of C? |
01:02 | <~Vornicus-Latens> other than that it was Fucking Boring |
01:02 | <~Vornicus-Latens> and Fucking Unreadable |
01:02 | <@Derakon> | There was a Cheezburger language, period. |
01:02 | < ToxicFrog> | There was lolcode, but that's not chzbrgr C, it's an interpreted language. |
01:03 | < ToxicFrog> | although it does take some inspiration from C. |
01:03 | < ToxicFrog> | (can haz stdio) |
01:03 | < celticminstrel> | "AI-complete"? |
01:03 | <@Derakon> | Hard. |
01:03 | < celticminstrel> | I did re-invent Befunge once. |
01:03 | < ToxicFrog> | celticminstrel: "implementing this is equivalent to implementing a true AI" |
01:03 | < celticminstrel> | And wrote an interpreter in Python. |
01:04 | < ToxicFrog> | "I look forward to your multiple Nobel prizes and/or the overthrow of humanity as a result of this project" |
01:04 | | Derakon [Derakon@Nightstar-f68d7eb4.ca.comcast.net] has left #code [] |
01:04 | | Derakon [Derakon@Nightstar-f68d7eb4.ca.comcast.net] has joined #code |
01:04 | < Derakon> | Whoops. |
01:04 | < celticminstrel> | No idea why I didn't just write a Befunge interpreter instead. <_< |
01:04 | | * McMartin hands celticminstrel a copy of SpaceChem |
01:05 | < celticminstrel> | Sure, that'd be nice. ;) |
01:05 | < McMartin> | Also, "spooky action at a distance" - usually used to mock aspect-oriented features |
01:05 | < celticminstrel> | Ahhh. |
01:05 | < McMartin> | Also applies with full force to languages with virtual functions |
01:05 | < McMartin> | Arguably also with pointer aliasing. >_> |
01:05 | < Derakon> | How about COME FROM~? |
01:06 | < McMartin> | COME FROM is the original aspect oriented proposal. |
01:06 | < celticminstrel> | Pointer aliasing? |
01:06 | < McMartin> | [*] |
01:06 | < McMartin> | int foo(int *a, int *b) { *a = 3; *b = 5; return *a; } |
01:06 | < McMartin> | Returns 3, unless a and b are aliased - that is, that they point to the same location. Then it returns 5. |
01:07 | < McMartin> | In the general case, deciding whether or not a and b are aliased is an undecidable problem. |
01:07 | < celticminstrel> | Uh, can't you just check if(a == b)? |
01:07 | < McMartin> | At compile time? |
01:07 | < celticminstrel> | Oh. |
01:07 | < McMartin> | That's the halting problem. |
01:08 | < McMartin> | (Damn near everything turns out to be the halting problem, in fact; this is not a useful critique~) |
01:08 | < McMartin> | (The key phrase there is *deciding*) |
01:08 | < McMartin> | (Coming up with equivalence classes such that if a == b then they are in the same equivalence class is *quite* decidable.) |
01:09 | < McMartin> | (It's also so general that it is typically utterly useless for global optimization.) |
01:09 | < McMartin> | (But not always!) |
01:10 | < McMartin> | At any rate, you can make a claim that the *b = 5 is "spooky action at a distance" there, since something in a completely separate and possibly as-yet-unwritten part of the code affects the return value. |
01:10 | < McMartin> | Also, time to fill in that footnote |
01:11 | < McMartin> | [* LISP included some constructs named, IIRC, 'around' as part of its object system. This was functionally equivalent to COME FROM but was much better structured and seriously intended. AspectJ is basically a reimplementation of this fraction of the Common LISP Object System.) |
02:16 | | gnolam [lenin@Nightstar-202a5047.priv.bahnhof.se] has quit [[NS] Quit: Z?] |
02:53 | | Kindamoody[zZz] is now known as Kindamoody |
03:23 | < sshine> | meh! |
03:23 | < sshine> | this exercise is provocating me! |
03:25 | < sshine> | "3: Write a grep(Word) that returns a list of songs containing Word." |
03:26 | < sshine> | my grep uses a few seconds. |
03:26 | < sshine> | "4: Write a reverse index from words to lists of songs that contain them." |
03:27 | < sshine> | there are 5000 words in the test set. i.e. 5000*k. ;-) |
03:28 | <~Vornicus-Latens> by words, you mean actual words, right? So f'rinstance "Spoiler Alert" Would show up with "alert" and not "ale"? |
03:29 | <~Vornicus-Latens> (Or are we doing full wild string search a la winamp? |
03:34 | <~Vornicus-Latens> note that doing 4 makes 3 trivial |
03:37 | < sshine> | Vornicus-Latens, yeah, full words. |
03:37 | < sshine> | actually, doing a reverse index of 5000 words and 27000 songs in 2 hours isn't that bad, right? |
03:38 | <~Vornicus-Latens> Um |
03:38 | < Alek> | don't you mean "provoking"? |
03:38 | < McMartin> | This should take no longer than the time spent loading in the file containing the song list |
03:38 | < sshine> | Alek, yes. ;-) |
03:39 | < McMartin> | s/no longer/no perception of longer/ |
03:39 | < sshine> | right. |
03:39 | < McMartin> | Run time should be wildly I/O bound. |
03:39 | | Serah [Z@Nightstar-5aa18eaf.balk.dk] has joined #code |
03:39 | < sshine> | I think the overhead might be list traversal. |
03:39 | < sshine> | (besides message passing) |
03:39 | <~Vornicus-Latens> Yeah, no, this is io bound. |
03:40 | < McMartin> | You're doing something *seriously* screwy here if it's taking you 2 hours. |
03:41 | <~Vornicus-Latens> Full index for winamp-style searching is O(nl^2) where l is the length of the longest word, and n is the number of words. |
03:41 | | Stalker [Z@Nightstar-5aa18eaf.balk.dk] has quit [Ping timeout: 121 seconds] |
03:41 | < celticminstrel> | Why winamp-style? |
03:41 | < sshine> | Vornicus-Latens, thanks for that info! |
03:41 | < celticminstrel> | The name, not the concept. |
03:42 | < sshine> | celticminstrel, I suppose the assumption is that many people know how searching in winamp works. |
03:42 | <~Vornicus-Latens> celticminstrel: Because winamp is a program that a lot of people are familiar with, and it has good search semantics, including live filtering. |
03:42 | < celticminstrel> | Whereas I have no clue. <_< |
03:42 | < celticminstrel> | Ah, I see. |
03:43 | <~Vornicus-Latens> (in winamp, you can put in words or word fragments separated by spaces and it will find all the songs with those fragments in them) |
03:45 | < Phox> | Quite handy, especially considering my playlist is somewhere above 10,000 songs |
03:46 | <~Vornicus-Latens> (it is also Fucking Fast.) |
03:47 | <~Vornicus-Latens> (which says Index) |
03:48 | < Phox> | Yeah. I think that may be why it's so slow to load the playlist. |
03:49 | < Phox> | I don't know too much about indexing schemes, but they're usually incremental, no? |
03:49 | <~Vornicus-Latens> no, the index doesn't take long to build, except that you need rather a bit of ram for it sometimes. |
03:50 | <~Vornicus-Latens> In winamp's case I don't think it stores any metadata outside the mp3s, so all that shit it gets, well, it has to open a file and parse tags for each song. |
03:53 | < celticminstrel> | That's an annoying thing about iTunes; it seems to store some of its metadata in a different place, but when it finds metadata in the actual files, it overrides anything else (meaning you can't change it from within iTunes). |
03:54 | <~Vornicus-Latens> I never had that problem. |
03:55 | <~Vornicus-Latens> anyway, the kitchen and a variety of cleaning supplies call. |
03:58 | < sshine> | McMartin, I'm extrapolating. a grep takes 3 seconds. |
03:59 | < McMartin> | That is all kinds of way the fuck too long. |
03:59 | < sshine> | yeah. |
03:59 | < celticminstrel> | If you mean in iTunes, you probably never had any files with metadata in them. |
03:59 | < celticminstrel> | Either that or it was finally fixed. |
03:59 | < sshine> | I'll try with a regular list fold rather than this framework and see if it'll take significantly less. |
04:01 | <~Vornicus-Latens> http://en.wikipedia.org/wiki/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm ANd make sure you're doing your per-item search the right way, if you're not indexing |
04:02 | < McMartin> | Vornicus-Latens: Even with complete re-search 3 seconds is way the fuck too long. |
04:03 | <~Vornicus-Latens> btw what language |
04:07 | < sshine> | hmm... apparently lists:foldl(..., ..., a_27k_list) takes three seconds in itself. |
04:08 | < McMartin> | That's... genuinely surprising. |
04:08 | < sshine> | I'll post that. |
04:08 | < sshine> | parsing the file takes much less time. |
04:08 | < sshine> | sorry... it takes just about less than a second. |
04:08 | < McMartin> | In Haskell I can do an Accumulate in less than half a second |
04:09 | < sshine> | the folding itself takes about .5-1 second. |
04:10 | < McMartin> | OK, that's more in line with what I'd expect. |
04:10 | < McMartin> | But if this is a split on full words, this would seem to be doing it wrong |
04:11 | < sshine> | the function that parses each track during that fold constructs a list for each track, and those lists can be hundred of tuples long. |
04:12 | < sshine> | s/(?<=hundred)/s/ |
04:12 | < sshine> | okay, so now I know where the time is spent. |
04:13 | < sshine> | I just need to cut down on all the list making and fold on the binary patterns directly. |
04:13 | < McMartin> | ... heh |
04:14 | < McMartin> | After evaluating it once, Haskell is all "Oh, I already evaluated that" and thereafter doing the fold is instantaneous |
04:14 | < sshine> | heh |
04:18 | < McMartin> | Man. |
04:18 | < McMartin> | Programming concepts I miss when I don't get to have them: "else" clauses in try or for statements. |
04:18 | <~Vornicus-Latens> What language is this? |
04:19 | < McMartin> | C++, at the moment. |
04:19 | <~Vornicus-Latens> Ah. |
04:19 | < McMartin> | I think only Python does "for" "else" |
04:19 | <~Vornicus-Latens> I mean, sshine |
04:19 | <~Vornicus-Latens> Yeah, for/else is great. |
04:19 | <~Vornicus-Latens> Never used try/else though |
04:20 | < celticminstrel> | try/else is useful; for/else is a touch confusing. |
04:20 | < McMartin> | for/else is what happens when someone used to functional programming needs to write an iteration... |
04:20 | < McMartin> | ... and needs his base case. |
04:20 | < celticminstrel> | ...wait, what does try/else do again? |
04:20 | < McMartin> | The else clause is executed, outside of the try block, if no exception was thrown in the try block. |
04:20 | < celticminstrel> | Ah right. |
04:21 | < Lingerance> | <McMartin> I think only Python does "for" "else" <-- PHP has had it since at least 4 |
04:21 | < celticminstrel> | For a second I was thinking it was if any exception was thrown. |
04:21 | < McMartin> | For for/else, the else clause is executed if you did not leave via "break" |
04:21 | < celticminstrel> | Lingerance: I dunno if that counts; isn't PHP like a parasitic language that tries to add everything new as it becomes popular? |
04:22 | < Lingerance> | Uhh, PHP 4 is ancient... |
04:22 | < celticminstrel> | Yeah, that interpretation of for/else seems a bit odd. |
04:22 | <~Vornicus-Latens> the "except" part is for if an exception is thrown, and if an exception is thrown that doesn't match any of the except clauses, it just throws it further up the chain) |
04:22 | < celticminstrel> | And you can have "except" with no argument to catch any exception, right? |
04:22 | < celticminstrel> | With no type at least. |
04:23 | < McMartin> | Python is older than PHP. |
04:24 | < Derakon> | CM: yes. |
04:27 | < sshine> | Vornicus-Latens, the language I use for my Map-Reduce framework is Erlang. |
04:28 | | cpux [cpux@Nightstar-c5874a39.dyn.optonline.net] has joined #code |
04:28 | < sshine> | celticminstrel, many languages add everything new as it becomes popular. PHP manages to do it in particularly stupid and ugly ways. |
04:28 | < celticminstrel> | Heh. |
04:30 | < sshine> | I'm waiting for PHP to get lambda expressions and they decide to do it TCL-style (anonymous functions are really functions with obscure names), or something like that. |
04:30 | < Lingerance> | PHP has anon functions |
04:30 | < sshine> | no, I take that back. I'm just going to wait and see how they do it and let them surprise me. |
04:30 | < Lingerance> | Since 5.3 IIRC. |
04:31 | < sshine> | oh! |
04:31 | < Lingerance> | You have to manually tell PHP what variables it can grab from the local scope and let the function use though. |
04:31 | < celticminstrel> | TCL assigns random obscure names to anonymous functions? |
04:32 | < sshine> | celticminstrel, TCL doesn't have them, but that's the way some implementations do it. |
04:32 | < celticminstrel> | Uh, what do you mean? |
04:33 | < sshine> | celticminstrel, TCL doesn't have anonymous procedures, but you can implement them in the language. |
04:33 | < sshine> | celticminstrel, TCL is like the string-variant of LISP. |
04:33 | | * McMartin notes in passing that JS totally took a buncha stuff from scheme. |
04:34 | < sshine> | "everything is a list... unless it's a string, or a number, or something else." |
04:34 | < sshine> | except a number behaves like a string in most cases. *shrug* old languages. |
04:34 | < McMartin> | Old languages are strongly typed >_> |
04:53 | | Serah [Z@Nightstar-5aa18eaf.balk.dk] has quit [Ping timeout: 121 seconds] |
05:20 | | Rhamphoryncus [rhamph@Nightstar-14eb6405.abhsia.telus.net] has joined #code |
05:22 | | Stalker [Z@Nightstar-3602cf5a.cust.comxnet.dk] has joined #code |
05:24 | | cpux [cpux@Nightstar-c5874a39.dyn.optonline.net] has quit [[NS] Quit: Well, most things get better when I kick them!] |
05:53 | | kwsn [kwsn@Nightstar-635d16fc.org] has quit [Ping timeout: 121 seconds] |
06:03 | | kwsn [kwsn@Nightstar-635d16fc.org] has joined #code |
06:31 | | Attilla [Obsolete@Nightstar-f29f718d.cable.virginmedia.com] has joined #code |
06:35 | | Derakon is now known as Derakon[AFK] |
06:55 | | celticminstrel [celticminst@Nightstar-5d22ab1d.cable.rogers.com] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!] |
08:00 | | Rhamphoryncus [rhamph@Nightstar-14eb6405.abhsia.telus.net] has quit [Ping timeout: 121 seconds] |
08:03 | | Attilla [Obsolete@Nightstar-f29f718d.cable.virginmedia.com] has quit [Ping timeout: 121 seconds] |
08:36 | | Rhamphoryncus [rhamph@Nightstar-14eb6405.abhsia.telus.net] has joined #code |
09:07 | | You're now known as TheWatcher |
09:08 | | Attilla [Obsolete@Nightstar-f29f718d.cable.virginmedia.com] has joined #code |
09:45 | | Stalker [Z@Nightstar-3602cf5a.cust.comxnet.dk] has quit [Ping timeout: 121 seconds] |
10:04 | | AnnoDomini [annodomini@FFB3F3.4C5BE8.2014E2.DC0864] has joined #code |
11:22 | | Rhamphoryncus [rhamph@Nightstar-14eb6405.abhsia.telus.net] has quit [Ping timeout: 121 seconds] |
11:24 | | Rhamphoryncus [rhamph@Nightstar-14eb6405.abhsia.telus.net] has joined #code |
12:08 | | Kindamoody is now known as Kindamoody|out |
12:17 | | Attilla [Obsolete@Nightstar-f29f718d.cable.virginmedia.com] has quit [[NS] Quit: ] |
12:55 | | Attilla [Obsolete@Nightstar-f29f718d.cable.virginmedia.com] has joined #code |
13:23 | | gnolam [lenin@Nightstar-202a5047.priv.bahnhof.se] has joined #code |
14:38 | | AnnoDomini [annodomini@FFB3F3.4C5BE8.2014E2.DC0864] has quit [[NS] Quit: Away!] |
15:12 | | celticminstrel [celticminst@Nightstar-5d22ab1d.cable.rogers.com] has joined #code |
16:01 | | AnnoDomini [annodomini@60F158.737D66.CA1918.CC7562] has joined #code |
16:20 | | AnnoDomini [annodomini@60F158.737D66.CA1918.CC7562] has quit [[NS] Quit: leaving] |
16:27 | | Stalker [Z@Nightstar-5aa18eaf.balk.dk] has joined #code |
17:36 | | cpux [cpux@Nightstar-c5874a39.dyn.optonline.net] has joined #code |
17:40 | | Kindamoody|out is now known as Kindamoody |
17:51 | | celticminstrel [celticminst@Nightstar-5d22ab1d.cable.rogers.com] has quit [Connection closed] |
18:45 | | Omega [omegaboot@Nightstar-10752b3e.il.comcast.net] has joined #code |
18:45 | | cpux|2 [cpux@Nightstar-c5874a39.dyn.optonline.net] has joined #code |
18:45 | | Netsplit *.net <-> *.split quits: cpux, Alek, Namegduf, Kindamoody, gnolam, Rhamphoryncus, Tarinaky_, kwsn, @kazrikna, Stalker, (+6 more, use /NETSPLIT to show all of them) |
18:46 | | Netsplit over, joins: @jerith, @Reiver, Stalker, gnolam, froztbyt1, Derakon[AFK], kwsn, @kazrikna, Lingerance, Rhamphoryncus (+5 more) |
18:48 | | cpux [cpux@Nightstar-c5874a39.dyn.optonline.net] has quit [Ping timeout: 121 seconds] |
19:00 | | Attilla [Obsolete@Nightstar-f29f718d.cable.virginmedia.com] has quit [Ping timeout: 121 seconds] |
19:05 | | cpux|2 is now known as cpux[MST3K] |
19:11 | | Netsplit *.net <-> *.split quits: Lingerance, Derakon[AFK], Phox, @Reiver, froztbyt1, kwsn, @kazrikna, Tarinaky_, @jerith, gnolam, (+4 more, use /NETSPLIT to show all of them) |
19:11 | | froztbyte [froztbyte@Nightstar-dc394964.za.net] has joined #code |
19:11 | | Netsplit over, joins: Lingerance |
19:11 | | Netsplit over, joins: jerith, Reiver, kazrikna |
19:11 | | Kindamoody|out [Kindamoody@Nightstar-5507a6b5.tbcn.telia.com] has joined #code |
19:11 | | Netsplit over, joins: Stalker, gnolam, Derakon[AFK], Rhamphoryncus, Phox, Namegduf, Tarinaky_ |
19:11 | | ServerMode/#code [+ooo kazrikna jerith Reiver] by *.Nightstar.Net |
19:11 | | 459AAA8RO [rhamph@Nightstar-14eb6405.abhsia.telus.net] has joined #code |
19:12 | | Kindamoody|out is now known as Kindamoody |
19:14 | | Rhamphoryncus [rhamph@Nightstar-14eb6405.abhsia.telus.net] has quit [Ping timeout: 121 seconds] |
19:16 | | kwsn [kwsn@Nightstar-635d16fc.org] has joined #code |
19:35 | | Omega is now known as Alek |
19:40 | | Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has joined #code |
19:43 | | Kindamoody is now known as Kindamoody[zZz] |
20:23 | | Serah [Z@Nightstar-5aa18eaf.balk.dk] has joined #code |
20:24 | | Stalker [Z@Nightstar-5aa18eaf.balk.dk] has quit [Ping timeout: 121 seconds] |
20:56 | < kwsn> | every company has that one dept taht's full of screwballs |
20:56 | < kwsn> | ours seems to be the test engineers |
21:01 | | Serah [Z@Nightstar-5aa18eaf.balk.dk] has quit [[NS] Quit: Into the hole again, we hurried along our way, into a once-glorious garden now seeped in dark decay.] |
21:09 | | cpux[MST3K] is now known as cpux |
21:13 | <@jerith> | Ours is the Cape Town dev team. Of which I am proudly a member. |
21:14 | < kwsn> | oh? |
21:14 | <@jerith> | We're the crazy ones. |
21:15 | < kwsn> | how so? |
21:15 | <@jerith> | We wander off and change the world. |
21:15 | <@jerith> | And we do things like arrive at the Monday ops meeting in ninja gear. |
21:23 | | 459AAA8RO is now known as Rhamphoryncus |
21:29 | <@jerith> | https://twitter.com/DEVOPS_BORAT/status/130003069500010496 |
21:31 | < TheWatcher> | snrk |
21:33 | < TheWatcher> | (is the horrendous English on there deliberate, or is whoever updates it really that bad. (nb: I work with students, I can't tell anymore)) |
21:35 | <@jerith> | It's Devops Borat. The English is deliberately bad. |
21:37 | < TheWatcher> | Thank goodness >.> |
21:37 | <@jerith> | DevOps Borat |
21:37 | <@jerith> | @DEVOPS_BORAT Kazakhstan |
21:37 | <@jerith> | Cultural Learnings of DevOps for Make Benefit Glorious Teams of Devs and Ops. |
21:37 | <@jerith> | See also: http://www.imdb.com/title/tt0443453/ |
21:41 | <@jerith> | http://twitter.com/DEVOPS_BORAT/status/129268121902120960 |
21:41 | < TheWatcher> | Hee |
21:43 | < McMartin> | Quite possibly my least favorite metaphor. |
21:44 | < McMartin> | "Ninja" should be reserved for programs that cover their tracks well or interoperate extremely transparently as shims. |
21:44 | <@jerith> | We had a code ninja at my previous workplace. |
21:45 | < McMartin> | Did he silently modify code in the dead of night, assassinating the build before anyone knew what had happened? |
21:45 | <@jerith> | We'd ask him when something was going to be released, and he'd reveal that it had actually been running in productio nfor the past three weeks. |
21:45 | < McMartin> | Ha ha |
21:45 | < McMartin> | OK, that is an acceptable use |
21:45 | <@jerith> | This was a regular occurrance. |
21:46 | < McMartin> | This implies that the features were either very subtle, or not good enough >_> |
21:46 | <@jerith> | (To be fair to him, he was working on our hosting setup. We didn't have the infrastructure to test widely outside of production.) |
21:47 | < McMartin> | (Aha. So is this something where you kind of have panic switches and reverse panic switches, for use during off-hours to see how it works out?) |
21:47 | | Derakon [chriswei@Nightstar-f68d7eb4.ca.comcast.net] has joined #code |
21:47 | <@jerith> | And the features are things like "can handle hosting for several million websites without falling over". |
21:47 | | * Derakon winces as he quietly pretends to not listen to the heated argument behind him. |
21:47 | | * McMartin suggests shoryukens |
21:48 | < Derakon> | I don't think that those are an accepted data processing tool. |
21:48 | < McMartin> | Nonsense! |
21:48 | < McMartin> | The flowchart never lies! |
21:48 | <@jerith> | (Mostly, he turned stuff on for a subset of the hosting cluster. As confidence grew, he switched more machines over until it was deployed everywhere.) |
21:48 | < Derakon> | Heh. |
21:48 | < McMartin> | ("Have we learned anything?" -- YES --> "Really?" -- NO --> "START") |
21:49 | < McMartin> | jerith: That sounds eminently sensible. One would also need that if one were big enough that no lab is big enough to truly model production beyond smoke tests. |
21:49 | <@jerith> | Yup. |
21:49 | < McMartin> | And yeah, that would qualify as "very subtle" here, unless it had been deployed for three weeks and still fell over under the target load. |
21:49 | <@jerith> | We pretty much did that at EC2 as well, although we had sizeable test infrastructure there. |
21:50 | <@jerith> | I kept trying to get out of selling domains and lying about financial data and start working with him on the hosting side, but never quite managed it. |
21:51 | | * TheWatcher finishes his second Mediawiki skin, is now probably officially certifiable. |
21:52 | | * Derakon hands TW an official Certificate of Certification, confirming that he is officially certifiable. |
21:52 | | * jerith hands TheWatcher a "Professional Mediawiki Skinner" certificate. |
21:55 | | Stalker [Z@2C3C9C.B2A300.F245DE.859909] has joined #code |
22:03 | | * Derakon eyes http://derakon.dyndns.org/~chriswei/temp2/plot.png |
22:04 | < Derakon> | The aesthetics here need some work, clearly... |
22:08 | < gnolam> | http://slashdot.org/story/11/10/27/213231/is-perl-better-than-a-randomly-generat ed-programming-language |
22:11 | < Derakon> | I linked that yesterday. It pissed TW off. |
22:14 | < Rhamphoryncus> | The premise sounds really good |
22:15 | < Rhamphoryncus> | Not the testing of perl. We all know it sucks, anecdotally. The point is you can design tests for language features |
22:18 | < McMartin> | Whoops |
22:18 | | * McMartin notices he's been testing half his code on the wrong branch |
22:18 | < McMartin> | ... and it worked |
22:18 | < McMartin> | This is disquieting |
22:19 | | * Derakon discovers that he can't implement a feature nobody wants because the data it depends on has an unknown format and the guy who wrote the program that generates that data doesn't remember the meaning behind that format. |
22:19 | < Derakon> | Hooray! |
22:19 | < Derakon> | (s/nobody/nobody but my boss/) |
22:21 | < gnolam> | The stereo thingy? |
22:21 | < Derakon> | No, that's done and buried. |
22:22 | < Derakon> | This is providing a plot of how a given postprocessing procedure has modified your data. |
22:22 | < Derakon> | My boss has a continual issue with "People are Doing It Wrong, we need to modify our software to force them to Do It Right." |
22:22 | < Derakon> | Which includes forcing them to look at plots they don't care about. |
22:23 | < Derakon> | (Except I'm taking "forcing" to mean "I'll provide a button that will display the plot if you care.") |
22:23 | | * jerith is instinctively hostile to that mode of thinking. |
22:23 | < Derakon> | You can lead a horse to water, but you can't make him drink unless you shove his head beneath the surface! |
22:24 | <@jerith> | Because I'm atypical enough that the "right" way often doesn't apply to me. |
22:24 | <@jerith> | Take the argument I had with a doctor about malaria meds today. |
22:25 | <@jerith> | She wants me to have the weekly one, because I don't have to take a pill every day. |
22:25 | <@jerith> | I want the daily one, because I can take a pill every day reliably, but will /never/ remember to take the weekly one. |
22:26 | <@jerith> | (Also, the daily one has listed side effects that I can handle, whereas the weekly one's side effects tend more toward the psychiatrics than the gastric.) |
22:31 | | * McMartin is a little unsure about the reasoning behind the photo for http://arstechnica.com/business/news/2011/10/tor-project-patches-critical-flaw-i n-its-anonymizing-network.ars |
22:34 | | * TheWatcher eyes, can't believe there isn't an established MW extension for rollovers for images, guesses he's going to have to make one, then |
22:35 | < Derakon> | McM: I guess the broken leg is the flaw and the cast is the patch? |
22:35 | < TheWatcher> | ... yes, I'm a little hazy on the reasoning there, too |
22:38 | < McMartin> | "We couldn't come up with anything, so YAY PUPPIES" works, I guess |
22:59 | < McMartin> | Heh. "It's a torrier, obv" |
23:00 | < TheWatcher> | |
23:00 | < ToxicFrog> | |
23:07 | | celticminstrel [celticminst@Nightstar-5d22ab1d.cable.rogers.com] has joined #code |
23:10 | | * McMartin asked the question in several channels - that was the best answer he got. |
23:12 | | Derakon [chriswei@Nightstar-f68d7eb4.ca.comcast.net] has quit [[NS] Quit: leaving] |
23:23 | | You're now known as TheWatcher[T-2] |
23:26 | | You're now known as TheWatcher[zZzZ] |
23:30 | | Attilla [Obsolete@Nightstar-f29f718d.cable.virginmedia.com] has joined #code |
--- Log closed Sat Oct 29 00:00:01 2011 |