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.