Thanks, good introduction, definitions and caveats. In applications where one is involved ina company producing a family of or similar in nature to, products, re-use seems obvious. In some cases, as a consultant or contractor, the code can become the property of the client, same is true often in the defense industry - re-use from program to program is generally disallowed. Interesting you are involved in an IP litigation.
coded "knowledge" is IP (Intellectual Property) ... I agree, you don't usually hear about 'knowledge'as a re-usable entity in software ... tho the best programmers usually get to roll the dice again ...
re-use starts with library functions, drivers .. general functions of a particular nature ... boot loaders, debuggers, RTOS's, Drivers ... specific functions to application functions ... also, setup software re-use is important
I am here. C+ is not a new thing for me but I haven't used it in my embedded system. The thing seemly is changing. Hopefully I can got chance to do it in my new project.
Missed the live session. Catching up on the archive. Very nice slides and good intro. Thanks a lot! Looking forward to Friday's session on testing. That is a big problem in my division. Our firmware development cannot start without hardware/ASIC, which itself takes one year to develop. Is everyone else using FPGA or some kind of hardware emulation systems for this? Can we build a software-based platform for firmware development?
@au79: It is possible to have ground rules on how to develop reusable code. I give a variety of techniques this week; some of those can be used as standards for how it is to be done in an organization.
@salmanza: One of the things that software forensics expert witnesses have to investigate is if two codes are similar because it was the same programmer. It is recognized that a person has their own style, conventions, and tricks that will carry over to another company. What you don't want to do is to copy one company's trade secrets for algorithms and steps into another company.
@javawantabe: Your question about where to steer your CS and EE students would be better answered with a phone call. Go to my website, www.garystringham.com, and you'll find my phone number at the top.
@javawantabe: Good question about if it is possible to write code not already patented. It is very difficult for the patent holder to discover infringment by another party because it would likely require examining source code in order to make that determination. A potentially-infringing product would have to have an externally-visible behavior that looks enough like the patented steps in order to show enough evidence of probabiliy before source code could be obtained.
@Brandon: If the bickering over coding style is causing a problem, then someone needs to put a stake in the ground and strongly encourage (force) everyone to follow that one standard. My experience is that most engineers will adapt to the coding style of the code their modifying but there were some things that had to be specified. I will recommend "Embedded C Coding Standard" by Michael Barr available on Amazon and other places. It even discusses where to put the {} braces.
@Don H: The issue of trusting a coder is not just a reuse issue. You have to trust the coders that work on the other modules of your system. But I think what you are getting at is having two people trying to write the same reusable module when both may have different ideas and opinions on what direction to take it. And it is especially complicated with colleagues on another continent. I would suggest that one person be the owner of the code. The other person may make changes, but the one person should look at the changes to approve them or make necessary changes as needed.
Thanks, Gary, for a terrific program. Gary will take questions for a few more minutes. Then we'll see you at 2:00 pm tomorrow for the second in this weeklong series.
Rodan1984, the audio portion of the show is over, but you can hear it as an archive. It becomes archived almost instantly. You can probably access it now.
To all that are left... The quickest way to test your audio before a session starts is to check an archived session. If you have audio there you will have it on the day's session.
@Brandon: Your questions about reusable code across business units is a good one. There would be lots of aspects of it and I wouldn't be able to type a short response here. I'll see if I can touch on it this week. Or, send me an email (see slide 1 for the address.)
Thank you. I'm curious to hear your views on ways that a group might establish some groundrules so that techniques for "code reuse" can become somewhat similar across a development team (or, if you even think such a thing is feasible). Looking forward to the rest of the series!
@Lawson: Firmware for irrigation system! Way cool! My Dad was an irrigation engineering professor and he and I have talked automated irrigation systems. Fun stuff!
thank you for your presentation; in the case you have worked in more than company, you will pretty much use the similar style in writing code, so you will develop new products using the techniques you learned from the past, can this be a problem? Code will be in general different but functino names can be similar (specially when developing common device drivers like SPI, i.e, spiWrite, interrupt handling, ADC read filtering, etc).
Gary, can you comment on the trust in the coder? Using code from another colleague on another continent requires understanding what the code was doing and also what the coder was doing.
For those of you who can't hear because your company is blocking the audio, you can log in later from somewhere else, such as from home, and replay today's lecture.
I am from a small college and trying to intermix CS and EE into the same program. So far it is very successful. I'm faced with a challenge of teaching C+ on AVR hardware. Should be fun.
Any advice you have that you would give to upcomming coding students? etc. direction of focus, hardware to try, areas of growth?
If your product is complicated, there will almost certainly be some patent infringement. This is the reason why many companies (e.g. NVidia) refuse to open-source their code.
It is also difficult when you have several different engineers with different coding styles, and no one can agree on the "right way" to code so that it can be readable, let alone reusable.
"get it out the door now" - very true. it leads us to pad all estimates with time needed for internal items such as refactoring code to be re-usable. if you includ ethat on a quote to management they will say "drop the reuse and re-factoring"..
Gary, can you comment on the trust in the coder? Using code from another colleague on another continent requires understanding what the code was doing and also what the coder was doing.
One of the key benefits of getting to reuse code on custom hardware (ASICs) is for firmware and hardware engineers to work together to avoid arbitrary hardware changes (moving bits in registers, adding new asimilar bits within registers, moving registers for no good reason, etc). Firmware should have some influence with the hardware teams for quick turn-on. (skurdal)
I've had bad experiences with reuse in the past. I've worked on large teams so it's not up to just me to write reusable code. Also schedule pressure often causes people to ignore thoughts of future products and reuse. Many times I have had to reverse engineer code that i've attemped to reuse to resolve bugs, etc. So I am attending this hopeing to see some stragtegies to make this work better on future products.
One of the difficulties we run into is that we have several different project teams working in different industries. You may cover this later, but do you have any recommendations for handling archiving code and identifying reusable code across business teams?
What do I think SW reuse means? Hopefully, a collection of code snipets/functions/modules that I would be able to leverage on future designs, such as parsing multi-purpose I/O.
The streaming audio player will appear on this web page when the show starts at 2pm eastern today. Note however that some companies block live audio streams. If when the show starts you don't hear any audio, try refreshing your browser.
@GStringham: all right got it! yep is nearby plaza del Sol HP offices here in gdl, there are others offices by periferico and 8 de Julio too. Thanks by the info! so I might start by 13.00 GDL local time (mexico centrals time), greetings!
@rodan1984: It looks like you are in the same time zone as US Central Time, so Eastern Time is one hour off from you. Right now it is 1:00 EST so this will start in another hour. Conozco Guadalajara. He estado alli cinco veces por negocios con Hewlett-Packard en, creo que era Loma Bonita, cerca de Plaza del Sol.
I'm excited to be here to to give you this reusable lecture. Feel free to ask questions here and I'll answer them. I won't be writing responses for questions asked during the lecture until after the lecture.
Good Morning from Guadalajara Jalisco, land of tequila and Mariachi. I'm just quit confused about schedules, local time it's 11:34, so then 2.00 PM EST is like half hour more? (12.00 o'clock in mi local time?) Thanks in advance!!
This is a create subject. "topics covered this week on writing reusable code in C" so many people are talking C+ or some other language, but some times i just want plain C code.
Thanks so much for offering this to us.
@SciGuy - "aren't using C as resuability mechanishm. Why Not"" Hey SciGuy, check the discription of the course. It is about C code, not Java, not PHP, not C , etc......
I noticed that you aren't using C+ as a reuseability mechanism. Why not? I have found it a great way to reuse code. Is there anything in this lecture series that is applicable to C code reuse?
We looked at a number of sources to determine this year's greenest cars, from KBB to automotive trade magazines to environmental organizations. These 14 cars emerged as being great at either stretching fuel or reducing carbon footprint.
Researchers at MIT and Sandia National Labs have observed a reaction in lithium-air batteries that could help improve the design of these cells for electric vehicles and other applications.
Healthcare might seem to be an unlikely target application for the Internet of Things technology, but recent developments show small ways that big-data is going to make an impact on patient care moving into the future.
From Dell / Intel® New Paradigms in Design Work Scott Hamilton, vertical market strategist for Dell Precision workstations, 5/2/2013 3
Early in my career, I worked as a draftsman and remember the days of drawing on vellum with numbered pencils and Mylar with plastic lead. This was a fun experience in the sense that I ...
I've been using workstations for more than 10 years and love finding ways to get more performance from my system. With demanding professional applications that require more power each ...
A lasting memory from my first job as an engineer in an auto assembly plant is standing on hard concrete at six in the morning, vending-machine coffee clutched in hand, listening to ...
A quick look into the merger of two powerhouse 3D printing OEMs and the new leader in rapid prototyping solutions, Stratasys. The industrial revolution is now led by 3D printing and engineers are given the opportunity to fully maximize their design capabilities, reduce their time-to-market and functionally test prototypes cheaper, faster and easier. Bruce Bradshaw, Director of Marketing in North America, will explore the large product offering and variety of materials that will help CAD designers articulate their product design with actual, physical prototypes. This broadcast will dive deep into technical information including application specific stories from real world customers and their experiences with 3D printing. 3D Printing is
To save this item to your list of favorite Design News content so you can find it later in your Profile page, click the "Save It" button next to the item.
If you found this interesting or useful, please use the links to the services below to share it with other readers. You will need a free account with each service to share an item via that service.