IceWeasel was created to work around trademark restrictions; Mozilla Corporation would not allow to Debian to use the trademarked names as long as Debian was distributing the software with unapproved patches. So, Debian created their own branding in order to comply. See http://en.wikipedia.org/wiki/Mozilla_Corporation_software_re... for more details.
If you live in the city and use the subway often, it is easier to get a 30-day unlimited ride pass. Lots of employers will even provide monthly unlimited ride passes as a pre-tax benefit via TransitChek.
When I was in high school and college, they typically only banned calculators that had full keyboards (e.g. TI-92). I believe I was allowed to use a TI-89 on both the SATs and the GREs.
Garbage Collection: Algorithms for Automatic Dynamic Memory Management is the original book, whereas The Garbage Collection Handbook: The Art of Automatic Memory Management is the new and updated version. I have the original, but it would be nice to know everything the new book adds.
void
assert_times(intmax_t a, intmax_t b, intmax_t r)
{
/*
* if first operand is 0, no overflow is possible,
* else result of division test must match second operand
*/
if (a != 0 && r / a != b)
errx(ERR_EXIT, "overflow");
}
struct val *
op_times(struct val *a, struct val *b)
{
struct val *r;
assert_to_integer(a);
assert_to_integer(b);
r = make_integer(a->u.i * b->u.i);
assert_times(a->u.i, b->u.i, r->u.i);
free_value(a);
free_value(b);
return (r);
}
void
assert_div(intmax_t a, intmax_t b)
{
if (b == 0)
errx(ERR_EXIT, "division by zero");
/* only INTMAX_MIN / -1 causes overflow */
if (a == INTMAX_MIN && b == -1)
errx(ERR_EXIT, "overflow");
}
struct val *
op_div(struct val *a, struct val *b)
{
struct val *r;
assert_to_integer(a);
assert_to_integer(b);
/* assert based on operands only, not on result */
assert_div(a->u.i, b->u.i);
r = make_integer(a->u.i / b->u.i);
free_value(a);
free_value(b);
return (r);
}
Looks like the check for overflow in the multiplication case is broken since the check itself does not account for overflow. I'll try to remember to submit a patch when I get home.
Lars may be an asshole, but it is unfair to say that he made less of a contribution to the writing that Cliff did. Lars has writing credits on 8 tracks of Kill'Em All [0], 8 tracks of Ride the Lightning [1], 8 tracks of Master of Puppets [2], and 9 tracks of ...And Justice for All [3], whereas Cliff only has 1, 6, 3, and 1 tracks on said albums respectively. Furthermore, James wrote nearly all of the lyrics himself, so I really don't see how Cliff can be considered the driving force behind the writing of Metallica's early music.
On the other hand, wasn't Lars the driving force between the terrible mastering of their more recent albums? I remember reading something where he said basically that because he didn't personally hear any clipping and it sounded good in his car that it was good.
From what I understand, Rick Rubin wanted it mastered that way so it sounded "louder" (yet another casualty of the loudness wars) and the band just went with it. Unfortunately, the average consumer (or band member apparently) couldn't care less about audio quality, so it is no surprise that Lars has no qualms about it.