--- Log opened Wed Jun 08 00:00:41 2011 |
00:01 | | shade_of_cpux is now known as cpux |
00:03 | < simon_> | I wonder why git depends on emacsen-common in Ubuntu 11.04. |
00:04 | | AnnoDomini [annodomini@Nightstar-96eef036.adsl.tpnet.pl] has quit [[NS] Quit: leaving] |
00:18 | | wildfire198 [wildfire198@Nightstar-e17b3ce9.bb.sky.com] has left #code [] |
00:26 | < RichardBarrell> | simon_: I didn't even know that there were applications that pasted from the selection buffer when you hit shift+insert. The normal thing in X11 is for middle-click to mean "paste from the selection buffer". |
00:28 | < simon_> | RichardBarrell, my middle-click doesn't work. not sure why, but I suspect it has to do with VirtualBox. |
00:28 | < RichardBarrell> | Ouuuuch. |
00:28 | < simon_> | that is, my fake middle-click doesn't work. I only have two buttons. I should attach an extra mouse and see if that does it. :) |
00:29 | < RichardBarrell> | Zomg, who even MAKES mice which don't have 3 buttons? |
00:29 | < simon_> | laptop makers. |
00:31 | < RichardBarrell> | Point. |
00:31 | < RichardBarrell> | Really I don't understand why laptop touchpads are split into 2 buttons instead of 3. It just seems like such a trivial win. |
00:32 | < ToxicFrog> | Ditto. |
00:32 | < ToxicFrog> | Even on a thinkpad - the clit mouse has three buttons and the touchpad has two. On the same machine. |
00:32 | < Vornicus> | Even mac mice have three buttons. |
00:33 | < Derakon> | Last I checked you had to squeeze the mouse to activate one of 'em though. |
00:33 | < Derakon> | And lift your left finger if you wanted to right-click. |
00:33 | < celticminstrel> | The Magic Mouse has four buttons, actually. |
00:34 | < Vornicus> | Yeah, pressing the ball is middleclick. |
00:34 | < celticminstrel> | Yeah. |
00:34 | < Vornicus> | SO it's "four" |
00:34 | < celticminstrel> | Or wait, is that the magic mouse? |
00:34 | < celticminstrel> | I might be confusing the names. |
00:35 | < ToxicFrog> | I haven't seen an actual mouse with only two buttons in years, but apparently touchpad manufacturers are crazy. |
00:35 | < ToxicFrog> | They can sit in the corner with the LCD manufacturers~ |
00:35 | < Derakon> | Heh. |
00:35 | < Derakon> | LCD manufacturers have decided that Change is Hard. |
00:37 | < celticminstrel> | I think magic mouse is actually the multitouch one. |
00:38 | < ToxicFrog> | Derakon: which is why they've completely retooled from 16:10 to 16:9? |
00:38 | < ToxicFrog> | No. |
00:38 | < Derakon> | TF: as opposed to increasing DPI? |
00:38 | < ToxicFrog> | What they've decided is that no-one actually uses computers for anything but watching movies, so they might as well make the cheaper 16:9 panels. |
00:39 | < gnolam> | I blame it all on the incredibly stupid diagonal measurement. |
00:39 | < Derakon> | If that were at fault then we'd all have square displays. |
00:39 | < Derakon> | Or more square, anyway. |
00:40 | < ToxicFrog> | AFAICT, what's happened is: |
00:40 | < ToxicFrog> | "HD" has become a thing, so they can say "HD display" and people will buy it without actually looking at the resolution or aspect ratio; |
00:40 | < gnolam> | The whole point of wider screens is that you can sell screens with a longer diagonal for less area. |
00:40 | < ToxicFrog> | + 16:9 panels are cheaper to make than 16:10, 5:4 or 4:3 |
00:40 | < ToxicFrog> | + ...yes, what gnolam said |
00:41 | < Derakon> | ...whoops, got that backwards. |
00:41 | < ToxicFrog> | So you can say the laptop has a '16" HD display', which means it has a shitty 1366x768 display, but it sounds good. |
00:42 | < gnolam> | And since the diagonal doesn't scale with perceived size either, it's an exceptionally silly measurement. |
00:42 | < gnolam> | (Also, it's in Illogical) |
00:43 | | Derakon is now known as Derakon[AFK] |
00:43 | < ToxicFrog> | This is why I'm using a refurbished Thinkpad rather than a new latop; it was literally the only way to get a 16:10 laptop that fits nicely in my backpack short of buying an MBP for $1000. |
00:49 | < RichardBarrell> | Are there any languages which actually have more undefined behaviour than C does? |
00:49 | < ToxicFrog> | Probably. |
00:49 | < ToxicFrog> | (C++ :D ) |
00:50 | < RichardBarrell> | Heh. |
00:50 | < RichardBarrell> | I'm just puzzling this now. Like how C leaves loads of things like deref'ing NULL and so on undefined, well, are there any languages which are *more* brutal than that? |
00:50 | < ToxicFrog> | I'm not sure "brutal" is quite the right term. "crazy", perhaps? |
00:50 | < RichardBarrell> | Yes. |
00:51 | < ToxicFrog> | A large part of this, I think, is that C by its nature can do basically nothing in the way of runtime checks. |
00:51 | < RichardBarrell> | Because pretty much every other language that I can think of has a memory model and semantics which actually have a lot fewer places where behaviours are explicitly the spec undefined. |
00:51 | < ToxicFrog> | So stuff that would be "raises a runtime exception" in a mid- or high-level language is "undefined behaviour" in C. |
00:52 | < RichardBarrell> | Yeah. What do I have to write in order to get even *less* checking? :) |
00:52 | < RichardBarrell> | Assembly isn't portable and defines too much anyway. :/ |
00:52 | < celticminstrel> | Assembly? :P |
00:52 | < ToxicFrog> | And if you go down a turtle, into asm, you now know exactly what instructions the hardware is executing and there's much less "this could do fucking anything depending on compiler, memory layout, register protocol, stack protocol, etc" |
00:52 | < celticminstrel> | Oh, never mind then. |
00:53 | | * RichardBarrell nods at TF. |
00:53 | < ToxicFrog> | asm has even less checking but also, I think, much less undefined behaviour. |
00:53 | < ToxicFrog> | Unless you are working on a seriously pathological architecutre. |
00:53 | < RichardBarrell> | Was reading this series of posts on the LLVM blog the other day, http://blog.llvm.org/2011/05/what-every-c-programmer-should-know_21.html |
00:54 | < ToxicFrog> | But yeah, C is pretty much where it's at for "minimum runtime checking" if you want something even remotely portable. |
00:54 | < RichardBarrell> | Well, failing to put memory barriers in the right places in asm gets you into undefined behaviour really fast, but that's true of C too. |
00:54 | < ToxicFrog> | I suspect that C++ has even more undefined behaviour, because it inherits most of C's but is much more complicated. |
00:55 | < RichardBarrell> | and what I want to know is, since undefined behaviour does tend to open up places where the optimiser can go nuts (because hey, there's a whole swathe of edge cases that the optimiser doesn't have to care about checking for - they're all undefined! Mwhahahaha!)... |
00:55 | < RichardBarrell> | ...can you actually *get* less defined than C? :) |
00:55 | < gnolam> | In C, it's also for ease of implementation. |
00:56 | < gnolam> | Leave shit undefined, and any kind of crazy architecture and platform can still use it. |
00:56 | < RichardBarrell> | That is a killer feature. |
00:56 | < gnolam> | Not so much an issue nowadays, but C has a long history. |
00:56 | < RichardBarrell> | Well actually not quite; leave shit implementation-defined and crazy architectures and platforms can have any behaviour they like so long as they document it. |
00:57 | < gnolam> | "How big an int is? Whatever is efficient for the platform, naturally." |
00:57 | < RichardBarrell> | No, "How big is an int?" is implementation-defined, not undefined, by the C spec. |
00:57 | < gnolam> | Eh. Undefined and implementation defined are pretty much interchangeable. |
00:58 | < RichardBarrell> | No, they're not. |
00:58 | < RichardBarrell> | "Implementation defined" means that there must be a single correct answer to "how big is an int?" and you must be able to look it up in the compiler's documentation. |
00:59 | < RichardBarrell> | "Undefined" means that the answer to "what happens where I run ((int*)NULL)[0] = 3;" not only doesn't have to be written down but may change at runtime or at any time at all and that the compiler is allowed to break programs that have run that line in the past and even programs that haven't run it yet but will run it in the future. |
01:01 | < RichardBarrell> | Or -might- run it in the future. Compilers are allowed to do silly things like reordering statements, so long as you can't observe what they've done from code that has well-defined (spec- or implementation-, whatever) behaviour. |
01:03 | < RichardBarrell> | But if one of the statements in your program invokes UB then the compiler's moving it relative to other statements in your program might cause the hairy-spiders-caused-by-UB to erupt before or after any random point at all in your program's run. |
01:15 | < ToxicFrog> | This. |
01:15 | < ToxicFrog> | The canonical form is "may cause demons to fly out of one's nose" |
01:20 | < RichardBarrell> | I apologise for the wall of text. ?_? |
01:20 | < RichardBarrell> | So um backtracking a bit; |
01:21 | < RichardBarrell> | if I had a compiler for a language that had even *more* undefined cases than C then it could probably have a more aggressive optimiser without really adding much to compile time. :) |
01:22 | < RichardBarrell> | Presumably if I want to write programs that actually work then I have to get a pencil and lots of paper and write down Hoare clauses. :) |
01:22 | | Kindamoody is now known as Kindamoody[zZz] |
01:27 | | Vash[Working] is now known as Vash[Ded] |
01:45 | | Derakon[AFK] is now known as Derakon |
01:59 | | gnolam [lenin@Nightstar-38637aa0.priv.bahnhof.se] has quit [[NS] Quit: Z?] |
02:11 | | Vash[Ded] is now known as Vash[Nap|Sleep] |
02:14 | | Rhamphoryncus [rhamph@C06FE3.F5723C.BE3FEB.9D4666] has quit [Client exited] |
02:29 | | Rikushadow5 [DSD@Nightstar-5a4542a1.res.rr.com] has joined #code |
02:32 | | Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has joined #code |
02:37 | | Rikushadow5 [DSD@Nightstar-5a4542a1.res.rr.com] has quit [[NS] Quit: Shall return at a later time and date when I feel like it. Or my comp went boom. Pick one.] |
02:56 | | Attilla [Some.Dude@Nightstar-febccc15.cable.virginmedia.com] has quit [Ping timeout: 121 seconds] |
03:01 | | Serah [Z@Nightstar-3602cf5a.cust.comxnet.dk] has quit [[NS] Quit: If the world didn't suck, we'd all fall off.] |
03:04 | | Stalker [Z@Nightstar-3602cf5a.cust.comxnet.dk] has quit [Ping timeout: 121 seconds] |
03:10 | | RichardBarrell [mycatverbs@Nightstar-3b2c2db2.bethere.co.uk] has quit [Ping timeout: 121 seconds] |
03:10 | | RichardBarrell_m [richardbarr@Nightstar-3b2c2db2.bethere.co.uk] has quit [Ping timeout: 121 seconds] |
03:19 | | kwsn [kwsn@Nightstar-70d795cc.dyn.centurytel.net] has joined #code |
04:03 | | cpux is now known as shade_of_cpux |
05:07 | | kaz_ [kaz@Nightstar-6a6dc548.client.bresnan.net] has joined #code |
05:10 | | Kazriko [kaz@Nightstar-5badc7ed.client.bresnan.net] has quit [Ping timeout: 121 seconds] |
05:15 | | moo [kwsn@Nightstar-70d795cc.dyn.centurytel.net] has joined #code |
05:16 | | kwsn [kwsn@Nightstar-70d795cc.dyn.centurytel.net] has quit [Ping timeout: 121 seconds] |
05:17 | | moo is now known as kwsn |
05:17 | | * kwsn has no idea how her nick ended up as "moo" XD |
05:33 | | Vash[Nap|Sleep] is now known as Vash[blarghy] |
06:14 | | kwsn is now known as ks\t-2 |
06:14 | | ks\t-2 [kwsn@Nightstar-70d795cc.dyn.centurytel.net] has quit [[NS] Quit: moo] |
06:35 | | You're now known as TheWatcher |
06:37 | | celticminstrel [celticminst@Nightstar-f8b608eb.cable.rogers.com] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!] |
06:49 | | Derakon is now known as Derakon[AFK] |
06:54 | < McMartin> | Ha HA |
06:54 | | * McMartin is the first on his block to complete Molecular Foundry! |
06:55 | < Reiver> | wut |
06:55 | < McMartin> | You get 75% Fe2O and 25% C3 and need to make Fe6C3 in a grid with even bonds all across. "Cementite", it says. |
06:56 | < Reiver> | ... iron carbon? |
06:56 | < McMartin> | Yeah |
06:56 | < McMartin> | The grid you need to make is |
06:56 | < McMartin> | FFF |
06:56 | < McMartin> | Er |
06:56 | < McMartin> | FFC |
06:56 | < McMartin> | CFF |
06:56 | < McMartin> | FFC |
07:11 | | Kindamoody[zZz] is now known as Kindamoody |
07:18 | | Kindamoody is now known as Kindamoody|shower |
07:49 | | Kindamoody|shower is now known as Kindamoody |
07:57 | | AnnoDomini [annodomini@Nightstar-b85fa9ae.adsl.tpnet.pl] has joined #code |
08:00 | | Kindamoody is now known as Kindamoody|out |
08:47 | | * TheWatcher stabstabstabs the author of OpenOffice::OODoc |
08:48 | < TheWatcher> | When writing documentation, you actually document what the fucking return type of functions is. Yes, this does matter, even in perl, godsdamnit |
08:54 | | Vash[blarghy] is now known as Vash[Sleeping] |
08:55 | | Vornicus is now known as Vornicus-Latens |
09:40 | | Rikushadow5 [DSD@Nightstar-5a4542a1.res.rr.com] has joined #code |
09:40 | | Rikushadow5 [DSD@Nightstar-5a4542a1.res.rr.com] has left #code ["*POOF*"] |
10:00 | | Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has quit [[NS] Quit: This computer has gone to sleep] |
10:02 | | Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has joined #code |
10:06 | | Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has quit [Client closed the connection] |
10:09 | | Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has joined #code |
10:17 | | RichardBarrell [mycatverbs@Nightstar-3b2c2db2.bethere.co.uk] has joined #code |
10:49 | | Rhamphoryncus [rhamph@C06FE3.F5723C.BE3FEB.9D4666] has joined #code |
11:14 | | Attilla [Some.Dude@Nightstar-febccc15.cable.virginmedia.com] has joined #code |
11:39 | | Kindamoody|out is now known as Kindamoody|work |
12:37 | | gnolam [lenin@Nightstar-38637aa0.priv.bahnhof.se] has joined #code |
13:11 | < AnnoDomini> | http://fc00.deviantart.net/fs71/f/2011/029/b/9/emacs_user_at_work_by_earlcolour- d38aj2x.jpg |
13:20 | < gnolam> | :) |
13:20 | < gnolam> | It's more vi though, isn't it? |
13:22 | < gnolam> | (As emacs is more about gargantuan /sequences/ of obscure keys) |
13:26 | < Namegduf> | Are you sure you don't have that backwards? |
13:26 | < Namegduf> | emacs has modifier keys, vi hates them and mostly uses sequences. |
13:30 | < AnnoDomini> | Vi has all these modes. |
14:30 | | celticminstrel [celticminstre@Nightstar-f8b608eb.cable.rogers.com] has joined #code |
14:35 | < RichardBarrell> | Emacs tends to only use one modifier key at a time, usually. |
14:36 | < RichardBarrell> | Unless you're me, in which case you're bad at picking shortcuts so you keep coming up with 3-modifier combos. |
15:02 | < gnolam> | Or if you're me, in which case you go "oh /fuck it/" and use a decent editor instead of either one of them. :P |
15:02 | | Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has quit [Connection closed] |
15:03 | < gnolam> | (It /might/ be possible to bash some sense into emacs, but in the time it would take you to go through and understand all of its options you could have written an entire editor from scratch) |
15:18 | | celticminstrel [celticminstre@Nightstar-f8b608eb.cable.rogers.com] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!] |
15:26 | < jerith> | Emacs tends to use all the modifiers, just usually not all at once. |
15:27 | < jerith> | Although it's trivial to bind a command to alt+control+meta+super+hyper+shift+cokebottle if you want to. |
15:28 | < jerith> | Some people do, because it means it's not going to collide with keybindings defined by various modes. |
15:47 | | Kindamoody|work is now known as Kindamoody|out |
16:26 | | Attilla [Some.Dude@Nightstar-febccc15.cable.virginmedia.com] has quit [Ping timeout: 121 seconds] |
16:38 | | Vornicus-Latens is now known as Vornicus |
16:39 | | Kindamoody|out is now known as Kindamoody |
17:15 | | Attilla [Some.Dude@Nightstar-febccc15.cable.virginmedia.com] has joined #code |
17:17 | | Kindamoody is now known as Kindamoody|out |
18:02 | | celticminstrel [celticminst@Nightstar-f8b608eb.cable.rogers.com] has joined #code |
18:48 | | AnnoDomini [annodomini@Nightstar-b85fa9ae.adsl.tpnet.pl] has quit [Ping timeout: 121 seconds] |
18:48 | | Kindamoody|out is now known as Kindamoody |
18:50 | | AnnoDomini [annodomini@D553D1.9D4909.61725E.19C9EC] has joined #code |
19:13 | | * ToxicFrog gnaws irritably on serialization |
19:51 | | Kindamoody is now known as Kindamoody|noms |
20:16 | | * AnnoDomini structure-dumps ToxicFrog. |
20:19 | | Kindamoody|noms is now known as Kindamoody |
21:03 | < ToxicFrog> | That was fun. |
21:04 | < ToxicFrog> | Got the Genetic Algorithms prof to accuse me of violating information theory~ |
21:05 | < RichardBarrell> | ToxicFrog: by writing a program that did too well? |
21:06 | < Vornicus> | What |
21:11 | < ToxicFrog> | Well, no, but we were discussing phenotypes and genotypes and using a six-city TSP as an example |
21:11 | < ToxicFrog> | and I said I could do it in eight bits |
21:12 | < ToxicFrog> | (I can actually do it in six, but that makes it much uglier) |
21:12 | < ToxicFrog> | He did 6! in his head and asked how I could do 720 possible solutions in eight bits without violating information theory. |
21:13 | < ToxicFrog> | (answer: by making some simplifying assumptions that reduce it to 120 possible solutions) |
21:14 | < RichardBarrell> | 120 would be 7 bits, rounding up. How do you do you reduce it to 120 solutions? |
21:15 | < RichardBarrell> | Or do you mean that you could dig further in order to reduce it to below 64? |
21:18 | < ToxicFrog> | Assumption #1: since the solution is a cycle, we can arbitrarily pick a city for it to start and end at. Now we just need to store the paths between the other five cities, which is 5! == 120. |
21:19 | < ToxicFrog> | Assumption #2: the graph is undirected, meaning that for any path there are two equivalent solutions, bringing it down to 60. |
21:19 | < ToxicFrog> | So, 6 bits. |
21:19 | < ToxicFrog> | However, the smallest genotype I can come up with that isn't shockingly ugly requires 8. |
21:20 | < RichardBarrell> | TSP is a cycle? Oh right, TSP *is* a cycle. |
21:22 | < RichardBarrell> | [0,1,2,3,4] and the odd one out is [5]. [0,1,2,3,4] is equivalent to [4,3,2,1,0]. Right, works. |
21:28 | < McMartin> | Ha ha, that is awesome |
21:28 | < McMartin> | This is the kind of thing that makes me sound angry (apparently) |
21:28 | < McMartin> | I need to work on distinguishing Spark from Rage versions of "agitated" |
21:31 | | Kindamoody is now known as Kindamoody|out |
22:05 | | Kindamoody|out is now known as Kindamoody |
22:25 | | Vash[Sleeping] is now known as Vash[Working] |
23:10 | | RichardBarrell [mycatverbs@Nightstar-3b2c2db2.bethere.co.uk] has quit [Connection closed] |
23:33 | | shade_of_cpux is now known as cpux |
23:58 | | AnnoDomini [annodomini@D553D1.9D4909.61725E.19C9EC] has quit [[NS] Quit: leaving] |
--- Log closed Thu Jun 09 00:00:56 2011 |