That said, it is difficult to bring a legacy code base in line with modern style, though you can improve it over time.
Also, this could benefit from some other gotchas, extremely surprising behavior and best practices for avoiding common pitfalls.
1,273 karma · joined November 19, 2009
That said, it is difficult to bring a legacy code base in line with modern style, though you can improve it over time.
Also, this could benefit from some other gotchas, extremely surprising behavior and best practices for avoiding common pitfalls.
(Also, you don't understand patriotism? It's tribalism, something deeply encoded in our behavior from many thousands of years of tribal evolution.)
This is a nice hack.
Recently, my sister (same condition) drove a couple hours to see a specialist who had obviously not read her file or done any research and made some truly awful suggestions (one that could certainly have lead to her death if she had followed it). He billed her for the time.
Doctors are like coders, some are orders of magnitude better than others. Some are so bad, they have a net negative impact on your health.
I have a slightly rare genetic condition, and I've only met 2 doctors who know more than I do, and that's because they do active research on the exact condition and have authored or co-authored multiple research articles on it.
correct link : http://pretty-rfc.herokuapp.com/RFC2616#character.sets
link in text : http://pretty-rfc.herokuapp.com/RFC2616#character-sets
Here's what rubs me raw day-in and day-out:
1. Lack of immutable/persistent data structures. 2. Lack of multi-line anonymous functions/lambda. 3. Variable scoping fail, causing hacks like the new `nonlocal` keyword. 4. worst_possible_variable_name_convention. 5. Python evangelism. (community issue, mostly) 6. Hypocritical "explicit is better" and "flat over nested" values with insane amounts of magic built into language and class system. 7. No switch. 8. GIL. (Actually the CPython runtime in general) 9. No macros. 10. the insane way "unicode" is supported. 11. and on and on...
At this point I write Python code, but not generally by choice. Mostly my coworkers can't even imagine writing code in another language, given that we have been allowed to choose our implementation language(s) as a team.
I've seen these attacks mitigated single-handedly by an experienced fellow with no access to fancy equipment. I believe it went something like this, change the DNS to point at some EC2 instances to do front-end load balancing with some scripts that detect and drop connections from attacking IP addresses and do severe rate limiting. You can proxy legitimate requests back to the original servers.
Granted, not everyone knows how to do that in a pinch, but it shouldn't be a big deal for a hosting company. You only have to figure out how to do it once and when you detect a DDoS attack, flip the switch for that customer.
You just set it up on a local server, and upload packages the same way they are uploaded to real PyPI.
python setup.py register sdist upload
You can specify alternate PyPI server with a ~/.pypirc. There are probably other ways to do this. What's nice about this is you can upload your own private packages or your own personal forks of packages. We do both.1. Run your own secure, local pypi clone with exact source versions of the packages you use.
2. The packages for production are built into RPMs from the local pypi.
PyPI is great for discovery, getting things running quickly, and testing new versions, but you never want to rely on it, even for development.