text:
Scouting/BSA/Backpacking Merit Badge

Requirement 1
Show that you know first aid for injuries or illnesses that could occur while backpacking, including hypothermia, heatstroke, heat exhaustion, frostbite, dehydration, sunburn, insect stings, tick bites, snakebite, blisters, and hyperventilation.

Requirement 2
Do one of the following:
 * A. List 10 items which are essential to be carried on any overnight backpacking trek and explain why each item is necessary.
 * B. Describe 10 ways you can limit the weight and bulk to be carried in your pack without jeopardizing your health or safety.

Requirement 3
Do one of the following:
 * A. Define limits on the number of backpackers who should be in a backpacking crew.
 * B. Explain the reason for the upper limit and the lower limit in a backpacking crew.

Requirement 4
Tell environmental considerations that are important for backpackers and describe five ways to lessen their impact on the environment. Describe proper methods for disposing of solid and liquid wastes.

Requirement 5
Demonstrate two ways to purify water and tell why water purification is essential.

Requirement 6
Demonstrate that you can read topographic maps. While on a hike, use a map and compass to establish your position on the terrain at random times and places.

Requirement 7
Tell how to prepare properly for and deal with inclement weather while on a backpacking trek.

Requirement 8
Do the following:
 * A. Explain the advantages and disadvantages of three different types of backpacking stoves using at least three different types of fuel.
 * B. Demonstrate that you know how to operate a backpacking stove safely and to handle liquid fuel safely.
 * C. Prepare at least three meals using a stove and fuel you can carry in a backpack.

Requirement 9
Do the following:
 * A. Plan a patrol backpacking hike.
 * B. Properly pack your own gear and your share of the crew equipment and food. Protect it against inclement weather. Show that your pack allows you to get quickly to items you may need on the trail and provides for comfort, balance, and neatness. Show how to use effectively a pack frame and hip strap to distribute the weight on your body.
 * C. Conduct a prehike inspection of the patrol and its equipment.
 * D. Carrying your pack, complete a hike of at least two miles.

Requirement 10
Take three backpacking treks. Each must consist of at least three days duration with two different overnight campsites, and each must cover at least 15 miles. Carry everything you will need throughout the trek.

Requirement 11
Do five of the following:
 * A. In addition, assist in planning and take a backpacking trek of at least five days with at least three different campsites, and covering at least 30 miles. Your written plan submitted to your counselor must include route, food and menus, equipment, and emergency notification. Prepare lightweight, reasonably priced trail menus. Carry everything you need throughout the entire trek.
 * B. On returning, tell what you did to get in shape for this trek and how you might do it differently again.

title: Scouting/BSA/Backpacking Merit Badge


text: User:YapaTi~enwikibooks

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

title: User:YapaTi~enwikibooks


text:
Talk:German/Level I/Essen

Untitled
I've deleted the conversation under 'Ordering at a Restaurant" because it focuses on certain topics (wine, for example), gives an example before introducing the topic, and looks too much like German: Level II. I hope you don't mind.

I've also deleted the 'nationalities' section: Unless it relates to restaurants, it belongs in Lesson 5. - SamE 22:40, 15 Aug 2004 (UTC)

Guido, could you construct a list of different types of food in Germany under "Ordering at a Restaurant in Germany"? It would be a big help. - SamE 22:46, 15 Aug 2004 (UTC)

 * Hey SamE, That's ok with me. I'm sorry, but what do you mean, a "different types of food"? Like Meat, Salads, Fish and so on?
 * Regards
 * --- Guido 06:44, 17 Aug 2004 (UTC)

 * I mean different types of restaurants, such as seafood or steak or hamburgers, and whatever else is common and/or popular in Germany. If McDonald's is popular, then that would go in the list, too.

 * As for the nationalities, we would need a direct way to say "We eat at the Japanese restaurant." and "He likes Mexican food." If we would need to teach the nationalities to do this, we could reinstate that section (but not as a major section, as a subsection or subsubsection). But I think that belongs in lesson 5. - SamE 14:12, 17 Aug 2004 (UTC)

''Just like in last lesson, where you could say, "Ich spiele Fußball gern.", you can also extend it to food. "I like to eat cheeseburgers." is translated as "Ich esse Cheeseburger gern."''

Nobody in German says "Ich (verb) (noun) gern". It must be "Ich (verb) gerne (noun)"! Example: Ich esse gerne Cheeseburger

 * Wow, that's not at all what I've been taught. Could you clarify this with one of the native German speakers on this site (with a username). I'm sorry, but I don't want to make that change only based on what an anon says. - SamE 03:39, 26 Oct 2004 (UTC)

 * He / she is right. It is not wrong, but uncommon. You could answer Ich spiele Fußball gerne, e.g. if someone asks Wie gerne spielst du Fußball (How much do you like playing soccer?; you can use gern as well as gerne) - but that are niceties. --Thomas G. Graf [I see, Sma already said it: depends on the situation] 19:20, 19 Mar 2005 (UTC)

Well you cannot tell it definetly, because you can say "Ich mag (das Fach) Deutsch gern(e). But you also can say "Ich mag gerne Kartoffeln." so both structures can be used, but it depends on the situation where it is used. Sma 14:26, 30 Oct 2004 (UTC)

I'd like to leave würden out of this lesson, as it is a very advanced verb form (imperfect subjunctive) that really shouldn't be introduced until year 3. I hope you don't mind. - SamE 23:19, 31 Oct 2004 (UTC)

 * no problem, I have already guessed why you put it out again, but actually it is the most polite form to ask for the bill, but you´re with the fact, it should be talked about later on Sma 16:02, 1 Nov 2004 (UTC)

Looks pretty cool, what you're doing here. But I spotted a mistake. Actually "dankeschön" doesn't mean "thanks, pretty". The "schön" is probably more of an adverb than an adjective. I think "dankeschön" is shortened für "Ich danke schön" which literally translates to "I thank prettily". It is definitely no compliment. --- Conny from Germany

---

I spotted a mistake too. At the section 'Main Dishes' You can't say "das Hot Dog" Correct: "der Hot Dog" -- Stephan from Germany

 * I would say "das HotDog". - iBlue from Germany.

And BTW the dialogs are not understandable for me. - iBlue

Sorry, this Dialogue is *complete* BS
Frans: Hallo, Greta! Wie geht's? Greta: Sehr gut. Ich habe Hunger. Frans: Ich auch. Möchtest du etwas essen? Greta: Ja! In der Gaststätte Greta: Ich möchte Salat, Brot, und Wasser. Frans: Hast du jetzt keinen Hunger? Greta: Nein, ich habe viel Hunger. Was bekommst du? Frans: Ich bekomme Apfelstudel, ein Stück Kuchen, und einen Eisbecher. Greta: Das ist schrecklich. Du sollst eine Bratwurst haben. Frans: Nein, ich bin zufrieden. Ich habe nicht so viel Hunger.
 * Frans is no German name, it's Franz. BTW Greta and Franz are quite senior names now... don't expect to meet anyone under 50 with these names...
 * "I'm fine. I'm hungry." ...sense?!
 * no articles, no sense
 * of course she's hungry, otherwise she wouldn't order would she?
 * Nein has to be "Doch"
 * Apfelst_r_udel actually _is_ a cake (Kuchen). And who takes a cup of ice cream _with_ two pieces of cake?
 * "That is awful. You shall posess a sausage."... wtf?! and why?!
 * "No, I'm fine. I'm not so hungry" - well - I guess a sausage shouldn't be that much more than two pieces of cake with a cup of ice cream?!

please, PLEASE let these dialogues be at least a) a bit senseful b) (reality-)checked by native speaking Germans. Really. Don't want to offend anyone who has invested his time and effort, but you cannot expect to learn German with this...

Endymi0n 05:05, 11 November 2005 (UTC)

 * Alright, I feel that I have to reply to this. First of all, you can't expect a first year german student to be able understand an actual german conversation by lesson three. What the writers were trying to do is create a somewhat realistic situation based on the vocabulary they already know, which is quite limited. A few corrections I feel that you should be aware of: first off, articles aren't always required. Think about how you would sound if you used an article for every single noun you used in english. Secondly, the phrase "Du sollst eine Bratwurst haben" means, in english, "You should have a bratwurst", not "You shall possess a sausage." Most of these sentences do, in fact, make sense. So perhaps you should stop ranting about corrections that should be made to tailor to your personal preference. Just because you don't have ice cream with your cake doesn't mean that an imaginary person can't say that for the purposes of an educational conversation. MasterSheep 01:04, 5 January 2006 (UTC)

 * The dialogue seems really odd to me.
 * Franz 	Hallo, Greta! Wie geht's?
 * Endymi0n already said something about the choice of names.
 * Greta 	Sehr gut. Ich bin hungrig.
 * This is a contradiction. There should be something in between to resolve it, e.g. “Sehr gut, aber im Moment habe ich Hunger.”
 * Franz 	Ich auch. Möchtest du etwas essen?
 * Greta 	Ja!
 * 	In der Gaststätte
 * Greta 	Ich möchte Salat, Brot und Wasser.
 * This is not a typical German dish that can be ordered from the menu. And why would anyone go to a restaurant for it? I would buy these things in a supermarket.
 * Franz 	Hast du jetzt keinen Hunger?
 * should be “Hast du jetzt keinen Hunger mehr?” (+“anymore”)
 * Greta 	Doch, ich habe großen Hunger. Was bekommst du?
 * Franz 	Ich bekomme ein Stück Apfelstrudel und einen Eisbecher.
 * That's only a dessert. Again, very strange…
 * Greta 	Warum das? Du sollst eine Bratwurst nehmen.
 * That's typical fast food. But a fast food retaurant is not called ‘Gaststätte’ but ‘Imbissbude’.
 * [Rest seems okay…]
 * -- Sloyment (discuss • contribs) 19:11, 31 July 2011 (UTC)

 * Sloyment: I think you can just go ahead and change this wikibooks without discussing your changes (in particular if there is no audio recording) since no one is actively working on this wikibook. --Martin Kraus (discuss • contribs) 20:41, 31 July 2011 (UTC)

Offer
Hey guys, I don't want to read the whole book to find some misstakes, but if anyone has a question about grammar or the German language, just mail at hahaha@mailueberfall.de. I'm a German (I'm a Native speaker, live in Germany, and have the identity card of the Federal Republic of Germany), so I think I would be able to answer all questions. There's one thing you should add to the lessons: There are not many information about the German culture, the people, the history, our food...

title: Talk:German/Level I/Essen


text:
Cookbook:Asian Cuisine

There are sub-varieties of Asian Cuisines to choose from:
 * East Asian cuisines
 * Southeast Asian cuisines
 * South Asian cuisines

title: Cookbook:Asian Cuisine


text:
Compiler Construction/Semantic Analysis

Semantic Analysis
This is roughly the equivalent of checking that some ordinary text written in a natural language (e.g. English) actually means something (whether or not that is what it was intended to mean).

The purpose of semantic analysis is to check that we have a meaningful sequence of tokens. Note that a sequence can be meaningful without being correct; in most programming languages, the phrase "x + 1" would be considered to be a meaningful arithmetic expression. However, if the programmer really meant to write "x - 1", then it is not correct.

Name Table
Time to read Aho & Ullman/Dragon book carefully.

Semantic analysis is the activity of a compiler to determine what the types of various values are, how those types interact in expressions, and whether those interactions are semantically reasonable. For instance, you can't reasonably multiply a string by class name, although no editor will stop you from writing

"abc" * MyClass To do this, the compiler must first identify declarations and scopes, and typically records the result of this step in a set of symbol tables. This tells it what specific identifiers means in specific contexts. It must also determine the types of various literal constants; "abc" is a different type than 12.2e-5.

Then it must visit all locations where identifiers and literals are used, and verify that the use of the identifier/literal, and the results computed, are compatible with the language definition (as in the above example).

As to how this is done: typically the source code is parsed, some representation of the program is constructed (syntax trees are very popular), and that representation is walked ("visited") element by element to collect/validate the semantic information. The symbol table is usually just a set of hash tables associated with the syntax tree representing a scope, hashing from identifiers to structures containing type declarations.

Type Checking
In a statically typed language, immediately following the parsing phase is the type checking phase. This attempts to catch programming errors based on the theory of types. In practice this is checking things like a variable declared as a string is not used in an expression requiring an integer.

In a dynamically typed language no type checking is performed (it is actually deferred until runtime).

title: Compiler Construction/Semantic Analysis


text:
User talk:205.188.113.148

This is user "H Padleckas"

I don't know Wikibooks didn't consider me logged in at the time I saved this section. H Padleckas 06:51, 13 Jun 2004 (UTC)

title: User talk:205.188.113.148


text:
User:Sundby

Hello :)

http://kennethism.org

title: User:Sundby


text:
User:Fred sienkiewicz

I'm a musician pursuing a Master's Degree in Trumpet Performance at the New England Conservatory of Music. I recieved a Bachelor's Degree, Summa Cum Laude and Departmental Honors, in Music Performance from the University of Massachusetts, Amherst, with a minor in Computer Science. While I am in training to become a professional freelance/orchestral/chamber musician, I am also a technology/computer science/free culture enthusiast. As a creative artist, I see an important field of convergence between my passions in the current debates over copyright laws, software patents, and the public domain as we transition to a digital culture.

See my website for more info: http://fred.sienkiewicz.org

title: User:Fred sienkiewicz


text:
User talk:JuanjoConti~enwikibooks

My name is Juanjo Conti, I'm from Argentina and I'm part of Gleducar Proyect. We have been writting a book about Free Software to secundary students. It's our hope it'll grow up here.

Mi nobmre es Juanjo Conti, soy de Argentina y parte del Proyecto Gleducar. Hemos estado escribiendo un libro sobre Software Libre para los estudiantes de las escuelas secundarias. Es nuestra esperanza que este pueda crecer aquí.

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 JuanjoConti. To make sure that both of you can use all Wikimedia projects in future, we have reserved the name JuanjoConti~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:21, 17 March 2015 (UTC)

Renamed
 This account has been renamed as part of single-user login finalisation. If you own this account you can |log in using your previous username and password for more information. If you do not like this account's new name, you can choose your own using this form after logging in: . -- Keegan (WMF) (talk) 05:06, 19 April 2015 (UTC)

title: User talk:JuanjoConti~enwikibooks


text:
User:CondeYorga~enwikibooks

'''Bueno... Hola, estoy viendo cómo funciona esto. La idea de compartir siempre me atrajo.''' '''Veremos... Saludos'''

CondeYorga

title: User:CondeYorga~enwikibooks


text:
User:Chattaro

チャット太郎です. よろしく.

title: User:Chattaro


text:
Help talk:Editing

VisualEditor
I maintain VisualEditor is a terrible idea, and that, in particular, encouraging new editors to use it would have disastrous long-term consequences, rather like painting a nursery with lead-based paint and then encouraging the children to chew on it. --Pi zero (discuss • contribs) 19:25, 6 June 2018 (UTC)

, hmmm... why? Why do you think it will have disasterous long-term consequences? Isn't VisualEditor easier to use - or do you mean that all editors should learn wiki syntax? I agree that learning it is not particularly difficult, but I thought that VisualEditor would help new editors more than anyone else. Leaderboard (discuss • contribs) 17:52, 7 June 2018 (UTC)

 * Well, here's one way to put it. The thing that makes wikis a thing is wiki markup, and the key to wiki markup is not just that it's easy to learn, but that users learn it by osmosis: in the process of doing some small thing, they see how existing wiki markup is put together, not only the thing they're changing but also stuff near it on the page.  There are things that could be done to make the experience of editing work better than the generic "edit window" approach, providing better support for osmosis-learning; but WYSIWYG is fundamentally antithetical to osmosis-learning, because the whole point of WYSIWYG is to prevent the user from seeing the underlying representation.
 * This goes hand-in-hand with doing everything using wiki markup, so that as everyone learns this one simple medium it gives everyone access to everything, rather than having some things separated by large gaps that cannot be overcome gradually by osmosis. Which is why I also disapprove of replacing template internals with Lua.  I'm developing tools meant to put more within the grasp of wiki markup, even while the Foundation is evidently working to do the opposite; my three key elements are dialog, evalx, and Module:TScope, the latter two of which handle large classes of "corner cases", while dialog brings interactivity to wiki markup as an alternative to writing specific interactive code in javascript.
 * Fwiw, I've got a general essay on all this, n:User:Pi zero/essays/vision/sisters. --Pi zero (discuss • contribs) 18:29, 7 June 2018 (UTC)

gallery
Hi. Here is

What do you think ? Soul windsurfer (discuss • contribs) 06:12, 16 November 2022 (UTC)

title: Help talk:Editing


text:
User:Evelien~enwikibooks

Nederlands: Homepage, Weblog

English: Homepage, Weblog

Ik heb Wikibooks pas ontdekt. Hartstikke leuk! Ik zag dat er nog niks over Natuurkunde was, dus daar ben ik dan maar aan begonnen met een verhaal over Mechanica.

--Evelien 20:30, 15 Jun 2004 (UTC)

title: User:Evelien~enwikibooks


text:
User talk:Chattaro

12341234

title: User talk:Chattaro


text:
User:Jespa

Colaborador de Wikipedia en castellano.

Lugar de residencia: Alcázar de San Juan, España.

Año de nacimiento: 1977.

Aficiones: Senderismo, genealogía, la cocina tradicional (sobre todo manchega)

title: User:Jespa


text:
Talk:Evolutionary Biology/Microevolution

Random genetic drift

 * Who agrees it should be "random genetic drift" instead of "genetic drift"
 * Do you see the bottleneck and founder's effects as causes of genetic drift or as examples of what random genetic drift can do?

good points!

Explanation
all of the pages in the evolutionary biology text (so far) are actually being composed as part of a writing assignment for a summerschool class. rather than having my students write term papers that end up in my filing cabinet, i thought i'd have them submit their work here. i am delighted to see that the community is already supplying feedback.


text:
Cookbook:Low Country Shrimp and Grits

| Seafood | North American cuisines | United States cuisine | Southern cuisine

Ingredients

 * 3–4 strips thick smoky bacon, cut into 1-inch pieces
 * ½ onion, minced
 * 2–3 cloves garlic, minced
 * 1 lb large shrimp, peeled (use peels to make stock)
 * Salt
 * 1 pint heavy cream, divided
 * 2–2½ cups shrimp stock
 * Butter
 * Black pepper
 * Cayenne pepper
 * Paprika
 * Chile flakes
 * Lime juice
 * 1 recipe coarse grain hominy grits, timed to finish when shrimp are ready to serve
 * 3–4 scallions, sliced

Procedure

 * 1) Fry bacon in a pan until not too crisp; remove and reserve.
 * 2) Sauté onion and garlic in bacon fat until just softened (about 2–3 minutes).
 * 3) Lightly season shrimp with salt and add to the pan; sauté until about half-cooked and just turning pink. Remove and reserve with the bacon.
 * 4) Deglaze pan with sherry.
 * 5) Add 1 cup (250 ml) cream, bring to boil, and reduce.
 * 6) Add 1 cup shrimp stock, bring to a high simmer, and reduce. The liquid should thicken; if necessary, add floured butter at this point (beurre manié).
 * 7) Season sauce with salt, pepper, chili flakes, cayenne, and paprika
 * 8) Add bacon and shrimp to the sauce, and cook gently until shrimp are just done.
 * 9) Add lime juice.
 * 10) Serve over grits, and garnish with scallions.

Notes, tips, and variations

 * Make the shrimp stock with shrimp peels and parts, dried shrimp flakes, mirepoix, and peppercorns.
 * The scallions can be replaced with minced chives.

title: Cookbook:Low Country Shrimp and Grits


text:
User talk:218.145.25.115

Hi. If you know any english, you should consider contributing to the Chinese Textbook.

title: User talk:218.145.25.115


text:
Talk:Guitar/Bending and Vibrato

Vibrato: In a video interview BB King said that he does not use string Bending, but his style does include very heavy use of Vibrato to sustain notes (and please listeners). Demonstrating his Vibrato, his thumb was around the neck and his pinkie free (little finger unused) and sticking in the air when fretting with another finger, and he "wiggles" his hand such that you notice his pinkie wave. This wiggle transfers to the string without it seeming to move, and it is not bending or altering the pitch noticably (so this is different than the described repeated bend-release bend-release method; or this is a much less pronounced effect!). I believe his movement is "all in the wrist", and not especially elbow movement, but perhaps his arm is also slightly in motion (from the wrist area, up into his hand, then exaggerated at the extreme = pinkie wave).

title: Talk:Guitar/Bending and Vibrato


text:
User:Guill

Michael Guill

title: User:Guill


text:
User:Omegatron/navtesting

 * meta:Help:Variable
 * meta:Help:Template
 * en:Template:Pope
 * Manual of Style
 * Template:OmegatronnavtestingTOCtop
 * Template:OmegatronnavtestingTOCbottom

Section 1

 * 1) Article 1
 * 2) Article 2
 * 3) Article 3

Section 2

 * 1) Article 1
 * 2) Article 2
 * 3) Article 3
 * 4) Article 4
 * 5) Article 5

Section 3

 * 1) Article 1
 * 2) Article 2
 * 3) Article 3
 * 4) Article 4
 * 5) Article 5
 * 6) Article 6
 * 7) Article 7

Section 4

 * 1) Article 1
 * 2) Article 2
 * 3) Article 3
 * 4) Article 4

Section 5

 * 1) Article 1
 * 2) Article 2
 * 3) Article 3
 * 4) Article 4

title: User:Omegatron/navtesting


text:
User:Omegatron/navtesting1

Article 1
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.

Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.

title: User:Omegatron/navtesting1


text:
User:Omegatron/TOCtop

Article 1 - Article 2 - Article 3 - Article 4 - Article 5

- Top - Up -

title: User:Omegatron/TOCtop


text:
User:Omegatron/TOCbottom

- Top - Up -

title: User:Omegatron/TOCbottom


text:
Cryptography/Digital signatures

As of 2014, installing apps is probably the most common way people use digital signatures. Both Android and iOS require an app to be digitally signed before it can be installed.

Cryptography is generally used to provide some form of assurance about a message. This assurance can be one or more of four general forms. These forms are message confidentiality, integrity, authentication, and non-repudiation. Up until the advent of public key encryption, cryptography was generally only used to provide confidentiality, that is, communications were encrypted to keep their contents secret. This encryption generally implies the sender to know the scheme and key in use, and therefore provides some rudimentary authentication. Modern digital signatures are much better at providing the assurance of authentication, integrity, and non-repudiation than historical symmetric-key encryption schemes.

Digital signatures rely on the ability of a public-key signing algorithm to sign a message—to generate a signature from the message with a private key. Later, anyone with that signature can verify the message using the corresponding public key. (This uses the keys in the opposite order as public-key encryption and public-key decryption to provide confidentiality—encryption with a public key and decryption only with the private key). However, to provide digital signing, a signer must use his private key to sign the message—or some representation of the message—that he wants to sign with his private key, so that anyone who knows his public key can use it to verify that only his private key could have signed that message.

There are a number of relevant details to proper implementation.

First, the signature itself is useless if the recipients do not have a verified copy of the signer's public key. While perhaps the best method for exchanging that key would be to meet face-to-face, this is often not possible. As a result, many public key infrastructures require the creation of a Certificate Authority whose public key is pre-shared via some trusted method. An example of this would be SSL CA's like VeriSign, whose certificates are pre-installed in most popular browsers by the computer manufacturer. The CA is what's known as a Trusted Third Party, an individual or organization who is trusted by all parties involved in the encrypted communications. It is the duty of this organization to keep its private key safe and secret, and to use that key to sign public keys of individuals it has verified. In other words, in order to save the trouble of meeting face-to-face to exchange keys with every individual you wish to communicate with, you might engage the services of a trusted third party whose public key you already have to go meet these individuals face-to-face. The third party can then sign the public keys and send them along to you, so that you end up with a verified copy without the trouble of exchanging each key pair face-to-face. The details of signing itself we will get to in a moment.

An alternative method commonly used for secure e-mail transmission via PGP or GPG is known as a web of trust. A web of trust is similar to the creation of a certificate authority, with the primary difference being that it is less formal. Rather than creating an organization to act as a trusted third party, individuals will instead sign keys of other individuals they have met in person. In this manner, if Alice has Bob's key, and Bob signs Charlie's key, Alice can trust Charlie's key. Obviously, this can be extended over a very complex web, but this ability is also a great weakness; one compromised individual in the web—the weakest link in the chain of trust—can render the rest useless.

The actual implementation of signing can also vary. One can sign a message simply by encrypting it with his private key—it can be decrypted by his public key, and the act of valid encryption can only be performed by that secret key, thus proving his identity. However, often one may want to sign but not encrypt messages. To provide this functionality at a base level, one might send two copies of the message, one of which would be encrypted. If a reader wishes to verify that the unencrypted message he has read is valid, he can decrypt the duplicate and compare the two. However, even this method is cumbersome; it doubles the size of every message. To avoid this drawback, most implementations use Hash Functions to generate a hash of the message, and use the private key to encrypt that hash. This provides nearly the same security as encrypting a duplicate, but saves space.

Many early explanations of public-key signature algorithms describe public-key signing algorithms as "encrypt a message with a private key". Then they describe public-key message verify algorithms as "decrypt with the public key". Many people prefer to describe modern public-key cryptosystems as having 4 independent high-level functions—encrypt, decrypt, sign, verify—since none of them (if properly padded to avoid chosen-ciphertext attacks) can be substituted for any of the others.

title: Cryptography/Digital signatures


text:
User:Omegatron/navtesting2

Article 2
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.

Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.

title: User:Omegatron/navtesting2


text:
User:Omegatron/navtesting3

Article 3
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.

Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.

title: User:Omegatron/navtesting3


text:
User:Omegatron/navtesting4

Article 4
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.

Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.

title: User:Omegatron/navtesting4


text:
User:Omegatron/navtesting5

Article 5
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.

Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.

title: User:Omegatron/navtesting5


text:
User:Hfastedge~enwikibooks

en:User:hfastedge

title: User:Hfastedge~enwikibooks


text:
User:Sploo22~enwikibooks

I live in the Cayman Islands. Mostly I tend to browse Wiki{pedia,books} but I do occasional minor editing whenever I see something that needs it.

Currently working on Cryptography since it really needs it :)

title: User:Sploo22~enwikibooks


text:
C Sharp Programming

C# (pronounced "C Sharp"||"C#") is a multi-purpose computer programming language suitable for a wide variety of development needs. This Wikibook introduces C# language fundamentals and covers a variety of the base class libraries (BCL) provided by the Microsoft .NET Framework.

Introduction

 * ''Main introduction: C Sharp Programming/Foreword

Although C# is derived from the C programming language, it introduces some unique and powerful features, such as delegates (which can be viewed as type-safe function pointers) and lambda expressions which introduce elements of functional programming languages, as well as a simpler single class inheritance model (than C++) and, for those of you with experience in "C-like" languages, a very familiar syntax that may help beginners become proficient faster than its predecessors. Similar to Java, it is object-oriented, comes with an extensive class library, and supports exception handling, multiple types of polymorphism, and separation of interfaces from implementations. Those features, combined with its powerful development tools, multi-platform support, and generics, make C# a good choice for many types of software development projects: rapid application development projects, projects implemented by individuals or large or small teams, Internet applications, and projects with strict reliability requirements. Testing frameworks such as NUnit make C# amenable to test-driven development and thus a good language for use with Extreme Programming (XP). Its strong typing helps to prevent many programming errors that are common in weakly typed languages.

 * /Foreword/ : A description of the C# language and introduction to this Wikibook.
 * Getting started with C# : A simple C# program and where to get tools to compile it.

Basics

 * Basic syntax : Describes the basics in how the applications you write will be interpreted.
 * Naming conventions : Quickly describes the generally accepted naming conventions for C#.
 * /Variables/ : The entities used to store data of various shapes.
 * /Operators/ : Summarizes the operators, such as the '+' in addition, available in C#.
 * /Data structures/ : Enumerations, structs, and more.
 * Control statements : Loops, conditions, and more. How the program flow is controlled.
 * /Exceptions/ : Responding to errors that can occur.

Classes

 * /Namespaces/ : Giving your code its own space to live in.
 * /Classes/ : The blueprints of objects that describes how they should work.
 * /Objects/ : Cornerstones of any object-oriented programming language, objects are the tools you use to perform work.
 * Encapsulation and accessor levels : Explains protection of object states by encapsulation, or the bundling of an object's data and functionality.

Advanced Topics

 * /Inheritance/:Re-using existing code to improve or specialize the functionality of an object.
 * /Interfaces/:Define a template, on which to base sub-classes.
 * /Delegates and Events/:Learn about delegates, anonymous delegates, lambda expressions, and events.
 * /Abstract classes/:Build partially implemented classes.
 * /Partial classes/:Split a class over several files to allow multiple users to develop, but also to stop code generators interfering with source code.
 * /Generics/:Allow commonly used collections and classes to appear to have specialization for your custom class.
 * /Extension methods/:Extend the functionality of existing types.
 * /Object Lifetime/:Learn about the lifetime of objects, where they are allocated and learn about garbage collection.
 * /Design Patterns/:Learn commonly used design methodologies to simplify and/or improve your development framework.

The .NET Framework

 * .NET Framework Overview : An overview of the .NET class library used in C#.
 * Console Programming : Input and Output using the console.
 * Windows Forms : GUI Programming with Windows Forms.
 * Collections : Effectively manage (add, remove, find, iterate, etc.) large sets of data.
 * Threading : Learn how to run code concurrently and how to synchronize code.
 * Marshalling : Communicating with unmanaged code

Examples

 * /K-Means++/

title: C Sharp Programming


text:
Cryptography/Breaking Vigenère cipher

Plain text is encrypted using the Vigenère cipher by first choosing a keyword consisting of letters from the alphabet of symbols used in the plain text. The keyword is then used to encrypt the text by way of the following example.

Using: Plain text: I Like A Book and choosing: Keyword: cta

1. Map all the plain text to numbers 0-25 or however long your alphabet is  ilikewikibooks converts to 8 11 8 10 4 22 8 10 8 1 14 14 10 18

2. Map your keyword to numbers the same way cta maps to 2 19 0

3. add your key to your plain text in the following manner 8 11  8  10   4  22  8  10  8  1  14  14  10  18   2  19  0   2  19   0  2  19  0  2  19   0   2  19   resulting in   10 30  8  12  23  22 10 29   8  3  33   14  12  37

4. take each resulting number mod 26 ( or for the general case mod the number of characters in your alphabet) resulting in  10 4   8  12  23  22 10 3    8  3  7    14  12   11

5. map each number back to a letter to get the resulting cypher text keimxwkdidhoml

The message can easily be decrypted with the keyword by reversing the above process. The keyword can be any length equal to or less than that of the plain text.

Without the keyword the primary method of breaking the Vigenère cipher is known as the Kasiski test, after the Prussian major who first published it. The first stage is determining the length of the keyword.

Determining the key length
Given an enciphered message such as: Plaintext: TOBEORNOTTOBE Keyword:   KEYKEYKEYKEYK Ciphertext: DSZOSPXSRDSZO

Upon inspection of the ciphertext, we see that there are a few digraphs repeated, namely DS, SZ, and ZO. It is statistically unlikely that all of these would arise by random chance; the odds are that repeated digraphs in the ciphertext correspond to repetitions in the plaintext. If that is the case, the digraphs must be encoded by the same section of the key both times. Therefore, the length of the key is a factor of the distance in the text between the repetitions.

The common factors (indeed, the only factors in this simple example) are 3 and 9. This narrows down the possibilities significantly, and the effect is even more pronounced with longer texts and keys.

Frequency analysis
Once the length of the key is known, a slightly modified frequency analysis technique can be applied. Suppose the length of the key is known to be three. Then every third letter will be encrypted with the same letter of the key. The ciphertext can be split into three segments - one for each key letter—and the procedure described for the Caesar cipher can be used.

title: Cryptography/Breaking Vigenère cipher


text:
Introduction to Philosophy/What is Metaphysics

The branch of philosophy called metaphysics concerns itself with the nature of reality itself. It is in this branch that the fundamental questions of our existence and our universe reside. For example, is our perception of time real, or is it merely an illusion? Are there fundamental properties that all things that exist must have? What does it mean for something to exist? Does an abstract thing, such as a number, or the Mandelbrot set, fundamentally exist in the same way our universe does? What are properties, anyway? What is a person, or "the self", really? Do we have "free will"?

These difficult questions, which in and of themselves already build on assumptions, are often brushed against within contemporary physics. Importantly, however, they are not quite the same. The behavior of time, for example, can be described by using Einstein's theories of relativity, entropy, and so forth. However, these physical theories merely describe the behavior of observed phenomena, and can be proven or disproven by comparing them to these observations. Metaphysics goes beyond what we can observe or infer from observations, and asks questions about the fundamental nature of reality and the potential implications this would have.

This gives it a bit of a risk to be rather vague. After all, with no way to test any of the answers, how can we know if something is true or not? The only way we can is to use rigorous logic. For a select few questions, this will allow us to rule out certain worldviews, such as when this results in a paradox. But unfortunately, most of the time, metaphysics will yield us no concrete answers. Instead, we must apply what we have done so far: start with a few core assertions, and explore the implications of these. If it results in a contradiction, then we can reject the set of assertions. However, if not, that is not proof of their truthfulness either. In this way, we can create many possible, self-consistent and competing worldviews, and assign a value of confidence to each. For example, it may be the case that you, the reader, are just a brain in a vat and stuck inside a simulation. Although potentially perfectly self-consistent, using the things we learned from epistemology, it may be better to only give this a small likelihood of being true, even if we cannot fully rule it out.

It is not inconceivable that questions that are now firmly within metaphysics will enter physics later down the line. The theory that all matter is composed of tiny particles called atoms was considered metaphysics at one time. When people began to invent instruments capable of detecting such tiny things, atomic theory moved out of metaphysics into physics. So metaphysics is always "at the frontier", and some of it may become physics in the future.

The definition of metaphysics
Although we have given a hint at what metaphysics is, it is hard to define concretely. The term itself can be interpreted as meaning "beyond physics", but it's tricky to get more precise without inviting controversy. Early use of the term simply referred to the topics covered by the work placed after (hence meta) the Physics section in the traditional edit of Aristotle's works by the Greek Peripatetic philosopher Andronicus Of Rhodes. Perhaps it is better, then, to look at what metaphysics is not. Newton's theories about gravity, Einstein's theories of relativity, and most of the work on quantum mechanics are clearly not metaphysics. These theories make specific predictions about observable phenomena, and can be disproven when shown not to match these observations.

Religion is also not metaphysics. Religion is based on a set of convictions that may well make predictions about the world, or explain why certain phenomena occur, but they do so by authoritatively asserting a single worldview regardless of its logical integrity. Metaphysics, as a branch of philosophy, is bound by using logic and reason to approach each question, speculatively and critically examining different options side-by-side. This raises another interesting problem for metaphysics: it may often tread on sacred ground and come into conflict with religion. Socrates was one casualty of this tendency.

These considerations give us some boundaries, and we can define metaphysics more readily inside those boundaries.

Metaphysics is concerned with explaining the way things "are" in the physical world. It is concerned primarily with 'being as being', i.e. with anything in so far as it has act of existence. However, metaphysics is not concerned with examining the physical properties of things that exist, but is, instead, the study of the underlying principles that give rise to the unified natural world. As such, the statement that "evil does not exist" is metaphysical because it is a statement that deals with the object 'evil' as opposed to 'good' which is a metaphysical subject, whereas the statement that "all things are composed of atoms, which are in turn composed of electrons, protons, and neutrons" is definitely not metaphysics, utmost a concern of physical sciences.

Dinstinguishing metaphysical questions from physical questions
Metaphysics is a branch of philosophy, and part of the answer to the question "What is Metaphysics" requires us to define the difference between science and philosophy. 'Science' is taken here as empirical sciences or non-empirical sciences. In physical science, it's important for new explanations to make predictions that can be tested by experiments. But this is not a requirement of philosophy, specifically that of metaphysics. Instead, we reduce any philosophical statement to its ultimate concept or propositions. The ultimate concept of metaphysics is being while that of propositions is the principle of contradiction. In the case of the above statement that all things are made up of smaller things and so on to infinity, this explanation is clearly untestable because we'll never have an instrument capable of detecting anything that is infinitely small. But then, metaphysically, one can be sure that it is impossible to have an infinite regression of materiality but must arrive at the ultimate or smallest particle of matter. But then, the philosopher can further ask: What is the ultimate composition of matter?" this time the answer cannot be anymore 'the smallest particle of matter' since the smallest particle of matter is matter also. Thus, Thales' question: 'What is the ultimate stuff?' is a metaphysical question, and not an empirical one. His question separated physical science from philosophy. Aristotle offered an answer: his hylomorphic doctrine which states that any material reality is ultimately composed of prime matter (not the matter as we know it) and substantial form.

Metaphysics is not religion because religion involves act of faith, faith guiding reason. In case of metaphysics, it limits its certitude on reason alone. In summary, here is one answer to the question "What is Metaphysics?":

''Metaphysics is not the branch of philosophy that explains physical phenomena using reason and logic in a way that falls outside the bounds of either religion or science, rather it is a philosophical science which deals with transcendental concepts such as being, one, true and good which in its simplest form is 'being as such'. What really makes Metaphysics hard to define is its object: being. Being cannot be defined properly, but only descriptively.''

Reference and further readings

 * ማጣቀሻ እና ተጨማሪ ንባቦች


text:
General Relativity/Notes to GR editors

Since I am sure I'm not the only one who will be editing this page, let's agree on some standards so that everything is cohesive. Here are my suggestions:

1. Certainly we should use follow the Einstein summation convention.

2. Let's agree to use the same signature for the Minkowski metric. I propose the $$(- + + +)$$ signature, i.e., the Minkowski metric $$\mathbf{\eta}$$ is given by $$\mathbf{\eta} (\mathbf{u}, \mathbf{v}) = -u^0v^0 +u^1v^1 + u^2v^2 + u^3v^3$$.

E-mail me or edit the discussion page if you have questions or comments.

-Lathem

title: General Relativity/Notes to GR editors


text:
General Relativity/Einstein Summation Notation

<General Relativity

In the last sections we talked about a number of operations involving tensors. One of them is to take a covariant vector and a contravariant vector and turn them into a scalar. Another is to get a contravariant vector and put it into a tensor and get out a force.

Since we want to do math with these, let us try to see how we can represent these. We take as an example trying to combine a contravariant vector (v) which represents the direction and speed we are travelling in and a covariant vector (w) which represents the rate of distance at which a temperature is changing in a certain direction. We want to get the scale invariant quantity describing the rate of time at which the temperature is changing as we move in direction v.

Now we could do it really abstractly. For example if we want to combine a contravariant tensor and covariant tensor to get a scalar we could write...

$$f = \mathbf{v} \cdot\mathbf{ w}$$

This is just our old friend the dot product. This has the advantage that it is short and simple to write. However, the problem with this is that it doesn't let us know what f, v, and w are. f is a scalar. v is a contravariant tensor. w is a covariant tensor. This wasn't a problem in basic vector calculus, where we just had to deal with scalars and vectors. But it is a problem now that our mathematical zoo has more animals.

The next approach would be to write everything as a component. So we have

$$f = v^1 w_1 + v^2 w_2$$

The trouble with this is that it is a lot of typing of the same numbers, over and over again. Lets write it out in summation notation.

$$f = \sum_{\mu=1}^2 v^\mu w_\mu$$ Better... But that summation sign, do we really want to write it over and over and over and over? What does it give us? We can be really clever and just write

$$f = v^\mu w_\mu$$

and just know that when we see the same index on top and on the bottom, we mean to take a sum. This is called Einstein summation notation. Whenever one sees the same letter on both superscript ("upper") indices and subscript ("lower") indices in a product, one automatically sums over the indices. Note that in GR, indices usually range from 0 to 3. (Note: Greek letters typically range from 0 to 3, while Roman letters range from 1 to 3).

Here are some more examples of the Einstein summation notation being used:

1. $$v^\mu \sigma_\mu = \sum_{\mu=0}^3 v^\mu \sigma_\mu = v^0 \sigma_0 + v^1 \sigma_1 + v^2 \sigma_2 + v^3 \sigma_3$$

2. $$T^{\alpha \beta} S_{\alpha \beta} = \sum_{\alpha, \beta =0}^3 T^{\alpha \beta} S_{\alpha \beta} = T^{ 0 0}S_{0 0} + T^{ 1 0}S_{1 0}+ T^{ 2 0}S_{2 0}+ T^{ 3 0}S_{3 0}+ T^{ 0 1}S_{0 1} + T^{ 1 1}S_{1 1} + $$ etc. (16 terms total)

3. $$R_{\mu \nu} = R^{\rho}_{\ \mu \rho \nu} = \sum_{\rho=0}^3 R^{\rho} _{\ \mu \rho \nu} = R^{0} _{\ \mu 0 \nu}+R^{1} _{\ \mu 1 \nu}+R^{2} _{\ \mu 2 \nu}+R^{3} _{\ \mu 3 \nu}$$

Identities
Several identities arise from indicial notation. Since $$\delta^i_j=1$$ if $$i=j$$,
 * Contraction:
 * $$\delta^i_j\delta^j_k = \delta^i_k\,$$
 * $$\delta^i_jx_{ij}=x_{mm}=\mathrm{trace}(x_{ij})$$

 * Differentiation
 * $$\frac{\partial x_i}{\partial x_j} = \delta^i_j$$
 * $$\frac{\partial x_{ij}}{\partial x_{k\ell}} = \delta^i_k\delta^j_\ell$$


text:
User:Lathem

lathem@math.gatech.edu

title: User:Lathem


text:
User:Itai

Hello. I'm mostly a Wikipedia user, but figured it's time I got myself a Wikibooks account.

title: User:Itai


text:
Statistics/Summary/Averages

Averages
An average is simply a number that is representative of data. More particularly, it is a measure of central tendency. There are several types of average. Averages are useful for comparing data, especially when sets of different size are being compared. It acts as a representative figure of the whole set of data.

Perhaps the simplest and commonly used average the arithmetic mean or more simply mean which is explained in the next section.

Other common types of average are the median, the mode, the geometric mean, and the harmonic mean, each of which may be the most appropriate one to use under different circumstances.

Statistics | Summary Statistics | >> Mean, Median and Mode

title: Statistics/Summary/Averages


text:
Prolog/Variables

A PROLOG variable can represent anything; a number, a name, a structure, an array, something as complicated as the known universe. A PROLOG program works by constraining the variables until eventually they have particular values; then telling you what the values are. A simple program might be

and when you run it, the result will be

The program might not go as far as to constrain the variables to have exact values, so you might get

where the '_' means that you have a variable remaining as part of the solution.

You can also get a 'Yes' result for more than one value of the variables; this is called 'nondeterminism', and is OK. If no values of the variables will make a solution, PROLOG will say 'No'.

prev: Recursive Rules next: Lists

title: Prolog/Variables


text:
Statistics/Summary/Averages/mean

Mean
The mean, or more precisely the arithmetic mean, is simply the arithmetic average of a group of numbers (or data set) and is shown using -bar symbol $$\bar {}$$. So the mean of the variable $$x$$ is $$\bar{x}$$, pronounced "x-bar". It is calculated by adding up all of the values in a data set and dividing by the number of values in that data set :$$\bar x={\sum_{}x\over n}$$.For example, take the following set of data: {1,2,3,4,5}. The mean of this data would be:
 * $$\bar x={\sum_{}x\over n}={1+2+3+4+5 \over 5}={15 \over 5}=3$$

Here is a more complicated data set: {10,14,86,2,68,99,1}. The mean would be calculated like this:
 * $$\bar x={\sum_{}x\over n}={10+14+86+2+68+99+1 \over 7}={280 \over 7}=40$$

Median
The median is the "middle value" in a set. That is, the median is the number in the center of a data set that has been ordered sequentially.

For example, let's look at the data in our second data set from above: {10,14,86,2,68,99,1}. What is its median?

 * First, we sort our data set sequentially: {1,2,10,14,68,85,99}
 * Next, we determine the total number of points in our data set (in this case, 7.)
 * Finally, we determine the central position of or data set (in this case, the 4th position), and the number in the central position is our median - {1,2,10,14,68,85,99}, making 14 our median.

Because our data set had an odd number of points, determining the central position was easy - it will have the same number of points before it as after it. But what if our data set has an even number of points?

Let's take the same data set, but add a new number to it: {1,2,10,14,68,85,99,100} What is the median of this set?

When you have an even number of points, you must determine the two central positions of the data set. (See side box for instructions.) So for a set of 8 numbers, we get (8 + 1) / 2 = 9 / 2 = 4 1/2, which has 4 and 5 on either side.

Looking at our dataset, we see that the 4th and 5th numbers are 14 and 68. From there, we return to our trusty friend the mean to determine the median. (14 + 68) / 2 = 82 / 2 = 41. find the median of 2, 4, 6, 8 => firstly we must count the numbers to determine its odd or even as we see it is even so we can write: M=(4+6)/2=10/2=5 5 is the median of above sequential numbers.

Mode
The mode is the most common or "most frequent" value in a data set. Example: the mode of the following data set (1, 2, 5, 5, 6, 3) is 5 since it appears twice. This is the most common value of the data set. Data sets having one mode are said to be unimodal, with two are said to be bimodal and with more than two are said to be multimodal. An example of a unimodal dataset is {1, 2, 3, 4, 4, 4, 5, 6, 7, 8, 8, 9}. The mode for this data set is 4. An example of a bimodal data set is {1, 2, 2, 3, 3}. This is because both 2 and 3 are modes. Please note: If all points in a data set occur with equal frequency, it is equally accurate to describe the data set as having many modes or no mode.

Midrange
The midrange is the arithmetic mean strictly between the minimum and the maximum value in a data set.

Relationship of the Mean, Median, and Mode
The relationship of the mean, median, and mode to each other can provide some information about the relative shape of the data distribution. If the mean, median, and mode are approximately equal to each other, the distribution can be assumed to be approximately symmetrical. If the mean > median > mode, the distribution will be skewed to the right. If the mean < median < mode, the distribution will be skewed to the left.

Questions
1. There is an old joke that states: "Using median size as a reference it's perfectly possible to fit four ping-pong balls and two blue whales in a rowboat." Explain why this statement is true.

<< Averages | Statistics | Geometric Mean >>

title: Statistics/Summary/Averages/mean


text:
Statistics/Summary/Averages/Geometric Mean

Statistics | Mean

Geometric Mean
The Geometric Mean is calculated by taking the nth root of the product of a set of data. $$\tilde{x}=\sqrt[n\;]{\prod_{i=1}^n x_i}$$

For example, if the set of data was:

1,2,3,4,5

The geometric mean would be calculated: $$\sqrt[5]{ 1 \times 2 \times 3 \times 4 \times 5} = \sqrt[5]{120} = 2.61$$

Of course, with large n this can be difficult to calculate. Taking advantage of two properties of the logarithm:

$$ \log(a\cdot b) = \log(a) + \log(b) $$

$$ \log( a^n ) = n \cdot \log( a ) $$

We find that by taking the logarithmic transformation of the geometric mean, we get:

$$\log\left(\sqrt[n]{ x_1 \times x_2 \times x_3 \cdots x_n}\right) =  \frac{1}{n} \sum_{i=1}^n\log(x_i) $$

Which leads us to the equation for the geometric mean:

$$\tilde{x}= \exp \left( \frac{1}{n} \sum_{i=1}^n\log(x_i) \right)$$

When to use the geometric mean
The arithmetic mean is relevant at any time several quantities add together to produce a total. The arithmetic mean answers the question, "if all the quantities had the same value, what would that value have to be in order to achieve the same total?"

In the same way, the geometric mean is relevant any time several quantities multiply together to produce a product. The geometric mean answers the question, "if all the quantities had the same value, what would that value have to be in order to achieve the same product?"

For example, suppose you have an investment which returns 10% the first year, 50% the second year, and 30% the third year. What is its average rate of return? It is not the arithmetic mean, because what these numbers mean is that on the first year your investment was multiplied (not added to) by 1.10, on the second year it was multiplied by 1.50, and the third year it was multiplied by 1.30. The relevant quantity is the geometric mean of these three numbers. Written by Hafiz G m

It is known that the geometric mean is always less than or equal to the arithmetic mean (equality holding only when A=B). The proof of this is quite short and follows from the fact that $$(\sqrt A-\sqrt B)^2$$ is always a non-negative number. This inequality can be surprisingly powerful though and comes up from time to time in the proofs of theorems in calculus. Source.

<< Mean, Median and Mode | Statistics


text:
General Relativity/Authors

Brad Lathem (Lathem)

Roadrunner (Roadrunner)

title: General Relativity/Authors


text:
Serial Programming

This book explains different aspects of serial data communication. Serial data communications is the foundation for most forms of data communications used with modern computing devices. The focus of the articles in this book will be around the implementation of RS-232 (aka RS-232C, aka V.24, aka EIA-232D, etc.) based serial data communication and will explore a wide range of implementations and uses for serial data transfer.

Book Contents

 * Authors
 * Preface

 * General
 * Introduction and OSI Network Model
 * RS-232 Wiring and Connections
 * Typical RS232-Hardware Configuration

 * Low-Level serial Interface Hardware
 * Programming the 8250 UART
 * MAX232 Driver/Receiver Family

 * Specific Programming Environments
 * Serial Data Communications in DOS
 * TAPI communications in Windows
 * Serial communications in Linux and Unix
 * Unix V7 Serial Programming (ancient)
 * termio: System V terminal I/O (improves on V7)
 * termios: POSIX terminal I/O (improves on termio)
 * Serial communications using Java

 * Programming serial Devices
 * Hayes-compatible Modems and AT Commands
 * AT Commands: & Commands
 * AT Commands: A-M
 * AT Commands: N-Z

 * Serial Programming Applications
 * Forming Data Packets
 * Error Correction Methods
 * Two Way Communication
 * Serial Data Networks
 * Practical Application Development
 * IP over Serial Connections

 * Appendix: communications channels that are very similar to RS-232
 * RS-485

 * Appendix: communications channels that are technically serial but really quite different from RS-232 (these will soon move to a different book)
 * Universal Serial Bus (USB)
 * /Serial ATA/

Resources
See Subject:Computer engineering for other kinds of low-level serial interface hardware that typically have the same high-level programming interface as RS-232 (RS-422, RS-423, RS-449, RS-485, MIL-STD-188, Universal Serial Bus (USB), etc.) and hardware that happens to be serial (Serial ATA, Wifi, Ethernet, etc), although it usually uses a very different high-level protocol.

Related Books

 * Communication Systems
 * Embedded Systems
 * Embedded Control Systems Design
 * Robotics (Networks)

External Links to Resources

 * ACCESS.bus
 * Serial Peripheral Interface Bus
 * Beyond Logic Serial Interfacing Articles
 * Serial Port Testing with C
 * Tronisoft's Printable ASCII Serial Port Crib Sheets
 * Example of asynchronous data

title: Serial Programming


text:
General Relativity/Contravariant and Covariant Indices

< General Relativity

Rank and Dimension
Now that we have talked about tensors, we need to figure out how to classify them. One important characteristic is the rank of a tensor, which is the number of indicies needed to specify the tensor. An ordinary matrix is a rank 2 tensor, a vector is a rank 1 tensor, and a scalar is rank 0. Tensors can, in general, have rank greater than 2, and often do.

Another characteristic of a tensor is the dimension of the tensor, which is the count of each index. For example, if we have a matrix consisting of 3 rows, with 4 elements in each row (columns), then the matrix is a tensor of dimension (3,4), or equivalently, dimension 12.

The important thing about rank and dimension is that they are invariant to changes in the coordinate system. You can change the coordinate system all you want, and the rank and the dimensions don't change. This brings up the important question of how tensors do change when you change the coordinate system. One thing we shall find when we look at the question is that in reality there are two different types of vectors.

Contravariant and Covariant Vectors
Imagine that you are flying a bomber at 1,000 kilometers per hour to the east, or along the positive x-axis. We shall call your velocity vector v. For now, we will keep the vectors one-dimensional. Suddenly you realize that you are in a meter-ish mood and so we want to figure out how fast you are going using meters instead of kilometers. Quickly changing your coordinate system, you find that you are traveling 1000 * 1000 = 1000 000 meters per hour easterly. We will call this vector v'. No problem.

Now you decide to climb, and you notice the temperature changing. We then draw a map of how the temperature changes as we fly. We then travel along the path of steepest ascent, or fastest cooling. At our current position, the temperature falls at 10 Celsius degrees per kilometer toward the east. Let's call this temperature gradient vector w. Again, you go into a meter-ish mood. Doing a quick calculation you figure out that the gradient of the temperature change is -10/1000 = -.01 Celsius degrees per meter. We shall call this vector w'.

Did you notice something interesting?

Even though we are talking about two vectors we are treating them very differently when we change our coordinates. In the first case, the vector reacted to the coordinate change by a multiplication. That is to say, v'=k•v. In the second case, we did a division: w'=1/k•w. The first case we were changing a vector that was distance per something, while in the second case, the vector was something per distance. These are two very different types of vectors. The graphic below depicts the vectors representing v, v', w, and w' The mathematical term for the first type of vector is called a contravariant vector. The second type of vector is called a covariant vector. Sometimes a covariant vector is called a one form.

 * Attempting a fuller explanation

 * It is easy to see why w is called covariant. Covariant simply means that the characteristic that w measures, change in temperature, increases in magnitude with an increase in displacement along the coordinate system.  In other words, the further you travel from a fixed point, the more the temperature changes, or equivalently, change in temperature covaries with change in displacement.

 * Although it is a bit more difficult to see, v is called contravariant for precisely the opposite reason. Since v represents a velocity, or distance per unit time, we can think of v as the inverse of time per unit distance, meaning the amount of time that passes in traveling a certain fixed amount of distance.  Time per unit distance is clearly covariant, because as you travel further and further from a fixed point, more and more time elapses.  In other words, time covaries with displacement.  Since velocity is the inverse of time per unit distance, than it follows that velocity must be contravariant.

 * The difference is also evident in the units of measure. The units of measure for v are meters per hour, whereas the units for w are degrees Celsius per meter.  The coordinate system is position in space, measured in units of meters.  So again, we see that the coordinate system appears in the numerator of v, which suggests that v is contravariant  (with inverse time in this case), whereas the coordinate system appears in the denominator of w, which indicates that w is covariant (with change in temperature).

 * Contravariant vectors describe those quantities where the distance units comes at the numerator (like velocity), whereas covariant are those where the distance unit is at the denominator (like temperature gradient).

These are, of course, just fancy mathematical names. As we can see contravariant vectors and covariant vectors are very different from each other and we want to avoid confusing them with each other. To do this mathematicians have come up with a clever notation. The components of a contravariant vector are represented by superscripts, while the components of a covariant vector are represented by subscripts. So the components of vector v are v1 and v2 while the components of vector w are w1 and w2.

Scale Invariance
Now that we have contravariant vectors and covariant vectors, we can do something very interesting and combine them. We have a contravariant vector that describes the direction and speed at which we are going. We have covariant vector that describes the rate and direction at which the temperature changes. If we combine them using the dot product

 * $$ f \ \ = \ \ \mathbf{v} \cdot \mathbf{w} $$

dT/dt = 1000 · -10 = -10000 degrees Celsius per hour

we get the rate at which the temperature changes, f, as we move in a certain direction, with units of degrees Celsius per hour. The interesting thing about the units of f is that they do not include any units of distance, such as meters or kilometers. So now suppose we change the coordinate system from meters to kilometers. How does f change?

 * $$ f \ \ = \ \ \mathbf{v'} \cdot \mathbf{w'} $$

dT/dt = 100,0000 · -.01 = -10000 degrees Celsius per hour

It doesn't. We call this characteristic scale invariance, and we say that f is a scale invariant quantity. The value of f is invariant with changes in the scale of the coordinate system.

Now so far we have been treating w as if it were just an odd type of vector. But there is a another more powerful way of thinking about w. Look at what we just did. We took v, combined it with w and got something that doesn't change when you change the coordinate system. Now one way of thinking about it is to say that w is a function, that takes v and converts it into a scale invariant value, f. In plainspeak, w would be the function that takes in any velocity of a particle and produces the change in temperature that the particle experiences each hour (for the specific temperature field declared earlier).

Vector Spaces and Basis Vectors
This fact that a covariant vector like w can convert any contravariant vector like v into a scale invariant value like f is summarized by saying that w is a linear functional.

Let us be more precise about the word like. Mathematical operations, such as converting one sort of vector into another sort of vector, are done on vector spaces. See vector space for a careful definition of vector spaces. Here, loosely speaking, let us say that a vector space is a set of vectors which can be added together and multiplied by numbers and that the result is always another vector in the same vector space.

Let us define $$V$$ to be the vector space of contravariant vectors like v.

Then, the set of all covariant vectors like w, which convert vectors like v from $$V$$ into scalars like f, which we can also call the set of all linear functionals w on $$V$$, can be given the name $$V^*$$, which we call the dual space.

$$V^*$$ is also a vector space. Remember, we can view w as a vector or as a function, depending on which of its properties we wish to emphasize.

Now we can be more careful about the word like by saying which spaces w and v must be a member of: any vector w in $$V^*$$ (called a covariant vector, or a 1-form) can convert any vector v in $$V$$ (called a contravariant vector) into a scale invariant value like f. (We have not said what space or set f is a member of: in practice, we will usually only be interested in f as a member of the set of real numbers.)

Any vector space has a set of basis vectors. That is to say, if $$\mathbf{v} \in V$$, then $$\mathbf{v}$$ may be written as $$\sum_{\alpha} v^\alpha \mathbf{e}_\alpha$$ where,
 * $$ {\alpha}$$ is an index ranging from 1 to the dimension of $$\mathbf{v}$$.
 * The set {$$\mathbf{e}_\alpha$$} are the basis vectors of vector space $$ \mathbf V$$.
 * $$ v^\alpha $$ is a constant.

Note that although components of contravariant vectors are written with superscript ("upper") indices, the basis vectors are written with subscript ("lower") indicies. If the set {$$\mathbf{e}_\alpha$$} is a basis for $$V$$, then $$\mathbf{v} \in V$$ is written as the linear combination $$\mathbf{v}=v^\mu \mathbf{e}_\mu$$. (We are using Einstein summation notation, detailed in the next section; this is shorthand for $$\sum_{\mu} v^\mu \mathbf{e}_\mu$$.)

Before moving on to covariant vectors, we must define the notion of a dual basis. Remember that elements of $$V^*$$ are linear functionals on $$V$$. So we can "apply" covariant vectors to contravariant vectors to get a scalar. For example, if $$\mathbf{\sigma} \in V^*$$ and $$\mathbf{v} \in V$$, then $$\mathbf{\sigma} (\mathbf{v})$$ returns a scalar. Now, the dual basis is defined as follows: if {$$\mathbf{e}_\alpha$$} is a basis for $$V$$, then the dual basis is a basis {$$\mathbf{\omega^\alpha}$$} for $$V^*$$ which satisfies $$\mathbf{\omega}^\mu (\mathbf{e}_\nu) = \delta_\nu^\mu$$ (where $$\delta_\nu^\mu$$ is the Kronecker delta) for every $$\mu$$ and $$\nu$$.

Now, the components of covariant vectors are written with subscript ("lower") indices. As {$$\mathbf{\omega^\alpha}$$} is a basis for $$V^*$$, we can write a covariant vector $$\mathbf{\sigma}$$ as $$\mathbf{\sigma} = \sigma_\mu \mathbf{\omega}^\mu$$.

We can now evaluate any functional (covariant vector) applied to any vector (contravariant vector). If $$\mathbf{\sigma} \in V^*$$ and $$\mathbf{v} \in V$$, then by linearity $$\mathbf{\sigma} (\mathbf{v}) = \sigma_\alpha \mathbf{\omega}^\alpha (v^\beta \mathbf{e}_\beta) = \sigma_\alpha v^\beta \mathbf{\omega}^\alpha (\mathbf{e}_\beta) = \sigma_\alpha v^\beta \delta_\beta^\alpha = \sigma_\alpha v^\alpha$$. Finally, if we define $$\mathbf{e}_\alpha (\mathbf{\omega}^\beta) = \delta_\alpha^\beta$$, we see that $$\mathbf{v} (\mathbf{\sigma}) = \mathbf{\sigma} (\mathbf{v})$$.


text:
Managerial Economics/Cash Flow

The basics of cash flow can be summed up by the concept of time value of money. This concept is the idea that having money now is better than money in the future, since you can spend it or put it to use. As a result you should be compensated for the time you do not have the use of your money. To make equivalent the differences in time we use a flip sided principle knows as discounting (bringing future cash flows to the present) or income (taking present values to the future). The rate of change required to make cash flows equivalent over time periods is known as the discount rate (both i d and r are common variables for the discount rate, although i is usually reserved for inflation). This rate can change with time or for different people. Imagine how high your discount rate would be if you had won a large cash prize in a radio contest, but had to phone the station within a minute and had no quarters.

The time that cash flows are discounted to sets a frame of reference for series of cash flows. This time is usually known as t0 pronounced "t not." While any frame of reference can be chosen the most common reference time is now. In retirement problems the frame of reference can be the date of retirement.

The basic cash flow equation is FV=PV*(1+r)^t, where FV is the future value (time at some future time), PV is the present value (value at t0, r is the discount (interest) rate, and t is the time between the future value and present value. The units of time do not matter, but must be the same as the period rate in which r is quoted.  Both are usually in annual terms.

An example of this is the future value of $100 in one year with a discount rate of 5%. To solve this problem you would evaluate the following statement: FV=$100*(1+0.05)^1 FV=$100*1.05 FV=$105

See that was pretty easy wasn't it. All of finance can be summed up with variants of that basic formula.

According to this principle, if a decision affects costs and revenues in long-run, all those costs and revenues must be discounted to present values before valid comparison of alternatives is possible. This is essential because a rupee worth of money at a future date is not worth a rupee today. Money actually has time value. Discounting can be defined as a process used to transform future dollars into an equivalent number of present dollars. For instance, $1 invested today at 10% interest is equivalent to $1.10 next year.

title: Managerial Economics/Cash Flow


text:
Serial Programming/Introduction and OSI Model

Introduction
Welcome to the wonderful world of serial data communications. This is a part of a series of articles that will cover many aspects of serial data communications. We begin with fundamentals and follow a layered approach. By the end of the book, the reader should be able to transfer almost any data over wires between computers. Some forms of wireless communication will also be addressed.

There are so many aspects about this subject that sometimes it is a very hard nut to crack. I'm going to dive down and try to start with the basics and introducing the RS-232 serial data communications standard.

Why Serial Communication?
First of all, the basic standards that will be described here are, from the perspective of computer technology, positively ancient. Some of you reading this could perhaps find your grandparents or even great-grandparents using this protocol when they were in College. At the same time, it is so solid in concept that the reason for abandoning it should always be questioned. Indeed, there have been several other data transmission methods that have been developed since the RS-232 serial data protocol was established, but this workhorse is still widely used and seems to go through a rebirth every once in a while.

Serial communication means transmission of one bit at a time. It could be compared against parallel communication where multiple bits are transmitted in parallel at a time. Parallel communication enable higher speed of communication than serial communication but requires more data wires than serial communication which only requires one data wire.

When all else fails, RS-232 serial communication can be relied upon. When you are trying to get two pieces of computer equipment together, sometimes newer communications methods have hard limitations that can't be worked out due to number of connections, RF interference, distance limitations, being behind physical barriers, in sensitive areas like medical equipment where stray voltages can be a problem, or that you absolutely need to rely upon the data being transmitted. A sister protocol to RS-232, the RS-422 protocol, even allows transmissions for several miles of cable.

Serial data communication is widely implemented. While it is sometimes presumed that a PC can deal with just about any problem you want to throw at it, there are a number of electronic devices that are full of data which needs to be recorded. In part because of the age of this protocol, there are many legacy devices that have RS-232 serial data as the only access to the outside world. But even many of the latest network devices have RS-232 "console" ports to facilitate initial configuration and provide a means of troubleshooting when the network itself is broken. Because the hardware is so widely implemented and available, together with many software tools, it is also relatively cheap to develop equipment and software using this system. Particularly when transmission speed isn't important, but data needs to be sent on a regular basis. RS-232 serial data is a very reasonable solution instead of a more expensive 10BASE-T TCP/IP solution or high-speed fiber optics.

Serial data communication is also versatile. While the usual method of transmission is over copper wires between two fixed points, recently there have been some converters that transmit serial data over fiber optic lines, wireless transmitters, USB devices, and even over TCP/IP networks. What is really surprising here is that all of these transmission methods are totally transparent to the device receiving or transmitting the serial data. It can also be a carrier for TCP/IP, and be used for private networks.

OSI Layered Network Communications Model
While serial data communication is not strictly a network communication protocol, it is still important to understand the layered communications model when dealing with any sort of communications protocols. Often people implementing serial data software have to build multiple layers of this model, even if they are not totally aware of it when they are doing it at the time.

Network Layers:

 * 1) Application
 * 2) Presentation
 * 3) Session
 * 4) Transport
 * 5) Network
 * 6) Data-Link
 * 7) Physical

Often serial data communication does not implement all of these different layers, and even more often these different layers are combined in the same module or even the very same function. This model was originally developed by the International Organization for Standards (ISO) in 1984 to help give a good idea of where different networking structures could be separated and intermingled. The point here is to know that you can separate different parts of communications sub-systems to help with the debugging process, and to move structures from one sub-system to another.

If your software is well written using a model similar to this one, the software subroutines in layers above and below do not have to be rewritten if the module at a particular layer is changed. To achieve this you need to establish strong standards for the interface between the layers, which will be covered in other sections of these articles. For example, a web browser does not need to know if the HTML is being sent over fiber optic cables, wireless transmissions, or even over a serial data cable.

Serial Communication Layers
For serial data communication, I see this layer model as more common:

 * 1) Serial data applications
 * 2) Serial networks
 * 3) Packet challenge/verification
 * 4) Basic serial packets
 * 5) UART processing
 * 6) Raw RS-232 signals

In the case of many serial data applications, not all of these layers are implemented. Often it is just raw packets being transmitted in one direction, but sometimes even just a signal of any kind can indicate some action take place on a computer, regardless of content. It is possible to simply take the logic level of a raw RS-232 signal in your software, but at some point the data does need to be converted and the voltages involved with RS-232 can damage hardware, so this is very seldom done.

Software Examples
I don't want to get into a holy war over programming languages with this series of articles. For the moment, I'm going to be using Turbo Pascal and Delphi as the programming languages, if for no other reason then the fact that I am most comfortable programming in this development environment. If a good C/C++ guru would like to "translate" these routines, I would welcome that, as well as other programming languages where applicable. Serial communication is complicated enough so please avoid esoteric languages like Intercal or Malbolge. A good BASIC implementation would be welcome, as would LISP. I'll try to avoid language-specific features and simply deal with functions in a generic sense, which good programmers should be able to translate to the language of their choice.

These articles are meant to teach you the basics of serial data communication, not to be a functioning serial data driver. Still, all code examples will be checked and sent through an actual compiler before being listed in the articles, and hopefully fully debugged. There is no one single way to accomplish these steps and tasks, so I am going to encourage a hands-on approach to dealing with software and setting up networks.

While I've had quite a bit of experience in dealing with several serial data protocols (on the packet level), I am by no means the topmost expert at this. As I said earlier, I have considerable experience in dealing with communications at many levels, and I'd like to share some of my very hard-won knowledge.

Applications in Education
While I am only a Software Engineer and don't have the "formal" credentials necessary for making an educational textbook, I do believe that there is much that could be taught about computer networking by students experimenting with serial data communication. The audience that I am aiming for with these articles are the High School hackers/computer geeks and undergraduate CS majors. A High School teacher that wanted to tackle a subject like this, or if you wanted to cover a special topic course in a university setting where students could get some very hands-on experience with communications protocols. Every layer of the OSI model could be demonstrated in a manner that students would learn from first-hand experiences why certain rules/systems have been implemented on the Internet, what standards documents mean, and perhaps even participate in creating standards documents.

If you are a professor or High School instructor interested in using this text, I would be particularly interested in adapting this text to better suit your needs, or working with you in covering this subject.

From a professional perspective, this is a topic that is seldom taught at a university, and usually only in passing when they are rushing through a whole bunch of other protocol suites. Software developers are usually introduced to this topic by having their supervisor dump a bunch of specification documents on their desk, a driver disk with API documentation, and perhaps a typically short deadline in order to get something working that should have been working sometime last year. Software developers who really understand serial data communication are worth gold, and often even these developers only learn just enough to get the immediate job done.

I've also found that skills learned from developing serial data communications also translate into other projects and give a deeper understanding of just about any data transmission system. In addition to the other groups I mentioned, I am also aiming for those unfortunate software engineers who are trying to learn just about anything about this very difficult subject and don't know where to begin. Documentation about serial communication is sparse, and sometime contradictory.

This doesn't have to be that complicated of a subject, and it is possible for mere mortals to be able to understand how everything works.

External Links / References

 * Cisco explanation of the OSI model(Page Removed)
 * University of Indiana / Unix Support Group explanation of OSI(Page Removed)
 * ISO catalog of OSI standards(Page Removed)


text:
Statistics/Summary/Variance

Measure of Scale
When describing data it is helpful (and in some cases necessary) to determine the spread of a distribution. One way of measuring this spread is by calculating the variance or the standard deviation of the data.

In describing a complete population, the data represents all the elements of the population. As a measure of the "spread" in the population one wants to know a measure of the possible distances between the data and the population mean. There are several options to do so. One is to measure the average absolute value of the deviations. Another, called the variance, measures the average square of these deviations.

A clear distinction should be made between dealing with the population or with a sample from it. When dealing with the complete population the (population) variance is a constant, a parameter which helps to describe the population. When dealing with a sample from the population the (sample) variance is actually a random variable, whose value differs from sample to sample. Its value is only of interest as an estimate for the population variance.

Population variance and standard deviation
Let the population consist of the N elements x1,...,xN. The (population) mean is:

 * $$\mu = \frac 1N \sum_{i=1}^Nx_i$$.

The (population) variance σ2 is the average of the squared deviations from the mean or (xi - μ)2 - the square of the value's distance from the distribution's mean.

 * $$\sigma^2 = \frac 1N \sum_{i=1}^N (x_i - \mu)^2$$.

Because of the squaring the variance is not directly comparable with the mean and the data themselves. The square root of the variance is called the Standard Deviation σ. Note that σ is the root mean squared of differences between the data points and the average.

Sample variance and standard deviation
Let the sample consist of the n elements x1,...,xn, taken from the population. The (sample) mean is:

 * $$\bar{x} = \frac 1n \sum_{i=1}^nx_i$$.

The sample mean serves as an estimate for the population mean μ.

The (sample) variance s2 is a kind of average of the squared deviations from the (sample) mean:

 * $$s^2 = \frac 1{n-1} \sum_{i=1}^n (x_i - \bar{x})^2$$.

Also for the sample we take the square root to obtain the (sample) standard deviation s

A common question at this point is "why do we square the numerator?" One answer is: to get rid of the negative signs. Numbers are going to fall above and below the mean and, since the variance is looking for distance, it would be counterproductive if those distances factored each other out.

Example
When rolling a fair die, the population consists of the 6 possible outcomes 1 to 6. A sample may consist instead of the outcomes of 1000 rolls of the die.

The population mean is:

 * $$\mu = \frac 16 (1+2+3+4+5+6) = 3.5$$,

and the population variance:

 * $$\sigma^2=\frac 16 \sum_{i=1}^n (i-3.5)^2=\frac 16(6.25+2.25+0.25+0.25+2.25+6.25)=\frac {35}{12} \approx 2.917$$

The population standard deviation is:
 * $$\sigma = \sqrt{\frac {35}{12}} \approx 1.708$$.

Notice how this standard deviation is somewhere in between the possible deviations.

So if we were working with one six-sided die: X = {1, 2, 3, 4, 5, 6}, then σ2 = 2.917. We will talk more about why this is different later on, but for the moment assume that you should use the equation for the sample variance unless you see something that would indicate otherwise.

Note that none of the above formulae are ideal when calculating the estimate and they all introduce rounding errors. Specialized statistical software packages use more complicated logarithms that take a second pass of the data in order to correct for these errors. Therefore, if it matters that your estimate of standard deviation is accurate, specialized software should be used. If you are using non-specialized software, such as some popular spreadsheet packages, you should find out how the software does the calculations and not just assume that a sophisticated algorithm has been implemented.

For Normal Distributions
The empirical rule states that approximately 68 percent of the data in a normally distributed dataset is contained within one standard deviation of the mean, approximately 95 percent of the data is contained within 2 standard deviations, and approximately 99.7 percent of the data falls within 3 standard deviations.

As an example, the verbal or math portion of the SAT has a mean of 500 and a standard deviation of 100. This means that 68% of test-takers scored between 400 and 600, 95% of test takers scored between 300 and 700, and 99.7% of test-takers scored between 200 and 800 assuming a completely normal distribution (which isn't quite the case, but it makes a good approximation).

Robust Estimators
For a normal distribution the relationship between the standard deviation and the interquartile range is roughly: SD = IQR/1.35.

For data that are non-normal, the standard deviation can be a terrible estimator of scale. For example, in the presence of a single outlier, the standard deviation can grossly overestimate the variability of the data. The result is that confidence intervals are too wide and hypothesis tests lack power. In some (or most) fields, it is uncommon for data to be normally distributed and outliers are common.

One robust estimator of scale is the "average absolute deviation", or aad. As the name implies, the mean of the absolute deviations about some estimate of location is used. This method of estimation of scale has the advantage that the contribution of outliers is not squared, as it is in the standard deviation, and therefore outliers contribute less to the estimate. This method has the disadvantage that a single large outlier can completely overwhelm the estimate of scale and give a misleading description of the spread of the data.

Another robust estimator of scale is the "median absolute deviation", or mad. As the name implies, the estimate is calculated as the median of the absolute deviation from an estimate of location. Often, the median of the data is used as the estimate of location, but it is not necessary that this be so. Note that if the data are non-normal, the mean is unlikely to be a good estimate of location.

It is necessary to scale both of these estimators in order for them to be comparable with the standard deviation when the data are normally distributed. It is typical for the terms aad and mad to be used to refer to the scaled version. The unscaled versions are rarely used.

title: Statistics/Summary/Variance


text:
Evolutionary Biology/Evolution before Darwin

 * 1) Carl Linnaeus
 * 2) James Hutton
 * 3) Jean-Baptiste Lamarck
 * 4) Thomas Malthus
 * 5) Georges Cuvier
 * 6) Charles Lyell


text:
Statistics/Displaying Data/Histograms

Histograms
It is often useful to look at the distribution of the data, or the frequency with which certain values fall between pre-set bins of specified sizes. The selection of these bins is up to you, but remember that they should be selected in order to illuminate your data, not obfuscate it.

A histogram is similar to a bar chart. However histograms are used for continuous (as opposed to discrete or qualitative) data. The defining property of a histogram is:
 * The area of each bar is proportional to the frequency.

If each bin has an equal width, then this can be easily done by plotting frequency on the vertical axis. However histograms can also be drawn with unequal bin sizes, for which one can plot frequency density. To produce a histogram with equal bin sizes:

 * Select a minimum, a maximum, and a bin size. All three of these are up to you. In the histogram data used above the minimum is 1, the maximum is 110, and the bin size is 10.
 * Calculate your bins and how many values fall into each of them. For the histogram data the bins are:
 * 1 ≤ x < 10, 16 values.
 * 10 ≤ x < 20, 4 values.
 * 20 ≤ x < 30, 4 values.
 * 30 ≤ x < 40, 2 values.
 * 40 ≤ x < 50, 2 values.
 * 50 ≤ x < 60, 1 values.
 * 60 ≤ x < 70, 0 values.
 * 70 ≤ x < 80, 0 values.
 * 80 ≤ x < 90, 0 values.
 * 90 ≤ x < 100, 0 value.
 * 100 ≤ x < 110, 0 value.
 * 110 ≤ x < 120, 1 value.
 * Plot the counts you figured out above. Do this using a standard bar plot.

Worked Problem
Let's say you are an avid roleplayer who loves to play Mechwarrior, a d6 (6 sided die) based game. You have just purchased a new 6 sided die and would like to see whether it is biased (in combination with you when you roll it).

What We Expect
So before we look at what we get from rolling the die, let's look at what we would expect. First, if a die is unbiased it means that the odds of rolling a six are exactly the same as the odds of rolling a 1--there wouldn't be any favoritism towards certain values. Using the standard equation for the arithmetic mean find that μ = 3.5. We would also expect the histogram to be roughly even all of the way across--though it will almost never be perfect simply because we are dealing with an element of random chance.

What We Get
Here are the numbers that you collect:

Analysis

 * $$\bar{X} = 3.71$$

Referring back to what we would expect for an unbiased die, this is pretty close to what we would expect. So let's create a histogram to see if there is any significant difference in the distribution.

The only logical way to divide up dice rolls into bins is by what's showing on the die face:

If we are good at visualizing information, we can simple use a table, such as in the one above, to see what might be happening. Often, however, it is useful to have a visual representation. As the amount of variety of data we want to display increases, the need for graphs instead of a simple table increases.

Looking at the above figure, we clearly see that sides 1, 3, and 6 are almost exactly what we would expect by chance. Sides 4 and 5 are slightly greater, but not too much so, and side 2 is a lot less. This could be the result of chance, or it could represent an actual anomaly in the data and it is something to take note of keep in mind. We'll address this issue again in later chapters.

Frequency Density
Another way of drawing a histogram is to work out the Frequency Density.

 * Frequency Density: The Frequency Density is the frequency divided by the class width.

The advantage of using frequency density in a histogram is that doesn't matter if there isn't an obvious standard width to use. For all the groups, you would work out the frequency divided by the class width for all of the groups.

External Links
 * Interactive Java-based Bar-Chart Applet

Return to Statistics.

title: Statistics/Displaying Data/Histograms