Today's Niakwa News
In this Issue:
NPL As Your Future Development Language
by Alan Green, Director of R&D
I believe that Niakwa earns its future revenue by its present development.
In other words, just because NPL is your development language now, doesn't mean that it necessarily will be in the future unless we earn that privilege from you. We intend to continue doing that.
Almost two years ago I wrote an Open Letter to our customers. In it I promised that we would help you in the critical areas of screen management, data access and logic engine enhancements. Today I can give you this report about our efforts to fulfill those commitments:
Vinny 2. Visual NPL Release 2 builds on the first release of Vinny, which helped NPL developers quickly add a Windows-based user interface to their NPL programs. The new version now allows routines in either NPL or Visual Basic to call routines in the other environment, permitting true event-driven programming from NPL! This is a very strong release. Status: near the end of beta test.
Instant Vinny. Many of you have highly developed text mode applications for which a conversion to Windows might be difficult. That's the idea behind Instant Vinny, another one of those stellar ideas proposed by one of our customers (in this case Craig Freeman). The Instant Vinny idea is to give you an easy-way to "Vinny-ize" your app, painlessly translating text screens into VB forms and controls. We're evaluating Craig's prototype code now. Status: under investigation.
Graphical Editor/Debugger. We fully realize how much you have wanted this enhancement to NPL but we had to wait for Vinny 2 to do it the way we wanted. So thanks for your patience. You're going to love the new look for NPL. Status: in development.
Open NDM. Imagine your application executing on a Windows PC while accessing data in C-ISAM files on a UNIX server, with TCP/IP as the transport protocol. This idea combines a Windows look and feel with the data management power of a UNIX back-end. Status: under investigation.
Niakwa SQL Manager. Our NDM product allows record/field access to popular data managers like C-ISAM and Btrieve. But much of the world's data is stored in SQL-accessible databases such as Oracle. To bridge that gap, we're looking into developing a product similar to NDM, but transaction-oriented. Status: under investigation.
NPL 4.22 for RS/6000, UNIX. This is our long-awaited release of NPL Release IV for the RS/6000 and Intel UNIX platforms complete with our latest Universal Upgrade feature. Status: Intel UNIX in beta; RS/6000 scheduled for beta test.
32-Bit NPL for Windows. NPL variables longer than 64K are difficult under 16-bit Windows. With the success of Windows 95 and Windows NT, a 32-bit version of NPL for Windows is mandatory. Status: in development.
Object-oriented Application Generator. We are actively collaborating with one of our customers who is developing a highly sophisticated object-oriented appgen based entirely on NPL IV. The potential of this tool for rapid application development (major systems generated in less than three months) is awesome. Status: in development.
Net-Enabled NPL. The greatest opportunity for application software in years lies in becoming Net-enabled in some fashion, whether it's asynchronously conducting transactions or exchanging data-ready programs across dissimilar networks. We are actively exploring a number of promising avenues to bring this technology to NPL. Status: under investigation.
Top Secret Stuff. And we are pursuing some other interesting projects which we know will appeal to you but we can't tell you about them quite yet. All I can report at this time is that the future looks very exciting! Status: under investigation.
HOW YOU CAN HELP
We thought about sending a survey to solicit your input on our direction, but decided to be a little less formal. Instead, I'm asking you to e-mail me (firstname.lastname@example.org) with your comments about our present and future development efforts. Please tell me:
What is your reaction to the direction for NPL that I've just outlined?
What else should we be doing?
Thanks in advance for your comments.
Table of Contents
A Tale of Two Developers
by Cyndee Philyaw, Int'l Sales & Mktg Manager
As a long time Niakwa sales person, I feel it is important that I share the following story with you. It is a true story which I have seen repeated several times over recent years. This is the tale of two NPL developers, both leaders in their respective marketplaces, both high volume purchasers installing hundreds of users annually, both with long-time legacy code originally written in Basic-2. Both reached a point, about two or three years ago, where their software was "showing its age" and decided it was high time to make some major improvements to their respective applications. Here is where the real story begins, and where the developers part. Each chose very different strategies for accomplishing their goals.
Developer One decided to enhance their existing NPL code. They used:
- NPL Release IV to add structure,
- Visual NPL (Vinny) to provide a true Windows user interface, and
- Niakwa Data Manager (NDM) to store data in an industry-standard database.
Developer Two decided to rewrite their code in C (it could have been Sybase, or Progress, or...).
Now we skip to the present to take another look at Developers One and Two.
Developer One is doing great. They now have a glitzy Windows version to attract new customers and keep their long-time users satisfied. They are able to provide open data from their applications to a wide variety of third party products. They have maintained a leadership position in their marketplace by continuing to address the most important needs of their customers, and all the while they have preserved their years of investment in their existing code which they know inside-out and which continues to perform reliably.
Developer Two is not doing so well; in fact they are on the verge of bankruptcy. After two or more years of dedicated development in the "new" language, the product is still not completed. There are some "alpha" versions released, but they are bug-ridden and have many problems yet to be solved. In addition, the new programs operate much slower than the equivalent NPL versions due to the huge overhead of code. Over the past two years, the revenue stream is running dry since the focus of the company was on new development, rather than continued enhancement and sales of their core product. They are no longer a market leader. They soon will no longer be a company. They cannot sell the new product, and they cannot sell the old product.
What went wrong?
First of all, the development in the "new" language took much longer than expected, and presented a new set of challenging technical problems which had not, and probably could not, have been anticipated. Second, all the while that the "new" language was being focused on, the old legacy code was being neglected and market share was being lost. Now they can't rely on sales of the "new" program or attract users with the old neglected program. They have lost the battle and the war.
What will happen?
Developer One continues to advance in their respective market. They are able to put pressure on Niakwa to make new enhancements as dictated by their marketplace. And they are able to provide a rewarding place for their employees to keep working.
Employees from Developer Two will regroup or be absorbed by large end-users of the software who know their current software works well, and want to see their current programs enhanced. Now they can hire programmers who know the code, and like it. And they know there is a large base of other installed users who will be grateful to purchase enhancements to their product which all adds up to a revenue opportunity for the end-users! They can add enhancements fairly quickly to sell upgrades to the large installed base while they prepare for more significant enhancement for their own use, as well as to attract new sales in the future.
As I mentioned, this is a true story. We have enjoyed watching Developer One's success and unfortunately, have learned of Developer Two's official bankruptcy just last month.
If you are one of the many NPL Developer One success stories, Congratulations! If you recognize yourself as a Developer Two heading for potential disaster, or if you are involved in a rewrite that may not be going as well as you would like, remember - it's not too late to change your mind and use the many tools which are available to you in NPL. Others have used them and are continuing to incorporate them with very successful results, and you can too. We can help you get your code where it needs to be in much less time than a full rewrite, and without risking a decade of investment in the code which has helped your company to succeed. We want to help you avoid the pitfalls of becoming a Developer Two.
Table of Contents
Overcoming the Windows Objection
by Jason Dederich, NPL Sales Manager
"Give them two choices, both of which include you."
The prospect says "it has to run in Windows," and he doesn't mean a text based program using our Windows RunTime. What do you do?
Many people, when faced with this situation, try to educate the customer on the benefits of text based interfaces versus Windows based interfaces. For example, you might argue that raw data entry operators may be more efficient using a text based interface, or that a text based interface is overall less expensive.
However if you can only provide a text based interface, your opinion may not be respected by the customer, but rather they may assume that you only have such an opinion because you have no other choice.
Here comes Vinny to the rescue! True, you may not have implemented Vinny to achieve a Windows interface yet. However it is a proven solution that others have implemented, and one that comes with demo programs that show proof of concept.
Thus you can honestly say nothing stops you from implementing a Windows solution, and explain that the reasons you haven't yet are the same reasons why text based solutions are better.
You have then done two things. First, you lend credibility to yourself as an expert and to this particular opinion. Second, you have allowed the customer to choose a Windows or text based solution and still choose you.
What happens if they choose a Windows solution, knowing full well it is slower, more expensive, etc., and they ask you to implement it? You charge them more to cover your Vinny development, develop the product in phases (to show progress while not hampering your schedule), and you end up with both text based and Windows based products!
Table of Contents
Vinny: Grecian Formula For Your NPL Code
by Tim VeArd, President of VCR, Inc.
Long time Basic-2 developer and NPL supporter Tim VeArd did us the service of evaluating our Vinny 2 Beta version, and here are some excerpts from his letter covering his experience.
".... it just made good sense to preserve our 20 year investment and link new modules to our core NPL product."
" .... we eliminated every single KEYIN, INPUT, LINPUT, and PRINT verb in 282 programs. Everything that involved the keyboard, mouse or painting to the screen was reduced down to 10 subroutines and moved into a NPL-4 MODULE ("DOSGUI"). We ended up with a faster product that was easier to maintain."
"Customers upgraded to our new version because they appreciated the improved appearance, performance and new features. So, just preparing for Vinny2 was well worth the effort."
"Our chief water-walker wrote a Visual BASIC program he called LISTEN that gave us direct access to the Windows API. LISTEN and our new NPL MODULE gave us a 'central control center' that all programs used to handle input or output, so it became a snap to add new features."
"When we finished our own intra office e-mail system written in Visual BASIC, it took only 5 minutes to connect it to all 452 screens in AIMS."
"In less than 2 days, we converted over 94% (or 425) of the screens in our 282 programs to become true Windows displays."
"I can't say enough good about the Vinny2 manual. It's the best manual that Niakwa has ever produced. It starts with an extremely well organized overview of Visual BASIC and describes exactly what you really need to know about VB."
"It's everything Niakwa promised it would be .... and more. I've been using Vinny2 for weeks now and haven't lost my original enthusiasm. The manual answers every question I've had and I have yet to stumble across any real problems."
"However, a few words of warning. Converting your software to Windows is more than just making screens look prettier. I hate to throw 'paradigm shift' at you (my family only lets me use the 'P word' 3 times a day), but you'll quickly discover that many techniques all of us have used for years don't have a corresponding Windows paradigm. Some of our screens once converted to Windows looked out of place. It's not a Vinny2 issue. Regardless of how good your new screens will look, a lot of your underlying code will still be text based and sequentially driven. You won't end up with a true Windows product just because you converted your screens using Vinny. You'll need to do some restructuring to take advantage of the new environment. Customers that we showed our Vinny-ized versions confirmed we had made a huge leap forward, but still had a ways to go yet. So even though we converted our screens to Vinny2 within hours, our hopes of having an instant Windows product faded quickly. However, thanks to Vinny2, it won't take years to get there. We know what needs to be done and are now well down that path."
"Another tip. When you try Vinny2, don't focus on learning VB. Don't let it become a wall that may prevent you from getting to the other side. You'll need to learn Visual BASIC at some point, but don't get bogged down trying to learn more than you really need to get started. Get your screens running under Vinny first. Keep in mind that you are already a darn good BASIC programmer, so picking up VB will be easy. Instead, focus on assimilating Windows as a concept to develop a sensitivity about what prospects now expect. Hiring a young VB programmer part time may help give a you a quicker start. We've had a lot of luck 'trying out' a steady stream of Visual BASIC and C++ programmers for about $6.00 an hour by participating in our local college's Computer Science Department's Co-op Education Program. As we stumble across 'gems in the rough,' we offer them full time positions."
"Finally, immediately find a catalog that lists some of the thousands of third-party tools (VBXs and OCXs) that you can buy for peanuts (and not pay a royalty to distribute). You can add things like graphic analysis, form filling, imaging, Internet access, scheduling, e-mail and countless other functions for a few hundred bucks (that's the same as "free" in our environment). It will make you instantly modern and buy you the time you need to restructure your application and core screens to become a true Windows product."
Our thanks to Tim for taking the time to compose such a thorough review which offers lots of helpful information for any developer planning to implement Vinny. Tim VeArd's full article is available from Niakwa upon request.
Visual NPL (Vinny) Version 2.0 is nearing the end of its Beta Test period. A Marketing Bulletin will follow soon detailing availability, new and upgrade pricing. Final Release is scheduled for first quarter of this year. Orders can be placed in advance.
Table of Contents
Rev 4.22 Universal Upgrade Testimonial
Actual Beta Report received from Harry Munninghoff of SCIA Group nv, Belgium
I want to report to you on some of the testing I did on the 4.22 beta.
I must say that the new upgrade procedure is a great improvement over the old one. The documentation is much clearer and complete.
I performed the upgrade procedure several times, making a lot of deliberate mistakes. The upgrade procedure spotted them all and gave me meaningful error messages.
The only thing I did not test was performing the upgrade under low memory conditions, but I suppose this will be handled correctly also.
To be short: I did not find any flaws or strange behavior. All on line screens are very clear. I am convinced this new procedure will give us much less pain in the future. I think you guys did a very good job here!
Release 4.22 for MS-DOS and MS-Windows RunTimes and Universal Upgrades is currently in Beta Release. A Marketing Bulletin will follow next month detailing exact availability, new and upgrade pricing. Final Release is scheduled to closely follow the Vinny2 final release.
Table of Contents
Rev 4.22 For Intel Based UNIX/SCO XENIX Now in Beta!
We have already begun shipping of the beta release of Revision 4.22 of NPL for Intel Based UNIX/SCO Xenix operating environments.
Revision 4.22 of NPL provides increased functionality and has been updated to provide Intel UNIX/SCO Xenix supported platforms the same convenient RESET and UPGRADE features present in Niakwa's MS-DOS based NPL platforms.
NPL Revision 4.22 provides you with the following enhancements:
- NEW! Universal upgrades.
- NEW! Field level resets.
- NEW! User level upgrades in the field (LIMITS program).
- NEW! CUT, COPY, PASTE, and UNDO editor enhancements.
- IMPROVED /EXIT and /MAIN procedures.
- IMPROVED remote terminal performance.
If you're interested in serving as a beta site for Revision 4.22 for Intel Unix/SCO Xenix based platforms, please be sure to let us know so we can add your name to the list of testers. If you have already notified us, you should have already received your copy of the Beta Test software for testing. We look forward to receiving your feedback.
Table of Contents
It's SHOWNPL Time!
What is SHOWNPL? It's a small NPL program that displays the license information of any installed Niakwa Gold Key including NPL Revision, Number of Users, Platform, Product Number and most importantly... Serial Number!
Why SHOWNPL? Anytime you would need to know the NPL Gold Key information at your customer's site (ex: to correctly price an upgrade), or if their RunTime diskette is not readily available, SHOWNPL provides an easy way to provide the necessary information to Niakwa.
How do I get my own copy of SHOWNPL? There are many ways! It is a copyable batch file and NPL program which is included on every Revision 4.22 or higher RunTime. The SHOWNPL program can also be downloaded from Niakwa's FTP site or BBS (847-634-6227). Feel free to distribute it to any customers who have a Niakwa Gold Key.
Table of Contents
Product Update: External Calls from 32-Bit NPL
In our last issue we reported on our ongoing development of a 32-bit version of NPL for Windows, and we promised to keep you posted as our work progresses.
If you are planning ahead to make use of this new NPL version and your application uses NPL's external call capability, here are some things you should consider:
External DLL Compiler: It is quite likely that external DLL's (dynamic link libraries) will need to be written using the Microsoft C++ compiler (not Borland's, Symantec's, or any other manufacturer's). Although programmers are used to thinking of DLL's as being language/compiler independent, in the Microsoft Windows 32-bit world that's no longer true. It's possible that, after further research, we might be able to relax this restriction. We will continue to advise you in future newsletters.
Pointer References: In 16-bit Windows, a pointer can reference any memory in any task. But in 32-bit Windows, you can effectively reference only your own task's memory. This becomes important if applications try to share information between tasks without using DDE, by passing pointers as message parameters for example.
Third-Party Libraries: If your applications' externals rely on third-party 16-bit libraries, you should start looking for equivalent code in 32-bit libraries. There are elaborate "thunking" mechanisms for calling 16-bit code from 32-bit code, but in general you should avoid them.
We will continue to keep you advised of anything else you should plan for as you gear up for 32-bit NPL. If you have any questions or comments in the meantime, please direct them to Alan Green (e-mail: email@example.com).
Table of Contents
NPL Rel III for DOS/Windows and Intel Unix To Be Discontinued
In July of 1993, Niakwa began shipping Release IV of NPL. As expected, the demand for Release III has declined since that time. The large majority of Niakwa Distributors have been implementing Release IV and benefiting from its advanced features.
All programs written in Release III should run well in Release IV. In addition, previous barriers to moving to Release IV, such as the requirement for increased memory, have been eliminated by improvements in hardware and operating systems.
Effective July 1, 1997, Niakwa will no longer provide Release III for DOS / Windows and Intel Unix platforms.
Effective July 1, 1997, all new sales for DOS / Windows and Intel Unix platforms will be for the then current revision of Release IV, and all Release III RunTimes that need to be replaced will require an upgrade to the then current revision of Release IV.
All Release III RunTimes sold will continue to be supported for at least two years from the last date of sale. This support will include providing resets for those RunTimes which have the reset capability. If a replacement is required for any reason, an upgrade purchase will be required.
We will be happy to work through any issues that this announcement may raise for you.
Table of Contents
Al Gorithm's Tech Corner - MRCLEAN: The Big Job Cleaner
by Al Gorithm
Let's face it. Back in the early years, your code was a little less structured than it is now. You probably jammed a bunch of statements on a single line without bothering to indent them, used lots of GOTOs, and maybe even left scores of unreferenced line numbers scattered about your programs. I know I did
Today, of course, your code is much neater. You write in a structured way (you do, don't you?), indent, comment and streamline your programs so that not only can you see at a glance what's going on, but so can anyone else who works with your code.
But what to do about all those older programs, especially the legacy stuff written in NPL 3.x and earlier? Wouldn't it be nice if there were an automatic tool that would crunch through all of that code and dress it up for NPL 4.x?
Well, guess what? MRCLEAN from Software Systems Company does those jobs and more, including optional conversion to unary operators (X=X+1 becomes X+=1) and conversion of simple IF THEN DO/ENDDO constructs to structured IF/ENDIFs. Not only that, but the resulting "cleaned" programs are usually smaller and load faster.
Once installed, you may operate MRCLEAN in any of these three ways:
Type 'MRC from a colon-prompt to bring up a user-friendly display, which lets you clean up a single program.
Run program MRSCAN to perform MRCLEAN magic on all of the programs in one diskimage.
Use the MRCLEAN function call to construct a custom program-cleaner.
To see a data sheet and other information about MRCLEAN and to download a free trial version, visit our web site (www.niakwa.com).
As a bonus, users of MRCLEAN receive a copy of MRINC, a highly useful utility that spins through a diskimage adding INCLUDE T statements into selected programs. (MRINC is also included on the free Trial Version.)
Table of Contents
by Kurt Skaronea, General Service Manager
Q. Recently we upgraded our network from Novell 3.12 to Windows NT, our workstations from Windows 3.1 to Windows 95 and our network topology from ArcNet to Ethernet. To our disappointment, we have noticed a performance reduction of 30 percent on the network. Why is NPL so slow in this environment?
A. Your observation is correct. Windows NT servers are typically 20 to 30% slower than NetWare servers. Unfortunately the Microsoft marketing machine does not tell you this.
The fact is that Windows NT is nothing more than a sophisticated NetBIOS server which utilizes an enhanced version of the old MS-DOS SHARE to control file locking on the server. When it comes to disk management, NetWare is simply a superior product. NT is just not as intuitive when it come to handling locked files and retries as NetWare is.
So what good is NT as a server? It serves best as an "application server" in a client/server environment.
Also, if you have I/O intensive batch jobs that would benefit from running directly on the server, this is easily done on the NT server, but is usually not an option on dedicated NetWare servers.
Windows NT eases deployment of new workstations into today's heterogeneous networking environments. It's an excellent product, but it is still in its infancy. Remember that NetWare has been around and fine tuned over the past 15 years.
My only recommendation is to check with your developer and ask if they have set $OPTIONS 39 to HEX(03) in the application. This allows NPL to try and make up some of the performance, but it will not get you back to the same as under Novell. This enhancement was initially added to Revision 4.10 of NPL to help performance in Windows for Workgroup environments, but applies to all NPL environments.
Table of Contents
Internet Updates ...Marketing
Our Library, Demos, & Shareware section of our web site continues to grow! Additions since the last Niakwa News include a limited trial version of MRCLEAN (see Al Gorithm's article for more details) and a reference to the home page of SideFX, the Windows front end for SPEED users. Give them a try (www.niakwa.com)!
We would be delighted to feature your favorite NPL module as shareware on our web site. Today, a large number of resellers are taking advantage of the modular Release IV programming techniques that make it easy to isolate code and re-use it somewhere else. If you have a particularly good piece of code, make sure it is modular (easy to do) and submit it to us (even easier)! Whether you charge for it or not you'll be strengthening the whole community.
Table of Contents
Internet Updates ...Technical Support
Niakwa Technical Support is pleased to report an updated technical support section on Niakwa's home page. The Niakwa Technical Support Center section of the web site has a new look and better feel, along with new tech notes to enable us to better support our customers.
Tech notes 86 and 87 have been added to our Technical Notes section, and the section has been totally reworked using "frames." This enables the user to browse the notes briefly in the left frame, then with a click of a mouse on the tech note number, view the in-depth notes in the right frame. Another section that has been reworked is the Product Revisions section. There are three sections which divide up the various products that we support and produce. They are: NPL RunTime Packages, NPL Development Packages, and Niakwa Data Manager, and all can be quickly referenced for use in orders and in the pricing guide.
If you have additional suggestions, please direct them to e-mail: firstname.lastname@example.org
Table of Contents
NSG VAR Advisory Council News
by Eric R. F. Muench, Genesistems, Inc.
Hello all you Speed/4D Users. I would like to tell you about the Var-Council's Web page http://www.var-net.org. Since this is my part of the Var Council's effort to get more people talking to each other, I thought a brief introduction may be useful.
First, the page is not a NIAKWA page or an NSG page, but, as it says, a page for all vendors and users of the Basic-2C language. The current council members are listed with e-mail links to write to them. We also have a page of links to Language and Product suppliers. Finally, we have a discussion area, that allows members to post questions, comments, or requests for help. These areas are broken down by type of language used, registration or security issues, data base used -Speed or 4D, and also by application or vertical.
Now you may have read this far and not fallen asleep and noticed the "MEMBERS" note above about posting things. Well, any council member can make you a member and members can add other members so it's not a closed site. You don't have to be a member to read articles, but you do have to be a member to write articles. This is because we use a 'HYPER-NEWS system!!!" (Sounds cool huh.....)
Well this system will e-mail you if someone replies to your posting or you can subscribe to a topic and you will get notices when anyone posts to that group. That is why you have to be signed up as a member -so the e-mail will work. This way you don't have to keep logging on to see if anything has been posted. Your questions or replies are automatically added to the web page as you write them. Now the site has been up for about 6 months and only a few people have posted articles and questions. If everyone joined and wrote just one question, we could get this going.
Support companies like NIAKWA and NSG are members, so postings that they can help on are sent to them. Besides, how many of you think that no-one but a tech support person at a vendor can help you? Many VAR council members have over 15 years working with these products and are glad to share a little experience with you so LOG ON, SIGN UP and check it out.
P.S. If you want an account set up, send an e-mail to Eric@Genesistems.com and I'll fix you up!!
Give Your SPEED Apps Some Positive SideFX!
by Donovan Burkhart, AFX
SideFX, the instantaneous SPEED Windowizer, is now released and generally available. The library seamlessly plugs into your existing system without the need for expensive and time consuming programming changes. Once installed, your application immediately acquires a graphical Windows-interface with versatile color selection and full mouse functionality. Additional features include cut, copy, paste, enhanced scan display, user-alterable sort selection criteria, and a full-featured on-screen report preview and browsing function. SideFX combines the broad appeal of the Microsoft family of products with the power of Niakwa's award-winning NPL logic engine.
SideFX is available for download at the AFX web site (www.afx-net.com). This is the full release version of SideFX, with some critical features (most notably printing to hard copy) disabled, thus serving in a demonstration capacity without the need of a license. It allows you to try before you buy. Once convinced (and you will be), you may purchase a license code which unlocks the full SideFX feature set at your site without any additional installation requirements. With SideFX, seeing is believing. We encourage you to visit our web site, get a copy, and try it out. You'll be quite tickled with what you see.
While you're there, you'll find quite a bit of other helpful and valuable information. There are articles to read on all sorts of things, ranging from helpful hints on NPL to the vagaries of specific SP functions. Your contribution to this forum is solicited and encouraged. Our collective knowledge as a community serves to empower each of us individually. Please join in today.
Table of Contents
Todays Niakwa News is published periodically by Niakwa, Incorporated, 1850 W. Winchester Road, Libertyville, Illinois, 60048. Phone (847)816-7400. Fax (847)816-7420. Web http://www.niakwa.com
Comments, questions and suggestions are welcome and can be directed to the Editor, Todays Niakwa News, Niakwa.
Copyright 1996 - 2000 by Niakwa. Printed in the USA. All rights reserved. All product names, company names and/or logos are property of their respective companies.