3 min read

A Bit of SaaS Weekly: The AI in I/O

A Bit of SaaS Weekly: The AI in I/O

This is a weekly newsletter on the Software as a Service world. Learning, building, and shipping. Written by Ethan Mick.

Google I/O is this week, and I will responsibly cover any implications for us developers building the future. They also had their keynote first πŸ˜‰.

The Best Bits


AI isn't magic. It makes other things magical.

Google announced a slew of AI initiatives, features, and products at their conference this week. It could have been called Google A/I this year.

Not surprising.

Since ChatGPT came out, Google has been itching to try and take back their participation trophy in the AI race.

Don't feel too bad. Google, and other large tech companies, are not in a bad position. The technology powering AI is moving forward at blinding speed, but it's also being democratized at the same time. Open-source projects and research is moving so quickly that any gains are disseminated throughout the industry.

GPT-4 from OpenAI is good. It might even be the best. Other companies are quickly going to have their own version of "good," though. And while going toe-to-toe, these other models might not be quite as good, that's okay. Because they're almost never going to face off like that.

The power of AI isn't going to be in talking to it. The power of AI is in making current problems magic. It imbues a product with magic and makes things that once were hard... trivial. This, in turn, makes your users happy and more productive.

As shown at I/O, Google's not simply trying to build a better chatbot (re: Bard). Google's infusing AI into its products, like Maps, Photos, and Android. This will make all those products better. And, of course, that much harder to compete against.

And you can use it too. Google will have APIs to use their new PaLM 2 large language model.

I have a lot of hope for this technology. Some things that are Very Hardℒ️ are suddenly going to become easy. That will unlock potential we didn't know was there.

What are you building?

Tech Tip

If you think you have a problem spot in your React code, you can use the Profile component to debug and see what's going on:

import React, { Profiler } from 'react';

const onRenderCallback = (
  id: string, // the "id" prop of the Profiler tree that has just committed
  phase: 'mount' | 'update', // either 'mount' or 'update'
  actualDuration: number, // time spent rendering the committed update
  baseDuration: number, // estimated time to render the entire subtree without memoization
  startTime: number, // when React began rendering this update
  commitTime: number, // when React committed this update
  interactions: Set<unknown> // the Set of interactions belonging to this update
): void => {
  console.log(`id: ${id}`);
  console.log(`phase: ${phase}`);
  console.log(`actualDuration: ${actualDuration}`);
  console.log(`baseDuration: ${baseDuration}`);
  console.log(`startTime: ${startTime}`);
  console.log(`commitTime: ${commitTime}`);
  console.log(`interactions: ${interactions}`);

const MyComponent: React.FC = () => {
  return (
      <Profiler id="MyComponent" onRender={onRenderCallback}>
        {/* Your code here */}

export default MyComponent;

The render callback will be called and output the debugging information. You can use this to see how often it renders and the performance of those renders.

Cloud Chronicles

  • πŸŽ‰ YouTube Subscribers: 1,041 (+98 in the last 7 days)
  • Newsletter Members: 182 (+31 in the last 7 days)

I did it! I hit 1,000 subscribers on YouTube this week! This is the only milestone that really counts for YouTube. One thousand subscribers are required to be considered for the Partner Program (re: ads). I also need 4,000 hours of public watch time, of which I'm about halfway there. Time to make more great content!

I finished my contract with my old company, so I'm now down to two freelance projects. One is with the non-profit, and it moves slowly, which I'm okay with. The other I'll be able to spend more time on it and then have the remaining time dedicated to content.

Last Byte