text:
Introduction to Programming

/Components of a computer/
The following sections will introduce various concepts in computer programming. There are some simplifications in the explanations below. Don't take anything too literally.

Programming Languages
The purpose of programming is to tell the computer what to do. Computers are better at doing some things than you are, like a chef is better at cooking than you are. It's easier to tell a chef to cook you a meal than to cook it yourself. The more precise you are in your request, the more your meal will turn out how you like it. In most scenarios like this in real life, small amounts of ambiguity and misinterpretation are acceptable. Perhaps the chef will boil your potato before mashing it instead of baking it. With computers, however, ambiguity is rarely acceptable. Programs are so complex that if the computer just guessed at the meaning of ambiguous or vague requests, it might cause problems so subtle that you'd never find them. Programming languages, therefore, have been designed to accept only completely clear and unambiguous statements. The program might still have problems, but the blame is then squarely on you, not on the computer's guess. Much of the difficulty in programming comes from having to be perfectly precise and detailed about everything instead of just giving high-level instructions.

Some languages require total and complete detail about everything. C and C++ are such languages, and are called low-level languages. Other languages will make all sorts of assumptions, and this lets the programmer specify less detail. Python and Basic are such languages, and are called high-level languages. In general, high-level languages are easier to program but give you less control. Control is sometimes important, for example if you want your program to run as quickly as possible. Most of the time total control and speed aren't necessary, and as computers get faster high-level languages become more popular. Here we will deal exclusively with high-level languages. Low-level languages are generally similar except there's often more lines of code to write to accomplish the same thing.

Statements
Most programming languages have the concept of a statement. A statement is a command that the programmer gives to the computer. For example:

print "Hi there!"

This command has a verb ("print") and other details (what to print). In this case, the command print means "show on the screen," not "print on the printer." The programmer either gives the statement directly to the computer (by typing it while running a special program), or creates a text file with the command in it. You could create a file called "hi.txt" using a program like Notepad, put the above command in it, and give the file to the computer. (The details of how to do all this are language- and system-specific, so they won't be covered here. This is just an introduction to the concepts.)

If you have more than one command in the file, each will be performed in order, top to bottom. So the file could contain:

print "Hi there!" print "Strange things are afoot..."

The computer will perform each of these commands sequentially. It's invaluable to be able to "play computer" when programming. Ask yourself, "If I were the computer, what would I do with these statements?" If you're not sure what the answer is, then you are very likely to write incorrect programs. Stop and check the manual for the programming language you're using.

In the above case, the computer will look at the first statement, determine that it's a print statement, look at what needs to be printed, and display that text on the computer screen. It'll look like this:

Hi there!

Note that the quotation marks aren't there. Their purpose in the program is to tell the computer where the text begins and ends, just like in English prose. The computer will then continue to the next statement, perform its command, and the screen will look like this:

Hi there! Strange things are afoot...

When the computer gets to the end of the text file, it stops and waits for further instructions. There are many different kinds of statements, depending on which programming language is being used. For example, there could be a beep statement that causes the computer to output a beep on its speaker, or a window statement that causes a new window to pop up.

Also, the way statements are written will vary depending on the programming language. The programming language Python uses statements that look like the above. In C you would write:

puts("Hi there!"); puts("Strange things are afoot...");

Note a few differences: These differences are fairly superficial. The set of rules like the first two is called a programming language's syntax. The set of verbs is called its library.
 * 1) The parameters (the text in quotation marks that print uses to determine what to display) are surrounded by parentheses.
 * 2) Each statement is terminated by a semicolon.
 * 3) The verb print is called puts, for "put string".  The word string is the computer term for some text.  It comes from "a string of letters."  The "put" means "put on the screen."

Syntax
All computer languages have syntax, rules to create proper statements, just like natural languages do. For example, most sentences are ended with a full stop or a period. Likewise it is common for statements in source code to be ended with a semicolon, but many languages do not have this requirement so it is important to know the syntax of the language you are programming in. For example, if you wanted the computer to display two different things you could write:

print "I have a dog. His name is Bort."

or you could write:

print "I have a dog. " + "His name is Bort."

The second example has two strings, each enclosed in quotation marks. There's a plus (+) sign in between them, which means, "Attach the two strings together, turning them into a single string." (Attaching two strings is called concatenation.) The two above statements will display the same thing:

I have a dog. His name is Bort.

In the above examples there's no reason why you'd use a <tt>+</tt> and two strings when you could just use a single string, as in the first example, but below there will be cases where concatenation of strings is necessary. The languages Python and Java use plus (<tt>+</tt>) for string concatenation, Perl and PHP use the period (<tt>.</tt>), and Visual Basic uses ampersand (<tt>&</tt>). Again, these differences are superficial; what's important is the concept of string concatenation and of language syntax to do things like concatenation. Separate in your mind an underlying concept and a particular language's way of expressing that concept.

When programs are compiled, or converted into an executable program, they are analyzed by a parser, the equivalent of a proofreader, to determine if the syntax is correct. Assuming the program's source code is syntactically correct, the compiler will continue to analyze the source code to determine if there are any semantical errors.

Semantics
Semantics refers to the meaning or logic of a computer program. Two syntactically correct statements can make perfect sense by themselves, but they may not make sense when placed next to each other. Sometimes these flaws in logic can be detected by the compiler, what is known as a compile-time error, but typically these errors surface when the program is executed, known as run-time errors.

Observe the following conversation: Alice: Terrible news. Carl's wife was in a car accident. Bob: Oh, that is terrible. Send some nice flowers and get everyone to sign a card. Alice: Sure. Oh, and Dan called in sick again. Bob: Not again. Send him a pink slip. The conversation makes perfect, logical sense. This conversation shows a good, consistent use of semantics.

Now observe this conversation: Alice: Terrible news. Carl's wife was in a car accident. Bob: Not again. Send him a pink slip. Alice: Sure. Oh, and Dan called in sick again. Bob: Oh, that is terrible. Send some nice flowers and get everyone to sign a card. Although this conversation contains the exact same sentences as the previous one, it has a very different meaning. A human may be able to bend the rules of grammar and structure to determine the intended meaning of a conversation, but computers are not as flexible. Therefore, it is important to use proper syntax and use good semantics in order to properly convey to the computer what you want it to do. Understand though, that the first conversation could have been rearranged and still have the same meaning or different sentences could have been used to convey the same idea. In that sense there can be many different ways to write the same program.

Variables
Say you had a program that talked about your dog. It might look like this:

print "I have a dog. It is called Bort." print "Bort likes to eat dog food." print "My children and Bort get along very well." print "My dog Bort barks at my neighbor, whose name is also Bort."

You might go on like this for a while, asking the computer to display many such interesting things about your dog. If, one day, you changed your dog's name, or instead wanted to talk about your other dog, or gave this program to a friend and they wanted to change it to refer to their own dog, you'd have to go through the whole program and change every occurrence of "Bort" to the new name. You could use your text editor's search-and-replace feature to do this, but doing so is tedious and you might make mistakes. For example, you might accidentally replace the neighbor's name when you only intended to change the dog's name.

Programming languages solve this problem by allowing you to write the dog's name only once and then refer to it using a label. This is a bit like using pronouns in natural languages. So you could write:

dog = "Bort"

If you're "playing computer" and get to the above statement, you'll think, "Remember the string "Bort", and whenever the word dog is used, substitute the word "Bort"." This is called an assignment statement because you're assigning meaning to the word dog. A subsequent statement could say:

print dog

Note that there are no quotation marks here. You don't literally want to print the word "dog", you want the computer to remember the string it had previously associated with that word. It's a bit like the distinction between saying "He said his age" and "He said, 'his age'." In the first case it's a number and in the second it's the words "his age". The word dog is a variable. It's a symbol that the computer associates with something else, in this case the word "Bort". Our original program can now be written as:

print "I have a dog. It is called " + dog + "." print dog + " likes to eat dog food." print "My children and " + dog + " get along very well." print "My dog " + dog + " barks at my neighbor, whose name is Bort."

Note that string concatenation (using the plus sign) was necessary here, since sometimes we wanted to use quotation marks (to mean literal text) and sometimes we didn't (to refer to the variable). The computer will see a statement like:

print dog + " likes to eat dog food."

and first substitute the word dog with the string "Bort":

print "Bort" + " likes to eat dog food."

then concatenate the strings:

print "Bort likes to eat dog food."

then perform the statement, displaying this on the screen:

Bort likes to eat dog food.

Note also that the name of the neighbor was not replaced by a reference to dog. The variable dog refers to the name of the dog. That's the whole point of using the variable: to keep track of a specific concept. You could have a different variable to keep track of the neighbor's name:

neighbor = "Bort"

and change the last line of our program to:

print "My dog " + dog + " barks at my neighbor, whose name is " + neighbor + "."

That way you can change the name of your dog or your neighbor easily at the top of the file and the rest of the program will run correctly. I removed the word "also" from the line since, now that we're using variables, I can no longer be sure that the two names are the same. I wouldn't want to change one of the two and have my program still display the word "also" there. Later we'll see a way of displaying the word "also" only if the two names are the same.

It's important to remember two things about variables. Firstly, a variable must be set before it is used. So you must write:

dog = "Bort" print dog

and not:

print dog                            (Wrong!) dog = "Bort"

Remember when "playing computer" that you must look at each statement individually and in order from top to bottom. In the second example above you would first get to the "print dog" statement and have no idea what the variable dog was referring to. Different languages react differently when they run into this problem. Some just assume the variable is an empty string (""), but most stop the program and report the error.

Secondly, when you're "playing computer" and see the second line of the correct program:

dog = "Bort" print dog

it's very important that you don't "go back up" to the first line to see what dog refers to. The first line is long gone. You can only look at one line at a time, and always sequentially. The first line makes a note somewhere (in memory) that dog refers to "Bort", but then the line itself is left behind and forgotten. The second line checks memory and gets the variable's meaning there, not from the first line directly. This may seem like a trivial distinction, but we'll use variables in more sophisticated ways later and it won't work to "go back up" to find where a variable was set; you'll need to think of the variable and its value as being stored in memory.

The word variable implies that variables can change, and indeed they can. You could write the following program:

dog = "Bort" print "My first dog was called " + dog + "." dog = "Milou" print "And my second dog was called " + dog + "."

The computer will see the first line, associate the string "Bort" with the variable dog, use that string in the second line, change the association of the variable dog to "Milou" in the third line, and use the new association in the fourth. In memory the variable dog can only be associated with one string. The third line above replaces the old association with the new. The second and fourth lines look into memory to see what that association is, and at each statement the value is different because the value in memory is different at that point in the program's execution. You'll see:

My first dog was called Bort. And my second dog was called Milou.

Math
When the computer sees a mathematical expression, it performs the arithmetic automatically. For example, you can write:

print 5 + 6

Note again that there are no quotation marks. If there were, the computer would take that literally and print "5 + 6". The plus sign is called an operator because it performs operations on other values. When the computer sees the above line, it will perform the arithmetic and get:

print 11

Executing the statement will just print the number:

11

Note that the following two statements will display the same thing:

print 11 print "11"

except that in the first case the computer knows it's a number, whereas in the second case it's just a string. Sometimes that distinction matters, but we can ignore it for now. The math can get pretty complicated:

print (5 + 12) * 9 / 14

The computer would perform the arithmetic step by step, just like you would in your head. It would first do the addition, since it's in parentheses:

print 17 * 9 / 14

Then the multiplication, since it's on the left:

print 153 / 14

Then the division:

print 10

And you'd see this if you ran the original line:

10

Note that 153 divided by 14 is actually something like 10.928, but the computer printed the round number below the real value. That's because there are two kinds of numbers most languages deal with: integers and reals. Integers are round numbers, like the ones above. Reals are numbers with a decimal point, like 10.928. When the computer sees an expression using entirely integers, it keeps using integers to do the math, even if the result really should be a real. Had we written:

print (5.0 + 12.0) * 9.0 / 14.0

then the computer would have performed the math using reals and we would have seen something like this printed:

10.9285714286

This is a quirky result of the historical development of computers. It can lead to bizarre results, like this line:

print 1 / 2

displaying "0" instead of the expected "0.5". There are times when the current behavior is desirable, but often it's not and you should keep the distinction between integers and reals in mind. Also note that the above rules about integers and reals apply to most commonly-used programming languages, but each language is free to make up its own rules for dealing with numbers, and you may one day use a language that does things differently, such as making "1 / 2" result in "0.5".

Variables can be used to refer to numbers as well as strings. You could write:

x = 5 print x

to print "5". Or you could write:

age = 33 print age * 2

to find out twice your age. Again here the first line creates in memory an association between the variable whose name is age with the number 33. The second line looks into memory, grabs the number associated with age, and performs the arithmetic. Note that the first line is not algebra. It's not an equation that makes age and the number 33 the same. It's an assignment of the value 33 to the variable age. The distinction is important when you see a line like:

x = x + 5

The above line is impossible in algebra. The value of x cannot be equal to the value of x plus five. But in a programming language, the line reads as, "Find the value of the variable x in memory, add 5 to it, then associate the result with the variable x." The fact that x is used both in the math expression on the right of the equal sign and as the place to store the results is irrelevant. Its value is used in the math expression before the result is stored back into the variable. Here's another example:

x = 5 y = x + 2 print x   print y

You'll get:

5   7

But now if you write:

x = 5 y = x + 2 x = 10 print x   print y

You'll get:

10   7

Go through each line and "play computer" to convince yourself of why the above would behave this way. Use a piece of paper to keep track of the x and y variables if you need to. If the above isn't clear, stop and re-read this section or the one on variables. This is a very common stumbling block for new programmers.

You might have noticed that we use the plus (<tt>+</tt>) symbol to mean both "string concatenation" and "numerical addition". This is fine and usually clear, but what should the computer do with a statement like this:

print "5" + 6

Should the numbers 5 and 6 be added to yield 11? Should the string "5" be concatenated with the string "6" to yield "56"? Should the computer stop and report an error? Each language deals with this ambiguity in different ways. In Python, the above line would be an error. You'd have to explicitly tell the computer which interpretation you wanted. In Java the "6" would be turned into a string, resulting in the string "56". In Perl, PHP, and Visual Basic the string concatenation operator is not plus, it's period for Perl and PHP and ampersand in Visual Basic, so it's always clear what needs to be done based on which operator is used.

Conditionals
Say we had a simple program that displayed your age:

age = 25 print "You are " + age + " years old."

If you ran this program it would display:

You are 25 years old.

Next year you could change the first line to "age = 26" and the program's output would update appropriately. In fact you could give this program to anyone and they could modify the first line so that the second line would print the right age. Once you turned 30 you might want to modify it like this:

age = 30 print "You are " + age + " years old." print "Your warranty has expired!"

That would work fine, except that if you now gave it to someone who was 25 they would not only have to modify the first line but remember to remove the third line. But why force a human to remove the third line? The computer should be able to automatically display or not display the third line depending on the value of age. We can use an "if" statement to tell the computer to do just that:

age = 30 print "You are " + age + " years old." if age > 29: print "Your warranty has expired!"

Again let's "play computer": when you get to the third line, you look at the word age, realize it's a variable, and get its value (30) from memory (it was stored there on line 1):

if 30 > 29:

This line says, "If 30 is greater than 29, perform the statements that are indented. If not, skip the indented statements." Since 30 is greater than 29, the indented statements are performed and the joke is displayed on the screen. If a friend changes the first line to "age = 25", the third line will compare 25 to 29, and since 25 is not greater than 29, the fourth line will be skipped.

This is a conditional. Whether the fourth line is run is conditional on the math expression on the third line. That expression could be more complex, such as:

if age >= 40 and age < 50: print "You are in your forties."

The <tt>>=</tt> symbol means "greater than or equal to". Here the "print" line won't get run unless the age is between 40 and 49. You can also put more than one indented statement:

if age >= 50 and age < 60: print "You are in your fifties." print "Mid-life crisis yet?"

If the person's age is between 50 and 59, both lines will be displayed; otherwise neither will. Now notice that if the age of the user is 1, the second line of our original program will display a grammatical error:

You are 1 years old.

That should be "year", not "years". We can use a conditional to fix this bug:

age = 25 if age == 1: print "You are " + age + " year old." if age != 1: print "You are " + age + " years old."

The <tt>==</tt> means "is equal to". There are two equal signs in order to differentiate it from an assignment statement, which uses a single equal sign (as in the first line of our program). This is related to what we wrote above about computer languages always wanting to be perfectly clear about what's intended. The <tt>!=</tt> means "not equal to". Think of the math symbol of the equal sign with a slash through it, then imagine the exclamation mark being that slash. Now if you set age to 1 you'll get this:

You are 1 year old.

Which is correct. If the age is not 1, then the first "print" will be skipped and the second will run, displaying the version of the text with a plural "years". It's fairly common to want to do one thing if a condition is true (such as "age == 1") and another if that condition is not true ("age != 1"). So computer languages have a shortcut to save you from having to retype a whole "if" statement with the inverse condition. You simply write this:

age = 25 if age == 1: print "You are " + age + " year old." else: print "You are " + age + " years old."

That means, "If age is 1, run the first print statement. If not (else), run the second print statement." Again you can have multiple statements in either the first section or the second:

age = 25 if age == 1: print "You are " + age + " year old." print "You're an infant!" else: print "You are " + age + " years old." print "You're not an infant."

Now you can give this program to someone else and they only need to change the first line to get a few lines of accurate text displayed about them. You can imagine that this can get arbitrarily complex, with very sophisticated conditions being tested. Consider this:

age = 25 if age == 1: print "You are " + age + " year old." print "You're an infant!" else: print "You are " + age + " years old." if age < 25: print "You're young." else: print "You're mature!"

This is called a "nested if". The second "if" (the one that compares age with 25) is nested (within) the first "if". Since it's indented, the second "if" will itself only be run if the first condition ("age == 1") is not true. If age is in fact 1, the first "print" will be run and the entire second section, including the second "if", will be skipped. So the program will display only one of "You're an infant!" or "You're young." or "You're mature!". You should "play computer" through this program with various values of age, such as 1, 5, 25, and 30.

Conditionals are extremely useful. In our example, it would have been possible (though inconvenient) for each person to add or remove "print" statements as they modified the age in the first line, but in reality the value for age would have come from elsewhere, such as a form or a database, and the program would have to run as-is, unmodified, and display the correct text for any value of age that it might get.

We can look at conditionals in C, again to show that basic concepts are available in different programming languages with only superficial differences:

if (age > 29) puts("Your warranty has expired!");

Note these differences: there are parenthese around the condition; "print" was replaced with "puts", as before; the text to display is surrounded by parentheses; and there's a terminating semicolon at the end of the "puts" statement. If you wanted to display more than one line, you'd have to write it like this:

if (age >= 50 && age < 60) { puts("You are in your fifties."); puts("Mid-life crisis yet?"); }

Note these two additional differences: the "and" has been replaced with "&&" in the condition; and there are braces around the pair of "puts" statements. In C (and languages derived from C, such as C++, Java, and C#), indentation is ignored, so the "if" statement will assume that only the very next statement will be conditionally run. If you want more than one statement, you have to group them with braces to tell the language that all of these are conditionally run. In our Python-like language above, indentation is used to tell which statements are under the control of the "if" and "else" lines.

Input
In the above examples, the age was placed right in the source code, on line 1:

age = 25

This is called hard-coding the age. The hard comes from the fact that once the program is written that way, the age is always 25. If the user wants to run the program with a different age, they need to change the source code. But that assumes that they understand programming. Since most users don't understand programming, we'd really like to simply ask the user their age so that they never need to see the source code at all.

We can use a line like this:

age = input

To input something means to put it into the computer. Output is the reverse, like the print statements we've been using.

So our program now looks something like:

print "What is your age?" age = input if age == 1: print "You are " + age + " year old." else: print "You are " + age + " years old."

When the user runs the program, instead of immediately seeing the "You are ..." text, they'll first see this:

What is your age?

and the system will appear to stop. The user will then be able to enter their age, press Enter, and the program will continue as it did before, with the variable age set to whatever number the user entered.

You may be curious about the set of parentheses after the word input. If you didn't have those, like this:

age = input

the word input would look a lot like a variable. Since computers always want to be completely clear about what needs to be done, we add parentheses to mean, "This isn't a variable, it's a command. Do something clever." <tt>input</tt> is actually a function. We'll cover functions later, but for now you can think of them as bits of code that do interesting things (like getting a number from the keyboard) and making some value available as a result (for assignment to age in this case). When the computer sees this line:

age = input

It first sees the function <tt>input</tt>, does the clever thing (gets a number from the keyboard), and replaces the function with the value that it got:

age = 25

(if the user typed 25). Then the assignment continues as it did before, storing the value 25 into memory and associating it with the word age.

Loops
Say we wanted to write a program that asked the user how many times they wanted a phrase repeated. (Yes, it really is necessary to have these silly examples. More realistic examples are often too complex to demonstate a single new concept.)

print "How many times?" count = input if count == 1: print "Are we there yet?" if count == 2: print "Are we there yet?" print "Are we there yet?" if count == 3: print "Are we there yet?" print "Are we there yet?" print "Are we there yet?" if count == 4: print "Are we there yet?" print "Are we there yet?" print "Are we there yet?" print "Are we there yet?"

If you run this program, the user will be asked "How many times?" and the computer will wait for an answer. The user can then type a number between 1 and 4 and the phrase "Are we there yet?" will be displayed that many times. There are several problems with this program. Firstly, it can at most handle a count of 4. If the user wants it displayed 5 times, the program must be extended to handle that case. Secondly, as the number of cases grows, it will be difficult to make sure that the program is correct. If you extend it all the way to, say, 20 times, it's difficult to check using your text editor that the case for 17 really has 17 lines in it. Perhaps you made an error and only cut-and-pasted the line 16 times. We could be clever and rewrite it like this:

print "How many times?" count = input if count >= 1: print "Are we there yet?" if count >= 2: print "Are we there yet?" if count >= 3: print "Are we there yet?" if count >= 4: print "Are we there yet?"

This is somewhat tricky, so it's important to follow the logic carefully, as the computer would. Let's say count is 3. The first "if" statement will check if 3 is greater than or equal to 1, and since it is, print the first phrase. The next "if" will compare count to 2, and print the second phrase. The same thing will happen when <tt>count >= 3</tt> is tested, since 3 is greater than or equal to 3. But the fourth test will not work, since 3 is not greater than or equal to 4. So the fourth phrase will not be displayed. The phrase will have been displayed 3 times (once for each of the first three "if" statements), which is what we wanted since count is 3.

This new way of writing the program is simpler to verify for correctness. We just need to make sure that each number in successive "if" statements is one more than the previous number. Since each "if" statement only prints a single line, we don't risk mis-counting the number of "print" lines as in the first example. But it's still somewhat tedious to extend the program to handle higher values of count. You have to cut-and-paste two lines and remember to increase the number in the "if" statement.

We could make that a little easier with this new version:

print "How many times?" count = input if count >= 1: print "Are we there yet?" count = count - 1 if count >= 1: print "Are we there yet?" count = count - 1 if count >= 1: print "Are we there yet?" count = count - 1 if count >= 1: print "Are we there yet?" count = count - 1

Now the program is more complicated, but each "if" statement is identical. That makes cutting and pasting much easier—we can simply hold down the Ctrl-V key and have a program that handles very large values of count. Here's how the new program works. The first "if" statement, as before, compares count to 1 and prints the phrase if count is greater than or equal to 1. But it also does something else: it decreases the value of count by one. This statement:

count = count - 1

does three things: it finds the value of count in memory, subtracts 1 from it, and puts the result back into memory, replacing the old value of count. So if count is 3, the count on the right side is replaced with its value:

count = 3 - 1

then the arithmetic is done:

count = 2

and the new value is stored into memory as before, replacing the 3 that was there. You may wonder why only the count on the right side of the equal sign gets replaced with its value, and not the left. Why doesn't the computer replace both words with the value 3, like this:

3 = 3 - 1

Obviously this wouldn't be very useful. The assignment statement only looks up the existing value of variables when they appear on the right of the equal (assignment) sign. The single variable on the left of the equal sign is used as-is to know what name to associate with the result of the arithmetic on the right.

So after the first phrase is displayed, count is decreased by one, and the next "if" is tested. It's the same test, comparing count with 1. Say that count is 3 initially. At the first "if" we'll see the phrase displayed and count will become 2. At the second "if" we'll see the phrase and count will become 1. At the third "if" we'll see the phrase and count will become 0. At the fourth "if" the test "0 >= 1" will not be true, so the phrase won't get displayed and count won't be decreased. No matter how many more "if" statements you have after that, the value of count will stay 0 and none of the <tt>print</tt> statements will run. You'll see the phrase three times, which is what we wanted since count was 3 originally.

Our program now has one final problem: no matter how many times we cut-and-paste these three lines, the user could always enter a number that's higher than that. You could have pasted the "if" statement 500 times, and if the user enters "510", your program will only display the phrase 500 times, once for each "if". The program will end with the variable "count" set to 10, since there are 10 more phrases to go, but the last 10 "if" statements won't be there.

We can fix this last problem with a loop, like this:

print "How many times?" count = input while count >= 1: print "Are we there yet?" count = count - 1

That's the entire program. Specifically, this is a while loop, because there are several different kinds. We removed all the "if" statements except one, and replaced the word if with the word while. It almost reads like an English sentence: "While count is greater than or equal to 1, print this phrase and decrease count by one." Let's "play computer" with count initially set to 3. The computer will get to the "while" statement, compare 3 to 1, see that 3 is greater than or equal to 1, display the phrase, decrease count by 1 (to 2), and loop back up to the while statement. Again the computer will compare count to 1, and since 2 is greater than or equal to 1, it will print the statement, decrease count to 1, loop back up, compare count with 1, and since 1 is greater than or equal to 1, display the phrase and decrease the variable count to zero. It will then loop back up to the "while" statement, compare count to 1, and since 0 is not greater than or equal to 1, the indented statement will not be run and the "while" loop will finish, moving on to the statements that follow. In this program there are no statements that follow, so the program will end. Each time through the loop is called an iteration.

There are several different types of loops. Which one to use depends both on what's available in the programming language you're using and which makes the most sense for what you're trying to do. For example, in the example above, we could print the value of count in each iteration, like this:

print "How many times?" count = input while count >= 1: print "Are we there yet?" print count count = count - 1

Running the program would look something like this (if the user typed "3" when asked):

How many times? 3                    (what the user types in) Are we there yet? 3   Are we there yet? 2   Are we there yet? 1

The numbers 3, 2, 1 are the values of count at each iteration. What if, instead, just wanted to count upwards? Or what if you didn't want to modify count, because you wanted to use it later on in the program? You could use a for loop, like this:

print "How many times?" count = input for i = 1 to count: print "Are we there yet?" print count

(Note: So far the language we've used for examples has been similar to the popular programming language Python. But Python has no such for loop.  The above syntax is based on the language Basic.)

This for loop means, "Run the indented statements once for each value between 1 and count, and set the variable i to that value." If the user enters 3 you'll see this:

How many times? 3                    (what the user types in) Are we there yet? 1   Are we there yet? 2   Are we there yet? 3

The 1, 2, 3 are the values of i at each iteration. Note that we no longer need to decrease the value of count in each iteration. The computer automatically increases i by 1 each iteration until it reaches count. In fact, count is unchanged after the loop finishes. This loop:

for i = 1 to count: print i

is essentially identical to this version:

i = 1 while i <= count: print count i = i + 1

The for loop is generally preferable to while loops when you want to cover a range of numbers. It's shorter and easier to read. The while loop, though, is more flexible since you're doing all the work yourself. You could increment i by 2 at each iteration to see only the odd numbers, or you could double the value of i to see all the powers of two:

print "What is the maximum?" maximum = input i = 1 while i <= maximum: print i       i = i * 2

What is the maximum? 128                    (what the user types in) 1   2    4    8    16    32    64    128

You can't do that with a simple for loop. Incidentally, in a for loop the starting and ending values (1 and count in our example) can actually be any pair of numbers. You could do:

for i = 20 to 24: print i

to display the values 20, 21, 22, 23, and 24. The variable i is used here, but any variable could be used. i is a commonly-used variable for for loops; it stands for index. You could also use a variable name that makes more sense in your particular context, such as:

for year = 1992 to 2004: print "The year is " + year

Another type of loop is the foreach loop. That's similar to the for loop except that the variable doesn't just go through a numerical range, it's actually set to each element in a set of numbers:

foreach year in [1992, 1996, 2000, 2004]: print "The " + year + " Olympic Games."

That also reads almost like an English sentence: "For each year in the set 1992, 1996, 2000, 2004, print this statement." (Note: Python does have such a for loop, except the word for is used instead of foreach.)

There are a few other types of loops, but they're usually variations on the above three types.

title: Introduction to Programming


text:
Jyrki Aimonen

Jyrki Martti Bertil Aimonen (19 April 1934 Ikaalinen – 20 July 2016 Helsinki) was a Finnish diplomat and ambassador

Aimonen's parents were physicians, Counselor of Medicine, Martti Bertil Aimonen and special teacher Anja-Ritva Mielikki Aimonen. Jyrki Aimonen graduated as an economist in 1955 and candidate of law in 1961.

Aimonen started in the Ministry for Foreign Affairs in 1961 and moved to the Finnish Embassy in Moscow in 1963, after which he served as Secretary in Ankara from 1965 to 1967. He returned to the Soviet Union as consul in the Leningrad Consulate General.

Aimonen was the Counselor in Moscow from 1974 to 1976. He served, among other things, as consular at the Finnish Embassy in Moscow. He served as the Head of the 1975 European Security and Cooperation Conference. He also served as Counselor in Copenhagen from 1970 to 1974.

Aimonen was the first Finnish Ambassador to Libya and in Malta from 1979 to 1983. After that he served as Ambassador to Syria, Jordan, Lebanon (1984–1988), India, Nepal  (1988–1991), Bangladesh, Sri Lanka (1988–1991)  and Bhutan    (1989–1991). Aimonen retired from his diplomatic post after serving as Ambassador to Poland from 1991 to 1995.

source: wikimedia

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

title: Jyrki Aimonen


text:
Wikipedia:Articles for deletion/Dujuan Thomas

The result was delete. Yunshui 雲 水 10:44, 30 September 2019 (UTC)

Dujuan Thomas

 * – ( View AfD View log  Stats )

Minor coverage related to two incidents he was involved in but only tabloid stuff afaict (he once accused Mel B of striking him). I cannot access ref #5 due to geoblocking but from GNews preview it does not look like much either. No significant coverage about him anywhere as far as I can tell, so fails WP:BIO and WP:GNG. Regards So  Why  08:41, 23 September 2019 (UTC)
 * Note: This discussion has been included in the list of People-related deletion discussions.  So  Why  08:41, 23 September 2019 (UTC)
 * Note: This discussion has been included in the list of Actors and filmmakers-related deletion discussions.  So  Why  08:41, 23 September 2019 (UTC)
 * Note: This discussion has been included in the list of Kentucky-related deletion discussions.  So  Why  08:41, 23 September 2019 (UTC)

Delete No significant coverage. Arthistorian1977 (talk) 09:23, 23 September 2019 (UTC)
 * Note: This discussion has been included in the list of Film-related deletion discussions.  CAPTAIN RAJU (T) 10:06, 23 September 2019 (UTC)
 * Note: This discussion has been included in the list of Photography-related deletion discussions.  CAPTAIN RAJU (T) 10:06, 23 September 2019 (UTC)
 * Note: This discussion has been included in the list of Fashion-related deletion discussions.  CAPTAIN RAJU (T) 10:06, 23 September 2019 (UTC)

Delete, I didn’t support this when it was an AFC submission, as it clearly failed WP:NACTOR/WP: ANYBIO, and I cannot see any significant improvements since then. IMDb is not an acceptable source and the other sources do not demonstrate significant coverage. Clear attempt to inflate the individual’s importance to something that it isn’t. Dan arndt (talk) 10:39, 23 September 2019 (UTC)

Do Not Delete - Wikipedia Notability ( people ) states that if any of the criteria is met that a person is notable. Dujuan does fit in as WP:ENT which states Actors, voice actors, comedians, opinion makers, models, and celebrities: as he clearly has notable works in film,print, runway modeling and online episodes as noted in IMDb ( a credible and only source that signifies actors as verified) he also has a large following (cult following) across his many platforms as refrenced. He also qualifies for Wp:Author which states The person has created or played a major role in co-creating a significant or well-known work or collective body of work. In addition, such work must have been the primary subject of an independent and notable work (for example, a book, film, or television series, but usually not a single episode of a television series) or of multiple independent periodical articles or reviews. Which he has produced and wrote a notable film. Should I Include more ? Because at this point I've covered several things that cover this individual.

Also So  there are actually hundreds of media outlets that covered the Mel B incident, such as MSN and Yahoo News. As well as the TV show I refrenced on the article, but I did not go into depth due to the allegations not being finalized in court. — Preceding unsigned comment added by Abbycarroll (talk • contribs) 12:42, 23 September 2019 (UTC)
 * Indeed, there are a number of sources that covered said incident (hardly hundreds though), however, all such coverage for Thomas boils down to "a male model" or "a male model says ...". It's not an in-depth coverage of Thomas himself and even if it were, it would fall under WP:BIO1E. Regards So  Why  17:13, 24 September 2019 (UTC)

 * Delete - we don't need blatent promotion of an absolute nobody thank you. This individual fails WP:ANYBIO and all applicable WP:SNG. Recomend WP:SALT. John from Idegon (talk) 17:14, 23 September 2019 (UTC)

WIKI HOUNDING (John from Idegon) you have wiki hounded me my entire time on wikipedia please refrain from blatant disrespect. I have given several reasons why this individual is notable and this is not a promotion. This article qualifies under WP:ENT & WP:AUTHOR Abbycarroll (talk) 18:46, 23 September 2019 (UTC)

Might I add as well in WP:Npossible it states "If it is likely that significant coverage in independent sources can be found for a topic, deletion due to lack of notability is inappropriate." Also stated in that articles says that reliable sources do not have to be in English if you do research, there are hundreds of Articles covering :Dujuan Thomas: across the world. Abbycarroll (talk) 19:29, 23 September 2019 (UTC)

 * Delete Other than the Mel B incident and his tangential involvement in a robbery, I find no significant coverage of Thomas as an entertainer or author or in any other capacity. There are no reliable sources to support notability for an encyclopedia article. Schazjmd   (talk)  20:26, 23 September 2019 (UTC)

(talk) Those are notable stories/coverage in accordance with Wiki. It states the articles content itself does not have to correlate to be notable.

The Television shows he was covered in also count as reliable sources. Dish Nation and Paducah2.

The Paducah2 source actually covered all of his work as an actor/writer and model. And his large following ( which counts as notable in accordance with WP:ENT

Abbycarroll (talk) 20:43, 23 September 2019 (UTC)
 * Delete per failing WP:NACTOR and blatant promotion.   Oshawott 12  ==== Talk to me!  02:37, 24 September 2019 (UTC)
 * Delete The article does not make a credible claim of notability, with a handful of very inconsequential achievements; sources don't amount to much. -Lopifalko (talk) 15:02, 24 September 2019 (UTC)
 * Delete - sources are other local and/or unreliable. He's met some famous people and talked to them. So have lots of student journalists and me and your cousin. Bearian (talk) 15:38, 24 September 2019 (UTC)
 * Delete:
 * No apparent significant news coverage from reliable sources outside of Mel B complaint (see "subjects notable only for one event").
 * No apparent significant secondary source coverage of his role as a "celebrity interviewer, model, actor, cinematographer, photographer, and business owner."
 * WP:NPOSSIBLE: "once an article's notability has been challenged, merely asserting that unspecified sources exist is seldom persuasive, especially if time passes and actual proof does not surface." – Archer1234 (talk) 16:05, 24 September 2019 (UTC)

 * Do Not Delete- The article does have credibility of notability from my research. WP:NACTOR is covered with his work in Film, and his social following. After reviewing his television appearances which are a credible source of his celebrity status. It seems that some users are putting personal opinions above Wikipedia norms. However I think more research can be done and sources added to better this article. But at this time it does meet a basic minimum requirement to be included in the encyclopedia. Topoint22 (talk) 16:13, 24 September 2019 (UTC) — Topoint22 (talk • contribs) has made few or no other edits outside this topic.
 * His social following? The article claims "a following of over 11 thousand on Instagram". Wikipedia does not as far as I am aware use number of followers on social media as a guide to notability. Even where it does even mention followers, it tends to talk in terms of multiple millions of followers being worth mentioning, and even then an independent reliable source is required to say that that is a notable number of followers. It is not acceptable to use as a source the subject's own social media page. -Lopifalko (talk) 16:35, 24 September 2019 (UTC)

 * Comment - As the creator of this article has been blocked for socking, I've G5 speedy nominated this. John from Idegon (talk) 22:55, 24 September 2019 (UTC)
 * That's not how G5 works; I've declined the G5.--Bbb23 (talk) 23:04, 24 September 2019 (UTC)

 * Delete, does not meet WP:ANYBIO or WP:CREATIVE, nothing Thomas has done is wikisignificant, no sources cited in article or found (allbeit with a quick gsearch only) discuss is work indepth (plus many of them are not wikireliable). Coolabahapple (talk) 14:27, 26 September 2019 (UTC)
 * Delete, not notable. -BRAINULATOR9 (TALK) 01:38, 27 September 2019 (UTC)


text:
Talk:Donato Giancola

Untitled
nessuna imagine? qui ho 2 disegni di lui... è un bravo artista graffico ^_^_^ —Preceding unsigned comment added by <IP_ADDRESS> (talk) 08:40, 1 June 2009 (UTC)

External links modified
Hello fellow Wikipedians,

I have just modified 2 one external links on Donato Giancola. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:
 * Added archive https://web.archive.org/web/20101201074405/http://worldfantasy.org/awards/awardslist.html to http://www.worldfantasy.org/awards/awardslist.html/
 * Added tag to http://www.asfa-art.org/admin/artist.php?id=53
 * Added archive https://web.archive.org/web/20100513025809/http://www.sfartistwatch.com:80/index.php/Donato_Giancola to http://www.sfartistwatch.com/index.php/Donato_Giancola

Cheers.— InternetArchiveBot  (Report bug) 14:06, 15 December 2016 (UTC)

title: Talk:Donato Giancola


text:
Foxholm, North Dakota

Foxholm is a census-designated place and unincorporated community in Ward County, North Dakota, United States. Its population was 75 as of the 2010 census.

Foxholm is located along U.S. Route 52, 18 mi northwest of Minot and 76 mi southeast of the Saskatchewan and North Dakota border at Portal, ND/North Portal, SK. Foxholm is in the Des Lacs River Valley.

A post office called Foxholm was established in 1894, and remained in operation until 1967. The community supposedly was named after a place in England.

title: Foxholm, North Dakota


text:
Τριτογένεια

Etymology
From +, the root of ,. The of  is lengthened to  for the sake of meter: the three short syllables in the sequence short–short–short–long–short of  would break the rules of dactylic hexameter.

Proper noun

 * 1)  an epithet of Athena

title: Τριτογένεια


text:
龍笛

Etymology
Compound of

Noun

 * 1)  a dragon flute, a 40cm seven-holed transverse bamboo flute used in gagaku

title: 龍笛


text:
Western cottonmouth

The western cottonmouth (Agkistrodon piscivorus leucostoma)  was once classified as a subspecies of the cottonmouth (Agkistrodon piscivorus). However, DNA based studies published in 2008 and 2015, revealed no significant genetic difference between the eastern cottonmouth (Agkistrodon piscivorus piscivorus) and the western cottonmouth (Agkistrodon piscivorus leucostoma) and synonymized the two subspecies (with the oldest published name, A. p. piscivorus, having priority). The resulting taxonomy does not recognizes the western cottonmouth (A. p. leucostoma) as a valid taxon. Several subsequent reviews and species accounts have followed and supported the revised taxonomy. Information on this snake can be found in the Agkistrodon piscivorus article.

Description
Agkistrodon piscivorus leucostoma is a stout snake with a thick, muscular body. It is the smallest of the three subspecies of A. piscivorus. The average length of mature specimens is 27.5 in, while the maximum reported length is 62 in.

Adult specimens are usually dark gray or brown with little or no markings, although a dorsal color pattern consisting of 10 to 15 dark crossbands can be seen in some specimens. Like other members of the species, its color darkens with age, and very old specimens may appear entirely black. Unlike the other two subspecies (A. p. conanti and A. p. piscivorus), the light line that borders the dark cheek strip is usually not present in this subspecies. The dorsal scales are keeled, in rows of 25 near the midbody, and the anal scale is undivided. Its broad, flat head is distinctly wider than its neck, and it has an elliptical (cat-like) pupil. By day the pupil appears as a narrow slit; at night the pupil is wide and may even look round.

Behavior
The animal opens its mouth widely when startled, exposing its whitish-colored oral mucosa; this is the reason it is commonly referred to as the "cottonmouth".

Common names
Western cottonmouth, water moccasin, cottonmouth, (black) moccasin, blunt-tail moccasin, (northern) cottonmouth moccasin, stump-tail (water) moccasin, viper, western cottonmouth moccasin, cotton-mouthed snake, Congo snake, trap-jaw, gapper.

Geographic range
Found in the United States, from southern Alabama along coast of the Gulf of Mexico, including many offshore islands, to southeastern and central Texas and north to Oklahoma, Missouri, Illinois, Indiana, and southeastern Nebraska, and western Kentucky. The type locality given is "western district of Tennessee". Schmidt (1953) proposed that this be amended to "10 miles northeast of Bolivar, Hardeman County, Tennessee".

title: Western cottonmouth


text:
Mathieu da Vinha

Mathieu da Vinha (born 15 March 1976) is a 21st-century French historian. He is the author of several studies or biographies relating to life under the reign of king Louis XIV. A research associate, he is the scientific director of the Palace of Versailles Research Centre.

Career
Mathieu da Vinha was born in Argenteuil. After studying in Paris in Khâgne at the lycée Paul-Valéry then Cité scolaire internationale Honoré-de-Balzac, Mathieu da Vinha studied history at the Paris-Sorbonne University, where he obtained a doctorate in modern history in 2003. In 2006, he joined the corps of engineers of ancient sources, and the following year that of research engineers in source analysis.

He is currently the Scientific Director of the Palace of Versailles Research Centre.

Mathieu da Vinha is the historical advisor to the television series Versailles, 23 November 2015 broadcast on Canal+ from November 2015.

Publications

 * Les Valets de chambre de Louis XIV, Éditions Perrin, series Pour l'Histoire, Paris, June 2004, ISBN<PHONE_NUMBER>445
 * Louis XIV et Versailles, éd. Arts Lys/Château de Versailles, Versailles, 2009
 * Le Versailles de Louis XIV : Le fonctionnement d'une résidence royale au XVIIe, Perrin, series Pour l'Histoire, Paris, September 2009 ; reissued Le Grand Livre du mois and France Loisirs, 2010
 * Alexandre Bontemps, Premier valet de chambre de Louis XIV, Perrin, series Les métiers de Versailles, Paris, October 2011
 * Au service du roi. Dans les coulisses de Versailles, Éditions Tallandier, 2015.

Copublication

 * Versailles pour les Nuls (with Raphaël Masson), First & Château de Versailles, March 2011. ISBN<PHONE_NUMBER>523

Codirection of works

 * 2010: Les Grandes galeries européennes, XVIIe/XIXe (with Claire Constans), Centre de recherche du château de Versailles/Éditions de la Maison des sciences de l'homme, series "Aulica"
 * 2011: Cultures de cour, cultures du corps, XIVe/XVIIIe (with Catherine Lanoë and Bruno Laurioux), Presses de l'université Paris-Sorbonne, series "Mythes, Critique et Histoire"
 * 2014: Louis XIV, l'image et le mythe (with Alexandre Maral and Nicolas Milovanovic), editions Presses universitaires de Rennes & Centre de recherche du château de Versailles, series Histoire, Aulica. L'univers de la cour
 * 2015 Versailles : histoire, dictionnaire et anthologie (with Raphaël Masson), éditions Robert Laffont, series Bouquins

title: Mathieu da Vinha


text:
Channel 4 virtual TV stations in Canada

The following television stations operate on virtual channel 4 in Canada:

 * CBAT-DT in Fredericton, New Brunswick
 * CBOT-DT in Ottawa, Ontario
 * CFCM-DT in Quebec City, Quebec
 * CFCN-DT in Calgary, Alberta
 * CFRS-DT in Saguenay, Quebec
 * CFSK-DT in Saskatoon, Saskatchewan
 * CFTF-DT-4 in Forestville, Quebec
 * CHAU-DT-7 in Rivière-au-Renard, Quebec
 * CHFD-DT in Thunder Bay, Ontario
 * CIII-DT-4 in Owen Sound, Ontario
 * CIMT-DT-1 in Edmundston, New Brunswick
 * CITL-DT in Lloydminster, Alberta/Saskatchewan
 * CKRN-DT in Rouyn-Noranda, Quebec

title: Channel 4 virtual TV stations in Canada


text:
Raghuvinder Shokeen

 Raghuvinder Shokeen  is an Indian politician and is member of the Sixth Legislative Assembly of Delhi. He is a member of the Aam Aadmi Party and represents Nangloi Jat (Assembly constituency) of Delhi.

Early life and education
He is a graduate in engineering (1983–88) from NIT (erstwhile REC) Kurukshetra. He used to be active in politics during college days.

title: Raghuvinder Shokeen


text:
User:DoubleDeputy D

I go by the same username on Wikia. Currently, I live in the Southeastern United States.

October 16, 2017

title: User:DoubleDeputy D


text:
Portal:Mathematics/Participate/Research Projects

Marin Mersenne's name is widely known because of his interest in prime numbers that are one less than a power of two. Mersenne also did research in the area of the theory of music and musical instruments (see Wikipedia). Participants at Mersenne primes are encouraged to join the distributed computing project that allows the computing power of personal computers to help search for Mersenne prime numbers.


text:
Salavan

Salavan may refer to:
 * Salavan Province, Laos
 * Salavan (district), Laos
 * Salavan (city), Laos

title: Salavan


text:
User:Riocard/monobook.js

//This code will change ISBN links to point to the url of your choice, //instead of Special:Book_sources. // //How to use it: // //First, you must copy this code to your user javascript page. This is //at User: /monobook.js. My username is Lunchboxhero so //my javascript page is User:Lunchboxhero/monobook.js. You must be logged //in to edit your javascript page. // //Once you have copied the code and saved the page, you need to refresh your //browser's cache. For Mozilla/Safari/Konqueror: hold down Shift while clicking //Reload (or press Ctrl-Shift-R), IE: press Ctrl-F5, Opera: press F5. // //The code should now work, as long as you are logged in. // //You can change the destination URL. Go to Book sources and copy //the URL of the site you want to use (right-click the link, then click "Copy Link //Location", "Copy Target", or similar). Put the new URL between the quotes next //to magicURL, in place of the URL now there. // //The current magicURL includes Wikipedia's Amazon Referral reference. That means if you click on //the ISBN link, go to Amazon and end up buying the book, Wikipedia will earn some small amount //of money from that sale. If you don't want to support Wikipedia in this way, but do want ISBNs //to link to Amazon, replace the current magicURL with "http://www.amazon.com/exec/obidos/ASIN/MAGICNUMBER" // //Good luck, and if you have any questions, leave a comment on the discussion //page of User:Lunchboxhero/monobook.js. Thanks to Superm401 and drrngravy for their //improvements. // //(Every line that starts with "//" is a comment and can be discarded.)

function externISBN {

var magicURL = "http://library.ox.ac.uk/find?ISBN=MAGICNUMBER"; var magicRegex = /MAGICNUMBER/ig; if(wgPageName != "Special:Booksources" && wgPageName != "Wikipedia:Book_sources"){ for (var i = 0; i < document.links.length; i++) {              if( document.links[i].href.match(/isbn=(.*)/) ) { document.links[i].href=magicURL.replace(magicRegex, RegExp.$1); }   }  } }

$(externISBN);

title: User:Riocard/monobook.js


text:
User:Mariam Athar

Hi! Everyone it's Mariam Athar. Actually I am a student but I try to add more information about many common topics in Wikipedia. I always try to edit correct information. I know there are many mature editors too so if they want to correct any of my edits they are always welcome 😊.

Best regards,

Mariam Athar

title: User:Mariam Athar


text:
Ripal Patel

Ripal Vinubhai Patel (born 28 September 1995) is an Indian cricketer. He made his List A debut on 24 September 2019, for Gujarat in the 2019–20 Vijay Hazare Trophy. He made his Twenty20 debut on 11 November 2019, for Gujarat in the 2019–20 Syed Mushtaq Ali Trophy.

In February 2021, Patel was bought by the Delhi Capitals in the IPL auction ahead of the 2021 Indian Premier League. On 4 October 2021, he made his debut in the Indian Premier League (IPL), against Chennai Super Kings, during the 50th match of 2021 Indian Premier League. In February 2022, he was bought by the Delhi Capitals in the auction for the 2022 Indian Premier League tournament.

title: Ripal Patel


text:
Talk:C. N. Williamson

Untitled
I hope I am entering this in the correct way and place. ie "talk" only. I have a few bound copies of of a Victorian magazine - a sort of early Readers Digest - that was "conducted" by C.N Williamson. I assume conducted means edited and compiled. It's titled "The Minute" (illustrated) and the few copies I have are dated from May to July 1896. I see no reference to this avenue of his work on his page and have been unable to find any reference to "The Minute" anywhere on the internet. Hugozair (talk) 12:51, 20 October 2012 (UTC)

Date of birth
FreeBMD has a Charles Norris Williamson born in the fourth quarter of 1857 in the registration district of St Thomas, Devon, suggesting the article has the wrong year of birth (1859). However it also has a Charles N Williamson dying aged 50 in the fourth quarter of 1920 in Bath. Both entries seem likely to relate to the subject of this article, but if so, he would have been 62 or 63 when he died. RGCorris (talk) 18:00, 26 November 2019 (UTC)

title: Talk:C. N. Williamson


text:
Ada Programming/Keywords/others

Summary
The keyword others is used to define the remaining options in a list of options:
 * In exception handlers
 * In case statements
 * In variant records
 * In array initialisations

Wikibook

 * Ada Programming
 * Ada Programming/Keywords

Ada Quality and Style Guide

|Others Keywords:others

title: Ada Programming/Keywords/others


text:
User:Simplyys13/sandbox

Zandra Rhodes
Dame Zandra Lindsey Rhodes, DBE, RDI (born 19 September 1940) is an English fashion and textile designer. Her devoted passion for textiles is the creative force behind the beginning of her career into the fashion industry. Rhodes designed garments for Royal Princess Diana and numerous celebrities. In addition to her garment Zandra Rhodes has created designs for interiors. Where her prints feature on variation of furniture and homeware. In 2003 Zandra Rhodes founded the Fashion and Textile Museum in London. In the past fifty years of Zandra Rhodes career she has won awards recognizing her influential contribution within the fashion industry.

Childhood and Education
Rhodes was born September 19th ,1940 in Chatham, Kent, England. Her mother was a fitter at the House of Worth in Paris, and later became a professor at the Medway College of Arts. Her father was in the air force in Egypt and later became a truck driver. Three years after Rhodes was born her mother birthed her sister Beverley making her the oldest sibling. With Rhodes mother having an educational background in fashion her passion for fashion was instilled in within her from a very young age. In 1959 pop artist Roy Lichtenstien, Andy Warhol, and textile designer Emilio Pucci were a few of Zandra Rhodes earliest influencers in the fashion industry. With an abundance of fashion inspiration Rhodes began to study screen printing and lithography at Medway College of Arts for two years. Throughout Rhodes studies textile design instructor Barbara Brown was a major influence into her new found love for textiles. Rhodes furthered her education under a scholarship at Royal College of the Arts. During that time period Rhodes strayed away from the traditional form of designing. Many designers were creating patterns form fitting for furniture. Meanwhile Rhodes utilized her skills towards creating patterns to create garments. In 1964 Zandra Rhodes graduated in with honors with a degree in home furnishing textile design.

After graduation Rhodes textile designs withheld strikingly different standards that were considered too conventional for the British market, making it hard for her to find a job. In 1968 Rhodes started a business with fashion designer Sylvia Ayton. The two designers opened a boutique called Fulham Road Clothes Shop. The business permitted Rhodes to compose her textile designs onto garments designed by Sylvia Ayton. Rhodes inspiration for her designs roots from materials used on an everyday basis, nature, and travel. She innovated designs within the pop art genre from objects ranging from lipstick tubes, feathers, lace, and lightbulbs. A year later Rhodes and Sylvia decided to part ways. Within the same year of the split Rhodes opens up her own boutique in Marshall Fields, Chicago. As a freelancer Rhodes released her first solo collection. This collection of garments received recognition from both the British and American market. Diana Vreeland wore garments from Rhode’s collection in an American Vogue issue. Landing Rhodes an opportunity to sell her clothing to high end retailers Henry Bendel and Fortnum, Mason, Neiman Marcus, and Saks. Rhodes new found success was the stardom to a fashion career with endless endeavors. She was able to branch out and expand her textiles on different type of design platform. Starting with interior design in 1976 licensed under Wamsutta Rhodes designed her first home décor collection. Where she was able to use her textiles to produce household linens, glassware, cushions, throws, and rugs. Zandra Rhodes also expanded her brand to ties with her signature prints, lingerie, and created her very own fragrance. Rhodes textile design were multi resourceful in the industry. Zandra Rhodes also did a collaboration designing terrazzo with artist David Humphries. During the two were responsible for designing the terrazzo in the Global Plaza at Harbourside in Sydney Australia, and in California at the Del Mar House. Rhodes gained a job designing costumes for the well-known rock band Queen.

Career
Within Zandra Rhodes career she created handmade evening wear using her unique feminine textiles. Each garment created Rhodes incorporates different types of feminine style into place. In the seventies during the punk era, Rhodes created her collection Conceptual Chic. The collection featured garments displaying an erotic feminine style. When Rhodes creates her garments a lot of thought goes into the construction. Simplistic shapes help mold the foundation of Rhodes garments. The shapes functions as an enhancer that maximizes the effects of her prints. She achieves this look by using techniques like layering,smocking, and shirring. All of Zandra Rhodes garments are constructed around the design of her distinct prints, despite being structured around the formation of the dress. Her designs were able to make it all the way to India, where in December of 1987 Rhodes released a new sari collection. Rhodes love for travel helps influence the enrichment of her textile designs.

Zandra Rhodes designed garments for a diverse of amount of celebrities and royalty. Including famous people and royals like Freddie Mercury, Princess Diana, Princess of Wales, Elizabeth Taylor, and Jackie Onassis. In 2003 Zandra Rhodes opened the Fashion and Textile Museum in London. The four-million-dollar project took approximately seven years for architect Ricardo Legorreta. The museum provides exhibitions and educational programs that has a library and lecture room that will help immerse people into the ways fashion has been beneficial to society. In the first exhibit titled “My Favourite Dress” includes over seventy fashion designer’s industry. Ranging from designers like Oscar de la Renta, Donna Karan, Valentino, and Giorgio Armani. Who were asked to choose one of their favorite dress from any of their collections to add to the collection. It was important for Rhodes to incorporate other designers into the exhibit so the museum wouldn’t just be centered around her own designs throughout her career. Although the museum withholds a variety of designers garments. Rhodes also included three thousand of her own original garments within the museum along with her sketch books and silk screens. At the Fashion and Textile Museum they have three shows a year. The exhibits within the museum aren’t intended to stay permanently.

Annotated Bibliography
'''1.    Sue Jones (2019) Interview 1. Zandra Rhodes—December 1987: Indian Sari Collection, TEXTILE, 17:2, 182-187, DOI: 10.1080/14759756.2018.1474006'''

Sue Jones interviewed Zandra Rhodes on her Indian Sari collection in 1987. Zandra Rhodes mentions how her love for traveling inspires her designs, resulting to the incorporations different cultural influence within her clothing.

2. John Haldane (2016) The Art Schools of Kent: A Complete History, Studies in Art Education, 57:2, 179-181, DOI: 10.1080/00393541.2016.1133205

Journalist John Haldane gives historical content into the history of art schools in Kent. Kent is an area in England where a lot of well-known artist like Zandra Rhodes grew up and started their education into the fashion industry.

3. https://www.independent.co.uk/news/people/profiles/passedfailed-an-education-in-the-life-of-zandra-rhodes-fashion-designer-320693.html

In this article Johnathan Sale interviews Zandra Rhodes about her education. Through this article Rhodes unveils how much of a well-rounded student she was. Zandra Rhodes also mentions that she was  first trained as a textile designer before she became known as a fashion designer.

4. '''Nothdruft, Dennis. “BLURRING THE BOUNDARIES: PRINT, PERSONALITY AND THE INTERIORS OF ZANDRA RHODES AND CHRISTOPHER VANE PERCY.” The Journal of the Decorative Arts Society 1850 - the Present, no. 33, 2009, pp. 26–37. JSTOR, www.jstor.org/stable/41809409.'''

This decorative arts design journal exhibits interior designs made by Zandra Rhodes. The journal claims Rhodes Interior collaborations was the beginning of fashion designers branching out into interiors.

5. '''Samanthaconti. “The Rainbow Connection: Zandra Rhodes Reflects on 50 Years of Design.” WWD, WWD, 7 Oct. 2019, wwd.com/fashion-news/fashion-features/the-rainbow-connection-zandra-rhodes-reflects-on-50-years-of-design-1203313900/'''

Women’s Wear Daily curated a short documentary style film featuring Zandra Rhodes reflecting on her fifty-year career design. In the film we gain insight on Zandra Rhodes love for textiles. Rhodes considers the textiles on her garments to be “living paintings’.

6. '''Rosemaryfeitelberg. “Zandra Rhodes and Anna Sui Talk Friendship, Inspiration and Career Challenges.” WWD, WWD, 19 Nov. 2019, wwd.com/eye/people/zandrarhodes-anna-sui-1203373181/?cx_testId=1&cx_testVariant=cx_1&cx_artPos=0#cxrecs_s.'''

Journalist Rosemary Fietelberg wrote an article based on an interview with Zandra Rhodes and Anna Sui. The two well-known designers spoke on their stardom in the fashion industry and how influential they are to one another in their process of design. Both Rhodes and Sui share a passion for prints that would be considered too extreme for others.

7. “The Online Resource for Visual Arts - Zandra Rhodes Digital Study Collection.” VADS, https://vads.ac.uk/collections/ZR.php .

Vads is an online database for visual arts. They withhold an archive of all of Zandra Rhodes’s Collections with visuals throughout the many years of her career. All of their images are under the non-commercial creative commons license. They have left contact information in order for people to inquire about gaining permission to reproduce these images for educational purposes. I think this could be a great attempt into trying to include images of Rhodes designs into the Wiki Article

8. '''Samanthaconti. “Zandra Rhodes, Burberry, Manolo Blahnik Nab Walpole Luxury Awards.” WWD, WWD, 19 Nov. 2019, https://wwd.com/fashion-news/fashion-features/zandra-rhodes-burberry-manolo-blahnik-nab-walpole-awards-1203373211/ .'''

Zandra Rhodes recently added another award to signify the success of her career, at the Walpole British Luxury Award in London. Rhodes was among hundreds of luxury designers at the annual event where she received the British legend award.

9. '''Bowers, Katherine. "Zandra Rhodes Talks Design." WWD 23 Dec. 2011: 12. Business Insights: Global. Web. 19 Nov. 2019.'''

Katherine Bowers, follows a day in the life of Zandra Rhodes in Boston. There she discovers her interactions with students and her creative process with prints. According to Rhodes one print design could give her between ten to thirty ideas. However, it takes about two to three concrete ideas for her to consider moving forward with designing.

10. '''Kellogg, Ann T., et al. "Rhodes, Zandra." In an Influential Fashion: An Encyclopedia of Nineteenth- and Twentieth-Century Fashion Designers and Retailers Who Transformed Dress, illustrated by Kamila Dominik, Greenwood Press, 2002, pp. 257-258. Gale Ebooks,'''

This is an encyclopedia on influential fashion designers. In Zandra Rhodes biography Barbara Brown is mentioned to be the instructor responsible for the inspiring Rhodes into textiles.

11. '''Fogg, Marnie. "Rhodes, Zandra." Encyclopedia of Clothing and Fashion, edited by Valerie Steele, vol. 3, Charles Scribner's Sons, 2005, pp. 104-105. Gale Ebooks,'''

This encyclopedia give insight into the life Zandra Rhodes from her early education to her career in the fashion industry. The encyclopedia explains the diversification of her prints.

12. '''Conti, Samantha. "Rhodes Scholar." WWD, 27 Mar. 2003, p. 4. Gale Academic Onefile,'''

Samantha Conti, interviewed Zandra Rhodes throughout the process of Rhodes building her four million-dollar museum in London. The museum exhibits over three thousands of Zandra Rhodes garments.

13. Www, https://www-oxfordartonline-com.proxy.library.csi.cuny.edu/groveart/groveart/view/10.1093/gao/9781884446054.001.0001/oao-9781884446054-e-7002080161 .

The Grove Art online, created a biography on Zandra Rhodes. The biography mentions that “Rhodes took her cue from the flourishing pop art scene in London.”

14. '''Borrelli-Persson, Laird. “Zandra Rhodes Dips Into Her Archives for a Very Special Collection.” Vogue, Vogue, 26 May 2017, https://www.vogue.com/article/exclusive-zandra-rhodes-archive-collection-for-matchesfashion .'''

The vogue article quote Zandra Rhodes crediting Vogue for being an influence towards her success. Zandra Rhodes quotes” Diana Vreeland has been a great influence on me, as she encouraged and adored the way my prints were an integral part of the garments”.

15. “Zandra Rhodes' Garments Archived.” BBC News, BBC, 3 July 2012, https://www.bbc.com/news/av/uk-england-kent-18693098/zandra-rhodes-garments-archived .

BBC News filmed a segment on Zandra Rhodes placing all of her gowns ever made into an archive for the Creative Arts University. This segment actually connects to the Vads online database. Zandra Rhodes granted permission for all of her gowns to be photographed and archived for educational use.

title: User:Simplyys13/sandbox


text:
Gerald C. Meyers

Gerald Carl Meyers (December 5, 1928 – June 19, 2023) was an American industrialist, author, lecturer, and management consultant who was chairman and CEO of American Motors Corporation (AMC) from 1977 to 1982.

Early life and career
Gerald Carl Meyers was born in 1928 to a Jewish family in Buffalo, New York. His father was a tailor who immigrated to the United States from Poland. His mother was an opera singer.

Meyers attended public schools in Buffalo, skipping two grades before graduating from Bennett High School in 1945. He briefly studied at Canisius College in Buffalo before transferring to the Carnegie Institute of Technology (now Carnegie Mellon University), where he obtained a Bachelor of Science in engineering in 1950, and a Master of Science magna cum laude in business in 1954.

Meyers joined the Ford Motor Company in 1950, but his work at the automaker was cut by military service. He was an officer in the U.S. Air Force during the Korean War, stationed in Greenland. Afterward, he worked for Chrysler Corporation. During the eight years with the automaker, he became Director of Manufacturing for the company's overseas plants in 1961 and lived in Geneva, Switzerland for three years.

American Motors
In 1962, Meyers was appointed director of purchasing for American Motors Corporation in Detroit, where he assumed a succession of executive roles. In charge of product development, Meyers introduced AMC's innovative "AMC Buyer Protection Plan" that included the industry's first 12-month or 12000 mi bumper-to-bumper warranty. The number of models was reduced to remove the basic, stripped versions, to simplify the variations produced. Nevertheless, the centerpiece was improved quality during the production. However, Meyers said, "I don't claim we've magically and finally licked all the problems of the assembly line." Other improvements included mechanical upgrades to increase durability and quality, as well as improved standard equipment levels. By 1973, Meyers was pushing the development of the Wankel engine for installation into an AMC car within two years, with the possibility of going independent of GM's rotary engineering work. Still, he ruled out AMC producing the new engine itself. While Meyers was AMC's top product man, he was "given considerable, and justifiable, credit for pushing the AMX/3 project from inception through the design and prototype stages into testing."

A significant management transition at AMC started on May 24, 1977. Meyers was named president and Chief Operating Officer, succeeding the retiring William Luneburg. Although Meyers was the executive who had been against AMC's purchase of Jeep in 1970 (of which the press kept reminding him), he was now one of Jeep's most prominent proponents. Meyers did not have all the powers as Luneburg because he did not report to the CEO and chairman, Roy D. Chapin Jr., but to the vice-chairman of the board of directors, R. William McNeally, who was also a rival to be the next chairman.

Upon the retirement of Chapin on October 21, 1977, Meyers became chairman and chief executive officer. At the time, Meyers was 49 years old and became the youngest top executive in the automobile industry, bringing a wealth of manufacturing experience. "The company was looking for a lot more than a steady hand on the tiller – it was looking for a savior" but Meyers disagreed and argued that the company could survive and remain a factor in the automobile industry by abandoning its policy of head-on competition and instead focusing on and revamping its four-wheel-drive vehicles, a market segment left untended by the large automakers, and by acquiring advanced technology.

For fiscal 1977, AMC's profits more than doubled compared to the previous year to a record $83.9 million on sales of $3.1 billion. The smallest U.S. automaker saw its car sales increase 37%, while they dropped 21% for the industry as a whole. Meyers described AMC's strategy as a "three-legged stool" of small cars, Jeeps, and steady government and military contracts. By 1979, the automaker's management team headed by Meyers, ... "sharply cut back its money-losing car operations ... The perennially ailing baby of the auto industry suddenly looks healthy, and its new management team has a clear design for the future."

In 1979, Meyers partnered with the French state-owned Renault, which bought 22.5 percent of AMC stock. Because he engineered the deal with Renault, Meyers received the Cross of Chevalier of the French Legion of Honor in 1981 for "strengthening the fabric of Franco-American relations."

The U.S. economy continued to decline during President Reagan's Recession. At the start of 1982, AMC held on to only two percent of the domestic market and lost about $300 million during the previous two years. Meyers had acknowledged that AMC had no hope of raising the $6 billion it needed to finance more competitive products, stating "It would take dough that just isn't in the cards for us," so the company staked its future on help from Renault, which included development of the Renault Alliance sub-compact for production in Kenosha, Wisconsin. In early 1982, AMC asked its 16,000 hourly workers for wage concessions that would save the automaker $150 million.

At age 53, Meyers retired from the company in February 1982. By that time, Renault controlled 46 percent of American Motors. He was with the automaker for 20 years and was noted for orchestrating "the complicated linkup between AMC and Renault starting in 1979." Meyers was succeeded as chairman by AMC President W. Paul Tippett Jr. At the time, Tippett was a member of AMC management for only three years.

Retirement
Meyers was the Ford Distinguished Research Chair and Professor of Business at Carnegie Mellon University's Graduate School of Industrial Administration. He has written a book about business crisis management and co-authored another. Meyers was a business consultant and public speaker with expertise in the auto industry and business administration. He was also a Visiting Professor of Organizational Behavior at the University of Michigan Ross School of Business from 1991 to 2017.

Meyers was also President of Gerald C. Meyers Associates, a management consulting firm that assists and advises senior corporate officers. An expert in corporate governance and crisis management, he was also a commentator on the automobile industry.

On April 17, 2007, he received an honorary degree, a doctorate of business practice, from Carnegie Mellon University.

Personal life and death
Meyers married Barbara Jacob in 1958. They had three children and were together until she died in 2009. Meyers died at his home in West Bloomfield, Michigan, on June 19, 2023, at the age of 94.

Author
Gerald C. Meyers wrote When It Hits the Fan, Managing the Nine Crises of Business, published by Houghton-Mifflin. He also co-authored Dealers, Healers, Brutes & Saviors, Eight Winning Styles for Solving Giant Business Crises with his daughter, Susan Meyers, published by John Wiley & Sons in 2000 providing examples of business people who were able to navigate their companies through major crises.

title: Gerald C. Meyers


text:
Wikipedia:Bots/Requests for approval/BattyBot 40

 * The following discussion is an archived debate. Please do not modify it. To request review of this BRFA, please start a new section at WT:BRFA. The result of the discussion was Symbol keep vote.svg Approved

BattyBot 40
Operator:

Time filed: 04:18, Tuesday, February 10, 2015 (UTC)

Automatic, Supervised, or Manual: Automatic

Programming language(s): AutoWikiBrowser

Source code available: AWB

Function overview: When adding WikiProject Disambiguation, also update class, importance and auto in other WikiProject templates

Links to relevant discussions (where appropriate): Bots/Requests for approval/BattyBot 34

Edit period(s): Occasional runs

Estimated number of pages affected: Hundreds

Exclusion compliant (Yes/No):

Already has a bot flag (Yes/No): Yes

Function details: BattyBot 34 was already approved to add WikiProject Disambiguation to existing talk pages for all disambiguation pages. Some of these talk pages have other WikiProject templates, which may have incorrect class or importance values. My proposal is two-fold: See for an example. Thanks! GoingBatty (talk) 04:18, 10 February 2015 (UTC)
 * If another WikiProject template has class stub, start, redirect, list, C, B, blank, etc., then change it to dab.
 * If another WikiProject template has importance with any value other than NA, then remove the parameter.
 * If another WikiProject template has auto yes, stub, length, then remove the parameter.

Discussion
I don't think all Wikiproject templates use the dab class. I'm not sure what will happen if you add dab to one that doesn't? From the documentation of Template:WPBannerMeta there has to be extended Jamesmcmahon0 (talk) 20:00, 10 February 2015 (UTC)
 * In, I added dab to three templates. WikiProject Mythology is coded with extended, while WikiProject Africa and WikiProject Nigeria is coded with subpage.  Talk:Abassi shows that each template has the Disambig-class rating, and there is a Disambig-class category for each WikiProject.
 * WikiProject Oz is coded with standard. Even though Talk:The Wizard of Oz has WikiProject Oz, the template shows an NA-class rating and a NA-class category.  Therefore, I will not have the bot change NA, and changing from stub to dab should work fine.  However, I would want some of these scenarios included in the trial.  Thanks!  GoingBatty (talk) 03:20, 11 February 2015 (UTC)
 * So, the upshot of your answer is that all Wikiproject templates use the dab class? Josh Parris 06:29, 20 February 2015 (UTC)
 * No, the upshot is that it doesn't really matter; If you add dab to a template it that uses it, it displays correctly. Otherwise it will display as NA-class which is also desirable. Jamesmcmahon0 (talk) 09:02, 20 February 2015 (UTC)

Let's get this show on the road then. Josh Parris 09:30, 20 February 2015 (UTC)
 * I have updated the function details to include the removal of auto, which is only valid for stub. GoingBatty (talk) 22:08, 20 February 2015 (UTC)
 * - see results in table below. GoingBatty (talk) 01:02, 21 February 2015 (UTC)

This isn't your first rodeo Josh Parris 19:10, 23 February 2015 (UTC)
 * The above discussion is preserved as an archive of the debate. Please do not modify it. To request review of this BRFA, please start a new section at WT:BRFA.