I'm not saying it hasn't happened before, or that it won't happen again, but the CDNs that it happens to and/or don't handle it with the utmost care and expertise do not survive very long.
140 karma · joined June 5, 2010
I'm not saying it hasn't happened before, or that it won't happen again, but the CDNs that it happens to and/or don't handle it with the utmost care and expertise do not survive very long.
And, to answer your question, the benefits are substantial, well-documented, and provable on multiple levels.
First off, a CDN (when working properly) greatly improves the average latency for browsing a site, and in some cases even the bandwidth usage. Additionally, use of a CDN can increase the number of users a site can simultaneously serve. The best CDNs can not only withstand but actively deflect various types of DOS attacks. Some can even serve resources like images and video dynamically optimized for the browsing software or device.
There are many more benefits, and believe it or not, a huge percentage of the Internet's web and media traffic flows through CDN services - bypassing all of them is near-impossible (unless you somehow don't use any of the most popular sites and services)
And it needs mysql, redis and mongo??!?
Oh, and of course, I'll need an aws/rackspace account...
If I need all that for a web-scraper it better be for a big project.
The CPAN modules in the linked article can all be installed and run as a non-privileged user (via either local::lib or perlbrew, etc.). And there are no daemons, nothing running as root, nothing listening on any ports, no configuration or tuning to think about, and it'll work everywhere from my macbook to my dev-server running linux or BSD or Solaris or whatever.
BTW, Mojolicious (http://mojolicio.us) is really great stuff. Outside of having a reasonably up-to-date version of Perl (5.10.1 or higher), it's got no external dependencies, not even other CPAN modules. It's fast, flexible, easy to use, and easy to deploy just about anywhere. sri++
And then there are a pile of modules that implement python-style generators, some using https://metacpan.org/module/Coro (co-routines implemented as threads), some using crazy hacks:
https://metacpan.org/module/Compile::Generators
print(($_%3?"":"Fizz").($_%5?"":"Buzz")or$_,"\n")for 1..100
sadly, though it says they're running perl 5.14, it wouldn't work with 'say' which would have shaved off 7 characters.edit: Guess what? The code above does not work. It's what I typed into my buffer, and then fixed it on the console to use || instead of or. Oh operator precedence!
Years ago when I was still in college (so probably before 2001) I had this exact same idea, but not the skills to implement it. Later, still wanting a searchable archive of pages I bookmarked, I wrote a Perl script that fetched every link in bookmarks.html into a SQLite database and indexed the content. It was very hackish and not very smart (just indexed the raw HTML), but it worked for my needs, kinda...
After a few years switching laptops and using multiple systems, I let it fall by the wayside - copying the DB and scripts from one system to another and keeping them all in sync was just too much of a PITA to be worth it to me... I'm still a rabid bookmarker though, and your service looks like the realization of all the stuff I wanted to do!
If you offer a free-trial (say two weeks) of this service, I am very interested in trying it and would certainly provide plenty of feedback. I'm not yet convinced that I want to pay $3.99/month, but I don't think it's an unreasonable amount at all, especially considering the iOS app, planned cross-browser support, and the very slick-looking interface.
Add to the existing features some mechanism to automatically/transparently sync new bookmarks, and add some assurance that the data is stored securely and encrypted, and only used for new things with my express permission, that $3.99 goes from maybe to deal!
I'm excited for this - I see a viable business in it since I know I'm not the only other data-packrat out there.
EDIT: I just saw the trial voucher and used it. Thanks!
Perl Medic (Peter J. Scott) - http://amzn.com/0201795264 Effective Perl Programming (Joseph N. Hall, Joshua A. McAdams, brian d foy) - http://amzn.com/0321496949
Besides those, having a good reference to the language is also essential. For example, I keep Perl In a Nutshell close by, even though I almost always just search http://perldoc.perl.org/ when I need that info.
Cambridge, MA, USA
San Mateo, CA, USA
Bangalore, India
We're also hiring for many other roles in these locations as well as many other places around the globe.I've been working here for just over a year as a Sr. Software Engineer, and this is just a great place to work. The company is very technology driven, creativity is encouraged, and while we are very robust and careful in our practices and procedures, (especially operations and release management) I feel like developers and managers are given a lot of independence to make important technical decisions, which leads to giving us the ability to really make a difference with every thing we do. That's something special to have in a company of this size, IMO.
So, the careers page is here: http://www.akamai.com/careers
I know my group is looking for skilled SQA engineers, but company-wide we need everything from battle-hardened linux admins to C++ gurus, to Java/Perl/Python hackers and everything in between. My own group develops in Clojure. My co-worker is currently prototyping algorithms in Haskell.
Since I do get a referral bonus, don't forget to send them my name if you submit a resume!
(bash -c 'echo moc\!iam@k@ diff@css | tr " @!" "@a." | rev')Also, these services aren't just blanket across your domain or account - you can configure exactly what content gets what treatment based on literally hundreds of different variables. Furthermore, there are ways of having your origin servers send info to Akamai's edge caches that can then be used to make even smarter decisions, per-request.
I agree with other posters - it's expensive overkill for small sites or sites with modest needs, but for those who need maximum control, reliability and performance, I don't think there's any other company that provides it.
Normally I don't care, but I guess I'm just grumpy today.
Also, yeah... I should take-back the TDD comment, or at least re-word it. I just get a little knee-jerky when I hear the word TDD mindlessly spouted out as a panacea. TDD works best when combined with other best-practices, and of course, learning how to write tests that help and don't become yet another ball of mud is an art in itself!
Idioms are indeed important, but TDD won't improve your proficiency (except in that you'll learn a testing framework and be writing more code). Neither will attempting to adhere to a "Functional" style when you've not already learned the important lessons of FP from an actually FP-oriented language. Coding guidelines? Be consistent. Discover the guidelines of the code you're working on and use that. That has nothing to do with python or proficiency.
Performance is probably the last part of proficiency that one has to learn, and arguably the most difficult. A lot of other skills have to come together before one can count "performance" as a point of their proficiency in a language, and most of those skills are really quite language-agnostic. Oh, and if you're focusing on performance but you don't yet know how to properly profile and benchmark, you're not proficient.
If you really want to become a proficient Python programmer (or any other language) try this:
1. Find the documentation
2. Learn how to navigate, search, and read the documentation
3. Find a skilled mentor or some community resource (IRC, mailing-list, website forums, etc)
4. Ask what is considered good code. Read it. Study it.
5. Create a project - little ones, like sorting your MP3 collection or mining your email for statistics.
6. Try to use the lessons learned in the code you've studied when writing your project.
7. lather, rinse, repeat. Chances are, you're not proficient until you're doing it for several hours every day - and even then, you're probably not really "proficient"... yet.
/rant off
http://userpage.fu-berlin.de.nyud.net/~ram/pub/pub_jf47ht81H...
I won't pretend that Perl's unicode support sucks; Working with Unicode in Perl is far more complicated than it ought to be and rife with bugs and corner-cases. However, working with Unicode properly in just about any language requires a whole lot of careful thought and consideration.
Maybe Java (and by extension JVM languages) is the best you can get right now, I dunno...