text:
Using Ubuntu Linux/How to choose the right one

With so many different derivatives it can be quite difficult to decide which one to download. If you're really anxious to get started, just use standard Ubuntu.

What if I choose the wrong distribution?
The difference between Ubuntu, Edubuntu, etc. is just the software that's installed. Generally, switching to any other variant is fairly trivial and is more like adding more onto the system rather than replacing parts. Once you get one, you can easily mix and match components that are associated with one edition with another.

In short: don't worry about it; you can change your mind. That's one of the things that's great about free software: the freedom.

Ubuntu (Standard)
Ubuntu standard is the most common (and most supported) version of Ubuntu which suits almost every desktop user. It works on most PCs built in the last 3 - 5 years and maybe some older ones. Standard Ubuntu uses the Unity desktop environment by Canonical. (in contrast to KDE or XFCE).

Who should use it? People that just want a simple but powerful desktop operating system, with fairly recent hardware. Both people with and without previous Linux experience should find it easy to use.

Ubuntu GNOME
A rolling release Linux distro, this modifies Ubuntu to use the GNOME 3 desktop environment, after Ubuntu switched to Unity. Ubuntu 10.x and below users should have easy goings with it.

Who should use it? People familiar with GNOME based linux distributions such as Fedora.

Kubuntu
Kubuntu is the KDE based derivative of Ubuntu. Like standard edition it should be fairly easy for new users to pick up. (For windows users it may be easier than Standard Edition as its UI is more like Windows.) It should work with PCs built in the last 3 - 5 years but older PC's will struggle to run several applications at once.

Who should use it? Like above people that just want a Desktop for their newish computer. Kubuntu is better suited to previous Linux users and Windows users and also to migrants from Mac.

See KubuntuGuide !

Xubuntu
Xubuntu is an XFCE based derivative. It is designed to run on older and slower hardware and features much more lightweight software than K/Ubuntu. Xubuntu has a very similar interface to Ubuntu Standard Edition and people with no previous Linux experience should find it easy enough to navigate. It should work with PC's built in the last 10 or even 12 years.

Who should use it? People with slower/older computers with aging hardware or people that prefer a lightweight Operating System.

Ubuntu Server Edition
Ubuntu Server Edition is the most advanced version of Ubuntu. By default it comes with a LAMP server but it can also be used for bare command-line only machines or as a starting point to build a customised system. It has low system requirements so it should work on computers built in the last 10 years.

Who should use it? Network admins, system administrators, and people with a fair bit of previous experience of Linux and that are not afraid of the command line.

Ubuntu Studio
Ubuntu Studio is a media based Ubuntu derivative. It has fairly high system requirements so you will need a recent machine to run it to the best of its ability.

Who should use it? The arty types. People who want to run a music studio, film cutting room or art studio from their new computer.

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


text:
Using Ubuntu Linux/Introduction for Mac users

Welcome!
macOS's core, Darwin, is Unix-like. A lot of the commands you might use on the terminal, like,  ,  , etc. will work in Ubuntu because they both use Bash as their shell.

Intel Macs from all generations should be supported. PowerPC is less certain, since official releases are unsupported and drivers may not be available for all the hardware.

If you're using a hackintosh, make sure any EFI emulator or kernel hack you have set in place for macOS doesn't apply system-wide so that it doesn't collide with GRUB or its settings. If you plan on switching completely, you won't need to worry about any of it because Ubuntu will replace everything upon installation.


text:
Understanding Multitouch/Image Processing

Processing
This chapter is designed to represent the computational model for the upcoming chapters. This is important as we may implement these algorithms as either software or hardware, in parallel or in serial. Before we go further, you should read the chapter on Image Acquisition, and understand our theoretical sensor model.

Software Models
As of 2007, computer hardware has become very sophisticated, and has made inclusions specifically designed for signal processing, including both Single Instruction Multiple Data (SIMD) hardware and multiple cores and multiple threads in hardware (SMT). Both of these will influence the way we will want to import our data from our sensor, to make the best we can from our hardware.

One of the most important things to understand while implementing for an SIMD machine is the idea of Arrays of Structures verses Structures of Arrays. Inexperienced and older programmers will often miss optimization opportunities afforded to them by SIMD hardware by mistakenly using older concepts of storing the data in memory. The design idiom of Array of Structures is thusly rampant in older code as a way of improving readability.

Example 1: Array of Structures
This makes inefficient use of our hardware because we cannot process these structures in parallel, and can cause problems with processor cache loading and unloading due to (mis)alignment. Processor companies have implemented instructions to aid in the reinterpretation of this kind of data (often called "swizzling" and "deswizzling"), but by simply designing the code correctly in the first place, we can avoid these slower instructions.

Example 2: Structure of Arrays
The Structures of Arrays idiom takes advantage of our parallel hardware more efficiently. Because our structure encapsulates more data, we can get all of the data into the processor's cache earlier on. The alignment is now fixed and aligned to 4 bytes, we can skip swizzling and deswizzling.


text: Subject:Emergency medicine

title: Subject:Emergency medicine


text:
User talk:82.45.250.105

 – Mike.lifeguard  | talk 18:36, 14 September 2007 (UTC)

title: User talk:82.45.250.105


text:
User talk:Castlevaniamaster1

Welcome to My Talk Page! Feel Free to Leave comments.

title: User talk:Castlevaniamaster1


text:
Talk:Muggles' Guide to Harry Potter/Magic/Fidelius

"J. K. Rowling had stated that when a Secret-Keeper dies, the ability to divulge the secret dies with him."

That's not actually what she said. What she said was that upon the Secret-Keeper's death, no one who didn't know the secret would then suddenly know it. That's not the same thing as the secret could not be divulged after the Secret-Keeper's death.

 * Her actual words, from the quoted link: "When a Secret-Keeper dies, their secret dies with them, or, to put it another way, the status of their secret will remain as it was at the moment of their death. Everybody in whom they confided will continue to know the hidden information, but nobody else." True, it says nothing about everyone privy to the secret then becoming secret-keeper, but she also says, "a secret (eg, the location of a family in hiding, like the Potters) is enchanted so that it is protected by a single Keeper (in our example, Peter Pettigrew, a.k.a. Wormtail). Thenceforth nobody else – not even the subjects of the secret themselves – can divulge the secret. Even if one of the Potters had been captured, force fed Veritaserum or placed under the Imperius Curse, they would not have been able to give away the whereabouts of the other two. The only people who ever knew their precise location were those whom Wormtail had told directly, but none of them would have been able to pass on the information." Which implies pretty strongly that if the original secret-keeper dies, the ability to divulge the secret dies with him. Chazz (talk) 21:06, 21 November 2008 (UTC)


text:
User talk:Peterblockley

Image copyright problem with Image:Example1 underdamped.png
Thanks for uploading Image:Example1 underdamped.png. The Wikimedia Foundation is very careful about the images included in Wikibooks because of copyright law, and requires that we maintain a strict copyright policy. The image that may soon be deleted unless we can determine the copyright holder and status.

The copyright holder is usually the creator, the creator's employer, or the last person who was transferred ownership rights. Copyright information on images is signified using copyright templates. The three basic license types on Wikibooks are open content, public domain, and fair use. Find the appropriate template in Image copyright tags and place it on the image page like this:.

Please signify the copyright information on any other images you have uploaded or will upload. Remember that images without this important information or giving false information can be deleted by an administrator. If you have any questions, feel free to contact me, or ask another Wikibookian at the help desk. Thank you.  – Mike.lifeguard  | talk 19:58, 14 September 2007 (UTC)

title: User talk:Peterblockley


text:
User talk:Cps~enwikibooks

Image copyright problem with Image:Imagem1.JPG
Thanks for uploading Image:Imagem1.JPG. The Wikimedia Foundation is very careful about the images included in Wikibooks because of copyright law, and requires that we maintain a strict copyright policy. The image that may soon be deleted unless we can determine the copyright holder and status.

The copyright holder is usually the creator, the creator's employer, or the last person who was transferred ownership rights. Copyright information on images is signified using copyright templates. The three basic license types on Wikibooks are open content, public domain, and fair use. Find the appropriate template in Image copyright tags and place it on the image page like this:.

Please signify the copyright information on any other images you have uploaded or will upload. Remember that images without this important information or giving false information can be deleted by an administrator. If you have any questions, feel free to contact me, or ask another Wikibookian at the help desk. Thank you.  – Mike.lifeguard  | talk 20:02, 14 September 2007 (UTC)

Your account will be renamed
Hello,

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

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

title: User talk:Cps~enwikibooks


text:
User talk:Jaipaldatta

Come introduce yourself at the new users page. If you have any questions, you can ask there or contact me personally. – Mike.lifeguard  | talk 20:15, 14 September 2007 (UTC)

Re:Impersonation
I'm sorry that you feel there is some sort of problem with User:Shahab. However, none of our records indicate any kind of a problem. It is not our duty to police possible identity theft on other websites, nor is it our duty to prove that User:Shahab here is the same as a person who appears to have impersonated you elsewhere. I would ask that you please stop making these allegations, because they are neither constructive nor suitable subject matter for Wikibooks. --Whiteknight (Page) (Talk) 12:45, 24 September 2007 (UTC) I am not I T Expert. I do not know how to write in Wi Ki Books and share my knowledge with others and learn from others. This may be starting problems with a new system. I hope You may understand. --Jaipal Singh Datta  ;

Your userpage
I moved the page Jaipal Singh Datta to User:Jaipaldatta, since it appeared to be your userpage. I recommend removing phone numbers and emails from it, though. Instead, you might enable email from within Wikibooks, so users can contact you by email without seeing your email address. – Mike.lifeguard  | talk 02:17, 9 October 2007 (UTC)

WB:HELP
Thank you for notifying the community about your contributions. We're well aware of what you're planning to write; there's no need to continually advertise it. Continuing to do so is disruptive; please use WB:HELP for requests for assistance - it is a page to ask for help; not a page to constantly advertise what you're doing. Thanks for your understanding. – Mike.lifeguard  | talk 18:49, 29 October 2007 (UTC)

Your book(s)
Are all the books you are currently working on different? It seems like you are putting the same content into several books with similar but different titles. Please review our naming policy, and make sure that you follow it. As well, please submit only one copy of the book under one title; there is no need for multiple copies in multiple locations. That will not make it easier to find. Thanks – Mike.lifeguard  | talk 04:52, 9 November 2007 (UTC)

Gita
I was reading through this page, and I worry that it might be a violation of policy. You should read Our inclusion policy. Specifically, I worry that this page is:

 * 1) Original research. This means that the thought is original, and that it cannot be referenced or verified using other sources. Original research is not allowed on Wikibooks because all information here needs to be verifiable.
 * 2) An advertisement. It seems like you are using this book as an advertisement for your own personal website. Advertisements like this, even if you aren't using it to make money, aren't allowed on wikibooks.
 * 3) A soapbox. A soapbox means that you are using this page to express your personal beliefs. Wikibooks needs to be unbiased, so you cannot use books here to lend credibility to your personal beliefs.

Please correct me if I am wrong about these. However, if your book is a violation of these policies, and is not corrected, it could be deleted. --Whiteknight (Page) (Talk) 02:30, 19 November 2007 (UTC)
 * 1) I agree that the thought is original. I feel that what ever is written in Bhagwat Gita can be proved as science instead of belief. I also feel that it can not be challenged as this is a scientific fact. So I thought of publishing in Wiki Book so that I may get corrected or modified.
 * 2) Please inform if there is any other plateform to inform about this new scientific analysis?
 * 3) I am ready to delete, if it can not be verified.Jaipaldatta 02:45, 19 November 2007 (UTC)

 * Science, by it's very nature, must be open to challenge. If it cannot be challenged, it is faith, not science. Saying that the Bhagwat Gita is "fact" is the same as saying that the bible is "Fact" or that any other book is "fact". If you are interested in getting help on your work, and are looking for helpers to work on your analysis, you may be more interested in either Wikiversity or Wikia. Wikiversity does allow certain types of original research and original work. Wikia has very few restrictions about content. --Whiteknight (Page) (Talk) 02:49, 19 November 2007 (UTC)
 * Kindly Guide how to go about? Either to Wikiversity or Wikia . As I mentioned that I have not translated Bhagwat Gita but I have only touched those points which can be explained with the help of Amino Acids or new scientific developments. But no discussions on this platform. I agree that it needs discussions and it should be approved by experts of Biology, Bio Technology, Doctors of HUman BOdy and Computer experts. Your guidnace is requested or I request you to guide and help me for right line of action. Thanks and regards.Jaipaldatta 03:02, 19 November 2007 (UTC)
 * Both Wikia and Wikiversity use the same software as we use, so uploading to those websites should be the same process that you used to upload the content here. I'll ask at Wikiversity if they would allow material like this book. If they don't allow it, or if you don't want to wait for a reply, you can start looking around Wikia. I am not very familiar with Wikia, so I don't know the exact process. I will see if i can find somebody who is more familiar with it. --Whiteknight (Page) (Talk) 03:06, 19 November 2007 (UTC)
 * Thanks. I shall wait for your guidance. In one day or two I shall clean here or delete this book in wikibook. Waiting for your help.Jaipaldatta 03:14, 19 November 2007 (UTC)
 * Thank you for being so cooperative and understanding! I don't want to discourage you, I just want to make sure that your work is in the best possible spot, so that you can attract the largest number of readers and contributors. I have spoken to people at Wikiversity, and they agree that you would be best served at Wikia. Two places you may want to look at are and . Find the best home for your work there. --Whiteknight (Page) (Talk) 03:22, 19 November 2007 (UTC)

Deletion of Gita
I have tried to modified and removed some lines which may have misunderstood as fact or new ideas. Gita is always new and has been written by other Authors also. I do not want to enter in to discussion. I did not find other site like Wikia useful for this subject. Still I have added in Hinduism and in Atheist. Hinduism is not a religion. It is a way of life.In the same way Gita or Bhagwat Geeta or Srimad Bhagwat Geeta is not a religious book. In any case It can not be compared with "Bible or Quoran".I am modifing Gita written. As mentioned that It can be edited by others. My name can be removed.16:07, 20 November 2007 (UTC)

Gita

 * I Agree. Kindly Delete. Thanks. God Bless You!Jaipaldatta 17:44, 24 November 2007 (UTC)
 * Thanks for the reply. If you'd like to comment on the nomination further, it is located here. Also, there's no need to blank the pages; an administrator will delete them as necessary. – Mike.lifeguard  | talk 18:02, 24 November 2007 (UTC)

title: User talk:Jaipaldatta


text:
User talk:76.89.26.83

 – Mike.lifeguard  | talk 20:18, 14 September 2007 (UTC)

title: User talk:76.89.26.83


text:
Nineteen Eighty-Four/Part 1/Chapter 4

In this chapter we see an average day at the Records Department of the Ministry of Truth (../../Minitrue/) where Winston works. Winston is one of many Outer Party members whose job is to "rectify" history. As Winston puts it, "[It] was not even forgery. It was merely the substitution of one piece of nonsense for another." One of Winston's current jobs was to edit out references in an old newspaper to a man known as Withers, as he was now an "unperson" (dead).

title: Nineteen Eighty-Four/Part 1/Chapter 4


text:
Nineteen Eighty-Four/Part 1/Chapter 5

At lunchtime, Winston talks to Syme, who is working on the eleventh edition of the official ../../Newspeak/ dictionary. As Syme explains, why should there be so many synonyms and antonyms of "good" when "plusgood" can mean "very good" and "ungood" can mean bad, "doubleplusgood" mean extremely good, and so on? The hope of the Party is that with a smaller and smaller vocabulary, ../../Thoughtcrime/ would be near impossible. As much as Syme is orthodox, Winston worries that he is too smart for his own good and may be vaporized by the Party. When ../../Mr. Parsons/ arrives, he asks Winston for his "voluntary" donations which take up a quarter of his income. Again, the dark-haired girl catches his attention.

title: Nineteen Eighty-Four/Part 1/Chapter 5


text:
XForms/Checkbox

Motivation
You have a boolean true/false value and want an input control to have a simple checkbox for a yes/no or true/false answer.

Method
We will use a standard input control but use the bind statement to bind the instance to a boolean datatype. We will do this in two ways, one using a bind without an ID and using the bind with an id so that we can reference the bind statement.

Note that checkboxes can also be demonstrated by using the xf:select control. But in that case a series of space-delimited values is stored in the value associated with the control.

Link to XForms Application
Load XForms Application

Sample Program
    XForms Checkbox Demo  Bool 1:

 Bool 2:

 Bool 1:

<xf:output bind="bool2"> <xf:label>Bool 2: </xf:label> </xf:output>

title: XForms/Checkbox


text:
Nineteen Eighty-Four/Part 1/Chapter 6

Winston again wrote in his diary. About three years ago, he had went to a prostitute, which was a moderate offense. While writing, he stops many times to hold in his anger towards his memory and to think about his relationship with his wife who he had not seen for a decade. ../../Katherine/ wanted to have children as her "duty to the party", yet sex with her was awkward for Winston.

title: Nineteen Eighty-Four/Part 1/Chapter 6


text:
Nineteen Eighty-Four/Part 1/Chapter 7

Winston is again writing in his diary. This time, he states that if hope exists, it exists in the ../../Proles/, who are not indoctrinated and compose the majority of Oceania. Winston broods about the definition of truth, and whether truth means anything if one can't prove it. Only once he held definitive evidence that the Party was lying about the past. In the end, he decides there is an objective truth that can be found.

title: Nineteen Eighty-Four/Part 1/Chapter 7


text:
Talk:Mac OS X Tiger/Appendix A

Do we want to list keyboard shortcuts for all standard applications, it just a few of them?

And since some applications would have large amounts of shortcuts, I propose that we group them by which menu they are under. Kickme 22:34, 14 September 2007 (UTC)

title: Talk:Mac OS X Tiger/Appendix A


text:
User talk:Gambles

This page appears to be a stub and a Wikibooks editor has added this query as to whether it was perhaps created in error. If developed further the tag should be removed. It will automatically be considered a candidate for speedy deletion in 7 days if not modified further.

Come introduce yourself at the new users page. If you have any questions, you can ask there or contact me personally. – Mike.lifeguard  | talk 00:33, 15 September 2007 (UTC)

title: User talk:Gambles


text:
Nineteen Eighty-Four/Part 1/Chapter 8

Winston walks around in the Proletarian areas of London and ends up back in the store where he originally bought the diary. This time, he buys a glass paperweight with coral, over a hundred years old. He also considers renting the room above the shop. He takes interest in a poem that the shopkeeper partly remembers. On the way back, he sees the dark-haired girl again, and finally decides that she is a spy of some sort.

title: Nineteen Eighty-Four/Part 1/Chapter 8


text:
Talk:Developing A Universal Religion/Making Decisions/Moral Decisions

This page really misses the point of ethics. Moralality can exist only outside a religious framework (Neiman; McGinn). A concrete basis for morality is possible in Darwinism (Dawkins, primarily) and evolves (Dawkins for memetic theory; Dennett for applying memetics to religion; Neiman for moral progress). The psychological claims made concerning purpose as a choice are dubious, contrary to current understanding of a sense of purpose in neuropsychology (Churchland), philosophy of mind (McGinn) and ethics (Neiman; Haidt). This section will be re-written drawing on the following works from the foremost thinkers on secular and religious morality:  – Mike.lifeguard  | talk 01:43, 15 September 2007 (UTC)
 * Patricia Churchland. On the contrary: critical essays, 1987-1997, Bradford Book/MIT Press, 1998.
 * Daniel Dennett. Content and Consciousness, Routledge & Kegan Paul Books Ltd, 1986.
 * Daniel Dennett. Breaking the Spell: Religion as a natural phenomenon, Penguin Group, 2006.
 * Richard Dawkins. Nice Guys Finish First, BBC Horizon, 1987.
 * Richard Dawkins. The God Delusion, Bantam Books, 2006.
 * Richard Dawkins. The Root of All Evil?, Channel 4, 2006.
 * Jonathan Haidt. Moral Psychology and the Misunderstanding of Religion, Edge, 2007.
 * Christof Koch. The Quest for Consciousness: A neurobiological approach, Roberts and Co., 2004.
 * Colin McGinn. Moral Literacy: Or How To Do The Right Thing, Duckworth, 1992; Hackett, 1993.
 * Colin McGinn. Ethics, Evil and Fiction, Oxford University Press, 1997.
 * Colin McGinn. The Making of a Philosopher: My journey through twentieth-century philosophy, HarperCollins, 2002.
 * Colin McGinn. Mindsight: Image, Dream, Meaning, Harvard University Press, 2004.
 * Jonathan Miller. Atheism: A rough history of disbelief, BBC Four, 2005.
 * Jonathan Miller. The Atheism Tapes, BBC Four, 2005.
 * Susan Neiman. The Unity of Reason: Rereading Kant, Oxford University Press, 1994
 * Susan Neiman. Evil in Modern Thought: An alternative history of philosophy, Princeton University Press, 2002.
 * Susan Neiman. Moral Clarity - Facing Gallows, 2006.


text:
LPI Linux Certification/Plan

V1.0

Introduction
I am not sure all will agree, but looking through the pages of the book it all appeared a little to dry to me. Some topics i felt need expanding and the structure of each page could do with some useful Tips boxes, Revision Boxes etc. the layout needs a little overhaul. Personally looking through the wiki books already in place i liked the Introduction/Audience/TOC on the front page keep it is clean and easy to navigate. The LPI books Covers a serious amount of ground in Linux as it is a very comprehensive set of exams so we are going to tread on toes or look to possible mergers.

Audience
LPI Candidates - we need to make the book to mostly capture this audience and the structure should be a cover to cover read with links to deeper articles explaining concepts, links to further revising points. I like the "for dummy's" Idea of a splatering of "Top Tips" "Know This" " Be Carefull Here" "workshops" etc. The i need to find something out brigade - Although we need to stick strictly too the LPI, This book will contain valuable snippets of "how-to" type documents especially as we move on to such topics as bash scripting, kernel compiles, Samba, NFS, etc. So we need to make this information easy to find and each article not Section should stand on it's own merits. We can make this format easily fit in with the cover to cover version. And the front page TOC should help a lot with the navigation.

Overall layout Suggested front Page
Stop!! Don't Create these pages yet this is a suggested way forward :)

 * LPI Linux Certification/Junior Level Linux Professional < Exam Page
 * Hardware & Architecture < Section Header
 * LPI Linux Certification/Configuring The BIOS < Module Page
 * LPI Linux Certification/Configuring Modem & Sound Cards< Module Page
 * LPI Linux Certification/Setup SCSI Devices< Module Page
 * LPI Linux Certification/Setup Different PC Expansion Cards< Module Page
 * LPI Linux Certification/Configure Communications Devices< Module Pages
 * LPI Linux Certification/Configuring USB Devices< Module Page
 * Linux Installation & Package Management < Section Header

So the reader will be presented with this obviously

 * Junior Level Linux Professional
 * Hardware & Architecture
 * Configuring The BIOS
 * Configuring Modems & Sound Cards
 * Setup SCSI Devices
 * Setup Different PC Expansion Cards
 * Configure Communications Devices
 * Configuring USB Devices
 * Linux Installation & Package Management

The above will kind of form our front page TOC with perhaps a external root link to the LPI web site as a resource.

A little More detail on Layout
Introduction should include target Audience, What to expect, Explanation of Section and page layout, TOC. Should contain Objectives of each module, List what you should know before you start each module and links to further reading to help prepare the reader in that regard. Caveats may go here? Should contain an Introduction of the subject, An example of the subject, Further reading, The course has related components such as hardware relates to /proc and /dev pseudo file systems these should also be listed with links for further reading. Note Warnings should be given where tools or the student may be led to try things out on there computer that might make it inoperable Such as hdparm, fdisk, BIOS settings etc. (I know they should know better but we are not at work and that old "Your the new guy!! emmm here is the boss's laptop he has been complaining that the boot process is too slow can you change some stuff in the BIOS to speed it up?" Routine may not go down well :).
 * Front Page
 * Section Pages
 * Module Pages

Moving Forward
Here's where i would like some advice. How do we go about this do we work in tandem with the original site ie create the new pages and change the front page as new content comes online? Do we create a new front page with a link to the old section and work alongside. There is a lot of original content that effectively gives us the objectives etc that all looks reasonable and accurate which will save us some work. If i don't hear or see any input i will just work away on it. As has been suggested in the discussion page, we will also need to keep in mind that the administration of the book be as simple as possible. An idea put forward is a flatter structure to the book. Further, to this we may want to avoid using links where possible, try to keep the content generic and on topic. We will need to work at a balance I am well aware for instance that wikipedia has an excellent article on the definition and role of a computer BIOS. We should not need to write that all out here clearly maintaining that link is preferable, rather i see us complementing that article with a run down of the menu system within the BIOS. How various options within the BIOS work?

Consistency
For reasons only my mother would understand i took it upon myself whilst writing out the front page TOC to use ampersands through out. Further i used uppercase letters at the beginning of each word!! When it came to merge the contents from the original book that i realised what a pain this was. It had one good side effect it has caused me to go through all the original menus and make sure they tally both with the current LPI spec as well as my own menus. I guess it now makes sense to maintain this format, obviously not crucial but may make sense? Darklama has suggested the use - instead / in all links. which i have to admit beats my slash idea. Please post all comments on the discussion page, if the ideas are good then we will move them into here.

completed thus far
I have now completed the up to date detailed objectives for LPI101 I have also completed the full TOC and ratified with LPI for LPI101 I have also completed all merge of data from old book to new book into each new sections for LPI101 left to do is the cleanup for data merge for this has now been completed LPI101 LPI102 - add detailed Objectives completed LPI102 Ratify the TOC with LPI completed Merge of old book to new now completed

Now merge has been completed we move on
I have formated the front page so that it looks a lot better and reads better too. currently i am now working on the junior level exam page

title: LPI Linux Certification/Plan


text:
Physics Exercises/Volumetric Expansion

coffeciant of volumetric expansion
Volumetric expansion is the expansion of volume of a body, coffecient of volumetric expansion is given by

coffecient of volumetric expansion =(l2-l1)/[l1(t2-t1)] --Snj206 08:39, 15 September 2007 (UTC)sanjay

title: Physics Exercises/Volumetric Expansion


text:
User talk:208.57.226.199

Thanks for experimenting with Wikibooks. Your test worked, and has now been removed. Please use Sandbox for any other tests you want to do, since testing material in modules will normally be removed quickly. Please see the welcome page if you would like to learn more about contributing to our project. Thanks. Urbane  (Talk)   (Contributions)  08:42, 15 September 2007 (UTC)

title: User talk:208.57.226.199


text:
User talk:219.64.34.80

Thanks for experimenting with Wikibooks. Your test worked, and has now been removed. Please use Sandbox for any other tests you want to do, since testing material in modules will normally be removed quickly. Please see the welcome page if you would like to learn more about contributing to our project. Thanks. Urbane  (Talk)   (Contributions)  09:16, 15 September 2007 (UTC)

title: User talk:219.64.34.80


text:
Understanding Multitouch/Image Acquisition

Acquisition
When thinking about a multitouch system, it is advantageous to break it into several components that stream together to form the entire system. As such, the first step in the pipeline is always acquisition. Later in the book we will describe the hardware from which we will acquire the data, but for now, we will talk about how to model that data in software.

Format
To start, we need to come up with a format to describe the system. We do this at acquisition because every component further down the pipeline will require knowledge of what this format is, and how to interact with it. In other systems used in digital signal processing, data is imported in the form of raw image packets or raw sound packets in well-known formats. For example, an image is often imported in the form of Y:Cr:Cb (seen in RAW-mode imagery) or RGB (in other devices such as webcams and cheaper digital cameras), and sound is often represented in the form of PCM data.

Neither PCM nor either image mode is directly applicable to multitouch as the data from the sensor in this case may not model neither sound nor an image. We tend to think of the data coming from our sensor as histogram data, intensities at a point on a grid. Imaging models best represent this but obviously neither RGB nor Y:Cr:Cb describe this properly. We will need to define a new format for our own usage here.

The first step is depicting the average resolution of our underlying device. This can vary wildly, with lower-end capacitive sensors and pressure sensors presenting a very low-resolution data source, to image sensors which produce data in a vast amount of detail, often too much detail to deal with. A good starting point for your system will be 8 bits of resolution (representing 2^8 = 256 different possible reference points), but your sensor may need a larger range.

Determining what is usable data and what is noise is the next part of our solution. A sensor can usually do this at startup, or with a calibration routine by collecting multiple samples of data from the sensor, averaging that data, and using the result as a reference for the platform's noise (alg 1). Again, as this is hardware dependent, it will be up to the implementer to decide how many samples at what rate is enough. One thing to keep in mind is that many sensors are temperature dependent and can possibly drift, so it may be advantageous to implement your calibration routine as a ring buffer and continuously calibrate with a running average.

Noise
As will be made abundantly clear later, the key enemy in any multitouch system is noise. Noise in our case is simply information that is incorrect. How it got to being incorrect (for example, a sensor-to-buffer resolution mismapping) is not as important as how incorrect it actually is (white noise verses pink or otherwise-colored noise). For example, Wiener Deconvolution can correct errors that often occur due to white noise. Other kinds of noise can be removed from the signal through dynamic programming algorithms.

Realize that at the acquisition-level, we do not need to be perfect. The more time we waste here, the less time we have further down the pipeline to make the device responsive to the user's input. While it is worthwhile to try to remove noise programmatically, the best way is to insure the noise never enters the system to begin with and should be dealt with in your hardware sensor's implementation as we will discuss later in the book.

An Abstract Model
For the purposes of this book, we will need to describe a model that will be universal to any programming examples. For simplicity's sake, the model will not describe a physical sensor, but instead a theoretical "perfect sensor" in which we can trust that all of the data is 100% correct. Error considerations will be noted in due course, but will not be taken into consideration when discussing our sensor model.

The basis for all multitouch as described in the Overview comes from the idea of having two-dimensional input sensor. The sensor does not need to be of high resolution, and as we will be sampling it often, we will want to throw away as much data as possible as early on as possible. Our theoretical model sensor will have a horizontal and vertical resolution of 8 elements consisting of 8-bits of resolution. Consider that the 8 elements on either axis are equally and evenly spaced apart; whether or not this spacing is a few millimeters or a centimeter apart (or more) is irrelevant to our model. With our model, we will call our 8-bits of depth the pressure resolution, and we will call our horizontal and vertical resolutions collectively spatial resolution.

Our pressure resolution will be modeled as an integer with a normalized and calibrated zero pressure indicated by 0, and the maximum amount of pressure we can register as 255. In a real system, it may be advantageous to reserve the lower two bits to indicate error states such as a sample overflowing the representable resolution, but in this model our sensor will always represent perfect data. Our spatial resolution will be modeled as integers from 0 to 7 on either axis, represented as a matrix.


text:
User:ChrisDHDR

Please see my English Wikipedia userpage.
 * ChrisDHDR 12:16, 15 September 2007 (UTC)

title: User:ChrisDHDR


text:
Understanding Multitouch/Convolution and Deconvolution

Convolution Overview
Convolution mathematically is described as an operator which takes two functions f and g and produces a third function that represents the amount of overlap between f and g. Convolution is used quite a bit in signal analysis because convolution operations are often very cheap to perform, can be performed in parallel, and are easy to adjust to fit the situation.

In our case, we will be talking about convolution in the 2D sense, where our image and a known convolution function (known as a filter) will be combined to make an image that better represents the data we are looking for. As you should already be familiar with these concepts, this will be a brief overview of how convolution works, and the specific convolution filters we are interested in.

If you recall, our theoretical sensor model inputs data into the system as an 8x8 matrix of 8-bit data, looking similar to the following:

Horizontal Address 0 1  2  3  4  5  6  7    V A   0 00 00 00 00 00 00 00 00 e d  1 00 00 00 00 00 00 00 00 r d  2 00 00 00 00 00 00 00 00 t r  3 00 00 00 00 00 00 00 00 i e  4 00 00 00 00 00 00 00 00 c s  5 00 00 00 00 00 00 00 00 a s  6 00 00 00 00 00 00 00 00 l    7 00 00 00 00 00 00 00 00

Our convolution kernels, however, will be much smaller in size. For the algorithms we will be using on the theoretical model, a 3x3 convolution kernel is sufficient.

The important thing to remember when it comes to implementing a convolution kernel is that we are taking two functions and generating a third. The original functions can be discarded, or they can go back into the system for other purposes, such as decreasing noise, so when we go to implement our filters in software, we will want to generate a function which will return a filled buffer to the user the same size as the input buffer.

A convolution operation should look very similar to this pseudocode:

The above may be optimized on your hardware, as often you can avoid the branch statements by insuring your buffer is big enough to catch possible overruns without needing to do the bounds testing, trading memory for branch operations. Your algorithm will generally require no temporary data besides the constant kernel, and you will probably already have functions similar to this in your toolkits if you have worked with signal processing in the past.

Often the question is asked on what to do at the edges of the filter (known as Edge Conditions). There are many to choose from, such as picking a known "background intensity" and apply it for that element (in this case, the data was a zero, and thusly would not affect the kernel operation; this is the exact same as truncating the filter in this special case), but there are many other ways of dealing with this condition, including extending the data over the edge of the image, truncating the kernel and not running operations over the region, or simply not applying the kernel to points which extend over the edge (often known as "Copy in Place").

You will also notice that we specified no else situations during the pixel operations; in all cases where we aren't doing an operation, we're assuming the output of that operation would have been zero. For example, if the convolution kernel's center term is zero as is often the case, there is no point to do the multiply and yield zero. Simply skip that calculation and move to the next.

In certain cases, for example if our data is in integer format, we need to apply a divisor to satisfy the constraints of the number format (in this case, our buffer consists of 8-bit data). The divisor is typically the kernel's width times the kernel's height (9 for a 3x3, 25 for a 5x5, etc), but there are cases in which other divisors may be desirable.

Sobel Kernel
The first kernel we will look at is a Sobel Kernel, also known as an Edge Detection kernel. A Sobel Kernel emphasizes high frequency changes in the image function, by reducing the intensity of pixels of low frequencies as it increases the intensity of pixels with a higher frequency. Essentially, the Sobel Kernel is taking the second derivative of the image's intensity at every coordinate, however, to those of us less mathematically minded and to some of us who are, it's much easier to understand as a convolution filter: -1 0 1 -2 0 2 -1 0 1

We can think about this by looking at the one dimensional second derivative of a constant function f(x): $$f^{\prime\prime}(x) = 1 * f(x-1) - 2 * f(x) + 1 * f(x+1)$$. By taking the constants and storing them in a matrix, we construct our one dimensional convolution kernel: $$\begin{bmatrix}1 && 2 && 1\end{bmatrix}$$. We make this into a 2-dimensional convolution kernel by matrix multiplication with the vertical matrix $$\begin{bmatrix}-1\\0\\1\end{bmatrix}$$, which is simply the absolute difference from the point we are convolving.

There are several variations of this relatively simple filter. For example, one often adjustment is to the direction of emphasis: 1 0 -1 2 0 -2 1 0 -1 This adaptation will change the leading edge of the filter to the right side rather than the left as is emphasized in the former example. It is the same filter as above "flipped" by multiplying the function by -1.

1 2  1        -1 -2 -1   0  0  0   or    0  0  0 -1 -2 -1        1  2  1 These are rotations to the original filter, which emphasize upwards and downwards respectively.


text:
Talk:LPI Linux Certification/Plan

Book structure
I understand i am tying the TOC to much with the actual page structure, which should not matter in the world of wiki. I can represent the TOC however i like having a flatter system enables me to move the TOC around without having to adjust the pages themselves due to titles being applied because of the page structure i have enforced. And i agree two layer structure it is i am glad you persevered ...Two questions though :)? Are you recommending that i move the book to LPI/* as you suggest above? At some point due to the fact the original author has placed a lot of content on one page which i shall have to move too separate pages, is there a way i can do this whilst keeping the books history - obviously trying to avoid copy and paste? Barry 16:06, 16 September 2007 (UTC)

 * No I'm not suggesting a change in the book title, the / was a typo, fixed now. When splitting a page into two or more parts there isn't really an easy way to preserve that information. What I try to do when I'm doing that is in the new page say something like "copy+pasting from  " in the summary and in the page deleting the contents from say "moved some contents to   " in the summary, so links to the old and new pages are in the history and people know where the contents came from and went. --dark  lama  16:19, 16 September 2007 (UTC)

 * Yes I think you've gotten the basic idea. The actual book structure should be defined by the TOC rather then by the names of the pages. Seeing your changes to the plan, I think there is one thing left that I may not have explained well. I don't think the section pages need to exist either, the section objectives can be explained on the exam page and the section heading included in the TOC as just a further means of defining how the book is structured. So just as the TOC defines the book structure, the exam pages describes the current section structures and the objectives of each section.

 * LPI Linux Certification < Front Page
 * LPI Linux Certification/Junior Level < Exam page with exam description and section objectives
 * Hardware and Architecture < Section heading. No actual page for it.
 * LPI Linux Certification/Configuring The BIOS < Chapter/Page about configuring the BIOS

 * This is about dealing with possible changes in the section names as well as whats covered in each section. Is that too much? I'm thinking the exam names aren't as likely to change as the sections on the exam and the objectives of each section. --dark lama  19:04, 16 September 2007 (UTC)

 * I actually understood that aspect about the section pages, it may be to far though not in terms of organisation but in terms of page length. the LPI101 has 5 section pages and 31 modules, LPI102 has 9 sections and 27 modules, LPI201 has 7 sections and 25 modules, LP202 has 7 sections and 22 modules, when we get to LPI301 to 306 have less sections and less modules but we are still looking at a fair few for one page with descriptions and objectives to include possibly? Barry 19:59, 16 September 2007 (UTC)

 * Actually i shall make a decision on this unless anyone specifically requests the LPI30X version of the exams we should leave them out as they could form there own books in there own right. LPI303 for instance covers every aspect of LDAP, having played with this with e-directory, thats a heck of a lot of specialised material. And to be completely honest would require someone other than me to write it up. It can be added if desired but would benefit more as another book in my opinion. Barry 20:45, 16 September 2007 (UTC)

 * The only thing I was talking about being on the exam pages are a description of the exam itself, and a description of the section objectives, not the contents of the modules themself. So it would like:
 * The LPI101 exam tests you for the knowledge to achieve a junior certification. The exam is made up of 5 sections. Hardware, Installation, Commands, Filesystems and the X Windows System. The Hardware section tests your ability to... --dark lama  21:18, 16 September 2007 (UTC)

 * Sorry was away on holiday just got back. Yep, i see what you mean i am creating a dummy front page on a locally installed wiki to see how it all looks. Obviously the goal is to get as close to the structure as you have recommended. The two tier file system we shall have no problems with, whilst on holiday i started looking at how to go about tidying it all up also to start finalising the way forward etc. Many thanks for your input Darklama you have been a great help. It looks to me from the fact that you have been the only person to provide input that the book is not used in it's present guise i shall hence dive right in and start "carefully" getting things structured so that the new modules can be added. Barry 15:15, 21 September 2007 (UTC)

title: Talk:LPI Linux Certification/Plan


text:
User talk:Charlie151~enwikibooks

I have eyjoyed my summer holadays,but i don't want to go back to school!!

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

title: User talk:Charlie151~enwikibooks


text:
User talk:24.228.16.109

Thanks for experimenting with Wikibooks. Your test worked, and has now been removed. Please use Sandbox for any other tests you want to do, since testing material in modules will normally be removed quickly. Please see the welcome page if you would like to learn more about contributing to our project. Thanks. – Mike.lifeguard  | talk 15:18, 15 September 2007 (UTC)

title: User talk:24.228.16.109


text:
User talk:62.33.12.104

Thanks for experimenting with Wikibooks. Your test worked, and has now been removed. Please use Sandbox for any other tests you want to do, since testing material in modules will normally be removed quickly. Please see the welcome page if you would like to learn more about contributing to our project. Thanks. – Mike.lifeguard  | talk 15:21, 15 September 2007 (UTC)

title: User talk:62.33.12.104


text:
User talk:86.63.20.106

Thanks for experimenting with Wikibooks. Your test worked, and has now been removed. Please use Sandbox for any other tests you want to do, since testing material in modules will normally be removed quickly. Please see the welcome page if you would like to learn more about contributing to our project. Thanks. – Mike.lifeguard  | talk 15:22, 15 September 2007 (UTC)

title: User talk:86.63.20.106


text:
User:A. B. 10

w:User:A. B. • w:User talk:A. B. meta:User:A. B. • meta:User talk:A. B.

I use this account for cross-wiki spam cleanup of links blacklisted at meta:Talk:Spam blacklist

title: User:A. B. 10


text:
User talk:A. B. 10

w:User:A. B. • w:User talk:A. B. meta:User:A. B. • meta:User talk:A. B.

I use this account for cross-wiki spam cleanup of links blacklisted at meta:Talk:Spam blacklist

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

Still should get one of these tho! -- Herby talk thyme 17:33, 15 September 2007 (UTC)

 * Hey, I know you! Thanks for the big hello,
 * --A. B. 10 18:27, 15 September 2007 (UTC)
 * (meta:User:A. B.)

title: User talk:A. B. 10


text:
FOSS Open Content/Open Content and the New Knowledge Paradigm

The Open Content model essentially creates the context through which people can reflect on the process of the generation of knowledge and culture, and the values of openness and sharing. It does this by creating:

 * New Contexts of Knowledge Creation
 * New ways of creating and sharing knowledge; and
 * New understandings of knowledge creation

New Contexts of Knowledge Creation
By looking at the importance of collaborative models of knowledge production and sharing, Open Content initiatives establish a new context through which people can engage in the process of creating knowledge. This model has a number of advantages, for instance, in the context of development information. A new initiative of the UNDP, the Solution Exchange Network, for instance, relies on the harnessing of the collective expertise of various communities working within the development sector, and enables them to pool their resources to create a common knowledge bank.

New Ways of Creating and Sharing Knowledge
Collaborative tools like wikis are increasingly becoming popular as new ways through which people can contribute to the process of knowledge creation. They recognize that the process of knowledge creation is based on incremental contributions; indeed, at the end of a project, it can be surprising how every small contribution finally adds up to a much wider base of knowledge. It also enables the emergence of "peer production" systems, which are characterized as production systems that depend on individual action that is self - selected and decentralized rather than hierarchically assigned. Even very mainstream websites like Amazon have come to understand the value of this process of knowledge creation - the success of their peer - reviewed books and comments is a testimony to this, even though it is not an Open Content project.

New Understandings of Knowledge Creation
Once we move away from a possessive approach to knowledge, we begin to understand the virtues of collaborative processes. Similar to the world of software, Open Content projects cultivate a certain modesty in relation to the knowledge created; therefore, we begin to see how our base material is actually improved upon by people using and contributing to it. This is equally applicable to the ways in which large, complex projects can be achieved through distributed peer production. An instance of this is the NASA Clickworkers Project to mark craters on Mars, which was "an experiment to see if public volunteers, each working for a few minutes here and there can do some routine science analysis that would normally be done by a scientist or graduate student working for months on end." In its first six months of operation, more than 85,000 users visited the site, with many contributing to the effort, making more than 1.9 million entries. An analysis of the quality of entries showed "that the automatically computed consensus of a large number of clickworkers is virtually indistinguishable from the inputs of a geologist with years of experience in identifying Mars craters."


text:
Nineteen Eighty-Four/Part 2/Chapter 1

The dark-haired girl, who has broken her arm, intentionally falls down while walking past Winston in order to give him a note that says "I love you", nullifying Winston's worries that she is a spy for the Thought Police. They meet at lunchtime, then in a crowd watching prisoners, and the dark-haired girl tells Winston where they should meet again.

title: Nineteen Eighty-Four/Part 2/Chapter 1


text:
FOSS Open Content/Characteristics of Open Content Licenses

Most Open Content licenses share a few common features that distinguish them from traditional copyright licenses. These can be understood in the following ways:

Basis of the License/Validity of the License
While being a form of license that allows end users freedom, it is important to remember that the Open Content licenses, like Free Software licenses, are based on the author of a work having valid copyright. It is on the basis of this copyright and the exclusive rights that it grants him / her that the author can structure a license that allows him / her to impose the kinds of rights and obligations involved in using the work. Every Open Content license therefore asserts the copyright of the author and states that without a license from the author, any user using the work be in violation of copyright.

Put negatively, such licenses cannot be used to violate copyright. Thus, the usage of the work is subject to all the terms and conditions imposed by the license. Using this right, the Open Content licenses can then impose restrictions that ensure that the work is not used to create a derivative work which has restrictive conditions imposed on it. Most Open Content licenses also assert that an acceptance of the terms and conditions of the license need not be explicit and may arise from the conduct of a user. Thus, in the case of a song, the moment you download the song, you are bound by the terms of the Open Content license. The user cannot, at a later date claim that s/he did not agree to the terms of the license.

Rights Granted
The premise of an Open Content license is that, unlike most copyright licenses, which impose stringent conditions on the usage of the work, the Open Content licenses enable users to have certain freedoms by granting them rights. Some of these rights are usually common to all Open Content licenses, such as the right to copy the work and the right to distribute the work. Depending on the particular license, the user may also have the right to modify the work, create derivative works, perform the work, display the work and distribute the derivative works.

When choosing a license, the first thing that you will have to decide is the extent to which you are willing to grant someone rights over your work. For instance, let us suppose you have created a font. If you do not have a problem if people create other versions of it, then you can choose a license that grants the user all rights. If, on the other hand, you are willing to allow people to copy the font and distribute it, but you do not want them to change the typeface or create versions of it, then you can choose a more restrictive license that only grants them the first two rights.

Derivative Works
Any work that is based on an original work created by you is a derivative work. The key difference between different kinds of Open Content licenses is the method that they adopt to deal with the question of derivative works. This issue is an inheritance from the licensing issues in the Free Software environment. The GNU GPL, for instance, makes it mandatory that any derivative work created from a work licensed under the GNU GPL must also be licensed under the GNU GPL. This is a means of ensuring that no one can create a derivative work from a free work which can then be licensed with restrictive terms and conditions. In other words, it ensures that a work that has been made available in the public domain cannot be taken outside of the public domain.

On the other hand, you may have a license like the Berkeley Software Distribution (BSD) software license that may allow a person who creates a derivative work to license that derivative work under a proprietary or closed source license. This ability to control a derivative work through a license is perhaps the most important aspect of the Open Content licenses. They ensure, in a sense, a self perpetuity. Since a person cannot make a derivative work without your permission, your permission is granted on the condition that s/he also allows others to use the derivative work freely. In Open Content licenses, the right to create a derivative work normally includes the right to create it in all media. Thus, if I license a story under an Open Content license, I also grant the user the right to create an audio rendition of it. The obligation to ensure that the derivative work is also licensed under the terms and conditions of the Open Content license is not applicable, however, in cases where the work is merely aggregated into a collection / anthology / compilation. For instance, suppose that I have drawn and written a comic called X, which is being included in a general anthology. In such a case, the other comics in the anthology may be licensed under different terms, and the Open Content license is not applicable to them and will only be applicable to my comic X in the anthology.

Commercial / Non-Commercial Usage
Another important aspect of Open Content licenses is the question of commercial / non-commercial usages. For instance, I may license a piece of video that I have made, but only as long as the user is using it for non-commercial purposes. On the other hand, a very liberal license may grant the person all rights, including the right to commercially exploit the work.

Procedural Requirements Imposed
Most Open Content licenses require a very strict adherence to procedures that have to be followed by the end user if s/he wants to distribute the work, and this holds true even for derivative works. The licenses normally demand that a copy of the license accompanies the work, or the inclusion of some sign or symbol which indicates the nature of the license that the work is being distributed under, for instance, and information about where this license may be obtained. This procedure is critical to ensure that all the rights granted and all the obligations imposed under the license are also passed onto third parties who acquire the work.

Appropriate Credits
The next procedural requirement that has to be strictly followed is that there should be appropriate credits given to the author of the work. This procedure applies in two scenarios. In the first scenario, when the end user distributes the work to a third party, then s/he should ensure that the original author is duly acknowledged and credited. The procedure also applies when the end user wants to modify the work or create a derivative work. Then, the derivative work should clearly mention the author of the original and also mention where the original can be found.

The importance of this clause arises from the fact that, while Open Content licenses seek to create an alternative ethos of sharing and collaboration, it also understands the importance of crediting the author. Very often, in the absence of monetary incentive, other motivating factors such as recognition, reputation and honour become very important. Open Content licenses, far from ignoring the rights of the author, insist on strict procedures so that these authorial rights are respected. You may copy and distribute the Document in any medium, either commercially or non-commercially, provided that this License, the copyright notices, and the license notice saying this License applies to he Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute.


text:
OpenGL Programming/Installation/Windows

All version of Windows from Windows 95 come with an OpenGL implementation (usually version 1.4). However, if you installed (or updated) the drivers for your graphics card it's probable that you're using your board manufacturer's own implementation of OpenGL.

OpenGL
The OpenGL library can usually be found by the name opengl32.dll under the \system32 folder, located in your system's root folder (usually c:\windows).

Headers compatible with OpenGL are bundled with most compilers. The header's versions may not be fully updated to your running implementation of OpenGL. If so, the new functions must be linked manually using the OpenGL's extension system, or using a wrapper such as GLEW.

GLEW
GLEW's official release is meant to work with visualc++ - but if you're using MinGW/GCC with Code::Blocks, no worry - you can:
 * link directly to the .dll (instead of adding the mingw-incompatible )
 * or, you can recompile it and use it as a shared library, using MSys:
 * or, you can build GLEW statically: add glew32s.lib to linker libraries in the linker options, and add -DGLEW_STATIC to your compiler flags.

 * Link: The OpenGL Extension Wrangler Library - Installation
 * Link: glew-users : mailing list where I reported the link issue - hopefully the GLEW developers will provide a MinGW-compatible binary release.

GLee only compiles statically under Windows (not cross-compiling from GNU/Linux) but doesn't have this issue.

GLUT

 * freeglut Windows Development Libraries - link with -lfreeglut instead of -lglut32; don't use the Code::Blocks wizard for GLUT projects since it's specific to non-free GLUT
 * Using OpenGL & GLUT in Code::Blocks - good tutorial; add  before including non-free glut.h

GLM
GLM is a headers-only library, so you just need to unzip the GLM release to a directory, and add that directory to your include path in the project properties.

Cross-compilation
Newer tutorial Makefile's can now be invoked using a MXE-compatible environment, for example:
 * Compile MXE:
 * Prepare environment:
 * Compile as easily as usual:

Debugging note: due to a bug you need to pipe your input to GDB through cat:

= Error logs =

sdl2-config --libs sets the -mwindows option which removes the command black window but also stdout and stderr.

To see e.g. SDL_LogMessage output you can:
 * force console mode:
 * or explicitly redirect stderr:

(If you know why explicit redirection is necessary, feel free to explain.)

OpenGL 프로그래밍/설치/윈도

title: OpenGL Programming/Installation/Windows


text:
JavaScript/Functions

A function is a block of code that solves a dedicated problem and returns the solution to the calling statement. The function exists in its own context. Hence, functions divide massive programs into smaller 'bricks' which structure the software as well as the software development process.

JavaScript supports the software development paradigm functional programming. Functions are a data type derived from Object; they can be bound to variables, passed as arguments, and returned from other functions, just as any other data type.

Declaration
Functions can be constructed in three main ways. The first version can be abbreviated further; see below.

The conventional way:

Construction via a variable and an expression:

Construction via the  operator (this version is a little cumbersome):

Invocation
For the declaration of functions, we have seen 3 variants. For their invocation, there are also 3 variants. The declarations and invocations are independent of each other and you can arbitrarily combine them.

The conventional invocation variant uses the function name followed by parenthesis. Within the parenthesis, there are the function's arguments, if any exist.

If the script runs in a browser, there are two more possibilities. They use the  object that is provided by the browser.

Hint: If you use the function name without the parenthesis, you will receive the function itself (the script), not any result of an invocation.

Hoisting
Functions are subject to 'hoisting'. This mechanism transfers the declaration of a function automatically to the top of its scope. As a consequence, you can call a function from an upper place in the source code than its declaration.

Immediately Invoked Function
So far, we have seen the two separate steps declaration and invocation. There is also a syntax variant that allows the combination of both. It is characterized by using parenthesis around the function declaration followed by  to invoke that declaration.

This syntax is known as a Immediately Invoked Function Expression (IIEF).

Arguments
When functions are called, the parameters from the declaration phase are replaced by the arguments of the call. In the above declarations, we used the variable name  as a parameter name. When calling the function, we mostly used the literal "Go" as the argument. At runtime, it replaces all occurrences of  in the function. The above examples demonstarte this technique.

Call-by-value
Such substitutions are done 'by value' and not 'by reference'. A copy of the argument's original value is passed to the function. If this copied value is changed within the function, the original value outside of the function is not changed.

For objects (all non-primitive data types), this 'call-by-value' has a - possibly - astonishing effect. If the function modifies a property of the object, this change is also seen outside.

When the example runs, it shows that after the invocation of, the changes made by the function are visible not only in the return value. Also, the properties of the original object  have changed. Why this; is it different from the behavior concerning primitive data types? No.

The function receives a copy of the reference to the object. Hence, within the function, the same object is referenced. The object itself exists only one time, but there are two (identical) references to the object. It does not make a difference whether the object's properties are modified by one reference or the other.

Another consequence is - and this may be intuitively the same as with primitive data types (?) - that the modification of the reference itself, e.g., by the creation of a new object, will not be visible in the outer routine. The reference to the new object is stored in the copy of the original reference. Now we have not only two references (with different values) but also two objects.

Note 1: The naming of this argument-passing technique is not used consistently across different languages. Sometimes it is called 'call-by-sharing'. Wikipedia gives an overview.

Note 2: The described consequences of JavaScript's argument-passing are comparable with the consequences of using the keyword, which declares a variable to be a constant. Such variables cannot be changed. Nevertheless, if they refer to an object, the object's properties can be changed.

Default values
If a function is invoked with fewer arguments than it contains parameters, the surplus parameters keep undefined. But you can define default values for this case by assigning a value within the function's signature. The missing parameters will get those as their default values.

Variable number of arguments
For some functions, it is 'normal' that they get involved with different numbers of arguments. For example, think of a function that shows names. and  must be given in any case, but it's also possible that an   or a   must be shown. JavaScript offers different possibilities to handle such situations.

Individual checks
The 'normal' parameters, as well as the additional parameters, can be checked to determine whether they contain a value or not.

Every single parameter that may not be given must be individually checked.

The 'rest' parameter
If the handling of the optional parameters is structurally identical, the code can be simplified by using the rest operator syntax - mostly in combination with a loop. The syntax of the feature consists of three dots in the function's signature - like in the spread syntax.

How does it work? As part of the function invocation, the JavaScript engine combines the given optional arguments into a single array. (Please note that the calling script does not use an array.) This array is given to the function as the last parameter.

The third and all following arguments of the call are collected into a single array that is available in the function as the last parameter. This allows the use of a loop and simplifies the function's source code.

The 'arguments' keyword
In accordance with other members of the C-family of programming languages, JavaScript offers the keyword  within functions. It is an Array-like object that contains all given arguments of a function call. You can loop over it or use its  property.

Its functionality is comparable with the above rest syntax. The main difference is that  contains all arguments, whereas the rest syntax affects not necessarily all arguments.

Return
The purpose of a function is to provide a solution of a dedicated problem. This solution is given back to the calling program by the  statement.

Its syntax is, where   is optional.

A function runs until it reaches such a  statement (, or an uncatched exception occurs, or behind the last statement). The  may be a simple variable of any data type like , or a complex expression like  , or is omitted entirely:.

If there is no  within the   statement, or if no   statement is reached at all,   is returned.

Arrow functions (=>)
Arrow functions are a compact alternative to the above-shown conventional function syntax. They abbreviate some language elements, omit others, and have only a few semantic distinctions in comparison to the original syntax.

They are always anonymous but can be assigned to a variable.

Here is one more example using an array. The  method loops over the array and produces one array-element after the next. This is put to the arrow function's single argument. The arrow function shows  together with a short text.

Other programming languages offer the concept of arrow functions under terms like anonymous functions or lambda expressions.

Recursive Invokations
Functions can call other functions. In real applications, this is often the case.

A particular situation occurs when they call themselves. This is called a recursive invokation. Of course, this implies the danger of infinite loops. You must change something in the arguments to avoid this hurdle.

Typically the need for such recursive calls arises when an application handles tree structures like bill of materials, a DOM tree, or genealogy information. Here we present the simple to implement mathematical problem of factorial computation.

The factorial is the product of all positive integers less than or equal to a certain number $$n$$, written as $$n!$$. For example, $$4! = 4 \times  3  \times  2  \times  1 = 24$$. It can be solved by a loop from $$1$$ to $$n$$, but there is also a recursive solution. The factorial of $$n$$ is the already computed factorial of $$(n - 1)$$ multiplied with $$n$$, or in formulas: $$n! = (n-1)! \times n$$. This thought leads to the correspondent recursive construction of the function:

As long as $$n$$ is greater than $$0$$, the script calls  again, but time with $$n-1$$ as the argument. Therefore the arguments converge to $$0$$. When $$0$$ is reached, this is the first time the  function is not called again. It returns the value of $$1$$. This number is multiplied by the next higher number from the previous invocation of. The result of the multiplication is returned to the previous invocation of, ... .

Exercises

 * ... are available on another page (click here).

title: JavaScript/Functions


text:
Template:UserImages

User:

title: Template:UserImages


text:
Cookbook:Serbian Flatbread (Lepinja)

Ingredients

 * 350 g (about ¾ lb) white flour
 * 1 tbsp sugar
 * 1 tbsp salt
 * 30 g fresh yeast
 * Warm (not hot) milk
 * 8 oz warm water

Procedure

 * 1) Mix sugar, salt, and yeast into a little warm milk. Let stand for a few minutes until foamy.
 * 2) Mix the yeast mixture into the flour.
 * 3) Add the warm water, and knead the dough until it doesn't stick to your fingers.
 * 4) Cover dough with a cloth, and put it in warm place (for instance near a heater) until doubled in size.
 * 5) Knead the dough again, and let rest until it doubles again.
 * 6) Knead it some more, and sprinkle with some flour.
 * 7) Put the dough in the greased pan in which you plan to bake it, spreading it out until it's about ½ inch thick. Let rest for about half an hour.
 * 8) Bake in a 400–420°F oven until golden an inserted toothpick comes out clean.

title: Cookbook:Serbian Flatbread (Lepinja)


text: Spanish/Contents/Thesaurus of Spanish Cognates/Everyday Vocabulary/100+ High-Frequency Words


text:
User talk:Nicolasbock

I moved your page into the Cookbook: namespace; it is now located here.

Come introduce yourself at the new users page. If you have any questions, you can ask there or contact me personally. – Mike.lifeguard  | talk 20:07, 15 September 2007 (UTC)

title: User talk:Nicolasbock


text:
Celestia/Display Options

Introduction
When Celestia starts, by default it shows a 3D image in a window on the computer's main screen. Depending on its user interface, Celestia may be able to occupy the entire screen.

Image quality can be improved somewhat, too.

Linux
Celestia starts in a window, you can exter/exit fullscreen mode by typing Alt-Enter.

Mac OS X
Celestia starts in a window whose position and size are saved. Enter/exit fullscreen mode by typing Cmd(Apple)+F. Move your mouse to the top of the screen when in fullscreen mode to access the menu bar.

Right-clicking (control-clicking) on objects to bring up a context menu, switching to other applications, hide, and opening panels like Preferences and Help continue to work 100% in full screen mode. Multiple screens should be detected properly, although when switching to fullscreen mode Celestia currently only targets the screen which is most covered by the Celestia window.

Various display options can be accessed from Celestia > Preferences or the Display menu.

Windows XP, Vista and 7
Celestia starts in a window which is located in the same place and at the same size as when Celestia previously exited. The menu "Render / Select display mode..." provides access to the list of full-screen resolutions claimed to be supported by the graphics display. Once the default resolution has been configured using that menu, you can exter and exit fullscreen mode by typing Alt-Enter.

Edges
By default, Celestia does not enable anti-aliasing. This means that you'll see stair-step jaggies and moving dots on the edges of objects, especially on diagonal lines. Turning on anti-aliasing will make the display run more slowly, but objects will look better.

Celestia includes two different anti-aliasing options: a menu and keyboard option to smooth the orbital path lines, and a configuration file option to enable full-screen anti-aliasing.

You can separately enable various levels of full-screen antialiasing in the controls for your graphics hardware. This will affect all 3D programs, not just Celestia.

Menu and keyboard (orbit smoothing)
The Windows menu option Render/Antialiasing turns on hardware smoothing of the orbital path lines.

(What are the corresponding Linux, and MacOS menu options?)

The keyboard command Ctrl-X is available in all versions of Celestia to toggle this display rendering option.

celestia.cfg (full screen)
To enable full-screen antialiasing within Celestia, edit the file celestia.cfg. Find the line which currently says

and delete the #. If your graphics hardware supports higher levels of antialiasing, you can increase its value appropriately. This feature will work only if your graphics hardware has been configured to allow application control of antialiasing.

hardware control panel (full screen)
Alternatively, you can open the software control panel for your graphics hardware and turn on its antialiasing features permanently. This will affect all 3D programs, not just Celestia.

In either case, while the edges of objects will look much better, Celestia will run more slowly. The framerate reduction will depend on the quality of your graphics hardware.

title: Celestia/Display Options


text:
Celestia/Locations

Introduction
Celestia includes several catalogs of Locations on the Earth and on objects elsewhere in the Solar System. They're short, only containing lists of major features, like the Earth's oceans, continents and capital cities of nations. More extensive catalogs of Locations are available as Addons.

Locations are labeled positions, usually on the surfaces of objects defined in SSC catalog files. They're shown if you select the option "Label Features" in the menu Render / Locations...

When Locations are enabled, you can use Celestia's goto functions to travel to them.

For more information, please see SSC Location

title: Celestia/Locations


text:
Talk:Directing Technology

Class Project Expansion (2011)

 * Kindle: Julie
 * Smartphone: Candice
 * iPad: Anil
 * Android Tablet: Pam
 * Chromebook: Esther

Class Project Expansion (2009)

 * how to find technology-related grants: Michelle
 * how to write grants: Adriane
 * planning: Miguel
 * training (tech): Jack
 * purchasing: John
 * maintenance and support (not training): Dave & Dan
 * network security: Miro
 * network design: Laura

How to Add and Format Images
1. Go to the page where you want to add the picture

2. Log in to your account (it won't work without this step)

3. The "upload file" command will now show up in the Toolbox at the bottom of the left-hand column. Use the "upload file" command to add photos, graphics, pdf files, word documents, and other ancillary files. Follow the directions carefully on the "upload file" form. Remember that you must have rights to upload the image. Either create the image yourself or use an image that does not have a copyright owner who prohibits its use.

3. You can add this photo to your article by putting double brackets around the name as below:

4. You can align it to the left or right by the code below:

5. If it's a large image, you can add a thumbnail using the code example below:

6. The general format of an image specification is as follows:

7. CAPTIONS may only be used in images of Type="thumb" or Type="frame." (see Catalina, Lake of the Ozarks example above)

8. For more information, visit the Wikibook image directions at: Editing_Wikitext/Pictures/The_Quick_Course

How to Format References
Don't worry .. there isn't one perfect way to do references and citations in Wikibooks. There are good pages to help you format references and citations. This one helps with references, linking the text with the reference list: Help:Editing

A link link all the way at the bottom of the page may provide categories for common reference types like books, papers, etc.. If not, search for "Category:Citation_templates" or click here: []

A Class Project (2007)
Hi everybody, I really enjoyed working on wiki project as i mentioned on my previous post.

Today i have found a chance to look the other chapters. I realized that everybody has put great effort in here.I also say that making presentation was such a helpful idea in order to find my mistakes and evaluate others'. Additionally, i have some ideas about the organization of the wiki pages. However, I really enjoyed to look at the some graphics. They are really nice. I am pretty sure, implementing pictures on wiki is not a easy job.
 * I think that the best way is start a new page when you click on a subsection. This looks more organized and nice.Other way, wiki page looks a flowing of text and as if it has heavy text content.
 * I also would recommend that some subsection titles are too long.

naime on 12/3

Directing Technology is a class project of Educ 491-13, Budgeting, Maintaining and Evaluating School Technology, in Lehigh University's Graduate College of Education. This new class runs from September to December, 2007. Subsequent classes may complete the initial work on the book. Community input is welcomed (let us know who you are on the discussion page). Garrigan 22:20, 15 September 2007 (UTC)

Book Name and URL
The book title is Directing Technology.

Bookmark the URL below to go directly to the title page with short table of contents:
 * http://en.wikibooks.org/wiki/Directing_Technology

Structure and Group Responsibilities

 * Preface & Abbreviated Contents (This is the Title or Home Page - Dr. G)
 * Cover (TBD)
 * Table of Contents (comprehensive)
 * Ch 1: Overview (of the Technology Director's Job - Dr. G & others TBD)
 * Ch 2: Plan (Research & Planning Technology Initiatives - TBD)
 * Ch 3: Fund (Budgeting & Funding Technology - Mike, Lifang, Tim)
 * Ch 4: Staff (Staffing Technology - MaryJo, Bolu, Jack)
 * Ch 4: Purchase (Acquiring & Deploying Technology - Brian, Jhumur, Doug)
 * Ch 5: Maintain (Maintaining & Supporting Technology - Ali, Naime, Bobby)
 * Ch 6: Evaluate (Evaluating Technology - Bill, Pei, Paige)
 * Appendices (If needed)

Questions

 * Who will do the TBA items?
 * What Appendices are appropriate and who will do them?
 * Where do we put a Contributors page with all of our names on it?
 * Can anybody find an example they like in another WB of contributors?

Conventions
Since all of the pages in a Wikibook are organized in a similar manner, your first task is to learn how your pages will be built. To see how any page is constructed, just click the edit this page tab to view the underlying wikitext. Feel free to experiment by making changes and clicking on Show preview. Those change will be temporary and you won't have to undo them. To actually enter text and formatting, just click Save page. Remember to LOG IN as yourself every time you work on our wikibook.

As we add to our pages throughout the semester, each chapter will have an indicator that shows its stage of completion as shown below.

Headings
Headings automatically generate a page-level Table of Contents using the following markup tags:

 * == This is a level 1 heading ==
 * === This is a level 2 heading ===
 * ==== This is a level 3 heading ====

This generates the following Wikibook output:

Links within our Wikibook
Enclose the link within double square brackets like this:

 * /Plan/ would take us to the page named "Plan".

A more complete way to express the link would be to include the entire hierarchy beginning with the book title like this:

 * Directing Technology/Plan

Links outside Wikibooks
Enclose link within single square brackets like this:

 *

The link will be displayed like this:

WikiText Formatting Guide
To learn all the common Wikitext markup, visit this Wikibook:
 * /Writing_Pages_with_Wiki_Formatting/

title: Talk:Directing Technology


text:
User talk:Garrigan

Come introduce yourself at the new users page. If you have any questions, you can ask there or contact me personally. – Mike.lifeguard  | talk 21:03, 15 September 2007 (UTC)

title: User talk:Garrigan


text:
Directing Technology/Overview

The Responsibilities of the Tech Director
A school district technology director is a position of growing responsibility, authority, and importance. While this Wikibook focuses on the K-12 education environment, portions are applicable to higher education and business. Many different titles are used for this position such as: IT Director, ICT Director, Director of Information Services, and so on, but the position is characterized by three criteria:
 * 1) responsibility for technology, networking, and usually communications (phones, fax, videoconferencing, etc.),
 * 2) responsibility for educational or instructional technology, and
 * 3) responsible to (reports to) the Superintendent, CEO, President, or is at most one level away from the top person. It is usually a cabinet, or top leadership position.

Beyond those three criteria, the position may require credentials in education, administration, and/or technology. The tech director may have been a teacher and came to the position through an education career. Increasingly, the tech director comes from business, industry, or the military through a technical career path. The tech director is usually also responsible for technology that serves the business, personnel, medical, security, and transportation needs of the organization. Major areas of responsibility may be divided into instructional technology, administrative technology, and technology infrastructure. In a large school district, the tech director may have a large staff with lower-level administrator and specialists; in a small school district, the tech director may have direct hands-on involvement with network equipment, troubleshooting, and individual computers.

title: Directing Technology/Overview


text:
XQuery/Searching, Paging and Sorting

These examples use a simple XML file containing data on Earthquakes around the world. The data come from Swivel. The examples use the generic table-viewer introduced in "Creating Custom Views" for output.

Searching
This example searches for a string in the location of the earthquake.

declare option exist:serialize "method=xhtml media-type=text/html indent=yes"; import module namespace wikiutil = "http://www.cems.uwe.ac.uk/xmlwiki" at "util.xqm";

let $search := request:get-parameter("search","") let $matches := //Earthquake[contains(Location,$search)] return Search Earthquakes for {$search} Search Earthquakes Search for  {      wikiutil:sequence-to-table($matches) }

Execute

Paging
This script implements paging of the search results. Here the full search is repeated for each call, with the state of the interaction held in a hidden input. declare option exist:serialize "method=xhtml media-type=text/html indent=yes"; import module namespace wikiutil = "http://www.cems.uwe.ac.uk/xmlwiki" at  "util.xqm";

let $search := request:get-parameter("search","") let $start:= xs:integer(request:get-parameter("start", "1")) let $records := xs:integer(request:get-parameter("records", "5")) let $action := request:get-parameter("action","search")

let $allMatches := //Earthquake[contains(Location,$search)]

(: compute the limits for this page :) let $max := count($result) let $start := if ($action = "Previous") then max(($start - $records, 1)) else if ($action="Next") then if ($max <$start +$records) then $start else $start +$records else if ($action="Search") then 1 else $start let $end := min (($start + $records - 1,$max)) (: restrict the full set of matches to this subsequence :) let $matches := subsequence($allMatches,$start,$records)

return Search Earthquakes Search Earthquakes Search Location for      Displaying {$start} to {$end} out of {$max} records found. {wikiutil:sequence-to-table($matches) } Records per Page

Execute

Sorting
To get the columns sorted, we add a submit button to each column. This requires extending the generic table viewer to sort the nodes by the selected column.

declare function wikiutil:sequence-to-table($seq,$sort) { };

declare option exist:serialize "method=xhtml media-type=text/html indent=yes"; import module namespace wikiutil = "http://www.cems.uwe.ac.uk/xmlwiki" at  "util.xqm";

let $search := request:get-parameter("search","") let $sort := request:get-parameter("Sort","Date") let $matches := //Earthquake[contains(Location,$search)] return Search Earthquakes} Search Earthquakes Search Location for  {wikiutil:sequence-to-table($matches,$sort)}

Note that the sort is by string value: Sorting by magnitude succeeds only by chance, whereas the sort on Fatalities does not. Execute

An improvement would be to allow successive clicks to a column heading to reverse the sort direction. This requires the addition of two more items into the interaction state, the current sort order and current direction, and changes to the table generator. One would like to be able to say something like:

for $row .. let $sortBy := .. let $direction := if (..) then "ascending" else "descending" order by $sortBy $direction

but this is not a valid FLWOR expression. Instead we have to have two FLWOR expressions, one for each direction.

declare function wikiutil:sequence-to-table($seq,$sort,$direction) { };

Then the script becomes:

import module namespace wikiutil = "http://www.cems.uwe.ac.uk/xmlwiki" at  "util.xqm";

declare option exist:serialize "method=xhtml media-type=text/html indent=yes";

let $search := request:get-parameter("search","") let $sort := request:get-parameter("Sort","Date") let $lastSort := request:get-parameter("LastSort","") let $lastDirection := number(request:get-parameter("LastDirection","1")) let $direction := if ($lastSort = $sort) then - $lastDirection else 1 let $matches := //Earthquake[contains(Location,$search)] return Search Earthquakes Search Earthquakes Search Location for    { wikiutil:sequence-to-table($matches,$sort, $direction)   }

Execute

Using a table schema
Greater control over the output can be obtained by providing a schema for the table. This schema can specify the order of columns and column headings, and potentially conversion instructions as well.

We can provide the table schema as a sequence of Column definitions:

The schema-based function looks like:

declare function wikiutil:sequence-to-table-with-schema($seq,$schema) { };

Note the use of a XQuery idiom to compute the column heading as the supplied heading if there is one, otherwise the node name: ($column/@heading,$column/@name)[1]

This computes the first non-null item in the sequence, a cleaner and more generalisable alternative to: if (exists($column/@heading)) then $column/@heading else $column/@name

Execute

title: XQuery/Searching, Paging and Sorting


text: Template:Directing Technology/Contents

title: Template:Directing Technology/Contents