Making decisions in a fast-paced environment often leads to long, messy threads and lost consensus. Polly helps teams solve this by enabling the creation of interactive polls within existing Chat conversations. By keeping the feedback loop inside the "flow of work," Polly helps eliminate the friction of switching between apps, leading to faster responses and clearer team alignment.
Effortless authoring and participation
Creating a poll is as simple as mentioning @Polly in any Google Chat space. Whether you need a quick pulse on a project direction or a simple vote on a meeting time, you can author a poll in seconds. For end users, participation is just as easy: team members can cast their votes with a single click directly within the chat stream.
Real-time results
Results are updated as votes come in, providing immediate visual feedback to the entire space. This transparency ensures that everyone is on the same page and can move forward with confidence as soon as a decision is reached.
Use cases for Polly in Google Chat:
Driving consensus: Rapidly narrow down options for project names, design directions, or strategy shifts.
Meeting logistics: Quickly vote on the best time for a sync or gather topics for an upcoming agenda.
Team preferences: Streamline simple office or team logistics, from lunch orders to preferred collaboration hours.
Admins can easily enable the Polly integration to empower their teams with a more structured way to collaborate without leaving the Google Workspace ecosystem.
Getting started
Admins: Admins can install the Polly Chat app on their users’ behalf. Visit the Help Center to learn more about installing Marketplace apps for your organization. If you’ve already deployed Polly for Google Meet, then the Polly Chat app will automatically be available as well.
End users: End users can search for the Polly add-on in Google Chat under Apps > Find apps. Visit the Google Workspace Marketplace to learn more and install Polly. If you’ve already installed Polly for Google Meet, then the Polly Chat app will automatically be available as well.
We’re updating icons across Google Workspace to introduce a modern visual design that gives every app a more distinct identity. Over the next several weeks, users will see new icons for Gmail, Calendar, Chat, Meet, Drive, Docs, Slides, Sheets, Vids, Keep, Forms, Voice, Sites, and Tasks.
These changes drive consistency and cohesion across our product suite, while ensuring each individual application remains modern and recognizable on your screen. These design updates do not alter any core functionality or administrative controls.
Getting started
Admins: There is no admin control for this update; changes will roll out automatically according to the schedule below. If you need to update internal documentation, visit the Help Center to find the new icon designs.
End users: There is no end user control for this update; changes will roll out automatically according to the schedule below.
In March 2021, we announced the open source release of TestParameterInjector: a simple but powerful parameterized test runner for JUnit4. In September 2022, we followed up with JUnit5 support, bringing our framework to developers who had moved on to the Jupiter API.
We're excited to announce our biggest update yet for our Kotlin users: KotlinTestParameters.
The de facto standard for parameterized testing
When we first introduced TestParameterInjector, we shared a graph showing its rapid adoption within Google. Over the past few years, that trajectory has continued to a point where TestParameterInjector is the de facto parameterized test framework.
Usage of all other alternative frameworks continues to steadily decline, while TestParameterInjector's adoption keeps growing rapidly. It has fundamentally lowered the barrier to writing data-driven unit tests, empowering Googlers and open source developers alike to maximize test coverage with minimal boilerplate. We believe its ubiquity internally is a strong testament to its reliability and utility for the broader developer communities.
The Kotlin challenge
As Kotlin's popularity has surged, developers have naturally been writing more of their TestParameterInjector tests in Kotlin. However, specifying explicit test values in Kotlin historically meant falling back to Java-centric paradigms.
If you wanted to provide specific values to a test, you typically had three options, none of which felt truly idiomatic in Kotlin:
@TestParameter({"123", "456"}): This relies on string arrays, limiting you to a subset of types that the string parsing supports.
@TestParameters: This allows for more complex sets of data, but relies on YAML strings (e.g.,"{age: 17, expectIsAdult: false}"). These strings however are not type-safe, and are completely ignored by IDE refactoring tools.
Provider classes: For complex types that couldn't be easily represented in strings, you have to write Provider classes, adding a bit of boilerplate code and indirection.
Enter KotlinTestParameters
To bring a seamless experience to Kotlin, we are introducing a significant new Kotlin-only feature: KotlinTestParameters.
By leveraging Kotlin's default function arguments, you can now define parameterized tests in a fully type-safe, concise, and refactor-friendly way using the testValues() function (and friends).
Here is what it looks like in practice:
import com.google.testing.junit.testparameterinjector.TestParameterInjector
import com.google.testing.junit.testparameterinjector.TestParameter
import com.google.testing.junit.testparameterinjector.KotlinTestParameters.testValues
import com.google.testing.junit.testparameterinjector.KotlinTestParameters.namedTestValues
import org.junit.Test
import org.junit.runner.RunWith
@RunWith(TestParameterInjector::class)
class MyTest {
// Testing simple types directly
@Test
fun simpleTest(@TestParameter limit: Int = testValues(20, 100)) {
// This test method is run twice: once for limit=20 and once for limit=100
}
// Testing complex types without YAML strings or Provider classes!
data class TestCase(val age: Int, val expectIsAdult: Boolean)
@Test
fun complexTest(
@TestParameter testCase: TestCase = namedTestValues(
"teenager" to TestCase(age = 17, expectIsAdult = false),
"young adult" to TestCase(age = 22, expectIsAdult = true)
)
) {
// This test method is run twice with fully typed data class instances
}
}
Why we recommend making the switch
Because testValues() seamlessly integrates with Kotlin's language features, any type is supported. This completely eliminates the need for stringly-typed YAML maps or verbose Provider classes.
We firmly believe that KotlinTestParameters is a massive leap forward in readability and maintainability. Moving forward, this should be the default way of specifying test values for all new Kotlin tests, replacing the older @TestParameters, @TestParameter({"..."}), and Provider class patterns.
Try it out!
You can read more and start using KotlinTestParameters today over on our GitHub repository.
Let us know what you think on GitHub if you have any questions, comments, or feature requests!
Hi everyone! We've just released Chrome Dev 150 (150.0.7847.3) for Android. It's now available on Google Play.
You can see a partial list of the changes in the Git log. For details on new features, check out the Chromium blog, and for details on web platform updates, check here.
If you find a new issue, please let us know by filing a bug.
Google is expanding its smart home ecosystem by launching a full-stack Gemini AI offering that integrates advanced camera intelligence, natural language queries, and daily activity summaries. This initiative provides service providers and hardware manufacturers with turnkey reference designs and APIs to build proactive, branded services without extensive research and development. Ultimately, the program aims to move beyond basic device control toward an AI-native home that can understand context and care for users' needs in real time.
At Good Work Austin, our work is about nourishing the people who nourish our city. We believe the heart of our city lies in its food and beverage scene, but that it must be equitable and accessible. Our organization, in collaboration with a network of local restaurants, is fostering sustainable careers through professional development and advocacy.
Good Work Austin is dedicated to improving healthcare access, identifying healthy workplaces, and providing culinary training for those facing barriers to employment. Our Culinary Workforce Training program is a free nine-week course that helps students find a living-wage job in the food and beverage industry. Students learn culinary skills from some of the best chefs in Austin while receiving a stipend to support themselves for the duration of the program.
In partnership with GFiber, we identified a major, often overlooked barrier to employment: the digital divide. With job applications and information available mainly online, our students need internet access to get their foot in the door. Digital equity broadens employment opportunities, while our program provides the skills to get hired.
To bridge the digital divide, GFiber funded a pilot program to equip our students with Google Chromebooks, available for them to use throughout the program and keep after graduating. These laptops allow our students to fully participate in training, build digital literacy skills, and secure employment at the end of the program.
Access to technology is a critical barrier in workforce development, and these computers have been life changing. Brianna, one of our culinary trainees, shared her experience, “Instantly, I felt special. Like the community, businesses, donors, and GWA truly cared about us and our growth. I was already invested and motivated to do well in this program and elevate my life; to have others be as invested is a true gift. Thank you to all that contributed to providing us with laptops, especially GFiber.”
Looking forward, Good Work Austin aims to continue breaking down barriers to employment. We want our students to have economic mobility in the restaurant industry, and the ability to grow within their careers. Beyond culinary training, we’re working hard to expand free healthcare access, beginning with a focused pilot program.
By combining culinary skills with digital tools and essential healthcare, we’re building a foundation where economic mobility can become a reality. As we expand our reach and programs, Good Work Austin remains committed to a future where every worker in our industry has the resources, technology, and support they need to thrive both in and out of the kitchen.
If you or someone you know would like to learn more about Good Work Austin or apply for one of our programs, visit our website at www.goodworkaustin.org.
Posted by Kara Hanaoka, Executive Director of Good Work Austin