Dear DDJ,
Lauren Hightower wrote an excellent article ("Automating HTML Conversion," DDJ, April 1996) on HTML conversion and presented an interesting and useful tool. Unfortunately, she perpetuated some myths about HTML.
Myth #1. HTML tags are "not designed to be used in a WYSIWYG environment." Sure, no more than a car is designed to be driven on a railroad track: It's the wrong paradigm. Like countless other authors, I use HTML in a WYSIWYG environment all day: It works perfectly, both with tags on display and with them hidden.
Myth #2. HTML is "nonsense." This criticism is leveled at most new inventions at some stage. Most people actually seem to find it extremely easy to understand and use, possibly because it is so simple (it also helps to explain at an early stage that is not some form of remote-control DTP). Unfortunately, a large amount of the information previously published about HTML (and still available) ranges from poorly researched to wildly inaccurate.
Myth #3. HTML is "not user friendly." It's actually some software which is not user friendly. Because HTML uses ASCII and mnemonic names, it is, in fact, substantially more user friendly than the proprietary cryptic codes and binary file formats used by other business applications. Using any type of file with the wrong software will give suboptimal results.
Myth #4. There are no filters for business software. Check out Exoterica's Omnimark.
Myth #5. Centering is done with the <CENTER> element. This ludicrous and unnecessary device has long since been replaced by the CENTER attribute (<P ALIGN="CENTER">), which gives you much better control over formatting.
Disposing of these myths would go a long way toward making it easier for people to start making HTML work for them, rather than have them struggle against nonexistent problems. When it is so easy to get it right, it has always puzzled me that so many people take such pleasure in carefully doing it wrong.
Peter Flynn
Cork, Ireland
pflynn@curia.ucc.ie
Dear DDJ,
A reader has pointed out to me the following correction to the Invoke16Func() function in the module parm32in.c, which I presented in the article "Calling 16-bit DLLs from Windows 95" (DDJ, April 1996). The case for DTC_I4 should be replaced with the code in Example 1.
Steve Sipe
Palmyra, Virginia
sesipe@esinet.net
Dear DDJ,
Firstly, I'd like to thank you for your article "Inside SoftRAM 95," by Mark Russinovich, Bryce Cogswell, and Andrew Schulman (DDJ, August 1996). Still, the article would have been more useful if other products had been similarly critically investigated.
MagnaRam 2 is produced by Quarterdeck, a company with significantly more credibility than Syncronys, so it is expected that it will at least do something (indeed, your DoubleScan results table indicates that this is the case). An NSTL report on memory managers (http://www.connectix.com/connect/nstl_report.html) does not support this, however. As the authors pointed out, the compression needs to provide benefit greater than the overhead incurred for the net effect to be worthwhile. It is therefore possible that the Quarterdeck product simply does not meet this criterion. The Quarterdeck product also includes less-than 1 MB and System Resource manager functionality that is not mentioned in the NSTL report (I find these functions to be much more significant and useful than compression in a Windows 3.x environment). Indeed, it is unclear whether these functions work as advertised or not (as the bottom line seems to be "there is no net improvement"). The report also claims that compression is ultimately nonfeasible, yet Connectix (the company that commissioned the report) includes compression on its feature list of its RamDoubler product (albeit in third place of three). Some more-concrete information would be quite enlightening.
Lastly, you also mentioned in your article that Windows 95 does not have as much room for improvement in this area, indeed memory compression seems to be the only option available. Connectix has also recently released its Agent 95 software that is claimed to contain "completely new, tighter and faster RAM compression for Windows 95". It would be nice to see how this product compares against the other Windows 95 products, and the standard installation.
I have tested MagnaRAM, MagnaRAM 2, and RamDoubler, and at least empirically find RamDoubler to be the most useful, and do find it quite effective in controlling less-than 1-MB memory and system-resource usage. It is just that there is still little concrete information available on what actually happens.
George Janczuk
Sydney, Australia
jzkgeq@amp.com.au
Dear DDJ,
Yes, the CDA is bad! It's a bad idea, a bad law, and a bad precedent to be set. The Internet is enabling more and more individuals to speak their minds, and with the potential to have audiences of millions, for very little capital investment. Previously, such vocality was available only to organizations who could put millions of dollars into printing and distributing their agendas. This caused a century of media responsible to the bottom line of the entity with the capital investment in the means of production (in this case, of widely distributed ideas and opinions).
The law as it currently stands has removed some of the barriers to competition in the telecommunications industry, but it also threatens the entire industry with vague proscriptions of "decency." Whether it's your software code or your opinion of the yahoos in the neighboring town, or whatever, there should be ZERO threat in America that you could be fined ten times the average worker's annual income for publishing something on your web page that the yahoos in the next town find offensive.
See, Congress used to have an Office for Technology Assessment that would have had a staff and a budget to research the technical implications of the CDA. The Office was dismantled by last year's Republican- controlled Congress, in an effort to save $75,000 a year in the Congressional budget. Well, they may have saved a little bit there, but the hesitations among Internet content providers and service providers to move forward due to the CDA will cost the country billions in lost productivity.
I find it deliciously ironic that the Supreme Court will violate the stupid law whenever they attempt to post information in historical obscenity cases! Certainly, the laws against child abuse and established standards for decency and law enforcement could work online as well if given the chance. The unfortunate truth is that child abuse online is a straw-man argument presented by the powers that be to get more people on the "kill the Internet" debate. Sen. James Exon has been quoted as saying "We've got to put a stop to this Internet thing." They don't want to protect kids, they want to go back to the way things were before the media began to be decentralized.
It's bad. It's bad. Discussing emotions, whether cheery or deranged, or discussing controversial subjects should not be threatened by a free nation's so-called House of Representatives, who seem to believe they know what is best for Americans to think and believe. If you don't like what you find out there online, click on your "home" button and stay there. Enjoy your freedom, America!
Rob Turk
Austin, Texas
http://www.megalith.com
Dear DDJ,
I just read Glen Dill's suggestions on how to make a single break interrupt various nested cycles (see "Letters," DDJ, April 1996). I think this is a great idea, but it forces the programmer to put in extra code. Borrowing on the same ideas expressed by Glenn, I would express the same program using the syntax in Example 2. In this case, both variables i and j will be declared from the first loop, and the break statement in the third line will include the label of the cycle to exit.
This syntax has the advantage that the programmer can move code around, and even include or delete cycles, while preserving the intended meaning in the first place. Nevertheless, I find the resulting program kind of heavily annotated. But maybe my problem is that I expect C/C++ programs to look very slim; I don't know. Maybe others with a stronger languages/ compilers knowledge can be better judges of these ideas.
Adolfo Di Mare
adimare@ucr.ac.cr
Dear DDJ,
I was reading DDJ volume 1 number 8 (yes, that's right, September 1976) and found an article "How Secure Is Computer Data?" and found it rather remarkable how many of the arguments made in the article are still heard now, 20 years later.
Considering the growing interest in cryptography, would you please consider reprinting the article this year, perhaps with a sidebar by Whitfield and Diffie?
Fredrik Nyman
fnyman@nova.umuc.edu
DDJ responds: Good idea Fredrik. We'll blow off the dust of that article, and take a look at it.
case DTC_I4:
alVal[nValIndex++] = (LONG)
va_arg(marker,LONG);
// Only point one reference to
the array
if(!bLongPtrSet)
{
alpvRef[nRefIndex++] = alVal; ///
this was mistakenly adbVal
bLongPtrSet = TRUE;
}
break;
for [int i=1; int j=0;] [:my_mark] (i=0; i<n; i++) {
for [:other_mark] (j=1; j<m; j++) {
// ...
break my_mark; // breaks loops nested up to 'my_mark'
}
}