Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×

Comment Re:Collusion (Score 1) 1186

My guess would be that you weren't still doing 70 when you went off the road. You'd be surprised how quickly you slow down when your sleepy ass releases the pressure on the accelerator.

Crashes above 40MPH are incredibly rare, normally a good amount of braking happens and the cars are going less than half the speed they could have been.

Comment Re:Collusion (Score 1) 1186

Excess Nitrogen is actually more dangerous to people than CO2, because it turns out we detect lack of Oxygen by an excess of CO2, not by an actual lack of oxygen. If the problem is excess Nitrogen, our bodies never notice, in fact they might even see a reduced level of CO2 and assume that Oxygen is plentiful.

Comment Re:Collusion (Score 5, Informative) 1186

If you look up crash tests of the Smart ForTwo on youtube you might be surprised: http://www.youtube.com/watch?v=mz-s1sIoLhU

The Smart ForTwo's main advertising point (apart from it's small size and fuel efficiency) is the visible "Tridion" frame around the passenger compartment, showing that you're going to be safe.

Now look up your BMW (I can't, as you didn't give the model).

Comment Re:Modem Box (Score 1) 876

A little reading leads me to find that the "one way" cable modems were often capable of two-way cable (but the network wasn't) and/or had a phone-line modem built in too, making them capable of both modulation and demodulation (though on two lines).

It's a bit clunky, but so is the stupid idea.

Comment Re:Modem Box (Score 1) 876

Except it isn't digital not even slightly. Transmitting over the distances they do REQUIRES an analogue signal (i.e. transmitting a waveform in varying frequency/phase/amplitude representing the digital signal instead of using the high/low peaks of the wave to represent bits).

ADSL uses variants of QAM modulation.

See: http://en.wikipedia.org/wiki/Carrierless_Amplitude_Phase_Modulation and http://en.wikipedia.org/wiki/Discrete_multitone_modulation for descriptions of the two modulations used in ADSL.

Comment Re:Um, yeah, hai.. (Score 2, Interesting) 114

That depends, are you in London? Some other big city? No? Then no.

Then again, my parents are in a small village in the middle of Norfolk and they get full 8 Mbps ADSL (I've tested it). The village is so small that the local junior school collects students from several villages and still has to combine several years of students into the same classes, instead of the traditional several classes of students per year. The village is home to the phone exchange which serves the surrounding villages, which is most likely the reason they get full speed ADSL.

I'm in the Newcastle area, and could get Virgin's 50 Mbps cable connection if I wanted (I'm on their 10 Mbps service). However the upstream side of the connection leaves a little to be desired.

Comment Re:wrong (Score 5, Informative) 230

Windows' solution is pretty nice. You can pass a pre-created socket handle to accept_ex, which automatically accepts an incoming connection using that socket handle, so that you don't have to use two system calls (select and accept). You can also pre-accept multiple sockets, instead of having to make the system calls under load.
Sockets can also be closed with a "re-use" flag, which leaves the handle valid and saves making a system call to create another.

You then associate the sockets with an "IO completion port", which as best as I can tell is a multithreaded-safe linked list for really fast kernel to user program communication. To receive from the socket you make an async receive call, giving a pointer to a buffer to receive into.
Whenever data is received on those sockets (and has had a corresponding async request made for it already) the kernel automatically queues the socket handle to that linked list. If you associate a socket with the completion port before you accept a connection with it (i.e. you're using acceptex) it also triggers when the socket accepts a connection.
In the user code, you run multiple threads listening on the completion port (you can also use the completion port in the thread pooling API, which runs two threads to each cpu core by default). When a message arrives from the kernel, the most recently finished thread wakes and processes the received data, which will already be in the user-space buffer you provided in the original receive call.

If all threads are busy and there are messages in the completion port they will bounce right off of the completion port, picking up the next bit of completed IO they need to process without making a system call.

Slashdot Top Deals

Ya'll hear about the geometer who went to the beach to catch some rays and became a tangent ?

Working...