This is because join negatively impact the scalability of a DB:
- When huge amount of traffic hits your DB, out of the most commonly run-out resources - CPU, Memory, and IO - CPU is usually the one that runs out first. And Join uses quite a bit of CPU.
- When you have a lot of data and have to partition it, you will feel so lucky if you don't have to deal with distributed joins.
I have used many languages professionally and in my personal projects. Java is the language that makes me most productive. Why? It has the best tooling support. There are a few things that is extremely important for my productivity:
- Precise autocomplete
- Jump from a name to its definition
- Call hierarchy
- Code template
- Auto formatting
- Great unit test support
- Stable and high quality debugger
- Hot swap
- Drop to frame during debugging
- Remote debugging
- Profiling and heap analysis
Recently, I am working on both a very large C++ code base and similarly large Java code base. In C++, I find myself routinely use logging and printf for debugging, because switching to debug build and use a debugger is such a pain. In Java, debugging is much easier. The feeling is like night and day.
Just cover the continent will require a lot of balloons. The world has 148,429,000 sq km. If you cover 1600 sq km per balloon, that is 92768 balloons. Just cover Africa will require around 20k balloons. It will only work out, if Google can increase the coverage area per balloon.
Scalability is an architecture issue, not a programming language issue. You can certainly build linearly scalable system in Ruby. It just costs more to scale a Ruby app vs. an equivalent Java app. In the end, the tradeoff is between engineering cost and operating cost. When you spend 100k to hire an engineer and your traffic can be handled by a few boxes. Engineering productivity is your primary focus. As your traffic grows, you need more and more servers, server efficiency becomes more and more important. At some point, the savings in server cost justifies the increased cost in engineering effort and you make a switch from Ruby to Java.
There are lots of things in the toy, art, and spare part category that can use the 3D printing technology. Just like many other technologies, 3D printing will be adopted by designers, hobbists first. If there is enough demand, it will show up in shared workshop such as Kinko. It may or may not make into every home. Who knows. It really depends on if there is any killer app that drives the demand.
There are security issues with this approach. However, I wouldn't mind if a site offers both traditional login and email based login. Then, I, as a user can choose which is the most appropriate.
So, growth hacker is a marketer. Fine. But not all marketers are growth hackers. My understanding is that, growth hacking is a specialty in marketing which focus on consumer web marketing. It is also a very technical and hands on position. As a growth hacker, you not only need to have a marketing plan, but also need to implement or help implement the marketing plan. There is nothing wrong for giving a name to a sub-category of marketing profession.
I made the utility to help you track the rank of your hacker news post. Simply enter item id, or click "back" and select "History"->"View". Feedbacks are welcome.
Note: It only has two days of data, so older news won't work.
AdSense has much lower margin compared with AdWords because Google has to pay publisher for displaying the ads. In the early days, (AdSense revenue around 1B) I remember google was almost paying every penny they got from AdSense back to the publisher. Only later, they started to make money, but still capped by the competition from microsoft/yahoo.
Facebook entering the AdSense market? It won't generate a lot of profit for facebook. The true profit engine for facebook is still the facebook site.
This post is quite relavent to the recent discussion on whether regular people should learn programming. I take it as a challenge and ask: do we have a programming language that regular people can learn easily. Star Script is my attempt at meeting the challenge. I would like to hear your feedback. Thanks!
Yes. When you schedule a recurring event, such as daily reminder, you will have to store timezone. In that case, you are storing a scheduling specification, not a real date/time. You don't have the complete information, such as year/month, etc.