Category Archives: Google Developers Blog

News and insights on Google platforms, tools and events

Cloud NDB to Cloud Datastore migration

Posted by Wesley Chun (@wescpy), Developer Advocate, Google Cloud

An optional migration

Serverless Migration Station is a mini-series from Serverless Expeditions focused on helping users on one of Google Cloud's serverless compute platforms modernize their applications. The video today demonstrates how to migrate a sample app from Cloud NDB (or App Engine ndb) to Cloud Datastore. While Cloud NDB suffices as a current solution for today's App Engine developers, this optional migration is for those who want to consolidate their app code to using a single client library to talk to Datastore.

Cloud Datastore started as Google App Engine's original database but matured to becoming its own standalone product in 2013. At that time, native client libraries were created for the new product so non-App Engine apps as well as App Engine second generation apps could access the service. Long-time developers have been using the original App Engine service APIs to access Datastore; for Python, this would be App Engine ndb. While the legacy ndb service is still available, its limitations and lack of availability in Python 3 are why we recommend users switch to standalone libraries like Cloud NDB in the preceding video in this series.

While Cloud NDB lets users break free from proprietary App Engine services and upgrade their applications to Python 3, it also gives non-App Engine apps access to Datastore. However, Cloud NDB's primary role is a transition tool for Python 2 App Engine developers. Non-App Engine developers and new Python 3 App Engine developers are directed to the Cloud Datastore native client library, not Cloud NDB.

As a result, those with a collection of Python 2 or Python 3 App Engine apps as well as non-App Engine apps may be using completely different libraries (ndb, Cloud NDB, Cloud Datastore) to connect to the same Datastore product. Following the best practices of code reuse, developers should consider consolidating to a single client library to access Datastore. Shared libraries provide stability and robustness with code that's constantly tested, debugged, and battle-proven. Module 2 showed users how to migrate from App Engine ndb to Cloud NDB, and today's Module 3 content focuses on migrating from Cloud NDB to Cloud Datastore. Users can also go straight from ndb directly to Cloud Datastore, skipping Cloud NDB entirely.

Migration sample and next steps

Cloud NDB follows an object model identical to App Engine ndb and is deliberately meant to be familiar to long-time Python App Engine developers while use of the Cloud Datastore client library is more like accessing a JSON document store. Their querying styles are also similar. You can compare and contrast them in the "diffs" screenshot below and in the video.

The diffs between the Cloud NDB and Cloud Datastore versions of the sample app

The "diffs" between the Cloud NDB and Cloud Datastore versions of the sample app

All that said, this migration is optional and only useful if you wish to consolidate to using a single client library. If your Python App Engine apps are stable with ndb or Cloud NDB, and you don't have any code using Cloud Datastore, there's no real reason to move unless Cloud Datastore has a compelling feature inaccessible from your current client library. If you are considering this migration and want to try it on a sample app before considering for yours, see the corresponding codelab and use the video for guidance.

It begins with the Module 2 code completed in the previous codelab/video; use your solution or ours as the "START". Both Python 2 (Module 2a folder) and Python 3 (Module 2b folder) versions are available. The goal is to arrive at the "FINISH" with an identical, working app but using a completely different Datastore client library. Our Python 2 FINISH can be found in the Module 3a folder while Python 3's FINISH is in the Module 3b folder. If something goes wrong during your migration, you can always rollback to START, or compare your solution with our FINISH. We will continue our Datastore discussion ahead in Module 6 as Cloud Firestore represents the next generation of the Datastore service.

All of these learning modules, corresponding videos (when published), codelab tutorials, START and FINISH code, etc., can be found in the migration repo. We hope to also one day cover other legacy runtimes like Java 8 and others, so stay tuned. Up next in Module 4, we'll take a different turn and showcase a product crossover, showing App Engine developers how to containerize their apps and migrate them to Cloud Run, our scalable container-hosting service in the cloud. If you can't wait for either Modules 4 or 6, try out their respective codelabs or access the code samples in the table at the repo above. Migrations aren't always easy, and we hope content like this helps you modernize your apps.

Meet some of the best indie game devs

Posted by Patricia Correa, Director, Global Developer Marketing

During the month of June we received thousands of submissions for two of our annual developer programs - the Indie Games Accelerator and the Indie Games Festival. These programs support the growth of small games studios on Google Play.

Every year we’re impressed with the art and creativity of the entries. This year was no exception. Many thanks to everyone who submitted their game.

Meet the Festival finalists

Today, we’re announcing the finalists of the Festivals in Europe, Japan, and South Koreadrumroll, please.

Indie Games

Europe

Beat Workers by NaturalPad Games, France

Bird Alone by George Batchelor, United Kingdom

Cats in Time by Pine Studio, Croatia

Figment by Bedtime Digital Games, Denmark

Froglike: The Frog Roguelike by Jimjum Studios, Israel

Garson by Anastasiya Shabunia, Belarus

Gumslinger by Itatake, Sweden

Lyxo by Emoak, Austria

Psychofunk by Tommy Søreide Kjær, Norway

Railways by Infinity Games, Portugal

Sticky Terms by kamibox, Germany

Sweet Sins Superstars by Platonic Games, Spain

Tiny Robots Recharged by Big Loop Studios, Bulgaria

Tofu Drifter by Roach Games, Russia

Towers by JOX Development, Ukraine

Unholy Adventure by Dali Games, Poland

Warplane Inc by Nuclear Games, Russia

Watch Me Stream My Mental Breakdown by Ultaan Games, Poland

Woof: The Good Boy Story by CHPV.GAMES, Russia

Zen Symmetry by 8tbl, Russia

Sign up to attend the European finals.

Indie Games

Japan

3D Chess: NOCCA NOCCA by Curiouspark, Inc.

5colors in Nate by NekodoraSoft

Amabie san by HARAPECORPORATION Inc.

Archer Battle Online by Takuya Fujieda

Cthulhu DreamStairs by Tenyu

ElectriarCode by ELECTRIAR LABO

Escape from the Closed Circle by Hanachiru

Heart of Sengoku by ZEN APP

Leaving Two Tiles Dojo by ScreenPocket

Living in the Ending World by illuCalab.

MAKOTO WAKAIDO’s Case Files “Executioner’s Wedge” by HafHaf-Oden(Sukashiuma-LAB)

Mini Mini Farm by CoffeeBreak

MonohakobiPro by CGO

Mousebusters by Odencat

Numpurr Card Wars by Nukenin

Parasite Days by Zxima

Quantum Transport by ruccho

Super Glitter Rush by tiny cactus studio

Survivor's guilt by aso

Wolf Chess by Baton

Sign up to attend the Japanese finals.

Indie Games

South Korea

Angel Saga by Alchemist Games Inc.

Animal Card Royale by Banjihagames

Animal Doll Shop by Funnyeve

BattleLive: Zombie&Human by PLOTRICK

Box It Up! Inc. by team TAPE

CATS & SOUP by HIDEA

Cats are Cute: Pop Time by kkiruk studio

Detective Mio by 1N1

Dicast: Rules of Chaos by BSS COMPANY

Forest Island by Nanali Studios

Frontier of Fortune by Dotomchi Games Inc.

FUNKYGUNNER by FUNKY5

Group Project Simulator! by Studio806

Gun Tactics by Gimle Games

Hybrid Warrior: Dungeon of the Overlord by Cat Lab

Metro Blossom by The Sane Studio

Portal Dungeon by Oblique Line

Rush Hour Rally by Soen Games

The Way Home by CONCODE

Titan Slayer by Touchholic

Sign up to attend the South Korean finals.

Join the adventure on September 4

This year the three Festivals are virtual, so everyone has the chance to explore the games, meet the developers who made them, cheer them on, and be the first to hear who the winners are.

Expect plenty of fun and some very special surprises. So, don’t miss out. Sign up now to virtually attend the events showcasing the finalists from Europe, Japan, and South Korea. The events are free to attend and will all take place in the same space, so sign up to one and you will be able to teleport to all events!

How about the Indie Games Accelerator?

If you’re interested in knowing which developers are joining the 2021 class of the Indie Games Accelerator, sign up to attend the European Festival, where we will also announce the selected developers.

Indie Games

#IamaGDE: Evgeny Kot

Welcome to #IamaGDE - a series of spotlights presenting Google Developer Experts (GDEs) from across the globe. Discover their stories, passions, and highlights of their community work.

His first computer was a black market device created from parts of a Nintendo gaming system. When he was 15 he got his first real computer but with no tech support available he had to learn everything himself. Soon after he earned his first 100 bucks by helping update an interactive map on his friend’s website. Today, he is an extremely active developer in Russia and internationally, an organizer of one of biggest conferences in Russia, such as DartUp (for Dart and Flutter), HolyJS (for Web), a YouTube podcaster producing Pyjamatalks series and a fierce DEI and women in tech advocate, supporting a number of initiatives including the Russian edition of Google's Women Developer Academy.

Meet Evgeny Kot, Google Developer Expert in Web, Dart and Flutter.

GDE Evgeny Kot

GDE Evgeny Kot

THE EARLY DAYS

During his school days, Evgeny had two big passions - love for music and love for computers. He enjoyed playing music a lot but has eventually made a decision to do programming full time. The beginnings weren’t always easy. In his first job, he had plenty of ideas for optimization and process improvement. He asked his boss for permission to rewrite the company’s entire software from C to C++. Granted an approval he attempted this challenge but things didn’t go as planned and the project failed completely. As he admitted himself, sometimes learning from mistakes can be a more valuable experience than succeeding at something the first time. Fortunately his boss was also of a similar opinion!

“My first manager became a true mentor for me. He taught me a lot.”

THE RUSSIAN DEV MARKET

The Russian dev market is enormous and extremely saturated. There are many Russian developers who don't see the need of working in English or another foreign language because the core of their work is with and for Russian companies. Evgeny didn't want to do that - he wanted to get exposed to the international market, understand how things are getting done elsewhere, learn other things from developers from different backgrounds. His first international experience was working at Dell.

I enjoyed it a lot and learned a ton. I was lucky to step outside of the Russian bubble and see how other teams work internationally.

This experience has eventually brought him to a front end developer role at Wrike. In fact, he is still with the company, currently working as Director of Development in the Prague office.

The one thing that he enjoys most about it is the independence that it gives him. It was only during his time at Wrike, when Evgeny started working with Dart.

Image of Evgeny at Saint Teamlead Conference 2018

BEGINNINGS OF DART

When Evgeny joined Wrike, there were only eight people working in front end. The leadership was looking to expand the company and grow their product. At that time, they only used JavaScript. As much as Dart was their preferred language, the infrastructure wasn’t fully developed yet, which is where Evgeny stepped in. Together with the team, he rewrote their whole product from JavaScript to Dart.

Image of Evgeny giving a public talk about the benefits of shifting to Dart

Evgeny giving a public talk about the benefits of shifting to Dart

“Before Flutter’s success in 2015, Dart had a pretty bad reputation. There was no Dart dev community, and those rare enthusiasts who did use Dart did not share their knowledge in any way.”

Dart was launched in 2011 and went into stable release in 2013. But then the ecosystem wasn't ready for a lot of attention, a lot of things still needed to be finalized. That's why, in his view, many developers got discouraged by their first encounters with this technology.

“Nevertheless, it did attract a few guys, including me. We decided to create a channel for Dart-related discussions and with time, we invited more and more people to join, creating an actual community. There are now over 6,000 of us in this chat room!”

Despite a complicated history, Dart has taken its place in the tech world. Back then, it was a great choice for Web development and now it has shifted into the truly all-in-one “swiss army knife” language. Evgeny’s company, Wrike, relies on Web technology, with the main service being a high-load SAAS solution. Therefore performance, code size and ease of development were the main criteria for choosing a development language.

“Dart compiled to Javascript was the best choice. Nowadays, the Web world is highly diverse, so choosing the right technology is not a simple task!”

Based on strong connections with local web communities, they decided to build a community around Dart language (and Flutter in the future). They became Dart Up - a large international IT community. It’s not a surprise at all that Dart has been attracting so many developers over the past years. Without it, Wrike would truly not have been as successful as it currently is.

DART UP!

Dart Up started as a meetup.

“There were about 30 of us at the beginning, we would meet in my office and share ideas, discuss, brainstorm.”

Evgeny and a couple of other Dart enthusiasts wanted to create a space for a knowledge exchange, bringing together people who used the same language and putting them together into a social setting. The event got so popular that soon after they had to move it to a larger venue.

“We raised some money, rented a hall, and set up a projector. That's how the first DartUP came about. We even brewed our own Dart beer!”

Image of home-brewed beer by Wrike and Dart

Special perk: home-brewed beer by Wrike & Dart

“But time passed and the community grew. And then we decided: "Since the big conferences don't really want to talk about Dart, why don't we do something like that ourselves?”

And so they did! They started to invite more and more speakers and they had a number of interesting talks and workshops. Eventually they even hosted Michael Thomsen, the manager of Dart from Google at one of their sessions! The meetup has currently over 700 regulars, including a number of international developers.

Becoming a GDE

With his achievements, engagements and a true evangelistic approach to Dart, his GDE badge was only a matter of time. It accelerated after he got invited to speak at an international Google Dart conference in Los Angeles, California. After the conference, a friend of his referred him to the program and he decided to apply. He admits that being a GDE is a big responsibility and being a community leader can be stressful at times. However, being on the program has also allowed him to share his ideas, get exposed to new opportunities and connect with a network of incredible developers.

Turns out that "spreading the word" is not only helpful for community development, but it's fun too! So many new people! Without noticing it, I went to most of the major conferences in Russia, and I even gave some talks in English, which I thought I could never ever do.”

FINAL ADVISE FROM EVGENY TO FELLOW DEVELOPERS

“The journey begins with one step. Don’t over-focus on the end goal. “

Evgeny during the AmsterdamJS conference - his first non-Russian appearance

Evgeny during the AmsterdamJS conference - his first non-Russian appearance

Evgeny at a conference

Click here for more information on Web, Flutter and Dart.

For more information on Google Developer Experts, visit our website.

Watch more on Evgeny and his story here!

Solution Challenge Winner Update: Samuel’s mission to get children vaccinated in Uganda

Posted by Aniedi Udo-Obong, Sub-Saharan Africa Regional Lead, Google Developer Communities

Samuel Mugisha has been very busy since we first shared his story in 2019. Back then, Samuel was a university student from Uganda who was inspired to create a mobile Immunization Calculator app to help keep track of children’s vaccinations after he saw his community using handwritten paper cards that were difficult to read and keep intact. Samuel kicked his idea into gear by forming a team with friends from GDSC Muni University, and they ended up winning the 2019 Google Developer Student Clubs Solution Challenge. The Solution Challenge is an annual event hosted by Google developers, inviting students from all over the world to develop solutions for local community problems using Google technology. Thanks to their win, Samuel and his team secured office space in Uganda and got up to speed with crucial tools like Android, Firebase, and Presto, with mentorship from some of Africa’s best at Google and other companies, as well as Google Developer Group community organizers.

Still, their project was in its earliest stages of development, and Samuel had a long way to go on the path to fixing a flawed healthcare system.

The immunization tracker’s progress

Fast forward to today, and Samuel and his team have made huge strides in building out the functionalities of their Immunization Calculator app. Lately, they’ve been working to increase the number of vaccinations the app can track and expanding to include other vaccines as well. These important updates will bring Samuel one step closer to his goal of increasing tracking and vaccinations of infants and children under a year old. Samuel and his team are also putting extra focus on improving functionality and user experience, making it easier than ever for parents to use the app to track their children’s vaccination status.

Vaccine tracking in-app

Thanks to the mentorship they received from Google Developer Experts as Solution Challenge winners, Samuel’s team was able to embed SMS messaging capabilities directly into the app. With this new functionality, the app now has the ability to remind parents to schedule their child’s next vaccine, and can provide accurate dosing information.

Vaccine reminder text alerts

In the app’s initial phase, the team relied on a simple user interface using NativeScript integrated to run on Gradle in Android Studio. Through mentorship, they found that implementing Kotlin instead was a more stable option that ran on most mobile devices. Since 2019, Felix Egaru, the core developer behind the project, has done a lot of work to add more features using Firebase. The app uses Firebase Authentication to authorize system users, Firebase Cloud Messaging to send push notifications, and Cloud Firestore to securely store user data. It also includes coverage and dropout rates, dosing instructions, and other important information thanks to Firebase. All of these new features let users access the data they need to make informed decisions about getting vaccinated. In a country with remote areas that have little to no internet access, Firebase’s offline capabilities have also proved vital for allowing healthcare workers to use the app in the field regardless of internet connectivity.

An app user joins the team

Despite all their progress, Samuel and his team still lacked the help they needed to get the app out into the world for real-time testing. Enter Kabagweri Fionah, a busy parent and small business owner who had started using Samuel’s app to keep track of her son’s vaccinations. She first discovered the Immunization Calculator app after seeing the Solution Challenge online and learning about the finalists.

Fionah immediately saw the app’s potential and knew that it could go a long way towards making a real difference in people’s lives, so she reached out to Samuel directly to see if she could join the team and help get the app out into the world. Not long after, Fionah was hired as a public relations officer, tasked with handling marketing, advocacy, and communications efforts to grow the app even further.

Kabagweri Fionah and Samuel Mugisha

Fionah joined the team at just the right time. Through her outreach efforts, Samuel and his team gained access to a local hospital in Kampala where they could actually put the Immunization Calculator to the test. Beyond just spreading the word, testing at the hospital helped them identify and fix bugs in the system and prepare their app for future, larger-scale testing. Recently, Samuel and his team reached an even bigger milestone. Thanks to Fionah’s persistence, the team was given an opportunity to deploy their project at the biggest health center in Kyegegwa District. Samuel and his team are currently working to raise funds so that they can complete a full year of system testing at the center.

Samuel at the health center in Kyegegwa District

As Samuel explains, Google Developer Student Clubs has helped his team get their foot in the door all along the way:

“Mentioning that the project was globally awarded by the GDSC program prompts someone's attention to listen to the innovation, and this has helped us during the pitching.”




Setting himself up for success

Samuel credits the Solution Challenge and Google Developer Student Clubs for helping him transform his brilliant idea into a life-changing application. He puts it best when explaining why winning the Solution Challenge was such a huge motivation for him and his team.

“It gave us a tremendous understanding of what we had on our laptops and how much it can save children's lives out there.”

Thanks to Google Developer Student Clubs, Samuel found a team of bold thinkers with the same passion to help others, and the drive to turn an idea into reality. Google Developer Experts were crucial in helping them bring the app’s functionalities to the next level. Samuel and his peers were given access to the tools they needed to grow: Coursera, Qwiklabs, Pluralsight, and Google Cloud credits to polish their development skills.

This year’s Solution Challenge Demo Day is right around the corner on August 26th, where the top 10 finalists will showcase their projects to Google and developers around the world live on YouTube for a chance to be named one of the final 3 winning teams. Samuel knows what the pressure feels like, and he’s got some great advice for the current finalists:

“Be the mastermind of your project and dwell most on the change or impact it can bring to the world. Not how big it is, or how expensive it is, or how technical it is. Success is not final and failure is not fatal. Identify what went wrong, correct and implement it, then prepare for another shot.”

Thanks to Samuel’s focus on the goal and drive to make a difference, he and his team are well on their way to making healthcare more accessible for Ugandans in his community and beyond. Google Developer Student Clubs are perfect for building solutions to help your community with other students who share your passion. Equip yourself with the knowledge you need to bring your best idea to life. Click here to find a Google Developer Community Student Club community near you.

Incarcerated people learn to code: How one community organizer is changing lives

Posted by Kubra Zengin, North America Regional Lead, Google Developer Groups

When asked to speak to a room full of incarcerated individuals about becoming developers, Danny Thompson didn’t bat an eye. Danny is an experienced software engineer and community organizer for Google Developer Groups Memphis.

But for the first ten years of his professional career, he worked in a gas station frying chicken. If anyone knows how to beat the odds and choose a different path in life, it’s him.

(Left) Danny Thompson working in a gas station (Right) At work in the tech industry

Danny Thompson is a big believer in the power of community. Over the years, he’s grown a vast network of thousands of aspiring developers, tech industry professionals, and career development experts through the Google Developer Group community and across social media. So it was no surprise when Danny was contacted to speak at an event hosted by Persevere, a non-profit that teaches justice-involved individuals how to code and helps them find careers as developers. By teaching skills like programming, Persevere has seen a decrease in recidivism rates. Through their job placement efforts, they are helping those that get out, stay out.

For Danny, signing up to help out was an easy decision. His biggest motivator in life is helping others succeed, no matter their hardships or where they come from.

“If someone wants to learn, that’s someone I want to help. Simple as that.”

In March of last year, Danny spoke to a room full of incarcerated people at the non-profit’s secure facility in Memphis, Tennessee. Incarcerated individuals from Tennessee prisons are brought to this offsite location for hands-on training with coding instructors. For hours, Danny taught Javascript concepts, gave career guidance, and shared his best tips for growing in the tech industry with program participants.

Thanks to Danny’s role as community organizer for GDG Memphis, he was able to share many learning materials that came directly from Google Developer Group events. Those enrolled in the program were also given access to Google Developer Group events online to help them learn new concepts and network with other developers.

Danny recognizes how difficult it can be for incarcerated individuals to reenter society without a helping hand and the skills they need to attain a well-paying job. As a result, many previously incarcerated people return to prison because they are unable to find employment and have higher chances of falling back into bad habits. But when they learn to code, recidivism rates drop dramatically.

Program participants continue learning at a transition center in Memphis, Tennessee

Anyone can be a developer

Danny knows what it’s like to not fit the mold of a typical developer. After working ten years as a fry cook at a gas station, he never considered that transitioning to a career in technology was even possible. However, everything changed for Danny when he began attending Google Developer Group meetups.

“There are zero chances I would have made it in this industry if it wasn’t for meetups.“

By networking with other developers, Danny gained the skills he needed to grow his early interest in coding into actual opportunity. Fast forward to today, and Danny is using his connection to Google Developer Groups to break barriers for anyone and everyone interested in pursuing a career in the tech industry. As an organizer for GDG Memphis, Danny designs mentorship opportunities with experts in the tech industry and hosts meetups that connect aspiring developers to hiring managers. Through opportunities just like these, Danny has helped over 600 people land jobs in tech, and he’s not stopping anytime soon.

GDG Memphis meetup event

“Your beginning doesn’t have to be your end. You do not have to be defined by the set of circumstances you’ve walked into.”

It’s never too late to join your local Google Developer Group. Learn new skills, advance your career, and meet other developers who share your interests. Anyone interested in tech is welcome, and joining is completely free.

To find your local chapter, click here.

Announcing our second Google for Startups Accelerator: Black Founders cohort

Posted by Jason Scott, Head of Startup Developer Ecosystem, USA

Head shots of 2 people. One male and one female

Last year, 12 inspiring entrepreneurs kicked off the inaugural Google for Startups Accelerator for Black Founders. Throughout the three month program, founders met weekly to work on growing their startups and solving tough technical challenges. “There’s so much happening every single day as a startup,” says Ashley Edwards, founder of MindRight Health, whose startup is making mental healthcare accessible to people of color and low-income families. “The program helped us navigate everything from protecting our team from distractions to building out our machine learning and data science models.”

This August, we’ll launch the second Google for Startups Accelerator for Black Founders with 11 more incredible Black-led startups from across North America. This class features startups using technology to solve challenges in medicine, education, water sustainability, real estate, and more:

GIF of Black Founders class

Acclinate (Birmingham, Alabama, USA): A digital health startup using culture and tech to source diverse participants for clinical trials.

Adapdix (Pleasanton, California, USA): An AI/ML startup that works with large industrial semiconductor, electronic and assembly companies.

AllHere Education (Boston, Massachusetts, USA): Fosters student attendance and supports families and students with mobile messaging powered by AI.

Chatdesk (New York, New York, USA): Uses machine learning to scale support teams with the click of a button.

DOSS (Houston, Texas, USA): A digital, voice-activated real estate marketplace that empowers consumers to speak, text or type questions about properties nationwide and receive accurate, easy answers instantly.

Fêtefully (Dallas, Texas, USA): Digitizes wedding planning experiences, allowing planners to generate greater revenue and improve their offerings to customers.

Mommy Monitor (Toronto Ontario, Canada): A maternal care services platform that provides an easily accessible and culturally safe range of services that gives parents extra support customized to their particular needs and wants.

Optimal Technical Corporation (Atlanta, Georgia, USA): Intelligently eliminates electricity waste, lowers operational expenses, and helps to save the planet.

Sugar (Los Angeles, California, USA): Provides software to building owners and managers to transform the residential experience.

Varuna (Chicago, Illinois, USA): The leading water distribution system monitoring company providing real-time visibility, awareness and insights to water systems enabling optimal operations and consumer safety.

Zirtue (Dallas, Texas, USA): The world's first relationship-based lending application that simplifies loans between friends, family and trusted relationships while giving borrowers the option to pay creditors directly using their borrowed funds.

We are incredibly excited to support this group of founders over the next three months and beyond, connecting them with the best of our people, products, and programming to advance their companies and solutions.

Be sure to join us as we showcase their accomplishments on Thursday, October 21 from 12:30pm - 2:00pm EST at our Google for Startups Accelerator: Black Founders Demo Day 2021.

Migrating from App Engine ndb to Cloud NDB

Posted by Wesley Chun (@wescpy), Developer Advocate, Google Cloud

Migrating to standalone services

Today we're introducing the first video showing long-time App Engine developers how to migrate from the App Engine ndb client library that connects to Datastore. While the legacy App Engine ndb service is still available for Datastore access, new features and continuing innovation are going into Cloud Datastore, so we recommend Python 2 users switch to standalone product client libraries like Cloud NDB.

This video and its corresponding codelab show developers how to migrate the sample app introduced in a previous video and gives them hands-on experience performing the migration on a simple app before tackling their own applications. In the immediately preceding "migration module" video, we transitioned that app from App Engine's original webapp2 framework to Flask, a popular framework in the Python community. Today's Module 2 content picks up where that Module 1 leaves off, migrating Datastore access from App Engine ndb to Cloud NDB.

Migrating to Cloud NDB opens the doors to other modernizations, such as moving to other standalone services that succeed the original App Engine legacy services, (finally) porting to Python 3, breaking up large apps into microservices for Cloud Functions, or containerizing App Engine apps for Cloud Run.

Moving to Cloud NDB

App Engine's Datastore matured to becoming its own standalone product in 2013, Cloud Datastore. Cloud NDB is the replacement client library designed for App Engine ndb users to preserve much of their existing code and user experience. Cloud NDB is available in both Python 2 and 3, meaning it can help expedite a Python 3 upgrade to the second generation App Engine platform. Furthermore, Cloud NDB gives non-App Engine apps access to Cloud Datastore.

As you can see from the screenshot below, one key difference between both libraries is that Cloud NDB provides a context manager, meaning you would use the Python with statement in a similar way as opening files but for Datastore access. However, aside from moving code inside with blocks, no other changes are required of the original App Engine ndb app code that accesses Datastore. Of course your "YMMV" (your mileage may vary) depending on the complexity of your code, but the goal of the team is to provide as seamless of a transition as possible as well as to preserve "ndb"-style access.

The difference between the App Engine ndb and Cloud NDB versions of the sample app

The "diffs" between the App Engine ndb and Cloud NDB versions of the sample app

Next steps

To try this migration yourself, hit up the corresponding codelab and use the video for guidance. This Module 2 migration sample "STARTs" with the Module 1 code completed in the previous codelab (and video). Users can use their solution or grab ours in the Module 1 repo folder. The goal is to arrive at the end with an identical, working app that operates just like the Module 1 app but uses a completely different Datastore client library. You can find this "FINISH" code sample in the Module 2a folder. If something goes wrong during your migration, you can always rollback to START, or compare your solution with our FINISH. Bonus content migrating to Python 3 App Engine can also be found in the video and codelab, resulting in a second FINISH, the Module 2b folder.

All of these learning modules, corresponding videos (when published), codelab tutorials, START and FINISH code, etc., can be found in the migration repo. We hope to also one day cover other legacy runtimes like Java 8 and others, so stay tuned! Developers should also check out the official Cloud NDB migration guide which provides more migration details, including key differences between both client libraries.

Ahead in Module 3, we will continue the Cloud NDB discussion and present our first optional migration, helping users move from Cloud NDB to the native Cloud Datastore client library. If you can't wait, try out its codelab found in the table at the repo above. Migrations aren't always easy; we hope this content helps you modernize your apps and shows we're focused on helping existing users as much as new ones.

#IamaGDE: Homing Tam

#IamaGDE series presents: Google Maps

Welcome to #IamaGDE - a series of spotlights presenting Google Developer Experts (GDEs) from across the globe. Discover their stories, passions, and highlights of their community work.

image of GDE, Homing Tam

Homing Tam is a product manager at Lalamove, an on-demand logistics company. He started at the company as a product manager focusing on location-based systems, talking with developers and business users to enhance the company’s mapping solutions, before moving into product management. Now, Homing handles corporate solutions; takes care of people who want to integrate with his company’s systems; handles the API side of things to help make integration easier; and provides recommendations for developers and other technical teammates.

Becoming a Maps developer

Homing studied geomatics and computing at university, and his 2009 thesis was based on Google’s API backend. His dissertation focused on using the Google Maps API to perform mapping and overlay. His first full-time job was as a GIS analyst at Esri, the largest private software company in the world. A year and a half later, he became a solutions consultant for a different company, helping customers interested in integrating Google Maps with their software.

image of developer community meetup

Getting involved in the developer community

After Homing got involved in the Google Technology User Group (now known as Google Developer Groups), his boss at the time told him about the Google Developer Experts program. For his interview, Homing presented a product using the Google Maps APIs. When he became a GDE, he gave presentations and talks in the greater China region as a surrogate for the Google Maps Platform team. Homing is currently one of the organizers for GDG Hong Kong, organizing and giving community talks.

Favorite Maps features and current projects

Homing says the Maps Styling Wizard, the precursor to the newer Cloud-based Maps Styling features, is one of his favorite features.

“Cartography, which I studied in college, matters a lot, especially to a simple black and white schematic map, or when matching the theme of a map to a site,” he says. “I like that feature a lot.”

In 2020, Homing gave one talk on Android in the Android 11 Meetup and another talk on Maps at the first-ever virtual Hong Kong Devfest, and he’s ready to do more speaking.

“It had been a while since I gave a talk on maps, and the launch of Cloud-based Maps Styling is so exciting that I feel like it’s time to do some presentations and let the community know more about it. Beyond knowing how to use the API, you need to know how you can make the most of the API.”

Homing notes that this year, in particular, more small business owners need to know how to collect customer addresses, allow customers to place on-demand delivery orders, and update customers.

image from GDG developer community meetup in Hong Kong

In 2021, in addition to giving more talks, Homing hopes to work with the GDG organizers in Hong Kong to plan a hackathon or otherwise teach community members more about the new Maps features.

“Can we make an MVP or a really initial stage cycling app to use as a base to explore the new features and use different Google components?’

As his career continues, Homing says he has two priorities: progressing as a product manager and leveraging technology, including maps, to improve lives.

“This year was a year for everyone to become digitally literate,” he says. “With the extra time we spend on technology, we should make good use of technology to make life better.”

For more information on Google Maps Platform, visit our website.

For more information on Google Developer Experts, visit our website.

How students built a web app with the potential to help frontline workers

Posted by Erica Hanson, Global Program Manager, Google Developer Student Clubs

Image of Olly and Daniel from GDSC at Wash U.

Image of Olly and Daniel from Google Developer Student Clubs at Wash U.

When Olly Cohen first arrived on campus at Washington University in St. Louis (Wash U), he knew the school was home to many talented and eager developers, just like him. Computer science is one of the most popular majors at Wash U, and graduates often find jobs in the tech industry. With that in mind, Olly was eager to build a community of peers who wanted to take theories learned in the classroom and put them to the test with tangible, real-life projects. So he decided to start his own Google Developer Student Club, a university-based community group for students interested in learning about Google developer technology.

Olly applied to become Google Developer Student Club Lead so he could start his own club with a faculty advisor, host workshops on developer products and platforms, and build projects that would give back to their community.

He didn’t know it at the time, but starting the club would eventually lead him to the most impactful development project of his early career — building a web application with the potential to help front-line healthcare workers in St. Louis, Missouri, during the pandemic.

Growing a community with a mission

The Google Developer Student Club grew quickly. Within the first few months, Olly and the core team signed up 150 members, hosted events with 40 to 60 attendees on average and began working on five different projects. One of the club’s first successful projects, led by Tom Janoski, was building a tool for the visually impaired. The app provides audio translations of visual media like newspapers and sports games.

This success inspired them to focus their projects on social good missions, and in particular helping small businesses in St. Louis. With a clear goal established, the club began to take off, growing to over 250 members managed by 9 core team members. They were soon building 10 different community-focused projects, and attracting the attention of many local leaders, including university officials, professors and organizers.

Building a web app for front-line healthcare workers

As the St. Louis community began to respond to the coronavirus pandemic in early 2020, some of the leaders at Wash U wondered if there was a way to digitally track PPE needs from front-line health care staff at Wash U’s medical center. The Dean of McKelvey School of Engineering reached out to Olly Cohen and his friend Daniel Sosebee to see if the Google Developer Student Club could lend a hand.

The request was sweeping: Build a web application that could potentially work for the clinical staff of Wash U’s academic hospital, Barnes-Jewish Hospital.

So the students got right to work, consulting with Google employees, Wash U computer science professors, an industry software engineer, and an M.D./Ph.D. candidate at the university’s School of Medicine.

With the team assembled, the student developers first created a platform where they could base their solution. Next, they built a simple prototype with a Google Form that linked to Google Sheets, so they could launch a pilot. Lastly, in conjunction with the Google Form, they developed a serverless web application with a form and data portal that could let all staff members easily request new PPE supplies.

In other words, their solution was showing the potential to help medical personnel track PPE shortages in real time digitally, making it easier and faster to identify and gather the resources doctors need right away. A web app built by students poised to make a true difference, now that is what the Google Developer Student Club experience is all about.

Ready to make a difference?

Are you a student who also wants to use technology to make a difference in your community? Click here to learn more about joining or starting a Google Developer Student Club near you.