41554 blogs · [ { "id": "01a0877d-62d2-70eb-ba49-41ad49c2e314", "title": "Sentiment analysis with few-shot prompting", "url": "https://glaforge.dev/posts/2024/07/30/sentiment-analysis-with-few-shots-prompting/", "published_at": "2024-07-30T11:06:16+00:00" }, { "id": "01a0877d-62d2-70eb-ba49-41ad49e627ce", "title": "Analyzing video, audio and PDF files with Gemini and LangChain4j", "url": "https://glaforge.dev/posts/2024/07/25/analyzing-videos-audios-and-pdfs-with-gemini-in-langchain4j/", "published_at": "2024-07-25T18:08:52+00:00" }, { "id": "01a0877d-62d2-70eb-ba49-41ad4ab6708d", "title": "Text classification with Gemini and LangChain4j", "url": "https://glaforge.dev/posts/2024/07/11/text-classification-with-gemini-and-langchain4j/", "published_at": "2024-07-11T20:26:36+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abce956fbe", "title": "Latest Gemini features support in LangChain4j 0.32.0", "url": "https://glaforge.dev/posts/2024/07/05/latest-gemini-features-support-in-langchain4j/", "published_at": "2024-07-05T09:53:30+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abcf738703", "title": "The power of embeddings: How numbers unlock the meaning of data", "url": "https://glaforge.dev/posts/2024/07/02/the-power-of-embeddings-how-numbers-unlock-the-meaning-of-data/", "published_at": "2024-07-02T07:05:07+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abd0136ae3", "title": "Functional builders in Java with Jilt", "url": "https://glaforge.dev/posts/2024/06/17/functional-builders-in-java-with-jilt/", "published_at": "2024-06-17T18:31:25+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abd0245cbd", "title": "Let's make Gemini Groovy!", "url": "https://glaforge.dev/posts/2024/06/03/lets-make-gemini-groovy/", "published_at": "2024-06-03T09:49:26+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abd0c665e9", "title": "Grounding Gemini with Web Search results in LangChain4j", "url": "https://glaforge.dev/posts/2024/05/28/grounding-gemini-with-web-search-in-langchain4j/", "published_at": "2024-05-28T05:42:43+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abd11eecba", "title": "Gemini, Google's Large Language Model, for Java Developers", "url": "https://glaforge.dev/talks/2024/05/03/gemini-google-large-language-model-for-java-developers/", "published_at": "2024-05-03T07:35:08+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abd1c8c230", "title": "Calling Gemma with Ollama, TestContainers, and LangChain4j", "url": "https://glaforge.dev/posts/2024/04/04/calling-gemma-with-ollama-and-testcontainers/", "published_at": "2024-04-03T17:02:01+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abd201a25f", "title": "Gemini codelab for Java developers using LangChain4j", "url": "https://glaforge.dev/posts/2024/03/27/gemini-codelab-for-java-developers/", "published_at": "2024-03-27T18:11:58+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abd2dff760", "title": "Visualize PaLM-based LLM tokens", "url": "https://glaforge.dev/posts/2024/02/05/visualize-palm-based-llm-tokens/", "published_at": "2024-02-05T08:44:22+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abd2f1cdfb", "title": "Image generation with Imagen and LangChain4j", "url": "https://glaforge.dev/posts/2024/02/01/image-generation-with-imagen-and-langchain4j/", "published_at": "2024-02-01T08:25:56+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abd37e4023", "title": "Serving static assets with Micronaut", "url": "https://glaforge.dev/posts/2024/01/21/serving-static-assets-with-micronaut/", "published_at": "2024-01-21T16:23:25+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abd3ccf7ac", "title": "Light Mode Bookmarlet", "url": "https://glaforge.dev/posts/2024/01/18/light-mode-bookmarlet/", "published_at": "2024-01-18T08:49:01+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abd49aec6c", "title": "Functional builder approach in Java", "url": "https://glaforge.dev/posts/2024/01/16/java-functional-builder-approach/", "published_at": "2024-01-16T07:33:32+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abd54b94e2", "title": "URL slug or how to remove accents from strings in Java", "url": "https://glaforge.dev/posts/2024/01/08/url-slug-or-how-to-remove-accents-in-java/", "published_at": "2024-01-08T09:02:47+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abd6196f0f", "title": "Gemini Function Calling", "url": "https://glaforge.dev/posts/2023/12/22/gemini-function-calling/", "published_at": "2023-12-22T17:03:43+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abd6b3831a", "title": "Visualize and Inspect Workflows Executions", "url": "https://glaforge.dev/posts/2023/12/22/visualize-and-inspect-workflows-executions/", "published_at": "2023-12-22T11:02:42+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abd6cdc728", "title": "Hands on Codelabs to dabble with Large Language Models in Java", "url": "https://glaforge.dev/posts/2023/12/18/get-hands-on-codelabs-to-dabble-with-llms/", "published_at": "2023-12-18T16:31:56+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abd7a6677a", "title": "Get Started with Gemini in Java", "url": "https://glaforge.dev/posts/2023/12/13/get-started-with-gemini-in-java/", "published_at": "2023-12-13T15:45:51+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abd83c186f", "title": "Generative AI in practice: Concrete LLM use cases in Java, with the PaLM API", "url": "https://glaforge.dev/talks/2023/11/13/gen-ai-with-palm-2-and-java/", "published_at": "2023-11-13T14:36:51+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abd9093081", "title": "Tech Watch #5 — November, 15, 2023", "url": "https://glaforge.dev/posts/2023/11/13/tech-watch-0005/", "published_at": "2023-11-13T11:33:50+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abd936ceb9", "title": "Tech Watch #4 — October, 27, 2023", "url": "https://glaforge.dev/posts/2023/10/27/tech-watch-004/", "published_at": "2023-10-27T12:06:59+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abd95ee236", "title": "Tech Watch #3 — October, 20, 2023", "url": "https://glaforge.dev/posts/2023/10/20/tech-watch-003/", "published_at": "2023-10-20T15:32:51+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abda2549b8", "title": "Tech Watch #2 — Oct 06, 2023", "url": "https://glaforge.dev/posts/2023/10/06/tech-watch-002/", "published_at": "2023-10-06T14:34:35+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abda862f7d", "title": "Client-side consumption of a rate-limited API in Java", "url": "https://glaforge.dev/posts/2023/10/02/client-side-consumption-of-a-rate-limited-api-in-java/", "published_at": "2023-10-02T20:48:39+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abdb818f46", "title": "Tech Watch #1 — Sept 29, 2023", "url": "https://glaforge.dev/posts/2023/09/29/tech-watch-001/", "published_at": "2023-09-29T14:05:13+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abdc2c44ea", "title": "Discovering LangChain4J, the Generative AI orchestration library for Java developers", "url": "https://glaforge.dev/posts/2023/09/25/discovering-langchain4j/", "published_at": "2023-09-25T17:08:04+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abdc40b272", "title": "Custom Environment Variables in Workflows", "url": "https://glaforge.dev/posts/2023/07/06/custom-environment-variables-in-workflows/", "published_at": "2023-07-06T12:44:24+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abdd0fbab1", "title": "From Bird to Elephant: Starting a New Journey on Mastodon", "url": "https://glaforge.dev/talks/2023/06/09/from-bird-to-elephant-starting-a-new-journey-on-mastodon/", "published_at": "2023-06-09T08:53:29+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abdd83d4bd", "title": "Creating kids stories with Generative AI", "url": "https://glaforge.dev/posts/2023/06/08/creating-kids-stories-with-generative-ai/", "published_at": "2023-06-08T10:12:42+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abde406673", "title": "Just a handy command-line tool", "url": "https://glaforge.dev/posts/2023/06/07/just-a-handy-command-line-tool/", "published_at": "2023-06-07T13:48:02+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abdf2da20d", "title": "Getting started with the PaLM API in the Java ecosystem", "url": "https://glaforge.dev/posts/2023/05/30/getting-started-with-the-palm-api-in-the-java-ecosystem/", "published_at": "2023-05-30T13:42:32+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abdf7b65e0", "title": "Exploring Open Location Code", "url": "https://glaforge.dev/posts/2023/03/28/exploring-open-location-code/", "published_at": "2023-03-28T07:34:17+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abdfc24ff8", "title": "cURL's --json flag", "url": "https://glaforge.dev/posts/2023/03/22/curl-s-json-flag/", "published_at": "2023-03-22T06:14:06+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abdfffc0dd", "title": "Tip: Visualize output in the Groovy Console", "url": "https://glaforge.dev/posts/2023/03/21/tip-visualize-output-in-groovy-console/", "published_at": "2023-03-21T14:00:47+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abe030a43b", "title": "Some custom VS Code settings", "url": "https://glaforge.dev/posts/2023/03/08/some-custom-vscode-settings/", "published_at": "2023-03-08T21:34:43+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abe0497c5c", "title": "New blog location", "url": "https://glaforge.dev/posts/2023/03/06/new-blog-location/", "published_at": "2023-03-06T12:30:49+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abe0f1291c", "title": "Google Cloud Workflows API automation, patterns, and best practices", "url": "https://glaforge.dev/talks/2023/02/01/google-cloud-workflows-api-automation-patterns-best-practices/", "published_at": "2023-02-01T22:31:37+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abe1dc83a6", "title": "Calculating your potential reach on Mastodon with Google Cloud Workflows orchestrating the Mastodon APIs", "url": "https://glaforge.dev/posts/2023/01/06/calculating-your-potential-reach-on-mastodon-with-google-cloud-workflows-orchestrating-the-mastodon-apis/", "published_at": "2023-01-06T17:10:20+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abe2a3d10f", "title": "Workflows patterns and best practices — Part 3", "url": "https://glaforge.dev/posts/2022/12/06/workflows-patterns-and-best-practices-part-3/", "published_at": "2022-12-06T13:12:25+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abe2c122cb", "title": "Turning a Website Into a Desktop Application", "url": "https://glaforge.dev/posts/2022/11/29/turning-a-website-into-a-desktop-application/", "published_at": "2022-11-29T11:47:19+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abe305957b", "title": "Workflows patterns and best practices — Part 2", "url": "https://glaforge.dev/posts/2022/11/28/workflows-patterns-and-best-practices-part-2/", "published_at": "2022-11-28T13:12:05+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abe3778714", "title": "Workflows patterns and best practices — Part 1", "url": "https://glaforge.dev/posts/2022/11/22/workflows-patterns-and-best-practices-part-1/", "published_at": "2022-11-22T13:11:45+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abe3d8a9ca", "title": "APIs, we have a Problem JSON", "url": "https://glaforge.dev/posts/2022/11/14/apis-we-have-a-problem-json/", "published_at": "2022-11-14T12:37:09+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abe41d23ad", "title": "Workflows Tips and Tricks", "url": "https://glaforge.dev/posts/2022/11/04/workflows-tips-and-tricks/", "published_at": "2022-11-04T13:15:43+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abe498f61d", "title": "Retrieve YouTube views count with youtubeDL, JQ, and a Docker container", "url": "https://glaforge.dev/posts/2022/10/26/retrieve-youtube-views-count-with-youtubedl-jq-and-a-docker-container/", "published_at": "2022-10-26T13:53:39+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abe595f90d", "title": "Build and deploy Java 17 apps on Cloud Run with Cloud Native Buildpacks on Temurin", "url": "https://glaforge.dev/posts/2022/10/24/build-deploy-java-17-apps-on-cloud-run-with-cloud-native-buildpacks-on-temurin/", "published_at": "2022-10-24T10:33:25+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abe5ce9578", "title": "Choreography vs orchestration in microservices and best practices", "url": "https://glaforge.dev/talks/2022/10/20/choreography-vs-orchestration-in-microservices-and-best-practices/", "published_at": "2022-10-20T20:56:33+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abe6b1bcb7", "title": "Reuse old smartphones to monitor 3D prints with WebRTC WebSockets and serverless", "url": "https://glaforge.dev/talks/2022/10/13/reuse-old-smartphones-to-monitor-3d-prints-with-webrtc-websockets-and-serverless/", "published_at": "2022-10-13T12:59:44+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abe6d1194d", "title": "A Cloud Run service in Go calling a Workflows callback endpoint", "url": "https://glaforge.dev/posts/2022/09/27/a-cloud-run-service-in-go-calling-a-workflows-callback-endpoint/", "published_at": "2022-09-27T15:02:00+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abe6d58e7c", "title": "Monitoring Website Changes with Workflows Cloud Functions and Sendgrid", "url": "https://glaforge.dev/posts/2022/09/12/monitoring-website-change-wwith-workflows-cloud-functions-and-sendgrid/", "published_at": "2022-09-12T14:53:44+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abe6f3e4c3", "title": "Some beans and gems, some snakes and elephants, with Java 17, Ruby 3, Python 3.10, and PHP 8.1 in App Engine and Cloud Functions", "url": "https://glaforge.dev/posts/2022/04/14/some-beans-and-gems-some-snakes-and-elephants-with-java-17-ruby-3-python-310-and-php-81-in-app-engine-and-cloud-functions/", "published_at": "2022-04-14T13:03:46+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abe7a12bb9", "title": "Schedule a Workflow Execution", "url": "https://glaforge.dev/posts/2022/02/09/schedule-a-workflow-execution/", "published_at": "2022-02-09T16:06:51+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abe868aa6a", "title": "Using the Secret Manager connector for Workflows to call an authenticated service", "url": "https://glaforge.dev/posts/2022/02/04/using-the-secret-manager-connector-for-workflows-to-call-an-authenticated-service/", "published_at": "2022-02-04T21:26:59+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abe8f6a77d", "title": "Upload and use JSON data in your workflow from GCS", "url": "https://glaforge.dev/posts/2022/02/03/upload-and-use-json-data-in-your-workflow-from-gcs/", "published_at": "2022-02-03T21:39:13+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abe9f05063", "title": "Sending an email with SendGrid from Workflows", "url": "https://glaforge.dev/posts/2022/02/01/sending-an-email-with-sendgrid-from-workflows/", "published_at": "2022-02-01T20:04:31+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abead17e76", "title": "Smarter Applications With Document Ai Workflows and Cloud Functions", "url": "https://glaforge.dev/posts/2022/02/01/smarter-applications-with-document-ai-workflows-and-cloud-functions/", "published_at": "2022-02-01T12:35:51+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abeb645f69", "title": "Open sourcing the App Engine Standard Java Runtime", "url": "https://glaforge.dev/posts/2022/01/26/open-sourcing-the-app-engine-standard-java-runtime/", "published_at": "2022-01-26T18:07:57+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abec4117e6", "title": "Reading in and writing a JSON file to a storage bucket from a workflow", "url": "https://glaforge.dev/posts/2022/01/21/reading-in-and-writing-a-json-file-to-a-storage-bucket-from-a-workflow/", "published_at": "2022-01-21T20:28:16+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abed19b3ee", "title": "How to get the project ID in a Java Cloud Function", "url": "https://glaforge.dev/posts/2022/01/17/how-to-get-the-project-id-in-a-java-cloud-function/", "published_at": "2022-01-17T21:20:29+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abed1ab9e9", "title": "Introducing Workflows callbacks", "url": "https://glaforge.dev/posts/2021/10/02/introducing-workflows-callbacks/", "published_at": "2021-10-03T09:38:29+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abed5df15b", "title": "Skyrocketing Micronaut microservices into Google Cloud", "url": "https://glaforge.dev/talks/2021/06/25/skyrocketing-micronaut-microservices-into-google-cloud/", "published_at": "2021-06-25T13:27:21+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abeddf86d7", "title": "Introducing New Connectors for Workflows", "url": "https://glaforge.dev/posts/2021/04/27/introducing-new-connectors-for-workflows/", "published_at": "2021-04-27T12:52:35+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abee8cb07f", "title": "Serverless: panacea or not?", "url": "https://glaforge.dev/talks/2021/03/07/serverless-panacea-or-not/", "published_at": "2021-03-07T21:36:12+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abeec8209b", "title": "Orchestrating the Pic-a-Daily serverless app with workflows", "url": "https://glaforge.dev/posts/2021/02/13/orchestrating-the-pic-a-daily-serverless-app-with-workflows/", "published_at": "2021-02-13T18:15:05+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abefb11200", "title": "Day 15 with Workflows — Built-in Cloud Logging function", "url": "https://glaforge.dev/posts/2021/02/10/day-15-with-workflows-built-in-cloud-logging-function/", "published_at": "2021-02-10T15:01:24+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abf086fa00", "title": "Day 14 with Workflows — Subworkflows", "url": "https://glaforge.dev/posts/2021/02/03/day-14-with-workflows-subworkflows/", "published_at": "2021-02-03T16:02:24+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abf0c6b5a1", "title": "Day 13 with Workflows — Logging with Cloud Logging", "url": "https://glaforge.dev/posts/2021/02/02/day-13-with-workflows-logging-with-cloud-logging/", "published_at": "2021-02-02T16:35:19+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abf1a8069d", "title": "Day 12 with Workflows — Loops and iterations", "url": "https://glaforge.dev/posts/2020/12/23/day-12-with-workflows-loops-and-iterations/", "published_at": "2020-12-23T18:00:18+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abf2292860", "title": "Day 11 with Workflows — Sleeping in a workflow", "url": "https://glaforge.dev/posts/2020/12/22/day-11-with-workflows-sleeping-in-a-workflow/", "published_at": "2020-12-22T18:05:26+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abf31e2fa4", "title": "Day 10 with Workflows — Accessing built-in environment variables", "url": "https://glaforge.dev/posts/2020/12/17/day-10-with-workflows-accessing-built-in-environment-variables/", "published_at": "2020-12-17T18:13:07+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abf3bcf8aa", "title": "Day 9 with Workflows — Deploying and executing Workflows from the command-line", "url": "https://glaforge.dev/posts/2020/12/16/day-9-with-workflows-deploying-and-executing-workflows-from-the-command-line/", "published_at": "2020-12-16T18:44:08+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abf4a5a20c", "title": "Day 8 with Workflows — Calling an HTTP endpoint", "url": "https://glaforge.dev/posts/2020/12/15/day-8-with-workflows-calling-an-http-endpoint/", "published_at": "2020-12-15T18:51:12+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abf5642f06", "title": "Day 7 with Workflows — Pass an input argument to your workflow", "url": "https://glaforge.dev/posts/2020/12/10/day-7-with-workflows-pass-an-input-argument-to-your-workflow/", "published_at": "2020-12-10T19:04:09+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abf64e12af", "title": "Day 6 with Workflows — Arrays and dictionaries", "url": "https://glaforge.dev/posts/2020/12/09/day-6-with-workflows-arrays-and-dictionaries/", "published_at": "2020-12-09T21:14:55+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abf7446e84", "title": "Day 5 with Workflows — Visualizing the structure of your workflow definition", "url": "https://glaforge.dev/posts/2020/12/08/day-5-with-workflows-visualizing-the-structure-of-your-workflow-definition/", "published_at": "2020-12-08T21:26:13+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abf81e1bab", "title": "Day 4 with Workflows — Jumping with switch conditions", "url": "https://glaforge.dev/posts/2020/12/04/day-4-with-workflows-jumping-with-switch-conditions/", "published_at": "2020-12-04T21:50:12+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abf8a76222", "title": "Day 3 with Workflows — Variable assignment and expressions", "url": "https://glaforge.dev/posts/2020/12/03/day-3-with-workflows-variable-assignment-and-expressions/", "published_at": "2020-12-03T22:00:14+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abf8e048ac", "title": "Day 2 with Workflows — A workflow is made of steps and jumps", "url": "https://glaforge.dev/posts/2020/12/02/day-2-with-workflows-a-workflow-is-made-of-steps-and-jumps/", "published_at": "2020-12-02T22:16:07+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abf8ecc41a", "title": "Day 1 with Workflows — Your first step to Hello World", "url": "https://glaforge.dev/posts/2020/12/01/day-1-with-workflows-your-first-step-to-hello-world/", "published_at": "2020-12-01T22:22:11+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abf8f8c7eb", "title": "Orchestrating microservices with Google Cloud Workflows", "url": "https://glaforge.dev/posts/2020/11/18/orchestrating-microservices-with-cloud-workflows/", "published_at": "2020-11-18T17:56:08+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abf9909ad4", "title": "The developer advocacy feedback loop", "url": "https://glaforge.dev/talks/2020/08/06/the-developer-advocacy-feedback-loop/", "published_at": "2020-08-06T18:11:17+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abfa5597db", "title": "Running Micronaut serverlessly on Google Cloud Platform", "url": "https://glaforge.dev/posts/2020/08/04/running-micronaut-serverlessly-on-google-cloud-platform/", "published_at": "2020-08-04T17:49:49+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abfaa66ce6", "title": "Video: Getting started with Java on Google Cloud Functions", "url": "https://glaforge.dev/talks/2020/07/28/video-getting-started-with-java-on-google-cloud-functions/", "published_at": "2020-07-28T12:01:28+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abfb9bf1b5", "title": "Introducing Java 11 on Google Cloud Functions", "url": "https://glaforge.dev/posts/2020/05/27/introducing-java-11-on-google-cloud-functions/", "published_at": "2020-05-27T10:47:45+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abfc2726b8", "title": "Sip a Cup of Java 11 for Your Cloud Functions", "url": "https://glaforge.dev/posts/2020/05/26/sip-a-cup-of-java-11-for-your-cloud-functions/", "published_at": "2020-05-26T16:17:34+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abfc412641", "title": "Deploying serverless functions in Groovy on the new Java 11 runtime for Google Cloud Functions", "url": "https://glaforge.dev/posts/2020/05/26/deploying-serverless-functions-in-groovy-on-the-new-java-11-runtime-for-google-cloud-functions/", "published_at": "2020-05-26T12:05:07+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abfcd5c298", "title": "Video: the Pic-a-Daily serverless workshop", "url": "https://glaforge.dev/talks/2020/05/18/video-the-pic-a-daily-serverless-workshop/", "published_at": "2020-05-18T13:44:33+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abfd65c8f8", "title": "Machine learning applied music generation with Magenta", "url": "https://glaforge.dev/posts/2020/05/04/machine-learning-applied-music-generation-with-magenta/", "published_at": "2020-05-04T13:54:06+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abfdc7bf16", "title": "HTML semantic tags", "url": "https://glaforge.dev/posts/2020/04/29/html-semantic-tags/", "published_at": "2020-04-29T13:56:35+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abfe1a5abc", "title": "Modern web game development", "url": "https://glaforge.dev/posts/2020/04/27/modern-web-game-development/", "published_at": "2020-04-27T14:04:09+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abfe7ca32a", "title": "Decoding a QR code by hand", "url": "https://glaforge.dev/posts/2020/04/26/decoding-a-qr-code-by-hand/", "published_at": "2020-04-26T14:07:49+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abfee90130", "title": "Defence against the Docker arts by Joe Kutner", "url": "https://glaforge.dev/posts/2020/04/24/defence-against-the-docker-arts-by-joe-kutner/", "published_at": "2020-04-24T14:34:25+00:00" }, { "id": "01a0877d-62d3-7166-8618-67abffc95a22", "title": "Start the fun with Java 14 and Micronaut inside serverless containers on Cloud Run", "url": "https://glaforge.dev/posts/2020/03/24/start-the-fun-with-java-14-and-micronaut-inside-serverless-containers-on-cloud-run/", "published_at": "2020-03-24T14:59:29+00:00" }, { "id": "01a0877d-62d3-7166-8618-67ac007c8ffc", "title": "Serverless tip #7 — Create mini APIs with Cloud Functions and Express routing", "url": "https://glaforge.dev/posts/2019/12/17/serverless-tip-7-create-mini-apis-with-cloud-functions-and-express-routing/", "published_at": "2019-12-17T15:04:34+00:00" }, { "id": "01a0877d-62d3-7166-8618-67ac008a4c73", "title": "Serverless tip #6 — Create a mini web API with Cloud Functions", "url": "https://glaforge.dev/posts/2019/12/17/serverless-tip-6-create-a-mini-web-api-with-cloud-functions/", "published_at": "2019-12-17T15:01:33+00:00" }, { "id": "01a0877d-62d3-7166-8618-67ac015ef39b", "title": "Serverless tip #5 — How to invoke a secured Cloud Run service locally", "url": "https://glaforge.dev/posts/2019/12/11/serverless-tip-5-how-to-invoke-a-secured-cloud-run-service-locally/", "published_at": "2019-12-11T15:36:39+00:00" }, { "id": "01a0877d-62d3-7166-8618-67ac017de5dc", "title": "8 production-ready features you'll find in Cloud Run fully managed", "url": "https://glaforge.dev/posts/2019/12/11/8-production-ready-features-you-ll-find-in-cloud-run-fully-managed/", "published_at": "2019-12-11T12:42:59+00:00" } ] posts Claim your blog
Back to glaforge.dev
Blog · corpus.blog/blogs/glaforge.dev/posts

glaforge.dev

glaforge.dev

2024

2023

2022

2021

2020

2019