One suggestion: if the code wasn't changed yet, switching languages should adjust the syntax in the initial example. So the default `var foo = 'bar';` in JavaScript should become `foo = 'bar'` in Python, etc.
The UX is indeed very nice. Just a small issue: FF19 on OSX 10.8.3 displays a horizontal scrollbar. Looks like a margin or padding problem with the central feed element.
The default is All rights reserved, so you need to provide a license for anyone to do anything with the code of yours and sleep good at night knowing you won't exercise your rights through persecution.
When I bought a Kindle more than two years ago, one of the first use cases I discovered was finding an article on the web, deciding it's too long to read on a glare screen and wanting to send to the Kindle's browser. What I ended up doing was adding the articles to Pocket (Read It Later at that time) and crafting a small PHP script that turned the RSS feed of Pocket's items-to-read into a simple page with links, suitable for Kindle.
I still use Kindle for that sometimes, although I've moved with most of my Web reading to a tablet.
You might want to check YubNub [0], which is an enhanced version of this prefixes idea. If anything, you don't have to prepend your queries with ! there :)
As a member of Python community, I hereby congratulate Ruby for joining the ranks of pretty-cool-but-not-so-hot-anymore technologies. There are years of Getting Stuff Done ahead of you. Way to go!
Honestly, that doesn't sound like a best practice and more like a convoluted performance hack. It's one thing to use a pre-allocated memory pool for speeding up the creation of objects in native language like C++. Having to the equivalent while working several software layers above that is an example of extremely leaky abstraction.
DOM and Javascript engines still need few more man-centuries of iteration to bring their performance closer to e.g. JVM which doesn't really require hacks like that anymore.
I love how the closure of Reader reveals something about the tech journalists and "celebrities".
They throw tantrums. They throws hissy fits. They scream bloody murder. They divine doom and gloom for Google about how severely this will affect it in much more important markets like Android and Chrome.
And yet the world is not ending, and not every Facebook wall has this petition [1] plastered all over. Even GOOG stock underwent as a much as a correction, still hovering comfortably above $800.
What did happen, though, is that self-important "opinion leaders" had their illusions of power dispelled. No wonder they are furious.
Source? I have never heard that claim. And contrary to that, Go has facilities for implementing ORMs, like field annotations in structs for specifying column bindings.
Remember that you still need to explain the Fermi paradox [1]. If you apply the above logic to life & civilizations in general, you conclude that it's actually quite likely for them to survive long enough and become widespread. Yet, our experience contradicts that assertion, for we don't know any other race at even comparable level of technical development
Of course, this (i.e. civilization quickly become extinct) is just one possible resolution to the paradox, but the arguably simplest one. If the actual reason(s) we don't see advanced life are different, the Great filter hypothesis holds less water. We don't know that yet, though.
The scary implication of #1 is that it updates our probability for long-term survival and becoming a technologically advanced, space-faring species: by _lowering_ it. That's because it pushes the potential Great Filter [1] closer to our present condition and increasing the odds that it's actually somewhere in our future.
But about those dark corners, I guess the point wasn't to present any particularly nasty gotchas, but rather some precious little lesser known tricks. C has plenty of very well known features you can be bitten by (mostly related to memory management, of course). While the presentation reiterates over some of them, the most valuable parts are about various _good_ parts of the language which are rarely heard of (viz. the usage of `static` inside brackets).
> I see very little of this as having anything to do with Mayer-as-Mayer or Mayer-as-a-woman and almost all the reaction here having to do with Mayer-as-a-technology-CEO.
And this, I must say, I like a lot.
As IT industry, we might not be there yet when it comes to eradicating sexism, but at least it seems that this test has been passed successfully. Strongly as some may feel about Meyer's policy, it has been criticized almost exclusively on the grounds of merit and predicted effectiveness in achieving its desired goal (i.e. making the company more innovative). Little I've seen references to Meyer's gender and/or maternity playing a role here; that article (and the NYC article it quotes) look like exceptions rather than a rule.
That's the IT/hacker community I like and respect.
Go fills the same niche as node.js: high performing API servers talking to some frontend: a "proper" webserver, thick in-browser webapp, a mobile app, etc. And it's a pretty damn good alternative when you compare the clarity of goroutines with the typical mess of Javascript callbacks.
There are certain ways to write Java that are both more expressive and clever (and therefore more fun), as well as more dangerous in terms of future maintenance. Various dependency injection frameworks - e.g. Guice - are known for introducing some "magic" into Java code that sometimes may exceed the tolerance threshold of less experienced programmers.
> (...) but Ruby is much more of a "hacker's language" and pushes you to more "lispyness" in spirit and practice!
Which, I think, is one of the main reasons why Python is recommended more: it's simpler and has less sharp corners.
The other thing is that Ruby is significantly slanted towards the object-oriented paradigm while Python remains much more neutral in this regard.
One suggestion: if the code wasn't changed yet, switching languages should adjust the syntax in the initial example. So the default `var foo = 'bar';` in JavaScript should become `foo = 'bar'` in Python, etc.