Back in the day (tm) my girlfriend was developing semi-custom business aps on minicomputers. Good programming practice was being followed and there was a text file used to parse error codes to actual human readable messages. The text file could be swapped out at will, and great fun was had by all by writing things like "This error occurred because that great wanker (insert customer buyer name here) insisted we add this f-ed up feature that will never work!". Much hilarity of this nature insued. The day the said wanker came in for the demo, they very carefully backed out the bogus error text file and put in the legit one. They even tested to make sure everything was a go. I'm sure you see where this is going. During the demo, some last minute changes blew up and while they took the guy out to lunch, showed them pictures of the new kids, did whatever they could to keep him busy while they restored to the last known working condition, which, as they were wont to forget in the panicked atmosphere, had the bogus error messages. After the restore, wanker says, "but what would happen if I did this" does something wanker-like with the keyboard and POP! Up comes the "hilarious" message.
They say intelligence is learning from your mistakes and wisdom is learning from others. Since that day I have never, ever put anything in any code that I wouldn't want anyone in the world reading....
Taking a year off is well worth it, but only if you do some non-permanent thing with it. If all you are going to do is start working, it's probably a mistake. Especially if you'll still be sponging off Mom and Dad. But if you want to do something to expand your horizons:
1) Travel - if you've got a little bit of money and some git up an go, then - git up and go. You can also do this out of college, but the key is to wing it as you travel around. It doesn't take a lot of money, if you are creative. My wife traveled Europe for two or three years, picking oranges in Greece, she was a Nanny and a barmaid in London, and a half dozen odds and ends in between. Later in life, she took two years to travel from Fiji, through Australia and New Zealand, and the near east (She stayed a month in a Zen monastery in Indonesia) and finally ended up teaching English-as-a-second language in Japan.
2) Mid-term development work. When I was in the Peace Corps in Ghana, I would stumble across the occasional program for people just out of high school. It was anywhere from 6 weeks to 6 months of in-field experience, where you were actually doing something to help people.
3) Mid-term religious work. Personally, I think most of this is bogus, but then again, I'm not religious. I think those that did it often feel they've got a lot out of it. (But if you're Christian, you might be in for a shock - at least in Ghana, your AVERAGE Christian-On-The-Street knew so much more about scripture than your average missionary it usually left their heads spinning. You certainly will not be bringing jesus to the savages, instead you'll be disussing King David's lineage through the twentieth generation...)
4) Scientific expedition grunt work. I don't know much about these, but I know they exist. If you check out the National Geographic they have ones that require you pay them. There may be ones that pay your room and board.
It seems to me that, from the point of view of the record labels, when most people buy a CD they are paying 15 bucks for the 1 or 2 songs they know and like. The others are just lagniappe. So, again, from the point of view of the labels, they are dropping the current per-puchase revenue from 15 bucks to a single buck.
BEFORE you shout "FLAME ON", Johnny, I'm not saying I think this is a GOOD THING, just that it may be how the record labels view it. It explains why they are so against music downloading.
Re:Developers Are Not Good Judges of Their Own UI'
on
What Makes a Good UI?
·
· Score: 2, Interesting
Iwasn't trying to disagree with you. I was merely pointing out an example of what I considered (and thought you would also) of a positive example of hiding functionality.
Here's a more direct one: In a similiar vein the group responsible for developing the UI for a higher resolution printer was working on a windows driver and the corresponding application. They exposed every single Windows option for font control. I can't remember all of them now but there are many choices that you certainly don't even get in Word. This interface terrified and overwhelmed users (fortunately it was only an alpha). But the developer couldn't see it. 'If they can't understand it, they should take the time to learn it.' For the labels these operators were creating, they simply did not need these functions. We cut out most of the choices (and made the remaining ones much more intuitive). Industrial UI is all about speed, clarity and easing the frustration factor. Line operators have twenty things they are watching and setting up. Learning how to anamorphically resize print is a ridiculous waste of time.
It's not that they would never use it, it's that it would cause only trouble - "My print keeps changing in size - it spreads out'. Well, spreading print can be caused by mechanical problems, product handling problems, and by electrical problems. We would end up with a $125/hour service call (or one we eat under warranty) because someone on a different shift accidently created a format with some weird spread out font. I RAN service. I would bet my last Lorna Doone that this would be responsible for unnecessary service calls much more often than it would actually benefit someone.
Re:Developers Are Not Good Judges of Their Own UI'
on
What Makes a Good UI?
·
· Score: 3, Insightful
You said: A UI that doesn't let you access all the capabilities of a system is a broken UI.
If you add the word "necessary" in there somewhere, I would agree with you. I'll give you a real world example: Print orientation in industrial inkjet printers (these are the kind that write the date on the bottom of coke cans - not anything like a Deskjet). Because these printers are non-contact, you can't predict ahead of time which direction the product will go past the printhead, whether it is upside down, and whether it is printing on the inside of something transparent in order to be read from the outside. There are 3 different parameters that give you all the 8 different combinations, and 7 of the 8 could be used in the real world. The traditional way is to give the user control over all three parameters and let them try to figure it out. The better way is to let them print a test message, then select the way the print acutually printed. The code figures out the settings that correct the orientation. More work for the coder, but much easier for the operator. When this second method was implemented it was considered by many to be an amazing leap in the printer technology, when in fact, the printer hadn't changed at all. Sold a lot of printers though.
The important thing is to understand what the end user wants to do, and present it in a way that makes intuitive sense to them. It is oftentimes more difficult to code, but it is really the only right way to do it.
Re:Developers Are Not Good Judges of Their Own UI'
on
What Makes a Good UI?
·
· Score: 1
You said:...I can customise it in endless ways, but it isn't set up remotely adequately be default. I could spend ages learning how to do this, but an editor is just a means to an end.
Excellent point. Even for those who have the time, energy and understanding to customize everything, it is not necessarily now they WANT to spend their time.
Developers Are Not Good Judges of Their Own UI's
on
What Makes a Good UI?
·
· Score: 4, Insightful
... This is not meant as a slight to developers. Those who are intimately aware of how every detail of the program works cannot shift perspective and see it from the point of view of someone who neither knows nor cares about the inner workings. I've spent 15 years designing systems to be used in a manufacturing environment. Saying that any problems are due to lack of user training is a cop-out, one that will kill follow-on business. Industry has the operators they have and are not going to start hiring special people and paying them more to run my systems. It's just reality.
I'll give what I think are the biggest UI traps:
1) UI's that expose all the capabilities of a system. This is not good UI design, in fact it is lazy UI design. What you need to do is understand how your users are going to do with your system, and present them with as few choices as possible. Example: If you have a screen for looking up Customer records, and further allow it to be customized to show various fields, and further allow it to check or uncheck any field, you can end up with a screen that does not show the Customer ID (because it was accidently turned off). From the developers point of view you are adding functionality. From a user's point of view there is now a way to accidently render the screen useless, or at least annoying.
2. Beware of allowing users to customize (Wow - there goes my Karma...) Customization is fine for stuff you play with, but in a professional environment it is much more important to have consistency. It is important that people can walk away from something for a week or a month, and come back and get to work right away. It is important that telephone support can make assumptions about what the user is seeing. Floating toolbars, menu items that come and go with frequency of use, frames that can be moved from top to bottom, all of these make it difficult both for telephone support and for people who are "backups" i.e. they were trained once and only use the system every so often.
3. Don't be afraid of busy screens (Damn - there goes the rest of my Karma) Professionals get used to the layout and appreciate having all the information right at hand. (This makes number 2 - consistency - especially important). So err on the side of putting as much useful information as will fit. And prune mercilously anything that isn't useful or required. Don't you hate it when you go to a bank or an airline check-in counter and see the attendent typing endlessly, screen flipping, all at the speed of light, but... why exactly do they need all that commotion?
4. Keyboard shortcuts, labeled and encouraged. The mouse is great for a lot of things, but speed is not one of them.
5. Remember your audience. Are they people who sit in front of the screen all day, using your application as their primary function, or are they several times a day users who simply need it to perform a vital function but just want it to work and go away? Even if it is the former, what about their backup's or the third shift people? In any case, present what they need immediately and clearly and leave off the fluff and BS.
6. Most important. Remember that your application is not what the people do. It is a tool that helps (or hinders) them in doing what they do. A tool should not be their primary focus. The task is their primary focus. Whether a carpenter or developer, any time spent fiddling with a tool simply means less time to spend actually doing the task.
Many years ago I was a proponent of nuclear energy. What convinced me to change my position? Simply put, I saw how nuclear power plant officials, government regulators, and industry consultants lied, over and over. When the Ginna nuclear power plant near Rochester NY had a serious accident, I listened to lie after lie from the official plant spokesmen. The story started out as "there is nothing wrong, this is a regularly scheduled test" and modified itself by the hour as the last hour's lie was exposed. I certainly have no reason to believe their final story, as I think it is more likely they just settled on a lie no one could expose.
My sister-in-law lives near the Hannaford nuclear facility and the lies continue to this day. The pattern: Reassuring lie, get caught, slight mea culpa, new lie. At least twice since I've been paying attention some official spokesman has declared that the mistakes of the past are gone and they will deal honestly and forthrightly from now on, and then been caught out in another cover-up within a year or two.
So could nuclear energy help us? Yes. Can we trust the people who control it today? Absolutely not.
All things in life are cyclical. When I was a kid in the 60's and 70's, singles were king. There were a number of bands who had hit singles who had either no album or albums with abysmal sales. Radio stations needed singles as that's what they were set up to play. I have a bunch of singles not generally released, but for use by DJ's to promote an album. Along came the AOR (Album Oriented Rock) stations as the audience matured, and album sales picked up substantially. These stations might not have had more listeners than the singles stations, but they had substantially more young adult (read: high disposable income) listeners. They were profitable, and their standard setup was two cueing turntables set up for LP's. It was a pain to play a 45, so it didn't get done very often. Finally came the CD and the transition was complete.
Now we are coming back to the single. At the same time, I expect we'll start to see groups' entire collections released on a single disk (DVD or other). No amazing prediction here, as boxed sets have been a fairly lucrative sub-market for 10 or 15 years now.
As a piece of complete trivia, those boxed sets of CD's harken back to the original "albums" which were collections of 78's stored in what looked like a photo album, with paper sleeves instead of pages. 78's could only store roughly what a 1950's era 45 could, so a symphony, for example, came in an "album" of as many as 20 78's. The term ended up referring to any collection of music, even if it was on a single disk. But by now, I rarely hear anyone under twenty-five refer to an album, probably because they associate it with vinyl,not music collections...
FWIW, I use my Palm constantly. It is always with me (I am 6' 1" and it fits easily in my pants pocket). In addition to 1500 contacts, my calendar, I have the oddest things tucked away in notes such as what type of bag my vacuum cleaners use, the type of battery in my watch, the connection info for my various ISP's, rest stops along various highways with Burger Kings that have a kids play zone, in other words, all kinds of things I use only once in a great while. I don't remember where they are, I simply search for them. I keep some photos on there when people ask about my kids, I listen to books-on-tape. I keep Scrabble on it for when I'm waiting for something. I always keep a text book on it and read it while I am waiting in line. In a restaurant I'll often play tic-tac-toe on the notepad with my 5 year old to keep him busy, or let him draw pictures. I have my grocerie list in it, arranged in the same order as my supermarket. We make a 3 minute annual video to send to friends and families and I keep a copy on the palm. I use it a half dozen or a dozen times a day. Possibly because it is easy to carry and possibly because I travel so much. (I put in all my travel info - hotel numbers, which terminal the flight is leaving from, confirmation codes, and the phone number of anyone I'm meeting when I arrive. Who wants to carry paper or god-forbid boot up a computer just to give someone a 10 digit number? For that matter, who wants to carry around the dozen hotel club membership cards, or two dozen airline frequent flyer number cards? I just select the number and hand the whole thing to the clerk.
Publicly held businesses are not set up to do the most profitable thing for the COMPANY. They are set up to do the most profitable thing for the EXECUTIVES. This is not meant to be cynical, it is simply reality. Executives make the business decisions and they will make the decision that pays them the largest reward. If there is a long term cost to that, well, so be it. Executives don't have to give back the money they made off a dramatic increase in stock prices if the company starts to go downhill in four or five years. There is case after case of companies doing things that appear stupid FOR THE COMPANY in the long term, but were actually very beneficial for short term stock option gains by the highest level execs.
There are ways for executives to make a lot of short term money off disruptive technologies, but almost all of them involve startups, or small companies growing exponentially. Almost none of them involve large companies tossing their existing business models out the window and migrating to a new one.
And just to head off an argument, short term stock fluctuations are based on perceived value, not actual value. Executives only have to alter the perceived value for a relatively narrow window in order to cash in. I have no empirical evidence for this, but it seems to me that even in industries with experienced analysts, those analysts evaluate decisions based on how the market will perceive those decisions rather than the actual long term impact of those decisions.
You said:...Secondly it was an over-hyped problem that was never really going to affect desktop PC's and the like, which was over-sold to the public and never materialised...
I understand what you are trying to say, but it doesn't reflect the whole story. For instance, we had pruchased 15 or so Dells sometime in 1999. We put them at a customer site in November and everything was fine. We shut down in December and didn't return until January 2000. It took us a few days, but we realized that the second time the computer was rebooted in January, we would get a BIOS prompt telling us of the imminent failure of the hard drive and replace immediately. I spent days working with Dell until they finally had a BIOS fix. They never admitted it was Y2K.
My point is that this was something that took my time, took Dell's time and interfered with a customer installation. It wasn't a catastrophe, but it certainly cost money. And I never found any mention of it as a Y2K problem. Multiply this by thousand or millions and it is serious lost productivity.
Also, take into account the millions of small businesses that ran accounting software that was going to fail to work on 2000. You couldn't fix it by turning the dates back, as you can't issue tax forms or checks with 1962 as the date. All of these people HAD to deal with the issue, and believe me, they spent collectively tens of millions of hours converting accounting systems for no reason other than they were going to stop working.
You said:
Sidebars are useless- why would you need to see a list of links permanently in the window you are browsing?
Ok, here are some of the reasons I use my sidebar. If you can tell me a more convenient way to do this please let me know.
First, I should point out that on my family computer we all use one profile to mozilla (mac 0S9, we are permanently stuck in 2003...) This is because I can sit down and check something, my wife leans over my shoulder and quickly calls up something else, my very young children have two icons for the two sites they are interested in, and we can all do this in an "instant-on" fashion, instead of logging out and logging back in. So I have a list of links I visit fairly often. I open up my link folder in the sidebar and click on the ones that catch my eye. I may open up the folder containing the links to my local library, my kids school, the NYS MVA, etc. My wife has a set of links the same way. Very quick, very convenient.
One definition of insanity is doing the same thing over and over while expecting a different result. Continuing to pretend passwords are the answer, and that somehow user education is going to finally do the trick this time, is insanity.
We have a known quantity: human beings using computers. We have experimented with passwords on the computer for going on five decades. For any large subset of our known quantity (>25), passwords have failed to remain secure. Over and over and over. People have been threatened, coaxed, fired, and bribed. It still hasn't worked.
To continue to debate this is a huge waste of time. (On the other hand, me saying this to the slashdot community is a huge waste of time. It WILL be debated, over and over and over again.) It is time to move on. Physical security is worth a look. We need to see how that pans out.
BTW, this insecure password thing goes way back before computers. In the fairly recent past, take Feynman's description of how he and a janitor broke into the safes (substitute combination for password) at Los Alamos during WWII, the safes which contained the secrets to the nuclear bomb. Combinations written down on little notes, set to people's birthdays, set to the year it was installed, never changed from the factory default: does this sound familiar?
But of course, analysis by sarcasm aside, Gore did take the initiative in creating the Internet. He was the one who proposed funding for it, he submitted the bill, he fought for it, he went around the country educating people on it, he worked closely with the technologists, he helped to get the Pentagon to agree (crucially important for historical reasons, since the internet backbone was built on a previously existing Defense network).
So, in fact, Gore did take the lead in CREATING the Internet. He absolutely never claimed to have INVENTED the internet, which would imply some kind of technology effort.
Gore never claimed to have "invented" the Internet. He did, however, correctly take credit for chairing the committee that created the Internet (and yes, the Internet was a government creation). Our bilious politics and the American (and French) habit of analysis by sarcasm, coupled with the media's and citizenry's incredible laziness, led to the damaging sound bites.
This is from the Daily Howler's excellent analysis of this whole issue (http://www.dailyhowler.com/dh120302.shtml) It starts several paragraphs into the piece:
Martin Walker wrote this in The Guardian:
WALKER (12/30/88): American computing scientists are campaigning for the creation of a "superhighway" which would revolutionise data transmission.
Legislation has already been laid before Congress by Senator Albert Gore of Tennessee, calling for government funds to help establish the new network, which scientists say they can have working within five years, at a cost of Dollars 400 million.
Back in the day of floppies, about once a month someone would come to me in a panic because they had opened a file on a floppy, started editing it, then put in another floppy to pull something off of that, then hit save, completely scrambling th file system on that disk. (I should say, 'they came to me with a screwed up system', they had no idea what they had done wrong.) The idea that you can pull a floppy out without unmounting is just... stupid. Perhaps you could design an operating system that notified everything interested when the floppy reject button has been pressed so you could post huge warning signs over the screen and scare the bejesus out of the user. Or you could just do what Apple did: remove the reject button and have the operator use the GUI to eject the disk. Then, when you go to save your Word file, it simply asks you to reinsert the correct floppy.
The only reason he thinks you should be able (caution, I am basing this on the above comments because TFA is slashdotted) eject a floppy with a push of a button is because you can on Windows machines, the self-same machines that make a mess of it.
Reaching for the light switch
on
Delphi Renaissance
·
· Score: 2, Interesting
I used Delphi for a number of years. With it, we created really useful, truly OO design, really beautiful stuff that substantially simplified everything. As an example, we designed a GUI for industrial ink jet printers. (These printers resemble the 24 pin dot matrix printers of two decades ago in print quality, but can print at 750 ft/min from 1 inch away on the bottom of an aluminum soda can.) They have all kinds of weirdness such as text can only be 5, 7, 9, 11, 13 or 24 dots high, and vertical position must "snap" to the next available slot. Dates, serial counters and so forth are done with special control codes. I could go on and on, but suffice it to say, these are strange rangers. We made message objects with field sub-objects. When these were handed to the On-screen display stuff, they created and drew themselves with special bolderization and colors for the date (and other) fields. When they were handed to the printer, they formatted themselves appropriately and chatted merrily away through an assigned serial port.
I can hear you all saying that you can do that with any OO language, but all I can say was that everything in Delphi (or rather, most everything) just felt logical and right. I never felt I was shoe-horning or forcing things. Have you ever gone into a room and the light switch is exactly where you put out your hand, the window latch turns in the way you expect it, the desk is just the right height and you reach down to adjust the chair and your hand falls exactly on the lever? That's what Delphi felt like. God, I miss it.
As for C or C++, god-as-my-witness, C WAS MEANT AS A HIGHER LEVEL ABSTRACTION FOR ASSEMBLER! The idea of taking a wonderful, elegant assembler-abstraction language and writing a word processor in it just gives me the screaming-nightmares. It's like building a mechanical clock out of legos; amazing when done once, masochistic when done repeatedly.
In 1980 (79?) I did a Co-op block at Comsat, the US part of Intelsat, responsible for the first telecommunications satelites. Because these were first described by Arthur Clarke in a science fiction story, he was given the 'first' share of stock in the company and began a long and friendly relationship with the people there. Fast forward to my tenure, where I was working with the 'resident genius' in my department (I don't know what his actual title was, but essentially he had no formal assignments other than to come up with amazing things) using some god-awful quasi-language based on fortran (it was supposed to be really good at matrix calculations and I was writing a program to calculate solar cell array degradation over the life of a satelite. It was my first introduction to dealing with something billed as 'amazing' that almost, but not quite, did what you needed it to do. But I digress from this digression...). I would frequently see him pouring over calculations and eventually asked him what he was doing. "Calculating the tensile strength needed to make a space cable." Then followed a lengthy discussion of what we now call a space elevator. I asked if Comsat was planning to build one. It turns out Arthur Clarke had asked him to do the calculations for a book he was currently writing. I assume his genesis of the idea led to it being called the Clarke point.
I never actually read the book, as, although I always find Clarke's ideas interesting, his writing just grates on my nerves.
From above: "...it only executes at the same level of privs as the person/process that executed it."
And what exactly do you think the average level of privilege is for Window's users? I would guess that 99% of home/small business users and a very significant percentage of office users are logged in with administrative privileges.
The typical Microsoft answer to this is that users shouldn't do this. It's like putting a "Blow up my engine" button next to the radio on-off in a car and then saying "but we told everyone not to press it" The reality is that people do this. If only they were affected by the mistake, then hey, let the buyer beware. But everyone behind their firewall, everyone in their outlook directory, everyone they IM with is compromised as well.
It's as if Microsoft has built a building with an outside door for every office because it makes it easier for the pizza delivery guys. There are thousands of theives prowling around testing the locks. If one occupant leaves it open, the whole building is compromised. Micorsoft's security initiative essentially consists of putting better locks on the doors.
This is all to the good, but bugs and holes are not the real source of the Windows et. al. vulnerabilities. Microsoft products are insecure *by design*. Giving a scripting language (visual basic for applcations) the equivalent of root privileges so fundamentally violates security that it can't be fixed. Ditto for components (ActiveX) on unknown Web Pages. You at Microsoft obviously know this, since your solution is to tell users to turn these features off. However, you run smack up against your business plan which is to encourage end users to depend on these sorts of proprietary "features". It's a real bind for you guys - and as much as buttoning up your code is a good thing (TM), it's like fixing the acne on a plague victim...
OK, this will get me modded to troll, but isn't there something so... Linux-like... about someone very enthusiastically trumpeting an information page that consists of (drum roll) 120 unlabeled links...
...that no-one has mentioned this. Before cell phones, when someone went to a public place (theater, symphony hall, restaurant, nightclubs) and they might be called, they mentioned it to the manager when they arrived. They had previously given the phone number (of the place they were going to) to whoever it was that needed to contact them (emergency service, baby sitter, whatever). The maitre d', usher, etc would note where they sat. If a call came in, someone would come and get them. This was normal for something like fifty years. I witnessed this myself any number of times. It worked.
Linus: Created a broad based open source project in such a way that it is effective, controlled and has a long term plan. Because of his personal shepherding and his ability to attract equally focused individuals to lead the charge, he has helped to grow the open source community by orders of magnitude. And although his open source project is slowly altering the way major corporations do business, it has a much larger social impact: It is opening up all aspects of application and OS creation and development (source code, online development community, unimaginably large and detailed technical reference library) to anyone who can cobble together a 7 year old PC and an internet connection - potentially allowing a middle school grad in Zimbabwe or Nepal to write the next killer app.
Steve Jobs: Has an incredible knack for spotting the core essence of emerging technology, and creating a viable, profitable, system around it. In the process, a huge portion of the technological vendors follows in his wake (or try to). His significance is not in how well his products work (although they tend to work very well) but in that they define what the industry should be striving for.
Bill Gates: This is not meant to be a BG blast, but his significance is only to Microsoft shareholders (although, he is hugely significant to them) not to the industry or society at large. Microsoft is like Dell - they take what is out there and develop a great business plan around it, and execute it with amazing forcefulness. But they don't bring anything new technologically to the game. And they don't take us in new directions. Most MS new technology is simply proprietary versions of things that already exist and are starting to catch on.
This is an absurd reading of US history. I am old enough to remember when the Cayahoga river burst into flames, when the Great Lakes were virtually devoid of anything other than carp, seaweed, and stink, when my mother washed the walls once a month to get the soot off. That was essentially libertarianism in action. People were free to try and sue companies for polluting the air and water, and the government did not intervene. But the reality was that one person or a small group of people could never afford to go up against a giant corporation. They would need a group or organzation to multiply their resources.
People were free to boycott products from companies that polluted, but of course, a single or a few individuals wouldn't make any difference at all. They would need to get organized. They would need a mechanism and an organization to get the word out.
Real change came about when the government did intervene, or rather, when individuals used government as a force mulitplier, as an organization to force corporations to behave more responsibly.
As for most of the superfund sites being government property: assuming this is true, it simply shows that nothing is a panacea, that no system works all the time or even most of the time. I certainly concede that about the current system. I could listen more to libertarians (or communists or anachists) if they could ever see the truth of this about their system.
Back in the day (tm) my girlfriend was developing semi-custom business aps on minicomputers. Good programming practice was being followed and there was a text file used to parse error codes to actual human readable messages. The text file could be swapped out at will, and great fun was had by all by writing things like "This error occurred because that great wanker (insert customer buyer name here) insisted we add this f-ed up feature that will never work!". Much hilarity of this nature insued. The day the said wanker came in for the demo, they very carefully backed out the bogus error text file and put in the legit one. They even tested to make sure everything was a go. I'm sure you see where this is going. During the demo, some last minute changes blew up and while they took the guy out to lunch, showed them pictures of the new kids, did whatever they could to keep him busy while they restored to the last known working condition, which, as they were wont to forget in the panicked atmosphere, had the bogus error messages. After the restore, wanker says, "but what would happen if I did this" does something wanker-like with the keyboard and POP! Up comes the "hilarious" message.
They say intelligence is learning from your mistakes and wisdom is learning from others. Since that day I have never, ever put anything in any code that I wouldn't want anyone in the world reading....
Taking a year off is well worth it, but only if you do some non-permanent thing with it. If all you are going to do is start working, it's probably a mistake. Especially if you'll still be sponging off Mom and Dad. But if you want to do something to expand your horizons:
1) Travel - if you've got a little bit of money and some git up an go, then - git up and go. You can also do this out of college, but the key is to wing it as you travel around. It doesn't take a lot of money, if you are creative. My wife traveled Europe for two or three years, picking oranges in Greece, she was a Nanny and a barmaid in London, and a half dozen odds and ends in between. Later in life, she took two years to travel from Fiji, through Australia and New Zealand, and the near east (She stayed a month in a Zen monastery in Indonesia) and finally ended up teaching English-as-a-second language in Japan.
2) Mid-term development work. When I was in the Peace Corps in Ghana, I would stumble across the occasional program for people just out of high school. It was anywhere from 6 weeks to 6 months of in-field experience, where you were actually doing something to help people.
3) Mid-term religious work. Personally, I think most of this is bogus, but then again, I'm not religious. I think those that did it often feel they've got a lot out of it. (But if you're Christian, you might be in for a shock - at least in Ghana, your AVERAGE Christian-On-The-Street knew so much more about scripture than your average missionary it usually left their heads spinning. You certainly will not be bringing jesus to the savages, instead you'll be disussing King David's lineage through the twentieth generation...)
4) Scientific expedition grunt work. I don't know much about these, but I know they exist. If you check out the National Geographic they have ones that require you pay them. There may be ones that pay your room and board.
But whatever you choose, good luck!
It seems to me that, from the point of view of the record labels, when most people buy a CD they are paying 15 bucks for the 1 or 2 songs they know and like. The others are just lagniappe. So, again, from the point of view of the labels, they are dropping the current per-puchase revenue from 15 bucks to a single buck.
BEFORE you shout "FLAME ON", Johnny, I'm not saying I think this is a GOOD THING, just that it may be how the record labels view it. It explains why they are so against music downloading.
Iwasn't trying to disagree with you. I was merely pointing out an example of what I considered (and thought you would also) of a positive example of hiding functionality.
Here's a more direct one: In a similiar vein the group responsible for developing the UI for a higher resolution printer was working on a windows driver and the corresponding application. They exposed every single Windows option for font control. I can't remember all of them now but there are many choices that you certainly don't even get in Word. This interface terrified and overwhelmed users (fortunately it was only an alpha). But the developer couldn't see it. 'If they can't understand it, they should take the time to learn it.' For the labels these operators were creating, they simply did not need these functions. We cut out most of the choices (and made the remaining ones much more intuitive). Industrial UI is all about speed, clarity and easing the frustration factor. Line operators have twenty things they are watching and setting up. Learning how to anamorphically resize print is a ridiculous waste of time.
It's not that they would never use it, it's that it would cause only trouble - "My print keeps changing in size - it spreads out'. Well, spreading print can be caused by mechanical problems, product handling problems, and by electrical problems. We would end up with a $125/hour service call (or one we eat under warranty) because someone on a different shift accidently created a format with some weird spread out font. I RAN service. I would bet my last Lorna Doone that this would be responsible for unnecessary service calls much more often than it would actually benefit someone.
You said: A UI that doesn't let you access all the capabilities of a system is a broken UI.
If you add the word "necessary" in there somewhere, I would agree with you. I'll give you a real world example: Print orientation in industrial inkjet printers (these are the kind that write the date on the bottom of coke cans - not anything like a Deskjet). Because these printers are non-contact, you can't predict ahead of time which direction the product will go past the printhead, whether it is upside down, and whether it is printing on the inside of something transparent in order to be read from the outside. There are 3 different parameters that give you all the 8 different combinations, and 7 of the 8 could be used in the real world. The traditional way is to give the user control over all three parameters and let them try to figure it out. The better way is to let them print a test message, then select the way the print acutually printed. The code figures out the settings that correct the orientation. More work for the coder, but much easier for the operator. When this second method was implemented it was considered by many to be an amazing leap in the printer technology, when in fact, the printer hadn't changed at all. Sold a lot of printers though.
The important thing is to understand what the end user wants to do, and present it in a way that makes intuitive sense to them. It is oftentimes more difficult to code, but it is really the only right way to do it.
You said: ...I can customise it in endless ways, but it isn't set up remotely adequately be default. I could spend ages learning how to do this, but an editor is just a means to an end.
Excellent point. Even for those who have the time, energy and understanding to customize everything, it is not necessarily now they WANT to spend their time.
... This is not meant as a slight to developers. Those who are intimately aware of how every detail of the program works cannot shift perspective and see it from the point of view of someone who neither knows nor cares about the inner workings. I've spent 15 years designing systems to be used in a manufacturing environment. Saying that any problems are due to lack of user training is a cop-out, one that will kill follow-on business. Industry has the operators they have and are not going to start hiring special people and paying them more to run my systems. It's just reality.
I'll give what I think are the biggest UI traps:
1) UI's that expose all the capabilities of a system. This is not good UI design, in fact it is lazy UI design. What you need to do is understand how your users are going to do with your system, and present them with as few choices as possible. Example: If you have a screen for looking up Customer records, and further allow it to be customized to show various fields, and further allow it to check or uncheck any field, you can end up with a screen that does not show the Customer ID (because it was accidently turned off). From the developers point of view you are adding functionality. From a user's point of view there is now a way to accidently render the screen useless, or at least annoying.
2. Beware of allowing users to customize (Wow - there goes my Karma...) Customization is fine for stuff you play with, but in a professional environment it is much more important to have consistency. It is important that people can walk away from something for a week or a month, and come back and get to work right away. It is important that telephone support can make assumptions about what the user is seeing. Floating toolbars, menu items that come and go with frequency of use, frames that can be moved from top to bottom, all of these make it difficult both for telephone support and for people who are "backups" i.e. they were trained once and only use the system every so often.
3. Don't be afraid of busy screens (Damn - there goes the rest of my Karma) Professionals get used to the layout and appreciate having all the information right at hand. (This makes number 2 - consistency - especially important). So err on the side of putting as much useful information as will fit. And prune mercilously anything that isn't useful or required. Don't you hate it when you go to a bank or an airline check-in counter and see the attendent typing endlessly, screen flipping, all at the speed of light, but... why exactly do they need all that commotion?
4. Keyboard shortcuts, labeled and encouraged. The mouse is great for a lot of things, but speed is not one of them.
5. Remember your audience. Are they people who sit in front of the screen all day, using your application as their primary function, or are they several times a day users who simply need it to perform a vital function but just want it to work and go away? Even if it is the former, what about their backup's or the third shift people? In any case, present what they need immediately and clearly and leave off the fluff and BS.
6. Most important. Remember that your application is not what the people do. It is a tool that helps (or hinders) them in doing what they do. A tool should not be their primary focus. The task is their primary focus. Whether a carpenter or developer, any time spent fiddling with a tool simply means less time to spend actually doing the task.
Many years ago I was a proponent of nuclear energy. What convinced me to change my position? Simply put, I saw how nuclear power plant officials, government regulators, and industry consultants lied, over and over. When the Ginna nuclear power plant near Rochester NY had a serious accident, I listened to lie after lie from the official plant spokesmen. The story started out as "there is nothing wrong, this is a regularly scheduled test" and modified itself by the hour as the last hour's lie was exposed. I certainly have no reason to believe their final story, as I think it is more likely they just settled on a lie no one could expose.
My sister-in-law lives near the Hannaford nuclear facility and the lies continue to this day. The pattern: Reassuring lie, get caught, slight mea culpa, new lie. At least twice since I've been paying attention some official spokesman has declared that the mistakes of the past are gone and they will deal honestly and forthrightly from now on, and then been caught out in another cover-up within a year or two.
So could nuclear energy help us? Yes. Can we trust the people who control it today? Absolutely not.
All things in life are cyclical. When I was a kid in the 60's and 70's, singles were king. There were a number of bands who had hit singles who had either no album or albums with abysmal sales. Radio stations needed singles as that's what they were set up to play. I have a bunch of singles not generally released, but for use by DJ's to promote an album. Along came the AOR (Album Oriented Rock) stations as the audience matured, and album sales picked up substantially. These stations might not have had more listeners than the singles stations, but they had substantially more young adult (read: high disposable income) listeners. They were profitable, and their standard setup was two cueing turntables set up for LP's. It was a pain to play a 45, so it didn't get done very often. Finally came the CD and the transition was complete.
Now we are coming back to the single. At the same time, I expect we'll start to see groups' entire collections released on a single disk (DVD or other). No amazing prediction here, as boxed sets have been a fairly lucrative sub-market for 10 or 15 years now.
As a piece of complete trivia, those boxed sets of CD's harken back to the original "albums" which were collections of 78's stored in what looked like a photo album, with paper sleeves instead of pages. 78's could only store roughly what a 1950's era 45 could, so a symphony, for example, came in an "album" of as many as 20 78's. The term ended up referring to any collection of music, even if it was on a single disk. But by now, I rarely hear anyone under twenty-five refer to an album, probably because they associate it with vinyl,not music collections...
FWIW, I use my Palm constantly. It is always with me (I am 6' 1" and it fits easily in my pants pocket). In addition to 1500 contacts, my calendar, I have the oddest things tucked away in notes such as what type of bag my vacuum cleaners use, the type of battery in my watch, the connection info for my various ISP's, rest stops along various highways with Burger Kings that have a kids play zone, in other words, all kinds of things I use only once in a great while. I don't remember where they are, I simply search for them. I keep some photos on there when people ask about my kids, I listen to books-on-tape. I keep Scrabble on it for when I'm waiting for something. I always keep a text book on it and read it while I am waiting in line. In a restaurant I'll often play tic-tac-toe on the notepad with my 5 year old to keep him busy, or let him draw pictures. I have my grocerie list in it, arranged in the same order as my supermarket. We make a 3 minute annual video to send to friends and families and I keep a copy on the palm. I use it a half dozen or a dozen times a day. Possibly because it is easy to carry and possibly because I travel so much. (I put in all my travel info - hotel numbers, which terminal the flight is leaving from, confirmation codes, and the phone number of anyone I'm meeting when I arrive. Who wants to carry paper or god-forbid boot up a computer just to give someone a 10 digit number? For that matter, who wants to carry around the dozen hotel club membership cards, or two dozen airline frequent flyer number cards? I just select the number and hand the whole thing to the clerk.
Publicly held businesses are not set up to do the most profitable thing for the COMPANY. They are set up to do the most profitable thing for the EXECUTIVES. This is not meant to be cynical, it is simply reality. Executives make the business decisions and they will make the decision that pays them the largest reward. If there is a long term cost to that, well, so be it. Executives don't have to give back the money they made off a dramatic increase in stock prices if the company starts to go downhill in four or five years. There is case after case of companies doing things that appear stupid FOR THE COMPANY in the long term, but were actually very beneficial for short term stock option gains by the highest level execs.
There are ways for executives to make a lot of short term money off disruptive technologies, but almost all of them involve startups, or small companies growing exponentially. Almost none of them involve large companies tossing their existing business models out the window and migrating to a new one.
And just to head off an argument, short term stock fluctuations are based on perceived value, not actual value. Executives only have to alter the perceived value for a relatively narrow window in order to cash in. I have no empirical evidence for this, but it seems to me that even in industries with experienced analysts, those analysts evaluate decisions based on how the market will perceive those decisions rather than the actual long term impact of those decisions.
You said: ...Secondly it was an over-hyped problem that was never really going to affect desktop PC's and the like, which was over-sold to the public and never materialised...
I understand what you are trying to say, but it doesn't reflect the whole story. For instance, we had pruchased 15 or so Dells sometime in 1999. We put them at a customer site in November and everything was fine. We shut down in December and didn't return until January 2000. It took us a few days, but we realized that the second time the computer was rebooted in January, we would get a BIOS prompt telling us of the imminent failure of the hard drive and replace immediately. I spent days working with Dell until they finally had a BIOS fix. They never admitted it was Y2K.
My point is that this was something that took my time, took Dell's time and interfered with a customer installation. It wasn't a catastrophe, but it certainly cost money. And I never found any mention of it as a Y2K problem. Multiply this by thousand or millions and it is serious lost productivity.
Also, take into account the millions of small businesses that ran accounting software that was going to fail to work on 2000. You couldn't fix it by turning the dates back, as you can't issue tax forms or checks with 1962 as the date. All of these people HAD to deal with the issue, and believe me, they spent collectively tens of millions of hours converting accounting systems for no reason other than they were going to stop working.
You said:
Sidebars are useless- why would you need to see a list of links permanently in the window you are browsing?
Ok, here are some of the reasons I use my sidebar. If you can tell me a more convenient way to do this please let me know.
First, I should point out that on my family computer we all use one profile to mozilla (mac 0S9, we are permanently stuck in 2003...) This is because I can sit down and check something, my wife leans over my shoulder and quickly calls up something else, my very young children have two icons for the two sites they are interested in, and we can all do this in an "instant-on" fashion, instead of logging out and logging back in. So I have a list of links I visit fairly often. I open up my link folder in the sidebar and click on the ones that catch my eye. I may open up the folder containing the links to my local library, my kids school, the NYS MVA, etc. My wife has a set of links the same way. Very quick, very convenient.
Why is this a bad thing?
One definition of insanity is doing the same thing over and over while expecting a different result. Continuing to pretend passwords are the answer, and that somehow user education is going to finally do the trick this time, is insanity.
We have a known quantity: human beings using computers. We have experimented with passwords on the computer for going on five decades. For any large subset of our known quantity (>25), passwords have failed to remain secure. Over and over and over. People have been threatened, coaxed, fired, and bribed. It still hasn't worked.
To continue to debate this is a huge waste of time. (On the other hand, me saying this to the slashdot community is a huge waste of time. It WILL be debated, over and over and over again.) It is time to move on. Physical security is worth a look. We need to see how that pans out.
BTW, this insecure password thing goes way back before computers. In the fairly recent past, take Feynman's description of how he and a janitor broke into the safes (substitute combination for password) at Los Alamos during WWII, the safes which contained the secrets to the nuclear bomb. Combinations written down on little notes, set to people's birthdays, set to the year it was installed, never changed from the factory default: does this sound familiar?
But of course, analysis by sarcasm aside, Gore did take the initiative in creating the Internet. He was the one who proposed funding for it, he submitted the bill, he fought for it, he went around the country educating people on it, he worked closely with the technologists, he helped to get the Pentagon to agree (crucially important for historical reasons, since the internet backbone was built on a previously existing Defense network).
So, in fact, Gore did take the lead in CREATING the Internet. He absolutely never claimed to have INVENTED the internet, which would imply some kind of technology effort.
Gore never claimed to have "invented" the Internet. He did, however, correctly take credit for chairing the committee that created the Internet (and yes, the Internet was a government creation). Our bilious politics and the American (and French) habit of analysis by sarcasm, coupled with the media's and citizenry's incredible laziness, led to the damaging sound bites.
This is from the Daily Howler's excellent analysis of this whole issue (http://www.dailyhowler.com/dh120302.shtml) It starts several paragraphs into the piece:
Martin Walker wrote this in The Guardian:
WALKER (12/30/88): American computing scientists are campaigning for the creation of a "superhighway" which would revolutionise data transmission.
Legislation has already been laid before Congress by Senator Albert Gore of Tennessee, calling for government funds to help establish the new network, which scientists say they can have working within five years, at a cost of Dollars 400 million.
Back in the day of floppies, about once a month someone would come to me in a panic because they had opened a file on a floppy, started editing it, then put in another floppy to pull something off of that, then hit save, completely scrambling th file system on that disk. (I should say, 'they came to me with a screwed up system', they had no idea what they had done wrong.) The idea that you can pull a floppy out without unmounting is just... stupid. Perhaps you could design an operating system that notified everything interested when the floppy reject button has been pressed so you could post huge warning signs over the screen and scare the bejesus out of the user. Or you could just do what Apple did: remove the reject button and have the operator use the GUI to eject the disk. Then, when you go to save your Word file, it simply asks you to reinsert the correct floppy.
The only reason he thinks you should be able (caution, I am basing this on the above comments because TFA is slashdotted) eject a floppy with a push of a button is because you can on Windows machines, the self-same machines that make a mess of it.
I used Delphi for a number of years. With it, we created really useful, truly OO design, really beautiful stuff that substantially simplified everything. As an example, we designed a GUI for industrial ink jet printers. (These printers resemble the 24 pin dot matrix printers of two decades ago in print quality, but can print at 750 ft/min from 1 inch away on the bottom of an aluminum soda can.) They have all kinds of weirdness such as text can only be 5, 7, 9, 11, 13 or 24 dots high, and vertical position must "snap" to the next available slot. Dates, serial counters and so forth are done with special control codes. I could go on and on, but suffice it to say, these are strange rangers. We made message objects with field sub-objects. When these were handed to the On-screen display stuff, they created and drew themselves with special bolderization and colors for the date (and other) fields. When they were handed to the printer, they formatted themselves appropriately and chatted merrily away through an assigned serial port.
I can hear you all saying that you can do that with any OO language, but all I can say was that everything in Delphi (or rather, most everything) just felt logical and right. I never felt I was shoe-horning or forcing things. Have you ever gone into a room and the light switch is exactly where you put out your hand, the window latch turns in the way you expect it, the desk is just the right height and you reach down to adjust the chair and your hand falls exactly on the lever? That's what Delphi felt like. God, I miss it.
As for C or C++, god-as-my-witness, C WAS MEANT AS A HIGHER LEVEL ABSTRACTION FOR ASSEMBLER! The idea of taking a wonderful, elegant assembler-abstraction language and writing a word processor in it just gives me the screaming-nightmares. It's like building a mechanical clock out of legos; amazing when done once, masochistic when done repeatedly.
In 1980 (79?) I did a Co-op block at Comsat, the US part of Intelsat, responsible for the first telecommunications satelites. Because these were first described by Arthur Clarke in a science fiction story, he was given the 'first' share of stock in the company and began a long and friendly relationship with the people there. Fast forward to my tenure, where I was working with the 'resident genius' in my department (I don't know what his actual title was, but essentially he had no formal assignments other than to come up with amazing things) using some god-awful quasi-language based on fortran (it was supposed to be really good at matrix calculations and I was writing a program to calculate solar cell array degradation over the life of a satelite. It was my first introduction to dealing with something billed as 'amazing' that almost, but not quite, did what you needed it to do. But I digress from this digression...). I would frequently see him pouring over calculations and eventually asked him what he was doing. "Calculating the tensile strength needed to make a space cable." Then followed a lengthy discussion of what we now call a space elevator. I asked if Comsat was planning to build one. It turns out Arthur Clarke had asked him to do the calculations for a book he was currently writing. I assume his genesis of the idea led to it being called the Clarke point.
I never actually read the book, as, although I always find Clarke's ideas interesting, his writing just grates on my nerves.
FWIW
From above: "...it only executes at the same level of privs as the person/process that executed it."
And what exactly do you think the average level of privilege is for Window's users? I would guess that 99% of home/small business users and a very significant percentage of office users are logged in with administrative privileges.
The typical Microsoft answer to this is that users shouldn't do this. It's like putting a "Blow up my engine" button next to the radio on-off in a car and then saying "but we told everyone not to press it" The reality is that people do this. If only they were affected by the mistake, then hey, let the buyer beware. But everyone behind their firewall, everyone in their outlook directory, everyone they IM with is compromised as well.
It's as if Microsoft has built a building with an outside door for every office because it makes it easier for the pizza delivery guys. There are thousands of theives prowling around testing the locks. If one occupant leaves it open, the whole building is compromised. Micorsoft's security initiative essentially consists of putting better locks on the doors.
This is all to the good, but bugs and holes are not the real source of the Windows et. al. vulnerabilities. Microsoft products are insecure *by design*. Giving a scripting language (visual basic for applcations) the equivalent of root privileges so fundamentally violates security that it can't be fixed. Ditto for components (ActiveX) on unknown Web Pages. You at Microsoft obviously know this, since your solution is to tell users to turn these features off. However, you run smack up against your business plan which is to encourage end users to depend on these sorts of proprietary "features". It's a real bind for you guys - and as much as buttoning up your code is a good thing (TM), it's like fixing the acne on a plague victim...
OK, this will get me modded to troll, but isn't there something so... Linux-like... about someone very enthusiastically trumpeting an information page that consists of (drum roll) 120 unlabeled links...
...that no-one has mentioned this. Before cell phones, when someone went to a public place (theater, symphony hall, restaurant, nightclubs) and they might be called, they mentioned it to the manager when they arrived. They had previously given the phone number (of the place they were going to) to whoever it was that needed to contact them (emergency service, baby sitter, whatever). The maitre d', usher, etc would note where they sat. If a call came in, someone would come and get them. This was normal for something like fifty years. I witnessed this myself any number of times. It worked.
Linus: Created a broad based open source project in such a way that it is effective, controlled and has a long term plan. Because of his personal shepherding and his ability to attract equally focused individuals to lead the charge, he has helped to grow the open source community by orders of magnitude. And although his open source project is slowly altering the way major corporations do business, it has a much larger social impact: It is opening up all aspects of application and OS creation and development (source code, online development community, unimaginably large and detailed technical reference library) to anyone who can cobble together a 7 year old PC and an internet connection - potentially allowing a middle school grad in Zimbabwe or Nepal to write the next killer app.
Steve Jobs: Has an incredible knack for spotting the core essence of emerging technology, and creating a viable, profitable, system around it. In the process, a huge portion of the technological vendors follows in his wake (or try to). His significance is not in how well his products work (although they tend to work very well) but in that they define what the industry should be striving for.
Bill Gates: This is not meant to be a BG blast, but his significance is only to Microsoft shareholders (although, he is hugely significant to them) not to the industry or society at large. Microsoft is like Dell - they take what is out there and develop a great business plan around it, and execute it with amazing forcefulness. But they don't bring anything new technologically to the game. And they don't take us in new directions. Most MS new technology is simply proprietary versions of things that already exist and are starting to catch on.
This is an absurd reading of US history. I am old enough to remember when the Cayahoga river burst into flames, when the Great Lakes were virtually devoid of anything other than carp, seaweed, and stink, when my mother washed the walls once a month to get the soot off. That was essentially libertarianism in action. People were free to try and sue companies for polluting the air and water, and the government did not intervene. But the reality was that one person or a small group of people could never afford to go up against a giant corporation. They would need a group or organzation to multiply their resources.
People were free to boycott products from companies that polluted, but of course, a single or a few individuals wouldn't make any difference at all. They would need to get organized. They would need a mechanism and an organization to get the word out.
Real change came about when the government did intervene, or rather, when individuals used government as a force mulitplier, as an organization to force corporations to behave more responsibly.
As for most of the superfund sites being government property: assuming this is true, it simply shows that nothing is a panacea, that no system works all the time or even most of the time. I certainly concede that about the current system. I could listen more to libertarians (or communists or anachists) if they could ever see the truth of this about their system.