Azure WebJobs, Hidden UTF-8 Parameters and Azure

So as to keep others from beating their heads bloody working through “problems which shouldn’t be problems”, here’s an important, but little known, fact about batch files used to launch Azure WebJobs…

They can’t contain the UTF-8 Byte Order Mark. Affectionately known as “UTF-8 BOM”. Which really ought to known as “UTF-8 BOOM”, considering what it does to Azure when it shows up in a command file.

Which it will, by default, because Visual Studio inserts them, invisibly to you, whenever you save a file you’ve created. Sigh.

A tipoff that something’s wrong is an Azure log message which complains about an unreadable command file line, echoing some bizarre looking characters as a prefix to what >>you<< think the line is. Those characters are Azure’s attempt to display the BOM. Sadly, Azure isn’t smart enough to identify and work around this problem itself (are you listening, Microsoft? It would be really, really easy to scan for the BOM, and simply ignore it; heck, even I could figure out how to do that).

The only way to avoid this is to “Save As” the file, and then work your way through the dialog box options — by selecting Save with Encoding from the Save button — and picking the an encoding which doesn’t have the BOOM, uh, BOM. I typically use “UTF-8 without byte order mark”…which is inconveniently located near the end of a very long list of possible choices. Who knew there were so many encodings in the world?

Fortunately, you only have to do this once, because Visual Studio will remember the choice for as long as the file’s around. Unfortunately, you have to do it for every file you want treated that way; there’s no global option, at least not in Visual Studio 2015.

Hold Down That Shift Key!

I’m posting this here mostly as a reminder to me how to work around a poorly-documented aspect of migrating iTunes to a new computer.

In the current instance, I’ve recently built a new Windows PC. But the hard drive where all my iTunes media is stored is a holdover from the previous computer — where it worked just fine in iTunes. Same drive letter, same path to the media library, same file ownership credentials, etc.

Yet when I fired up iTunes and pointed it at the media folder — by editing the preferences — it refused to recognize any of the songs, videos, podcasts, what have. It helpfully offered to download all the stuff I’d purchased from the iTunes Store over the years…but who the heck wants to download gigabytes of material when the exact same files are already present on the hard drive??? Certainly not me!

It turns out the solution is simple…but completely un-intuitive. You have to launch iTunes with the shift key held down (Windows; for the Mac OS I believe it’s the option key). Which will then bring up a dialog box asking you to locate the iTunes library file (or create a new one).

Now, so far as I know, the iTunes library file, by default, is always in the root of the media folder. At least, I’ve never seen it anywhere else.

So you’d think iTunes would be smart enough, when it senses that it’s not accessing an iTunes library file, to go looking in the root of the media folder. But no, it’s too stupid to do that. Instead, it just creates a new, empty iTunes library file, points itself at it, and declares “hey, you’ve got a lot of music up in the cloud; too bad none of it’s down here!”.

With all due respect to Apple — and I’ve told people for years that they’d have to pry my iPhone out of my cold, dead fingers to get me to relinquish it — this is nuts. Plus, it’s lousy software design. Defaults are a good thing, but they have to be smart defaults. It would hardly take any time at all for iTunes, on launch, to check the root of the iTunes media folder, see an iTunes library file, realize it wasn’t pointing at it, and ask “hey, is that the library file you want me to use?” It could even parse the iTunes library file, see it was pointing to a whole bunch of media files in the drive system…and realize that this iTunes library file was the real McCoy.

Are you listening, Apple?

 

Thanx, Greenbow! But Not You, Cisco and Microsoft…

I’ve owned a Cisco Small Business router, model RV-325, for several years, and it’s worked very well as a firewall/router. So well, in fact, that after setting it up I think I’ve only had to log into it’s user interface once or twice to check things, or update the firmware.

But it supports VPNs, and I recently had cause to figure out how to set it up to do so. And on that front, it fell flat on its face.

Why is it that people who write hardware manuals assume you already know how to do whatever it is you’re checking the manual to do? It’s really an odd presumption… and an all too common one.

VPNs by their nature — and I am not at all an expert on them, although I know a lot more today than I did five days ago — are complicated, with many options. But that just highlights another problem, this time with hardware user interfaces: if the goal is simple — “I want to be able to access my LAN remotely” — but the steps involved are potentially complex, you need to abstract the interface to the point where the configuration process itself is simple. Or at least provide the option to do so.

When your fire up Word for the first time, you get what looks like a blank sheet of paper and a cursor. And if you start typing, lo and behold, words start appearing on the screen! Even though you didn’t configure anything. You can get started without having to be a tech guru, even when you try to print what your typed (although in that case it helps if your IT staff have named the printers in such a way that you can figure out which one is near you).

I was very much helped in my quest by a company called Greenbow, which makes a Windows VPN client. Whose user interface is admittedly a little less straightforward than perhaps it could be. But which more than makes up for that by actually generating error messages which one can figure out, at least with three days worth of knowledge of VPNs. The fact that I had to pay for it is irrelevant; it’s worth the price, just for that increased capability.

As for the Windows 10 VPN client: it’s so abstracted that I never was able to figure out where to enter certain critical data needed to make a connection. Granted, the user interface is beautifully simple. But it doesn’t support the task.

 

Keeping It Alive

I posted this on nVidia’s support forum, but felt it worth perpetuating somewhere else.

===

I was greatly relieved to see how nVidia is doing such a fine job of keeping alive the beautiful experience of having display drivers crash in the middle of work. Frankly, before I bought my GeForce 210 — running under Windows 10 — it’d been more than a decade since I’d enjoyed the fun of losing work by having a video driver crash and take down my entire system. Now I get to enjoy the ride every other day!

I also really appreciate how the nVidia Control Panel, and the nVidia Experience app, always display error messages when they open up. My particular favorite is “nVidia not available, please try again later”. I view that as a wonderful commentary on the demonstrated quality of nVidia’s software.

By dint of great effort, and working through repeated error messages, I believe my drivers are all up to snuff (I’m currently at version 341.95). I know that Windows 10 is completely up to date, since that happens automatically.

Thanx, nVidia, for perpetuating a key part of the computing experience that I feared had been lost forever.

Into the Wayback Machine

My buddy Connell runs an election/campaign advisory firm. He has a database that he uses to track voter profiles, create outreach lists, and the like. To minimize annoying voters — never a good idea when you’re running a campaign — he needs to stay on top of whoever has already voted, so he can take them off the outreach lists (who has voted is a matter of public record; how you vote is not).

Unfortunately, his database/computer guy isn’t available, and Connell wasn’t sure how to import the voting data. Worse yet, he couldn’t find the manual for the software. Between the two of us we came up with a number of different ways to try and work around these problems…but none of them succeeded. So, as always, when subtlety doesn’t work, it was time to turn to brute force :).

[Read more…]

They Have World Class Talent and This Support Site?!?

I bought Barbara an Intel NUC — a tiny (5 inches square, 1.5 inch tall) computer — a couple of years ago. It’s fast, quiet, small and dependable…up until now.

The other day the wired ethernet connection died. It isn’t a cabling problem — I tested the connection with a Raspberry Pi — and downloading/re-installing the drivers didn’t fix it. So I went to the Intel support site to start a repair ticket.

That’s when the fun started.

[Read more…]

“Please Contact Windows”

I’m a long-time user of the Adobe Creative Suite. So I’m more familiar with Adobe software than I’d like to be…because it is generally insanely great, from a creative point of view, and all too often not very well written, from a nuts-and-bolts point of view.

[Read more…]

Murphy’s Law

Okay, deep breath. I’m going to write about this because, well, it is funny, in a dark, ironic way. At least now that a few hours have passed.

[Read more…]

Dear Comcast

Dear Comcast,

Tonight I called you to re-activate my cable boxes because one of them had stopped working and I wanted to use that TV to watch an On Demand movie. Which would, you know, earn you some more money.

The first time I called your tech rebooted my cable modem instead of reactivating the set top boxes. The only upside to this was that it terminated my phone call to tech support — I have my phone service with you, as your tech would’ve known if he’d checked his screen — so I had a chance to re-enter the Comcast Tech Support Person Lottery.

Fortunately the second time I got someone who knew what he was doing. And actually listened to my request. And knew that “reactivate cable boxes” isn’t remotely like “reboot my cable modem”.

Of course, re-activating the cable boxes means they take 45 minutes to re-initialize the program guide and, more to the point, the On Demand functionality. In that 45 minutes I could download, oh, about 12 gigabytes of data over my Comcast High Speed Internet Connection. That must be one honking big program guide and On Demand subsystem.

I get so tired of monopolies who cherish their market power to the extent that they almost totally ignore customer service. I hope I live long enough to dance on your grave.

All the Best,

Disgruntled Comcast Customer #377,582

Less Noise Is Good News

In preparation for moving to a new home I’ve been going through my stash of surplus motherboards, hard drives, etc., and getting them ready to donate to the local community college district. This finally caused me to look into disk-scrubbing software, since I don’t want to release drives that may have confidential information on them.

The scrubbing exercise has reminded me of a few things I’d completely forgotten about:

  • I am so glad the industry moved to the SATA interface from PATA. Those !@#$!@#$#@ forty  pin EIDE connectors, and power connectors, are a pain in the butt to remove.
  • It’s laughable how much storage capacities have grown. None of the scrubbed drives are more than eight or so years old, but the earliest ones stored only 6 gigabytes of data. I just built a NAS4Free file server around four 3 terabyte (3,000 gigabyte!) drives, each of which has 500x the capacity of those old drives…in the same volume. For the same cost. In nominal dollars. Wow!
  • Those old drives were noisy. Work environments must have been a lot louder back in the day. Yet I don’t remember that.