Date: | January 18, 2007 / year-entry #20 |
Tags: | email;non-computer |
Orig Link: | https://blogs.msdn.microsoft.com/oldnewthing/20070118-00/?p=28353 |
Comments: | 40 |
Summary: | Presumably you want the recipient to read the message. That's why you sent it. It would behoove you to select a subject line which conveys to your reader the purpose of your message. Otherwise your reader is likely to ignore it for being too vague and uninteresting. Here are some actual bad subject lines I've... |
Presumably you want the recipient to read the message. That's why you sent it. It would behoove you to select a subject line which conveys to your reader the purpose of your message. Otherwise your reader is likely to ignore it for being too vague and uninteresting. Here are some actual bad subject lines I've seen.
Suppose your Inbox had a hundred messages that all looked like this. Would you bother reading even one of them? I'm sure the subject line makes perfect sense to the person who sent the message. They have only one customer with a question, so "Question from my customer" captures the issue perfectly. But if you send this message to a list with 500 members, those other 499 people most likely will not know what your message is about based solely on the subject line. A good subject line would include enough information about the question so that the recipient can decide whether to read further or whether it's something they can't help with. For example, "Question about generics," or even better, "Question about covariant types in generics." Remember, choose a subject line that is meaningful to the person you're sending it to. It's only polite. |
Comments (40)
Comments are closed. |
You’ve been in my inbox haven’t you… I’d also suggest that you make the first sentence of the message relevant as well since a lot of people use auto preview in their email that displays the first sentence or two.
While it has been described as "rude", "abrubt", "a rant" and "snotty"[0], ESR’s "How to ask questions the smart way"[1] also covers this.[2]
[0] And that’s just from one discussion at http://www.codinghorror.com/blog/archives/000603.html
[1] http://www.catb.org/~esr/faqs/smart-questions.html
[2] http://www.catb.org/~esr/faqs/smart-questions.html#bespecific
You can probably also get away without the "question about", since that’s implied. :-)
Fresh Fish Sold Here Today…
This doesn’t relate to this topic but I have been reading some of the back postings and came across the ones on the /3GB switch and it has left me with a burning question.
If each process in the computer is allocated 4gig of memory does each process also create 2 gig of it’s own kernal space ?
That is a pet peeve of mine and rule 17 on my newsgroup posting rules (on my blog).
I would add (as rule 18 suggests) that the subject or its content should be repeated in teh body. Nothing more annoying than an empty body and a very long subject with the question. I tend to reply to those by appending my answer in the subject too (tit for tat :))
Raymond you forgot few of them:
Please help a newbie!
Oops, it crashed on me…
What if…
I am lost!
Others could post their favorites so we could compile a list for servers to automatically drop in transfer in the future.
There’s the other extreme, too. I had a project manager that used to write whole e-mail messages using only the subject field.
Something like that:
Subject: "All devs, we’re going to have a code freeze on next Monday. Commit your code into SVN as soon as possible."
Message body: "Thanks,– John Doe."
.
this particular brand of nonsense.
Some subject lines that annoy me:
"please read this"
"???"
"help"
"question"
""
"Re:"
ObOT: I kindof think that Raymond puts stuff in just to see whether sad internet people with no life will pick up on it and grumble – like the last five digits of the "not-quite-pi" in the OP.
I’m not alone in the world! Just today my boss sent an email with a Word doc attached that read:
Subject: Hey guys would you read over this and get back to me with your thoughts on this purchase, especially you Nick because we need to make a decision soon and the discount will only be available for a few more days then it’s back to normal pricing.
Body: Thanks.
Thank goodness Outlook limits the subject length.
Email subject lines I quite like use <EOM> or plain ol’ EOM (you’re all clever people, you can work it out). eg:
Burger for lunch @ 12:30<EOM>
Steve you broke the build fix it or die<EOM>
WTF is SearchResults.cs doing in /Accounts?<EOM>
Works quite well.
/me sheepishly admits recognizing a) it was almost pi b) where it went wrong c) what is was supposed to be
Bryan,
Thanks for your reply. I think I understand how the kernel memory space works in a general way. There is way too much going on there for me to truly understand all that happens in there.
I came across this KB article and it seems to me it contains a multitude of errors. The article number is 823440. Here is what I see wrong with it.
1) It states "On an Exchange 2003 computer with more than 1 GB of memory, you must modify Windows Server 2003 so that 3 GB of memory are available for user-mode applications."
How can you allocate 3GB of memory if say you only have 2GB of memory ?
2) It states "For example, a server with 2 GB of physical RAM that does not have the /3GB switch in the Boot.ini file will run out of memory when the Store.exe virtual address space reaches 2 GB."
Of course! You have used all the memory. Using the /3GB switch will only gain you a few extra meg (like 20),IF you also use the /userva switch at the expense of kernal memory space.
3)It states "By using /USERVA=3030, an additional 42 megabytes (MB) of memory is allocated to the kernel for page table entries (PTEs)."
Doesn’t that TAKE 42 meg from the kernel ?
Dean — way, way, *way* off topic, but no. ;-)
Each process is not allocated 4gig of memory. Each (32-bit) process is given a 4gig address space: its pointers are 32 bits wide. These linear addresses are run through the CPU’s page tables to determine which physical addresses (i.e. RAM bytes) they refer to. (Most of the addresses are also invalid, since their PTEs are marked not-present. When you allocate memory, the PTE for that page is pointed to a section of RAM, and marked present.)
The page tables are switched out whenever "the current process" changes; I believe (but am not positive) that this is accomplished on x86 using CR3, the page directory base register. (I suspect the TLB needs to be flushed as well.) It could also be accomplished by changing out most of the first-level page table’s contents and flushing the TLB, but that’s a lot of memory writes. OTOH, keeping every process’s user-mode page tables in memory at all times is a lot of memory used for page tables, so there’s a tradeoff there. (Because each user-mode process is given a different chunk of RAM, their page tables must be different.)
Anyway, when the kernel is executing on behalf of a process, I do not believe the page tables are altered. (Certainly changing CR3 and flushing the TLB on each system call, then doing it again when the call returns, would kill performance.) The kernel would therefore use the same page table set as user processes; this is where the 2G/2G or 1G/3G split comes from. But I suspect the kernel’s PTEs are the same in every process, because that’d make it easier to refer to in-kernel data or (e.g.) PCI MMIO space, no matter what part of the kernel is running.
So depending on what you meant by "create 2 gig of it’s[sic] own kernal[sic] space", the answer might be anything. I suspect you meant "does the kernel share the top 2G-worth of PTEs between all processes when not in /3GB mode?", and the answer to that is "yes, I *think*".
On email subjects: I’ve found that ESR’s <object> – <deviation> suggestion works quite well, and would echo it here. For example, "Covariant types in generics: what are they?", or "Covariant types in generics – parent method being called" (if e.g. someone forgot to override a method, and they’re having problems because of it).
This way, you know both what the question is about (which means you can ignore it if you don’t know about that area), and also what the general issue is (so your brain can e.g. call up the popular issues with that area and see if this matches any of them).
My biggest office etiquette problem is people replying "ASAP" when asked, "when do you need this by?" Then you have to poke and prod until they finally relent and say, "well, I guess I don’t *need* it until thursday…"
Just for your information, people, answering ASAP does not help me prioritize my tasks, and if I have to ask you AGAIN when you need it, it’ll just waste both our time.
And don’t set the importance flag on everything. I once had a particularly annoying client who sent every single message with the importance flag set, and then showed how much he valued this by sending a Happy Christmas email with the importance flag still set!
Aw, crap, I just realized I didn’t actually answer any of your questions directly.
1) You can allocate (up to) 3GB of virtual memory with the /3GB switch, no matter how much physical memory you have. The OS takes care of swapping pages in and out of physical memory.
2) The server won’t run out of memory, just the store.exe process. (Of course it doesn’t handle this properly, and that’s the basic problem…)
It’s not that store.exe’s virtual allocations have equaled the physical memory amount, either — even if the server only has 1.5GB or 1GB of physical memory, you’ll crash store.exe once it reaches 2GB of allocated virtual memory. Using /3GB will give store.exe more virtual addresses; the OS will still handle swapping in and out of physical RAM on a page-by-page basis.
3) No, it adds 42MB to kernel mode — my understanding is that the /3GB switch effectively sets USERVA to 3072 (because one gig is 1024 meg, and 3*1024=3072). 3030 is 42 less than that; it moves the VM split point by 42 megs toward usermode, giving 42 megs more memory to the kernel.
(And I don’t think I’m going to talk about this topic here anymore. It’s way out in left field.)
Last, to keep this sort-of-on-topic, we all know the SR number should be 314159265359. (Or 42, as that would work just as well.) Jeez. ;-P
I’ve actually just had my Netiquette book published, and I did cover the topic of email subject lines. I’m glad to see people think this is a topic worthy of discussion.
Dewi briefly mentioned completely blank subject lines. I seem to get quite a few such messages, and the temptation to delete them as suspected spam is very high. I’ve nearly lost some important messages because of that.
Another issue is topicality of subject lines. Although a subject such as ‘here is the report’ may make sense to everyone involved at the time it is sent, it won’t when people come to look back over their archived mail later on.
My pet hate is when the e-mail is pretty much blank apart from an attached word document or PDF with a paragraph or two of text. Why not just paste it into the e-mail?
A meaningful title is important, but even more important is meaningful message body.
Thanks again Bryan ! You answered questions about Exchange that I never knew.
I know I should not have posted the questions here but commenting on a three year old topic was turned off and when I have a question sometimes I just have to have an answer. :)
The email subject line is often not read in isolation however. It has context, for example the name of the sender. My boss could send any of those subject lines and I would read the email. Similarly if an internal product support engineer sent "Customer Question" I’d read it. If it came from a generic C programming email list then your advice is much more applicable as the context is largely absent.
Dean, we should probably quit fairly quickly here, but this is the basic problem with Exchange: it looks at the amount of physical memory you have, and tries to allocate double that much (or perhaps 1.5 times that much) virtual memory. (Not all at once, mind you; I believe it just sets the limit of its allocations to that enormous value.) If it can’t allocate any more virtual memory before it hits its own internal limit, the store.exe process will crash hard when it tries to access the new supposedly-allocated pointer.
Yes, this is *RETARDED*. Exchange should be happy to coexist on a server with other things (certainly that’s how we run it; we don’t have money for hundreds of servers). It should also be smart enough to CHECK ITS MEMORY ALLOCATIONS, and gracefully scale back when the allocations start failing. That’s how every other process works, so why is it so hard for the Exchange team to figure out?
Actually, I suspect there’s a second limit of 3G, no matter how much physical memory you have. We’re running Exchange 2003 on a server with 4G of physical RAM, and there’s *NO WAY* it will ever be able to allocate 6G or 8G of virtual memory. (It doesn’t have large-enough pointers.) Of course our information store is also pretty tiny; we only have a couple hundred users. This is why we run other stuff on that server, too; we don’t need an entire server for our tiny user base.
But anyway. That’s the reason Exchange acts the way it does, and that’s the reason the article says you need to use the /3GB switch when you have more than 1GB of physical memory. If you don’t, Exchange will (eventually) crash. That information doesn’t transfer to any other program on the planet that I am aware of.
I would also like to add that the subject line is not a replacement for the e-mail body. There is one person at our organization that will send out messages like the following.
Subject: The employee activities committee will be meeting from 5 pm to 8 pm tonight instead of 4 pm to 7 pm. Thank You.
Body:
Oy!
Am I meaningful?
Kind regards,
John Doe.
My favorite email subject line was posted to the Win32 programming DL in Microsoft, reading (if memory serves):
"Help me Radmond Chen, you’re the only one who can!"
PingBack from http://www.sdodson.com/blog/archives/26
Sent by my Mother (age 72) last December.
Subject: my first email
Somehow it arrived at my work address where the shere shock-value of the title made it stand-out.
Caviare to the general. Those who able to understand what you’re talking about would never use such idiotic Subject’s.
Offtopic bit – BryanK:
"I believe (but am not positive) that this is accomplished on x86 using CR3, the page directory base register."
That’s correct. CR3 is loaded implicitly on a hardware task switch, but I don’t know whether or not the NT kernel uses hardware task switching. Linux doesn’t, so has to change CR3 explicitly.
"(I suspect the TLB needs to be flushed as well.)"
TLB flushing is implicit on a change of CR3. There’s a 486+ instruction to flush the TLB entry for a particular page, so you can change the page table without a complete flush.
"But I suspect the kernel’s PTEs are the same in every process, because that’d make it easier to refer to in-kernel data or (e.g.) PCI MMIO space, no matter what part of the kernel is running."
Given that the kernel memory is either 2 or 1 GB (depending on whether or not /3G was specified), I’d assume that the kernel actually uses the same page tables in all processes, and therefore has PDEs duplicated across processes. Again, this is how Linux does it.
On topic bit:
Along with ESR’s essay that has been linked, another good read on this subject is Simon Tatham’s How to report bugs effectively (at http://www.chiark.greenend.org.uk/~sgtatham/bugs.html ).
Magic Dave,
"My pet hate is when the e-mail is pretty much blank apart from an attached word document or PDF with a paragraph or two of text. Why not just paste it into the e-mail?"
Two reasons:
depending on the volume of email, you may wish to sort by subject or sender ONLY for messages with attachments ("I know these TPS reports are in an attachment sometime in the last 3 months!")
One can "save attachments" directly from the preview pane, avoiding a messy cut/paste scenario.
Um… shouldn’t that be…
Help me, Raymond Chen… you’re my only hope!
When Barry at "Staring At Empty Pages" recently posted about email subject lines, he hit on one of my pet peeves. As he mentions, subject lines in email messages ought to be descriptive. I find they are rarely descriptive…
In particular, the subject lines for meeting requests.
Protect your question with an impenetrable cloak of vagueness. 1) Choose a subject line that conveys
Protect your question with an impenetrable cloak of vagueness. 1) Choose a subject line that conveys
Protect your question with an impenetrable cloak of vagueness. 1) Choose a subject line that conveys
Protect your question with an impenetrable cloak of vagueness. 1) Choose a subject line that conveys
Raymond has had lots of great posts over the years on how to not get a question answered. Some of the