Speak and Shout

Friday, April 29, 2005

More on Firefox

Since I made my couple of posts on Firefox, I've found some relevant links.

The Firefox Update Conspiracy: Since each "patch" is a full download, are the updates merely a way to boost the overhyped Firefox download count?
E in a Walnut: Secure Distributed Computing : E is a programming language designed with security in mind from the ground up. What would a browser be like if it was written with a language like this?

Sunday, April 24, 2005

Somebody hijacked my wireless!

We came home from church today, and I noticed my DSL modem was blinking furiously. Someone in the neighborhood had gotten on our wireless network and was downloading like crazy.

This was my own fault, really. A couple months I had computer problems and reinstalled Windows XP, but I never set up WEP again, figuring the network wouldn't reach that far anyway. Guess I was wrong!

Hopping mad, I got onto the router configuration page, enabled WEP and killed the intruder's connection. Then Doris had to listen to me grumble for about an hour as I speculated on which neighbor the offender was. Darn neighbors!

Friday, April 22, 2005

Bookmarks for 4/23/05

Borland's JBuilder going open-source -- donated to Eclipse
Sega's OutRun MP3's
Loop patterns -- don't want to lose this link again; good stuff.
Visio-like behavior in DHTML -- a cool prototype
The future of source-code editing -- neat site too.

Thursday, April 21, 2005

Medical items

All posts from Dr. Kevin:
This is the correct way to sneeze
A doc goes cold turkey from drug reps
Several hundred physicians rallied at the Capitol ...

Just a comment on the last two items: when I realize how much our current medical system is centered around avoiding lawsuits or handing out drugs, I personally can't wait for reform.

Wednesday, April 20, 2005

Bookmarks for 4/20/05

MV/C antipattern - what is the wrong and the right way to do Model/View/Controller.
Malware Evolution - find out how virus/worm writers are adjusting their tactics.
Another positive review of Ubuntu
High Line designs at the MoMA - A proposal for NYC to turn an aging railway bed into beautiful gardens.
A Christian blogger in Baltimore - Interesting insights and thoughts. Subscribed.
Christianity Today on Dominus Iesus, Ratzinger's 2000 Statement on the Church and Christian Unity

Browser security

An article today on Zdnet News calls into question the security of the Firefox browser. In light of Firefox's many recent security-related patches, its developers and proponents are beginning to rethink the message that Firefox is more secure than Internet Explorer.

One of the IE advocates linked to an eWeek article called "The Lame Blame of ActiveX". The author argues that 1) ActiveX security problems are just a small part of the overall IE security problems, and 2) Firefox is just as insecure since a user can run XPCOM (the Mozilla equivalent of COM/ActiveX) via a plugin.

I have to agree on both points. Firefox or Mozilla do not have any built-in security that prevent the user from accessing the operating system. It's just that no malicious coders have done it yet.

The more serious issue is that buffer overruns plague both IE and Firefox due to their C/C++ heritage. This allows virus writers to execute malicious code with elevated privileges on a user's system, possibly doing damage to a user's files or infecting their computer. Now while C++ has memory management that is available through its string, vector and auto_ptr classes, most programmers still don't use these features. I really don't know why this is, but I think it's generally because most developers code C++ like C. However, these features have been in the language since the 1996 Standard, so education is apparently not going to solve the problem.

So how do you eliminate these buffer overruns? Primarily it's an issue of automatic memory management. Both C# and Java offer this feature, and to me are the logical choices for building a new, improved browser. There's a couple of major hurdles though. Although Java has made some real strides in speed over the last few years, I still don't think it could handle the performance requirements of rendering complex web pages efficiently. That leaves the open source community out of luck, since there's no other free, efficient equivalent to the Java Virtual Machine. Microsoft has it much better since they are only interested in supporting Windows, and C# does just fine at that. However, you might notice they haven't rewritten any of their major applications in C#. You can speculate at why, but I believe the primary reason is that any C# code can be decompiled very easily. Yes, it's true that there are .NET obfuscators out there that could jumble their source code a lot, but it's a lot easier to figure out (and change) obfuscated C# than pure assembly language. The bottom line is that Microsoft would have to change C# compiler to emit assembly code instead of CLR-compatible IL, but then they've lost their security advantages of running on the CLR. I don't believe we will ever see a major C# application shipped by Microsoft for these reasons -- their intellectual property would be at risk. (What does that say to the other companies that have embraced the .NET platform?)

So what's the solution? What Microsoft should have done instead is add a C++-compatible layer on top of the Win32 API. In my view, this layer would translate between the C++ memory-managed types (like string, vector, auto_ptr and the like) and the Win32 C-compatible API (which works with pointers and low-level memory allocation). As with .NET, to qualify as "managed, safe code", a program would be required to use the managed API only. The Windows OS would automatically shut down any program that violated this contract and accessed the lower-level API.

What are the disadvantages to this approach? Yes, the managed API would be slower. So what? .NET is slower now for the same reason, and no one cares. Yes, you wouldn't be able to port your .NET Windows programs to Linux. Again, so what? No one does that beyond a few geeky folks.

Unfortunately, Microsoft will never do this. The .NET framework would have to be a complete disaster for them to rethink their current approach. We all know .NET isn't a disaster -- like Java, it's just not very good. Bottom line: we will continue to live with buffer overruns and other constant security problems in both IE, Firefox and other browsers until someone decides that a secure browser has to be built from the start, with a secure language & framework.

Tuesday, April 19, 2005

Bookmarks for 4/19/05

JDK 6.0 binaries
The Old Man Who Cried Shark - fun, memorable student film.
The Complete Works of Rob Hubbard - Commodore 64 musical genius.
SnakeJump
Pop vs. Soda.com - No, I'm not strange; I've got all of Ohio on my side.

Sunday, April 17, 2005

Bookmarks for 4/17/05

Levers - See how long this keeps you occupied.
Batman: New Times - an excellent QuickTime movie starring the voice talents of Adam West, Mark Hamill and others.
Computer Science in Decline - pragmatism vs. theory

Saturday, April 16, 2005

Symantec slam

Via ongoing, Tim Bray makes mention of a joke regarding multicore computers: "If it's Windows, one of the cores could be running Norton AntiVirus." Then he found out that PC Magazine reviewed a new multicore computer and actually suggested such a thing.

The real problem here is not antivirus programs. (There are actually good ones.) The problem is that Symantec has just run their Norton product line into the ground. I tried running NAV on both our laptop and desktop here at home, and both machines took a significant performance hit. Looking at Task Manager, it's not hard to see why: there's a host of NAV-related services running in the background. If you turn on the I/O Reads and Writes columns in the Processes tab, it's not uncommon to see the main NAV program has read about 1-2M times from the hard drive just at startup. (This probably means an extra core devoted to NAV wouldn't help anyway -- it's I/O bound, not CPU-bound.)

It really is funny how long Symantec has been able to maintain their dominance with Norton. I guess everyone assumes their computer just has to be slow now, in the name of security.

Firefox "patches"

Since Firefox 1.01, their update notification feature has been turned on. But when I click on the icon to download the patch, I get the entire browser package put into my usual download directory (i.e., my desktop.) The install package then runs, uninstalls the old browser, installs the new version, and then just leaves the install file on my desktop.

I can't believe this is their "patch" feature. What complete crap. I just updated FF 1.03 a few minutes ago, and it's the same old sorry thing. At least my download directory is my desktop where I can see what's happening. I wonder how many people have each 4MB patch on their system and don't even know about it?

Monday, April 11, 2005

C-64 emulation

After looking at Steven's recent article, I downloaded VICE and tried it out on some of my old Commodore favorites. My list of classics are Action Biker, Airborne Ranger, Psi-5 Trading Company, and The Way of the Exploding Fist. For Exploding Fist, I had to search around a little to find a copy that had the karate yells intact.

I liked the fact that VICE worked in Windows, but I still feel they haven't gotten the video & sound synched up correctly. (It's most obvious in Exploding Fist, where the sound of the hit takes place about a half second after you make contact.) For a better gameplay experience, I recommend CCS64 (although running it from the command line is not nearly as enjoyable.)

Wednesday, April 06, 2005

Bookmarks for 4/6/05

VisualWx - a GUI Builder / text editor for Python.
Dabblers and Blowhards - another funny backlash against Paul Graham's writing.
Comic strips - beats reading the daily newspaper.
Practical Common Lisp - the new book from Apress is online.