Thursday, February 22, 2007

    Chip Hop with MC Plus+

    From their site
    MC Plus+ is a superhuman with an incredible vision far beyond light years ahead of his time. By combining constructs of hip hop with computer science beats he hopes to bridge the gap between present reality and the inner workings of our imagination while resurrecting hip hop in mathematical form. He is credited with formally proving all but one of the fundamental conjectures, which remains unsolved in hyperbolic space. He has also made important decisions with regard to undecidability only to rediscover the genius of his work. His recent attempts at halting the halting problem look promising. Formalizations of the lyrical functions he has defined remain a mystery to all those who study them.
    What? [http://www.mcplusplus.com/downloads/]

    Tuesday, February 20, 2007

    ASM30 files passed through C Preprocessor

    There is a big change in MPLAB IDE 7.52 that directly affects users programming in ASM30 (assembly code for 16-bit devices). If you have C30 installed and select to build with the C30 Toolsuite rather than the ASM30 toolsuite, the project manager will now pass your assembly source file to the pic30-gcc.exe compilation shell. Files ending in a .S (capitalized S) will be passed through the C preprocessor. This means that you can now use C preprocessor directives, such as #define, in .S files.

    The image blow shows a simple example, but I'm sure that there are better uses for this highly requested feature.



    Edit: 1 March 2007
    I created a short video showing a project using ASM30 files with the C30 preprocessor. The video is low rez, I hope you can see what is going on. Remember 1) Use the Microchip C30 Toolsuite, 2) Add the file to your project with the .S (capitalized) extension.


    Video: Preprocessing an ASM30 file with MPLAB IDE 7.52

    Monday, February 19, 2007

    *Unofficial* list of changes in MPLAB IDE 7.52

    I compiled a list of MPLAB IDE 7.52 changes that may be of interest to forum.microchip.com members. Please remember that this list is unofficial and incomplete. Let me know if this is useful to you or not.

    *Unofficial* list of changes in MPLAB IDE 7.52

    Simulator
    • Added Code Coverage feature to most engines.
    REAL ICE
    • Added "Program After Successful Build"
    • Added "Run After Successful Program"
    MPLAB IDE
    • Added folder-history widget to File Open and File Save dialogs
    Editor
    • Added "Include File Open" from context menu. Right click on an include file to open it in the editor.
    • Added optional checking and repair of line terminators on File Save.
    • Added feature to optionally highlight an entire line for the current Program Counter.
    • Added "Close" to the context menu.
    • Reorganized editor property pages
    Project Manager
    • Enhanced Project Wizard to allow reconfiguration of currently active project. Quickly create a new project based on the current project.
    • Enhanced Project Wizard to add files in Auto, User, System, or Copy mode.
    MPLAB C30 Toolsuite
    MPLAB C18/MPASM Toolsuite

    • Added C18 --verbose option checkbox.
    Data Monitor and Control Interface (DMCI)
    • Added hot-tracking feature to slider controls. The Slider controls can now be configured to apply run-time position changes in the following automated sequence steps: [Halt, Reset, Write, Run] or [Halt, Write, Run].
    • Graphs can now be generated from MPLAB REAL ICE real-time data acquisition.
    • Added a new resizeable tiled view.
    • Added project-scope persistence of last-loaded DMCI profile
    Plus... numerous other miscellaneous bug fixes. For Tool-Specific New-Device support, please see the tool's readme file.

    How to Disable Outlook's CTRL+ENTER Send Mail Shortcut

    I recently switched to Outlook 2003 for my email, contacts, and calendar. Unfortunately, since the switch, several of my co-workers have received empty and unfinished messages from me. Why? Outlook has a CTRL+ENTER shortcut key to send a message. I'm not really sure why, but my fingers seem to like to hit CTRL+ENTER for other reasons...

    Luckily Blake Handler has posted instructions on how to disable this shortcut.
    You can disable CTRL-ENTER in Outlook by adding the two following registry keys:

    Key: HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\
    11.0\Outlook\DisabledShortcutKeysCheckBoxes
    String Value: CtrlEnter
    Value Data: 13,8
    Key: HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\
    11.0\Word\DisabledShortcutKeysCheckBoxes
    String Value: CtrlEnter
    Value Data: 13,8


    NOTE: I'm using Office 2003 = 11.0 (XP = 10.0, 2000 = 9.0)

    Read the full step-by-step instructions on Blake Handler's blog.

    Sunday, February 18, 2007

    Cost of reporting a bug too early?

    Most software developers and testers are all too familiar with a chart showing how the cost of fixing a bug increases exponentially over the project cycle. Fixing a problem early (or preventing it in the design phase) is significantly less expensive than polishing it out in the certification test phase. Almost nobody argues against the principle that when it comes to fixing bugs, the earlier the better (for the project and for my health).

    To address this principle, the MPLAB® IDE team has taken a highly iterative approach to software development. They send frequent builds "over the wall" to our test group. As new features come online in these test builds, we perform some early exploratory testing to make sure that each new feature or improvement matches our expectations based on approved requirements and design documents. We often then go back to update our test plans so that they better cover the feature's scope.

    So what's the problem? Maybe the chart showing the cost of a fixing a bug increasing over the project cycle doesn't show the entire picture. With the highly iterative development processes that are becoming increasingly more popular with development teams these days, is there also a hidden cost of reporting a bug too early?

    By sending the test team very frequent test builds, the development team is giving the test team a very early look at a new feature, usually before it is anywhere near being finished. At an early stage, most features are often pretty rough with stubbed functionality and a placeholder GUI. What's a test engineer to do?

    At this early stage, how can a test engineer really know if an issue is a limitation in the current build or a real bug? On one hand, I could go ahead and enter a bug report in the tracking system. When the developer sees the report they could just wait for the implementation to be further along and then just mark the issue as fixed. However, there's an associated cost with that approach. Each and every time someone from either the test team or the development team interacts with a bug report, it costs time. Until the issue/limitation gets "fixed" that bug will show up on reports, in project status reviews, and in issue-prioritization meetings, wasting everyone's time as the issue is read and discussed. Often times, these types of issues linger around long after they are actually addressed by the developer through the natural evolution of the feature. Then, later in the project, the developer can't reproduce the issue on their current code base and asks the test engineer to retest the feature. Again, all of this costs time.

    Alternatively, I could make a personal note to myself to go back to retest the functionality later and continue testing by working around the limitation. In later builds, I then go back through my personal list of "retest" items to make sure that the developer didn't miss anything. If the issue still exists, I could then re-evaluate my decision to enter a bug report or leave the item on the list for retest on an even later build. With this approach there is both an associated complication of keeping my own personal list of issues to retest in parallel to the actual bug tracking system and also a risk that I may end up delaying the bug report until it becomes more difficult and expensive to fix.

    The MPLAB IDE team tries to address these concerns by providing a build status report with each build. Each developer is responsible for providing information on the feature/changes that they have put in the build. These reports are supposed to tell the test team what to test and what is not ready for testing. They also use the reports to make us aware of any limitations in the build. These build reports tend to work out pretty well in practice so long as the developer provides sufficiently detailed information and the test engineer is aware of all of the implications of each limitation.

    In the end, I believe that erring on the side of reporting a bug too early is safer than sitting on it and possibly reporting it too late. Good communication between the development team and the test team results in better and more accurate understanding of the state of the software and therefore more effective testing. What do you think?

    Inventor of the TV remote dies

    The Associated Press is reporting that the co-inventor of the TV remote, Robert Adler, has died.

    From The Mercury News
    Adler, who won an Emmy Award along with fellow engineer Eugene Polley for the device that made the couch potato possible, died Thursday of heart failure at a Boise nursing home at 93, Zenith Electronics Corp. said Friday.