SteveOH

Tag: problem

Frequently Forgotten Fundamental Facts about Software Engineering

by Steve Hernandez on Dec.02, 2009, under Academic, Technology

SW Development

 

Robert L. Glass

 

This month’s column is simply a collection of what I consider to be facts—truths, if you will—about software engineering. I’m presenting this software engineering laundry list because far too many people who call themselves software engineers, or computer scientists, or programmers, or whatever nom du jour you prefer, either aren’t familiar with these facts or have forgotten them.

I don’t expect you to agree with all these facts; some of them might even upset you. Great! Then we can begin a dialog about which facts really are facts and which are merely figments of my vivid loyal opposition imagination! Enough preliminaries. Here are the most frequently forgotten fundamental facts about software engineering. Some are of vital importance—we forget them at considerable risk.

 

Complexity

C1. For every 10-percent increase in problem complexity, there is a 100-percent increase in the software solution�s complexity. That’s not a condition to try to change (even though reducing complexity is always desirable); that’s just the way it is. (For one explanation of why this is so, see RD2 in the section “Requirements and design.”)

 

People

P1. The most important factor in attacking complexity is not the tools and techniques that programmers use but rather the quality of the programmers themselves.

P2. Good programmers are up to 30 times better than mediocre programmers, according to “individual differences” research. Given that their pay is never commensurate, they are the biggest bargains in the software field.

 

Tools and techniques

T1. Most software tool and technique improvements account for about a 5- to 30-percent increase in productivity and quality. But at one time or another, most of these improvements have been claimed by someone to have “order of magnitude” (factor of 10) benefits. Hype is the plague on the house of software.

T2. Learning a new tool or technique actually lowers programmer productivity and product quality initially. You achieve the eventual benefit only after overcoming this learning curve.

T3. Therefore, adopting new tools and techniques is worthwhile, but only if you (a) realistically view their value and (b) use patience in measuring their benefits.

 

Quality

Q1. Quality is a collection of attributes. Various people define those attributes differently, but a commonly accepted collection is portability, reliability, efficiency, human engineering, testability, understandability, and modifiability.

Q2. Quality is not the same as satisfying users, meeting requirements, or meeting cost and schedule targets. However, all these things have an interesting relationship: User satisfaction = quality product + meets requirements + delivered when needed + appropriate cost.

Q3. Because quality is not simply reliability, it is about much more than software defects.

Q4. Trying to improve one quality attribute often degrades another. For example, attempts to improve efficiency often degrade modifiability.

 

Reliability

RE1. Error detection and removal accounts for roughly 40 percent of development costs. Thus it is the most important phase of the development life cycle.

RE2. There are certain kinds of software errors that most programmers make frequently. These include off-by-one indexing, definition or reference inconsistency, and omitting deep design details. That is why, for example, N-version programming, which attempts to create multiple diverse solutions through multiple programmers, can never completely achieve its promise.

RE3. Software that a typical programmer believes to be thoroughly tested has often had only about 55 to 60 percent of its logic paths executed. Automated support, such as coverage analyzers, can raise that to roughly 85 to 90 percent. Testing at the 100-percent level is nearly impossible.

RE4. Even if 100-percent test coverage (see RE3) were possible, that criteria would be insufficient for testing. Roughly 35 percent of software defects emerge from missing logic paths, and another 40 percent are from the execution of a unique combination of logic paths. They will not be caught by 100-percent coverage (100-percent coverage can, therefore, potentially detect only about 25 percent of the errors!).

RE5. There is no single best approach to software error removal. A combination of several approaches, such as inspections and several kinds of testing and fault tolerance, is necessary.

RE6. (corollary to RE5) Software will always contain residual defects, after even the most rigorous error removal. The goal is to minimize the number and especially the severity of those defects.

 

Efficiency

EF1. Efficiency is more often a matter of good design than of good coding. So, if a project requires efficiency, efficiency must be considered early in the life cycle.

EF2. High-order language (HOL) code, with appropriate compiler optimizations, can be made about 90 percent as efficient as the comparable assembler code. But that statement is highly task dependent; some tasks are much harder than others to code efficiently in HOL.

EF3. There are trade-offs between size and time optimization. Often, improving one degrades the other.

 

Maintenance

M1. Quality and maintenance have an interesting relationship (see Q3 and Q4).

M2. Maintenance typically consumes about 40 to 80 percent (60 percent average) of software costs. Therefore, it is probably the most important life cycle phase.

M3. Enhancement is responsible for roughly 60 percent of software maintenance costs. Error correction is roughly 17 percent. So, software maintenance is largely about adding new capability to old software, not about fixing it.

M4. The previous two facts constitute what you could call the “60/60″ rule of software.

M5. Most software development tasks and software maintenance tasks are the same—except for the additional maintenance task of “understanding the existing product.” This task is the dominant maintenance activity, consuming roughly 30 percent of maintenance time. So, you could claim that maintenance is more difficult than development.

 

Requirements and design

RD1. One of the two most common causes of runaway projects is unstable requirements. (For the other, see ES1.)

RD2. When a project moves from requirements to design, the solution process’s complexity causes an explosion of “derived requirements.” The list of requirements for the design phase is often 50 times longer than the list of original requirements.

RD3. This requirements explosion is partly why it is difficult to implement requirements traceability (tracing the original requirements through the artifacts of the succeeding lifecycle phases), even though everyone agrees this is desirable.

RD4. A software problem seldom has one best design solution. (Bill Curtis has said that in a room full of expert software designers, if any two agree, that’s a majority!) That’s why, for example, trying to provide reusable design solutions has so long resisted significant progress.

 

Reviews and inspections

RI1. Rigorous reviews commonly remove up to 90 percent of errors from a software product before the first test case is run. (Many research findings support this; of course, it’s extremely difficult to know when you’ve found 100 percent of a software product’s errors!)

RI2. Rigorous reviews are more effective, and more cost effective, than any other error-removal strategy, including testing. But they cannot and should not replace testing (see RE5).

RI3. Rigorous reviews are extremely challenging to do well, and most organizations do not do them, at least not for 100 percent of their software artifacts.

RI4. Post-delivery reviews are generally acknowledged to be important, both for determining customer satisfaction and for process improvement, but most organizations do not perform them. By the time such reviews should be held (three to 12 months after delivery), potential review participants have generally scattered to other projects.

 

Reuse

REU1. Reuse-in-the-small (libraries of subroutines) began nearly 50 years ago and is a well-solved problem.

REU2. Reuse-in-the-large (components) remains largely unsolved, even though everyone agrees it is important and desirable.

REU3. Disagreement exists about why reuse-in-the-large is unsolved, although most agree that it is a management, not technology, problem (will, not skill). (Others say that finding sufficiently common subproblems across programming tasks is difficult. This would make reuse-in-the-large a problem inherent in the nature of software and the problems it solves, and thus relatively unsolvable).

REU4. Reuse-in-the-large works best in families of related systems, and thus is domain dependent. This narrows its potential applicability.

REU5. Pattern reuse is one solution to the problems inherent in code reuse.

 

Estimation

ES1. One of the two most common causes of runaway projects is optimistic estimation. (For the other, see RD1.)

ES2. Most software estimates are performed at the beginning of the life cycle. This makes sense until we realize that this occurs before the requirements phase and thus before the problem is understood. Estimation therefore usually occurs at the wrong time.

ES3. Most software estimates are made, according to several researchers, by either upper management or marketing, not by the people who will build the software or by their managers. Therefore, the wrong people are doing estimation.

ES4. Software estimates are rarely adjusted as the project proceeds. So, those estimates done at the wrong time by the wrong people are usually not corrected.

ES5. Because estimates are so faulty, there is little reason to be concerned when software projects do not meet cost or schedule targets. But everyone is concerned anyway!

ES6. In one study of a project that failed to meet its estimates, the management saw the project as a failure, but the technical participants saw it as the most successful project they had ever worked on! This illustrates the disconnect regarding the role of estimation, and project success, between management and technologists. Given the previous facts, that is hardly surprising.

ES7. Pressure to achieve estimation targets is common and tends to cause programmers to skip good software process. This constitutes an absurd result done for an absurd reason.

 

Research

RES1. Many software researchers advocate rather than investigate. As a result, (a) some advocated concepts are worth less than their advocates believe and (b) there is a shortage of evaluative research to help determine the actual value of new tools and techniques.

There, that’s my two cents’ worth of software engineering fundamental facts. What are yours? I expect, if we can get a dialog going here, that there are a lot of similar facts that I have forgotten—or am not aware of. I’m especially eager to hear what additional facts you can contribute.

And, of course, I realize that some will disagree (perhaps even violently!) with some of the facts I’ve presented. I want to hear about that as well.

Robert L. Glass is the editor of Elsevier’s Journal of Systems and Software and the publisher and editor of The Software Practitioner newsletter. Contact him at rglass@indiana (dot) education; he’d be pleased to hear from you.

Reprinted from IEEE Software, vol. 18, no. 3, 2001, pp. 112, 110–111.

1 Comment :, , , , , , , , , , , , , , , , more...

[SOLVED] Microsoft SQL Server 2008 x64 Error: 15401

by Steve Hernandez on Nov.17, 2009, under Uncategorized

I recently came across this error within an Server 2008 Active Directory Environment where I attempted to add a domain user account to Microsoft SQL Server 2008 x64.

As you may see on the internet, the problem is in fact related to SID, but in my situation it was not the SSID of the user, but of the actual server.  The instance of Server 2008 x64 is running in VMWare Workstation 7 and was created by cloning another VM.  This, of course, makes them identical, such that changing the computer name only results in what ‘appears’ to be disparite systems.  In a workgroup this shouldn’t be an issue, but once Active Directory is introduced, it gets wacky.  AD relies on SID’s, and thus, acts unpredictably when 2 machines / users / groups have the same SID.  This is further exagerated when SQL Server is involved, since it creates and / or stores its own SID for the user.

Here are the steps I followed to solve this issue:

  1. Remove the server running SQL Server from the domain.  Reboot.
  2. Verify the AD Computer Account has been deleted for the system (on a domain controller).
  3. Run newSID.exe (found here) and change the SID of the server running SQL Server to a new random SID.  Reboot.
  4. Add server back to the domain and verify the account is created within AD.

Once I did all that, the user added with ease.

Good luck.

1 Comment :, , , , , , more...

Computer Science Graduate School Survival Guide

by Steve Hernandez on Aug.14, 2009, under Academic, Technology

The guide below was not written by me, but by Ronald T. Azuma, PhD.  All credits go to the author and/or other stated sources.  I just wanted to share this wonderful resource with anyone that may be interested.

****

Brief description

A computer science graduate school survival guide, intended for prospective or novice graduate students. This guide describes what I wish I had known at the start of graduate school but had to learn the hard way instead. It focuses on mental toughness and the skills a graduate student needs. The guide also discusses finding a job after completing the Ph.D. and points to many other related web pages.


“So long, and thanks for the Ph.D.!”

a.k.a.

“Everything I wanted to know about C.S. graduate school
at the beginning but didn’t learn until later.”

The 4th guide in the Hitchhiker’s guide trilogy
(and if that doesn’t make sense, you obviously have not read Douglas Adams)

by Ronald T. Azuma

v. 1.08

Original version 1997, last revised January 2003


Introduction

    • The Feynman Problem Solving Algorithm:
      1) Write down the problem.
      2) Think very hard.
      3) Write down the solution.
  • “To know the road ahead, ask those coming back.”
    - Chinese proverbIn February 1995, on a beautiful sunny day with clear Carolina blue skies, I turned in the final, signed copy of my dissertation. The graduate school staff member did some last-minute checks on the document and pronounced it acceptable. After six and a half years of toil and sweat, I was finally done! While walking back to the C.S. department building, I was sorely disappointed that the heavens didn’t part, with trumpet-playing angels descending to announce this monumental occasion. Upon hearing this observation, Dr. Fred Brooks (one of my committee members) commented, “And the sad fact is, you’re no smarter today than you were yesterday.” “That’s true,” I replied, “but the important thing is that I am smarter than I was six and a half years ago.”

    That day was over two years ago, and since then I have had plenty of time to reflect upon my graduate student career. One thought that has repeatedly struck me is how much easier graduate school might have been if somehow, magically, some of the things I knew when I turned in my dissertation I could have known when I first entered graduate school. Instead, I had to learn those the hard way. Of course, for many topics this is impossible: the point of graduate school is to learn those by going through the experience. However, I believe other lessons can be taught ahead of time. Unfortunately, such guidance is rarely offered. While I had to learn everything the hard way, new graduate students might benefit from my experiences and what I learned. That is the purpose of this guide.

    Very little of this guide discusses technical matters. Technical skills, intelligence and creativity are certainly strong factors for success in graduate school. For example, I doubt there is a C.S. graduate student who didn’t at one point wish he or she had a stronger mathematical background. However, it’s beyond the scope of this guide to tell you how to be technically brilliant, as the following joke implies:

    You don’t have to be a genius to do well in graduate school. You must be reasonably intelligent, but after a certain point, I think other traits become more important in determining success.This guide covers the character traits and social skills that often separate the “star” graduate students from the ordinary ones. Who are the students who are self-motivated, take initiative, find ways around obstacles, communicate well both orally and in writing, and get along well enough with their committee and other department members to marshal resources to their cause? Which students seem to know “how the system works” and manage to get things done? These traits are hardly unique to succeeding in graduate school; they are the same ones vital to success in academic or industrial careers, which is probably why many of the best graduate students that I knew were ones who had spent some time working before they came back to school.

    This document is aimed at junior C.S. graduate students, but these observations are probably broad enough to apply to graduate education in other technical fields. My conclusions are certainly colored by my particular experiences (doing my dissertation work in interactive computer graphics in the Computer Science department of the University of North Carolina at Chapel Hill) but I think they are fairly general in application and should be of interest to readers at other schools and other C.S. specialties. Obviously, these are only my opinions and may not represent the views of other sane individuals or organizations. Some points may be controversial, but if they weren’t this would not be interesting reading. Parts of this document come from two informal talks I gave at UNC about “the Ph.D. job hunt” and “observations from spending one year in industrial research.” Both talks had larger audiences than any informal technical talk I gave at UNC, which told me that students are definitely interested in these subjects!

Why get a Ph.D.?

    “Being a graduate student is like becoming all of the Seven Dwarves. In the beginning you’re Dopey and Bashful. In the middle, you are usually sick (Sneezy), tired (Sleepy), and irritable (Grumpy). But at the end, they call you Doc, and then you’re Happy.”
    - yours trulyThe most basic question every Ph.D. student must know the answer to is: “Why the hell am I doing this?”

    It’s a good question. The hours are long. The pay is low, with minimal benefits. After graduation, Ph.D. salaries are higher than B.S. and M.S. salaries, but the difference doesn’t make up for the income lost by staying in school longer. The M.S. has a better “bucks for the time invested” ratio than the Ph.D. does. And in terms of social status, a graduate student doesn’t rank very high on the ladder.

    If you do not have an acceptable answer to this question, then don’t get a Ph.D. I repeat: if you do not have a rock-solid reason for getting the Ph.D., then it is better that you leave with a Master’s.

    Why? Completing a Ph.D. is a long, hard road with many potholes and washed out bridges along the way. You may run over some land mines and have to stop and turn around and explore other routes. If the goal is important enough to you, then these obstacles will not prevent you from completing your journey. But if you don’t know why you are on this road, then you will get discouraged and will probably leave without finishing, having wasted years of your life.

    I faced this situation after the first time I took the Doctoral Written Exam (which at the time was the entrance examination into the Ph.D. program). I missed passing it by just 4 percentage points. I then had to decide whether or not to try again next semester (committing myself again to spending weeks getting ready for the test) or just leave with an M.S. degree.

    I didn’t come to graduate school with the Ph.D. as the primary goal. So this test result forced me to answer the basic question “Why the hell am I doing this?” After much soul searching, I found my answer and decided to take the test again, passed it, and went on to get my Ph.D.

    I got the Ph.D. because I wanted to get a research position after leaving graduate school. I wanted to work with the state of the art and extend it. I did not want to “bring yesterday’s technology one step closer to tomorrow.” I wanted a job that would I find interesting, challenging and stimulating. While an M.S. would give me a chance at landing a research position, the Ph.D. would give me a much better chance. And I did not want to live with regrets. If I took the Doctoral Written Exam again and failed again, then I could say that it wasn’t meant to be and move on with my life. I would have no regrets because I had given it my best shot and was not able to make it. However, if I left with an M.S. without taking the test a second time, and five years later I was in a job that was boring and uninteresting, then I would have to lie awake every night for the rest of my life wondering “What if?” What if I had taken the test again and passed? Would I then be in the job that I really wanted? That was not a situation I wanted to be in. I did not want to live the rest of my life regretting what might have been.

    In hindsight, I think one of the main reasons I successfully completed the Ph.D. was the fact that I didn’t pass the exam on the first try. It’s ironic, but life sometimes works in strange ways. That initial failure caused me to answer the basic question, providing the mental fortitude to keep going despite the hurdles and problems I would later face.

    My answer is you should get a Ph.D. if it is required for your goals after graduate school, such as becoming a professor or a researcher in academia, government or industry. Your answer may differ from mine. As long as you have an answer that you believe in passionately, then that’s enough. If you don’t have an answer, then save yourself a lot of grief and don’t get the Ph.D.

Academia is a business

    “Remember the Golden Rule: Those who have the gold make the rules.”Academia is a business, and “graduate student” is a job title. This is especially true at private universities. Academia is very peculiar type of business. It is certainly not the Real World and does not work in the same way that the ordinary corporate world does. However, it is a business nonetheless and as a graduate student, you must treat it that way. Graduate school made a lot more sense and became much easier for me after I realized this. If you think of graduate school as an “Ivory Tower” free of politics, money problems, and real-world concerns, you are going to be severely disappointed. If you don’t believe me, read The Idea Factory by Pepper White (listed in the references) for one account of graduate life at MIT.

    A few graduate students are independently wealthy or have fellowship and scholarship money that cover all their expenses for their total stay in graduate school. Such students are rare, however. Most of us needed financial support, in the form of Teaching Assistantships or Research Assistantships (RA’s). In general, RA’s are more desirable to students since those can directly fund the research you need to finish.

    Where does the money come from to fund RA’s? Your professors have to raise funds from external organizations. These include government agencies such as the National Science Foundation (NSF), Defense Advanced Research Projects Agency (DARPA), the Office of Naval Research (ONR), and others. Private companies also fund some university research, although this tends to be less common, in smaller amounts, and in the form of equipment donations. These organizations don’t just give money away as charity. They expect their money to accomplish something. Increasingly these days, this takes the form of a contract for a working demonstration that must be shown at the end. That means once the money is delivered, your professors must come through with the working demonstration. It is rare that they do this by themselves. Instead, they find some very capable, young, self-motivated people who are willing to work long hours for small amounts of pay. In other words, they fund RA’s.

    The RA job is crucial to the academic business. If the RA’s cannot successfully conduct the research, then the demonstration will not work in the end and the funding agencies may not be happy. They may choose not to fund your professor in the future, which will bring his or her research program to a halt. And there are many professors and other researchers chasing too few research dollars these days; it is a competitive market. Thus, each professor wants the best students available. These students are the most capable ones who can get the research done required to fulfill the funding contracts.

    That means you must treat an RA like a job. You must prove to your professors that you are capable of getting the work done, being a team player, communicating your results, and most of the other characteristics needed to do well in regular jobs. That’s why many of the upcoming sections in this guide sound like ones written for the regular workplace.

    What do you get out of this? At the start, you may have to do tasks specifically related to the funding contracts. But eventually your professor must be flexible enough to fund your own specific research program that leads to the completion of your dissertation. Your stipend and tuition waiver should be enough to live on frugally without going into debt. You will learn the state of the art in your chosen speciality and conduct cutting-edge research on a subject that you find interesting and enjoyable. If you don’t find this compensation sufficient, then you shouldn’t be in graduate school in the first place.

    The bottom line: realize that academia is a peculiar kind of business and the role you play in this enterprise. If you do your job well (and have good negotiation and interpersonal skills, as discussed in future sections), both your needs and your professors’ needs will be met. But don’t enter an RA position thinking that the computers, research equipment, staff members and other resources that you are provided with are your birthright. Don’t take them for granted! Most of those exist only because your professors have been able to raise the money to provide those to you. In turn, you must fulfill your end of the deal by doing great research with those resources. If you don’t do your job well, don’t be surprised if your professors choose not to fund you in the future. They do not have to provide you with an RA job or let you use the computing equipment they acquired. And the student who has no funding, no tuition reimbursement and no access to required computing resources is the student who leaves the university that semester.

    How do you make sure you are one of those best, highly desired RA’s? Read on!

Graduate school is a different ballgame

    “Don’t let school get in the way of your education.”
    - Mark Twain“The IQ test was invented to predict academic performance, nothing else. If we wanted something that would predict life success, we’d have to invent another test completely.”
    - Robert Zajonc

    If you go through a Ph.D. program, you will find graduate school a very different world from undergraduate school. If you just get an M.S., then graduate school may not be much different from undergrad (depending on where you get your degree), except that the courses are deeper and more advanced. But for a Ph.D. student, graduate school is a whole new ballgame. The students who do well are the ones who learn this earlier rather than later and make the necessary adjustments.

    Graduate school is not primarily about taking courses. You will take classes in the beginning but in your later years you probably won’t have any classes. People judge a recently graduated Ph.D. by his or her research, not by his or her class grades. And, without any offense to my professors, most of what you learn in a Ph.D. program comes outside of classes: from doing research on your own, attending conferences, and talking to your fellow students. Success in graduate school does not come from completing a set number of course units but rather from successfully completing a research program.

    Graduate school is more like an apprenticeship where each student has his or her own project, and the masters may or may not be particularly helpful. It’s like teaching swimming by tossing students into the deep end of the pool and seeing who makes it to the other end alive and who drowns. It’s like training clock designers by locking students inside a clock factory with some working clocks and lots of clock parts and machines for building clocks. However, the instructions are at best incomplete and even the masters themselves don’t know exactly how to build next year’s models.

    Excelling in a Ph.D. program requires different skills than doing well in undergrad. Undergraduate education tests you through class projects (that do not last more than a semester), essays, midterms and finals. For the most part, you work alone. Your professor may not know your name. Every other student in your class takes the same tests or does similar projects. But in a Ph.D. program, you must select and complete a unique long-term research program. For most of us, this means you have to learn how to do research and all that entails: working closely with your professors, staff and fellow students, communicating results, finding your way around obstacles, dealing with politics, etc.

    I’m not saying that tests and grades are completely unimportant in graduate school. One of the two biggest hurdles in completing a Ph.D. is passing the qualifying exam. (The other is finding an acceptable dissertation topic.) But because graduate school is not nearly as exam-based as undergraduate education and requires different skills, the GRE and undergraduate grades are not as good an indicator of who will excel and who will drop out as admission committees seem to think. Those tests do not measure creativity, tenacity, interpersonal skills, oral presentation skills, and many other important traits.

    The next several sections discuss these traits.

Initiative

    “The difference between people who exercise initiative and those who don’t is literally the difference between night and day. I’m not talking about a 25 to 50 percent difference in effectiveness; I’m talking about a 5000-plus percent difference, particularly if they are smart, aware, and sensitive to others.”
    - Stephen R. Covey, The 7 Habits of Highly Effective PeopleThe dissertation represents a focused, personal research effort where you take the lead on your own, unique project. If you expect that your adviser is going to hold your hands and tell you what to do every step of the way, you are missing the point of the dissertation. Ph.D. students must show initiative to successfully complete the dissertation. This does not mean that guidance from professors is unimportant, just that this guidance should be at a reasonably high level, not at a micromanaging level. If you never do any tasks except those that your professor specifically tells you to do, then you need to work on initiative.

    At UNC, there is a famous anecdote about a former UNC graduate student named Joe Capowski. Many years ago, UNC got a force-feedback mechanical arm to use with molecular visualization and docking experiments. The problem was how to move it to UNC. This mechanical arm is a large, heavy beast, and it was in Argonne National Labs in Chicago, IL. Unfortunately, there was a trucker’s strike going on at the time. Joe Capowski, on his own initiative (and without telling anyone), flew out to Argonne, rented a car, drove the mechanical arm all the way back to North Carolina, and then handed the computer science department the bill! Many years later, Joe Capowski ran for the Chapel Hill city council and won a seat. Prof. Fred Brooks gave him an endorsement. I still remember the words Dr. Brooks said: “I may not agree with his politics, but I know he’ll get things done.”

    While the Joe Capowski anecdote is perhaps a bit extreme, it does show that it is often better to ask forgiveness than permission, provided you are not becoming a “loose cannon.” Certain universities (e.g. MIT) are good at fostering a “can do” attitude among their graduate students, and therefore they become more assertive and productive. One of the hallmarks of a senior graduate student is that he or she knows the types of tasks that require permission and those that don’t. That knowledge will come with experience. Generally, it’s the senior graduate students who have the most freedom to take initiative on projects. This privilege has to be earned. The more that you have proven that you can work independently and initiate and complete appropriate tasks, the more your professors will leave you alone to do what you want to do.

Tenacity

    “Let me tell you the secret that has led me to my goal. My strength lies solely in my tenacity.”
    - Louis PasteurYou don’t need to be a genius to earn a Ph.D. (although it doesn’t hurt). But nobody finishes a dissertation without being tenacious. A dissertation usually takes a few years to complete. This can be a culture shock to former undergraduates who have never worked on a project that lasted longer than one quarter or semester (at the end of which, whatever the state of the project, one declares victory and then goes home). No one can tell you in advance exactly how long the dissertation will take, so it’s hard to see where the “end of the road” lies. You will encounter unexpected problems and obstacles that can add months or years to the project. It’s very easy to become depressed and unmotivated about going on. If you are not tenacious about working on the dissertation, you won’t finish.

    Tenacity means sticking with things even when you get depressed or when things aren’t going well. For example, I did not enjoy my first year of graduate school. I didn’t tell anyone this until after leaving UNC. I was not on a project and was focused on taking classes, some of which I didn’t do all that well in. I didn’t feel a part of the Department, and really wondered whether or not I fit in. Still, I stuck with it and when summer rolled around and I got a job in the Department, I became much more involved in research and enjoyed graduate school much more. Part of earning a Ph.D. is building a “thick skin” so you are not so fragile that you will give up at the first sign on any difficulties.

    One lesson I learned as a graduate student is the best way to finish the dissertation is to do something every day that gets you closer to being done. If all you have left is writing, then write part of the dissertation every day. If you still have research to do, then do part of it every day. Don’t just do it when you are “in the mood” or feeling productive. This level of discipline will keep you going through the good times and the bad and will ensure that you finish.

Flexibility

    “Back in graduate school, I’d learned how to survive without funding, power, or even office space. Grad students are lowest in the academic hierarchy, and so they have to squeeze resources from between the cracks. When you’re last on the list for telescope time, you make your observations by hanging around the mountaintop, waiting for a slice of time between other observers. When you need an electronic gizmo in the lab, you borrow it in the evening, use it all night, and return it before anyone notices. I didn’t learn much about planetary physics, but weaseling came naturally.”
    - Clifford Stoll, The Cuckoo’s Egg“The Chinese call luck opportunity and they say it knocks every day on your door. Some people hear it; some do not. It’s not enough to hear opportunity knock. You must let him in, greet him, make friends and work together.”
    - Bernard Gittelson

    Flexibility means taking advantage of opportunities and synergies, working around problems, and being willing to change plans as required. As a graduate student, you are on the bottom of the academic totem pole. Even undergraduates can rank higher, especially at private universities (because they actually pay tuition!) You cannot order anybody to do anything. In general, you will be in the position of reacting to big events rather than controlling them. Therefore, you must be flexible in your approach and research program.

    For example, you may not have as much access to a piece of laboratory equipment as you would like, or maybe access is suddenly cut off due to events beyond your control. What do you do? Can you find a replacement? Or reduce the time needed on that equipment? Or come in at odd hours when no normal person uses that equipment? Or redefine the direction of your project so that equipment is no longer required?

    Events can be good as well as bad. The difference between the highly effective graduate student and the average one is that the former recognizes those opportunities and takes advantage of them. I had nothing to do with bringing Gary Bishop to UNC. But after he arrived I realized my research would progress much faster if he became my adviser so I made the switch and that was a big help to my graduate student career. Opportunities for synergy and serendipity do occur, but one has to be flexible enough to recognize them and take advantage of them.

Interpersonal skills

    • I first learned of the capricious, human side of organizations some 15 years ago while studying the careers of engineers and scientists. The research design required that I spend eight hours a day in one-on-one interviews. For two hours I’d ask “career” questions of an engineer, chemist, physicist, or applied mathematician — all of whom worked for a Fortune 500 firm. During these 120 minutes, the subjects talked about the perils of the organizations. Two hours was scarcely enough time to share their stories. All energetically discussed their personal careers. Most had been frustrated with the “soft and gushy” side of organizations. Some had figured out the system and learned to master it. Others had not.As part of the research design, we asked to talk to low, medium, and high performers. This in itself was an interesting exercise. To determine performance rankings, we would place in front of a senior manager the names of the 10-50 people within his or her organization. Each name would be typed neatly in the middle of a three-by-five card. After asking the manager to rank the employees from top to bottom, the managers would then go through a card sort. Typically the executive would sort the names into three or four piles and then resort each pile again. Whatever the strategy, the exercise usually took only minutes. Just like that, the individual in charge of the professionals in question was able to rank, from top to bottom, as many as 50 people. It rarely took more than three minutes and a couple of head scratches and grunts. Three minutes. Although politics may appear ambiguous to those on the receiving end, those at the top were able to judge performance with crystal clarity.

      This performance ranking (conducted by individuals not involved in the interviews) was then used as a dependent measure. Those of us conducting the interviews attempted to surface information (independent measures) that would predict the ranking. What about a scientist’s career would lead to a top ranking? What trashed a perfectly good career? Surely scientific prowess would have an impact. And it did.

      But technological prowess wasn’t as predictive as another factor. We discovered that we could tell what performance group the interviewees belonged to within a minute or two by their attitudes toward people and politics. Individuals who were ranked low by their managers spoke of organizational politics as if it were poison. They were exceptionally annoyed by the people side of the business. They frequently stated they would rather be left alone to conduct their research untrammeled by human emotions. They characterized the social side of organizations as “soft and gushy.” They sounded like Spock turned bitter.

      Top performers, in contrast, found a way to work within the political system. They hadn’t exactly embraced politics. They didn’t appear like that toothy kid you knew back in college who lived to fight political battles. They didn’t come off as glad-handling sales folks. These were professional scientists who were often top ranked in their field. They looked and talked liked scientists. The difference between them and those ranked at the bottom of the totem pole was clear. They had found a way to make peace with organizations, people, and politics. They climbed to the top of their field by mastering both hard things and soft and gushy people.

      Engineers and scientists aren’t the only ones who find the human side of the organizations to be annoying. As we expanded our research to include professors, accountants, and other professionals, the findings were remarkably similar. All found political machinations to be distasteful. It’s just that some had found a way to master the social aspects — the top performers.

  • “For humans, honesty is a matter of degree. Engineers are always honest in matters of technology and human relationships. That’s why it’s a good idea to keep engineers away from customers, romantic interests, and other people who can’t handle the truth.”
    - Scott Adams, The Dilbert Principle“I can calculate the motions of the heavenly bodies, but not the madness of people.”
    - Isaac Newton

    Computer Science majors are not, in general, known for their interpersonal skills. Some of us got into this field because it is easier to understand machines than people. As frustrating as computers can be, they at least behave in a logical manner, while human beings often do not. However, your success in graduate school and beyond depends a great deal upon your ability to build and maintain interpersonal relationships with your adviser, your committee, your research and support staff and your fellow students. This does not mean you must become the “life of the party.” I am not and never will be a gregarious, extroverted person. But I did make a serious effort to learn and practice interpersonal skills, and those were crucial to my graduate student career and my current industrial research position.

    Why should this matter, you may ask? If one is technically brilliant, shouldn’t that be all that counts? The answer is no, because the situation is different from your undergraduate days. In both graduate school and in business, you must depend upon and work with other people to achieve your goals To put this in perspective, I have excerpted the following from an article called “Organizations: The Soft and Gushy Side” by Kerry J. Patterson, published in Fall 1991 issue of The Bent:

    Students usually look down on politics, but politics in its most basic, positive form is simply the art of getting things done. Politics is mostly about who is allowed to do what and who gets the resources (money, people, equipment, etc.) To succeed in your research, you will need resources, both capital and personnel. Interpersonal skills are mandatory for acquiring those resources. If you are incapable of working with certain people or make them mad at you, you will not get those resources and will not complete your research.For example, which group of people did I try my best to avoid offending? Was it my committee? No, because healthy disagreements and negotiations with your adviser and committee are crucial to graduating within a reasonable amount of time. Nor was it my fellow students, because I did not need help from most of them, and most of them did not need me. The critical group was the research and support staff. These include the research faculty and all the various support positions (the system administrators, network administrators, audio-visual experts, electronic services, optical and mechanical engineers, and especially the secretaries). I needed their help to get my research done, but they did not directly need me. Consequently, I made it a priority to establish and maintain good working relationships with them.

    Cultivating interpersonal relationships is mostly about treating people with respect and determining their different working styles. Give credit where credit is due. Acknowledge and thank them for their help. Return favors. Respect their expertise, advice and time. Apologize if you are at fault. Realize that different people work in different ways and are motivated by different things — the more you understand this diversity, the better you will be able to interact and motivate them to help you. For certain people, offering to buy them dinner or giving them free basketball tickets can work wonders.

    A true example: at one point in my research, I needed to make significant modifications to some low-level code in the graphics computer called “Pixel Planes 5.” Doing this required expertise that I did not have, but another graduate student named Marc Olano did. How should I tap into Marc’s expertise and get my necessary changes done?

    The wrong way is to go up to Marc, explain the problem, and get him to make the changes. Marc doesn’t need the changes done; I do. Therefore, I should do most of the work. Expecting him to do the work shows disrespect of his time.

    What I actually did was to explain the problem to Marc and he sketched out a possible solution. Then I ran off and worked on my own for a few days, trying to implement the solution. I got part of it working, but ended up getting stuck on another part. Only at that point did I go back to Marc and ask him for help. By doing this, I showed that I respected his time and wanted to minimize his burden, thus making him more willing to help me. Months later, when he and Jon Cohen needed my help in setting up a system to demonstrate some of their software, I was more than happy to return the favor.

    Interpersonal interaction is a huge subject and goes far beyond my description here. All I can really do in this section is (hopefully) convince you that these skills are vital to your graduate student career and encourage you to learn more if you need to improve these skills. I still have a lot to learn myself. I recommend reading The 7 Habits of Highly Effective People and Type Talk (both listed in the References section) as starting points.  The magazine article “How to be a star engineer” (listed in the References) also touches on this subject.

Organizational skills

    “Failing to plan is planning to fail.”Since academia is a type of business, you will have responsibilities that you must uphold. You will be asked to greet and talk with visitors, give demos, show up to meetings, get projects done on time, etc. If you are not well organized, you will have a difficult time meeting those obligations. A technically brilliant student will be greatly hampered if he or she exhibits an “absent minded” personality and develops a reputation for being disorganized.

    There are many different time management and organization skills, and you can find many books on those at your local bookstore. This guide is not going to describe them. Find one that works for you and use it. I can highly recommend Stephen Covey’s book, listed in the references. But whatever system you pick, just make sure it works for you. I have never found anyone else who uses my filing scheme, but it is effective for me (by minimizing the combined time of putting away and locating a piece of information). All that really matters is whether or not it works.

    One metaphor I found useful is the following: Organize your tasks as if you were juggling them. Juggling several balls requires planning and skill. You must grab and toss each ball before it hits the ground. You can only toss one ball at a time, just as you can only work on one task at a time. The order in which you toss the balls is crucial, much as the order of working on tasks often determines whether or not you meet all your deadlines. Finally, once you start a task (grab a ball) you want to get enough done so you can ignore it for a while (throw it high enough in the air so it won’t come down for a while). Otherwise you waste too much time in context switches between tasks. Do you see jugglers try to keep each ball at the same height above the ground, frantically touching every ball every second?

    Randy Pausch (a professor at CMU) has a set of notes on time management. Three words in his guide summarize the most vital step: Kill your television. He asks you to keep your priorities straight. What is the most important thing to a Ph.D. student? It should be finishing the dissertation, not watching every episode of Friends. That doesn’t mean dropping everything else in life, but it does mean knowing what takes priority and allocating time accordingly.

Communications skills

    “What is written without effort is, in general, read without pleasure.”
    - Samuel Johnson“Present to inform, not to impress; if you inform, you will impress. “
    - Fred Brooks

    I am always amazed that articles written about businesses consistently put good communication skills at or near the top of list of skills that employers want to see in people but rarely find. But you know what? It’s true!

    Communication skills, both written and oral, are vital for making a good impression as a Ph.D. student and as a researcher. At a minimum, you have to defend your dissertation with an oral presentation. But you should also expect to write technical papers and reports, give presentations at conferences, and give demonstrations to groups of visitors. If you can write and speak well, you will earn recognition and distinguish yourself from the other graduate students. This is especially true when giving presentations in front of important visitors or at major conferences.

    Conversely, if you cannot communicate well, then your career options after graduation will be limited.  Professors spend most of their time communicating: teaching, fundraising, guiding graduate students, and documenting their results (through papers, videos, viewgraphs, etc.)  In industry, we need people who can communicate well so they can work in teams, learn what businesses and customers need, present their results, raise funds, and transition to leadership roles in projects and personnel management.  If you are technically brilliant but are incapable of communicating, then your results will be limited to what you can accomplish alone and your career growth will be limited, both in industry and academia.

    Unfortunately, not all graduate students receive training in giving presentations or writing technical documents (which are different from English essays). These are skills that can be learned! Don’t worry if giving presentations and writing papers are not something that comes naturally to you. I was not very comfortable giving oral presentations when I started graduate school, so I made a concerted effort to learn how to do so, by taking classes, reading about the subject, and practicing. It’s not easy, but it’s well worth the investment. If you need practice, try giving informal talks at research luncheons, joining Toastmasters, and studying good speakers to see what they do.

    Covering everything about this subject would fill a guide by itself (check out the SIGGRAPH page on preparing and giving presentations), and would probably better done through a videotape than a written document. But here are a few basic points:

  • Organization counts. Within the first few paragraphs or first few minutes, tell me why I should read your paper or listen to your talk. Make it clear where we are going and what we have already covered.
  • Make the text in your slides large enough so that people sitting in the back can read them. For large presentation halls, this usually means no more than 6-7 lines per slide and 28 point type minimum. You’d be surprised how many experts on visualization (especially tenured professors!) give presentations with unreadable slides.
  • Variety retains interest. Vary your pace, tone, and volume. Emphasize the important points. Look around the room. Throw in some video, pictures, or live examples.
  • Don’t stand in front of the screen and block everyone’s view. You’d be surprised how often people do this without realizing it.
  • Point out the limitations of your work. That helps your credibility. Similarly, give credit where credit is due.
  • Make friends with the A/V crew! Running A/V is a thankless, negative reinforcement job. If everything runs smoothly, well, that’s what was supposed to happen so nobody says anything. But if anything goes wrong, the entire audience looks back at the control room. Help the A/V people help you. Always check in early and test the equipment. Tell them what you are going to do in your presentation (e.g. I’m running 3 video segments). Make sure you know how everything works long before you come up to the podium. And thank the A/V crew for their help after you are done!
  • Confidence is the key to giving a good presentation. And the way to gain confidence is to give good presentations. When you’re just starting out, this is a Catch-22. However, once you become good enough, this turns into a positive feedback cycle that can make giving talks a pleasure.

    Writing papers and getting them published is vital for Ph.D. students who want to get jobs in research after graduation. Your ability to write well significantly improves the chances that your paper will be accepted. When I was a young graduate student and read a paper that I didn’t understand, I thought “Gee, I must be dumb.” Today I will read the same paper and think “Boy, this is a lousy paper. The authors did not do a good job explaining and presenting their work.” If I am reviewing that paper, such a reaction is enough for me to reject the paper.

    Where do you submit your papers? Your professors will help you with this choice, but in general I would suggest shooting for the best conferences or journals where you think it has a reasonable chance of being accepted. It’s not much more work to write, submit and present a paper in a highly respected venue than in less respected venues. And if you don’t shoot for the top you’ll never know if it would have made it. The field of computer graphics is a bit unusual in that the most desirable place to publish is a conference (SIGGRAPH), rather than a journal. Be aware that journals can take years to publish submitted papers; the turn-around time is much faster in a conference.

    Finally, don’t forget to communicate with your professors and your teammates. Keep your committee appraised of your progress. One thing I do (which few others do) is write short (1 screenfull) status reports, which I religiously e-mailed to my professors and team members on a weekly basis. These serve as an efficient way of keeping everyone up to date on what I’m doing. They are also a good way for me to record my progress. If I need to remember what I got done during a six month period, I have plenty of old status reports that I can read. You’d be amazed how appreciative professors and managers are of this simple practice. I also throw in a different humorous quote at the end of each week’s report to reward people for reading it.

    When you are working in the lab and you reach a milestone or achieve a result, let people know about it! Bring in your professors and fellow students and show it off! That’s a win-win situation. It lets others know that you are making progress and achieving results, and you get valuable feedback and advice.

Choosing an adviser and a committee

    “Some students in the lab are only nominally supervised by a thesis advisor. This can work out well for people who are independent self-starters. It has the advantage that you have only your own neuroses to deal with, not your advisor’s as well.”
    - from “How to do research at the MIT AI Lab”The choice of an appropriate adviser is crucial to successfully completing the Ph.D. Your adviser must be someone who can cover your area of specialization and someone you can get along with. When I started graduate school, I thought the adviser – student relationship was supposed to be very close, both professionally and socially. In reality, the relationship is whatever the professor and the student choose to make of it. It can be close, with invited dinners at the professor’s home, or it can be distant, e.g. meeting once per semester just to remind the professor that the student is still alive.

    One basic question in choosing an adviser is whether to pick a junior (non-tenured) or a senior (tenured) professor. Non-tenured professors tend to travel less and are generally more available. It is difficult to get help from an adviser who is never in town. Non-tenured faculty have fewer advisees that you have to compete with to get time with the professor. They are more likely to be personally involved with your research — writing code, spending time in the lab at midnight, etc. Non-tenured faculty must be energetic and hard working if they want to be awarded tenure, and this work habit can rub off on their students. However, tenured faculty have several advantages as well. They are usually the ones with most of the money and resources to support you. They do not have to compete with their students for publications and recognition. The advisee does not run the risk of having his or her adviser not getting tenure and leaving the university. Tenured faculty are more experienced with “how the game works” and thus may be better sources of guidance, personal contacts, jobs after graduation, etc.

    I ended up with a non-tenured professor (actually, he was not even on the tenure track at the time) as my adviser, but also put several tenured professors on my committee, including some of the most senior ones in my specialty. In that way, I got the best of both worlds: the day-to-day attention from the primary adviser, combined with the resources and experience of the committee.

    Professors develop reputations amongst graduate students. Some are known to graduate their Ph.D. students rapidly. Others are impossible to get hold of, so their students take forever to finish or leave without graduating. Some dictate what their advisees have to do, while others are accommodating of student interests. Ask around. What you learn may be revealing. And if circumstances change to make another professor a more appropriate match to your needs, don’t be afraid to switch if that is an overall win.

    When picking a committee, you want to make sure they can cover all the areas of your thesis. You also want to make sure that it is likely that all the committee members will be available for meetings! Including too many professors who travel often will make it difficult to get all five or six together in one room for a three hour oral exam or proposal meeting. When scheduling such meetings, start by finding times when the difficult-to-reach professors are in town, and then add in the other committee members.

Balance and Perspective

    “Life goes by so fast, that if you don’t stop and look around, you might miss it.”
    - from the film Ferris Bueller’s Day Off“Generally speaking, people provide better maintenance for their cars than for their own bodies.”
    - Scott Adams, The Dilbert Future

    When I was in graduate school, my top priority was crystal clear to me: getting out with a Ph.D. Other people described me as “focused like a laser beam” on that goal. In retrospect, I may have been too focused. There is more to life than graduate work. Keeping your health and your sanity intact are both vital to achieving the primary goal of getting out.

    Repetitive Strain Injury (RSI) is a major occupational hazard in our industry. Carpal Tunnel Syndrome is just one type of RSI. If you do not know how to set up your workspace for good ergonomics, learn now! The Pascarelli reference at the end of this guide is a good book on this subject. Over a dozen of my friends and coworkers have been inflicted with this problem. In severe cases, RSI can be a career-ending injury. If you can’t type, it’s rather difficult to write papers, computer programs, presentations, etc. Don’t let this happen to you! Prevention is the way to go. Recently I have been working with weights to strengthen my shoulders and wrists as an additional preventative step.

    Earning a Ph.D. is like running a marathon. You have to learn to pace yourself and take care of your body if you want to reach the finish line. Unfortunately, students often act like sprinters running a marathon. They are highly productive for a while, but then fall by the wayside because they aren’t eating correctly, exercising, taking time out to recharge their batteries, etc. You maximize your long-term productivity by not ignoring those other aspects. While I was in graduate school, I took time out to travel up and down the East Coast, from Boston down to Orlando. That was an important part of keeping my stress down and recharging my batteries. I also did some running and circuit training for exercise. For shorter breaks, I shot nerf basketballs at a tiny hoop mounted in the graphics lab and kept a guitar in my office. Figure out what works for you.

    It’s easy to lose perspective while in graduate school. You are surrounded by so many other smart, hard working people that it is easy to feel inferior and lose self-esteem and confidence. But without an underlying confidence that you do have what it takes to complete a dissertation, it’s too easy to drop out when the going gets tough instead of sticking it through. I found it useful to keep in touch with the “real world,” to remind myself that the graduate student population is not representative of humanity in general and to keep my perspective. You got into graduate school because you have already shown to your professors that you have potential and skills that are not typical among most college students, let alone most people — don’t forget that.

The Ph.D. job hunt

    On résumés: “The closest to perfection a person ever comes is when he fills out a job application form.”
    - Stanley RandallReal World, The (n.): Where a computer science student goes after graduation; used pejoratively (“Poor slob, he got his degree and had to go out into the REAL WORLD.”). Among programmers, discussing someone in residence there is not unlike talking about a deceased person.”
    - the fortune program

    Ideally, the job hunt begins years before you graduate. Networking is very important: while you are in the middle to late phases of your graduate studies, try to get yourself noticed by professors and industry people at other sites. One way to do this is to offer to give a talk about your work at another site. This is not that difficult to do, since most research places love to host seminars and bring in fresh ideas. Attending conferences and working elsewhere during the summer are other ways to get exposure. Make friends with graduate students and personnel at other schools. Make and carry your own business cards. Schmooze with important visitors during major site visits. For about two years, I ran the informal “Graphics Lunch” symposia at UNC. That means I was the point of contact for many speakers who visited UNC and that helped me make contacts. There is also a “star” system that exists. Certain outstanding graduate students can get labeled as “stars” by their professors and that can be an enormous help in getting an interview at CMU or other prestigious locations. It’s nice if you can get on that track but one shouldn’t rely upon it!

    Networking is important because many jobs are found and filled that way. I got my position at HRL partially because I visited there, at my own expense, two years before I even started my job hunt. That meant that when I circulated my résumé, I was more than just a piece of paper to them. You are not going to be looking for job ads in the newspaper. Instead, you’ll look for announcements in major journals, at conferences, on the Net, and through your contacts. For industrial positions, it is crucial to get past the Human Resources department and find the individual with the ability to hire and deal with that person directly.

    When do you start asking for interviews? You can start when you are able to give a talk about your dissertation work. Don’t be too early or too late, because you only get one chance per site. Academic positions generally have a particular “season” (much like getting admitted to school) that starts in the Fall and ends around April; industrial positions generally don’t follow that. The job hunt and interviewing process can take months; factor that into your time allocation.

    The job supply and demand situation can vary dramatically in a few years, and anything I say here about how strong the job market is today (Jan. 2003) will likely be out of date by the time you read it.  For example, during the time I was job hunting (end of 1994 to early 1995), good positions were not easy to find. If I had a dollar for every site that told me “We don’t have a permanent position, but would you take a postdoc?” I could buy a lot of lunches. However, around 1997 the graphics job market became very strong, with many individuals getting multiple offers with high salaries. 1998 was an excellent year for people looking for tenure-track graphics faculty positions. I know many friends who found good tenure-track positions that year.  So when I revised the guide in 2000, I said the job market was strong with high demand. Of course, the tech industry went downhill at that point and hasn’t recovered yet. Now it is much more difficult to find research positions in industry or academia.  With luck, the market will be much better at the time you read this.

    Before starting the job hunt, determine your goals and parameters in advance and the “angle” you will take to sell yourself. For example, my strength was in systems, so I chose to emphasize that in my cover letters. Customize your approach to each site, if time permits. What you do for your thesis determines who will and who won’t take a look at you. Try to get at least one reference from outside your university.

    This guide is not going to cover the basics of interviewing; you can get that from many books (e.g. the Martin Yate and Bob Weinstein books listed in the references). However, I will mention some tips. Don’t interview on the day of arrival, and try to avoid Mondays and Fridays. Be prepared for hard or illegal questions, but you probably won’t get them. Do your homework on each site before interviewing! It continually amazes me that people show up for interviews without knowing anything about the institution they want to join. If the target is a research lab for a major company, you can easily find Wall St. Journal articles, annual reports and stockbroker reports in your library. If your goal is an academic position, check out the Tomorrow’s Professor site for guidance.  If you interview at a university, get their course catalog and use their numbering scheme to describe the courses you can teach. Interview to find out more about them, not just to sell yourself. Your 45-60 minute research presentation is crucial; make sure you practice it thoroughly. Interviews create interviews. That is, if you’ve already gone on many interviews at other places, then that makes you appear more desirable since others want you, and that makes it easier for you to get more interviews. Broadcast this fact by keeping your interview schedule on your web page. There is an anecdote about one student who received offers to interview at many different places, but only after Stanford interviewed him! Keep logs on who you talk to, what you talked about, and when. That makes it easier to keep things straight when juggling several contenders. The major conferences in your field are a good place to schedule preliminary interviews to get your foot in the door, because it is cheap for the company or university. The people you need to meet are already there, so that saves them the expense of having to fly you out and house you at their site.

    Offers are a waiting game. Be prepared for lots of frustration. You need a written offer or nothing is official; you should also accept or reject in writing. Negotiate, but be aware of the strength or weakness of your position. Starting salary may not be as important as the type of work, benefits, and growth potential. Drug tests and other factors are becoming more common; you will have to decide how you want to respond to those.

    Ah yes, salaries. Everybody wants to know about those. For academic (tenure track) salaries, you can get typical numbers from the annual Taulbee surveys, printed in the Computing Research News newsletter and the Communications of the ACM. Realize that these are 9-month salaries. Whether or not you can procure funding that covers 2 or 3 months of summer salary makes a big difference to your bottom line. Also, professors can make money by consulting at rates of $1000-2500 per day, although this is more common among established professors. Figures for industrial salaries are harder to come by. The Maisel and Gaddy references are the only ones I have found that specifically surveys young Ph.D.’s in industry (also see the chart a few paragraphs down). Salaries depend heavily on geography. Silicon Valley is in a league of its own, with salaries far above any other region. But before you decide to move to Palo Alto, remember that the cost of living there is also in the stratosphere. In Sept. 1997, a $60k salary in Indianapolis bought the same standard of living as a $101k salary in San Jose! The cost of living difference is larger today.  Decent houses in the Silicon Valley cost more than half a million.  More general computer science salary surveys are run by the IEEE and EE Times, available at the JobStar salary survey site.

    Acquire salary information on your own by making use of your network. Don’t ask for someone’s salary directly, unless it’s someone you know very well and even then be very careful. Instead, bounce figures off people and see how they respond. Do they think the figure you mention is high, low, or about right? By seeing how people respond you can get an idea of what the market range is.

    Factor in benefits and the expected workload into your compensation evaluation. That $100k offer may seem less attractive if you have to work 80 hour weeks in that position.  Traditionally, stock options made up a large fraction of the compensation packages for startups and Silicon Valley positions, but with the tech bust that may no longer be the case.

    The type of work and compensation varies dramatically with the types of positions. Academic positions are tenure-track, research staff (non tenured) and postdocs. Tenure-track positions at major universities are fairly hard to come by; you need to be both good and lucky. Read the Feibelman and Ralston references for more details. The tenure-track also requires a lot of hours and dedication. As Randy Pausch put it, tenure is a competitive process where you get compared with the other assistant professors and the already-tenured professors. If they worked 70 hour weeks for six years to get tenure, don’t expect to get away with working 40 hour weeks. Postdocs are low paying but good for padding your C.V. if you think you need it to get a tenure track position. Just be sure to read the Feibelman reference, which tells you exactly what you need to do to survive a postdoc. In general, academic positions don’t pay as well as industrial positions, but universities offer more freedom, prestige, a richer intellectual environment and the possibility of long-term stability (with tenure). There’s a big difference between startups, regular industrial jobs, and industrial research positions. Startups can be the most lucrative financially, although that’s a big gamble. Read the Kawasaki and Bell references if you want to work at a startup. Expect to put in long hours while losing contact with the research community. Industrial research lies in an uncomfortable middle ground between production jobs and academic research, and blends the advantages and disadvantages of industry vs. academia.

    The next two charts are the latest figures I have for academic and industrial salaries.

    Academic salaries from 2000-2001 Taulbee survey

    The above chart is from the March 2002 issue of Computing Research News.  It shows the results of the latest Taulbee survey of academic salaries, where nine-month assistant professor salaries average in the $70-80k range.

    Industrial research salary chart

    The above chart is from the November 2002 issue of Computing Research News, showing compensation for industrial positions (based on 11 organizations and 689 responses). Unsurprisingly, expected compensation from bonuses and stock options dropped significantly from 2000 to 2001.  Industrial compensation is higher than academic, although the Taulbee figures are for nine months of salary (not 12).  With summer salary and other supplements, the difference is reduced.  Still, Computing Research News estimates that total compensation for assistant and associate professors lags that of comprable industrial counterparts by 25%.

    No matter where you go after you graduate, maintain your contacts with your alma mater. You may change jobs and move from place to place, but you will always have your degree from your university. If you keep good relations with your university and your fellow former students, that will serve as an excellent base for your personal network.

Conclusion

    • Picture a martial artist kneeling before the master sensei in a ceremony to receive a hard-earned black belt. After years of relentless training, the student has finally reached a pinnacle of achievement in the discipline.”Before granting the belt, you must pass one more test,” says the sensei.

      “I am ready,” responds the student, expecting perhaps one final round of sparring.

      “You must answer the essential question: What is the true meaning of the black belt?”

      “The end of my journey,” says the student. “A well-deserved reward for all my hard work.”

      The sensei waits for more. Clearly, he is not satisfied. Finally, the sensei speaks. “You are not yet ready for the black belt. Return in one year.”

      A year later, the student kneels again in front of the sensei.

      “What is the true meaning of the black belt?” asks the sensei.

      “A symbol of distinction and the highest achievement in our art,” says the student.

      The sensei says nothing for many minutes, waiting. Clearly, he is not satisfied. Finally, he speaks. “You are still not ready for the black belt. Return in one year.”

      A year later, the student kneels once again in front of the sensei. And again the sensei asks: “What is the true meaning of the black belt?”

      “The black belt represents the beginning — the start of a never-ending journey of discipline, work, and the pursuit of an ever-higher standard,” says the student.

      “Yes. You are now ready to receive the black belt and begin your work.”

  • “Dissertations are not finished; they are abandoned.”
    - Fred BrooksThe following story, called “The Parable of the Black Belt,” is excerpted from Built to Last: Successful Habits of Visionary Companies, by James C. Collins and Jerry I. Porras.

    To me, there are two lessons in this story.First, the Ph.D. is the beginning, not the culmination, of your career. Don’t worry about making it your magnum opus. Get out sooner, rather than later.

    Second, if you bother to talk to and learn from the people who have already gone through this process, you might graduate two years earlier.

    Good luck.

Other Related Guides

Recommended Reading

    Bell, C. Gordon and John McNamara. High-Tech Ventures: The Guide for Entrepreneurial Success. Addison-Wesley, 1991. ISBN 0-201-56321-5.
    Dated, but recommended reading if you want to work for a startup.Bronson, Po. The Nudist on the Late Shift. Random House, 1999. ISBN 0375502777.
    A fun read, giving the flavor of what working in the Silicon Valley is like.  Many of the chapters previously appeared as articles in Wired.  A snapshot of the culture before the tech bubble burst.

    Covey, Stephen R. The 7 Habits of Highly Effective People. Fireside Simon and Schuster, 1989. ISBN 0-671-70863-5.
    Excellent overall, with sections on time management, guiding principles and interpersonal skills.

    EE Times Salary Survey Issue.
    EE Times produces an annual survey and commentary about industrial salaries.

    Feibelman, Peter J. A Ph.D. is Not Enough! A Guide to Survival in Science. Addison-Wesley, 1993. ISBN 0-201-62663-2.
    Good discussion of research career paths. A must read if you choose to take a postdoc.

    Kawasaki, Guy. The Macintosh Way: The Art of Guerrilla Management. Harper Perennial, 1990. ISBN 0-06-097338-2.
    Despite problems that occurred at Apple, this book shows the energy and chutzpah required to survive in a startup.

    Kelley, Robert E.  How to be a star engineer.  IEEE Spectrum (October 1999), 51-58.
    Good description of the skills that are needed to excel at work, which go beyond sheer technical skills.

    Kroeger, Otto and Janet M. Thuesen. Type Talk: The 16 Personality Types that Determine How We Live, Love and Work. Tilden Press, 1988. ISBN 0-385-29828-5.
    Introduction to the Myers-Briggs type indicators, useful for interpersonal relations.

    Maisel, Herbert and Catherine Gaddy. Employment and Salaries of Recent Doctorates in Computer Science. Communications of the ACM 40, 9 (September 1997), 90-93.

    Maisel, Herbert and Catherine Gaddy. Employment and Salaries of Recent Doctorates. Communications of the ACM 41, 11 (November 1998), 99-101.
    One of the few surveys I have seen for recent C.S. Ph.D.s that includes both industry and academic numbers. The low sample size is a problem, however.

    Pascarelli, Emil and Deborah Quilter. Repetitive Strain Injury: A Complete User’s Guide. John Wiley and Sons, 1994. ISBN 0-471-59532-2.
    A good introduction to RSI injuries and avoiding them.

    Pastore, Robert R.  Stock Options: An Authoritative Guide to Incentive and Nonqualified Stock Options, 2nd edition.  (printed Dec. 1999).  ISBN 0966889924.  PCM Capital Publishing.
    I haven't read this but I have been told this is an excellent reference for those of you fortunate enough to have a bundle of stock options.  Give me a few options as a tip for finding this book, ok? :-)   The book covers tax and legal issues and gives advice on when to keep or exercise your options.

    Ralston, Anthony. The Demographics of Candidates for Faculty Positions in Computer Science. Communications of the ACM 39, 3 (March 1996), 78-84.
    A must read if you are looking for tenure track positions. The author is a former CS professor who led a faculty search, so if you don't believe what I say, then listen to him.

    Weinstein, Bob. Résumés Don’t Get Jobs: The Realities and Myths of Job Hunting. McGraw-Hill, 1993. ISBN 0-07-069144-4.
    Gritty, realistic job hunting guide for today's market.

    White, Pepper. The Idea Factory: Learning to Think at MIT. Plume (Penguin Books), 1992. ISBN 0-452-26841-9.
    While this is not about C.S., it does dispel the notion of graduate school as an ivory tower environment.

    Yate, Martin. Knock ‘Em Dead: The Ultimate Job Seeker’s Handbook. Bob Adams, Inc.
    Good generic guide to job hunting and interviews, including a long section on interview questions.


Last updated: Fri January 3, 2003

Questions? Send email to azuma_email

Return to Ron Azuma’s page of guides on CS graduate school

Return to Ron Azuma’s home page

Copyright 1997-2003, Ronald T. Azuma, except for portions excerpted from elsewhere

3 Comments :, , , , , , , , , , , , , , , , , , , , , , , , , , , more...

Comcast Outage

by Steve Hernandez on Jul.28, 2009, under Personal

Currently my connection at home is out.  My server tells me it went out around 4 AM.

I’m going to use this blog to keep a history of the outages so that 1) I can get a refund for the time I was unable to utilized the promised service, and 2) so you can too, or at least know how the service is.

I live in a newer area of South Florida, so for the most part, the connection is fairly stable.  No real problems.  Let’s see how long this lasts.

Here’s my conversation with the Comcast technician over Chat.  Not horribly helpful, but whatever, I wasn’t looking to get my problem solved.

chat id : 5ef891cf-8789-4267-9f65-90db684e28f0
Problem : Internet is out.
Steve > Internet is out.
Jose > Hello Steve_, Thank you for contacting Comcast Live Chat Support. My name is Jose. Please give me one moment to review your information.
Jose > How are you today?
Steve_ > I’m doing fine, thank you
Steve_ > I currently do not have an internet connection at my home
Steve_ > I rebooted the modem several times
Steve_ > and made sure all the connections were secured.
Steve_ > is there an outage in my area?

Jose > I understand you are having issue with your internet connection, Is that correct?
Steve_ > yes…
Jose > Thank you.
Jose > Please allow me to assist you with that.
Steve_ > can you please check if there is a reported outage in my area?
Jose > Before I proceed, may I please ask for the full name of the account holder, the account number, and the complete service address?
Steve_ > I do not have my account number
Steve_ > but the name on the account is XXXXX
Steve_ > and the service address is XXXXX

Jose > Thank you for the information. Can you give me a minute while I pull up your account record and view the necessary information that I would need to be able to assist you?
Steve_ > yes
Jose > Steve, I just checked your area and found out that there is an outage affecting your area.
Jose > Here is the outage ID number – OE011729502 CMTS cdn02.pembroke.fl.pompano.comcast.net HSD; Telephony; 7/28/2009 11:56:45 AM 1890
Steve_ > is there an estimated time when it should be resolved?
Jose > Steve, right now I can not give you an estimated time but rest assured that our technicians and system engineers are already working on this issue double time.
Jose > I can also assure you that after this outage, your services will be better than ever.
Jose > It was my pleasure helping you today. Is there anything else that I can help you with?
Steve_ > no, thank you for your help.

Unfortunately the chat does not show times (I don’t know why it wouldn’t, but I think that’s sneaky).  The chat took about 10 minutes, with the delay being on the technician’s side.

*shrug*

EDIT: 7/28/2009 @ 2:30 PM EST

chat id : ddb97b4e-b808-498a-b6ec-8958de053684
Problem : Internet is out.
Steve > Internet is out.
Maverick > Hello Steve_, Thank you for contacting Comcast Live Chat Support. My name is Maverick . Please give me one moment to review your information.
Maverick > How are you doing today?
Steve_ > Fine, how are you?
Maverick > That’s great to hear!
Maverick > I am feeling better now that I have assisted you.
Maverick > I understand you are having problems with your internet connection, is that correct?
Steve_ > I would like to check on the status of the outage with the following ID number: OE011729502
Maverick > Alright! Let me check on that one for you.
Maverick > May I have the account number found on the bill please
Steve_ > i do not have my account number
Steve_ > i can give you my address and name

Maverick > Before going any further, may I ask for the account holder’s full name and the service address, please?
Steve_ > name: XXXXX
Steve_ > address: XXXXX

Maverick > Thank you for that information. Will it be okay if I put you on hold for 2 minutes while I pull up your account?
Maverick > I’m sorry that it’s taking quite a while to resolve your issue, but I really appreciate the patience you have shown. Not everyone is this gracious when faced with such inconvenience.
Steve_ > yes, please proceed.
Maverick > I do apologize for the incovenience. I just verified that currently Comcast is under going a system maintenance and I can assure you that there is nothing wrong with your Internet Services. We appreciate if you would b
Steve_ > Can I please have a credit for today’s service.
Maverick > Because I want to guarantee that this will be lifted at the soonest possible time, I will mark it as urgent and high priority. After this chat, I will still follow up on it once more. How do you find that?
Steve_ > That is fine.
Steve_ > I would like a refund for today’s service which I am unable to use.
Maverick > You will certainly have a credit for this once the outage last for 24 hours.
Steve_ > As a long time customer and having dealt with many connection issues, I will expect a refund for today’s service. It has been out since 4 am this morning.
Maverick > I will definitely document on that one as well.
Steve_ > Good bye.

Another 10 minutes of my day wasted.  This time I was given a gaurnetee as to when my service would return.  Risky move by the technician.

Melissa: What exactly would I contact your team for, as opposed to these wonderful technicians?

2 Comments :, , , , more...

The Road to Management

by Steve Hernandez on Jul.08, 2009, under Technology

Leading people is a fundamental skill

By Peggy Albright

The computing field asks a lot of its practitioners. Its professionals must be diligent, naturally curious, good problem solvers, able to grapple with big concepts as well as minutiae and willing to think outside of conventional boundaries to develop new code, architectures and applications that will find value in business and society. Yet in today’s competitive and global business environment, computing professionals must add yet another fundamental skill to the mix: the ability to lead and manage people.

In fact, developing leadership and managerial skills is no longer a career option, it is becoming a requirement, says Wade Shaw, an IEEE Fellow, editor-in-chief of IEEE’s Engineering Management Review and dean and professor of engineering at Mercer University.

According to Shaw, computing professionals today can expect to supervise someone else in some capacity within three to four years of completing an undergraduate degree. Most successful computer scientists and engineers will need to augment their technology skills with management responsibilities at some point in their career.

Teams and silos

The broadened expectations in the discipline are an outgrowth of an industry whose products are often built by project teams and whose members are often based in different parts of the world and contributing their skills from within various silos of expertise, Shaw said. With comparatively fewer advancement opportunities available for those who prefer to remain individual technology contributors in their companies, any strategy to advance one’s own value to an organization and earn better recognition and compensation must now involve management responsibility.

“The idea that someone changes their career midstream to enter management is an outdated notion,” Shaw said.

“It’s not ‘if’ I become a manager, it’s ‘when’ I become one,” he said. “That’s the starting point. It’s a key attitude difference.”

Soft skills essential

Whether a computing professional is just starting out, taking steps to advance from individual contributor status to project leader or managing multiple teams, or taking the leap from middle management to the executive ranks, the successful cultivation and use of “soft skills” is an essential part of the career advancement process.

Key among these soft skills is the ability to develop relationships with individuals and groups and to communicate effectively. Soft skills also include general business savvy, a big-picture understanding of the organization, a correct perception of one’s own role in the company and how other functions in the organization, such as finance and marketing, contribute to overall success. It includes learning how to think strategically.

“Our technical skills get us in the front door of an organization, but as we work there longer, we need soft skills,” said Dwight Jaggard, IEEE Fellow and director of the Executive Master’s in Technology Management program at the University of Pennsylvania, which is co-sponsored by Penn Engineering and The Wharton School.

Relationships matter

It might seem obvious, but strong relationship skills are among the most fundamental traits that technology professionals should have if they want to succeed in a leadership capacity. In fact, effective relationship skills are a necessity, not just an added value.

James Kouzes, executive educator, author of the best-selling book, The Leadership Challenge and the dean’s executive professor of leadership at the Leavey School of Business at Santa Clara University, says that poor relationship skills is the one weakness that is “most likely” to derail a technology professional’s ambition to succeed in management. While these skills have been emphasized in other careers, such as customer service and business development, they have not been routinely taught in the computing field. These skills can be learned, but they must be practiced regularly, and on a daily basis, Kouzes said.

“It is a competency that can be developed, but it does need time and attention,” he said.

His advice: It’s all about focusing. Listen to others’ points of view, learn how to resolve conflicts that leave both parties feeling that they’ve gained something, and if you need to give direction to non-technical people, learn to communicate coherently in non-technical language. And trust others to carry out their roles and responsibilities: lack of trust undermines one’s relationships and leads to managerial failure, he said.

Kouzes noted a few new observations from his most recent surveys of working professionals and executives around the world that should be of particular value to technology professionals who are in or seeking management roles. The first most important trait people want in their leaders is honesty, he said. The second most important trait is having a forward-looking vision that is shared by one’s peers and followers in an organization and an ability to communicate that vision to inspire others.
Additionally, he recommended that managers develop a competency in seeking feedback. This is one trait his respondents have indicted to be the most challenging, yet it is also vital to success because it important to be always learning. “The best leaders are the best learners,” he said. And feedback is an essential part of learning.

“If you want to go into management, you must ask for feedback. Be open to receiving it. Act on it. Take it earnestly and do something with it,” he said.

Big-picture perspective

Computing professionals taking steps to move higher in corporate ranks must recognize that the demands that come with developing soft skills may require that they disengage to a certain extent from the technology roots they established when they began their careers. It’s a commitment that needs to be taken seriously.

Ronald Danielson, vice provost for information services and chief information officer and associate professor of computer engineering at Santa Clara University, has found that as an IT professional advances in an organization, including to C-level roles, he or she is expected to have the same general business skills and traits as other top executives. A lack of these skills–whether real or perceived by upper management—can keep senior IT professionals from advancing to the top levels of the corporation, he said. The challenge for IT professionals is to overcome this perceived bias.

Computing professionals who are striving to advance into management, Danielson said, must recognize that once the commitment is made, there may be no going back to their former roles.

“The difficult thing for many technical people is that you can’t really do it all,” he said. “If you’re going to spend more of your time and energy on the soft skills that senior executives need to have, you’re necessarily going to give up some of your technical competencies. And that’s very unsettling because our discipline advances so rapidly that if you give that up for a while, it is very difficult to go back in as the same level of contributor that you were before.” CW
(8 July, 2009)

Leave a Comment :, , , , , , , , , , , more...

9 Ways To Sleep Better Instantly

by Steve Hernandez on May.16, 2009, under Health

Three exhausted women fall asleep faster and sleep more soundly with the help of a top expert. Learn how you can get more Zzz’s too.

By Camille Noe Pagán, Prevention

A good night’s sleep is as easy as slipping under the covers and closing your eyes—right? If only. More than half of American women say they sleep well only a few nights a week, reports a National Sleep Foundation survey.

“Sleep issues are common for women over 40—and usually very solvable,” says sleep specialist Rubin Naiman, Ph.D., a clinical assistant professor of medicine at the University of Arizona’s Center for Integrative Medicine. “With simple lifestyle changes, you can improve the quality of sleep, as well as mood and overall well-being.” Here’s how he helped three women get the shut-eye they need for optimal health and happiness.

My sleep thief: Hyperactive brain

Margot Tohn, 44, is a self-described overachiever: On top of running her own publishing company, she takes care of her ailing father, volunteers for several charity organizations, and tries to play tennis with friends or go to the opera once a week. Her list of to-dos and obligations never ends, yet she often feels as though she’s not doing enough. Even after she turns in for the night, her mind is still going, running through what she accomplished that day and planning for the next. She doesn’t actually get to sleep until 1 a.m. to 2 a.m., then wakes at about 5:30, feeling anxious to get started. By the afternoon, Margot feels irritable and in desperate need of a nap.

Our expert says: “This sleep problem is primarily psychological,” explains Naiman. “Margot is entirely too hard on herself, and all that ruminating creates anxiety, which shifts the brain into high-alert mode instead of allowing it to wind down.” When she starts to criticize herself or feel guilty about not running an errand right away for her family, for example, she needs to stop and think: Am I really hurting anyone by not doing this immediately? Taking a second to think rationally will help her calm down. The other problem is that Margot’s day is too jam-packed, adds Naiman. “She has no alone time to process her thoughts, so her mind essentially makes up for it at night.” This pre-bed routine will help her mind and body relax:

  • Unplug an hour before bed. That includes the television, computer, cell phone, and any other glowing tech tools. Research shows that the brain misreads artificial light as daylight, so it doesn’t release melatonin, a sleep-regulating chemical, which is normally triggered by darkness.
  • Take a warm shower or bath. Your body temperature goes down when you get out, which makes you feel sleepy. That’s because it mimics what occurs deep inside the body at night, when internal temperature drops to its lowest level.
  • Meditate or pray for 10 minutes. Several studies show that it can help reduce anxiety, release negative thinking, and improve sleep. Sit quietly in a comfortable position and repeat a phrase you find relaxing, such as Keep letting go.

How it worked: “Though I’m not sleeping for 8 hours a night yet, the quality of my sleep has definitely improved because I’m much more energized during the day. The relaxation routine took me a little while to get used to: I never meditated before, so at first, I could sit quietly for only about two minutes at a time. I eventually worked up to 10 minutes, and it does help ease my mind. I also take a hot shower at night and do a few stretches before I go to bed, which relaxes my body. Plus, I started to realize that my all-or-nothing attitude wasn’t doing me any favors, so on nights when I get home late, I make sure to do my pre-bed routine for even just 10 to 20 minutes, instead of forgoing it entirely because I don’t have a full hour.”

Key Move: Keep a journal

“I make a list each night of 10 things I am grateful for—from good friends to a good hair day. I feel less anxious when I take a few minutes to focus on how much I’m blessed.”

My sleep thief: Waking up four times a night

Virginia Camasca, 40, has battled insomnia for five years, trying all sorts of things, from herbs to special diets, with no success. At night, she spends up to an hour trying to get comfortable before eventually dozing off, but then she wakes up several times before the alarm rings—often to use the bathroom, sometimes just because.

She used to dream frequently but now rarely does, which some research suggests is a sign of poor quality sleep. But when she tried taking the sleep supplement melatonin, she had nightmares. Virginia’s insomnia leaves her stressed-out and so exhausted that sometimes she even dozes at work.

Our expert says: “Virginia is stuck in a vicious cycle—the more she agonizes about not sleeping, the harder it is for her to nod off,” says Naiman. Stress keeps the mind active and triggers the release of chemicals that rouse the nervous system—all of which sabotage slumber. There’s no doubt Virginia is waking up too often, but once or twice during the night is normal. Knowing that may alleviate some of the negative feelings she has toward nighttime. A more relaxed mindset—and the following tips—will up the odds she gets better quality sleep:

  • Limit liquids after 6 p.m. The reason she wakes up so often to use the bathroom is simply because she drinks too much fluid during the second half of the day. After 6 pm, have just one to two glasses of water; also do 10 to 20 Kegel exercises daily, which strengthen the bladder. (To do Kegels, clench only the muscles that control the flow of urine.)
  • Set a bedtime and stick to it. Going to bed at different times throws the internal body clock out of whack. It’s better if she hit the sack at the same time every night and set the alarm for the same time every morning—even on weekends, suggests Naiman. This will help get her body on a regular pattern, which makes it easier to fall and stay asleep.
  • Try a small dose of melatonin. The brain makes this chemical naturally, but it’s often in short supply in people with insomnia. Studies have shown that taking a melatonin supplement helps improve sleep, but you need only a small amount: 0.5 mg, 15 minutes before bed. Last time Virginia tried it, she took 3 times as much, and that can cause side effects like nightmares or even depression. Before taking any supplement, talk with your primary care doc.

 

 

How it worked: “I started taking melatonin after a checkup with my doctor, and it seemed to work right away, helping me fall asleep faster than I had in forever—and I’m dreaming good dreams again. Keeping a bedtime was tough at first, but now it feels normal to be in bed by 10. And because I have only one glass of water with dinner and did Kegels regularly, I wake up less often to use the bathroom and sometimes sleep straight until the morning. I’m thrilled that I feel so relaxed and healthy. Friends who didn’t know I was doing this program tell me I’ve never looked better. I guess there is such a thing as beauty rest!”

Key move: Hide the time

“I turn my alarm clock away from me so I can’t count the minutes I’m awake if I get up in the middle of the night. That way, I’m less stressed if I wake up, so it’s easier to drift off again.”

My sleep thief: Night sweats and heavy snoring

Tracy Lobdell, 52, has gained more than 50 pounds over the past five years—and it’s taking a toll on her sleep habits. She snores heavily and suspects she may have sleep apnea, a serious condition that occurs when a person stops breathing for seconds at a time because of airway obstructions, which are often caused or made worse by excess body fat.

She recently lost a few pounds by adopting a healthier diet and practicing portion control, but she never has the time or energy to exercise. Tracy is also in the throes of menopause and suffers from hot flashes and night sweats. Plus, her husband and dog—both of whom share her bed—snore, too, and there’s barely room for the three of them on their queen-size mattress. The result: Tracy tosses and turns all night and is moody, unproductive, and tired during the day.

Our expert says: “Severe snoring, weight gain, and significant daytime drowsiness all indicate possible sleep apnea,” says Naiman. “But even if Tracy doesn’t have the condition, snoring can make it difficult for her to get into the deep stages of sleep.” Although it’s a good idea that she get tested for apnea, Tracy can help ease snoring and other possible apnea symptoms by keeping up the weight loss. To slim down even faster, she should add 30 minutes of aerobic exercise to her routine five or six days a week, says Naiman. Shedding extra pounds may ease night sweats too. And to sleep more soundly, she should try these bedtime tweaks:

  • Switch to the side. Sleeping on the back, as Tracy does now, isn’t ideal for heavy snorers or people with apnea—it allows the soft palate to hang in a direction that can obstruct breathing. Sleeping on either side, however, opens up airways to alleviate breathing issues. To help stay in this position, Naiman suggests propping one pillow behind your back and another in front of your waist.
  • Make the bed a pet-free zone. Tuck the pooch into a doggie bed in another room. When Tracy shares her sleeping space with her pet, it gives her little room to move, and though she may not realize it, her dog’s fidgeting and kicking wakes her throughout the night.
  • Keep the bedroom cool. Exactly how cool depends on your preference, but Naiman suggests around 68°F. Wear lightweight pajamas, and cover up with a sheet instead of a blanket. This will help reduce the severity of night sweats.

How it worked: “For the first time in years, I actually feel well rested. I plan to get tested for apnea, but I’m already falling asleep much faster, and my hot flashes are less frequent and severe. I even got used to sleeping on my side. The toughest part for me was making my dog sleep in the other room. I felt guilty, but it really is so much more comfortable. Instead, I let her spend 10 minutes in bed with me in the morning—I think of it as trading quantity for quality. I’ve continued to lose weight by watching my diet—I’ve dropped 10 pounds and counting. I haven’t made time for exercise yet, but I definitely have more energy now, so it’s next on my list.”

Key move: Cut back caffeine

“I used to drink about six glasses of iced black and orange tea every day. Dr. Naiman suggested that I switch to decaf or 100 percent iced green tea, which can have half as much caffeine. Now in the mornings I have a little black and orange tea, but in the afternoon, I stick to green. I actually don’t miss the caffeine at all.”

 

2 Comments :, , , , , more...

5 Sleep Myths Busted

by Steve Hernandez on May.16, 2009, under Health

It accounts for a third of your life and a big chunk of your health and longevity. So why aren’t you sleeping enough?

By Jim Gorman, Men’s Health

What a night. The woman of your dreams appeared. Your pulse raced. Heavy breathing ensued. You do remember it, right? Oh, wait, you were asleep. And that’s not all you missed. Under cover of night, sleep floods your veins with age-defying human growth hormone. Sleep raises an army of T cells and sends them into battle against colds and infection. Sleep resets the appetite controls that tell you to not hit the turn signal when you pass a McDonald’s. And, of course, sleep helps you above the neck as well as below the belt.

“It stabilizes your waking brain, makes you more alert, and allows you to process information faster,” says David Dinges, Ph.D., who studies shut-eye at the University of Pennsylvania. “It helps you remember things and consolidate those memories.” You won’t get that from a Red Bull. So then why are we engaged in a society-wide experiment in sleep deprivation? Average nightly sleep time during the workweek in the United States is down nearly 20 minutes in the last decade, to six hours and 40 minutes. And men ages 30 to 44 are the worst offenders: Thirty percent of them say they log less than six hours of sleep at night, according to a survey from the Centers for Disease Control and Prevention.

The price you pay for this sleep deficit is more than just lost productivity—your health can suffer too. So wake up! It’s time to shed some light on this dark territory.

Successful, driven guys should be good to go on five hours a night: MYTH

True, Napoleon slept four to five hours a night, and Thomas Edison got by on four. But world domination and the lightbulb might have been mere warm-ups had these guys slept more. Sleep scientists estimate that only 10 percent of adults are hardwired to need appreciably less (or more) sleep than the recommended seven to eight hours. And by cheating on sleep, you’re limping through life with the cranial equivalent of a torn calf muscle. Scarier still, people who are sleep-deprived often don’t even know they’ve turned into zombies. After dividing 48 volunteers into four sleep regimens—eight, six, four and zero hours a night (a.k.a. torture)—University of Pennsylvania researchers found that the six-hours-a-night group fared as poorly on measures of alertness and memory after two weeks as the no-sleep crew did after 24 hours. But participants in the six-hour group didn’t feel very sleepy even when they were performing at their worst. Accumulating a sleep deficit also leads to “microsleeps” while you’re awake. “Your brain becomes unstable and will go ‘off-line’ for half a second,” Dinges says. The more sleep-deprived you are, the more frequent and longer the lapses.

 

 

Snooze strategy: If you didn’t sleep seven to eight hours every night this past week, go to bed this weekend at your regular weekday time, but don’t set your alarm clock. Did you rise on Saturday and Sunday at the same time you would have on, say, a Tuesday? Then you may be one of those few people who can sleep less yet remain healthy. The rest of us mere mortals can begin to repay our sleep debt by dozing 10 hours a night on weekends and then sticking to seven to eight hours during the week. Your brain will use this strategy whenever you accumulate a sleep debt, says Ruth Benca, M.D., Ph.D., medical director of the Wisconsin Sleep Center. Otherwise, you want to stay consistent with your sleeping.

Frequently needing to pee in the middle of the night might indicate a health problem: TRUTH

That first stumble to the bathroom in the dark can be chalked up to the beer you drank watching the Knicks game. The second one can spell trouble. “If you habitually take two or more bathroom trips a night, you probably have obstructive sleep apnea,” says Alex Chediak, M.D., medical director of the Miami Sleep Disorders Center. With sleep apnea, the soft tissue at the back of your throat blocks your upper airway during sleep, stopping your breathing for anywhere from 10 seconds to a minute or even longer. This can occur hundreds of times in a night, depriving you of restorative deep sleep and starving your vital organs of oxygen. No wonder sleep apnea has been linked to heart disease, hypertension, and mood disorders.

But why does it wake you up to pee? Because those mini-suffocations result in lower circulating oxygen levels, your heart pumps harder, raising your blood pressure. As excess fluid builds up in your veins, a feedback loop triggers the release of a pressure-relieving diuretic, making you need to pee. An enlarged prostate and high blood sugar can also prompt middle-of-the-night bowl breaks. But with those conditions, says Dr. Chediak, you’ll pee a lot day and night.

Snooze strategy: Raising the pillow end of your bed by a few inches can help prevent that tissue from blocking your throat. Snoring could also be waking you in the middle of the night, and one major cause is nasal obstruction. Wash out mucus and irritants by mixing 1/4 teaspoon of table salt in 2 cups of warm water and flushing your nose twice a day using a medical or bulb syringe. Japanese researchers found that people with nasal obstruction were twice as likely to experience daytime fatigue as people with clear passageways. For video instruction on the technique, visit mayoclinic.com and search “nasal irrigation.” If the peeing persists around the clock, schedule a prostate exam and have your blood-sugar level checked by your doctor after an overnight fast.

The post-lunch bonk can’t be avoided: MYTH

Many Europeans scarf down a carb-loaded lunch and then shut down from 1 to 4 in the afternoon. But with unemployment soaring, let’s assume a three-hour nap won’t play well at the office. If you find yourself entering what amounts to a food coma after lunch, you’re probably eating too many carbohydrates in the morning. And what you’re not getting enough of is making it worse. “A postlunch crash is a telltale sign of poor nighttime sleep, as is dozing in meetings, theater performances, or similar environments,” says Dr. Benca. Not sure if you’re experiencing a modest dip or a true crash? Take a minute or two to fill out the Epworth Sleepiness Scale. This online questionnaire is the same one sleep docs use on their new patients.

Snooze strategy: Along with improving your nightly sleep pattern, eat three small meals spaced two hours apart in the morning. Try a protein shake at 7 a.m., two eggs and a small cup of oatmeal at 9, and an apple and a handful of almonds at 11. You’ll consume fewer carbohydrates, and you won’t be as likely to overeat at lunchtime. In fact, a salad with grilled chicken and avocado on top should be enough to keep your mind focused and your head off the desk all afternoon, says Keith Berkowitz, M. D., medical director of the Center for Balanced Health in New York City.

Waking up at 4 a. m. every day just means I’m an early riser: MYTH

More likely, you—along with 60 million other Americans—have insomnia, an inability to fall or stay asleep. “Insomniacs wake at the slightest disturbance and feel unrefreshed in the morning,” says Dr. Benca. Insufficient sleep exposes the sufferer to a litany of performance and health problems. In a study published in the Journal of Psychosomatic Research, researchers found insomniacs were more than twice as likely as normal sleepers to call in sick for long periods.

Snooze strategy: Let’s assume that you’ve already cut back on caffeine. What you want to do is make your sleep more efficient, says W. Christopher Winter, M.D., medical director of the sleep medicine center at Martha Jefferson Hospital in Charlottesville, Va. Dr. Winter likens poor sleep to a bookcase missing a few volumes, representing gaps in your sleep. By going to bed an hour or so later, those gaps won’t be as long as or frequent. Soon enough, you should be waking up after the roosters, not before them.

A tiring workout before bed will help me sleep more soundly: MYTH

Regular exercise is one of the best sleep-promoting remedies, but working out late at night risks leaving you wide-eyed in bed. “It’s easiest to fall asleep when your core body temperature goes relatively quickly from very warm to very cold,” says Dr. Chediak. “After exercise, that cooling process takes four to six hours.” It’s better to take a hot bath or sauna session close to bedtime. “Anything that raises core body temperature will help get you started on sleep,” says Dr. Chediak. He says the cooldown period into the sleep zone following a bath takes just two hours—half that of an exercise session.

Snooze strategy: Work out—but do it first thing in the morning for all-day energy and a quick drift into deep, restful sleep. Studies show that exercise improves sleep as effectively as a class of sleeping pills that includes Restoril and Halcion.

Alcohol can help me sleep at night: MYTH

Only if you equate a good night’s sleep with passing out drunk on your girlfriend’s sofa. Alcohol messes with the normal sleep cycle, especially the back end of the cycle. “Four hours into sleep, alcohol wears off and leaves you in an excitable state,” says Dr. Chediak. You’ll sleep lighter, wake more easily, and be hung over when you do wake. After three nights of intoxicated slumber, even the initial knockout punch begins to wane. Dr. Chediak warns of another drawback to using a six-pack as a sleep aid. “Being a muscle relaxant as well as sedative, alcohol can even create sleep apnea symptoms in snorers who don’t otherwise have the condition,” he says. Unfortunately, liquor is a go-to therapy for many sheep counters, used as often as over-the-counter sleeping pills and more often than prescription sleep meds.

Snooze strategy: Be consistent with your overall schedule and you won’t need booze. “Your internal clock is a structure in your brain called the suprachiasmatic nucleus,” says Dr. Winter. “To set this clock, eat your breakfast, lunch, and dinner at exactly the same time every day for a week.”

1 Comment :, , , , , more...

Ubuntu / RoundCube WebMail Domain Mismatch Issue – Internet Explorer – ERROR: Your Browser Does Not Support / Accept Cookies

by Steve Hernandez on May.16, 2009, under Technology

Introduction

When the domain in the URL of your RoundCube instance and the domain the page is actually being rendered from are different are different, you will recieve an odd error message – your browser does not support cookies – from RoundCube.  My set up has an iFrame from one Domain redirecting to another, where RoundCube sits.  Why did I do that? Because the actual domain is ugly and my client requested the web login to their email be the same as the actual domain their emails come from.

FireFox and Chrome allow the login to work fine, but not IE.

However, Internet Explorer does not allow cookies from a 3rd party domain (the second one in the iFrame) to be downloaded, and silently deletes them – security measure I suppose – it is widely documented.  The only way to get around this is to modify the headers sent to notify the browser that the mismatch is intended.

Problem

Email Domain: emailDomain.com
Web Server Domain: webDomain.com
RoundCube URL: webDomain.com/webmail
IMAP Server: mail.emailDomain.com
Redirects: emailDomain.com redirects HTTP traffic to webDomain.com, emailDomain.com redirects SMTP traffic to webDomain.com

NOTES: emailDomain.com is basically just an alias. 

If you try to login through webDomain.com via RoundCube (actually type in webDomain.com/webmail) it will work, the cookies will match up and everyone will be happy.

If you try to login through emailDomain.com (which will open up webDomina.com/webmail in an iFrame) it will not work with Internet Explorer 7 or 8.

Solution

I added the following line of code to the first line of code (after the comments) within the index.php file.

file: /var/www/webmail/index.php (please note that webmail is where RoundCube is installed)

header(‘P3P:CP=”IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT”‘);

1 Comment :, , , , , , , more...

Intel Matrix RAID 5 – Rebuild on Reboot

by Steve Hernandez on May.14, 2009, under Technology

So I finally figured out what was causing my RAID 5 on my Windows Server 2008 box to always rebuild on reboot.  For a little background, since I am currently not offering any services to any clients that require the server to remain powered up 24 hours a day, I shut her down for about 6 to 8 hours in the evening (while I sleep, she sleeps).  Every morning I start her back up, and she would rebuild the Array.  BUT WHY!?  It was a graceful shutdown.  The logs showed nothing out of the ordinary.  So I started to poke around to see what was going on.

To my amazement, the Windows Search indexer was the problem.  This cranky service would not shutdown gracefully, and would actually be in the middle of a write to disk right before the system killed it.  So I tried to remove the RAID from indexing… but that didn’t help.  After looking I found that I had actually set the indexer to save the index on the array, which would have given the array an excuse to rebuild: indexer closed improperly and did not close the index files correctly.

My solution was to remove the array from the indexer’s allowed paths (do not index the array – I’ll wait the extra 10 seconds to find anything that I’m looking for) and I moved the index files to the system drive (yes it may cause minor performance degredation and maybe wear on the system drive, but not nearly as much as a 6 hour RAID rebuild EVERY DAY!).

I have been rebooting for the past 4 days with no issues. :)

Leave a Comment :, , , , , , more...

Microsoft Windows Server 2008 – Disk is Read-Only / Write Protected

by Steve Hernandez on May.13, 2009, under Technology

I recently installed a new hard drive into my server running Server 2008.  Everything worked fine, until I rebooted.  I tried to copy a file to the disk and recieved an error that the drive, in my case E:, was write protected.  I don’t know how or why that happened, but the solution is fairly simple.  The steps are as follows:

  1. Open a command prompt (ie. Start > Run > cmd) with administrative privledges
  2. Type in the command: diskpart
  3. Run the command: list disk
  4. Look for the disk number that’s having the problem.  In my case I have a system drive, a RAID 5 configuration (1 logical drive) and then the new drive, so it was DISK 2.  I will continue to use it in the example but note that yours may differ.
  5. Select the disk using the following command: sel disk 2
  6. Enter the following command: ATTRIBUTES DISK CLEAR READONLY
  7. Exit diskpart with the command: exit

Then test by copying a file or folder to the drive.  It should be fairly instantaneous, but worst case you may have to reboot (I did not, however).

That’s about it.  It would be interesting to know WHY this happened, but then again, does it really matter?

Good luck.

3 Comments :, , , , , , , , more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Visit our friends!

A few highly recommended friends...