BarbieGumby2

I’m working on repairing a laptop for a friend. She has very minimal needs, but reliability is one of them. I’m asking her to try Ubuntu Linux for a while. She’s totally open to the suggestion.

Here’s my question: How would you (simply) explain the difference between Windows Operating System and a Linux O/S to a total non technical person?

The only thing I could come up with was this:

Windows is like a Barbie Doll. She plays with Ken. They do cool stuff. You can dress her up, move her, do lots of different things. When you lose one of Barbies shoes, you really can’t buy just one more. If a dress rips, oh, well. There are a whole lot of accessories you can buy for Barbie. She’s way cute. She is fun to play with.

Linux is like a Gumby Doll. You can pose him, do different stuff. He plays with Pokey. They do cool stuff. He doesn’t come with many accessories, so there’s nothing to lose. Gumby costs a lot less than Barbie with all her accessories. He’s also VERY reliable. Not much to break, nothing to lose. He is fun to play with.

Anybody have a better way to explain the differences?

Barbie and Gumby image courtesy of Trash-n-Treasures Antiques & Collectables

So I happened to be looking at a SoundCloud website while chasing down a particular image. I opened the site in Chrome and then opened up the dev tools elements in Chrome. At the bottom of the screen, in the console, I was surprised to see

You like to look under the hood? Why not help us build the engine? http://soundcloud.com/jobs

The only folks who would even see this message is somebody looking at the details of the code. Way cool.

I often find myself looking at the details on large volume production sites as a learning experience…

  • What tools are they using and why?
  • Any special JavaScript libraries?
  • Is it organized well or obfuscated and ugly?
  • How many visible errors are there shown in the dev tools panel?
  • Are there any tools there that will help me become a better developer and service my customers better?

So I was talking to a former mechanic friend of mine. We were talking about tools. I was saying I don’t really understand why, but I just like owning nice tools and I really like that all the tools come from the same manufacturer. It’s like they’re an organized, integrated set. Yes I know that’s pretty anal… the sign of a perfectionist. (I always thought Snap On should give away a 15 piece tool set.. let folks get started and addicted. They’d make lots of money in the long run.)

Trucks in sandbox

But sometimes being really a perfectionist is a good thing, particularly where design and engineering come together. When you design something you really want it to be the best it can be. (insert your own rant here…)

The funny thing was, in talking to this friend, I was explaining that I was so anal that as a young kid, I couldn’t play with trucks and cars in the sandbox unless they were all the same scale. It just didn’t make sense that a Tonka Truck and a Hot Wheels car were on the same road together. Don’t know where that comes from, but I couldn’t have been more than six or seven. My friend, laughed and admitted he had the same scale issue when he was a kid.

Trucks in the sandbox image from Sandra Miller at ShutterBEANPhotography

So I’m trying to help a friend fix her Dell Inspiron N5050 laptop. The laptop has some odd operating system issues. It was a Windows 7 device, crashed hard. We’re trying to clean it up, get it back to Original condition (with the intent of a fresh install, then pushing Windows 7 –> Windows 10.)

dell-logo

Unfortunately there are no backup recovery DVD’s burned for this thing. Shit happens. So no problem. We’ll go over to Microsoft, and download the recovery disks there. At that page you have to enter the Windows original product key, to validate the .iso download. No problem, that seems more than fair. Ooops.

Error
The product key you entered appears to be for software pre-installed by the device manufacturer. Please contact the device manufacturer for software recovery options.

What the heck? The purchase of the laptop included the purchase of a Windows license, but we just can’t use it that way. So we move on!

I did find this article on recovery over at Dell and a link to the Dell Recovery Image. Wow. Can you imagine? The disk .iso files are available online. Way cool. Attaboy Dell! If this works, big kudos to Dell for doing this right, and making the software available… So we type in the Service Tag # to validate the download, and…

Recovery image not available for your Service Tag. Sorry, but a Dell Hosted Recovery Image is currently not available for the Service Tag that you entered. Please enter another Service Tag or contact Dell Technical Support for further assistance.

Well this is no fun. I’m on the phone with Dell. I can purchase the disks (ship only, not available via electronic data transfer.) They tell me that the download .iso file just isn’t available. Hmm.. they have the DVD’s but no .iso file(s). How do you spell customer service? Cost is around $25 or so and a delay of a week or so.

Mumble, mumble. I’m not happy. This makes me reconsider ALL of my Dell purchases. (I spent $1200 with them last year…) How can you take an idea, better customer service on the product and screw it up this badly? I can’t believe that the folks at Dell really want to be selling recovery DVD’s years after the sale. They’re not in the business of making profit from selling boot CD’s and DVD’s. They’re in the business of selling computers and awesome business and personal use products. That fact that they have a system in place to provide nearly trouble free support is awesome. The fact that they don’t bother to use their own system is a huge (negative) marketing thing gone wrong.

Here’s an image from Dell’s website:

customer engagement

customer engagement

This is terrible. How can you let customers down this way? What is the problem, converting DVD’s over to .iso files? Really? Hint: Consider an open source solution. Let us, the users do the work for you to make your electronic support systems better. Yes, it will cost a wee little bit for server storage, but I’m guessing you are saving those files somewhere within the Dell empire anyway.

Note: This whole thing is baffling. Why would Dell be selling DVD’s anyway? My worst suspicion is that Dell has sold the service contract (for much older computers) to an outside company, and those guys consider selling DVD’s at $25 a pop a major profit center for them. And part of that contract is Dell can not offer the product as an online download (Non-compete). If this is the case, shame on you Dell. You really suck. You need to treat customers with more respect and concern. Remember, the purchaser of the computer has already paid for a Windows Operating System license. Microsoft will give them access to the necessary software as a free download, but in this case Dell users are blocked, locked out of Microsoft, and forced to use the Dell service. Remember too, that every request for service is a failure (in hardware or software) somewhere along the line.

Dell, you have to treat customers better! When you treat us better we come back for our next purchase. When you push us away, we go elsewhere.

Note: Dell logo from Stefan Zaklin | Getty Images. Dell Customer engagement photo from dell.com

So I’ve been pretty excited about going to Hackathons. They are fun, you get to met new people, try different things, and have some fun. For those that don’t know, a Hackathon is sort of a contest between software folks to address a set of challenges to come up with something unique. Its an idea generation contest. It also provides a chance to learn what skills you don’t know, what you need to brush up on.

The biggest Hackathon of the year is the AT&T Hackathon that takes place in Las Vegas the weekend before the annual Consumer Electronics Show (CES). This year there were quite a few sponsors and a whole lot of prizes. After looking at the sponsor list, I came up with an early plan. I’ve been playing around with different tutorials on OpenCV (Open Source Computer Vision) and thought that would be a fun thing to play around with.

Looking at the challenges on the Hackathon list, I saw a challenge there for “It Can Wait”… an idea to reduce distracted driving. I also saw a challenge for best use of Intel Edison board. That got me to do a bit more research.

I discovered the Intel Garage videos, where they hook up a web camera to an Intel Edison, and are able to use OpenCV on that platform. I was able to reproduce these demos with an old USB webcam I had hanging around.

  • http://www.intel.com/content/www/us/en/do-it-yourself/garage-content/garage-facial-recognition-video.html
  • http://www.intel.com/content/www/us/en/do-it-yourself/garage-content/garage-webcam-hook-up-video.html
  • http://www.intel.com/content/www/us/en/do-it-yourself/garage-content/garage-streaming-web-video.html
  • http://www.intel.com/content/www/us/en/do-it-yourself/garage-content/garage-audio-voice-recognition-video.html

Awesome. At first glance it should be possible to add OpenCV to Intel Edison. Time for more research. I did discover a Github submission that uses OpenCV to track pupil gaze. Its not the entire thing, but its a very decent start towards making a proposal for a box that sits on the dashboard of a car, looks at the driver and detects when they are looking down at their mobile phone. Awesome idea. Form up a team before hand, make sure we have all the necessary cables and bits and we should be ready to develop something.

So we go to the Hackathon. One of our team members gets way sick. He’s clearly the smartest of all of us, but oh well, lets move on anyway. So we get to the hackathon, and we’re talking to a sponsor. He asks us what our plan is for the event. We tell him. He tells us, wait a second, wasn’t that the grand prize winner for 2015? He tells us, wait a minute, here is the Youtube video of the project. Oops. In fact, big oops. We quickly realize, there is no way we can repeat something that has been done before. Ouch.

So what next? We’re sitting around the table, moping about the issue. We’re visiting some of the sponsors, looking for good swag. One of the items we picked up for review was a Freedom ARM processor board from the folks at NXP / Freescale, a FRDMK64F . Its an Arduino style board with decent processor and memory, and the kit includes an accelerometer, magnetometer and gyroscope input card. Very cool. We start playing around with the board, as well as some items from other sponsors. We add a Ublox GPS sensor and an Konekt Dash (a digital cell phone / sim card transmit device) to the mix.

ShockWatchParts

And we think we have a feasible project. A guy I met in line decides to join us. Later two international students ask if they can join our team. Sounds great. We form a five person pick up team and by get started on the project around 5PM on Saturday. Its late but what do we have to lose. We break the project down to little steps, divide up the work and move it along. Most of the coding was done in C using the Mbed online IDE tool.

We’re making a Shock Watch device. Its a small battery operated box that detects GPS locations and monitors acceleration loads (shock G loads) Its placed in the back of an 18 wheeler truck to determine maximum loads placed on products being shipped. I’ve worked with plastics before, and heavy impact loads, particularly in cold weather, just don’t play well together. Think of an entire load of large screen TV’s being shipped across the midwest in January or February in sub-zero temperatures. Cold plastic doesn’t take impacts well at all. Our shock watch device monitors the G-forces, sends out a digital message to the cloud every five minutes. You can determine the location of rough road areas via GPS location. You can even monitor the location of the truck during transport. All data goes thru the Konekt server with the intent of storage at AT&T M2X data storage in the cloud.

Click here for presentation slides.

Its not our original idea, nor is it our original team. What makes this way cool is this project wins a $5000 kicker prize from a sponsor for unique use of their product, the Konekt Dash.

Lessons learned:

  • Its okay to abandon ideas to try something else out when you hit a road block.
  • Never give up.
  • Get organized.
  • Everybody has something to offer, no matter what their background. The two international students didn’t do a bit of coding. In hindsight, their input was instrumental in the teams getting to a prize. They kept us on track ensuring that critical team management events were done on time. They also created a wonderful Powerpoint slide show describing the project, and did so without prompting. That presentation really made our idea stand out.

TeamShockWatchAwesome

Thanks and Congrats to the “Shock Watch Awesome” team (L->R):
LB Corney, Las Vegas
Dirk Schmidhofer, Las Vegas
Daniel Kunkel, Seattle Area
Kanat Mustafin, International Student from Kazakhstan
Poy Yeung, International Student from China

I’ve often been stuck between different operating system needs, Windows vs. Linux. Not everything works the same on those two system (nevermind the Mac/iOS stuff). I was normally a Windows developer, until I got burnt hard trying to use Meteor.js on a critical project. At that time, you couldn’t use Meteor and a remote database on a Windows machine without crashing. On the other hand, a tool I often use is Solidworks for CAD design, and there is no way to run that on Linux. You just can’t win.

So now that solid state USB drives have come down in price considerably, I thought I’d leave my laptop computer in Windows 10 and create a handy bootable 128GB USB flash drive with Ubuntu Linux. I’ve tried this before with very mixed results. I did see this recent posting over at askUbuntu.

128GB_Flash_Drive

The steps were pretty straightforward:

  • Create a bootable Live Ubuntu USB installer tool. I downloaded Ubuntu 15.10 desktop/laptop 64bit version to my desktop computer. I then copied that .iso file over to a flash drive using unetbootin for windows. The unetbootin tool is very handy for pushing any .iso file onto a USB flash drive.
  • Format a 128 USB flash drive as a single partition NTFS. I got stuck here on other things, the NTFS worked very smoothly. Definite No Go on exFAT… the linux live boot wouldn’t recognize the drive in that format.
  • Boot the laptop to the live Ubuntu install drive.
  • The next step is pretty important. Since native Windows 8 machines, the Windows hardware world has shifted from BIOS to UEFI for boot up control. I will admit, I really don’t understand the details, but I know I’ve wasted a whole lot of time doing things wrong. I was convinced for my machine, I wanted to be fully UEFI compatible.
  • Start the drive with the selection “Try Ubuntu”. After Ubuntu loads, open up a terminal window:
    [ -d /sys/firmware/efi ] && echo UEFI || echo BIOS 
  • Verify you have a UEFI response.
  • Insert your 128GB NTFS USB drive
  • When you’re ready to install Ubuntu, double-click on the icon on your desktop: ‘Install Ubuntu’.
  • At some point in the process you will be prompted for “Installation type”. Choose “Something Else”. When asked for a target device choose the 128GB flash drive.
  • IMPORTANT: In the option labelled location to install bootloader don’t forget to set it to your flash drive.
  • I’ve had issues before when doing this, where during the install to the USB drive, the grub will also detect all OS kernels on all attached devices (like your HDD) and add them to grub. This means an (unintended) modification to the hard drive. The only way I know to prevent this is to remove the hard drive from the laptop before performing the USB installation.
  • Note: for my install to prevent a black screen on initial startup, I had to add the ‘nomodeset’ option right before ‘quiet splash’ for my startup options.
    • I’ve now got a handy bootable Operating System that I can use almost anyplace.

I was talking with a potential customer who had need to manage a complex system for employee scheduling and timecards. It got me researching the topic to find possible solutions. I discovered a nice TimeKeeper project over at github. The TimeKeeper example creates a simple (mobile) web site form to add simple data. Data is stored in google sheet named “timeSheet”. It will add events to google calendar and email you every saturday a digest to help you keep track of time.

That example fully utilizes the tools Google has made available to the public, and offers a good chance for success at a very reasonable cost to the customer. I’d know Google is friendly to developers, but I’d never really knew the details about these tools, identified as “Google Apps Script”. It turns out Google gives you access to API’s and libraries that touch virtually all Google products. Access is via JavaScript code, but instead of the code running in the browser, the code runs on Google’s servers. Why does this matter? When the code runs on Google’s servers, it greatly changes the security model.. instead of passing Oauth tokens around, the Google Apps Script manages that for you. Way cool.

For anyone not familiar with Google Script Apps, there is a lot of information available online.

To run this sample: (reference)

  1. Open up your browser to google.com
  2. Ensure you are logged in to Google. (check upper right hand corner of the page.)
  3. Click on the 3×3 box icon, then select Google Drive.
  4. Select New –> More –> Google Apps Script
  5. Copy the contents of code.gs file from this repository to your script.
  6. In the script editor tool, choose File –> New –> HTML file. This will create a new tab in your editor.
  7. Copy the contents of index.html from this repository to your new html file.
  8. Save all files, give your project a name.
  9. “Once that basic framework is in place, all you have to do is save a version of your script, then deploy your script as a web app.” See instructions at https://developers.google.com/apps-script/guides/html/

 
(Note: I’ve suggested the instructions above be added to the README.md file on the github repository, but that doesn’t seem to be there yet…)

So, I’ve been wanting to play around with the OpenCV Open Source Computer Vision tools. I thought this counting cars video pretty clever.

So with a new installation of Windows 10 (64bit), I thought let’s see what we can do.

Question #1: What Integrated Development Environment (IDE) should I use for the project? For now I’m assuming a no cost open source solution. Here are a few I looked closely at:

  • CodeLite (95 questions in stackoverflow)
  • Code::Blocks (2.3K questions in stackoveflow)
  • Windows Visual Studio (49K questions in stackoverflow)

I started this journey working with Codelite, but it soon became obvious I had no idea what I was doing when it came to using the library. I couldn’t tell if my failures were because of the IDE tool or my poor understanding of the OpenCV library and its compilation. Oh, and using either Codelite or Code::Blocks would imply using the C++ compiler suite from TDM-GCC So then, I figured I start instead with something that would be likely to have a robust error / help lookup for things gone wrong. Based on the Stackoverflow #’s, Microsoft’s Visual Studio it is. Note, it took me a full day and a half of dinking around to come to this conclusion.

Step #1: Install Microsoft Visual Studio Community 2015.

  • First stop is Join Visual Studio Dev Essentials Hit the Join button, sign up for the service, then select the Visual Studio Community Full Featured Extensible IDE. Go ahead and install it.
  • There was one surprise here. The download package only offered up a 32bit (x86) version of the software. There was no choice for the 64 bit version. Oh, well. As I understand it, that means whatever compiler you use for the IDT tool has to match (x86 versus x64 versions). Drive on.
  • Update, 19 Jun 2016. So apparently you can download Visual Studio Community 2015 with Update 2 (x86 and x64) – Released: 3/29/2016… That means you can download a 64bit version. Awesome.

Step #2, C++ Compiler.

  • Probably best to attempt to run a simple C++ Hello_World sample right away.
  • From top menu, File –> New –> Project. You get a pop up window, New Project.
  • Go ahead and select Win32 Console Application. Accept all the defaults.
  • #include "stdafx.h"
    #include <iostream>
    using namespace std;
    
    int main(){
        cout << "Hello World\n";
        return 0;
    }
  • The first time you go to build and run this application it will fail. Why is that? Oops, because we didn't have any compatible C++ compiler installed. That doesn't come native with the Visual Studio package. I had TDM-GCC previously installed on this computer, but the Visual Studio doesn't use that at all.
  • The good news is that you should see a clickable pop up / error message that will go ahead download and install the package you need, Something called "Windows Software Development Kit - Windows 10.0.xxxxx" In my case, 10.0.26624
  • visual studio problem   visual studio problem2

  • Attempt to run the Hello World project again, and you should see success.

Step #3, Obtain a functional OpenCV library that works with Visual Studio IDE 2015.

  • I spent a whole lot of time here, finding out what doesn't work, so that should make it easier for you to be successful.
  • I initially downloaded the Windows pre-compiled version of OpenCV, available here
  • As of 27 Nov 2015, the date I'm writing this entry, the 3.0.0 windows package from that site only includes the compiled libraries for VC11 and VC12. As I understand it, Visual Studio 2015 uses VC14.
  • I spent a lot of time discovering different ways to generate error messages. Hindsight is 20/20. That precompiled version just won't work with Visual Studio 2015.
  • Save time, don't bother downloading it from there.

Step #3a: Download the Cmake tool.

  • Navigate over to the CMake Download webpage
  • Select the latest release of the Windows (Win32 Installer) .exe version. You definitely want the .exe version, else you won't see the graphic interface tool that makes things so easy.
  • Go ahead and install CMake onto your computer. You will see a CMake (Cmake-Gui) tool in your app list on Win10.

Step #3b: Download the latest version of the OpenCV library directly from the main OpenCV depository at GitHub.

  • If you are not already a Github user, sign up now.
  • Go ahead and clone the depository to your local hard drive. I used the Git Bash Command Line tool for this.
  • Place the cloned copy of the OpenCV library at a convenient location. The C:/ (root) location will be easy to deal with.
  • I've named my directory "c:/opencv_git" to keep it separate from the precompiled version I downloaded previously.
  • There has been some pretty awesome work done in that library. Its set up for very easy compilation.
  • Navigate over to your opencv folder and inside there, create a new directory named "mybuild".

Step #3c: Start the CMake Gui tool.

   cmake3_w_text

  • Where is the source code? = C:/opencv_git
  • Where to build the binaries? = C:/opencv_git/mybuild
  • Hit the configure button.
  • Specify the Generator for the project, the default "Visual Studio 14 2015" is just fine
  • Use default native compilers, Click Finish button.
  • At this point you will see log being generated in the bottom box of the CMake tool. Hopefully you get a completion without errors.
  • You should see a long list of items with red-pink background. Accept the default selections.
  • Finally click on the Generate button to create the new content within your mybuild directory.

Step #3d: Compile the OpenCV library using Visual Studio.

  • Using Windows Explorer navigate over to your mybuild directory.
  • Locate the file "OpenCV.sln" in that directory. Click on the file to open it with Visual Studio.
  • Visual Studio should open, with a populated "Solution Explorer" box.
  • I'd recommend collapsing all the Solution Explorer entries down to their headers, it makes things easier to see.
  • At to top of Visual Studio, note what configuration you are working in Debug or Release . Let's choose Debug first.
  • visual_studio_wText

  • Right Click on ALL_BUILD selection in Solution Explorer, then select Build. This will take a few minutes to run. This will build the appropriate xxxxx300d.lib, xxxxx300d.exp and xxxxx300d.pdb files.
  • Swap configurations (Debug <--> Release) so Release is selected, then Right Click on ALL_BUILD again and select Build. This will build all xxxxx300.lib, xxxxx300.exp and xxxxx300.dll files.
  • After both sets of builds are complete, open up the expand the values for "CMakeTargets" Right click on "INSTALL" and then Build once more. This will join both Debug and Release libraries into a single "lib" and "bin" folder.
  • visual_studio_3

  • My new directories ended up as: C:\opencv_git\mybuild\install\x86\vc14\bin and C:\opencv_git\mybuild\install\x86\vc14\lib. I also see a staticlib directory in there too.
  • This completes the compiled build of the updated OpenCV library.

Step #4, Use our new library to compile and run an OpenCV program within Visual Studio. The only real tricks here are you have to tell the C/C++ compiler where the header files are, and you have to tell the Linker system where the compiled library files are located.

  • In Solution Explorer, right click on the project title, open up Properties.
    SolutionExplorer1wTxt
  • On the Configuration Properties, C/C++, General settings for Additional Include Directories, enter "C:\opencv_git\mybuild\install\include\"
  • On the Configuration Properties, Linker, General settings for Additional Library Directories, enter "C:\opencv_git\mybuild\install\x86\vc14\lib"
  • On the Configuration Properties, Linker, Input, Additional Dependencies, add the following libraries:
    opencv_core300d.lib
    opencv_highgui300d.lib
    opencv_imgproc300d.lib
    opencv_hal300d.lib
    opencv_imgcodecs300d.lib
    opencv_video300d.lib
    opencv_videoio300d.lib
  • NOTE: There are SEPARATE Property entries, depending on if you are in Debug or Release mode.
  • And finally, you have to add the .dll library locations to the Environment Variables / System Variables PATH. In this case I've added both C:\opencv_git\mybuild\install\x86\vc14\bin and C:\opencv_git\mybuild\install\x86\vc14\lib to my Path entry.
  • Reboot the Operating System to engage the new Path.

And there you have it. One thing I do need to mention. The one posting that really helped me figure this stuff out was something I saw over at Mines.edu. Not sure who posted it, but it really helped me move this along.

Finally, here is my OpenCV test program, courtesy of this video tutorial from Kyle Hounslow entitled OpenCV (All Versions) - Easy Installation Guide and Sample Project -- VS 2010 C++

//#include <opencv\cv.h>   // This is the original code, but I couldn't get VideoCapture work correctly.
#include <opencv2/opencv.hpp>
#include <opencv\highgui.h>

using namespace cv;

int main() {
    Mat image;          //Create Matrix to store image
    VideoCapture cap;          //initialize capture
    cap.open(0);
    namedWindow("window", 1);          //create window to show image
    while (1) {
        cap >> image;          //copy webcam stream to image
        imshow("window", image);          //print image to screen
        waitKey(33);          //delay 33ms
    }
    return 0;
}

VideoCaptureHappyFace

So recently I had a customer who was having trouble with her laptop. She was having weird operating system issues. She was going to throw it away and buy a new one. I suggested that as the Windows 10 upgrade was free, she might just try that and see how things worked. So we tried to upgrade. Something went wrong, so I did a bit of research on the install. I discovered the Microsoft help system and wow was I impressed. These guys bent over backwards to make the install successful. Wow.

So that got me thinking. I sure do miss using Solidworks on my laptop. Now that USB flash drives have come down in price, perhaps putting the laptop back from Linux to windows makes sense. I can install the latest Ubuntu Linux desktop onto a bootable 128 Gig flash drive and do what I need to there.

You ask, why not windows? Because Meteor.js did not run well on Windows, at least not if you have to connect to a database…

So it turns out, that the free upgrade to Windows 10 is offered to Windows 7 and Windows 8.1 Users AND it is required that those users have ALL the updates loaded. This turned out to be quite the mess.

  • My laptop came installed with Windows 8, not 8.1.
  • The good news is that before I converted the laptop to Linux, I created a complete set of Recovery DVD’s.
  • I first deleted all the partitions on the Linux drive using Gparted. Nice program.
  • Then I used my Recovery DVD’s to rebuild the laptop to factory new state. This takes awhile, there are six DVDs.
  • It turns out the Windows product key for my laptop doesn’t come as a sticker on the bottom of the unit, instead, the product key is hard coded into the laptop’s bios. Its in there, but not easily readable.
  • I had created a usb flash drive of the entire Win10 package, very handy, worked very well when I upgraded the customers laptop from Windows 7 to Windows 10. I was hoping I could use that to do the complete upgrade on my laptop.
  • Turns out that simply isn’t possible. The system won’t accept the old Windows 8 product key.
  • Its free to upgrade from Windows 8 to Windows 8.1. Its free to upgrade from Windows 8.1 to Windows 10. But they don’t allow you to go from 8 –> 10 direct.
  • Unfortunately, before you can jump from one version to another, you have to install ALL the updates. That was more than painful. There are numerous rounds of updates. You check for updates, install all the updates available, then check again, to fine more. I think in total there were 275 updates for Windows 8. I started the update process at 1AM (then went to bed). The first round of updates didn’t complete until 8:30AM. It was ugly.
  • In total, it took around 18 hours or so to stage the laptop to version 8.1 with all updates.
  • Then and only then can I see the Upgrade to Windows 10 app on my launch bar. So I click on that for the download, which takes another hour or two.
  • The whole process is baffling. I would have thought the system would check your product key, and if you have 7, 8 or 8.1 you’re all set to launch Win10. Easy. Smooth. Seamless. An hour of my time, not a whole day wasted.

Finally got this all set up, and Windows 10 is pretty decent. But the whole experience doesn’t really leave a good impression of the new Microsoft in my head. I know the whole world is changing around them and they have a hard time keeping up. If I had an operating system issue in Linux, I could submit a bug report, see who else had the same problem. I could see when somebody was working on that bug, and see when it got fixed. I could even see the code details that performed the fix. The system was pretty nimble, and I can see what’s going on every step of the way. Its an open source world.

browser_usage

I look at this chart showing Internet Explorer (IE) Browser usage for the past ten years, and that’s pretty much an snapshot at Microsoft’s competitive place in the market for all their products. Yeah, there is a huge legacy of business users working on Microsoft products (Windows and MS Office tools) who are stuck in the momentum of the past. I gotta believe ultimately the future goes to the quick, the functional, and the innovative. Its no surprise on that chart that Chrome is doing so well. Ask any front end developer for their opinion of the IE browser.

I really like that Microsoft is realizing their shortcomings, and reaching out with the free Windows 10 upgrade, as well as their offer on the free community edition of the Microsoft Visual Studio Integrated Development Environment (IDE) package. But at the same time, the devil is in the details. Good luck to them.

collector_vise_standSo, I’m getting ready to build up my own tool stands. I’m thinking a three or four legged thing, strong enough to hold a grinder, or a vise or a small portable band saw with fixed base. My intent is to create it engine exhaust manifold style (with an open interior), close of the feet with caps, then fill the bottom half of the stand up with playground sand, to make it more stable. I thought, hey it sure would be nice to have a handy calculator so I know how much steel to buy. So I wrote a calculator, see below. What’s cool is I can try different things. I can try different angles, I can try different number of legs. For a given inscribed circle diameter (a measure of stability) , a three legged stand takes the same amount of steel as a four legged stand. Go figure. With reasonable numbers, I am able to build a stand with a single 10 foot piece of tubing.

Here’s the stand I had designed in my head. It’s this stand that convinced me to re-write the Tube Notcher program and add a “Collector” tab to the mix. Click here for the Tube Notcher Paper Template Generator software.

Bill of Materials (BOM) for Tubing Collector Style Work Stand Notes:

  • Each leg has a centerline to centerline measurement, in addition to a Bill of Material rough cut length. Note: centerline dimension is pretty important.
  • HINT, HINT: If it were me, I’d make the leg centerline to centerline measurement a nice round number (without fraction), much easier to measure later. How do you do that? Make slight adjustments to either the bottom leg angle or with the Inscribed Circle Diameter.
  • You can see that a BOM leg length is longer than the centerline length. The BOM length includes safety factors for angled cuts and other factors.
  • The upright common tube is calculated centerline intersection to centerline intersection.
  • Total BOM tubing length includes appropriate extra material safety factors.
  • Again, BOM calculations assume each piece is rough cut to length before pattern layout.
  • If you do rough pattern layout before cutting out the legs, you can easily save some tubing length.
  • With reasonable numbers and some care you should be able to make a stand out of a single 10 foot piece of tubing.

And because it drives me crazy trying to figure this out every time, here are some notes on choosing a hacksaw blade:

  • 14 teeth/inch (TPI) for cutting large sections of mild material
  • 18 TPI for cutting large sections of tough steel
  • 24 TPI for cutting angle iron, heavy pipe, brass or copper
  • 32 TPI for cutting thin tubing
« Previous PageNext Page »