who pays for spammers?

Granted, we’re well aware of the spammers out there who send us unwanted emails. And anyone who’s visited a support forum has likely read a slightly newer version of “content spam”. It will appear as what could possibly be a legitimate user’s comment but it usually comes across as a little vague/unspecific. A typical content spam these days might look like:

“your information is really very helpful. I get some interesting knowledge from this article. you may also get important updates from mcafee customer service. keep sharing these type of important suggestions.”

Corporations who pay spammers

  • McAfee
  • Netgear
  • babasupport.org

A call to arms, dear Internet

Do me a favor. Visit https://chathelp.org/mcafee-support/ and chat with McAfee. Let them know that you don’t appreciate their paying for spammers. Let them know that this link was part of some unwanted content spam.

microsoft wants open source extinguished

On June 9th when Microsoft had just purchased github.com, I wrote about how I thought this was something tragic for the world of open source. This morning I awoke to several new security notifications from my repositories there (requiring about an hour of my time to adjust my code):

“We found a potential security vulnerability in a repository for which you have been granted security alert access. Known low severity security vulnerability detected in debug < 2.6.9 defined in package.json.”

On the surface, one might think that Microsoft is trying to make the world a better place. You might think this if you’re an optimist or a friend of them, perhaps. Maybe Microsoft cares about security so much that—having just purchased github—they now want to ratchet up the quality of the collection of software as stored there by most people who don’t like them…?

But if you’re a pessimist or if you’re someone who doesn’t like Microsoft, could there be another reason behind this new diligence they’re trying to bring to code security? It’s not like Microsoft has a great track record in writing bug-free or network-safe code themselves.

“It’s not like Microsoft has a great track record in writing bug-free or network-safe code themselves.”

Strategic sabotage

Richard Nixon was known to do something termed ratfucking in the political world. Wiki even has a page on the subject. It means “political sabotage or dirty tricks”. It would eventually result in his impeachment. In some college circles, a mean-spirited prank is part of the playing field. To me, it feels like many of the players inside Microsoft are the same type of people, those who have no qualms destroying the competition, tripping them up and generally exercising a “whatever it takes” attitude toward their so-called success.

Microsoft’s internal methods:

Steal their air

In a lawsuit, the U.S. Department of Justice turned up an internal tactic used inside Microsoft which describes what they do when they feel that a competitor needs to be removed: “embrace, extend and extinguish”. In other words, 1) embrace open source by buying the main storehouse for its code, 2) create products such as Visual Studio Code which replaces similar free editors and 3) gradually remove the competition by getting rid of it now that you’re in a controlling position.

Appeal to fear

Another tactic they use in the market space is to promote fear with respect to anything the competition could provide. We’re seeing this now in the pseudo-warnings being auto-generated by github.

What this is

What we’re seeing is a direct and strategic beginning to Microsoft’s move to embrace, extend and extinguish github and yet it’s open source itself who is their ultimate target.

The future of gihub and open source

Expect more of the same: dirty politics related to the leading repository site of what Microsoft views as their competition.

and now, a positive outlook on ad content

Since I no longer have an Office 365 subscription I find myself occasionally using their web-based version to fetch my email. How very annoying their galley ads have been lately. They’re too animated, they change faster than you could actually read them. They’re about as obnoxious as they could be.

Since I use Safari as my favorite browser, I just wrote a custom stylesheet to deal a blow to those unwanted ads. I’ve specifically targeted the ones usually delivered by Microsoft’s online Outlook website but it could be edited to remove other content you don’t wish to see.

safari-stylesheet

Safari -> Preferences -> Advanced -> Style Sheet:

Screen Shot 2018-08-08 at 12.16.38 PM

Result:

Screen Shot 2018-08-08 at 12.19.24 PM

quadcopters and me

[Apologies for my infrequent posts here lately but this should explain why.]

On the day I purchased my 3D printer, I also bought a print-it-yourself quadcopter kit. It was technically a mistake on my part because the designs in the kit aren’t compatible at all with the 3D printer which was literally kiosk’d together and a mere foot from each other, suggesting otherwise. So the kit’s been sitting here for a full year now.

Rawr…!

I design things. I should be able to design a quadcopter myself. Having been a former software development contractor for the actual company which sells and distributes these kits I can say with 100% transparency: they have no evidence of one of these quadcopters ever successfully taking to the sky. It never worked as designed.

So I’m designing a radically-new quadcopter. I knew a few things about flying since I was in the Air Force once upon a time. It took a few iterations for the propeller mounts but that part is now perfected and the four printed/assembled.

Next up, the enclosures for each propeller had to be created. I spent a fair amount of time on this stage and have the sixteen related parts all printed; they look great.

Sourcing Parts

I may need to source and replace the underlying controller board which would normally go into the copter itself. I note that the “new” part in my kit shows signs of having four strands of LEDs soldered, then summarily clipped off at the board. This is not a new part at all. Initial testing shows me that it doesn’t respond to the remote. I must assume that the vendor who sourced the parts to the aforementioned company just packaged in used/refurbished materials. They must have assumed that nobody would be the wiser.

I note that the “new” part in my kit shows signs of having four strands of LEDs soldered, then summarily clipped off at the board. This is not a new part at all.

Step by Step…

All in all, it’s coming along well. It’s a sexy beast and I’ve got things modular enough to be able to tweak it later when the need arises.

Sorry that there are no pictures but I’m in stealth mode on this one.

a level playing field

I still haven’t chucked the original Robo C2’s plastic print bed. You’d have thought that I’d changed that out by now since an uneven print bed is a recipe for poor adhesion. But I did just make a very good upgrade and still stayed with that stock part: manual leveling in each of the corners.

IMG_0063

For this upgrade, there’s more than meets the eye. There are actually 36 new parts here on this one. At least you can see two of them from this first photo.

IMG_0062

I designed/printed the two blue pieces (per corner) and other than the aluminum hex bolt, the rest came from Ace Hardware. I made all the springs by cutting down a longer one of the correct diameter.

IMG_0059

Both sides include a spring to keep everything tight. The acorn nut is stainless steel so that it can attach to the stock print bed’s magnets. Tolerances are exacting since there’s a mere 8.6mm space below the platform before hitting the chassis itself and the z end-stop adjustment is impossible on this printer.

IMG_0056

I’ve just combined this upgrade with a new Manual Bed Leveling plugin by jneilliii, for the win. Having just manually leveled, followed by the printer’s standard IR-based auto-level routine, it’s now much better than before. Fortunately, today’s upgrade doesn’t get in the way of the Cantilever Stability Upgrade from before. They both coexist in the same space.

I designed a test part to fill the printer’s available space and when it started, was able to tweak the settings again for perfect adhesion of that critical first layer. Normally, I’d accept poor quality of a raft’s first layer as just part of this printer. But it’s behaving now and I’m glad I put the work into it.

Screen Shot 2018-07-16 at 3.14.41 PM

and one button to rule them all

The project from yesterday and today is something called a “dash button”, an IFTTT or an IoT button. Push the button and some activity gets invoked (usually, remotely). Amazon’s take on this is for you to be a consumer, press the button and something gets ordered.

dash

My own take on this is to add a big red button (BRB) as a remote panic switch for the 3D printer. Press it, magic happens and the print job is paused. It’s useful when something bad starts to happen and you need to make it stop quickly.

IMG_0034

There’s not a lot of room inside the printed plastic for this. Whatever electronics it uses, it will need to be small enough to be self-contained.

IMG_0049

I’m currently accomplishing this with a nifty Adafruit Huzzah ESP8266 board, a charging module and a 3.7V battery. I’m using the Arduino software to “flash” (upload) code to the tiny processor as well as a full directory of files to support the webserver which runs when it’s in configuration mode.

By strapping a pair of header pin connections and pushing the reset button, it now boots up in wi-fi hotspot mode and serves up a configuration website. Submitting to the form then re-configures the device and resets it again.

Booting up now in the standard mode, it then connects to the local wi-fi and attempts to then connect to the URL that you’ve given it. Once it does all this (perhaps ten seconds’  worth of activity), it promptly goes to sleep. Press the BRB again, it wakes up and goes through its routine again.

If you think about it, it’s now a reconfigurable dash button and much more useful than those one-trick-ponies as provided by Amazon.

Repository

adafruit 2.8″ capacitive tft screen

Today’s review is on the small TFT touchscreen for the Raspberry Pi computer. At $45, it’s not the cheapest screen you could add onto a single-board computer but the capacitive touchscreen and the four accompanying tactile pushbuttons along the side make it worth the extra money, especially if you’re adding it to a 3D printer for the sake of control.

IMG_0042

TFT

IMG_0047

Installation

As usual, the Adafruit documentation was more than adequate to get this done. They provide an installation script which makes the process easy.

Observations

The touchscreen works wonderfully, much better than the typical/cheaper resistive TFT that we’re most familiar with.

I’ll need to determine which GPIO pins those four pushbuttons go to. It will be nice to use those in some sort of interface.

I reviewed both the OctoPrint-TFT and TouchUI interfaces for OctoPrint on this. I’m not convinced that either are a perfect fit, given the size of the screen. Both required the Desktop to be installed on Raspbian. In the case of TouchUI, it required the use of a local browser on the Pi (Chromium) but I was able to get this to go into the full screen mode.

Other than as a control interface for a 3D printer, I’m not quite sure what projects would be a good fit for this. The timelapse rail kit would be good for this setup, perhaps. It’s a little bulky for a cryptocurrency cold wallet. It would probably make a good streaming music player, given the positioning of those buttons.

Adafruit makes some very attractive enclosures for this, unfortunately they’re out of stock at the moment.

  • Size: 2.8″ (board matches form factor of Raspberry Pi 3B)
  • Screen dimensions: 50mm x 69mm
  • PCB dimensions: 56mm x 85mm
  • Brand: Adafruit
  • Model: 2423
  • Name: PiTFT Plus 320×240 2.8″ TFT + Capacitive Touchscreen
  • Cost: $45
  • Resolution: 320×240
  • Touchscreen type: capacitive
  • Feature: extra 40-pin header underneath board
  • Feature: four tactile pushbuttons

old-fashioned milk bottles

Once upon a time, you’d get milk delivered in the morning in glass bottles. Okay, honestly, it was other people who got that but I do know this from watching old movies.

milkman

Now that I’m old enough to go shopping myself, I have a fondness for buying my milk in bottles like this. For most people, I’d guess, the thought of adding an extra $2 for the glass rubs them the wrong way. For me, I see it as an excellent way of picking up a great deal. It would cost about $10.84 for that same glass two-quart container from Amazon.

Re-use, recycle, re-invent

So what would I do with the extra bottle? Almost anything that can fit through the top is a good candidate but food is what I primarily store in mine. I have at least 30 bottles storing dry goods, two storing refrigerated drinks and perhaps eight storing filtered water.

When I make waffles, I usually mix up several batches of the batter and that will go into the pint-sized glass bottle. Turbinado sugar also goes into the pint-sized version, making it easy to spoon straight out from there.

I purchase the Mueller’s pot-sized spaghetti which fits nicely into the quart-sized bottles. Most flours as packaged by Bob’s Red Mill will exactly fill the quart-sized version. Potato flakes? Check. Granola? Check.

I have rows of beans and lentils, pastas of all shapes, flours, starches, coconut flakes and almond slices. There’s trailmix in one. I have semolina, masa, corn meal, oatmeal, Scottish oats and Creme of Wheat.

In the refrigerator today I just added two quarts of iced tea and a quart of iced coffee. Three visits to a local coffee shop would probably set me back $12 for three drinks and I’ve just stored away the same amount for a fraction of that cost.

Perhaps the best benefit of storing most of your pantry in glass is that you no longer have to deal with pests. This is the first time in my life that I have literally zero bugs trying to eat my food.

Enter the 3D printer

The tie-in, then, to the 3D printer involves me designing a replacement funnel using Autodesk Fusion 360 for the purchased funnel I’ve used up until now. Hopefully it turns out, it’s about as big as my printer could do.

The previous funnel was okay but it wasn’t a great fit for the bottle. Big items like granola would constantly get stuck in the too-small funnel neck. This one should fit perfectly.

Screen Shot 2018-07-09 at 4.03.41 PM

Food safety and plastic

Some of you may then caution about the use of printed plastic in conjunction with food. I’m sure the PLA filament (which is made of a polymer of corn starch) is actually closer to be food-safe than the funnel which I’d purchased from a car parts store earlier.

Some of the typical concerns with food versus printed plastic is that the small grooves in the plastic allow for bacteria to grow. Okay, but this is the same for most of the plastic utensils which we routinely include in our kitchen, right?

Another concern is regarding the existence of lead in some of the nozzles used. Yes, but that must be so minuscule as to be outside of the realm of concern. In response, I could site the many harsh chemicals used in the processing of naturally-green soybeans to create an unnaturally-white soy milk product, for example.

For dry goods, the PLA funnel should be a non-issue. With reasonable cleaning I think that it will do fine with liquids as well as long as I don’t use it to funnel boiling water, for example.

glacier

Earlier today, I created a Raspberry Pi Trezor (cold wallet) for cryptocurrency using that cool Adafruit 1.3″ OLED bonnet.

PiTrezor

It seems to reasonably work from a fork of the original code. It presents itself to the Trezor Bridge software and to your workstation as a slave USB device. I suppose you could think of the entire thing as a smart USB thumb drive, if you will.

The code image is smaller than you’d normally expect (50MB). I’ll get in there and take it apart later from a software standpoint.

Notes:

  • The interface is beautiful on the small screen with attractive fonts and functional animations.
  • I don’t love websites which only work with a single browser. In this case, it’s Google Chrome of course and it was necessary to install that for Trezor to work at all.
  • The standard screen assumes that the buttons are positioned below it, not so for the Adafruit hat. So you just have to guess that the furthest button equals the right-most button and it all works out.
  • The GPIO pin layout of the OLED bonnet is different from the native Trezor device so of course, the bootloader upgrade routine doesn’t work as expected. It will be necessary to recompile and reload the image in order for this to work. I’ll have to review all that to see how it affects me to I don’t love anything in the cryptospace which can’t keep up to the current state of the art.
  • Having the micro USB cable sticking out of the side of the Pi just seems awkward so I’ll work up a serial connection to the GPIO pins with a USB plug tail and incorporate all this into a slick-looking case.
  • I don’t think I enjoy the website interface for selecting other cryptocurrencies. I think I like the KeepKey version of this better, to be honest.
  • Although Trezor suggests they’re compatible with other currencies, they seem to only be able to do Ethereum via a third-party. The hand-off to that third-party provider was about as ugly as it gets and I aborted. You shouldn’t have to create multiple accounts to simple store a wallet.
  • Unless I gain more confidence with all this, I won’t be putting any money in the wallet but it’s an interesting exercise.

adafruit oled display

Other than importing gadgets, Adafruit sometimes also designs them. Today’s review is for their cool 1.3″ OLED display for the Raspberry Pi computer. It appears to fit exactly the top of the Raspberry Pi Zero WH (the one with the included header).

IMG_0041

At $22.50, the hat is about twice the cost of the computer itself. The 128×64 display is enough for most projects, I’d guess.

I’m thinking that I’ll use this one to develop a cold wallet for cryptocurrency.

The hat (“bonnet”) includes a joystick with four positions and a pushbutton as well as two stand-alone pushbuttons on the right. It comes with good support on the Python side of things. If you’re like me and prefer Node JS, then you’ll be doing a lot of research on this one.

The interface is I2C. The device identifier is SSD1306. The example software includes text- and image-based Python and a bit of an animation of text.

In case you’re interested, I’ve written a tutorial for getting this setup.