Listening to music on a specific set of devices made by just one company is (hopefully) a fad, yes. Carrying a seperate device just for playing music is probably also a fad. Closed DRM that only works on a single device may well also be a fad, especially for commodity data such as music and movies.
If nothing else, with the amount of time we've been around intelligent life that makes things like iPods may turn out to just be a fad;)
You should be able to build the parameter list in the same order as you build the string, ala ez-where. If you can't, well, you can always do named binding yourself:
def query(statement, *params)
if params.last.is_a? Hash
named = params.pop
statement.gsub!(/:([a-z0-9]+)/i) { quote(params[$1.intern]) }
end
super(statement, *params) end
query('SELECT * FROM Bla WHERE foo = ?, wibble =:wibble, wobble =:wobble', bla.foo,:wibble => bla.wibble,:wobble => bla.wobble)
Even in a nastier language, it should still be easier to make an injection-safe API that suits your usage pattern than remembering to manually escape each parameter every time.
You're forgetting to factor in the latest DRM standards, which mandate that each frame be encoded within the mind-state of an MPAA appointed layer, which can determine dynamically whether or not it's profitable to deny decoding the image for you without demanding more money.
I didn't say anything about the distribution of failures, just the average failure rate, since that's what the MTBF gives; the Mean Time Between Failures.
Nah, MTBF's are based on the failure rate you can expect from a large chunk of drives, not the expected lifetime of a single drive. A MBTF of 600,000 hours means that if you have, say, 600,000 drives within their 5-year (generally) design life, you can expect about 1 drive to fail every hour, or a yearly failure rate of about 1.5%.
Pfft, are AMD really peddling AM2 as an upgrade for you? It seems pretty clear to me that it's been presented as what it is; S939 with DDR2 and a few tweaks, not a must-have for every current S939 user. Using the same memory as Intel, and a memory type that has a decent future is nice, and something that's going to happen sooner or later.
By the time there's a CPU that makes an upgrade for S939 users worthwhile, I dare say DDR2 (and AMD's use of it; I dare say Quad Core will like the extra bandwidth) will have progressed to a point at which upgrading to that is also worthwhile. In the mean time it's not really a step back for new systems, and S939's still available if you want it, so.. what's worth whinging about?
Funnily enough, most of the whinging about CS courses I hear is that they're too *easy*; programming modules turn out to take 6 months just to get over the most trivial of structures, formal methods turns into "how to express set logic in Z/B", the database module dives right into basic SQL and handwaves any relational theory into a few soundbites, and mathematical modules do little beyond exercise your rote learning skills.
I guess this is at least in part a result of optimizing for pass rate when most of your students are more after a lucrative piece of paper and a few years of drinking and socializing.
Hehe, cute, and far more constructive than "it's broke"; thanks. Though "the documentation" is more like this, where it explicitly allows numeric literals in object literals on page 42. Funky, but I'd still use strings so you don't get screwed when you pass (2**31)-1 comment ID's;)
Looking at the object it actually produces, I see it's setting some spurious bits in there; 0x800000 becomes 0xff800000, etc. Silly. I guess you could always OR each cid with 0xff000000 *duck*
Ok, so you're using a global variable called comments; a "hash" indexed by comment ID. Except it's just an object to JS, and you're telling it to create numeric elements in it... these elements are not just array indexes, they're also method names, and numeric method names.. well, they're a Bad Idea.
With 2 search and replace operations, I have the basics of Discussion2 working in Opera 9.01 on a locally saved page:
First, instead of doing comments = { [cid]:... } do comments = { 'c[cid]':... }. Now instead of comments.1234567, you're asking for comments.c1234567. Now in comments.js, replace comments[cid] with comments['c'+cid]. Now changing the threshold works just fine.
Of course FreeBSD DTrace isn't "of production quality"; it's only in a special branch of -CURRENT.
Re "You need to boot bsd specially into a dtrace mode to use this", I'm under the impression that option is just to enable DTrace probes during kernel startup, so you can trace driver probes, filesystem init etc.
Speaking of ports from Solaris, FreeBSD ZFS recently had a good chunk of movement.
"They plan to change the default threading library AGAIN with 7.x."
The change in threading libraries in 5 involved a lot of brand new kernel and userspace code and a completely different mechanism for threading; moving from userspace "green" threads to kernel supported threading (KSE's). The change planned for 7 involves swapping the two stable, interchangable userspace pthread libraries that use KSE's around because, after years of testing, fiddling and production use, the alternative one has turned out to be generally faster and simpler. Hardly the same ballpark as the big libc_r -> libpthread change, unless I've missed some scary discussion recently;)
Depends who you get your service from. My 4Mbit cable service with ntl costs £25 (~$48)/month and doesn't have caps on how much I can transfer. ADSL is rather better; a highly non-exhaustive search finds £17.99 ($34) for up to 8Mbit, similarly unlimited, but I'm a bit far from my exchange.
"If HTML was properly structured they wouldn't have had to invent XHTML instead"
That sounds pretty fallacious. Try again?
"For what it's worth, there is already a very good implementation of this idea, called Kses. It's a very thorough filtering library, it's being used internally by WordPress, and still hasn't stopped recent versions of WordPress 2.x from suffering from this kind of security vulnerability."
What was it that the post the parent linked to said? Ah yes: "The cause is not thinking of and treating your HTML input as structured data. Rather, you're thinking of it as a character stream. Textual substitutions are a sign of that line of thought." Guess what Kses does?
"Then you interpret BBcode in a controlled manner"
How is that any better than interpreting (pseudo)HTML in a controlled manner? Especially when the vast majority of BBcode style engines are simply hideous regexp replacement hacks. At the end of the day you want to parse the document into an intermediate form which is nothing but plaintext and data structures identifying the elements, attributes and values you support, which you then serialize into whatever output format you need. Anything else is inviting creative ways to bypass or otherwise break your ad-hoc text replacements.
The XP-M is a years-old 130nm CPU with very limited frequency/voltage scaling capabilities, predating AMD's move to Silicon on Insulator, Strained Silicon and 90nm processes. Core is a just-released CPU with extensive power management capabilities and built using Intel's latest and greatest 65nm process. As others have said, the comparison's really quite silly.
Right, and what "real server" workload are you describing here? Believe it or not, most servers do not need to perform anywhere near 6.8Gbps of IO to huge disk arrays theoretically capable of that. If a particular server does, fine; hardware RAID, gobs of memory and tonnes of disk shelves for that. But most will do just fine with a small number of disks performing small IO's that don't even come close to entertaining a modern CPU at any appreciable level; if work is IO bound, it's bound by seek time, not transfer rate.
You might as well be arguing that all "real" servers should have hardware crypto; sure, some servers do a lot of crypto ops and will benefit significantly from it, but most are going to be using it for SSH and little else, making it a complete waste of money, power and admin effort.
"might as well waste the extra CPU cycles available on your desktop system. In real server environments - no way... Hardware RAID all the way"
Right. The extra few fractions of a percent of CPU and memory bandwidth consumed by software RAID-1(0) can cripple even the most powerful of servers. And of course by "cripple" I mean "go almost completely unnoticed while reducing dependencies on notoriously buggy hardware and poorly supported drivers and management tools you can't even get the source for". Clearly having it in every server unconditionally shows great reasoning and use of resources.
Listening to music on a specific set of devices made by just one company is (hopefully) a fad, yes. Carrying a seperate device just for playing music is probably also a fad. Closed DRM that only works on a single device may well also be a fad, especially for commodity data such as music and movies.
;)
If nothing else, with the amount of time we've been around intelligent life that makes things like iPods may turn out to just be a fad
It's news because it's the second biggest shuttle impact ever.
You're forgetting to factor in the latest DRM standards, which mandate that each frame be encoded within the mind-state of an MPAA appointed layer, which can determine dynamically whether or not it's profitable to deny decoding the image for you without demanding more money.
I didn't say anything about the distribution of failures, just the average failure rate, since that's what the MTBF gives; the Mean Time Between Failures.
Nah, MTBF's are based on the failure rate you can expect from a large chunk of drives, not the expected lifetime of a single drive. A MBTF of 600,000 hours means that if you have, say, 600,000 drives within their 5-year (generally) design life, you can expect about 1 drive to fail every hour, or a yearly failure rate of about 1.5%.
Pfft, are AMD really peddling AM2 as an upgrade for you? It seems pretty clear to me that it's been presented as what it is; S939 with DDR2 and a few tweaks, not a must-have for every current S939 user. Using the same memory as Intel, and a memory type that has a decent future is nice, and something that's going to happen sooner or later.
By the time there's a CPU that makes an upgrade for S939 users worthwhile, I dare say DDR2 (and AMD's use of it; I dare say Quad Core will like the extra bandwidth) will have progressed to a point at which upgrading to that is also worthwhile. In the mean time it's not really a step back for new systems, and S939's still available if you want it, so.. what's worth whinging about?
Pfft Linux, Rockbox is where it's at for portable music players.
Funnily enough, most of the whinging about CS courses I hear is that they're too *easy*; programming modules turn out to take 6 months just to get over the most trivial of structures, formal methods turns into "how to express set logic in Z/B", the database module dives right into basic SQL and handwaves any relational theory into a few soundbites, and mathematical modules do little beyond exercise your rote learning skills.
I guess this is at least in part a result of optimizing for pass rate when most of your students are more after a lucrative piece of paper and a few years of drinking and socializing.
Hehe, cute, and far more constructive than "it's broke"; thanks. Though "the documentation" is more like this, where it explicitly allows numeric literals in object literals on page 42. Funky, but I'd still use strings so you don't get screwed when you pass (2**31)-1 comment ID's ;)
Looking at the object it actually produces, I see it's setting some spurious bits in there; 0x800000 becomes 0xff800000, etc. Silly. I guess you could always OR each cid with 0xff000000 *duck*
Ok, so you're using a global variable called comments; a "hash" indexed by comment ID. Except it's just an object to JS, and you're telling it to create numeric elements in it... these elements are not just array indexes, they're also method names, and numeric method names.. well, they're a Bad Idea.
... } do comments = { 'c[cid]': ... }. Now instead of comments.1234567, you're asking for comments.c1234567. Now in comments.js, replace comments[cid] with comments['c'+cid]. Now changing the threshold works just fine.
With 2 search and replace operations, I have the basics of Discussion2 working in Opera 9.01 on a locally saved page:
First, instead of doing comments = { [cid]:
Of course FreeBSD DTrace isn't "of production quality"; it's only in a special branch of -CURRENT.
Re "You need to boot bsd specially into a dtrace mode to use this", I'm under the impression that option is just to enable DTrace probes during kernel startup, so you can trace driver probes, filesystem init etc.
Speaking of ports from Solaris, FreeBSD ZFS recently had a good chunk of movement.
Better not forget the random salt, or your hashed passwords are pretty transparent to anyone with a CD of rainbow tables and a few minutes of CPU.
"They plan to change the default threading library AGAIN with 7.x."
;)
The change in threading libraries in 5 involved a lot of brand new kernel and userspace code and a completely different mechanism for threading; moving from userspace "green" threads to kernel supported threading (KSE's). The change planned for 7 involves swapping the two stable, interchangable userspace pthread libraries that use KSE's around because, after years of testing, fiddling and production use, the alternative one has turned out to be generally faster and simpler. Hardly the same ballpark as the big libc_r -> libpthread change, unless I've missed some scary discussion recently
Depends who you get your service from. My 4Mbit cable service with ntl costs £25 (~$48)/month and doesn't have caps on how much I can transfer. ADSL is rather better; a highly non-exhaustive search finds £17.99 ($34) for up to 8Mbit, similarly unlimited, but I'm a bit far from my exchange.
"What happens when you hit the border?"
Your process throws a SEGV and terminates as you attempt to write outside the bounds of the simulation.
That sounds pretty fallacious. Try again?
What was it that the post the parent linked to said? Ah yes: "The cause is not thinking of and treating your HTML input as structured data. Rather, you're thinking of it as a character stream. Textual substitutions are a sign of that line of thought." Guess what Kses does?
How is that any better than interpreting (pseudo)HTML in a controlled manner? Especially when the vast majority of BBcode style engines are simply hideous regexp replacement hacks. At the end of the day you want to parse the document into an intermediate form which is nothing but plaintext and data structures identifying the elements, attributes and values you support, which you then serialize into whatever output format you need. Anything else is inviting creative ways to bypass or otherwise break your ad-hoc text replacements.
The Light of Other Days.
Deja vu and similar events are also very common in epilepsy.
Safer, but almost completely non-functional from two independent locations for me, hence the Google-cached link. Does it work for you?
Like Systrace?
The XP-M is a years-old 130nm CPU with very limited frequency/voltage scaling capabilities, predating AMD's move to Silicon on Insulator, Strained Silicon and 90nm processes. Core is a just-released CPU with extensive power management capabilities and built using Intel's latest and greatest 65nm process. As others have said, the comparison's really quite silly.
Right, and what "real server" workload are you describing here? Believe it or not, most servers do not need to perform anywhere near 6.8Gbps of IO to huge disk arrays theoretically capable of that. If a particular server does, fine; hardware RAID, gobs of memory and tonnes of disk shelves for that. But most will do just fine with a small number of disks performing small IO's that don't even come close to entertaining a modern CPU at any appreciable level; if work is IO bound, it's bound by seek time, not transfer rate.
You might as well be arguing that all "real" servers should have hardware crypto; sure, some servers do a lot of crypto ops and will benefit significantly from it, but most are going to be using it for SSH and little else, making it a complete waste of money, power and admin effort.
"might as well waste the extra CPU cycles available on your desktop system. In real server environments - no way... Hardware RAID all the way"
Right. The extra few fractions of a percent of CPU and memory bandwidth consumed by software RAID-1(0) can cripple even the most powerful of servers. And of course by "cripple" I mean "go almost completely unnoticed while reducing dependencies on notoriously buggy hardware and poorly supported drivers and management tools you can't even get the source for". Clearly having it in every server unconditionally shows great reasoning and use of resources.