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.
-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:
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.
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.
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.
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:
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....
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....
Subscribe to:
Posts (Atom)