While the Zenbook looks great and has great hardware specs, I can't rightfully recommend it to anyone. A list of complaints:
-Loud fan. With all of its (considerable) horsepower, it can get quite hot. Even when simply booting up or writing a document in Word, the fan is on almost constantly and very audible.
-Keyboard quality. The coating on the keyboard has already started peeling off after 1.5 years of mild use.
-Big and heavy power brick that gets extremely hot.
-Random buggy hardware issues. The webcam stopped working after updating Windows, and I haven't been able to get it working since. The trackpad is HORRIBLE and buggy. Maybe it's because Apple's trackpad has spoiled me, but going from apple's trackpad to Asus' was probably the single most frustrating thing. It's terribly inaccurate, doesn't understand multi-gestures, and worst of all, there's this weird cursor jitter when you touch the trackpad without being electrically grounded. I'm serious. If I want to accurately place my cursor over something, I have to be touching the laptop's aluminum chassis or else the cursor starts spasming.
The overall build quality just cannot be compared to Apple's. Even the mini Sub Woofer my Zenbook came with started working intermittently and I discovered that the port it connected to came loose for no apparent reason. The same thing happened to one of the USB ports.
Oh, and this was all after going throught he trouble of RMA'ing the first one for harddrive failure.
For a higher end, premium priced laptop I really expected better.
I think this is especially pertinent for the current SOA/microservices trend that many companies are adopting nowadays. Build small, simple, highly focussed services that specialize at one thing. Services do one thing, and do it well, at the cost of flexibility and the ability to generalize over different use cases. I think this something that is perfectly ok and shouldn't make programmers squirm, even if it leads to code duplication.
In some of the more popular microservice frameworks for instance, I see some attempts to build abstractions for things like data persistence -(what if we want to swap out Postgres for Mongo, etc?) But I think that's a good example of a needless abstraction. In fact by building an abstraction like that, you lose many of the features that perhaps made that specific database so great in the first place.
It seems to be easier to mentally justify logic duplication in the hardware world. An FPGA is an abstraction of logic. In general, it trades off performance for more flexibility. An ASIC is specifically designed from the ground up to do one task very well, but deviate from that task and it's borderline useless. I think that for microservices, code should be treated more like ASICs. One off, application specific code that we won't be afraid to throwaway and rewrite from scratch if we need to.
I would love to see a comparison between Arangodb and Rethinkdb, especially performance wise. Is it suitable for realtime applications? What language drivers are supported?
Claudius from ArangoDB here. Frank already answered a question about realtime queries below: "We are evaluating various possibilities, how to implement streaming queries in an efficient and scalable way. For instance, are restrictions to the general AQL necessary for such queries to be able to scale? Stay tuned."
Yes, this is fascinating. I can only imagine that as more and more developers flock to "free" SMS verification services provided by companies like Facebook (Account Kit) and Twitter (Digits), their long term outlook is even more unsure.