Installing a program may be easier for you; in my user role, it's definately not easier for me to find, install, start, and learn a new program than to click on a web link. As a programmer, it's also harder than writing the code for a web site, especially when considering the cross platform support issues.
Let's look at the kind of apps we (my partner and I) deliver over the web for clients:
Discussion board. Just like Slashdot would need extensions for moderation, we would need other special NNTP extensions, plus the ability to show ads.
Ecommerce. Presentation and special partner support was crucial; this would require a special program to view the code.
Search system for cars/mobile homes/MCs/etc. Showing the structured search pages is layout-sensitive (to make it user friendly); this would require some special program, not a protocol. Same with the upload support that's there.
Administration tools for all of the above
Remotely administered PDF generation for ads print publication (we generate whole magazines)
Content management systems for the documents that *are* on the web
...
There's probably hundredes of implementations of most of the above, all with small differences, with the small differences creating different user experiences, fitting for slightly different audiences and tasks. Making the programs run from the web instead of through special protocols with programs installed on each machine *works better*. And making them work through a limited interface (the HTML interface) makes them close enough for people to figure out. With the interface weirdness many people are able to do through the web, no way I'd want them to have more capabilities at their disposal;)
5 day a week of exercise isn't enough? Generic weightlifting + cardio + stretching, though, not the specific exercises you pointed at (which looks good). I also used ergonomic keyboards and tried to ensure that the ergonomics of my work situation was OK.
Exercise helps; correct diet[1] helps; better ergonomics helps; and for me, switching from Emacs to vi helped more than these combined.
Look, it's not like I don't know emacs or key mappings or etc. I know emacs, I used it for almost a decade including a fairly extensive bit of customization.
I know emacs and just don't feel it's worth using, as a combination of an inferior vi emulation and slower load times. The vi keyboard layout was something I got addicted to after learning it - the chord system there is, in my personal opinion, WAY superior to what emacs does. It's a bitch to learn, though.
I had those remaps. It *still* was enough to zap my wrists, after about 8 years of use. I don't remember how much I used Alt or Esc for going to meta - it's a long time ago. I know I used both depending on the particular combo I used.
As for a year off from work: For some definition of "off from work". A lot of sickdays and half days over a long period; I was working in positions where going fully off wasn't much of an option.
What I noticed was that the moment I switched to vi I got half as much finger movement, and the pain started going down instead of up. Even though I'd tried to be careful with how I used emacs.
I've also talked to others that's had the same results. You'll note that the originator of Emacs has gotten so much damage that he can longer use a keyboard at all[1]...
Eivind.
[1] I think that's true at the moment, I know he had a period where he couldn't, then he could again, and now I think he can't again. Not really sure.
Also, using Emacs will give you significant time off, as your wrists get pounded by the Ctrl-Meta- combos all the time, and you end up with RSI.
Or at least it did for me. Emacs has probably given me at least a year of time off (taken in small pieces and with some extra pain added in.) Apart from that (and the load time), it is a brilliant editor.
Yeah, and usually getting a page to render on a PDA, phone, etc isn't worth it to the client. It's just too expensive compared to dropping those 2% of the market. (I wish it was different, of course.)
Make sure you sort to the top of the submission queue, by using a name that start with a character with a low ASCII index. Submit lots of articles.
Finished.
Eivind.
Several people that know the entire codebase and work in it
Good naming conventions
Well documented and good development (build/install/test/version control/releasing engineering) procedures
Good codebase design
probably count for more than documentation of the code base per se.
Documentation can help speed people up, of course - yet errors in each of the above can kill a codebase dead. "Several people that know the entire codebase and work in it" helps keep the other points reasonably OK and is a sort of walk-out-of-jail free card - yet just a sort of...
I know exactly how NULL works. I just consider the introduction of tristate logic to be a bad idea. In my opinion, the absence of knowledge can better be represented by the absence of a row than by a field containing NULL, as both computers and people are better at handling binary logic.
That NULL represent "unknown" is correct in theory; alas, NULL is FALSE in most cases when you end up in an boolean logic context in practice.
Example: With items containing a bunch of items, both SELECT * FROM items WHERE NULL > 0; and SELECT * FROM items WHERE NULL
The alternative would be to make the query fail the moment a NULL was encountered in such contexts, which makes for a lot of other problems.
This tristate problem also shows up on the level of query optimizing/handling. Without NULLs, a statement can be represented by a logic tree (a NAND tree), in a canonical/normalized form, allowing comparisons of different queries, a bucnh more optimization of the code due to this, and easier understanding of what's going on.
The problem with NULL is that it doesn't fit into binary logic.
Both
0 < NULL
AND
0 > NULL
is false.
This mess up a bunch of logic.
For your case above, I'd code the answers something like this:
CREATE TABLE answers ( question_id INT UNSIGNED NOT NULL REFERENCES questions(question_id), answer INT UNSIGNED NOT NULL, user_id INT UNSIGNED REFERENCES users(user_id), PRIMARY KEY(question_id, user_id) );
An answer is represented by a row (question_id, user_id) existing, lacking information is represented by the row not existing.
Revision control, including full description of each commit, and including all relevant files (yes, config files too.) Have people review their own diffs before they commit them. I use CVS (though Subversion is probably better, and darcs/arch/git/etc even better than that.)
Bug tracker of some kind. The goal is to keep this comletely clean. RT3 works.
A reviewing code nazi, nagging about code style for each thing that's committed to the version control repository until the style is in sync.
A standardized install that installs everything: No manual tweaking, no manual installs.
While I love unit tests etc, I think the above are the most critical parts. I also like setting up a Wiki and logging what people actually do when they do repeated tasks. These are second to the above, though.
Point 3 will often seem right, yet it's not. For good pieces of software, it is possible for another programmer to have more familiarity with a piece of code than the original author. This happens regularly in large projects that live long.
Point 4 is right and wrong. Programmers aren't interchangeable, yet the difference between an original author and a new programmer does not have to be significant. In the circles I move, it's actually not that uncommon for a different programmer to be *more* effective than the original author, just due to plain being a better coder.
5. is an exaggeration, except for very low quality code. Except if you see writing a program as maintenance on the blank file, and extensions thereof.
6. is sort of true, depending on what "any accuracy" means. It's usually possible to predict within +-30% for a decent codebase after estimation training and environment calibration. Ie, you have to estimate a ton of times, you have to have a decent codebase, and you have to measure how far off your estimates are (finding the correct expansion factor for your environment).
Let me rephrase: "As someone who trades stock, I don't really see this the same way. Generally, I will give resources to any company that might give me a profit in the future (through increased share price), even if by doing that I directly support evil behaviour."
Because, make no mistake: What we do when we invest is decide to allocate resources to the company in question. By doing this, we are giving them resources to do whatever they are doing. This is our responsibility.
IBM are large enough to be sort of a patent universe in itself; it is one of the worlds top holder of patents. They stated that their patent portfolio was worth roughly 10 times as much to them defensively (blocking lawsuits against stuff they'd made internally) than in licensing fees.
The way I read that, according to IBM the net value of patents is highly negative; roughly 10 times more blocking that enabling (at least.)
Eivind.
Per your postulate, "Intelligent Design" would be disproved by the observation of species creation in the wild. So I pointed at observation of species creation in the wild.
Your introduction of Creationism at that point is, well, just weird.
>> creation of species and increase of information (survivability) through mutations is WELL covered.
> Speciation is well covered.
So why are we debating it at all? This is what most IDers start going on about. There's that and the information increase claim - and those are more or less IT. (Though various creationism arguments will rear their ugly heads again.)
> Increased survivability is a gimme. But you demonstrate ignorance if you equate increased survivability with increased information. It's possible for information to decrease to increase survivability.
I do not equate them; I just covered both attempted "arguments" at once (as I've seen IDers come up with both.)
BTW: When you say you're a sceptic: A sceptic to what? It's usually used against the paranormal, yet I'm not sure if that's what you mean here...
I'd recommend looking up the biological / game theoretic basis for values. "Religious" or "spiritual" seems to just be a complication...
Also, I recommend looking up the amount of "moral problems" in religious vs secular areas. Divorce, teenage pregnancy, STDs, violence, etc, etc, etc - they tend to follow the religious.
My personal view is leaning more and more towards "Religion and spirituality is evil. They both put Something Else as more important than the basic human values, and that lead the practitioners to be evil."
Most - though not all - atheists I know work carefully on their ethics and try hard to be good people - and try hard to understand what being a good person is. Most - though not all - religious or "spiritual" people I know "follow their feelings" and do evil.
It's sad, in a way - religion can be a great solace, and I'd be all for it if it didn't lead to evil.
Look up "ring species". Then go dig your "Intelligent Design" into a hole.
I am sick and tired of this idea being repeated - it is, basically, a lie. The people going around repeating it hasn't taken the time to study the relevant evidence - instead, they've been looking for "flaws" and have totally ignored the arguments against their "flaws".
We lack evidence for abiogenesis; creation of species and increase of information (survivability) through mutations is WELL covered.
Google does not have ads on those pages, and it's unclear if they're going to have ads on the pages (probably if they mix it into the main search.)
I think the issue is much simpler: Competition. Presently, new books are only to a limited degree competing with old books. With better search functionality, new books will compete more with old books, so the new book market will be comparatively less lucrative.
I find IRC more useful than web boards or Usenet for a lot of types of technical discussion, including for programming, where I get useful answers. This includes for technical areas where I've got significant experience - there's usually somebody available to discuss an arcane design issue.
Learning to navigate IRC most usefully takes a few years, though. I've been on IRC maybe 15 years, and programmed for 20-something years - and IRC is still useful...
Let's look at the kind of apps we (my partner and I) deliver over the web for clients:
There's probably hundredes of implementations of most of the above, all with small differences, with the small differences creating different user experiences, fitting for slightly different audiences and tasks. Making the programs run from the web instead of through special protocols with programs installed on each machine *works better*. And making them work through a limited interface (the HTML interface) makes them close enough for people to figure out. With the interface weirdness many people are able to do through the web, no way I'd want them to have more capabilities at their disposal ;)
Eivind.
Exercise helps; correct diet[1] helps; better ergonomics helps; and for me, switching from Emacs to vi helped more than these combined.
Eivind.
[1] Essential oils are, well, essential.
Cursor keys and general movement in the source is the primary issue, including having to hold down "Ctrl" to do commands.
Look, it's not like I don't know emacs or key mappings or etc. I know emacs, I used it for almost a decade including a fairly extensive bit of customization.
I know emacs and just don't feel it's worth using, as a combination of an inferior vi emulation and slower load times. The vi keyboard layout was something I got addicted to after learning it - the chord system there is, in my personal opinion, WAY superior to what emacs does. It's a bitch to learn, though.
Eivind.
As for a year off from work: For some definition of "off from work". A lot of sickdays and half days over a long period; I was working in positions where going fully off wasn't much of an option.
What I noticed was that the moment I switched to vi I got half as much finger movement, and the pain started going down instead of up. Even though I'd tried to be careful with how I used emacs.
I've also talked to others that's had the same results. You'll note that the originator of Emacs has gotten so much damage that he can longer use a keyboard at all[1]...
Eivind.
[1] I think that's true at the moment, I know he had a period where he couldn't, then he could again, and now I think he can't again. Not really sure.
Or at least it did for me. Emacs has probably given me at least a year of time off (taken in small pieces and with some extra pain added in.) Apart from that (and the load time), it is a brilliant editor.
Eivind (now a vim-user.)
Eivind (Eek).
Eivind.
Make sure you sort to the top of the submission queue, by using a name that start with a character with a low ASCII index. Submit lots of articles. Finished. Eivind.
Eivind.
Each of
- Several people that know the entire codebase and work in it
- Good naming conventions
- Well documented and good development (build/install/test/version control/releasing engineering) procedures
- Good codebase design
probably count for more than documentation of the code base per se.Documentation can help speed people up, of course - yet errors in each of the above can kill a codebase dead. "Several people that know the entire codebase and work in it" helps keep the other points reasonably OK and is a sort of walk-out-of-jail free card - yet just a sort of...
Eivind.
Eivind.
Mod parent up.
Example: With items containing a bunch of items, both SELECT * FROM items WHERE NULL > 0; and SELECT * FROM items WHERE NULL The alternative would be to make the query fail the moment a NULL was encountered in such contexts, which makes for a lot of other problems.
This tristate problem also shows up on the level of query optimizing/handling. Without NULLs, a statement can be represented by a logic tree (a NAND tree), in a canonical/normalized form, allowing comparisons of different queries, a bucnh more optimization of the code due to this, and easier understanding of what's going on.
Eivind.
This mess up a bunch of logic.
For your case above, I'd code the answers something like this:
An answer is represented by a row (question_id, user_id) existing, lacking information is represented by the row not existing.Eivind.
While I love unit tests etc, I think the above are the most critical parts. I also like setting up a Wiki and logging what people actually do when they do repeated tasks. These are second to the above, though.
Eivind.
Point 1 and 2 are fundamentals.
:)
Point 3 will often seem right, yet it's not. For good pieces of software, it is possible for another programmer to have more familiarity with a piece of code than the original author. This happens regularly in large projects that live long.
Point 4 is right and wrong. Programmers aren't interchangeable, yet the difference between an original author and a new programmer does not have to be significant. In the circles I move, it's actually not that uncommon for a different programmer to be *more* effective than the original author, just due to plain being a better coder.
5. is an exaggeration, except for very low quality code. Except if you see writing a program as maintenance on the blank file, and extensions thereof.
6. is sort of true, depending on what "any accuracy" means. It's usually possible to predict within +-30% for a decent codebase after estimation training and environment calibration. Ie, you have to estimate a ton of times, you have to have a decent codebase, and you have to measure how far off your estimates are (finding the correct expansion factor for your environment).
And I totally agree with your last point
Eivind.
Because, make no mistake: What we do when we invest is decide to allocate resources to the company in question. By doing this, we are giving them resources to do whatever they are doing. This is our responsibility.
Eivind.
IBM are large enough to be sort of a patent universe in itself; it is one of the worlds top holder of patents. They stated that their patent portfolio was worth roughly 10 times as much to them defensively (blocking lawsuits against stuff they'd made internally) than in licensing fees. The way I read that, according to IBM the net value of patents is highly negative; roughly 10 times more blocking that enabling (at least.) Eivind.
Your introduction of Creationism at that point is, well, just weird.
>> creation of species and increase of information (survivability) through mutations is WELL covered.
> Speciation is well covered.
So why are we debating it at all? This is what most IDers start going on about. There's that and the information increase claim - and those are more or less IT. (Though various creationism arguments will rear their ugly heads again.)
> Increased survivability is a gimme. But you demonstrate ignorance if you equate increased survivability with increased information. It's possible for information to decrease to increase survivability.
I do not equate them; I just covered both attempted "arguments" at once (as I've seen IDers come up with both.)
BTW: When you say you're a sceptic: A sceptic to what? It's usually used against the paranormal, yet I'm not sure if that's what you mean here...
Eivind.
... and plRuby. (Another poster also mentioned plPhp.)
Eivind.
I'd recommend looking up the biological / game theoretic basis for values. "Religious" or "spiritual" seems to just be a complication...
Also, I recommend looking up the amount of "moral problems" in religious vs secular areas. Divorce, teenage pregnancy, STDs, violence, etc, etc, etc - they tend to follow the religious.
My personal view is leaning more and more towards "Religion and spirituality is evil. They both put Something Else as more important than the basic human values, and that lead the practitioners to be evil."
Most - though not all - atheists I know work carefully on their ethics and try hard to be good people - and try hard to understand what being a good person is. Most - though not all - religious or "spiritual" people I know "follow their feelings" and do evil.
It's sad, in a way - religion can be a great solace, and I'd be all for it if it didn't lead to evil.
Eivind.
Look up "ring species". Then go dig your "Intelligent Design" into a hole.
I am sick and tired of this idea being repeated - it is, basically, a lie. The people going around repeating it hasn't taken the time to study the relevant evidence - instead, they've been looking for "flaws" and have totally ignored the arguments against their "flaws".
We lack evidence for abiogenesis; creation of species and increase of information (survivability) through mutations is WELL covered.
Eivind.
I think the issue is much simpler: Competition. Presently, new books are only to a limited degree competing with old books. With better search functionality, new books will compete more with old books, so the new book market will be comparatively less lucrative.
Eivind.
Different medium. They have different uses.
I find IRC more useful than web boards or Usenet for a lot of types of technical discussion, including for programming, where I get useful answers. This includes for technical areas where I've got significant experience - there's usually somebody available to discuss an arcane design issue.
Learning to navigate IRC most usefully takes a few years, though. I've been on IRC maybe 15 years, and programmed for 20-something years - and IRC is still useful...
Eivind.