Do we need a "before you post" document?

Perhaps a trimmed-down and NT kernel-specific version of Eric Raymond’s “How To Ask Questions The Smart Way” (http://catb.org/~esr/faqs/smart-questions.html) could be used. I think this article is waaay too long (no newbie ever reads it), but the general points it makes are pretty good.

My favorite sections, that I think would be useful for this list:
“Before you ask” (search the web, search the archives, experiment, ask a skilled friend).
“Use meaningful, specific subject headers”
“Write in clear, grammatical, correctly-spelled language”
“Describe the problem’s symptoms, not your guesses”
“Describe the goal, not the step” (we really need this one…)
“If you don’t understand…” (respond by researching instead of immediately demanding clarification)
“Dealing with rudeness”

With WDF gaining momentum, the percentage of newbies on this list will only increase.

-Stephen

We’ve tried many different variations of the joining notes to cut down on
the noise but as far as I can tell it’s just wasted effort. The simple fact
is that most people (especially those who commit the egregious offenses you
listed) can’t be bothered to read and process the joining notes.

In my opinion, the only real way to fix this would be to move to a moderated
list. The only problem with this of course would be the massive overhead in
triaging posts. Hmmm…maybe we become a community moderated list with Karma
points, post scoring (Score: 1, FS Encryption Troll), and all the other
bells and whistles…Our web monkeys need more work to do anyway.

If, however, you or anyone else thinks that a better set of joining notes
would help, feel free to submit a version that you think would work and
we’ll definitly take it into consideration.

-scott

Scott Noone
Software Engineer
OSR Open Systems Resources, Inc.
http://www.osronline.com

wrote in message news:xxxxx@ntdev…
> Perhaps a trimmed-down and NT kernel-specific version of Eric Raymond’s
> “How To Ask Questions The Smart Way”
> (http://catb.org/~esr/faqs/smart-questions.html) could be used. I think
> this article is waaay too long (no newbie ever reads it), but the general
> points it makes are pretty good.
>
> My favorite sections, that I think would be useful for this list:
> “Before you ask” (search the web, search the archives, experiment, ask a
> skilled friend).
> “Use meaningful, specific subject headers”
> “Write in clear, grammatical, correctly-spelled language”
> “Describe the problem’s symptoms, not your guesses”
> “Describe the goal, not the step” (we really need this one…)
> “If you don’t understand…” (respond by researching instead of
> immediately demanding clarification)
> “Dealing with rudeness”
>
> With WDF gaining momentum, the percentage of newbies on this list will
> only increase.
>
> -Stephen
>

I agree with Scott - there is no changing the ways of people who feel
that they are entitled to answers their way, on their time, with the
attitude they wish, all for free. That being said, I also agree with
everything Stephen said, but I would modify the one about “clear,
grammatical” to just say something like “no unclear or really irritating
abbreviations,” because a lot of members here do not use English as
their first language, and the part about “correctly spelled” is a little
narrow. Also, with regards to “describe the goal…,” I agree that
would be very nice, but I think what gets lost with this one is that it
is, in my opinion, not at all obvious that this is what is desired
unless you’ve posted here before, and I think we sometimes lose sight of
that. That is, I just don’t see how someone is supposed to know that
posting a more general question is better than posting a more specific
one, as, working on the assumption that although many of them should,
most people don’t evaluate themselves as misinformed, it seems like the
former would be more work for the other members.

mm

Scott Noone wrote:

We’ve tried many different variations of the joining notes to cut down on
the noise but as far as I can tell it’s just wasted effort. The simple fact
is that most people (especially those who commit the egregious offenses you
listed) can’t be bothered to read and process the joining notes.

In my opinion, the only real way to fix this would be to move to a moderated
list. The only problem with this of course would be the massive overhead in
triaging posts. Hmmm…maybe we become a community moderated list with Karma
points, post scoring (Score: 1, FS Encryption Troll), and all the other
bells and whistles…Our web monkeys need more work to do anyway.

If, however, you or anyone else thinks that a better set of joining notes
would help, feel free to submit a version that you think would work and
we’ll definitly take it into consideration.

-scott

Scott Noone
Software Engineer
OSR Open Systems Resources, Inc.
http://www.osronline.com

wrote in message news:xxxxx@ntdev…
>> Perhaps a trimmed-down and NT kernel-specific version of Eric Raymond’s
>> “How To Ask Questions The Smart Way”
>> (http://catb.org/~esr/faqs/smart-questions.html) could be used. I think
>> this article is waaay too long (no newbie ever reads it), but the general
>> points it makes are pretty good.
>>
>> My favorite sections, that I think would be useful for this list:
>> “Before you ask” (search the web, search the archives, experiment, ask a
>> skilled friend).
>> “Use meaningful, specific subject headers”
>> “Write in clear, grammatical, correctly-spelled language”
>> “Describe the problem’s symptoms, not your guesses”
>> “Describe the goal, not the step” (we really need this one…)
>> “If you don’t understand…” (respond by researching instead of
>> immediately demanding clarification)
>> “Dealing with rudeness”
>>
>> With WDF gaining momentum, the percentage of newbies on this list will
>> only increase.
>>
>> -Stephen
>>
>
>
>

> If, however, you or anyone else thinks that a better set of joining notes

would help, feel free to submit a version that you think would work and
we’ll definitly take it into consideration.

Well, joining is already challenge-response in the sense that you have to
send back the ack in email that you really were the person that wanted to
join.

How about change this int a 6-step program of fortune cookies, where each
email has one of the posting points described in it, followed by a
multiple-choice question on the meaning of the fortune cookie? If the
newbie gets the answer right for all six questions they get to join?

Loren

:slight_smile:

My personal opinion is that we do not need such a thing.

People on this list are very adequate, and, if somebody asks too stupid
questions (stupid = “the answer requires long explanation of the very
basics”) - then it is easy to ignore him/her.

As about “punkish” English like “u” instead of “you” - if I can comprehend
the message, I will probably respond, regardless of the grammatic style.


Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com

wrote in message news:xxxxx@ntdev…
> Perhaps a trimmed-down and NT kernel-specific version of Eric Raymond’s “How
To Ask Questions The Smart Way”
(http://catb.org/~esr/faqs/smart-questions.html) could be used. I think this
article is waaay too long (no newbie ever reads it), but the general points it
makes are pretty good.
>
> My favorite sections, that I think would be useful for this list:
> “Before you ask” (search the web, search the archives, experiment, ask a
skilled friend).
> “Use meaningful, specific subject headers”
> “Write in clear, grammatical, correctly-spelled language”
> “Describe the problem’s symptoms, not your guesses”
> “Describe the goal, not the step” (we really need this one…)
> “If you don’t understand…” (respond by researching instead of immediately
demanding clarification)
> “Dealing with rudeness”
>
> With WDF gaining momentum, the percentage of newbies on this list will only
increase.
>
> -Stephen
>

In fairness…I think you have to be careful here. I have looked for some
old conversations on the driver newsgroups and these mail lists that I know
*I* have been involved in and cannot find them. So, telling people, as is
often done on here and as you suggest, something to the effect of “this has
been discussed many times so go search” implies there is a decent search
engine, which I don’t find to be the case.

Bill M.

wrote in message news:xxxxx@ntdev…
> Perhaps a trimmed-down and NT kernel-specific version of Eric Raymond’s
> “How To Ask Questions The Smart Way”
> (http://catb.org/~esr/faqs/smart-questions.html) could be used. I think
> this article is waaay too long (no newbie ever reads it), but the general
> points it makes are pretty good.
>
> My favorite sections, that I think would be useful for this list:
> “Before you ask” (search the web, search the archives, experiment, ask a
> skilled friend).
> “Use meaningful, specific subject headers”
> “Write in clear, grammatical, correctly-spelled language”
> “Describe the problem’s symptoms, not your guesses”
> “Describe the goal, not the step” (we really need this one…)
> “If you don’t understand…” (respond by researching instead of
> immediately demanding clarification)
> “Dealing with rudeness”
>
> With WDF gaining momentum, the percentage of newbies on this list will
> only increase.
>
> -Stephen
>

On Feb 13, 2008 2:41 AM, Bill McKenzie wrote:
> been discussed many times so go search" implies there is a decent search
> engine, which I don’t find to be the case.

I am surprised how many sites have poorly designed search engines.
Some of the worst default to “OR”. I.e. searching for “sex pr0n”
yields more hits than “sex”. The search engine(s) on microsoft.com
seemed inclined to this behaviour, and it is far from obvious how to
persuade it into behaving normally. (So… when was the last time I
searched for “sex” on microsoft.com? Hmm… I just did! “1-10 of
83,300 (0.04 seconds) for sex” Luckily they seem to have fixed the
‘OR’ issue though)


Rune

Comments inline:

xxxxx@gmail.com wrote:

Perhaps a trimmed-down and NT kernel-specific version of Eric
Raymond’s “How To Ask Questions The Smart Way”
(http://catb.org/~esr/faqs/smart-questions.html) could be used. I
think this article is waaay too long (no newbie ever reads it), but
the general points it makes are pretty good.

My favorite sections, that I think would be useful for this list:

“Before you ask” (search the web, search the archives, experiment,
ask a skilled friend).

Fair enough, this is often 10x faster.

“Use meaningful, specific subject headers”

Like yesterday, true… One shouldn’t ask a new question within a
different thread; however, I’m sure this was an oversight by the OP.

“Write in clear, grammatical, correctly-spelled language”

I would agree with Max here, as long as the question can be interpreted
that is good enough

“Describe the problem’s symptoms, not your guesses”

I would disagree here. For anyone that is still learning, this method is
an excellent way to harvest information. Often the theories
that are invalid are explained - specifically why. Both symptoms and
guesses are good here.

“Describe the goal, not the step” (we really need this one…)

That one is a 50/50 - kinda depends on the question.

“If you don’t understand…” (respond by researching instead of
immediately demanding clarification)

Assuming the poster didn’t search in the first place. I guess the
keyword here is ‘demanding’?

“Dealing with rudeness”

Rudeness can be funny and entertaining. I remember one such thread I had
a good chuckle about. The OP was repeatedly
unplugging and plugging in a usb device, eventually a crashed ensued
after about a hundred replugging/disconnects. The OP was
informed to stop “masturbating” the device…

With WDF gaining momentum, the percentage of newbies on this list will
only increase.

I would disagree with that statement on several levels. Just because
there is a new driver technology doesn’t mean there
will be a surge in new driver developers. Further, since this new
technology encapsulates many aspects of writing WDM drivers,
I suspect there will be fewer questions from newbies and more from
experienced driver developers trying to learned something
new that has been ‘dumbed’ down.

Since WDF has been out, I’ve seen more questions from experienced driver
developers here trying to locate things than
I have from newbies.

Matt

-Stephen

NTDEV is sponsored by OSR

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer

Of course it is a hen-and-egg problem:

Once you have a lot of experience, you will probably try to compile a
comprehensive “problem report” that contains everything which may be
necessary to solve your problem.

But a newbie does usually not have this experience, and I suspect that a
fair share of the more “recurrent” questions asked on this list are by
people who “just want this solved quickly”, because driver writing is
not an essential part of their lives.

—begin rant—

Whenever in NTDEV I read something like “Hello. I am new. Please help me
with my XYZ driver. Send full source code. And it must include
.”, my strong suspicion is that here a student got a “driver”
assignment and tries to finish this with as little effort as possible.

And when I read e.g. “Hello. Why does driver sample ndisdrv.cpp not work
for my virtual mouse HID device?”, my suspicion is that here some
underpaid contract worker - from a outsourcing centre somewhere remote -
has got a job to “just crank out a Windows driver” for some hardware.

Both groups will just try to “somehow get the job done”, whatever the
cost (to other people). They are very keen on prefabricated solutions or
templates, and usually don’t mention anything about WDK version, OS
version, previous test steps, etc. to actually help them.

(About the posts “Help. Something does not work.”, I’m still undecided.)

At least in NTDEV (so far) I never read “Please answer by PM. I usually
don’t read this newsgroup”, which comes somewhat as a surprise to me. :slight_smile:

—rant ends.—

That said, possibly we could have this included in the joining notes:
- “Please don’t expect anybody to do your work for you.”
- “Please don’t forget that you are the expert for your hardware and
software configuration - tell the people on NTDEV enough about it so
they can actually help you.”

Recently, in a household appliances repair forum, to open a new thread I
had actually to go through a questionnaire: “Exact model number. Type.
… Please fill in ALL fields and provide FULL type information, if
possible post a picture of the manufacturer’s model/type sticker - leave
the decision what is important and what is not to the experts!”.

“Hagen Patzke” wrote in message news:xxxxx@ntdev…

> But a newbie does usually not have this experience, and I suspect that a
> fair share of the more “recurrent” questions asked on this list are by
> people who “just want this solved quickly”, because driver writing is not
> an essential part of their lives.
>

I think the reason for needing it quickly very often is that the answer from
managers to the question
“do you want it correct or on friday” is mostly “on friday” nowadays :wink:

– Reinhard

Reinhard Walther wrote:

I think the reason for needing it quickly very often is that the answer from
managers to the question
“do you want it correct or on friday” is mostly “on friday” nowadays :wink:

Wrong question, especially if asked by a developer - it’s the wrong
option set. Possible alternatives are “do you want to have an analysis
and effort estimate by Friday, of should I use the time for actually
developing the driver and release it when it passes all tests”. :wink:

> “do you want it correct or on friday” is mostly “on friday” nowadays :wink:

This is a usual disease of unexperienced PMs, it has 2 main issues.

  1. What about adding the subsequent new features? Each successul software
    product has a lifecycle and roadmap.

Doing something “on Friday” often means - saving time not only on coding, but
on thinking too, which can result in non-extensive architecture, which can
mean full rewrite to implement the next feature desired by the client.

  1. What about stability? If a quickly mastered demo works - this does not mean
    it is of product quality.

Once again, hurry can mean - forever bad quality of the product.


Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com

> Since WDF has been out, I’ve seen more questions from experienced

driver developers here trying to locate things than I have from newbies.

It is obvious to anyone who reads this list on regular basis that this is NOT the case…

Although you may see something like that once in a while, I would say threads like that are just a fraction of one percentage point - the vast majority of questions here are asked by newbies
with names that are specific to some certain part of the world. It is obvious that the increase in numbers of these questions is directly related to increase of outsourcing, and with the promotion of WDF the number of these questions is more than likely to increase - potential clients are made believe that writing drivers in WDF is easy, so that they are likely to assign more driver jobs to newbies. Although KMDF, indeed, does some “gory” stuff for you, this encapsulation is still not sufficient for making a newbie write drivers without any problem. You can see quite a few questions where posters “are not convinced” that one cannot wait at elevated IRQL, have no clue about pageable vs nonpageable memory, etc, etc,etc

Anton Bassov

The trend that newbies are writing drivers started well before WDF was out the door, it did not start after WDF was released. In fact, this was one of the primary drivers for implementing WDF. We were already seeing that stability and quality were suffering b/c of this trend, so we needed a solution to address it. Of course you must understand KM concepts at some point in time, but there are aspects of KMDF that make some of these concepts unnecessary to learn to create a *basic* driver. For anything complicated, these concepts come back into full play

d

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@hotmail.com
Sent: Wednesday, February 13, 2008 9:32 AM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] Do we need a “before you post” document?

Since WDF has been out, I’ve seen more questions from experienced
driver developers here trying to locate things than I have from newbies.

It is obvious to anyone who reads this list on regular basis that this is NOT the case…

Although you may see something like that once in a while, I would say threads like that are just a fraction of one percentage point - the vast majority of questions here are asked by newbies
with names that are specific to some certain part of the world. It is obvious that the increase in numbers of these questions is directly related to increase of outsourcing, and with the promotion of WDF the number of these questions is more than likely to increase - potential clients are made believe that writing drivers in WDF is easy, so that they are likely to assign more driver jobs to newbies. Although KMDF, indeed, does some “gory” stuff for you, this encapsulation is still not sufficient for making a newbie write drivers without any problem. You can see quite a few questions where posters “are not convinced” that one cannot wait at elevated IRQL, have no clue about pageable vs nonpageable memory, etc, etc,etc

Anton Bassov


NTDEV is sponsored by OSR

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer

> The trend that newbies are writing drivers started well before WDF was out the door,

it did not start after WDF was released. In fact, this was one of the primary
drivers for implementing WDF. We were already seeing that stability and quality
were suffering b/c of this trend, so we needed a solution to address it.

Do you really believe any solution, apart from learning, is feasible ??? The best thing you can possibly do here is to offer a *partial* solution. The problem is that some people may see the very fact of MSFT developing a partial solution as a “green light”…

there are aspects of KMDF that make some of these concepts unnecessary
to learn to create a *basic* driver.

No matter how simplistic your driver is, you still need to know kernel-level basics (IRQL concepts, DPCs, synchronization, paged vs non-paged memory,etc ) in order to handle it all properly. However, judging from quite a few posts in this NG, people get assigned to writing drivers without knowing even above mentioned bare minimum (in fact, some of them don’t even know C - they ask whether it is possible to write drivers in managed languages)…

Anton Bassov

xxxxx@hotmail.com wrote:

> The trend that newbies are writing drivers started well before WDF was out the door,
> it did not start after WDF was released. In fact, this was one of the primary
> drivers for implementing WDF. We were already seeing that stability and quality
> were suffering b/c of this trend, so we needed a solution to address it.
>

I doubt there is any sense of a ‘green light’ mentality. I don’t think
the majority of people (including myself) had any
idea what the difference was between WDM, NT (legacy) or WDF drivers
were when entering the arena, surely don’t
think anyone in management ever heard of it. I would agree with you
regarding your comments below, basic theory of
architecture is needed. Even though you view KMDF as a partial solution
which it is, it removes the responsibility of
power management from the developer which in the past has been a huge
problem among other things as you know.

Do you really believe any solution, apart from learning, is feasible ??? The best thing you can possibly do here is to offer a *partial* solution. The problem is that some people may see the very fact of MSFT developing a partial solution as a “green light”…

> there are aspects of KMDF that make some of these concepts unnecessary

> to learn to create a *basic* driver.
>

And I guess this is where I’ll get flamed, but I don’t view a persons
primary language as a big deal. If I were to write, “switch”, “Select
Case”, or “Case…of” you
would understand the language each belong to along with the purpose.
From what I see with managed code, the main difference I see isn’t in
the language
construct but instead in how one calls system functions (excluding C#,
but is close enough to C for anyone to figure it out).

No matter how simplistic your driver is, you still need to know kernel-level basics (IRQL concepts, DPCs, synchronization, paged vs non-paged memory,etc ) in order to handle it all properly. However, judging from quite a few posts in this NG, people get assigned to writing drivers without knowing even above mentioned bare minimum (in fact, some of them don’t even know C - they ask whether it is possible to write drivers in managed languages)…

Anton Bassov

I simply do not buy the argument that WDF will:

  1. Create a bunch of newbies (that are starting with no kernel
    experience at all)
  2. Anyone that started with a managed language can’t adapt to a real
    language quickly.
  3. WDF will hurt current driver devs, someone somewhere still has to
    know how the nuts and bolts work. (from a past thread)

Matt


NTDEV is sponsored by OSR

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer

> I simply do not buy the argument that WDF will:

  1. Create a bunch of newbies (that are starting with no kernel experience at all)

Sure - this process goes on anyway, with or without WDF. However, in the latter case their clients burn their fingers more quickly than in the former one. This is what I meant by " giving a green light"…

  1. Anyone that started with a managed language can’t adapt to a real language quickly.

This is not the question of syntax. The fact that someone works in a managed language just indicates that he is unable to handle synchronization, cannot be trusted to ensure that
a pointer to a function-level variable does not outlive the scope of a function where the target variable is declared, etc,etc,etc. Now imagine what happens when someone like that gets assigned to writing kernel-mode code…

  1. WDF will hurt current driver devs, someone somewhere still has to
    know how the nuts and bolts work. (from a past thread)

The problem is that our drivers may have a misfortune to be in the same stack with the ones
that these “kernel-level gurus” have spewed out…

Anton Bassov

> This is not the question of syntax. The fact that someone works in a managed

language just indicates that he is unable to handle synchronization

Synchronization is there in CLR, but about memory freeing and lifetime of
objects… yes, in this case you’re correct.


Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com

Maxim S. Shatksih wrote:

Synchronization is there in CLR, but about memory freeing and
lifetime of objects… yes, in this case you’re correct.

I don’t think so, see also: IDisposable and the using (…) construct.

xxxxx@hotmail.com wrote:

This is not the question of syntax. The fact that someone works in a
managed language just indicates that he is unable to handle
synchronization, cannot be trusted to ensure that a pointer to a
function-level variable does not outlive the scope of a function
where the target variable is declared, etc,etc,etc. Now imagine what
happens when someone like that gets assigned to writing kernel-mode
code…

IMHO the root problem here is not specific to driver writing, it’s more
the general management attitude.
“The Windows Experience” gives end-users - which is after all the
perspective of most managers - a sense of false simplicity.

If some application software is easy to implement (in managed language
A) then how difficult can it be to write system driver software (in C)?

The application software is > 50MB, your little driver comes with only
100kB^h^h^h^h> 2MB (with WDF co-installers).
So how long can it take to develop and test? 1/25th of the time?
Now throw in some newbie kernel programmer “can-do” attitude for a
really explosive mix…

It is our responsibility to bring up good arguments and if necessary
prove the complexity of driver writing.