What is an application supposed to do when the user presses "Save" but the OS gives error "Disk full" and the file is larger than 1.44 MB? What about fopen() failing with "Not enough memory to allocate a FILE structure"? How is code supposed to recover from that kind of error without losing data (i.e. the document the user is editing)?
It isn't because they are not program errors. The user's computer does not have adequate hardware resources for the work the user attempts to do. If a program must handle that kind of errors, we need to find a way for programs to perform hardware upgrades on the fly.
In other words: Don't kill the messenger bearing the bad news.
The Register has an interesting piece on a leaked internal Microsoft email describing how MS will go about product placement (including, of course, Win XP) in the news media this week.
running on the NMT-450 spectrum that is being phased out (in Finland, Sweden, anywhere else?)
Denmark too. TDC (the major tele operator in Denmark and the only operator for NMT) recently offered all their NMT customers a GSM account as replacement for their current to-be-phased-out NMT account.
I see no need to be able to write word documents directly, though chaining to the ms-format-converter as a convenience might be a nice touch.
On the contrary, being able to write native MS-Word documents is absolutely essential. Otherwise you will not be able to exchange documents with your co-workers who are still using MS-Word.
It comes down to what Joel Spolsky calls "eliminating barriers to switching". And it is not only barriers to switching in. Being unable to switch out if something turns out to be a bad decision (e.g. having dozens of documents that can only be converted to MS-Word using cut-and-paste - and you don't have time for that) will also prevent people from adopting another word processor.
There's more to it than that. The U.S. has consumer protection laws that make the producer liable for a product's performance. That's why there are warranties.
Can't have it both ways and U.S. laws give the protection to the consumer. This isn't something a company can chose to opt out of.
So do most European countries. But there's a limit: our laws do not protect the consumer from himself. Around here we assume that people can think for themselves and if they can't, it's their own bloody fault.
I find it easier this way, and it has the added bonus of being able to write while using the mouse.
I'm right handed but when I started using a mouse, a co-worker advised me to use my left hand for the mouse.
His reasoning were that it is equally awkward whichever hand you use when you're a beginner. Moreover, you can not only write with your right hand but also use the arrow keys and the number-pad and the mouse simultaneously. And yes, I often find that I have the left hand on the mouse and the right hand on the arrow keys.
And yes, I can use a mouse with my right hand but it works better when I use my left.
Here's a nice cryptic example. What's a fast way to find the include file for a function? Browsing through help files, searching for the command and cutting and pasting the include in? Or this: :r! man ntohl | grep "\#include"
Visual SlickEdit: Right click on the function name, select go to definition, select prototype.
SNiFF+: Right click on function name in the function list, select "Show declaration".
In both cases the editor opens the relevant header file and places the cursor on the function definition. GUI's aren't just editors with an integrated debugger. Any decent GUI (or at least the ones I would want to use) include extensive source code browsing facilities.
In order to get through to management, you have to talk their language. And that language is:
Money.
Let's face it: If you talk technical details most managers will get that blank stare after a while. Either they don't understand what you are talking about or they are not interested, probably both.
But if you can show them how to save money on the bottom line, they will listen to you. And yes, you can boil it down to money. Better code means less time spent on correcting errors, time which most likely is not billable. If that time (a.k.a. cost) can be removed or better yet converted to billable time, it will affect the bottom line positively.
So in order to be allowed to make better quality, you have to calculate how much it will save on the bottom line.
Also, be honest and don't oversell your stuff. You may think that what you propose will earn say a 20% saving. Tell your manager that the saving will be at most 10%. Why? Because you will most likely run into snags and teething troubles that will diminish the initial savings. And if you don't, well, performing better than promised is usually not a sin.
and then bans at least half of the "Open Source Community" by REQUIRING that stuff made with it be released under the GPL
Borland have created the software so they have the right to choose the license.
The GPL does not mean "free as in beer". You must pay when you use Kylix - not with money but with the software you create with Kylix. If that is unacceptable to you then use something else for your programming.
I'm not buying a PDA until it can act as a PIM, Instant Messenger, email client for all of my accounts, act as a phone with my choice of service provider, Allow me to hack da hell out of it (linux of course!) and allow for various plugins like GPS, camera and removable media.
My setup is:
Psion 5mx running Opera (for/. and such)
Ericsson SH888 for connectivity - will upgrade to an Ericsson R520M with GPRS RSN.
HP 215 camera with Compact Flash cards that can be read by the 5mx. Yes, this is not the newest model that you can get - but it was cheap.
TomTom GPS with Roadplanner for Europe. For use when travelling long distances by car. Otherwise, I use a map (hint: it doesn't run out of batteries)
Linux is not supported but I can still hack 'cause I've got the EPOC SDK. IM is not supported but I don't use IM anyway so that's not important to me.
But being able to grab a photo, chuck the CF card into the 5mx and fire off an email with the picture attached, all within 15 minutes - that's cool!
Sure, you could do an elaborate usability test with all the trimmings on a particular release
Okay,
this link describes usability tests on web-sites but but the basic principle outlined here would also apply to applications - and it would tie nicely into the "release often" paradigm.
...to have an upgrade path for the hardware wou choose. Having the ability to switch hardware to something with more processing power will make your life a lot less miserable.
In fact, all the SW-developers on the project I'm working on right now are more or less ready to kill for faster processor. Unfortuantely the processor board is an in-house design so we have to live with it.
During construction you want a call to virtual function using a pointer of type base class to the object being constructed to go to the base class version of the function.
During normal runtime you will (of course) want the same call to go to the derived class version of the function.
So for all calls to virtual functions using a pointer to the object, the program must check whether it is constructing of the object that is pointed to. Depending on the outcome of this test it will then either call a function found using the type of the pointer or use the object's vtable.
Maybe you could do some neat stuff if this was legal. But will two different behaviours for the same call make C++ programs easier to understand?
As stated in a previous post, my younger brother died of cancer when he was 28. My girlfriend is at the hospital right now, as I'm typing this, with her
father where he is having a biopsy to tell if he has prostate cancer or not. Two other members of my family have cancer. I know what it does to both
the victims and their families.
If a couple of mouse-clicks can help take that pain away from just one family, it's worthwhile. Surely.
Thanks. You helped me make up my mind. I will install the screensaver tonight and add my little bit to the research.
And I too know how it feels. My mother-in-law died from cancer i December last year.
Ebbe
P.S.: My wife (she's a GP) says that the chance of surving prostate cancer is in the upper nineties.
Although we my use the unique information we collect about participants to inform them of further recreational and cultural opportunities,
Add the possibility for participants to decide whether they will accept promotional material, preferably as an opt-in choice. See also Jakob Nielsen's column on "Request Marketing".
Should security officers have unrestricted access to everything on a network? A security officer with the ability to shut down servers, disable services, etc. scares the hell out of me and my coworkers.
Well, she needs that kind of access if she is to become a proper BOFH.
How, despite the thousands of eyes that look at it ever day, did these problems not reveal themselves earlier?
Because only very few of those eyes are looking at the code. Most of them are just looking at a list of programs running on their system with BIND in it. They never bother (nor have time) to look at the actual code.
For reverse engineering like this I'd recommend SNiFF+
I'll second that. I've used SNiFF+ for a couple of years now. It may be clunky at times (especially on the Windows platform) but it is an industrial-strength tool - unfortunately with an industrial-strength price-tag.
It isn't because they are not program errors. The user's computer does not have adequate hardware resources for the work the user attempts to do. If a program must handle that kind of errors, we need to find a way for programs to perform hardware upgrades on the fly.
In other words: Don't kill the messenger bearing the bad news.
The Register has an interesting piece on a leaked internal Microsoft email describing how MS will go about product placement (including, of course, Win XP) in the news media this week.
If they want to start programming on their own, I'd probably suggest Python or soemthing like that.
Denmark too. TDC (the major tele operator in Denmark and the only operator for NMT) recently offered all their NMT customers a GSM account as replacement for their current to-be-phased-out NMT account.
Sure. But it's here now and it does work.
And when roaming wireless (802.11-style) networks arrives, they'll be working on something even more exciting. Will you wait for that too, then?
On the contrary, being able to write native MS-Word documents is absolutely essential. Otherwise you will not be able to exchange documents with your co-workers who are still using MS-Word.
It comes down to what Joel Spolsky calls "eliminating barriers to switching". And it is not only barriers to switching in. Being unable to switch out if something turns out to be a bad decision (e.g. having dozens of documents that can only be converted to MS-Word using cut-and-paste - and you don't have time for that) will also prevent people from adopting another word processor.
Now even rounder. Get this significant upgrade from version 3.1415926535897932384626433832795.
Can't have it both ways and U.S. laws give the protection to the consumer. This isn't something a company can chose to opt out of.
So do most European countries. But there's a limit: our laws do not protect the consumer from himself. Around here we assume that people can think for themselves and if they can't, it's their own bloody fault.
BTW, we also have fewer lawyers over here...
I'm right handed but when I started using a mouse, a co-worker advised me to use my left hand for the mouse.
His reasoning were that it is equally awkward whichever hand you use when you're a beginner. Moreover, you can not only write with your right hand but also use the arrow keys and the number-pad and the mouse simultaneously. And yes, I often find that I have the left hand on the mouse and the right hand on the arrow keys.
And yes, I can use a mouse with my right hand but it works better when I use my left.
- Visual SlickEdit: Right click on the function name, select go to definition, select prototype.
- SNiFF+: Right click on function name in the function list, select "Show declaration".
In both cases the editor opens the relevant header file and places the cursor on the function definition. GUI's aren't just editors with an integrated debugger. Any decent GUI (or at least the ones I would want to use) include extensive source code browsing facilities.Money.
Let's face it: If you talk technical details most managers will get that blank stare after a while. Either they don't understand what you are talking about or they are not interested, probably both.
But if you can show them how to save money on the bottom line, they will listen to you. And yes, you can boil it down to money. Better code means less time spent on correcting errors, time which most likely is not billable. If that time (a.k.a. cost) can be removed or better yet converted to billable time, it will affect the bottom line positively.
So in order to be allowed to make better quality, you have to calculate how much it will save on the bottom line.
Also, be honest and don't oversell your stuff. You may think that what you propose will earn say a 20% saving. Tell your manager that the saving will be at most 10%. Why? Because you will most likely run into snags and teething troubles that will diminish the initial savings. And if you don't, well, performing better than promised is usually not a sin.
Another explanation might be that your friends are knowledgable computer users who are able to stop such a thingie in its tracks?
Incidentally, I have received one (1) mail with SirCam in it so far.
Borland have created the software so they have the right to choose the license.
The GPL does not mean "free as in beer". You must pay when you use Kylix - not with money but with the software you create with Kylix. If that is unacceptable to you then use something else for your programming.
GPL == TANSTAAFL
My setup is:
- Psion 5mx running Opera (for
/. and such)
- Ericsson SH888 for connectivity - will upgrade to an Ericsson R520M with GPRS RSN.
- HP 215 camera with Compact Flash cards that can be read by the 5mx. Yes, this is not the newest model that you can get - but it was cheap.
- TomTom GPS with Roadplanner for Europe. For use when travelling long distances by car. Otherwise, I use a map (hint: it doesn't run out of batteries)
Linux is not supported but I can still hack 'cause I've got the EPOC SDK. IM is not supported but I don't use IM anyway so that's not important to me.But being able to grab a photo, chuck the CF card into the 5mx and fire off an email with the picture attached, all within 15 minutes - that's cool!
And best of all: I have all this right now :-)
Okay, this link describes usability tests on web-sites but but the basic principle outlined here would also apply to applications - and it would tie nicely into the "release often" paradigm.
I'll second that. It is a site worth returning to.
None of us have of course ever committed any of the sins listed here - well, erm...
In fact, all the SW-developers on the project I'm working on right now are more or less ready to kill for faster processor. Unfortuantely the processor board is an in-house design so we have to live with it.
- During construction you want a call to virtual function using a pointer of type base class to the object being constructed to go to the base class version of the function.
- During normal runtime you will (of course) want the same call to go to the derived class version of the function.
So for all calls to virtual functions using a pointer to the object, the program must check whether it is constructing of the object that is pointed to. Depending on the outcome of this test it will then either call a function found using the type of the pointer or use the object's vtable.Maybe you could do some neat stuff if this was legal. But will two different behaviours for the same call make C++ programs easier to understand?
I think not.
If a couple of mouse-clicks can help take that pain away from just one family, it's worthwhile. Surely.
Thanks. You helped me make up my mind. I will install the screensaver tonight and add my little bit to the research.
And I too know how it feels. My mother-in-law died from cancer i December last year.
Ebbe
P.S.: My wife (she's a GP) says that the chance of surving prostate cancer is in the upper nineties.
...can be found right here.
Add the possibility for participants to decide whether they will accept promotional material, preferably as an opt-in choice. See also Jakob Nielsen's column on "Request Marketing".
Well, she needs that kind of access if she is to become a proper BOFH.
Because only very few of those eyes are looking at the code. Most of them are just looking at a list of programs running on their system with BIND in it. They never bother (nor have time) to look at the actual code.
I'll second that. I've used SNiFF+ for a couple of years now. It may be clunky at times (especially on the Windows platform) but it is an industrial-strength tool - unfortunately with an industrial-strength price-tag.