text:
Talk:Basic Algebra/Introduction to Basic Algebra Ideas/Exponents and Powers

THIS IS THE WORST SITE IN THE WORLD🎈🎁🎀🎄🎃🎂🎅🎆🎇🎌🎊🎉🎍🎎🎏🎑🎓🎋🎐🎒💋💎💍💌💏💐💑👸👹💒🍕🍔🍖🍙🍘🍗🍚🍛🍜🍟🍞🍝🍠🍡🍢🍡🍥🍤🍣🍦🍧🍨🍫🍩


text:
User talk:Jeff G.

I will probably answer fastest if you post to commons:User talk:Jeff G. or w:User talk:Jeff G.

=Welcome!=

Come introduce yourself at the new users page. If you have any questions, you can ask there or contact me personally.

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

title: User talk:Jeff G.


text:
Template talk:Template doc page transcluded

Edit History Copied
The Edit History was copied from English Wikipedia in this edit. — Jeff G. (talk|contribs) 04:32, 1 January 2008 (UTC)


text:
Wikijunior:Languages/Ottoman Turkish

What writing system(s) does this language use?
The Ottoman Turkish language uses a variety of the Persian alphabet made specifically for Ottoman Turkish. The Persian alphabet itself comes from the Arabic alphabet. The Ottoman Turkish alphabet is cursive, which means that the letters are connected. Thus, there can be 4 different forms of just one letter: one for when the letter is at the beginning of a word, one for in the middle of a word, one for at the end, and one for when it's all by itself! There are 34 letters in all; here is a table of all of them.

How many people speak this language?
Since Ottoman Turkish was replaced with Modern Turkish in 1928, very few people speak the original Ottoman Turkish language.

Where is this language spoken?
Ottoman Turkish was spoken in the Ottoman Empire, which lasted from 1299 to 1922. That's over 600 years! At its height, the Ottoman Empire stretched from Qatar, to Hungary, to Somalia, to Algeria, covering 3 continents! Since Ottoman Turkish was replaced with modern Turkish it is spoken in very few places.

What is the history of this language?
Until the 1500s, a language called Old Ottoman Turkish was spoken. From the 16th century until 1839, a type called Middle Ottoman Turkish thrived. When most people think of this language, they think of this era. From the 1850s to the end of the Ottoman Empire in 1922, Modern Ottoman Turkish was alive. This type of Ottoman Turkish was influenced by Western culture.

Who are some famous authors or poets in this language?
Agah Efendi published the first Turkish newspaper. Ibrahim Muteferrika was an Hungarian Ottoman Turk who created the first Muslim printing press.

title: Wikijunior:Languages/Ottoman Turkish


text: Template:Wikijunior:Languages/Ottoman Turkish Table


text:
Wikijunior:Languages/Danish

What writing system(s) does this language use?
Danish uses all 26 letters in English, plus the letters Æ, Ø, and Å. The letters c, q, w, x, and z are only used in words that are not of Danish origin, however.

How many people speak this language?
About 6 million people speak Danish, making it the 103rd highest language in number of speakers.

Where is this language spoken?
Danish is mostly spoken in Denmark, Greenland, the Faroe Islands, the European Union, and the Nordic Council.

What is the history of this language?
Danish ultimately comes from a language called Old Norse. Eventually, this language splitted into two languages: Old West Norse, which would turn into Norwegian and Icelandic, and Old East Norse, which turned into Swedish and Danish. Eventually, Old East Norse evolved into the Danish we know today.

Who are some famous authors or poets in this language?
The most famous Danish author is probably Hans Christian Andersen. He made stories such as The Little Mermaid and The Ugly Duckling.

Christiern Pedersen is also known for translating the Bible's Old Testament into Danish.

Søren Kierkegaard a 19th century Danish philosopher and theologian.

What is a simple song/poem/story that I can learn in this language?
Der er et yndigt land (The Danish national anthem)

title: Wikijunior:Languages/Danish


text:
360 Assembly/360 Instructions/SVC

Purpose of Instruction
This instruction is used to allow a program to call the operating system in order to request services. The operand is the Supervisor Call number, which is in the range 0 to 255 (decimal). The value of the operand is operating system dependent. Typically, a supervisor call is made after loading certain machine registers with values. Supervisor Calls may or may not return information. They may return the information in registers, or in specific fields which were passed in the original call.

In some cases, a supervisor call will never return. There are several possible reasons:
 * The SVC number (second byte) is invalid, because neither the operating system nor a local routine processes that SVC number, and the program has not established a recovery routine, (error handler) so the program/task is terminated.
 * The SVC number is not permitted to be used by this class of program, and the program has not established an error recovery routine, so the program/task is terminated.
 * The SVC number may be used by this class of program, but the user operating it lacks the privileges to do so, the program has not established an error recovery routine, so the program/task is terminated.
 * One of the above cases occurs and a recovery routine was established, and it is given control.
 * The call is in fact the operating system call to terminate the program.
 * The call is to a routine to transfer to another program.
 * The call is to log off the user (although this may be considered a type of program termination).
 * The call is to a routine to cause a shutdown of the machine.

Some operating systems have privileged SVCs which are not available to user programs, and not all operating systems use all SVC values.

Typical Usage
Typically a supervisor call is used as part of an Operating System macro. For example, under MVS, VS/1, and z/OS the WTO macro issues an SVC 35. Some operating systems will provide services to various parts of itself by using a "privileged" supervisor call. The supervisor call is not technically a privileged instruction, it is that the operating system will not allow a non-privileged program to use that particular supervisor call and will either fault the program or return an error depending on what the supervisor call manager has been programmed to do.

For example, many operating systems have a macro call for a user program to request (and release) memory for itself. IBM OS/VS uses the "GETMAIN"/"FREEMAIN" macros, while Univac's VS/9 and Fujitsu's BS2000 use "REQM"/"RELM" while Linux uses the equivalent of the "malloc" function from the C language. However, if an operating system needed to store information in the operating system's own memory, such as information about a task, that the user program should not have access to, an operating system routine needing to do this could "reinvent the wheel" by rewriting the memory allocation code, which might introduce errors; it could create a fixed table which would limit the number of possible available "slots" for this purpose, or, if the operating system were one massive program it could call the memory allocation routine at a fixed address. An alternative to all of these is for the operating system to simply issue an SVC instruction on itself to request privileged memory (or a pointer to privileged memory.) This would eliminate having to have the entire operating system resident in memory all the time, and would allow the operating system to be dynamically loaded as needed. A non-privileged program attempting to use this "privileged" SVC would either receive an error code or would be treated as a program error, either transferring to the recovery routine or terminating the offending task.

Operation
When a supervisor call instruction occurs, the program counter is advanced by two, the PSW is stored in the "Supervisor Call Old PSW Address," the supervisor call number is stored in the "Interrupt Number address", and the new PSW is loaded from the "Supervisor Call New PSW address" all of which differ from model to model. Execution continues at the program counter value retrieved from the Supervisor Call New PSW.

 *  [1]  Bits 5 and 6 of byte 137 are set to 012 unless the SVC was the result of an EXECUTE instruction, then they are set to 102; the rest of the bits are cleared. Byte 139 contains the SVC number; everything else in bytes 136-139 are zeroed.

The supervisor call routine has access to the memory and registers of the calling routine, and can use these to retrieve arguments and/or return results. The registers used differ for each operating system, e.g. OS/VS1, MVS, and VM would usually use registers 0 and 1, (in rare cases register 2 as well), and sometimes 14 or 15; the same is true for the VS/9 operating system on the Univac 90/60, 90/70 and 90/80 mainframe computers, while Linux on S/390 uses registers 0 through 6 depending on the number of arguments and may use 14 or 15 in some instances. The register usage for supervisor calls is a convention established by general usage, not mandated by the hardware.

The supervisor call routine will typically exit by using the LPSW instruction from the address of the Supervisor Call Old PSW address to return to the instruction in the calling program after the SVC instruction. The method the SVC will return information may be through registers or changes in memory which the user pointed to via registers or argument lists in registers. The results and values are operating-system dependent.

Condition Codes
Condition codes are changed to the value of the condition codes stored in the condition code bits of the PSW stored at the Supervisor Call New PSW address. When returning from the Supervisor call, the Supervisor routine in the operating system may choose to change any condition codes as a result of its operation. Otherwise the condition codes upon return to the program issuing the SVC will be the same as they were when the call was made.

Exceptions and Faults
The Supervisor Call is a non-privileged instruction, and will not cause a program exception. The specific SVC number to use for any particular service is assigned by the operating system the program runs under, and if incorrect, the operating system may produce no noticeable result, unexpected, or undesired results, terminate the program, or transfer control to an exception routine.

title: 360 Assembly/360 Instructions/SVC


text:
User:Wat Bradford/03 Intro

Introduction
The serene profile of William Dudley-Ward caught my eye in the fall of 1986. His Vanity Fair print was posted in a bookstore window near Trinity College, Cambridge, where he had been C.U.B.C. President in 1900. Finding the £40 asking price a bit steep for a student budget, I shrugged and walked on, later to reconsider and start sliding down the collector’s slippery slope. At first content with only a few, I soon bought more prints, then will power gave way and finding the rest became an obsession, and then it occurred to me that obtaining the full official list might not complete the collection.

The problem lay in the cataloguing. Over 2300 prints were published in Vanity Fair in its lifetime (1868 - 1914), roughly one a week. The editors never published a comprehensive list but did from time to time offer select groups for sale, such as this one August 5, 1908, the date rower R.B. Etherington-Smith appeared:

 * The following

 * UNIVERSITY OARSMEN

 * HAVE ALREADY APPEARED IN "VANITY FAIR."

 * _________________________

 * The price of the above set of twenty-two Pictures is 15s.; or, well framed, from 1s. 9d. each extra. They will be sent, carriage paid, to any address (on receipt of remittance) by the Publisher, 33, Strand, London, W.C.

 * _________________________

Unfortunately, the list is incomplete as it omits men such as J.J. Hornby, the Provost of Eton, who rowed for Oxford in 1849. It also omits accomplished oarsmen who happened not to row at “University,” i.e., Oxford or Cambridge. H.E. Searle, “Professional Champion Sculler of the World” in 1889, and B.J. Angle, who won the Grand Challenge Cup at Henley in 1878 with Thames R.C., come to mind. Moreover, the list errs by including three men – Crossley, Bowen, and Jordan -- who had no particular connection to rowing, university or otherwise.

Somewhat better are the lists later compiled by various dealers and collectors that classify the prints based on the appearance of the subject in Vanity Fair and the accompanying biographical notes. One of the more definitive lists, from Clive A. Burden, Inc., comprises sixty-eight categories. “Sports -- Rowing” lists twenty-two entries, consisting mainly of Oxford and Cambridge rowers and coaches from 1889 to 1912, plus Mr. Searle, the lone professional. But the Clive Burden list, and others like it, omits several men whose connection to rowing was at least as significant as those listed, but who were catalogued differently because they appeared in Vanity Fair for other reasons. J.W. Chitty, for instance, rowed for Oxford in three Boat Races and umpired the event from 1857-71 and 1873-80, but appeared in Vanity Fair as a chancery judge and thus is catalogued among the 200 or so “Legals.”

So who are the rowers of Vanity Fair ? If one finds Vanity Fair ’s list of “University Oarsmen” and the somewhat different Clive Burden list too limiting, the question becomes wholly subjective. A true enthusiast might opt for every man who ever rowed at school, university, or in a club. That would inflate the headcount to over 100, due largely to the number of old Etonians who appeared in Vanity Fair at some point in their lives. Alternatively, one might raise the bar to admit only those who were genuinely successful on the river. That would cut back the number and improve average quality, but would still be subjective and would knock out one from Clive Burden, Rev. E.J.H. Smith of Pembroke College, Cambridge ( Vanity Fair, January 28, 1888), whose greatest aquatic accomplishment was as a coach “animating the toils of the fifth boat.” Accordingly, this book takes a middle road, not without faults but at least clear and manageable: anyone who appeared in the magazine mainly in connection with rowing (Rev. Smith makes the cut) or who rowed at Henley or for Oxford or Cambridge Universities (the lesser Etonians do not). The result by my reckoning is fifty-three, of which the original drawings for sixteen reside in the National Portrait Gallery.

To be sure, the focus on rowing, and this particular way of focusing on rowing, makes for a strange history. We have great Boat Race and Henley rowers of the era, but not all of the best or only the best. We have most of the “Spy” prints of rowers, but not all as F.I. Pitman, E.G. Williams, and D. Mackinnon appeared in Vanity Fair rather than in The World in the early 1900s. Of the fifty-three, only three managed not to attend Eton, Oxford, or Cambridge, so the selection hardly represents a random sampling of British society. But “men are often known, remembered and immortalized -- especially abroad -- by some idiosyncrasy selected by the capriciousness of time,” observed Leslie Ward in 1915, recalling his long career as “Spy,” Vanity Fair most prolific artist. “Looking back to-day it is strange to read in light of great events these miniature biographies of politicians now forgotten, of others who left their party to go over, of statesmen, of judges who sat on important cases and are now only remembered in connection with a trivial poisoner, an impostor in a claim, of careers then unproved but now shining clearly in the light of fame, and of others whose light is extinguished -- all within so short a lapse of time.”

The pages that follow present the fifty-three more or less in sequence of their rowing careers, from the last days of King William IV through the reign of Queen Victoria to the cusp of the 1914-18 war. For brevity only the individual portraits are reprinted, though six of the rowers appeared in Vanity Fair semiannual group “doubles”: “Birth, Behaviour, and Business” by Théobald Chartran, July 5, 1881 (S.H. Northcote); “The Gladstone Cabinet” also by Chartran, November 27, 1883 (C.W. Dilke); “Tattersall’s, Newmarket” by Liberio Prosperi, December 6, 1887 (E. Boscawen); “In Vanity Fair,” an unsigned composite (November 29, 1890) (A.L. Smith); “Bench and Bar” by “Stuff,” December 5, 1891 (W.B. Brett and A.L. Smith); and “Cycling in Hyde Park” by Hal Hurst, June 11, 1896 (W.H. Grenfell). The chronology bears no relationship to the order in which their prints appeared in Vanity Fair, and thus makes it harder to flip the pages to see the evolution of the graphic and editorial styles, but does cluster contemporaries and facilitates the rowing story. As for the story, Vanity Fair and the rowers themselves tell nearly all of it. Starting with S.H. Northcote and ending with “Cygnet” Swann, the reader will find for each entry the signature lithograph or two from Vanity Fair, the biographical note that accompanied it (set off in italics), a supplemental biography to round out his story, and an excerpt from Vanity Fair or another source, either about the rower in question or a complimentary theme. The rowers are clustered in groups of seven to sixteen, punctuated by chapter introductions. Photographs, illustrations, and other images are sprinkled liberally throughout, courtesy of Thomas E. Weil, Jr., who has lent most generously from his wonderful collection of rowing ephemera.

Throughout all this my own limited commentary as “an amiable and sympathetic foreigner” aims to “attain the impersonal perspective proper to the true historian,” as T.A. Cook put it. There are three reasons for this approach. First, the magazine was blessed to have Walter Bradford Woodgate provide the rowing coverage in most of the years there was any to speak of. (More about him below.) Second, Woodgate, the other Vanity Fair authors, and the rowers themselves provide an authentic period voice, limiting early twenty-first century nostalgia, or anti-nostalgia, from creeping into the mix. Finally, the original sources let one keep one’s head down, a good idea given how prickly rowers can be about their sport. As G.C. Bourne, father of the penultimate Vanity Fair rower R.C. Bourne, observed over sixty years ago during the religious debate over rowing styles: “There is good reason for this wariness, for the rowing fraternity is a close corporation, jealous of its reputation and inclined to be hypersensitive and hypercritical to a degree which would astonish those who do not belong to it.”

title: User:Wat Bradford/03 Intro


text:
User talk:Sakura cha

Welcome!
Come introduce yourself at the new users page. If you have any questions, you can ask there or contact me personally.--Laleena (talk) 12:55, 1 January 2008 (UTC)

title: User talk:Sakura cha


text:
User:Laleena/Templates

Template:welcome Template:test

title: User:Laleena/Templates


text:
User:Wat Bradford/41.0 Cotton

“Benjie” (Spy), March 15, 1894
''The youngest son of the late Lord Justice Cotton, he was born two-and-twenty years ago, went to “Badger” Hale’s House at Eton, and began his aquatic career by steering an Eton Trial Eight to victory. Then he got promoted to an oar, and rowed in a winning Trial; yet did not row in the Eton Eight. Three and a-half years ago he went to Magdalen, Oxford; and being an Eton boy who was found able to pull a lively oar, he became bow of the Dark Blue Eight two years ago. He kept that place last year, and he will again fill it on Saturday; having in the meantime been improved into the smallest President of a University Boat Club on record. For his College he has twice rowed Head of the River. He has also won the University Fours and the University Pairs; while at Henley he has helped a Leander crew to win the Grand Challenge, and his College to win the Stewards’ Cup.''

''He is a very muscular, good-looking little fellow of five and a-half feet in height, whose proper weight is ten stone. He is a rather retiring, yet quite independent, amiable boy who can say nasty things when he likes with effect; and he is strong in his antipathies. He is reading law for his Final School, and he reads it at odd times; yet he loves his Shakespeare and is a hardened theatre-goer. He is President of Vincent’s.''

They call him “Ben” and “Benjie”; and they say that he confidently expects to show Cambridge the way to Mortlake on Saturday.

For a five-and-half footer to become a winning oarsman is unusual; to win the Boat Race four times and the Grand twice, remarkable. Hugh Benjamin Cotton (1872-95) did so, albeit with help from crews that outweighed him at least two stone a man (other than the cox, of course). Another of Nickall’s “absolute classics” --  at bow, where he always rowed -- Cotton was the only man in the winning 1895 Oxford boat not to get influenza during race week. But soon thereafter a “severe attack of inflammation of the lungs” kept him out of Henley and the Oxford summer races, and that fall he succumbed to consumption from a chill caught at Oxford while coaching in the floods, and passed away on October 22. In response to his death and those of two other Oxford oarsmen a year and a half later, their coach, Rudie Lehmann, mustered the evidence to show that rowing per se was not the culprit. More sympathetically and for Cotton alone, Lehmann also penned an elegy, “Frater Ave Atque Vale,” concluding:

Though lost and dead, you die not here; And, wheresoever men may range Who once at Oxford held you dear And called you friend, you know no change: Still shall we see you stride along, Smiling and resolute and strong.

We shall grow old, but you abide In all our hearts as staunch and true And young as when on Thames’s tide You gripped your oar and won your Blue -- ''But hush! I hear the passing bell,'' Oh dearest friend, farewell, farewell

 * 1)   G. Nickalls, Life’s a Pudding, p. 211.
 * 2)   R.C. Lehmann, “Frater Ave Atque Vale,” in Anni Fugaces:  A Book of Verse with Cambridge Interludes, p. 20.  The elegy’s title -- “Brother Hail and Farewell” -- comes from the final lines of poem 101 of Catullus, to his dead brother.

title: User:Wat Bradford/41.0 Cotton


text:
User talk:Aethyrr

Welcome, Aethyrr!

Come introduce yourself in the general reading room or your project in the project reading room. If you have any questions, you can ask in the assistance reading room or contact me personally. Laleena (talk) 15:57, 1 January 2008 (UTC)

title: User talk:Aethyrr


text:
User talk:Kwfinken

Welcome!
Come introduce yourself at the new users page. If you have any questions, you can ask there or contact me personally.--Laleena (talk) 15:58, 1 January 2008 (UTC)

title: User talk:Kwfinken


text:
User talk:75.53.99.74

Join Us!
--Laleena (talk) 16:09, 1 January 2008 (UTC)

title: User talk:75.53.99.74


text:
User talk:LucaMoro

Welcome!
Come introduce yourself at the new users page. If you have any questions, you can ask there or contact me personally.--Laleena (talk) 16:40, 1 January 2008 (UTC)

title: User talk:LucaMoro


text:
User talk:Babe in toyland

Welcome!
Come introduce yourself at the new users page. If you have any questions, you can ask there or contact me personally.--Laleena (talk) 16:41, 1 January 2008 (UTC)

title: User talk:Babe in toyland


text:
User talk:217.216.19.250

Join Us!
--Laleena (talk) 16:42, 1 January 2008 (UTC)

title: User talk:217.216.19.250


text:
User:Praba tuty

Prabakaran Thirumalai

Chief Technology Officer @ NEETLab.com

Speaker and Writer on Life skills

Architect at Lakshya Solutions, Bangalore

Founder and Project Admin for CSQL- Main Memory SQL Database Engine

Contributor to MySQL Open source Database

Online Marketing for educational websites, college admission, MBBS Admission

Experience Summary

14 years in database system development and maintenance of various main memory and disk based database systems.

3 year in online marketing for sites related to study abroad consultants, overseas educational consultants, Philippines educational consultants

Companies

Mascon

Sun Microsystems

Lakshya Solutions

Dell Corporation

Oracle Corporation

Doctor Dreams Training Academy

[Fence Education Consultancy]

[NEETLab]

[MBBSCouncil]

[GreetName]

Skills

C, C++, Java, Database Internals, SQL Internals, OS Internals, SEO, SMM, Online Marketing, Psychology, Teaching

Blogs

http://www.braintrainingtools.org

http://praba.wordpress.com

Quote Categories [Hard work Quotes] [Angry Quotes] [Fear Quotes] ]

Books

http://en.wikibooks.org/wiki/Design_of_Main_Memory_Database_System

Cystem - Programming At Roots - Published by Tata McgrawHill in Orissa

Product Page

http://csql.sourceforge.net/

MBBS Admission [MBBS In Philippines Fence] [MBBS Admission in Philippines] [MBBS In Philippines Smartmed]

Fence Education Academy provides direct MBBS admission to Indian Students to Medical colleges in Philippines.

title: User:Praba tuty


text:
User talk:Shlomo Engelberg

Welcome!
Come introduce yourself at the new users page. If you have any questions, you can ask there or contact me personally.--Laleena (talk) 16:45, 1 January 2008 (UTC)

title: User talk:Shlomo Engelberg


text:
Wikijunior:Languages/Czech

What writing system(s) does this language use?
Czech uses all 26 letters in English, 15 variants of certain letters, and 1 digraph to make 42 letters in all. Here they are in order:

 * A, Á, B, C, Č, D, Ď, E, É, Ě, F, G, H, Ch, I, Í, J, K, L, M, N, Ň, O, Ó, P, Q, R, Ř, S, Š, T, Ť, U, Ú, Ů, V, W, X, Y, Ý, Z, Ž

How many people speak this language?
Czech is spoken by 12 million people, making it the 66th most common language in number of speakers.

Where is this language spoken?
Czech is an official language in the European Union and Czech Republic. It is also spoken by immigrants in Slovakia, Ukraine, Vietnam, Germany, and Poland.

What is the history of this language?
Czech comes from a language called Old Slavic. From the second half of the 12th century until the end of the 13th century, a new language evolved from Old Slavic: Early Old Czech. Around 1406, Jan Hus suggested a new way of writing Czech: the kind used today. Near the end of the 1500s, the Bible of Kralice was completed. This book became an example of how to write Czech. From the 1780s to the 1840s, the Czech National Revival occurred. During this time, Czech saw a "golden age" of an increase in number of words, changes to grammar, and the changing of Hus' style of writing Czech. In 1902, Jan Gebauer published rules for Czech writing. Since the end of World War II in 1945, differences in Czech dialects began slowly getting more and more similar.

Who are some famous authors or poets in this language?
Karel and Josef Čapek were the creators of the word "robot". Karel was nominated for a Nobel Prize in 1936.

What is a simple song/poem/story that I can learn in this language?
Kde domov můj (Czech national anthem)

title: Wikijunior:Languages/Czech


text:
Design of Main Memory Database System

Design of open source main memory database product  is also covered in this book

Table of Contents

 * Preface
 * Abbreviations
 * Introduction
 * Overview of DBMS
 * Overview of MMDB
 * Storage Engine
 * Database Management
 * Allocator
 * Transaction
 * Concurrency
 * Logging
 * Recovery
 * Table
 * Index
 * SQL Engine
 * Query Representation
 * Query Optimization
 * Query Execution
 * Interface Drivers
 * ODBC
 * JDBC
 * Real world Implementation
 * Case study CSQL

Authors

 * Prabakaran Thirumalai

Related Books

 * Structured Query Language
 * Python Programming/Database Programming
 * Operating System Design
 * Embedded Control Systems Design/Operating systems—other real-time operating systems

title: Design of Main Memory Database System


text:
Ancient History

East Asia

 * (wp) Yangshao
 * (wp) Japan
 * (wp) Pre-history
 * (wp) Classical era
 * (wp) Medieval era
 * (wp) Modern era
 * (wp) Korea

South East Asia

 * (wp) Southeast Asia
 * (wp) Vietnam

Europe

 * Greece
 * (wp) Greek Boats
 * (wp) Sparta
 * (wp) Celtic Europe
 * (wp) Gaul
 * (wp) Britannia
 * (wp) Iberia
 * (wp) Byzantium
 * (wp) Germania

Middle East

 * Lebanon-Phoenicia
 * (wp) Phoenicia

title: Ancient History


text:
User:Neoptolemus/Sandbox

I R EDITED TEH SANDBOX! I R TEH VANDALZ!

title: User:Neoptolemus/Sandbox


text:
Design of Main Memory Database System/Concurrency

Table of Contents —

Chapter 8: Concurrency Management

8.1 Overview
Concurrency is defined as the ability of multiple processes and threads to access and change the data records at the same time. Lower the contention to access and modify data with more users, better is the concurrency and vice versa. A process that access data prevents other process to change the data. This reduces the concurrency. A process that modifies data prevents other process to access or change the data. This reduces the concurrency.

In general, database systems uses two approaches to manage concurrent data access; pessimistic and optimistic. Conflicts cannot be avoided in both the models, it differs only in when the conflicts are dealt.

8.1.1 Pessimistic Concurrency
Pessimistic concurrency systems assume that conflict will occur and it avoids conflicts by acquiring locks on data that is being read or modified, so that no other process can modify that data. In this model, readers block writers and writers block readers.

8.1.2 Optimistic Concurrency
Optimistic concurrency systems assume that transactions are unlikely to modify data that another transaction is modifying. This is implemented by using versioning technique. This allows readers to see the state of the data before the modification occurs as the system maintains previous version of the data record before it actually attempts to change it. In this model readers do not block writers and writers do not block readers. However writers will block writes which will lead to conflicts.

8.2 Concurrency problem
There are some problems that any concurrency control mechanism must address. There are three ways in which things can go wrong. They are lost update problem, uncommitted dependency and Inconsistent Analysis. In all three, individual transactions are right, but when they are interleaved it may produce wrong results.

8.2.1 Lost Update Problem
TODO- Define this

TODO- Draw diagram

Transaction-1 reads tuple1 at time t1 Transaction-2 reads tuple1 at time t2 Transaction-1 updates tuple1 at time t3 Transaction-2 updates tuple1 at time t4

Transaction-1 update on tuple1 at time t3 is lost as Transaction-2 overwrites the update made by Transaction-1 on tuple1 without checking whether it has changed.

8.2.2 Uncommitted dependency
This occurs when one transaction is allowed to access or update a tuple that has been updated by another transaction but not yet committed by that transaction.

TODO- Draw diagram

Transaction-1 updates tuple1 at time t1 Transaction-2 reads tuple1 at time t2 Transaction-1 rolls back the transaction at time t3 In the above sequence, Transaction-2 sees an uncommitted change at time t2, which is undone at time t3. Transaction-2 is operating with wrong value seen at time t2. As a result, transaction-2 might produce incorrect result.

If transaction-2 updates instead of reading tuple t1 at t2, the situation is even worse, it will loose its update on tuple t1, once transaction-1 rolls back.

8.2.3 Inconsistent Analysis
If one transaction is calculating an aggregate summary function on records, while other transactions are updating some of the records involved in the aggregation, the aggregate function may calculate with some values before they are updated and some values after they are updated.

TODO- draw diagram

For example, suppose that transaction-1 is calculating the total number of reservations on all the theatres for particular day; meanwhile transaction-2 is reserving 5 seats on that day, then results of transaction-1 will be off by 5 because transaction-1 reads the value of X after 5 seats have been subtracted from it.

8.3 Locking
All the above three problems can be solved by using concurrency control technique called locking. The basic idea is to deny access to the data record for all transactions, when a transaction is working on it.

A lock is a variable associated with a data item that describes the status of the data item. Generally there is one lock for each data item(record) in DBMS. Locks are used to provide synchronous access to the data items by concurrent transactions. There are two types of locks supported by Unix kind of operating systems pthread mutexes work well with multiple threads and semaphores work well with multiple threads as well as multiple process. Pthread mutexes are called binary locks as they have two states (lockState); locked and unlocked. Semaphores can be used as binary locks as well as counting locks. In our case, binary locks will be used to provide synchronized concurrent access to the data items. Two operations, lockItem and unlockItem are used with binary locking. A transaction requests access to data item X by first issuing lockItem(X) operation. If lockState(X) is 1, then the transaction is forced to wait till lockState(X) becomes 0. If it is zero, then lockState(X) is set to 1, and the transaction is allowed to access data item X. When the transaction is through with using the data item, it issues an unlockItem(X) operation, which sets lockState(X) to zero, so that other transactions shall access X.
 * pthread mutexes
 * semaphores

Data access protocol for locking method is
 * A read transaction will acquire lock on the data before it reads the data.
 * A write transaction will acquire lock on the data before it writes the data.
 * If lock request is denied, then the transaction goes to wait state and tries for the lock periodically until the lock is released by the transaction that acquired it.

In the above locking model,
 * Readers block readers and writers
 * Writers block readers and writers

Concurrency shall be slightly improved on the above model by making readers not blocking other readers, as it will not lead to any inconsistencies. This shall be achieved by introducing another type of lock, which shall be shared by all readers. These locks are called as Shared Locks. Another type of lock, exclusive locks are obtained by writers to block all readers and writers from accessing the data. The data access protocol for this locking method is
 * A read transaction will acquire Shared Lock on the data before it reads the data.
 * A write transaction will acquire Exclusive Lock on the data before it writes the data.
 * Lock request is denied for read operation if another transaction has exclusive lock on the data item.
 * Lock request is denied for write operation if another transaction has read or exclusive lock on the data item.
 * If lock request is denied, then the transaction goes to wait state and tries for the lock periodically until the lock is released by the transaction that acquired it.

In the above locking model,
 * Readers block writers and allow other readers
 * Writers block readers and writers

The above rules shall be summarized as lock compatibility matrix

Shared	Exclusive	No Lock Shared	Yes	No	Yes Exclusive	No	No	Yes No Lock	Yes	Yes	Yes TODO::Above lock compatibility matrix in image

Yes -> compatible, no conflict, lock request will be granted.

No-> not compatible, there is a conflict, so lock request should be denied.

Concurrency problems with locking protocol

 * Lost update problem – transaction-1 waits for exclusive lock forever from time t3 as shared lock is acquired by transaction-1 and transaction-2. Transaction-2 waits for exclusive lock forever from time t4 as shared lock is acquired by transaction-1 and transaction-2. Our lost update problem is solved, but a new problem has occurred. It is called “DeadLock”. We will look into its details later.
 * Uncommitted dependency - Transaction-2 waits for lock when it tries to read tuple1 at time t2 as it is exclusively locked by transaction-1. It waits till transaction-1 either commits or rollbacks. Locking avoids uncommitted dependency issue.
 * Inconsistent Analysis – Transcation-1 waits till transaction-2 releases the exclusive lock on the data record X and then computes the aggregation giving correct results.

8.3.1 Serializable transactions
A given set of transactions is considered to be serializable, if it produces the same result, as though these transactions are executed serially one after the other. The concept of serializability was first introduced by Eswaran, Gray proved the two-phase locking protocol, which is briefly described as: If all transactions obey the “two-phase locking protocol”, then all possible interleaved schedules are serializable.
 * Individual transactions are correct as they transform a correct state of the database to another correct state
 * Executing transaction one at a time in any serial order is also correct, as individual transactions are independent of each other.
 * An interleaved execution is correct, if it is equivalent to serial execution or if it is serializable.

8.3.2 Two Phase Locking Protocol
After releasing a lock, a transaction must never go on to acquire any more locks. A transaction that obeys this protocol, thus has two phases, a lock acquisition or “Growing” phase and a lock releasing or “Shrinking” phase.

Two phase locking may limit the amount of concurrency that can occur in a schedule. This is because a transaction may not be able to release lock on data item after it is through with it. This is the price for guaranteeing serializability of all schedules without having to check the schedules themselves.

There are number of variations of two phase locking (2PL). The technique we described above is known as 2 phase locking.

8.3.2.1 Conservative 2 PL
This requires a transaction to lock all the item it accesses before the transaction starts, by declaring read-set and write-set. Read-set of a transaction is the set of all items that the transaction reads, and the write-set is the set of all items that it writes.

If any of the items in read-set or write-set cannot be locked, it waits for it to be released by other transaction and after acquiring all locks at once, it starts the transaction. Conservative 2 phase locking is deadlock free protocol. However, it is difficult to use in practice because of the need to declare the read-set and write-set, which is not possible practically in most of the situations.

Growing phase is before the transaction starts and shrinking phase starts as soon as the transaction ends in case of conservative 2 phase locking.

8.3.2.2 Strict 2 PL
The most popular variation of 2-phase locking is strict 2-phase locking. A transaction does not release any of its exclusive locks till the transaction either commits or rollbacks. This guarantees strict schedules, as no other transactions can read or write an item that is written by this transaction unless it is committed. Growing phase starts as soon as the transaction starts and shrinking on write locks happens during either transaction commits or rollbacks.

8.3.2.3 Rigorous 2 PL
This is more restrictive version of strict 2-phase locking protocol. A transaction does not release any of its shared and exclusive locks till the transaction either commits or rollbacks. This is the easiest 2-phase locking to implement, but gives less concurrency for reads.

Growing phase starts as soon as the transaction starts and shrinking happens during either transaction commit or rollback.

8.3.3 Lock Starvation
Lock starvation occurs when a transaction cannot proceed for an indefinite period of time while other transactions in the system continue to run normally. This can occur due to unfair lock scheduling algorithms which implements priority based locking. One solution for starvation is to have fair lock waiting scheme, such as first in first out (FIFO) queue.

Starvation can also occur when the deadlock algorithm, selects the same transaction repeatedly for abort, thereby never allowing it to finish. The algorithms shall be modified to use higher priorities for transactions that have been aborted multiple times to avoid this problem.

8.3.4 Dead Lock
Deadlock occurs when each transaction in a set of two or more transactions wait for some resource that is locked by some other transaction in the same set.

For example transaction T1 acquires Resource R1 and transaction T2 acquires resource R2. After this if T1 waits for R2 and T2 waits for R1. Both will never get the lock, and this situation is termed as deadlock.

TODO Diagram with respect to time

8.3.4.1 Dead Lock Prevention
There are many prevention protocols, but most of them are practically not possible in case of DBMS. They are conservative 2 phase locking, ordering data record locking, no waiting, cautious waiting, Wait-die and Wound-wait.

Conservative two-phase locking protocol is deadlock prevention protocol, in which all locks are acquired before the transaction works on the data records.

Ordering of data record locking will also prevent deadlocks. A transaction, which works on several data records, should obtain locks in pre-determined order always. This requires the programmer or DBMS aware of chosen order of the data record locks. This is also not practical to implement in database systems.

No Waiting Algorithm If a transaction is unable to obtain a lock, it is immediately aborted and then restarted after a certain time delay without checking whether a deadlock will actually occur or not. This can cause transactions to abort and restart needlessly. Cautious Waiting Algorithm

This is proposed to avoid needless restart in case of no waiting algorithm, If transaction T1 tries to lock an data record R1, but is not able to do so because R1 is locked by some other transaction T2 with a conflicting lock. If T2 is not blocked on some other locked data record, then T1 is blocked and allowed to wait; otherwise abort T1.

Wait-Die and Wound-Wait Algorithm The other two techniques, wait-die and wound-wait use transaction timestamps as basis to determine what to do in case of deadlocks. Transaction timestamp in a unique identifier assigned to each transaction. These timestamps are generally running counter which gets incremented for every transaction started. If transaction T1, starts before transaction T2, then TS(T1) < TS(T2)

Suppose that transaction T1 tries to lock data record R1, but is not able to lock because R1 is locked by some other transaction T2 with a conflicting lock. Rules followed by these schemes are as follows

Wait-Die – If TS (T1) < TS (T2), then T1 is allowed to wait, otherwise abort T1 and restart it later with the same timestamp. Wound-Wait – If TS (T1) < TS (T2), then abort T1 and restart it later with same timestamp; otherwise T1 is allowed to wait

In wait-die, older transaction is allowed to wait on younger transaction, whereas a younger transaction requesting lock on record R1 held by an older transaction is aborted and restarted. The wound-wait approach does the opposite; a younger transaction is allowed to wait on an older one, whereas an older transaction requesting lock on record R1 held by an younger transaction preempts the younger transaction by aborting it. Both schemes end up aborting the younger of the two transactions that may be involved in a deadlock. In wait-die, transactions wait only on younger transactions. In wound-wait, transactions wait only on older transactions. So no cycle is created in both of these schemes avoiding deadlocks.

8.3.4.2 Dead Lock Detection
Deadlock detection is more practical approach than the deadlock prevention techniques. This first checks whether deadlock state actually exist in the system before taking any actions.

A simple way to detect a state of deadlock is for the system to construct and maintain a “wait-for” graph TODO-Diagram and explanation

If the system is in a state of deadlock, some of the transactions causing deadlocks must be aborted. Either application or DBMS should select one of the transactions involved in deadlock for rollback to get the system out of deadlock situation. This selection algorithm should consider avoiding transactions that are running for long time and transactions that have performed many updates. The best transactions to be aborted are the SELECT or read only transactions.

8.3.4.3 Timeouts
The simplest solution for handling deadlocks is timeouts. In this method, transactions that wait for longer than the system defined timeout period, are assumed to be in deadlock situation and are aborted.

8.4. Isolation Levels
TODO

8.5 Lock Granularity
The size of the data item is often called the data item granularity. Fine granularity refers to small data item sizes, whereas coarse granularity refers to large item sizes.

Larger the data item size, lower the degree of concurrency. For example if the data item size is a ‘Table’ denoted by Table1, a transaction T1 that needs to lock a record X must lock the whole table Table1 that contains record X because the lock is associated with the whole data item, Table1. If another transaction T2 wants to lock a different record Y of Table1, it is forced to wait till T1 releases the lock on Table1. If the data item size is single record, then transaction T2 would be able to proceed, because it would lock different data item.

Smaller the data item size, more the number of items in the database. Because every item is associated with a lock, the system will have a larger number of active locks. More lock and unlock operations will be performed, causing a higher overhead. In addition, more storage space is required for storing these locks.

For large transactions, which access many records, coarse granularity should be used and for small transactions, which access small number of records, fine granularity should be used.

8.5.1 Granularity Levels in DBMS
Granularity levels are listed below ordered from Coarse to fine granularity
 * Database
 * Table
 * Disk Block or Memory Page
 * Record
 * Record Field

Since the best granularity size depends on the given transaction, DBMS should support multiple level so granularity and allows the transaction to pick any level it wants.

8.5.2 Intent Locks
Let us take an example database DB1, has one table Table1, having 2 pages P1 and P2. P1 has 10 records R1 to R10, and P2 has 10 records R11 to R20.

TODO::Draw tree structure denoting above.

Scenario 1:

Transaction T1 wants to update all records in Table1. It will request for exclusive lock on Table1. This is beneficial for T1 than acquiring 20 locks for each data record. Now suppose, another transaction T2 wants to read record R5 from page P1, then T2 would request a shared record level lock on R5. DBMS will now check for the compatibility of the requested lock with already held locks. One way to verify this is to traverse the tree from leaf R5 to root DB1 and check for conflicting locks.

Scenario 2:

Transaction T1 wants to read record R5 from page P1, and then T2 would request a shared record level lock on R5. Now suppose, another transaction T2 wants to update all records in Table1, so it will request exclusive lock on Table1. DBMS will now check for the compatibility of the requested lock with already held locks. For this it needs to check all locks at page level and record level to ensure that there are not conflicting locks.

For both the above scenarios, traversal-based lock conflict detection is very inefficient and would defeat the purpose of having multiple granularity locking.

New types of locks are introduced to make the multiple granularity locking efficient. The idea behind intention locks is for a transaction to indicate, along the path from the root to the desired node, what type of lock it will require from one of the node’s descendants.

There are three types of intension locks.
 * Intention Shared (IS)
 * Intention Exclusive (IX)
 * Shared Intention Exclusive (SIX)

Intention –Shared Locks

Indicates that a shared lock will be requested on some descendant node

Intention –Exclusive Locks

Indicates that a exclusive lock will be requested on some descendant node

Intention –Shared Locks

Indicates that this node is locked in shared mode and exclusive lock will be requested on some descendant node

Compatibility Table

Mode	IS	IX	S	SIX	X IS	Yes	Yes	Yes	Yes	No IX	Yes	Yes	No	No	No S	Yes	No	Yes	No	No SIX	Yes	No	No	No	No X	No	No	No	No	No

TODO::diagram for above lock compatibility table

Locking protocol
 * 1) 	The root of the tree must be locked first
 * 2) 	A node can be locked by transaction in S or IS mode only if the parent node is already locked by transaction in either IS or IX mode
 * 3) 	A node can be locked by transaction in X, IX or SIX modes only if the parent of the node already locked by transaction in either IX or SIX modes
 * 4) 	A transaction can unlock a node, only if none of the children of node are currently locked by transaction.
 * 5) 	Lock compatibility and 2 phase locking should be adhered.

TODO::Example illustrating above protocol and compatibility table: Refer 445 of Elmasri

8.6 Index and Predicate Locking
One solution to phantom record problem is to use index locking.

A more general technique, called predicate locking would lock access to all records that satisfy a predicate or where condition. Predicate locks have proved to be difficult to implement effectively.

8.7 Timestamp based concurrency control (TODO:Rephrase whole section)
There is another concurrency control technique based on timestamp ordering, which avoids use of locks. As it avoids locks, deadlocks do not occur in this concurrency control mechanism.

8.7.1 Timestamps
Timestamp is a unique identifier created by DBMS to identify a transaction. Typically, timestamp values are assigned in the order in which the transactions are submitted to the system. Generally it is the transaction start time and referred as TS (T). These unique identifiers shall be implemented using simple counters, which gets incremented when a transaction is started. As is has a finite maximum value, algorithm should take care of resetting it when it reaches maximum.

8.7.2 Basic Timestamp ordering
Each data item X, has two timestamps

 * ReadTS(X) – The read timestamp of data item X; this is the largest timestamp among all the timestamps of the transactions that have successfully read the item X.
 * WriteTS(X) – The write timestamp of data item X; this is the largest timestamp among all the timestamps of the transactions that have successfully modified the item X.

Whenever some transaction T tries to issue readItem(X) or writeItem(X), the algorithm should compare the timestamp of T with ReadTS(X) and WriteTS(X) to ensure that the timestamp order of the transaction execution is not violated. If this order is violated, then transaction T is aborted and resubmitted to the system as a new transaction with a new timestamp. If T is aborted, then any transaction T1 that may have used a value written by T must also be aborted. Similarly any transaction T2 that may have used a value written by T1 must also be aborted and so on. This effect is known as cascading rollback and is one of the biggest problems associated with this scheme.

The basic timestamp-ordering algorithm is summarized below

Transaction T issues writeItem(X) operation: If readTS(X) > TS(T), or writeTS(T) > TS(T), then abort T, else execute writeItem(X) of T and set writeTS(X) to TS(T)

Transaction T issues readItem(X) operation: If writeTS(T) > TS(T), then abort T, else execute readItem(X) of T and set readTS(X) to largest of TS(T) and current readTS(X)

Whenever the basic timestamp ordering algorithm, detects two conflicting operations that occur in the incorrect order, it rejects the later of the two operations by aborting the transaction that issued it. The schedules produced by this algorithm are guaranteed to be conflict serializable, like the 2 phase locking protocol.

8.7.3 Strict Timestamp ordering
Strict Timestamp ordering is a variation of basic timestamp ordering that ensures that the schedules are recoverable and conflict serializable. In this variation, a transaction T, that issues a readItem(X) or writeItem(X) such that TS (T) > writeTS(X) has its read or write operation delayed until the transaction T1 that wrote the value of X has committed or aborted. To implement this algorithm, locking is required. This algorithm does not cause deadlock, since T waits for T1 only if TS(T) > TS(T1).

TODO::refer white paper and add more content

8.8 Multi Version concurrency control
TODO

8.9 Optimistic concurrency control
In both concurrency control techniques, locking and timestamp ordering, certain checks are made before a transaction operates on a data item. In locking, check is done to determine whether the item being accessed is locked. In timestamp ordering, the transaction timestamp is checked against the read and write timestamps of the data item. This imposes an overhead to the transaction execution. In optimistic concurrency control techniques, no checking is done while the transaction is executing. In this scheme, updates in the transaction are not applied directly to the data items until the transaction reaches its end. During transaction execution, all updates are applied to local copies of the data items, which are kept on per transaction basis. At the end of the transaction execution, a validation phase checks whether any of the transaction’s updates violate serializability. If it is not violated, then the transaction is committed and the database is updated from the local copies, otherwise the transaction is aborted and then restarted later. There are three phases in this protocol

This protocol suits well incase of minimal interference between transaction on data items. If the interference is more, then transactions will be restarted often. This technique is called ‘optimistic’ because they assume that little interference will occur and hence that there is no need to do checking during transaction execution.
 * Read Phase – A transaction can read values of committed data items from the database. However updates are applied only to local copies of the data items kept in transaction workspace.
 * Validation Phase - Checking is performed to ensure that serializability will not be violated if the transaction updates are applied to the database.
 * Write Phase – Transaction updates are applied to the database if the validation phase says that it is serializable. Otherwise the updates are discarded and the transaction is restarted.

TODO::refer white paper and add more content

8.10 Architecture for lock manager
Concurrency control in traditional database systems aims to maintain database consistency. Concurrency control in MMDB is difficult due to the conflicting requirements of satisfying timing constraints and maintaining data consistency.


text:
User talk:Milarqui

Hello and welcome to Wikibooks!

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

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

Good luck!

I see that you are doing some very good edits to the Muggles' Guide. I'm guessing – and it is only a guess – that you're the anonymous editor that Laleena greeted here; if so, you've done twice as many good edits as appear under your name. In any case, thank you very much for your help! Chazz (talk) 18:31, 1 January 2008 (UTC)

title: User talk:Milarqui


text:
Design of Main Memory Database System/Allocator

 * Fixed Size Data
 * Variable Size Data
 * Large Size Data


text:
Design of Main Memory Database System/Index

 * Hash
 * Tree


text:
Design of Main Memory Database System/Checkpointing

 * Checkpointing
 * Fuzzy Checkpointing
 * Fuzzy Checkpointing
 * Fault Tolerance


text:
Design of Main Memory Database System/Logging

 * Undo Logging
 * Redo Logging
 * Logical Logging


text:
Design of Main Memory Database System/Recovery

 * Checkpointing
 * Fault Tolerance
 * Preventing Data Corruption

Recovery in DBMS means recovering the database. That is restoring the database to a state that is known to be consistent after some failure that makes the database inconsistent.

There are many things which can go wrong in a database environment. The following sections discuss about most important failure modes
 * 1) Hard Disk Failure
 * 2) Process Failure - software errors
 * 3) System Failure - power loss


text:
Design of Main Memory Database System/Query Representation

 * Query Algebra
 * Parsing
 * Query Tree


text:
Design of Main Memory Database System/Query Optimization

 * Cost Based
 * Rule Based


text:
Design of Main Memory Database System/Query Execution

 * Joins
 * Subqueries
 * Aggregation


text:
Design of Main Memory Database System/Overview of DBMS

Chapter 2: Introduction to Database Management Systems

Table of Contents — Previous: Introduction — Next: Introduction to MMDB

2.1 Overview
The database management system (DBMS) is the software that handles storage and retrieval of data. Most of the DBMS present today are relational DBMS. This book concentrates only on relational database management systems. RDBMS has five main components
 * Interface Drivers
 * SQL Engine
 * Transaction Engine
 * Relational Engine
 * Storage Engine

Figure 1 contains DBMS components, Memory layout and disk files associated with relational database management system. From early days of database system evolution, disk is considered to be the backing store for the data to achieve durability. The architecture above applies for disk resident database systems (DRDB). Nowadays there are two different approaches other than DRDBs. They are Most of the components in the DRDB system architecture above are present in main memory and network databases as well.
 * Main memory databases (MMDB) – data is stored in main memory.
 * Network Databases – data is stored in another host over the network.

2.2 Driver Interfaces
A user or application program shall initiate either schema modification or content modification. These application requests are broadly classified by SQL as Data Definition Language (DDL), Data Manipulation Language (DML) and Data Control Language (DCL). DDL deals with schema modifications; DML deals with content modifications; DCL deals with user access and privilege modifications. If the application program is written in C/C++, it shall use ODBC drivers to connect to the DBMS, or if it is written in Java, it shall use JDBC drivers to connect to DBMS. Some vendors provide language specific proprietary interfaces. For example MySQL provides drivers for PHP, Python, etc.

These drivers are built on top of SQL. They provide methods to prepare statements, execute statements, fetch results, etc.

2.3 SQL Engine
This component is responsible for interpreting and executing the SQL query. It comprises three major components

Compiler – builds a data structure from the SQL statement and then does semantic checking on the query such as whether the table exists, field exists, etc.

Optimizer – transforms the initial query plan (data structure created by compiler), into sequence of operations usually pipelined together to achieve fast execution. It refers the metadata (dictionary) and statistical information stored about the data to decide which sequence of operations is likely to be faster and based on that it creates the optimal query plan. Both cost and rule based optimizers are used in case of DRDBs.

Execution Engine – executes each step in the query plan chosen by optimizer. It interacts with the relational engine to retrieve and store records.

2.4 Transaction Engine
Transactions are sequence of operations that read or write database elements, which are grouped together. Transaction should have the following ACID properties

Atomicity: Either all or none of the effect should appear in database after transaction completes.

Consistency: Constraints should always keep the database in consistent state

Isolation: Transaction should run as though no other transaction is running.

Durability: Once the transaction completes, effect of the transaction on the database must never be lost.

All the above properties are explained in detail under the Transaction Chapter.

Transaction engine comprises three major components

Concurrency Manager – responsible for concurrent synchronized access to data. This is usually implemented using latches and locks. Latches or Mutexes are acquired and released for short duration synchronization and locks are used for that of long duration.

Log Manager – responsible for atomicity and durability property of transaction. Undo logs make sure that transaction rollback takes the database state to previous consistent state when that transaction started. Redo logs make sure that all committed transactions shall be recovered in case of crash.

Recovery Manager- responsible for recovering the database from the disk image and redo log files. Most of the databases uses a technique called ‘shadow paging’ to maintain consistent image of memory in disk.

2.5 Relational Engine
Relational objects such as Table, Index, and Referential integrity constraints are implemented in this component. Some of the main components are

Field – abstracts column level information including type, length, etc. Catalog – maintains Meta data information about the relational database objects such as table, index, trigger, field, etc.

Table – responsible for insert, update, delete, fetch, execute. It interacts with the allocator subsystem of storage engine, which in turn talks to buffer manager to get the job done.

Index – responsible for insert, update, delete, and scan of index nodes for all index types. Popular index types are hash and tree. Hash index is used for improving the point lookup (predicate with equality on primary key) and tree index is used for improving the range query (predicate with greater or less than operator on key).

Expression Engine – represents the predicate (WHERE clause of SQL statement) of the data retrieval operation and responsible for evaluating the expressions, which shall include arithmetic, comparison, and logical expressions.

2.6 Storage Engine
This component is responsible to store and retrieve data records. It also provides mechanism to store meta data information and control information such as undo logs, redo logs, lock tables, etc. Important storage engine components are

Buffer manager – responsible for loading pages from disk to memory and to manage the buffer pool based on Least Recently Used (LRU) algorithm. This also has special purpose allocator for storing control information, which are transient. Buffer pool is the memory space used by buffer manager to cache disk pages associated with records, index information, Meta data information. Some database systems have space limit at individual level and some at global level for buffer pool size.

File Manager – Database in DRDB is nothing but a physical file at disk. File manager maps disk pages of the file to the memory pages and does the actual disk I/O operations in case of major faults generated by buffer manager module.

Process Manager – responsible for registering and deregistering database application process and threads and account all the resources (transactions, locks, latches) acquired by them.

2.7 SELECT Execution Sequence
This is what happens conceptually, when user issues a SELECT SQL statement, Fig 2: SQL SELECT Execution Sequence

 * 1) 	User issues transaction start request (startTrans)
 * 2) 	DBMS reserves one free slot for the transaction started (allocSlot)
 * 3) 	DBMS returns to the user.
 * 4) 	User issues an SELECT SQL request (stmtExecute)
 * 5) 	DBMS interprets the request and represents it in data structure (parse)
 * 6) 	DBMS checks whether table and field names exist in database (check)
 * 7) 	DBMS identifies the optimum way to execute the statement (optimize)
 * 8) 	DBMS executes the statement by interacting with relational engine (execute)
 * 9) 	DBMS checks with buffer manager whether the disk page where data is present is already present in memory (isPageInMemory)
 * 10) 	DBMS interacts with file manager to load the page into memory buffer if not already loaded.( loadPage)
 * 11) 	DBMS evaluates records which satisfy the predicate (evaluate)
 * 12) 	DBMS takes lock on the records based on the isolation level of the transaction (lockRecord)
 * 13) 	DBMS retrieves records and returns to the application (returnRecords)
 * 14) 	User issues transaction commit (commit)
 * 15) 	DBMS releases all the locks acquired during the transaction (releaseLocks)
 * 16) 	DBMS releases the transaction slot allocated for this transaction (freeSlot)
 * 17) 	DBMS returns to the application

2.8 INSERT Execution Sequence
This is what happens conceptually, when user issues INSERT SQL statement,

Fig 3: SQL INSERT Execution Sequence

 * 1) 	User issues transaction start request (startTrans)
 * 2) 	DBMS reserves one free slot for the transaction started (allocSlot)
 * 3) 	DBMS returns to the user.
 * 4) 	User issues an INSERT SQL request (stmtExecute)
 * 5) 	DBMS interprets the request and represents it in data structure (parse)
 * 6) 	DBMS checks whether table and field names exist in database (check)
 * 7) 	DBMS identifies the optimum way to execute the statement (optimize)
 * 8) 	DBMS executes the statement by interacting with relational engine (execute)
 * 9) 	DBMS checks with buffer manager whether the disk page where record needs to be allocated is already present in memory (isPageInMemory)
 * 10) 	DBMS interacts with file manager to load the page into memory buffer if not already loaded.( loadPage), not shown in diagram above
 * 11) 	DBMS creates undo log records for the newly inserted record (createUndoLog)
 * 12) 	DBMS copies the values from the application buffer to allocated new record (copyValues)
 * 13) 	DBMS creates redo log records for the newly inserted record (createRedoLog)
 * 14) 	DBMS takes lock on the allocated record based on the isolation level of the transaction (lockRecord)
 * 15) 	DBMS checks if indexes are available, if yes it does index node insertion for all indexes on this table. (insertIndexNode)
 * 16) 	DBMS checks with buffer manager whether the index disk page where index node needs to be allocated is already present in memory (isPageInMemory)
 * 17) 	DBMS interacts with file manager to load the page into memory buffer if not already loaded.( loadPage), not shown in diagram above
 * 18) 	DBMS takes lock on the allocated index node (lockIndexNode)
 * 19) 	DBMS returns to the application with the number of rows affected (returnRowsAffected)
 * 20) 	User issues transaction commit (commit)
 * 21) 	DBMS releases all the locks acquired during the transaction (releaseLocks)
 * 22) 	DBMS releases the transaction slot allocated for this transaction (freeSlot)
 * 23) 	DBMS returns to the application

Table of Contents — Previous: Introduction — Next: Introduction to MMDB


text:
User talk:134.129.68.7

Hi, you showed an interest in a printable edition for This Quantum world. I am pleased to tell you that I have started it in development at The Quantum world/Print version and it should be finished soon. If you want to speed up its development please help develop it. I hope you enjoy it and take part in the development of this Wikibook. I will happily convert it to pdf once it is finished. Rememember to credit any images used with something that is visible after printing. ---Anonymous101 (talk) 19:44, 1 January 2008 (UTC)

title: User talk:134.129.68.7


text:
Technical Theatre/Lighting/Fresnels

A Fresnel lantern is a light which makes use of the Fresnel Lens, named after Augustin-Jean Fresnel. The lens has a stepped appearance, instead of a round, smooth one. This allows the lens to have a much greater curvature than would otherwise be practical.

Theatrical Fresnels are typically made in 8, 6 or 3 inch varieties, referring to the diameter of the lens, with lamps ranging in wattage from 150 W (typically with a 3-inch fresnel) to 2000W (with an 8-inch fresnel). Fresnel lenses can operate close to the light source and are very cheap to produce, so the lanterns tend to be small and cheap.

Unfortunately, Fresnels are not very efficient. The reflector cannot be larger than the lens aperture, and thus all the radiated light that is neither redirected forward by the spherical reflector behind the bulb or emitted directly through the lens is absorbed by the casing as waste heat.

Uses
The stepped lens gives the beam a very even spread of light, compared to an ERS, and this makes them useful for color washes or back- or top- lighting. They are best used at a medium throw. The lack of beam control can be combated by the use of barn doors.

title: Technical Theatre/Lighting/Fresnels


text:
User:Vallsvg

R I C A R D O  A.  V A L L S,  P. Geo., M. Sc.

''1008-299 Glenlake Ave., Toronto, Ontario,M6P 4A6,Canada

Phone: (416) 767-8226 E-mail: vallsvg@gmail.com Cell : +1-437-215-4432

SUMMARY

As a professional geologist with more than 40 years in the mining industry, I have extensive geological, geochemical, and mining experience, managerial skills, and a solid background in research techniques, and training of technical personnel. I am fluent in English, French, Spanish, and Russian. I have been involved in various projects world-wide (Canada, Africa, Russia, Argentina, Haïti, Cuba, and Central America.). Projects included regional reconnaissance to local mapping, diamond drilling and RC-drilling programs, open pit and underground mapping, geochemical sampling and interpretation, and several exploration techniques pertaining to the search for diamonds, PGM, gold, nickel, silver, base metals, industrial minerals, oil & gas, and other magmatic, hydrothermal, porphyritic, VMS and SEDEX ore deposits. Special strengths are related to multilingual geochemical and geological studies, management and organization, geomathematical analysis and modelling, structural studies, database design, exploration studies and writing technical reports. P.Geo. registered in the province of Ontario.

Visit my web site at Central Desktop

title: User:Vallsvg


text:
Why, and How, Should Geologists Use Compositional Data Analysis

 * Cover Page
 * /Summary/
 * /The Model/
 * /Normal Processing of the Data/
 * /Factor Analysis/
 * Dealing With Zero Values- a Summary
 * /Conclusions and Recommendations/
 * /References/


text:
Political History of New Zealand/Provincial Governments

‹ Back to The First Political Parties in New Zealand

Provincial Governments in New Zealand
From 1841 until 1876, provinces had their own Provincial Governments. Originally, there were only three provinces, set up by the Royal Charter:
 * New Ulster (North Island north of Patea River)
 * New Munster (North Island south of Patea River, plus the South Island)
 * New Leinster (Stewart Island)

In 1846, the provinces were reformed. The New Leinster province was removed, and the two remaining provinces were enlarged and separated from the Colonial Government. The reformed provinces were:

 * New Ulster (All of North Island)
 * New Munster (The South Island plus Stewart Island)

The provinces were reformed yet again by the New Zealand Constitution Act 1852. In this constitution, the old provinces of New Ulster and New Munster were abolished and six new provinces were set up:

 * Auckland
 * New Plymouth
 * Wellington
 * Nelson
 * Canterbury
 * Otago

Each province had its own legislature that elected its own Speaker and Superintendent. Any male 21 years or older that owned freehold property worth £50 a year could vote. Elections were held every four years.

Four new provinces were introduced between November 1858 and December 1873. Hawkes Bay broke from Wellington, Marlborough from Nelson, Westland from Canterbury, and Southland from Otago.

Not long after they had begun, Provincial Governments were under political debate in the General Assembly. Eventually, under the premiership of Harry Atkinson, the Colonial Government passed the Abolition of Provinces Act 1876 which wiped out the Provincial Governments, replacing them with regions. Provinces finally ceased to exist on 1 January 1877.

Forward to Political Policies in the Twentieth Century ›


text:
Political History of New Zealand/Political Policies in the Twentieth Century

‹ Back to Provincial Governments

Political Policies in the Twentieth Century
At the turn of the century, the Liberals, New Zealand's first modern political party, were in power as the Government. The Liberals created a 'family farm' economy, by subdividing large estates and buying more Maori land in the North Island. New Zealand gained strong economic ties with Britain, exporting farm produce and other goods. Under Liberal, New Zealand started to form its own identity, and due to this, New Zealand declined to join the Australian Federation of 1901.

The Liberals were defeated in the 1912 election by the Reform Party, and never fully recovered. William Massey, the leader of the Reform Party, had promised state leaseholders they could freehold their land, which proved to be a good promise in winning the election. Under the Reform Party, New Zealand entered World War I, aiding Britain.

New Zealand had prosperous years at the end of the 1920s, and so was hit hard by the Great Depression of the 1930s. The Conservative coalition Government failed to get New Zealand out of the Depression, which led to the rise of the Labour Party in 1935.

Under Labour, New Zealand's economy slowly recovered. The Reserve Bank was taken over by the state in 1936, spending on public works increased, and the State Housing Programme began. The Social Security Act 1938 increased the state of welfare dramatically.

With the outbreak of World War II in the 1940s, the New Zealand Government again chose to support Britain with troops. New Zealand also chose to fight in Korea in the early 1950s.

In 1945, Peter Fraser played a signifiant role in the conference that set up the United Nations, but the Labour Government was losing support. In 1949, the National Party became the Government of New Zealand. In the 1960s, the National Government sent troops to Vietnam to keep on side with the United States, despite protests, but this didn't hinder New Zealand's support of the National Party, and National ruled New Zealand until 1984 with only two exceptions.

New Zealand's culture remained based on Britain's through the 1960s, and the economy was still mainly made up of exporting farm produce to Britain. However, when Britain joined the European Economic Community in 1973, New Zealand no longer had an assured market for farm products.

After the second oil shock of 1978, the National Government tried to fix the problem with new industrial and energy initiatives and farm subsidies. The economy faltered in the 1980s when the fall of oil prices made these schemes unsound. Inflation and unemployment went up as a result.

The National Government of 1990-99 passed the controversial Employment Contracts Act which opened up the labour market, but diminished the power of trade unions.

In 1996, a new voting system was introduced, Mixed Member Proportional Representation, which allowed minority or coalition Governments to become the norm, but the National and Labour parties still remained dominant.

Prime Ministers of the Twentieth Century

Forward to MMP Introduced ›


text:
User talk:Vallsvg

Welcome!
Come introduce yourself at the new users page. If you have any questions, you can ask there or contact me personally.--Whiteknight (Page) (Talk) 00:30, 2 January 2008 (UTC)

Images
Also, I wanted to let you know that we have a Math Extension so that you can write equations directly into the text of a page, without having to upload pictures for each equation. I think that might be easier for you. Let me know if you have any questions. --Whiteknight (Page) (Talk) 00:31, 2 January 2008 (UTC)

Re:Tables
Tables are a little tricky, and at the moment we don't have a good resource available right now to explain it. I'll try to write up a reference about it tonight while I am thinking about it, and I will send you the link when it's prepared.

Tables in wikitext are very similar to tables in HTML. In fact, if you know it, you can write tables directly in HTML if you are so inclined. To write a wiki-table, you first create a table using {| and |}. A row in a table is shown with a |- , and an individual cell is written with a single  |. Here is a quick example:

Which produces this table:

If you want to be more fancy, you can add a special tag to the table to make it more "pretty":

Which produces this:

This is just the tip of the iceberg, but I hope it gets you started. Like i said, I'm going to try to write up a good resource for it, and I'll give you a link when I have it. --Whiteknight (Page) (Talk) 22:16, 2 January 2008 (UTC)

 * Here is the page i've been working on: Wikitext/Tables. If you are looking for something more simple, I think you are out of luck. If you upload the raw HTML table you have generated, I can use a bot to convert it into a more compact wikitext format. If you do not know how to do that, you can email me the code and I will try to pick through it for you. I hope this helps. --Whiteknight (Page) (Talk) 23:33, 2 January 2008 (UTC)

Re:Donation
I love book donations! We have set up an informational page at WB:DONATE. If you are the author, or if you have the ability to release the book under a particular copyright license, then we can easily accept the donation. I will send you an email, you can reply with the files. I look forward to seeing your books! --Whiteknight (Page) (Talk) 23:40, 2 January 2008 (UTC)

Re:No Progress.
You're right about the lack of progress, and I want to apologize for the delay. I will focus my attentions on this 100%. --Whiteknight (Page) (Talk) 00:10, 7 January 2008 (UTC)

 * Okay, I have made the conversion, and uploaded much of the text. I need to go back and replace some of the older text to make it look nicer (the new versions, especially the new tables are very nice looking). None of the images from the later chapters have been uploaded nor inserted into the text. I will try to do that as best as I can (you can certainly help out with the image uploading). Proof read things to make sure that the formatting and everything turned out alright. --Whiteknight (Page) (Talk) 04:57, 7 January 2008 (UTC)

Image license templates
Please go back and tag all your uploads which don't have license templates. I realize that they're all appropriately licensed, but you need to add the template. I recently ran a bot to tag almost 60 of your uploads, but the rest you'll have to clean up yourself, or I will delete them one week after the upload date. If you have questions or concerns about this, please ask on my talk page. – Mike.lifeguard  | talk 16:30, 23 January 2008 (UTC)

maths markup
G'day, I just replaced a couple of images on Biogeochemical Selectiveness of Cedars Over Metamorphic Rocks of the Escambray Complex, Sancti Spíritus, Cuba/Vegetation with some maths markup. This is generally preferred for formulae on wiki pages, because the rendering is sorted by the wiki per the user's preferences, and is often clearer. You can read about it here: m:Help:Displaying a formula. If I get a chance, I'll sort out the other images on that page - unless you beat me to it! Webaware talk 12:30, 31 January 2008 (UTC)

 * I've actually gone through and updated the remainder of the equation images on this page to be text-based math formulas instead. Take a look at the formatting of these, and double check that all the translations are accurate. Also, make sure that you like the formatting (I think this version is better). There are always improvements that can be made. --Whiteknight (Page) (Talk) 14:55, 31 January 2008 (UTC)

title: User talk:Vallsvg


text:
User talk:Odd spark

Welcome!
Come introduce yourself at the new users page. If you have any questions, you can ask there or contact me personally.--Whiteknight (Page) (Talk) 00:30, 2 January 2008 (UTC)

title: User talk:Odd spark


text:
Political History of New Zealand/The New Zealand Government Today

‹ Back to MMP Introduced

The New Zealand Government Today
New Zealand is currently run by the National Party, under the leadership of John Key. The formal coalition comprises of the National Party and the Maori Party, but the New Zealand First, Act, and United Future parties provide confidence and supply to National in return for their leaders being ministers outside of cabinet.

The leader of the opposition is Phil Goff, who is the leader of the Labour Party. The Progressive Party and the Green Party are also in opposition of the Government.

Current Parties in Parliament
New Zealand Political Parties in Parliamant Website

Forward to the Bibliography ›


text:
User talk:Opiaterein

Welcome!
Come introduce yourself at the new users page. If you have any questions, you can ask there or contact me personally.--Laleena (talk) 01:03, 2 January 2008 (UTC)

title: User talk:Opiaterein


text:
User:JECompton~enwikibooks

I've been working my way through the LaTeX Wikibook, and you self-deprecatingly describe your knowledge of typesetting as "feeble". I worked for a well-known printing house for a few years and would be willing to try to help if you need any assistance. --Kittybriton (talk) 01:57, 2 January 2008 (UTC)

title: User:JECompton~enwikibooks


text:
User talk:Kittybriton

Welcome!
Come introduce yourself at the new users page. If you have any questions, you can ask there or contact me personally.--Whiteknight (Page) (Talk) 01:58, 2 January 2008 (UTC)

title: User talk:Kittybriton


text: User:Whiteknight/Count Ticker/2008/January


text:
User:Kittybriton

Come and visit my online profile

title: User:Kittybriton


text:
User talk:Bbq-dtp-ri

Welcome!
Come introduce yourself at the new users page. If you have any questions, you can ask there or contact me personally.--Whiteknight (Page) (Talk) 02:15, 2 January 2008 (UTC)

title: User talk:Bbq-dtp-ri


text:
User:Whiteknight/per book/Wikibooks:Votes for deletion.js

/* A Semi-automated archiver for VfD. Use at your own risk, it's very fragile and buggy.

$(function {  var editlinks = wk.getElementsByClass("editsection");  for(var i = 0; i < editlinks.length; i++) {    var j = i + 1    var a = document.createElement("a");    a.href = "javascript:ArchiveSection(" + j + ");";    a.innerHTML = "archive";    a.id = "WK_Archive_" + j;    wk.appendChildren(editlinks[i], ["[", a, "]"]);  } });

var j; function ArchiveSection(num) { j = num; wk.loadWikiTextSection("Wikibooks:Votes for deletion", j, ArchiveSection2); }

function ArchiveSection2(text) { var pagename = "Wikibooks:Votes for deletion"; name = prompt("Enter the name of the book or page"); if(!confirm("Move discussion for " + name + "?")) return; wk.postEdit(pagename + "/" + name, text, "Moving discussion to archive"); wk.postEdit(pagename, "", "Moving discussion to archive", {section:j}); window.location.refresh(true); }


text:
Wikibooks:Requests for deletion/Camoras program

Camoras program
looks like someone typed up their programming assignment on Wikibooks --Spoon! (talk) 07:04, 20 December 2007 (UTC)
 * You are correct. Looks like it could be a sample in a programming textbook if you wanted it to be. Laleena (talk) 22:24, 20 December 2007 (UTC)
 * --Panic (talk) 18:24, 21 December 2007 (UTC)
 * - as per Spoon! -- Webaware talk 09:09, 23 December 2007 (UTC)
 * . No textbook content. --Whiteknight (Page) (Talk) 13:30, 24 December 2007 (UTC)
 * --Shahab (talk) 07:30, 26 December 2007 (UTC)


text:
Wikibooks:Requests for deletion/Special Relativity/The interpretation of special relativity

Special Relativity/The interpretation of special relativity
This is a single person's idea that is not part of established knowledge of the subject, transferred to a separate sub-page by RobinH, after a discussion with that single person at Talk:Special Relativity/Simultaneity, time dilation and length contraction. This single person has publicized this idea on just about every self-submission web site that xe can find, it seems, in many cases citing this very sub-page as an authority, or at least as the primary source of the idea. See w:Wikipedia:Articles for deletion/Natural mathematics for details. Uncle G (talk) 13:18, 17 December 2007 (UTC)
 * [[Image:Symbol delete vote.svg|15px]] zomg delete - Will we never be rid of the crackpots? – Mike.lifeguard  | talk 14:22, 17 December 2007 (UTC)
 * Agreed. I went over this page and the paper that it references, and both of them are basically rubbish. Established counter-theories are one thing, this is a self-published work of nonsense. --Whiteknight (Page) (Talk) 04:45, 18 December 2007 (UTC)
 * The ideas in question are way off the mainstream but more importantly they are presented in an obscure way. The article does not even define "Natural Mathematics" and should be deleted. I had some vague hope that Ryskamp would introduce the "hole argument" and other philosophical/mathematical problems that led to GR during 1915 but all the article contains is Ryskamp's original vague statements. RobinH (talk) 10:28, 18 December 2007 (UTC)
 * Almost original research but basically not very good. Xania [[Image:Flag_of_Italy.svg|15px]]talk 00:05, 19 December 2007 (UTC)
 * --Panic (talk) 00:33, 19 December 2007 (UTC)
 * Looks more like original commentary then anything else. Laleena (talk) 01:41, 19 December 2007 (UTC)


text:
Wikibooks:Requests for deletion/Wikibooks:Active wikibookians

Active wikibookians & Wikibookians
This module as been almost unused for some time and recently had some edits, the information it provides is not accurate and it seems not to maintained by the editors (me included), and so doesn't perform any valid function. Removal of it would decrease confusion and as it seems not have any impact on its users, probably substituting it by a template that uses a category, users could apply their userspace would provide a better and efficient way on publicizing their active status. --Panic (talk) 19:35, 13 December 2007 (UTC)
 * Addendum: I have attempted to check out why the page was created or its function and why I signed it at the time, it seems that it was part of the newsletter, I think I only received one issue, just after it was announced, so it must be defunct or inactive for a while now.
 * Most links is from a bot account, User:The Staff. User:The Staff declares it is operated by a team of wikibooks admins. What is the status? Is this still going to be implemented/needed ? --Panic (talk) 01:04, 14 December 2007 (UTC)

 * --Panic (talk) 19:36, 13 December 2007 (UTC)
 * I would like to expand this VfD to include Wikibookians as well (for the same reasons). Active wikibookians was created originally as a delivery list for the newsletter. A bot would read the page, and send a message to every user in the list. However, you are right that we stopped sending the newsletter, and so this page doesnt have any practical use. If/when we decide to start a new newsletter system, I doubt we will be using a manual list. --Whiteknight (Page) (Talk) 01:09, 14 December 2007 (UTC)
 * [[Image:Symbol delete vote.svg|15px]] Delete both - these are outdated, and mostly useless in any event. A category or template would be a better way to deliver a newsletter if it gets off the ground. – Mike.lifeguard  | talk 02:09, 14 December 2007 (UTC)
 * per nom. Mattb112885 (talk to me) 02:22, 14 December 2007 (UTC)
 * - Webaware talk 08:17, 16 December 2007 (UTC)


text:
User:M-Falcon

Currentry,read only.

title: User:M-Falcon


text:
User:Whiteknight/bottest/test

Quenya

title: User:Whiteknight/bottest/test


text:
.NET Development Foundation/Using events

System types and collections: Using events and delegates

Using events and delegates
Exam objectives: Control interactions between .NET Framework application components by using events and delegates. (Refer System namespace)

Delegate class - MSDN

 * Delegates hold pointers to one or more functions and invoke them as needed.

 * One common use of delegates is for event handling. A class that raises an event does not know what objects or methods want to receive the event, so an intermediary or pointer mechanism is needed between the object raising the event and the object(s) receiving the event.  Delegates can be used as function pointers to accomplish this.

 * A delegate is a class, but unlike a regular class it has a signature. In the .Net framework you just declare the delegate and the CLR handles the implementation of the class.

//delegate declaration public delegate void AlarmEventHandler(object sender,EventArgs e);

 * The first complete example just declare a delegate type, then declare a variable of that type, assign a function to it and execute the delegate variable which has the effect of executing the function.

 * The second delegate example implement the concept of a callback function. A function is called with a delegate as an argument. When it executes the delegate it has no knowledge of exactly what function is executed. Part of its behavior is delegated to the function passed as a parameter (thru the delegate).

 * The third delegate example uses a delegate member to produce the same pattern as an event. Note that executing the delegate member without assigning at least one function will cause an exception. Also assigning 2 functions with the += operator will execute the 2 functions when the delegate is executed. If the delegate has a return code, the return value of the last executed function will be returned.

 * The fourth example is the basic example of an event. It is exactly as the third example with the event keyword added to the member declaration and a test before calling the event because of the exception thrown on an "empty" event. This example shows clearly that an event is nothing more then a multicast delegate.

 * Executing the functions associated with an event is called raising the event.

 * The functions associated with the event are called event handlers

EventArgs class - MSDN

 * By convention an event uses a delegate that returns void and take 2 arguments:
 * an object of type System.Object that contains a reference to the object that raised the event.
 * an object from a class derived from EventArgs that contains the data passed from the object that raised the event to the event handlers.

 * The EventArgs class does not contain any data by itself.

 * So an event with no data will use a delegate of the form

public delegate void DelegateTypeName (object sender, EventArgs e)

 * This simple event example is the same as the last one with the IntEventArgs class that serves for passing the int argument to the event handler and all the parameters changed to follow the calling convention for events.

EventHandler delegates - MSDN and MSDN

 * There are two special delegates defined in the System namespace to help you with the events declarations.

 * The first is the EventHandler delegate. It passes no data. An event that passes no data can be declared as:

public event EventHandler EventName

 * without having to declare a custom delegate.

 * This is the usual way to declare an event that passes no data.

 * The second is the EventHandler generic delegate where T is a type derived from EventArgs

public event EventHandler EventName

 * again no need to declare a custom delegate type.

 * This is the usual way to declare an event that passes data to the event handlers.

 * Note that in this case you still have to declare the type T derived from EventArgs.

 * This concludes the basic examples for events and delegates.


text:
User:Whiteknight/bottest/Quenya

Podcast Directories This section is archived

This "book" is a list of podcasts - that's it. That's not a textbook by any stretch of the imagination, but is rather the sort of advertising we don't allow. Even if the links aren't advertising, Wikibooks is not for lists anyways - we host instructional content. This book is duplicated at Podcast Directories. – Mike.lifeguard  | talk 01:20, 30 November 2007 (UTC)
 * Agree with Mike. A list of websites is not textbook content.  For one the links are likely to be dynamic and become outdated.  Wikibooks is not the place for this.  --AdRiley 09:07, 30 November 2007 (UTC)

 * Comment - Is there a book that provides information on how to create/use and publish podcasts or tells the history of the subject? --Panic 01:55, 1 December 2007 (UTC)
 * Yes – Mike.lifeguard  | talk 02:01, 1 December 2007 (UTC)
 * I'm sorry I didn't examine what linked to the VfD page, it seems that the "book" links to this "page" wouldn't be better to merge the 2 adding the listing to/as a external links section, like other works have?
 * Some of the introductory text could also be saved.
 * It seems better than a simple delete as the only "offense" is that as a stand alone page it should not qualify as a wikibook (to what I agree). --Panic 02:09, 1 December 2007 (UTC)
 * I'm offering to do the work if that solution is acceptable... --Panic 02:11, 1 December 2007 (UTC)
 * --Panic 03:06, 2 December 2007 (UTC)
 * into Podcasting. -within focus 03:00, 2 December 2007 (UTC)
 * A listing of podcasting websites has no educational or instructional value, and can become quickly outdated. It would be far better for the Podcast book to include a link to http://search.dmoz.org/cgi-bin/search?search=podcast and/or http://www.dmoz.org/Computers/Internet/On_the_Web/Podcasts/ then to merge the list of websites included in these pages. --dark lama  16:31, 3 December 2007 (UTC)
 * Comment Yes the outdating is my problem with external links in wikibooks. Do we have any sort of policy on what external links are and are not appropriate? I'm still a delete. --AdRiley 10:27, 4 December 2007 (UTC)
 * - DMOZ looks like the place for this. Webaware talk 13:38, 5 December 2007 (UTC)

 * , Wikibooks should not be for lists of external websites, so don't merge either. Thanks. Redrocketboy (talk) 23:20, 9 December 2007 (UTC)
 * . Wikibooks is not a host for lists or directories. A book needs to have "prose" or something like it in order to qualify here as a "book". As to the issue of merging, we have to ask ourselves whether this directory has intrinsic educational value, or whether it can be used in an appendix usefully to support another book. It could certainly be crammed uncomfortably into the Podcasting book, and we could blindly assume that the list is up to date (useful) and that none of the links in the list represent spam or other uncouth interests. I'm really not willing to make that leap of faith, especially not when it comes to the ever-changing world of internet media distribution. --Whiteknight (Page) (Talk) 22:35, 12 December 2007 (UTC)
 * . We seem to have a hitory of deleting things like this, and I feel the arguments made for deletion of the MMD page also apply here, namely that there are concerns about becoming outdated. Mattb112885 (talk to me) 15:53, 16 December 2007 (UTC)
 * I just looked over the first page, and I don't see who wouldn't think it advertising, certainly not a textbook. You might be able to merge the links as resources, but this page itself should be deleted. Laleena (talk) 13:02, 20 December 2007 (UTC)

title: User:Whiteknight/bottest/Quenya


text:
User talk:TheodoreB~enwikibooks

Come introduce yourself at the new users page. If you have any questions, you can ask there or contact me personally. Helpfulstuffnz (talk) 04:55, 2 January 2008 (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 TheodoreB. To make sure that both of you can use all Wikimedia projects in future, we have reserved the name TheodoreB~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:49, 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:35, 19 April 2015 (UTC)

title: User talk:TheodoreB~enwikibooks