I read a quote a few years ago that really resonated with me. The quote is attributed to Jeffrey Hammerbacher, an early Facebook employee that left to found Cloudera, a data analytics company. The quote went like this:
“The best minds of my generation are thinking about how to make people click ads. That sucks.”
That actually dovetailed with something I’d heard in the mid 2000s, when someone lamented that the best technical minds in computer science weren’t working to further our industry or even just produce amazing software. Many of them had left industries to work inside financial institutions, manipulating our stock markets and money systems to make millions.
I can’t blame anyone for choosing to engage in a business that will reward them. That’s the beauty of capitalism. I think you can go too far, but I’d hope that most people, while pursuing their success, would look beyond just money. At least at some point. I would like to believe that most of us find there to be things at least as, if not more so, important than money.
Larry Page founded Google, and is one of the richest people in the world. I ran across an article on his beautiful mind, which looks at the ways in which Mr. Page is trying to change the world. Perhaps he has an eye on profit, but my impression is that he also wants to make life better for more and more people around the globe. His focus happens to be ways technology might help us, and I’m hoping he succeeds. Much like I admire Bill and Melinda Gates are trying to improve health around the world. Those aren’t my passions, but I’m glad someone is driven by them.
Many of us aren’t financially secure for life or able to fund whatever endeavor comes to mind. However, we can make a difference in the world. We can be examples that show there is something beyond making money at work. We can also volunteer or donate some of our time to help others. We can all be a Larry Page in some way, impacting the world in a small way to make it better for everyone.
One of the keys to being a successful technologist is being able to search for information. Google has a lot of operators, and I ran across this list of terms, thanks to Kevin Kline.
It’s on the GoogleGuide site and lists and defines the operators. I’d encourage you to play with them and practice using them. I use the “site:” operator often, and it’s helped me shortcut searches and reduce noise.
I haven’t looked for the terms on other search engines, but I’m sure there are similar (if not the same) operators.
Google does some amazing things. In many ways I like the company and their emphasis on data. I’m not sure I’d want to work there or fit into the culture, but the company tackles some problems that could really change many of our daily lives. They experiment with many projects, one of which is the driverless car project. I’m particularly interested in seeing seeing how that might influence the world.
One of their other projects seems more ambitious. The Knowledge Graph project aims to use a database of everything in the world (according to this piece) and provide even more information to people using the Google search engine. In addition to search results, the idea is that you can get other facts and information about the topic you are searching for.
Whether it works well or not, it’s certainly an interesting idea. Can we build engines that can divine the context of what we are looking for? If we can do this often enough, then the idea of interactive computers, like the ones on Star Trek, might be closer than we think. Perhaps there’s a way for us to actually mine the data we have about a customer, or a situation, and present results that are more relevant and useful. Perhaps we can build software that can do more than just automate tasks and can help us better analyze information with new ideas or concepts as it interacts with us.
The Voice of the DBA Podcasts
We publish three versions of the podcast each day for you to enjoy.
I heard someone talking the other day about how Google needs to optimize their code. They really pay attention to low level operation of their software, actually having people spend time writing compilers and ensuring they generate efficient code. This is on top of the idea that they want to ensure data structures efficiently use space, there is no unnecessary network traffic, etc. The reasoning is that at “Google-scale” (Gs) if something takes 10% longer, that’s 10% more electricity they have to supply, 10% more machines, and 10% of the Google IT infrastructure budget is a big, big number.
I’ve never worked at Gs. In fact, I’ve never worked at 0.001Gs. Most of my work in software development has been to support dozens, or maybe hundreds of users. SQLServerCentral, which was a joint programming project, was my largest piece of software , and that was built on other pieces of software, with little contributions from me and lots of Andy Warren’s keyboard sweat in the early years. Despite working on small projects, I still have always learned to consider the little things.
When you grow up with compilers that take minutes, as in 10 minutes to compile a few hundred lines of code, you pay more attention to your algorithms. When you grow up with kb of memory, you use it wisely. When you work across a 300 baud modem, you don’t mess around with lots of data transfer. Even though many of those constraints don’t apply, I still try to be careful and watch my data types, watch my round trips, and be aware that there are actually bits being whipped across the ether or in and out of transistors in a not-so-little package on my computer system.
The argument about “just buying more hardware” has some validity, but it’s not an excuse for not improving your skill and becoming better at your craft. As my friend Jeff Moden often quotes, it doesn’t take any more time to do it right the first time. That’s true, but you need to know how to do it right, we at least well. For all of us, that should mean some regular effort to improve your skills and become better at your craft, just like Google looks to constantly optimize their own systems.