I was in QA for 7 years or so. During that time I did a lot of scripting in Perl/Python, writing automated regression tests, test tools, and small home grown test frameworks. Later I did some work in Java/JUnit, and recently transitioned to full-time software development. I'm still getting tons of recruiters contacting me for QA positions, because QA people who can also write code are relatively rare. I've found that good QA people are hard enough to find, but those that can do QA *and* code are even harder. If you have both skills, you can find yourself in a relatively unpopulated and secure niche. And writing a customized test framework is something that's relatively unlikely to be outsourced compared to, say, just doing a set of manual GUI tests.
(So why did I get out of it? Yeah... I got bored. That's a downside of QA, imho.)
A few other miscellaneous factors that may be at work:
Back when I was a classical musician I noted that a number of my friends -- even other classical musicians -- would say something like "You know, I'm just not used to sitting still through a two hour concert, doing nothing but listening to an orchestra." Indeed, as people became increasingly used to movies/television, I think a purely aural experience began to feel comparatively *thin.* When was the last time you sat down and listened to, say, a Beethoven symphony all the way through while doing absolutely nothing else? For most of us, our music is background music.
I'm curious if a similar problem is beginning to afflict movies. Most of the time these days I watch television while doing something else in the background -- eating, web surfing, reading, ironing, paying bills, yoga, etc... It's as if technology is driving us towards simultaneously engaging as many sensory channels as possible. One extremely successful local movie chain here in Austin is the Alamo Drafthouse. The Alamo removes every other row and installs tables, waiters take your orders, and you can have dinner with your meal. And beer. They serve beer. (And they don't allow babies/children.) Once you get used to eating dinner and having beer with your movie, the popcorn/coke formula similarly begins to feel thin and unsatisfying.
The Alamo also succeeds because it maintains a funky Austin vibe, with offbeat films, events like amateur film night where you can bring your own movies to show, "Mr. Sinus Theater" (like MST3K but live), and the like. It's a cultural experience that makes a typical theater feel sort of like McDonalds. I tend to think this sort of approach is the wave of the future.
I'm not sure if this applies to the job market generally, but we seem to have an incredibly difficult time finding good software testing people. By "good," I mean "having some minimal programming competency" and an ability to problem solve. Out of the dozen or so folks in our department, only about two of us can work with Perl, Python, or Java; only one could design a reasonably complex system from scratch. Anyone can follow a manual test script. We need people who can ask interesting questions -- "Hey, what would happen if 10 users tried to logon at the same time?" -- that lead to useful testing.
So if you want to find a secure niche where a certain level of programming ability makes you stand out, QA is it. The downside: it can be boring, esp. if you're forced to do manual testing.
So, after Windows automatic update trashed my video drivers for like the 4th time (requiring driver re-installs each time and some other annoying steps in the process), I got fed up and made the switch...
...to Apple. I love my new iMac. It took 5 minutes to setup and everything has worked without issue. The interface is beautiful. But one of the first things I did was open bash and mess around at the command line. From my vantage point, OS X offers the best of both worlds: a.) a gorgeous front end and b.) a Unix based system and the ability to do most of the geeky Unix stuff I might want... ie, a gorgeous back end.;)
So I guess my question is, for those like myself moderately into unix style systems (comfortable with the command line, X11, emacs/vi, etc... but not neccessarily kernel hackers), what is the appeal of Linux be as a home system?
I wonder if open source contributers are willing to give testing the attention it warrants? After all, I often find it quite boring, and I do it for a living!;) Most good developers seem to appreciate the value of unit tests, but tend to balk when it comes to actually pushing buttons manually.
I'm curious about the test process for open source projects, generally. For something as important as Firefox, I agree that some set of automated regression tests (where possible) to cover past exploits should be in place. Preferably system tests as well as unit tests.
That would be facilitated by some way to drive the browser via means other than actually moving the mouse (as is typically the approach of tools from big test vendors like Mercury, Rational, etc...) (I have little knowledge of Firefox internals, so I dunno whether that's possible.) If it doesn't exist, some sort of scripting engine to drive the browser would make an excellent test tool.
This reminds me of a bit of poker wisdom: if you think an opponent could be bluffing, if you talk to him and his responses seem non-sensical, slow, or if he stumbles and searches for words, he probably is. (Applies mostly to inexperienced players.)
The fundamental idea... convergence?
on
OQO For Sale
·
· Score: 1
What I find most appealing about this is not that it'll be a cool little device (well, in later versions when the CPU is upgraded and there's USB 2.0, etc...), but that it illustrates the increasing convergence of devices.
I just bought a new PDA (HP4155) with builtin wifi, and while I like it immensely, it's still YAD -- yet another device -- in my life that I have to keep track of. I want *fewer* devices in my life. For example, I want to use my PDA as my MP3 player. While the HP4155 plays MP3s well, (and with a 1GB sdio card, I can fit a fair number on it), loading them takes forever, so it doesn't quite adequately replace a hard-drive based MP3 player like an iPod.
The OQO seems to go one step in that direction (theoretically, at least) by combining a PDA with your home system, and since you can also load MP3s onto it and use it as an MP3 player, that's 3 devices in one. Perhaps the ultimate vision is everything converging on your cell phone. So that you can use it as a PDA (a la the Treo), *good* MP3 player (a la iPod), and when you go home you can just dock it and use it as your PC. Sweet! mmm... convergence....
I suppose there's some lower bound surrounding screen size. For a functional remote computer, a cell phone sized screen doesn't quite cut it. Whoever can figure out how to create a collapsable LCD display and keyboard will be a rich rich man...;)
There seems to be an implicit assumption in several posts that if you could in fact choose, say, your childs hair/eye color, that everyone would tend towards some sort of blond/blue-eyed homogeneity.
But consider the world of purebred dog shows. There are several hundred dog breeds, and people seem to love a huge variety of beasts. I have a Boston Terrier with bulgy wonky eyes that several of my friends have called the ugliest dog in the world, yet of course, I think he's quite handsome.
I'm not so sure that if we could choose superficial traits that we'd all go the same route. I'm light-complected, but if I could choose, I might choose somewhat darker skin for my child, partly for aesthetic reasons, but also so they would be more protected from skin cancer.
And then, just as the fashion world shifts radically over time, one could imagine that people might make choices that buck the norm so their children might be noticed and not swallowed up in a crowd. Sort of like naming your daughter 'Moon Unit.';)
No argument that Perl is good for a lot of stuff. CPAN is great, and if there's something I can't do in Python that is provided by CPAN, obviously I would use it.
However, the existence of a large code base implies little about the inherent quality of the language itself. There are a lot of great FORTRAN libraries out there too, yet few people would laud FORTRAN on its merits as a language.
Although I think one can make a strong argument to the superior elegance of Python over Perl, no doubt at some level this sort of debate simply boils down to an intractable personal preference of the vi vrs. emacs sort. I'm merely suggesting to those out there who might have found Perl annoying and kludgy for one reason or other to give Python a shot and draw your own conclusions.
P.S. The example does compile. I compiled/ran it before posting it.
Symbols do not "throw me off," and while admittedly a lack of non-alpha-numeric symbols doesn't insure code clarity, a language's design can certainly impede or assist in achieving that goal. If one enjoys mentally parsing stuff like $#$foo, @{ $foo[$bar] }, etc... that's all well and good, but why should one have to? The notion that these symbols provide meaningful information about the code is only valid when the language itself is as non-orthogonal, and overly flexible as Perl, IMHO. (Eg, in which a given symbol can represent an array or scalar depending upon context, for example.) I've never found the lack of @,$,%, etc... a serious issue in Python or any other language; certainly, my own experience with Perl is that it's no _less_ error prone than any other reasonable language.
I guess all I can say is that personally, I found Python incredibly easy to learn and use as a language, and generally much more maintainable and easier to read than Perl. Some others have come to the same conclusion, and go into more exhaustive detail than I have... for example:
Printing an array of hashes in Perl (lifted from O'Reilly book):
# print the whole thing one at a time
for $i ( 0.. $#LoH ) {
for $role ( keys %{ $LoH[$i] } ) {
print "$i: $role is $LoH[$i]{$role}\n";
}
}
in Python:
for i in range(len(list)):
for key in list[i].keys():
print i, ": " + key + " is " + list[i][key]
Consider line 2 of both examples. Perl's contains 11 non-alphanumeric typographical symbols. Python's contains 6. On a purely visual level alone, I can't imagine anyone preferring to maintain the former over the latter. Furthermore, Perl requires the explicit "% { }" foo so that it knows it's dealing with a hash, an issue Python doesn't face. (Orthogonality... now _there's_ a concept!)
Now take the above Perl example and imagine if you're using a _reference_ to an array of hashes, as in:
foo = \@LoH;
for $i ( 0.. $#$foo ) {
for $role ( keys %{ $$foo[$i] } ) {
print "$i: $role is $$foo[$i]{$role} \n";
}
}
Sweet Jesus, my eyes are hurting! I started using Python 6 months ago and for general purpose scripting, I swear I'll never go back to Perl if I'm not forced to.
You can also trick grep into displaying the filenames by adding /dev/null, e.g.,
find . -exec grep -l keyword {} /dev/null \;
Er, I meant without the '-l', so you get the filename and the matched line...
find . -exec grep -l keyword {} /dev/null \;
You have a girlfriend? What are you doing on Slashdot?
I hear he'll soon be denouncing bizznatches as well.
People still use that??? ;)
(So why did I get out of it? Yeah... I got bored. That's a downside of QA, imho.)
Back when I was a classical musician I noted that a number of my friends -- even other classical musicians -- would say something like "You know, I'm just not used to sitting still through a two hour concert, doing nothing but listening to an orchestra." Indeed, as people became increasingly used to movies/television, I think a purely aural experience began to feel comparatively *thin.* When was the last time you sat down and listened to, say, a Beethoven symphony all the way through while doing absolutely nothing else? For most of us, our music is background music.
I'm curious if a similar problem is beginning to afflict movies. Most of the time these days I watch television while doing something else in the background -- eating, web surfing, reading, ironing, paying bills, yoga, etc... It's as if technology is driving us towards simultaneously engaging as many sensory channels as possible. One extremely successful local movie chain here in Austin is the Alamo Drafthouse. The Alamo removes every other row and installs tables, waiters take your orders, and you can have dinner with your meal. And beer. They serve beer. (And they don't allow babies/children.) Once you get used to eating dinner and having beer with your movie, the popcorn/coke formula similarly begins to feel thin and unsatisfying.
The Alamo also succeeds because it maintains a funky Austin vibe, with offbeat films, events like amateur film night where you can bring your own movies to show, "Mr. Sinus Theater" (like MST3K but live), and the like. It's a cultural experience that makes a typical theater feel sort of like McDonalds. I tend to think this sort of approach is the wave of the future.
So if you want to find a secure niche where a certain level of programming ability makes you stand out, QA is it. The downside: it can be boring, esp. if you're forced to do manual testing.
Google + Apple = Goople!
So I guess my question is, for those like myself moderately into unix style systems (comfortable with the command line, X11, emacs/vi, etc... but not neccessarily kernel hackers), what is the appeal of Linux be as a home system?
I'm curious about the test process for open source projects, generally. For something as important as Firefox, I agree that some set of automated regression tests (where possible) to cover past exploits should be in place. Preferably system tests as well as unit tests.
That would be facilitated by some way to drive the browser via means other than actually moving the mouse (as is typically the approach of tools from big test vendors like Mercury, Rational, etc...) (I have little knowledge of Firefox internals, so I dunno whether that's possible.) If it doesn't exist, some sort of scripting engine to drive the browser would make an excellent test tool.
This reminds me of a bit of poker wisdom: if you think an opponent could be bluffing, if you talk to him and his responses seem non-sensical, slow, or if he stumbles and searches for words, he probably is. (Applies mostly to inexperienced players.)
I just bought a new PDA (HP4155) with builtin wifi, and while I like it immensely, it's still YAD -- yet another device -- in my life that I have to keep track of. I want *fewer* devices in my life. For example, I want to use my PDA as my MP3 player. While the HP4155 plays MP3s well, (and with a 1GB sdio card, I can fit a fair number on it), loading them takes forever, so it doesn't quite adequately replace a hard-drive based MP3 player like an iPod.
The OQO seems to go one step in that direction (theoretically, at least) by combining a PDA with your home system, and since you can also load MP3s onto it and use it as an MP3 player, that's 3 devices in one. Perhaps the ultimate vision is everything converging on your cell phone. So that you can use it as a PDA (a la the Treo), *good* MP3 player (a la iPod), and when you go home you can just dock it and use it as your PC. Sweet! mmm... convergence....
I suppose there's some lower bound surrounding screen size. For a functional remote computer, a cell phone sized screen doesn't quite cut it. Whoever can figure out how to create a collapsable LCD display and keyboard will be a rich rich man... ;)
This sounds awesome. Vi is cool!!!! quit exit :q :q!
done :q!!!!!!!
dammit!
close editor
freak~!4%)(*@#@@(*!@*&)
+5000, Informative.
There seems to be an implicit assumption in several posts that if you could in fact choose, say, your childs hair/eye color, that everyone would tend towards some sort of blond/blue-eyed homogeneity. But consider the world of purebred dog shows. There are several hundred dog breeds, and people seem to love a huge variety of beasts. I have a Boston Terrier with bulgy wonky eyes that several of my friends have called the ugliest dog in the world, yet of course, I think he's quite handsome. I'm not so sure that if we could choose superficial traits that we'd all go the same route. I'm light-complected, but if I could choose, I might choose somewhat darker skin for my child, partly for aesthetic reasons, but also so they would be more protected from skin cancer. And then, just as the fashion world shifts radically over time, one could imagine that people might make choices that buck the norm so their children might be noticed and not swallowed up in a crowd. Sort of like naming your daughter 'Moon Unit.' ;)
We'll be one giant service economy. And we'll all make a living by giving each other heart transplants... ;)
No argument that Perl is good for a lot of stuff. CPAN is great, and if there's something I can't do in Python that is provided by CPAN, obviously I would use it. However, the existence of a large code base implies little about the inherent quality of the language itself. There are a lot of great FORTRAN libraries out there too, yet few people would laud FORTRAN on its merits as a language. Although I think one can make a strong argument to the superior elegance of Python over Perl, no doubt at some level this sort of debate simply boils down to an intractable personal preference of the vi vrs. emacs sort. I'm merely suggesting to those out there who might have found Perl annoying and kludgy for one reason or other to give Python a shot and draw your own conclusions. P.S. The example does compile. I compiled/ran it before posting it.
I guess all I can say is that personally, I found Python incredibly easy to learn and use as a language, and generally much more maintainable and easier to read than Perl. Some others have come to the same conclusion, and go into more exhaustive detail than I have... for example:
http://www.linuxjournal.com/article.php?sid=3882
http://www.garshol.priv.no/download/text/perl.html
Actually, I compiled/ran the last example before posting it... Works for me using cygwin's perl5.
Printing an array of hashes in Perl (lifted from O'Reilly book):
.. $#LoH ) {
.. $#$foo ) {
# print the whole thing one at a time
for $i ( 0
for $role ( keys %{ $LoH[$i] } ) {
print "$i: $role is $LoH[$i]{$role}\n";
}
}
in Python:
for i in range(len(list)):
for key in list[i].keys():
print i, ": " + key + " is " + list[i][key]
Consider line 2 of both examples. Perl's contains 11 non-alphanumeric typographical symbols. Python's contains 6. On a purely visual level alone, I can't imagine anyone preferring to maintain the former over the latter. Furthermore, Perl requires the explicit "% { }" foo so that it knows it's dealing with a hash, an issue Python doesn't face. (Orthogonality... now _there's_ a concept!)
Now take the above Perl example and imagine if you're using a _reference_ to an array of hashes, as in:
foo = \@LoH;
for $i ( 0
for $role ( keys %{ $$foo[$i] } ) {
print "$i: $role is $$foo[$i]{$role} \n";
}
}
Sweet Jesus, my eyes are hurting! I started using Python 6 months ago and for general purpose scripting, I swear I'll never go back to Perl if I'm not forced to.