Sunday, May 24, 2015

VMware workstation / windows7 / shared folder woes.


I know that this blog gets zero traffic, but I'm going to write this up here (very quick and raw, unpolished) and maybe others can find this when searching for a solution to this pesky problem (very strange behavior with *some* software accessing files on a drive shared from host (ubuntu linux) to guest (windows 7 in my case) using vmware workstation).   If you're having that problem... read on below...     I don't have the root cause for the problem, if anyone does know what specifically is broken, please let me know....




Preface and a setup...  The move to Linux

July of 2014 I switched over to running Ubuntu Linux as my main OS.   I run it on three main computers and they are all setup pretty much identically.  Generally this has been a great experience. The issue of course is that my primary speciality is analog/RF/microwave circuit design and most of the tools I depend on are only supported well on windows (if supported on linux, it is only officially supported for enterprise linux (RedHat / CentOS -- which is OK but can be painful in many areas -- I could go on and on about that)).  

For many years I've run virtual machines on my macbooks with good success (both parallels and VMware products).    This was going smoothly on Ubuntu with VMware workstation as well until recently.  I don't know what changed.... but something seems to have.

My philosophy with Virtual Machine's is to keep them as slim as possible -- only install the necessary items to make them comfortable to work with.   Any working files, if at all possible, should just live on the host machine and be mapped in.    As I've written about before, I also like to keep working files in Dropbox sync'd folders to keep everything up to date.

The problem I've seen (whether a vmware problem or windows problem -- who knows)....

It seems that the suggested practice of mapping \\vmware-host\shared_folder to a drive letter on the windows machine causes problems in some scenarios.   Two cases have caused problems for me:

1) Keysight Genesys executing a Sonnet EM analysis:  Sonnet couldn't create directories when operating in the shared drive, so the analysis fails.   Moving the whole set of files to the C:\ drive that is part of the VM works fine.

2) Cadence Orcad Capture (16.6) "could not find" (their error message) the files.  If the files are moved the C:\ drive of the VM all works as expected.   Opening a schematic .dsn file simply does not work and generates multiple errors about how it can't find the file at a given path (yet go to that path and it is there).


The work-around that has worked to solve both of these examples is to make the same folder that you share from the host (possibly using the vmware shared folder settings) available as a samba share on the host machine (i.e. map it in like you map a drive from your network from a server or other machine).   If you don't know samba there are a lot of good resources out there, I'm no expert.

So now I map \\machine_name\samba_shared_folder_name to the same drive letter and it works fine

The frustrating part of this is that a whole lot of software works just fine under the configuration that breaks these two examples.  Navigating the mapped drive using windows explorer, a command shell, all that stuff is well behaved.   I am not blaming these vendors in any way -- It probably is not their fault, but I'm guessing they're doing the file access in a similar way...

YMMV!


I have no idea if this problem exists on apple hosts or on other linux systems, but this is what was driving me crazy recently so here it is ...

The inspiration to try this drive mapping came from a colleague -- since he mentioned that he had no problem working with files from network drives (he wasn't ever seeing any problems, but he was running on a mac rather than linux host).  So thanks Rick!

Lance

p.s. minor edit:   One glitch with this "sharing via network" approach is that the share becomes temporarily unavailable when a network change occurs (wired to wireless for instance) -- I tested this on my laptop just now... need to study this further....


Thursday, April 18, 2013

Kudos Microchip


I wanted to make this brief/informal post to give kudos to one of those companies that make it easy to prototype using their parts, Microchip.  


In addition to my work doing RF and microwave design, I occasionally write a little bit of firmware targeted to small micro-controllers that do the housekeeping and control for the hardware I design.   Whether just for a test/mock-up or for testing code for a real project, I think it is pretty awesome to have code written and tested (perhaps with eval boards and breadboards strung together) before "real" hardware arrives so that there's a good chance it'll work first thing.   Over my career I've become really intolerant of hardware being available before there is firmware to at least minimally exercise it for testing.   So when I can, I make sure I'm not the one holding things up.

Microchip has a really wide spread of parts that are offered in both tiny surface mount packages as well as easy-to-build-by-hand DIP ones (same code runs on both).     I've built some breadboards that I've reused (just like the core designs) several times.   Some like to shy away from hand-built stuff, but if it saves somebody else hours of scratching their head because my code doesn't work, the couple hours invested to build it is well worth it.

In any case -- thanks Microchip -- for keeping things really within reach of all of us and providing us this sort of agility.




Thursday, March 14, 2013

Quote of the hour

"The price of gas on the high road is quite steep, yet those willing to pay know it is a wise investment"
-LL

This sentiment keeps coming back as challenges present themselves in professional and personal situations.  A fortune cookie style reminder seems worthy of recording.   Yes, that is all.

Sunday, March 3, 2013

RF CAE Kudos

I'm taking this opportunity to  say some kind words about some of the vendors I deal with.  

Those that make the highest tier in this list are Modelithics, Sonnet Software, and Mathworks.  Read more about the basis for my praise below; first in general terms and then in more specifics

This is not a rigorous comparison; this is the impression of an independent business owner (with himself as the only full time employee).  Rather than ripping apart those that leave a negative impression, I will explain why I recommend these companies to peers and clients over and over again.  The list of vendors is somewhat less than half  the number of vendors I actually deal with on an annual basis.  

Since computer aided engineering and analysis tools represent the most important and expensive resource I use to perform my services, I will restrict my discussion to those companies right now.   This is also a unique domain because of licensing; which is the burr under my saddle that manages to  suck my will to live for brief periods many times each year.

When I started out as an independent consultant, I quickly realized how poor many companies are at dealing with anything but their normal corporate customer base which it would seem tolerates slow and inefficient business practices.   Counter to the interest of their businesses, some of these vendors make it difficult to get transactions done quickly once a decision is made and provide customer support with that same class of service.


Leaving a really good impression with a customer like me is not necessarily expensive,  and there isn't one formula that fits all.  In this domain of semi-specialized, expensive, licensed software I think there are a few key elements:

  • Make the licensing reasonable, flexible... or be able to respond to what I need 24/7 because of your inflexibility
  • Make purchasing/upgrading/renewing maintenance quick and efficient (for me, time spent on this is lost revenue)
  • Keep technical support as responsive as possible where those who have to respond take real ownership 
  • When you lack any of the above, you might be able to make up for it by having empowered employees who can make things happen rather than hide behind one-size-fits-all policies that are presented as far more rigid than they need be.
I think part of the premise of what I like about these featured companies is that they seem to realize that we're all in this together and I'm not trying to cheat them out of anything (especially on the licensing front) even if my setup is a little unique.  I wouldn't be dealing with companies that have inferior products; but even good products can't save a company from leaving a mediocre or negative impression for truly stupid reasons.



Modelithics
For the last several years I have come to rely on the Modelithics component libraries for my designs.   My experience with them has been nothing but positive.   Sure, there have been issues and glitches as with every vendor, but they take the prize for being by far the fastest to resolve issues (either with a bug fix or with a work around that clearly took someone actual effort to provide).   Their licensing has been appropriately flexible for me and their support has truly felt like it was 24/7 when I needed it.

Sonnet Software
I have done business with Sonnet for almost 15 years through previous jobs and their "lite plus" product, but personally have been a professional class  customer since around 2010.   Sonnet provides a great planar EM solver suite and plays very well with other tools that I use.   The company is the finest example of focus on doing one thing really well that I have probably ever seen.   The support they've provided to me has been top notch.    Their president/founder Dr.  Rautio (and several other staffers) have taken the lead in disclosing their interests/affiliations when commenting in online discussion forums, and they don't try to sell their tool if it is not appropriate for the problem being discussed.   I can't tell you how refreshing this is to see.


Mathworks (Matlab)
MATLAB is of course somewhat less specialized than the others mentioned here but I wanted to mention them here because they have many things going for them that have left an impression with me over the last 18 months or so that I have been a customer.

  • Excellent "self service" upgrade/renewal online.   If I want to add an optional toolbox, I don't have to deal with a human.
  • Excellent online community -- code is shared, discussions are had, problems are solved... without a lot of formality.   Their documentation is excellent as well.
  • Excellent licensing terms, the best of any, by far (License to four computers for an individual user with the expectation that there is truly a single user using one at a time).  This is the kind of flexibility I need without having to beg for exceptions.



Honorable mentions:

Mentor Graphics (PADS suite)
I don't think I've ever needed to contact support (I normally just use pads for importing RF bits and doing design reviews, I don't tend to be in the critical work path when it comes to PCB design files).   They have lots of good online documentation, self-service licensing, etc.   Not bad.   They have finally made it so I can renew online without calling them to give a credit card each year.

Cadence (for Orcad Capture) /EMA
EMA provides the sales/support interface for Orcad.  They've been responsive when I've needed support and they are easy to work with.

Friday, January 25, 2013

Electronic Organization, Backup & Synchronization


I'm pretty obsessive when it comes to managing my repository of electronic files (documents, stored reference literature, actual work files).   I think I've got some good advice on this topic, but I will admit that this is about as boring a subject as one could find.    I'll apologize in advance for this rambling....

If you never struggle with finding files or how to keep multiple computers in sync, then please stop reading.    If you're interested in how I've tackled this problem, feel free to read on.

The dedication to maintaining the integrity of my stash is not just because I'm a pack-rat, I also pride myself on reusing as much work as possible (for any paranoid clients: I reuse my own work, often from hobby or general lab projects, I do not cross-pollinate here).    I've dug up a piece of source code or a basic analysis that was fifteen years old and saved a lot of time in the process.  Assuming this "work" is appropriate to use on a new project, I would consider it a disservice to not take these time-saving measures.  What kinds of things do I save?  Stuff that I believe will save me (or one of my peers) time later.

On organizing things -- my advice is simple:   Create a directory structure that works for  you and stick with it.   Consider the nature of the stuff you are storing (personal or business) and other categorization so that if you need to later remove/extract/archive a particular segment it is easier.   It is all about making it easier down the road.    I should point out that this "individual" structure may not mesh well within a large organization, but the same principles apply.  


You don't have to have a single structure for all files.   For me, I have one main one that is made up of mostly my work and others for "media" (one for photos, one for video, and another for verbatim copies of literature archives).  The reason for separating them in my case has to do with the size differences:  the work/key archives is the smallest, most important, and intended to live on any computer I'm doing real work on.


Here are a few suggestions:
  • Don't let your software store things in the default "my documents" or on the desktop (unless you have manually relocated what "my documents" points to).  Change the settings in the programs you use most to default to your new repository for saving new files and finding old ones.
  • If you use multiple computers, I suggest making the base of this directory tree structure the same for all.  There are three main reasons for this:
    • You don't have to remember different paths for each machine and stumble each time
    • you can use the same shortcuts and relative paths, which occasionally are important
    • it is much easier to bring on a new computer and perform routine backups or synchronize between computers/drives/etc.
  • Consider a few exceptions:
    • My main repository of "stuff" is about 16 GB today with about 16k files, this is a pretty convenient size and is fairly easily manageable.   100k files or 50 GB would be a little tougher.   When I mean "manageable" here I am speaking of the relative size and count of files; since any future automatic synchronization checking will need to account for the lot.  Here are some ideas:
      • Keep multiple repositories; one that is manageable (by your judgement) with the most active files that are changing the most often.   Keep others that are more archival in nature; perhaps collections of literature, photos, videos, etc.    My experience is that file size is much less of a problem than file quantity -- tons of tiny files are much more painful to maintain.
      • Keep only the most important piece that defines the work.   By this I mean the "design" or the "artwork", not the analysis data (this is a CAE-centric example).   Several EM analysis packages that I have used generate a ton of large files and quite a collection of small ones as well...   so I tend to work with these files in a separate temp directory then copy the core (without data) back into the repository.  If it is a month or year from now I am usually happy to re-run the analysis and suffer the delay that causes.   
File synchronization manually:

I started this endeavor in the mid 1990's, and the tool of choice for me back then was Windows Briefcase. It was quirky but it worked reasonably well most of the time.  By "sync" here I am referring to the process of making sure that the repository on my portable computer is up to date with that of a desktop as a common example.  I graduated to a program called Comparator Pro (SoftByte labs) in more recent years.    One trait that both of these share is that after you have initiated the process and the program has run, the user gets to see what has changed and which direction any file moves should be in.   This is really nice as it can help you catch potential catastrophes since you have to approve the changes.

This manual method of synchronization is pretty effective, but it is time consuming and not terribly elegant.   I still use it to periodically to sync redundant copies of things to each other (only one is actively being modified).

Automatic synchronization / Cloud storage:

After witnessing several near disasters with windows briefcase over the years I was very skeptical of completely automating the process.  During the summer of 2011 I took the leap and started to give DropBox a try.   While a skeptic at first, I was blow away by how well it works.   These days I "work" out of a DropBox synchronized folder.   Dropbox does what it does extremely well -- I don't know how, but it just works.

The point is, that these days, my repositories largely live inside a Dropbox folder (all synchronized to the cloud).   This means that within seconds of me writing a file, it is both on the way to the cloud and on the way to every other computer I have powered up that is running Dropbox.   Their special formula that seems to differ from the others (such as Google Drive... which I like and use as well, mostly for redundancy) is called "LANSync". This "LAN sync" feature is an incredible time-saver; as it lets computers on the same local network transfer files based on knowing what is needed where.   This way if you want to get your repository on a new machine you set it up and while your new machine will talk to the cloud to get some of the information (the list of files for instance), it can actually copy the files from a local network.   This isn't magic -- it is just smart, it turns days of sluggish download into hours.


That's about all I have to offer on the topic right now... If you discard all the other advice, I strongly suggest that you at least give DropBox a try....






Friday, December 14, 2012

Ramblings about IT in the cloud

My professional passion is RF/microwave/wireless engineering, but as an independent business owner it makes a lot of sense to stay on top of things that keep the time and cost overhead for mundane tasks as low as possible.

For us here at RFdude.com LLC (me, myself, and I -- with some help from my wife and other help occasionally hired on), the cloud based services have really simplified things.  The costs are low, the setup is easy, and they are accessible with just a web browser (and by other means if you prefer, especially on mobile devices).   I have no intention of going into any depth on the technical side -- just to say what I like and why.

Google Apps -- the way to go in my opinion.    After getting an account through one of my clients for online collaboration purposes, I was instantly hooked.

The three areas I want to touch on are right here::  

  • Email: Gmail
    • The huge storage, excellent organizational/ search/ labeling/ processing capabilities, and powerful web interface make the installation of client software completely unnecessary.   You can install client software but I see no reason to invite that headache.  
    • Google spam filtering is pretty decent, they sure have the database to work with.
  • Calendar:  
    • Google's calendar is pretty no-frills but works very well.   Sharing with colleagues while also sharing with your spouse to coordinate your busy lives is incredibly easy.
  • "Office suite":
    • The google apps suite is perhaps the piece that has evolved the most over time, but it remains on the "low frills" side.
    • I've not dumped Microsoft office just yet, but my use of MS office is very limited
    • The ability to have multiple people online, editing/viewing the same document simultaneously is just cool.   This isn't rocket science but I do this regularly with folks three time zones away, usually on informal documentation, but it just plain works.
    • I use the spreadsheet application online for all project tracking/accounting, invoicing, and to house my collection of basic engineering calculators.



Google apps, generally speaking, plays pretty well on mobile devices too.   I'm a die-hard Android fan but we also have a couple ios devices around the house which seem to be well supported by Google.

All of the features mentioned here are available for free through individual google accounts; using them in organizations for business where some of the collaboration comes more easily and storage is increased significantly is $50/user/year as of the time I'm writing this.  Give them a try!

Saturday, November 17, 2012

So many topics and so little time....

Let me open this up by stating my clear expectation that I will have an exceptionally small following from this Blog.   Search is likely to bring viewers here on the mention of specific topics.

I expect to publish a few random thoughts on generic topics, maybe some comments about products and services I use, and even some technology tidbits.   


Since I was given the opportunity to go into the consulting business full time (thank you to my clients for sticking with me), I've been pretty quiet.   By this I mean I have all but stopped producing/updating the downloadable tidbits on my website and I have not published anything significant in years at this point.   The most significant activity is probably participating in a LinkedIn group that I created a few years back -- this as been fun (Board level RF and Microwave designers).

In the role I've been in my whole career (as is the case with most in the engineering profession), non-disclosure agreements serve to keep 95% of the interesting stuff that I would like to share from being shared.  I suppose if you asked the lawyers it would be a full 100% but common sense must prevail.   

That is all for now; perhaps over the coming weeks I'll crank out a few quick posts on products and services that I like and why I like them...

Lance