Beos has fewer applications, sure, but it also has a consistent interface...
Those two things are related. As soon as you get a real rush of programmers and popularity, you can kissyourconsitencygoodbye.
You're always at the mercy of some idiot who thinks that his "revolutionary new idea" (bitmapped buttons / custom window frame / dark grey on black text) is worth throwing own consitency and ease of use.
Youjustcan'twin,
theyoutnumberyou.
Enjoy it while you can.
I think it's terrific that Linux is used this way but I wonder if it's because of its availability or because of its technology.
I'm involved with a number of high energy physics experiments around the world (from a "physicist needs an obscene amount of computer power but a minimal budget, I try to give it to them" standpoint). Everyone is using Linux clusters at the moment. Why? Two reasons.
The first is price. None of these projects are rolling in money. Saving a few thousand dollars while setting up a hundred node cluster is a big win. The people working on the projects are technically skilled enough that a Unix varient is not significantly harder to use than a Windows variant, so there is no increase in TCO due to support.
The second is trust. They've been repeatedly burned by proprietary software. They run into a problem and the publisher isn't inclined to help (or wants more money than they have to fix it), and they're forced to fine another solution. Linux may not be perfect, but they're free to fix their own problems. They don't view it from a "Free Software is Ethical" view, but from a pragmatic "we've been repeatedly screwed and it isn't happening again" view.
If Linux had an exploit that allowed someone to ssh into your box, su to root, then fsck your harddrive, and a patch wasn't released yet, would you be pissed off that bugtraq posted the code to exploit the bug?
Actually, my Linux system currently supports the ability to ssh into my box, su to root, and fsck my hard drive. I've been known to do so on occasion when I suspect data corruption. In fact, I'll post an exploit to do this right here:
# replace foobar with your username and # example.com with your machine name. ssh foobar@example.com # You'll be asked for your password at this point, # type it in su - # You'll be asked for root's password at this point, # type it in. fsck
It's that easy!
More seriously, assuming that someone posted instructions on how to log in through ssh without a password and become root bypassing the password (and presumably do something a bit more evil than fscking my drives), I'd be happy that someone told me. If they simply said, "I know about an exploit for ssh and su, but I'm not telling you the details," I would be unable to test if my system was at risk and determine if the claimant was telling the truth. And once I know of the risk, I can workaround the problem by disabling ssh and removing the setuid bit on su while I wait for the patches to arrive.
Then after this provocation, Israel attempts to...take out their entire neighborhood with tanks.
...It's not terrorism when you're responding to an attack, and trying to localize your response to the perpetrators.
You consider a destroying a neighborhood a localized response? I pray you never get a law enforcement position. "Well, we knew that the suspect was somewhere in the neighborhood, so we blew the whole thing up."
The Palestinian suicide bombers and ambushes are morally reprehensible, and those organizing the attacks should be arrested, tried for thier crimes, and sentenced. However, destroying the homes of family members of suicide bombers, destroying neighborhoods, and assassinating various people suspected (but not tried in court) of orchestrating these attacks is just as wrong. Is it any wonder that the Palestinians are desperate? Did your father act as a suicide bomber? Say goodbye to your home. Accidentally live too near to a terrorist and become an accidental casualty to an Israeli bomb or bullet? Tough luck.
The entire situation is a giant mess. The leaders on both sides are acting like idiots and getting alot of innocent people killed. Both sides are left feeling desperate and lashing out randomly at each other, reinforcing their desperation.
I truly agree. I used a handful of banks and inevitably got treated badly.
I got the distinct feeling that they were insulted that I would actually
physically show up at their branch and want to deposit some money. The straw
that broke the camel's back was their repeatedly sending letters to the extent
"there has been a slight slip up with your account, if you'll just sign this
form we'll fix it," attached to forms to take my free checking account and
transform it into an account with a monthly fee.
So I switched to a credit union. The change in attitude was refreshing. I
always feel welcome. The only "No Surcharge, even if you're out of state with
a bank we hate" ATMs in the city are run by the various credit unions. The
staff I interact with aren't the "twenty-something ditz who I'll never see
again", they're older and have experience. I respect that.
I'm happy with my credit union (CUNA Credit Union, south-central
Wisconsin), and a number of my friends are happy with theirs (UW Credit Union, Wisconsin). We all agree that
while our credit unions aren't perfect, they are vastly superior to the various
banks in the area.
I'm sure there are scummy credit unions, but if you're having bad
experiences with banks, check out some nearby credit unions. (Credit unions
have various requirements before you can become a member, something to do with
their legal status as a credit union. Fortunately most have a "if you live or
work within X miles of any of our branches, you qualify." Thus, you don't need to be a student or staff member of the University of Wisconsin to join the UW Credit Union.)
Is there a reason that most online comics are in Black and White?
There are lots of possible reasons, the specific reason will vary from comic to comic, but I expect one of the following will account for most:
The newspaper comic tradition. Newspaper comics are generally black and white most of the week and color on Sunday. Some web comics follow this behavior out of traditional, a desire to become syndicated in newspapers, or simple habit.
Not enough time. Color takes time to add. Especially for those artists doing their web comic in their spare time, they may not have the time to do up nice colors.
Artistic decision. A black and white comic has a very different feel from a color comic. Scott McCloud, in his book Understanding Comics points out some key artistic reasons that you might want to stick with black and white.
Minimizing bandwidth. A black and white image will generally compress better than a color image. Bandwidth is money.
Color is not always "better", it's just different.
Because with Java and C#, it's very, very hard to write code that can break the system it's running on.
If I can break the system I'm running on with a user level program, be in C, assembly, or whatever, the operating system has a bug and should be fixed. Once your running in the kernel level, well, you can pretty easily break things in any language.
Languages like Java and C# give you controlled, well-known failure states for certain categories of bugs (you can still walk off the end of an array hosing your program, but the behavior is well defined, unlike C or C++). These languages also restrict your ability to specify unsafe things, but in doing so they take away your ability to specify certain useful ways of doing things. But there are still huge numbers of ways to put bugs into your programs in any language. Java and C# are not magic bullets, they're simply points along a spectrum of safety, power, and expressiveness.
A Cease and Desist may just be a letter, but so is a "Your rent / mortgage payment / credit card bill is late" statement.
In practice the average American citizen has been increasely pushed away from dealing with the legal system. It's been made perfectly clear to him that he isn't smart enough to deal with it, that he needs an expensive lawyer to deal with it in any way, and that even if he is right that he can be crushed by legal fees. Your average citizen is scared of the legal system, and that's a problem. Lawyers use this fact to bully average people with Cease and Desist letters. "I can't afford a lawyer to fight this, so I'll have to do what it says, even though they are wrong."
Maybe these scum-sucking lawyers are but a small fraction of the total lawyer population. Perhaps 99% of all lawyers on ethical beings dedicated to the spirit of the law. But that remaining small fraction is doing a lot of harm to the United States.
Wow, I hope my friends aren't that hostile. For professional mails a subject is needed. But when sending a letter to friends, who cares?
Sorry, it's a pet peave. It's particularly frustrating that I'd had a few people I interact with professionally fail to use subject lines.
It does still matter for a message to friends however. Something short like "Want to get together to Thanksgiving?" allows me to ignore it for a little bit if we're far away from Thanksgiving, and increases its priority if we're near to Thanksgiving. "Check out this funny joke." gets ignored until I'm in the mood, but "Family emergency" gets opened immediately.
People who only get a handful of messages a day probably don't appeciate how important this is for people who receive two hundred messages per day (between work email, personal email, and various technical mailing lists). When you're getting that sort of email, you either become very aggressive about how you handle it, or your time disappears.
I noticed an annoying 'feature' though, which is still there from Netscrap days--if you send an email without a subject, a dialog pops up and goes blah blah blah.
The "blah blah blah" is roughly, "You have not specified a subject. Would you like to enter one now?" Perhaps you're right, it should be changed. Instead, it should say, "You're about to send an email message without a subject. That's an amazingly rude thing to do and likely to irritate the recipient as it makes it harder for them to pioritize their incoming mail and harder to distinguish from spam. Because this is such a terrible idea, you should enter a subject line below. If you fail to enter a subject, the default entry of 'I'm a idiot, please delete this message without reading it' will be used."
I'd suggest stearing clear of that phrase if your intention is to indicate that something is "good". It's also completes with things like "The market rewards skilled con men who disappear before you realize you've been rooked" and "The market rewards CEOs who destroy a company's long term future to boost short term stock value so he can cash out and retire."
I'm all in favor of good abstractions, good abstractions will help make us more efficient. But even the best abstractions occasionally fail, and when they fail a programmer needs to be able to look beneath the abstraction. If you're unable to work below and without the abstraction, you'll be forced to call in external help which may cost you any of time, money, showing people you don't entirely trust your proprietary code, and being at the mercy of an external source. Sometimes this trade off is acceptable (I don't really have the foggest idea how my car works, when it breaks I put myself at the mercy of my auto shop). Perhaps we're even moving to a world where you have high level programmers that occasionally call in low level programmers for help. But you can't say that it's always best to live at the highest level of abstraction possible. You need to evaluate the benefits for each case individually.
You point out that many people complain that some new programmers can't program C, while twenty years ago the complaint was the some new programmers can't program assembly. Interestingly both are right. If you're going to be skilled programmer you should have at least a general understanding of how a processor works and assembly. Without this knowledge you're going to be hard pressed to understand certain optimizations and cope with catastrophic failure. If you're going to write in Java or Python, knowing how the layer below (almost always C) works will help you appreciate the benefits of your higher level abstraction. You can't really judge the benefits of one language over another if you don't understand the improvements each tries to make over a lower level language. To be a skilled generalist programmer, you really need at least familiarity with every layer below the one you're using (this is why many Computer Science desgrees include at least one simple assembly class and one introductory electronics class).
Joel Spolsky often grates on me (especially when he falls into, "here's how Microsoft solved the problem with near infinite access to manpower, so clearly you should do the same thing."), but this article really rang true.
People might also be interested in a similar article published in 1998 on Salon, "The dumbing-down of programming." The author comes from a slightly different point of view, but comes to a similar conclusion: we need to be wary of becoming too detached from the low level details.
Re:Why was it not under the GPL to begin with?
on
MAME To Become GPL?
·
· Score: 2
Who cares why it changed...that it is GPL now?
People who are interested in reusing parts of code. (MAME has heavily optimized versions of several filters designed to make bitmaps scale up better and also has processor emulators for a number of processors). Also people who are interested in reselling the code (perhaps Atari would be interesting in rebranding MAME and selling a "Classic Atari Arcade Games" package). And finally people who insist on running exclusively Free Software on their computer.
Maybe you don't care. That's fine. But the fact that people are asking (And that timothy decided to post it) suggests that some people do care.
Odd, while the spam I get contains lots of promises of all sorts of indecent things, I don't actually see any. There aren't even links for me to click on to get to the site. I wonder what his problem is...
HTML mail I get from a spammer...
Oh yeah! The cutting edge mail client I use, mutt, has support for not displaying HTML. What a great feature! Perhaps more email clients should add support for not displaying HTML.
The nature of email is that it's going to go downhill. Any legislative effort to stop it is only going to stifle effective communications. The spammers are already using mail servers in foreign countries. (Similarly I expect as long distance phone call cost continue to decrease to start getting telemarketers in foreign countries ignoring my state's do-no-call list.) The only effective solution is to filter at a user level (or ISP level at the user's request). For the short term, to minimize your horror at seeing it, disable viewing HTML email. (Perhaps email clients could add a "only display HTML from people in my address book option.)
The porn purveyors have taken my freedom to choose away from me. Push technology now pushes porn at me whether I like it or not.
Is Dvorak equivally as angry about his right to choose what junk mail he gets from the postal system? Both email and postal mail provide a system for random strangers to send you things you don't want. It's life. Bothered that you're "forced" to see these messages? Stop using a mail client that previews HTML.
How do you mean it cant function as a digital vcr while other PVRs can?
You certainly can use a Tivo as a simple "record channel W at time X, for Y hours, repeat weekly" digital VCR. The previous poster's complaint isn't that Tivo is completely incapable, the poster is complaining that unless you're subscribing the to Tivo service (around $15 a month), the Tivo doesn't really do anything. He wants to be able to purchase a Tivo but decline to use the service, thus losing some small functionality (primarily television listing information), but saving money. Unforunately, if you don't pay Tivo you also lose the ability to set your clock and the ability to use it like a simple digital VCR.
Maybe he's right, but I'm too addicted to my Tivo to care. The service gives me features like the ability to ask for "Get me all episodes of Futurama, whenever they air" and my Tivo will figure out when to record.
Something different: Pontifex II
on
Gaming Goodness
·
· Score: 2
Want something really original? Try building bridges in Pontifex II. Works under Windows and
Linux now (and I believe they're working on MacOS support).
(Screenshots, since the official site's screenshots fail to capture what you can do with it:
1,
2, 3.)
I've been a fan of the two previous versions
(the regrettably non-Linux friendly
Bridge Builder
and Pontifex), and I'm pleased to no end that I can play under Linux.
The game is alot of fun, like a really geeky Lego set. You get a large number of materials to work with, iron, steel, heavy steel, cables, suspension cables, and hydralics. The game starts a bit slowly with simple levels (probably to help introduce you), but advances to some real tricky problems. Can I span 800 meters? Can I build a drawbridge that allows two boats to pass side by side? Can I build a 200 meter long bridge with no underwater anchor points using only iron beams (the weakest beams). And once you've successfully completed a level, it's fun to see how low you can drive the price down without dunking the train or cars in the river. Or try something radical like a
bridge that swings to the side out of the way of the boat or other tortured designs. Or just stick to more conventional designs.
I purchased Pontifex II and Grand Theft Auto: Vice City on the same day and it's a hard choice for which to play each night.
The game comes with a level editor and has a healthy community that discusses designs, runs contests, and develops extra levels.
I'm glad I purchased a copy and highly recommend it to fans of building stuff and simulations.
Re:Scanning without damaging the book?
on
Just One Page a Day
·
· Score: 2, Informative
...but getting a good image from a flatbed scanner would seriously damage most of these books....a digital camera seems even less likely to work.
Actually given a nice digital camera with a high resolution, you can generate perfectly fine images for OCRing. I've known a few people who have done exactly this to take images of rare books that they have access to but would never be allowed to put on a scanner.
Skinning isn't a problem, so long as the "default" skin looks and behaves exactly like the standard controls on the system. The problem is that most skinnable programs default to not looking like their native systems. As a result you end up surprising users, often not in good way. Also, skinnable software usually rolls their own implementation of standard system widgets. I'm tired of interacting with skinned application which don't support tabbing between widgets, right clicking on edit boxes to select copy and paste, and a pile of other minor differences. Even if you carefully emulate today's version, maybe the next version of the operating system which slightly change the functionality and suddenly you'll cease to be compliant. Perhaps the next version of the operating system will even allow you to globally 'skin' everything. (In fact, I think this in the best solution. KDE and Gnome both allow you to pick a GUI skin that is applied to all of your KDE or Gnome applications, giving you control and consistency.)
If you want to violate standards, feel free, but pity those people who just want thinks to be stanard and simple. Ship a standards compliant default and let the power users tweak it into their chosen desire.
If skinning is bad, then why allow us to 'skin' our desktop by changing the background?
As a general rule I don't actually interact with my background, it just sits there. Filling non-interactive space with pretty art is fine by me (as long as you aren't stealing space from something I'd rather be doing). The problem is when things I interact with (buttons, edit boxes, scroll bars, list boxes, text) stop looking and behaving like I want.
You do understant that MySQL is not much more than a filesystem with a SQL interface, don't you?
Yup. I also understand that for many applications, all you need is a filesystem with an SQL interface.
A department's home built inventory system doesn't really call out for the power of DB2. The registration system at one of my prior employers just held names, addresses, and a simple join to their registration keys, and all of this was done without the scalability of Oracle.
Choices are good. Heck, sometimes you need a database, but don't need anything more complicated than the ability to store key-value pairs. There is even a free solution for that.
Free plug from a fan: If you're looking for cool, free fonts for web page graphics, or a game, definately check out Tom7's page. The fonts look good, are visually interesting, and while not appropriate for, say, your resume, are great display fonts for many purposes.
Pontifex is great. And the new version (Pontifex II) is coming out from Linux Real Soon Now. I've been testing the Linux release for the last few days, and while it has rough edges, it's still alot of fun.
Even things like newpapers and pamphlets could be tracked back to you.
And yet many potentially contentious political documents where successfully
published anonymously by our forefathers, including the Federalist
Papers.
Assuming you trusted your allies to keep their mouths shut, anonymity was even easier when our freedom of speech was drafted.
Anonymity and Freedom are not one in the same.
They are not the same, but they are related. Without anonymous speech (and
the ability to anonymous hear that speech), your right to free speech is
severely limited.
But seriously, does anyone thing they have an absolute
Constitional Right to anonymity when they use the internet or check
out books in the library?
The general case is that you have a right to anonymously publish or
read. Without this right, our right to free speech is shallow and
nearly meaningless. The right to anonymously read ensures that if
you're curious about the principles of Communism, you won't be dragged
in front of the House Unamerican Activities Comission or any similar
modern witch hunt. It ensures that your teenage fling with Anarchism
isn't going to taint your job record twenty years later. Without
anonymity, you put yourself at risk of future loss for what you read
today, or you limit what you read to official sanctioned materials.
The right to anonymously publish ensures that you can get your
work out even if powerful forces attempt to silence you. Sure, in the
long run the First Amendment should protect you, but in the short run
your life can be destroyed. Our founding fathers
(assert(reader.nationality==AMERICAN)) used anonymous publications to
raise public support against the British and for the new
Constitution. The Supreme Court has ruled
in favor of anonymous speech (repeatedly).
Given that anonymous speech and reading is essential to free
speech, it's only natural that the same rules would apply to the
internet and libraries. The internet is simply a new way to express
yourself. Allowing anonymous pamphlettering, publishing, and speech,
but prohibiting anonymous speech on the internet is silly. Similarly,
public libraries exist in part to support an educated citizenry. If
citizens are afraid to check out "dangerous" books to educate
themselves, we're stifling the democratic process which requires free
access to information.
Doing OOP? You want this book.
on
Design Patterns
·
· Score: 2
If you are interested in design patterns and are looking to use them, then this should be one of the books on your shelf.
That simply isn't a strong enough statement. If you're doing object oriented programming, you owe it to yourself to at least borrow a copy to read.
Design Patterns is not about telling you how to program. It's about discovering that lots of random, unrelated things you've been doing for years are actually related. It's about building a common language with other programmers about things you're already doing instinctively. The book starts by explaining that the patterns weren't created, they were discovered. Once they began looking for patterns, they found them everywhere. And when you see the patterns, you'll often go "Hey, I've been doing that for years, but I never really thought about it!" The book is about stepping back a bit from your work to discover patterns you've overlooked even as you implemented them. The perspective on other similar projects and teh analysis of common uses will help you apply solutions you already know to new problems. This is a great book.
Those two things are related. As soon as you get a real rush of programmers and popularity, you can kiss your consitency goodbye. You're always at the mercy of some idiot who thinks that his "revolutionary new idea" (bitmapped buttons / custom window frame / dark grey on black text) is worth throwing own consitency and ease of use. You just can't win, they outnumber you. Enjoy it while you can.
I'm involved with a number of high energy physics experiments around the world (from a "physicist needs an obscene amount of computer power but a minimal budget, I try to give it to them" standpoint). Everyone is using Linux clusters at the moment. Why? Two reasons.
The first is price. None of these projects are rolling in money. Saving a few thousand dollars while setting up a hundred node cluster is a big win. The people working on the projects are technically skilled enough that a Unix varient is not significantly harder to use than a Windows variant, so there is no increase in TCO due to support.
The second is trust. They've been repeatedly burned by proprietary software. They run into a problem and the publisher isn't inclined to help (or wants more money than they have to fix it), and they're forced to fine another solution. Linux may not be perfect, but they're free to fix their own problems. They don't view it from a "Free Software is Ethical" view, but from a pragmatic "we've been repeatedly screwed and it isn't happening again" view.
Actually, my Linux system currently supports the ability to ssh into my box, su to root, and fsck my hard drive. I've been known to do so on occasion when I suspect data corruption. In fact, I'll post an exploit to do this right here:
It's that easy!
More seriously, assuming that someone posted instructions on how to log in through ssh without a password and become root bypassing the password (and presumably do something a bit more evil than fscking my drives), I'd be happy that someone told me. If they simply said, "I know about an exploit for ssh and su, but I'm not telling you the details," I would be unable to test if my system was at risk and determine if the claimant was telling the truth. And once I know of the risk, I can workaround the problem by disabling ssh and removing the setuid bit on su while I wait for the patches to arrive.
I'd be careful what you say on a public board. That sort of child abuse will get your children taken away by the governemnt in these parts.
You consider a destroying a neighborhood a localized response? I pray you never get a law enforcement position. "Well, we knew that the suspect was somewhere in the neighborhood, so we blew the whole thing up."
The Palestinian suicide bombers and ambushes are morally reprehensible, and those organizing the attacks should be arrested, tried for thier crimes, and sentenced. However, destroying the homes of family members of suicide bombers, destroying neighborhoods, and assassinating various people suspected (but not tried in court) of orchestrating these attacks is just as wrong. Is it any wonder that the Palestinians are desperate? Did your father act as a suicide bomber? Say goodbye to your home. Accidentally live too near to a terrorist and become an accidental casualty to an Israeli bomb or bullet? Tough luck.
The entire situation is a giant mess. The leaders on both sides are acting like idiots and getting alot of innocent people killed. Both sides are left feeling desperate and lashing out randomly at each other, reinforcing their desperation.
I truly agree. I used a handful of banks and inevitably got treated badly. I got the distinct feeling that they were insulted that I would actually physically show up at their branch and want to deposit some money. The straw that broke the camel's back was their repeatedly sending letters to the extent "there has been a slight slip up with your account, if you'll just sign this form we'll fix it," attached to forms to take my free checking account and transform it into an account with a monthly fee.
So I switched to a credit union. The change in attitude was refreshing. I always feel welcome. The only "No Surcharge, even if you're out of state with a bank we hate" ATMs in the city are run by the various credit unions. The staff I interact with aren't the "twenty-something ditz who I'll never see again", they're older and have experience. I respect that.
I'm happy with my credit union (CUNA Credit Union, south-central Wisconsin), and a number of my friends are happy with theirs (UW Credit Union, Wisconsin). We all agree that while our credit unions aren't perfect, they are vastly superior to the various banks in the area.
I'm sure there are scummy credit unions, but if you're having bad experiences with banks, check out some nearby credit unions. (Credit unions have various requirements before you can become a member, something to do with their legal status as a credit union. Fortunately most have a "if you live or work within X miles of any of our branches, you qualify." Thus, you don't need to be a student or staff member of the University of Wisconsin to join the UW Credit Union.)
There are lots of possible reasons, the specific reason will vary from comic to comic, but I expect one of the following will account for most:
Color is not always "better", it's just different.
Languages like Java and C# give you controlled, well-known failure states for certain categories of bugs (you can still walk off the end of an array hosing your program, but the behavior is well defined, unlike C or C++). These languages also restrict your ability to specify unsafe things, but in doing so they take away your ability to specify certain useful ways of doing things. But there are still huge numbers of ways to put bugs into your programs in any language. Java and C# are not magic bullets, they're simply points along a spectrum of safety, power, and expressiveness.
A Cease and Desist may just be a letter, but so is a "Your rent / mortgage payment / credit card bill is late" statement.
In practice the average American citizen has been increasely pushed away from dealing with the legal system. It's been made perfectly clear to him that he isn't smart enough to deal with it, that he needs an expensive lawyer to deal with it in any way, and that even if he is right that he can be crushed by legal fees. Your average citizen is scared of the legal system, and that's a problem. Lawyers use this fact to bully average people with Cease and Desist letters. "I can't afford a lawyer to fight this, so I'll have to do what it says, even though they are wrong."
Maybe these scum-sucking lawyers are but a small fraction of the total lawyer population. Perhaps 99% of all lawyers on ethical beings dedicated to the spirit of the law. But that remaining small fraction is doing a lot of harm to the United States.
Sorry, it's a pet peave. It's particularly frustrating that I'd had a few people I interact with professionally fail to use subject lines.
It does still matter for a message to friends however. Something short like "Want to get together to Thanksgiving?" allows me to ignore it for a little bit if we're far away from Thanksgiving, and increases its priority if we're near to Thanksgiving. "Check out this funny joke." gets ignored until I'm in the mood, but "Family emergency" gets opened immediately.
People who only get a handful of messages a day probably don't appeciate how important this is for people who receive two hundred messages per day (between work email, personal email, and various technical mailing lists). When you're getting that sort of email, you either become very aggressive about how you handle it, or your time disappears.
The "blah blah blah" is roughly, "You have not specified a subject. Would you like to enter one now?" Perhaps you're right, it should be changed. Instead, it should say, "You're about to send an email message without a subject. That's an amazingly rude thing to do and likely to irritate the recipient as it makes it harder for them to pioritize their incoming mail and harder to distinguish from spam. Because this is such a terrible idea, you should enter a subject line below. If you fail to enter a subject, the default entry of 'I'm a idiot, please delete this message without reading it' will be used."
I'd suggest stearing clear of that phrase if your intention is to indicate that something is "good". It's also completes with things like "The market rewards skilled con men who disappear before you realize you've been rooked" and "The market rewards CEOs who destroy a company's long term future to boost short term stock value so he can cash out and retire."
I'm all in favor of good abstractions, good abstractions will help make us more efficient. But even the best abstractions occasionally fail, and when they fail a programmer needs to be able to look beneath the abstraction. If you're unable to work below and without the abstraction, you'll be forced to call in external help which may cost you any of time, money, showing people you don't entirely trust your proprietary code, and being at the mercy of an external source. Sometimes this trade off is acceptable (I don't really have the foggest idea how my car works, when it breaks I put myself at the mercy of my auto shop). Perhaps we're even moving to a world where you have high level programmers that occasionally call in low level programmers for help. But you can't say that it's always best to live at the highest level of abstraction possible. You need to evaluate the benefits for each case individually.
You point out that many people complain that some new programmers can't program C, while twenty years ago the complaint was the some new programmers can't program assembly. Interestingly both are right. If you're going to be skilled programmer you should have at least a general understanding of how a processor works and assembly. Without this knowledge you're going to be hard pressed to understand certain optimizations and cope with catastrophic failure. If you're going to write in Java or Python, knowing how the layer below (almost always C) works will help you appreciate the benefits of your higher level abstraction. You can't really judge the benefits of one language over another if you don't understand the improvements each tries to make over a lower level language. To be a skilled generalist programmer, you really need at least familiarity with every layer below the one you're using (this is why many Computer Science desgrees include at least one simple assembly class and one introductory electronics class).
Joel Spolsky often grates on me (especially when he falls into, "here's how Microsoft solved the problem with near infinite access to manpower, so clearly you should do the same thing."), but this article really rang true. People might also be interested in a similar article published in 1998 on Salon, "The dumbing-down of programming." The author comes from a slightly different point of view, but comes to a similar conclusion: we need to be wary of becoming too detached from the low level details.
People who are interested in reusing parts of code. (MAME has heavily optimized versions of several filters designed to make bitmaps scale up better and also has processor emulators for a number of processors). Also people who are interested in reselling the code (perhaps Atari would be interesting in rebranding MAME and selling a "Classic Atari Arcade Games" package). And finally people who insist on running exclusively Free Software on their computer.
Maybe you don't care. That's fine. But the fact that people are asking (And that timothy decided to post it) suggests that some people do care.
Odd, while the spam I get contains lots of promises of all sorts of indecent things, I don't actually see any. There aren't even links for me to click on to get to the site. I wonder what his problem is...
Oh yeah! The cutting edge mail client I use, mutt, has support for not displaying HTML. What a great feature! Perhaps more email clients should add support for not displaying HTML.
The nature of email is that it's going to go downhill. Any legislative effort to stop it is only going to stifle effective communications. The spammers are already using mail servers in foreign countries. (Similarly I expect as long distance phone call cost continue to decrease to start getting telemarketers in foreign countries ignoring my state's do-no-call list.) The only effective solution is to filter at a user level (or ISP level at the user's request). For the short term, to minimize your horror at seeing it, disable viewing HTML email. (Perhaps email clients could add a "only display HTML from people in my address book option.)
Is Dvorak equivally as angry about his right to choose what junk mail he gets from the postal system? Both email and postal mail provide a system for random strangers to send you things you don't want. It's life. Bothered that you're "forced" to see these messages? Stop using a mail client that previews HTML.
You certainly can use a Tivo as a simple "record channel W at time X, for Y hours, repeat weekly" digital VCR. The previous poster's complaint isn't that Tivo is completely incapable, the poster is complaining that unless you're subscribing the to Tivo service (around $15 a month), the Tivo doesn't really do anything. He wants to be able to purchase a Tivo but decline to use the service, thus losing some small functionality (primarily television listing information), but saving money. Unforunately, if you don't pay Tivo you also lose the ability to set your clock and the ability to use it like a simple digital VCR.
Maybe he's right, but I'm too addicted to my Tivo to care. The service gives me features like the ability to ask for "Get me all episodes of Futurama, whenever they air" and my Tivo will figure out when to record.
Want something really original? Try building bridges in Pontifex II. Works under Windows and Linux now (and I believe they're working on MacOS support).
(Screenshots, since the official site's screenshots fail to capture what you can do with it: 1, 2, 3.) I've been a fan of the two previous versions (the regrettably non-Linux friendly Bridge Builder and Pontifex), and I'm pleased to no end that I can play under Linux. The game is alot of fun, like a really geeky Lego set. You get a large number of materials to work with, iron, steel, heavy steel, cables, suspension cables, and hydralics. The game starts a bit slowly with simple levels (probably to help introduce you), but advances to some real tricky problems. Can I span 800 meters? Can I build a drawbridge that allows two boats to pass side by side? Can I build a 200 meter long bridge with no underwater anchor points using only iron beams (the weakest beams). And once you've successfully completed a level, it's fun to see how low you can drive the price down without dunking the train or cars in the river. Or try something radical like a bridge that swings to the side out of the way of the boat or other tortured designs. Or just stick to more conventional designs.
I purchased Pontifex II and Grand Theft Auto: Vice City on the same day and it's a hard choice for which to play each night.
The game comes with a level editor and has a healthy community that discusses designs, runs contests, and develops extra levels.
I'm glad I purchased a copy and highly recommend it to fans of building stuff and simulations.
Actually given a nice digital camera with a high resolution, you can generate perfectly fine images for OCRing. I've known a few people who have done exactly this to take images of rare books that they have access to but would never be allowed to put on a scanner.
Skinning isn't a problem, so long as the "default" skin looks and behaves exactly like the standard controls on the system. The problem is that most skinnable programs default to not looking like their native systems. As a result you end up surprising users, often not in good way. Also, skinnable software usually rolls their own implementation of standard system widgets. I'm tired of interacting with skinned application which don't support tabbing between widgets, right clicking on edit boxes to select copy and paste, and a pile of other minor differences. Even if you carefully emulate today's version, maybe the next version of the operating system which slightly change the functionality and suddenly you'll cease to be compliant. Perhaps the next version of the operating system will even allow you to globally 'skin' everything. (In fact, I think this in the best solution. KDE and Gnome both allow you to pick a GUI skin that is applied to all of your KDE or Gnome applications, giving you control and consistency.)
If you want to violate standards, feel free, but pity those people who just want thinks to be stanard and simple. Ship a standards compliant default and let the power users tweak it into their chosen desire.
As a general rule I don't actually interact with my background, it just sits there. Filling non-interactive space with pretty art is fine by me (as long as you aren't stealing space from something I'd rather be doing). The problem is when things I interact with (buttons, edit boxes, scroll bars, list boxes, text) stop looking and behaving like I want.
Yup. I also understand that for many applications, all you need is a filesystem with an SQL interface.
A department's home built inventory system doesn't really call out for the power of DB2. The registration system at one of my prior employers just held names, addresses, and a simple join to their registration keys, and all of this was done without the scalability of Oracle.
Choices are good. Heck, sometimes you need a database, but don't need anything more complicated than the ability to store key-value pairs. There is even a free solution for that.
Free plug from a fan: If you're looking for cool, free fonts for web page graphics, or a game, definately check out Tom7's page. The fonts look good, are visually interesting, and while not appropriate for, say, your resume, are great display fonts for many purposes.
Pontifex is great. And the new version (Pontifex II) is coming out from Linux Real Soon Now. I've been testing the Linux release for the last few days, and while it has rough edges, it's still alot of fun.
And yet many potentially contentious political documents where successfully published anonymously by our forefathers, including the Federalist Papers.
Assuming you trusted your allies to keep their mouths shut, anonymity was even easier when our freedom of speech was drafted.
They are not the same, but they are related. Without anonymous speech (and the ability to anonymous hear that speech), your right to free speech is severely limited.
The general case is that you have a right to anonymously publish or read. Without this right, our right to free speech is shallow and nearly meaningless. The right to anonymously read ensures that if you're curious about the principles of Communism, you won't be dragged in front of the House Unamerican Activities Comission or any similar modern witch hunt. It ensures that your teenage fling with Anarchism isn't going to taint your job record twenty years later. Without anonymity, you put yourself at risk of future loss for what you read today, or you limit what you read to official sanctioned materials.
The right to anonymously publish ensures that you can get your work out even if powerful forces attempt to silence you. Sure, in the long run the First Amendment should protect you, but in the short run your life can be destroyed. Our founding fathers (assert(reader.nationality==AMERICAN)) used anonymous publications to raise public support against the British and for the new Constitution. The Supreme Court has ruled in favor of anonymous speech (repeatedly).
Given that anonymous speech and reading is essential to free speech, it's only natural that the same rules would apply to the internet and libraries. The internet is simply a new way to express yourself. Allowing anonymous pamphlettering, publishing, and speech, but prohibiting anonymous speech on the internet is silly. Similarly, public libraries exist in part to support an educated citizenry. If citizens are afraid to check out "dangerous" books to educate themselves, we're stifling the democratic process which requires free access to information.
That simply isn't a strong enough statement. If you're doing object oriented programming, you owe it to yourself to at least borrow a copy to read.
Design Patterns is not about telling you how to program. It's about discovering that lots of random, unrelated things you've been doing for years are actually related. It's about building a common language with other programmers about things you're already doing instinctively. The book starts by explaining that the patterns weren't created, they were discovered. Once they began looking for patterns, they found them everywhere. And when you see the patterns, you'll often go "Hey, I've been doing that for years, but I never really thought about it!" The book is about stepping back a bit from your work to discover patterns you've overlooked even as you implemented them. The perspective on other similar projects and teh analysis of common uses will help you apply solutions you already know to new problems. This is a great book.