This opt-output rack I bought from China cost less than $17. They used to cost an order of magnitude more than that. It is kind of sad we do not make them so much anymore in the US, but it is a very good thing they are available at so a low price and that we do not have to make them as low cost items with thin profit margins. This is the last piece of hardware I needed for hooking up the control to our coffee bean sorting project, but I have had two other projects take priority (involving clinical trials and compliance issues–that is a good thing because the trials and compliance issues would not be needed if the product did not work). So I am going to have to sit and just look at this fun new toy for a month or two before I can hook it up and make it do its thing.
Gene sent me the first camera stand and bracket today. I am actually to the point now where I have enough mechanical items to start doing some more bean testing, but as I feared, I have now become the bottleneck. I have decided Flask and Python are probably not the tools I want to use for the machine interface server, so I am switching over to Node.js. I am trying out the Visual Studio Code IDE to develop the app. So far (which is not very far), I am very impressed with it all and think it will make the whole enterprise easier to develop, deploy, maintain and extend. I might change my mind after I get a little deeper, but so far so good.
Gene made the camera mount for our camera stand. This should drop write into our prototype. Progress continues. I know he is really busy, so I appreciated this a lot. We are moving forward on several fronts right now. I think I am going to be the bottle neck fairly quickly so I have decided to continue down that path of working out the UI so we can get an embedded bean-drop controller setup for both Montana and Texas before I continue on to any more control stuff. Kelly is going to help us by developing and implementing a market survey that, if this thing looks at all promising, we will continue each year while it is still interesting.
Our bean sort project has heated back up–literally and figuratively. Gene finished the prototype light stands and shipped them out. Here is a picture of them working. They heat up a ton when they are under constant current, so I have ordered a manual PWM light driver (with a dial for brightness) and an PWM driver that I should be able to control with one of the DAC’s on the Raspberry Pi. All of that should arrive within the next few days which means I am the one who is holding everyone up because there are so many things that I have to do before I can test them. I can hardly wait to get them in my hands.
In the mean time, I am working on the pixel to world coordinate calibration model for the beans. I hope to have that done sometime today–by Thursday at latest. Then I can work on controlling the lights and capturing images with the Raspberry Pi.
Gene and I continue to make progress on our bean inspection project. Here is the first pass at measuring bean size as beans drop past the camera. This includes finding the bean in the image, calculating its contour and measuring how big it is in the image. The next step is to convert the bean size in the image measured in pixel units to the size in millimeters. I am half way into that.
The other thing I did this weekend was load up a Raspberry Pi with the latest Raspbian OS and got it running on the network. Right now, I am doing all my work on my Linux PC, but the idea is to move it over to the Raspberry Pi as soon as it is a little further up the development path because that is a much cheaper computer. There are some other options that might be even better (cheaper and faster), but I have a Raspberry Pi, so that is where we will start.
Gene is not sitting still either. He has built me up some prototype lighting, but I will save that for a post of its own.
We have been slammed since the first of the year so I have gotten behind on blogging and fell off the wagon on my diet at least a couple of times. Now however, the holidays are over, our annual church special meetings for the year are over, annual sales meeting up in Canada at my day job is complete so I will not have to try to lose weight on restaurant food or on big meals Lorena prepares for visitors. I actually did better than I usually do and currently at my lowest weight since I started the diet-16.5 lbs. lost. Only 44.5 lbs. to go.
In addition to the diet thing and my day job, I have a couple of side projects (a development project with my buddy Gene I plan to chronicle quite a bit more and a, believe or not, real estate project with my buddy Mark P.), and a three or four more remodel projects. So, I plan to write on all this until one of the side projects turns into a business and/or I retire and continue to try to find a work from home business. Over the next couple of days I will talk about the development stuff Gene and I are doing and the business idea/model behind it.
Yesterday I bought a machine vision camera for the project my buddy Gene and I are doing to build a (semi-)cheap little machine to inspect coffee beans. We need something called a global shutter camera because the beans will be in motion when we capture their images. In the past a camera like this would have cost in the $1000 range. Over the years they dropped to $300-$400. Yesterday, I paid $135 for this camera–quantity 1–and that included shipping. If this is coupled with a Raspberry Pi and OpenCV (~$200 with a power supply, heat sink, and other necessary stuff), it is possible to build a vision system that is faster (by a lot) and smarter (by a lot) than the vision systems we used to sell when I started at Intelledex in 1983 for $30k (~$74k in today’s dollars). The upshot is that it is now possible to do tasks for cheap that no one would have ever thought possible. There are large categories of machine vision problems that companies are accustomed to paying through the nose to solve. That is truly not necessary anymore if one is smart enough to put the pieces together. I hope we are smart enough.
Some good news and some good news arrived yesterday. The first is that my participation in the sickle cell disease diagnostic project is wrapping up. I will still be on call for the machine vision elements of the project, but I will not be tasked with the day to day programming any longer. The second is a good friend (Gene C.) I have known since I was a child has agreed to work with me on a side project. We are going to make a “cheap but good” coffee bean inspection machine. There are lots of machines that do that, but none of them are particularly cheap in the way we want our machine to be cheap. We hope to do this for another friend who lives in Dallas.
I bought two lights I plan to use for the project. One of them is a back light and one of them is a ring light. I am pretty sure we will not be able to use these in our finished instrument, but they will certainly help me with development of lighting and optics. I still need to buy (at least) a few m12 mount lenses and a cheap USB microscope. I already have a camera with the wrong lens, but it has allowed me to start writing the program I will use to do image processing and classification algorithm development. I got it to take pictures before I went to bed last night.
I ran into a brick wall on my Beaglebone Black (BBB) project. I love the BBB, but the hardware is not fast enough to do what I need it to do, so I looked around for something faster that could run the same code and thought I would try the Raspberry Pi 3. Amazon has a reputation as a terrible place to work, but the Raspberry Pi 3 I ordered has a promised arrival of this afternoon and I ordered it earlier this morning. Kind of an amazing thing. Also, the Raspberry Pi 3 is about the same price as the BBB, but has a quad-core, 1.2 GHz Arm 8 microprocessor while the BBB has a single core 1.0 GHz Arm 8 microprocessor. I looked around a little and had no trouble finding another board doing exactly what I need. I hope I can make it work.
Update: Just amazing. It arrived at 6:00 PM at my doorstep through the apartment security gate and it included the other stuff I had ordered the day before.
An article titled How Big Government and Big Business Stick It to U.S. Small Businesses along with a conversation I had with my sister, Julia about our high school years. The article stands on its on. I believe what it says is true, but this article is about a peripheral phenomenon that has to do with society at large and being on the inside or on the outside. Julia and I agreed that just about everyone in our high school felt like they were outsiders. Everyone felt like the sports kids, the band kids, the academic kids and even the church kids were part of some ill-defined, but cohesive group some set of common knowledge and connection that made them part of “the club.” The reality was that no one really felt very much connected to anything at all. Everyone was desperate to figure out how to gain membership to the club were inadequate to the task. The other reality is that there was no club.
I think the article about big business and big government is really just about adults playing that same high school game. The difference is that there actually is a club at this level. Many people have the connections, knowledge, mentorship and motivation to get into the club. It is not formal, but it exists. You can see it particularly clearly in politics. The small business man or community member goes to congress and becomes a monster. It transcends party lines. It is true in business, too. That is not to say all people in big business and/or big government sell out in that way, just a lot of them do. The funny deal is that it is no different from high school in that it is all about people who are in the club versus those who are not and who gets to chose which is which.
The sad part is this phenomena exists not only in business and education, but in the church, the military, sports (which is, arguably, just big business and big government) and just about everywhere else in society where people organize themselves to do good things.
Betty Blonde #414 – 02/6/2010
Click here or on the image to see full size strip.
It is amazing to me that the best pictures of me are almost always on my drivers license. Lorena drove me down to Woodburn yesterday to get my license transferred from North Carolina to Oregon and I am amazed at the quality and speed of service we received there. They did a great job. Oregon is one of the few places where you have to take the “written” test (on a computer) to do the transfer. The whole process was actually quite pleasant. Lorena got her license changed in Lake Oswego where the service was very bad and very, very slow.
The other amazing thing is that they gave me me old, original drivers license number from when I was 15 years old. The equally amazing part is that I still remembered it.
Betty Blonde #396 – 01/21/2010
Click here or on the image to see full size strip.
Day 835 of 1000
Betty Blonde #17 – 08/08/2008
Click here or on the image to see full size strip.
We are big fans of Dave Ramsey. He put a list up on his website that I like very much. Virtually every item on the list is a worthy habit to engender. The only thing I do not like about it is that it is characterized as a list of the differences between rich people and poor people. I am sure the statistics for the calculations were made with some arbitrary definition of rich and poor. That is fine, and I have a good level of confidence that they are true. My problem with it is that the rich-poor distinction makes the list way less interesting.
I think of poor people who would be characterized as rich if they were measured against the items on the list. Those people are WAY more interesting than the people who are rich that have established those habits. Examples of such people might include Mother Teresa and other Christian ministers who have left everything to help people they had never previously met. It might also include academics, authors, and artists who, for the love of knowledge, literature, and art, have given up more lucrative careers to follow their passions.
There are other examples, but my sense is that engendering such habits for the purpose of getting rich is not so worthy. The nobility of a goal has little or nothing to do with how much money one earns in doing it. I suppose it could be argued that riches will come if one establishes these habits, but it is a secondary artifact, not a noble goal in an of itself. I do not want this to be misconstrued to suggest, one should not pay their own way. People need to be financially responsible for themselves. Nevertheless, riches will get no one into heaven. The habits list stands alone, as a noble goal, whether or not they lead to riches or to something else, a lot more noble.
I have always been an ardent fan of capitalism. Nevertheless, I have some pretty serious reservations about some of its manifestations. I have always identified free entry to and exit from the marketplace as foundational to the practice of capitalism. If it is hard to compete with a large company because their products and services are great, that is one thing. If they engage in predatory trade practices with the sole aim of preventing competition, that is where I would draw the line.
I have also felt quit uncomfortable with the idea that my love for capitalism has been at odds with my disdane for consumerism and materialsim. I was very gratified to find a post on Matt Walsh‘s blog that describes better than I possibly could, the difference between consumerism and capitalism. It is OK, even a great good to embrace capitalism and not consumerism. It is worth your while to read the article.
Day 772 of 1000
I logged for one summer in North Idaho while I was in college. Though I had worked in sawmills a lot, I found the logging culture both different and interesting. There seemed to be a constant flame war going on about which cork boots were best (White is the brand I remember). There were also continuous arguments about chainsaws (Stihl, Husqvarna, etc.), the “right” way to file you saw chain (whether to do it yourself or have someone else do it), and a million other work and tool related subjects. It is really not much different in the world of of programming. There is always a struggle to get everyone on the same page with respect to programming languages, development environments, debuggers, hardware, etc., etc.
I got a kick out of the seventh item on this list in an article at Simply Statistics. It points to an article about using something called Hadoop to deal with “big data” problems. I am just starting to learn more about different statistical tools, so it was great to be able to glean information about tools that are new to me from this article like pandas and scalding. The pop-culture element of the article is the reason I thought to right about it here. The disdain with which the author writes about Hadoop is more than matched in the comments section below the post. I especially like an aside written by one of the commenters in response to a commenter before him who extolled the virtues of language named Erlang while hammering everything else:
[Edit: I have had a poke around, and you appear to have a bit of a history of trolling and flaming-anything-that-isn’t Erlang, so if you don’t mind, I will take your criticism with a grain of salt.]
Christian and I discuss this kind of thing pretty regularly. It is hard not to get caught up in the religious wars. It is something I have to fight on a regular basis. In industry it is critical to do what is best for the company. Sometimes that means reuse of a really, really bad code base to get something to market quickly. Sometimes it means using almost dead cult languages like Delphi and Haskell (see, I still have some religion) that have little penetration in the real world. As I get older I realize there is nothing new under the sun. Before there were chain-saw arguments, I am sure there were axe arguments.
Day 620 of 1000
This is the first in a series of three posts about things that have helped me develop and sustain a career I love. The first post is about how to stay in close touch with people with whom you have worked. The second post is about how to give away free work whenever you can. The third is about how to invest significant efforts in helping previous employers, people who can never help you, and “the least of these.”
I have a career that I love. Beyond my wildest expectation, it gets more enjoyable every year. It did not start out that way. There are several simple things I wish someone would have explained to me about career and life that I did not realized until I was in my forties. This is the first of two posts about the rules I believe got me here. Of course, the rules are not the only thing–you have to know how to do the job, but the rules set things up for my success. The first set of rules has to do with staying in touch with colleagues and are listed at the bottom of this post. The second has to do with giving things away (yes, that means for free) and life-long learning. First, a little about my background and career path.
Through no fault of my own, I have a great career doing work that interests me with good people. At some level I have always known it was by the grace of God because I certainly did not plan it that way. I (barely) finished a degree in Business Administration with a concentration in Marketing in 1978. I got pretty bad grades and when I got out, surprise, it was really tough to get a job. I was a microcosm of what happens to people who study non-STEM degrees today with the exception that college was pretty cheap at the time, I was not saddled with a lot of debt, and I (again) got pretty bad grades.
I worked for awhile at nights in the mail room at a large technology company running computer reports around their multi-building campus. It was truly a dead end job, so I decided to go back to college and get a technical degree. If I had had a brain in my head, I would have done the leveling classes to get into a Masters degree program. No really great school would have accepted me because my grades were so bad, but knowing what I know now, it would have been pretty straightforward to get accepted at a good regional University as a probationary student long enough to prove that I could handle the degree. I already had a lot of the math and chemistry, so it would not have taken long if I worked hard. Later in life, I actually worked with a woman who did exactly that to get into a Masters program in Mechanical Engineering with an English degree and no math.
So, I went to a technical college and got a two year associate degree in something called Computer Systems Enginneering Technology. It was kind of a cross between computer programming and electronics. With that, I got a really good job at a company named Triad in Silicon Valley training technicians how to work on specialized computers specifically designed for auto parts store. After I had been there a couple of years, a friend told me about a program where I could pay in-state tuition in Oregon while I went to school for a semester in Guadalajara. It sounded great, so I headed to Mexico.
I made no job plans before I went to Mexico, so when we got toward the end of the semester, I started to worry because I had no money. Thankfully, my Mom, Grandma Sarah, was way ahead of me. She saw a want-ad in the newspaper for a technical writer at a robotics company named Intelledex in Corvallis. She sent my resume, I went to the interview when I got home, and they gave me the job. At that time in 1983 there were hardly any industrial robot companies, but one had been started in Corvallis by a group of the engineers and scientists who worked at the Hewlett-Packard ink-jet printer facility. Within a couple of years, I had moved over from the robots to work on something called machine vision. A machine vision system is a computer that has a camera connected to it. The system captures images of things that are happening on conveyor belts and workstation tables to guide robots, check the quality of assembled parts, and that sort of thing. That is the field in which I have worked for the last thirty years.
I stayed at Intelledex for eight years as a technical writer, trainer, applications engineer, and regional sales manager. I got to know enough about machine vision that one of our customers, the University of Texas at El Paso, invited me to start and run a vision laboratory to develop machine vision systems for use in factories in Texas, New Mexico, and Northern Mexico. While I was there, I was able to take the leveling classes I needed to enter and complete a Masters degree program in Industrial Engineering. We were successful enough that, I actually got invited to lecture to the faculty at the National University of Singapore about the program and some of our systems got deployed as far away as Israel. After that I got invited to Texas A&M to start a similar program there and to start a PhD. That program and the PhD never progressed very far because marriage and real life got in the way and lead me back to machine vision with Motorola, another of our old customers in Florida.
What made my career take off
It should have dawned on me that the reason I had the educational opportunity at UTEP and the job opportunity in Florida was because of connections I made in my work with the robot company. I left Motorola to start a business that was pretty wildly unsuccessful and needed to go back to work. I really did not know where to go, so I went back to the well and called some of my old Intelledex friends. They said, of course we will hire you. That was really a wake-up call. The people that rehired me were now at a different company, ESI in Portland, that had purchased the machine vision part of Intelledex. I realized the people I worked with before were not only just workmates, they were friends who valued what I did. Not only did we enjoy working together, they valued me for the contribution I could make.
The next big event in my awakening was initiated by the dot-com bubble. I got caught in a mass layoff due to business conditions and I found myself on the street. That really set me on heels. I had a mortgage to pay and a family to feed. I wracked my brain and called everyone I could to find a job. One of the guys I called was a camera salesman. He said he knew of a job in, of all places, Corvallis. I called the guys and guess what? It was populated with some other of my old compatriots from Intelledex. By now I start to clue into the fact that I have friends out there. It really irritated me that no one emphasized the importance of staying in touch with workplace colleagues. My rules for a great career were an outgrowth of that epiphany.
Right now, the shoe is on the other foot. Some of my old Intelledex compatriots work for me as contractors. It is nice to be on the other side of the equation and reinforces the knowledge that a job helps both the employee and the employer.
Rules for a great career
- When you leave a company (or move from one division to another) make a list of people for whom you have respect.
- Follow the careers of the people on your list and send them an email or even a card whenever they get promoted or change companies.
- If someone on your list loses their job, wrack your brain and make some calls to people who might be able to use them. It helps both the employer and the employee.
- If a company tries to recruit you and you cannot take the job, actively try to find someone who can feel the need and make follow-up contact to see if they are still looking.
- Take every opportunity possible (after putting God and family first) to meet with your colleagues and ex-colleagues in informal settings (e.g. Take them to lunch when you are in town).
I received an email two days ago from what I will just call an unfriendly acquaintance. He and his wife both work in the same field as I. He saw I had a connection with a company that might be able to give work to his wife. He essentially had to swallow his pride and ask me for a favor. I will derive great joy from introducing his wife to the CEO of a company that very well needs someone like her. This will help an old friend (the CEO), create a new friend (the wife), and turn an unfriendly acquaintance into a friend. The CEO is already on my contact list, but the (hopefully) ex-unfriendly acquaintance and his wife will now be on my contact list whether the job works out or not. I plan to contact all three in the next couple of weeks to see what happens.
Day 577 of 1000
My buddy, Brad, at Bioptigen signed up to get one of the first E-Paper smart watches on Kickstarter. He wears it all the time, probably to the make the rest of us envious, but mostly because it is very cool. It sounds like it has some pretty amazing features, but that is not really the point. Being very, very cool is sufficient reason to wear the thing at this stage in the game. The use of E-Paper is brilliant. It uses very little power.
This was such a great idea that the big boys are actively developing products to compete with the Pebble. Samsung has announced they have had 100 people working on it for awhile. Apple is working, on it too. This is classic. There is an earlier innovator bringing creative and fun new product to market. The big businesses see and opportunity now that the smart phone market is moving toward saturation. There should be lots of competition and invention that will benefit the consumer with fun and cool new products and features. This is going to be a fun ride.
Day 569 of 1000
It is tough to get a job these days. I feel sorry for kids in University who need a summer internship or a job when they graduate. Christian plans to go to grad school and has already had an internship so it does not affect him so much. Kelly, on the other hand, wants an internship this summer, so she went to two job fairs at NCSU to get leads. She got six interviews. She has received two job offers so far, but turned down one of them because it was not a good match. She is one of two finalists for a third position and has not heard from a fourth. In this market, that is a pretty amazing record. I think the reason she received so many offers when others did not is because she studies Statistics. It seems like there are a lot more jobs available to engineers, but there are also a lot more people chasing those jobs. For each job that requires a statistician, there are way fewer people with the skills to do the work.
The other thing is that NCSU uniquely trains their Statistics majors in the use of commonly used industry tools. For example, Kelly has a class that teaches her how to perform statistical programming. The programming environment they use is SAS which is expensive enough that individual students cannot afford to it. The reason it is available to NCSU is that SAS started at NCSU and still has a close affiliation with the school. At they end of the class, she should have learned everything necessary to get her first SAS certification. The class even offers them the opportunity to take the certification test at a discount rate. The students use SAS and R, normal industry tools, to do their homework in other classes, too. The expectation is that the students will be able to walk into a new job and contribute the first day.
An ancillary benefit to the SAS training is the ability to talk about the use of these tools effectively in an interview. I think this was huge in her last interview with one of the research labs at Johns Hopkins. Kelly could explain in detail how she would accomplish specific tasks such as data cleaning and analysis.
I thought I would put up a brief update on the license plate reading project. The first thing we have to do is gather a bunch of images of the backs of cars in the right setting. I have made further progress on the application to do that. Our plan is to send out a camera and a netbook computer with some mounting hardware to my cousin in Oregon how is starting a new drive-through business. We will set up an ftp site in our office to gather images for a development and test data set. The business in Oregon is not yet open and we will probably not be ready to send anything out there for a couple of months anyway. Still, we have a good start and I am capturing images from a webcam. The next step will be to use an industrial machine vision camera rather than a webcam so it can handle life in the wild.
I am doing most of my programming on a Windows laptop, but also have my Xubuntu netbook which will be the delivery platform. I have a microcontroller for digital I/O hooked up and talking to the windows laptop. Tomorrow, I am going to get that going on the Xubuntu netbook if I have enough time.
Day 294 of 1000
I talked about a new project on which I am about to embark. There will be a part of this project that is not so technical, but more business/touchy-feely/people oriented, but we have to start with this. The touch-feely part will not start for several to many months. Still, we have to do the technical part before we can get to the people oriented part.
The first part of the project that belongs to me is the reading of license plates with an embedded Linux computer. I have a BeagleBoard XM that will work just fine. It has four USB ports to hook up cameras and works great with eLinux.
I have hooked up a keyboard, mouse, and monitor to the BeagleBoard for development.
BeagleBoard XM development setup
After everything is developed, none of that stuff will be attached. The only things that will be attached are two cameras, one for license plate images and one for snapshots. More about those snapshots in post that will not appear for several months. Right now we are concentrating on getting the system to read license plates. Here are the cameras we will use to do the development. I am not sure we will use them for the final product, but this is how we are going to start.
Imaging Souce cameras to hook to the BeagleBoard XM
The system I develop will report the license plates numbers to a second computer. I will use a EeePC netbook as the computer server that receives the license plate numbers and images from a snapshot after they are read. Both of these computers will run the Xubuntu operating system. In real life, the EeePC will not be the server with whom the BeagleBoard normally talks, but I need something to emulate the process while I develop the license plate reading capabilities. I am going to try to use Xubuntu on the BeagleBoard for this project. I will have more to say about that later.
EeePC to recieve license plate numbers and images
Day 112 of 1000
This week is finals week at Wake Technical Community College. Everyone in the house except me studied for finals. I worked on a project for my new job which involved mostly study about a new product. I am going to be glad for three weeks of non-study activities starting next week. The one fun thing that happened this weekend was Christian’s Macroeconomics project. He had to put together a brief video of some macroeconomic principle. The first pass was not so good, so he decided he would try to learn how to do animation and use that to smooth over the rough spots. This is what he produced: