|
| 1 | +--- |
| 2 | +title: Its the final countdown |
| 3 | +date: |
| 4 | + created: 2026-06-08 |
| 5 | + updated: 2026-06-09 |
| 6 | +authors: |
| 7 | + - practicalli |
| 8 | +categories: |
| 9 | + - practicalli |
| 10 | +tags: |
| 11 | + - clojure |
| 12 | + - artificial-intelligence |
| 13 | + - google |
| 14 | +draft: true |
| 15 | +--- |
| 16 | + |
| 17 | +Its the Dragon Ride at the weekend and I am almost over the flu that knocked me out for the last week or so. I had some [trouble with a heart rate monitor](#cycling), but managed to resolve the issue. |
| 18 | + |
| 19 | + |
| 20 | +<!-- more --> |
| 21 | + |
| 22 | + |
| 23 | +## Cycling |
| 24 | + |
| 25 | +Last week I forgot to connect my Coospo heart rate monitor to my chest strap until a few minutes down the road. |
| 26 | + |
| 27 | +As I use my heart rate and cadence as the primary data for training, I decided to go back an get the monitor. |
| 28 | + |
| 29 | +It seems that once a ride starts on the Wahoo cycle computer, then a sensor added will not send data. I have also had this experience on the Garmin cycling computer. |
| 30 | + |
| 31 | +I tried unpairing the sensor from the Wahoo computer and then restarting the Wahoo. |
| 32 | + |
| 33 | +I was able to pair the sensor again, but no data was forthcoming. |
| 34 | + |
| 35 | +In the end I did a factory reset on the Wahoo and added the Heart Rate sensor again. This still did not work, however, I noticed something interesting. |
| 36 | + |
| 37 | +With the Coospo heart rate monitor active (connected to my chest strap wrapped around my chest), when I add a sensor and wait for 15-20 seconds then two different heart rate sensors show. |
| 38 | + |
| 39 | +This could be because the Coospo heart rate sensor sends both bluetooth and Ant+ signals simultaneously. |
| 40 | + |
| 41 | +I believe its the first sensor which appears that isnt transmitting data, but the second one did. If not sure, then connect both sensors and unpair the one that doesn't send data. |
| 42 | + |
| 43 | + |
| 44 | + |
| 45 | +## Google AI Startup school |
| 46 | + |
| 47 | +I joined the AI startup school to better understand the Google AI related services and what Google are teaching startups about Generative AI, so I have a common frame of reference should I discuss these issues with startups and other companies. |
| 48 | + |
| 49 | +Specific goals: |
| 50 | + |
| 51 | +- be able to describe briefly each Google AI related product and service |
| 52 | +- understand how to get started with each service |
| 53 | +- understand common patterns for AI related tools and services |
| 54 | + |
| 55 | + |
| 56 | +RAG = |
| 57 | +Grounding = using Google search as a a RAG? |
| 58 | + |
| 59 | +The first session was a very light set of demos but didn't really explain anything. It was trying to demonstrate the art of the possible and throw some hype around AI to get people excited - it had the opposite effect on me. |
| 60 | + |
| 61 | + |
| 62 | +### Google AI Services |
| 63 | + |
| 64 | +- Gemini - chat bot |
| 65 | +- Veoa - video generation |
| 66 | +- Nano Banana - image generating models |
| 67 | +- Anti-gravity - integrated development environment for AI agents |
| 68 | +- Google Cloud run to publish apps on google cloud |
| 69 | + |
| 70 | + |
| 71 | +### Google API Studio |
| 72 | + |
| 73 | +Google API Studio is a free tool to help create demo apps quickly. |
| 74 | + |
| 75 | +Go to dashboard in AI studio and select API keys. |
| 76 | + |
| 77 | +Select the "Create API key" button. |
| 78 | + |
| 79 | +It picked up some projects from my Google account, but I didnt recognise them. There was a Cycling Maps project and a Practicalli Study Group project, not sure where they came from. |
| 80 | + |
| 81 | +I created a new project called "Gemini Project". |
| 82 | + |
| 83 | +Then created the key called "Gemini Project " |
| 84 | + |
| 85 | +The popup shows the API key details |
| 86 | + |
| 87 | +- API Key |
| 88 | +- Name of the key |
| 89 | +- Project name (seems to be the id and not the name I gave it) |
| 90 | +- Project number (same as the name without the project qualifier) |
| 91 | + |
| 92 | +There is a button to copy an example curl command that includes the API key. |
| 93 | + |
| 94 | +```shell |
| 95 | +curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-flash-latest:generateContent" \ |
| 96 | + -H "Content-Type: application/json" \ |
| 97 | + -H "X-goog-api-key: $GOOGLE_AISTUDIO_API_KEY" \ |
| 98 | + -X POST \ |
| 99 | + -d '{ |
| 100 | + "contents": [ |
| 101 | + { |
| 102 | + "parts": [ |
| 103 | + { |
| 104 | + "text": "Explain how AI works in a few words" |
| 105 | + } |
| 106 | + ] |
| 107 | + } |
| 108 | + ] |
| 109 | + }' |
| 110 | +``` |
| 111 | + |
| 112 | +> NOTE: I replaced the key value with an environment variable defined in my shell (zsh). The curl script was updated to use double quotes, as apparently single quotes can inhibit variable substitution for the environment variable. |
| 113 | +
|
| 114 | + |
| 115 | +--- |
| 116 | +Thank you. |
| 117 | + |
| 118 | +[:globe_with_meridians: Practical.li Website](https://practical.li){target=_blank .md-button} |
| 119 | + |
| 120 | +[:fontawesome-brands-github: Practical.li GitHub Org](https://github.com/practicalli){target=_blank .md-button} |
| 121 | +[:fontawesome-brands-github: practicalli-johnny profile](https://github.com/practicalli-johnny){target=_blank .md-button} |
| 122 | + |
| 123 | +[:fontawesome-brands-mastodon: @practicalli@clj.social](https://clj.social/@practicalli){target=_blank .md-button} |
0 commit comments