richard-java

# This is a new SciJava Notebook¶

What’s happening

• The notebook is viewed and running from a browser on a completely different machine
• Jupyter Lab is running on Ubuntu in the background as user anaconda
• Jupyter Lab is accessible over the local network via https & secured with a password

this is really very cool
Why?

• because it is
• because I said so
• did I mention it’s really cool?
In [1]:
System.out.println("Numbers:");
for(int i = 0; i < 100; i++) {
System.out.print(i + " ");
}
System.out.println("Done.");

Numbers:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 Done.


And now… The Sieve of Eratosthenes…

• the code was on my local pc
• the code was just cut and pasted into this notebook
• the code ran first time (well, it did on the PC as well)…
In [2]:
public class Seive {

static int MAX = 1000;

public static void main(String[] args) {
int[] stones = new int[MAX+1];

// initialize
for(int i = 2; i <= MAX; i++) {
stones[i] = i;
}

// remove non-primes
for(int i = 2; i <= MAX/2; i++) {
for(int j = i+i; j <= MAX; j += i) {
stones[j] = 0;
}
}

// display the primes
System.out.println("Primes");
for(int i = 2; i <= MAX; i++) {
if(stones[i] > 0) System.out.print(stones[i] + " ");
}
System.out.println();
}
}

Primes
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311 313 317 331 337 347 349 353 359 367 373 379 383 389 397 401 409 419 421 431 433 439 443 449 457 461 463 467 479 487 491 499 503 509 521 523 541 547 557 563 569 571 577 587 593 599 601 607 613 617 619 631 641 643 647 653 659 661 673 677 683 691 701 709 719 727 733 739 743 751 757 761 769 773 787 797 809 811 821 823 827 829 839 853 857 859 863 877 881 883 887 907 911 919 929 937 941 947 953 967 971 977 983 991 997


a web link using regular old html…
Huntrods Zone

In [ ]:



I woke up one morning, and checked my email as usual. All was good. A little later, I wanted to send a reply to one message.

It would not send. I kept getting “timeout on mail server” errors. I tried several things, and nothing worked. Finally, I called my email provider to as if the mail server was in some way affected.

Nope. But then I got asked a series of questions about my config. Apparently “everything” was wrong with it. I made the changes they recommended, but hate them as the password is sent in plain text. Yuk. But… at least I could send email again.

Later in the day I was doing some other work, and had reason to open the taskbar box (win 7). I noticed something odd. The Pulse Connect icon showed it was active. I have to use Pulse to create a secure tunnel to AU in order to view exams that I mark. Usually I activate the tunnel, mark the exam and then disconnect. However, this day I saw that I was still connected.

Acting on a hunch, I disconnected the Pulse tunnel. Then I opened my email and reset the configurations to what I had before the morning phone call. Lo and behold, I could send email again with a secure password.

SO – the tunnel to AU was interfering with access to my email provider’s SNMP (send) server. Interesting. Something to note in case I do that again.

A couple of weeks ago I accidentally turned off one of my UPSes. Every morning it starts beeping a warning about the battery complete with yellow warning light. So I was inspecting it and wanted to silence the alarm. Well, hitting the big button is NOT the way to silence the alarm. Yes, it does silence the alarm, but it does so by turning OFF the UPS.

Oops. Killed three servers; my OpenBSD web server and firewall, my Solaris Tomcat box and my backup file server. I restored power, then did a ‘hot swap’ for new batteries, which sadly did not solve the beeping problem. I suspect it’s just old age on that UPS and it’s now cranky. Oh well.

Meantime, all three servers came back up without apparent incident. Except… my home info server running under Tomcat on the Solaris box was unavailable. I checked a local port, and it was working fine, but  not via the firewall server.

After much checking, a couple of reboots and some web reading, it became apparent that the OpenBSD firewall did NOT load the packet filter rules when it booted. As soon as I manually loaded them the Tomcat server was again available.

I searched and searched, but there is absolutely no reason I can find as to why a working OpenBSD server would fail to load the PF rules on boot. The rules are good; there were no error messages at all in the boot logs, and it’s always worked in the past.

For now I just made a note to check date and pf rules whenever that server gets rebooted, which fortunately is about once every several years. I also need to keep my fingers off the big UPS button!

On Feb 1, all network traffic became … weird. The symptom could best be described as DNS requests being slowed by more than 2x… just enough so that attempts to connect to web servers, mail servers, web pages etc. would randomly fail on the first attempt, then work on subsequent attempts.

It was so bad that everything I did on the web, including email, had to be done twice. Once to fail, then again to connect. I noticed the problem on all devices, not just windows PCs but the iPad and iPhone as well, so I was pretty sure it was more than a device specific issue.

I waited a day or so, hoping it would clear, but after it became apparent it wasn’t getting better, I called Telus. They checked my modem and connection and pronounced all good. They also stated there were no DNS server issues.

So I was stumped.

Finally this week I decided to try the universal computer fix-all: I rebooted the Telus high speed ADSL modem. As soon as the reboot was done, it was clear that the problems were also gone.

I am used to certain types of hardware running for ages without needing a reboot, so was a little surprised that the modem needed the reboot to clear it’s buffers or whatever got mangled.

For now I’m just going to monitor and see how frequently this occurs, but it sure was weird.

Just some notes on stuff that’s happening as of Dec 22.

Linda’s Windows 10 computer, after a few configuration teething pains, is running quite well. Getting rid of the lock screen took 3 attempts as Microsoft is determined to foist this crap on users, even to the tune of disabling workarounds with each new update. It remains to be seen if my efforts will work for the longer term as MS is so very determined.

We did blow ‘edge’ away. It’s easily the worst browser I’ve ever seen. Basically, it has almost zero configuration options, and the few it does have it ignores. Gone forever and gladly back to Firefox. Likewise the default ‘mail’ app is gone and Thunderbird again rules the emails. Like edge, ‘mail’ is another MS app that can’t even play nice – not even with other MS things like Outlook. What a damaged, untested, unprofessional piece of crap.

I did install Office 2016 this week thanks to a “Home User Program” deal from MS. Because Athabasca U bought into the whole MS lock-in, we get to buy home versions for really cheap (like $13 for Office 2016 pro!). It’s OK. I personally prefer Office 2013 because that was the last version without “THE RIBBON”. Yet another unwanted MS user interface “update”. As for my AU work, I can’t hear people on the phone very well, and certainly not upset persons who make talk fast and in a higher register. After consultation with other AU academics, I bought “MagicJack” from the main website as it was on sale. It does come from the USA and took a while to arrive, and the free phone number is only USA, but it does indeed do what it claims. I paid the extra$10 to get a CDN number (Edmonton exchange) and then had AU tie it to my academic 1-888 number. By yesterday it was all working tickety-boo. Better yet – any voicemail message gets emailed to me as an audio file so I can keep track. I can use a headset when calling anywhere in North America (free) so it’s awesome. Eventually I plan to see if it would work to replace most of the land line features, but not yet. First to see it in action.

I bought a leak detector for my underwater camera, and it came after almost a month in the postal system. Still, not bad coming from Slovenia. It’s really well built and should provide extra protection against flooding for the big underwater camera system.

Speaking of which, the replacement Kraken ring light/strobe came a few weeks ago, and worked correctly from the box. Nice to know it wasn’t simply user error but rather some issue with the optical strobe sensor.

That’s all for now. Time for a Christmas break.

Merry Christmas to all, and a very Happy New Year!

Two days ago I came upstairs and Linda said “why does my computer say ‘restarting windows’?”. Good question. It shouldn’t be rebooting at 10pm on it’s own!

I watched it reboot, then fail to an error screen. The screen wanted me to run ‘Windows Repair’. OK. I’m game. It’s late and I wanna get ready for bed. So I accept the suggestion and windows repair starts doing it’s thing… and blue screens. Access violation. Uh-oh. I’ve seen this before. I power off and then on, and of course windows complains, but I tell it to start windows normally. It tries but can’t get to the log-in screen; the hard drive light is just on solid.

I try a few more times and get the same result. In the past this means “hard drive dying a horrible death”. I see things are warm, so let the whole machine cool to stone cold. This allows things to fire up to normal windows log-on, and I quickly save Linda’s critical files to the main server. Just as I’m finishing up, the drive craters again (a windows dll is corrupt, it says). Machine’s toast, so turn it off.

TIME FOR A NEW COMPUTER FOR LINDA.

First we check the flyers, then online. Seems there’s a small HP desktop for just over $300. The next best is over$400. Laptops range from $400 to over$1000. Apple products start well over $1000 and up. We decide that unless you really need a laptop, there’s no point paying for a screen and all the space compression (and heat dissipation requirements). Besides, something in a small case is something I can get into to upgrade/fix as needed. So after a fairly quick but exhaustive search, the$300 HP desktop is the clear winner by at least $100 over any competition. Next day (Friday = yesterday) I run into town and buy it. I decline the extended warranty and take it home. It’s well packed and comes with a compact keyboard and nice optical mouse. It’s not fancy; outputs include HDMI, VGA, speakers, 2xUSB2, 2xUSB3 and RJ45 (1000T). Inputs include microphone and memory card reader, plus DVD reader/writer. All in a box about 12in by 10in by 3in. It sits on the floor by Linda’s desk in the space occupied by the older dead computer. I plugin the power supply, monitor, new keyboard and mouse and turn it on. After a brief start-up sequence, the HP assistant comes on and starts talking to me. I follow along and soon the PC is almost set up and running. I say almost, because in spite of the fact I have DHCP set up on my home router/modem, the new PC doesn’t get the proper IP credentials and so cannot connect to the internet. Strange. Still, I use static IP on my computers (and DHCP on devices) so I figure out where to modify network settings, set up my static IP and now the internet works fine. The one big change to this new computer is that it runs Windows 10 (home edition). I’ve never tried Win 10. I did try Win 8 when it came out and rejected it as clunky and dumb. However, Windows 10 has learned from that early failure and is now quite a decent operating system. It still suffers from “Microsoft Knows Best” syndrom, meaning it’s almost impossible to configure or customize ANYTHING without a trip to google for a ‘how to’, but even that’s not too difficult. The biggest problem with the new PC is that the old web camera (Microsoft Lifecam 1000) won’t run on Windows 10. Ever. They never updated the driver and there is nothing that can be done (I tried and tried all the suggestions… no good). So I quickly ordered a new Lifecam 3000 for cheap off the internet and it should be here next week. I did find a microphone lying around (from a surround sound system) and it allows skype to work until the new web cam arrives. Otherwise the overall change was not horribly painful, with one exception. I even managed to get Linda’s saved emails back off the server, so nothing really lost. *The one painful exception is the dreaded LOCK SCREEN. Microsoft has deemed this “thing” mandatory and has even crippled all the past work arounds to defeat it. I tried them all: special registry setting (defeated) and rename the lock screen app (defeated). Finally the only thing that worked was to disable main PC sleep mode. It still shuts off the screen and powers down the disk drive, but sleep was the one thing that would trigger lock screen no matter what else one did. Good grief Microsoft! That said, why not go back to an Apple product? Linda has had a small PC (died from heat), then a Mac laptop (died from heat and bad battery), and then this last small PC (probably died from heat). So why not go back to a Mac? Simple. COST. Even the cheapest Mac is many times more expensive than this$300 PC. Simply put, for internet and email, the Mac simply cannot compete on price.

So Windows 10 is now here in the house. It’s not too bad. 🙂

**footnote: about the “died from heat”. Linda’s machines live in the main level, on a desk in front of south-facing windows. Even with blinds, it gets hot there in the summer. Everything gets hot there, even if protected. The problem with all  3 machines is they were small form factor, and that means heat dissipation is critical as everything is mashed up inside a tiny case. Eventually, even with frequent cleaning, they will suffer heat stroke. I think it’s inevitable for the tiny form factor.

While fretting about the ever increasing connectivity bill, I discovered that I could get faster internet for about $8 more per month from Telus, my current provider. We don’t have fiber in our area, so all I can get is an upgrade from 25mb/s to 75mb/s download speed. Still, for$8 that’s a no-brainer. I called and an installation was arranged.

In order to get this speed, the modem needs a bonded pair of wires, so a second jack was added and the new modem connected.

Unlike past modems, this new one is full-featured and ultimately configurable. However, before I started playing I first simply plugged the old system into the new modem for a test. Just to summarize, old system was ADSL modem -> Linksys RVS4000 firewall -> house network. The initial test system was New modem -> Linksys RVS4000 -> house network. So all should be good, correct?

Before they came I did a Telus speed test. It showed 22.5 down, 1 up, which is pretty good for the 25 plan. The new plan (75) should be 75down, 10up. Once they were done, I ran another Telus speed test: 10up, but 4 down!!! What could be wrong?

On a hunch, based on a bad streaming experience some years ago as well as issues with the RVS4000 a decade ago in a co-locate, I pulled the RVS4000 and re-ran the test: 75down, 10up!

So here’s a warning to anyone using 10-year old technology with faster internet: DON’T. The old crap just can’t keep up. The RVS4000 may have been an expensive device 10 years ago, but it’s brain was an atom processor, which is about 1/100 of a modern smart phone (just guessing!).

At any rate, the little atom processor simply cannot keep up with modern high speed internet. This also confirms the RVS4000 was the problem with streaming some years ago, though I could not pull it at the time to test.

However, the new modem  is awesome. It has wifi that is incredible. My old wifi was a good 10 year old device with big antennae, but devices only ever got 2 bars max anywhere in the upstairs. Now you get 5 bars everywhere, and coupled with the high speed, downloads are amazingly fast.

So all-in-all a great upgrade for $8 more per month. Yesterday the new aluminum extruder came from amazon.ca for my delta printer. It was nicely packaged and although the instructions could have been better (b&w photos aren’t great for assembly), they were adequate. I removed the original plastic-parts extruder and installed the new extruder. It was immediately obvious the mechanism is much better than the original. The toothed wheel is a much finer tooth count, and the idler wheel with notch is much smoother. The spring tension is not adjustable either from close examination nor from the assembly photos, but seems to work in an excellent fashion. The only hiccup was when I tried to test the calibration. No matter what, I could not get it to extrude. Finally, after much frustration, I realized the two settings in pronterface are not extrude lenght / reverse length, but rather settings for 1.extrude/reverse length and 2. extrude/reverse SPEED. Setting it from the default of 10mm/min to 120mm/min (2mm/sec) was all it took to see some action. Unfortunately the operation was now reversed due to placement of the idler compared to the original extruder. Fortunately there’s a setting in the configuration.h file for stepper direction which includes the extruder stepper. Flipping the binary option caused the extruder to properly extrude/reverse. Due to the finer gear spacing, asking for 1cm gave 1.4cm. It’s a quick parameter change to fix that and confirm requesting 1cm now gives 1cm extrusion (and retraction). Finally, I reconnected the filament and tube to the hot end, burning myself severely in the process (2nd degree on a finger which slipped). Once connected I made a test print of the benchy (boat). The first layer is still off, but now at least I can make adjustments knowing the extruder is functioning properly. Final lesson learned: 185C is VERY, VERY hot. It will cause an instant 2nd degree burn as I found out to my distress. Fortunately immediate cold water followed by ice for 2 hours has reduced the damage significantly. My iPhone 4 is so old now that it’s really getting flakey – freezing up at the most inconvenient times requiring a hard reboot and all that. So I checked my Virgin mobile plan, and I have some money in the (discontinued) supertab plan. In fact, enough to get a new phone. Now I know there are new phones for$0 on a two-year plan, but I was looking at what I could get for the supertab balance I had.

This is nice as there’s no other way to use up the supertab, so why not spend it on a new phone?

Anyway, it quickly became apparent that Android was out. The phones were either way too cheap, or way too expensive. Besides, I’m not all that thrilled with Samsung phones either as they give you a Samsung mangled Android, not the pure deal.

So what did come up in my search within my (no cost) budget? An iPhone 7. Yep. Apple stuff.

So I went out last week and got it, and it’s actually a very nice phone. More cool, I was able to move all my stuff off the old phone to the new phone in two painless steps as I still have the Macbook available. All I had to do was turn it on, update whatever was out-of-date (including iTunes) and then backup the old phone and restore the new one (data and apps only).

The new phone is, as I said, pretty cool. It’s nice to have something that will last for a few years before getting orphaned again. If the iphone 4 is any indication, that was not really a bad deal for me.

The only thing I had to do was sign up for my same plan for 2 years, which I was using anyway.

So I’m an apple dude again. Kind of. 😉

I was not happy with the first prints out of the delta printer. In spite of upgrading the firmware from Marlin 1.0 to Marlin 1.1.3 and running the auto-calibrate several times, things were not as good as I wanted.

One problem was with one axis end stop, which turned out to be loose on the rail. The square nuts (instead of true “T” nuts) was the problem. After much fussing I was able to tighten it, but I think I’ll be buying some proper “T” nuts soon. With that fixed, things were better, but still not great.

I realized another problem was the “probe offset” might not be correct. The Marlin 1.0 default was 0.2mm, but the Marlin 1.1.3 default was 0.7mm. I was using 0.7 and the first layer height seemed high (it wasn’t printing the first layer at all).

Yesterday (Oct 12) I manually calibrated the printer using the paper strip method, then checked the additional distance from “0” to where the probe end stop triggered. It turns out to have a bit of a dead zone. Using the default test height of 315mm, zero was found at 1.13mm. The probe end stop triggers ON at 0.83 but OFF at 0.93. In the middle is a dead zone (0.83) that is either ON once triggered, or OFF before triggering.

As the auto-calibrate uses the probe trigger point, the distance between zero and trigger on was 1.13 – 0.73 = 0.4mm. This was more than 0.2 and less than 0.7 explaining why the auto-calibrate height number was off.

Using the new depth (315 – 1.13 = 313.87) and probe offset (0.4), The prints should be good.

Except they are not.

Watching closely while it started printing, I saw the problem immediately. The bowden extruder mechanism which decouples the extruder from the hot end was not feeding filament properly. Frequently the extruder gear was turning, but no filament was moving. There’s an adjustment wingnut to set the tension, but I found with experimentation that it is just too finicky to work reliably. It seems there is not setting of the tension that will always work first time, and you can’t be fiddling with tension all the time during a long print.

Examining the bowden extruder mechanism, I think I see the problem and the solution. The mechanism is plastic. The idler is a bearing and washers, but the tensioner is just a bolt and wingnut. What is required is a good quality aluminum housing with spring tension similar to that on my cartesian 3d printer that I built.

A quick search on amazon.ca found several excellent choices in the \$13 range, so I ordered an appropriate one. It should arrive next week and I’ll resume the testing. I’m quite certain a good extruder will solve the final problems, and perhaps with a final auto-calibrate I’ll be up and running.

Of course, Marlin is now at version 1.1.6, but I’ll hold off trying that until after I get the current version working.