Preston L. Bannister { random memes }

2006.08.27

Worth repeating – what Al Gore really said about the Internet

Filed under: Politics, Web — Preston @ 9:16 am

Doing my 2¢ to kill a meme…

Urban Legends Reference Pages: Internet of Lies
Claim: Vice-President Al Gore claimed that he “invented” the Internet.

Status: False.

Origins: Despite the derisive references that continue even today, Al Gore did not claim he “invented” the Internet, nor did he say anything that could reasonably be interpreted that way. The “Al Gore said he ‘invented’ the Internet” put-downs were misleading, out-of-context distortions of something he said during an interview with Wolf Blitzer on CNN’s “Late Edition” program on 9 March 1999.

As it turns out, it is reasonably accurate to say Al Gore was a strong supporter in Congress of the early Internet, and thus helped create the Internet we have today. On this topic, Vint Cerf has got to know as much or more than pretty much anyone else.

Vint Cerf responded to MSNBC
Vint Cerf responded to MSNBC

From http://www.msnbc.com:80/news/249325.asp (which has apparently subsequently timed out). See also “Revisionist Internet History.” —jsq

Vint Cerf responded to MSNBC’s questions about the Net’s origins with this e-mail:

VP Gore was the first or surely among the first of the members of Congress to become a strong supporter of advanced networking while he served as Senator. As far back as 1986, he was holding hearings on this subject (supercomputing, fiber networks…) and asking about their promise and what could be done to realize them. Bob Kahn, with whom I worked to develop the Internet design in 1973, participated in several hearings held by then-Senator Gore and I recall that Bob introduced the term “information infrastructure” in one hearing in 1986. It was clear that as a Senator and now as Vice President, Gore has made it a point to be as well-informed as possible on technology and issues that surround it.

As Senator, VP Gore was highly supportive of the research community’s efforts to explore new networking capabilities and to extend access to supercomputers by way of NSFNET and its successors, the High Performance Computing and Communication program (which included the National Research and Education Network initiative), and as Vice President, he has been very responsive to recommendations made, for example, by the President’s Information Technology Advisory Committee that endorsed additional research funding for next generation fundamental research in software and related topics. If you look at the last 30-35 years of network development, you’ll find many people who have made major contributions without which the Internet would not be the vibrant, growing and exciting thing it is today. The creation of a new information infrastructure requires the willing efforts of thousands if not millions of participants and we’ve seen leadership from many quarters, all of it needed, to move the Internet towards increased availability and utility around the world.

While it is not accurate to say that VP Gore invented Internet, he has played a powerful role in policy terms that has supported its continued growth and application, for which we should be thankful.

We’re fortunate to have senior level members of Congress and the Administration who embrace new technology and have the vision to see how it can be put to work for national and global benefit.

Of course, there were lots of folks around at the same time, who did not have a clue about the importance of the Internet. If you were one of those political blockheads, you would want to do anything to deflect attention away from your cluelessness. Better make fun of the guy who did have a clue.

(In fact there still at least a few in Congress without a clue.)

2006.08.21

“Subtext” and alternate representations of program structure

Filed under: Software — Preston @ 10:13 pm

Alarming Development » Blog Archive » Alice in Subtext-land
“Let’s face it: syntax is a simple and intuitive way to represent structure. But a fundamental principle of Subtext is to avoid syntactically encoding programs so that their semantics are explicit and immediate. It should be possible to use syntactic techniques as a visualization in the UI instead of as a representation of the source.”

Like a lot of other software folk, I find the attempts at “Visual Programming” intriguing … but not always compelling. It sure seems like there should be a better representation for programs that would accelerate the development process … but no one has yet come up with anything useful.

Jonathan Edwards is taking another run at this problem. I wish him luck. Parts of the offered demo are compelling … and other parts less so.

The example data based execution, live/dead code highlighting, and presentation of intermediate values is all rather interesting. I can’t help but feel the difference between program text and the in-memory form is over-stated, or at least mis-stated. On current machines translation from text to in-memory form (and back) takes a very small fraction of a second – not a significant chunk of time in the development process (unless repeated far more often than truly necessary).

At one point in the demo, as an aside, Jonathan says he might actually write more test cases, given the illustrated dynamic evaluation against example data. It was meant as a joke, but perhaps this is a clue. The graphic representation of low-level program structure might not be (usually) compelling, but the ability to evaluate against example data – and minutely inspect the evaluation – might be very useful indeed.

Eh. This is more of a brain-dump than a hard-edged outline. I see both graphic and textual forms as alternate representations of the same underlying program structure. I do not see either form as exclusively superior. Reading program source to puzzle out the inputs (values read) and outputs (values changed) is tedious and error-prone. Flipping the representation to a form that makes the inputs (and where used) and outputs (and where changed) could be a big boost. Maybe the graphic form is more useful at a larger granularity (for composition and presentation of structure), the text form the compact detailed view, and the minute graphic form for the rare occasion when a detailed view of an example computation is needed.

2006.08.17

Mobile phone advertising offered as journalism in Wired News?

Filed under: General — Preston @ 6:58 pm

Ran across a puff-piece in Wired News covering new cell phones. Gosh, they really sound wonderful.
Wired News: Mobile Phones Worth Gabbing About

Why are the published cell phone reviews so uncritical – and essentially untrustworthy?

Every cell phone I have owned up to and including my current Motorola Razr is a design disaster. I had higher hopes for the Razr – a (then) brand-new design from a company with a long history as a manufacturer of mobile phones. Instead I got arguably the worst-designed phone so far of all those I have owned. This not-so-wonderful phone offers:

  • A battery that dies unpredictably and cannot be counted on to last an entire day (when almost unused).
  • A screen unreadable in daylight.
  • Buttons too small for an adult male’s fingers.
  • A camera billed as 1 megapixel that in quality is only passable at 640×480.
  • Obscure icons that have to be deciphered with the phone’s manual.
  • A truly painful user interface when doing anything with photos.
  • Buttons on the outside edge so that you will trigger at least one when picking up the phone, with no obvious way of telling which button was pressed, or how your phone was affected.
  • A USB port for charging and data transfer – which would have been very cool except that it complains if connected to any other than a Motorola “approved” charger, and is completely unrecognized by your computer without additional (somewhat overpriced) software.

I could go on – and have with prior phones.

We really very badly need someone doing good critical reviews of cell phones.

Patriotic Girl Reporter

Filed under: Humor, Images, Politics — Preston @ 6:01 pm


Orwells reporter lady on Flickr – Photo Sharing!

Judge Halts NSA Snooping (maybe)

Filed under: Politics — Preston @ 6:00 pm

Wired News: Judge Halts NSA Snooping
A federal judge ruled Thursday that the government’s warrantless wiretapping program is unconstitutional and ordered an immediate halt to it.

Think they will really shut this down? Want to bet?

Expect at the very least they (NSA and the Administration) will drag their feet as long as possible. The next act will be to report the program shut down, and continue operation under a different name.

The government argued that the program is well within the president’s authority, but said proving that would require revealing state secrets.

Trust us, we’re from the government.”

2006.08.08

Why bother?

Filed under: Software — Preston @ 8:47 am

High-priority media apps

For most people, most of the time, a faster computer won’t make much of a difference. There’s nothing CPU-intensive about reading and writing email, surfing the web, or using most other applications. The notable exception to the rule, of course, is audio and video processing. Nowadays I often find myself staring impatiently at progress meters in Audacity, Audition, Camtasia Studio, and iMovie while I filter and compress large media files. No matter how fast your computer, in these situations you need it faster.

To hurry things up, I boost the priorities of these apps. If a process is already running you can do that with Task Manager on Windows, or the renice command on OS X. But since I nearly always want to give these media apps as many cycles as I can, I’d rather just bump their priorities at launch. You can do that with scripts containing [...]

Given that on an otherwise-idle machine very little CPU is going to anything else, boosting the process priority is very unlikely to make a human-perceptible difference. In other words, unless you want video games running in background (bad idea), boosting the process priority is pretty much a waste of time.

In fact, if writing a similar application, I would likely drop priority of the thread doing the heavy processing. Why? Because if the machine is otherwise idle, altering priority makes little or no difference in processing time. On the other hand, if the user wants to do something else (in foreground), my application should not interfere. Put differently – the customer is always right. Anything the user wants to do in foreground (at normal priority) should take precedence over another application performing heavy processing in background.

I am somewhat concerned that Jon’s example will prompt less thoughtful application designers to make exactly the wrong design decision, and run compute-heavy threads at elevated priority.

The best advice Jon could offer to his friends to minimize processing time is to shut down any unneeded applications, and simply leave the machine alone.

2006.08.02

Compiling PCRE on Win32 using MSVC6

Filed under: Software — Preston @ 12:16 pm

There are lots of different ways offered to compile the PCRE library on Win32. I needed something that could drop cleanly into an existing Win32/MSVC workspace. The attached files are the result.

As a rule I find the most effective way to organize an MSVC6 workspace is to have all projects as top-level subdirectories within the workspace directory. Intermediate files go into an “o” subdirectory in each project, and output files go into a top-level “bin” within the workspace. What this gets me is the simplest possible project files (i.e. things “just work” with the minimal amount of fiddling), and projects that “just work” when copied into another workspace. Once you set the project dependencies in the workspace, the linker finds libraries w/o additional configuration. With all outputs in the same place, there is no need for any extra configuration to get the debugger to work.

In this case the workspace to build PCRE 6.7 looks like:

pcre\\pcre.dsw  ...MSVC workspace file for PCRE
pcre\\bin\\  ...directory for output files not specific to debug or release builds
pcre\\bin\\debug\\  ...directory for output files for debug builds
pcre\\bin\\release\\  ...directory for output files for release builds
pcre\\config_pcre\\config_pcre.dsp  ...MSVC project to generate config.h and pcre_chartables.c for PCRE
pcre\\dll_pcre\\pcre.dsp  ...MSVC project to build pcre.dll
pcre\\dll_pcre\\o\\debug\\  ...directory for debug build intermediate files
pcre\\dll_pcre\\o\\release\\  ...directory for release build intermediate files
pcre\\lib_pcre\\lib_pcre.dsp  ...MSVC project to build lib_pcre.lib (a static library)
pcre\\lib_pcre\\o\\debug\\  ...directory for debug build intermediate files
pcre\\lib_pcre\\o\\release\\  ...directory for release build intermediate files
pcre\\lib_pcreposix\\lib_pcreposix.dsp  ...MSVC project to build lib_pcreposix.lib (a static library)
pcre\\lib_pcreposix\\o\\debug\\  ...directory for debug build intermediate files
pcre\\lib_pcreposix\\o\\release\\  ...directory for release build intermediate files
pcre\\pcre-6.7\\  ...directory for stock PCRE 6.7 source distribution
pcre\\pcretest\\pcretest.dsp  ...MSVC project to build pcretest.exe (a test program)
pcre\\pcretest\\o\\debug\\  ...directory for debug build intermediate files
pcre\\pcretest\\o\\release\\  ...directory for release build intermediate files

Nothing really complicated here. The config_pcre project uses edlin (no I am not kidding) to generate config.h. Both config.h and pcre_chartables.c as generated files are placed in pcre/bin/. The static libraries get PCRE_STATIC defined via a compiler option. You might want to change the code generation for the static libraries to multi-threaded if that is what you application needs. Just copy and paste the projects you need into your workspace, as needed.

I tried adding a project to run the tests … but got a moderate number of (harmless?) failures I was not sure how to interpret.

(Yes, I know that MSVC6 is somewhat old. I do have a company-provided license for the latest Visual Studio. Frankly would rather spend time learning how to better use Eclipse.)