The Cluetrain Manifesto is all about how computers and the Internet are taking away power from corporate control and returning it to the people - both the customers and individual workers at the companies.
Consider that when my former employer Live Picture announced that it was moving from scenic, rural Scotts Valley, California to Silicon Valley, the first thing I did (three hours after the announcement) was type up a page-long resignation with a detailed discussion of why I thought it was a miserable idea - and email it to each person in the heirarchy up in the company from my project manager to the Chief Executive Officer. I understand our expensive new CEO that was hand-picked by John Sculley was pretty furious about it (she got fired about a year later).
Consider further that I could then use the Altavista advanced search for boolean expressions like employment and programming and 95060 (repeated for each of the Santa Cruz County zip codes) allowed me to write the original form of this page:
whose URL I then emailed around the company to help my coworkers find new local jobs so they wouldn't have to commute over the hill.
Individual action has existed throughout history. What the Internet has done is made it much more effective.
Anyone can speak out, and their speech can be accessed by anyone else almost instantly. Companies can try to carefully control communication between themselves and the market (or their vendors) but individual actions such as the one I took when my employer announced a really annoying policy design can make their efforts futile.
Consider that Microsoft is working hard to win over the court of public opinion to prevent its breakup.
How effective is that actually, today? How much more effective would that have been 15 years ago when Microsoft could have controlled the industry media and folks like us couldn't have spoken out effectively.
I feel that the digital revolution has lived up to its expectations in my case because I have chosen to take control of my life.
There's a discussion of what happened to the four day work week below with the consensus that it never came about because of corporatism.
As long as people just stay in their jobs and do what the boss expects of you, the boss can keep turning up the speed on the machine and you have to keep up.
Not all of you are in the position to do what I do, but you could do something appropriate to yourself.
I became a consultant
It is still the case that I work long hours, but usually this is because I choose to. When I take time off is almost always under my control. I work at home, and I could work in the nude if I wanted to (I find office dress in the home office makes me more productive though).
Note that this is different from telecommuting. I used to telecommute too, but it really didn't serve my needs. It invited the corporate master into my home.
Laptops are suffiently powerful that I can use a laptop as my primary development machine for commercial programming on a variety of operating systems. Read about my laptop here. This allows me to travel or live anywhere and have my development system at-hand.
With good phone service and a high-speed internet connection and online shopping I can operate my business from St. John's Newfoundland and live in a much nicer place than Silicon Valley.
The most important factor in all of this is to make the conscious choice to take advantage of the opportunities afforded by high-tech yourself. If you don't make the choice I'm sure Time-Warner or Microsoft will be happy to make your decisions for you.
Many geeks are shy people who are easily taken advantage of by those with more social skills - such as managers at high-tech companies, salemen and the like. The first step in taking control of your life will come when you can say "no" to your boss.
I learned to say no to a difficult boss and my life at the company got better. I stopped working all nighters. And not too long after that I learned to stop feeling loyalty to a company that didn't care about me and went looking for a new job. Between one friday and the following monday my pay doubled.
Read The Cluetrain Manifesto for more information on how the Internet is restoring personal power to the individual and taking it away from the corporation.
Tilting at Windmills for a Better Tomorrow
Application shouldn't bring down whole network
on
Mattel Spyware
·
· Score: 2
While it might be reasonable for a poorly written or QA'ed program to crash, what is inexcusable is for the whole operating system to crash because of the behavior of a user application.
And in this case, it wasn't just an instance of the OS that crashed, it was the whole ship's network - note my mention that the ship had to be towed back to port as a result of user error at a keyboard.
Now imagine this happened during live battle.
read www.softwareconspiracy.com
on
Mattel Spyware
·
· Score: 2
In a reply to my comment on the Learning Company earlier in this discussion, someone refers to The Software Conspiracy which quotes Bill Gates:
There are no significant bugs in our released software that any significant number of users want fixed... The reason we come up with new versions is not to fix bugs. It's absolutely not. It's the stupidest reason to buy a new version I ever heard... And so, in no sense, is stability a reason to move to a new version. It's never a reason.
If so, Billminder consumes four megabytes of physical memory constantly (if that's what the mem column in the process list means). Or is it virtual memory?
That's an awful lot for a checkbook program to consume on a laptop with 128MB.
Consider that there are lots of Windows boxes out there with only 32 MB of RAM I think that's excessive.
And I don't want Billminder - I never asked for it.
Why You Need to Read the Risks Forum
on
Mattel Spyware
·
· Score: 5
I keep posting this around Slashdot.
If you're a computer user, you need to read The Forum on Risks to the Public in Computer and Related Systems, available on the web at http://catless.ncl.ac.uk/Risks/ on on the Usenet news as comp.risks
The Risks forum is part of the ACM Committee on Computers and Public Policy.
You should make a special effort to read Risks if you:
Program computers
Make policy decisions involving computers (managers, government etc.)
Depend on computers for your life or safety (do you fly on airplanes?)
Operate computers in situations where they affect life or safety
You will see computers in a different light after reading Risks for a while, and maybe it will affect the decisions you make regarding them and the way you write and test your code. Consider this article I posted:
The Navy got rid of its more robust warship operating systems and replaced them with Windows NT. As a result of this, when a sailor typed a "0" in a data entry field, the whole shipboard network went down and the proud Yorktown had to be towed back into port.
Security concerns, viruses and the like are discussed extensively in Risks.
Do you use Microsoft Word on Mac or Windows? Do you use it to type confidential documents? Consider this post from a fellow who received a contract from an attorney in Word format:
I recently received a legal document as part of a personal negotiation that I am doing. The document was e-mailed to me in MSWord format. As I was showing it to my lawyer (who happens to be my wife), we decided to put our thoughts inline using the track changes feature of word. After selecting Tools, and Track Changes, we clicked on "Highlight changes in document" and voila, suddenly a whole bunch of red appeared on the screen. We looked at it closely and realized that everything in red represented changes in the document that my counterpart's lawyer had written.
We got a good look at the previous version of the contract, as well as a bunch of comments and justifications that the lawyer wrote to his client. It was an eye opening experience. It appears that instead of selecting "Accept all changes" before sending it to me, the other party to the contract simply turned off the highlighting to the track changes feature.
This is obviously a case of an unsophisticated person misusing a feature. However, it is very dangerous. Lawyers send word documents around all the time, and many of them do not really understand all the features that they use, nor should they have to. I imagine that I was not the first person to see some behind the scenes conversation in an important word document, that I was never intended to see.
Do you have any loved ones in the hospital with a life-threatening medical condition?
On 26 Feb 1998, WFAA TV (Channel 8) in Dallas turned on their new digital HDTV signal. As a result, 12 heart monitors stopped working in a Baylor University Medical Center heart surgery recovery unit; they happened to be on the same frequency. The monitors were made in the mid-1980s, and were slated for replacement. [But the patients weren't?] In the interim, WFAA has stopped transmitting -- because there are no commercial receivers yet anyway. [Source: * Dallas Morning News*, 5 Mar 1998. PGN Abstracting]
Peter G. Neumann, moderator of the Risks forum, wrote a book called Computer Related Risks which draws on the material in the forum and discusses it in more depth.
It has ISBN 020155805X and you can purchase it online from:
If you teach a course in programming in any school (even high school), I suggest you put the book on the recommended reading list. If you teach a course on embedded or fault-tolerant computing, I urge you to include it in the required reading.
Mike
Tilting at Windmills for a Better Tomorrow
I got hacked on my laptop
on
Mattel Spyware
·
· Score: 2
When I got a cable modem I noticed that network performance under windows was often very poor and I'd have a lot of blinking lights on my modem when I left my laptop idle.
I installed some firewall software (eSafe Desktop Security or something like that - search for "firewall" on Tucows) and reinstalled service pack 6 for NT.
After the firewall installation the mysterious blinking lights went away. Something's still not quite right with my NT installation. I can't reinstall the whole system because of my 18 GB hard drive.
This is one reason I've finally become a regular linux user - it started because I could get good performance browsing the web via my cable modem, and it stayed because I can log in as a regular user with no special priveliges, but then "su" when I want to do an administrative task.
One thing I did on NT also was take away administrator privileges for my own user, and log in as administrator when I want to install something, but it's a real pain because I can't look at the calendar - don't have privileges - and Quicken needs to reinitialize its networking preferences every time I go online.
When my friend who got the same kind of laptop got a cable modem, I kept telling him to get a firewall, and he thought this was ridiculous, even with the distributed DOS attacks using hacked machines and stuff, and I sent him lots of URLs about people discovering hacker daemons on their home PC's when they got windows firewalls.
This guy is a very experienced computer programmer. What are we to do about, say, the president of a mid-size corporation who keeps company financial records on the same PC that his 6-year-old uses to play shareware games?
Why does Quicken run all the time?
on
Mattel Spyware
·
· Score: 2
I don't remember the name of the daemon, as I'm in linux now, but I know that Quicken installs a daemon that uses about 4 megabytes of memory that runs all the time when windows is operating.
I feel the need to use Quicken to access online banking so I haven't got away from this. The one thing I do is kill it in the task manager when I remember.
I'll be very happy when there is an open-source online banking solution I can run from linux. Yeah, right - get the banks to cooperate with the Penguin!
Also when I was beta testing Windows 2000 I noticed that often I couldn't get my programs to compile because realplay.exe was consuming 99% of the CPU time - when I wasn't connected to the net or listening to music.
Mattel and the Learning Company are screwed up
on
Mattel Spyware
·
· Score: 2
I have a good friend who worked at the Learning Company for quite some time, and he told me no end of horror stories about an utter disregard for engineering quality, lack of concern for usability, maintainability of code or anything that sounded remotely like common sense.
They'd basically just ship all their applications when they could get them to more or less run and not when they were running reliability. The mere fact that a child's educational program would crash six ways to sunday from normal usage would not stop them from shipping a product.
I could easily see some junior programmer there telling a manager that they could easily write a program to scoop god knows what off a child's hard drive and send it on in for data-mining driven marketing purposes, and this being implemented as a standard feature without being run through corporate lawyers or even a moments thought as to whether this would ultimately get them sued - or arrested.
They have similarly enlighted personnel policies, which is why my friend was happy to tell me these stories on a regular basis.
I'm pretty amazed that the Learning Company lasted as long as it did. I know it had no end of financial trouble - is it still even in business?
Mattel clearly didn't do an adequate due diligence when they bought the company. Or at least they didn't involve any engineers in the process.
Considering what my friend told me, not just occassionally but almost every time I spoke to him during his period of employment there, I'm suprised the engineers could even get their code to compile and link, let alone ship it in a shrink-wrapped box.
There was another Michael D Crawford in my junior high and high schools.
I was in the "Mentally Gifted Minors" program while this other fellow was in a remedial program.
But our grades came out with our classes intermixed. He got half my classes on his report card, I got half of his.
The only thing that enabled me to ever straighten this out is that I memorized my student ID number. He never bothered.
It happens that our school district computer (A DEC-System 20 - I graduated in 1982) provided only one character for the middle name, so even though his middle name was Dwayne and mine is David, the computer was unable to reliably distinguish us.
Starting around our sophomore year, he started skipping class regularly, and the school tried to get aggressive about his truancy by sending threatening computer-generated form letters to my parents.
My father had to take an hour off work about once a week for an entire school year to drop into the principals office and straighten it out. After a few weeks of this the office staff recognized him as a regular and would fix it right away, but with no way to distinguish us in the school records there was no way to stop those letters from coming to us.
I guess I just happened to fall first in the database.
On another note, I was working at a company where there was another Michael Crawford with a different middle initial who was an MIS programmer.
I got a call one day from a manager at another company who said he was very sorry, but I didn't get the Lotus Notes job - but I hadn't applied! I explained the mixup, but of course he'd let it leak that this long-time employee was out hunting for other work.
And finally I have the same name as a famous british actor, the Michael Crawford who starred in Phantom of the Opera. I regularly get adoring fan mail from both pubescent and middle-aged women. One woman asked me to sing at her daughter's wedding, and when I explained the mixup, she asked me to sing anyway.
Note that I was born Michael David Crawford - the actor changed his name for the stage.
Mike
Tilting at Windmills for a Better Tomorrow
Boot off a fully encrypted hard disk
on
Linux BIOS
·
· Score: 4
If you wrote a real BIOS, that didn't need to be PC compatible, besides getting rid of ridiculous limits on disk partitions and requirements to have the kernel in a particular place relative to the start of the disk (1024 cylinder limit), you could boot off a fully-encrypted hard disk.
Imagine having even the boot block and swap partition encrypted.
When I was a frosh at CalTech back in '82 I heard a lecture by an applied physicist who was doing early adaptive optics research for the very beginning of the Star Wars project.
His device broke a single laser beam into 20 sub-beams and recombined them into a spot about an inch across that could move anywhere across an 8 inch circle. It was steered using piezoelectric mirrors (each on separate mounts - the whole thing looked like a frankenstein project compared to current technology). The focusing was entirely done by shifting the phase of each sub-beam.
There was feedback in the system that used varying frequencies to slightly modulate each beam and then combine the phases to get the best focus on a target. The whole thing could work automatically to track a small white target on the end of a stick.
The researcher inadvertently discovered that if he walked through the beam it would lock onto and track his shiny belt buckle. I saw this demonstrated in an 8mm movie he shot. Considering that this was being developed for tracking nuclear missiles he said he found this a little disturbing.
Also of note is his early use of color animated computer graphics. He printed out beam fluxes across the region during various simulations as integer digits on line printer paper. Then he assigned his young son to color in all the digits a certain way, so 0 went uncolored while 9 was yellow. Then he used a cable-release on his 8mm camera to animate the calculated simulations of beam tracking.
They've come a long ways, I see. His crude device probably cost $100,000 or more and I expect took about a year to build.
If you opened a drag-and-drop aware text editor on a Macintosh running the first few systems available for the first PCI Power Macintoshes (7500, 8500, and 9500) - I think these were 7.5.3 and 7.5.4 and maybe 7.5.2, then typed "secret about box", selected the text with your mouse and dragged it to the desktop, the creation of the clipping file with that text would start an easter egg.
It was a really nicely done one with a photo of the courtyard inside the Infinite Loop engineering complex at Apple, and superimposed on the photo (and apparently in the center of the courtyard) was a reflective flagpole with a flag of an iguana with an electrical power plug on his tail.
The flag waved, responding to the blowing wind, and reflections of the courtyard and the waving flag appeared on the flagpole. You could change the direction of the wind with your mouse and by moving your mouse just right you could cause the wind to blow the flag off the flagpole so it fell to the ground (not visible below the frame).
It was extremely well done and apparently was custom coded just for that purpose. It didn't use any of the 3D api's in the mac, the 3d was handrolled. I don't think it used 3d hardware accelleration in the graphics card, I don't think those models had 3d hardware accelleration.
Also there would be scrolling credits at the bottom of the screen, in a couple of the systems you'd see my name (Michael D. Crawford) listed among them. I was very proud to be there.
I worked like a slave to get the 2Market home shopping CD for the Mac out in time for the Christmas shopping season a few years ago. The start of the project was delayed but the ship date could not be.
Right at the end of the project a coworker put in an easter egg where if you clicked on his name in the about box, you'd see a full-screen photo of him holding his newborn child. This was in the first 2Market CD in November of '94
He showed me this and I asked to add myself. When you clicked on my name, you'd get a recording of me saying "Hi Mom", then giving instructions to search for something in the product search.
We'd already screwed with the search keywords so that searching for certain terms resulted in product matches that were somehow funny. I think if you searched for "Mike" you got a spy camera. I think nearly everyone on the project has a product associated with their name that they got to choose themselves.
The easter egg wasn't discovered until after a quarter million CD's were pressed. Even if they could afford to re-press them, there wasn't time.
The result of this was that I was assigned the special job of ensuring that this never happened again at Medior.
Medior was later acquired by America Online and renamed AOL Productions. I think it's since been shut down.
The fellow who assigned me the special task of ensuring no more easter eggs were programmed into our products was Barry Shuler, who is now some bigwig at AOL and is pictured here in a CNet article.
2Market happened just as the web was just beginning, before there was a significant amount of e-commerce. I think we did a really good job, and I was impressed with how well everyone pulled together to ship the product. I think the user experience of shopping from the CD was much better than shopping via a 28 or even a 56 kbaud modem, which is still what most people have.
But it didn't last long, I think competition from the Internet put it out of business. I think some kind of CD/Internet hybrid, where bulk content like sound files and multimedia movies of product demos on a CD, interacting with a web site to get live content and updated prices would be pretty cool.
Peter G. Neumann, the moderator of the Risks Forum wrote a book called Computer Related Risks which draws on the material from the forum and discusses it in more depth.
It has ISBN 020155805X and you can purchase it online from:
If you teach a course in programming at any school, I suggest you put this on your "recommended reading" list, and if you teach a course in embedded or fault-tolerant computing, I suggest you include it in the required reading.
While I recommend it to everyone who uses computers for anything of any significant importance, it is especially important to those who:
Design computer systems, such as software and hardware engineers, and
Make policy decisions involving computers, such as managers and government officials
This post to comp.risks ought to put the fear of God into most computer users and suggest that us programmers need to work hard to take responsibility for our work:
I recently received a legal document as part of a personal negotiation that I am doing. The document was e-mailed to me in MSWord format. As I was showing it to my lawyer (who happens to be my wife), we decided to put our thoughts inline using the track changes feature of word. After selecting Tools, and Track Changes, we clicked on "Highlight changes in document" and voila, suddenly a whole bunch of red appeared on the screen. We looked at it closely and realized that everything in red represented changes in the document that my counterpart's lawyer had written. We got a good look at the previous version of the contract, as well as a bunch of comments and justifications that the lawyer wrote to his client. It was an eye opening experience.
It appears that instead of selecting "Accept all changes" before sending it to me, the other party to the contract simply turned off the highlighting to the track changes feature.
This is obviously a case of an unsophisticated person misusing a feature. However, it is very dangerous. Lawyers send word documents around all the time, and many of them do not really understand all the features that they use, nor should they have to. I imagine that I was not the first person to see some behind the scenes conversation in an important word document, that I was never intended to see.
I bring it up in this discussion of cell phones and aircraft because electromagnetic interference in safety-critical systems is a frequent topic on Risks. For example,
On 26 Feb 1998, WFAA TV (Channel 8) in Dallas turned on their new digital HDTV signal. As a result, 12 heart monitors stopped working in a Baylor University Medical Center heart surgery recovery unit; they happened to be on the same frequency. The monitors were made in the mid-1980s, and were slated for replacement. [But the patients weren't?] In the interim, WFAA has stopped transmitting -- because there are no commercial receivers yet anyway. [Source: * Dallas Morning News*, 5 Mar 1998. PGN Abstracting]
If you're upset about the sorry state of software these days, there is in fact a lot that can be done about it. Get started by reading Risks.
If you're a computer user, and most especially if you're a computer programmer, then you have good reason to read The Forum On Risks to the Public in Computers and Related Systems, available as comp.risks on the Usenet News, and on the web at http://catless.ncl.ac.uk/Risks/
Cell phone interference to airliners has been discussed there extensively.
For those of you who work where they're considering replacing a real OS installation with Windows NT, consider this post I contributed:
Note that the machine came with Windows 98 installed and doesn't support NT; NT was the most difficult installation and still doesn't work very well.
On the other hand I've been testing the 2.4.0-test1-ac* kernels every few days and generally they work pretty well. The only serious problem I had was that my Adaptec 1480 SlimSCSI card didn't work; that wasn't a problem with the laptop itself but some problem in the Linux PCI drivers as well as a temporary bug in the SCSI driver. Recent 2.4.0 kernel patches work great and I can burn CD's off my laptop through SCSI.
If you're considering buying a laptop, I encourage you to read my page on my laptop, as I think the information I give could improve the wisdom of your choice.
Generally I've been happy with how it works, but I'm afraid I'm not so happy with the mechanical design of the thing; there's a ribbon cable in the DVD drive that gets tangled when I close it if it's been opened too far, and the most serious problem right now is that the power adapter doesn't always make good contact so the battery drains even when it's plugged in. Sometimes if I leave the house with Linux running it will power down while I'm away. Note that I've only had the unit for 7 months; if they could have the same electrical design but built for more rugged use I think I'd be happy.
Java is not platform independent, rather it is a platform in itself, which happens to run on many machines.
Just try taking advantage of platform-specific features from a Java program, or making a Java program work in a way that is expected by the users of native programs on each machine you might try to run it on.
I am leading the beta test of a C++ cross-platform framework that was written by my friend Andy Green.
It supports XWindows/Posix, MacOS, Windows, and BeOS. When it is released, it is planned to be released as open source under the revised BSD license (or something equivalent; Andy is still evaluating licenses).
Among the features offered by this framework are:
It is multithreaded; not many cross-platform frameworks are
platform-independent threads and mutexes, condition variables, reader/writer locks, etc.
thread-safe reference-counted smart pointers
GUI with a uniquely flexible layout system
Platform-appropriate widget renderers, so an application looks Mac-native when running on the MacOS and Windows-native when running on Windows. There is even a runtime-switchable renderer for demonstration and testing.
Platform-indedependent TCP networking
Database file format appropriate for large data or small (integers or multimedia movies). The databases are single files so they can be used as end-user documents.
Wide support for debugging (assertions in the reference counted smart pointers, deadlock detection, debugging heap manager). If you leave debugging turned on most of the time during development, you'll have very few pointer bugs when you deliver builds to testers.
platform-independent offscreen graphics buffers so you can draw into memory and blit to the screen in a portable way.
There's lots more. It's not more than a few weeks away from its 1.0 release so if you're considering a cross-platform API for a new project please consider this too.
While it is about to be released as a new open source product, it is a mature platform, having been in commercial use for about five years.
A particular client-server program built on this typically has thousands of client programs running a GUI and accessing the server via the portable networking where it's using the portable database library, with the server running either on Mac or Windows depending on the user's preference, so I think it's pretty robust.
While you can break out of the cross-platform code with conditional compilation, there is only occasional need to. It is fully possible to develop an application with two machines on your desk and move back and forth between them every few minutes to compile and test on different platforms.
On thing I need to say though, before you get too excited, is that the XWindows implementation needs a bit of work, at this point mainly to implement a window menu bar in XWindows, as this is apparently not provided by the default XWindows API as it is on other platforms. Also it does not yet have support for international text, although this is planned (very likely after the 1.0 release).
I don't commend my code hardly at all, believing that if it needs comments, I haven't done my job well enough of making the code clear.
Note that this is a distinctly different attitude than figuring you must be incompetent if you need comments in the code you're maintaining.
Part of the reason I got to be this way is that a boss pointed out that comments are often not maintained as well as the code, and over time can actually come to be misleading. For that reason, it is best to code clearly (ie, use meaningful variable names and such).
While this does tend to reduce the opportunity to put jokes in the source, I heard the following appeared in some pascal source written by an Apple employee:
When I was asked to make this address I wondered what I had to say to you boys who are graduating. And I think I have one thing to say. If you wish to be useful, never take a course that will silence you. Refuse to learn anything that implies collusion, whether it be a clerkship or a curacy, a legal fee or a post in a university. Retain the power of speech no matter what other power you may lose. If you can take this course, and in so far as you take it, you will bless this country. In so far as you depart from this course, you become dampers, mutes, and hooded executioners.
As a practical matter, a mere failure to speak out upon occassions where no statement is asked or expect from you, and when the utterance of an uncalled for suspicion is odious, will often hold you to a concurrence in palpable iniquity. Try to raise a voice that will be heard from here to Albany and watch what comes forward to shut off the sound. It is not a German sergeant, nor a Russian officer of the precinct. It is a note from a friend of your father's, offering you a place at his office. This is your warning from the secret police. Why, if you any of young gentleman have a mind to make himself heard a mile off, you must make a bonfire of your reputations, and a close enemy of most men who would wish you well.
I have seen ten years of young men who rush out into the world with their messages, and when they find how deaf the world is, they think they must save their strength and wait. They believe that after a while they will be able to get up on some little eminence from which they can make themselves heard. "In a few years," reasons one of them, "I shall have gained a standing, and then I shall use my powers for good." Next year comes and with it a strange discovery. The man has lost his horizon of thought, his ambition has evaporated; he has nothing to say. I give you this one rule of conduct. Do what you will, but speak out always. Be shunned, be hated, be ridiculed, be scared, be in doubt, but don't be gagged. The time of trial is always. Now is the appointed time.
John J. ChapmanCommencement Address to the Graduating Class of Hobart College, 1900
I found the quote in The Cluetrain Manifesto, which I recommended to the administrators at Beaver County School district to read.
Beaver City has chosen a 21st Centruy Project which centers around the "Electronic Highway" with a goal of becoming an electronic "Smart Communities" as an emphasis. Some of the action steps Beaver City will accomplish in this effort are:
Organizing a "Smart Communities" Committee
Completing a Beaver City Home Page
Continue to develop links to information and resources related to the Beaver City area.
This brings back too many memories of being singled out as a kid. I'm sure many Slashdot readers have vivid memories of what it's like to be different in a school where strict conformance to the social norms is expected.
Here's some email addresses that are pertinent, why don't you drop them a line:
Consider that when my former employer Live Picture announced that it was moving from scenic, rural Scotts Valley, California to Silicon Valley, the first thing I did (three hours after the announcement) was type up a page-long resignation with a detailed discussion of why I thought it was a miserable idea - and email it to each person in the heirarchy up in the company from my project manager to the Chief Executive Officer. I understand our expensive new CEO that was hand-picked by John Sculley was pretty furious about it (she got fired about a year later).
Consider further that I could then use the Altavista advanced search for boolean expressions like employment and programming and 95060 (repeated for each of the Santa Cruz County zip codes) allowed me to write the original form of this page:
The Santa Cruz County Computer Industry Index
whose URL I then emailed around the company to help my coworkers find new local jobs so they wouldn't have to commute over the hill.
Individual action has existed throughout history. What the Internet has done is made it much more effective.
Anyone can speak out, and their speech can be accessed by anyone else almost instantly. Companies can try to carefully control communication between themselves and the market (or their vendors) but individual actions such as the one I took when my employer announced a really annoying policy design can make their efforts futile.
Consider that Microsoft is working hard to win over the court of public opinion to prevent its breakup.
How effective is that actually, today? How much more effective would that have been 15 years ago when Microsoft could have controlled the industry media and folks like us couldn't have spoken out effectively.
There's a discussion of what happened to the four day work week below with the consensus that it never came about because of corporatism.
As long as people just stay in their jobs and do what the boss expects of you, the boss can keep turning up the speed on the machine and you have to keep up.
Not all of you are in the position to do what I do, but you could do something appropriate to yourself.
I became a consultant
It is still the case that I work long hours, but usually this is because I choose to. When I take time off is almost always under my control. I work at home, and I could work in the nude if I wanted to (I find office dress in the home office makes me more productive though).
Note that this is different from telecommuting. I used to telecommute too, but it really didn't serve my needs. It invited the corporate master into my home.
It is also different from being a contract programmer for a body shop. Read about my decision not to work with recruiters or agencies and why they are bad for both employers and employees.
There are a few aspects of the digital revolution that made this all possible:
- I find customers almost entirely through the web. I explain how in Market Yourself - Tips for High Tech Consultants
- Laptops are suffiently powerful that I can use a laptop as my primary development machine for commercial programming on a variety of operating systems. Read about my laptop here. This allows me to travel or live anywhere and have my development system at-hand.
- With good phone service and a high-speed internet connection and online shopping I can operate my business from St. John's Newfoundland and live in a much nicer place than Silicon Valley.
The most important factor in all of this is to make the conscious choice to take advantage of the opportunities afforded by high-tech yourself. If you don't make the choice I'm sure Time-Warner or Microsoft will be happy to make your decisions for you.Many geeks are shy people who are easily taken advantage of by those with more social skills - such as managers at high-tech companies, salemen and the like. The first step in taking control of your life will come when you can say "no" to your boss.
I learned to say no to a difficult boss and my life at the company got better. I stopped working all nighters. And not too long after that I learned to stop feeling loyalty to a company that didn't care about me and went looking for a new job. Between one friday and the following monday my pay doubled.
Read The Cluetrain Manifesto for more information on how the Internet is restoring personal power to the individual and taking it away from the corporation.
Tilting at Windmills for a Better Tomorrow
And in this case, it wasn't just an instance of the OS that crashed, it was the whole ship's network - note my mention that the ship had to be towed back to port as a result of user error at a keyboard.
Now imagine this happened during live battle.
That's an awful lot for a checkbook program to consume on a laptop with 128MB.
Consider that there are lots of Windows boxes out there with only 32 MB of RAM I think that's excessive.
And I don't want Billminder - I never asked for it.
If you're a computer user, you need to read The Forum on Risks to the Public in Computer and Related Systems, available on the web at http://catless.ncl.ac.uk/Risks/ on on the Usenet news as comp.risks
The Risks forum is part of the ACM Committee on Computers and Public Policy.
You should make a special effort to read Risks if you:
- Program computers
- Make policy decisions involving computers (managers, government etc.)
- Depend on computers for your life or safety (do you fly on airplanes?)
- Operate computers in situations where they affect life or safety
You will see computers in a different light after reading Risks for a while, and maybe it will affect the decisions you make regarding them and the way you write and test your code. Consider this article I posted:USS Yorktown dead in water after divide by zero
The Navy got rid of its more robust warship operating systems and replaced them with Windows NT. As a result of this, when a sailor typed a "0" in a data entry field, the whole shipboard network went down and the proud Yorktown had to be towed back into port.
Security concerns, viruses and the like are discussed extensively in Risks.
Do you use Microsoft Word on Mac or Windows? Do you use it to type confidential documents? Consider this post from a fellow who received a contract from an attorney in Word format:
Do you have any loved ones in the hospital with a life-threatening medical condition? Peter G. Neumann, moderator of the Risks forum, wrote a book called Computer Related Risks which draws on the material in the forum and discusses it in more depth.It has ISBN 020155805X and you can purchase it online from:
- http://www.fatbrain.com
- http://www.barnesandnoble.com
- http://www.amazon.com
- http://www.chapters.ca - in Canada
If you teach a course in programming in any school (even high school), I suggest you put the book on the recommended reading list. If you teach a course on embedded or fault-tolerant computing, I urge you to include it in the required reading.Mike
I installed some firewall software (eSafe Desktop Security or something like that - search for "firewall" on Tucows) and reinstalled service pack 6 for NT.
After the firewall installation the mysterious blinking lights went away. Something's still not quite right with my NT installation. I can't reinstall the whole system because of my 18 GB hard drive.
This is one reason I've finally become a regular linux user - it started because I could get good performance browsing the web via my cable modem, and it stayed because I can log in as a regular user with no special priveliges, but then "su" when I want to do an administrative task.
One thing I did on NT also was take away administrator privileges for my own user, and log in as administrator when I want to install something, but it's a real pain because I can't look at the calendar - don't have privileges - and Quicken needs to reinitialize its networking preferences every time I go online.
When my friend who got the same kind of laptop got a cable modem, I kept telling him to get a firewall, and he thought this was ridiculous, even with the distributed DOS attacks using hacked machines and stuff, and I sent him lots of URLs about people discovering hacker daemons on their home PC's when they got windows firewalls.
This guy is a very experienced computer programmer. What are we to do about, say, the president of a mid-size corporation who keeps company financial records on the same PC that his 6-year-old uses to play shareware games?
I feel the need to use Quicken to access online banking so I haven't got away from this. The one thing I do is kill it in the task manager when I remember.
I'll be very happy when there is an open-source online banking solution I can run from linux. Yeah, right - get the banks to cooperate with the Penguin!
Also when I was beta testing Windows 2000 I noticed that often I couldn't get my programs to compile because realplay.exe was consuming 99% of the CPU time - when I wasn't connected to the net or listening to music.
They'd basically just ship all their applications when they could get them to more or less run and not when they were running reliability. The mere fact that a child's educational program would crash six ways to sunday from normal usage would not stop them from shipping a product.
I could easily see some junior programmer there telling a manager that they could easily write a program to scoop god knows what off a child's hard drive and send it on in for data-mining driven marketing purposes, and this being implemented as a standard feature without being run through corporate lawyers or even a moments thought as to whether this would ultimately get them sued - or arrested.
They have similarly enlighted personnel policies, which is why my friend was happy to tell me these stories on a regular basis.
I'm pretty amazed that the Learning Company lasted as long as it did. I know it had no end of financial trouble - is it still even in business?
Mattel clearly didn't do an adequate due diligence when they bought the company. Or at least they didn't involve any engineers in the process.
Considering what my friend told me, not just occassionally but almost every time I spoke to him during his period of employment there, I'm suprised the engineers could even get their code to compile and link, let alone ship it in a shrink-wrapped box.
Words I live by: Make a Bonfire of Your Reputations
Mike
I was in the "Mentally Gifted Minors" program while this other fellow was in a remedial program.
But our grades came out with our classes intermixed. He got half my classes on his report card, I got half of his.
The only thing that enabled me to ever straighten this out is that I memorized my student ID number. He never bothered.
It happens that our school district computer (A DEC-System 20 - I graduated in 1982) provided only one character for the middle name, so even though his middle name was Dwayne and mine is David, the computer was unable to reliably distinguish us.
Starting around our sophomore year, he started skipping class regularly, and the school tried to get aggressive about his truancy by sending threatening computer-generated form letters to my parents.
My father had to take an hour off work about once a week for an entire school year to drop into the principals office and straighten it out. After a few weeks of this the office staff recognized him as a regular and would fix it right away, but with no way to distinguish us in the school records there was no way to stop those letters from coming to us.
I guess I just happened to fall first in the database.
On another note, I was working at a company where there was another Michael Crawford with a different middle initial who was an MIS programmer.
I got a call one day from a manager at another company who said he was very sorry, but I didn't get the Lotus Notes job - but I hadn't applied! I explained the mixup, but of course he'd let it leak that this long-time employee was out hunting for other work.
And finally I have the same name as a famous british actor, the Michael Crawford who starred in Phantom of the Opera. I regularly get adoring fan mail from both pubescent and middle-aged women. One woman asked me to sing at her daughter's wedding, and when I explained the mixup, she asked me to sing anyway.
I send them to check out my own music at http://www.geometricvisions.com
Note that I was born Michael David Crawford - the actor changed his name for the stage.
Mike
Imagine having even the boot block and swap partition encrypted.
Mike
His device broke a single laser beam into 20 sub-beams and recombined them into a spot about an inch across that could move anywhere across an 8 inch circle. It was steered using piezoelectric mirrors (each on separate mounts - the whole thing looked like a frankenstein project compared to current technology). The focusing was entirely done by shifting the phase of each sub-beam.
There was feedback in the system that used varying frequencies to slightly modulate each beam and then combine the phases to get the best focus on a target. The whole thing could work automatically to track a small white target on the end of a stick.
The researcher inadvertently discovered that if he walked through the beam it would lock onto and track his shiny belt buckle. I saw this demonstrated in an 8mm movie he shot. Considering that this was being developed for tracking nuclear missiles he said he found this a little disturbing.
Also of note is his early use of color animated computer graphics. He printed out beam fluxes across the region during various simulations as integer digits on line printer paper. Then he assigned his young son to color in all the digits a certain way, so 0 went uncolored while 9 was yellow. Then he used a cable-release on his 8mm camera to animate the calculated simulations of beam tracking.
They've come a long ways, I see. His crude device probably cost $100,000 or more and I expect took about a year to build.
Mike
It was a really nicely done one with a photo of the courtyard inside the Infinite Loop engineering complex at Apple, and superimposed on the photo (and apparently in the center of the courtyard) was a reflective flagpole with a flag of an iguana with an electrical power plug on his tail.
The flag waved, responding to the blowing wind, and reflections of the courtyard and the waving flag appeared on the flagpole. You could change the direction of the wind with your mouse and by moving your mouse just right you could cause the wind to blow the flag off the flagpole so it fell to the ground (not visible below the frame).
It was extremely well done and apparently was custom coded just for that purpose. It didn't use any of the 3D api's in the mac, the 3d was handrolled. I don't think it used 3d hardware accelleration in the graphics card, I don't think those models had 3d hardware accelleration.
Also there would be scrolling credits at the bottom of the screen, in a couple of the systems you'd see my name (Michael D. Crawford) listed among them. I was very proud to be there.
Mike
Right at the end of the project a coworker put in an easter egg where if you clicked on his name in the about box, you'd see a full-screen photo of him holding his newborn child. This was in the first 2Market CD in November of '94
He showed me this and I asked to add myself. When you clicked on my name, you'd get a recording of me saying "Hi Mom", then giving instructions to search for something in the product search.
We'd already screwed with the search keywords so that searching for certain terms resulted in product matches that were somehow funny. I think if you searched for "Mike" you got a spy camera. I think nearly everyone on the project has a product associated with their name that they got to choose themselves.
The easter egg wasn't discovered until after a quarter million CD's were pressed. Even if they could afford to re-press them, there wasn't time.
The result of this was that I was assigned the special job of ensuring that this never happened again at Medior.
Medior was later acquired by America Online and renamed AOL Productions. I think it's since been shut down.
The fellow who assigned me the special task of ensuring no more easter eggs were programmed into our products was Barry Shuler, who is now some bigwig at AOL and is pictured here in a CNet article.
2Market happened just as the web was just beginning, before there was a significant amount of e-commerce. I think we did a really good job, and I was impressed with how well everyone pulled together to ship the product. I think the user experience of shopping from the CD was much better than shopping via a 28 or even a 56 kbaud modem, which is still what most people have.
But it didn't last long, I think competition from the Internet put it out of business. I think some kind of CD/Internet hybrid, where bulk content like sound files and multimedia movies of product demos on a CD, interacting with a web site to get live content and updated prices would be pretty cool.
Mike
It has ISBN 020155805X and you can purchase it online from:
- http://www.fatbrain.com
- http://www.barnesandnoble.com
- http://www.amazon.com
- http://www.chapters.ca (Canadian bookseller)
If you teach a course in programming at any school, I suggest you put this on your "recommended reading" list, and if you teach a course in embedded or fault-tolerant computing, I suggest you include it in the required reading.Mike
While I recommend it to everyone who uses computers for anything of any significant importance, it is especially important to those who:
- Design computer systems, such as software and hardware engineers, and
- Make policy decisions involving computers, such as managers and government officials
This post to comp.risks ought to put the fear of God into most computer users and suggest that us programmers need to work hard to take responsibility for our work: I bring it up in this discussion of cell phones and aircraft because electromagnetic interference in safety-critical systems is a frequent topic on Risks. For example, If you're upset about the sorry state of software these days, there is in fact a lot that can be done about it. Get started by reading Risks.Mike
Cell phone interference to airliners has been discussed there extensively.
For those of you who work where they're considering replacing a real OS installation with Windows NT, consider this post I contributed:
USS Yorktown dead in water after divide by zero
The Yorktown has to be towed back into port after a sailor entered "0" into a data entry field and it crashed the ship's entire NT network.
Mike
http://www.goingware.com/laptop
Note that the machine came with Windows 98 installed and doesn't support NT; NT was the most difficult installation and still doesn't work very well.
On the other hand I've been testing the 2.4.0-test1-ac* kernels every few days and generally they work pretty well. The only serious problem I had was that my Adaptec 1480 SlimSCSI card didn't work; that wasn't a problem with the laptop itself but some problem in the Linux PCI drivers as well as a temporary bug in the SCSI driver. Recent 2.4.0 kernel patches work great and I can burn CD's off my laptop through SCSI.
If you're considering buying a laptop, I encourage you to read my page on my laptop, as I think the information I give could improve the wisdom of your choice.
Generally I've been happy with how it works, but I'm afraid I'm not so happy with the mechanical design of the thing; there's a ribbon cable in the DVD drive that gets tangled when I close it if it's been opened too far, and the most serious problem right now is that the power adapter doesn't always make good contact so the battery drains even when it's plugged in. Sometimes if I leave the house with Linux running it will power down while I'm away. Note that I've only had the unit for 7 months; if they could have the same electrical design but built for more rugged use I think I'd be happy.
Just try taking advantage of platform-specific features from a Java program, or making a Java program work in a way that is expected by the users of native programs on each machine you might try to run it on.
Bjarne Stroustrup, inventor of C++, has much the same opinion in his statement about Java in his FAQ
.
It supports XWindows/Posix, MacOS, Windows, and BeOS. When it is released, it is planned to be released as open source under the revised BSD license (or something equivalent; Andy is still evaluating licenses).
Among the features offered by this framework are:
- It is multithreaded; not many cross-platform frameworks are
- platform-independent threads and mutexes, condition variables, reader/writer locks, etc.
- thread-safe reference-counted smart pointers
- GUI with a uniquely flexible layout system
- Platform-appropriate widget renderers, so an application looks Mac-native when running on the MacOS and Windows-native when running on Windows. There is even a runtime-switchable renderer for demonstration and testing.
- Platform-indedependent TCP networking
- Database file format appropriate for large data or small (integers or multimedia movies). The databases are single files so they can be used as end-user documents.
- Wide support for debugging (assertions in the reference counted smart pointers, deadlock detection, debugging heap manager). If you leave debugging turned on most of the time during development, you'll have very few pointer bugs when you deliver builds to testers.
- platform-independent offscreen graphics buffers so you can draw into memory and blit to the screen in a portable way.
There's lots more. It's not more than a few weeks away from its 1.0 release so if you're considering a cross-platform API for a new project please consider this too.While it is about to be released as a new open source product, it is a mature platform, having been in commercial use for about five years.
A particular client-server program built on this typically has thousands of client programs running a GUI and accessing the server via the portable networking where it's using the portable database library, with the server running either on Mac or Windows depending on the user's preference, so I think it's pretty robust.
While you can break out of the cross-platform code with conditional compilation, there is only occasional need to. It is fully possible to develop an application with two machines on your desk and move back and forth between them every few minutes to compile and test on different platforms.
On thing I need to say though, before you get too excited, is that the XWindows implementation needs a bit of work, at this point mainly to implement a window menu bar in XWindows, as this is apparently not provided by the default XWindows API as it is on other platforms. Also it does not yet have support for international text, although this is planned (very likely after the 1.0 release).
Note that this is a distinctly different attitude than figuring you must be incompetent if you need comments in the code you're maintaining.
Part of the reason I got to be this way is that a boss pointed out that comments are often not maintained as well as the code, and over time can actually come to be misleading. For that reason, it is best to code clearly (ie, use meaningful variable names and such).
While this does tend to reduce the opportunity to put jokes in the source, I heard the following appeared in some pascal source written by an Apple employee:
procedure GetDown( AndBoogie: OneMoreTime );
Mike
26 South 100 West, P.O. Box 69
Milford, UT
USA
435 387 2711, fax 435 387-2748
nkennedy@milford.state.ut.us
If you'd like to drop them a line, here's their email addresses and here are their fax and phone numbers.
Tell them the hardcopy edition of the cluetrain is well worth buying.
It will be helpful for their 21st Century Project:
- Milford High phone 435-387-2751, Fax 435 387 2494
- EDNET Site Facilitator Cathy Palmer, cathy.palmer@w.beaver.k12.ut.us
- Beaver School District phone 435 438 2291, fax 435 438 5898
- James E. Robinson, Mayor, phone 435 438 2451, fax 435 438 5826
- City Manager Steve Atkin, atkin@inquo.net
The mayor's address is:60 West Center Street
Beaver, UT 84713
USA
I think EDNET is the Utah state education Internet.
Here's some email addresses that are pertinent, why don't you drop them a line:
- Beaver Counter School District Superintendent Henry Jolley, henry.jolley@m.beaver.k12.ut.us
- Assistant Superintendent Donald Willden, donald.willden@m.beaver.k12.ut.us
- Technology Director Tracy Davis, tracy.davis@m.beaver.k12.ut.us
These all came from the Beaver County School District Homepage Mike