Wacky anti-spam idea: detect usernames or passwords that belong to the same low-entropy PRNG sequence.
What spammer bothers to reseed their random number generator between generating a new batch of usernames and passwords for their spam accounts?
I'm Mustafa Paksoy and I write code for a living. I post assorted items of interest here. You can contact me via email.
I also take pictures, dabble in Twitter and occasionally put projects on GitHub.
Wacky anti-spam idea: detect usernames or passwords that belong to the same low-entropy PRNG sequence.
What spammer bothers to reseed their random number generator between generating a new batch of usernames and passwords for their spam accounts?
I wrote this cool thing with Kanishka and Sid. It’s like e-mail filters for your Dropbox.
Omitting semicolons in JavaScript is OK for the most part except for when it isn’t:
If you choose to omit semicolons where possible, my advice is to insert them immediately before the opening parenthesis or square bracket in any statement that begins with one of those tokens, or any which begins with one of the arithmetic operator tokens /, +, or - if you should happen to write such a statement.
You, master JavaScript coder, might have committed this elaborate rule to memory. But do you expect everyone who reads, or modifies, your code to be aware of it and apply it meticulously?
Style conventions exist to ensure that logically wrong code also looks visually wrong. If you’ve adopted a coding style that requires you type ;(d + e).print() instead of (d + e).print(), you’ve accomplished the exact opposite. And for what?
Writing clean, maintainable code requires being able to accept the simplest solution even if it seems unglamorous. Sometimes that means adding often superflous semicolons for predictability sake. You’ll just need the humility to accept that your JavaScript will look like everyone else’s.
I wrote this a while ago, recently ported it to run on GitHub Pages: http://mustpax.github.com/Truth-Table-Generator/
Netflix just announced that they are spinning off their DVD-rental-by-mail service under a new brand Qwikster while the streaming service retains the Netflix name. Many commentators have duly noted Netflix’s boldness in leaving its cash cow behind and looking to the future, a true example of a company facing up to the Innovator’s Dilemma.
However, this latest change serves a purpose beyond merely signaling Netflix’s future direction to customers and investors. Namely, Netflix is setting itself up to offer premium pricing options for its streaming product. The company has already been burnt by customer confusion stemming from its most recent pricing changes. Netflix knows it needs to clearly delineate the two product offerings to be able to say “pay another $10 a month to watch all Fox shows” without customers wondering they will still be able to rent Family Guy Season 3 DVDs by mail.
At $10 a month unlimited streaming is a great deal. The cable plans that that Netflix’s service replaces run around $40-50 which means there’s a lot of consumer surplus Netflix can absorb to widens its product offering. As evidenced by the latest Starz loss, Netflix needs to make more compelling bids for streaming rights and offering premium streaming packages is the key to that. I for one can’t wait.
— Joshua Schachter on Hacker News
So last month I wrote a bit about setting up your own personal Git repositories on a Linux box, and how to use...
Me: “Alright, I want you to go ahead and drag that file to your desktop.”
Client: “Pff. I don’t have a desktop, I have a laptop!”
It seems like everyone these days has some kind of quick tip for gauging the ripeness of fruit.
Still, billions of shoppers every day find themselves in the produce aisle, ears pressed to cassava melons, grinning like idiots.
Client: “I need your agency to develop a robust morale-boosting program for the top 100 ‘leaders’ in our region during our annual team building...
FAQ
Is this the same type of laminator they have at high schools?
Yes! Your I.D. card...
What’s this? Oh, just some stuff my bank thinks I should put on my checks.