Damons Laboratory
    The most exciting place on the internet!


A Science & Engineering OnLine Laboratory Notebook   
This is the laboratory notebook of Damon Bruccoleri.  Here you will find engrossing, thoughtful and fun commentary/opinion.  Leave a comment and let others know what you think about any post here, view my photo gallery, or sign my guestbook.

"...one of the strongest motives that lead men to art and science is escape from everyday life with its painful crudity and hopeless dreariness, from the fetters of one's own ever-shifting desires. A finely tempered nature longs to escape from the personal life into the world of objective perception and thought." - Albert Einstein



Latest Notebook Entries

 Thursday, November 19, 2009


The story of 9 finger Bernhard   
I have not posted in a while, I have been busy after my work in China with a ton of new pcb_assembly.jpgwork here, but I do have a story to tell.  A while back my business partner, Ed Kafrissen, and myself got a contract to deliver a product to Telerobotics Corp.  The president, Carl Flatau, contracted us to deliver the electronics for a force sensing control system for his robotic gripper product.  This device we gave him was pretty slick, his product was pretty slick, but that is a different story.

Carl was a stickler for quality.  All the devices we delivered to him were 100% tested before we delivered them to him of course, but he wanted to know details about our manufacturing.  So Ed suggested I visit the sub-contractor we hired to stuff and wave solder our pcb's since at least a few pcb's came to us with some sort of problem from the assembly house.

That is where I met '9 finger Bernie'. When I shook his hand it was immediately apparent, and let me tell you an awkward moment.  Bernhard (or Bernie) had many years of experience and a heavy German accent.  I asked him why we were getting some defective boards from him.  A few boards had chips in back-wards, or the wrong resistor value stuffed, ... just a hodge podge of errors.  Out pcb's were mixed technology, SMT and thru-hole.  Bernie grabbed one of my boards and used the stub of his missing finger as a pedestal to hold the board as he talked to me.  Bernie then gave me a bit of advice that has taken me some time to appreciate.

He told me the pcb's had too many different components.  He said that for his staff to give me the fewest defects, then my pcb would need to be simpler.  He told me the ideal pcb had all the same value resistor.  He chose resistors rather than diodes or some other component because the orientation of resistors does not matter.  Second he said that he would prefer all the resistor's to be lined up next to each other.  I did not laugh at Bernie (I also helped him set up a better quality control on his line for our product, but I pondered on his advice just the same.)

I wish I could have gave him his ideal pcb.  Unfortunately I do not have the knowledge to design a board that performs all the functions necessary for a product with a single value resistor.  As one step in the design process I do try to simplify my pcb's though now because he was right.   A simpler pcb is cheaper to produce and will be more reliable.

It takes good engineering to simplify a board because it's a more difficult challange.


damon at 7:36 PM | (1) Comments | Add a comment | Permalink



 Thursday, July 02, 2009


Computer Architecture class and Mano Assembler   
This spring I taught a computer architecture class to the students at the Nanjing University of Posts and Telecommunications.  This was a great bunch of very smart students. One of the topics in the course was the Mano Machine (we were umotherboard_sm.bmpsing the Mano  book!).  This is a fictitious computer that has a simple architecture.  The architecture is simple enough that the students can grasp a complete chip architecture in a few weeks time.  There is quite a bit on the internet about this including an assembler and simulator someone wrote.   I teach them how to design/write a two pass assembler.  Guess what?  One of my students actually wrote the code to implement a two pass assembler for the Mano machine. Shao wrote it in Java.  He created a Google codeplex project here if you want to download and run or build upon it.  Shao Chong got an A in my class.    Not only because of this extra credit, but he really understood the material.  Good work Shao.


damon at 5:52 PM | (3) Comments | Add a comment | Permalink



 Saturday, May 02, 2009


Persuading People   
As an engineer you will commonly work with clients, managers, vendors and co-workers. It is your responsibility to provide your client or employer with the best advice you can on the engineering topics you are entrusted with.  I have found that at times I have felt that I had a better direction in a design path, or even company procedures than the way things were going. Since you, as an engineer, are getting paid to provide your best advice, you need to bring this to the attention of those around you.

What are the best ways to achieve this?  My advice is to approach this from an eduction point of view.  I have always felt that if others had the same information I did, and they were reasonable people (which they invariably are), they will reach the same conclusion(s) as I did.  Therefore I will not need to 'persuade' them.  This takes more time then trying to force something down someones throat, but the payoff is immense. You will be viewed as someone to work with. Sometimes all you need to do is to provide a bulleted list of pro's and con's, or a decision tree, or a strategic graphic (a picture is worth a thousand words).

pathsm.jpgWhat if, even with your best effort at education, things still do not go 'your way'.  Assess the importance of this decision or advice.  Is it really a make or break direction for the company or you?   In most cases I would think the answer is probably not.  If not, take a back seat.  Let someone else drive.  You gave your best advice and best effort.  Also, you may not know all the information yourself.  Those you're trying to persuade may not want to put the effort in to educate YOU.  Perhaps your direction is not the best.  This may be particularly true if you are the new kid on the block.  Things are the way they are for a reason.  More than likely there is a whole history to the way people do business around you that you may not be aware of and will take time for you to learn.

Perhaps there are alternatives to what you're proposing that are almost as good.   About the only additional thing I might try, if I felt THAT strongly about this, is another short, very focused, attempt at education.  Then drop it.  The worst thing is to be viewed as argumentative, then all that credibility that has built up is washed away.

There is another question you need to ask yourself.  Is your goal to be viewed as right or is it to effect a new and better direction for the design or your company?  Sometimes its best to let others take credit for your ideas and/or do things more quietly.  On the other hand, perhaps it is an appropriate time to be recognized as being right.

I took a course once that dealt with some of these issues.  The topic?  "How to manage difficult people."  Don't be one of them. Be effective.


damon at 8:54 PM | (4) Comments | Add a comment | Permalink



 Sunday, April 12, 2009


Using DeMorgans Theorm   

I do not usually write lab notes on specific programming issues. I try to keep my web site general so many people can understand it. This note is an exception, its a real simple software related issue. Over the years of writing software I keep coming back to DeMorgan’s Theorem. It was one of those things that in college I never thought I would use, but it seems to pop up on a regular basis at work. I think this is fascinating stuff, particularly when academia meets the pavement.

First, the background. DeMorgan’s Theorem states:
image001.jpg .
DeMorgan’s theorem cannot be proved or reduced using math. The only proof is a brute force proof. At this point your probably thinking, "how can this academic theorem prove to be useful at work?" Let me show by example.

switch Circuit.jpgThis is going to be a real simple contrived example to demonstrate DeMorgan. Suppose the programming job is to read two switch inputs and to turn a motor on if both switches are closed. Perhaps to drive the motor ON we also have to output a LOW. It is common in computer to have negative I/O logic. Here is a schematic for this. We can see that if either switch is closed the input to the computer will go low.

I can now write software to implement the required function.

If ( SW1 = 0) AND ( SW1=0)
THEN MOTOR = 0
ELSE MOTOR =1

Do you see the correlation between this software statement and DeMorgan’s Theorem? Now we can simplify the programming statement using DeMorgan’s. Two simplifications make the statement easier to read. We take advantage of BOOLEAN type's and we can switch around the THEN and ELSE part to get rid of a NOT operator.

If (SW1 OR SW2)
THEN MOTOR =1
ELSE MOTOR =0

An astute programmer might note a further simplification by writing a single algebraic Boolean expression for this statement such as

MOTOR = SW1 OR SW2.

Understanding and using DeMorgan’s Theorem has simplified the programming, if only a little here. In larger applications we would get a larger return on our simplification investment.

Even though many compilers will reduce expressions internally, simplifying your programming pays rewards in understandable code. ALWAYS simplify code and remember to use DeMorgan.



damon at 7:30 AM | (3) Comments | Add a comment | Permalink



 Monday, February 09, 2009


Interesting Circuit Problem   

A couple months ago I ran across a circuitry problem that may interest those with a little electronics knowledge. We were getting failures on a high percentage of new product, but not on all of them. The product was warning that its internal -15v supply was out of tolerance (and faulting). A manual check with a voltmeter showed the -15v supply was within the required +/-10% tolerance. Other internal supplies were monitored as well by the computer and they never exhibited this issue. Below is a schematic of the components involved, what I found and the interesting solution.
Circuit2.JPG

What this schematic is showing is three resistor divider circuits that divide down the +15, +5v and the -15 volt supplies to feed the A/D converter inputs (there is some additional filtering and protection not shown). This A/D converter can resolve a range of 0v to +3v signal thus the need to divide down the voltages before conversion. Additionally the -15v rail voltage is "translated" to a positive voltage by raising it with the +5V. The code in the computer then reads the A/D converter and looks to see if the value read is out of +/-10% tolerance.

There is a problem though with the -15v divider circuit. Do you see it? The -15v circuit is dependent on the +5v voltage as well. So for instance if the +5v rail is 8% too high (within spec), and the -15v signal is 8% too low (also within spec), the resulting divided/translated voltage may be more than 10% out of whack (this is a highly technical term).  The unit would then erroneously fault. 

I found a simple software change that put this issue to rest. We need to first read the +5 rail voltage.  Then the -15v rail voltage is read and we subtract out the component of +5v rail voltage from the -15v reading.  To do this requires some math and Kirchoff's voltage law. 

VAD3 = V+5v - ( V+5v - V-15v) R5 /( R5 + R6)

Next we have to solve for V-15v :

V-15v = (V+5v - VAD3)(R5 + R6)/R5 + V+5v

I implemented this equation in the firmware of the computer and it worked like a charm!  I implemented it, but did not consider this solution to be optimal. In subsequent designs I made sure we did not use the +5v supply to translate the -15v supply voltage, but for this product this software solution had several benefits:

  • Easy fix for units already in field.  No recall.
  • No waste for already manufactured inventory.  We can use existing stuffed pcb's.
  • We did not need to delay an already delayed product.
  • No additional cost for the pcb NRE.
There were some other issues with this solution, scaling issues and floating point issues, but those are for another lab note.

Did you know you can get all of my older lab notes by hitting the archive button on my top banner or to the left?



damon at 3:28 PM | (2) Comments | Add a comment | Permalink



 Tuesday, December 30, 2008


Christmas Toy Got Broke Daddy   
This Christmas I bought a toy digital camera for my daughter Jasmine.  The Girl Tech Video Journal.   It lasted about 48 hours before it broke.  Here is a marketing photo of what it is suppose to look like:
girltechcamera.jpg

Here is an actual photo of the broken toy opened up.   The mini usb connector broke off and was rattling around in the case.   That's it in the middle.   I can not blame the kids for this.  Can you see what is the design flaw of this toy?  It would not have cost anything to design it right.

toy-usb-broken.jpg


damon at 9:55 PM | (2) Comments | Add a comment | Permalink



 Tuesday, September 09, 2008


How to buy your next Mobile Cell Phone   
Many people seem to be purchasing an iPhone these days.  My opinion is this decision is usually based on some sort of perceived coolness factor.  There are many other good highly competitive choices available.  In this post I just want you to consider some possible new phone applications and features for yourself while you are shopping for your next phone.

Applications:
1.  The phone should be a great phone first and foremost.  For this it needs a sensitive radio section.  Find a cell phone that has great reception.
2.  Bluetooth.  Many people use the hands free bluetooth application with their car and hands free devices.  Does the phone have voice dialing built into it for true hands free calling?  Can you call someone by saying into your handsfree "Call Mary Home"?
3.  Tethering.  Many cell phones can enable a laptop or desktop to receive internet through them.
4.  Music.  Many cell phones can play MP3, WMA, AAC or DRM protected content.  Sony, Apple, and Microsoft all have their own formats.  MP3 is ubiquitous.
5. Stereo Bluetooth provides high fidelity WIRELESS audio.  The phone should support A2DP and AVRP bluetooth profiles,  Does the phone have an AM or FM radio built in?
6.  Download podcasts.  Some phones can subscribe to RSS feeds and download podcasts directly to the phone.
7. GPS.  Many phones have GPS capability in them.  I have not come across a phone with usable GPS hardware.  In my opinion the GPS needs to be more sensitive and lock faster, comparable to the dedicated units.  Again, IMO, the phones will also need turn-by-turn voice prompting for this to be a viable application.  I have not met a phone yet that supports this application.  The first phone that does this right will be a killer.
8.  Can the phone play internet Radio or TV. 
9. Do you need access to Corporate email.  Access to POP3 or IMAP accounts?

motorola_q9.jpgFeatures to consider:
1. Do you type a lot?  Perhaps you need a keyboard.
2.  Will you be downloading web pages or podcasts?  Do you need 3G speed?
3.  Will you be using the screen?  What size screen does your phone have?  Is it viewable in daylight?
4. Is a removable battery important?
5.  How much memory is in the phone?  Does it support a removable memory card?  Is the card easily accessible?
6. Are third party applications available?
7.  How fast is the response of the phone to applications?
8.  Battery life.
9.  Does the phone use proprietary or difficult to manage connectors?
10. WiFi.  I did not think this was a big feature when I was looking for my phone, but if you start to download large files you will appreciate this feature in a cell phone.
11 GSM or CDMA.  The two largest carriers in the US are ATT (GSM) and Verizon (CDMA).  The advantage is that an unlocked GSM phone, with SIM card, can be used worldwide.  It could be expensive in some countries to use an ATT SIM card.  When I was in the Philippines I bought a local card, only $6.
12. Cost.


damon at 2:42 PM | (0) Comments | Add a comment | Permalink



 Saturday, July 26, 2008


Why are Engineering Tolerances important to design?   
Jackie Robinson Parkway.gif
Anyone who has driven on the Jackie Robinson Parkway [Queens, NY] has already gained an appreciation of Tolerances. The posted speed limit is 40mph, but even that is too fast. Most drivers new to the parkway try to take it at 55 or 60. Big Mistake. There is a curve going to the Van Wyke or GCP where you can see all the marks made by cars as they side swipe the concrete and stone wall. The lane has a tight tolerance with respect to the width of a car and it makes it hard to navigate.

Many years ago I worked closely with a fellow who had a machine design shop. He designed machines for all sorts of industries. He was a mechanical engineer by training. He relied on my company to provide the electronics for his machines. I had an opportunity to ask him about his mechanical designs and he explained that the most important aspect (to him) was tolerancing.  For instance, if you create a drawing for a one-off part used in the aerospace industry, it might be acceptable to specify a 0.1 mil tolerance on all your dimensions. Realize what is going to happen. When the machinist gets your drawing he might have to throw out the first 5 parts he makes because he had trouble holding that spec. Eventually he will learn how to make your part to that tight tolerance, possibly he might have to design his own fixtures to help him hold the part as he machines it. Eventually, with much waste, he will make your part.  Your part will be expensive, but it may be less expensive than the engineering to realize a 'better' design. 

tolerance.jpgA good mechanical design orients the parts so that they do not need to be manufactured with a tight tolerance. If you have ever assembled furniture from IKEA you might have noticed the large over sized screw holes to allow the part to 'float' with respect to the attached part thus alleviating the need for a tight tolerance.

One might think that a very good design then tolerates loose tolerances on all its parts. Such a design could be manufactured 'cheaper.' Well, if you remember back in the '70's how the Asian car manufacturers were advertising how well the parts of their car fit you think otherwise. Loose tolerances could give the perception of a cheaply made product to the consumer. You want your product to be manufactured inexpensively, but not appear cheap.

Tolerancing can take on a different aspect to the software professional. Back in 1981 John Postel coined the "Robustness Principle". In it he advocates that a browser should “Be conservative in what you do, be liberal in what you accept from others.” This holding of loose tolerances has resulted in a problem. See this link. For a browser the specified tolerance should be as tight as possible. Only in this manner can software manufacturers duplicate the performance of the browser over the range of web sites.

What conclusion can we make? Sometime a tight tolerance is good, sometimes its not good. But it is ALWAYS important to your design.


damon at 7:40 AM | (1) Comments | Add a comment | Permalink



 Thursday, March 27, 2008


How to find a short on a Printed Circuit Board (PCB)   

PCB_complete_sm.jpgWhen I am troubleshooting new PCB's I have a unique technique for finding shorts on PCB's.  I actually have to hand the credit for this technique to a business partner, Dr. Ed Kafrissen.  He came up with a few non-traditional ways of doing business, and this is one of them.

So let me set up a scenario for you, and then show you Ed's solution.  Suppose you have a client and you need to deliver 100 PCB's to him/her quickly.  You have someone stuff the boards for you, now you have to verify they work.  One of the first tests we would do is to apply power to the new PCB and bring the voltage up slowly.  If the power supplies load down, then you got a problem to solve.  You got a short on the PCB.

Damon circa 1982 sm.jpgEd came up with unique solution.  We had this old humongous power supply lying around that was capable of suppling 30v at up to 5 amperes.  This technique only works if the power supply, like ours, has an adjustment to limit the voltage and current.  We would set the voltage to necessary voltage and the current all the way down.  Ed would then hook up the PCB, which immediately loaded down the current limited supply.  He would turn up the current on the supply and feel on the PCB for a hot spot!  Invariably some IC would be stuffed in backwards that our visual inspection did not find, or we would get a PCB which was not completely etched.  In those days we got horrendous PCB's.

Anyway, that was Ed's solution to quickly find shorts on a PCB.  And it worked well as long as you were careful enough to not burn yourself!  Yeow!



damon at 10:56 AM | (4) Comments | Add a comment | Permalink



 Friday, February 15, 2008


Simplifying the Programming, Concrete Example   

I would like to offer a concrete example of simplifying the programming of a product.  Years ago I was privileged to be given the opportunity to realize the programming and design of a home automation controller.  This was the DHC Toscana home automation controller, still toscana.jpgbeing manufactured by Leviton Mfg. Co..  When we first sat down with management, marketing, sales and all the other interested entities at that company I was literally buried in the number of features on this product.  One of the other senior engineers and software guru's there, Dr. Michael Ostrovsky, helped me along and gave me a simple suggestion that cut my project in half!

To understand his suggestion I have to give you a brief technical description of the product.  As you can see from the picture the device has a number of buttons and user interface elements to control lights, fan's, switches and other electrical devices you might find in a home.  It also has a communications interface where it can receive remote commands from other interfaces devices in the home to control the same electrical devices.  Therefore, an engineer might think he had two intertwined overlapping tasks to accomplish.  First would be to control the electrical devices from the unit's front panel and transmit that command to other keypads in the home.  The second task to control those same electrical devices from the commands received over the communications interface.  The contention that could develop from controlling the same devices from several inputs is a classical problem.  Mike suggested a better way.  Mike was old school, Mike was from Russia.  He knew how not to do the same task twice.

 He suggested I split my project into two simpler tasks.  The first was react to one of the front panel switches being pressed and to transmit the appropriate command indicating this on the communications interface.  The second, separate task, was to receive a command over the communications interface and to turn on the light, fan, device or what not.  To complete this scenario I had to let the device receive its' own commands, the one it just sent out!  This way I only had to debug two separate smaller paths, that were more or less independent.



damon at 9:53 PM | (0) Comments | Add a comment | Permalink



 Friday, February 15, 2008


My 1 best secret to Great Software   

Recently I have been thinking about the projects I have been involved with and what helped them become sucessful.   I think I finally have something to report to you here in my laboratory notes as to MY 1 best secret to sucessful software.

My first thought was to look at the details of programming languages and techniques.  I then thought about on a higher level how the architecture of the software was more important.  Then I figured that even more important than architecture was the project management.  I think I finally have a root cause to successful projects.  Keep the project 'simple.'  Now that word is a relative term.  The exact nature of  'simplifying a project' depends on the skill of the software team.  Second, it does not follow that a simple project produces a simple product.  Read On. 

I have  developed a basis for this claim that this is the 1 most important ingredient to a successful project.  As the number of  requirements in a project grow, the software complexity grows exponentially (albeit this is a simplistic view) as the following chart shows.
Software Complexity.jpg
























The trick is then to define the project in simple terms yet design a dynamite product.  What I want you to think about is where you want to focus your effort:  Eliminating elements from the X axis of the chart above or troubleshooting program paths on the Y axis.



damon at 9:09 AM | (1) Comments | Add a comment | Permalink



 Monday, January 14, 2008


Nokia HF-6W defect, no sound   
Nokia has some serious design problems... and they are not telling anyone!  Let me explain.

hf-6w.jpgAbout 2 years ago I did some shopping for a Bluetooth car speaker phone.  I hit upon what I considered the most perfect speaker phone, the Nokia HF-6W.  It cost me over $120, but it was worth it (while it lasted).  It had a powerful 6w speaker and several microphones that tracked the sound source.  It worked great as well.

About a year ago it died.  I assumed it was a 'normal' failure.  I returned the unit to Nokia returns and they sent me a new unit.  This second one failed in the same manner.  Further, after doing a search on the internet I found other people are experiencing the same failure of the Nokia HF-6W and here.  Nokia's warrenty only covers the unit for one year.  This is a design flaw.  Nokia should admit it and do right by their customers.

The way the HF-6W speaker phone fails it that no sound comes from the speaker.  The speaker is dead.  Second, the unit will not reset itself.  When the power button and volume up buttons are pressed simultaneously while the device is off, the unit is suppose to revert to its default state.  The green and red LED's are suppose to blink as well.  I cannot seem to get it to reset.  The unit seems to work otherwise, bluetooth connects, etc. 

Now my wifes unit, unit #3, failed the same way.  Have you stumbled upon my post and are having the same problem?

[UPDATE 02/04/08]
Nokia replaced my HF-6w with their HF-33.  It has a much smaller speaker and no built in retractable phone charger.  The retail price is about 1/2 that of the HF-6w.  I am accepting this replacement under the condition that it simply WORK.



damon at 8:16 PM | (4) Comments | Add a comment | Permalink



 Friday, December 28, 2007


Philips Consumer Communications and my most difficult bug ever!   

DCP00130.jpgDuring 1997-1999 period I was working for Philips Consumer Communications. It was a joint venture between Lucent and Philips and we made telephones. We had the sole right to sell phones under the AT&T logo. I had a magnificent apartment on the ocean in Long Branch, NJ. This was at the Sea Verge apartments.

I worked with a great team of firmware engineers. My managers were Ken Kasiske and Trey Weaver. I was on the 'Ocelot' team. We were tasked to make their very first 900Mhz all digital cordless telephone. What a son-of-a-gun this project was. The heart of the project was an 8051 based base-band chip called the Phox by AMD. We took their DECT reference design and modified it for our project. The reference software did not come fully debugged. With a little sweat my team, Grady Brosier, Bassam Chamoun, Ken Bocan and I, got it working! I was the lead on this team, I was in charge of the firmware for the phone base station, Caller ID, and communications stack. I was also the only one with significant prior 8051 experience.

9130.gifThe most interesting thing I remember about this job is that I found the most difficult bug I have ever encountered there in my life. Briefly I will describe what I found. The DECT protocol is an acknowledged protocol between handset and base. The state machine that controls when the transceiver re-transmits or acknowledges was getting into a wrong state. This state was represented by several variables so first we had to recognize this part of the problem. The transceiver would get in this state only intermittently. If you used the phone heavily for 15-20 minutes, it would lock up. We would set breakpoints in the software, but it took forever to reproduce the problem.

Finally, we found how the transceiver state machine could get into this state. Out of tens of thousands of lines of code an interrupt had to occur only between two sequential (tiny) 'C' statements that were setting two semaphore flags. It took us weeks to understand the state machine and weeks to trap this problem. My firmware partner and I were pressing buttons on the phone for hours to reproduce the problem.  Like I said, we finally got the phone working 100% to spec, and on time, with some hard work! The problem had come in on the reference design.

Cindy Price (our project manager) had some challenges to work through toward the end of the project on the hardware front as well. The hardware guys were led by Brian Kim and Paul Newland. Paul came out of Lucent's Bell Labs. The were (are) two of the best engineers I have ever met. I had a lot of respect for them. It seems the hardware guys found that the front end of the radio was being saturated by RF near the 900 Mhz frequency. This was an issue because if the customer lived near a paging tower his cordless telephone would not work. The solution was to include a SAW filter on the front end. A SAW is a narrow band filter.

Then end of this story is that we all got the phone out, but VTech wound up purchasing our division a couple years later. They bought the whole division so they could use the AT&T brand name and logo!



admin4 at 7:10 AM | (5) Comments | Add a comment | Permalink



 Saturday, August 18, 2007


Exposing the underlying technology   
Why is it that some programmers just have to expose the underlying technology to the customer when they design their GUI?  Don't they realize that just because they are infatuated with technology it doesn't mean everyone else is as well.  Yes, even if they see how 'cool' it is, your customer does not want to futz with technology.  They just want to get their job done. So what if your GUI only has one button or one menu item?  Thats a good thing, not a bad thing.  Spend your time testing and making the install as bug free as possible on as wide a base of computers as possible.


dbruccoleri at 6:31 AM | (1) Comments | Add a comment | Permalink



 Friday, August 17, 2007


Creating Demo Products/Services/Software   
pigs_in_blankets.jpgMy brother Michael is a musician and he explained a very interesting problem in his business.  It stuck with me because I found it applicable to my work, and I think you might find this interesting as well.

For Michael to get a gig (work), from time to time he has to do a bridal showcase.  The showcases are free to the brides and Mike has to expend his time, and money, to put these on in the hopes of getting some work.  Caterers are also at these 'demos' and they provide food with the same intention, to get some work.  Mike explained that the caterers have a conundrum.  If they use cheap food the prospective customer will get a bad impression of their service, but good food on the other hand is very expensive.  So do you go broke trying to get customers, or go broke because you have no customers?

I think there may not be any answer to this, but in any case when doing a demo do not take it lightly.  You need to put your best foot forward.  You don't want your demo to convince your customer they don't want your product or service.  It should be accurate and appealing. Definitely don't blow it off because it's a 'freebie'.  Then you will have expended your time, money AND alienated your customers.

Your ideal customer is after something you have (if you've done your marketing and product right).  Let them have enough of what you do best, but not too much.  Can you get them to invest their time, effort, and/or money into your demo?  On the other hand you can't expect the customer to spend too much time on your product.  If your lucky you got about 2 seconds to get their attention, and maybe 2 minutes more if you do.  I call that the 2/2 rule. 

Let the customer get comfortable, understand and feel they really 'know' your product.  It is up to the salesperson as well to get the customer involved in the demo product/software or service.  Give the customer a feeling they learned something. The demo should not scare the customer with too much wiz bang technical mumbo jumbo either.  Measure exactly what you give them in the 2 minutes you might have them.

Don't fully satisfy the customers need(s), after all you have something to sell them [a free product to generate good will is a different topic].  Show them what their missing.  What you want to do is, to take a cliche from the entertainment biz, "always leave them wanting more." 


dbruccoleri at 6:50 AM | (0) Comments | Add a comment | Permalink



 Tuesday, August 14, 2007


Elevator Design, the famous story   
elevator.bmpThere is a famous story about elevator design that illustrates the 'knowing your customer' theme I seem to be on these days.  I do not know the source of this story, or its authenticity, but it seems credible.  This story was related to me by an ex manager, he heard it at a seminar.  I have read this in a number of design books as well.

The owner of a large building was getting complaints from the tenants that the buildings elevator service was too slow.  The owner solicited proposals from a number of companies to speed up the service.  One proposal though won, was a fraction of the cost of the rest, and proved to be an ideal solution.  The proposal:  put mirrors next to each elevator door.  People like to look at themselves.  Even that short distraction is enough to make the wait less noticeable or irritating.

With that in mind, I won't be putting any mirrors up on this web site.  There may be some delay though in posts as I have a number of code upgrades I want to implement.


dbruccoleri at 12:42 PM | (0) Comments | Add a comment | Permalink



 Wednesday, July 11, 2007


Implementing Watchdog's in FPGA's   
In the past I have written about the merits of incorporating a watchdog timer in your product.  A watchdog protects a computer from 'locking up'.  There is another way to look at this solution.  A simple computer is a single sequential state machine (yes, there are multi-core computers) and a watchdog can protect that state machine from getting into unforeseen states, or dwelling in known states for too long, ... and much more.

The question I propose, is how do you protect an FPGA?  An FPGA is unlike a micro-controller or DSP.  It is processing many different inputs in parallel.  There may be many state machines going at once.  Do you implement a watchdog timer for every state machine?  That solution may be untenable for all but the most rigorous designs (translation: too much work!).

I already think I know part of the solution.  It should be to cause a system wide reset should any of the state machines get into an unforeseen state.   That shouldn't be too difficult to implement.

I have some other thoughts on this that I will share in an upcoming lab note.  I plan on implementing some of these idea in my next project here at my Hauppauge based laboratory.  I will report back my success (or failures). 

The project will be successful if I am able to protect the design from unforeseen input without 'significant programming effort' and achieve 'significant benefit'.  Implementing the watchdog should not add more than 5% to the development effort.  The process or development effort should also be mechanical and repeatable.  In fact, there is no reason why this could not be incorporated directly into the FPGA development tool and be transparant to the programmer.


admin4 at 7:37 AM | (0) Comments | Add a comment | Permalink



 Friday, June 22, 2007


Patent Invention Promotion Companies   
inventionpromofirms.jpgLets say you pay someone to do some work for you.  They do shoddy work.  Finally enough people are taken and the vendor gets caught and they (eventually) get their license suspended.  You may derive some satisfaction from that, but your still out your money AND whatever work they were to do was done shoddily.  The shoddy work may wind up costing you even more than the direct money you are out.

I have always wondered about these patent invention companies.  You know them ... I see them advertised on TV all the time.  They claim they will patent your invention and 'present it to industry' (whatever that means).  If they were to do shoddy work you could wind up losing any claim on your invention.  You would be out any fees they charged PLUS any future royalties on your invention.

Dennis Crouch is a patent attorney and has a wonderful blog about patents.  In his latent entry he discusses Bender v. Dudas (Fed. Cir. 2007). Usually Mr. Crouch's language is too thick in legal jargon.  But this one is easier to understand.  It discusses how 'Bender' had their license to practice revoked and exposes their relation with the patent invention promotion company and clients.

I particularly like this quote by Mr. Crouch:
"Individual inventors who are not yet versed in the rules of patent law create problems for patent prosecutors. The work generally takes more time and effort, the malpractice risk is often greater, and the ability to pay is usually less. A number of law firms now have policies against representing individuals (except for the very wealthy)."

I would suggest that any engineer (or 'inventor')  should take every opportunity to understand some of the basics of patent law.  The difference between design and utility patents as well as provisional and non-provisional patents would be my first suggestion.  Visiting the United States Patent Office website would be a first step.

I have about a dozen patents in my name that I worked with patent attorney's to file and get assigned.  One of them is actually pretty valuable.   Its not just important to understand some patent law, but there is a whole philosophy surrounding patents - what to patent and how.  I find the term 'patent protection' to be a misnomer as well.  A patent is more like the right to sue since it seems quite common for companies to completely ignore patents.  Patents, and everything that surrounds them, can be quite expensive for an individual inventor or engineer.


admin4 at 5:53 AM | (4) Comments | Add a comment | Permalink



 Sunday, June 03, 2007


Ergometer   

In 1992 my then business partner Ed Kafrissen and myself had the biomechanics_sm.jpgfortune to contract with a company that specializes in ergonomic design, our customer.  One of the things an ergonomic engineer does is collect demographic and population data. So they would know the ideal size for a hand held device to fit in (for example) a typical human hand.  This company worked with Industrial designers and artists to make sketches and mock ups of the products before Ed and I turned them into actual products.  We 'owned' the soft side of the ergonomic design as well.

Below is a design sketch of the "Hand Held Stress Meter".   We turned this into reality for the customer.   It is a biomedical device for collecting biomechanical data.   If you think about the placement of the user interface elements in the sketch, there was some thought that went into it.  For instance the 'volume dial' was where your thumb would land.  Designed by biomechanical engineers for biomechanical engineers.


ergometer.jpg





























In 1996, a few years later, I worked for a major Fortune 500 manufacturer.  I arranged a meeting between my engineering department and the Ergonomic design house I had previously worked for.  They had no in-house ergonomic engineers.  This was, is, a LARGE corporation.  I take it as my failure that I was unable to get the attention of the management there and illustrate the value of ergonomics [If you are following these series of laboratory notes you will notice that I am endeavoring to bring my communication skills to a higher level]. 

In subsequent laboratory notebook entries I should illustrate the significance of design.



admin4 at 6:45 PM | (0) Comments | Add a comment | Permalink



 Saturday, June 02, 2007


Design vs Engineering   

design_sm.jpg

I am going to steal a little trick I learned from Joel Spolsky and give you a little blog test.  This is a simple fill in the blank.  Designer is to Engineer as Architect is to ____________ .
To see the answer 'magically' appear select the area below with your mouse.

Engineer

Is that a trick question?  Yes Architects and Designers both require Engineering to create their designs.  Of course Architects create building and Designers create products, but they both share the same set of 'tensions' that shape their designs as the picture illustrates.

Some people might take exception with the 'art' element.  I have used art instead of the more specific case of industrial design.  Industrial design has the functionality, cost and ergonomics elements built into it.

Designers are not necessarily engineers, and Engineers are not necessarily designers. 



admin4 at 6:36 AM | (0) Comments | Add a comment | Permalink



 Wednesday, May 30, 2007


Of Metaphors, Models and Design   

housewife-with-mop.jpgCreating a programming language for your product requires a knowledge of your customer.  Years ago I had a job designing robots.  Now there are, or were, various languages and systems for programming of the robot to do its assigned task.  Most of those languages at the time required the person doing the robot programming to have computer programming skills. I had a great idea on how to program my robot.  I had just learned about the FORTH language and figured everyone would love to learn FORTH.  I wrote a FORTH interpreter. If you are familiar with FORTH you will know its designed around reverse polish notation.  I quickly found that not many people wanted to learn to program my robot because it required them to learn a language with this mental hurdle that only a few engineers were familiar with.

For my next robot we put in a BASIC interpreter.  BASIC at least was based on regular arithmetic expressions.  We sold quite a few of these motion control systems, but what generated more interest was when we put a GUI front end that looked like a spreadsheet.

You see, much more people are familiar with spreadsheets than programming languages.  It was the only motion controller for a robot at the time that was really easy to program by using a familiar metaphor.  What we did was to filter the technology to a wider audience.

I realized that the GUI I designed into the product had an impact on sales.  Imagine that.

My next project was another automation project aimed at a consumer with no programming experience.  To make the task more difficult the product only had a multi line LCD character display.  After our design team put our heads together we came up with what I think was a novel approach.  The use of Wizards.  Most product with LCD's, that I have seen, use menu's and setting that require the consumer to have some knowledge of where in the menu structure to find a particular setting.  Our concept was to first break down programming into TASKS.  We would have a wizard for each TASK.  Each wizard led the consumer by asking questions until a TASK was programming.   In addition, we created an underlying model that was similar to the existing products in the market.

It wasn't a perfect design, the small LCD was limiting, we were not able to customize the key layout, the consumer was led into fixed tasks, but it was an improvement over the existing products. 

You can always make the consumers programming task easier by limiting consumer choices.  Thats too easy.  You know your successful I think when you don't limit choices, but in fact have many ways to accomplish a task without making your customer think about how to accomplish their task.

Assume a consumer has never seen your product before or read the manual.  The consumer has pre-existing notions about how they might accomplish a task with your product based on their past experiences with other products, even those products that are quite different such as VCR's, iPods, Outlook, automobile cruise controls, ....  If you can determine those most appropriate notion(s) and make your design fit to create a metaphor the consumer might find your product easy to use because they already know what to do. 

A good underlying model, and a GUI metaphor, don't limit choices but expand the consumers uses.



admin4 at 7:07 PM | (0) Comments | Add a comment | Permalink



 Tuesday, May 22, 2007


Not knowing your customer: Friendster   
sunray.jpgEngineers and Designers need to endeavor to understand their customer. Don't rely on the MBA's, markeeters, or VC's.  While its' important to be part of a winning team, every team member including the engineers, should search for an understanding of their customer.

I recently was reminded of this when I read about the problems that were the demise of web startup Friendster in this Inc article. One of the problems they had was the engineers and management did not know who their customer were. For instance, their code did not scale to the millions of customers that they needed to attract, and no manager seemed to care enough to make the scaling problem a priority. They were more interested in new features.

New features may be important to compete with your competition. In this case MySpace (the competition) had music and animations on the user web pages and it was attracting new users like crazy. But the scaling problem Friendster had was a serious problem that only the techies recognized.

The issue of not understanding the customer did not stop there.   In this article excerpt they found out who their demographic was:

"Meanwhile, scant attention was paid to Friendster's users. Lunt remembers marveling sometime in early 2004 at how Friendster's traffic would mysteriously spike at 2 a.m. Intrigued, he started looking at the site's log. Oh, my God, he thought, everyone is from the Philippines. [...] In fact, more than half the site's traffic was coming from Southeast Asia.

From a business standpoint, the revelation was devastating. Friendster, it turned out, was paying millions of dollars a year to attract eyeballs that were effectively worthless to its advertisers. Says Abrams: "We needed to make a tough decision"--either spin off the Asian business or become the No. 1 Filipino social network."

In this excerpt they found out how and why their customers were using their product:

"Unbeknownst to Abrams, Sassa, and Friendster's investors, demand for social networking was changing. The lure of Friendster--and, to a much greater extent, MySpace--was not the elegant web of connections but rather the opportunity to gawk at strangers. Rather than using Friendster to make dates, most of its users were simply cruising around and looking at the weird interests, pictures, and blog-droppings of strangers (including so-called "fakester" profiles of Jesus and Burt Reynolds). Real-life connections, the core of Abrams's vision, were not quite as relevant as he'd imagined. Thus, the free-spirited MySpace,... took off. The site surpassed Friendster by the end of 2004 after only a year in business. A mere nine months later, it would be clocking 22 million unique users per month in the U.S., compared with 1.1 million for Friendster."



admin4 at 11:48 AM | (0) Comments | Add a comment | Permalink



 Friday, May 18, 2007


Innovation & Engineering   

There seems to be two ways (at least) to innovate.  I will let you decide which way makes more sense from a business standpoint.   I will not try to influence which way you feel is the better path to innovation.  The first way I call the 'propeller head' way.

Mark Lipinsky demonstrates the newest hatIn the propeller head method we look for interesting technology.  We then develop new products and ideas from these technologies.  Perhaps we apply these new technologies to existing products.  Once we find interesting applications of the technology we design products or demonstration systems using these technologies.  Products are designed for manufacture and prototypes are made.  Pricing is determined by the Cost of Finished Goods using standard markups.  Marketing creates sales material, and salesmen push the product onto the customers and sales channels.

The Apple I was developed using this method.

motorola peblThe second method I call the 'I just want to make money and I am not sure I really know what my customer wants' approach.  What enables this path is a desire to please and delight your customer.  In this method you first define what your companies and staff strong points are.  You next look at your customer and how they make their purchasing decisions.  You look to see how they are accomplishing their tasks.  You look to see how they are using your existing products.  You look for opportunities with the customers.  You look for new customers.  You look at your competitions customers.  You define your sales channels and explore new ways to distribute merchandise.  You haven't designed anything yet, but at this point you may start getting some ideas of where you could be going.  Before you even start to design you define what the price of the product will be and what the total sales will be.  At this point you can decide if and how you might protect the product with patents or trade secrets. To create patents you know what are the existing IP.   Finally, with this information in hand, you then can then start to define how the product might be implemented and all the drawings and paperwork required to make it.  You can make suggestions on technological improvements and cost reductions because now you have defined your customer.

Do you know who your customer is? ...And how well?

Finally, I want to add, the "I just want to make money..." approach does not have to be some big marketing program.  It could be as simple as watching the step's that production goes through in burning in your existing products.  That might lead to changes in how the firmware boots up.  That is a worthwhile task.



admin4 at 9:23 AM | (3) Comments | Add a comment | Permalink



 Tuesday, May 15, 2007


Innovation   
Companies must constantly innovate or they will lose market share and be passed by their competition.  What the consumer sees and feels is the user interface and affordances of the device.

One of the current issues with technology is that the Personal Computer industry is not innovating (with the exception of Apple).  My prediction is that if the PC industry does not start innovating, the PC will morph into new products offered by the competition and the industry leaders, Dell, HP, etc, will lose market share.  I found that this opinion was recently supported by Rich Templeton, the CEO of Texas Instruments in a recent interview.  TI supplies chips to these segments of the industry.  Mr. Templeton is right in the middle of this market.

richtempleton.jpg[Rich Templeton] ... And I put that up there in contrast with the PC industry. PC companies invest what amount of their revenue in R&D?

[Interviewer] The biggest ones, not very much.

[Rich Templeton] The fact is, if it's a point or a point and a half, that's very little. And so when people sit back and ask why there isn't anything new, it ought to be an obvious answer. The PC companies aren't investing. When I say I think it's wonderful that there are companies like Apple (AAPL) investing in R&D, improving the user interface, new features, [and] companies like Nokia, Ericsson, Motorola all working on R&D, that's all good stuff because when those people are doing that, it's going to lead to new ideas and growth. And the last time I checked, chip companies can't grow if the people they sell to are not growing accordingly.

[And engineers can't grow if their companies are not growing. - Damon ]



admin4 at 10:58 AM | (0) Comments | Add a comment | Permalink



 Friday, April 20, 2007


The Unconnected Masses   
OEM_Notebook_Computer.jpgPark Associates, a Dallas-based technology market research firm, said 29 percent of U.S. households, or 31 million homes, do not have Internet access or do not intend to subscribe to an Internet service.  The main reason they do not subscribe to the Internet is because they perceive low value to their daily lives rather than concerns over cost.
  • Forty-four percent of these households say they are not interested in anything on the Internet.
  • Twenty two percent say they cannot afford a computer or the cost of Internet service.
  • Seventeen percent said "I'm not sure how to use the Internet".
  • Fourteen percent gave the response "I do all my e-commerce shopping and YouTube-watching at work".
  • Three percent said the Internet doesn't reach their homes.
The study found U.S. broadband adoption grew to 52 percent over 2006, up from 42 percent in 2005. Conversions from dial-up and new connects were split roughly half and half.

In another survey it was found that the percentage of Apple computers on the desktop has increased to 5%!  That is a significant finding.


admin4 at 8:20 AM | (0) Comments | Add a comment | Permalink



 Friday, March 09, 2007


Sun Tzu on Management   
SunTsu.jpgBefore anyone criticizes me on being a war monger, READ THE BOOK. Sun Tzu's "The Art of War" does not advocate war. It is about winning. He believed war to be a costly endeavor as a path to winning.  Sun Tzu believed that anyone who relies on war will perish, as well as anyone who is a pacifist will be extinguished.  He lived in a violent time.  Sun Tzu spent much effort in the book to convince the reader that the first choice was always to win without fighting and offered many strategies. On the other hand, the state often is confronted with no other choice but to defend itself, and Sun Tzu said you better be prepared, or else face a dire consequence! Often his strategies are debated, but they are always discussed.  As a reference for management and winning in a corporate culture I find it has excellent advice.  Personally, I do not agree with all 13 of his points, some of them don't seem to translate well from military to corporate strategy, some are rooted in Chinese culture, and some are only hints of a deeper more involved strategy.

In eastern cultures "The Art of War" is required reading for corporate executive.  It has even caught hold here in the US.  Tony Soprano admitted to reading it in an episode of "The Soprano's".  I could write lab note after lab note on my interpretation and how it applies to western corporate management.

My quick version of a famous Sun Tzu story.  This is not in his book, it is in another book of the same era that offers a biographical passage.

Sun Tzu lived in 6th century BC China.  He caught the attention of the emperor who was in the middle of a war.  As a test of Sun Tzu's teachings the emperor gave him 180 of his women to command.  Sun Tzu commanded the women but they did not respond.  They giggled.  Sun Tzu had the emperor's two favorite concubines (who were the generals in this female army) beheaded!  The emperor tried to stop Sun Tzu but he responded that he was given a commission and was entitled to run his army the way he wanted.  The women were beheaded.  The women then did as Sun Tzu bid, marching in formation, etc.  The emperor then dismissed Sun Tzu after this demonstration was over.

Sun Tzu pointed out that at this point the women would walk on hot coals for him.  Sun Tzu believed in rules, regulations, strong command, and the "dao".   He understood the cost of war in terms of money and lives.  The emperor did make Sun Tzu his general after this and he went on to become a legend in winning campaigns for the state.

At the very least you must agree that Sun Tzu was effective.  One often overlooked aspect of this book is that Sun Tzu taught that you must take war, being a general, (or your vocation) seriously to win. When the emperor gave Sun Tzu women to command, he was doing it lightly, possibly in jest of Sun Tsu.  When Sun Tsu had the two women beheaded he showed that this was a serious matter, that war is not to be taken lightly but is the most serious matter of the state.  Basically what Sun Tzu told the emperor, to his face, was that war is a serious matter and that the emperor was unable to accept this.  The emperor was not serious.  


admin4 at 2:22 PM | (2) Comments | Add a comment | Permalink



 Monday, February 19, 2007


Research and Development Plans   
Franklin-kite-exp.gifWhen I am teaching engineering classes I frequently get students that ask me how I, or any engineer, knows what to do to design a new product.  What I tell them is I ALWAYS know EXACTLY what to do because when you are asked to manage a project, as an engineer, you never start an endeavor without a PLAN.  Writing software or designing a product should be straightforward and simply the execution of a plan.  A good plan details every step from concept to launch.

When writing that plan you may come across some 'unknown' area in the technology.  Perhaps it is certain characteristics of a device you are working with that are not well documented, or just a new device from a new vendor.  That is the time you may need to schedule a specific research project.

A research project is different.  It may be 'open ended' meaning that a positive outcome is desired but you recognize it might not be.  Research is where a company may burn up a lot of money.  That is why research is generally done (by private or public, for profit, companies) on very specific topics with very specific time frames.  A Research project too should always start out with a specific plan that defines a beginning, a middle and an end.

The important thing to remember is that any plan (research or development) should be not be written in stone to exploit new understandings as you move along in the project.


admin4 at 7:33 PM | (0) Comments | Add a comment | Permalink



 Wednesday, February 14, 2007


Sales: Give People what they Want   
register_1.jpgIt sounds like an easy idea. Give people what they want.  It sounds easier than it really is.  If you can give people what they want I guarantee that you that any engineer will be successful in any business. The first step is listening to what the customer wants.  The second is to actually give it to them.  These are not always easy objectives.

A few years back I had a small company and we were selling electronic based products for the educational market. I really respect sales people for the job they do. I learned something trying my hand at sales.

One of the things I had to work at is to really listen. This listening issue is an issue of communication [more on communication in another lab note]. Working against the salesperson and engineer is that the customer may not be the greatest communicator. Therefore it is up to the salesperson and engineer to become a better listener.

Sometimes the customer tells you exactly what they want, and sometime you have to get it from them. That is one of the defining characteristic's of a great sales person, in my opinion. Great salespeople know how to listen.

Is it important for an engineer to understand sales? Not unless your employer does not expect to get paid for the items you design, or if the product is not intended to be used. The worst thing an engineer can do, and the most likely thing a new engineer will do, is to give the customer what the engineer wants them to have. That is why engineers need to listen to customers and salespeople.

It seems very common for a new engineer to extrapolate their own needs into some other (imaginary) larger market need instead of listening. It may be that listening is harder than guessing what the customer wants. [continued]


admin4 at 1:13 PM | (1) Comments | Add a comment | Permalink



 Wednesday, February 14, 2007


Sales, Give People What they Want [continued]   
[...start of this lab note]
Tie_Mid_Blue_SM.jpgOne quick story. When I was first trying my hand at sales I approached one of my competitors and we had a nice discussion about the educational market. I recognized him for how successful he was and asked him for his advice. He said something that I will remember till this day, more than 20 years later. He said "Damon", then he gave this long dramatic pause. I knew he was going to say something profound. He then waited a few seconds; it seemed like an eternity. He looked me straight in the eyes (salespeople do that to unsettle engineers I think, they know people well). He continued on, "When someone asks you for a blue tie, you give them a blue tie. Not a red tie or multi-colored tie. A blue tie."

It's taken me time to understand that simple advice.

The first lesson is the obvious. When a customer asks you for a particular solution/product, give it to him. It is a mistake to be looking to generalize a product into some larger abstract market solution.  My most common desire back then was wanting to design a product that solves everyones problems all at once.  I now believe that most people, before they go shopping, have some vision of what they want to get (not counting impulse purchases). They are going to purchase the product that best fits that vision at the best price and probably not some high priced monstrosity that claims to do everything.  This is particularly true in business.

A second lesson is also obvious.  Give people what they want, not what you want them to have. Don't try to second guess the customer.  Assume the customer is intelligent and knows what they want.  Don't assume once they see some alternate solution they will realize they were wrong and buy into your solution.

Another lesson: Giving people a blue tie is not that simple. There is no need to create a larger problem to solve. The simpler product is a difficult enough problem as it is! What you need to get into your head is that the best thing you can do is to give the customer the best blue tie at the cheapest price you can. There will be enough work in figuring out what blue, and what makes a tie a tie, etc.. After you figure those things out you have to integrate the two together, blue and tie. Then, possibly, you need to create a system to mass produce it. It is easy to underestimate the enormity of the problem.

Sometime the customer is savvy enough to give you a spec. Listen to it! Read it! You are lucky to have that spec. It makes listening so much easier. Realize that any deviation from the spec will cause an issue that needs to be addressed, and questions are not a good thing.

Finally, recognize the customer has told you want they want. 'All' you have to do is to give them what they want and collect their money. Realize that from this point forward you can muck up a sale. Be careful.

Really listening is not easy.


admin4 at 1:10 PM | (0) Comments | Add a comment | Permalink



 Friday, February 09, 2007


What's more important, the Question or the Answer?   

This is an important point I believe for an engineer to understand.  Follow me on this and don't laugh.  I believe the questions are Raffael_068_Pythagores.jpgsometimes more important than the answers. 

Sometimes the answer flows, or can be deduced from, the question.  Sometimes it's the question that is the real 'eureka' moment.

Suppose for example you manufacture a device that is dangerous if people or animals touch it.  A real eureka moment might be when you ask the question "How do I protect people from touching it if when they touch it its' too late (they get shocked or worse)?"

Now ask any engineer that question and they may come up with many solutions.  For instance, proximity detectors or motion detectors.  Or how about detecting disturbances in the electric field?  There are now $1 chips to do this.  These solutions are non-contact methods to detect the presence of people or object before they become an issue.

Now consider you are a manufacturer and implement this solution in your next product.  What happens next?  If it's successful then all your competitors follow suit.   They now also recognize the question.

This is a case of where the question is more valuable than the answer.  Unfortunately the US patent office does not allow protection of the question, only the answers, and that's a whole 'nuther story and a whole 'nuther future laboratory note entry here on damon4.com.



admin4 at 12:19 PM | (4) Comments | Add a comment | Permalink



 Thursday, February 01, 2007


Using the Serial Port in Visual Basic 2005 event driven   
In Visual Basic 6.0 handling a serial port (or comm port) event was simpler than in Visual Basic 2005. That is because in .net 2.0 the event exists on a secondary thread. You can't access any objects ( timers or GUI elements) from the event because they exist on the primary UI thread. To do this you need to make an asynchronous call to a delegate procedure from the comm port event.  The following procedure works for all of Visual Studio 2005.

If your like me you have been searching for a solution to this issue. I hope you stumbled here and this helps. Use this:

Delegate Sub UpdateUIHandler()

Sub UpdateUI_Impl()
' delegate to update user interface controls from primary UI thread
' put any code to update the UI from serial data here

End Sub

Private Sub SerialPort_DataReceived(ByVal sender As Object,  _
      ByVal e As System.IO.Ports.SerialDataReceivedEventArgs)_
      Handles SerialPort.DataReceived
      ' this is the serial port data received event on a secondary thread

      Dim buffer As String
      Dim handler As New UpdateUIHandler(AddressOf UpdateUI_Impl)

      buffer = SerialPort.ReadExisting
      ' invoke delegate on primary UI thread 
      Me.BeginInvoke(handler)
End Sub


admin4 at 3:28 PM | (8) Comments | Add a comment | Permalink



 Thursday, February 01, 2007


On Product Specification, Imagination, Communication   
imagination.jpgOn the way to work this morning I worked out this lab note in my mind. I was thinking about why I, and most engineers and software people, find engineering and software design so interesting. The most interesting part is imagining a product, and then seeing it become real.

I think we all love to imagine from when we are very little. I remember when I was little I would play army with my brother Michael. When we would imagine and play and I was in a totally different place. The difference between then and now is that now my imagination needs to be more integrated with reality and practicality.  A good imagination is of immense benefit to an engineer or programmer.
 
I like to imagine what a product could be. I like to imagine different ways of expressing the product. I like to imagine, and this is important, all the steps involved in using the product. How I am opening the package, and installing or plugging it in. I imagine others using the product. I imagine me telling someone what the product is or does. Sometimes the product has popped up in my dreams.

I do not have the luxury of free reign in my product design for work.  I design products for people and companies. I need to obey the laws of physics. I need to make money to pay my families bills. Its reality. Therefore my product (and imagination) has design constraints.

The final part of this fun imagination ride is communicating what is in my mind to other people. The only way to make the product become real is to communicate it to other people, unless you want to do everything yourself.  Doing everything yourself is viable for a few people.  The reality is that you and me will be working with co-workers, clients, and/or sub-contractors on a product as part of a larger project that is multi-disciplined.

That is why a product specification is so important. It is a communication as to all the details that will make up the product. It should leave no detail uncovered, you never know how it will turn out otherwise. The product specification communicates to the design team, clients, management, marketing and salespeople. It communicates to quality control and manufacturing what you plan to do. It is important that you paint a picture in peoples head of what is in your head. Everyone needs to have the same target.

The product specification usually is a team effort. Individuals on the engineering team are responsible for different aspects of the spec, but usually one person is the 'keeper of the spec'. When I have written product specifications the mere act of doing so and organizing my thoughts always leads me to new views of the products and to fill in details the team did not think of otherwise.

The product spec is also important because in design and engineering it is very difficult to hit a moving target. If a spec is complete and your client comes to you halfway through the project with a major change you both know what the initial agreement was with good product spec.  Finally, the product specification will be used to define the scope of the engineering effort.  Schedules, milestones and deliverables will be based upon the scope of the project.


admin4 at 8:24 AM | (0) Comments | Add a comment | Permalink



 Friday, January 26, 2007


The Demand/Supply Chain   
My previous lab note dealt with the demand chain.  The demand chain can be broken down into various marketing channels.  An engineer or programmer should understand the marketing channels of the company they work for and how they are pertinent to the design of their product.
marketing channels.jpg

A Company may have may marketing channels for its customer.  This is part of the companies supply chain, and your customers are within these channels.


Also pertinent to the design of a product is the supply chain.  This includes all the entities that are involved in getting your product manufactured.  There might be printers and machine shops, distributors, and other manufacturers.  This might also include your companies inventory.  As an example of this your company might already inventory a particular type of memory chip for installation in another one of their products.  This might create a supply side design constraint on your product.  The company may be reluctant for you to specify a different memory chip if the one they currently stock will suffice.

When designing your product or software there are constraints.  All these constraints can be thought of as either demand side or supply side design constraints.


admin4 at 9:10 PM | (0) Comments | Add a comment | Permalink



 Thursday, January 25, 2007


Who is your customer? The Demand Chain.   
When your company goes to sell the product you have designed or written someone is going to buy it. That someone is probably your customer. I say probably because it's a little more complicated than this and understanding this is pertinent to you doing your design job.

It is important to understand the business demand chain. When a product leaves the manufacturer there may be quite a few other hands the supply chain.jpgproduct has to go through before it reaches the customer. Some of the people that may be in between are as follows: distributors, retailers, plumbers, electricians, home builders, architects, OEM's, resellers, importers, exporters, doctors, hospital purchasing departments, delivery people, air cargo, salespeople, ...   Do you think it matters what they think about your product? You bet. There may be several people in between your manufacturing and the end user. You can bet that if any one of them finds an issue with your product that it may hurt sales or even be an obstacle to sales.  Because of this each one of these people can be considered 'your customer'. 

As a concrete example suppose you are tasked to design a computer controlled faucet. We might both agree that the operation should be simple for the homeowner. We should also have a product that is simple to install. In other words the initial programming of the faucet should be dead-nuts-simple because a plumber, who probably never took a programming course, will probably be installing it.   He's not going to recommend it to the homeowner if he does not understand it.  This product has to pass muster with at least two people, the plumber and the homeowners.
 


admin4 at 1:41 PM | (1) Comments | Add a comment | Permalink



 Saturday, January 20, 2007


UI Design concepts   
One of the basic concepts that programmers use when realizing a UI design is to recognize that the customer does not want to use a program for its' own merit. Most often the user wants to accomplish something ... and they paid you to help them. This leads to some basic  overall principals of UI design.

1. The customer should accomplish the task he or she wants as quickly as possible.

2. There should be as few distractions as possible to the customer accomplishing his or her task, or recognize how to accomplish their task(s).

3. The UI should bend toward the way the customer is accustomed to performing their work rather than requiring the customer to learn a new way of doing their business.

4. Since the customer has particular task(s) to accomplish the software should be designed toward those tasks.

5. Choices are good and bad. Choices can give a customer empowerment. Choices can also be confusing. The choices that are presented are a critical element, as critical as any underlying mathematical algorithm.

The software is an important product. Yet the customer does not want to know its there. The programmer has done his or her job when the software is so easy to use it is taken for granted. The programmer makes the UI design 'look easy', yet a significant amount of effort is expended to make it look that way.

A few years back I was working on a consulting job to design a robot to help in field work for the local utility company.  My business partner, Ed, suggested I spend time with the linemen 'on the job'.  At robotarm.jpgfirst I thought this was a little extreme, but I soon changed my mind.  I actually spent a couple of weeks as an intern working and doing the actual tasks of the linepeople.  This experience was invaluable in understanding the customer, their tasks, their challenges and problems.  Every morning at 7 am the line crew met.  I was able to see that they were intelligent, hard working, and wanted to do a good job.  Most did not have a college degree but were educated, some had big hands and all wore these huge clumsy gloves, ... and so on...  We had a profile of the user. 

   I experienced some of the tasks that they were asked to do on the job.  They wanted to get each of their tasks done quickly and move on.  We were able to see the steps required to accomplish the pre-identified tasks the robot was expected to be integrated into, and to identify new tasks and increase the products value.  The experience of 'walking in my customers shoes' was invaluable to our design (and by the way, those shoes were big, heavy, steel tipped, leather, work boots).  It also showed my direct customer, the guy paying my bill, how concerned we were in doing a good design for him.

Understanding the tasks and customer is key to a good UI and product design.


admin4 at 1:39 PM | (1) Comments | Add a comment | Permalink



 Saturday, January 13, 2007


Warner Brothers and the Blue-Ray vs HD-DVD war   

This week I attended the CES show.  I have been thinking of what type of lab note I should warner-brothers.jpgenter here when luck landed right in my lap.  Luck has been good to me here in Vegas. By coincidence I had dinner tonight at the Japanese restaurant at the MGM and seated next to me at the sushi bar was an executive from Warner Brothers (a division of Time Warner).  We talked about CES.  Warner Brothers debuted at the show a dual format HD-DVD and Blue-Ray disk.  On one side is the Blue-Ray format and on the other side is HD-DVD!  Many of the other studios and retailers are VERY interested in the format .... EVERYONE ELSE (the electronics manufacturers) is upset at them!

Let me explain why.

Think about who wins.  First you need to know that Warner Brothers has a patent on this new disk format. The rest of the industry is about split on support of the two formats.  Both sides (Toshiba camp and Sony camp) have poured tons of money into winning.  In one fell swoop Warner Brothers has made both formats a commodity.  It does not matter which player the consumer purchases.  The consumer can, and will, purchase the cheaper player if the disk will play on either one!  Think about poor LG electronics who spent a ton of money to develop and launch at CES a dual format player which will retail for $1200.  There is no need for the consumer to purchase that now.

This dual format disk has gotten support from the major retailers (Circuit City, Best Buy, Amazon..) and some of the other major studios.  In addition Warner Brothers is claiming they can also include standard format DVD on the same disk sometime in the future.  It looks like they certainly have shifted the momentum toward their direction and the ensuing royalties.

Oh, one prediction before I end this.  Expect much negative PR about this new dual format disk from both the HD-DVD and Blue-Ray consortium's. They got a lot to lose.

[Update 1/17 - I have found out the actual recording mechanism is more sophisticated than one format on each side.  The formats are actually laid on top of each other in different depth layers. I was probably getting a novices description but it's irrelevant to the point of this lab note.]



admin4 at 1:02 AM | (0) Comments | Add a comment | Permalink



 Thursday, November 30, 2006


What is a Watchdog?   
Watchdog's can be an important part of a product.  Understand their benefits by reading this article:  What is a Watchdog timer.


admin4 at 8:15 AM | (0) Comments | Add a comment | Permalink



 Tuesday, November 07, 2006


What is RSS and Syndication?   
I don’t want to make this entry too long. It’s not going to get technical. I have been trying to think of how I would explain RSS and Syndication to someone totally computer ignorant. I came up with the following. There are other ways to use RSS but this is the most common.

Do you remember way back when you were a little tyke on Sunday mornings? The newspaper would come and dad would pick it up to read it? Mom would ask dad to separate the circulars, entertainment and ‘living’ sections. You would ask for the comics. Your brother or sister would fight you for them. When you got older you also would ask for the sports section. The newspaper would never go back together the right way, IF you could find all the separated pieces.

Now let’s fast forward to 2006. Through the magic of RSS you can customize and receive only the news subjects you are interested in and in the order you want as it happens. There is another major earth shattering change that this brings. Imagine that ANYONE can be a publisher and deliver news as effectively as any major newspaper or magazine! No longer do you need a huge investment in publishing and distribution! Finally, as an RSS subscriber you can get your news IMMEDIATELY! Why wait for the next morning to get election polling results or commentary. Get commentary on election events AS THEY HAPPEN!

If you want to subscribe to an RSS news feed you need a news reader. There are many news readers on the internet. The one I happen to use is my.yahoo.com . When you open a my.yahoo account, and it’s free, you can customize one or more pages. On each page you can customize headlines from any RSS source on the globe. Every morning I open my page to see the news from Reuters, AP, PC magazine, and my favorite blog’s.

If a web page publishes RSS it is indicated by an icon as thus: rss_icon.gifPerhaps you will customize your own news aggregator page and subscribe to the newsfeed from this blog, www.damon4.com .


admin4 at 3:07 PM | (0) Comments | Add a comment | Permalink



 Monday, October 30, 2006


Why you should be invested in Microsoft   
I have a theory about Microsoft and Vista.  I believe that Microsoft for years has been letting Microsoft Vista.jpgvirus attacks 'happen'.  They have purposefully been patching Windows a little at a time.  Let me explain why.

In 1998 and 2002 they had a huge profitable upgrade cycle as people bought Win98 and then XP.  People upgraded because of the new internet technology that was integrated into the browser and operating system.  Wizards and such made it easy to connect using LANs, 802.11b's and g's, cable modems, DSL's, Bluetooths,....  The PC market is now saturated with XP. Microsoft now needs another killer app or reason for people to upgrade to another revision of the operating system.

It is my opinion that they decided in '98 to patch viruses one at a time.  They decided people had enough reason to upgrade and they would let security be the next reason for a major upgrade. That is why Vista will be on your computer in 1-2 years.

Now I am not saying that Microsoft engineered their own viruses.  I love this American company.  They made computers affordable to me.  It would be an interesting development though if they stopped support of XP and a new major virus hit the old computers.

There are two other thoughts I had.  These are obvious but are worth mentioning.  First, the upgrade to the new operating system will cause an upgrade cycle with all software vendors as people get new versions of their favorite programs that work with Vista.  Second thought is that Microsoft must now be planning their NEXT upgrade cycle.


admin4 at 3:46 PM | (1) Comments | Add a comment | Permalink



 Tuesday, October 24, 2006


Godaddy Web Hosting Issues   
This web site is hosted by Godaddy.  I would like to point out to other potential web host clients some of the limitations and positives I have found with Godaddy.

There are three main problems’ I have with their windows hosting. The first is that they do not allow remote connections to the MS-SQL server. I need to log into their SQL control panel to configure and administer the SQL database. This is just annoying and limiting. Second problem is also with SQL, they use an older MS-SQL 2000 and not 2005. The big difference is that 2005 allows unlimited entry road.jpglengths whereas 2000 is limited to 8K characters per record. This is a real limitation. Look at my ‘Sesame Street Review’ as an example of where I reached the maximum blog length. The last big problem I found is that Godaddy does not provide asp.net web services. I have an idea to implement some unique web services and this Windows host does not allow them.

I would like to say that Godaddy provides excellent uptime and bandwidth. I have had poor results with Globat hosting (a competitor of Godaddy) in those areas, and they don’t provide any Windows hosting facilities at all. Godaddy also provides better front end Spam filtering then Globat, although I think there is room for improvement in this area as well.

If Godaddy were smart they would look at the free MS Web Developers kit and an introduction to their web hosting and make it work with their hosting accounts as seamlessly as possible.


admin4 at 6:24 AM | (0) Comments | Add a comment | Permalink



 Wednesday, October 18, 2006


What are the skills necessary to create Great Software?   
Great Products and Software are created by Great Programmers and Engineers.  The skills necessary GoogleOld.giffor success are so diverse teams are brought together to effect a product.  But behind any sucessful product there are only a few key people.  What are the skills that should be cultivated?  This is a must read article for any designer, engineer or programmer.  Link to Creating Great Software.  Only at damon4.com!  The most exciting place on the internet!


admin4 at 12:37 PM | (2) Comments | Add a comment | Permalink



 Monday, October 16, 2006


Jeremy Wadsworth PWS template   
Jeremy Wadsworth has a new PWS template.  It add's PING and RSS!!!  Jeremy built the base code (PWS template) I am using for my site.  Jeremy is an excellent programmer and site designer.  In addition he is a new dad and amature photog like me.  At some point I will need to work on a site theme.  Jeremy has been developing a nice theme for his site.  I think I want a theme that has some relevance to my work or hobbies.  That is what is blocking me.  I am thinking that possibly something visual, like a high voltage arc, from some equipment here at work.  If you get a chance you should visit his site and admire the pictures of his new little girl.  Remember to sign his guestbook as well.  Thank you Jeremy for the latest update.


admin4 at 6:42 AM | (1) Comments | Add a comment | Permalink



 Wednesday, September 27, 2006


BACKUP YOUR COMPUTER   
You should have a backup strategy for your computers hard drive.  If you are like me you keep Photos, Videos, Music, and Documents on them.  You use your Internet Browser to pay bills, and mange your life.  You must plan on your hard drive failing.  I have written a must read: A simple backup strategy.


admin4 at 11:43 AM | (0) Comments | Add a comment | Permalink



 Monday, July 17, 2006


An explanation of this site and Microsoft Web Builder Express 2005   
I want to explain to anyone not familiar with web sites how I built this site.  My objective was to have a site I could program to exactly what I wanted, but be easy to personalize for day-to-day operations.

First I stumbled into the free Microsoft Web Builder 2005 Express Edition.  It builds asp.net 2.0 sites and was programmable in either C# or VB.  I then opened a web host account with GoDaddy.com.  You can search for an available domain name and I found Damon4.com was not being used.  It cost me $85 for the domain name registration and a year of asp.net  (Windows based) hosting.  I got the premium account but found later I could have gotten a less expensive option.  GoDaddy has other methods of building sites that come free with the paid hosting account that do not require any programming ability as is necessary with the Microsoft tool I chose.  Problem is, I wanted the ability to change the underlying code.

As an experiment I also opened up a Google Adsense Account.  The advertisements in the left hand column are provided by Google.  Everytime someone clicks on them I get a few pennies in my account.  Believe it or not I actually made about $20 for the first six months of this year!

 
I used a modification to the Personal Web Site Template provided with the Microsoft Web Builder tool to get the web site running faster.  One of the Microsoft MVP's, Jeremy Wadsworth at jeremywadsworth.com, has a modification that can be downloaded from his site that make management of the site built easier.

There were numerous incompatabilities with the GoDaddy hosting site, particularly in the MS-SQL hosting.  I had to iron some of these issues out before I could even start, and even now there are some issues I need to work on when I administer the site.  If anyone is interested in their own site GoDaddy has some simple tools you can use, and they even have free hosting.  You just get THEIR ad's on your site, so your motivation for interesting content would not be monetary, just personal.  It takes time to do all this though.  Most people can figure it out without any computer experience and it won't even cost them a penny.  It's the inventment in time that will block most people.  I wanted to learn some web building tools and felt the invensted time would serve a dual purpose eventually.

I noticed that 9 times out of 10 the Google Adsense thinks this is a cooking site and puts cooking related ad's there.  It probably does not help that I keep using the word cooking, ...oops!  Perhaps I should use the word computer more, or maybe if I make the word computers bold it will help?


admin4 at 7:42 AM | (1) Comments | Add a comment | Permalink



 Monday, July 10, 2006


Odd tech items   
Firefox Beta 2.0 can be downloaded here.  Firefox is the leading brower behind Internet Explorer.  It has a 15.82% market share.  That is a significant achievement given Microsoft product intertia.

Beta 2.0 will disable all your themes, extensions and personalizations from existing V1.5 installations.  Download Firefox Portable version to keep your existing Firefox 1.5 installation intact.



In other news Freescale has developed a new memory technology, Magneto-resistive Memory Technology, or MRAM.   I am not drawing any parallels but when I was reading about MRAM I was reminiscing about bubble memory.  Remember Intel Bubble Memory? 


admin4 at 8:28 AM | (0) Comments | Add a comment | Permalink



 Friday, June 23, 2006


Pinmod Overclock a FAILURE   
Oh well, at least I did not fry the 600m.  Resulted in no difference that I could tell.  I removed the jumper.


admin4 at 2:02 PM | (0) Comments | Add a comment | Permalink



 Friday, June 23, 2006


Hard drive & CPU upgrade results   
The upgrade went well.  Everything now boots.  The results are as follows:



Before Upgrade
After upgrading hard drive to 7200RPM Hitachi Travelstar
After upgrading Hard drive & CPU to 1.7Ghz P4M

Time to boot to see desktop

1 ' 45 "
45"45"
Time to see desktop and all the icons in the system tray load

3 ' 45 "
1 ' 10 "1 '











I want to try the pinmod to overclock the CPU next.  'Pinmod' is a jumper you can put on a Centrino CPU to overclock and get a faster speed than Intel intended.   I am pretty sure it will be a failure since I believe the 600m has the 855 chipset and not the 915 chipset.  I believe the 915 chipset is needed to overclock because you wind up with a 533Mhz system bus.


admin4 at 5:45 AM | (0) Comments | Add a comment | Permalink



 Wednesday, June 21, 2006


New Laptop Hard drive and CPU   
Yea!  I won an Ebay auction for a Pentium 4 M (centrino) 1.7 Ghz processor.  I decided that I will spend no more than $200 to upgrade my laptop and see how much performance I can get for that.  I will upgrade my 600m this weekend.  Everyone is telling me don't do it, that I will wind up with something worse.  I think not.  It sounds like a do-able project.  I have Dell instruction sheets on how to change the CPU.  I am expecting at least a 25% improvement in speed.  Not much really. The auction cost me only $72 though.

Also got my new Hitachi Travelstar 2.5" hard drive for the notebook.  That I do have high expectations for.  I am expecting a doubling of speed.  The two big issues for me are boot time and turn off time.  Also of issue is the time to say load Firefox (which is pretty quick already I think), and the time to connect to the internet through my bluetooth and thru the 802.11b.  I will benchmark my 600m before and after and document it here.

Total invenstment is $175 for hard drive and CPU.


admin4 at 6:10 AM | (0) Comments | Add a comment | Permalink



 Friday, May 26, 2006


Proxy Servers   
    king saud.jpgDid you know that all the Internet that goes into Saudi Arabia is filtered by eighteen proxy servers?


admin4 at 12:26 PM | (1) Comments | Add a comment | Permalink