Monday, January 22, 2018

Per registered vehicle, the fatality rate for motorcyclists in 2015 was 6 times the fatality rate for passenger car occupants, as shown in Table 2. The injury rate for motorcyclists (1,028) was slightly lower than the injury rate for passenger car occupants (1,035). Per vehicle mile traveled in 2015, motorcyclist fatalities occurred nearly 29 times more frequently than passenger car occupant fatalities in motor vehicle traffic crashes, and motorcyclists were nearly 5 times more likely to be injured.

In 2015, 33% of all motorcycle riders involved in fatal crashes were speeding, compared to 19% for passenger car drivers.

27% of motorcycle riders involved in fatal crashes in 2015 were riding without valid motorcycle licenses at the time of the collisions, while only 13% of passenger vehicle drivers in fatal crashes did not have valid licenses.

Motorcycle riders involved in fatal crashes were 1.3 times more likely than passenger car drivers to have previous license suspensions or revocations (20.6% and 16.2%, respectively).

In 2015, there were 4,684 motorcycle riders killed in motor vehicle traffic crashes. Of those, 1,285 (27%) were alcohol-impaired (BAC of .08 g/dL or higher). In addition, there were 337 (7%) fatally injured motorcycle riders who had lower alcohol levels (BACs of .01 to .07 g/dL).

The reported helmet use rate for alcohol-impaired motorcycle riders killed in traffic crashes was 51% as compared to 65% for those with no alcohol.

Helmet are estimated to be 37-percent effective in preventing fatal injuries to motorcycle riders and 41% for motorcycle passengers. In other words, for every 100 motorcycle riders killed in crashes while not wearing helmets, 37 of them could have been saved had all 100 worn helmets.

40% of the 4,976 motorcyclists killed in motor vehicle traffic crashes were not helmeted, based on known helmet use.

Friday, January 5, 2018

Try to read a byte from protected memory. It will fail, but the CPU will still get that value, just will not return it to us.

Try to use that byte value as an index in our own array of 256 elements. This operation will fail as well, but as the CPU "knows" the inaccessible value, it will actually use it, will read the corresponding array element and put it into the internal cache.

Go through all 256 elements of our array in a loop trying to read them, and measure how long each reading operation takes.

The element, which was already accessed based on the "mystery" value, is already in the CPU cache, so it will be read dozens times faster, than the others.

The index of that "fast" element is the value, which we tried, but were not allowed to read from protected memory. Now we know it!