My Little Corner of the Net

I’m An Engineer

From time to time when I was a kid, my grandparents would take me to Santa’s Land, a Christmas themed theme park in southern Vermont.

On one of those trips, I remember buying a mechanical Christmas tree toy in the gift shop. The tree was made of three aluminum triangle-ish segments that were mounted to a disk. When you pushed in on the lever on the handle, the disk would spin and the centrifugal force would cause the tree segments to pull apart, revealing a Santa inside. I remember looking at the all the gears that made the toy work and thinking, “I could take this apart and put it back together” (because that’s how my brain works sometimes), and I proceeded to disassemble the thing one afternoon at the table on my grandparents’ back porch.

Of course, getting it back together wasn’t as easy as I thought it would be, and when my grandmother came out to see the toy she had bought me turned into a pile of components, she just shook her head and said “you’re going to be an engineer someday.”

My grandmother said I’d become an engineer many times. I have no idea if this particular incident was the first time; it probably wasn’t and it definitely wasn’t the last, but it’s the memory that sticks with me. I, of course, didn’t go into engineering, I went into software, ultimately getting a degree in Information Technology. Software engineering was still a pretty new discipline when I was in college, and by the time I graduated most companies were still using variations of “programmer/analyst” for their software job titles.

“Software engineer” has, of course, become a much more common job title now, and I’ve been calling myself a software engineer for several years, but I’ve never had anything official to back it up. That changed recently as a result of a project to reevaluate and standardize job titles and descriptions across my organization at work. We’ve had systems engineers and network engineers for years, but on the software side we’ve had programmer/analysts (or in my case, “technical team lead,” though what that meant was never well defined and tended to vary based on who I was reporting to at any given time). The applications development managers successfully argued that, since the other teams had engineers, their teams should have software engineers, and it worked. Our job titles got updated last week.

So grandma, you were right…I did become an engineer. And now it’s official. I’m sure you’re proud of me.

My Decision to Move to US Mobile: Nine Months In

About nine months ago it was time for new phones, and I decided that it was also a good time to leave Verizon after being a Verizon post-paid customer for probably 15 years. The Verizon network is the best bet in this area, especially in the more rural areas I often visit (or at least used to visit, pre-pandemic), such as at my mom’s house and the Adirondacks, but Verizon is expensive.  We were on a legacy plan, with two lines, 6Gb of shared data, and a decent discount that I got through work which, with our phones paid off, was running us about $95 a month.

With both of us having access to Wi-Fi at work (and me now working from home and almost never using data), we were pretty much never using anywhere close to all of the data we had available, but whenever I looked at Verizon’s updated plans, it would have actually cost me more to drop to a smaller plan.  That’s when I decided to start looking at Verizon-based mobile virtual network operators (MVNOs).

After looking around a bit, I stumbled on US Mobile.  I hadn’t heard of them before, but I liked that they had a build-your-own-plan approach, similar to what Ting used to offer, letting you pick exactly how many minutes and text messages, and how much data you think you’ll need at the start of the month.

US Mobile operates on two mobile networks.  Nowhere on their site do they actually say what networks they are, but it’s not hard to figure out that their “SuperLTE” network is Verizon and their “GSM LTE” network is T-Mobile.  5G is supported on all plans, if it’s available and your phone supports it.  When you order their starter kit, they send a SIM card for each network so you can test them both out and choose the one that works the best.

Based on our average usage with Verizon, I built a plan that included unlimited talk and text and 1.5 and 2.5 Gb of data per respective phone (at the time, US Mobile didn’t offer shared data, so you needed to pick a specific allotment for each phone).  That first month cost us about $56 total, so we saved just under half of what we were paying Verizon.  After a couple of months with them, however, US Mobile began offering a set of new “unlimited” plans including one that offered unlimited talk and text and 2.5Gb of data for $15.  This turned out to be even more economical for us, bringing our bill to a few cents under $40 once you add in the $2/month line access fee and 15% regulatory cost recovery fee.  Even better, US Mobile has increased the amount of data in this $15 plan every few months, from 2.5Gb to 3.5Gb and now 5Gb, so now we’re getting more data than we did with Verizon for half the price.

Just this month, US Mobile added shared data options.  With these, you pay $9 per line for unlimited talk and text and then add data for $2/Gb that’s shared across all lines.  I haven’t thought about switching yet, but I could probably shave off a few more dollars if I did.  Using our old Verizon plan as a model, two lines with 6Gb of data would cost $30.96—a third of the cost of the old Verizon plan—but I’d need to look at the numbers to ensure our data usage hasn’t changed and…well…I’m just not sure it’s really worth it at this point.

US Mobile also offers “unlimited everything” plans for as little as $25, if you have at least three of these lines on your account.  If you only need one line, though, they’re a bit more expensive than other carriers, at $45.  Unlimited everything plans are full-speed, but don’t include hot spot access (though you can add it for $10 more).  You can also get a “perk” with three unlimited everything lines (like free Netflix or Hulu/Disney+/ESPN+), and two perks with four lines.

US Mobile is primarily a BYOD, or bring-your-own-device, provider.  They do sell phones, but most of the phones they offer are older or less powerful models.  The two Android devices they had when we switched were both about two years old, for example.  That’s OK, though, because you can buy almost any unlocked phone on the market and bring it to at least one of US Mobile’s networks.  Since our Galaxy S7 were quite long in the tooth when we switched, we bought new, unlocked S20s at Best Buy and they work great on US Mobile’s SuperLTE network.

US Mobile has no contracts and plans are good for 30 days, after which you are free to choose an entirely different plan if you so desire.  If you underestimate your needs, you can add “top ups” to get more text messages, phone minutes, or data and these top ups rollover to the next month automatically, so long as you keep the line active.  Unlike the big phone companies who generally charge a premium for extra data, top ups cost the same as when buying them initially.

I was a bit gun-shy about switching providers, so I decided to order a small plan on a new number to give US Mobile a try for one month.  After US Mobile’s support team assured me that they’d be able to reset the SIM when I was ready to port my number, I signed up for a handful of minutes and texts and 1.5Gb of data and started playing.  All of my speed tests were comparable with my Verizon plan and reliability seemed just as good, so we decided to make the switch.

Porting our numbers did have a couple of hiccups.  To port out, Verizon requires that you go to a page in their customer portal and create a PIN.  You then provide this PIN to US Mobile.  The same PIN is good for all lines on the account.  When I created my PIN, I didn’t bother two write it down, as I thought I’d be making two quick copy-pastes and be done, but the Verizon site logged me out before I got to the second phone, causing me to lose the PIN.  That left me on the phone with Verizon for a good 45 minutes while they tried to figure out what to do, though they were able to finally figure out what the PIN was and provide it to me over the phone.

On the US Mobile side, our phones didn’t activate automatically, as they should have.  This was easily corrected through a quick support chat, and within a few minutes we were in business.  They say that a port can take up to 48 hours to complete, but ours both happened within minutes, although the fact that we weren’t actually leaving the Verizon network probably helped.

There are a few benefits to Verizon’s service that we’ve lost with US Mobile, but they’re minor.  First, there’s no Wi-Fi calling, at least not on SuperLTE.  This isn’t a huge deal, but it does mean that you end up using your cell data if you’re browsing the web while talking on the phone.  I’ve also discovered that I can’t use Wegmans’ Scan app to scan my groceries from my phone while I’m talking on it, since the app requires that you be on the store’s Wi-Fi.

International roaming is a bit different, too.  When we were on Price Edward Island for my sister’s vet school graduation, Verizon’s TravelPass was great—for $5/day we had access to our regular phone number for calls and texts, which made it easy to coordinate meetups with other family members who were staying in different hotels.  While US Mobile supports international roaming, it’s for data only and requires a phone with an eSIM (which ours supposedly have, though the feature seems to be disabled).  If we were going to, say, take a trip to the falls or to Toronto for a weekend, I’d have to buy an international data plan (for Canada it’s $10 for 1Gb or $30 for 5Gb) and then I’d have to forward my calls to my Google Voice number or my home VOIP number if I wanted to be able to receive them (and since you can’t automatically forward text messages, I wouldn’t be able to get those until I got back over the border).  But I don’t see myself venturing to Canada any time soon—not until they start allowing non-essential border crossings at least, and when we do go, it’s usually just for the day, so not having our phones isn’t a big deal.

I have to say that I’ve been nothing but happy with my choice to switch to US Mobile.  The service has been just as reliable as it was with Verizon and, while I haven’t travelled to any super remote places like the Adirondacks lately, I’ve had great service everywhere around here that I’ve been, including in some of the rural hill towns.  While there are a few gotchas that we had to deal with, they were all minor, and US Mobile’s support has been phenomenal, at all hours of the day.

Interested in trying US Mobile?  I have a limited number of promo codes available that will give you 50% off your first plan, up to $10 and will give me a similar discount on a future bill of mine.  Hit me up in the comments if you’d like me to share and I’ll reach out to you on the email address you provide.

The Samsung Desktop Experience

I stumbled on this Gizmodo article last night and learned something about my phone that I didn’t know. Apparently every Samsung phone (at least in the Galaxy series) since the Galaxy S8 has a feature built into it called DeX, or the Desktop Experience, that allows you to use the device as a desktop by plugging it in to an HDMI display. Older devices required DeX-specific hardware for it to woek, but new devices, including my S20, can do it with any USB-C to HDMI adapter.

Since I have a couple of adapters that I use to connect my Macbook to my office monitors, I decided to try it out. After having to click through a couple of instruction screens the first time, my phone’s screen became a trackpad and a desktop that somewhat resembled a Linux desktop appeared on my monitor (yes, I know Android is built on Linux, so it technically is a Linux desktop). When I plugged a keyboard and mouse into the USB port on the adapter, my normal phone display came back up and I was able to continue to use it as normal, wth the monitor acting as second display.

On screen I’m able to access all of my apps, including a full screen version of Chrome, which I’m using to compose this post. It sort of reminds me of the Motorola Lapdock, except that, unlike with the Lapdock, you can still use the phone while it is teathered to the screen.

The interface is a little clunky–while keyboad shortcuts like Control-C an Control-V work, right clicking and long-clicking both don’t, so copying and pasting links and things is a bit of a pain. All in all, though, it works in a pinch. If I ever want to travel light (if I ever get to travel again), I could see myself bringing a small Bluetooth keyboard and an HDMI cable with me, so that I could plug in to a hotel’s TV when I needed something bigger than a phone screen, instead of having to lug a laptop around.

There’s also, appearently, a DeX for PC/Mac app that you can install on your desktop in order to access your DeX desktop on a running computer, sort of like accessing another machine over Remote Desktop. I haven’t tried this yet, but the article indicates that it allows for easy file sharing between the device and the computer. I may give it a try because, if it allows the phone’s audio to be played through the computer, it could be a handy solution for when I listen to podcasts while working. Currently, when I’m in the office (OK, so back in the olen ays when I worked in an office), I have to continuously switch my headphones between my computer and my phone when switching from Zoom meetings on the computer (or YouTube how-to videos) and my podcasts on my phone while I’m doing work. It’s not hard to do that, but it is a bit of a disruption, and DeX might be a solution to make the transition seemless.

Emmet Toolkit

Last night I was watching a YouTube video on some new web framework, trying to decide whether it was worth it to learn yet another new tool.  The framework was meh, but as the presenter was giving his demos, he was using someting called Emmet in Visual Studio Code to quickly create his HTML markup.  I was intrigued, but I don’t use VSCode that often as I’ve been a big fan of Sublime Text  since long before VSCode was a thing.  Fortunately, a quick check of Package Control showed that Emmet is available for Sublime, too!

So what is Emmet?  It’s an editor plugin that makes writing HTML faster by using a CSS-selector-like syntax to form the tags.

For example, typing this:

h1.main-heading#site-title

would result in the following HTML tag in your document after you press tab:

<h1 style="main-heading" id="site-title"></h1>

Emmet will also automatically position the cursor inside the tag once it creates it, making it easy to add your content.

Note that Sublime text will need to know that the file you’re editing contains HTML in order to activate Emmet.  You can do this by either saving the file with an .html extension, or selecting “HTML” from the document type menu in the bottom right corner of the window.

As you can see, the input structure consists of a tag name, followed by a dot to add a CSS class, and/or a hash to add an ID.  You can add multiple class names, too, which is useful if using CSS frameworks like Bootstrap or Tailwind:

div.container.mx-2.my-3.p-3

Which results in:

<div class="container mx-2 my-3 p-3></div>

Emmett can also create children with the > operator.  To create an unordered list, enter:

ul>li#item$*5

In this example, the $ tells Emmett to add a counter to the attribute and the *5 tells it to repeat the tag five times:

<ul>
    <li id="item1"></li>
    <li id="item2"></li>
    <li id="item3"></li>
    <li id="item4"></li>
    <li id="item5"></li>
</ul>

If you don’t specify a tag name, Emmett defaults to div, so entering:

.card

results in:

<div class="card"></div>

but it’s also smart enough to use a span if you create an element without a tag name inside an inline element:

<a href="https://example.com">.highlight</a>

This gives you:

<a href="https://example.com"><span class="highlight"></span></a>

Similarly,  if you create the element inside a list:

<ul>.menuitem>a</ul>

you’ll get a li:

<ul><li class="menuitem"><a href=""></a></li></ul>

Perhaps my favorite Emmet shortcut, though, is !. It creates the full HTML5 boilerplate for a new page. No longer do I have to go hunting Google for a template whenever I start a new project (since I can never remember the proper format for the “viewport” meta tag). Now I just have to type a bang, press tab, and I get this:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <title>Document</title>
</head>
<body>
 
</body>
</html>

Emmet also works with CSS files, though I haven’t really looked into those options yet.  Sublime, of course, already has pretty good CSS autocompletion, but Emmet gives you additional shortcuts, like m and p for setting margins and padding, respectively.  For example, expanding mauto10 in a CSS (or Less, or Sass) file will result in margin: auto 10px;. Personally, however, I find Emmet much more useful for quickly composing HTML.

Emmet is available for many editors, not just Sublime and VSCode. Among the others are Coda, Brackets, Atom, Eclipse, NetBeans, and even Dreamweaver. There’s also a JavaScript version so that Emmet completions can be added to textareas in web apps, as well as plugins for online IDEs and coding playground sites like CodePen and JSFiddle.

Installing Emmet in Sublime Text is easy if you’re using Package Control. Just press Ctrl-Shift-P or Cmd-Shift-P, depending on your platform, to open the Command Palette. Then start typing “Package” to find the “Package Control: Install Package” option. Then enter “Emmet.” There’s a few related packages available, but you’ll want the one that’s just called “Emmet.” If you don’t have Package Control installed, you can add it by following these instructions.

Happy coding!

Goodbye Cable TV–Don’t Let the Door Hit You In the Ass on the Way Out

I can still remember how excited I was when we first got cable TV as a kid.  My grandparents had had cable for a while, and I loved watching Nickelodeon when I’d visit them, so I was psyched that I’d now be able to watch it whenever I wanted.  Our first cable box was one of the slider boxes made by Hamlin.  It was about three inches thick, probably weighted 10 lbs, and permanently sat on the shelf under the TV.  When you wanted to change the channel you got up and used your finger to slide the little white switch to another of the 42 positions available (numbered from 2 to 43), though not all of them actually carried content.  (The lack of a channel 1 was a carryover from broadcast TV, where the frequencies allotted to channel 1 turned out to be unsuitable for television broadcasts.)

The channel guide for the cable service we had when I was in high school, found on an old TV I got rid of when we moved.

Early cable was interesting.  I remember sometimes “watching” HBO, even though we didn’t subscribe to it.  The picture was unintelligible because of the scrambling they used at the time, but the sound was usually OK enough to understand what was going on.  When you added HBO to your service, the cable guy had to come to your house and install a little filter, known as a descrambler, to the cable line before it connected to your cable box.  I distinctly remember HBO was channel 2 back then, Nickelodeon was 19, and because the FCC hadn’t yet regulated where local channels had to be placed, they were kind of interspersed all over the dial.  I also remember that subscriptions were per-TV, too (though I guess we’re kind of back to that now, given that most carriers require a digital decoder box nowadays), so most of my friend’s houses had cable in the living room and, if they had a second TV, like in the basement or in a their parents’ bedroom, that one usually had rabbit ears. 

Cable was a magical thing back then, not the monstrosity that it has become today.  A couple weeks ago, I was just as excited to get rid of my cable as I was to get it some 35 or so years ago.  While I don’t know how much we paid for cable when we first got it back in the 80’s, I do know that the $215/month that I was paying is well more than a 100% increase over the roughly $90 I was paying when I signed up for cable TV and Internet service in my first apartment after college in the early 2000s.

So what does $215/month actually get you?  Well, who knows, because Spectrum packages their plans in such a obtuse way that it is nearly impossible to understand.  When we moved our current house a few years ago, Time Warner had just rebranded to Spectrum, and they upgraded me to their latest package which included all the non-premium TV channels, 50Mbps Internet, and phone.  I told the sales rep that I didn’t need phone (I was already using a VOIP provider I liked, not that I really need a home phone anymore), but he told me it was cheaper to give me a bundle that included phone than one that didn’t.  OK, whatever.

According to my bill, I had “Starter TV” and “Standard TV.”  So what channels does that come with?  Well, I’m not sure, because if you go to the channel guide on Spectrum’s website, the options you see are “Spectrum Select,” “Spectrum Silver,” and “Spectrum Gold;” nowhere on the site does it talk about “Starter TV” or “Standard TV.”  Likewise, my bill said that I had an “Ultimate Internet Upgrade,” but nowhere on the bill or on Spectrum’s website could I find what that actually meant.

At some point, Spectrum increased the speed of their Internet plans, upping the lowest plan to 100Mbps.  At the time, they said that anyone on a Spectrum plan would get the increase automatically, but customers on legacy Time Warner pans would have to call and switch to a Spectrum plan to get it.  I noticed the speed of my connection jump to somewhere between 60 and 70Mbps around this time, so I assumed that my modem, now several years old, was just incapable of going any faster.  I made a point to see about getting a new one, but it wasn’t a huge priority, and I never did.
Since the TWC/Charter merger had already happened when we moved, I assumed that I was on a Spectrum plan: the guy who came to set up service in my new house was wearing a Spectrum shirt and driving a Spectrum truck, and the work order I signed when he was done said Spectrum at the top of it.

When the pandemic started, and I started working from home, I decided it was time to get the Internet speed I was actually paying for.  I had a second modem, that Spectrum had given me for the phone service that I wasn’t using, that was sitting in a box on the shelf, so I took it out and tried to set it up.  I couldn’t get it to work, so I called tech support for help. After sitting on hold for more than an hour, I found out I was on a Time Warner plan with Internet capped at 50Mbps.  I was transferred to sales to see about upgrading, spent another 45 minutes on hold, and was then told I had to call a different number to get upgraded.  I called that number, stayed on hold some more, started talking to a rep, but got disconnected.  Then I gave up.

A few weeks ago, we decided it was finally time to get rid of cable.  We made a list of all of the channels we regularly watch, and I started looking at what streaming services would be the best match.  We finally decided that Sling TV’s Blue plan, along with Hulu, got us access to most of the shows we like.  Philo was a close runner up, with a ton of channels for only $20/month, but its lack of news channels was a dealbreaker.  I also signed up for Frndly TV because someone also needed the Hallmark Channel (I could have added Hallmark to Sling for another $5, but Frndly also gives us Up, which she also likes, and the Weather Channel, as well as a couple other channels that might be interesting, for just a couple bucks more).  We already had Netflix and Amazon Prime and I installed an antenna in the attic to get local channels, piped through an HDHomeRun into my Plex server.

A couple days later, I happily cancelled my TV and phone services, returned all of my equipment, and finally got my Internet upgraded to 100Mbps.  I asked about getting a new modem, but the sales rep insisted that I just keep the phone modem, which she activated because, apparently, it never had been activated, which is why I couldn’t get it to work.  Oddly, she said she was doing a check to make sure the modem would be compatible with my router before she told me keep it.  “Well, it has an Ethernet port on it so, yeah it’ll work with my router,” I thought, “and how can you tell what kind of router I’m using, anyway?”

Back in the Time Warner days, when they decided to start charging a monthly fee for their modems, I went out and bought my own, which I was still using, 10 or 12 years later.  Spectrum no longer charges that fee, so rather than buying an upgrade, I figured I’d just let them give me a modem again.  My neighborhood will hopefully be getting Greenlight fibre soon, so why waste the money?  The phone modem turned out to be a piece of shit, though, that would stop working roughly every 18 hours and would need to be reset.  I also hated that it was four-times the size of my old modem and took up most of the space on the board in my cellar where my network equipment is mounted.  Out of frustration, I ended up buying a new modem, a Netgear CM500, for about $60.  It’s not a top-of-the-line device, but it’s one of The Wirecutter’s favorites, and it’s good enough for my needs.  The only downside for me is that it’s not wall mountable–I ended up sinking a couple of lag bolts into my networking board to rest it on, then used wire ties to hold it in place.  It works, and I haven’t had an outage since I got it up and running.

As far as cost savings go, Sling, Hulu, and Frndly run me about $40/month.  Internet-only service from Spectrum is about $70, so altogether I’m now dropping about $110, or just over half of what I was paying before.  All three services work fine on our FireTV Sticks and video quality is as good as it was with cable.  Sling does freeze up every once in a while, but it can usually be resolved with a quick press of the back button on the FireTV remote, and then selecting the channel again.

Now if only Greenlight would get here faster… 

<