00:02
<jamesr>
AryehGregor: i keep replying to that thread without reading the whole thin
00:02
<jamesr>
i might just be making a fool of myself
00:02
<jamesr>
ah well
00:08
<zewt>
jamesr: i already said that it's sort of silly to think about adding a complex feature to the platform so mirrors don't have to mirror a version of a file with a few lines of code wrapped around it :)
00:09
<zewt>
not sure whether that works trivially with complex script sets like jquery (eg. to just boilerplate it automatically) or if it needs more work than that
00:09
<jamesr>
i think it's brave to assume that script authors will step up to the plate here
00:09
<jamesr>
it's also extra bytes that not all users of the script will want to care about
00:09
<zewt>
given that the only scripts we're really talking about here are big ones, adding a dozen or two lines of code around them doesn't seem worth worrying about
00:10
<jamesr>
not necessarily big ones, ones that have expensive top-level statements
00:10
<jamesr>
it could be a tiny-ass script that does a full DOM walk in some top-level statement
00:12
<jamesr>
and even small scripts can be expensive to download if the RTT is high
00:12
<jamesr>
like it is on mobile
00:12
<jamesr>
so you might want to start the download asap because it takes a few seconds to set up a new HTTP connection
00:12
<zewt>
you'd also want a little more framework for this sort of thing in any case; for example, to do things like say "load this script, and run this callback when it's available or immediately if it's already loaded"
00:13
<zewt>
but again it doesn't seem like we need browser-level help there
00:14
<zewt>
hmm, is it possible for an external script to get its own URL? can't say I've ever tried
00:15
<zewt>
just thinking of APIs like load_script(url, callback), with the script looking like registerScript(my_url, top_level_function)
00:15
<zewt>
(without hardcoding the URL in the file)
00:18
<zewt>
(user-library APIs, that is, not suggesting a browser API like that)
00:28
<heycam>
Hixie, ping
00:31
<Hixie>
yo
00:31
<Hixie>
sup
00:33
<heycam>
hey, I'm trying to work out what to do with Date
00:33
<heycam>
as used in HTMLInputElement and HTMLTimeElement
00:33
<heycam>
Dates in JS are mutable
00:33
<Hixie>
yeah, the attributes in question say to return a new object each time iirc
00:34
<heycam>
that sounds like the same kind of undesirable behaviour that led to the "don't allow sequences to be the type of attributes" decision recently
00:34
<Yuhong>
Hixie: BTW, I hate that the DOM viewer breaks the back button. Can that be fixed?
00:35
<heycam>
do we have implementations of those Date attributes yet?
00:35
<Hixie>
heycam: it's bad for sequences because they almost always get used in loops
00:35
<Hixie>
heycam: for dates, it doesn't seem like a big deal
00:35
<heycam>
Hixie, true, it's probably not as bad
00:35
<Hixie>
heycam: especially since dates can be implemented in js engines as a native very fast type
00:35
<Hixie>
heycam: so creating a new one need not be expensive
00:35
<heycam>
so what I'm wondering about really is what's the semantics of the IDL type "Date"
00:36
<heycam>
is it a mutable or immutable value?
00:36
<Hixie>
it's just an object type, no?
00:36
<Hixie>
like RegExp or HTMLElement or Object
00:36
<Hixie>
a reference type, i should say
00:36
<heycam>
mm
00:37
<heycam>
so you would be able to modify it
00:37
<heycam>
but the current uses of the type happen to have "always return a new one" behaviour
00:37
<heycam>
so would never see the modifications
00:37
<heycam>
but future APIs could
00:37
<Hixie>
yeah, you could imagine an attribute that kept a reference to the object so that you could modify it
00:38
<heycam>
there's something that doesn't feel quite right about native JS object mutation causing something to happen in the DOM
00:38
<Hixie>
wow, the webidl and html validators got huge numbers of new warnings since i last regenned the spec a few hours ago
00:38
<Hixie>
heycam: yeah i don't think we'd ever do that in practice
00:39
<heycam>
but you would be ok with having a DOM object / future API look at the "current value" of a Date object
00:39
<Hixie>
"Interface CanvasRenderingContext2D.drawImage() has a non-optional argument after an optional one" that's not a bug is it?
00:39
<heycam>
yes it is
00:40
<Hixie>
it's hard to comment on future APIs without a concrete example
00:40
<heycam>
sure
00:40
<Hixie>
why is that not valid now?
00:40
<heycam>
what do you want it to mean?
00:40
heycam
pulls up the spec
00:40
<Yuhong>
Hixie: BTW, I hate that the DOM viewer breaks the back button. Can that be fixed?
00:40
<Hixie>
i thought it used to mean "you can truncate here"
00:40
<heycam>
ah right
00:40
<Hixie>
Yuhong: oops, sorry, forgot to reply to you before
00:40
<Hixie>
Yuhong: how does it break it?
00:40
<heycam>
you are right, that used to be valid, and I took it out
00:41
<heycam>
I think it looks quite confusing in the IDL
00:41
<Hixie>
k
00:41
<heycam>
as if you can omit just that middle parameter
00:41
<Hixie>
i can just list all the variants i guess
00:41
<heycam>
yeah
00:41
<heycam>
12 of them then? :)
00:41
<Yuhong>
Hixie: Try typing in the textbox, and then click back several times.
00:41
<Hixie>
Yuhong: it seems to work... it goes back through the various states of the iframe, per spec, no?
00:42
<Hixie>
heycam: some large number :-)
00:42
<Yuhong>
Hixie: Yea, but the textbox doesn't update making it useless for undo
00:43
<Hixie>
Yuhong: true. don't hit back :-)
00:43
<Yuhong>
Hixie: and if you do a lot of typing it is easy to lose track.
00:43
<Hixie>
heycam: btw i just checked in an update for websockets that introduces an attribute whose value is a type, which might be controversial
00:43
<heycam>
um
00:43
<heycam>
what now? :)
00:43
<Yuhong>
Hixie: I try to open it in a separate tab.
00:44
<heycam>
Hixie, link?
00:44
<Hixie>
heycam: lets you pick whether you want binary data to be Blob or ArrayBuffer, so the attribute's allowed values are literally the Blob and ArrayBuffer interface objects
00:44
<Yuhong>
Hixie: and if you do a lot of typing it is easy to lose track of where you were before.
00:44
<Hixie>
heycam: http://www.whatwg.org/specs/web-apps/current-work/complete.html#dom-websocket-binarytype
00:46
<Hixie>
hsivonen: is there some way to mute the "not yet implemented" warnings? i use unimplemented stuff on purpose :-)
00:47
<heycam>
Hixie, yeah I'm not sure I like that :)
00:47
<heycam>
as a general mechanism for mentioning types, it wouldn't handle anything that doesn't have an interface object
00:47
<heycam>
or primitive types
00:47
<heycam>
well, I guess you could use Number, Boolean, ...
00:47
<Hixie>
yeah what i really want is a native type type in js
00:47
<Yuhong>
BTW, in IE8/9 the browser and document mode if you set them using developer tools override everything else, which is why I do that in a separate tab too.
00:48
<Philip`>
AryehGregor: I remember Descent had various 3D modes, like a red-green one and a uncrossed-eye one, I think, and that was a fairly important game
00:51
<Hixie>
heycam: only 9 drawImage()s it seems, so not so bad
00:52
<Hixie>
heycam: what's the practical difference between Foo[] and sequence<Foo> when used as a host object argument type?
00:54
<heycam>
Hixie, none if there is no way to pass in an actual, existing array host object
00:54
<heycam>
if you pass in a JS native array both will "do the right thing"
00:54
<Hixie>
k
00:54
<heycam>
sequence probably capture the semantics better if there is no way to pass in an array host object
00:54
<Hixie>
in that case i'm just changing MessagePortArray from a sequence to an array and not making any other changes and it should just be better now
00:55
<Hixie>
since it's used for attributes and arguments
00:55
<heycam>
so you can take an existing array host object (got from an attribute) and pass it in as an argument
00:55
<heycam>
when you pass it in to that argument will the object keep a hold of that object reference?
00:55
<heycam>
and possibly react to it changing from user script?
00:56
<Hixie>
no
00:56
<heycam>
so the function will just grab out all the array element values when you call it and do something with them?
00:57
<Hixie>
yeah
00:57
<heycam>
ok
00:57
<Hixie>
except for MessageEvent.initMessageEvent(), where it's undefined, i guess
00:57
<heycam>
so there are no practical differences between using array and sequence
00:57
<Hixie>
a Foo[] attribute always returns a new object right?
00:57
<heycam>
sequence captures this "passing in a copy, a refererence to it can never be kept"
00:57
<heycam>
captures it better
00:58
<heycam>
no, a Foo[] attribute returns what you want it to
00:58
<Hixie>
ah
00:58
<Hixie>
so wait, what's the difference between sequence<> and [] for attributes? i thought we were changing this because sequence<>s returned the same object and []s returned a new one
00:59
<heycam>
no, it's sequences that would always return a new object
00:59
<heycam>
hence being disallowed
00:59
<heycam>
a T[] could return a new object or the same one, it's up to you
00:59
<Hixie>
ah
00:59
<Hixie>
hm
00:59
<heycam>
but I would say that returning a new one wouldn't be good, for the reasons we disallow sequences there
00:59
<heycam>
*a new one always
01:00
<Hixie>
oh wait, []s can be made readonly right?
01:00
<Hixie>
that's how we get around this
01:00
<heycam>
the array object itself, yes
01:00
<heycam>
its contents can be made read only
01:00
<Hixie>
k
01:00
<heycam>
#dfn-read-only-array or something in Web IDL
01:00
<Hixie>
ok so i just need to make initMessageEvent copy the array and then .ports return a readonly one
01:01
<heycam>
make it return a read only one, and make it return the same one always, yeah?
01:01
<Hixie>
and then the only messages dom's idl checker will be giving me are 50 messages about [Supplemental] and one about some other attribute
01:01
<Hixie>
yeah
01:01
<heycam>
having the initMessageEvent argument be a sequence<MessagePort> captures the copying semantics
01:01
<heycam>
so you wouldn't have to state that explicitly
01:01
<Hixie>
yeah but then i have to have two types
01:02
<heycam>
you don't need to typedef these btw
01:02
<Hixie>
oh, good
01:02
<Hixie>
then i'll just do that then
01:02
<heycam>
there was a requirement to typedef them ages ago, but that got removed
01:02
<Hixie>
sweet
01:02
<Hixie>
that makes this much neater
01:02
<heycam>
cool
01:05
<TabAtkins>
AryehGregor: Minecraft has a 3d mode.
01:14
<Hixie>
heycam: fyi, i get 50+ of the first one of these and one of the second:
01:14
<Hixie>
Line 0 of IDL #0:Extended attribute of Supplemental is unknown in WebIDL.
01:14
<Hixie>
Line 0 of IDL #0:Extended attribute of ReplaceableNamedProperties is unknown in WebIDL.
01:14
<Hixie>
[ReplaceableNamedProperties] is apparently http://www.w3.org/Bugs/Public/show_bug.cgi?id=8241
01:15
<Hixie>
oh hey you aslked me a question there
01:16
<Hixie>
hm
01:16
<Hixie>
heycam: didn't we recently discuss doing this by having Window inherit from something or the other way around or something?
01:18
<heycam>
Hixie, what's the context there?
01:18
<Hixie>
the bug
01:19
<Hixie>
making <script> foo = 1; status = 2; var bar = 3; </script> do the right thing
01:20
<heycam>
I do remember discussing something about having an extra object in the proto chain or Window
01:20
<heycam>
it unfortunately doesn't seem to be paged in to my head at the moment :)
01:20
<Hixie>
yeah me either
01:21
<heycam>
I'll read up on it again next week and work out what's going on there
01:21
<Hixie>
oh well k
01:22
<Hixie>
er
01:22
<Hixie>
"k"
01:30
<heycam>
Hixie, s/methos/method/ in that recent commit
01:30
<Hixie>
thanks
02:09
<TabAtkins>
I forget - is <link itemprop href> allowed in <body>?
02:09
<TabAtkins>
Or do you need to use <meta> to embed a link?
02:09
<TabAtkins>
Never mind, answered my own question.
02:09
<TabAtkins>
(Yes.)
03:37
<Hixie>
TabAtkins: i think what guha was suggesting is slightly different
03:38
<Hixie>
TabAtkins: he wants the value to be an item with an id, not a url
03:38
<Hixie>
TabAtkins: as far as i can tell, he just wants to be able to omit the itemscope="" attribute for brevity
05:13
<heycam>
Hixie, I added a date type, but I called it "date" rather than "Date" (for consistency with "object" (but inconsistency with "DOMString"!))
05:15
<Hixie>
why not Date? that's what it is in JS
05:16
<heycam>
I was going for "built in types are lowercase" (except for DOMString because people complained about that)
05:17
<Hixie>
i'd go with all primitive types are lowercase
05:17
<Hixie>
and reference types are capitalised
05:18
<Hixie>
and then change 'object' to 'Object', mostly because that's how I always spell it anyway
05:18
<heycam>
hmm
05:18
<Hixie>
to the point that I've seriously considered a typedef
05:18
<Hixie>
:-)
05:18
<heycam>
I didn't particularly want to rename object again!
05:18
<Hixie>
well i was mostly kidding with that last bit
05:18
<heycam>
:)
05:18
<Hixie>
though i do really always type it Object
05:19
<Hixie>
at the end of the day I don't really mind either way, but Date would be mildly less inconvenient because it's what I've used already and it's what JS has
05:19
<Hixie>
so I don't have to have inside-baseball notes about how a "date" is a "Date" and so on
05:19
<heycam>
all right
05:20
<Hixie>
from a blackbox perspective, Date isn't really any more native than HTMLElement
05:20
<Hixie>
if that helps
05:20
<Hixie>
i mean, it's in a different spec, but that's a conway's law detail
05:20
<Hixie>
not "real"
05:21
<heycam>
suppose so
05:21
<heycam>
I also made it more "value like" for now
05:21
<heycam>
i.e. returns new objects each time you get the attribute
05:21
<heycam>
references don't get held by dom objects
05:22
<Hixie>
k
05:24
<heycam>
ok, renamed to "Date"
06:33
<JonathanNeal>
ahoy
08:31
<zcorpan>
what's the procedure to check why webgl doesn't work in latest safari?
08:43
<zcorpan>
Hixie: why is binaryType not a string?
08:46
<zcorpan>
Hixie: xhr's responseType uses strings "arraybuffer" and "blob"
09:01
<MikeSmith>
hsivonen: so, OK if I flip the Unicode Normalization checker to emitting a warning instead of an error?
09:03
<MikeSmith>
hsivonen: also, I chatted with r12a about it and from that I got the impression he kind of hit a brick wall with it in previous discussions with Hixie and/or others in the group
09:03
<hsivonen>
MikeSmith: ok
09:03
<MikeSmith>
thanks
09:04
<MikeSmith>
anyway, I'm not sure what concrete plans Richard or others from the i18n wg have for re-pursusing it
09:04
<MikeSmith>
but, I think his and their position remains that it should be a requirement in specs
09:05
<MikeSmith>
actually, he said specifically that they now recommend late normalization but only for id and class names and selectors
09:05
<MikeSmith>
and not for content
09:07
<MikeSmith>
hsivonen: he pointed me at the following as an example of the kind of reporting he thinks is useful (and that he's implemented himself)
09:07
<MikeSmith>
http://validator.w3.org/i18n-checker/index?docAddr=http%3A%2F%2Frishida.net%2Ftools%2Fi18nchecker%2Ftest.php&async=true
09:08
<MikeSmith>
in particular, see errors and warnings in the "Detailed report" section
09:09
<hsivonen>
so the key here is that normalization is a warning rather than an error?
09:13
<MikeSmith>
hsivonen: well, along with the fact that it doesn't do checking of content
09:13
<hsivonen>
MikeSmith: what's the reason not to check content?
09:14
<MikeSmith>
because they now do not recommend late normalization for content, but only for id and class names and selectors
09:14
<MikeSmith>
if I understand correctly
09:15
<MikeSmith>
dunno, maybe they do for early normalization?
09:16
<MikeSmith>
I have to admit that I'm not clear on what the distinction is between early normalization and late normalization
09:16
<MikeSmith>
or if that distinction might have relevance to whether to check for it in content rather than just in attribute values
09:17
<MikeSmith>
but I can ask him again
09:21
<MikeSmith>
hsivonen: ok, r12a says, thet do generally recommend that people save content as NFC
09:21
<MikeSmith>
so a validator can warn if they don't, to be helpful
09:22
<MikeSmith>
but he says there may be occasions where someone who knows what they are doing actually *wants* to write something in NFD
09:23
<MikeSmith>
and gives as an example, if, say, you write some javascript to do normalization, you have to be able to write some of the data in NFD for the algorithm to work
09:29
<MikeSmith>
so, summary from discussion with him is that, yeah, it's appropriate for it to be a warning (as opposed to an error)
09:29
<MikeSmith>
and that it's appropriate for that warning to be emitted for content as well as attribute values
09:47
<MikeSmith>
hsivonen: r12a points me to this:
09:47
<MikeSmith>
http://lists.w3.org/Archives/Public/public-i18n-core/2011AprJun/0085.html
12:30
<Shiningnorance>
hello
12:30
<Shiningnorance>
did you guys actually write html5?
12:32
<Workshiva>
If you mean the actual spec text, Hixie did that, yes
12:33
<Shiningnorance>
oh man, hixie is actually here!
12:34
<Shiningnorance>
according to Introducing HTML5, Hixie moved to Google!
12:34
<Ms2ger>
Well, he did
12:35
<Shiningnorance>
He's awesome!
12:40
<Shiningnorance>
It's funny, most of you guys have Pokemon-like names :>
12:43
<Philip`>
Hixie is everywhere
12:44
hsivonen
thought Dashimon was the only pokemon name around here
12:45
<Shiningnorance>
Oh that may explain why I felt something weird in my pants
12:47
<Workshiva>
hsivonen: Pokemon names don't actually end in mon
12:47
<Workshiva>
A better guess would be Digimon
12:48
<hsivonen>
Workshiva: shows how little I know about *mon
12:53
<Workshiva>
hsivonen: Then you should be careful about labeling names as pokemon, people might think you're an expert ;)
12:54
Shiningnorance
thought hsivonen was a pokemon expert.
12:58
<hsivonen>
Workshiva: sorry
13:11
<MikeSmith>
I know all about pokeman
13:11
<MikeSmith>
I have a 7th-degree experts status in pokeman
13:41
<Workshiva>
MikeSmith: I guess that's required to get residence in Japan?
13:52
asmodai
buries MikeSmith in Yu-Gi-Oh! cards
15:10
<Shiningnorance>
exit
18:24
Philip`
wonders if someone has mentioned that if there's some way to improve script loading by modifying scripts and you want to load jQuery with it, it'd be much easier to get jQuery modified than to add features into every browser engine to work around hypothetical unmodifiability
18:26
<Ms2ger>
I'm afraid you're wrong, jquery has been set in stone
18:27
<Philip`>
Oh, in that case browsers could just bundle jQuery and maybe even port it all to C++ so they don't have to do run-time compilation at all
18:27
<Philip`>
So the problem's solved either way
18:28
<gsnedders>
Philip`: Port it to C++ when browser vendors are moving stuff to JS? :P
18:28
<tomasf>
implement jQuery in hardware and sell it as a dongle
18:30
<Philip`>
gsnedders: JS is overrated
18:30
<Philip`>
C++ is the language of the future
18:31
<jcranmer>
Philip`: pssh, everyone knows that basic is where its at
18:32
<Philip`>
Someone needs to write a BASIC-to-LLVM compiler, and then attach it to that LLVM-to-JS compiler
18:34
<Philip`>
http://stevehanov.ca/blog/index.php?id=92 - ooh
18:37
<zewt>
Philip`: i did point that out, yes :)
18:38
<Philip`>
zewt: Ah, good, then I don't need to have said anything :-)
18:40
<zewt>
http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2011-May/031799.html
18:41
<AryehGregor>
gsnedders, browser vendors are only moving non-performance-sensitive stuff to JS, right? Parts of jQuery are probably performance-sensitive.
18:42
<paul_irish>
10min of playing Snake later... thanks Philip` ;)
18:46
<jgraham>
AryehGregor: You like poking sleeping bears I see :)
18:46
<AryehGregor>
Occasionally.
19:06
<gsnedders>
AryehGregor: Depends what you mean by perf-sensitive. Moz playing around with NodeList in JS, that seems fairly perf vital.
19:08
<gsnedders>
AryehGregor: The vital point is the gain from being able to inline stuff (and potentially optimize based upon that), the removal of the cost of calling into host code, versus the less good general optimization it'll get from the compiler
19:08
<AryehGregor>
Interesting point.
19:09
<Ms2ger>
gsnedders, that's still written in C++, though
19:09
<gsnedders>
Ms2ger: I saw something from someone (bz?) about experimenting with it.
19:09
<Ms2ger>
With proxies, but not in JS
19:10
<gsnedders>
Ms2ger: Ah.
19:12
<gsnedders>
AryehGregor: An obvious simple optimization made possible by moving, say, Node.prototype.cloneNode(boolean deep) to JS is you can inline it and then possibly remove the irrelevant deep branch if it is called with a constant argument
19:12
<AryehGregor>
That's one jump. Surely that can't be a significant perf improvement.
19:13
<AryehGregor>
Conditional jump, I should say.
19:13
<AryehGregor>
But still, one instruction.
19:14
<Ms2ger>
Jumps are hard, let's go shopping
19:14
<gsnedders>
AryehGregor: That depends if you do it as foreach (children as child) if (deep) or the other way around
19:14
<AryehGregor>
Well, so just do it the other way around.
19:15
<gsnedders>
AryehGregor: Also branch prediction isn't perfect, removing jumps can give you gains.
19:21
<gsnedders>
Does anyone know what happened in the end wrt all the discussions about having two interoperable implementations before finalizing ES3.1?
19:23
<gsnedders>
(Because, well, obviously we don't. There are known compatibility issues with actually implementing the spec.)
19:34
<bga_>
gsnedders es3 and es5/6?
19:47
<gsnedders>
bga_: ES3.1 == ES5
19:48
<bga_>
es5 nonstrict
19:49
<gsnedders>
bga_: It's the progressive update before Harmony, so it's all of ES5.
19:49
<bga_>
ok
19:53
<bga_>
i hope - vendors will continue to support es3 (i mean, improve jit, optimizations, etc)
19:53
<AryehGregor>
Vendors use the exact same engine for all JS versions, I hope.
19:55
<bga_>
one asi -> bytecode engine and many parsers
21:09
<Hixie>
jgraham: getting 500s again
21:10
<Ms2ger>
You could set anolis up locally ;)
21:10
<Hixie>
woah, getting 500s even for the non-w3c one this time
21:10
<Hixie>
Ms2ger: no, i hit CPU limits if i do that
21:11
<Ms2ger>
Hmmm
21:11
<Ms2ger>
You could write smaller specs? :)
21:11
<Hixie>
our specs are already too small and spread out
21:11
AryehGregor
is glad he doesn't have to deal with these crazy VPS things, dedicated hosting FTW
21:12
<AryehGregor>
Alternatively, VPS would be okay if it were pay-by-usage instead of flat fees. Then you could use some extra CPU or memory occasionally and not have to pay much extra for it.
21:13
<AryehGregor>
nearlyfreespeech.net is pay-by-usage, but it's shared hosting only, alas. They observe that they can absorb Slashdottings at a one-time cost to you of a few dollars, as compared to a fixed-resources model where you'd have to pay a fortune to be able to withstand a Slashdotting.
21:15
<Ms2ger>
Sounds like that would be somewhat harder to set up with non-shared hosting
21:16
<AryehGregor>
Well, I really meant that the problem is they only allow you to run websites off the servers, not run random processes on them.
21:16
<AryehGregor>
Shared servers where you can run random processes along with other users would work okay.
21:16
<AryehGregor>
Like a job-server setup.
21:17
AryehGregor
estimates that running a low-traffic site on nearlyfreespeech.net that consists solely of a modest amount of static content would cost <$0.10/month, which is nice, because that's in line with how much they actually pay to provide it
21:19
<AryehGregor>
I'd totally look into it if I didn't have unlimited root access to two dedicated 16-core servers with 16 GB of RAM each, paid bandwidth of 10Mbps at 95th percentile, and a total of ~2.1TB of raw 10k RPM storage.
21:20
<AryehGregor>
For free.
21:20
<TabAtkins>
AryehGregor: Yes, that's about what I paid at first. At this point my montly hosting runs around 50c/month.
21:20
<AryehGregor>
TabAtkins, ah, you use them? So does my brother (ephraimgregor.com), and the site he runs for my mother (writingaboutart.org).
21:21
<Hixie>
i'd consider moving too if i didn't have unlimited disk, bandwidth, users, domains, etc at dreamhost basically for free
21:21
<TabAtkins>
Yeah, I've used nfsn for several years.
21:21
<Hixie>
lunch, bbl
21:22
<Philip`>
AryehGregor: Pay-by-RAM-usage VPS doesn't seem particularly technically easy, since OSes and applications are generally all designed to eat as much RAM as possible
21:22
<Philip`>
so it'd be no different to simply paying up-front for a fixed amount
21:23
<AryehGregor>
Philip`, Linux can change the amount of RAM it uses at runtime, for instance if it's a VM and the hypervisor gives it more RAM.
21:23
<AryehGregor>
(maybe also if you physically install new RAM, but I dunno if the hardware supports that, never tried)
21:23
<AryehGregor>
There are also "balloon drivers", recently, which try to free up RAM so it can be given back to the host if not enough is free.
21:23
<AryehGregor>
s/host/hypervisor/
21:24
<AryehGregor>
So in theory, you could have it configured to automatically request more RAM as needed and forfeit it when not needed.
21:24
<Philip`>
That seems a bit more indirect than measuring actual usage, but there are certainly VPSes that let you buy more RAM and pay per hour and it's immediately available to the machine
21:25
<Philip`>
and you can probably tie it into some load monitoring system so it changes automatically, if you like living dangerously
21:25
<AryehGregor>
I dunno if virtualization is awesome enough yet to be able to do this kind of thing seamlessly.
21:26
<Philip`>
I've used gandi.net and added more RAM/CPU/bandwidth dynamically and it's worked seamlessly
21:26
<AryehGregor>
Well, unless your host is running clustering or is massively overprovisioned, it's unlikely your RAM is going to be able to upgrade itself by more than a few gigabytes.
21:27
<AryehGregor>
Unless they can shift the VM between machines transparently, which I'm under the impression can't be easily done yet, although maybe I'm wrong.
21:28
<Philip`>
The cloudy way to do it is to split your application across multiple machines so you don't have to worry too much about running out of physical resources on one, I guess
21:28
<AryehGregor>
I'd argue that VMWare Cluster should count as cloudy too.
21:28
Philip`
's demands are modest enough to not need anything that fancy
22:08
<jamesr>
nfsn ftw
22:10
<AryehGregor>
nfsn?
22:10
<jamesr>
NearlyFreeSpeech.Net
22:30
<Hixie>
AryehGregor: dreamhost's vps lets you change the ram and cpu you're paying for any time you want, and prorates you
22:30
<Hixie>
AryehGregor: it even has an API, so if i cared i could make anolis switch to 4GB of RAM, run the sync, and then drop down to 400MB again
22:30
<AryehGregor>
I was about to suggest that.
22:30
<Hixie>
but it's easier for me to let jgraham maintain anolis :-)
22:35
<Philip`>
(Anolis needs 4GB of RAM?)
22:38
<Hixie>
that was just an example
22:38
<Hixie>
i think it's CPU it actually needs