I'm a software engineer. The demands of the job vary- at times, I've been called upon to put in 60+ stressful hours every week. At times, ~40 non-stressful hours has been plenty.
Bear in mind that your employer does not necessarily have your best interests in mind. This isn't a knock at any current or past employer of mine, or of anyone else. It's simply a fact- they will always welcome you working more hours (salaried folks, you know what I'm talking about). It's up to you to set limits. Many employers will respect those limits. They may limit your career advancement (either in terms or raises, or promotions, or both) - keep that in mind, but set priorities. How important is your family versus your current (or potential future) rewards at work? If you don't think that this is a difficult question, you may not be thinking hard enough.
In December of 2002, I found myself stressing out that I was spending too much time at work (over the last ~2 years) and not enough time at home. I kept thinking, "I must do something about this soon!"
At that time, my step-daughter took her own life. She was going through a lot of troubles. The brutal truth of the matter is that I was spending so much time and energy at work that I was often not home, and when I was, I was not interacting much with my wife or step-daughter.
I believe that my inattention and lack of commitment to my family at that time was a primary contributor to that situation. I don't believe that it was the sole cause, but I do believe that it was a primary factor. I'll never know for sure. No one will.
Had I quit my job at that time, I would have sacrificed my family's primary source of income. We could not have paid our bills, including the mortgage on our house. We'dve lost our home, our car, and our livelihoods. Clearly, that would not have been a good situation.
I believe that I could have found a better balance than the one that I did.
All I can do for others is suggest that they seek a balance.
While I'm on the soapbox (I very rarely post on slashdot), I'll also mention that she was on Accutane. I have no evidence that this was a direct cause of what happened, but I firmly believe it to be true. If you have children, I strongly encourage you to learn more about accuatane before you allow them to consume it. Check the PDR, periodicals, the web, or whatever other resources that you feel comfortable with. Also, ask yourself the same question that I (implicitly) encourage you to ask above: Is this issue worth it? Is your child's life/well-being worth this risk?
I've read many of the lists that others have posted, and while some of the books named are not books that I enjoyed, I have few quibbles with their inclusion in an overview of the genre (with the caveat that many of the works mentioned are more fantasy than SF). I have a more reservations about the idea of recommending an arbitrary set of those books to a thirteen-year-old. Some of the books contain material that may not be appropriate (torture, rape, violence, etc). Others may simply prove difficult for a thirteen year old.
With that in mind, I'll mention a few that I think may be appropriate for a younger reader, and then mention a few that she may want to investigate as she gets older, or if she proves to be a precocious reader. I should note that some of these books have serious literary value, while others are genre "fluff" that I would include in any (more) complete overview of "science fiction".
Books for now: Out of the Silent Planet - C.S. Lewis Crystal Singer - Anne McCaffrey To Ride Pegasus - Anne McCaffrey Shockwave Rider - John Brunner A Wrinkle in Time - Madeline L'Engle His Master's Voice - Stanislaw Lem Engine Summer - John Crowley Impossible Things - Connie Willis (short story collection) The Bloody Sun - Marion Zimmer Bradley Do Androids Dream of Electric Sheep? - Philip K. Dick Battlefield Earth - L. Ron Hubbard Moonflash - Patricia McKillip 1984 - George Orwell 20,000 Leagues Under the Sea - Jules Verne The Hitchiker's Guide to the Galaxy - Douglas Adams Farenheit 451 - Ray Bradbury Tiger, Tiger - Alfred Bester The Trial - Franz Kafka Lord of Light - Roger Zelazny Doorways in the Sand - Roger Zelazny The Postman - David Brin The Andromeda Strain - Michael Crichton Red Mars - Kim Stanley Robinson
Books for later: Replay - Ken Grimwood (explicit sex) The Gap series - Stephen Donaldson (rape, torture, violence) To Say Nothing of the Dog - Connie Willis (plot complexity) Split Infinity - Piers Anthony (explicit sex) Glimmering - Elizabeth Hand (complexity) The Books of the New Sun - Gene Wolf (complexity) Beauty - Sheri Tepper (rape) Stand on Zanzibar - John Brunner (complexity) The Sheep Look Up - John Brunner (complexity) A Fire in the Sun - George Alec Effinger (sex, drugs) Stars in my Pocket Like Grains of Sand - Delaney (sex, complexity) Hyperion - Dan Simmons (sex, violence, complexity)
Both lists are woefully incomplete, but I'm sure that within a few hours there will be hundreds more messages naming books it would have taken me hours to recall. Besides, after you and your daugher read a dozen or so books off the many lists that have been posted here, you'll have a better idea of what you like and what you don't, as well as a better idea of where to look.
I agree that Donaldson's Gap series is excellent science fiction. I often recommend it to people interested in reading "hard" science fiction who do not have a strong background in the genre. That said, I question how appropriate it would be for a thirteen-year-old. In this series, as in the Thomas Covenant books, Donaldson has many explicit scenes of rape, torture, murder, and other general mayhem.
"Back in the old days" many array controllers used i960s, m68ks, etc. These days, most array controllers are using GP processors like Pentiums.
The big advantage of the hardware solution is encapsulation and management. Companies like LSI, Clariion, etc, sell the idea that they give the customer a big black box, and they "make it go." EMC takes this to the logical extreme by providing tremendous support at incredible premiums.
Pretty much, it boils down to a time/money tradeoff. Most of the software RAID solutions require more hands-on administration, but lower costs.
I should, in fairness, note the other hidden advantage of hardware solutions- extra redundancy. Not of data components (disks), but of infrastructure components. Many "highly reliable" RAID cabinets provide features like redundant fans, power supplies, even CPUs.
With typical workloads, it's the other way around. That is, reads are faster with 0+1, but writes are faster with RAID-5.
The reason for this is mostly the seek times. Each block in a read request can be satisfied by either component in a mirrored pair. For small requests, this means that the request can be routed to the drive with the shorter queue, shorter seek distance, or whatever other heuristic the controller wants to use. Good techniques for doing this have been around for years (cf papers by Gray, Bitton, et al).
Writing a block to a 0+1 config is more work, however. The write cannot be declared complete and committed to stable store until both drives have been updated, which means that the end-to-end I/O stall time is dictated by the larger of the two I/O times for each component of the mirror pair.
When updating a RAID-5, at worst all data columns in the I/O range must be updated, along with the parity column in each stripe. Logically, this means that each I/O is either RMW of each affected data and parity column (small-write case), or a W of each affected data column, a R of each unaffected data column in a stripe with an affected data column, and a W of each parity column in a stripe with an affected data column (large write). The RMW cycles can often be masked with good caching, especially when I/O sequences or subsequences are sequential. Even the suboptimal caching in current drives (track buffering) catches a lot of this. If the overall workload involves a lot of seeks, this will degenerate more rapidly than the 0+1 config, however.
The big problem is that most workloads don't expose enough concurrency to the controllers to keep them busy, so even though the "system" appears busy, the array controller is idle most of the time. It's even worse for the disks. Modern drives really want 20+ I/Os outstanding at the disk concurrently. Without that, they can't do much in the way of clever arm scheduling. The same thing goes for the array controller and its overall planning/scheduling- with very little work exposed to it at any given time, it doesn't have very much information on which to base good decisions.
I'm a software engineer. The demands of the job vary- at times, I've been called upon to put in 60+ stressful hours every week. At times, ~40 non-stressful hours has been plenty.
Bear in mind that your employer does not necessarily have your best interests in mind. This isn't a knock at any current or past employer of mine, or of anyone else. It's simply a fact- they will always welcome you working more hours (salaried folks, you know what I'm talking about). It's up to you to set limits. Many employers will respect those limits. They may limit your career advancement (either in terms or raises, or promotions, or both) - keep that in mind, but set priorities. How important is your family versus your current (or potential future) rewards at work? If you don't think that this is a difficult question, you may not be thinking hard enough.
In December of 2002, I found myself stressing out that I was spending too much time at work (over the last ~2 years) and not enough time at home. I kept thinking, "I must do something about this soon!"
At that time, my step-daughter took her own life. She was going through a lot of troubles. The brutal truth of the matter is that I was spending so much time and energy at work that I was often not home, and when I was, I was not interacting much with my wife or step-daughter.
I believe that my inattention and lack of commitment to my family at that time was a primary contributor to that situation. I don't believe that it was the sole cause, but I do believe that it was a primary factor. I'll never know for sure. No one will.
Had I quit my job at that time, I would have sacrificed my family's primary source of income. We could not have paid our bills, including the mortgage on our house. We'dve lost our home, our car, and our livelihoods. Clearly, that would not have been a good situation.
I believe that I could have found a better balance than the one that I did.
All I can do for others is suggest that they seek a balance.
While I'm on the soapbox (I very rarely post on slashdot), I'll also mention that she was on Accutane. I have no evidence that this was a direct cause of what happened, but I firmly believe it to be true. If you have children, I strongly encourage you to learn more about accuatane before you allow them to consume it. Check the PDR, periodicals, the web, or whatever other resources that you feel comfortable with. Also, ask yourself the same question that I (implicitly) encourage you to ask above: Is this issue worth it? Is your child's life/well-being worth this risk?
With that in mind, I'll mention a few that I think may be appropriate for a younger reader, and then mention a few that she may want to investigate as she gets older, or if she proves to be a precocious reader. I should note that some of these books have serious literary value, while others are genre "fluff" that I would include in any (more) complete overview of "science fiction".
Books for now:
Out of the Silent Planet - C.S. Lewis
Crystal Singer - Anne McCaffrey
To Ride Pegasus - Anne McCaffrey
Shockwave Rider - John Brunner
A Wrinkle in Time - Madeline L'Engle
His Master's Voice - Stanislaw Lem
Engine Summer - John Crowley
Impossible Things - Connie Willis (short story collection)
The Bloody Sun - Marion Zimmer Bradley
Do Androids Dream of Electric Sheep? - Philip K. Dick
Battlefield Earth - L. Ron Hubbard
Moonflash - Patricia McKillip
1984 - George Orwell
20,000 Leagues Under the Sea - Jules Verne
The Hitchiker's Guide to the Galaxy - Douglas Adams
Farenheit 451 - Ray Bradbury
Tiger, Tiger - Alfred Bester
The Trial - Franz Kafka
Lord of Light - Roger Zelazny
Doorways in the Sand - Roger Zelazny
The Postman - David Brin
The Andromeda Strain - Michael Crichton
Red Mars - Kim Stanley Robinson
Books for later:
Replay - Ken Grimwood (explicit sex)
The Gap series - Stephen Donaldson (rape, torture, violence)
To Say Nothing of the Dog - Connie Willis (plot complexity)
Split Infinity - Piers Anthony (explicit sex)
Glimmering - Elizabeth Hand (complexity)
The Books of the New Sun - Gene Wolf (complexity)
Beauty - Sheri Tepper (rape)
Stand on Zanzibar - John Brunner (complexity)
The Sheep Look Up - John Brunner (complexity)
A Fire in the Sun - George Alec Effinger (sex, drugs)
Stars in my Pocket Like Grains of Sand - Delaney (sex, complexity)
Hyperion - Dan Simmons (sex, violence, complexity)
Both lists are woefully incomplete, but I'm sure that within a few hours there will be hundreds more messages naming books it would have taken me hours to recall. Besides, after you and your daugher read a dozen or so books off the many lists that have been posted here, you'll have a better idea of what you like and what you don't, as well as a better idea of where to look.
Good luck!
I agree that Donaldson's Gap series is excellent science fiction. I often recommend it to people interested in reading "hard" science fiction who do not have a strong background in the genre. That said, I question how appropriate it would be for a thirteen-year-old. In this series, as in the Thomas Covenant books, Donaldson has many explicit scenes of rape, torture, murder, and other general mayhem.
The big advantage of the hardware solution is encapsulation and management. Companies like LSI, Clariion, etc, sell the idea that they give the customer a big black box, and they "make it go." EMC takes this to the logical extreme by providing tremendous support at incredible premiums.
Pretty much, it boils down to a time/money tradeoff. Most of the software RAID solutions require more hands-on administration, but lower costs.
I should, in fairness, note the other hidden advantage of hardware solutions- extra redundancy. Not of data components (disks), but of infrastructure components. Many "highly reliable" RAID cabinets provide features like redundant fans, power supplies, even CPUs.
The reason for this is mostly the seek times. Each block in a read request can be satisfied by either component in a mirrored pair. For small requests, this means that the request can be routed to the drive with the shorter queue, shorter seek distance, or whatever other heuristic the controller wants to use. Good techniques for doing this have been around for years (cf papers by Gray, Bitton, et al).
Writing a block to a 0+1 config is more work, however. The write cannot be declared complete and committed to stable store until both drives have been updated, which means that the end-to-end I/O stall time is dictated by the larger of the two I/O times for each component of the mirror pair.
When updating a RAID-5, at worst all data columns in the I/O range must be updated, along with the parity column in each stripe. Logically, this means that each I/O is either RMW of each affected data and parity column (small-write case), or a W of each affected data column, a R of each unaffected data column in a stripe with an affected data column, and a W of each parity column in a stripe with an affected data column (large write). The RMW cycles can often be masked with good caching, especially when I/O sequences or subsequences are sequential. Even the suboptimal caching in current drives (track buffering) catches a lot of this. If the overall workload involves a lot of seeks, this will degenerate more rapidly than the 0+1 config, however.
The big problem is that most workloads don't expose enough concurrency to the controllers to keep them busy, so even though the "system" appears busy, the array controller is idle most of the time. It's even worse for the disks. Modern drives really want 20+ I/Os outstanding at the disk concurrently. Without that, they can't do much in the way of clever arm scheduling. The same thing goes for the array controller and its overall planning/scheduling- with very little work exposed to it at any given time, it doesn't have very much information on which to base good decisions.