| 01:48 | <Philip`> | gsnedders: Oops, forgot to reply |
| 01:48 | <Philip`> | gsnedders: That sounds quite a reasonable idea to me :-) |
| 01:49 | <Philip`> | (I'm not really doing anything useful any time that day) |
| 02:15 | <gsnedders> | Philip`: I'm gonna be off in Ely for most of that day :P |
| 02:15 | <gsnedders> | brb |
| 08:30 | <hsivonen> | http://www.w3.org/QA/2008/06/war-of-the-worlds.html#c151388 |
| 08:31 | <hsivonen> | I was unaware of being quoted on the microformats wiki |
| 10:22 | <jgraham> | gsnedders: AFAIK I can do Monday. Did you say a time? |
| 22:08 | <jgraham> | Lachy: Discission of Wall-E should be prohibited until I have seen it :) |
| 22:09 | <jgraham> | gsnedders: OK |
| 22:17 | <Hixie> | Lachy: yes, very good |
| 22:18 | <gsnedders> | Suggestions for basic project that could be done in a week or two to learn Haskell/functional programming? |
| 22:20 | <jgraham> | gsnedders: Implement a html5 URL parsing library? It maybe isn't a natural match but it wouls at least be useful |
| 22:20 | <jgraham> | s/wouls/would/ |
| 22:21 | <Philip`> | Who would find a URL parsing library implemented in Haskell to be useful? :-) |
| 22:21 | <jgraham> | Philip`: Other people who use Haskell, I guess |
| 22:23 | <jgraham> | You could build up to it in stages. First get your head around IO by doing a "hixie movie rater" which would simply return "excellent" if the input matched the name of a Pixar movie and "unknown" otherwise |
| 22:23 | <Philip`> | It might be better to do something that involves more interesting data structures than strings, since you might as well just use Perl if you're dealing with strings |
| 22:24 | <jgraham> | The problem is that there are lots of useful practical problems that involve strings |
| 22:25 | <Philip`> | Implementing any algorithm from the HTML5 spec might not be the best idea, since they're all written very imperatively and you have to reverse-engineer them before writing a functional solution |
| 22:25 | <jgraham> | I mean, I guess gsnedders could implement a graph traversing algorithm or something in Haskell but it's not like its an intrinsically useful problem |
| 22:25 | <Philip`> | jgraham: There are also lots that don't, and those are the ones that functional languages seem more suited to |
| 22:26 | <Philip`> | like writing compilers, perhaps |
| 22:26 | <jgraham> | Philip`: They tend to be more theoretical, less accessible problems |
| 22:26 | <jgraham> | or rather more theory heavy |
| 22:26 | <Philip`> | Haskell is a more theoretical, less accessible language, so that's a perfect match :-) |
| 22:27 | <jgraham> | gsnedders: You could always just start using XMonad as your window manager (it works on OSX) and then the config file is Haskell code |
| 22:37 | <roc> | you could write Haskell-to-JS compiler in Haskell and self-host it to get Haskell in the browser |
| 22:41 | jgraham | will be seriously impressed if gsnedders manages that |
| 22:44 | <Philip`> | Or just write a (subset-of-)JS parser and interpreter, as the first stage towards writing an entire web browser in Haskell |
| 22:45 | gsnedders | would be seriously impressed if he managed that |
| 22:46 | <gsnedders> | (which kinda means I'm not going to try when I haven't even done any functional programming before) |
| 22:47 | <gsnedders> | I think the main thing will be getting my head around functional programming |
| 22:50 | <Philip`> | It's probably better to find a decent tutorial/book/etc and follow the examples in there, since it'll be sensible things like "implement a 'map' function" or "construct an infinite Fibonacci sequence" instead of "implement a Haskell compiler" :-) |
| 22:50 | <gsnedders> | :) |
| 22:51 | <gsnedders> | But those sensible things are almost always boring, so I give up quite quickly :P |
| 22:51 | <jgraham> | It will be factorials. Always with the bloody factorials |
| 22:52 | <Philip`> | let rec f = function 0 -> 1 | n -> n * f (n-1) |
| 22:52 | <Philip`> | That doesn't take long, and then you can move onto something more exciting :-) |
| 22:54 | Philip` | discovers the "import __hello__" feature in Python |
| 22:55 | <gsnedders> | I should just try and use functional programming to generate the answers to the maths I'm currently doing at school |
| 22:55 | <gsnedders> | Seeming that means I have to understand the maths to decently implement it :P |
| 23:02 | <Philip`> | let tt n = String.concat "; " (let rec f = function 0 -> [] | m -> (string_of_int n ^ " x " ^ string_of_int m ^ " = " ^ string_of_int (n*m)) :: (f (m-1)) in List.rev (f n)) |
| 23:02 | <Philip`> | gsnedders: That should help with your maths homework |
| 23:02 | <gsnedders> | Philip`: What does that do? |
| 23:03 | <Philip`> | It'd be cheating if I just told you :-p |
| 23:03 | gsnedders | slaps Philip` |
| 23:04 | <Hixie> | HTTP says taht leading zeros must be ignored in the HTTP/1.1 version thing |
| 23:04 | <gsnedders> | Philip`: <interactive>:1:54: parse error on input `->' |
| 23:04 | <Philip`> | gsnedders: Wrong language, probably |
| 23:05 | <Philip`> | (I'm using OCaml) |
| 23:05 | <Hixie> | i wonder how many implementations handle HTTP/01.01 correctly |
| 23:05 | <gsnedders> | Hixie: everything. |
| 23:05 | <Hixie> | gsnedders: and HTTP/01.02? |
| 23:05 | <gsnedders> | Hixie: That too |
| 23:05 | <gsnedders> | (HTTP/1.x is just treated as HTTP/1.1 by servers, HTTP/x.x is just treated as HTTP/1.1 by clients) |
| 23:06 | <gsnedders> | Philip`: I have no OCaml interpreter/compiler here |
| 23:06 | jgraham | considers creating an HTTP implementation that does it wrong to annoy gsnedders |
| 23:06 | <Hixie> | oh so they all just ignore it? |
| 23:06 | <gsnedders> | jgraham: You're breaking my spec! |
| 23:06 | <Philip`> | gsnedders: You just need to learn to read the code :-) |
| 23:07 | <gsnedders> | Hixie: Well, servers must parse it somewhat, and clients just check that there are numbers there |
| 23:07 | <gsnedders> | Hixie: a client would treat the response as HTTP/0.9 if it were "HTTP/a.b" |
| 23:07 | <gsnedders> | Hixie: (actually, some clients wouldn't, that behaviour is rather weird) |
| 23:07 | <Hixie> | gsnedders: so what's the difference between the versions, for implementations? |
| 23:08 | <gsnedders> | Hixie: Theoretically there's a small number of differences, de-facto more or less nothing |
| 23:08 | Hixie | is doing a crash course in HTTP so he can make sure the WebSockets stuff is specced right |
| 23:08 | <gsnedders> | Hixie: (that's HTTP/1.0 and HTTP/1.1, HTTP/0.9 is totally different) |
| 23:08 | <jgraham> | Philip`: Does that print times tables or something? |
| 23:09 | <gsnedders> | Hixie: http://twitter.com/gsnedders/statuses/846440682 :) |
| 23:09 | <gsnedders> | annevk: You were asking what happened in GTA4 if you killed Dwanye, were you not? Want to know? |
| 23:10 | <gsnedders> | Hixie: I'll point out what you do wrong in the WebSockets stuff :P |
| 23:10 | <Hixie> | i hope so :-) |
| 23:10 | <annevk> | I'm sort of over GTA4 |
| 23:11 | <annevk> | have been playing MGS4 this weekend with a friend |
| 23:11 | <annevk> | really nice |
| 23:11 | <gsnedders> | annevk: I just finished playing through the story for a second time: partly to get the achievement for completing it in under 30 hours, and also to make all the choices I didn't make before :P |
| 23:11 | <Hixie> | gsnedders: so what do clients and servers do different in 0.9 vs 1.0? |
| 23:11 | <gsnedders> | (I actually completed it in under 20 hours, too, slightly to my amazement) |
| 23:11 | <gsnedders> | Hixie: Everything :) |
| 23:11 | <Hixie> | gsnedders: elaborate? :-) |
| 23:12 | <gsnedders> | Hixie: HTTP/0.9 request: GET /index.html CR LF |
| 23:12 | <Hixie> | i mean how do they react differently |
| 23:12 | <gsnedders> | Hixie: HTTP/0.9 response: US-ASCII HTML |
| 23:12 | <Hixie> | i know that the initial request is different :-) |
| 23:12 | <gsnedders> | Hixie: That's all there is to HTTP. |
| 23:13 | <gsnedders> | (0.9) |
| 23:13 | <gsnedders> | I haven't done that much reverse engineering of it though |
| 23:13 | <Hixie> | oh so if the request is HTTP/0.9, servers just omit the headers? |
| 23:13 | <annevk> | I guess that's why we got <plaintext> |
| 23:14 | <gsnedders> | Hixie: yeah, basically |
| 23:14 | <gsnedders> | Hixie: there's no such thing as headers :P |
| 23:14 | <Hixie> | ok so 0.9 is basically uninteresting |
| 23:14 | <Hixie> | ok |
| 23:14 | <gsnedders> | Yeah, 0.9 is simple. |
| 23:14 | <Hixie> | and everyone who supports 1.1 just treats everything as 1.1, regardless of the version information? |
| 23:14 | <gsnedders> | pretty much, I think |
| 23:14 | <Hixie> | well |
| 23:15 | <Hixie> | i'm sure glad that http has versioning then |
| 23:15 | <Hixie> | </sarcasm> |
| 23:15 | <gsnedders> | it seems that servers do ignore the requirement that HTTP/0.9 responses are US-ASCII HTML, and they do just send no headers |
| 23:16 | <gsnedders> | http://www.w3.org/Protocols/HTTP/AsImplemented.html — the closest thing to an HTTP/0.9 spec |
| 23:18 | <annevk> | In other news, both my parents use Ubuntu now |
| 23:18 | <annevk> | driver for wireless was a major pita |
| 23:20 | <Lachy> | My interview on boagworld will finally be released in this wednesday's show |
| 23:20 | <gsnedders> | Anyhow, let me go sleep |
| 23:21 | <Hixie> | nn |
| 23:21 | <Hixie> | Lachy: cool |
| 23:21 | <Hixie> | Lachy: i've been listening to the boagworld show but apart from the WCAG2 episode their audio is so bad that i can't actually listen for more than about 2 minutes at a time |
| 23:21 | <Lachy> | I didn't listen to the WCAG 2 one yet |
| 23:23 | <Hixie> | it's not very exciting, but it does have actually listenable audio |
| 23:25 | <Hixie> | woah, you can send headers after the content if you use the chunked encoding?! |
| 23:25 | <Lachy> | hopefully mine won't be too bad. But I can't listen to my own voice, I think I sound terrible :-) |
| 23:26 | <annevk> | we need some proper microphones for standardssuck.org too it seems, Hixie is not the only one complaining :) |
| 23:27 | <Hixie> | the funny thing with the standardssuck podcasts is that because you just have the one camera, if you watch the person not talking, they're just fidgeting the whole time :-) |
| 23:27 | <Hixie> | you really want to have a camera per person and then a wider angle for the establishing shot |
| 23:27 | <Hixie> | :-) |
| 23:28 | <annevk> | yeah, or some nice editing software that lets you zoom in on the talking person |
| 23:28 | <Lachy> | donations for purchasing HD cameras and sound equipment would be very welcome |
| 23:28 | <Lachy> | annevk, I have final cut studio now |
| 23:28 | <Lachy> | I think marcos is getting a copy of it too |
| 23:29 | <annevk> | cool |
| 23:30 | <Lachy> | I'm also getting Final Cut Express, which is a simpler version aimed at consumers rather than professionals, but is slightly more advanced than iMovie |
| 23:33 | <annevk> | reading http://diveintomark.org/archives/2008/06/29/microformats-accessibility I wonder if it's just about microformats |
| 23:50 | <Hixie> | so sweet to see people think that it is shocking that a spec can't compel browser vendors to do what we want them to do |
| 23:50 | <Hixie> | http://www.internetschoon.nl/viewSingleItem/3117 |
| 23:59 | <Dashiva> | Hixie: That one _almost_ realized the group was founded by the very implementors he decries |