I've had to fix bugs in shell scripts written using awk and sed - you know, shell scripts that consist of a long chain of pipes from one awk script to the next? Man, anyone who bitches about how perl is write-only should try fixing awk pipe chains. Or shell scripts in general, really. There's a reason that there's a whole section in Unix Power Tools about nothing but the quoting rules in bash.
There's a lot that I can do with perl that I can't do with awk and sed: uncompressing flate-encoded streams in PDFs (using Compress::Zlib), parsing XML, controlling desktop apps using Win32::OLE, etc.
I have been on the receiving end of a big pile of spaghetti code written in Perl, chock full of bad things like subroutines that modify global variables and file manipulations that depend on chdir() calls 200 lines back. It's extremely easy to write incredibly crappy code in Perl, but as you mention yourself, it is possible to write clean, structured code in Perl.
I've found Perl to be a good solution to problems too complex to be resolved by a 10 line shell script, but simple enough not to require a C or C++ project. That includes the UI for an internal web application, the photo album CGI for my personal web site, and tons of relatively small tools that I use every day. I wouldn't call the language perfect, but it (and CPAN) gets the job done.
I used to have my computer sitting at a desk in the dining room, and any time you walked from anywhere else in the apartment to the living room you walked by it. It was also sitting on linoleum. Over time (about 6 months or so), the fan sucked cat hair and dust into the power supply. Lots of cat hair. Lots of dust.
Then I moved to a new apartment. I unpacked everything, got everything hooked up to the computer, turned it on, and I heard this rather disturbing popping or snapping noise, looked at the back of the computer, and saw flames.
I unplugged the power strip right away, and luckily all I had to replace was the power supply.
The moral of the story: don't put the computer in a high traffic part of the house where there's lots of cat hair to get sucked into the machine, and if you do, don't be a chump and vacuum out your machine every once in a while.
I think Apple's goal was probably to make a scripting language which is easy to learn for non-programmers, and arguably they did succeed.
But once you learn the the language, the weird syntax gets really irritating. The syntax is really verbose - it can take lots of typing do relatively simple things. For anything that doesn't require actually telling an application what to do, I often give up and put whatever I'm trying to do into a Perl script and call the Perl script from the AppleScript.
It's especially irritating if you are used to programming in other languages. AppleScript is nothing like the other languages I script or program in frequently (C++, Perl, JavaScript).
With that in mind, it does do what I want it to do, more or less, and it is generally reasonably easy for me to figure out how to do what it is that I want to do. That's more than I can say for scripting on Windows - I find that my questions are answered more often with a Google search than actually looking through the documentation. For example, how does anyone figure out that throwing a File Open/Save dialog from a JScript or VBScript is done by the ShowOpen() method of the UserAccounts.CommonDialog object unless you find it in a Google search? I mean, UserAccounts?!
At least in desktop publishing apps, tasks performed by control-dragging on Windows are done by command-dragging on Macs.
On Windows, your modifier keys are shift, control, and alt; on Macs, your modifier keys are shift, command, and option. You've got three modifier keys on each platform.
Windows has to be restarted to recognize a newly installed font? Not in Windows 2000 and not in Windows XP. I don't think that's the case in Windows 9x either, although it's been at least three blissful years since I fired up Windows 98.
I disagree. It's definitely not as easy to use as Mac OS X, and I've had more difficulty with getting hardware set up than on Windows (I installed Debian - I'm sure the hardware situation is easier on, say, Knoppix or Mepis, but I haven't used either), but the general UI is getting reasonably close to Windows XP in ease of use.
I think that Linux is eventually going to give Windows a run for its money - not this year, not next year, but eventually. Mozilla Firefox and Thunderbird are great examples of free software that actually has a decent UI. Gnome and KDE keep getting better and better.
I have two monitors hooked up to my computer: a 1600 x 1200 CRT, and a 1280 x 1024 flat panel. Losing the mouse is a relatively frequent occurrence for me.
Natural selection is proven about as much as anything in science can be proven. It's possible that in 100 years or 10 years or six months someone will find something that will require the whole thing to be thrown out, but people have been trying really hard to do that for over 100 years, without success.
Yes, over an extremely long period of time. Most random changes to vi's source code would cause it to fail to compile, or crash, or act wonky - but if there was selection pressure to be more Microsoft Word-ish and there was some mechanism of reproduction and inheritance, then over eons and eons, yes, natural selection could produce something Microsoft Word-ish starting from vi's source code. Of course, since software is a human artifact, it's easier to just hire several geeks if you want to produce a word processor.
No, natural selection _selects_ those things. This makes the theory more difficult, not less, because it requires that ALL traits to have travelled through stable intermediates. It means there can be no trait that required genes that had even one unstable intermediate.
It's not correct to describe the process as "random copying errors produce stuff." Random copying errors occur. Errors that are beneficial are more likely to be passed on; errors that are detrimental are less likely. Nothing interesting comes out of randomness (see your earlier comment about your son's name being copied 1,000,000,000 times) - it's natural selection that creates design.
I'm not sure how your comments about traits needing to go through stable intermediates is an objection. It's an interesting wrinkle - Richard Dawkins wrote an entire book on it, "Climbing Mount Improbable."
Regarding the marsupial wolf, you found an example of convergent evolution. Great. There are many examples of them - wings and eyes, for example, are complex adaptations that evolved independently multiple times. Natural selection can lead to similar adaptations in unrelated species because an adaptation which is useful in one environment may be useful in another. Or, to steal a phrase from Daniel Dennett, nature finds the Good Tricks again and again.
In addition, its operating on the assumption that the genes are the major part of what produces the final organism. In fact, embryology has shown us that the parent's reproductive system has more to do with the body plan of the sibling than does the sibling's genes (not that genes don't play a role, but the parent's reproductive system governs the major body plan, not the genes).
What does this mean, exactly? None of what you're saying changes the fact that traits are inherited.
On top of that, you have the fact that not only are random copying errors supposedly the great generator of all diversity, but that only those genes which are the result of copying errors that had consecutive stable forms are allowed. So, pretty much every gene we have had to be derivative of other genes in a stable fashion. There can't be a single unstable link in the chain.
A bit odd, don't you think?
That is a misunderstanding of the theory of evolution. Random copying errors don't produce eyes, or wings, or brains by themselves. Natural selection produces these things. The vast majority of mutations are not beneficial. Natural selection picks the beneficial ones and not the harmful ones. Over extremely long periods of time, this leads to organisms which are very well adapted to their environment. A truly random process would not produce the design innovations that natural selection produces.
And no, it doesn't seem odd to me that every link in the chain has to be stable - the opposite would be bizarre.
I started using cygwin a couple years ago and it has become absolutely indispensable for me. After using it for a while, it made me remember just how groovy a free un*x is, and I installed Debian.
I doubt anyone's going to switch to Linux or a free BSD based on using OpenOffice or The GIMP on Windows, but free software designed with geeks in mind running on Windows is definitely an inducement to geeks to switch, or at least to dual-boot.
Linux and the free BSDs do offer something the other OSs don't: hackability and freedom. For someone who really wants control over their system, Windows running all the free software in the world is just not the same as, say, Debian. For users who like what free software offers, I doubt that free software on Windows is keeping them from running a free un*x.
There's also another question - is it better for users if free software runs on Windows? And unquestionably, it is better for users. At work I don't have the option of running Linux or FreeBSD - I run Windows XP and Mac OS X. I would go insane running Windows without Cygwin and bash and XEmacs and Perl and Firefox.
Free software is the layer of functionality that works basically the same on every OS I use.
The time it takes to copy more than two albums has nothing to do with "piracy" prevention and everything to do with the speed of Firewire or USB.
I'm talking about how iTunes doesn't let me just drag music from the iPod into the iTunes library. Instead, I have to search for each track individually from bash, the Finder or Windows Explorer, or use one of the third-party methods out there to copy the music. For an album with 12 tracks, I have to individually search for and copy each of the 12 tracks. I guess technically that means that it's always been possible to copy from the iPod to my computer - I'm saying that it's a pain in the ass, and the reason it's a pain in the ass is because Apple made a design decision (intended to prevent sharing^H^H^H^H^H^H^H piracy) not to allow me to drag music from the iPod into my iTunes library.
Additionally, getting music back off the iPod is not part of the advertised capabilities or features of the service, period, and never was.
Okay, that's just crazy talk. I don't care whether it's advertised or not; it's something that a machine I paid hundreds of dollars for should be able to do.
One thing I use my iPod for is to shuffle music back and forth between my computer at home and my computer at work. This is music I own: I've burned it from CDs I own, or I've purchased it from the iTunes Music Store. It should be painless and easy to copy from the iPod to my iTunes library, but it's not. Copying an album or two doesn't take that much time; copying anything more than that is a pain in the ass. I'm sick of measures to prevent piracy keeping me from doing things that are a legitimate use of music I own.
You don't even need to use the command line. All you need is Windows Explorer or the Mac OS X Finder. Search on the drive the iPod is mounted as for the first part of the song you're looking for, and make sure you're searching hidden files.
For example, from the Finder: 1. Connect your iPod 2. Go to File > Find 3. From the Find dialog, select Specific Places from the Search in menu 4. Check the drive your iPod is mounted as, and make sure everything else is unchecked 5. Select Visibility from the menu at the bottom, then select visible and invisible items from the menu next to it 6. Click the + sign to add other criteria to search by 7. Select Name and contains from the menu at the bottom, then type part of the name of the song.
When copying a whole album, this ends up being quicker than doing it like this: $ cd/Volumes/iPod $ find . -iname \*song\ title\* $ cp [insert path here]/02\ Song\ Title.mp3 ~/Desktop/music/
Once a queer comes out of the closet, they're probably long past worrying about whether they're normal or not.
When I say they want their relationships treated as equal to straight relationships, I'm talking about a desire not to be discriminated against. Maybe part of this is a desire not to be shunned by society, but it has nothing to do with asking for reassurance that they're normal.
My, what a clever argument. Sure sounds all Academic Leftist, what with using the word patriarchy and equating marriage to prostitution. Unfortunately, using the phrase "lifestyle choice" kinda undermines the tone of the rest of your rhetoric. But nice try.
How about we distill your argument down to its essence - why do you queers want marriage anyway? How about a nice civil union instead?
Queers want marriage for the same reason that straight people want marriage - because they're in love, because they've found someone they want to spend the rest of their life with. Pure and simple. That's it. And they want marriage because they want their relationships treated as equal to straight relationships. Not separate-but-equal civil unions, but equal-as-in-equal marriage.
A less craptacular UI.
I've had to fix bugs in shell scripts written using awk and sed - you know, shell scripts that consist of a long chain of pipes from one awk script to the next? Man, anyone who bitches about how perl is write-only should try fixing awk pipe chains. Or shell scripts in general, really. There's a reason that there's a whole section in Unix Power Tools about nothing but the quoting rules in bash.
There's a lot that I can do with perl that I can't do with awk and sed: uncompressing flate-encoded streams in PDFs (using Compress::Zlib), parsing XML, controlling desktop apps using Win32::OLE, etc.
I have been on the receiving end of a big pile of spaghetti code written in Perl, chock full of bad things like subroutines that modify global variables and file manipulations that depend on chdir() calls 200 lines back. It's extremely easy to write incredibly crappy code in Perl, but as you mention yourself, it is possible to write clean, structured code in Perl.
I've found Perl to be a good solution to problems too complex to be resolved by a 10 line shell script, but simple enough not to require a C or C++ project. That includes the UI for an internal web application, the photo album CGI for my personal web site, and tons of relatively small tools that I use every day. I wouldn't call the language perfect, but it (and CPAN) gets the job done.
Your post, and the parent post, are just so beautiful I could cry. You are the wind beneath my wings.
I used to have my computer sitting at a desk in the dining room, and any time you walked from anywhere else in the apartment to the living room you walked by it. It was also sitting on linoleum. Over time (about 6 months or so), the fan sucked cat hair and dust into the power supply. Lots of cat hair. Lots of dust.
Then I moved to a new apartment. I unpacked everything, got everything hooked up to the computer, turned it on, and I heard this rather disturbing popping or snapping noise, looked at the back of the computer, and saw flames.
I unplugged the power strip right away, and luckily all I had to replace was the power supply.
The moral of the story: don't put the computer in a high traffic part of the house where there's lots of cat hair to get sucked into the machine, and if you do, don't be a chump and vacuum out your machine every once in a while.
AppleScript is irritating.
I think Apple's goal was probably to make a scripting language which is easy to learn for non-programmers, and arguably they did succeed.
But once you learn the the language, the weird syntax gets really irritating. The syntax is really verbose - it can take lots of typing do relatively simple things. For anything that doesn't require actually telling an application what to do, I often give up and put whatever I'm trying to do into a Perl script and call the Perl script from the AppleScript.
It's especially irritating if you are used to programming in other languages. AppleScript is nothing like the other languages I script or program in frequently (C++, Perl, JavaScript).
With that in mind, it does do what I want it to do, more or less, and it is generally reasonably easy for me to figure out how to do what it is that I want to do. That's more than I can say for scripting on Windows - I find that my questions are answered more often with a Google search than actually looking through the documentation. For example, how does anyone figure out that throwing a File Open/Save dialog from a JScript or VBScript is done by the ShowOpen() method of the UserAccounts.CommonDialog object unless you find it in a Google search? I mean, UserAccounts?!
... said Marshall McLuhan.
At least in desktop publishing apps, tasks performed by control-dragging on Windows are done by command-dragging on Macs.
On Windows, your modifier keys are shift, control, and alt; on Macs, your modifier keys are shift, command, and option. You've got three modifier keys on each platform.
Windows has to be restarted to recognize a newly installed font? Not in Windows 2000 and not in Windows XP. I don't think that's the case in Windows 9x either, although it's been at least three blissful years since I fired up Windows 98.
I disagree. It's definitely not as easy to use as Mac OS X, and I've had more difficulty with getting hardware set up than on Windows (I installed Debian - I'm sure the hardware situation is easier on, say, Knoppix or Mepis, but I haven't used either), but the general UI is getting reasonably close to Windows XP in ease of use.
I think that Linux is eventually going to give Windows a run for its money - not this year, not next year, but eventually. Mozilla Firefox and Thunderbird are great examples of free software that actually has a decent UI. Gnome and KDE keep getting better and better.
I have two monitors hooked up to my computer: a 1600 x 1200 CRT, and a 1280 x 1024 flat panel. Losing the mouse is a relatively frequent occurrence for me.
Natural selection is proven about as much as anything in science can be proven. It's possible that in 100 years or 10 years or six months someone will find something that will require the whole thing to be thrown out, but people have been trying really hard to do that for over 100 years, without success.
Yes, over an extremely long period of time. Most random changes to vi's source code would cause it to fail to compile, or crash, or act wonky - but if there was selection pressure to be more Microsoft Word-ish and there was some mechanism of reproduction and inheritance, then over eons and eons, yes, natural selection could produce something Microsoft Word-ish starting from vi's source code. Of course, since software is a human artifact, it's easier to just hire several geeks if you want to produce a word processor.
No, natural selection _selects_ those things. This makes the theory more difficult, not less, because it requires that ALL traits to have travelled through stable intermediates. It means there can be no trait that required genes that had even one unstable intermediate.
It's not correct to describe the process as "random copying errors produce stuff." Random copying errors occur. Errors that are beneficial are more likely to be passed on; errors that are detrimental are less likely. Nothing interesting comes out of randomness (see your earlier comment about your son's name being copied 1,000,000,000 times) - it's natural selection that creates design.
I'm not sure how your comments about traits needing to go through stable intermediates is an objection. It's an interesting wrinkle - Richard Dawkins wrote an entire book on it, "Climbing Mount Improbable."
Regarding the marsupial wolf, you found an example of convergent evolution. Great. There are many examples of them - wings and eyes, for example, are complex adaptations that evolved independently multiple times. Natural selection can lead to similar adaptations in unrelated species because an adaptation which is useful in one environment may be useful in another. Or, to steal a phrase from Daniel Dennett, nature finds the Good Tricks again and again.
In addition, its operating on the assumption that the genes are the major part of what produces the final organism. In fact, embryology has shown us that the parent's reproductive system has more to do with the body plan of the sibling than does the sibling's genes (not that genes don't play a role, but the parent's reproductive system governs the major body plan, not the genes).
What does this mean, exactly? None of what you're saying changes the fact that traits are inherited.
On top of that, you have the fact that not only are random copying errors supposedly the great generator of all diversity, but that only those genes which are the result of copying errors that had consecutive stable forms are allowed. So, pretty much every gene we have had to be derivative of other genes in a stable fashion. There can't be a single unstable link in the chain. A bit odd, don't you think?
That is a misunderstanding of the theory of evolution. Random copying errors don't produce eyes, or wings, or brains by themselves. Natural selection produces these things. The vast majority of mutations are not beneficial. Natural selection picks the beneficial ones and not the harmful ones. Over extremely long periods of time, this leads to organisms which are very well adapted to their environment. A truly random process would not produce the design innovations that natural selection produces.
And no, it doesn't seem odd to me that every link in the chain has to be stable - the opposite would be bizarre.
I started using cygwin a couple years ago and it has become absolutely indispensable for me. After using it for a while, it made me remember just how groovy a free un*x is, and I installed Debian.
I doubt anyone's going to switch to Linux or a free BSD based on using OpenOffice or The GIMP on Windows, but free software designed with geeks in mind running on Windows is definitely an inducement to geeks to switch, or at least to dual-boot.
Linux and the free BSDs do offer something the other OSs don't: hackability and freedom. For someone who really wants control over their system, Windows running all the free software in the world is just not the same as, say, Debian. For users who like what free software offers, I doubt that free software on Windows is keeping them from running a free un*x.
I completely agree.
There's also another question - is it better for users if free software runs on Windows? And unquestionably, it is better for users. At work I don't have the option of running Linux or FreeBSD - I run Windows XP and Mac OS X. I would go insane running Windows without Cygwin and bash and XEmacs and Perl and Firefox.
Free software is the layer of functionality that works basically the same on every OS I use.
I'm talking about how iTunes doesn't let me just drag music from the iPod into the iTunes library. Instead, I have to search for each track individually from bash, the Finder or Windows Explorer, or use one of the third-party methods out there to copy the music. For an album with 12 tracks, I have to individually search for and copy each of the 12 tracks. I guess technically that means that it's always been possible to copy from the iPod to my computer - I'm saying that it's a pain in the ass, and the reason it's a pain in the ass is because Apple made a design decision (intended to prevent sharing^H^H^H^H^H^H^H piracy) not to allow me to drag music from the iPod into my iTunes library.
Okay, that's just crazy talk. I don't care whether it's advertised or not; it's something that a machine I paid hundreds of dollars for should be able to do.
One thing I use my iPod for is to shuffle music back and forth between my computer at home and my computer at work. This is music I own: I've burned it from CDs I own, or I've purchased it from the iTunes Music Store. It should be painless and easy to copy from the iPod to my iTunes library, but it's not. Copying an album or two doesn't take that much time; copying anything more than that is a pain in the ass. I'm sick of measures to prevent piracy keeping me from doing things that are a legitimate use of music I own.
You don't even need to use the command line. All you need is Windows Explorer or the Mac OS X Finder. Search on the drive the iPod is mounted as for the first part of the song you're looking for, and make sure you're searching hidden files.
/Volumes/iPod
For example, from the Finder:
1. Connect your iPod
2. Go to File > Find
3. From the Find dialog, select Specific Places from the Search in menu
4. Check the drive your iPod is mounted as, and make sure everything else is unchecked
5. Select Visibility from the menu at the bottom, then select visible and invisible items from the menu next to it
6. Click the + sign to add other criteria to search by
7. Select Name and contains from the menu at the bottom, then type part of the name of the song.
When copying a whole album, this ends up being quicker than doing it like this:
$ cd
$ find . -iname \*song\ title\*
$ cp [insert path here]/02\ Song\ Title.mp3 ~/Desktop/music/
Once a queer comes out of the closet, they're probably long past worrying about whether they're normal or not. When I say they want their relationships treated as equal to straight relationships, I'm talking about a desire not to be discriminated against. Maybe part of this is a desire not to be shunned by society, but it has nothing to do with asking for reassurance that they're normal.
My, what a clever argument. Sure sounds all Academic Leftist, what with using the word patriarchy and equating marriage to prostitution. Unfortunately, using the phrase "lifestyle choice" kinda undermines the tone of the rest of your rhetoric. But nice try.
How about we distill your argument down to its essence - why do you queers want marriage anyway? How about a nice civil union instead?
Queers want marriage for the same reason that straight people want marriage - because they're in love, because they've found someone they want to spend the rest of their life with. Pure and simple. That's it. And they want marriage because they want their relationships treated as equal to straight relationships. Not separate-but-equal civil unions, but equal-as-in-equal marriage.