1,174 karma · joined June 17, 2011
http://en.wikipedia.org/wiki/Jonathan_Pollard#Sentencing_and...
:Tab /\S\s\zs[ ]\S*
Explanation: \S\s* finds a non whitespace character followed by as many whitespace characters as possible. This brings us to the beginning of the variable name. We then use \zs which says that the "found" area should only begin here.
Since we want the * in block_style to be attached to the indented word but not before the variable name, we match either * or space followed by a non-whitespace character to symbolize the beginning of the word. End result:
void poor_style()
{
up_front declarations;
also encourage;
this_ridiculous *block_style;
that_is a_royal_pain;
to maintain;
because_some_long_type inevitably;
screws_it up;
} the first Gulf War in Iraq was won because a Lisp application took care that US soldiers had everything from toilet paper, ammunition to gasoline
The word because means that if there was no Lisp application the war would not have been won. This is almost certainly false, even if the Lisp application did make things easier.If the software wasn't written in lisp, it would have been written in any other language.
And if the software wasn't written at all there would have been hundreds of people doing the software's work manually instead.
Did the software help? Probably. It's likely there would have been more screw ups if there was no software. But it takes a big leap to credit the software with winning the war.
:r!howdoi python regex
:r! executes a command and inserts its standard output below the cursorThis is similar to the argument that since pi is (probably) normal, any sequence of characters appears in it and we can simply use indexes into pi instead of storing numbers.
The problem is that given a file of size X, that sequence of X bytes probably only occurs at more than 2^X places into pi.
I think that it was an unwritten requirement that it would work on Goldman's computer, and I think even people who say that Patrick's technique was legit would agree with that.
That is, if the file was truly random, it would have a chance of 1/(2^X) of being all 0, where X is the size of the file. But since Mike would reject that file, the chance is actually 0.
Same for all files with easily exploitable patterns - for example, I am sure that Goldman checked that the file could not be compressed with gzip before sending it.
So the EV is probably not positive, even if there is a small chance that a random file of size X can be compressed.
Let's say you have a file of size X. You want to write a program of size Y which will decompress an X-Y-1 sized file back to the original program. Does such a program and file exist for every file of size X?
Using the pigeon hole principle, we can see that it does not. There are 2^X files of size X, but only 2^(X-1) inputs of length Y+X-Y-1. Therefore, not every file can be compressed this way. It doesn't matter what your decompressor is written in or how, you still can't do it.
(Of course, it's slightly more confusing since it's actually the inverse of the temperature that's defined as dS/dE, which is the rate at which the entropy increases as the energy increases, a much more understandable definition. And as the physics professor who taught this to a room of students from various departments said of the transition from
1/T = dS/dE
to T = dE/dS
"The mathematicians in the crowd will be in an uproar now. But we can do stuff like that in physics") joey@j-comp:~$ locate todo.txt
/usr/share/vim/vim73/doc/todo.txt
Does that count?Let's say that Patrick's techniques can increase profits by 10% compared to an "unoptimized" website. If the bingo card business is worth $X0,000, by selling his own products on optimized webpages Patrick makes an extra $X,000.
If instead Patrick consults for a company that does $X0,000,000 his techniques are now worth $X,000,000. If he gets a percentage of those new profits, he is doing much better than if he had sold more of his own product.
Since creating a business which does $X0,000,000 in sales is hard, Patrick can make better use of his time by finding those existing companies and offering his services that by selling more of his (comparatively low value) product himself.
Yes, the content is already produced. But putting it all together in a book format still takes time. You need to go over old articles, choose the ones to go in, edit and rewrite where necessary, figure out what order to put things in, add new content, deal with the publisher, figure out typesetting things, etc.
If that process takes him two weeks and earns him $5k but his consulting rate is $5k per week then writing the book costs him $5k in potential income. In that case, writing the book is actually leaving money on the table.
Except that Linkedin's passwords weren't salted.
> When you say "entire password space" you're implying that there's a hard upper limit on the complexity of a user's password
That's why I said "where the password space could be a dictionary attack or a brute force of passwords up to length 10 of letters, digits, and symbols". I don't actually mean the whole key space, just whatever the attacker chooses to target.
> So our expectation is that the easiest 500,000 accounts will be cracked in the first 5.2 seconds by an attacker with a single GPU
OK, I concede that point that in this case the salt is not helping so much, at least for users using the 10000 most common passwords. For the few hundred thousand users users whose password lies in a larger key space (but still in the range of bruteforce), the salt still protects them.
Getting back to your original point
> Modern password cracking has all-but obsoleted both of these reasons [for having a salt]
Let's look at a better hash function - bcrypt. In this case hashing passwords is still slow enough (by design - you can slow it down to whatever you want) that rainbow tables would again be useful - to compute the hash of 10000 passwords with a difficulty such that each hash takes 1 cpu-second to compute will take almost 3 hours. Adding salts makes this a per user operation instead of a global one.