In order to 'just work' the UI must function exactly as expected. Expected by who? NOT by you, the coder, but by the user. Which user? The least experienced user you can find. Their expectations will be pure, unfiltered, unbiased, uninformed, and will lay every flaw in your UI design bare. Want to know how the UI menus should work on your cell phone? Give it to grandpa and ask him. Why? Because he won't put up with clicking 18 buttons through a menu tree to get to the second most commonly used feature of the device.
That reminds me of a Peter da Silva quote I stumbled on yesterday:
Apple's original usability studies contradicted the Xerox ones. The
difference? Xerox studied people who were used to the idea of computers
and user interfaces. Apple studied random lusers.
If I am forced to use a GUI application, I sure as hell don't want one
tested on computer illiterates.
Would I buy a knife tested on 6-month-old toddlers?
A bike tested on overweight grandmothers?
A single malt tested on teetotallers?
[copied from the guidance] Is the article available on a wide scale commercial basis and sold through legitimate channels?
This continues to amaze me.
People still don't get that most of the core internet infrastructure software
(from IP stacks to web servers and hacker tools)
is Free Software.
It is as if it's too hard to imagine real people doing something worthwhile
without charging money for it...
so it is easier to invent a fantasy land where big business produces everything.
The first Windows XP was something that was avoided by most for over a year. Win2k was stable, rock solid, why upgrade for the eye candy?
And now everyone believes XP is the second coming or something. Just hurts your head sometimes...
Not me.
I run Windows 2000 at work, and it's good... considering it's Windows.
It looks like NT4, but never BSODs and can take USB devices.
No added silliness.
It's good to bring the 'mind set' of one language to another. While it's not always practical, it's often useful to imagine how you could reproduce one neat feature of a particular language or environment within the constraints of another.
It's not so good when you're the maintainer, and the previous programmer went:
"Oh, I don't like/understand C++; I'll just pretend it's Java/C/Perl!"
You need one mind set - the native one - for every language you use,
or you're going to write unmaintainable code.
Of course, knowing another language well and being able to
reflect on the similarities and differences is a good thing.
I guess this is slow news day. Using bits of code without writing everything from scratch - how novel! How controversial! Is there anyone who doesn't do this? What kind of skull-shattering boredom do you have to endure before you start writing blog entries about this?
It might be a new idea for more people than you think.
There is this ideal picture of people writing The Perfect Software from scratch,
isolated from the rest of the world.
And there is the other ideal, people assembling The Perfect Software from various
Java frameworks with catchy names.
It is a good thing that somebody points out that it is OK to just cut-and-paste
code; that you don't have to make it a bloody library with the perfect API first.
Secondly, here's my solution: [...] I made a script that runs every night and copies a "current" folder to one named by date and then rsyncs the new stuff onto the "current" one. That way, I have a history of all the files for every day I ran the script, and I only store the duplicates because I hardlink it. This is the script (public domain, since it took me 3 minutes to write), feel free to clean it up a bit since I didn't really feel like coding at 5 am:
Way too little error checking for a backup script, I think.
makes it difficult to the receiver to be reasonably sure the file and its reference (the email) will always be together (anyone who has ever come back to an email with an outdated HTTP link in it should understand this).
What is worse: a broken HTTP link in a mail, or a mail with an obsolete Word document attached? At least in the first case you know something has changed.
Much of the things (at least most inter-office document passing) people do with mail attachments
should be done by keeping those documents under version control,
and pointing in the mail to the document in the repository
(and maybe a specific version).
If you want encrypted mail, run the encryption yourself... GPG is freely available.
I don't know anything about "HushMail", but I assume it has some kind of Web interface? Are there any alternatives for people that must use Web mail (for example on the road a lot)?
You don't have to use Web interfaces in order to work remote.
Log in to your company server using ssh, and do your mail stuff there.
There are ways of coping with insecure clients, and ways to forward GUIs
over the ssh connection.
Could some type of encryption program be carried on a USB drive that might translate the message locally into code?
Yes. GPG again. If you are at a sucky hotel computer,
you'll probably want GPG to ASCII-encode the encrypted+signed data,
save it to file, and add the file as an attachment. Less convenient than having the
mail program encrypt and sign the whole mail. And if you cannot trust the computer
you are on, you still have a problem.
30 minutes? SO much for QA. Care to give me the company name, so I never hire you?
Sometimes (just sometimes) it's obvious what the bug is, and it's obvious
that testing is meaningless.
Would you want to hire a company which does meaningless things to please you?
No the PC will be a Dying market but will take a Long time before it dies. Look at the Mainframe market it is a dying market but it never completely dies.
Change is scary but it will happen the trick is try to keep your sills diverse enough to account for this.
Few of us depend on annual PC sales for our income.
This decline in hardware sales might just mean people realize that the computer
they have is good enough for they few things they do with it.
Or, more likely, that they have found another meaningless money sink.
And if it it does mean fewer people use home computers, that's kind of good news for some of us.
The next generation will lack talented, self-taught programmers, and there will be plenty of
work for someone like me, until I'm too old to remember the Emacs keyboard combinations.
This article is no exception. He is not wearing the uniform of others, but he is trying to intimidate people with his own styled appearance. If you have this hairstyle and are wearing these colors, then this somewhat reminds me of Dirk Gently, self-styled holostic detective, sporting an utterly unfashionably collection of garbs, but still, self-styled and cultivated and consciously so because of the effect it creates and has on people.
This discussion is silly. I saw RMS speak a few months back.
There was nothing wrong or exhibitionistic with the way he dressed.
His hair and beard were reasonably trimmed.
He wasn't even unusually fat.
Anyway, what will annoy the Suits is what he says and how he says it.
As soon as he opens his mouth, it doesn't matter if he wears
Armani or a purple Barney suit.
Sure EMACS is powerful. But that's almost irrelevant to the needs of program documentation. Mostly documentation authors don't need a lot of power.
I think you are underestimating the usefulness of a good text editor.
Everybody (especially but not exclusively, programmers) need a powerful editor.
I don't know anything about the serious alternatives, but there's
a huge gap in performance between a good Emacs user and someone
who's trudging along in MS Notepad, or MS Word or even a simple vi clone.
M-x dabbrev-expand is one obvious example.
They need a modicum of communication ability, a basic text editor, and a willingness to do a not especially fun job.
Writing the documentation on something you are proud of
is and should be fun.
It's also a form of debugging; if it's difficult or tedious to document your program,
there is probably something wrong with it.
In other words, it's a smalltime hobby site, and you're not a web developer. That's fine, and I agree that it's quite nice and reassuring to simplify like this where possible. However...
I think the grandparent thinks of it as "not complicating"
rather than as "simplifying"...
I also find it slightly amusing that you can tell from this
that he's not a web developer;-)
To be frank, I never liked the mbox approach (one big file per folder).
Agreed, this approach causes problems with virus scanning as well.
To be frank, I never liked virus scanning.
I like mbox, and I'd love it if it wasn't for Quoted-Printable.
Easy to browse as one big file, easy to grep, easy to gzip up if it's old and takes too much space.
And I do keep all my old mail, from 1991 and onwards.
But that's just the way I work; I dislike throwing away personal things.
other ides, while also providing at least the bulk of the above, often tend to do things with hidden side files ( all of them have their own project metadata files ), or just 'automagically' do things for the user
I can believe other IDEs are worse (I have only used/tried to avoid using Visual Studio 6),
but surely Eclipse keeps some project metadata in files, too?
For those of us who want freedom to choose non-Eclipse tools, this is bad enough.
The perfect IDE would read all its project-wide metadata from a Makefile,
or Ant or whatever. That's "perfect" in the sense that people in a project
can choose to use the IDE or not, without hurting anyone else.
Unfortunately, I think in the general case you cannot extract a list of project
files from a Makefile without executing it...
... there is a fear of pluralism and variation in many organizations:
"there must be One Single Way To Do Things, or people will be confused".
But I am shocked to find this thinking in a CS department --
back when I was a CS major,
noone gave a shit what text editors we used, and we were expected not to need
help learning them. Some teachers would probably have accepted hand-written
programs.
At the university i attend as a CS major, there is a big push in the CS classes to use the Eclipse IDE, and trying to use any other one is frowned upon and teachers try to pressure you into switching due to some hidden policy.
My question is anyone have an earthly idea why eclipse is being pushed so much?
Prolonged use of Eclipse causes brain tumors, which release mind control
substances, which make you want to convert others to using Eclipse. It's like in
Invasion of the Body-Snatchers, only I as far as I know no alien invaders are involved.
Seriously, I think
Another question:
why does everyone assume you need an IDE, even for simple lab assignments?
[Dune prequels suck] THANK YOU. Thank god I wasn't the only one who noticed this
Good that you noticed, but if you had been a bit more clever,
you'd never have considered reading the prequels in the first place.
The Dune books were one giant Frank Herbert monologue; noone
can take over such a thing without damaging it.
I remember reading an article in National Geographic many years ago about this. The ultimate speculation was that birds of prey (like ravens) had descended from velociraptors.
Uh, ravens are not birds of prey, they are (like most birds) passerines.
Sounds very speculative, if you ask me.
I find it peculiar and cognitively impaired that one would think that freedom would somehow belong to an inanimate object (code) instead of a free-thinking, free-rolling human being.
And I mean no offense, it's just my opinion and I understand the whole Linux camp seems to think that way.
I am in "the Linux camp", and I have never, ever come across the notion of
code having civil rights -- other than as a witticism or a bad metaphor.
You have been trolled.
Pointers, inline coding and inline assembler are features you expect from a "robust language"? Well, as long as you don't need robust applications I suppose.
Last time I looked, Pascal didn't even have real pointers.
isn't that ^foo stuff really what the rest of us call references --
guaranteed to point to one certain object over its lifetime?
OTOH, "last time" was in 1990 or so, and it might have been Modula-2.
Keeping track of the Pascal dialects is not my favorite hobby.
The best way to start with astrophotography is to get a good camera (probably an SLR) that has a bulb mode, a decent tripod and a set of binoculars. You can probably do all that for $1000 if you go with the non-cutting edge model of camera.
The binoculars let you look at things, the camera does the astrophotography (through a regular lens). You can photograph a LOT through a normal (35-50mm lens) and you can make fairly long exposures without worrying too much about star trailing.
Not as I remember it: it doesn't take long to get annoying trails using a 50mm objective.
When you're addicted and you've saved up another thousand or two, get a good equatorial mount. Put your camera on it, and do longer exposures. Then, when you've saved up more money, buy the actual telescope. You've already got the mount to put it on, the camera to attach to it to and the experience to do astrophotography with it. [...]
I have great photos (esp. one of Orion) which I took back in '83 or so using Dad's old
(already at that time) Canon AE-1,
50mm (or 28mm?) mounted on the side of my cheap equatorial mount telescope. Track a star in the telescope,
and you get nice, round stars.
For good photos of planets and nebulas, I guess you have to spend a lot more --
but photos of whole areas of the sky are also very satisfying.
This where a zero config version of NTP servers and client would be useful
Zero-config? Hell, they could start by fixing the documentation and user interface.
Last time I checked they had no normal man pages, and the diagnostics included
things like bit fields expressed in hex ("... kernel time discipline 2001" versus "2041", WTF?)
That reminds me of a Peter da Silva quote I stumbled on yesterday:
Apple's original usability studies contradicted the Xerox ones. The difference? Xerox studied people who were used to the idea of computers and user interfaces. Apple studied random lusers.
If I am forced to use a GUI application, I sure as hell don't want one tested on computer illiterates. Would I buy a knife tested on 6-month-old toddlers? A bike tested on overweight grandmothers? A single malt tested on teetotallers?
This continues to amaze me. People still don't get that most of the core internet infrastructure software (from IP stacks to web servers and hacker tools) is Free Software. It is as if it's too hard to imagine real people doing something worthwhile without charging money for it ...
so it is easier to invent a fantasy land where big business produces everything.
Not me. I run Windows 2000 at work, and it's good ... considering it's Windows.
It looks like NT4, but never BSODs and can take USB devices.
No added silliness.
It's not so good when you're the maintainer, and the previous programmer went: "Oh, I don't like/understand C++; I'll just pretend it's Java/C/Perl!" You need one mind set - the native one - for every language you use, or you're going to write unmaintainable code.
Of course, knowing another language well and being able to reflect on the similarities and differences is a good thing.
It might be a new idea for more people than you think. There is this ideal picture of people writing The Perfect Software from scratch, isolated from the rest of the world. And there is the other ideal, people assembling The Perfect Software from various Java frameworks with catchy names.
It is a good thing that somebody points out that it is OK to just cut-and-paste code; that you don't have to make it a bloody library with the perfect API first.
Way too little error checking for a backup script, I think.
Easy Automated Snapshot-Style Backups with Linux and Rsync is the standard resource for this kind of thing. He points to various scripts much like yours (but I wrote my own anyway).
What is worse: a broken HTTP link in a mail, or a mail with an obsolete Word document attached? At least in the first case you know something has changed.
Much of the things (at least most inter-office document passing) people do with mail attachments should be done by keeping those documents under version control, and pointing in the mail to the document in the repository (and maybe a specific version).
You don't have to use Web interfaces in order to work remote. Log in to your company server using ssh, and do your mail stuff there. There are ways of coping with insecure clients, and ways to forward GUIs over the ssh connection.
Yes. GPG again. If you are at a sucky hotel computer, you'll probably want GPG to ASCII-encode the encrypted+signed data, save it to file, and add the file as an attachment. Less convenient than having the mail program encrypt and sign the whole mail. And if you cannot trust the computer you are on, you still have a problem.
Sometimes (just sometimes) it's obvious what the bug is, and it's obvious that testing is meaningless. Would you want to hire a company which does meaningless things to please you?
Few of us depend on annual PC sales for our income. This decline in hardware sales might just mean people realize that the computer they have is good enough for they few things they do with it. Or, more likely, that they have found another meaningless money sink.
And if it it does mean fewer people use home computers, that's kind of good news for some of us. The next generation will lack talented, self-taught programmers, and there will be plenty of work for someone like me, until I'm too old to remember the Emacs keyboard combinations.
But that's also the sad news ...
This discussion is silly. I saw RMS speak a few months back. There was nothing wrong or exhibitionistic with the way he dressed. His hair and beard were reasonably trimmed. He wasn't even unusually fat.
Anyway, what will annoy the Suits is what he says and how he says it. As soon as he opens his mouth, it doesn't matter if he wears Armani or a purple Barney suit.
I think you are underestimating the usefulness of a good text editor.
Everybody (especially but not exclusively, programmers) need a powerful editor. I don't know anything about the serious alternatives, but there's a huge gap in performance between a good Emacs user and someone who's trudging along in MS Notepad, or MS Word or even a simple vi clone. M-x dabbrev-expand is one obvious example.
Writing the documentation on something you are proud of is and should be fun. It's also a form of debugging; if it's difficult or tedious to document your program, there is probably something wrong with it.
I think the grandparent thinks of it as "not complicating" rather than as "simplifying" ...
I also find it slightly amusing that you can tell from this that he's not a web developer ;-)
To be frank, I never liked virus scanning.
I like mbox, and I'd love it if it wasn't for Quoted-Printable. Easy to browse as one big file, easy to grep, easy to gzip up if it's old and takes too much space.
And I do keep all my old mail, from 1991 and onwards. But that's just the way I work; I dislike throwing away personal things.
I can believe other IDEs are worse (I have only used/tried to avoid using Visual Studio 6), but surely Eclipse keeps some project metadata in files, too? For those of us who want freedom to choose non-Eclipse tools, this is bad enough.
The perfect IDE would read all its project-wide metadata from a Makefile, or Ant or whatever. That's "perfect" in the sense that people in a project can choose to use the IDE or not, without hurting anyone else.
Unfortunately, I think in the general case you cannot extract a list of project files from a Makefile without executing it ...
Damn, pressed the wrong button.
But I am shocked to find this thinking in a CS department -- back when I was a CS major, noone gave a shit what text editors we used, and we were expected not to need help learning them. Some teachers would probably have accepted hand-written programs.
Prolonged use of Eclipse causes brain tumors, which release mind control substances, which make you want to convert others to using Eclipse. It's like in Invasion of the Body-Snatchers, only I as far as I know no alien invaders are involved.
Seriously, I think
Another question: why does everyone assume you need an IDE, even for simple lab assignments?
You don't -- the term has been in use for non-pirate things for more than 100 years. (It even has positive connotations, much like "rebel" or "Robin Hood".)
Good that you noticed, but if you had been a bit more clever, you'd never have considered reading the prequels in the first place. The Dune books were one giant Frank Herbert monologue; noone can take over such a thing without damaging it.
Uh, ravens are not birds of prey, they are (like most birds) passerines. Sounds very speculative, if you ask me.
Seats? What perverted kind of band would play in a place with seats?
(But on your main point, I agree. Albums are worth money; concerts do not replace albums.)
I am in "the Linux camp", and I have never, ever come across the notion of code having civil rights -- other than as a witticism or a bad metaphor. You have been trolled.
Last time I looked, Pascal didn't even have real pointers. isn't that ^foo stuff really what the rest of us call references -- guaranteed to point to one certain object over its lifetime?
OTOH, "last time" was in 1990 or so, and it might have been Modula-2. Keeping track of the Pascal dialects is not my favorite hobby.
Not as I remember it: it doesn't take long to get annoying trails using a 50mm objective.
I have great photos (esp. one of Orion) which I took back in '83 or so using Dad's old (already at that time) Canon AE-1, 50mm (or 28mm?) mounted on the side of my cheap equatorial mount telescope. Track a star in the telescope, and you get nice, round stars.
For good photos of planets and nebulas, I guess you have to spend a lot more -- but photos of whole areas of the sky are also very satisfying.
Zero-config? Hell, they could start by fixing the documentation and user interface. Last time I checked they had no normal man pages, and the diagnostics included things like bit fields expressed in hex ("... kernel time discipline 2001" versus "2041", WTF?)
But I realize it's a complex topic.