←2012-10-05 2012-10-06 2012-10-07→ ↑2012 ↑all
00:01:11 <elliott> area man kmc
00:02:34 <kmc> is that an advice animal or something
00:02:59 <kmc> the dangerous new trend putting teens at risk
00:08:16 -!- FreeFull has quit (Ping timeout: 252 seconds).
00:15:51 <oerjan> elliott: i like solitaire kind of games precisely because they're _not_ realtime, thankyouverymuch
00:17:24 <fizzie> oerjan: There's sometimes a clock.
00:17:30 <fizzie> (For scoring.)
00:17:34 <oerjan> blasphemy!
00:18:00 <elliott> oerjan: Faketime Solitaire
00:18:54 <elliott> oerjan: THE AXIOMS OF SOLITAIRE: 1. Solitaire
00:18:59 <elliott> 2. Sloitaire
00:19:05 <elliott> 4. Slaloterre
00:19:12 <elliott> 5. French-German Solitaire Spanish English Happening Manual
00:19:41 <oerjan> siilotare
00:20:28 <elliott> Well you know oerjan Finnish Solitaire is banned for a reason
00:20:56 <fizzie> Facetime Solitaire. (Also called 'a mirror'.)
00:20:57 <oerjan> they're too solitary already
00:21:32 <oerjan> esiltoria
00:21:45 <elliott> FINNISH SOLITAIRE aka "The Hidden Death".
00:21:54 <elliott> Finnish Solitaire has killed millions since its founding in 1964.
00:22:24 <shachaf> `? funpuns
00:22:28 <HackEgo> funpuns? ¯\(°_o)/¯
00:22:29 <shachaf> `? shachaf
00:22:32 <HackEgo> shachaf sprø som selleri
00:22:35 <shachaf> What?
00:23:42 <oerjan> twah
00:24:38 <shachaf> o⃥rjan
00:26:41 <elliott> `? shachaf
00:26:45 <HackEgo> shachaf sprø som selleri
00:39:21 -!- augur has quit (Ping timeout: 256 seconds).
00:40:24 -!- augur has joined.
00:41:36 -!- Nisstyre-laptop has joined.
00:44:40 -!- Phantom_Hoover has joined.
00:57:45 -!- mds2 has joined.
01:01:35 -!- mds2 has left ("ERC Version 5.3 (IRC client for Emacs)").
01:06:31 -!- copumpkin has quit (Ping timeout: 244 seconds).
01:07:07 -!- pumpkin has joined.
01:25:33 -!- Sgeo has quit (Ping timeout: 245 seconds).
01:28:29 -!- Sgeo has joined.
01:29:43 -!- Frooxius has quit (Ping timeout: 245 seconds).
01:41:51 <Sgeo> A lot of the OEM crapware on this computer broke
01:42:06 <Sgeo> But there's one that... well, I think the important part is actually in hardware, so it doesn't really matter
01:46:00 -!- variable has joined.
01:46:15 -!- invariable has joined.
01:46:22 -!- variable has quit (Remote host closed the connection).
01:46:38 -!- invariable has changed nick to Guest37703.
01:53:30 <zzo38> ARMv2 seems OK, not as complicated as newer versions, and there does exist the open-source Amber core which is ARMv2. How fast could it run? Does anyone sell ARMv2 at fast speeds?
01:55:52 <zzo38> Has Amber been tested for compatibility with a real ARMv2?
01:56:07 -!- aloril_ has quit (Ping timeout: 244 seconds).
01:58:54 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
02:05:54 <Sgeo> Huh.
02:06:06 <Sgeo> Minesweeper contests don't accept the official version of Minesweeper
02:06:28 <oerjan> wut
02:06:28 <zzo38> Is there something wrong with the official version?
02:07:01 <Sgeo> zzo38, yes
02:07:11 <Sgeo> http://www.minesweeper.info/wiki/Board_Cycles
02:08:40 -!- aloril_ has joined.
02:08:45 <Sgeo> Winmine (the name of the official version) uses a smaller than theoretically possible number of boards, iiuc
02:09:40 <zzo38> OK now I can see what is wrong, and why the official version should be unacceptable.
02:10:20 <elliott> http://www.minesweeper.info/wiki/Winmine_Congress
02:10:41 <elliott> The Winmine Congress was established in response to controversy over the Dreamboard and Board Cycles. Seven members were elected to resolve these problems. Founded 31 Oct 2002, it dissolved 8 Mar 2004. It has since been superceded by the International Minesweeper Committee.
02:14:53 <olsner> 6 years of research to figure out how minesweeper generates boards?
02:58:43 -!- oerjan has quit (Quit: Good night).
03:02:18 <zzo38> One thing I do know about the Windows Minesweeper (because I have tried it and figured it out) is, if the square you click first has a bomb, the bomb will be moved elsewhere.
03:02:59 <elliott> thanks winmine
03:03:41 <shachaf> winmine.exe
03:03:52 <shachaf> zzo38: How do you know?
03:03:57 <shachaf> Maybe you were just extremely lucky.
03:06:05 -!- Guest37703 has quit (Changing host).
03:06:06 -!- Guest37703 has joined.
03:06:10 -!- Guest37703 has changed nick to const.
03:09:29 -!- const has left.
03:21:54 -!- hagb4rd has quit (Ping timeout: 246 seconds).
03:32:27 <zzo38> shachaf: I tried it many times, and I used the cheat code, which sets the top-left pixel of the screen black if there is a bomb there, so I figured out
03:32:45 <shachaf> Oh, the cheat code.
03:32:48 <shachaf> xyzzy something
03:32:50 <shachaf> shift-enter
03:33:16 <Jafet> That's been documented
03:39:41 -!- Nisstyre-laptop has quit (Quit: Leaving).
03:42:41 -!- Nisstyre-laptop has joined.
03:44:59 -!- Nisstyre-laptop has quit (Remote host closed the connection).
04:23:40 -!- Nisstyre-laptop has joined.
04:34:06 -!- TodPunk has quit (Read error: Connection reset by peer).
04:34:18 -!- TodPunk has joined.
04:38:21 -!- elliott has quit (Remote host closed the connection).
05:13:01 -!- rodgort` has quit (Ping timeout: 246 seconds).
05:15:49 -!- rodgort has joined.
05:23:05 -!- Nisstyre-laptop has quit (Remote host closed the connection).
05:25:13 -!- Nisstyre-laptop has joined.
05:36:55 <kmc> xsetroot -solid pink -cursor_name gumby
05:39:56 <zzo38> I think the DotFami mapper codes actually form a idempotent commutative monoid, rather than just being a monoid.
06:04:07 <zzo38> Does the order of the commands matter in a hardware description language such as Verilog or VHDL? Does it matter if you repeat a command?
06:37:55 -!- ogrom has joined.
06:45:13 <zzo38> I sent some file to Famicompo Mini vol.9 see if it work
06:54:15 <oklopol> the minesweeper wiki is somewhat incredible given what a silly game it is. it's the best game ofc but pretty damn silly nevertheless.
06:54:59 -!- Nisstyre-laptop has quit (Read error: Connection reset by peer).
07:17:09 -!- Vorpal has joined.
07:21:38 <zzo38> Do you know of any NES/Famicom emulator which includes net play but also has a mode to display only odd frames on one computer and only even frames on other?
07:26:23 <Jafet> It's NP complete. oklopol! It's almost as interesting as sudoku!
07:31:46 <zzo38> If you add a successor operator to Hofstadter's BlooP and/or FlooP programming languages, you can do without IF, QUIT BLOCK, addition/multiplication operators, and comparison operators.
07:49:55 <oklopol> In 2001, the Italian "International Campaign to Ban Winmine" voiced strong concern over the game, contending that it is an "offense against the victims of the mines" and those who risk their lives to clear them.
07:49:58 <oklopol> xD
07:51:11 <oklopol> i love how some people are like so stupid that you wish they were less stupid because their stupidity is so overwhelming that it's be equally funny to watch if it was reduced but they wouldn't be as stupid.
07:52:20 <oklopol> on the other hand i suppose that may have just been a well-executed joke
07:53:59 <oklopol> Jafet: sudoku, like minesweeper, is fun only if your speed-solving simple games. the difference is minesweeper games are always easy but there are a lot of clicks to be made. a simple sudoku takes like 5 seconds so bleh.
07:54:38 <oklopol> hard sudoku puzzles are just annoying, there's too much data so a simpleton like me cannot really extract a meaningful mathematical problem, or at least expect it to have an interesting solution.
07:55:24 <oklopol> i have yet to see a meaningful minesweeper puzzle that isn't just an obvious encoding of another type of problem, and no problems arise naturally in random minefields.
07:55:35 <oklopol> *you're
07:57:13 <oklopol> you very quickly learn to check in about 10 seconds whether there are solvable cells on the "advanced" board, and this can easily be kept in memory so actually you never have to stop to think.
07:57:42 <oklopol> (i mean kept in memory and updated as you go)
08:00:30 <oklopol> "<zzo38> Do you know of any NES/Famicom emulator which includes net play but also has a mode to display only odd frames on one computer and only even frames on other?" ...what
08:01:50 <zzo38> oklopol: What about what?
08:02:33 <oklopol> why would there be such a mode
08:03:25 <zzo38> I think it might be useful for some things
08:05:25 <oklopol> I think it might be not useful for some things but it might be useful for some other things.
08:06:11 <zzo38> Yes, OK
08:07:29 <oklopol> can you tell me some things for which it would be useful to have a NES/Famicom emulator which includes net play but also has a mode to display only odd frams on one computer and only even frames on other?
08:07:42 <oklopol> *frames
08:11:21 -!- monqy has quit (Quit: hello).
08:11:49 <zzo38> Such as multiplayers games with separate screens. It could be done on a TV screen as well; it does not have to be only on the emulator.
08:12:13 <oklopol> hmm right
08:12:17 <oklopol> i guess that's a fun hack
08:13:11 <zzo38> The similar thing can also be used for stereovision.
08:47:37 -!- zzo38 has quit (Remote host closed the connection).
09:02:19 -!- FreeFull has joined.
09:40:31 -!- hagb4rd has joined.
10:11:06 -!- Phantom_Hoover has joined.
10:40:26 -!- carado has joined.
10:43:03 -!- DHeadshot has quit (Ping timeout: 245 seconds).
11:08:52 -!- barts_ has joined.
11:11:54 -!- barts has quit (Ping timeout: 240 seconds).
11:21:03 -!- ogrom has quit (Quit: Left).
11:43:32 -!- carado has quit (Quit: Leaving).
11:53:05 -!- Arc_Koen has joined.
11:53:45 <Arc_Koen> hello
11:53:46 <lambdabot> Arc_Koen: You have 1 new message. '/msg lambdabot @messages' to read it.
11:53:49 <Arc_Koen> @messages
11:53:50 <lambdabot> oerjan said 16h 48m 36s ago: Stupid me, I left the <>'s around your nick when pasting into @tell...
11:55:06 -!- carado has joined.
12:40:06 -!- ogrom has joined.
12:49:23 -!- atriq has joined.
12:50:44 -!- pumpkin has changed nick to copumpkin.
13:01:17 -!- carado has quit (Quit: Leaving).
13:01:28 <atriq> @messages?
13:01:28 <lambdabot> Sorry, no messages today.
13:01:31 <atriq> Yay!
13:12:51 -!- ogrom has quit (Quit: Left).
13:14:44 -!- atriq has quit (Ping timeout: 246 seconds).
13:18:18 -!- aloril_ has quit (Ping timeout: 276 seconds).
13:19:54 -!- Phantom_Hoover has quit (Ping timeout: 264 seconds).
13:30:52 -!- aloril_ has joined.
13:43:59 -!- Phantom_Hoover has joined.
13:47:22 -!- kinoSi has quit (Read error: Connection reset by peer).
13:47:49 -!- kinoSi has joined.
14:02:50 -!- sivoais has quit (Read error: Connection reset by peer).
14:03:33 -!- sivoais has joined.
14:09:05 <Phantom_Hoover> "After these deadly results, British intelligence leaked falsified information implying that the rockets were over-shooting their London target by 10 to 20 miles. This tactic worked and for the remainder of the war most landed in Kent due to erroneous recalibration.[37]
14:09:05 <Phantom_Hoover> " -- [[V-2]
14:09:08 <Phantom_Hoover> *]]
14:09:27 <Phantom_Hoover> competent nazis
14:11:16 <olsner> I like that story :) they trusted the double agents more than their (correct) radio location thingy
14:11:38 <Phantom_Hoover> also apparently the v-2 programme cost more than the manhattan project
14:12:07 <olsner> rockets = hard, throwing plutinium together = easy
14:12:33 <Phantom_Hoover> silly olsner
14:12:43 <Phantom_Hoover> gun-type assemblies don't work with plutonium
14:13:29 <olsner> I think they're all based on some kind of throwing together of stuff, doesn't have to be gun-type
14:14:10 <Phantom_Hoover> implosion assemblies are more about squeezing
14:15:44 <olsner> I saw a ted talk about the norden bombsight a while ago, iirc it cost about half of the manhattan project
14:30:59 -!- oerjan has joined.
14:32:13 <Arc_Koen> atriq: why are you happy when you have no messages?
14:34:33 <oerjan> @tell <zzo38> I think the DotFami mapper codes actually form a idempotent commutative monoid, rather than just being a monoid. <-- i think an idempotent commutative monoid may the same as a semilattice
14:34:33 <lambdabot> Consider it noted.
14:34:37 <oerjan> argh
14:34:50 <oerjan> @tell zzo38 <zzo38> I think the DotFami mapper codes actually form a idempotent commutative monoid, rather than just being a monoid. <-- i think an idempotent commutative monoid may the same as a semilattice
14:34:50 <lambdabot> Consider it noted.
14:35:16 <oerjan> `pastelogs oerjan_?> [@]tell <
14:35:24 -!- atriq has joined.
14:35:55 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.23392
14:35:56 <oerjan> @tell zzo38 *may be
14:35:56 <lambdabot> Consider it noted.
14:36:23 <oerjan> `pastelogs oerjan_?> [@]tell <
14:36:33 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.21919
14:36:41 <fizzie> oerjan: It keeps happening.
14:38:22 <oerjan> what, the @tell < or HackEgo not working properly?
14:38:50 <oerjan> @tell zzo38 <zzo38> Does the Haskell compiler know that equality is reflexive? <-- it actually isn't, for Double (NaN)
14:38:50 <lambdabot> Consider it noted.
14:39:30 <oerjan> i hope zzo38 doesn't get confused by me resending answers from back in january
14:39:35 <fizzie> oerjan: Both.
14:39:45 -!- atriq has quit (Ping timeout: 244 seconds).
14:39:49 <oerjan> there were only those three, however.
14:40:11 <fizzie> oerjan: But if you only take into account the seconds when they sent, that's like one every second.
14:40:24 <oerjan> DEEP
14:43:52 <oerjan> @src Monoid
14:43:52 <lambdabot> class Monoid a where
14:43:52 <lambdabot> mempty :: a
14:43:52 <lambdabot> mappend :: a -> a -> a
14:43:52 <lambdabot> mconcat :: [a] -> a
14:44:00 <oerjan> @tell zzo38 Actually, a it's a semilattice with a bottom element (the mempty).
14:44:00 <lambdabot> Consider it noted.
14:44:15 <oerjan> @tell zzo38 *-a
14:44:15 <lambdabot> Consider it noted.
14:46:35 <oerjan> @tell zzo38 From wikipedia: "A bounded semilattice is an idempotent commutative monoid."
14:46:35 <lambdabot> Consider it noted.
14:49:42 -!- elliott has joined.
14:49:48 <elliott> fizzie: Hey, you use the console sometimes, right?
14:50:08 <oerjan> a master of consolation
14:50:53 <fizzie> Not so often these days. And I'm making foods at the moment.
14:51:05 <oerjan> a master of cuisine too!
14:51:22 <elliott> fizzie: Man, you and your foods.
14:51:34 <fizzie> People DIE if food is not made.
14:51:42 <fizzie> Or so they say, anyway.
14:51:48 <elliott> fizzie: Yeah well, I'll die if my console remains unable to display Unicode characters!!!
14:51:53 <elliott> Think about ME for a change, fizzie.
14:52:31 <oerjan> unicode characters are a vital part of elliott's immortality scheme
14:53:09 <oerjan> wait, wasn't i also supposed to eat ->
14:53:53 -!- Phantom_Hoover has quit (Ping timeout: 256 seconds).
14:53:55 <fizzie> From what I recall from the days I actually used it, it's relatively easy to make it use UTF-8, but there seemed to be some kind of an issue fitting more than about 512 characters in a font.
14:54:11 <elliott> fizzie: Weeeell, I'm using Terminus.
14:54:20 <elliott> "ter-u20n". I assume the u is for Unicode???
14:54:32 <elliott> Anyway the fancy e in "caf[fancy e]" is just displaying as a square on the console.
14:54:48 <elliott> There's this keymap option like "FONT_MAP=8859-2" that apparently you're meant to set appropriately for the font.
14:54:53 <elliott> But I don't know what it's supposed to be for this one.
14:55:08 <elliott> Alternatively maybe I am using the wrong Terminus??
14:55:13 <elliott> There are also a bunch with three digits and no "u".
14:55:21 <fizzie> Is that just the accented e? I'd think that'd be in the console selection.
14:55:28 <elliott> Yes, the accented one.
14:55:31 <elliott> The fancy French e.
14:55:55 <elliott> Maybe I want, e.g. ter-120n.
14:55:56 -!- carado has joined.
14:56:00 <elliott> Or ter-220n.
14:56:06 <elliott> Or ter-520n.
14:56:13 <elliott> Who even knows what these numbers and letters are???
14:56:24 <elliott> I guess there might be documentation somewhere?
14:57:16 <fizzie> ter-2* iso02, cp1250 ISO8859-2, Windows-1250
14:57:19 <fizzie> ter-u* koi8u KOI8-U
14:57:28 <fizzie> It doesn't seem to be the 'u' you want.
14:57:33 <fizzie> ter-1* iso01, iso15, cp1252 ISO8859-1, ISO8859-15, Windows-1252
14:58:00 <fizzie> That one is borderline reasonable.
14:58:02 <fizzie> ter-v* all listed above all listed above and many others (about 110 and many others language sets), 8 foreground colors
14:58:24 <fizzie> That one sounds funny, I wonder how it works.
14:59:29 <fizzie> It also claims the PSF has the "Unicode data"; I vaguely indeed recall that was a thing.
14:59:42 <fizzie> That, and a console set to UTF-8 mode, should mean the code page doesn't actually matter.
14:59:56 <fizzie> Though I suppose the koi8u version wouldn't necessarily have an accented e.
15:01:37 <elliott> fizzie: So, er, which prefix of 12579cdfgkpux do I want?
15:02:55 -!- ogrom has joined.
15:04:16 <fizzie> I think '1' is like the most general-purposey, unless you have that 'v' thing and it works.
15:04:45 <elliott> fizzie: I don't appear to have a v thing. :(
15:05:08 <elliott> <fizzie> It also claims the PSF has the "Unicode data"; I vaguely indeed recall that was a thing. <fizzie> That, and a console set to UTF-8 mode, should mean the code page doesn't actually matter.
15:05:13 <elliott> So, er, does that mean I can't use this or something?
15:05:15 <elliott> (Is that the v thing?)
15:06:22 <fizzie> No, I just mean you shouldn't necessarily need to tell the thing about the code page, if it's using UTF-8 and has the Unicode code points in the PSF, since it'd pick characters using the code points. And I understood that applied to all the PSF versions, not just the mysterious v.
15:07:07 <elliott> fizzie: So if I pick the 1 thing I should get the full Unicode coverage? I mean, as full as Terminus has to start with (e.g. in X).
15:07:18 <elliott> Or is the character set still limited?
15:07:42 <fizzie> Well, it would be limited to 512 characters in any case, as far as I know.
15:07:52 <olsner> how did you end up having to choose variants of terminus?
15:07:52 <elliott> Ah. :(
15:08:04 <elliott> olsner: Well, you know, Linux console.
15:08:08 <olsner> iirc, I just installed it and since then it works
15:08:23 <fizzie> On the other hand, Terminus' README says it has 879 characters in total, so 512 is not a lot less.
15:08:38 <fizzie> I don't know whether the '1' variant only has the code pages it mentions or what, though.
15:08:58 <fizzie> There are tools to dump a list of characters in a PSF file, you could check with one.
15:09:08 <elliott> I think I'll just live in ignorance.
15:09:17 <fizzie> I have no idea how systemd vconsole things are used to configure fonts, anyway. Back when I fiddled with these I just had the consoletools package.
15:09:18 <olsner> but otoh, I don't use the linux console so I wouldn't notice if that part is completely broken
15:09:49 <elliott> fizzie: Wait, when did I say anything about vconsole?
15:10:11 <fizzie> elliott: The hits for "FONT_MAP" said things about it. I suppose it could be something else.
15:10:21 <fizzie> It's kind of a generic-sounding term.
15:10:28 <elliott> Oh, right.
15:10:44 <elliott> fizzie: Well, I'm just migrating my Arch system from rc.conf to this vconsole.conf thing, but I happened to set Terminus as my console font at the same time.
15:11:01 <elliott> fizzie: I'm not actually using systemd, but they're deprecating most of rc.conf and telling you to move settings to all these little files to prepare for switching over to systemd.
15:12:28 <fizzie> There's something called "FONT_UNIMAP" too, apparently. But from what I recall, in UTF-8 mode -- which is certainly the only reasonable mode these days -- the mappings weren't really relevant.
15:12:59 <elliott> fizzie: Also, uh, wish me luck in upgrading to GRUB2.
15:13:07 <elliott> Sort of scared.
15:13:16 <fizzie> Good luck. It went well for me.
15:13:25 <fizzie> Mature and well-tested technology and all that.
15:13:56 <elliott> :: grub-common and grub are in conflict. Remove grub? [y/N] y
15:13:57 <elliott> RIP
15:14:22 <fizzie> Anyway as long as you can boot from something external maybe things won't become too unfixable. I had that one laptop that couldn't boot from anything else than the internal HD, fiddling with its boot setup was always so tense.
15:14:23 <elliott> Usually the post-MBR gap (after the 512 byte MBR region and before the start of the 1st partition) in many MBR (or msdos disklabel) partitioned systems is 31 KiB when DOS compatibility cylinder alignment issues are satisfied in the partition table. However a post-MBR gap of about 1 to 2 MiB is recommended to provide sufficient room for embedding GRUB2's core.img (FS#24103). It is advisable to use a partitioner which supports 1 MiB partition align
15:14:23 <elliott> ment to obtain this space as well as satisfy other non-512 byte sector issues (which are unrelated to embedding of core.img).
15:14:23 <elliott> If you do not dual-boot with MS Windows (any version) in BIOS systems, it is advisable to switch to GPT partitioning - GUID_Partition_Table#Convert_from_MBR_to_GPT
15:14:25 <elliott> Um.
15:14:33 <elliott> fizzie: Do I need to understand all this?
15:14:53 <elliott> Also is it really telling me to switch from MBR to GPT on a regular system? That sounds sort of like a bad idea.
15:15:04 <fizzie> Maybe they want to be futuristic.
15:15:09 <elliott> I mean, lots of things don't even support GPT, do they??
15:15:15 <Lumpio-> They want you to do UEFI too :P
15:15:27 <Lumpio-> You don't exactly need "lots of things" to support it do you
15:15:34 <Lumpio-> Your hardware, bootloader and kernel mostly.
15:15:42 <Lumpio-> Hardware being the hard part (no pun intended)
15:15:54 <elliott> Well, no, but it sounds like it'd be an awful pain if I ever, e.g., wanted to install an OS that has no clue what GPT is.
15:15:55 <Lumpio-> I couldn't be bothered with GPT
15:16:07 <Lumpio-> What kind of OS doesn't even support GPT these days
15:16:17 <oerjan> why the heck did they EVICT my favorite restaurant?
15:16:19 <elliott> But anyway I guess I shouldn't be surprised that Arch advice is putting bleeding-edge high-techness over practicality..
15:16:20 <fizzie> The mentioned MS Windows in BIOS systems maybe. :p
15:16:21 * oerjan screams
15:16:51 <oerjan> *hell
15:17:02 <olsner> oerjan: you probably didn't eat there often enough
15:17:10 <oerjan> olsner: almost every day :(
15:17:13 <fizzie> They probably had rats in the food.
15:17:16 <elliott> wait, what is "hell" replacing there
15:17:23 <oerjan> elliott: heck
15:17:28 <elliott> oh
15:17:36 <elliott> oerjan: don't they usually give notice of these kinds of things
15:17:38 <elliott> "they"
15:17:42 <olsner> oerjan: maybe they got evicted for letting people like you in
15:18:20 <oerjan> elliott: well yes, i've known it for a few months, but two days ago they actually closed :(
15:18:43 <elliott> :(
15:19:08 <elliott> [[
15:19:08 <elliott> There are 3 ways to install GRUB(2) boot files in BIOS booting:
15:19:09 <elliott> #Install_to_440-byte_MBR_boot_code_region (recommended) ,
15:19:09 <elliott> #Install_to_Partition_or_Partitionless_Disk (not recommended),
15:19:09 <elliott> #Generate_core.img_alone (safest method, but requires another BIOS bootloader like grub-legacy or syslinux to be installed to chainload /boot/grub/i386-pc/core.img).
15:19:10 <elliott> ]]
15:19:18 <elliott> fizzie: Sometimes I think about switching back to Debian.
15:19:48 <olsner> nice, installing grub to boot grub is a recommended solution
15:20:06 <olsner> if you interpret "safest method" as a recommendation
15:20:34 <fizzie> One of them is explicitly flagged as "recommended", I think that's the... recommended one.
15:20:47 <elliott> Oh wow, "sudo grub-install --target=i386-pc --recheck --debug /dev/sda" produces a lot of output.
15:21:20 <fizzie> Debian's GRUB 2 installer initially did that #3 and configured the existing GRUB <2 to chainload the core.img; then when you had booted a couple of time and were certain it works, you were meant to call a script that actually put the GRUB 2 in the MBR.
15:21:38 <elliott> That's sily.
15:22:52 <elliott> fizzie: Okay I think it is done??? Let's try
15:23:01 <fizzie> And that was the last we heard of him.
15:23:35 -!- elliott has quit (Remote host closed the connection).
15:23:50 <oerjan> fizzie: they got impeccable marks on all the recent hygiene controls. (in trondheim they have to put the result form visible in the restaurant.)
15:24:29 <oerjan> no, i am going to believe it was pure greed by the landowner. (they're being replaced by a pharmacy.)
15:24:35 <fizzie> oerjan: Ooh, they should do that here too. Does it have to be "prominently visible" or something?
15:24:41 <fizzie> Like, neon lights and signs.
15:24:42 <oerjan> fizzie: yeah
15:24:50 <oerjan> well, not neon lights :P
15:25:07 -!- elliott has joined.
15:25:24 <fizzie> The local IKEA's restaurant has a diploma on the wall about how they do "organic" things.
15:25:44 <elliott> So, um, it works, but it runs in a really really freaky resolution.
15:26:05 <elliott> Like, it is stretching a 4:3 (but larger than the "plain old BIOS text") resolution to my widescreen... screen.
15:26:08 <fizzie> Oh, and some gas station in Norway where we stopped had a whole wall full of all kinds of yellowed diplomas about marketing seminars from 1989 or whatever.
15:26:15 <elliott> Is there any hope of getting it the same resolution as my Linux console?
15:26:19 <elliott> Or is that too fancy to ask of a bootloader.
15:26:23 <elliott> (1336x768 or something.)
15:26:53 <fizzie> They at least used to be somewhat limited to modes listed by the BIOS in question.
15:27:09 <elliott> Yes, but this is GRUB2. It's so fancy, and the future.
15:27:43 <elliott> Visual Configuration
15:27:43 <elliott> In GRUB2 it is possible, by default, to change the look of the menu. Make sure to initialize, if not done already, GRUB2 graphical terminal, gfxterm, with proper video mode, gfxmode, in GRUB2. This can be seen in the section #Correct_GRUB2_No_Suitable_Mode_Found_Error. This video mode is passed by GRUB2 to the linux kernel via 'gfxpayload' so any visual configurations need this mode in order to be in effect.
15:27:43 <elliott> Setting the framebuffer resolution
15:27:43 <elliott> GRUB2 can set the framebuffer for both GRUB2 itself and the kernel. The old vga= way is deprecated. The preferred method is editing /etc/default/grub as the following sample:
15:27:46 <elliott> GRUB_GFXMODE=1024x768x32
15:27:48 <elliott> GRUB_GFXPAYLOAD_LINUX=keep
15:27:50 <elliott> fizzie: See? This looks super fancy.
15:27:53 <fizzie> "The VESA widescreen resolutions are not standardized, and I have never once been able to get one working from Grub2. I have heard it's possible, if using an Intel GFX chip and some semi-complicated VESA soft-patching", says some guy.
15:28:01 <elliott> "You can choose one of these resolutions: 640×480, 800×600, 1024×768, 1280×1024, 1600×1200, 1920×1200"
15:28:05 <elliott> None of those are the right resolution. :(
15:28:10 <elliott> fizzie: Well I am using an Intel chip.
15:28:24 <elliott> "Some times for Intel graphic adapters neither # hwinfo --framebuffer nor vbeinfo will show you the desired resolution. In this case you can use 915resolution hack. This hack will temporarily modify video BIOS and add needed resolution. See 915resolution's home page"
15:28:31 <elliott> fizzie: Maybe I can use this to enable the true resolution??
15:28:43 <fizzie> You can certainly *try*.
15:29:01 <fizzie> It's of course even possible your VESA BIOS has the widescreen resolution modes listed directly.
15:29:17 <fizzie> In which case I suppose just stating the mode should work.
15:29:24 <elliott> fizzie: If this breaks horribly how will I boot things??? I don't even know wher my External Bootable USB Medium(TM) is.
15:29:34 <elliott> Do you think grub has some kind of fallback if you specify an invalid resolution.
15:30:02 <fizzie> If you have it doing the right thing unattended, you can just touch nothing if it's messed up.
15:30:28 <elliott> Right. Hokay then.
15:30:41 <fizzie> And anyway I suppose if the BIOS call to switch modes says "I don't like this" it's likely to just keep whatever resolution it was, or choose some "safe" default.
15:30:47 <elliott> fizzie: Maybe I should install coreboot so I can get my BIOS to use the right resolution too!!!
15:30:50 <elliott> I assume it supports fancy things like that.
15:31:11 <elliott> # note that you can use only modes which your graphic card supports via VBE
15:31:12 <elliott> # you can see them in real GRUB with the command `vbeinfo'
15:31:14 <elliott> I guess I could try this also.
15:31:22 -!- Nisstyre-laptop has joined.
15:31:28 <fizzie> That's true, you could try that.
15:31:34 <elliott> But I won't!
15:31:40 -!- elliott has quit (Remote host closed the connection).
15:33:04 <oerjan> now, last time we heard from him for _real_!
15:34:57 <olsner> obviously *this* time he's really gone
15:35:07 <oerjan> yeah.
15:38:28 -!- elliott has joined.
15:38:35 <fizzie> Okay, since that's the case, those onions aren't going to dice themselves. ->
15:38:35 <elliott> Intel chipset detected. However, 915resolution was unable to determine the chipset type.
15:38:39 <elliott> :'(
15:38:40 <fizzie> Oh, dangnabbits.
15:38:41 <oerjan> darn, null hypothesis failed again!
15:38:50 <fizzie> Well, the onions still won't.
15:38:51 <elliott> Well, I mean, you can go do whatever. But I might cry.
15:40:06 <oerjan> isn't it more likely that fizzie will cry, given the task at hand?
15:40:14 <olsner> elliott: due to the onions? the onions are in finland
15:40:34 <elliott> fizzie: I bet you're here.
15:40:46 <elliott> [[
15:40:46 <elliott> Next, our purpose is to overwrite mode 30. (You can choose what ever mode you want.) In the file /etc/grub.d/00_header just before the set gfxmode=${GRUB_GFXMODE} line insert:
15:40:47 <elliott> 915resolution 30 1440 900
15:40:47 <elliott> ]]
15:40:48 <olsner> the hexham onion chop of 2012
15:40:50 <elliott> Does it matter which mode you pick???
15:40:52 <elliott> Could something bad happen.
15:41:04 <olsner> staffed entirely by finns
15:41:06 <oerjan> more famous last words
15:49:00 <kmc> isn't it great how all of Linux functionality is reimplemented from scratch in GRUB just so you can use it for two seconds before you boot Linux?
15:49:34 <shachaf> GNOME for GRUB™
15:49:58 * shachaf off to Seattle soon.
15:50:01 <olsner> yeah, DON'T YOU JUST LOVE how modern operating systems require other operating systems to boot?
15:50:06 <elliott> kmc: I don't like bootloaders.
15:50:17 <shachaf> elliott: Let me guess, @'s bootloader is @?
15:50:23 <elliott> shachaf: Yes. :(
15:50:29 <FreeFull> olsner: It's not really an operating system when all it can do is boot a kernel
15:50:36 <elliott> grub can do more than that.
15:50:38 <oerjan> @s all the way down
15:50:38 <lambdabot> Maybe you meant: shootout show slap smack source spell spell-all src . ? @ v
15:50:40 <elliott> I think it even has a game of some kind.
15:50:48 <shachaf> COMMERCIAL AT
15:50:53 <shachaf> That's @'s full nam, right?
15:50:57 <elliott> But seriously, if you have any kind of complexity in terms of reading files -- like say, encryption, LVM-type stuff, or whatever -- then your bootloader inevitably becomes more and more like your OS.
15:51:13 <elliott> And eventually you've just rewritten your OS except weirder and with less functionality, except that this time it also has a boot sector.
15:51:23 <olsner> FreeFull: just because all you use it for is booting another kernel, that doesn't mean it's not an OS
15:51:24 <elliott> Yuck.
15:52:40 <kmc> and it's not true that GRUB can only boot a kernel
15:52:47 <kmc> doesn't GRUB2 have a turing complete scripting language
15:52:51 <kmc> and filesystem read/write
15:52:53 <kmc> and network capability
15:52:59 <kmc> someone should write a webserver for GRUB2
15:52:59 <fizzie> When life gives you onions, make onionade. Okay, gone again.
15:53:13 <kmc> so that you can log into the machine you just booted and select the kernel through an AJAXy web interface
15:53:16 <kmc> just because
15:53:20 <kmc> (bbl)
15:53:33 <olsner> grub2 comes with a shell that can actually do stuff, that makes it really clear that it's an OS
15:55:03 -!- atriq has joined.
15:55:15 -!- elliott has quit (Remote host closed the connection).
15:55:21 <pikhq_> GRUB2 is *definitely* an OS.
15:55:28 <FreeFull> I use syslinux
15:55:29 <pikhq_> Perhaps a relatively light-weight OS, but even so.
15:55:37 <pikhq_> FreeFull: And that's not an OS. :)
15:55:47 <atriq> I use 3D glasses
15:55:54 <olsner> syslinux isn't (afaik), but DOS is an OS
15:56:06 <FreeFull> I don't use DOS though
15:56:20 <pikhq_> syslinux is essentially DOS's bootloading scheme adapted to Linux.
15:56:53 <olsner> isn't syslinux an actual DOS application?
15:57:29 <pikhq_> olsner: Though it might work on DOS, syslinux is the FAT bootloader, done in normal FAT bootloader style.
15:57:49 <pikhq_> It also refers to the class of similar bootloaders, including isolinux and extlinux...
15:58:05 <pikhq_> loadlin is the DOS program.
15:58:05 <FreeFull> A part of syslinux can be used to boot linux from DOS, but you don't need dos to boot using syslinux
15:58:25 <olsner> oh, ok
15:58:30 <pikhq_> Uh, syslinux doesn't have loadlin I don't think?
15:58:35 <FreeFull> I have the normal MBR -> second stage -> linux setup
15:58:41 <FreeFull> Without a separate boot partition
15:59:46 <pikhq_> Well. I guess syslinux itself almost counts as an OS. Because it can bootload COM files too.
16:00:03 <pikhq_> Or "COM32" files.
16:00:11 <pikhq_> (which is exactly what it sounds like)
16:00:20 <FreeFull> pikhq_: com files are plain x86 code
16:00:23 <FreeFull> No header or anything
16:00:34 <pikhq_> I am very well aware.
16:00:49 <FreeFull> Kernels are x86 code too =P
16:00:56 <Jafet> So I heard you like bootloaders
16:01:09 <pikhq_> FreeFull: By that notion DOS is a bootloader.
16:01:27 <FreeFull> Well, DOS does more than just loading executables
16:01:41 <FreeFull> It provides an API for doing stuff
16:01:58 <pikhq_> So does syslinux.
16:02:28 -!- jix has quit (Remote host closed the connection).
16:02:35 <pikhq_> A very, very limited subset of DOS and a couple things handy for adding functionality to the boot process.
16:03:35 <FreeFull> The difference is that DOS by default asks the user what to do, while syslinux by default follows the configuration =P
16:04:09 <Jafet> Cannot find /dev/sda1. Abort, retry, fail?
16:04:10 <FreeFull> Also,
16:04:21 <FreeFull> Also, I don't know if it's possible to go back to syslinux once the com32 file is done
16:04:56 <Jafet> It's an operating system with continuation passing, duh
16:10:07 -!- elliott has joined.
16:10:48 <elliott> fizzie: Do you know how to change the Linux console cursor?
16:10:51 <Jafet> By the way, don't forget the third copy of a subset of an operating system that needs to be implemented in the firmware.
16:10:53 <elliott> Like, pre-shell-opening.
16:11:08 <elliott> I know you can put some funny escape codes in your bashrc or whatever, but that doesn't help for the login prompt and whatnot.
16:11:11 <elliott> VITALLY IMPORTANT THINGS.
16:14:18 <atriq> Does anyone know where I can get help with a problem with Ubuntu Unity without people telling me that Unity sucks?
16:14:28 <Jafet> Unity sucks.
16:14:48 <olsner> atriq: not here, apparently
16:15:00 <atriq> Evidently
16:15:09 <olsner> Obviously
16:16:25 <elliott> atriq: Try http://askubuntu.com/.
16:16:47 <atriq> I don't exactly know how to elucidate my problem
16:17:05 <olsner> it's not working? stop using it, problem solved.
16:17:10 <elliott> atriq: Well, that's a problem.
16:17:21 <elliott> atriq: You could ask for help on http://english.stackexchange.com/!
16:18:54 <atriq> Do you know how to take a screenshot with the mouse cursor displayed?
16:19:26 <elliott> Uhh, not really. I think it's possible, though.
16:19:28 <elliott> I think scrot can do it.
16:19:38 <olsner> Once settled in, ferrets quickly establish their territory and set the house rules: What's theirs is theirs, what's yours is up for grabs.
16:19:55 -!- elliott has quit (Remote host closed the connection).
16:25:19 <oerjan> huh, http://english.stackexchange.com/ exists
16:27:11 <oerjan> those people are such cycles
16:27:34 <Jafet> http://islam.stackexchange.com/
16:34:43 -!- ogrom has quit (Quit: Left).
16:40:13 -!- Frooxius has joined.
16:49:16 -!- ogrom has joined.
16:50:23 -!- elliott has joined.
16:50:45 <elliott> fizzie: hello
16:52:38 <fizzie> elliott: There's a set of escape codes that date from the VGA console days, I'm not sure if they still do the same thing in fbcon. They can set the hardware console to underscore/lower-third/lower-half/lower-two-thirds/full-block, or turn on the soft cursor that has the same shapes but also a color.
16:52:55 <fizzie> I only have the vgacon.
16:53:20 <elliott> fizzie: Thanxe.
16:53:35 <elliott> fizzie: Do you know how much of the average /var/log is produced by syslog?
16:53:36 <FreeFull> fizzie: I think Linux does emulate them
16:53:43 <FreeFull> Not fully certain though
16:53:46 <fizzie> FreeFull: I wouldn't be surprised.
16:53:51 <elliott> fizzie: I've gotten systemd working but it doesn't seem to have this syslog compatibility shim thing running.
16:54:03 <elliott> fizzie: So I'm wondering if I want to get that working or whether I could just do without any syslog support whatsoever.
16:54:18 <fizzie> The codes aren't for some reason listed in the usual console_codes man page (or if they are, I didn't notice) but googling found http://linuxgazette.net/137/anonymous.html that lists them.
16:54:19 <FreeFull> If you tell me what the escape codes are I can find out
16:54:33 <fizzie> FreeFull: \e[?4c should make a half-block.
16:54:54 <elliott> fizzie: (The escape codes aren't the problem; the main problem is that I can't figure out how I can get that to run before login(1) or such.)
16:55:37 <FreeFull> fizzie: Works
16:56:11 -!- Phantom_Hoover has joined.
16:56:25 <FreeFull> Changing the number to 1 turns it off entirely
16:56:31 <fizzie> As for /var/log all the usual things (auth, daemon, dmesg, mail.{log,info,warn,err} and so on) I think tend to go through syslog; only "major" things like Samba, HTTP servers and so on have their own logging. At least in the systems I have.
16:56:39 <fizzie> FreeFull: Yes, it should.
16:56:57 <fizzie> FreeFull: 1-6 should be a steadily growing thing from invisible to full block.
16:57:27 <elliott> fizzie: I guess I should probably get this working then.
16:57:27 <FreeFull> Yep, it does that
16:57:49 <fizzie> (VGA hardware cursor is specified in terms of scanlines, so it's not really exposing the full functionality; VGA cursor can be a middle-of-the-cell thing, or an overline.
16:57:49 <elliott> fizzie: The wiki page is just all
16:57:49 <elliott> [[
16:57:50 <elliott> Since version 38 systemd has an own logging system, the journal.
16:57:50 <elliott> By default, running a syslog daemon is no longer required. To read the log, use:
16:57:50 <elliott> ]]
16:58:14 <fizzie> I know absolutely nothing about systemd. Except that I hear it's all the rage.
16:58:20 <fizzie> As in, popular.
16:58:29 <elliott> Well, uh, does this look sane to you? https://wiki.archlinux.org/index.php/systemd#Journald_in_conjunction_with_a_classic_syslog_daemon
16:58:49 <elliott> I don't even know what that would do exactly.
16:58:58 <elliott> I think the goal is to get syslog stuff filtered through into the systemd(tm) journal(tm).
16:59:05 -!- oerjan has quit (Quit: leaving).
16:59:06 <elliott> But I don't really know how to do that because I'm incompetent.
17:00:31 <fizzie> I think -- based on http://lwn.net/Articles/474968/ -- that systemd is "syslog-compatible" out of the box in the sense that it provides a /dev/log applications can log to, and those already go to wherever it is the journal goes.
17:01:06 <fizzie> But if you want a traditional syslogd sorting the messages and outputting /var/log/whatever as it is configured to, you'll just start the traditional syslogd and make it read that /run/systemd/journal/syslog and then it also gets all that stuff.
17:01:27 <fizzie> I suppose if you're not terribly interested in how the logs are organized, letting systemd do the whole thing is okay too.
17:01:35 <fizzie> Assuming it writes the journal somewhere.
17:02:05 <fizzie> "Note that the journal will store log data only on /run/log/journal which makes it volatile. If a subdirectory /var/log/journal is created the journal will instead store its data on /var, thus making the journal persistant."
17:02:28 <fizzie> You might do that and then use that systemd-journalctl thing that can output human-readable things or JSON or whatever, it sounds very modern.
17:03:24 <fizzie> I mean, unless you have a traditional syslogd configuration you're interested in keeping.
17:04:06 <elliott> <fizzie> I think -- based on http://lwn.net/Articles/474968/ -- that systemd is "syslog-compatible" out of the box in the sense that it provides a /dev/log applications can log to, and those already go to wherever it is the journal goes.
17:04:09 <elliott> Oh, I do have a /dev/log.
17:04:15 <elliott> I was trying nc -u 514.
17:04:24 <elliott> The Googles told me that's how you sent a message to syslog.
17:04:25 <elliott> Did they mislead me?
17:04:28 <fizzie> That's often not enabled by default.
17:04:33 <elliott> Right.
17:04:37 <fizzie> Or, well, I don't know how often, but at least sometimes.
17:04:52 <elliott> I don't think I need /var/log/whatever. I mean, I don't really look at them often, and I think systemd has its own stuff to read the logs.
17:05:10 <fizzie> Yes, it seems to have a thing that can produce things from the journal in all kinds of formats.
17:05:24 <elliott> There's this "journalctl" that just spews a bunch of output to a pager when run as root, at least.
17:05:31 <elliott> Including all the sudo logs and whatnot.
17:05:34 <elliott> So I suppose it is working fine.
17:05:40 <fizzie> Yes. So it sounds like it's working okays.
17:05:57 <fizzie> But you can do that thing referred to above if you want to make the journal persistent and not wiped out at each boot.
17:06:07 <elliott> Right, I heard about having to do the mkdir thing.
17:06:14 <elliott> s/\s+/ /g
17:06:22 <elliott> Well, I guess I'll uninstall sysvinit.
17:06:24 <elliott> You know, living on the edge.
17:06:56 <fizzie> For the record, I don't seem to have an UDP-listening syslogd either. It's not really necessary except when wanting to collect logs over the network from other boxes.
17:07:09 <fizzie> I think my VDSL2 modem can send stuff to a listening syslogd.
17:07:27 <fizzie> Except it doesn't write anything very interesting in the log last I looked.
17:07:34 <elliott> Right.
17:07:46 <elliott> The thing I found was all about testing a syslog server with a separate IP and so on.
17:08:32 <fizzie> "B0 Line Rate - Downstream (Kbps): 99998"
17:08:35 <fizzie> That sounds a bit dubious.
17:08:45 <fizzie> (I went to look at the box's webif.)
17:09:21 <elliott> "Slow boot? Blame systemd!
17:09:21 <elliott> No, this is not a disparaging or bashing article of the new Linux boot process technology designed to replace the older, classic System V init daemon."
17:09:27 <elliott> Good thing you didn't give it a sensationalised title, then!
17:10:13 <fizzie> Huh, I wonder if someone has done something to our internets. Upgraded hardware or something.
17:10:31 <fizzie> It reports attainable down/upstream rates as 123180/46260 Kbps.
17:10:49 <fizzie> They used to be something like 70M/... well, I don't remember what the upstream was.
17:11:01 <elliott> Hokay, so I want to do "sudo systemctl enable dhcpcd@eth0.service", I think.
17:12:26 <elliott> Then "sudo systemctl enable cronie.service".
17:12:26 -!- sivoais has quit (Read error: Connection reset by peer).
17:12:54 <elliott> Then alsa-store.service and alsa-restore.service.
17:13:03 <elliott> The unit files have no [Install] section. They are not meant to be enabled using systemctl.
17:13:03 <elliott> HELP
17:13:15 -!- sivoais has joined.
17:13:16 <elliott> Oh, it's default.
17:13:46 <elliott> RIP DAEMONS=(network crond alsa).
17:14:09 <elliott> fizzie: Isn't the FUTURE EXCITING?
17:15:25 <fizzie> It's almost enough for me to also try entering the future. But not quite.
17:15:46 <fizzie> I could do the stupid thing and try out the open-source nv driver one of these days, though.
17:15:52 <elliott> fizzie: My system boots up in, like, seconds now!!!
17:15:55 <elliott> Seconds!
17:16:03 <elliott> fizzie: PARALLEL.
17:16:10 <elliott> :: systemd-sysvcompat and sysvinit are in conflict. Remove sysvinit? [y/N] y
17:16:14 <elliott> THE FUTURE
17:16:21 <fizzie> Amazzing.
17:16:28 <elliott> I just saved 0.09 MiB by entering the future!
17:16:58 <elliott> I should set up ntp.
17:17:01 <elliott> I don't think I actually have it here.
17:17:03 <elliott> And ntp is very future.
17:17:06 <fizzie> Debian went "parallel" with sysvinit+dependency-based boot ordering quite a while ago, I believe.
17:17:13 <fizzie> You should set up a GPS clock.
17:17:18 <fizzie> There was a picture not long ago.
17:17:19 <olsner> elliott: don't do it, ntp will just adjust your system time back into the present
17:17:52 <pikhq_> fizzie: It's actually silly-yet-amazing.
17:17:58 <elliott> fizzie: Yes, but did you know that systemd is EVEN MORE PARALLEL?
17:18:01 <pikhq_> fizzie: They create a makefile and run it with make -j
17:18:05 <elliott> fizzie: It starts up services BEFORE THEIR DEPENDENCIES.
17:18:24 <fizzie> elliott: http://imgur.com/a/WtaOp if you didn't see it, it's what ion did.
17:18:42 <elliott> fizzie: (By opening a fake socket on the same port or whatever as the dependencies, and then holding everything that comes in there until the thing actually starts, and then forwards it on.)
17:19:05 <elliott> pikhq_: Oh. I assumed the "Makefile-based init" or whatever message that came up on every boot meant something... more reasonable.
17:19:05 <atriq> I really need to get better at naming types
17:19:13 <fizzie> If you set up NTP, you'll get a stratum-2 time at best; if you have your own GPS receiver you'll be stratum-1.
17:19:20 <elliott> Can I be stratum-0?
17:19:46 <pikhq_> Only if your NTP server *actually is* an atomic clock.
17:19:46 <fizzie> If your computer is an atomic clock, maybe.
17:19:49 <elliott> pikhq_: (Do they really do that?)
17:20:01 <pikhq_> elliott: Yes, that's how make-based init works.
17:20:09 <elliott> fizzie: What if I buy an atomic clock and plug it into my computer?
17:20:11 <elliott> I bet they're cheap nowadays.
17:20:14 <elliott> It's the future, after all.
17:20:20 <fizzie> elliott: Then the clock is stratum-0 and the computer stratum-1.
17:20:27 <fizzie> (They're weird that way.)
17:20:54 <elliott> fizzie: What's the difference between a computer with an atomic clock on its motherboard and a computer with a wire running to an atomic clock?
17:20:58 <elliott> Or is the former stratum-1 too?
17:21:08 <atriq> What's the opposite of Separation?
17:21:12 <atriq> (in a marriage context)
17:21:14 <fizzie> elliott: Possibly it is. I'm not really sure.
17:21:18 <elliott> If you have a display on your atomic clock so you can measure the time it's reading, is that display stratum-0 or stratum-1?
17:21:23 <atriq> (or, more generically, in a relationship context)
17:21:25 <pikhq_> atriq: Matrimony?
17:21:27 <pikhq_> :P
17:21:33 <elliott> Starting to think there's no such thing as stratum-0????
17:21:39 <elliott> I guess the actual, like, atoms are stratum-0.
17:21:40 <atriq> pikhq_, not quite
17:21:42 <elliott> But they don't really know what time it is.
17:21:45 <atriq> Perhaps Conjugation
17:21:47 <fizzie> elliott: It's kind of a philosophical question, I suppose.
17:22:07 <elliott> OKAY LET'S TRY THIS.
17:22:10 -!- elliott has quit (Remote host closed the connection).
17:22:25 <Phantom_Hoover> what's elliott doing
17:22:36 <atriq> Trying to achieve enlightenment
17:22:51 <olsner> leaving for the last time over and over again
17:27:08 <Phantom_Hoover> ah, we had a word for that back at rationalwiki
17:29:43 -!- elliott has joined.
17:29:48 <elliott> fizzie: HELP.
17:29:56 <elliott> fizzie: I feel so future that I want to switch to GPT.
17:30:12 <olsner> I tried that, didn't boot
17:30:16 <fizzie> "It's your funeral" is I think the phrase.
17:30:29 <fizzie> But it does sound like a natural thing to do.
17:30:38 <olsner> and the GPT data is all hidden and stuff, so getting rid of it is surprisingly tricky
17:30:54 -!- hagb4rd has quit (Ping timeout: 246 seconds).
17:31:32 <elliott> I'll try setting up ntp to, you know, stave it off.
17:32:07 <atriq> Aaaargh
17:32:11 <olsner> I'm not quite sure what GPT is supposed to give you that the good ol' crap doesn't
17:32:18 <fizzie> olsner: A sense of the future.
17:32:20 <atriq> Who can I poke about the GEDCOM specs
17:32:44 <fizzie> I might easily consider GPT if setting up a computer right now.
17:33:03 <Phantom_Hoover> i wish i could consider things like that
17:33:05 <fizzie> I'm not so sure about breaking an existing setup in order to do that.
17:33:27 <Phantom_Hoover> my laptop has like 3 mystery partitions that i can't bring myself to risk messing with
17:33:37 <atriq> Phantom_Hoover, can I ask you annoying questions regarding the GEDCOM specifications?
17:33:44 <Phantom_Hoover> fire away
17:33:57 <fizzie> On the laptop that was set up maybe a year or so ago there was mostly the issue that it needed to dual-boot to Windows and it was a BIOS system.
17:34:16 <atriq> In the definition of FAMILY_EVENT_STRUCTURE, what does the [Y|<NULL>] represent?
17:34:37 <Phantom_Hoover> the void in the soul of the sinner
17:34:39 -!- jiella has joined.
17:34:58 <atriq> `welcome jiella
17:35:04 <HackEgo> jiella: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
17:35:22 <Phantom_Hoover> jiella, a small jier
17:36:03 <atriq> jiella, did you want welcoming?
17:36:43 <jiella> Err.
17:36:47 <jiella> Not really.
17:36:53 <jiella> This attention is kind of creepy.
17:37:02 <atriq> Are you in Finland?
17:37:10 <Phantom_Hoover> are you in hexham
17:37:12 <shachaf> `? finland
17:37:15 <HackEgo> Finland is a European country. There are two people in Finland, and at least nine of them are in this channel. Corun drives the bus.
17:37:16 <jiella> Why do you ask?
17:37:27 <Phantom_Hoover> no reason
17:37:29 <Phantom_Hoover> just curious
17:37:45 <atriq> Because this is one of the English-language channels with the largest Finn density
17:38:01 <atriq> Also Hexhamite density
17:38:04 <atriq> Also, dinner, bbl
17:38:05 -!- atriq has quit (Quit: Leaving).
17:38:59 <Phantom_Hoover> also this is what we do to all new people
17:39:06 <Phantom_Hoover> we are a lonely bunch
17:39:11 <jiella> But I'm not new.
17:39:16 <jiella> Not really.
17:39:25 <shachaf> hi jiella
17:39:25 <jiella> I've been here more or less for... four years now?
17:39:32 <shachaf> Hexham or Finland?
17:39:41 <Phantom_Hoover> we also do it to people we haven't seen lately
17:39:46 <Phantom_Hoover> and some people we have
17:39:46 <jiella> Finland.
17:39:50 <Phantom_Hoover> `WELCOME jiella
17:40:08 <olsner> `? sweden
17:40:12 <HackEgo> Sweden is the suburb capital of Norway. It's where all the Nobel prizes are announced, except the Math Prize.
17:40:20 <olsner> `? norway
17:40:23 <shachaf> I was getting cold so now I'm compiling GHC to warm me up.
17:40:24 <HackEgo> Norway is the suburb capital of Sweden. It's where the Nobel Peace Prize is announced.
17:40:40 <shachaf> `? denmark
17:40:43 <HackEgo> denmark? ¯\(°_o)/¯
17:40:44 <Phantom_Hoover> jiella, so uh what nick did you use before
17:40:49 <shachaf> `? iceland
17:40:52 <HackEgo> iceland? ¯\(°_o)/¯
17:41:01 <Phantom_Hoover> `? scotland
17:41:04 <HackEgo> scotland? ¯\(°_o)/¯
17:41:09 <jiella> Several. You won't remember them. I say something perhaps every six months or so.
17:41:20 <Phantom_Hoover> are you sftp
17:42:07 <jiella> .. you're not going to go through a bunch of nicknames, are you?
17:42:13 <elliott> yes
17:42:24 <Phantom_Hoover> sshc
17:42:25 <shachaf> elliott: What are you doing here?
17:42:28 <shachaf> This isn't your channel.
17:42:30 <shachaf> @fresh
17:42:30 <lambdabot> Haht
17:42:36 <elliott> shachaf: fizzie let me
17:42:39 <elliott> in
17:42:41 <elliott> isn't that right fizzie
17:42:44 <olsner> @help fresh
17:42:44 <lambdabot> fresh provides: freshname
17:42:45 -!- Nisstyre-laptop has quit (Remote host closed the connection).
17:42:48 <olsner> @fresh
17:42:49 <lambdabot> Hahu
17:42:52 <shachaf> <fizzie> wrong
17:42:56 <shachaf> @help freshname
17:42:56 <lambdabot> freshname. Return a unique Haskell project name.
17:43:06 <shachaf> @fresh
17:43:06 <lambdabot> Hahv
17:43:38 <elliott> $ sudo systemctl enable ntpd.service
17:43:39 <elliott> ln -s '/usr/lib/systemd/system/ntpd.service' '/etc/systemd/system/multi-user.target.wants/ntpd.service'
17:43:40 <elliott> The most futurest.
17:43:41 <FreeFull> @fresh
17:43:41 <lambdabot> Hahw
17:43:49 <FreeFull> @freshname
17:43:49 <lambdabot> Hahx
17:44:00 <elliott> Uh, I wonder how to get it to enable it now/.
17:44:05 <FreeFull> It just increments the letter
17:44:37 -!- Nisstyre-laptop has joined.
17:44:39 <shachaf> elliott: Is HEAD GHC building for you?
17:44:45 <elliott> I don't build HEAD.
17:44:47 <olsner> reinventing init seems to be almost as much fun as adding levels of boot loaders
17:44:58 <elliott> olsner: Well, in fairness, init is pretty terribly-designed.
17:45:07 <elliott> systemd is better. Not perfect, but... better.
17:45:08 -!- Nisstyre-laptop has quit (Read error: Connection reset by peer).
17:45:28 <elliott> At least it just runs a bunch of stuff dependency-wise in parallel rather than the tangle of tasks old init does.
17:45:39 <olsner> sure, but everything sucks anyway, so why add the choice of new kinds of suckage
17:46:13 -!- Nisstyre-laptop has joined.
17:46:23 <olsner> I suppose it would be alright if there was one better init instead of a hundred
17:46:30 <elliott> It's faster suckage, olsner.
17:47:22 <elliott> Ah, "sudo systemctl start multi-user.target" did it.
17:47:23 <olsner> and that's a good thing
17:47:33 -!- zzo38 has joined.
17:48:08 <elliott> fizzie: Hey, how do I tell if my luck is... uh... ntp'd?
17:48:14 <elliott> ntpd is running, but I don't know if it's... thinging.
17:49:40 <olsner> ntptime seems to print some stats about that
17:49:55 <elliott> olsner: Thank you, fizzie.
17:50:11 <elliott> fizzie: "Startup finished in 5173ms (kernel) + 11636ms (userspace) = 16810ms".
17:50:18 <elliott> Does YOUR system start up in 16810 ms???
17:50:24 <shachaf> lrwxrwxrwx 1 shachaf shachaf 9 Sep 6 15:26 /home/shachaf/.ghc/ghci_history -> /dev/null
17:50:44 <olsner> elliott: how often do you start your system?
17:50:50 <elliott> olsner: Like, EVERY DAY.
17:50:54 <elliott> I need the fastest suckage. :(
17:51:00 <pikhq_> elliott: My *distro* boots in 3. :)
17:51:16 <elliott> pikhq_: I don't believe your distro boots in 3 ms.
17:51:19 <pikhq_> 3s
17:51:23 <elliott> That's not ms!!
17:51:29 <pikhq_> 3000ms Happy?
17:51:48 <jiella> Phantom_Hoover: No. At least I don't think so.
17:53:08 <olsner> at normal rebooting rate my system has about 25 minutes to boot before it spends more time booting than your 16810ms system
17:53:09 <elliott> pikhq_: I'm actually never happy.
17:53:35 -!- Ginto8 has joined.
17:53:55 <fizzie> elliott: Upstart needs some kind of an extra thing to collect statistics, so I don't really know. (I did see a recent systemd user be all "look at all these statistics I get by default" on me, I think you can get very detailed boot-timings out of it.)
17:54:51 <fizzie> At least I'm under the impression the Ubuntu box has upstart involved. The Debians don't really get booted.
17:55:39 <elliott> Yes, I can do this: http://sprunge.us/dIMG
17:55:42 <elliott> It also works with bootchart, apparently.
17:56:01 -!- hagb4rd has joined.
17:59:13 <elliott> fizzie: Do I have to do something special to check whether my BIOS supports GPT?
17:59:21 <elliott> I don't really know what can go wrong.
17:59:58 <olsner> I'd guess that it doesn't .. then again it might have it, or if it has support the support might not work
18:00:10 <olsner> oh, and if the gpt support is there and works, it might only be able to boot windows
18:00:12 <pikhq_> elliott: If it's a BIOS, it doesn't.
18:00:22 <pikhq_> However, BIOS also doesn't support DOS partitions.
18:00:37 <pikhq_> The BIOS's concept of partitioning is "load the first sector"...
18:00:53 <pikhq_> If you're not using UEFI, you simply need an MBR that groks GPT.
18:01:00 <elliott> pikhq_: Right.
18:01:09 <elliott> pikhq_: And I guess GRUB2 does that.
18:01:17 <elliott> (Do you use GPT??? Maybe I can be "ahead of the pack".)
18:01:24 <pikhq_> Currently I don't.
18:01:28 <pikhq_> My next system will.
18:01:37 <elliott> Is there some kind of hack you can do to get Windows booting from GPT?
18:01:39 <pikhq_> I'm still on an LVM setup.
18:01:44 <elliott> Some kind of chainloading nonsense or the like.
18:02:13 <elliott> (Also will this break /dev/sda2 and the like? I remember those having different names on OS X, which uses GPT.)
18:02:30 <pikhq_> Uh, no, pretty sure Windows only supports booting from GPT if booted from UEFI...
18:04:08 <pikhq_> It shouldn't. Linux's partition numbering is not based in DOS partitioning, but rather its generic partition handling code. Aside from that low level bit in the kernel, GPT is indistinct from all other partition formats.
18:04:41 <pikhq_> Including BSD disklabels, classic Mac OS partitions, and anything else anyone was crazy enough to implement.
18:05:08 <elliott> Right.
18:05:18 <elliott> I would sort of like to not totally lock myself out of booting Windows.
18:05:24 <elliott> Though I suppose I'm not likely to actually do so.
18:05:29 <elliott> Is there a way to convert GPT back to MBR? :p
18:06:57 <pikhq_> gdisk's "g" command.
18:07:08 <pikhq_> Oh, awesomer.
18:07:15 <pikhq_> You could create a "hybrid MBR"...
18:07:23 <elliott> Is that like what Boot Camp does on OS X?
18:07:25 <zzo38> FreeDOS boots much faster
18:07:25 <lambdabot> zzo38: You have 7 new messages. '/msg lambdabot @messages' to read them.
18:07:27 <pikhq_> Yes.
18:07:30 <elliott> It makes an MBR and synchronises that with the GPT or something.
18:07:33 <elliott> Is that well-supported on Linux?
18:07:36 <zzo38> ?messages?
18:07:36 <lambdabot> zzo38: You have 7 new messages. '/msg lambdabot @messages' to read them.
18:07:38 <zzo38> ?messages
18:07:39 <lambdabot> Sgeo said 1m 8d 51m 9s ago: Now you have a message.
18:07:39 <lambdabot> oerjan said 3h 32m 48s ago: <zzo38> I think the DotFami mapper codes actually form a idempotent commutative monoid, rather than just being a monoid. <-- i think an idempotent commutative monoid may
18:07:39 <lambdabot> the same as a semilattice
18:07:39 <lambdabot> oerjan said 3h 31m 42s ago: *may be
18:07:39 <lambdabot> oerjan said 3h 28m 48s ago: <zzo38> Does the Haskell compiler know that equality is reflexive? <-- it actually isn't, for Double (NaN)
18:07:41 <lambdabot> oerjan said 3h 23m 38s ago: Actually, a it's a semilattice with a bottom element (the mempty).
18:07:43 <lambdabot> oerjan said 3h 23m 23s ago: *-a
18:07:43 <zzo38> ?messages
18:07:45 <lambdabot> oerjan said 3h 21m 3s ago: From wikipedia: "A bounded semilattice is an idempotent commutative monoid."
18:07:47 <lambdabot> You don't have any new messages.
18:07:47 <elliott> All I remember is it is sort of a pain when they get out of sync.
18:08:30 <pikhq_> Linux appears to be fussy if the first partition on disk is not EFI.
18:09:03 <pikhq_> Erm, not GPT.
18:09:22 <pikhq_> Actually, yeah. As part of its GPT support it needs the first partition to be an EFI partition.
18:09:35 <elliott> Right.
18:09:38 <pikhq_> However, if that's the case it'll just ignore the DOS partitions.
18:09:44 <elliott> (I assume that doesn't mean I have to run EFI?)
18:09:56 <pikhq_> It doesn't mean that at all.
18:10:04 <pikhq_> That's just the partition EFI would read from if it existed.
18:10:33 <elliott> Right.
18:10:36 -!- atriq has joined.
18:11:50 <pikhq_> And Windows will gleefully ignore the GPT partitions.
18:13:21 <pikhq_> Hahah. And FreeBSD has the best hybrid MBR support possible.
18:13:39 <pikhq_> Faced with a hybrid setup, it parses both the GPT and classic partition headers.
18:13:46 <pikhq_> And you get device files for both.
18:14:06 <elliott> that sounds bad if they are duplicates
18:14:21 <pikhq_> It also has logic preventing badness.
18:14:27 <elliott> ok
18:14:40 <FreeFull> pikhq_: Why doesn't Linux do that?
18:14:44 <pikhq_> FreeFull: Beats me.
18:14:50 <pikhq_> Oh, wait, duh.
18:15:02 <pikhq_> Because Linux's partition numbering scheme doesn't quite handle that case well.
18:15:09 <atriq> Hmm
18:15:27 <pikhq_> /dev/sdaN doesn't work nicely for parallel partition numbers
18:15:50 <pikhq_> /dev/da0pN and /dev/da0sN does, though.
18:18:09 <atriq> I am REALLY bad at coming up with names
18:18:40 <FreeFull> pikhq_: Couldn't it just use more numbers
18:19:07 <pikhq_> FreeFull: Still doesn't quite seem right. Some of those numbers will refer to the same blocks.
18:19:25 <elliott> pikhq_: Do you know of a login manager that doesn't depend on ConsoleKit?
18:19:33 <elliott> Login manager. I mean display manager thing.
18:20:14 <pikhq_> I don't think LXDE does.
18:20:28 <pikhq_> There's also XDM.
18:20:50 <elliott> I... guess I could use XDM.
18:20:58 -!- elliott has quit (Remote host closed the connection).
18:24:09 -!- elliott has joined.
18:24:16 <elliott> pikhq_: You use systemd, right?
18:24:23 <pikhq_> Nah.
18:24:40 <pikhq_> I use stock init ATM, at one point I'd like to distro-like-crazy and use runit.
18:25:18 <elliott> pikhq_: Can you start using systemd so I can ask questions about it? :p
18:25:53 <pikhq_> I'd rather not. I'm not much of a Lennart fan. :P
18:26:13 <pikhq_> (to fix problems with pulseaudio, do: apt-get remove pulseaudio )
18:26:24 <coppro> pikhq_: I prefer purge
18:26:36 <coppro> pikhq_: Also, I'm not entirely convinced that doing that won't fix problems even if pulseaudio isn't installed
18:26:51 <FreeFull> I use systemd
18:26:54 <FreeFull> Not pulseaudio though
18:26:56 <elliott> pikhq_: I don't like PulseAudio, but systemd is quite nice.
18:26:59 <elliott> At least so far.
18:27:14 <elliott> IIRC runit doesn't actually work properly as PID 1?
18:27:55 -!- monqy has joined.
18:27:58 <elliott> FreeFull: Do you happen to use Arch also?
18:28:18 <FreeFull> Yes
18:29:02 <pikhq_> elliott: Yeah, but PID 1 does not need to do much.
18:29:29 <elliott> FreeFull: Do you happen to know if I still need "fsck" in the HOOKS list in /etc/mkinitcpio.conf if I'm using systemd, since it seems to run its own systemd-fsck thing by itself? (Although it also seems to only run it on /dev/sda1, which might have something to do with /dev/sda2 being JFS...)
18:29:47 -!- ogrom has quit (Quit: Left).
18:29:50 <FreeFull> elliott: I have no idea
18:30:01 <pikhq_> http://sprunge.us/QAQe That does everything init needs to do.
18:30:04 <elliott> FreeFull: Well, you were almost useful :P
18:30:04 <FreeFull> elliott: Tried asking in #archlinux?
18:30:16 <elliott> pikhq_: Well, no, but I don't like the idea of having an /etc/rc.start or whatever that "just" sets up filesystems and the network and so on... those can fit perfectly fine into a dependency-ish system like systemd does.
18:30:44 <elliott> FreeFull: I probably should, yes. But I'll try floundering about messing with it for a bit more first.
18:30:58 <pikhq_> for(;;) wait(&status); is all PID 1 does for the rest of the system run, FWIW.
18:31:16 -!- copumpkin has quit (Ping timeout: 248 seconds).
18:31:25 <elliott> Yes, I know that much.
18:31:31 <elliott> Still, you have an /etc/rc there which is the real problem.
18:31:52 -!- copumpkin has joined.
18:31:54 <pikhq_> elliott: Ideally, perhaps. But systemd's approach appears to be "shove everything into a single process that, if it fails, crashes the *entire system*"...
18:32:12 <elliott> pikhq_: That, uh, applies to every PID 1.
18:32:16 <pikhq_> Yes.
18:32:27 <pikhq_> Hence why PID 1 should be for(;;) wait(&status);
18:32:34 <pikhq_> Nearly impossible to crash.
18:32:45 <pikhq_> If it does crash, your system is already FUBAR'd.
18:32:57 <elliott> monqy: What's *your* opinion on this?
18:33:18 <pikhq_> I'd love for a better dependency-based boot scheme though.
18:33:26 <pikhq_> I just don't feel systemd is the correct approach.
18:33:47 <pikhq_> It does *resemble* the correct approach, but still...
18:34:24 <elliott> pikhq_: Well it's less maintenance than having to manually fiddle about with a monolithic /etc/rc, even if it's theoretically less stable in the worst case.
18:35:28 <monqy> hi opinion on what
18:35:48 <elliott> monqy: Damn.
18:35:54 <elliott> monqy: I was hoping to trick you again.
18:36:13 <monqy> only 1 message
18:36:13 <pikhq_> I've also got issues with PID 1 dbus.
18:36:16 <monqy> tsk tsk tsk
18:37:30 <elliott> monqy: Tsk yourself, I've been too busy living in the future.
18:38:31 -!- sirdancealot has quit (Read error: Connection reset by peer).
18:38:35 -!- atriq has quit (Quit: Leaving).
18:38:58 <pikhq_> I've also got this weird thing where I want everything using *less* code... I mean, I find zlib offensive.
18:39:49 <elliott> monqy: I'm so far in the future that /etc/rc.conf stopped existing :'(
18:40:10 -!- sirdancealot7 has joined.
18:42:51 <monqy> i still have /etc/rc.conf but all that's in it is the DAEMONS array
18:43:40 <elliott> monqy: I don't even have that!!
18:43:43 <elliott> My /etc/inittab also disappeared.
18:46:15 <elliott> monqy: Also I can do fancy things like this!! http://sprunge.us/gSGG you can't see it there but "active (running)" is green
18:48:00 -!- jiella_ has joined.
18:49:22 -!- elliott has quit (Remote host closed the connection).
18:49:31 -!- jiella has quit (Ping timeout: 260 seconds).
18:54:37 -!- elliott has joined.
18:55:57 <elliott> pikhq_: OK well do you use GRUB 2
19:03:32 <pikhq_> Yes.
19:03:46 <elliott> Yay.
19:04:07 <elliott> Do you know how to get it to skip the menu and just boot up in three seconds unless I press ESC? I've tried setting up the hidden menu stuff, but it ends up doing the countdown, and *then* showing the menu once the countdown expires.
19:04:11 <elliott> Which seems... wrong.
19:06:24 -!- Phantom_Hoover has quit (Ping timeout: 252 seconds).
19:08:39 <elliott> fizzie: Also do you still use that crazy dzen2 dbus thing?
19:12:59 <fizzie> elliott: Regarding the earlier, I plead the saunath of not answering.
19:13:16 <fizzie> But people dual-boot Windows on systems with a dual GPT + MBR-emulation setup.
19:13:24 <fizzie> It's a bit arguable whether that makes any sense.
19:13:32 <fizzie> Regarding the latter, yes.
19:14:54 <fizzie> Everyone keeps saying I should adopt the XMonad view of there being a single set of workspaces shared between the monitors, but I'm just so stuck with this IndependentScreens thing.
19:15:11 <fizzie> (Okay, "everyone" here means like one person who wasn't even talking to me. But still.)
19:19:20 <fizzie> "The latest versions [of caesium clocks] are accurate to better than 1 part in 10^15, which means they would be off by about 2 seconds since the extinction of the dinosaurs 65 million years ago --" two seconds?!
19:19:33 -!- ogrom has joined.
19:23:09 <elliott> fizzie: Why does passing -fn '-*-terminus-medium-r-*-*-20-*-*-*-*-*-*-*' do the wrong thing? :(
19:23:20 <elliott> It shows me DejaVu Sans at 20 pixels or whatever.
19:23:23 <elliott> To dzen2, I mean.
19:24:13 <fizzie> I don't know, but I've been having really stupid problems with dzen2 compiled to support xft when trying to use the usual X logical font descriptors like that.
19:24:27 <fizzie> I blame fontconfig. It might not be its fault, but I still blame it somehow.
19:24:57 <fizzie> (When you compile dzen2 to "support Xft", it actually uses Xft for everything. In *theory*, it should be possible to use bitmap fonts and XLFDs, but...)
19:25:08 <elliott> Terminus:pixelsize=20 does the same thing.
19:25:20 <fizzie> If you're going to be using '-*-terminus-medium-r-*-*-20-*-*-*-*-*-*-*' exclusively, there's an easy fix of just compiling it without Xft support.
19:25:36 <fizzie> Ubuntu for example has a default fontconfig file hidden deep in /etc that disables all pixel fonts.
19:25:53 <fizzie> /etc/fonts/conf.d/70-no-bitmaps.conf that is.
19:26:08 <elliott> <fizzie> If you're going to be using '-*-terminus-medium-r-*-*-20-*-*-*-*-*-*-*' exclusively, there's an easy fix of just compiling it without Xft support.
19:26:14 <elliott> The "easy fix" involving "not using the standard Arch binary package for it".
19:26:22 <fizzie> Well, there's that.
19:26:37 <elliott> I do have some somewhat suspicious 29-replace-bitmap-fonts.conf and 70-no-bitmaps.conf files.
19:27:09 <elliott> Hokay, unlinking the latter has helped.
19:27:17 <fizzie> Yeah. It's possible to per-user "undo" those by suitable configuration in ~/...whateveritwas, but fontconfig configuration is such pain.
19:27:19 <elliott> Now dzen2 uses some really shockingly beyond-belief godawful font by default.
19:27:47 <fizzie> I'm just using scalable fonts these days. *shame*
19:27:49 <elliott> fizzie: Feel my pain: http://i.imgur.com/mgTSb.png
19:27:59 <elliott> Well, I don't mind scalable fonts, of course.
19:28:02 <fizzie> I think I've seen that thing.
19:28:03 <elliott> The Terminus thing is a long story.
19:28:09 -!- atriq has joined.
19:29:09 <fizzie> I used the SunOS console font for a while on some moderately-high-DPI screen.
19:29:25 -!- Phantom_Hoover has joined.
19:29:25 <fizzie> I don't think it had a very good Unicode support though.
19:30:16 <fizzie> I do wonder if that open-source Source Code from Adobe is any good at my point sizes and resomolutions.
19:30:18 <Phantom_Hoover> important question, am i joinspamming
19:30:49 <elliott> fizzie: Is there, uh, a nice way to get dzen2 to start at the bottom?
19:30:58 <elliott> Also I don't like Source Code; it's way too wide and not tall enough.
19:31:52 <fizzie> Maybe not a "nice way"; it has -x -y -w -h parameters, but you'd need to do some math for "bottom".
19:32:27 <fizzie> The sort of complicated math of y=screenheight-barheight.
19:33:12 <elliott> fizzie: Alsoalso what was that thing you needed to do to align text rightmost in new dzen2?
19:33:14 <elliott> Some fancy code.
19:33:27 <fizzie> I'll grep for it, I can't remember ever.
19:34:12 <fizzie> <fizzie> There's an undocumented "make a fixed-width block of left/middle/right-aligned text" command ^ba -- sorta-described at http://dzen.geekmode.org/dwiki/doku.php?id=dzen:mainindex and not included (I believe) in the dzen2-0.8.5 stable version -- that can help. Then again, it might not; it's strictly fixed-width.
19:34:24 <fizzie> I don't know what source the Arch version uses.
19:34:28 <elliott> git. :p
19:34:37 <fizzie> Well, that's good.
19:35:20 <fizzie> I'm not entirely sure the example is right and not missing an underscore for the alignment specifier. But maybe it is.
19:35:51 <fizzie> else if(!strcmp(buf, "_RIGHT"))
19:35:51 <fizzie> *a = ALIGNRIGHT;
19:35:55 <elliott> Is there an xmonad helper function thingy that just runs a shell line and returns the output? ISTR there is.
19:35:56 <fizzie> That does look a bit _ey.
19:37:46 <fizzie> XMonad.Util.Run has some helpers. I don't see exactly that there, maybe it was somewhere else.
19:39:10 <fizzie> I think System.Process might have something reasonably usable non-XMonad-specific too. Like readProcess.
19:39:27 <fizzie> "readProcess forks an external process, reads its standard output strictly, blocking until the process terminates, and returns the output string."
19:40:34 <elliott> Hmm, there's spawn :: MonadIO m => String -> m () in XMonad.Core.
19:41:01 <elliott> I'll try readProcess.
19:45:04 <fizzie> elliott: Oh, right, XMonad.Util.Run has a runProcessWithInput.
19:45:17 <fizzie> elliott: I skipped it because of the name, but it also returns the output, and you can just give "" as the input.
19:45:22 <elliott> That might be it.
19:46:05 <fizzie> It's :: MonadIO m => FilePath -> [String] -> String -> m String so it should work in IO or X or so on.
19:48:20 <elliott> Oh, logCmd "date +'%H:%M'" works for my purposes.
19:49:13 <elliott> Oh, so does date "%H:%M".
19:49:36 <elliott> Though apparently it... only updates when you switch workspaces.
19:50:50 <fizzie> The logHook should be called every time you switch focus, too.
19:51:06 <fizzie> But not really much more oftener than that.
19:54:16 -!- sebbu- has joined.
19:54:30 <fizzie> I get these "dhclient: Discarding packet with bogus hlen."s nowadays.
19:55:18 -!- Deewiant has quit (*.net *.split).
19:55:18 -!- sebbu has quit (*.net *.split).
19:55:19 -!- zzo38 has quit (*.net *.split).
19:55:19 -!- pikhq_ has quit (*.net *.split).
19:55:19 -!- EgoBot has quit (*.net *.split).
19:55:19 -!- mroman has quit (*.net *.split).
19:56:13 -!- zzo38 has joined.
19:56:14 -!- pikhq_ has joined.
19:56:14 -!- EgoBot has joined.
19:56:14 -!- mroman has joined.
19:56:43 <elliott> Hmm, I can't figure out what the width should be to have this work properly.
19:56:50 <elliott> This is a very silly thing.
19:57:05 <elliott> fizzie: (Do you know of any way to get it called more cmmonly?)
19:57:06 <elliott> *commonly
19:57:13 <elliott> I guess I might have to use your dbus thing if I want a clock and things.
19:57:23 <atriq> EgoBot is on a different server to Gregor and HackEgo?
19:58:23 <Gregor> Being connected to a different server isn't very interesting, the server you get connected to is more or less random.
19:58:27 <fizzie> elliott: I think generally speaking "most people" use xmobar; it's got widgets like clocks in addition to the xmonad-reading bits.
19:58:32 <atriq> Apparently there was both a Homestuck meetup and a Hetalia meetup in Newcastle together
19:58:38 <atriq> *today
19:59:47 <elliott> fizzie: I can't use xmobar because of shachaf.
20:00:20 -!- Nisstyre-laptop has quit (Remote host closed the connection).
20:01:43 <fizzie> elliott: Well, the dzen2 minority then use different kinds of "multiplexing" scripts, I believe.
20:02:09 <elliott> Right.
20:02:27 <fizzie> dmplex has some kind of official status.
20:02:38 <fizzie> In that it's at the dzen site and so on.
20:02:48 <elliott> Got a link?
20:02:56 -!- Nisstyre-laptop has joined.
20:02:57 <fizzie> http://dzen.geekmode.org/dwiki/doku.php?id=dzen:multiplexer has a link.
20:03:02 <fizzie> I haven't used it at all.
20:03:59 <elliott> Does it really use a named pipe.
20:04:33 <fizzie> Well. It reads from the standard input. But the example setup does seem to use one.
20:04:59 <fizzie> I don't know, I've got that stupid dbus thing. And I don't have a clock anyway.
20:05:45 <fizzie> XMonad has timers -- well, XMonad.Util.Timer does -- and some real xmonad person would probably know some kind of a hack that'd make it call the logHook when one fires.
20:06:08 -!- oerjan has joined.
20:07:35 -!- Deewiant has joined.
20:14:00 <atriq> lifthrasiir, are you following the League of Legends world championship
20:16:55 <Phantom_Hoover> racist
20:17:08 <atriq> Phantom_Hoover, are you?
20:17:28 <Phantom_Hoover> yes
20:17:35 <Phantom_Hoover> do you want to join my racist club
20:22:13 <ion> I forgot a ventilation window open while i was away. Some temperatures and the PC clock’s offset to GPS time from the same period: (yeah, all the things run too hot, i haven’t got around to doing something about the ventilation) http://heh.fi/collectd/img/temperature http://heh.fi/collectd/img/time-offset-gps
20:24:18 <oerjan> ion: that's disappointing, i was assuming you had discovered a temperature correction to relativity
20:32:30 <oerjan> `learn Scotland is a country in northern Britain. It is known for having no true inhabitants.
20:32:33 <HackEgo> I knew that.
20:32:48 <elliott> oerjan: fix
20:32:56 <oerjan> what NOW
20:32:58 <atriq> `learn Scotland is a country in northern Britain. It is known for having no true inhabitants. Phantom_Hoover looks after the FREEDOM.
20:33:02 <HackEgo> I knew that.
20:33:03 <elliott> oerjan: ". "
20:33:06 <elliott> atriq: ". "
20:33:12 <oerjan> sheesh
20:33:14 <atriq> `learn Scotland is a country in northern Britain. It is known for having no true inhabitants. Phantom_Hoover looks after the FREEDOM.
20:33:18 <HackEgo> I knew that.
20:33:36 <oerjan> `? england
20:33:39 <HackEgo> england? ¯\(°_o)/¯
20:33:43 <Phantom_Hoover> although i'm looking after it in england these days
20:34:09 <FreeFull> England is where the crumpets live
20:34:45 <oerjan> `learn England is a country in southern Britain, with capital Hexham. The people there are all punctuation fascists. ais523 looks after the Turing machines.
20:34:48 <HackEgo> I knew that.
20:35:26 <elliott> `learn England
20:35:30 <HackEgo> I knew that.
20:35:30 <elliott> `? england
20:35:33 <HackEgo> England is a country in southern Britain, with capital Hexham. The people there are all punctuation fascists. ais523 looks after the Turing machines.
20:35:37 <elliott> no!!
20:35:40 <oerjan> yay!
20:36:10 <oerjan> `run ls wisdom/en*
20:36:14 <HackEgo> wisdom/endofunctor \ wisdom/england
20:36:29 -!- sebbu- has changed nick to sebbu.
20:36:29 -!- sebbu has quit (Changing host).
20:36:29 -!- sebbu has joined.
20:37:43 <FreeFull> `run rm -rf wisdom
20:37:46 <HackEgo> No output.
20:38:00 <FreeFull> `run ls wisdow/en*
20:38:03 <HackEgo> ls: cannot access wisdow/en*: No such file or directory
20:38:22 <FreeFull> Sorry D:
20:38:28 <FreeFull> `? england
20:38:32 <HackEgo> england? ¯\(°_o)/¯
20:38:35 <oerjan> `revert
20:38:38 <HackEgo> Done.
20:38:41 <oerjan> `? england
20:38:45 <HackEgo> England
20:38:50 <oerjan> aaaaa
20:39:07 <FreeFull> `? scotland
20:39:11 <HackEgo> Scotland is a country in northern Britain. It is known for having no true inhabitants. Phantom_Hoover looks after the FREEDOM.
20:39:43 <oerjan> `learn Scotland is a country in northern Britain. It is known for having no true inhabitants. The official religion is hatheism. Phantom_Hoover looks after the FREEDOM.
20:39:46 <HackEgo> I knew that.
20:40:17 <oerjan> `learn England is [EXPUNGED].
20:40:21 <HackEgo> I knew that.
20:40:24 <FreeFull> `run echo "I like pie" >> wisdom/pie
20:40:28 <HackEgo> No output.
20:40:30 <FreeFull> `? pie
20:40:34 <HackEgo> I like pie
20:40:44 <FreeFull> `run echo "I like pie" >> wisdom/pie
20:40:48 <HackEgo> No output.
20:40:49 <FreeFull> `? pie
20:40:52 <HackEgo> I like pie \ I like pie
20:41:09 <fizzie> fungot: Do you like position-independent executables?
20:41:11 <fungot> fizzie: and resource files as ascii have the same feelings, too. i'm pretty sure you'd just use fnord in load or on the author's part, mostly. direct to-c translation, no gc ( iirc) from the console
20:41:17 <FreeFull> I see, "\n" becomes " \\ "
20:43:15 <oerjan> `learn pi is a very round number.
20:43:19 <HackEgo> I knew that.
20:43:26 <oerjan> `revert
20:43:29 <HackEgo> Done.
20:43:31 <olsner> puntastically round
20:43:32 <oerjan> `? pi
20:43:36 <HackEgo> pi? ¯\(°_o)/¯
20:43:38 <oerjan> `learn pi is a very round number.
20:43:41 <HackEgo> I knew that.
20:44:34 <FreeFull> `? oerjan
20:44:37 <HackEgo> Your evil overlord oerjan is a lazy expert in future computation. Also a lying Norwegian.
20:44:45 <FreeFull> `? FreeFull
20:44:48 <HackEgo> FreeFull? ¯\(°_o)/¯
20:45:20 <oerjan> `learn FreeFull is either full of freedom or free of fulldom, we are not sure.
20:45:23 <HackEgo> I knew that.
20:45:59 <FreeFull> `run echo -ne "F\rr\re\reFull likes messing around way too much" >> wisdom/FreeFull
20:46:02 <HackEgo> No output.
20:46:07 <FreeFull> `? FreeFull
20:46:11 <HackEgo> FreeFull is either full of freedom or free of fulldom, we are not sure.
20:46:21 <FreeFull> Has to be lowercase then
20:46:23 <oerjan> `rm wisdom/FreeFull
20:46:26 <zzo38> Can you make a hardware description language based only on multiplexers? There is a esolang software programming language Muxcomp which is design of a computer based only on multiplexers.
20:46:26 <HackEgo> No output.
20:46:28 <FreeFull> `run echo -ne "F\rr\re\reFull likes messing around way too much" >> wisdom/freefull
20:46:32 <HackEgo> No output.
20:46:37 <FreeFull> `? FreeFull
20:46:41 <HackEgo> FreeFull is either full of freedom or free of fulldom, we are not sure. \ F.r.e.eFull likes messing around way too much
20:47:09 <nortti> :P http://thedailywtf.com/Articles/Known-Bad-Code.aspx
20:53:58 <atriq> I'm in a Skype group call with someone who's asleep
20:54:13 <ion> k
20:54:19 <oerjan> are they snoring?
20:54:25 <atriq> She was whimpering
20:54:28 <Arc_Koen> hmmmm
20:54:32 <atriq> She's woken up again, thoguh
20:55:03 <atriq> She's asleep agaiN!
20:55:23 <atriq> She's...
20:55:26 <atriq> Started apologizing
20:55:29 <atriq> In her sleep
20:56:17 <Arc_Koen> so imagine I'm programming in C; I create a string with char *p = malloc(strlen(s) * sizeof(char)); and later I make this string shorter (possibly much shorter), can I do something like free(p+k+1); where k is the new length?
20:56:43 <atriq> Okay, apparently she's got a head injury and blacks out from time to time
20:56:57 <atriq> Doctor says it's either gonna last a month or it's permanent
20:56:57 <fizzie> Arc_Koen: No, but you can call realloc on it.
20:57:14 <fizzie> It's not guaranteed to actually free up any storage, of course.
20:57:19 <olsner> Arc_Koen: sizeof(char) is 1, and you're forgetting to allocate a byte for the null
20:57:25 <fizzie> Those, too.
20:57:44 <Arc_Koen> olsner: the null already is in s
20:57:51 <fizzie> Arc_Koen: But not counted by strlen.
20:57:58 <Arc_Koen> oh
20:58:11 <Arc_Koen> but it worked?!
20:58:15 <fizzie> If doing realloc, remember that it's also allowed to move the string, invalidating any other copies of the pointer you might have lying around.
20:58:21 <fizzie> Well, undefined behaviour is allowed to work.
20:58:28 <fizzie> Quite often allocation isn't all that exact anyway.
20:59:13 -!- ais523 has joined.
20:59:59 <oerjan> ais523: elliott is evil, he censored my reveals of english secrets!
21:00:52 <Phantom_Hoover> oh dear
21:01:01 <Phantom_Hoover> there are 10 episodes of the armando ianucci shows
21:01:14 <Arc_Koen> fizzie: I have no idea what I'd use realloc for; I only wanted to free the remaining of the string because my paranoid aspy told me placing a new '\0' in the middle of the string would cause the remaining to be lost forever
21:01:32 <elliott> "free the remaining of the string" makes no sense
21:01:56 <Arc_Koen> elliott: well imagine I use malloc to get a string of 1000 characters
21:02:09 <elliott> I know what you mean, but it makes no sense.
21:02:11 <fizzie> Arc_Koen: "free the remaining of the string" is what you could do with realloc; resize the block of memory to fit exactly the new string.
21:02:23 <Arc_Koen> and then I decide only the first 10 are relevant, so I place a '\0' after the tenth character
21:02:24 <fizzie> Arc_Koen: But if you're not worried about memory consumption, there's really no reason to do it.
21:02:31 <olsner> placing a magic value in the middle of a string will indeed have magic effects on the rest of the string
21:02:48 <fizzie> Arc_Koen: If you free(p) it will free what was allocated, and doesn't care about the contents of those bytes.
21:02:51 <Arc_Koen> ok I guess I won't do it then
21:03:08 <Arc_Koen> fizzie: that's why I wanted to free(p+k+1)
21:03:39 <fizzie> Arc_Koen: Uh. I'm not quite getting it.
21:03:56 <fizzie> Arc_Koen: You can't free p+k+1, because it is not a thing that was allocated by malloc.
21:04:01 -!- ogrom has quit (Quit: Left).
21:04:02 <elliott> fizzie: If you do p[10] = 0 to truncate a string then Arc_Koen is saying free(&p[11]).
21:04:04 <Arc_Koen> yeah, ok
21:04:08 <elliott> (But that's not how allocation works.)
21:04:13 <elliott> fizzie: Hey, what border widths and colours do you use in xmonad??
21:04:22 <elliott> SURVEY.
21:04:38 <FreeFull> free can only take the exact pointer that's returned by malloc
21:04:39 <fizzie> elliott: Yes, I got that much. But I just explained that free(p) will free all of p even if you put a 0 in there, so it felt somehow incongruous to get an answer of "that's why I want to free the trailing part".
21:04:43 <FreeFull> Or by calloc
21:04:45 <FreeFull> Nothing else
21:04:55 <elliott> FreeFull: Not true.
21:04:55 <fizzie> FreeFull: Also one that was returned by realloc.
21:05:00 <elliott> FreeFull: free can also take NULL IIRC.
21:05:06 <fizzie> That, too.
21:05:10 <FreeFull> Well, yeah, NULL too
21:05:21 <FreeFull> If it gets NULL, it just returns successfully
21:05:27 <Arc_Koen> so, about that +1 I forgot in the malloc (for the null character), the fact that the program still worked well without it, does it mean it happened to have placed that '\0' on a not-free byte without causing a segfault?
21:05:31 <fizzie> FreeFull: realloc(NULL, 42); is equivalent to malloc(42); and then you can later free that pointer.
21:05:42 <FreeFull> Arc_Koen: Yes
21:05:45 <olsner> yeah, free on NULL is a no-op ... lots of people miss that and add one or more layers of null checks just because
21:05:50 <FreeFull> Well, not necessarily, but it is possible
21:05:59 <fizzie> elliott: I'm using a border width of 1 and colors that I don't think I have configured. It's some kind of a grey for non-focus, red for focus.
21:06:23 <Arc_Koen> so I just destroyed a char from my computer? I thought that was what segfaults were supposed to prevent!
21:06:28 <FreeFull> fizzie: Anything not allocated by the C *alloc functions then =P
21:06:33 <fizzie> Arc_Koen: It's also possible that malloc for some reason returned a bit more than what you asked for, and the byte was in fact free.
21:06:52 <kmc> Arc_Koen: segfaults are caused by going onto an unmapped page of memory
21:07:01 <kmc> pages are fairly coarse-grained units, typically 4kB or more
21:07:17 <kmc> they are nowhere near exact bounds checking
21:07:56 <fizzie> FreeFull: I was going to be all "and then in C11 there's aligned_alloc" on you but your wildcard matches that too. :/
21:08:11 <elliott> Arc_Koen: FSVO "destroyed".
21:08:23 <elliott> Arc_Koen: All you did was overwrite memory you weren't supposed to have btu were given anyway.
21:08:23 <FreeFull> Yay globs
21:08:31 <elliott> Arc_Koen: Nobody else was affected, just you.
21:08:34 <elliott> *but
21:08:54 <Arc_Koen> ok, so I did not overwrite a byte I wasn't given? great :)
21:09:04 <olsner> there are only so many bits in the world, and every run of this program has destroyed 8 of them
21:09:12 <FreeFull> Arc_Koen: Depends on how big the string is
21:09:28 <fizzie> Arc_Koen: Well, you overwrote a byte that you owned. It might have been part of some other string in your process, but not part of any other process.
21:09:50 <FreeFull> If the strlen happens to match the alignment, then the \0 will overwrite something else
21:09:53 <elliott> (FSVO "owned".)
21:10:02 <elliott> (As far as C is concerned you were trespassing.)
21:11:04 <fizzie> Yes, it's certainly not a thing to do, and can be fatal to the program itself.
21:12:01 <oerjan> FreeFull: your allocation is probably rounded up at least to the nearest multiple of 4 or 8 (the alignment)
21:12:04 <oerjan> er
21:12:10 <oerjan> *Arc_Koen:
21:12:58 <Arc_Koen> well I switched to strncpy that should shut down the paranoia for now
21:13:17 <oerjan> and malloc might want to use even larger blocks to avoid fragmentation? i don't actually know whether it does.
21:13:56 <olsner> there are many mallocs, each making different tradeoffs
21:14:35 <elliott> pikhq_: I forget, did I ask you about that GRUB 2 menu thing?
21:15:36 <oerjan> <olsner> there are only so many bits in the world, and every run of this program has destroyed 8 of them <-- 2nd law says that's approximately true
21:16:10 <olsner> yeah, I somewhat failed to not make sense there
21:17:07 <oerjan> unless his program was reversible, of course.
21:17:16 <fizzie> Arc_Koen: strncpy is a function that's somewhat hard to use right, FWIW. It's somewhat sad that strncpy is not to strcpy what e.g. strncat is to strcat.
21:18:44 <Arc_Koen> unsigned int p_length = strlen(argv[1]); char *p = malloc((p_length + 1) * sizeof(char)); strncpy(p, argv[1], p_length);
21:19:16 <olsner> meh, use memcpy with p_length+1 instead
21:19:21 <Arc_Koen> I've never used strcat before so i'm not sure how I should feel about strncpy
21:19:29 <olsner> this is one of the cases where you know exactly how much to copy
21:19:38 <kmc> apparently to get gstreamer faac support i have to apt-get install gstreamer0.10-plugins-really-bad
21:19:51 <ion> :-)
21:20:07 <kmc> you know it is very important to respect software patents while transcoding illegally acquired copyrighted TV shows
21:20:15 <ion> Verily.
21:20:23 <fizzie> Arc_Koen: Well, that's safe. But it's easy to forget \0s at the end of strings with strncpy; and when it's done safely like that, it's often still needlessly inefficient because if the source string is shorter, it will still pad the whole destination with \0s.
21:20:37 <fizzie> Arc_Koen: Oh, and yes, s/safe/unsafe/
21:20:50 <fizzie> Arc_Koen: Since it doesn't put the \0 there. You've just left a space for it.
21:20:59 <Arc_Koen> WHAT
21:21:01 <fizzie> If you follow it with a p[p_length] = 0 it's safe.
21:21:28 <fizzie> Arc_Koen: That's what strncpy does. It writes up to 'len' bytes, and if the source string is that long (or longer) the destination won't contain a \0.
21:21:42 <Arc_Koen> so I should've, like, used "strncpy(p, argv[1], p_length+1);" ??
21:21:44 <olsner> is there any case where you really want to zero out the rest of the buffer?
21:22:17 <Arc_Koen> so that strncpy would say "oh look, argv[1] is one byte too short, let's put an extra '\0'"
21:22:26 <fizzie> Arc_Koen: Well, that would've been safe, but in general no, because that won't put a \0 in the buffer if the source string is longer.
21:22:30 <fizzie> 00:21 <fizzie> ,cc char *s = "alongstringhere"; char buf[4] = {1,2,3,4}; strncpy(buf, s, (sizeof buf) - 1); printf("is there a null byte in buf? %d %d %d %d...", buf[0], buf[1], buf[2], buf[3]);
21:22:34 <fizzie> 00:21 <candide> fizzie: is there a null byte in buf? 97 108 111 4...
21:22:59 <fizzie> If you call the above with "sizeof buf" without the - 1, you'll get "alon" in the characters and still no \0.
21:23:06 <fizzie> That's why it's such a sucky function.
21:23:35 <fizzie> I second olsner's suggestion of using memcpy of p_length+1 since you really do want an exact copy of the original.
21:23:45 <fizzie> (Or 'strdup' if you can live with its unportability, I suppose.)
21:23:53 <fizzie> (It does both the allocation and copying.)
21:24:08 <olsner> is strdup unportable?
21:24:14 <fizzie> olsner: It's not standard C.
21:24:16 <Arc_Koen> unsigned int p_length = strlen(argv[1]); char *p = malloc((p_length + 1) * sizeof(char)); memcpy(p, argv[1], p_length + 1);
21:24:40 <olsner> ah, it appears to be posix not c
21:24:43 <fizzie> olsner: So I suppose that depends on what "portable" means. It's certainly POSIX and common elsewhere too.
21:25:15 <fizzie> Arc_Koen: that looks well and proper. Though I'd drop the sizeof(char).
21:25:35 <Arc_Koen> I thought that was something I should always write
21:25:49 <Arc_Koen> like using '0' instead of 48
21:25:50 <fizzie> Arc_Koen: It's by definition 1. "sizeof" of anything else is measured in terms of how many 'char's there are in it.
21:25:59 <olsner> sizeof(char) is something you should never write :)
21:26:02 <Arc_Koen> ok
21:26:14 <fizzie> I'm sure there are some people that will still argue for it.
21:26:29 <fizzie> Like, "if you change the array type then you'll remember the sizeof multiplication when it was there already".
21:26:45 <fizzie> Though those people would have you writing char *p = malloc((p_length + 1) * sizeof *p) instead.
21:26:50 <Arc_Koen> hey, that's true
21:26:54 <fizzie> (Which is I guess fair enough.)
21:27:05 <Arc_Koen> what if I decide to replace all occurrences of "chat" with "int"
21:27:14 <Arc_Koen> (that's the kind of dumb things I do)
21:27:18 <elliott> kmc: transcoding :(
21:27:28 <FreeFull> Oh yeah, I will change my string array to be an array of cake_t instead!
21:28:20 <kmc> what's wrong with transcoding elliott
21:28:57 <elliott> it's yucky
21:28:59 <elliott> feel free though!
21:29:00 <kmc> yes there is a quality loss but in this case i am scaling down by 40% so i think there's more quality loss there ;P
21:29:04 <fizzie> It's borderline possible that someone might go along changing things to wchar_t's (or char32_t's or something) and also the string literals and forget to fix the allocation. But still.
21:29:39 <kmc> phone won't play 720p h264 :/
21:29:54 <kmc> and the screen is only 800x480 anyway ;P
21:30:15 <zzo38> I don't know if the game referenced was actually made.
21:30:40 <elliott> kmc: Watching things on phones is weird.
21:31:39 <fizzie> "Things on phones" is probably some kind of fetish site.
21:31:56 <atriq> Now she's softly calling out for Kankri
21:31:58 <fizzie> There's things like pictures of a brick on top of a phone there.
21:32:08 <fizzie> atriq: What's a "Kankri"?
21:33:05 <elliott> fizzie: I don't suppose you happen to use GRUB 2 with menu-hidey options?
21:33:25 <fizzie> atriq: Oh, never mind; I found out already. "Kankri is a village development committee in Rukum District in the Rapti Zone of western Nepal. At the time of the 1991 Nepal census it had a population of 4210 people living in 851 individual households."
21:33:32 <fizzie> Weird thing to call out for, though.
21:33:56 <atriq> fizzie, I believe she's referring to the Homestuck character
21:34:06 <kmc> https://help.ubuntu.com/community/AndroidVideoEncoding#MPEG4_.28standard.29_encoding this person's ffmpeg options seem highly suspect
21:34:10 <Phantom_Hoover> fizzie, you've not been keeping up have you
21:34:30 <fizzie> Phantom_Hoover: Very much a negative.
21:34:42 <Phantom_Hoover> atriq appears to be listening to some sort of homestuck erotica
21:34:56 <Phantom_Hoover> out of character for him, but perhaps it has satellite appeals
21:34:59 <atriq> One of my friends suffers from a head injury
21:35:07 <atriq> This leads her to black out from time to time
21:35:46 <atriq> I'm in a group Skype call with her, and she's been blacking out a lot
21:36:20 <Phantom_Hoover> uh
21:36:22 <olsner> that sounds somewhat serious
21:36:24 <fizzie> Phantom_Hoover: I think I'm somewhere like end of act 5.
21:36:28 <Phantom_Hoover> she should probably be in hospital
21:36:35 <Phantom_Hoover> fizzie, you haven't even watched cascade have you
21:36:35 <fizzie> Phantom_Hoover: So about 1200 pages behind.
21:36:35 <atriq> Apparently Kankri refers to her boyfriend, who cosplays Kankri
21:36:39 <Phantom_Hoover> you're a year behind
21:36:39 <fizzie> Phantom_Hoover: No.
21:36:42 <fizzie> Phantom_Hoover: Yes.
21:37:00 <Phantom_Hoover> you don't even know about half the cast any more
21:37:03 <atriq> She's seen a doctor and there's nothing they can do
21:37:05 <fizzie> Phantom_Hoover: True.
21:37:09 -!- elliott has left ("Leaving").
21:37:31 <fizzie> Phantom_Hoover: But I'll catch up any day now.
21:37:35 <olsner> what, they can at least guess a little and prescribe some drugs
21:37:35 -!- monqy has left.
21:37:44 <Phantom_Hoover> atriq, damn, what kind of head injury was this
21:37:47 <olsner> something antiepileptic perhaps?
21:37:56 <atriq> Slammed into a locker by a chav
21:38:19 <Phantom_Hoover> i am: glad i don't live in hexham
21:38:25 <atriq> She doesn't.
21:38:32 <atriq> She's elsewhere
21:38:38 <Phantom_Hoover> fuck i'm in england now
21:38:40 <atriq> There's only about 3 readers of Homestuck in Hexham
21:38:54 <atriq> You're in Coventry. Coventry's practically France. You're safe.
21:39:17 <Phantom_Hoover> there was a dead body in the woods nearby!
21:39:30 <atriq> Was it your body?
21:39:48 <Phantom_Hoover> hmm possibly
21:40:21 <fizzie> There was someone knifed about 400 metres from here a while ago.
21:40:38 <atriq> There was someone hammered to death in Hexham last year
21:41:23 <FreeFull> Alcohol kills
21:41:37 <Arc_Koen> switch statements in C don't need a default: condition, right?
21:42:05 <FreeFull> Arc_Koen: I think if you don't supply a default, it just does nothing for that case
21:42:37 <fizzie> Arc_Koen: Right.
21:42:40 <Arc_Koen> that's what I thought to and it worked; then I thought "maybe it does need it" so I added one and it crashed
21:42:44 <Phantom_Hoover> atriq, what happened to the chav
21:42:58 <atriq> Nobody knows
21:43:09 <Arc_Koen> (that is, "default: }" caused a syntax error)
21:43:14 <atriq> Mainly because she, due to the head injury, forgot which chav it was.
21:43:33 <fizzie> Arc_Koen: That's because a label needs to point to a statement.
21:43:41 <fizzie> Arc_Koen: "default: ; }" would be legal, if useless.
21:43:51 <Phantom_Hoover> the perfect crime (i am the worst)
21:43:53 <fizzie> Arc_Koen: (If there is no matching case and no default, the switch body is just skipped.)
21:44:39 <FreeFull> default: break; }
21:44:42 <kmc> cocaine's a hell of a drug
21:44:56 <fizzie> FreeFull: Well, that's also legal and also useless.
21:45:09 <FreeFull> Did you know S-Lang allows you to supply a number to break, so you can break out of nested loops
21:46:01 <fizzie> FreeFull: Did you know Perl allows you to supply a label to break, so you can break out of a particularly labeled enclosing loop?
21:46:17 <fizzie> There was something else with a numeric multilevel break, too.
21:46:30 <fizzie> PHP, right.
21:46:38 <fizzie> "break accepts an optional numeric argument which tells it how many nested enclosing structures are to be broken out of."
21:46:46 <fizzie> Probably others too, of course.
21:47:35 <fizzie> (Okay, in Perl's case it's "last" and not "break", but anyway.)
21:47:44 <FreeFull> fizzie: a goto is C's labelled break =P
21:48:09 <fizzie> FreeFull: Sure, though the label goes in the other end.
21:48:35 <kmc> yeah, i like perl's labeled break
21:49:04 <fizzie> LOOP: while (...) { ...; last LOOP; ... } vs. while (...) { ...; goto GET_ME_OUT_OF_HERE; ... } GET_ME_OUT_OF_HERE: ...
21:49:47 <kmc> goto is a fine solution except that some programmers will run screaming in horror at any mention of goto
21:49:55 <fizzie> It's CONSIDERED HARMFUL.
21:49:59 <kmc> i know, right?
21:50:30 <kmc> this is because like forty years ago, some propaganda was needed in order to convince programmers to use anything that *isn't* goto
21:50:43 <kmc> back when structured programming was a controversial new idea
21:51:05 <FreeFull> goto is used in the Linux kernel for handling errors
21:51:12 <FreeFull> And it's cleaner than any other C solution
21:51:33 <kmc> and people like hard rules because it absolves them of the need to think
21:51:34 -!- elliott has joined.
21:51:52 <elliott> <elliott> fizzie: I don't suppose you happen to use GRUB 2 with menu-hidey options?
21:52:05 <FreeFull> The one useful hard rule for not writing bad code is "Don't write code, ever"
21:52:06 <kmc> which is why it's "goto is evil!!!!!" and not "goto is sometimes useful but should be avoided generally"
21:52:07 <atriq> elliott, I have significant evidence suggesting that I'm going to play a video game that will destroy the world.
21:52:15 <FreeFull> If you don't write code, you can't write bad code :)
21:52:18 <atriq> Please advise.
21:52:19 <fizzie> elliott: I'm not sure what options those are.
21:52:23 <elliott> atriq: hi
21:52:30 <kmc> also the teaching of programming updates at a glacial speed compared to actual programming practice
21:52:33 <elliott> fizzie: Well, uh, do you get a menu when you start up GRUB?
21:52:45 <fizzie> elliott: I do. So I suppose I'm not.
21:52:48 <FreeFull> elliott: You always get a menu if you hold shift while grub is loading
21:52:48 <kmc> perhaps in 2012 warning students over the evils of goto should not remain a high priority
21:52:53 <elliott> FreeFull: Yes.
21:53:17 <FreeFull> Java doesn't even have a goto
21:53:36 <FreeFull> goto is a reserved keyword just so people can't use it
21:53:37 <Phantom_Hoover> atriq, are you playing sburb
21:53:54 <kmc> yeah instead you use an AbstractSingletonControlFlowProxyFactoryIteratorBeanProxy
21:54:06 <kmc> much cleaner than goto
21:54:31 <fizzie> FreeFull: It does have the labeled break, though.
21:54:52 <fizzie> Similar to Perl's, with a label of the iteration statement to break out from.
21:54:53 <elliott> Multi-level break is just a delimited continuation anyhow.
21:54:58 <elliott> pikhq_: Did I ask you yet, I forget.
21:55:20 <kmc> no it's not
21:55:59 -!- jix has joined.
21:57:02 <elliott> kmc: Sure it is.
21:57:29 <kmc> not first class
21:57:42 <elliott> Wrong "is".
21:57:50 <kmc> continuations are so general that it's not meaningful to say "foo is just continuations" unless you mean that it's equally powerful
21:58:05 <kmc> every single control flow feature can be described as a limitation of continuations
21:58:08 * elliott objects to the conflation of "continuations" and "delimited continuations".
21:58:13 <elliott> The latter are much more well-behaved.
21:59:09 <FreeFull> x: goto x;
21:59:20 -!- zzo38 has quit (Remote host closed the connection).
21:59:56 <coppro> what? continuations aren't powerful
22:00:00 <coppro> you can do anything without continuations
22:00:04 <atriq> Phantom_Hoover, quite possibly.
22:00:27 <kmc> coppro pro troll mode
22:00:45 <atriq> One of my internet friends, who reads MS Paint Adventures, has been suffering mysterious blackouts where she remains surprisingly lucid, although significantly more emotional.
22:01:10 -!- elliott has left ("Leaving").
22:01:19 <coppro> atriq: are those two things related?
22:01:51 <atriq> Adding to this is the fact that I have thrown enough money at the Homestuck Vidoe Game kickstarter to receive a physical copy
22:01:52 * oerjan swats coppro for chasing away elliott -----###
22:02:00 <Phantom_Hoover> atriq, oh well
22:02:07 <Phantom_Hoover> can i come too or am i too old and square now
22:02:14 <Arc_Koen> is there a shell redirection command similar to | and >, but which redirect as the "argv[1]" of the next command?
22:02:16 <atriq> If you get a copy!
22:02:22 <Phantom_Hoover> oh dear
22:02:28 <coppro> Arc_Koen: $(foo)?
22:02:45 <FreeFull> coppro: I think you need to add "" somewhere
22:02:57 <coppro> possibly
22:03:12 <FreeFull> Maybe not
22:03:37 <atriq> Phantom_Hoover, I'm pretty sure you're, if anything, slightly younger than me, and just a victim of the difference between the education system in Scotland and in England and Wales.
22:04:09 <atriq> If memory serves.
22:04:14 <FreeFull> "$( foo )"
22:04:33 <atriq> This seems scarily TemplateHaskell
22:04:34 <FreeFull> Spaces for clarity and not necessary
22:04:35 <Phantom_Hoover> atriq, erm right
22:05:09 <Arc_Koen> coppro, FreeFull: I'm not sure what you mean
22:05:38 <atriq> But yes, if we both receive copies of SBurb, I will certainly invite you to my session.
22:05:51 <kmc> $(foo) is the same as the old school `foo`, but nicer syntax which nests properly
22:06:07 <oerjan> Arc_Koen: $( ... ) puts the redirection output as the literal argv[1] string. if you want argv[1] to be a filename containing the output, try <( ... )
22:06:23 <FreeFull> Arc_Koen: rather than foo | bar
22:06:31 <olsner> and nested quoting is a lot less hairy with "$(foo "bar baz")"
22:06:33 <FreeFull> bar "$(foo)"
22:06:37 <oerjan> (in bash, uses a named pipe)
22:06:50 <olsner> "`"`"`"`"
22:08:47 <kmc> it's not quite a named pipe in bash on linux
22:08:56 <Arc_Koen> so, if sceql is a sceql interpreter and truth-machine.sceql a program in sceql, I can type ./sceql $(cat truth-machine.sceql) and it will work?
22:09:22 <oerjan> oh, "or the /dev/fd method of naming open files"
22:09:29 <kmc> yeah
22:09:49 <olsner> Arc_Koen: more quotes
22:09:57 <kmc> procfs contains files which look like symlinks to nonexistent paths, but you can still open and use them
22:09:58 <olsner> there might be spaces in that sceql file
22:10:01 <kmc> it's weirdness
22:10:05 <Arc_Koen> yes there are
22:10:06 <Arc_Koen> oh, right
22:10:14 <oerjan> Arc_Koen: that depends on whether the sceql interpreter takes a program string or a filename as argument
22:10:22 <Arc_Koen> it takes a string
22:10:28 <oerjan> then yes
22:10:46 <fizzie> Arc_Koen: There are often also reasonably small limits of how much things you can push through the command line arguments. Like, "four kilobytes" kind of small.
22:10:56 <fizzie> (I don't know how long sceql programs tend to be.)
22:11:47 <fizzie> (POSIX guarantees 4096 characters as the sum total of arguments. Some systems of course are happy with more.)
22:11:54 <Arc_Koen> hmmm well it doesn't seem to work, but that could be because of a bug in the interpreter, or in the sceql program
22:12:11 <kmc> linux had a fun denial of service bug relating to huge command lines
22:12:20 <fizzie> Admittedly, if the interpreter takes a string, there's not much you can do to get around the command line length limit.
22:12:23 <Arc_Koen> olsner: did you just say the spaces in the program file will split it into several arguments?
22:12:43 <olsner> no, I just implied it
22:13:19 <Arc_Koen> oh, ' quotes don't work because they take $(...) directly as the string, but " quotes work
22:13:24 <Arc_Koen> thank you guys
22:13:30 <kmc> argv is an array of pointers to strings; they can all point to the same string if you like
22:13:58 <kmc> so userspace can construct a huge command line and pass it to execve
22:14:01 <fizzie> A true bash person would recommend you use ./sceql "$(< truth-machine.sqecl)" instead.
22:14:08 -!- elliott has joined.
22:14:10 <kmc> without actually using much memory in userspace
22:14:13 <fizzie> ("The command substitution $(cat file) can be replaced by the equivalent but faster $(< file).")
22:14:44 <kmc> but the kernel would not realize they are the same string, and so would allocate a huge amount of memory in the new process
22:14:58 <kmc> yes it's important to micro-optimize your shell scripts for speed
22:15:16 <kmc> one time i posted a shell script which used an unnecessary 'cat'
22:15:22 <kmc> it brought shame upon my entire family
22:16:24 <elliott> kmc: I, uh, don't suppose you use GRUB 2.
22:16:27 <Phantom_Hoover> alias cat <
22:16:30 <Phantom_Hoover> wait
22:16:37 <ion> $(cat <(cat <(cat <(cat <(cat file)))))
22:16:43 <FreeFull> Fuuuck
22:16:44 <Phantom_Hoover> alias cat='<'?
22:16:56 <FreeFull> Don't do $(< /dev/urandom)
22:17:22 <elliott> Phantom_Hoover: good job concatenating files with that
22:17:27 <elliott> s/job/luck/
22:18:42 <fizzie> Someone should inject in all cat binaries a thing that'd collect aggregate statistics on which fraction of cat invocations actually concatenate things.
22:18:58 <ion> % echo $(</etc/timezone </etc/timezone)
22:19:01 <ion> Europe/Helsinki Europe/Helsinki
22:19:12 <ion> % cat </etc/timezone </etc/timezone
22:19:15 <ion> Europe/Helsinki
22:19:17 <ion> Europe/Helsinki
22:19:17 <Arc_Koen> weeeeeeee interpreter works fine now
22:19:27 <FreeFull> < isn't exactly equivalent to cat anyway
22:19:53 <ion> The latter works identically without the “cat”, too.
22:20:10 <ion> freefull: Yeah, e.g. cat -A is useful.
22:20:23 <FreeFull> If you do < somefile on its own
22:20:35 <FreeFull> It won't print that to the terminal
22:22:48 <ion> % </etc/timezone </etc/timezone
22:22:51 <ion> Europe/Helsinki
22:22:53 <ion> Europe/Helsinki
22:25:15 <fizzie> ion: Which shell is this?
22:25:19 <ion> zsh
22:25:26 <fizzie> Fancy-schmancy.
22:26:36 <FreeFull> 0 freefull@freefull-hp:~$ </etc/timezone
22:26:37 <FreeFull> 0 freefull@freefull-hp:~$
22:26:52 <elliott> Inventive hostname.
22:26:58 <fizzie> That's significantly less fancy, too.
22:27:34 <elliott> zsh's behaviour seems less consistent.
22:27:40 <FreeFull> elliott: I tried =P
22:27:46 <elliott> If the command "defaults" to copying stdin, then ";" should act as "cat".
22:28:03 <ion> My hostnames come from Pan Sonic song names. They tend to be short and kind of interesting.
22:28:10 <coppro> feh
22:28:13 <coppro> stupid set theorists
22:28:33 <Phantom_Hoover> bunch of twats
22:28:45 <FreeFull> Bash doesn't like a ; without a command
22:28:54 <FreeFull> -bash: syntax error near unexpected token `;'
22:29:19 <coppro> "ooh I've got a great idea. Let's make these things called ordinals and cardinals. All cardinals are ordinals, but not the other way around. Let's also call some ordinals 'limit ordinals' and some cardinals 'limit cardinals' all cardinals will be limit ordinals but not all limit ordinals will be cardinals. Limit cardinals will be rare and magical.'
22:29:31 <olsner> maybe I should start naming my computers in welsh
22:30:04 <coppro> "let's go further and call all non-limit ordinals successor ordinals, and all non-limit cardinals successor cardinals. Then all successor cardinals are limit ordinals!"
22:30:59 <FreeFull> Which of the ordinals and cardinals are limit ordinals/cardinals?
22:37:02 <Phantom_Hoover> Let's make these things called ordinals and cardinals. All cardinals are ordinals, but not the other way around.
22:37:14 <Phantom_Hoover> the concept of a subset annoys you, coppro?
22:38:22 <FreeFull> Other than cardinals being limit ordinals, which you said
22:39:19 <coppro> Phantom_Hoover: No, it's the confusing terminology which annoys me
22:40:30 <coppro> FreeFull: \aleph_\alpha is a limit cardinal if and only if \alpha is a limit ordinal
22:40:36 <Phantom_Hoover> what annoying terminology
22:40:38 <coppro> some authors exclude \aleph_0 from the limit cardinals as well
22:40:51 <coppro> Phantom_Hoover: The use of confusingly similar noun phrases
22:41:02 <Phantom_Hoover> you mean 'limit'
22:41:04 <coppro> in particular, there are non-limit cardinals that are limit ordinals
22:41:53 <FreeFull> coppro: So is \aleph_(\aleph_0) a limit cardinal?
22:41:58 <Phantom_Hoover> yeah, and?
22:42:13 <Phantom_Hoover> 'limit' depends on the structure of the thing it's applied to
22:45:01 <coppro> Phantom_Hoover: The statement "Is \aleph_1 limit?" is nonsensical
22:45:11 <coppro> The interpretation of limit does not depend on what you apply it to, it depends on context
22:45:17 <coppro> FreeFull: Yes
22:45:20 <Phantom_Hoover> ...
22:45:31 <coppro> \aleph_{\aleph_\alpha} is a limit cardinal for all ordinals \alpha
22:45:56 <Phantom_Hoover> yes coppro when you can interpret \aleph_1 as a cardinal or ordinal you DO need to specify which kind of limit you're talking about
22:46:02 <coppro> yes
22:46:07 <coppro> that is what annoys me
22:46:22 <oerjan> i suspect coppro will _really_ hate category theory, then.
22:46:26 <elliott> i don't see the problem here at all
22:46:39 <elliott> why would you assume structural properties cross over between subsets like that
22:46:39 <Phantom_Hoover> is it so great an obstacle to have to add 'cardinal' or 'ordinal' to the end of your question
22:46:41 <elliott> thingy
22:47:01 <oerjan> or topology - whether a set is closed _does_ depend on the surround space.
22:47:09 <oerjan> *surrounding
22:47:32 <coppro> oerjan: actually, I don't have that much of an issue with category theory
22:47:37 <coppro> The issue I have is just that I confuse the two
22:47:46 <olsner> is hexham near wales?
22:47:48 <coppro> even when the context is provided, sorting things out in my brain is difficult
22:47:51 <Phantom_Hoover> olsner, no
22:47:55 <Phantom_Hoover> not at all
22:48:05 <coppro> elliott: I don't. It just is annoying to me that I have to expend mental effort to think about the distinction
22:48:16 <Phantom_Hoover> it's very far from wales
22:48:30 <elliott> olsner: yes
22:48:32 <Phantom_Hoover> coppro, wat
22:48:57 <Phantom_Hoover> you'd have to think about whether you meant the cardinal or ordinal anyway
22:49:27 <Phantom_Hoover> i mean
22:49:56 <Phantom_Hoover> if you asked "is aleph 1^2 == aleph 1" the answer would be different depending on if you meant the cardinal or ordinal
22:49:59 <oerjan> coppro: when you have two different topologies on the same space, you get the same trouble with limits there too. norm topology vs. weak *-topology comes to mind.
22:50:12 <coppro> oerjan: yeah, topology annoys me
22:50:16 <olsner> elliott: so you all have a welsh accent then? that is awesome
22:50:18 <coppro> Phantom_Hoover: but it would be more intuitive
22:50:21 <coppro> 'sall
22:50:26 <Phantom_Hoover> coppro, stick to cs please
22:50:35 <coppro> Phantom_Hoover: dude, I'm a math major
22:50:37 <Phantom_Hoover> wat
22:50:42 <Phantom_Hoover> all this time
22:51:00 <oerjan> coppro the mathsochist
22:51:21 <Phantom_Hoover> switch to cs then, you may have an easier time of it
22:53:59 <coppro> Phantom_Hoover: no thanks
22:54:02 <coppro> graph theory is too awesome
22:54:05 <coppro> also set theory
22:54:07 <coppro> also logic
22:56:31 <coppro> set theory assignment was easy this week, which is a nice relief
22:56:47 <Sgeo> I want to put dnolen and jimduey in a particle collider and collide them.
22:59:47 <Phantom_Hoover> would that work
22:59:56 <Phantom_Hoover> they must be pretty small
23:00:20 <elliott> who and who
23:02:07 <Sgeo> elliott, dnolen wrote a delimited continuations thing for Clojure, and jimduey wrote an actually decent monads implementation for Clojure
23:02:19 <elliott> so
23:02:45 <Sgeo> Want to use reset/shift like syntax for using monads, rather than do notation
23:03:06 <elliott> what does that mean
23:03:13 <elliott> applicative notation can only describe applicatives
23:03:22 <elliott> though of course you only need a syntactic construct for join
23:03:25 <elliott> but then it gets very messy
23:04:08 <Sgeo> A function that takes a value v :: (Monad m => m a) and does v >>= current_continuation
23:05:03 <elliott> that doesn't really make any sense
23:05:08 <elliott> since do notation is precisely a CPS translation
23:05:23 <elliott> anyway going by the first few tweets on https://twitter.com/jimduey I wouldn't wish being collided with him on anyone
23:05:54 <Sgeo> But do notation is possibly an _ugly_ CPS translation
23:06:00 <elliott> what
23:06:58 <Sgeo> reset/shift may be prettier
23:07:27 <elliott> <Sgeo> But do notation is possibly an _ugly_ CPS translation
23:07:29 <elliott> what does this mean
23:07:45 <Sgeo> elliott, it means I think do notation is ugly.
23:08:10 <elliott> do notation is *literally* foo >>= current_continuation
23:08:47 <Sgeo> But it's ugly to use.
23:09:14 <elliott> ok
23:12:58 <Sgeo> How is reset/join applicative in nature?
23:13:03 <Sgeo> If that's what you're saying
23:13:24 <atriq> Aaargh
23:13:29 <atriq> Trying to write music
23:13:36 <atriq> I've got a big build-up going
23:13:43 <atriq> But I've got nothing for it to build up to
23:14:24 <Phantom_Hoover> plagiarise!
23:14:40 <elliott> atriq: have it end after the build-up
23:14:42 <elliott> ~avant-garde~
23:16:14 <Sgeo> I thought <elliott> applicative notation can only describe applicatives was supposed to be an analogy, but now I'm assuming not
23:16:35 <elliott> well you want a nested, rather than linear, notation, yes
23:16:42 <elliott> which sounds like applicative notation to me
23:17:54 <Sgeo> Hmm
23:18:01 <Sgeo> Good point
23:18:38 <elliott> for instance (| const (putStrLn "hello") (putStrLn "world") |)
23:18:50 <elliott> (| const (putStrLn "hello") (| const (putStrLn "world") (putStrLn "again") |)
23:18:51 <elliott> er
23:18:52 <elliott> (| const (putStrLn "hello") (| const (putStrLn "world") (putStrLn "again") |) |)
23:19:01 <elliott> join (| putStrLn getLine |)
23:19:02 <Sgeo> But what about with let?
23:19:30 <elliott> (| const (putStrLn "name:") (| const (join (| putStrLn getLine |)) (putStrLn "ok") |) |)
23:19:37 <elliott> probably that is unbalanced, it is too unspeakably ugly for me to check
23:19:39 <Sgeo> (Clojure's let binds sequentially)
23:19:42 <elliott> Sgeo: with let that is do notation
23:19:47 <elliott> let a = foo; b = bar; c = quux; in d
23:19:47 <elliott> -->
23:19:53 <elliott> do { a <- foo; b <- bar; c <- quux; d }
23:20:31 <Sgeo> But I'm thinking make them usable together nicely... although hmm, my idea of "nice" may be slightly warped
23:20:56 <elliott> i agree
23:21:25 <Sgeo> Still, would be nice to write code that mostly isn't written monadically-aware except for the parts that are
23:22:01 <elliott> sounds like you want an effect system
23:22:11 <elliott> a la eff, McBride's Frank, and so on
23:24:27 <Sgeo> Thanks for pointing me to that stuff
23:25:08 <elliott> np
23:25:12 <elliott> it is not really "production ready"
23:25:20 <elliott> also edwardk doesn't think it'll work well at all
23:32:16 <atriq> Goodnight!
23:32:18 -!- atriq has quit (Quit: Leaving).
23:35:13 -!- Phantom_Hoover has quit (Ping timeout: 256 seconds).
23:47:29 -!- kinoSi has quit (Read error: Connection reset by peer).
23:47:57 -!- kinoSi has joined.
23:48:48 <oerjan> Sgeo: elliott: is that filinski stuff relevant to this? (never read it.)
23:49:22 <oerjan> http://citeseerx.ist.psu.edu/viewdoc/summary?doi=
23:50:27 <elliott> oerjan: maybe, not sure
23:50:28 <Sgeo> oerjan, looks very relevant to what I was thinking of
23:50:39 <Sgeo> Not sure if it's at all relevant to effects
23:52:54 <Sgeo> That's interesting, the undelimited + one piece of state = delimited thing
23:55:25 <oerjan> i've read some critique of that, though. specifically that it only works if you don't mix it with using undelimited continuations in any _other_ way.
23:56:36 -!- Vorpal has quit (Ping timeout: 276 seconds).
23:56:57 <oerjan> http://okmij.org/ftp/continuations/undelimited.html
23:57:08 -!- Phantom_Hoover has joined.
23:58:00 <oerjan> "Many applications that use call/cc also contain mutable cells holding continuations, betraying the well-known Filinski's emulation of delimited control via call/cc and a mutable cell."
←2012-10-05 2012-10-06 2012-10-07→ ↑2012 ↑all