Category Archives: Musings

Just the musings of technical minds.

Shattered Hard Drive

I recently had a laptop brought down for not working.  It had no cosmetic issues that looked like it had dropped however the student had noticed that when the laptop was shook…  violently shook, it sounded like there was loose parts inside.  I pulled the drive out to see if I could recover any data off of it and noticed that the sound was coming from the hard drive.  I immediately knew something was very wrong and that chances of recovery were slim to none.  Told the student I would try and sent him off.

I then took the hard drive apart… and all of my years experience I have not seen this first hand yet.  The platters were shattered.

I have stripped the sound because names were mentioned.  It also took me a minute to find the screw under the sticker.

WAN Load Balancing

We ran into an issue at work where we needed faster Internet (or more bandwidth,)…  The prices for our current ISP’s were higher than we had hoped for faster Internet, but we would like fail over as well as additional load balancing.  With teachers and students depending on the Internet so much we cannot afford not to have the Internet working well.  Our current provider’s downtime was unrealistically low (single digit hours a year) and we were VERY happy with the service.  Increasing our speed with that provider was not very cost beneficial compared to other providers.  So we started considering load balancing/fail-over with a second or third provider.

We investigated several commercial options as well as potential open source options.  We LOVE open source but something as critical as this we wouldn’t want to have to ever really troubleshoot.  We looked at solutions that were computers with specialty designed OS’s, as well as specialty hardware.

We had discussed deeply whether a standard computer hardware (with replaceable hardware) would be better than a hardware device designed to do what we wanted.  Ultimately we came to the conclusion that the software or features would make the decision.

We ended up going with a Ecessa Powerlink 600 which is a load balancer for both inbound and outbound connections,WAN fail-over, and Ecessa fail-over if two units are purchased.  We get the device setup with our current single 11Mb/11Mb fiber connection and were dieing to get more connections on the device.  A few weeks later we were able to get 100Mb/5Mb cable connection in and immediately saw the differences and how Ecessa was load balancing between the two connections.  Within the first week we had also had notices of our new cable modem dropping in and out however end user experience was not effected.

We were able to eventually load balance:

  • 11Mb down/11Mb up extremely reliable but expensive fiber connection
  • 50Mb down/50Mb up reliable wireless connection
  • 100Mb down/5Mb up least reliable cable connection

This provides us with a total usable bandwidth of 161Mb down/67Mb up, with the fastest potential download speed of 100Mb down, 50Mb up depending on the WAN interface you happen to fall on.  This also provides fail-over on any of the connections so that we can immediately fail-over to another connection without major interruption to end-users.

This link is also capable of load balancing incoming connections if set to an authoritative DNS server however we are currently not implementing that due to current network structure and time involved to implement that.  Although the time is not much, we are pressed to finish other projects right now.  That being said, we will be implementing this in the future.

I can say that installation was EXTREMELY easy with tech support.  Without the tech support the device would not be as straight forward as most would hope, advanced users ‘could’ struggle to get it setup.  We provided some simple information and they sent us a configuration file which was uploaded to the device.  They pretty well configured the device remotely and sent us the file.

We got it up and running and it has been running fantastic for over 100 days; even during ISP failures on our cable modem.  Our end users do not notice any issues when we fail-over.

When you setup Ecessa WAN links you type in the IP’s of 3 hosts to ping continuously.  When 2 of them fail the PL600 fails that link until they come back.  This ensures a good solid reliable connection for the end users.  We see out links during the day sporadically fail-over from time to time and have not had any complaints from end users.

During troubleshooting we can VERY easily see what WAN links are up and down, if there were problems, and what speeds are.  Screenshot - 01152013 - 09:30:12 PM

 

 

We have found the Powerlink Extremely effective and  HUGE cost savings.  In about 1 year the device will pay itself off compared to if we would purchase a very fast reliable Internet connection.  We are looking for a second to setup as a redundant fail-over in the years to come.

Linux Vinyl Plotting With A Gerber enVision Plotter

I recently had the opportunity to work with an older Gerber enVision plotter from a township.  I had major difficulties getting the old version of Omega working with their USB licensing stick, and I knew that getting anything like this working on Windows without proper licensing would be an inadvisable, and rocky road ahead.

I decided to look into open source solutions, and I found out that Inkscape can do vinyl plotting with an extension called InkCut.

This tutorial will attempt to comprehensively explain how I got this working.  I am by no means an expert, but I found very limited web resources out there on this topic, and I am hopeful that someone will eventually stumble on this article and find it useful.

Background
A simple, free, and open source solution to an expensive and complex problem: How do we plot stuff with our vinyl plotter?

Assumptions
This tutorial will assume that you have some prior experience with the Linux terminal and the Linux desktop.  On my test computer, I was working with a clean installation of Ubuntu 12.04 (12.04.1) LTS.  However, any Ubuntu or Debian flavor should be acceptable.  I am also assuming you have an older Gerber enVision series plotter.  If this is not the case, I imagine most of these instructions will apply fairly well to any kind of vinyl plotter.

The Plotter
Here are some photos of the Gerber enVision plotter I was working with.

2013-01-01 13.20.33

2013-01-01 13.20.42

 

The plotter interfaced with the computer using a serial connection.

Ubuntu & This Plotter
In order to establish proper communications between the computer and the plotter, I had to ensure some things were true.  I reset my plotter to the factory default settings, which resulted in a condition where I could assume this about my serial connection:

Baud: 9600
Data Length: 8
Parity: None
Stop Bit: 1

In order to ensure communication with non-root users, I took a questionable approach, and I decided to:

This did not need to be a very secure environment (we didn’t even password protect the workstation’s desktop) so I figured this would be a reasonable approach, rather than troubleshooting why CUPS was getting permission denied errors while printing to the serial port.

Configure The Plotter In CUPS
To install this plotter in CUPS, you’ll want to open up your Printer configuration area from the System menu.

Click “Add” to add a printer.

CUPS Add A Printer

If you don’t have the option for “Serial Port #1”, then use the Device URI “serial:/dev/ttyS0“.

Serial Printer

 

You will want to select Generic as the make of printer.

Generic Printer

 

Then, select “Raw Queue”  This will work with InkCut providing the HPGL instructions.

Generic Printer - Raw Queue

Obviously, it doesn’t matter what you name your plotter, or what description you give it, just give it something that makes sense.

Finalize Printer Settings

Install Inkscape

Next, we want to install Inkscape.  You can do this from Apt on Ubuntu, as such:

Once you’re done with the installation, start Inkscape for the first time.  This will create blank default configuration folders in your profile which are necessary for the next step.

Inkscape

 

Then, go ahead and close Inkscape, and move on to installing InkCut!

Install InkCut
You can download the latest version of InkCut from their website.  At the time of this writing, the version is 1.0, and can be found here.

Once you’ve downloaded InkCut, go ahead and extract the file using this command.  It will put the files right where they need to be for you!

Now, when you start Inkscape, you should see InkCut on the Extensions menu, under Cutter/Plotter.

InkCut

Screencast How-To’s
 I have also created some screencasts to explain how to set up the document for your plotter, as well as how to plot some basic text.

Document Setup – Screencast
(Download OGV)

Let’s Plot Some Text! – Screencast
(Download OGV)

Remember, when plotting your text, you need to make sure your objects are converted to paths, by highlighting your text and going to Path > Object To Path.  You also want to make sure your paths aren’t grouped, by right clicking each block of text and clicking Ungroup.

Then you should be good to go to Extensions > Cutter/Plotter > InkCut v1.0 and start plotting!

Installing Dragon Naturally Speaking 12 Does Not Work With WINE 1.5.20

NOTE: This is NOT a how-to.  This was an effort to document the problems I ran into during installation.  This blog post did not end in a successful installation of Dragon Naturally Speaking 12 in WINE 1.5.20.

This post, like my previous one, also started as a How-to, until it didn’t work…  I did eventually get Dragon Naturally Speaking working, and that post will be coming shortly.  This post does not have instructions which work, but I will publish it anyway in the hopes that someone will find it on Google, and something I’ve written will be useful.

My Installation Experiences

After failing to get Dragon Naturally Speaking 12 working on Ubuntu 10.04, I decided to try it in Ubuntu 12.04 where I would have access to a more recent version of WINE.  I decided to grab the latest version of WINE from the PPA.

Install WINE 1.5 from the PPA

Install Microsoft .NET Framework 4.0 (Winetricks)

I was asked to download a file from Mediafire and put it in a location. Follow all on-screen instructions.

Dragon - 3 - Dotnet Error

The .NET Framework installer failed and produced error code HRESULT 0x80070643.  I found this bug report which led me to these other Winetricks.

When installing the other Winetricks, pay attention to their instructions, as some of them will have you download and run other scripts.  This is supposed to satisfy the missing .NET Framework requirements.

Create a 32-bit WINE Prefix As described from this thread, I followed these steps.

Run Dragon Naturally Speaking Installer

Dragon - 1 - Install Starting

Dragon - 2 - License Agreement

 

I still got an error when executing the MSI installer…

Dragon Naturally Speaking 12 Does Not Work On Ubuntu 10.04

NOTE: This is NOT a how-to.  This was an effort to document the problems I ran into during installation.  This blog post did not end in a successful installation of Dragon Naturally Speaking 12 on Ubuntu 10.04.

In spite of being a failure, this post may be useful to save someone else some time if they find it on Google.

I was recently asked to get Dragon Naturally Speaking (version 12) running on a Ubuntu 10.04 laptop at work.  I thought I would write up on this for my own consultation, and at the same time, I figured it would be worthwhile to publish it, in case this helps anyone else.  I realize Ubuntu 10.04 is on its way out, but nevertheless, this might be helpful to someone.  This article started as a how-to, until I realized that it wasn’t worth getting working with these software versions.

Tested Software Versions:
Ubuntu Linux 10.04, WINE 1.2.2, Dragon Naturally Speaking 12.

My Installation Experiences: (WINE 1.2.2) (Did not successfully install.)
Because I am dealing with some very old hardware (a laptop that lacks a DVD drive), I copied the contents of the DVD to a folder on the hard drive, using the network.

Since the application already had a rather high rating (Silver\Platinum) on the WINE database, I attempted an installation using WINE.

I started the Setup.exe program in WINE, and everything looked like it was going well.

Dragon Naturally Speaking informed me that it would require additional dependencies, but it started their installers for me automatically.

Dragon - 1 - Install .NET Framework 4.0

Dragon - 2 - MSXML 4.0 Parser Setup

The MSXML 4.0 setup program ran and successfully installed.  Then, it tried to install .NET Framework 4.0.

Dragon - 3 - Program Error

The .NET Framework 4.0 installer failed…

Dragon - 4 - .NET Failed To Install

So, I used Winetricks to install the Microsoft .NET Framework 4.0.   At the time of this writing, you can get Winetricks here.

While following the instructions to install .NET Framework 4.0, I was asked to download a file (gacutil-net40.tar.bz2) from MediaFire and put it in my home folder in the .cache/winetricks/dotnet40 folder.

After downloading and placing this file in that location, I ran the Winetricks .NET Framework 4.0 installer command again.

The installation took a few minutes, and I got an error message…

Dragon - 5 - Program Error Again (.NET Framework)

I decided I would use the WINE PPA and get a more recent version of WINE installed.

Installing WINE 1.4 from the PPA

Installing on WINE 1.4 (Also did not successfully install.)

I went right ahead and tried using Winetricks to install the .NET Framework 4.0, anticipating that this would be a problem.

The installation ran for a few minutes, but this time it did not crash.  The upgrade to WINE 1.4 must have resolved the issue with the .NET Framework 4.0 installer.

Dragon - 6 - .NET Framework Installer Working 1

I thought it was interesting that my download size would be 0MB, but maybe it still had some files it had downloaded on my previous attempt…

I decided Microsoft didn’t need to know about my setup experiences.

Dragon - 7 - .NET Framework Installer Working 2

It looked like it was going to work, until it failed.

Dragon - 8 - .NET Framework Failed To Install

As suggested by the setup wizard, I took a look at the log file.

After I pressed “Finish”, more terminal output occurred, and it looked like the setup was continuing to make registry entries.

I decided to give the installer a shot anyway, since it looks like part of the .NET Framework 4.0 installation might have succeeded.  It got further than before.

Dragon - 9 - Dragon Setup Partially Working

But it threw some errors, and failed…

Dragon - 10 - Error 1

Dragon - 11 - Error 2

Dragon - 12 - Failed To Install DNS

I did some Googling, and I came across this bug and this bug.  Based upon that, I decided to install a few more Winetricks to see if that would help.

I had some difficulties installing MFC42 because of a 404 error within Winetricks… but it looked like this Winetrick might fix the missing files.

After running these Winetricks and going through their installers, I tried the setup again.  I had the same results.

I looked for dd10hook.dll, and I found it in the correct location on the hard drive.  So, this seems to be an issue only with using\running the DLL.  The file is where it’s supposed to be.

I decided I would need to consult the forums on this one, so I turned on some WINE debugging options.

This was my debug output when running the installer.

I will attempt the installation on a newer version of Ubuntu with a more recent version of WINE, because it sounds like Dragon Naturally Speaking 12 might work in WINE 1.5 based on this bug report.

I will keep everyone apprised on my progress!