Mostly about my amusement

Month: December 2018 (page 1 of 1)

Norton Security Premium Renewal Scheme

I’ve been using Norton security products since the time of the flood. It works, I have protection for the kids devices as well as mine. Every year close to the end of my subscription I get an email that goes like this.

Hi! Your Norton Premium Security subscription is about to expire! Please authorize this payment of $109. Oh, and your credit card on record isn’t valid anymore. We would have just charged you for the full amount but the number isn’t working.

Have you met our Personal Savior Lifelock™? Have you? HAVE YOU MET LIFELOCK? LIFELOCK! LIIIFFEELOOCCCKK!!!! PRAISE TO THE LIFELOCK!!!!

I may be paraphrasing it and/or exaggerating just a little. Not that much.

Last year I called them on the phone and got a very professional person and here’s how the conversation went.

Me: Why would I pay over $100 for that when for $50 I can get the same thing from Costco?

Norton Rep: It’s not the same thing and you do want to renew, right?

Narrator’s Voice: It was the same code, same product and same protection. From the same company.

I ended up getting a discount that matched Costco’s price. It’s been another year and my subscription is due again.

This week I had a repeat of that but instead of a phone call it was an online support chat. That’s cool, I prefer that as there’s not really a he said/she said possibility. We both kept a copy of the chat log.

Amazon had a deal for the same package except for 15 months of coverage and only for $35. With tax it came out to $38.01.

After some back and forth, the polite person inform me that if I did buy that, come back to the chat and reference the still open case. They could add that 15 months once I gave them the code and that’s exactly what I did. I’m good till April 2020.

Here’s where it gets weird. After I validated that my coverage for updates, A/V signatures, etc. was good I received an email from Norton complaining that my credit card info wasn’t good (the card was long cancelled) and that I risked not getting coverage. I went online and disabled automatic renewals.

I’m still protected but only until April, 2020. I can deal with that.

This is how Companies Lose Their Customer’s Trust

In the past I would have cheerfully left on automatic renewals. I think that Software as a Service (SaaS) is a good, sustainable business model. I just don’t like it when companies try to take advantage of me. I no longer trust Norton or their business practices.

Two years in a row I have had to contact Norton just to get the price that they should have offered me in the first place for renewal. They opted to try and get me to renew for $109 automatically. I saved $71 and got another 3 months of coverage thrown in by purchasing the same product from Amazon.

I feel like Norton would rather slip in that expensive renewal than give their customer a discount that I can get just by purchasing the exact same product from their retail channel.

Renewals are a big Part of a SaaS Business

It’s not just the initial sale that gets companies revenue. The renewals are just as important as the initial sale.

I use Cisco Umbrella (I am employed by them) as my main protection on the Internet. It’s the enterprise version of the free OpenDNS and it’s good. For protection I recommend everyone sign up at OpenDNS, install the IP Updater so your settings keep for your household and go. It’s amazingly effective.

I use Norton as a supplement to that protection. I use it out of habit in case there’s something that Umbrella missed. Umbrella has missed a thing, I review my Umbrella logs and Norton logs as well. The Bad Stuff is caught by Umbrella and that means my local copy of Norton never has to deal with it. Life is good.

Norton’s renewal process and pricing is making me re-consider that relationship. I won’t have to deal with this till 2020 but my memories are long and this process was tiresome last year.

If there’s something comparable that crosses platforms I use then I don’t see why I would consider renewing Norton any longer.

Octoprint and Reverse Proxies

I have two active 3D printers, each hooked up to their own Raspberry Pi 3 running Octoprint. I like to manage them from my iPhone when I’m about. I don’t want to expose my IoT devices to the Internet without some precautions.

Here’s how my Internet connected house is setup.

Simple network diagram

The diagram was created and edited in Free online tools FTW.

My FIOS router on the left listens on port 80 and 443 and forwards that traffic to my Ubuntu Linux Server. On that server I run Apache2 with mod_proxy enabled. 

I run ddclient to update a DNS name with my floating IP address. I use virtual hosts on the Ubuntu Linux Server to receive all external http/https requests. All http requests on port 80 get 301’ed to https on the same host. 

First setup https on the virtual host as you normally do. Before trying to reverse proxy, have a default index.html file and make sure that works. I use Let’s Encrypt for the TLS certificate as it’s free and easy to setup.

Here’s reverse proxy configrution. is the internal IP address of my first Octopi. Make sure the DNS name is working first before trying to test anything.

ProxyPreserveHost On
ProxyPass "/"  ""
ProxyPassReverse "/"  ""


ServerAdmin webmaster@localhost
DocumentRoot /var/www/vhosts/

<Directory /var/www/vhosts/>
        # Options Indexes FollowSymLinks MultiViews
        Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
        Options -Indexes
        AllowOverride All
        Order allow,deny
        allow from all
<Location />
        AuthType Basic
        AuthName "Wrapper Auth"
        AuthBasicProvider file
        AuthUserFile "/var/www/external.htpasswd"
        Require valid-user

That <Location /> section on the bottom? That’s important. That’s the section that says “You need a password to access this URL” and protects the Octopi setup from passerby’s on the Internet.

What I tell you three times is true.

  1. Do not expose any IoT devices on the Internet without encryption and passwords.
  2. Do not expose any IoT devices on the Internet without encryption and passwords.
  3. Do not expose any IoT devices on the Internet without encryption and passwords.

It’s just a bad idea. The wonderful Gina Häußge who writes and drives the Octoprint software knows this and has an excellent guest post on her blog about that access. This post is how I accomplished the Reverse Proxy method.

The password is created using the htpasswd command.

$ sudo su - www-data -s /bin/bash -c "htpasswd -c /var/www/external.htpasswd bob"
New password:
Re-type new password:
Adding password for user bob

I sudo as the www-data user so that the ownership of that file will be set as I want it. This creates a file with bob and his hashed password in it. The AuthUserFile directive will use that. If you have a valid user ID and password, you get in. If not you don’t get access.

The configuration gets copied for a new Pi. Just change the IP and ServerName and you can re-use this for other Octopi installations. By having an encrypted password protected access to your Octoprint setups, you can monitor and control your 3D printers from anywhere you have Internet access.

New Kossel 3D printer

I’ve had my Monoprice Duplicator v2 for almost 2 years and it developed some problems.

  • The firmware lacked safety features I wanted. I could have (maybe) updated the code but I’m not sure how many features would fit. The board on it is an old Melzi clone and I would need to buy another board just to update that one.
  • The printer needed love and attention. I started getting layer shifts, the bed surface began to look like the surface of the Moon and prints started suffering from layer shift.
  • really like 3D printers that auto-level (tramming) in some fashion. That’s my favorite feature on the Prusa Mk2s and it generally just works. Leveling this printer’s bed was a real challenge. 

When I started looking the Ender 3 was the low end printer to get. It looks modifiable and a friend of mine likes his. He also purchased a Kossel delta printer and I was hooked.

Mini-Kossel vs Cartesian

Most 3D printers have a rectangular or square bed that moves forward and back for the Y-axis. The hot-end (the part that extrudes melted filament) moves left right on a rail for the X-axis and that whole rail moves up and down for the Z-axis. 

What makes this printer different is that the bed does not move. The bed has a 240 mm diameter and is round surround by three columns. Movement is controlled by sliders on those columns moving up and down together. It’s very cool to see.

Since the bed does not move that makes what is being printed in place very stable. The head can move and I print infill at 100 mm/s. The perimeters of my 3D print are set at 50 mm/s but I can safely increase that to 80 mm/s without any worries and that’s fast.

ANYCUBIC Linear Plus Kossel

I don’t think the manufacturer produces this printer anymore. The support section is still there but it’s no longer listed as product. That’s cool; it cost me $218.40 with free shipping from Aliexpress.

The build took me about 90 minutes. The kit is already half-assembled and very straight forward. The end stops screws made me want to punch a kitten as the screws would not set all the way in. I will probably print new ones out of ABS and re-do them. Also not all of the screws or t-nuts were of the best quality and stripped easily. For what I paid I am not complaining.

I did a test leveling as detailed in Anycubic’s manual and looked for a kitten to punch. The process is just awful and resulted in a bad first layer.

Marlin 1.1.9 to the Rescue

I’m a big fan of opensource software and the process for leveling this printer with Marlin is detailed in this Youtube video. It was that video that convinced me to get this printer. Da Hai knows what he’s doing and has his configuration files available to download. My version is the larger size and I started to modify Marlin to adjust for my bigger version.

I promptly fell on my face too; I do not know what I’m doing in Marlin. Some searching and I found this excellent blog post which is a review of the same printer and how the author was able to upgrade to that version of firmware.

I tested, made a couple of minor changes such as the printer display name and adjust how auto-home works and poof! I updated the firmware.

Everything worked. I used the process from Da Hai’s video to measure the surface and printed away. It just worked. I’ve added Anycubic’s Ultrabase, re-leveled the print bed and just went.

There are some test prints that you do to make sure everything is working. I printed 3D Benchys, I printed a 6 gear bearing (it prints in place) and they printed fine. The measured bed leveling produced a perfect first layer.

Then I changed the PLA to some from Inland (I had been using the roll that shipped with the printer) and printed this print in place iris box. I have never been able to successfully print this one before no matter how I tuned my printers. You make some small cuts on the base and rotate the bottom from the top. I didn’t have much success in the past but the pieces always were locked together and would not move. The results were great. I had no problem with this one at all.

Printed in place iris box

There are some artifacts in the print but it works. The printer is very precise.

Not for a First 3D Printer

This is my 3rd filament 3D printer. I’m comfortable with compiling the firmware, with the assembly, etc. but I do not recommend someone buying a Kossel printer unless they know what they’re doing.

The manufacturer’s documentation was very good. The printer was easy to assemble. Without the new firmware, without the very helpful posts and videos, I may have had a much harder time at it.

Since I do have some experience I’m having a good time playing with this latest toy.