Calling Native Libraries from Java
A couple of options I’ve used and seen:
- Java Native interface - watch out for segfaults!
- Project Panama - early access
- GraalVM - still really new.
- zt-exec - call the native library as an external process
- remotetea - an old favourite if it’s legacy C++ code
Crypto - diy?
To create your own cryptocurrency, you will need to:
- Create a blockchain. This is the underlying technology that will support your cryptocurrency. There are many different blockchain platforms available, such as Ethereum, Bitcoin, and EOS.
- Design your cryptocurrency. This includes deciding on the name, symbol, total supply, and distribution method. You will also need to create a mining algorithm.
- Create a wallet. This is where your cryptocurrency will be stored. There are many different wallets available, both hardware and software.
- Mine your cryptocurrency. This is the process of adding new blocks to the blockchain and earning rewards in the form of your cryptocurrency.
- List your cryptocurrency on an exchange. This will allow people to buy and sell your cryptocurrency.
Here are some of the steps involved in minting your own cryptocurrency:
Google Cloud IAM Madness
After the recent GCP outage related to IAM, I found some odd behaviour with gsutil/gcloud. A script that had faithfully run for many months stopped working with:
ServiceException: 401 Anonymous caller does not have storage.buckets.list access to project xxxx
I tried recreating the service account key used for the operation with no luck. To fix the problem, I had to create a new bucket!
gsutil mb -b on -l us-east1 gs://my-awesome-bucket123ed321/
Creating gs://my-awesome-bucket123ed321/…
gsutil ls
gs://my-awesome-bucket123ed321/
gs://<my_original_bucket_I_couldnt_see>/
BigQuery ML and Vertex AI Generative AI
BigQuery ML and Vertex AI Generative AI (GenAI) are both machine learning (ML) services that can be used to build and deploy ML models. However, there are some key differences between the two services.
- BigQuery ML: BigQuery ML is a fully managed ML service that allows you to build and deploy ML models without having to manage any infrastructure. BigQuery ML uses the same machine learning algorithms as Vertex AI, but it does not offer the same level of flexibility or control.
- Vertex AI Generative AI: Vertex AI Generative AI is a managed ML service that offers a wider range of generative AI models than BigQuery ML. Vertex AI Generative AI also offers more flexibility and control over the ML model training process.
If you are looking for a fully managed ML service that is easy to use, then BigQuery ML is a good option. If you need more flexibility and control over the ML model training process, then Vertex AI Generative AI is a better option.
Cloud Billing Budget API in beta
You can finally set budgets via the API in GCP. This is a huge relief to all those org admins out there who have had to do this manually.
AND, hold on to your hats, there’s terraform support as well!
Looks like Christmas came late….
data "google_billing_account" "account" {
provider = google-beta
billing_account = "000000-0000000-0000000-000000"
}
resource "google_billing_budget" "budget" {
provider = google-beta
billing_account = data.google_billing_account.account.id
display_name = "Example Billing Budget"
amount {
specified_amount {
currency_code = "USD"
units = "100000"
}
}
threshold_rules {
threshold_percent = 0.5
}
}
Flink Kubernetes operators
How I wish these operators had existed a few years ago when I was setting up Flink…
https://github.com/GoogleCloudPlatform/flink-on-k8s-operator
https://www.ververica.com/blog/google-cloud-platforms-flink-operator-for-kubernetes
Running Flink in Production
This is a great watch for those beginning their journey with Flink.
Managing GCP projects with Terraform
An invaluable start on how to start managing GCP projects with Terraform. I wish I’d found this a year ago.
Terraform init in the real world
Rather than fully configuring your backend.tf in a file.```
terraform {
backend “gcs” {
bucket = “my-bucket-123”
prefix = “terraform/state”
}
I prefer to use the command line in order avoid polluting the code with any environment specific names.
terraform init \
-backend-config=“bucket=my-bucket-123” \
-backend-config=“prefix=terraform/state
Opinionated Google Cloud Platform projects
I’m glad Google are finally starting to embrace Terraform by creating their own modules. Version 0.1.0 of the project-factory looks really promising.