Tom's Technology Take

Tom Petrocelli's take on technology. Tom was a IT industry executive, analyst, and practitioner as well as the author of the book "Data Protection and Information Lifecycle Management" and many technical and market definition papers. He is also a natural technology curmudgeon.

Friday, April 24, 2026

Overseas Tech Hell

I've just gotten back from Sicily. I was there for over a month. Travel there was made much easier by the travel company we used called The Good Life Abroad. I highly recommend it. 

Sicily was a truly magical place. I'm guessing that much of what you've heard about it is not true but, more on that later. You know what would have made my trip even more magical? Trouble free technology. 

Alas, that was not to be. Every bit of tech that I brought along to make it easier to operate in Italy was harder than anticipated and more difficult than it needed to be. We can communicate across the globe and run AI that streamlines our work and still, it kind of sucks. 

Here are the six layers of Tech Hell that made my trip more of a trial than it should be. After this trip, I yearned for the days when we could only write letters, used paper maps, and had no further expectations.

eSIM Hell

In the absence of WIFI, it used to be that your choice was to either forgo use of your smart phone or pay stupid amounts of money to have your mobile carrier provide you with an international plan. New phones, however, come equipped with the ability to have a virtual SIM, a.k.a an eSIM, stand in for your phone's hard SIM. With your eSIM in place you can, theoretically, connect to the local telephone network to get roaming data. I opted for an eSIM from Truely because it came recommended by my travel company.

The first problem was in the implementation. Even though our phones were listed as compatible, the automated setup failed on both of them. I dutifully followed their instructions for a manual mounting of the eSIM, which required more knowledge of your phone's settings than most people have. When I got to Italy, it didn't work. After some time on WiFi in a hotel lobby, tech support walked me through manual setup of an access point. If I weren't a computer geek, I would have been completely intimidated and befuddled. It should not have been this difficult for two different phones. 

When I used their app to add data to one of our plans, it didn't exactly work the way you think. It seems logical to assume that more data would appear on your current plan, but nope! Instead, you get another plan which will only activate when your old plan runs out. It would be nice to know that upfront. 

Oh, and performance sucked. I simply cannot recommend Truely for your eSims. When I travel overseas again, I will try a different company, if only to see if it was Truely or all eSims that are terrible.

Verizon and 2FA Hell

I decided that I would go ahead and check something in my Verizon account. I wanted to be sure they weren't charging me for an international plan I didn't order. Seems easy enough. Sign into my Verizon account from my laptop. HAHAHAHAHA! No. We have to deal with two factor authentication (2FA) because it's safer. They insist on sending you a text message to do the 2FA. My phone is not on their network and text and phone calls do not work with my eSIM. I can't get the authentication code. Now, you think someone would have thought of this already. Perhaps some enterprising Verizon product manager might have mused "What happens if someone's phone isn't working and they want to sign into their account, perhaps to buy a new phone?" Nope. There's a lot of nopes in this story. I get on their customer service chat and say " I can't sign into my account because I can't get text messages. The stupid bot tells me that I have to sign in before it can't help me or connect me to a human. I tell it that I can't sign in because I can't receive text messages. It gives me all kinds of ways to sign in when you have problems signing in EXCEPT for when I can't receive a text message. Gah! The stupid! It burns! They have my email - why can't they use that? This reliance on one type of authentication with no work around is just inexcusable stupid process design. 

ProtonVPN Hell

I thought to myself "What if I need to connect to something back in the USA that doesn't want to connect to an overseas computer? Get a VPN! I respect Proton and like their other products, so this seemed obvious. It is true that they give you a safer way to connect to things. The problem is that it is too safe. Countless websites just won't work because the VPN hides too much.

Let's be honest, one of the main reasons to use a VPN is to access content from back in your home country that you are already paying for. It's not like they give me a break on my subscription payments because I'm out of the country. The VPN is supposed to cure that problem. Supposed to...

Instead, ProtonVPN blocked so much information that streaming services either were wonky or didn't work at all. A great example of this is MLB TV. If I was connected to any country, including my home country, using the VPN, MLB TV wouldn't show me the list of games available. Strangely, it had no problem with the list of games if I wasn't connected to the VPN at all. The content, however, wouldn't play unless I was connected to the VPN. I had to choose a game from the list without the VPN connection and then connect using the VPN to actually watch a game. This sort of thing happened a lot. In most cases websites would just generate a variety of errors. 

Simply put, it may be safer, but it doesn't work. That's not a good tradeoff.

WhatsApp Hell

Much of Europe and Africa is really big on WhatsApp, the communication application from Meta. Like it's sibling, Facebook Messenger, WhatsApp allows you to text, make calls, and video conference. Unlike Messenger, WhatsApp uses your phone number as your chief identifier. Your phone number is just an ID and has no other connection to your phone. That doesn't mean it doesn't want to connect to everything on your phone. See, WhatsApp tries to ingest all of your phone numbers from your smartphone contacts list by default. This is ostensively to find other WhatsApp users that you know. The TOS, however, doesn't really say what else they might do with all that identifying information or how they store it. Kind of not the best thing from a security point of view. This is especially so since Meta is known to just handover identifying information to (at least) the United States government without a warrant. 

You can opt out from allowing them to ingest all of your phone numbers but, it becomes much harder to use after that. WhatsApp also constantly nags you to allow it to go ahead and slurp up your contact list. It's unrelenting in its quest for your information. Like too many tech bros, WhatsApp doesn't like to take No for an answer.

It also wants all kind of permissions to access your device, some of which don't seem to have anything to do with communication. You can opt out of some of these blanket permissions but then some features don't work. For example, rather than give WhatsApp permission to always access my phone's microphone, I changed it to ask each time. Subsequently, when someone tries to call me on WhatsApp, I get the standard Android permissions popup asking if I want to allow it all the time, never, or just this time. If I choose "just this time" the call immediately drops. WhatsApp also insisted on having access to my Phone app so that it wouldn't "intrerfere with incoming calls." Facebook Messager doesn't need to access my Phone app to function well, so it doesn't make sense that WatsApp needs this type of permission.

Somehow this seems more sinister than just bad UX. From the moment of installation, WhatsApp seems to want to own my phone. If you don't understand how cell phone permissions work, it's too easy to just accept Meta's attempt to access your information for whatever they want.

Google (and Apple) Maps Hell

I'm the first to admit that online maps have changed everything about how we navigate. Want to find out how to get to your friends' new house? Google/Apple Maps. Need to figure out what bus to take to get somewhere in a city? Google/Apple Maps. The days of paper maps and real land navigation are pretty much gone.

For that reason, it is very important that these mapping services perform well, if not flawlessly. The problem is, they don't. 

I spent much of my time in Palermo. It's a major city with a metro area of roughly 1.3M people. To put that in perspective, it's about twice the size of Boston, MA. You would think that Google Maps would have a pretty good picture of the city. If you thought that you'd be wrong. I can't tell you how many blind alleys Google Maps sent us down. If you think their locations services are any better, you'd also be wrong. At one point, Google Maps thought I was in two locations simultaneously. That would be a neat trick if it were true but, it would also break the Space Time Continuum. Space Time is safe for now. 

One of the biggest problems I encountered with Google Maps was the way it optimizes routes. Those optimizations seem to be based on either time or distance but never degree of difficulty. In old parts of ancient cities such as Palermo, Google Maps is happy to have you drive down a street so narrow that a car can barely make it without scraping the walls. Worse yet, it's happy to send people walking down those streets so that you can be pushed up against a wall for dear life. It's great in an American suburb but, not so much in an old city.

Folks I knew using Apple Maps had similar experiences you iPhone people shouldn't get snotty here.

The Internet Disinformation Hell

Before going to Sicily, I did some "research" on the Internet as to Sicilian customs, dress, and other clues to living like a local, albeit for a month. According to the Internet, everyone dressed better than Americans, everything closed between noon and 4pm, trains were unreliable, no one spoke English, and car drivers were more than happy to turn you into roadkill. I read dozens of travel articles obviously written by people who had never been to Sicily. 

Palermo is a major cosmopolitan center. There are people living here from Africa, the Middle East, and East Asia. Tamil is a major language spoken here. Most people in service jobs had at least a smattering of English, many spoke much better English than I could speak Italian or Sicilian. There are lots of ex-patriate British and Americans as well. With a little help from Google Translate, we had no problem getting around.

Shops and restaurants were open all day and everyone dressed like they were in Southern California with t-shirts, jeans, and sneakers the norm. There were a lot of Yankees baseball caps. Lots. Given that my heritage is Southern Italian, most Sicilians assumed I was at least Italian... until I opened my mouth.

Driving is a challenge with few traffic lights and multi-lane road often don't have lane markers. That said, drivers stop for pedestrians. You walk out into a crosswalk and traffic stops for you. Expect for those guys on scooters. They're just jerks.

The point is everything you hear on the Internet about Palermo is wrong. Not a little wrong but vastly wrong. The contrast between what is on the Internet and what is on the ground just accentuates the failure of the Internet as an information source. You can trust some curated sites that have controls and major news sites operated by real journalists but, everything else is highly suspicious at best.

Conclusion


Sicily was amazing. The people were friendly and helpful. Food and wine are incredible and inexpensive. Getting around is much easier than in many American cities. Oh, and the trains run on time and there are lots of them to all major locations. In that regard, Sicily outpaces the United States by a lot.

Good old fashioned American championed information technology was difficult to use, inaccurate, and downright frustrating. Many of the promises that information technology make are hollow and not to be trusted. 

After 40 years in the industry, what saddens me the most is how sloppy it is. Simple things such as a button adding time to a data plan actually doing something entirely different add stress and irritation especially when you are in an unfamiliar place. Security systems that keep you safe by locking you out of resources you need is just bad implementation. No access is not the same as safe access. Bad information is worse than no information.

At the end of the day, all the money spent on technology should have guaranteed that it at least be "good" by now. It hasn't and that's a major business fail.





Monday, March 23, 2026

Adventures in Vibe Coding

First off, who came up with the term Vibe Coding. It's stupid. You will accomplish nothing if you are going on a "vibe". I feel like Inigo Montoya - I don't think that word means what you think it means. But I digress.

I have been experimenting with AI assisted coding for a while. More like playing around with it. Needless to say, I have found it lacking. I checked in with some professional coders that I know and, to my surprise, found that many of them were using AI tools, but mostly to do simple stuff or give them ideas of how to solve a problem. So, while I still think it would be literally insane to create a mission critical application using so-called vibe coding, I figured I'd give a chance for something less dramatic.

Previous experiments didn't quite work out, but given some recommendations from folks I respect, I thought it worth another go.

The Project

To be fair to AI tools, I wanted to pick a project that it has a reasonable chance of accomplishing. I set down the following criteria for such as project as:

  • Must be simple enough that a moderately experienced programmer could accomplish it. 
  • Should be a well-known and, hence, easy to define problem. I was not looking for creativity or magic.
  • Needed to be short. A subset of "simple", a relatively short program would be unlikely to have too much complexity and would be easy to debug.
  • Should do something useful. Why bother with something esoteric when you might get something out of it.

I decided I wanted to port the Linux BASH script screenfetch to Powershell in Windows. Powershell is very useful for accessing Windows system information and screenfetch is a useful Linux tool for extracting system information. A Windows screenfetch would not be overly complex, would be useful, likely short, and has a relatively narrow and well-known problem domain. There was also a direct example to work from, thereby giving the AI tools a leg up.

The First Pass

Having used Microsoft Copilot and ChatGPT for coding projects before, I did not have a lot of confidence in either. I tried a different AI agent that I had heard good things about called Qwen. I initially wanted to try out Claude Code but had to have a subscription for that and I'm cheap about these things. I told the Qwen AI app that I wanted to recreate screenfetch for powershell and Windows and that it needed to be as close as possible to the original. Obviously, I said it better than that.

Qwen wrote the script which I downloaded and ran. It puked. Sigh.

Fixing the AI

I then created a project in Github, added a Readme with some basic placeholder text, and accessed it all in VS Code. Some quick debugging found that the Qwen code had used deprecated functions and, worse yet, functions that did not exist at all in Powershell. In other words, it made up things such as system calls and environment variables. That was a big miss, but predictable.

The best I can tell is that Qwen couldn't discern between code with errors and good code that it had ingested. I suspect it spit out someone's mistake. It was easy enough to find out where the errors were, use Powershell documentation to find the actual commands to call, and fix it so that it ran. Problem one solved. 

Incidentally, when I asked Copilot to fix the code, it came up empty. I don't think it was just a Qwen problem so much as a general AI ingesting problem. AI has no good way to know good code from bad when it ingests it and hence will spew bad solutions as well as good. This was ironic because Copilot and Powershell are both Microsoft products.

That said, the structure of the script was good, and it worked with my fixes. Qwen got me off to a good start and hence accelerated development. This suggests, as my developer friends said, that AI tools helped with simple tasks, but could not be relied upon to write code that was correct and reliable. AI provides a head start but is not trustworthy.

Documentation

The next task I gave AI was to write documentation. Documentation is something I'm very good at and am able to judge well. I asked Copilot to do the following:

write documentation for the Screenfetch.ps1 script that includes a description, proper usage, explanation of functionality, and limitations.

It did a pretty good job. Good, mind you, not great. The text it created was accurate, though not complete. Copilot didn't seem to understand where to put more explanation or emphasis. Unlike a human, it also couldn't think beyond the basic parameters of the prompt. 

For example, Copilot correctly showed how to run the script... in one way. The better way was to add the location of the script to your PATH command so that it could be run like a system command. That's how the original screenfetch works. I added that part. Copilot also didn't predict other ways, other than from within the powershell shell, that this might be run. I added instructions on how to run the script from the old-fashioned command line shell, cmd

The most useful part of the documentation was the limitations section. It correctly listed several limitations of the script which, in turn, suggested useful changes to the code. This is a powerful feature. If AI can analyze limitations of code, it is much easier for a human to identify changes that may not yet be tied to a requirement. Anticipating future requirements is very useful indeed.

Evolving Code using AI

With those limitations in mind, I decided to make some changes to the code. There were three areas to focus on. First, the original code didn't exactly replicate what was in the Linux version. It left out GPU and Packages entries. Second, as pointed out by Copilot, it didn't report on multiple disk drives, only the first fixed disk. Third, the graphic that Qwen had created was nonsensical. It was a weird ASCII blob that bore no relation to anything representing a Windows OS icon. 

I tried the last task first. I used Qwen, OpenGPT, and Copilot to create an ASCII representation of the current Windows logo. They came up with garbage. Just random ASCII characters. I ended up coding this by hand which is exactly the type of drudgery that AI is supposed to save us from. It seemed an easy enough task, but alas, nothing seemed to get it close, let along correct.

Next, I asked Copilot, from within VS Code, to add the GPU detection and account for multiple fixed disks. It actually did this without trouble. Copilot plugged in the code, VS Code showed both the original and changed code and let me decide if I wanted it or not. I was able to run the new code before accepting it. Definitely a win for Copilot and AI.

Next, I asked it to add the number of applications to the script. It did so without error. Interestingly, it still labeled it as Packages, as it is int he Linux version. Linux Packages and Windows Applications are not the same. Packages not only includes applications but also system and other shared libraries. Applications are a subset of packages. For Windows, packages are not important compared to applications. I left it in that way, however, so that it looked like the original screenfetch. I admit I'm on the fence on this one though since you would have to read the (human updated) documentation to know the difference.

Evaluation

Damn! For something simple like this, AI tools had a big effect. I would say that I was able to create this script in less than half the time it would have taken me otherwise. Given the initial and subsequent output, the narrow problem domain and existence of a known model were critical to its success. 

Therein lies the AI Achilles Heel. It needs an existing model to work from. If I was porting code, AI would be a lot of help. If I was doing something creative from scratch, it would have been a little help, perhaps as I was adding features later, but not nearly as much. Adding snippets of code seems to be easier than either wholesale creation or overhaul. 

The other problem is that a developer has to have enough experience debugging the equivalent of someone else's code. It's much easier to understand code you wrote than code someone else wrote, or in this case, something else. If you can't trust the code, this is a serious problem.

AI tools for coding are improving. You still need an expert behind the wheel, need to keep things simple, and the problem domain narrow. AI is a tool not a replacement for human coding. Use it as such.

Monday, March 16, 2026

Breaking Workflows with New Features

I use Microsoft Edge as my primary browser. Don't judge me. I used to use Firefox but found many websites that would not work properly with it. I switched to a Chromium based browser called Ulaa (from Zoho) that was excellent. Unfortunately, with Edge so embedded in Windows 11, I experienced too much inconsistent behavior, and quite honestly, Ulaa was not keeping up with new and useful browser features. So, I begrudgingly switched to Microsoft Edge. 

Edge has a neat feature called Workspaces. This is like a tab group but can be called up with one click. Unlike a tab group, it maintains the current state of the set of tabs. So, if I open a new tab and leave it there when I close the Workspace, it is present when I open the Workspace again. Workspaces are dynamic whereas tab groups are static. Workspaces also open the tabs into a color-coded separate window, visually and spatially separating the tabs into their own space. I use this feature constantly.

What happened recently to Workspaces, provides us with a great example of what is terrible about software today. You see, Microsoft has been retooling Workspaces under the cover, causing the user experience (UX) to change. That can be good, but forcing changes to workflows is disruptive and irritating. In the case of Workspaces, it no longer will maintain a fixed list of Workspaces. Instead, it now insists on what is called Most Recently Used, or MRU, ordering. That means whatever you used most recently goes to the top of your list of Workspaces, even if you only use this Workspace occasionally. I find MRU a silly way to order something. A fixed but adjustable list defines a workflow. Ordering items as Most Frequently Occurring items makes sense in that it highlights something you use a lot. MRU ignores the wishes of the user and frequent usage patterns. It places emphasis on the wrong thing.

This is not a debate about ordering schemes. It's about changing UX without taking into account the end user. It's about not maintaining backward compatibility in workflows. It is about an abrupt forced change in user behavior, without the ability to either ease into it or continue with the old ways. In effect, Microsoft is telling people who use this highly touted feature how they should work. 

If a software vendor introduces a new feature, they don't do it just for fun. They are hoping that his new feature will keep you using their product. If you don't use their product, they can't make money from it. That's why I stopped using both Firefox and Ulaa - they didn't keep up with the features that make my work easier. Once lured into using a feature, however, you can't abruptly and capriciously change key elements of it. Once your workflow has adopted this feature, changes to the feature can become changes to your workflow. In this case, instead of enabling my workflow, Workspace changes have altered and disabled parts of my workflow. 

For me, the most likely solution will be to abandon Workspaces altogether. The MRU ordering is counterintuitive and counterproductive. I can do something similar with tab groups, though not quite the same. When software companies make changes like this, they sabotage their own features. I can imagine the product manager who made these decisions realizing that use of the feature has dropped dramatically and, instead of admitting that he greenlit a change that was terrible, will say no one uses Workspaces and sunset it. I doubt that anyone will want to admit that they themselves sabotaged their own feature.

This is not just a Microsoft or software problem. For those of you who remember New Coke, you know what I mean. It just happens faster and quieter in software. All of sudden something stops working and everyone is confused. End users think they did something wrong and finally, abandon the new thing in frustration.

Oh, and Copilot lied about it and kept telling me how to "fix" my problem. Sudden changes to my workflow and gaslighting all in one package. Nice!