Google I/O Rundown

Thomson Comer, Staff Engineer

Here’s a quick rundown from a tech perspective of what Google announced last week at its I/O conference:

Google.ai

Google bases most of its service model on artificial intelligence (AI). In this year’s I/O, they announced some really cool new data-center clusters called Tensor Processing Units (TPUs): huge, heavy-duty number crunching machines that each provide up to 900 petaflops of AI power. These TPUs are coming immediately to Google Compute Engine so that everyone can take advantage of their deep learning power. Sundar Pichai, Google’s CEO, claimed that their image recognition vision algorithms are now more accurate than humans.

The hardest part of machine learning isn’t writing the algorithms, but rather has to do with tuning them to fit with your desired data set. Any particular configuration of a neural network might work well with one data set, but terribly with another. Google’s TPUs have been designed to use neural nets to train other neural nets, or deep learning “inception” in Pinchai’s words. These systems are probably how Google has accomplished such state of the art image recognition, and will contribute to many more advancements in artificial intelligence, deep learning, and machine learning in the near future.

Other rad additions to the Google.ai lineup:

  • TensorFlow: Google’s TensorFlow ML libraries have snatched dominance in these areas from Matlab, Octave, and R. Implementing an AI algorithm and training it against your data set is easier than ever before.
  • TensorFlowLite: Now TensorFlow is available for Android devices! I can’t wait to implement some of the awesome new computer vision and voice recognition technologies in an upcoming project.
  • Google Lens: Now using deep learning and convolutional neural nets to analyze your photos. Google is (by far) best suited to provide this technology. You’ll be able to gather important contextual information about your surroundings simply by pointing your phone—restaurant reviews, automatic translations, and object recognition that brings you straight to Wikipedia. In a mature form, this technology might be as transformative as getting your first smartphone was.
  • Google Photos: Google is bringing heavier machine learning to your family photos. Suggested Sharing and Shared Libraries are the new Facebook killer. Now you can view your family and friends’ photos, without also having to read their endless polemical soapbox rants! Suggested Sharing identifies who is in your photos and asks if you want to share your photos with them, and Shared Libraries lets families automatically merge their photo collections. How many photos do you have? Between my wife and myself, we have over 120GB of photos and videos—far more than we’ll ever organize, clean up, or even view. I’ve thought for quite a while that artificial intelligence is really the only way for us (all of us) to manage our photo collections in today’s connected age. “Ok Google, reconstruct my memories.”

Home vs. Alexa Showdown

Things are really heating up in the battle between Google Home and Amazon Alexa. Chromecast screen integration is really cool: Ask Google Home to show you something, and the result pops up directly on your Chromecast. This includes scheduling, photos, YouTube videos, and more. Google is playing catchup with Amazon here, but, honestly, the YouTube integration is a killer feature.  Google Home is also adding voice calling, another feature to catch up with Amazon.

It sounds like they’re ready to voiceprint using Google Home, so that custom results can be delivered to the speaker depending on who they are. This is especially useful in the context of IoT, where we might like to provide different authentication levels depending on who the speaker is. This is essential voice assistant technology. Amazon has already announced this feature, but has not launched it yet, so perhaps Google has the drop on them this time.

Finally, Google announced Actions on Google, which is a way to add much more complicated business integrations to Google Assistant. These new voice driven interactions enable efficient transactions between companies and their customers using voice alone. Please note—Google.ai is not providing this cool functionality.  Rather, it must be added by the development team of each company tying into Google Assistant.

Google O

Google O is the next upcoming version of the Android operating system. A developer preview has been available for the bold and the cutting edge since March 21.

Google O contains many new features for Android. My favorites are:

  • VoIP API—Making it easier to integrate Voice-over-IP into apps is a pretty significant addition. We’ve been using IP-connected phones now since 2007, but we’ve been stuck using the traditional voice networks all the same. 3rd party apps for VoIP calling came onto the scene quickly, but they are cumbersome. Most importantly, today these apps don’t integrate with the phone itself, so when your VoIP app rings, your phone doesn’t answer it properly. We don’t need any networks other than the IP networks, do we? No!
  • Google Play Protect: Automatic scanning, identify unusual app behavior and eliminating it, and Find My Device.
  • Stricter app lifecycle control for battery management
  • Android Go

Android Go is a stripped down version of Android that will offer much better performance on systems with less than 1GB of RAM. This is a particularly momentous development for IoT developers. Can anyone say Android on a Raspberry Pi? Android Go might enable us to develop attractive and performant applications quickly on inexpensive IoT ICs, connect them to a screen, and ship them with much shorter costs and lead times. We’ll be watching Android Go closely!

Kotlin

One of the most interesting announcements for developers is that Google has added a new programming language for developing Android applications. Kotlin runs on the JVM, is 100% interoperable with Java, and provides many improvements over Java. Below I list and demonstrate some of my favorite features, though more detail is available. Anything other than Java or C++ is, of course, a marked improvement! I like clean, simple code, something that newer languages always do better.

Data Classes

data class User(var name: String, var address: String, var company: Company)

Really beats the heck out of the alternative!

Monkey Patching (Extension Functions)

I’m sure there are implementation-level details, but the new feature to Kotlin called Extension Functions perfectly matches what is called monkey patching in every dynamic language: Add a feature to an object outside of its definition. The most likely difference is that monkey patches typically happen at run time, where extension functions (or protocols, in Objective-C parlance) are almost definitely applied during compile.

fun Point.getDistanceFromOrigin() {
    return Math.sqrt(this.x*this.x + this.y*this.y);
}

Lambdas

Lambda functions, or inline functions used for compositing collections, were added to Java 8. Kotlin does not miss this bandwagon!

collection.filter { it > 0 }
collection.map { it ** 2 }

Kotlin provides the implicit single-name parameter it, saving us the need to write collection.map { value -> value ** 2}. More details here.

Default and named arguments

These are nice.

class Message(val sender: String = "",
              val recipient: String = "",
              val message: String = "Hey buddy!") {}

and

val message = Message(sender = user.email, recipient = target.email, message = user.lastMessage)

Better immutability

Kotlin enforces the use of var for variable definition and val for final variable definition. Kotlin also makes a distinction between mutable and immutable collections, like Objective-C.

If you’re interested, here is a more in-depth comparison of Kotlin and Java.

Categories: Uncategorized

Contact Us

Please fill out the contact form below and our engineering services team will be in touch soon.

fake yeezys
We rely on Cardinal Peak for their ability to bolster our patent licensing efforts with in-depth technical guidance. They have deep expertise and they’re easy to work with.
Diego deGarrido Sr. Manager, LSI
Cardinal Peak has a strong technology portfolio that has complemented our own expertise well. They are communicative, drive toward results quickly, and understand the appropriate level of documentation it takes to effectively convey their work. In…
Jason Damori Director of Engineering, Biamp Systems
We asked Cardinal Peak to take ownership for an important subsystem, and they completed a very high quality deliverable on time.
Matt Cowan Chief Scientific Officer, RealD
Cardinal Peak’s personnel worked side-by-side with our own engineers and engineers from other companies on several of our key projects. The Cardinal Peak staff has consistently provided a level of professionalism and technical expertise that we…
Sherisse Hawkins VP Software Development, Time Warner Cable
Cardinal Peak was a natural choice for us. They were able to develop a high-quality product, based in part on open source, and in part on intellectual property they had already developed, all for a very effective price.
Bruce Webber VP Engineering, VBrick
We completely trust Cardinal Peak to advise us on technology strategy, as well as to implement it. They are a dependable partner that ultimately makes us more competitive in the marketplace.
Brian Brown President and CEO, Decatur Electronics
The Cardinal Peak team started quickly and delivered high-quality results, and they worked really well with our own engineering team.
Charles Corbalis VP Engineering, RGB Networks
We found Cardinal Peak’s team to be very knowledgeable about embedded video delivery systems. Their ability to deliver working solutions on time—combined with excellent project management skills—helped bring success not only to the product…
Ralph Schmitt VP, Product Marketing and Engineering, Kustom Signals
Cardinal Peak has provided deep technical insights, and they’ve allowed us to complete some really hard projects quickly. We are big fans of their team.
Scott Garlington VP Engineering, xG Technology
We’ve used Cardinal Peak on several projects. They have a very capable engineering team. They’re a great resource.
Greg Read Senior Program Manager, Symmetricom
Cardinal Peak has proven to be a trusted and flexible partner who has helped Harmonic to deliver reliably on our commitments to our own customers. The team at Cardinal Peak was responsive to our needs and delivered high quality results.
Alex Derecho VP Professional Services, Harmonic
Yonder Music was an excellent collaboration with Cardinal Peak. Combining our experience with the music industry and target music market, with Cardinal Peak’s technical expertise, the product has made the mobile experience of Yonder as powerful as…
Adam Kidron founder and CEO, Yonder Music
The Cardinal Peak team played an invaluable role in helping us get our first Internet of Things product to market quickly. They were up to speed in no time and provided all of the technical expertise we lacked. They interfaced seamlessly with our i…
Kevin Leadford Vice President of Innovation, Acuity Brands Lighting
We asked Cardinal Peak to help us address a number of open items related to programming our systems in production. Their engineers have a wealth of experience in IoT and embedded fields, and they helped us quickly and diligently. I’d definitely…
Ryan Margoles Founder and CTO, notion