Tag Archives: google cloud

Machine Learning Communities: Q3 ‘22 highlights and achievements

Posted by Nari Yoon, Hee Jung, DevRel Community Manager / Soonson Kwon, DevRel Program Manager

Let’s explore highlights and accomplishments of vast Google Machine Learning communities over the third quarter of the year! We are enthusiastic and grateful about all the activities by the global network of ML communities. Here are the highlights!


TensorFlow/Keras

Load-testing TensorFlow Serving’s REST Interface

Load-testing TensorFlow Serving’s REST Interface by ML GDE Sayak Paul (India) and Chansung Park (Korea) shares the lessons and findings they learned from conducting load tests for an image classification model across numerous deployment configurations.

TFUG Taipei hosted events (Python + Hugging Face-Translation+ tf.keras.losses, Python + Object detection, Python+Hugging Face-Token Classification+tf.keras.initializers) in September and helped community members learn how to use TF and Hugging face to implement machine learning model to solve problems.

Neural Machine Translation with Bahdanau’s Attention Using TensorFlow and Keras and the related video by ML GDE Aritra Roy Gosthipaty (India) explains the mathematical intuition behind neural machine translation.

Serving a TensorFlow image classification model as RESTful and gRPC based services with TFServing, Docker, and Kubernetes

Automated Deployment of TensorFlow Models with TensorFlow Serving and GitHub Actions by ML GDE Chansung Park (Korea) and Sayak Paul (India) explains how to automate TensorFlow model serving on Kubernetes with TensorFlow Serving and GitHub Action.

Deploying ? ViT on Kubernetes with TF Serving by ML GDE Sayak Paul (India) and Chansung Park (Korea) shows how to scale the deployment of a ViT model from ? Transformers using Docker and Kubernetes.

Screenshot of the TensorFlow Forum in the Chinese Language run by the tf.wiki team

Long-term TensorFlow Guidance on tf.wiki Forum by ML GDE Xihan Li (China) provides TensorFlow guidance by answering the questions from Chinese developers on the forum.

photo of a phone with the Hindi letter 'Ohm' drawn on the top half of the screen. Hinidi Character recognition shows the letter Ohm as the Predicted Result below.

Hindi Character Recognition on Android using TensorFlow Lite by ML GDE Nitin Tiwari (India) shares an end-to-end tutorial on training a custom computer vision model to recognize Hindi characters. In TFUG Pune event, he also gave a presentation titled Building Computer Vision Model using TensorFlow: Part 1.

Using TFlite Model Maker to Complete a Custom Audio Classification App by ML GDE Xiaoxing Wang (China) shows how to use TFLite Model Maker to build a custom audio classification model based on YAMNet and how to import and use the YAMNet-based custom models in Android projects.

SoTA semantic segmentation in TF with ? by ML GDE Sayak Paul (India) and Chansung Park (Korea). The SegFormer model was not available on TensorFlow.

Text Augmentation in Keras NLP by ML GDE Xiaoquan Kong (China) explains what text augmentation is and how the text augmentation feature in Keras NLP is designed.

The largest vision model checkpoint (public) in TF (10 Billion params) through ? transformers by ML GDE Sayak Paul (India) and Aritra Roy Gosthipaty (India). The underlying model is RegNet, known for its ability to scale.

A simple TensorFlow implementation of a DCGAN to generate CryptoPunks

CryptoGANs open-source repository by ML GDE Dimitre Oliveira (Brazil) shows simple model implementations following TensorFlow best practices that can be extended to more complex use-cases. It connects the usage of TensorFlow with other relevant frameworks, like HuggingFace, Gradio, and Streamlit, building an end-to-end solution.


TFX

TFX Machine Learning Pipeline from data injection in TFRecord to pushing out Vertex AI

MLOps for Vision Models from ? with TFX by ML GDE Chansung Park (Korea) and Sayak Paul (India) shows how to build a machine learning pipeline for a vision model (TensorFlow) from ? Transformers using the TF ecosystem.

First release of TFX Addons Package by ML GDE Hannes Hapke (United States). The package has been downloaded a few thousand times (source). Google and other developers maintain it through bi-weekly meetings. Google’s Open Source Peer Award has recognized the work.

TFUG São Paulo hosted TFX T1 | E4 & TFX T1 | E5. And ML GDE Vinicius Caridá (Brazil) shared how to train a model in a TFX pipeline. The fifth episode talks about Pusher: publishing your models with TFX.

Semantic Segmentation model within ML pipeline by ML GDE Chansung Park (Korea) and Sayak Paul (India) shows how to build a machine learning pipeline for semantic segmentation task with TFX and various GCP products such as Vertex Pipeline, Training, and Endpoints.


JAX/Flax

Screen shot of Tutorial 2 (JAX): Introduction to JAX+Flax with GitHub Repo and Codelab via university of Amseterdam

JAX Tutorial by ML GDE Phillip Lippe (Netherlands) is meant to briefly introduce JAX, including writing and training neural networks with Flax.


TFUG Malaysia hosted Introduction to JAX for Machine Learning (video) and Leong Lai Fong gave a talk. The attendees learned what JAX is and its fundamental yet unique features, which make it efficient to use when executing deep learning workloads. After that, they started training their first JAX-powered deep learning model.

TFUG Taipei hosted Python+ JAX + Image classification and helped people learn JAX and how to use it in Colab. They shared knowledge about the difference between JAX and Numpy, the advantages of JAX, and how to use it in Colab.

Introduction to JAX by ML GDE João Araújo (Brazil) shared the basics of JAX in Deep Learning Indaba 2022.

A comparison of the performance and overview of issues resulting from changing from NumPy to JAX

Should I change from NumPy to JAX? by ML GDE Gad Benram (Portugal) compares the performance and overview of the issues that may result from changing from NumPy to JAX.

Introduction to JAX: efficient and reproducible ML framework by ML GDE Seunghyun Lee (Korea) introduced JAX/Flax and their key features using practical examples. He explained the pure function and PRNG, which make JAX explicit and reproducible, and XLA and mapping functions which make JAX fast and easily parallelized.

Data2Vec Style pre-training in JAX by ML GDE Vasudev Gupta (India) shares a tutorial for demonstrating how to pre-train Data2Vec using the Jax/Flax version of HuggingFace Transformers.

Distributed Machine Learning with JAX by ML GDE David Cardozo (Canada) delivered what makes JAX different from TensorFlow.

Image classification with JAX & Flax by ML GDE Derrick Mwiti (Kenya) explains how to build convolutional neural networks with JAX/Flax. And he wrote several articles about JAX/Flax: What is JAX?, How to load datasets in JAX with TensorFlow, Optimizers in JAX and Flax, Flax vs. TensorFlow, etc..


Kaggle

DDPMs - Part 1 by ML GDE Aakash Nain (India) and cait-tf by ML GDE Sayak Paul (India) were announced as Kaggle ML Research Spotlight Winners.

Forward process in DDPMs from Timestep 0 to 100

Fresher on Random Variables, All you need to know about Gaussian distribution, and A deep dive into DDPMs by ML GDE Aakash Nain (India) explain the fundamentals of diffusion models.

In Grandmasters Journey on Kaggle + The Kaggle Book, ML GDE Luca Massaron (Italy) explained how Kaggle helps people in the data science industry and which skills you must focus on apart from the core technical skills.


Cloud AI

How Cohere is accelerating language model training with Google Cloud TPUs by ML GDE Joanna Yoo (Canada) explains what Cohere engineers have done to solve scaling challenges in large language models (LLMs).

ML GDE Hannes Hapke (United States) chats with Fillipo Mandella, Customer Engineering Manager at Google

In Using machine learning to transform finance with Google Cloud and Digits, ML GDE Hannes Hapke (United States) chats with Fillipo Mandella, Customer Engineering Manager at Google, about how Digits leverages Google Cloud’s machine learning tools to empower accountants and business owners with near-zero latency.

A tour of Vertex AI by TFUG Chennai for ML, cloud, and DevOps engineers who are working in MLOps. This session was about the introduction of Vertex AI, handling datasets and models in Vertex AI, deployment & prediction, and MLOps.

TFUG Abidjan hosted two events with GDG Cloud Abidjan for students and professional developers who want to prepare for a Google Cloud certification: Introduction session to certifications and Q&A, Certification Study Group.

Flow chart showing shows how to deploy a ViT B/16 model on Vertex AI

Deploying ? ViT on Vertex AI by ML GDE Sayak Paul (India) and Chansung Park (Korea) shows how to deploy a ViT B/16 model on Vertex AI. They cover some critical aspects of a deployment such as auto-scaling, authentication, endpoint consumption, and load-testing.

Photo collage of AI generated images

TFUG Singapore hosted The World of Diffusion - DALL-E 2, IMAGEN & Stable Diffusion. ML GDE Martin Andrews (Singapore) and Sam Witteveen (Singapore) gave talks named “How Diffusion Works” and “Investigating Prompt Engineering on Diffusion Models” to bring people up-to-date with what has been going on in the world of image generation.

ML GDE Martin Andrews (Singapore) have done three projects: GCP VM with Nvidia set-up and Convenience Scripts, Containers within a GCP host server, with Nvidia pass-through, Installing MineRL using Containers - with linked code.

Jupyter Services on Google Cloud by ML GDE Gad Benram (Portugal) explains the differences between Vertex AI Workbench, Colab, and Deep Learning VMs.

Google Cloud's Two Towers Recommender and TensorFlow

Train and Deploy Google Cloud's Two Towers Recommender by ML GDE Rubens de Almeida Zimbres (Brazil) explains how to implement the model and deploy it in Vertex AI.


Research & Ecosystem

WOMEN DATA SCIENCE, LA PAZ Club de lectura de papers de Machine Learning Read, Learn and Share the knowledge #MLPaperReadingClubs, Nathaly Alarcón, @WIDS_LaPaz #MLPaperReadingClubs

The first session of #MLPaperReadingClubs (video) by ML GDE Nathaly Alarcon Torrico (Bolivia) and Women in Data Science La Paz. Nathaly led the session, and the community members participated in reading the ML paper “Zero-shot learning through cross-modal transfer.”

In #MLPaperReadingClubs (video) by TFUG Lesotho, Arnold Raphael volunteered to lead the first session “Zero-shot learning through cross-modal transfer.”

Screenshot of a screenshare of Zero-shot learning through cross-modal transfer to 7 participants in a virtual call

ML Paper Reading Clubs #1: Zero Shot Learning Paper (video) by TFUG Agadir introduced a model that can recognize objects in images even if no training data is available for the objects. TFUG Agadir prepared this event to make people interested in machine learning research and provide them with a broader vision of differentiating good contributions from great ones.

Opening of the Machine Learning Paper Reading Club (video) by TFUG Dhaka introduced ML Paper Reading Club and the group’s plan.

EDA on SpaceX Falcon 9 launches dataset (Kaggle) (video) by TFUG Mysuru & TFUG Chandigarh organizer Aashi Dutt (presenter) walked through exploratory data analysis on SpaceX Falcon 9 launches dataset from Kaggle.

Screenshot of ML GDE Qinghua Duan (China) showing how to apply the MRC paradigm and BERT to solve the dialogue summarization problem.

Introduction to MRC-style dialogue summaries based on BERT by ML GDE Qinghua Duan (China) shows how to apply the MRC paradigm and BERT to solve the dialogue summarization problem.

Plant disease classification using Deep learning model by ML GDE Yannick Serge Obam Akou (Cameroon) talked on plant disease classification using deep learning model : an end to end Android app (open source project) that diagnoses plant diseases.

TensorFlow/Keras implementation of Nystromformer

Nystromformer Github repository by Rishit Dagli provides TensorFlow/Keras implementation of Nystromformer, a transformer variant that uses the Nyström method to approximate standard self-attention with O(n) complexity which allows for better scalability.

Extending support for App Engine bundled services (Module 17)

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

Background

App Engine initially launched in 2008, providing a suite of bundled services making it convenient for applications to access a database (Datastore), caching service (Memcache), independent task execution (Task Queue), Google Sign-In authentication (Users), or large "blob" storage (Blobstore), or other companion services. However, apps leveraging those services can only run their apps on App Engine.

To increase app portability and help Google move towards its goal of having the most open cloud on the market, App Engine launched its 2nd-generation service in 2018, initially removing those legacy services. The newer platform allows developers to upgrade apps to the latest language runtimes, such as moving from Python 2 to 3 or Java 8 to 11 (and today, Java 17). One of the major drawbacks to the 1st-generation runtimes is that they're customized, proprietary, and restrictive in what you can use or can't.

Instead, the 2nd-generation platform uses open source runtimes, meaning ability to follow standard development practices, use common/known idioms, and have fewer restrictions of 3rd-party libraries, and obviating the need to copy or "vendor" them with your code. Unfortunately, to use these newer runtimes, migrating away from App Engine services were required because while you could upgrade language releases, there was no access to bundled services, breaking apps or requiring complete rewrites, making it a showstopper for many users.

Due to their popularity and the desire to ease the upgrade process for customers, the App Engine team restored access to most (but not all) of those services in Fall 2021. Today's Serverless Migration Station video demonstrates how to continue usage of bundled services available to Python 3 developers.

Showing App Engine users how to use bundled services on Python 3


Performing the upgrade

Modernizing the typical Python 2 App Engine app looks something like this:
  1. Migrate from the webapp2 framework (not available in Python 3)
  2. Port from Python 2 to 3, preserve use of bundled services
  3. Optional migration to Cloud standalone or similar 3rd-party services

The first step is to move to a standard Python web framework like Flask, Django, Pyramid, etc. Below is some pseudocode from Migration Module 1 demonstrating how to migrate from webapp2 to Flask:

codeblocks for porting Python 2 sample app from webapp2 to Flask
Step 1: Port Python 2 sample app from webapp2 to Flask

The key changes are bolded in the above code snippets. Notice how the App Engine NDB code [the Visit class definition plus store_visit() and fetch_visits() functions] are unaffected by this web framework migration. The full webapp2 code sample can be found in the Module 0 repo folder while the completed migration to Flask sample is located in the Module 1 repo folder.

After your app has ported frameworks, you're free to upgrade to Python 3 while preserving access to the bundled services if your app uses any. Below is pseudocode demonstrating how to upgrade the same sample app to Python 3 as well as the code changes needed to continue to use App Engine NDB:

codeblocks for porting sample app to Python 3, preserving use of NDB bundled service
Step 2: Port sample app to Python 3, preserving use of NDB bundled service

The original app was designed to work under both Python 2 and 3 interpreters, so no language changes were required in this case. We added an import of the new App Engine SDK followed by the key update wrapping the WSGI object so the app can access the bundled services. As before, the key updates are bolded. Some updates to configuration are also required, and those are outlined in the documentation and the (Module 17) codelab.

The NDB code is also left untouched in this migration. Not all of the bundled services feature such a hands-free migration, and we hope to cover some of the more complex ones ahead in Module 22. Java, PHP, and Go users have it even better, requiring fewer or no code changes at all. The Python 2 Flask sample is located in the Module 1 repo folder, and the resulting Python 3 app can be found in the Module 1b repo folder.

The immediate benefit of step two is the ability to upgrade to a more current version of language runtime. This leaves the third step of migrating off the bundled services as optional, especially if you plan on staying on App Engine for the long-term.


Additional options

If you decide to migrate off the bundled services, you can do so on your own timeline. It should be a consideration should you ever want to move to modern serverless platforms such as Cloud Functions or Cloud Run, to lower-level platforms because you want more control, like GKE, our managed Kubernetes service, or Compute Engine VMs.

Step three is also where the rest of the Serverless Migration Station content may be useful:

*code samples and codelabs available; videos forthcoming

As far as moving to modern serverless platforms, if you want to break apart a large App Engine app into multiple microservices, consider Cloud Functions. If your organization has added containerization as part of your software development workflow, consider Cloud Run. It's suitable for apps if you're familiar with containers and Docker, but even if you or your team don't have that experience, Cloud Buildpacks can do the heavy lifting for you. Here are the relevant migration modules to explore:


    Wrap-up

    Early App Engine users appreciate the convenience of the platform's bundled services, and after listening to user feedback, adding them back to 2nd-generation runtimes is another way we can help developers modernize their apps. Whether upgrading to newer language runtimes to stay on App Engine and continue to use its bundled services, migrating to Cloud standalone products, or shifting to other serverless platforms, the Google Cloud team aims to provide the tools to help streamline your modernization efforts.

    All Serverless Migration Station content (codelabs, videos, source code [when available]) can be accessed at its open source repo. While our content initially focuses on Python users, the Cloud team is working on covering other language runtimes, so stay tuned. Today's video features a special guest to provide a teaser of what to expect for Java. For additional video content, check out the broader Serverless Expeditions series.

    Dev Library Letters: 14th Issue

    Posted by Garima Mehra, Program Manager

    ‘Google Dev Library letters’ is curated to bring you some of the best projects developed with Google tech that have been submitted to the Dev Library platform. We hope this brings you the inspiration you need for your next project!


    Android



    Image-compressor 
    by Vinod Baste

    Check out Vinod’s Android Image compress library that helps reduce the size of the image by 90% without losing any of its pixels.


    SealedX 
    by Jaewoong Eum

    Learn how to auto-generate extensive sealed classes and interfaces for Android and Kotlin.

    Flutter



    GitHub Actions to deploy
    Flutter Web to gh-pages
     
    by Sai Rajendra Immadi

    Tired of manually deploying the app every time? Or do you want to deploy your flutter web applications to gh-pages? Use this blog as your guide.



    Double And Triple Dots in Flutter 
    by Lakshydeep Vikram

    Learn the reason for using double and triple dots in flutter and where to use them.



    Machine Learning



    Nystromformer 
    by Rishit Dagli

    Learn how to use the Nystrom method to approximate standard self-attention. 


    Google Cloud



    by Ezekias Bokove

    Learn how to set up a notification system for Cloud Run services. 



    Switch to GCP for cost savings and better performance
    by Gaurav Madan

    Learn why architects dealing with complex application design and who use well-known Google services should consider the Google Cloud Platform. 




    "The Google community includes people with diverse backgrounds. No matter what an individual circumstance is, the platform should support anyone to explore and be creative. We encourage authors to boldly consider diverse backgrounds and to be inclusive when authoring."

    Vinesh Prasanna M

    Customer Engineer | Google Cloud 





    "Authoring a good code sample is hard. The difficulty comes from the additional pieces you need to add to your respository to keep the code sample fresh and appealing to your developers."

    Brett Morgan

    Developer Relations Engineer | Flutter







    Want to read more? 
    Check out the latest projects and community-authored content by visiting Google Dev Library
    Submit your projects to showcase your work and inspire developers!


    Google Cloud Next: Tech predictions that might surprise you

    Our favorite pastimes at Google Cloud are imagining and building. We like to help organizations think about their biggest opportunities, and then offer technology to help them get there. It's about giving companies access to technology so they can better serve their customers — like helping Ford create connected cars and helping H&M Group optimize their supply chain. It’s also about offering new ways for employees to work together using Google Workspace, with all of the applications they know and love (like Gmail, Docs, Drive, Calendar and Meet).

    This week at Google Cloud Next, our annual developer and tech leader event, we’ll be diving into everything we are building. Our theme is “Today meets tomorrow,” and we'll be sharing the latest and greatest cloud technologies for organizations around the world. In this year’s opening keynote (October 11, 9 a.m. Pacific), Google Cloud CEO Thomas Kurian will share what’s new today in data, AI, infrastructure, security, collaboration and sustainability. Then, for a look into the future, we’re putting our experts on stage at 10 a.m. Pacific to make 10 cloud predictions for 2025. Tune in to learn how artificial intelligence will get us to a four-day work week (!) and how you can build applications without any coding experience.

    Graphic showing Top 10 Cloud Technology Predictions preview, with pictures of various people speaking at the keynote

    The Predictions keynote will air live as part of Innovator’s Hive @ Google Cloud Next, our developer community with localized events in Sunnyvale, California, Mexico City, Tokyo, Munich, and Bengaluru, India. One of my favorite parts about the 2022 version of Cloud Next is that we are localizing our programming for audiences around the globe, so tune in wherever and whenever for our 24-hour livestream.

    Sports and tech are merging

    Google Cloud Next will also bring a new-ish sport to developers. With the baseball playoff season underway, AI and data analytics is making sports even more exciting, and we’re helping MLB create personalized fan experiences and help the winning Golden State Warriors become “Data Champions.” But that reflects a broader global trend: sports and tech are merging. This includes rapidly growing sports that many people have never heard of, like drone racing.

    What is drone racing, you ask? Imagine strapping on a headset that feeds you the live view from an actual, miniature aircraft that you pilot through the air at speeds of up to 120 mph. Skim above the seats of an empty stadium, navigate through glowing gates at varying heights, and zip through narrow tunnels — all ahead of your fellow pilots (if you’re skilled enough).

    Drone racing has gained massive momentum since its inception in 2011. With its mix of the virtual and the physical, drone racing already feels like a sport of tomorrow. Starting this year, a partnership between Google Cloud and the Drone Racing League (DRL) will advance it even further as engineers on both sides collaborate on new developments in the sport.

    At Next ‘22, developers of all skill levels can get a taste of the action through immersive learning experiences using Google Cloud’s data and analytics services with real race data from DRL.

    Participants in the Google Cloud Fly Cup Challenge can predict race outcomes and give their best tips to pilots in the hopes of enhancing their season performance. Participants will also compete for a chance to win an all-expenses-paid trip to the season finale of the DRL World Championship Race and be crowned the champion on stage.Register on our website to join the race to become the DRL champion today.

    Find out what’s new and what’s next

    Join us October 11 at Google Cloud Next to hear from industry experts about the latest cloud technology trends. Learn about new solutions, engage with peers and even get in a bit of drone racing.

    Delivering on our $1B commitment in Africa

    Last year our CEO, Sundar Pichai, announced that Google would invest $1 billion in Africa over the next five years to support a range of initiatives, from improved connectivity to investment in startups, to help boost Africa’s digital transformation.

    Africa’s internet economy has the potential to grow to $180 billion by 2025 – 5.2% of the continent’s GDP. To support this growth, over the last year we’ve made progress on helping to enable affordable access and on building products for every African user – helping businesses build their online presence, supporting entrepreneurs spur next-generation technologies, and helping nonprofits to improve lives across the continent.

    We’d like to share how we’re delivering on our commitment and partnering with others – policymakers, non-profits, businesses and creators – to make the internet more useful to more people in Africa.

    Introducing the first Google Cloud region in Africa

    Today we’re announcing our intent to establish a Google Cloud region in South Africa – our first on the continent. South Africa will be joining Google Cloud’s global network of 35 cloud regions and 106 zones worldwide.

    The future cloud region in South Africa will bring Google Cloud services closer to our local customers, enabling them to innovate and securely deliver faster, more reliable experiences to their own customers, helping to accelerate their growth. According to research by AlphaBeta Economics for Google Cloud, the South Africa cloud region will contribute more than a cumulative USD 2.1 billion to the country’s GDP, and will support the creation of more than 40,000 jobs by 2030.

    Image shows Director for Cloud in Africa, Niral Patel, next to a heading that announces Google's intent to establish its first Cloud region in Africa

    Niral Patel, Director for Cloud in Africa announces Google's intention to establish Google's first Cloud region in Africa

    Along with the cloud region, we are expanding our network through the Equiano subsea cable and building Dedicated Cloud Interconnect sites in Johannesburg, Cape Town, Lagos and Nairobi. In doing so, we are building full scale Cloud capability for Africa.

    Supporting African entrepreneurs

    We continue to support African entrepreneurs in growing their businesses and developing their talent. Our recently announced second cohort of the Black Founders Fund builds on the success of last year’s cohort, who raised $97 million in follow-on funding and have employed more than 500 additional staff since they were selected. We’re also continuing our support of African small businesses through the Hustle Academy and Google Business Profiles, and helping job seekers learn skills through Developer Scholarships and Career Certifications.

    We’ve also continued to support nonprofits working to improve lives in Africa, with a $40 million cash and in-kind commitment so far. Over the last year this has included:

    • $1.5M investment in Career Certifications this year bringing our total Google.org funding to more than $3M since 2021
    • A $3 million grant to support AirQo in expanding their work monitoring air quality from Kampala to ten cities in five countries on the continent;
    • A team of Googlers who have joined the Tony Elumelu Foundation for 6 months, full-time and pro-bono. The team helped build a new training web and app interface to support the next million African entrepreneurs to grow and fund their businesses.

    Across all our initiatives, we continue to work closely with our partners – most recently with the UN to launch the Global Africa Business Initiative (GABI), aimed at accelerating Africa’s economic growth and sustainable development.

    Building more helpful products for Africa

    We recently announced plans to open the first African product development centre in Nairobi. The centre will develop and build better products for Africans and the world.

    Today, we’re launching voice typing support for nine more African languages (isiNdebele, isiXhosa, Kinyarwanda, Northern Sotho, Swati, Sesotho, Tswana, Tshivenda and Xitsonga) in Gboard, the Google keyboard – while 24 new languages are now supported on Google Translate, including Lingala, which is spoken by more than 45 million people across Central Africa.

    To make Maps more useful, Street View imagery in Kenya, South Africa, Senegal and Nigeria has had a refresh with nearly 300,000 more kilometres of imagery now helping people virtually explore and navigate neighbourhoods. We’re also extending the service to Rwanda, meaning that Street View is now available in 11 African countries.

    In addition to expanding the AI Accra Research Centre earlier this year, theOpen Buildings Project, which mapped buildings across the African continent using machine learning and satellite imagery, is expanding to South and Southeast Asia and is a great example of the AI centre creating solutions for Africa that are useful across the world.

    Delivering on our promise

    We remain committed to working with our partners in building for Africa together, and helping to unlock the benefits of the digital economy for more people by providing useful products, programmes and investments. We’re doing this by partnering with African organisations, businesses and entrepreneurs. It’s the talent and drive of the individuals in the countries, communities and businesses of Africa that will power Africa’s economic growth.

    Source: Translate


    Meet three Asia-Pacific schools evolving digital education

    Access to education is one of the most important enablers for a child’s future success. School resources can often be limited, especially with the sudden shift to remote learning during COVID. Our team works on creating digital solutions for schools to provide a great learning experience for students, whether it’s collaborating across countries or keeping track of academic records.

    Increasingly, we’re seeing schools around the world adopt tools like Chromebooks and Google Workspace for Education, transforming the ways teachers deliver lessons, and students learn. And, Asia-Pacific is home to some of the largest user bases for these tools. Let’s meet three teachers from Thailand, Japan, and Australia who have adopted Google for Education tools. 

    Tell us about your school, and its mission.

    Pradchayakorn Hodmalee, Deputy Director, Princess Chulabhorn Science High School Loei: We’re a science-focused school in Thailand where students collaborate on projects with peers from affiliate schools across Thailand and Japan. We create our own standardized curriculum, for which our teachers regularly travel from different regions to meet and jointly design syllabuses and exams. We also take pride in organizing overseas immersion trips to Japan for our students.

    Emil Zankov, Leader of Innovation and Enterprise, Pedare Christian College: We’re located in Golden Grove, South Australia. We focus on ‘bringing industry to the classroom’ - and work hard to build an environment where teamwork, friendly competition, and the messy play of learning are at the forefront. These are things that happen out in the real world, and are what the industry looks at when it comes to hiring.

    Shinsuke Nakamura, English teacher, Kochi Prefectural Sakawa High School: We’re located in Kochi prefecture, in a small sunny town on Japan’s Shikoku island. Kochi recognizes that students have different motivations and ambitions. So our vision is to create a personalized journey of learning for every student throughout their lifelong education, even as they leave our school and start at a new one.

    Why did you start using Google for Education tools?

    Emil: What Google for Education tools allow teachers to do is really focus on what they want their students to learn, while the technology sits in the background. We chose Workspace and Chromebooks because of their simplicity and reliability. Knowing that they are going to work time and time again is critical as teachers have very little patience when it comes to technology. In addition, Google’s cloud solutions allow students to easily share their work, which helps them focus on creating content rather than dealing with tech difficulties.

    Pradchayakorn: With the pandemic’s travel restrictions, in-person meetings among teachers and student trips to Japan had to be canceled. So we quickly rolled out Workspace to enable teachers to continue communicating and working closely with their peers through tools like Google Meet, Drive and Forms. It’s actually more efficient, as teachers no longer have to commute to another province for meetings. To replace the immersion trip to Japan, we used Workspace tools to organize a four-month-long collaborative project with an affiliate school in Japan. We wanted to ensure our students still have the opportunity to work with peers from overseas and learn from others who may not be similar to them.

    Shinsuke: Our vision of seamless, personalized learning meant that we needed to keep digital records of our students’ daily learnings through their elementary, junior high and high schools, so that teachers can continuously track their progress and help them work towards their personal goals. To help with that, the Kochi Prefectural Board of Education gives a Chromebook to every student in its public schools, which are sturdy, secure and easy to use. We also deploy Google Workspace for Education Plus and Cloud solutions in our school to help teachers easily access their students’ records and tailor their teaching methods for each student.

    Photo of student smiling and looking at a Chromebook screen

    In one sentence, what does the future of education look like for you?

    Shinsuke: If high schools could see what these students have learned (in elementary and junior high) and the achievements they’ve made each year, we can create a seamless journey of learning.

    Pradchayakorn: Schools will be less and less about learning in a fixed physical setting, and classrooms will no longer have restrictions on how many students can attend.

    Emil: It’s having the industry and students collaborate on real-world problems, breaking the notion that the real world is only outside of school.

    Google Cloud & Kotlin GDE Kevin Davin helps others learn in the face of challenges

    Posted by Kevin Hernandez, , Developer Relations Community Manager

    Kevin Davin speaking at the SnowCamp Conference in 2019

    Kevin Davin has always had a passion for learning and helping others learn, no matter their background or unique challenges they may face. He explains, “I want to learn something new every day, I want to help others learn, and I’m addicted to learning.” This mantra is evident in everything he does from giving talks at numerous conferences to helping people from underrepresented groups overcome imposter syndrome and even helping them become GDEs. In addition to learning, Kevin is also passionate about diversity and inclusion efforts, partly inspired by navigating the world with partial blindness.

    Kevin has been a professional programmer for 10 years now and has been in the field of Computer Science for about 20 years. Through the years, he has emphasized the importance of learning how and where to learn. For example, while he learned a lot while he was studying at a university, he was able to learn just as much through his colleagues. In fact, it was through his colleagues that he picked up lessons in teamwork and the ability to learn from people with different points of view and experience. Since he was able to learn so much from those around him, Kevin also wanted to pay it forward and started volunteering at a school for people with disabilities. Guided by the Departmental Centers for People with Disabilities, the aim of the program is to teach coding languages and reintegrate students into a technical profession. During his time at this center, Kevin helped students practice what they learned and ultimately successfully transition into a new career.

    During these experiences, Kevin was always involved in the developer community through open-source projects. It was through these projects that he learned about the GDE program and was connected to Google Developer advocates. Kevin was drawn to the GDE program because he wanted to share his knowledge with others and have direct access to Google in order to become an advocate on behalf of developers. In 2016, he discovered Kubernetes and helped his company at the time move to Google Cloud. He always felt like this model was the right solution and invested a lot of time to learn it and practice it. “Google Cloud is made for developers. It’s like a Lego set because you can take the parts you want and put it together,” he remarked.

    The GDE program has given him access to the things he values most: being a part of a developer community, being an advocate for developers, helping people from all backgrounds feel included, and above all, an opportunity to learn something new every day. Kevin’s parting advice for hopeful GDEs is: “Even if you can’t reach the goal of being a GDE now, you can always get accepted in the future. Don’t be afraid to fail because without failure, you won’t learn anything.” With his involvement in the program, Kevin hopes to continue connecting with the developer community and learning while supporting diversity efforts.

    Learn more about Kevin on Twitter & LinkedIn.

    The Google Developer Experts (GDE) program is a global network of highly experienced technology experts, influencers, and thought leaders who actively support developers, companies, and tech communities by speaking at events and publishing content.

    Migrating from App Engine Blobstore to Cloud Storage (Module 16)

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

    Introduction and background

    The most recent Serverless Migration Station video demonstrated how to add use of the App Engine's Blobstore service to a sample Python 2 App Engine app, kicking off the first of a 2-part series on migrating away from Blobstore. In today's Module 16 video, we complete this journey, arriving at Cloud Storage. Moving away from proprietary App Engine services like Blobstore makes apps more portable, giving them enough flexibility to:


    Showing App Engine users how to migrate to Cloud Storage

    As described previously, a Blobstore for Python 2 dependency on webapp made the Module 15 content more straightforward to implement if it was still using webapp2. To completely modernize this app here in Module 16, the following migrations should be carried out:

    • Migrate from webapp2 (and webapp) to Flask
    • Migrate from App Engine NDB to Cloud NDB
    • Migrate from App Engine Blobstore to Cloud Storage
    • Migrate from Python 2 to Python (2 and) 3

    Performing the migrations

    Prior to modifying the application code, a variety of configuration updates need to be made. Updates applying only to Python 2 feature a "Py2" designation while those migrating to Python 3 will see "Py3" annotations.

    1. Remove the built-in Jinja2 library from app.yaml—Jinja2 already comes with Flask, so remove use of the older built-in version which may possibly conflict with the contemporary Flask version you're using. (Py2)
    2. Use of Cloud client libraries (such as those for Cloud NDB and Cloud Storage) require a pair of built-in libraries, grpcio and setuptools, so add those to app.yaml (Py2)
    3. Remove everything in app.yaml except for a valid runtime (Py3)
    4. Add Cloud NDB and Cloud Storage client libraries to requirements.txt (Py2 & Py3)
    5. Create an appengine_config.py supporting both built-in (those in app.yaml) and non built-in (those in requirements.txt) libraries used (Py2)

    The Module 15 app already migrated away from webapp2's (Django) templating system to Jinja2. This is useful when migrating to Flask because Jinja2 is Flask's default template system. Switching from App Engine NDB to Cloud NDB is fairly straightforward as the latter was designed to be mostly compatible with the original. The only change visible in this sample app is to move Datastore calls into Python with blocks.

    The most significant changes occur when moving the upload and download handlers from webapp to Cloud Storage. The video and corresponding codelab go more in-depth into the necessary changes, but in summary, these are the updates required in the main application:

    1. webapp2 is replaced by Flask. Instead of using the older built-in version of Jinja2, use the version that comes with Flask.
    2. App Engine Blobstore and NDB are replaced by Cloud NDB and Cloud Storage, respectively.
    3. The webapp Blobstore handler functionality is replaced by a combination of the io standard library module plus components from Flask and Werkzeug. Furthermore, the handler classes and methods are replaced by Flask functions.
    4. The main handler class and corresponding GET and POST methods are all replaced by a single Flask function.

    The results

    With all the changes implemented, the original Module 15 app still operates identically in Module 16, starting with a form requesting a visit artifact followed by the most recents visits page:
    The sample app's artifact prompt page

    The sample app's most recent visits page.

    The only difference is that four migrations have been completed where all of the "infrastructure" is now taken care of by non-App Engine legacy services. Furthermore, the Module 16 app could be either a Python 2 or 3 app. As far as the end-user is concerned, "nothing happened."

    Migrating sample app from App Engine Blobstore to Cloud Storage

    Wrap-up

    Module 16 featured four different migrations, modernizing the Module 15 app from using App Engine legacy services like NDB and Blobstore to Cloud NDB and Cloud Storage, respectively. While we recommend users move to the latest offerings from Google Cloud, migrating from Blobstore to Cloud Storage isn't required, and should you opt to do so, can do it on your own timeline. In addition to today's video, be sure to check out the Module 16 codelab which leads you step-by-step through the migrations discussed.

    In Fall 2021, the App Engine team extended support of many of the bundled services to 2nd generation runtimes (that have a 1st generation runtime), meaning you are no longer required to migrate to Cloud Storage when porting your app to Python 3. You can continue using Blobstore in your Python 3 app so long as you retrofit the code to access bundled services from next-generation runtimes.

    If you're using other App Engine legacy services be sure to check out the other Migration Modules in this series. All Serverless Migration Station content (codelabs, videos, source code [when available]) can be accessed at its open source repo. While our content initially focuses on Python users, the Cloud team is working on covering other language runtimes, so stay tuned. For additional video content, check out our broader Serverless Expeditions series.

    Google Dev Library Letters — 12th Issue

    Posted by Garima Mehra, Program Manager

    ‘Google Dev Library Letters’ is curated to bring you some of the latest projects developed with Google tech submitted to Google Dev Library Platform. We hope this brings you the inspiration you need for your next project!


    Android

    Shape your Image: Circle, Rounded Square, or Cuts at the corner in Android by Sriyank Siddhartha

    Using the MDC library, shape images in just a few lines of code by using ShapeableImageView.


    Foso/Ktorfit by Jens Klingenberg

    HTTP client / Kotlin Symbol Processor for Kotlin Multiplatform (Js, Jvm, Android, Native, iOS) using KSP and Ktor clients inspired by Retrofit.

    These Lionesses have byte – could analytics help them lift the trophy?

    On Sunday, England will face Germany in the final act of this summer’s tournament—one that has pitted the top teams from across Europe against one another, and inspired a generation.

    It will take grit, determination and a stunning backheel here or there for England to win. But technology plays a part too. The Football Association’s partnership with Google Cloud has been a vital part of the picture for the lead up to the competition, giving coaches and performance staff access to data and processing muscle that help it select the best squad available at any one time.

    The FA’s Player Performance System (PPS) is a central component of Helix—an application and development suite developed by The FA. Helix has been hosted on Google Cloud for the last five years and is used by the Technical Directorate staff associated with both the England women’s and men’s football teams. It provides them with secure access to databases, processes, functions, and compute resources that analyse large volumes of data. It also integrates with visualisation tools to give coaches and performance staff multiple views of data that provides unique insightscustomised to end users’ requirements.

    This data can include anything from player profiles, to scouting reports, to medical information, to club and international fixtures and results. It also brings in research from metrics pulled from wearable devices, which track players’ training volume and intensity, to allow coaches to better manage their workloads. Coaches also have access to players’ sleep, nutrition, recovery, and mental health data.

    “What it allows our users to do is pull together disparate information that they may not be used to seeing side-by-side. This helps us to generate new insights, and hopefully give us an edge when it comes to competitions,” said Craig Donald, CIO at The FA.

    Helix provides multi-dimensional insight

    Helix tracks more than 3,500 professional footballers and stores more than 22 million player data points collected from competitive games and training sessions. The platform relies on various Google Cloud tools, glued together by a complex microservice system, which is used to update the data being collected, analysed, and stored. Google Cloud Storage is also used to host The FA’s video archives of competitive games. As many as 400 games a day make their way into The FA database, each one creating up to a 5GB file size and 600MB of video tracking data.

    Image of three Lioness football players with the middle one holding a football.  Data points are circled in yellow, red and blue howcasing how Google Cloud technology is used to look at performance.

    This means the FA has faster, more convenient access to data, plus greater insight into player and team performance, which can aid in both the selection and choice of tactics in any given fixture. The additional power and capacity of the GCP hosting infrastructure helps The FA quickly and cost effectively scale up its analytics capabilities to handle additional data sets during forthcoming competitions.

    It often seems in football that everybody has their own idea of the best players to pick and the tactics to adopt. But the combination of granular data metrics and cloud architecture deployed by The FA and Google Cloud might actually give a genuine expert the knowledge to back up those opinions.

    But does it mean the Lionesses will win on Sunday? Tune in to find out.