Sunday, March 26, 2023

Troubleshooting - Delete Google Workspace account

I recently deleted a Google Workspace account. It's one I've had for 15 years (dating back to the days when this service was called "Google Apps for your Domain")

I finally succeeded in deleting the workspace, although it was anything but smooth sailing. So I'm posting this in case it helps anyone.

First, take a backup

Because it was such an ancient account, obviously I had a lot of data there to retrieve first, which I downloaded using Google Takeout.


First stab at deleting account

I tried clicking the link to delete, as described here:

Which led to...

Problem #1

Was unable to delete account because it said I had projects in GCP.
A link to GCP was provided, which I clicked.

The project list showed a project "alarm-osqu" under my Google Workspace account's Organization. It looked like a Dialog Flow agent.

Another project was shown, not belonging to any Organization. This was the Hotel Reservation agent, that is kind of a template/starter project in Dialog Flow. I guess this one belongs to Google.

I tried to delete project "alarm-osqu". Which led to...

Problem #2

Was told that the agent has liens attached to it. I guess that means some kind of deletion protection.

A link to Dialog Flow was provided, which I clicked.

Problem #3


On arrival at Dialog Flow, I was unable to do much of any kind of management/administration, let alone delete the agent. I was able to edit the content of that agent, i.e. edit/delete Intents and Entities. But I couldn't delete the agent.

Finally I found the answer here:

Solution

I went back to the GCP page and opened the CLI (command line interface).

I ran the following commands:

Set my project as the current project:

arka@cloudshell:~$ gcloud config set project alarm-osqu
arka@cloudshell:~$ gcloud config set project alarm-osqu
Updated property [core/project].


Tried to delete the project, but failed because of I needed to delete the DialogFlow agent, and it's protected by the lien:

arka@cloudshell:~ (alarm-osqu)$ gcloud projects delete alarm-osqu
Your project will be deleted.

Do you want to continue (Y/n)? y

ERROR: (gcloud.projects.delete) FAILED_PRECONDITION: Precondition check failed.
- '@type': type.googleapis.com/google.rpc.PreconditionFailure
violations:
- description: 'A lien to prevent deletion was placed on the project by [You cannot
delete this project because it is linked with a Dialogflow agent. Please follow
the link to Dialogflow and delete the agent: https://console.dialogflow.com/api-client/#/agent/684e3456-0972-46ae-8e97-d5e8e78b9905].
Remove the lien to allow deletion.'
subject: liens/p1095610256492-l8b88642c-f7dd-4442-a9f5-f7db6e05d7d4
type: LIEN
- '@type': type.googleapis.com/google.rpc.Help
links:
- description: Troubleshooting project deletion
url: https://cloud.google.com/resource-manager/docs/troubleshooting-project-deletion
- '@type': type.googleapis.com/google.rpc.ErrorInfo
domain: cloudresourcemanager.googleapis.com
reason: PROJECT_DELETE_LIEN


Listed the lien (for some reason it again told me I can't delete the project, even though I all I asked for was the liens list):

arka@cloudshell:~ (alarm-osqu)$ gcloud alpha resource-manager liens list
NAME: p1095610256492-l8b88642c-f7dd-4442-a9f5-f7db6e05d7d4
ORIGIN: You cannot delete this project because it is linked with a Dialogflow agent. Please follow the link to Dialogflow and delete the agent: https://console.dialogflow.com/api-client/#/agent/684e3456-0972-46ae-8e97-d5e8e78b9905
REASON: Deletion blocked by Dialogflow.
arka@cloudshell:~ (alarm-osqu)$ gcloud alpha resource-manager liens list
NAME: p1095610256492-l8b88642c-f7dd-4442-a9f5-f7db6e05d7d4
ORIGIN: You cannot delete this project because it is linked with a Dialogflow agent. Please follow the link to Dialogflow and delete the agent: https://console.dialogflow.com/api-client/#/agent/684e3456-0972-46ae-8e97-d5e8e78b9905
REASON: Deletion blocked by Dialogflow.


Deleted that cursed lien:

arka@cloudshell:~ (alarm-osqu)$ gcloud alpha resource-manager liens delete p1095610256492-l8b88642c-f7dd-4442-a9f5-f7db6e05d7d4
Deleted [liens/p1095610256492-l8b88642c-f7dd-4442-a9f5-f7db6e05d7d4].
arka@cloudshell:~ (alarm-osqu)$


Confirmed there are no more liens:

arka@cloudshell:~ (alarm-osqu)$ gcloud alpha resource-manager liens list
Listed 0 items.


Finally, delete the project:

arka@cloudshell:~ (alarm-osqu)$ gcloud projects delete alarm-osqu
Your project will be deleted.

Do you want to continue (Y/n)? y

Deleted [https://cloudresourcemanager.googleapis.com/v1/projects/alarm-osqu].

You can undo this operation for a limited period by running the command below.
$ gcloud projects undelete alarm-osqu

See https://cloud.google.com/resource-manager/docs/creating-managing-projects for information on shutting down projects.
arka@cloudshell:~ (alarm-osqu)$


Then I was able to go back to the original instructions to delete the workspace account.

Succeeded. ✅

Links related to this post

Friday, April 15, 2022

How to be less forgetful

To be less forgetful, marinate your mind exclusively with content that's relevant and necessary for your life and advancement

Exclusively being the key word.

Saturday, November 20, 2021

The Sovereign Individual

 The Sovereign Individual

I recently finished reading The Sovereign Individual. It was written in 1997, and attempts to predict changes over the next few decades and maybe even the next century or so.

It really had an impact on me. I don't feel like writing a lengthy review or essay about it right now in one sitting. I'll just continue to make references to it on occasion as they tie into stuff I'm thinking about or worrying about.

One of the things I worry about a lot is the effect of massive displacement of individuals from their jobs due to automation. Indeed the Sovereign Individual said several times that careers will cease to be as we currently know them. What they predicted was very much like the gig economy we hear about so much. They got that one right.

They also said that normal professions are going to be like entertainment or professional sports, in that only a tiny percentage of practitioners are going to earn money, and they will earn massively. Everyone else will be pretty much redundant. This is very much consistent with the massive displacement I mention. It sounds very plausible.

Often the answer we see for the massive displacement problem is UBI (universal basic income). However at the end of the day UBI will need to be paid for by taxes. So it will be subject to the mercy of those small number of huge earners. However, as The Sovereign Individual points out, the wealthy will have options to bail from nations/states where they feel they are taxed too heavily. This is not a debate about morals or right vs. wrong. This is about mega-political conditions where the wealthy simply can't be coerced into subsidizing the rest of us!

So this makes me wonder if there exists a free market solution to UBI, as opposed to the usual social-democratic one that gets attention.

Wednesday, October 14, 2020

No signal in external display connected to MacBook Pro running Catalina - Fixed

Before I start I should add a caveat - the post title is misleading. I didn't actually fix anything since there was no problem to begin with but my own lack of observational skills! Nevertheless there are many people similarly afflicted, and this post might help them.

So I’ve been connecting my MacBook Air mid-2012 model to an external ASUS VP228HE monitor successfully for a long time. That Mac doesn't have an HDMI port so I've been using a HDMI <-> Thunderbolt adapter all these years.


I just purchased a MacBook Pro early-2015 model, and tried connecting to that monitor the same way. However there was no signal to the monitor. So I was just getting a black monitor screen.


I scoured the internet for answers. I tried every bit of advice provided in this excellent Medium article, and several other articles, but nothing worked.


Eventually I realized that this MacBook Pro actually has an HDMI port! Duh… 😯


So I connected directly to that, rather than to the Thunderbolt port using the adapter. It worked beautifully.


Dayum!

Sunday, May 31, 2020

Growing Tomatoes!

I decided to try my hand at growing some vegetables this summer.

So why not start with my favourite veggie - the tomato! We decided to go with open-pollinated seeds and seedlings.

Seedling
We bought one seedling from this place in Saitama: http://www.seinousha.com/ .  We drove there, up to Saitama, to pick it up. It's a variety called アロイトマト (aroi tomato). I can't find much info about it in English. 

We transferred it over to a proper planter.


Seeds
We also bought some seeds, by delivery, from Noguchi Seeds: https://twitter.com/noguchiseed.  Those were delivered.


We planted them into small pots, will share photos of those in the next blog post.


Sunday, June 16, 2019

Don't be Pressured to be an Entrepreneur

There is no need to be an entrepreneur if it is not your bag.

There are countless other roads to happiness, prosperity, freedom, respect, and self-expression.

Now, if you have an idea and a burning passion to pursue it, and confidence in it, then by all means launch a startup! I wish you all the best.

However if your only reasons for wanting to be an entrepreneur are because it is "cool" or socially esteemed or because you envy other people doing it, you may want to reconsider. Those are superficial reasons for making career choices. They are not reasons you prefer one person over another, are they? Hence, they are not reasons to like yourself better either.

I personally like people who are sincere, authentic, and positive. Those are the things to aspire to. If that means being an entrepreneur, more power to you!

Monday, June 10, 2019

Good Piece by Jeff Weiner after 2016 Election

It's over 2 years old, but I just saw this piece today from LinkedIn CEO Jeff Weiner on the 2016 U.S. election.

https://www.linkedin.com/pulse/my-thoughts-election-jeff-weiner/


I think it is impressive because it expresses views that are solid and sensible without explicitly being partisan. 

I think we may have a strong suspicion of which side he personally supported, as well as that of most LinkedIn employees, and indeed most people working in tech. But he was able to lament the extreme divisiveness of that election and also convey that LinkedIn will uphold values that are decent and civil, without blaming any one side.

Now, in one way, I am not sure if this is a good thing or not. If it is crystal clear that one side is objectively and overwhelmingly vile and sordid, while the other is just politics as usual, then maybe that side needs to be called out every time? Maybe any mention of them, however minor, without opposing them contributes to normalizing them? I tend to think this.

However there may be times when we have to navigate the waters more skillfully. If and when that need comes up, this piece by Jeff is a good reference.

Sunday, April 1, 2018

Persistent questions during meetings

There are some people who are really impatient and incapable of delaying their understanding of things.

So when you are doing a presentation they will keep interrupting with questions. However, due to their impatient nature, if those questions are not easily answered they will keep doggedly pursuing the point in their quest to get the answers that satisfy them. This causes the discussion to get further and further off track.

I find it helps to just politely ask them to allow me to finish the presentation, or at least wait till I get to the end of the current chapter or section, and ask questions then.

Another thing that helps is to discern if the question is out of bounds for that meeting. For example, if I promised to provide just an overview of that topic, and the question is really intense and detailed, I can politely tell them that today we are just doing an overview. I can get to their detailed question later or on another day.

Monday, April 11, 2016

DMM SIM needs access point registration for data connection

I am temporarily using a SIM-free LG G2 mini (Japanese).

I inserted my DMM SIM card.  Phone and SMS worked fine, but there was no internet connection via 3G or LTE. I simply couldn't figure it out.

I thought about sending DMM a tech support ticket but before doing so went through their FAQs. It turns out you need to register the dmm.com access point for it to be able to work. 

Here is the info (Japanese):
DMM mobileのSIMを端末に入れても、通信できません


Gotta remember that.

Sunday, April 10, 2016

Business hotels

If you are stuck in Japan without accommodation, there are actually tons of small hotels called "business hotels".

Generally you can always find vacancy in those somewhere in the city. The name sounds luxurious but they're actually low-priced and no-frills.

They typically don't have a restaurant or many amenities, and the rooms are small. However they are clean, comfortable and get the job done. They are mainly used by people on business trips.

I've used them a lot myself and was always pretty satisfied. However most of them don't have much info in English. If needed I can give you a hand with that when you're here.

Sunday, October 18, 2015

Export iCloud Contacts fails on IE, succeeds on Firefox

Downloading iCloud Contacts on Windows does NOT work on Internet Explorer, but works fine on Firefox.  Which is weird since IE is the recommended browser for iCloud on Windows.

The steps to export your iCloud contacts on a Windows machine:
  1. Log into iCloud.com
  2. Go to the Contacts application
  3. Click on the gear icon at the bottom-right. -> A menu pops up.
  4. Select "Export to vCard"
When I tried it on IE, very simply, nothing happens whatsoever.  However when I tried it on Firefox it works perfectly.

My environment is Windows 8, running the latest IE and FF.

My wife got the exact same results.  She uses Windows 7 with whatever the latest IE is there.

Sunday, July 26, 2015

Accessing MS SQL databases from classic ASP

I am writing a CMS (content management system) in classic ASP using Microsoft's JScript language (a server-side language based on ECMAScript3) with a database in Microsoft's MS SQL.

Why I am using such an ancient technology as classic ASP/JScript is a topic for another time.  Today I will focus on the steps it took to get it working, and the troubleshooting I had to do along the way.

First of all, you start by instantiating an ADO connection object as follows.
Next, connect to the database using a connection string.

try 
{
var objADO = new ActiveXObject("ADODB.Connection");

var dbConnStr = "Driver={SQL Server};server=MyMachine\\SQLEXPRESS;database=MyDB;uid=MyId;pwd=MyPw;";
objADO.Open(dbConnStr);

... use database ...
}
catch(err)
{
Response.Write(err.description);
}

Note that the code is in a try/catch structure.  The output from err.description helps a lot in diagnosing problems.


First problem

err.description had value:
  • [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'MyId'.]

The solution to this was found here:
  • https://support.microsoft.com/en-us/kb/555332

The problem was that in SQL Server Management Studio I had set the authentication of SQL Server itself to
  • Windows Authentication mode

It should be:
  • SQL Server and Windows Authentication mode

Second problem

err.description had value:
  • [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'MyId'.  Reason: The password of the account must be changed.]

The solution to this was found here:
  • https://social.msdn.microsoft.com/forums/sqlserver/en-US/3174e9f5-5e51-4d95-89cc-bc81a9f16351/login-failed-for-user-please-what-am-i-doing-wrong

The problem was that I had set following property for the login for MyId in SQL Server Management Studio.
  • User must change password at next login

It should be unchecked.

END