text:
C++ Programming/Threading

Multi-tasking
Multi-tasking is a process by which multiple tasks (also known as processes), share common processing resources such as a CPU.

A computer with a single CPU, will only run one process at a time. By running it means that in a specific point in time, the CPU is actively executing instructions for that process. With a single CPU, systems using scheduling can achieve multi-tasking, by which the time of the processor is time-shared by several processes, permitting each to advance their computations, seemingly in parallel. A process runs for some time and another waiting gets a turn.

The act of reassigning a CPU from one task to another one is called a context switch. When context switches occur frequently enough, the illusion of parallelism is achieved.

Even on computers with more than one CPU, multiprocessor machines, multi-tasking allows many more tasks to be run than there are CPUs.

Operating systems may adopt one of many different scheduling strategies, which generally fall into the following categories:
 * In multiprogramming systems, the running task keeps running until it performs an operation that requires waiting for an external event (e.g. reading from a tape) or until the computer's scheduler forcibly swaps the running task out of the CPU. Multiprogramming systems are designed to maximize CPU usage.
 * In time-sharing systems, the running task is required to relinquish the CPU, either voluntarily or by an external event such as a hardware interrupt. Time sharing systems are designed to allow several programs to execute apparently simultaneously. The term time-sharing used to define this behavior is no longer in use, having been replaced by the term multi-tasking.
 * In real-time systems, some waiting tasks are guaranteed to be given the CPU when an external event occurs. Real time systems are designed to control mechanical devices such as industrial robots, which require timely processing.

Multi-tasking has already been successfully integrated into current Operating Systems. Most computers in use today supports running several processes at a time. This is required for systems using symmetric multiprocessor (SMP) in distributed computing and multi-core or chip multiprocessors (CMPs) computing, where processors have gone from dual-core to quad-core and core number will continue to increase. Each technology has its specific limitations and applicability, but all these technologies share the common objective of performing concurrent processing.

Processes
Processes are independent execution units that contain their own state information, use their own address spaces, and only interact with each other via inter-process communication (IPC) mechanisms. A process can be said to at least contain one thread of execution (not to be confused to a complete thread construct). Processes are managed by the hosting OS in a process data structure. The maximum number of processes that can run concurrently, depend on the OS and on the available resources of that system.

Child Process
A child process (also spawn process), is a process that was created by another process (the parent process), inheriting most of the parent attributes, such as opened files. Each process may create many child processes but will have at most one parent process; if a process does not have a parent this usually indicates that it was created directly by the kernel.

In UNIX, a child process is in fact created (using fork) as a copy of the parent. The child process can then overlay itself with a different program (using exec) as required. The very first process, called init, is started by the kernel at booting time and never terminates; other parentless processes may be launched to carry out various daemon tasks in userspace. Another way for a process to end up without a parent is, if its parent dies leaving an orphan process; but in this case it will shortly be adopted by init.

Inter-Process Communication (IPC)
IPC is generally managed by the operating system.

Shared Memory
Most of more recent OSs provide some sort of memory protection. In a Unix system, each process is given its own virtual address space, and the system, in turn, guarantees that no process can access the memory area of another. If an error occurs on a process, only that process memory's contents can be corrupted.

With shared memory, the need of enabling random-access to shared data between different processes is addressed. But declaring a given section of memory as simultaneously accessible by several processes raises the need for control and synchronization, since several processes might try to alter this memory area at the same time.

Multi-threading
Until recently, the C++ standard did not include any specification or built-in support for multi-threading. Therefore, Threading had to be implemented using special threading libraries, which are often platform dependent, as an extension to the C++ standard.

Some popular C++ threads libraries include: (This list is not intended to be complete.)

 * Boost - This package includes several libraries, one of which is threads (concurrent programming). the boost threads library is not very full featured, but is complete, portable, robust and in the flavor of the C++ standard. Uses the boost license that is similar to the BSD license.
 * Intel® Threading Building Blocks (TBB) offers a rich approach to expressing parallelism in a C++ program. The library helps you take advantage of multi-core processor performance without having to be a threading expert. Threading Building Blocks is not just a threads-replacement library. It represents a higher-level, task-based parallelism that abstracts platform details and threading mechanism for performance and scalability and performance. It is an open source project under the GNU General Public License version two (GPLv2) with the runtime exception.
 * Intel® Cilk™ Plus (Intel® Cilk™ Plus) adds simple language extensions to the C and C++languages to express task and data parallelism. These language extensions are powerful, yet easy to apply and use in a wide range of applications.
 * Adaptive Communication Environment (often referred to as ACE) - Another toolkit which includes a portable threads abstraction along with many many other facilities, all rolled into one library. Open source released under a nonstandard but nonrestrictive license.
 * Zthreads - A portable thread abstraction library. This library is feature rich, deals only with concurrency and is open source licensed under the MIT license.

Of course, you can access the full POSIX and the C language threads interface from C++ and on Windows the API. So why bother with a library on top of that?

The reason is that things like locks are resources that are allocated, and C++ provides abstractions to make managing these things easier. For instance,  uses object construction/destruction to insure that a mutex is unlocked when leaving the lexical scope of the object. Classes like this can be very helpful in preventing deadlock, race conditions, and other problems unique to threaded programs. Also, these libraries enable you to write cross-platform multi-threading code, while using platform-specific function cannot.

In any case when using threading methodology, dictates that you must identify hotspots, the segments of code that take the most execution time. To determine the best chance at achieving the maximum performance possible, the task can be approached from bottom-up and top-down to determine those code segments that can run in parallel.

In the bottom-up approach, one focus solely on the hotspots in the code. This requires a deep analysis of the call stack of the application to determine the sections of code that can be run in parallel and reduce hotspots. In hotspot sections that employ concurrency, it is still required to move that concurrency at a point higher up in the call stack as to increase the granularity of each thread execution.

Using the top-down approach, the focus is on all the parts of the application, in determining what computations can be coded to run in parallel, at a higher level of abstraction. Reducing the level of abstraction until the overall performance gains are sufficient to reach the necessary goals, the benefit being speed of implementation and code re-usability. This is also the best method for achieving an optimal level of granularity for all computations.

Both threads and processes are methods of parallelizing an application, its implementation may differ from one operating system to another. A process has always one thread of execution, also known as the primary thread. In general, a thread is contained inside a process (in the address space of the process) and different threads of the same process share some resources while different processes do not.
 * Threads vs. Processes

Atomicity
Atomicity refers to atomic operations that are indivisible and/or uninterruptible. Even on a single core, you cannot assume that an operation will be atomic. In that regard only when using assembler can one guarantee the atomicity of an operation. Therefore, the C++ standard provides some guarantees as do operating systems and external libraries.

An atomic operation can also be seen as any given set of operations that can be combined so that they appear to the rest of the system to be a single operation with only two possible outcomes: success or failure. This all depends on the level of abstraction and underlying guarantees.

All modern processors provide basic atomic primitives which are then used to build more complex atomic objects. In addition to atomic read and write operations, most platforms provide an atomic read-and-update operation like test-and-set or compare-and-swap, or a pair of operations like load-link/store-conditional that only have an effect if they occur atomically (that is, with no intervening, conflicting update). These can be used to implement locks, a vital mechanism for multi-threaded programming, allowing invariants and atomicity to be enforced across groups of operations.

Many processors, especially 32-bit ones with 64-bit floating point support, provide some read and write operations that are not atomic: one thread reading a 64-bit register while another thread is writing to it may see a combination of both "before" and "after" values, a combination that may never actually have been written to the register. Further, only single operations are guaranteed to be atomic; threads arbitrarily performing groups of reads and writes will also observe a mixture of "before" and "after" values. Clearly, invariants cannot be relied on when such effects are possible.

If not dealing with known guaranteed atomic operations, one should rely on the synchronization primitives at the level of abstraction that one is coding to.

For example, imagine a single process is running on a computer incrementing a value in a given memory location. To increment the value in that memory location:
 * Example - One process
 * the process reads the value in the memory location;
 * the process adds one to the value;
 * the process writes the new value back into the memory location.

Now, imagine two processes are running incrementing a single, shared memory location: but before it can write the new value back to the memory location it is suspended, and the second process is allowed to run: The second process is suspended and the first process allowed to run again:
 * Example - Two processes
 * 1) the first process reads the value in memory location;
 * 2) the first process adds one to the value;
 * 1) the second process reads the value in memory location, the same value that the first process read;
 * 2) the second process adds one to the value;
 * 3) the second process writes the new value into the memory location.
 * 1) the first process writes a now-wrong value into the memory location, unaware that the other process has already updated the value in the memory location.

This is a trivial example. In a real system, the operations can be more complex and the errors introduced extremely subtle. For example, reading a 64-bit value from memory may actually be implemented as two sequential reads of two 32-bit memory locations. If a process has only read the first 32-bits, and before it reads the second 32-bits the value in memory gets changed, it will have neither the original value nor the new value but a mixed-up garbage value.

Furthermore, the specific order in which the processes run can change the results, making such an error difficult to detect and debug.

Considerations are not only necessary with regard to the underling hardware but also in dealing with the different OS APIs. When porting code across different OSs one should consider what guarantees are provided. Similar considerations are necessary when dealing with external libraries.
 * OS and portability

Race condition
A race condition (data race, or simply race) occurs when data is accessed concurrently from multiple execution paths. It happens for instance when multiple threads have shared access to the same resource such as a file or a block of memory, and at least one of the accesses is a write. This can lead to interference with one another.

Threaded programming is built around predicates and shared data. It is necessary to identify all possible execution paths and identify truly independent computations. To avoid problems it is best to implement concurrency at the highest level possible.

Most race conditions occur due to an erroneous assumption about the order in which threads will run. When dealing with shared variables, never assume that a threaded write operation will precede a threaded read operation. If you need guarantees you should see if synchronization primitives are available, and if not, you should implement your own.

Locking
Locking temporarily prevents un-shareable resources from being used simultaneously. Locking can be achieved by using a synchronization object.

One of the biggest problems with threading is that locking requires analysis and understanding of the data and code relationships. This complicates software development--especially when targeting multiple operating systems. This makes multi-threaded programming more like art than science.

The number of locks (depending on the synchronization object) may be limited by the OS. A lock can be set to protect more than one resource, if always accessed in the same critical region.

Critical section
A critical section is a region defined as critical to the parallelization of code execution. The term is used to define code sections that need to be executed in isolation with respect to other code in the program.

This is a common fundamental concept. These sections of code need to be protected by a synchronization technique as they can create race conditions.

Deadlock
A deadlock is said to happen whenever there is a lock operation that results in a never-ending waiting cycle among concurrent threads.

Synchronization
Except when used to guarantee the correct execution of a parallel computation, synchronization is an overhead. Attempt to keep it to a minimum by taking advantage of the thread's local storage or by using exclusive memory locations.

Computation granularity
Computation granularity is loosely defined as the amount of computation performed before any synchronization is needed. The longer the time between synchronizations, the less granularity the computation will have. When dealing with the requirements for parallelism, it will mean being easier to scale to an increased number of threads and having lower overhead costs. A high level of granularity can mean that any benefit from using threads will be lost due to the requirements of synchronization and general thread overhead.

Mutex
Mutex is an abbreviation for mutual exclusion. It relies on a synchronization facility supplied by the operating system (not the CPU). Since this system object can only be owned by a single thread at any given time, the mutex object facilitates protection against data races and allows for thread-safe synchronization of data between threads. By calling one of the lock functions, the thread obtains ownership of a mutex object, it then relinquishes ownership by calling the corresponding unlock function. Mutexes can be either recursive or non-recursive, and may grant simultaneous ownership to one or many threads.

Semaphore
A semaphore is a yielding synchronization object that can be used to synchronize several threads. This is the most commonly used method for synchronization

Spinlock
Spinlocks are busy-wait synchronization objects, used as a substitute for mutexes. They are an implementation of inter-thread locking using machine dependent assembly instructions (such as test-and-set) where a thread simply waits (spins) in a loop that repeatedly checks if the lock becomes available (busy wait). This is why spinlocks perform better if locked for a short period of time. They are never used on single-CPU machines.

Threads
Threads are by definition a coding construct and part of a program that enable it to fork (or split) itself into two or more simultaneously (or pseudo-simultaneously) running tasks. Threads use pre-emptive multi-tasking.

The thread is the basic unit (the smallest piece of code) to which the operating system can allocate a distinct processor time (schedule) for execution. This means that, threads in reality, don't run concurrently but in sequence on any single-core system. Threads often depend on the OS thread scheduler to preempt a busy thread and resume another thread.

The thread today is not only a key concurrency model supported by most if not all modern computers, programming languages, and operating systems but is itself at the core of hardware evolution, such as symmetric multi-processors, understanding threads is now a necessity to all programmers.

The order of execution of the threads is controlled by the process scheduler of the OS; it is non-deterministic. The only control available to the programmer is in attributing a priority to the thread but never assume a particular order of execution.

User Interface Thread
This type of distinction is reserved to indicate that the particular thread implements a message map to respond to events and messages generated by user inputs as he interacts with the application. This is especially common when working with the Windows platform (Win32 API) because of the way it implements message pumps.

Worker Thread
This distinction serves to specify threads that do not directly depend or are part of the graphical user interface of the application, and run concurrently with the main execution thread.

Thread local storage (TLS)
The residence of thread-local variables, a thread dedicated section of the global memory. Each thread (or fiber) will receive its own stack space, residing in a different memory location. This will consist of both reserved and initially committed memory. That is freed when the thread exits but will not be freed if the thread is terminated by other means.

Since all threads in a process share the same address space, it makes data in a static or global variable to be normally located at the same memory location, when referred to by threads from the same process. It is important for software to take in consideration hardware cache coherence. For instance in multiprocessor environments, each processor has a local cache. If threads on different processors modify variables residing on the same cache line, this will invalidate that cache line, forcing a cache update, hurting performance. This is referred to as false sharing.

This type of storage is indicated for variables that store temporary or even partial results, since condensing the needed synchronization of the partial results in as fewer and infrequent instances possible will contribute to the reduction of synchronization overhead.

Thread Synchronization
The synchronization can be defined in several steps the first is the process lock, where a process is made to halt execution due to find a protected resource locked, there is a cost for locking especially if the lock lasts for too long.

Obviously there is a performance hit if any synchronization mechanism is heavily used. Because they are an expensive operation, in certain cases, increasing the use of TLSs instead of relying only on shared data structures will reduce the need for synchronization.

 * Critical Section

 * Suspend and Resume

 * Synchronizing on Objects

 * Cooperative vs. Preemptive Threading

 * Thread pool

Fibers
A fiber is a particularly lightweight thread of execution. Like threads, fibers share address space. However, fibers use co-operative multi-tasking, fibers yield themselves to run another fiber while executing.

Less support from the operating system is needed for fibers than for threads. They can be implemented in modern Unix systems using the library functions,   and   in  , as in GNU Portable Threads.
 * Operating system support

On Microsoft Windows, fibers are created using the  and   calls; a fiber that is currently suspended may be resumed in any thread. Fiber-local storage, analogous to thread-local storage, may be used to create unique copies of variables.

Symbian OS uses a similar concept to fibers in its Active Scheduler. An Active object (Symbian OS) contains one fiber to be executed by the Active Scheduler when one of several outstanding asynchronous calls complete. Several Active objects can be waiting to execute (based on priority) and each one must restrict its own execution time.

Exploiting parallelism
Most of the parallel architecture research was done in the 1960s and 1970s, providing solutions for problems that only today are reaching general awareness. As the need of concurrent programming increases, mostly due to today's hardware evolution, we as programmers are pressed to implement programming models that ease the complicated process of dealing with the old thread model in a way it preserves development time by abstracting the problem.

title: C++ Programming/Threading


text:
User:Mrdude1228

Beginner programmer trying to get a foothold in C++ programming. Has fair amount of experience with Blitzbasic, a programming language specifically geared torwards gamedev. Knows basics of C++ (namely, working with consoles), but has no prior experience with graphical programming in C++.

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

title: User:Mrdude1228


text:
GCSE Science/Environment

Believe it or not, global warming is not a modern event. Throughout the Earth's history, climate graphs have shown that the temperature has increased and decreased continuously, the difference today being the speed at which the warming is happening. However, what we need to focus on for the GCSE is the rapid global warming that is happening today (often incorrectly referred to as Climate Change), its causes, consequences and ways in which it can be minimised.

Causes
Okay, so you've heard about in the news millions of times. But what is actually causing global warming?

Well, global warming is caused by an increasing amount of Greenhouse gases in the atmosphere - which are Carbon Dioxide, Methane, Nitrogen Dioxide (Nitrous Oxide) and Water Vapour are greenhouse gases which cause the Greenhouse effect. Be careful when mentioning these gases, as you may be tricked into using the names of other gases.

Sulphur Dioxide is not a greenhouse gas as it does not absorb the sun's heat, but it causes acid rain. Aerosols cause depletion of the Ozone layer, and, whilst contributing to Global Warming, are of no relation to the Greenhouse Effect.

You will not need to explain why the greenhouse gases absorb the sun's heat. However you WILL need to explain that human activity is responsible for adding extra quantities of these gases to the atmosphere. Carbon Dioxide and Water Vapour are the most common greenhouse gases, as they are released from car exhausts, power stations and pretty much every other combustion reaction there is. Methane is released from rice paddies and, of course, from passing wind.

Consequences
The consequences of global warming are not fully understood, however there is significant scientific evidence that it is causing Climatic Change. Be careful here, as Global Warming is the increase in the Earth's average temperature, whereas Climatic Change is when the weather changes in a certain place, so try to avoid mixing the two phrases.

In the Sahel region in Sub-Saharan Africa, over the past decade, there has been a significant decrease in rainfall and droughts are becoming commonplace. The decrease in rainfall here causes an increase elsewhere, which can increase the problem of flooding in other areas.

Another effect of global warming is the melting of the polar ice caps - the North and South Pole. A hotter termperature obviously causes the ice to melt, which will add to the level of water in the oceans - and a higher level of water means a greater risk of flooding. Throughout the world, there are many flat and low-lying countries and cities that are at considerable risk from flooding. Bangladesh is one of the most flood prone countries in the world and there will be a higher chance of floods striking the country, causing death and damage to thousands of people.

title: GCSE Science/Environment


text:
Cookbook:Filet Knife

| Utensil

A filet knife is a thin, flexible knife, usually around 6 inches (150 mm) in length. The blade is usually much more shallow than the tang. These characteristics give the filet knife excellent mobility when being used to filet cuts of meat or fish, allowing it to manoeuvre around bones. This also aids in removing the skin from fish by allowing the user to flex the blade along the countertop. Filet knives are typically kept very sharp in order to minimize the amount of damage the edge does.

It is important that any knives are kept sharp, as blunt knives require more force to use, actually increasing the likelihood of injury (cuts from a sharp knife heal more quickly than those from a blunt one). A knife sharpener can be used to sharpen knives.

title: Cookbook:Filet Knife


text:
Talk:XML - Managing Data Exchange/Author guidelines

Editorial Board Communications

((please, start with your name and date - then finish with a long series of (-) this will delineate entries)) ---

Viji (1/16/06)    Subject: Editorial Board: meeting notes

(add to this things I forgot and left out)

Presentation of Editorial Board guidelines, monday 1/23

- Dr. Watson:
 * history of XML wikibook
 * future of XML wikibook
 * XML books he has that can be borrowed

- Viji:
 * schedule [actual due dates for chapter revisions; planning begins one month ahead; use of discussion tab in documenting revision recommendations; order and timeline of revision list (student, board, Dr. Watson); content due on given date; further revision may be recommended by board]
 * concept capsules and breathing room [analyze content - break down into component pieces; leave whitespace for room to breath and digest]
 * contact the board [author guidelines link; editorial board will periodically make announcements in class - then add the info to the author guidlines page]

- Moussa:
 * code examples [uniform color (black); keep comments in code; leave space above and below comments; copy and paste into editor to see differences - mention this in the first few chapters; keep all example code on the same topic - tourGuide]
 * NetBeans [remove from chapter => go to 'XML Editor' page (see contents table) => create link for your chapter => insert netbeans info]; put a link in chapter to the page that has that chapter's netbeans contents - at the spot(s) that there were netbeans contents; currently no need to edit this - may edit in future]

- Christina:
 * references and citations [no plagarism; citation page in appendix (chapter name - citations)]
 * wiki how to [help link on left navigation bar; sandbox for experimenting; author guidelines]
 * layout [learning objectives / sponsor banner; bold new words and jargon; exercises and answers links and pages (remove the link in the table of contents once you are done); use wiki format (ex: table) info in help page; make edit mode of page easy to follow so future edits are smooth]

other
 * list and document ideas for book restructuring (see entry below)
 * divide contents page into parts - organize the appendix, nice presentation (viji)
 * create cover page - nice presentation - include sponsor(currently UGA, Terry, MIS) (Christina, Moussa)
 * look for ways of decoupling (XML editor/NetBeans page)
 * document agreement to manage expectations

---

Viji (1/16/06)    Subject: Topical Links

As you think of topical suggestions please submit here =>

 * Restructuring Plans
 * Contents Page demos

feel free to make links to topics that we each may want to contribute to or have samples to show each other and Dr. Watson. We can have all those contributions in one place under one topic heading --- be sure to always link from this Editorial Board communications page entry.

Thank You ---


text:
XML - Managing Data Exchange

eXtensible Markup Language (XML) is a widely used computer language for creating and designing pages on the World Wide Web, and for defining other languages with more specialized purposes. This Wikibook provides a detailed description of XML, its origins, its programming, and its uses on the Internet today. This book also provides exercises with which to test the knowledge you have gained through the deliberate study of its contents.

''If you wish to participate in the writing or editing of XML - Managing Data Exchange, or if you have an idea as to how this book can be improved, please see the "to-do" list. You may also add your name to the list of contributors.''

Chapters

/Preface/
 * 1) /Introduction to XML/
 * 2) /A single entity/
 * 3) /Basic data structures/
 * 4) /The one-to-many relationship/
 * 5) /The one-to-one relationship/
 * 6) /The many-to-many relationship/
 * 7) /Recursive relationships/
 * 8) /Data schemas/
 * 9) Document Type Definitions
 * 10) /XHTML/
 * 11) /XPath/
 * 12) /XLink/
 * 13) /CSS/
 * 14) /XSLT and Style Sheets/
 * 15) /Cocoon/
 * 16) /Parsing XML files/
 * 17) /XUL/
 * 18) Asynchronous JavaScript and XML (AJAX)
 * 19) /Web Services/
 * 20) /XMLHTTP/
 * 21) /Database and XML/
 * 22) /SyncML/
 * 23) /SVG/
 * 24) /VoiceXML/
 * 25) /DocBook/
 * 26) /SMIL/
 * 27) /XBRL/
 * 28) /WDDX/
 * 29) /RPC/
 * 30) /JSTL/
 * 31) RDF
 * 32) RSS
 * 33)  JDesktop Network Components (JDNC)
 * 34) Namespace
 * 35) Business Intelligence and XML
 * 36) Handling XML with MySQL
 * 37) XML Encryption
 * 38) /XQL/
 * 39) /XQuery/
 * 40) /Exchanger XML Lite/
 * 41) /XML and JDBC/
 * 42) /XForms/
 * 43) XML Web Audio
 * 44) OpenOffice.org & OpenDocument Format
 * 45) KML & Google Earth
 * 46) The ACORD standard - XML in the insurance industry

Appendices

 * 1) /Glossary/
 * 2) /Contributors/
 * 3) /Author guidelines/
 * 4) /XML Editor/
 * 5) /XML Colors/
 * 6) /Stylesheet section workspace/
 * 7) /Resources/

title: XML - Managing Data Exchange


text:
Guide to First Year Teaching/Authors page

In order to track the diversity and qualifications of those writing this book, please post brief information about yourself. It might be helpful to arrange ourselves in alphabetical order.

--AJ Castro supervises a Transition to Teaching Grant from the Department of Education and is instructor/curriculum developer for a Teacher Certification Program in Austin, Texas. He is currently a doctoral student in Curriculum and Instruction at the University of Texas at Austin. His research interests include teacher development and training, induction and retention, educational policy, and curriculum design.

--C. Swan is a teacher in Connecticut where she taught French and Spanish for 25 years and is currently the Technology Integration Resource teacher and Professional Development teacher leader at a prestigious Connecticut high school. She serves on the board of CECA (Connecticut Educator's Computer Association), functions as an advisor to the New York Tech-Forum Conferences sponsored by Technology and Learning Magazine, and has been invited for the past two years to judge the ISTE (International Society for Technology in Education) SigTel Online Learning Awards.

--L. Wahl is currently a writer on education and technology, with an M.A. in Education, who spent ten years as Executive Director of the Center for Accessible Technology in Berkeley. She's writing for a website developed by WestEd and the Alliance for Technology Access, for Leading and Learning with Technology (a magazine from ISTE), and to have authored chapters for Computer Resources for People with Disabilities, and Edutopia: Success Stories for Learning in the Digital Age.


text:
User:Acastro~enwikibooks

Welcome
Hello and welcome to Wikibooks!

Here are some tips to help you get started:
 * You can sign your name on Talk and vote pages using four tildes, like this: ~~~~.
 * Remember to conduct any editing experiments in the sandbox.
 * Check out our help page if you need additional help.
 * Eventually, you might want to read the Manual of Style and Policies and Guidelines.
 * Templates can save your time
 * Remember to maintain a Neutral point of view.
 * Explore, be bold in editing pages, and have fun!

You will find more resources in Community Portal. If you want to ask a question, visit the Study help desk, the Staff lounge, or ask me personally on my talk page.

Good luck!--Derbeth talk 21:20, 16 January 2006 (UTC)

Trouble Shooting
Please take a look at Naming policy. Thank you. --Derbeth talk 21:20, 16 January 2006 (UTC)

title: User:Acastro~enwikibooks


text:
User talk:68.36.124.153

You have been blocked for vandalism and as an open proxy. --Derbeth talk 21:29, 16 January 2006 (UTC)

title: User talk:68.36.124.153


text:
User talk:Janemorris

Please do not add commercial links to Wikibooks. Wikibooks is not a vehicle for advertising or a mere collection of external links. See the welcome page if you would like to learn more about contributing to our project. Thanks. --Derbeth talk 21:30, 16 January 2006 (UTC)

title: User talk:Janemorris


text:
User:Snowcatben~enwikibooks

I am a thirteen years old and edit wikijunior books in my spare time.

title: User:Snowcatben~enwikibooks


text:
Talk:Java Programming/Preventing NullPointerException

I think the majority of these suggestions are fairly worthless.
 * Sometimes it is necessary to create an object outside of a block and it must be initilaized. The most efficient way is to use a null.
 * Making all fields final does nothing. A final field means it cannot be changed and an object often needs to be mutable.  A good programmer will always check if something is null if he is unsure
 * Using the {...} constructor for arrays is only useful if you are filling it as it is defined. Again, the new Object[...] syntax is fine if the programmer is smart enough not to check for null data before using it.

I think you mean to declare a variable outside a block, e.g., in the following code I want to find a String that starts with a b.

String[] strings={"banana","apple","pear"}; String found=null; for (int a=0;a<strings.length && found==null;a++) if (strings[a].startsWith("b")) found=strings[a]; System.out.println(found);

This would be simpler without null:

String[] strings={"banana","apple","pear"}; for (int a=0;a<strings.length;a++) if (strings[a].startsWith("b")) System.out.println(found);

If this doesn't clarify things, please provide a code example where null is preferable.

Yes, an object often needs to be mutable. But often an object doesn't need to be mutable, and where that is true, final may be useful. Note that the rules are not intended to be applied to ALL code.

Using {...} for arrays is only useful if you are filling it as it is defined. I absolutely agree. If you are not filling it as it is defined, then you should be using a Collection, which will grow as you fill it. Again, provide a code example.

I think assuming that programmers are smart is a bad idea. Even good programmers have bad days.

Most of the case you want to initialize object references to null, when you have try block, you want to create the object in the try block, and also you need the object in the catch block for logging porposes. Ervinn 23:48, 9 August 2006 (UTC)

Make all fields final
The final keyword will convert the variables to constants, but what if I need a variable. I'd like to delete that whole section 'Make all fields final', is nothing to do with preventing NullPointerExceptions. Ervinn 03:19, 21 August 2006 (UTC)

Do not use reflection (thus cheating to create an array full of null pointers)
I'd like to delete this one also, because usually we would use reflection only when that is needed. Ervinn 03:26, 21 August 2006 (UTC)
 * I agree with you. It should not appear here. Ftiercel (discuss • contribs) 18:46, 9 August 2013 (UTC)


text:
XHTML/DTD (Document Type Definition)

Introduction
An XHTML DTD describes the allowed syntax and grammar of XHTML markup. Every XHTML document must start with a DTD declaration and a line of code that declares that you are starting to write XHTML code.

This is the mandatory minimum way to start an XHTML document:

The Three Document Type Definitions
There are currently three XHTML 1.0 document types:
 * Strict
 * Transitional
 * Frameset

XHTML 1.0 Strict
This is used when the user wants a clean markup, free of presentational clutter. Use this in conjunction with Cascading Style Sheets.

XHTML 1.0 Transitional
Use this when taking advantage of XHTML's presentational features and when you want to support browsers that do not understand Cascading Style Sheets. This is the one that is favored to use among developers and is used commonly.

XHTML 1.0 Frameset
Use this when you want to use XHTML Frames to partition the browser window into two or more frames.

XHTML 2.0
XHTML was a working draft, but its development was halted in favor of HTML 5.0. Even though the specification will not be completed, its doctype is:

title: XHTML/DTD (Document Type Definition)


text: Learning Theories

title: Learning Theories


text:
User:Bobhurt~enwikibooks

Bob Hurt
23:17, 16 January 2006 (UTC)

Bob Hurt entered the world as Robert Mathis Hurt, Jr. on 29 May 1943 in Houston Texas. In 2001 he retired from development and producing computer test products. He now lives in Clearwater, Florida, USA, with his lovely wife Maria, a native of Puerto Rico. For hobbies, Bob travels, plays classical guitar, reads detective, lawyer, and historical adventure novels, cooks, sews, writes religious, social, and political commentary, and maintains mailing lists and his web sites, among which are:

 * Bob Hurt's personal site
 * Cancercure
 * PC Maintenance tools
 * Bob's Blog

Bob has been a student of The Urantia Book since 1971 and enjoys discussing its teachings with genuine truth-seekers.

title: User:Bobhurt~enwikibooks


text:
TI-Lists/Mathematical List Functions

There are several kinds of functions that use or create lists. These functions are found in the LIST menus. The LIST menus are accessed by the 2nd function of the STAT key. It is just below the DEL key. There are a variety of mathematical operations that can be done on lists. These are found in the LIST MATH menu. These functions result in a single number answer.

min( and max(
The minimum function (2nd LIST MATH 1) results in the smallest number in the list. The maximum function (2nd LIST MATH 2) gives the largest number in the list.

 * {4,7,2,5} STO> L1
 * {4 7 2 5}
 * min(L1)
 * 2
 * max(L1)
 * 7
 * min({-3,-8,-1,-4})
 * -8
 * max({-3,-8,-1,-4})
 * -1

mean(
The averaging function (2nd LIST MATH 3) calculates the arithmetic mean of the numbers in the list by adding them up and dividing by the number of items added.

 * {2,3,5,6,14} STO> L1
 * {2 3 5 6 14}
 * mean(L1)
 * 6
 * mean({40,23,64,14,51})
 * 38.4

median(
The median function (2nd LIST MATH 4) finds an average in a different way from the mean. If the list of numbers were listed in order from smallest to largest, the median is the middle number.

 * {2,3,5,6,14} STO> L1
 * {2 3 5 6 14}
 * median(L1)
 * 5
 * median({40,23,64,14,51})
 * 40

If there are an even number of numbers, there is no single middle number. The median in this case if the mean of the two middle numbers. (Add them and divide by 2.)

 * median({1.3,1.8,1.1,1.6})
 * 1.45

The result, 1.45, is half way between 1.3 and 1.6.

sum( and prod(
The sum function (2nd LIST MATH 5) adds up all the items in a list. The product function (2nd LIST MATH 6) multiplies all the items in a list together.

 * sum({3,5,6})
 * 14
 * prod({3,5,6})
 * 90
 * sum({-4,-2,5,10})
 * 9
 * prod({-4,-2,5,10})
 * 400
 * prod({4,3,2,1,0,-1})
 * 0

stdDev( and variance(
The standard deviation function (2nd LIST MATH 7) and the variance function (2nd LIST MATH 8) give the results of their statistical calulations.

 * stdDev({4,5,6,8,11})
 * 2.77
 * variance({4,5,6,8,11})
 * 7.7

Links

 * Previous: List Operation Functions

 * Next: Graphing with Lists

 * Back to: TI-Lists

title: TI-Lists/Mathematical List Functions


text:
User:Black Stone157

Hello, I joined Wikipedia on 1-16-06. I have used wikipedia's resources for the past two years now for my research, and I plan to become a helpful contributor to the Wiki community.

title: User:Black Stone157


text:
German/Level I/Kleidung/Problems

Introduction - Lesson 4 - Lesson 5 - Lesson 6

../Problems/ - ../Answers/ - ../Test/ - ../Test Answers/

Lesson 4 ~ Kleidung Problems

Kurfürstendamm
Translate the following from German to English.

Angestellter Männerabteilung Warenhaus Einkaufszentrum Kassierer Einzelhandelsgeschäft Frauenabteilung Geschäft Können Sie mir helfen, meine Größe zu finden?

Section Answers>>

KaDeWe
List what is on each floor in KaDeWe. Answer has to be in German.

First Floor ________________ Second Floor ________________ Third Floor ________________ Fourth Floor ________________ ________________ Fifth Floor ________________ ________________ ________________ Sixth Floor ________________

Section Answers>>

Electronics
Match the following words to their translations.

Section Answers>>

Bedding
Translate the following sentences either from German to English or vice versa.

 * 1) Bett-Rock
 * 2) Kopfkissen
 * 3) Does the pillow case fit the pillow?
 * 4) Decken
 * 5) Pillow Case
 * 6) Bedding
 * 7) Blätter

Section Answers>>

Clothing
List all of the vocabulary in the this section, both English and German. Try not to go to your notes or the lesson page.

Section Answers>>

Separable Prefix Verbs
Review the previous Lesson --- Clothing-Related Verbs. Now list of the verbs that are Separable-Prefix Verbs.

 * 1) _____________
 * 2) _____________
 * 3) _____________
 * 4) _____________

Section Answers>>

Colors
List all of the colors of the rainbow in German. They can be in any order.

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

Section Answers>>

Kleidung/Problems

title: German/Level I/Kleidung/Problems


text:
User:RBlowes~enwikibooks

>_> Might want to check my profile over at wikipedia, same name etc.

title: User:RBlowes~enwikibooks


text:
TI-Lists/TI-86

This page is to identify and detail the differences between the TI-83 and the TI-86 graphing calculators. The sections below will detail the differences in keyboard layout, differences in keystrokes, and differences in functionality.

List menu
The LIST menu is the 2nd function on the subtraction key.

Stat menu
The Stat menu is the 2nd function on the addition key.

List Edit menu
The List Edit menu can be accessed by two different routes. From the List menu it is at F4. From the Stat menu it is at F2. The lists originally displayed are the ones that are used for the statistical calculations: xStat, yStat, and fStat.

Curly Brackets
The curly brackets are in the LIST menu.

Comma
The comma key is left of the 4 key.

Saving values in a variable
Pressing the STO> key on the TI-86 puts the calculator into Caps Lock mode. Since most variable names are made up of letters, this is considered handy by most TI-86 users.

List variable names
Any variable name can be used for a list. Most people avoid single letter names, for they are mostly used for numeric varables. Press the STO> key and type in the list name.

Links

 * TI-Lists(TI-83)

 * TI-Lists/TI-98

title: TI-Lists/TI-86


text:
German/Level I/Kleidung/Answers

Introduction - Lesson 4 - Lesson 5 - Lesson 6

../Problems/ - ../Answers/ - ../Test/ - ../Test Answers/

Lesson 4 ~ Kleidung Answers

Kurfürstendamm
Employee Men's Section Department Store The Mall Cashier Retail Store Women's Section Store Can you help me find my size?

Continue Lesson>>

KaDeWe
First Floor Männerkleidung Second Floor Frauenkleidung Third Floor Kinderabteilung Fourth Floor Elektronik Küchenbedarf Fifth Floor Beleuchtung Bettwäsche Spielwaren Sixth Floor Lebensmittel

Continue Lesson>>

Electronics

 * g
 * f
 * e
 * c
 * a
 * b
 * d

Continue Lesson>>

Bedding

 * 1) Bed Skirt
 * 2) Pillow
 * 3) Passen die Kopfkissenbezüge auf das Kopfkissen?
 * 4) Blankets
 * 5) Kopfkissenbezug
 * 6) Bettwäsche
 * 7) Sheets

Continue Lesson>>

Clothing
Skirt             "Der Rock" Pullover          "Der Pullover" Scarf             "Das Tuch" Coat              "Der Mantel" Shirt             "Das Hemd" Sweater           "Der Pullover" Necktie           "Der Schlips" Jacket            "Die Jacke" Trousers/pants    "Die Hose" Hat               "Der Hut" Shoe              "Der Schuh" Sock              "Die Socke" Glove             "Der Handschuh" Blouse            "Die Bluse" Size              "Die Größe" Color             "Die Farbe" Cotton            "Die Baumwolle" Leather           "Das Leder" Rayon             "Die Kuntseide" Small             "Klein" Medium            "Mittel" Large             "Groß" Extra-Large       "Extragroß"

Continute Lesson>>

Separable Prefix Verbs

 * 1) Aussehen
 * 2) Anprobieren
 * 3) Anziehen
 * 4) Anhaben

Continue Lesson>>

Colors

 * 1) Rot
 * 2) Blau
 * 3) Grün
 * 4) Orange
 * 5) Veilchen
 * 6) Gelb
 * 7) Indigo

Kleidung/Answers

title: German/Level I/Kleidung/Answers


text:
Blender 3D: Noob to Pro/Modeling Realistically

Everyone who starts a new career or hobby in 3D Modeling also seems to look around their immediate environment for things to model. Things like your computer monitor, your keyboard, and even the desktop which they are resting are all common "first models." Developing an eye for geometry takes time and this is a great chance to practice.

For this tips and techniques discussion, I'll start with the concepts of furniture and walls, but the ideas really extend to anything and everything you can model in Blender, from spaceships to fantasy demon-women, from your barbecue deck blueprints to biologically accurate squids.

Assemble Things, Don't Chisel Them
Let's start with the furniture around you.

You may think it's easy to model your desk using a couple of boolean operations on cubes. But it rarely comes out looking quite right. It seems like such a good idea at first. Then you find that the drawers won't open realistically. The corners are all amazingly sharp and crisp. The writing surface seems to be at the wrong scale for thickness. The woodgrain goes in the same direction everywhere. You then realize it will be hard to bevel just the few edges that need beveling. The more you look at it, even with good render settings, the more it looks like dollhouse furniture instead of a real life, full size desk.

Real furniture is not chiseled out of a half-ton cube of mahogany, because trees don't grow that thick, and it's a real waste to chip out the spaces for drawers. Instead, cabinetmakers tend to assemble a piece of furniture from many component parts. Think of those "self-assembly" kits from the local superstore, or even the showroom examples from a nearby unfinished knotty pine store.

Model several kinds of boards and fittings, then copy and assemble them appropriately. You don't need to model every nail and dowel, and you don't even need to know what a dovetail joint is. But you can make realistic furniture when you build things from their natural components.

 * Cut lumber in a variety of sizes and thicknesses.
 * Measure real example furniture and take note of the construction details.
 * Choose varying woodgrains by duplicating materials and adjusting them to be more individual.
 * Align those woodgrains or other materials in an appropriate direction and scale for the model.
 * Bevel just the parts or edges which are naturally worn or intentionally beveled.
 * Any cloth, glass or metal fittings are separate components using their own materials.
 * Create an "Empty" type object, give it a descriptive name, and parent all of the pieces to it.

There are a couple more benefits to this form of component modeling:

 * Working with things made from multiple real materials is easier: one object, one material.
 * The model is more flexible, because they can be reconfigured to other styles more easily.
 * Components come in handy for other models: adapt a desk's drawers in kitchen cabinets and bedroom furniture.

Separate Objects for each Material

A common question for new modelers is how to make one mesh that uses more than one material. For example, a skateboard with metal trucks, rubber tires, and a wooden deck. While Blender does provide an interface to allow such a combination, it is not usually the best approach for modeling realistically.

If you model the skateboard as separate parts, based on the way different real parts are assembled, then you have a lot more control over the final model. You can replace the wheels or use trucks of different styles later. You can adjust the mesh that defines the shape of the deck, without having to reassign the areas that should be one material or the other. And lastly, you can choose to use subsurface tricks on the various parts, while avoiding them on other parts. Even if the whole model needs subsurfaces, it becomes a bit hard to control where one material starts, and another material ends.

Removing the Fourth Wall
Just as with furniture, you may model your first building interior as a hollowed-out cube. It seems straightforward to make a big cube, turn it inside out, and call it a living room. There are a lot of drawbacks to working with a room that was carved out of a single chunk of solid rock.

Buildings and rooms are assembled from parts. Just like the furniture modeling tip, design your rooms as a collection of separate pieces.

 * You don't need to measure out the internal beams and joists, but remember they're there.
 * Each interior or exterior wall should be its own object or assembly.
 * Take care to note the correct dimensions and placement of doorways, windows, ceiling.

The benefits of a component-modeled interior include:

 * Easier to see inside, just hide some walls on a different layer.
 * Walls are much easier to move around to reconfigure the room layout.
 * The same modeling work on one area can be copied to other rooms more easily.
 * A more realistic architecture with consistent scaling is achieved quickly.

Proportions and Measurements
For realism, it's vitally important to get the right proportions for familiar objects. If your audience sees a bookshelf with 5" thick shelves, or a human hand which has a 5" long thumb, their brain is going to tell them that something is wrong. They might not be able to decide why, but they'll tell you it looks fake.

Even when you're animating fantasy characters, you should develop an understanding for proportion. Many cartoon characters have very large heads when compared to their bodies; this allows room for greater expression and makes the characters seem younger. Deciding how many "heads high" each character should appear will ensure that your figures all maintain proper proportions to each other and to their environment.

To get good proportions, you need to think about measurements.

 * Grab a ruler or find some existing blueprints.
 * Think in terms of those measurements for the duration of the project.
 * Choose a base scale that will let you work comfortably within a 500x500x500 unit volume.
 * Blender limits cameras to 1000 unit distances, for better numerical accuracy.

You can mix and match base units, by using Empty objects as parents. For example, you can model your furniture in inches or centimeters, and model your house in feet or meters. Then when you append your bed.blend's objects, just parent that bed to a new Empty object, and scale the Empty. This will conveniently scale all of the separate component pieces of the object together.

There's only one big wrinkle with working with multiple scales: materials should be designed with a certain base scale in mind. Many material surface properties are scaled according to the units you choose for a given object, or the world units. Just consider this as you design, and check your work critically.


text:
Mac OS X Tiger

 * 1) About this Wikibook
 * The scope and motivation behind this Wikibook.
 * 1) Using this Wikibook
 * Quick guide on how to use and participate in this book.
 * 1) Running Mac OS X Tiger today
 * A retrospective for modern users of macOS.
 * 1) Introduction
 * Introduction to the OS X Tiger.
 * 1) The Desktop
 * A gentle first lesson in using your Mac.
 * 1) A Quick Look Under the Hood
 * A simple view of what is lurking beneath the UI.
 * 1) The Mac Interface
 * A follow-up to the first chapter that finishes explaining the Mac Interface.
 * 1) Using the Finder
 * An introduction to browsing files on your Mac using the Finder.
 * 1) Advanced Finder Tricks
 * An advanced chapter that helps you get the most out of the Finder.
 * 1) Meet the Applications
 * A complete look at all of the applications included with Tiger.
 * 1) Utilities
 * Instructions for using the various Utilities included with Mac OS X.
 * 1) System Preferences
 * Learn how to adjust your Mac's settings to your liking.
 * 1) User Accounts
 * Learn about accounts and understand the Mac OS X account system.
 * 1) Networking your Mac
 * A guide to connecting your Mac to other Macs, PCs, and the Internet.
 * 1) Using your Mac as a Web Server
 * Guide to using Mac OS X as a web server.
 * 1) Printing, Faxing, and Scanning
 * Connect a printer and scanner to your Mac and learn how to send faxes.
 * 1) Handwriting and Speech
 * Teach your Mac how to recognize your voice and your writing.
 * 1) Installing Tiger
 * Learn how to upgrade an older version of Mac OS X to Tiger.
 * 1) Advanced Concepts
 * Insight into the UNIX background and inner workings of Mac OS
 * 1) Appendices
 * A: The Keyboard Shortcut Cheat Sheet
 * Learn keyboard shortcuts to speed up your work flow.
 * B: Mac OS X Troubleshooting
 * Fix problems and determine what is causing your Mac or its applications to crash.
 * C: Directory of Mac Models
 * A directory of all modern (G4, G5, or Intel) Mac models.
 * D: Top 30 Questions
 * This appendix answers the top 30 questions people ask when using Mac OS X.
 * E: Top 30 Mistakes
 * This appendix lists the top 30 mistakes new Mac users make.
 * 1)  Glossary
 * Find a term you don't know? You might find it in the glossary.
 * 1) Pages to be incorporated (or deleted) /Locally increased lead/, /Spaces disappear/

title: Mac OS X Tiger


text:
User:WCFrancis~enwikibooks

placeholder

title: User:WCFrancis~enwikibooks


text:
User talk:WCFrancis~enwikibooks

placeholder

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 WCFrancis. To make sure that both of you can use all Wikimedia projects in future, we have reserved the name WCFrancis~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:50, 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:38, 19 April 2015 (UTC)

title: User talk:WCFrancis~enwikibooks


text:
User:JeffreyAllen1975~enwikibooks

I'm User:JeffreyAllen1975. I am new to WikiBooks (Think free, Learn free). I like to cook and bake, so I will be learning some new things here. I am 30 years old and live in Columbus, Ohio, USA. I am a User member of Wikipedia (the Free Encyclopedia).

title: User:JeffreyAllen1975~enwikibooks


text:
Russian/Vocabulary

Russian Vocabulary

 * /Automotive/
 * /Adjectives/
 * /Around Town/
 * /Arts/
 * /Body Parts/
 * /Cardinal Directions/
 * /Countries/
 * /Clothing/
 * /Colors/
 * /Computing/
 * /Emergency Room/
 * /Rooms and Furniture/
 * /Days of the Week/
 * /Family/
 * /Food/
 * /Geometry/
 * /Household/
 * /Household Chores/
 * /Months/
 * /Music/
 * /Plants and Animals/
 * /Professions/
 * /School/
 * /Seasons/
 * /Shops and Services/
 * /Sports/
 * /Time/
 * /Tools/
 * /Travel/
 * /Verbs of Motion/
 * /Weather/
 * Easily Confused Words

title: Russian/Vocabulary


text:
Russian/Vocabulary/Colors

These memory aids aren't true! They're nonsense made up to help you remember the meanings of Russian words.

Colors
Russian Rainbow:Русская ра́дуга

title: Russian/Vocabulary/Colors


text:
Russian/Vocabulary/Rooms and Furniture

Rooms and Furniture
Russian rooms usually end in ная.

title: Russian/Vocabulary/Rooms and Furniture


text:
Russian/Vocabulary/Days of the Week

These memory aids aren't true! They're nonsense made up to help you remember the meanings of Russian words.

Days of the Week
Russians don't capitalize days of the week.

title: Russian/Vocabulary/Days of the Week


text:
Russian/Grammar

Grammar

General Russian Grammar

 * Introduction: How important is good grammar?
 * Why Russian has no word for 'the'
 * Что and какой: "what" vs. "which"

Nouns and adjectives

 * The three genders, plus plurals
 * Introducing the six cases
 * Nominative case: subjects
 * Accusative case: direct objects
 * Prepositional case: location or activity
 * Genitive case: possession, negation
 * Dative case: indirect objects
 * Instrumental case

 * Adjectives

Verbs and pronouns

 * Conjugating verbs
 * Conjugating verbs in the past tense
 * Conjugating verbs in the future tense

 * Pronouns
 * Personal Pronouns
 * Possessive Pronouns
 * Interrogative Pronouns

title: Russian/Grammar


text: Microbiology/Summary of differences between Bacteria, Archea and Eukaryotes


text:
User talk:Snowcatben~enwikibooks

Nice to meet you and great work on Wikijunior: Dinosaurs
Why don't you put your name on the Wikijunior book you contributed to? Thanks for helping us get the Stegosaurus right. They are formidable creatures! I'm glad you're doing such good writing at such an early age, and for kids not much younger than you. You will be able to give us a perspective. --EuropracBHIT 04:31, 17 January 2006 (UTC).

Your account will be renamed
Hello,

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

Unfortunately, your account clashes with another account also called Snowcatben. To make sure that both of you can use all Wikimedia projects in future, we have reserved the name Snowcatben~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:42, 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:30, 19 April 2015 (UTC)

title: User talk:Snowcatben~enwikibooks


text:
Russian/Grammar/Gender

This page explains the concept of gender in language. If you have studied another language that has gender, such as French or Spanish, and so are familiar with grammatical gender, feel free to skip this section.

What gender is
'Gender' is a way of categorising nouns in a language. In most languages, words are described as being 'masculine' or 'feminine', and a lot of languages, including Russian, also have words described as 'neuter' (i.e., neutral, or no gender). In languages like French, the gender of a particular word is mostly arbitrary: there's nothing in the word peau ('skin') that tells us it's a feminine word, and so a word's gender is largely just something you have to learn. Fortunately, in Russian, gender can be predicted. Like most other things in Russian, the gender of a noun is denoted by what letters are on the end of the word:
 * Masculine nouns end in a consonant: б, в, г, д, ж, з, й к, л, м, н, п, р, с, т, ф, х, ч, ц, ш, or щ. Notice that й is a consonant. For example, кролик ( KRO -leek, 'rabbit') ends in a consonant, -к, so it is a masculine word.
 * Feminine nouns end in а or я. For example, собака (so- BA -ka, 'dog') ends in an -a, so it is a feminine word.
 * Neuter nouns end in о or е. For example, письмо (pees- MO , 'letter') ends in an -o, so it is grammatically neuter.
 * Nouns ending in -ь can be either masculine or feminine. These just have to be memorised.

So, in Russian, nouns have an intrinsic property called 'gender', which comes in three types: masculine, feminine, and neuter. But why is this important?

What gender is for
To learn Russian, you have to be able to know the gender of a noun when you use it. When you modify a noun with an adjective ('nice dog', 'Red Square', 'old door'), the adjective changes its ending to match the gender of the word it's modifying. So although adjectives don't have an intrinsic gender, they have a number of different endings they can use to match the gender of their noun. The same is true for possessive pronouns: the 'my' in 'my dog' (моя собака) and 'my table' (мой стол) are different, as the gender of 'dog' (собака, f) and 'table' (стол, m) are different. Personal pronouns (I, we, they, etc) don't usually have any inherent gender, instead taking on the gender of the thing they're referring to - though third-person singular pronouns do have specific genders: он ('he'), она ('she'), and оно ('it'). Gender also influences how you form the past tense of verbs: The 'wrote' in 'He wrote' (он написал) and 'she wrote' (она написала) are different, as the genders of the subject of the verb, 'he' and 'she', are different.

Gender affects a lot of different parts of Russian grammar, and so is an important part of learning Russian. Fortunately, it's easy to learn, and easy to use.

Plurals
Russian uses plurals in much the same way as English. The rules for forming the plural depend on which grammatical case the word is in. However, the important thing here is that the rules are largely the same for all nouns, regardless of gender. This carries over into adjectives too: the endings they take on when their noun is plural, are independent of gender. There's no 'masculine plural' and 'feminine plural' - there's just, 'plural'.

As such, it is perhaps easiest to think of plurals as a 'fourth gender', and this is the way summary tables in this Wikibook will be presented.

Examples
This section lists some common words by their gender.

Masculine

 * Стол - Table
 * Стул - Chair
 * Театр - Theatre
 * Музей - Museum
 * Мужчина - Man
 * Брат - Brother
 * Сын - Son
 * Отец - Father
 * Муж - Husband
 * Дядя - Uncle (though it has a 'feminine' ending and conjugates like a feminine noun, 'uncle' is 'inherently' masculine, and so дядя is too)
 * Поезд - Train
 * Самолёт - Plane
 * Дом - House/Home
 * Магазин - Shop
 * Город - City
 * Кролик - Rabbit
 * Конь - Horse (An adult male horse)

Feminine

 * Лошадь - Mare (An adult female horse)
 * Книга - Book
 * Машина - Car
 * Гитара - Guitar
 * Россия - Russia
 * Англия - England
 * Франция - France (Note that countries often end in -ия, which makes them decline in unusual ways)
 * Женщина - Woman
 * Сестра - Sister
 * Дочь - Daughter
 * Мать - Mother
 * Жена - Wife
 * Тётя - Aunt
 * Весна - Spring
 * Земля - Earth
 * Дверь - Door
 * Мебель - Furniture
 * Жизнь - Life
 * Тетрадь - Notebook

Neuter

 * Солнце - Sun
 * Небо - Sky
 * Окно - Window
 * Письмо - Letter
 * Лето - Summer
 * Золото - Gold
 * Молоко - Milk
 * Мясо - Meat
 * Тело - Body
 * Равновесие - Balance
 * Кресло - Armchair
 * Море - Sea
 * Платье - Dress

Plural

 * Столы - Tables
 * Стулья - Chairs
 * Театры - Theaters
 * Музеи - Museums
 * Мужчины - Men
 * Братья - Brothers
 * Сыновья/Сыны - Sons
 * Отцы - Fathers
 * Мужья - Husbands
 * Дяди - Uncles
 * Поезда - Trains
 * Самолёты - Planes
 * Дома - Houses
 * Магазины - Shops
 * Города - Cities
 * Кролики - Rabbits
 * Кони - Horses (Adult male horses)
 * Лошади - Horses
 * Книги - Books
 * Машины - Cars
 * Гитары - Guitars
 * Женщины - Women
 * Сёстры - Sisters
 * Дочери - Daughters
 * Матери - Mothers
 * Жены - Wives
 * Тёти - Aunts
 * Письма - Letters
 * Тела - Bodies

title: Russian/Grammar/Gender


text:
Russian/Grammar/Adjectives

Adjectives in Russian are simply words that modify nouns. The endings of adjectives change according to the gender, number, and case of the nouns they modify. The rules for changing adjectives is often a lot easier than the rules for changing nouns themselves. There are six cases, and so six main ways of conjugating adjectives to fit the noun they modify. Finally, there are the short adjectives, detailed at the end.

Nominative adjectives
The default form of an adjective is its nominative, masculine, singular form, and this is the form given in dictionaries. All Russian adjectives in their default form end in either -ый, -ий, or -ой, and conjugating them is as simple as removing this default ending and adding the new one.

Hard endings
Most Russian adjectives have a hard ending. In fact, all three endings (-ый, -ий, and -ой) are 'hard'. The only exception is those adjectives ending in -ний, which we'll discuss in a moment. For now, we only need to know that an adjective can have four different endings in the nominative case: masculine, feminine, neuter, and plural.

 * 1) When adjectives modify a masculine noun, they use their default ending. Most adjectives have the -ый ending, pronounced 'ee', less common is -ий, also pronounced 'ee', and less common still is -ой, pronounced 'oy'. For example, "new pencil" is новый карандаш (pronounced  NO -vee ka-ran- DASH ). As a memory aid, remember that masculine nouns end in a consonant or й, and the masculine ending for adjectives end in й.
 * 2) With feminine nouns, the adjective ends in -ая. An easy way to remember this is to remember that a and я are what go on the end of feminine nouns. For example, "new car" is новая машина (pronounced  NO -vah-yah ma- SHEE -na").
 * 3) With neuter nouns, the adjective ends in -ое. Like with feminine nouns, you can remember this as the two letters that go on the end of neuter nouns, o and e. For example, "new dress" is новое платье (pronounced  NO -vo-yeh PLAT -ye).
 * 4) With plural nouns, regardless of gender, the adjective replaces -ый or -ой with -ые ('ee-ye'), or it replaces -ий with -ие ('ee-ye'). For example, "these good new students" is эти хорошие новые студенты (pronounced  EH -tee kha- RO -shee-ye NO -vih-yeh stoo- DYENT -ee). As a memory aid, think of plural as one masculine and one neuter object. Take the first letter from the masculine ending (ы) and the second letter from the neuter ending (e) and you get ые.

Soft endings
One rather rare exception to the above rules is if the adjective ends in the so-called 'soft' ending, -ний, such as синий (dark blue). This doesn't conjugate like usual -ий endings, and instead has the following rules:
 * 1) The ending is -ний when modifying a masculine noun. For example, the dark blue table - синий стол.
 * 2) The ending is -няя ('nya-ah') when modifying feminine nouns. For example, the dark blue book - синяя книга
 * 3) The ending is -нee ('nye-eh') when modifying neuter nouns. For example, the dark blue letter - синее письмо
 * 4) The plural ending is -ние ('nee-ye'), as per usual. For example, the dark blue books - синие книги

5- and 7-letter spelling rules
When forming the nominative plural of nouns, recall that if the stem ends in г, ж, к, х, ч, ш, or щ, you add и, not ы. This 7-letter spelling rule also applies to adjectives. As a memory aid, these letters include the non-English-looking 'hushes' (ч, ш, щ, ж) and three letters pronounced at the back of the throat (г, к, х). This is why adjectives whose stem ends in one of these seven letters have the -ий ending instead of -ый.

Four of these letters are also in the 5-letter spelling rule. This states that, if the stem ends in ж, ц, ч, ш, or щ, any unstressed o in an ending is instead written as e. For example, 'the good letter' is written хорошее письмо (and not хорошое письмо).

Accusative adjectives
Adjectival endings in the accusative case are similar to noun endings, in that they all use endings from other cases, with the exception of feminine nouns.

Masculine adjectives take the nominative form if their noun is inanimate, and neuter adjectives always take their nominative form. For example, I want a new chair and a new letter - Я хочу новый стул и новое письмо. However, if the modified masculine noun is a person or animal, then both it and its adjectives take the genitive form. For example, I want a new rabbit - Я хочу нового кролика.

Feminine adjectives simply have -ую in the accusative. As a memory aid, these are the two letters that feminine nouns take on in the accusative case. For example, My Russian cat likes my new dog - Моя русская кошка любит мою новую собаку. One exception is adjectives with the soft ending: they take -юю in the accusative instead.

Plural adjectives, regardless of gender, are also split according to animation: inanimate plural adjectives take their nominative form, while animate ones take their genitive form.

Genitive adjectives
The genitive case is relatively easy, especially compared with how nouns decline in this case. Adjectives use the same ending for both masculine and neuter nouns: -ого. If the adjective has the soft ending or ends in the 5-letter rule (ш, щ, ч, ж, ц), it ends in -его. Note that with these genitive endings there's a new pronunciation rule: -ого is pronounced 'oh-vo', not 'oh-goh', and -его is pronounced 'ye-vo', not 'ye-goh'. This unusual pronunciation is only on genitive (and accusative) endings; мно́го, 'much/many', is pronounced 'mno-ga'.

Like masculine and neuter adjectives, the feminine form has two endings: -ой ('oy'), or -ей ('yay') for soft adjectives and those ending in the 5-letter rule.

The plural form also has two endings: -ых, or -их, if the adjective's stem ends in one of the 7-letter-rule letters (х, г, к, ш, щ, ч, ж).

Examples:
 * My new husband has many friends - У моего нового мужа есть много друзе́й
 * Three kilograms of fresh new cheeses - Три килогра́мма свежих новых сыров
 * A kilogram of beautiful American apples - Килогра́мм краси́вых америка́нских я́блок
 * I arrived from my old house - Я пришёл из моего старого дома

Instrumental adjectives
The instrumental case is used to denote nouns which are the means by which a verb is carried out, such as, "I am writing with a pen" (Я пишу́ ру́чкой).

To form masculine and neuter adjectives, the ending is -ым. If the adjective ends in the 5-letter rule (ш, щ, ч, ж, ц) or the soft ending (-ний), then the instrumental ending is -им. For example, 'I wrote with a good new pencil' - Я написал хорошим новым карандашом.

Feminine adjectives end in -ой. For adjectives ending in the 5-letter rule or soft ending, the instrumental ending is ей. These are the same as the feminine singular endings for the genitive, dative, and prepositional cases. For example, 'I want a meeting with an interesting Russian woman' - Я хочу встречу с интересной русской женщиной.

To form the instrumental plural, all adjectives have -ыми. Those which end in -ий have -ими.

Examples:
 * I live between two new houses - Я живу́ ме́жду двумя но́выми дома́ми
 * It's under the good books - Оно́ под хоро́шими кни́гами
 * I am studying Russian - Я занима́юсь ру́сским языко́м

Dative adjectives
The dative case denotes the secondary object of a verb. For example, 'I wrote a letter to him' would place 'letter' in the accusative case as it's the direct object of the verb, while 'to him' would be the word 'him' placed in the dative case. Thus, it translates to Я написал письмо ему. Adjectives in the dative case conjugate as follows:

Masculine and neuter adjectives end in -ому. If the adjective ends in the 5-letter rule (ш, щ, ч, ж, ц) or the soft ending (-ний), they end in -ему. If you already know the prepositional form, you will see this is prepositional form, with an у attached. This can be a useful memory aid, as most dative masculine and neuter nouns end in -у.

Similarly, feminine adjectives in the dative actually are identical to their prepositional form (and their instrumental and genitive forms as well): -ой, unless the stem ends in the 5-letter rule, or the adjective ends in the soft ending, in which case -ей.

Plural adjectives are like plural nouns in the dative form, in that they're the same as their instrumental cousins, only without the end и. This also means that they're the same as their instrumental singular forms. In other words, dative plural adjectives end in -ым, unless they end in the 7-letter rule (г, к, х, ш, щ, ж, ч), in which case the ending is -им.

Examples:
 * She wants to speak to your young cousin - Она́ хо́чет поговори́ть с ва́шей молодо́й двою́родной сестро́й
 * He walked along the new street - Он шёл по но́вой у́лице
 * I gave five pounds to the nice old lady - Я дал пять фу́нтов симпати́чной ста́рой же́нщине

Prepositional adjectives
The final case is the prepositional case. This is only used after four prepositions (в, на, о(б), and при), as discussed more thoroughly on its dedicated page. As you may guess by now, there is an ending for masculine and neuter adjectives, an ending for feminine adjectives, and an ending for plural adjectives, and they all have alternatives if the adjectival stem ends in the 5- or 7- letter rule.

The ending for masculine and neuter endings is the same as that for dative adjectives, minus the end vowel: -ом. If the stem ends in the 5-letter rule (ш, щ, ч, ж, ц), or the adjective has the soft ending -ний, the ending is -ем. For example, 'They were talking about a good new cinema' - Они говорили о хорошем новом кино (note that кино, 'cinema', is indeclinable).

Feminine adjectives have the same ending as in the genitive, dative, and instrumental cases: -ой, or, if the adjective ends in the 5-letter rule or the soft ending, -ей. For example, 'They were in the old Russian school' - Они были в старой русской школе.

Plural adjectives in the prepositional end in -ых. If the stem ends in the 7-letter rule (г, к, х, ш, щ, ж, ч) or the adjective has the soft ending, the plural prepositional ending is -их. For example, 'They like to live in big red houses' - Они любят жить в больших красных домах.

Examples:
 * I want to live in a clean new city - Я хочу́ жить в чи́стом но́вом го́роде
 * She's in the blue apartment, not the white apartment - Она́ в си́ней кварти́ре, не в бе́лой кварти́ре - note the soft ending of си́ний/си́ней
 * Let's talk about my beautiful young Russian wife! - Давайте говорить о мое́й краси́вой молодо́й ру́сской жене́!

Russian/Grammar/Prepositional case

Summary
A summary of all adjectival endings for each case, gender, and number, can be found here.

The masculine and plural accusative endings are split between inanimate endings on the left, and animate endings on the right. Most other endings come in pairs. For singular endings, only use the right-hand one (with an e in it) after adjectival stems that end in the 5-letter rule (ш, щ, ч, ж, ц). For plural endings, only use the right-hand one (with an и) after the 7-letter rule (г, к, х, ш, щ, ж, ч; that is, any adjective whose default ending is -ий). For adjectives that have the soft ending (-ний), always use the right-hand ending. Finally, notice that for the latter four cases, the neuter ending is the same as the masculine, and the feminine endings are all the same.

Usage
When an adjective describes something permanent, fixed, or unchanging, we use the 'long-form', which is given in the above sections. By contrast, short adjectives describe something transient, fleeting, or temporary. For instance, 'I'm happy!' could be written in Russian using the usual, 'long-form' adjecitve: Я счастли́вый! (for a boy) or Я счастли́вая! (for a girl). However, since the quality of 'being happy' might be a temporary one (compare "I'm always happy" with "I was happy yesterday morning"), we can describe this state using the short form of the adjective to emphasise its temporary nature. Conversational Russian prefers constructions that use long-form adjectives, though the short form is still used for this important distinction.

Every adjective has both long and short forms; which you use depends on the finer details of what you're trying to say. If in doubt, use the long form. The short form is used in sentences like 'The house is clean', rather than 'The clean house'; though both are broadly conveying the same idea, the temporary nature of the adjective is emphasised by being in the short form, and by being at the end of the sentence, just like in English.

Formation
To make the short form of any adjective, just remove the ending. The feminine then has the suffix -а, the neuter has -о, and all plurals have -ы. The short form doesn't change according to the case of the noun it modifies, only gender and number, making it very easy to remember. The masculine form is usually just the bare stem, but if it ends in awkward consonant clusters, we add an o or e to smooth things out. Specifically, we add -o- before a final -к, and -e- before a final -н. For example, ни́зкий ('low') would have the short form низк, but since this is hard to pronounce, the masculine short form is instead ни́зок.

If you have a good grasp of gender and number, you'll find these suffixes very easy to remember. So, the short forms of счастли́вый is сча́стлив, сча́стливa, сча́стливo, and сча́стливы, and to say "I'm happy" with emphasis on the temporary nature of this happiness, we would say Я сча́стлив!.

Exceptions
There are two adjectives with exceptional short forms, большо́й ('big') and маленький ('small'), as follows:

Some adjectives have no short form, and tend to be those that are derived from nouns. These have endings like -ский, -овой, and -ной (e.g., братский). There is also a short-form adjective, рад ('glad'), which has no long form.

title: Russian/Grammar/Adjectives


text:
Russian/Grammar/Cases

A case is a grammatical concept that tells you what a word is doing in a sentence. For example, the thing performing a verb is denoted as such with a case, while something being counted or enumerated has a different case. This page gives brief overviews of what each of the six cases are used for, with a table summarising how to put a word in that case.

What is a case?
Russian has six cases, and the case of a word is denoted by suffixes (word endings) that tell you the context of the word. English has few cases, favouring grammatical constructions over implicit case endings: compare the sentences, "I like apples" and "apples like me"; the first-person pronoun is 'I' when it's the subject of the verb, but it's 'me' when it's the object of the verb. These cases in English are called subjective and objective, and convey the same information as the Russian nominative and accusative cases. Russian sentences are more heavily based on cases than English, so they make up the bulk of mastering basic Russian.

Cases in Russian affect nouns, adjectives, and pronouns ('I', 'me', 'my', 'your', etc). Adjectives modify a noun, and take the case ending that corresponds with whatever case the noun is in. This is true of possessive pronouns as well. So, in the phrase "My cute dog licked your big hands", 'hands' is the object of the verb, so is in the accusative case - and therefore 'your' and 'big' would also be in the accusative. Nouns and adjectives also change according to gender (masculine/feminine/neuter) and number (singular/plural), but more on that later.

Cases are 'called' in two main ways: when you want to use a noun in the main function of the case, or when a preposition specifically calls it. For instance, if you wanted to say, "Under the rug", Russians say под (pod) and then the word 'rug' in its instrumental form, since the preposition под calls the instrumental case when it means 'under'. In Russian this is, "Под ковриком" (pod KOV -ree-kom), where ковриком is the instrumental form of коврик ( KOV -reek), 'rug'.

The following subsections give an overview of what each case does, with summary tables of conjugation The format for these will be "X,Y → Z", meaning if the word ends in X or Y, you remove the X or Y and replace it with Z. "+X" means you append X to the end of the word. Generally speaking, these tables should be used for revision of rules already learned, not learning cases themselves. For that, see the pages on each case, where declination is explained more thoroughly, and exceptions and caveats to these general rules will be given.

Nominative case
Имени́тельный паде́ж - eem-een- EET -eel-nyy puhd- YEZH

The nominative case is the default case of a word, as found in dictionaries and when no other case is specifically used. It is also used for the subject of a sentence: in "Bob eats lunch", Bob is the subject of the sentence, so would be in its default nominative form. The gender of a word can be deduced by its nominative form. As you don't need to decline a noun in the nominative singular (you just use its default, undeclined form), for the nominative singular cells in the following declination tables, the letters that define gender will be used instead.

Genitive case
Роди́тельный паде́ж - ruh- DEE -teel-nyy puhd- YEZH

The genitive case has four main uses:

 * Counting - When counting five or more objects ("I have six sheep"), the thing being enumerated is usually put in the genitive case.
 * Possession - If something is owned by something else, the owner is in the genitive case. This is similar to the 's in English: "my brother's car". "Brother's", in Russian, would be the singular word "brother", брат, in its genitive form, брата. This also corresponds with the English 'of', as in 'car of my brother'.
 * Negation - To say something is there, we generally use the nominative case. If it isn't there, we use нет followed by the genitive.
 * Prepositions - A number of common prepositions call the genitive case. The most common is у, which means 'by' or 'near'. It's also used to say "I have...": У + gen есть + nom.

Dative case
Да́тельный паде́ж -  DA -teel-nyy puhd- YEZH

The dative case is used to denote indirect objects, which are objects that indicate "to whom", or "to what" an action is done. So in the sentence, "I am writing a letter to you", "(a) letter" is the direct object of the verb, while '(to) you' is the indirect object. In Russian, direct objects go in the accusative case, and indirect objects go in the dative case. As in English, sentences do not always have indirect objects.

Accusative case
Вини́тельный паде́ж - vee- NEE -teel-nyy puhd- YEZH

The accusative case is used for the direct object of a verb. In "Bob eats lunch," "lunch" is the direct object of the verb "eats". In English, the object of a sentence is indicated by context and word order, with a strict subject-verb-object (SVO) system. In English, "Bob eats lunch" and "Lunch eats Bob" have different meanings. But in Russian, since the two cases are distinguished by suffixes, we can change the order of words and still know who's the object and who's the subject. If English indicated the direct object by adding "oo", we could say "Bob eats lunchoo" or "Lunchoo eats Bob", and either way it would clear that Bob was doing the eating.

One nuance of the accusative case is that it makes a distinction of animacy. That is, masculine nouns denoting people or animals (i.e., animate nouns) take their genitive form, while neuter nouns and inanimate masculine nouns take their nominative form. Plural nouns of any gender take their nominative plural form if inanimate, or their genitive plural form if animate.

Instrumental case
Твори́тельный паде́ж - tvuh- REE -teel-nyy puhd- YEZH

The instrumental case is used to denote the object by which something is done. In the sentence, "I am writing with a pencil", the phrase 'with a pencil' in Russian is simply the word 'pencil' (карандаш) put into its instrumental form (карандашом). In this way, it corresponds to one of the two meanings of the word 'with' in English: 'with', as in 'by means of'. The other meaning, 'in the company of', such as "I rode with Jane", is also commanded by the instrumental case, though this requires a preposition: с + inst.

There are five other common prepositions that command the instrumental: под (pod, 'under') над (nad, 'above'/'on top of') за (za, 'behind') между (mezh-doo, 'between'), and перед (pye-red, 'before'/'in front of').

Prepositional case
Предло́жный паде́ж - preed- LOZH -nyy puhd- YEZH

The prepositional case is also called the locative case, as it was commonly used to denote a sentence's object's location or an activity. Nowadays, however, it's only ever called after a few prepositions, hence its name. It's not rare, though, and the prepositions that call it are the most common of all Russian prepositions. They are в (in), на (on), and о/обо (about; it's обо in the phrase "about me" or "about my"). However, these prepositions can also call other cases, in which case their meaning changes. For instance, в + prep means 'in', as in, "I live in England". в + acc, however, means 'into' or 'to', as in, "I'm flying to New York".

Summary of declinations
The following tables contain the same information as above, only sorted according to word type (noun or adjective):

Note that entries for the nominative singular don't describe declination rules, but rather describe gender. So the feminine entry, 'а or я', says that feminine nouns are those that end in either -а or -я in the nominative singular. For a more complete description of gender in Russian, see Russian/Grammar/Gender.

Unlike nouns, adjectives have no intrinsic gender, instead taking on the gender of the noun they modify. However, by default, they end in either ый, ий, or ой, and they keep these forms when modifying masculine singular nouns in the nominative case.

 * Next: Nominative case
 * Back to Table of Contents

title: Russian/Grammar/Cases


text:
Talk:Guide to Success and Fulfillment/Becoming Healthy, Lean or Muscular

This is a pretty good module so far. Any chance of seeing a 'Gaining Weight' section? Thanks

---are you crazy? this is the worst written rubbish I've ever read!


text:
Cookbook:Lemon Curd

| Dessert

Lemon curd is a custard-like dessert sauce made with eggs, lemon juice and zest, sugar, and butter. It keeps for up to a week in the refrigerator, and it is excellent on shortbread, biscuits, scones, and English muffins. It can also be used in a variety of other dessert preparations.

Ingredients

 * ½ cup (120 ml) lemon juice
 * 2 tablespoons freshly-grated lemon zest
 * ⅓ cup (80 g) white granulated sugar
 * 3 eggs
 * ¼ cup (60 ml) unsalted butter
 * 1 pinch salt (optional, to bring out sweetness and flavor of finished product)

Equipment

 * 1-quart saucepan
 * Whisk
 * Measuring cup
 * Grater or zester
 * Medium-to-large strainer of fine-to-medium mesh
 * Rubber spatula
 * 1-quart mixing bowl
 * 12-ounce (about 330 g) jar with sealable lid (optional)

Procedure

 * 1) Cut the butter into small chunks.
 * 2) Put eggs, zest, sugar, and salt into saucepan.
 * 3) Whisk ingredients in pan until frothy and light in color (1–2 minutes).
 * 4) Add lemon juice and whisk for 30 seconds.
 * 5) Add butter chunks.
 * 6) Set pan on stove burner, turn on heat to medium-to-low, and start whisking contents so they don't coagulate or stick to bottom of pan.
 * 7) Whisk constantly until butter melts and mixture thickens, then whisk another two minutes. Do not let mixture boil. It should be quite steamy (about 185°F / 85°C).
 * 8) If desired, pour the mixture through the strainer to remove the zest and any other solids. Work the mixture through the strainer with the spatula; rake mixture off bottom of strainer into bowl.
 * 9) Pour mixture from bowl into jar to within ¼ inch (0.75 cm) from top, taking care not to get mixture on rim, then seal jar with lid.
 * 10) Refrigerate to thicken the product further. Store in the refrigerator.

Notes, tips, and variations

 * Grate only the yellow lemon zest, avoiding the bitter inner white pith.
 * The curd can also be stored in any other suitable container.

Livre de cuisine/Crème de citron

title: Cookbook:Lemon Curd


text:
User talk:Hopeless~enwikibooks

Visual Basic Classic
Any chance of more contributions? The book needs more editors. --kwhitefoot 07:02, 17 January 2006 (UTC)

Your account will be renamed
Hello,

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

Unfortunately, your account clashes with another account also called Hopeless. To make sure that both of you can use all Wikimedia projects in future, we have reserved the name Hopeless~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:17, 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:02, 19 April 2015 (UTC)

title: User talk:Hopeless~enwikibooks


text:
User:Bduke

I am normally on English Wikipedia. Please go there or put something on my User Talk page there.

Here I might contribute to Scouting and Chemistry.

This user was an administrator on the English Wikipedia but resigned because he was getting too old.

title: User:Bduke


text:
Cookbook talk:Grand Union Bacon

Apparently merely putting the bacon in a pan and frying it wasn't enough for people in 1902. Has anyone actually tried making this?

title: Cookbook talk:Grand Union Bacon


text:
Programming Mac OS X with Cocoa for Beginners

This book aims to provide beginners with an introduction to programming Mac OS X Apps with Cocoa, using XCode, the free developer tools provided by Apple, Inc. Some knowledge of another programming language, preferably Objective C Programming is assumed.

This wikibook was written for users of Mac OS X 10.3 or 10.4, it should also work for newer versions of Mac OS X such as 10.5 and 10.6. For programming Mac OS X with Cocoa for Beginners using Mac OS X versions 10.7 "Lion", or 10.8 "Mountain Lion" or later, use the following wikibook instead: Programming Mac OS X with Cocoa for Beginners 2nd Edition.

In general, this text is written to be followed in order from start to finish. As each topic develops, it builds on the code written previously to add complexity and functionality.

Getting Started

 * /What is Cocoa?/
 * /Installing the developer tools/
 * /Getting around in Xcode and Interface Builder/

Lessons

 * /First Cocoa program - Hello World/
 * /Objective C, the language and its advantages/
 * /Some Cocoa essential principles/
 * /Building a GUI/
 * /Containers - arrays, and dictionarys/
 * /A more ambitious application/
 * /Graphics - Drawing with Quartz/
 * /Document-based applications/

Wiki oriented lessons

 * /Implementing Wikidraw/
 * /Wikidraw's view class/
 * /More shapes/
 * /An Inspector calls/
 * /Archiving/
 * /Adding finesse/