Archive for the ‘Vendors’ Category

Odd Repl.it Editor Bug in Safari

Tuesday, July 14th, 2020

Clojure.jpg

I've been a big fan of Repl.it as it allows me to be able to fire up a nice Clojure REPL without a lot of grief or overhead, and it's fast enough for small projects, and while it's not perfect - like you can't include a real project.clj so you can't load other packages, it's still pretty nice.

A few weeks ago, I noticed an odd little bug in the editor on Repl.it - the cursur wasn't where the actual insertion point was on the editor:

Real it Editor Bug

The more you had on a line, the more of a gap there would be on the editor. And it didn't matter if I was using the Desktop browser on my iPad, or the Mobile browser... on my iPad, it was off. And I tried a lot of things... reported it to the Bugs List for Repl.it, and while others had seen it - there were no answers.

Finally, I thought about the zoom feature.

On my iPadPro, for Repl.it, I like to zoom out a few steps to get more on the screen. I don't mind the smaller fonts - I can read them just fine, and it reduces the "dead space" on the screen quite nicely, so that I have a good editor window, and a nice REPL window.

So I went back to Repl.it, pulled up a saved REPL, and rest the zoom to "Original". Boom! The cursor and the insertion point lined up, and looked just fine. I then updated my Bug Report on Repl.it, and hoped that it was going to be a lot easier to reproduce for the developers - because I had a way to make it "Good", and then "Bad", and back to "Good". Repeatable 100% of the time!

It's been a few weeks, and nothing, so today I offered to help work on this, as I'd really like to have this fixed, and I'm sure others would too... but I may have to wait for iPadOS 14, and hope that Safari on iPadOS 14 is going to fix this behavior.

I'd be happy to help... because I'd really like it fixed before the Fall.

Comcast XFi Goes Unlimited

Tuesday, June 30th, 2020

NetworkedWorld.jpg

Well, what a nice development... Today I got an email from Comcast that they are now are removing the 1TB/month transfer limit and allowing accounts like mine to have unlimited transfer per month. This started a little earlier in the lockdown, but I guess they saw it was popular, and so they let it stick.

I, for one, am very glad that I don't have to pay extra for the "Unlimited Transfer" any more. 🙂

UPDATE: I got an email from Comcast about this, and it turns out that they are not quite giving it away... what they are doing is "bundling" the XFi router rental and the Unlimited Bandwidth at roughly a $25/mo savings to me. Well... it's better than nothing, and it's not like I'm going to be getting rid of either anytime soon... so OK. I'll take the $25/mo. It's pizza money. 🙂

Getting CBS All Access Working on All Devices

Saturday, April 25th, 2020

TV.jpg

When I signed up for CBS All Access last month, I did so through my Apple TV 4K, as it was super simple, and it registered it as just another of my subscriptions that I could manage through my iCloud account on any device. Very handy. Yes, it seems that CBS requires that some of the account management functions be done on the original device, my Apple TV 4K, still, it is possible to manage it to some degree on my iPhone and iPad. Great.

But getting the CBS All Access to actually stream shows on my other devices was a bit elusive. I had tried to open the app, Sign In, and restore my purchase from iTunes, as there is a button just for that. But each time I tried, on any device, it said that I had once had an account, and that I should go back and sign up. I thought that was all because I was in the free month that was given out because of the coronavirus lockdown.

Turns out, I was wrong.

That's not how you do it.

Once you have the CBS All Access subscription in your iCloud account - from any device, simply go to the CBS All Access page: https://www.cbs.com/apple/ and there, you will see that you can Login with Apple TV, and you will enter your Apple ID information, with any 2FA that you might have on your account.

Once logged in, CBS All Access will then ask you to create an account that will be tied to your Apple ID. Name, email, password - just like a new account. But this one isn't charged - the Apple Subscription is.

At this point, go to your other devices, and Sign In with the newly created email and password, and they will instantly be tied to the newly created account. It's just that simple. But getting here wasn't. 🙂

In the end, it was worth a little searching to try and find out how to get this working, which is why I wanted to write this up for all those folks that might find themselves in a similar predicament.

New Laser Printer Arrived!

Friday, March 27th, 2020

NetworkedWorld.jpg

Well... my HP Color LaserJet Pro M255dw arrived today and while I was in a meeting, my daughter was kind enough to sign for it, and then I had the task of moving out the old HP LaserJet 1200, and putting the new color printer in. I could not have been more happy.

I knew the toner cartridges that ship with a printer are on the smallish side, so I went ahead and got the "high capacity" ones as well - and I can keep them in the closet until I need them. I also picked up a new pack of paper on my weekly Target run, so I have paper and toner for a long, long, time. 🙂

Other than color, the thing I wanted in this printer was really Network connectivity. I've always had USB-connected printers, that is, after the Centronix parallel cable was phased out. And while that was a significant step-up, and PCL and Postscript are great, the idea that I had to be physically connected to the printer was something I really wanted to get rid of.

So I followed the admittedly sparse instructions and juse added paper, hooked up the Ethernet to the hub in my office, and then plugged in the power. It took a while to get ging, but then I had a nice little display to configure the printer. Nice touch - no need to really download any software... though, they recommend it - I think I'll pass.

Once I made sure it was using DHCP, the default, I was then able to go to my MacBook and just Add a Printer. It was right there in the list of available printers, and while I'm not quite sure exactly what I was expecting, that simple fact filled me with wonder and awe.

I guess I haven't lost that sense of wonder about these machines, and I'm grateful for that.

I then knew I'd be in good shape on the computer, but I also wanted to make sure AirPrint was working from my iPhone and iPad. I went back to the printer's Network Config screen, and accessed the WiFi settings, but it told me that because I was using wired Ethernet, there was no WiFi accessibility. For a second I was worried, so I pulled up my iPhone, and figured out how to print a note. It worked like a charm!

That made me even happier! Because it meant that I didn't have to leave my printer "open" on WiFi, and worry about attack vectors from drive-by attacks. I could stick with nice, reliable, wired Ethernet, get great speed and reliability, and protection from the bad guys. Sweet.

In the end, it was a breeze to set up, and looks to be working every bit as good as you'd expect an HP printer to behave. What a joy! 🙂

The Laser Printer Died

Sunday, March 22nd, 2020

Sad State of Affairs

My daughter needed to have about 18 pages printed out for a school assignment, and because the only printer we have is a very old, it's connected to my laptop by a simple USB cable. Sure, it's still working fine, and the pages are fast enough, and sure, it's only Black and White, but for an HP LaserJet 1200 that's more than a decade old, it's doing pretty well. Or so I thought.

I got about three pages out, and then it started making a screeching noise that didn't sound good, and nothing I could do was going to bring it back. It had printed it's last page. I tried power cycling... removing the toner cartridge... opening it up... nothing was going to get rid of that screech, and so I had to let her know that the pages weren't coming, and to let her instructor know.

So I started looking around, and the review sites seemed to really like the HP Color LaserJet Pro M255dw - it's color, double-sided printing, WiFi and Ethernet, as well as USB, and works with Macs as well as AirPrint for iOS and iPadOS. Just exactly what I was looking for, because with this I don't have to be The Print Man in the house, and she can print from her desk and just pick it up in my office.

I was a little surprised that it was only really available from HP Direct, and the larger toner cartridges as well. But it wasn't really that much more than some of the online sites were advertising. So I ordered it, and will press it into service as soon as it arrives.

I'm looking forward for it lasting another decade... 🙂

Updating my Treadmill

Wednesday, October 9th, 2019

Path

I really like my Matrix T75 treadmill with the XIR console... and today I checked the Matrix web site to see that they had updated the firmware to 1.4.8.3, so I downloaded it, unzipped it, put it on a USB drive, and then went through the update on the treadmill.

I'm hoping that this fixes the problem I've been having with the control electronics... about the only way I can be sure to run in the morning - uninterrupted, is to wake it up from it's sleep mode, and then pull the kill switch, plug it back in, and then start my run.

If I skip the pull/replace, then one morning in a week - and I don't know which one, will have an issue where the control electronics will think I pulled the kill switch, and stop the run. It's pretty jarring, and I'd like to avoid that, so I go through the ritual of the pull/replace, and I'm pretty safe.

We will see if this update solves that problem... fingers crossed. 🙂

Thrown for a Bit of a Loop

Tuesday, September 17th, 2019

hostmonster.jpg

Yesterday morning, I thought to check my blog and see something, but to my complete surprise, it was down. Like very down, and I had no idea what was happening. I've been using WordPress and HostMonster for more than a decade, and I've never had anything even remotely like this. I didn't know where to start - so I went to their admin site, thinking I'd been hacked somehow...

First, it was clear that they had done a ton of upgrades to the host and its support platform. Massive changes. So the first thing was to get logged in. This was a little odd because it wasn't working on Safari, and it had been in the past - so I switched to Chrome, and finally got logged in. Step 1 - accomplished!

Then I looked at the installed users on each of the three WordPress sites I have, and in each case, there was a user that I couldn't explain. It certainly appeared to me that these were bad actors, and I had no idea how they got there. I stay up to date, don't allow logins, don't allow replies... it's a Journal more than anything else. But still... I could not deny these accounts. So I asked for help.

php.jpg

It took a long while to figure this out, but in the end, the logs for the site indicated that there was a PHP problem in one of my plugins, and one of my themes. Why this happened yesterday wasn't at all clear, but it became clear as I dug further.

HostMonster had dropped support for PHP 5.x, and the only versions available to me were 7.0, 7.1, 7.2, and 7.3, with the latter being the default. Now it seemed to be clear what had happened... nothing had changed, but in all the upgrades for the infrastructure on the hosts, they had switched to a different config for PHP, and the plugin and theme were doing something that they shouldn't. OK... now to the code.

The first one I tackled was the plugin, as the error in the logs was pretty clear. I did a quick search for =& and sure enough, it was a PHP 5-ism, and that was easy to fix. That solved the plugin problem, and it loaded and ran fine. The theme had a different problem with a deprecated function that wasn't really even needed in the theme, but I found a replacement, and used that, and the theme was fine.

All told, this took more than 5 hours... it was not quick, and I just ahead of the part where I found out that the timezone plugin I was using wasn't needed in WordPress 5, and so I didn't put that back into play, Also, when I got the site up, it was possible to see the errors on activation of the plugin (but not the theme), which made continued debugging a lot easier.

In the end, it was all cleaned up, and now it's set for PHP 7. I'm glad that there wasn't a bigger issue, but I really have to be careful of these things because there is almost no support for the plugin and theme - and I really like to have both of them working for me for this blog. 🙂

Crazy Zoom Exploit

Wednesday, July 10th, 2019

Bad Idea

So yesterday, the Zoom Exploit hit the news feeds and web sites, and it was something that I have to say, I'm not surprised about. Zoom was never one of the video conferencing solutions I was a fan of... like most utilities - pick one of the standards, and then be done. Google Hangouts is fine for small groups, and GoToMeeting is fine for large groups, and these are cross-platform, and work just fine. I use FaceTime more than anything else, but that's because it's an Apple ecosystem, and I don't need to have to tell folks to install additional software.

But this secret web server - that's crazy.

As soon as I read this I deleted the app. Immediately.

The second thing I did was to message a good friend that I know uses Zoom - a lot and wanted him to know that he was exposing himself to this issue. I included the entire article, because I wanted him to read about it as well, but I know he took steps at the time as well.

So this morning, I'm double-checking on the details, because this secret web server is just crazy, and I want to make sure that I've got it all cleared out. So let's see if it's running, kill it, if it is, and then double-check that it's dead.

  $ lsof -i :19421
  COMMAND    PID  USER   FD   TYPE ...
  ZoomOpene 2385 drbob    3u  IPv4 ...
  $ kill -9 2385
  $ lsof -i :19421

OK... it's gone. Now let's remove the ~/.zoomus directory and put in a file to keep the directory from being created again...

  $ rm -rf ~/.zoomus
  $ touch ~/.zoomus

And finally, go into System Preferences and select Users & Groups, and then select your user, and go to the Login Items tab, and see if ZoomOpener is in the list. If it is - remove it with the - button at the bottom of the list.

Now it's out. For good.

The "explanation" from Zoom - that this is "a good way to present the user experience" is just nuts. I can't imagine how anyone in this era of computers and invasion of privacy would try to even justify that. Just call it a mistake, and move on.

[7/10] UPDATE: Overnight Apple released a non-UI patch that took care of this problem for all users. I can remember when this feature of forced updates without user-intervention was delivered in Mac OS - and I thought it was good. This proves that it was there for just such a case. Bad software.

Finally Moving to Heroku

Wednesday, April 24th, 2019

Heroku

This morning, I realized it was about time to really shop around and see if Heroku or AWS was the right choice for my projects. Now I've heard, and mentioned, that it's likely that the best solution is Heroku, and after digging into all the capabilities and costs, it really is far easier and cheaper to use Heroku and just let it be done. The support for Clojure is first class, and the tools have gotten a lot better, and the pricing has come down, and that was all it took.

The first thing to do was to sign up at Heroku for an account, and then set up that account with the right SSH key, and 2FA with Authy on my iPhone, and then put in the credit card info to be a Validated user - and get more free hours a month for the "Free" dynes. All this was very nice, and really smooth. I liked that the 2FA with Authy is as easy as it is, because it pulls in the account information and icon, and it just plain works.

The next thing was to walk through the example Clojure project to see how it's done. What really matters is that it works, and then I can pick out things from that project - which also uses Jetty, and pull them into my project to get it going as well. As expected, that went very well, and the documentation is really first rate. Just what I've heard I could expect.

Finally, I followed their instructions to scale down the dynos to 0 on the example project, and started to work on converting my project from the old deployment model I had to using Heroku. First off, we needed to pull in the Procfile and app.json from the example project, and then update them to match what we needed for this project. The Procfile was updated to be:

  web: java $JVM_OPTS -cp target/timeless-standalone.jar timeless.main web

because the old init.d scripts I'm used to writing had this same basic line in them. We have to fix up the Uberjar file name, but we'll do that in a minute, but this will launch the Jetty server on the right port, and have everything cooking just fine.

The app.json was updated to be:

{
  "name": "Timeless: Sequencing timestamps",
  "description": "A service/app that helps sequence timestamps from log files.",
  "image": "heroku/clojure"
}

and here, it's pretty obvious what to update - just the name and description.

At this point, we can create the application at Heroku:

  $ heroku create

We need to make a few changes to the code so that it would work with the Heroku infrastructure. First, we had to update the project.clj to add these entries:

  :min-lein-version "2.7.1"
  :plugins [[environ/environ.lein "0.3.1"]]
  :hooks [environ.leiningen.hooks]
  :dependencies [[org.clojure/clojure "1.10.0"]
                 ;; ...other dependencies...
 
                 ;; Heroku environment tools
                 [environ "1.0.0"]]
  :uberjar-name "timeless-standalone.jar"
  :profiles {:uberjar {:main timeless.main, :aot :all}}

Then, in main.clj, we needed to pull the port for Jetty from Heroku's environment variables, and to do this, we updated the code to read:

(defn handle-args
  "Function to parse the arguments to the main entry point of this project and
  do what it's asking. By the time we return, it's all done and over."
  [args app]
  (let [[params [action]] (cli args
             ["-p" "--port"     "Listen on this port" :default 8080 :parse-fn #(Integer. %)]
             ["-s" "--ssl-port" "Listen on this port" :default 8443 :parse-fn #(Integer. %)]
             ["-v" "--verbose" :flag true])
        quiet? (:quiet params)
        fixed? (:fixed params)
        port (Integer. (or (env :port) (:port params) 5000))]
    (cond
      (= "web" action)
		      (try
		        (jt/run-jetty app {:port port})
		        ; finally, close down the async jobs
		        (finally
		          ))
      :else
        (do
          (info "Welcome to Timeless!")
          (println "Welcome to Timeless")))))

the key being to check the :port value with the env function, and then put that in the or before the default from the CLI args. It makes sense, they will want to set the port on the process so that they can stack a lot of them on a single box.

After this, it's as simple as deploying the app with:

  $ git push heroku master
  $ heroku ps:scale web=1

and it should all be running just fine.

When I added the CNAME records to my DNS for this domain, I get a certificate problem because we're moving from bobbeaty.com to herokuapp.com - so I still have to figure that out to make things really smooth, but this is a huge step in the right direction.

UPDATE: the key is not to add it as a CNAME - but a simply web permanent redirection. If we do that, then we can add it as: bobbeaty.com/timeless and we're all good!

RedHat Assumes Stewardship of OpenJDK 8 and 11

Monday, April 22nd, 2019

java-logo-thumb.png

Interesting, that a few days after I move off Oracle's JDKs for my laptop, RedHat announces that it's going to assume stewardship of OpenJDK 8 and 11 from Oracle. It seems that Oracle wants to get out of the enterprise java business as it moved J2EE support to the Eclipse Foundation, and this just makes it clear that they really don't want to be in the Java business - at all.

This could be that they can't make enough money on it - or that they are just more interested in GraalVM, which they control, and can be used to compile a large subset of Java code into machine code. With this control, what do they need with the OpenJDK spec? It's just weight and cost. Better to get someone else to take care of that, and get back to making money licensing what they can.

It's just sad, but all too familiar, with Oracle. Glad I moved off. I'll stick with AdoptOpenJDK until there's a reason to move.