Запомнилась мне одна книга, от польского, если не ошибаюсь, писателя (имени сейчас, к сожалению, не вспомню). Вернее сказать, не сам сюжет написанной в жанре фэнтэзи книжки, но положенная в основу идея оказалась неожиданно хороша и оригинальна. Смысл был в том, что всякая-разная сказочная нечисть — практически любая, без разбору и конфессиональных различий; ведьмы, лешие, бабы-яги, черти и много-много-много всякой-другой — априори должна быть занесена в реестр сил Добра, Света и Справедливости… по одной лишь простой причине: способность молниеносно перемещаться в пространстве, т. е. передавать с огромной скоростью по общемировым сетям массивы информации в любую точку известной нам области Вселенной — автоматически делает обладателя данной способности в конечном итоге приверженцем Прогресса и Демократии, противником Тоталитаризма и Тьмы.
Google API *
API, предоставляемый сервисами Google
- Новые
- Лучшие
- Все
- ≥0
- ≥10
- ≥25
- ≥50
- ≥100
Новости
Сохранение озвучки книги средствами Google TTS и python
В последнее время я полюбил слушать аудиокниги. Однако те книги, которые я хочу слушать, никто не озвучивает. Не думаю что кому то будет интересна моя драматичная история о выборе лучшего tts, проблемы в процессе написания, солнце в монитор и т.п., так что я просто представлю вам уже готовое решение.
Android in-app purchases, часть 5: серверная валидация покупок
Всем привет, я Кирилл, СТО Adapty. Я делал систему серверной валидации для наших SDK. Серверная валидация позволяет проверить подлинность покупки: устройство обращается к серверам Google за информацией, действительно ли была совершена покупка, и валидна ли она.
Сегодня расскажу про то, как её настроить для приложений на Android.
Это пятая статья из серии, посвящённой подключению покупок в приложениях на Android. Остальные доступны по ссылкам:
1. Android in-app purchases, часть 1: конфигурация и добавление в проект.
2. Android in-app purchases, часть 2: инициализация и обработка покупок.
3. Android in-app purchases, часть 3: получение активных покупок и смена подписки.
5. Android in-app purchases, часть 5: серверная валидация покупок. — Вы тут
Google Sheets API + Python. Чтение и запись с Сервисным Аккаунтом Google Cloud
Google Sheet и Sheets API - классный (простой, бесплатный и универсальный) способ организовать хранение и анализ данных получаемых от своего сервиса. При условии что этих данных не то чтобы очень много и поступают они не то чтобы очень часто.
У меня таких задач хватает и решаю я их либо на Python, либо на PHP. Сегодня возьму в руки Python и покажу как начать читать таблицы Google Sheets на Python и писать в них данные из кода с помощью Google Sheets API.
gRPC клиент. Попробуй на вкус клиент/сервер на gRPC
В прошлой статье мы разобрали, как писать сервер на gRPC. И протестировали его с помощью BloomRPC. Теперь, давайте разберем как пишется клиент. И попробуем отправлять запросы с клиента на сервер. Это будет наш первый шаг к созданию микросервисов на грпц.
В моем случае я использую многомодульный проект, но можно создать отдельный проект. Структура проекта будет примерно следующей:
Бывший сотрудник Яндекса выпустил бесплатный поисковик с блек… листами, но без рекламы
Здравствуйте, меня зовут Дмитрий Карловский и я крайне опечален качеством поиска современных поисковиков.
Например, обсуждали мы как-то в $mol-чате стоит ли делать "человеко-понятную" псевдостатику в урлах вида /snjat-dvushku/s-remontom/v-vihino
для SEO, или всё же сеошники - шарлатаны, гадающие на поисковой гуще. Решили проверить кто там у нас в топе по запросу "квартира купить однокомнатная горьковская" и получили такой результат:
Дыбенко, Лесная, Жопа Мира, всё, что угодно, только не то, что спрашивали. Первые 4 результата - нерелевантный мусор. А потом сервис самого же Яндекса. Как так получилось, что в 2к21, в эпоху машинного обучения и GPT-3, у нас получился поиск хуже, чем на заре интернета?
gRPC сервер с нуля
Всем приветы. В прошлом посте https://habr.com/en/post/565020/ мы сравнили gRPC и REST. И собственно, прежде чем писать новый сервер на gRPC, давайте попробуем понять нужен ли он нам действительно. Нашей команде была необходима кодогенерация на разные языки программирования. На эту роль не плохо подходил Swagger, Thrift и gRPC со встроенным кодогенератором. От Thrift, спустя какое-то время, пришлось отказаться, из-за его особенностей и сложностей поддержи на c# (по-моему это была основная причина отказа). Дальше был выбор между Swagger + REST и gRPC. В целом оба варианта хороши, но если мы думаем гонять много и часто данные между клиентом и сервером, то почему бы не протестировать gRPC?
Структура проекта будет выглядеть следующим образом.
Гугл финанс перестал транслировать данные российских акций — что делать? (UPD: починили)
С 5 июня 2021 года сайт гугла, и самое главное гугл таблицы - перестали отдавать данные с Московской биржи.
При попытке получить любые котировки с префиксом MCX, например для Сбербанка, формулой из гугл таблиц =GOOGLEFINANCE("MCX:SBER")
теперь всегда возвращается результат #N/A
.
А при поиске любой российской бумаги на сайте Google находятся любые рынки, кроме Московской биржи.
В этой статье я рассказываю как получать в гугл таблицу биржевые данные с помощью API Московской биржи.
Обновляемся на новую версию API Android по наставлению Google
Скоро выходит Android 12, но в этом августе уже с 11-й версии разработчикам придётся использовать новые стандарты доступа приложений к внешним файлам. Если раньше можно было просто поставить флаг, что ваше приложение не поддерживает нововведения, то скоро они станут обязательными для всех. Главный фокус — повышение безопасности.
Переход на новую версию API — довольно трудоёмкая операция, требующая больших затрат на ее поддержку при введении крупных апдейтов. Под катом расскажу немного про наш переход и возникшие при этом трудности.
Google документы станут полновесными с 1 июня. Пишем скрипт для обхода этого ограничения
Google изменяет политику хранения данных с 1 июня 2021 года. Вкратце: документы и фото теперь станут полновесными и будут учитываться в общей квоте 15Гб. К тому же, при неактивности аккаунта более двух лет, Google может удалить ваши данные.
Я часто работаю с Google документами, и при активном использовании дисковая квота закончится довольно быстро. Но есть и хорошая новость: документы, созданные до 1 июня 2021 года так и останутся невесомыми, поэтому вы не получите превышение квоты в одночасье.
У меня сразу возникла мысль сделать документов "в запас". Ниже я расскажу, как это можно осуществить, не тратя много времени и сил.
Content Indexing API: страницы, доступные в offline. Доклад с RamblerFront #9
Здравствуйте, меня зовут Антонина, я работаю frontend-разработчиком в Rambler&Co, в команде Lenta.ru.
Content Indexing API — новый инструмент от Google, показывающий, какие страницы доступны в offline-режиме. Я расскажу, как работает Content Indexing API, когда его следует использовать и как его внедряла наша команда.
Telegram бот на Firebase
В основном, про Firebase рассказывают в контексте создания приложений под IOS или Android. Однако, данный инструмент можно использовать и в других областях разработки, например при создании Telegram ботов. В этой статье хочу рассказать и показать насколько Firebase простой и удобный инструмент (а ещё и бесплатный, при разумных размерах проекта).
Google Sheets — как разноплановый помощник для непростых задач или как я делал анализатор футбольный матчей
Лежу я ночью, пытаюсь уснуть. И как обычно тысяча мыслей, и среди них я сумел зацепился за одну. А звучала она так: "почему бы не сделать анализатора футбольных матчей, где нужно будет лишь ввести участников игры и получить выборку из их статистики общей и какие-то описание, чего ждать в грядущем матче". Действительно, почему нет?!
На следующий день, когда я проснулся, я первым же делом пошел гуглить, есть ли такое сейчас, потому что что-то подсказывало, что в нашем мире это слишком банальная затея (та ладна!?). Но я то не просто хотел складывать и делить числа из статистики, мне хотелось учитывать различные факторы спортивного мероприятия, а их большое количество.
Гугл дал свой результат, впрочем как всегда. Я нашел кучу калькуляторов ставок, которые продается за 3-5к рублей, и прочие таблицы расчетов в свободном доступе. Я как бы и так помнил расчеты тоталов голов, но мне нужно было их улучшить и получить на выходе собственно целого "мага/колдуна/вангу" спортивных событий. Или хотя бы формулку, которая выдаст результат после ввода данных.
Отслеживание брошенных корзин с помощью Google Analytics: 4 простых шага
Пожалуй один из главных вопросов всех владельцев магазина на Shopify звучит как: почему покупатель бросает корзину и не совершает покупку? Представьте, если бы вы пошли в супермаркет, набрали полную тележку продуктов, но уже подойдя к кассе решили вовсе уйти из магазина, оставив сотрудников магазина в недоумении. В среднем, 70% покупателей покинет магазин, так и не купив товар, добавленный в корзину.
Очевидно то, что проблема брошенных корзин волнует многих. О причинах отказа от покупок и возможных способах избежать этого расскажем в статье.
Core Web Vitals: как Google решил оценивать сайты
Всем привет!
Сегодня поговорим о важности пользовательского взаимодействия, ведь совсем скоро придется подготовить свои сайты к максимальному ускорению загрузки. Возможно, вы уже слышали про Core Web Vitals…
В прошлом году Google начал масштабный пересмотр факторов ранжирования в поисковике, чтобы улучшить качество поисковой выдачи. И в ноябре команда Google анонсировала Core Web Vitals — новые факторы оценки качества ресурсов, которые смогут влиять на индексацию и вступят в силу в мае 2021 года. Давайте разбираться.
Создание документов на диске Google на базе событий в CRM-системах: аmoCRM и Битрикс24
Появившиеся в 2006 году сервисы Google по работе с текстовыми документами (Google Docs) и таблицами (Google Sheets), дополненные 6 лет спустя возможностями работы с виртуальным диском (Google Drive), завоевали широкую любовь пользователей, лишив компанию Microsoft сложившейся десятилетиями монополии на работу с офисным программным обеспечением.
В связи с популярностью последних часто возникает задача сделать новый или обновить существующий Google-файл в привязке к событиям в CRM-системе.
Разберемся, какие шаги необходимо выполнить, чтобы создать собственный сценарий интеграции.
SafetyNet Attestation — описание и реализация проверки на PHP
В эту тему пришлось детально погрузиться во время работы над обеспечением стандартных механизмов верификации устройств для разных мобильных платформ. Задача сводилась к разработке полноценной реализацию проверки JWS-токенов по протоколу SafetyNet на серверной стороне.
После многочасовых поисков и скрупулёзного изучения официальной документации Google решил поделиться полученным опытом. Потому что, кроме официальной документации, я нашел только отрывочные описания частных примеров реализации на разных ЯП. И ни намека на комплексное объяснение особенностей проверки по SafetyNet на сервере.
Статья будет полезна разработчикам, которые хотят подробнее разобраться с технологией верификации устройств по протоколу SafetyNet Attestation. Для изучения описательной части не обязательно знать какой-либо язык программирования. Я сознательно убрал примеры кода, чтобы сфокусироваться именно на алгоритмах проверки. Сам пример реализации на PHP сформулирован в виде подключаемой через composer библиотеки и будет описан ниже.
А в конце статьи — ссылка на разработанную мной библиотеку на PHP, которая обеспечивает полный цикл верификации JWS.
Проектирование API: почему для представления отношений в API лучше использовать ссылки, а не ключи
У нас выходит долгожданное второе издание книги "Веб-разработка с применением Node и Express".
В рамках исследования этой темы нами была найдена концептуальная статья о проектировании веб-API по модели, где вместо ключей и значений базы данных применяются ссылки на ресурсы. Оригинал — из блога Google Cloud, добро пожаловать под кат.
Как я воровал данные с пользовательских аккаунтов в Google
И как же я такое провернул? Всё началось с разработанного мной приложения. По очевидным причинам, обнародовать название я не стану. Приложение довольно нехитрое, оно рассчитано на людей, увлекающихся фитнесом, и предлагает возможности типа внесения данных о скорости во время пробежки или готовых комплексов силовых упражнений. Как и многие другие продукты, оно требует, чтобы пользователь первым делом создал аккаунт. По данным аналитики, примерно 60% людей вместо того, чтобы полностью проходить процедуру регистрации, соблазняются заманчивой кнопкой «Войти с Google».
Приложение отвечает: как мы уменьшили количество ANR-ошибок в шесть раз. Часть 1, про сбор данных
Пожалуй, одна из худших проблем, которая может случиться с вашим приложением, — ошибка ANR (Application Not Responding), когда приложение не отвечает. Если таких ошибок много, они могут негативно влиять не только на пользовательский опыт, но и на позицию в выдаче Google Play и фичеринг.
В начале прошлого года количество ANRs в приложении Badoo превышало порог “Bad Behaviour” в Google Play. Поэтому мы собрали команду для решения этой проблемы и потратили несколько месяцев, экспериментируя с разными подходами. В результате мы смогли уменьшить количество таких ошибок более чем в шесть раз.
В этой серии из двух статей я расскажу о том, как нам это удалось, что дало наибольший эффект и как вы можете использовать эти подходы в своём приложении.
В первой части мы поговорим об основах: что представляет собой ошибка ANR и как её лучше отслеживать. Если вы уже знакомы с этой темой, предлагаю перейти ко второй части, в которой я расскажу о наших способах решения этой проблемы.
Вклад авторов
-
andrei_mankevich 282.2 -
Developers_Relations 199.8 -
Jeditobe 141.0 -
alizar 121.2 -
gazdovsky 101.0 -
gasyoun 95.0 -
elliadan 94.0 -
Mairon 81.0 -
nin-jin 77.0 -
dkomarovskiy 75.0