text:
The Sway Reference Manual/Combining Primitives

Like the primitives themselves, combinations of primitives are also expressions. For example, suppose you have forgotten your times table and aren't quite sure whether 8 times 7 is 54 or 56. We can ask Sway, presenting the interpreter with the expression:

sway> 8 * 7; INTEGER: 56

As before, the semicolon signals the end of the expression. The multiplication sign * is known as an operator, as it operates on the 8 and the 7, producing an equivalent primitive value. The 8 and the 7 are known as operands. It seems that the actual names of various operands are not being taught anymore, so for nostalgia's sake, here they are. The operand to the left of the multiplication sign (in this case the 8) is known as the multiplicand. The operand to the right (in this case the 7) is known as the multiplier. The result is known as the product.

The operands of the other basic operators have special names too. For addition, the left operand is known as the augend and the right operand is known as the addend. The result is known as the sum. For subtraction, the left operand is the minuend, the right the subtrahend, and the result as the difference. Finally for division (and I think this is still taught), the left operand is the dividend, the right operand is the divisor, and the result is the quotient.

In general, operators are separated from their operands by spaces, tabs, or newlines, collectively known as whitespace.

It would be an error to enter the expression 8*7; as the times operator does not have the requisite whitespace.

In fact, Sway always takes in an expression and displays an equivalent primitive expression (e.g., integer or real). All Sway operators are binary, meaning they operate on exactly two operands. We first look at the numeric operators.

Numeric operators
If it makes sense to add two things together, you can probably do it in Sway using the + operator. For example:

sway> 2 + 3; INTEGER: 5 sway> 1.9 + 3.1; REAL: 5.00000000000 sway> "hello" + "world" STRING: helloworld One can see that if one adds two integers, the result is an integer. If one does the same with two reals, the result is a real. The same is true for adding strings to strings. Things get more interesting when you add things having different types. Adding an integer and a real (in any order) always yields a real.

sway> 2 + 3.3; REAL: 5.30000000000 sway> 3.3 + 2; REAL: 5.30000000000 Adding an integer and a string (with an augend integer) yields an integer. The addend string is interpreted as an integer, if possible:

sway> 2 + "3"; INTEGER: 5 sway> 2 + "3.3"; INTEGER: 5 sway> 2 + "hello"; INTEGER: 2

Adding an integer and a string (with an augend string) yields an integer. The addend integer is interpreted as string:

sway> "hello" + 2; INTEGER: "hello2" sway> "3" + 2; STRING: "32" Subtraction, multiplication, and division of numbers follow the same rules as addition. However, these operators, as defined, do not work for strings.

Of special note is the division operator with respect to integer operands. Consider evaluating the following expression:

14 / 2

If one asked the Sway interpreter to perform this task, the result would be 7, as expected. However, if asked the interpreter to evaluate the expression...

14 / 5

the result would be 2, not 2.8. Consistent with the rule above, integer division always returns an integer and if there is a fractional part, it is discarded. Note that all six of the following expressions evaluate to 2.8:

14 / 5.0   14.0 / 5    14.0 / 5.0    14 / real(5) real(14) / 5 real(14) / real(5)

The last three illustrate the use of a conversion function. In the above cases, the integers are converted to reals before the division occurs.

The complement to integer division is the modulus operator %. While the result of integer division is the quotient, the result of the modulus operator is the remainder. Thus

14 % 5

evaluates to 4 since 4 is left over when 5 is divided into 14. To check if this is true, one can ask the interpreter to evaluate:

14 / 5 * 5 + (14 % 5) == 14

This complicated expression asks the question 'is it true that the quotient times the divisor plus the remainder is equal to the original dividend?'. The Sway interpreter will respond that, indeed, it is true. The reason for the parentheses is due to a lack of precedence among the Sway arithmetic operators and is explained in more detail in the next chapter.

About whitespace
Whitespace (tab, newline, and space) in a computer program has two purposes. The first is to make expressions in the language pleasing to the eye. The second is whitespace often signals the end of a primitive. Unlike many programming languages, Sway uses whitespace to signal the end of operators. Thus, 8 * 7 is interpreted as two numbers separated by the * operator while 8*7 (no spaces) will be considered a 'bad number'. We will learn about variables in a bit.

Comparing things
Remember the Boolean primitives, :true and :false? We can use the boolean comparison operators to generate such values. For example, we can ask if 3 is less than 4:

sway> 3 < 4; SYMBOL: :true

The interpreters response says that, indeed, 3 is less than 4. If it were not, the interpreter would respond with :false. Besides < (less than), there are other Boolean comparison operators: <= (less than or equal to), > (greater than), >= (greater than or equal to), == (equal to), and != (not equal to).

Besides integers, we can compare reals with reals and strings with strings using the less-than-or-greater-than-like operators. In general, it is illegal to compare integers or reals with strings.

Any Sway type can be compared with any other type with the == and != comparison operators. If an integer is compared with a real with these operators, the integer is converted into a real before the comparison is made. In other cases, comparing different types with == will yield a value of :false. Conversely, comparing different types with != will yield :true (the exception, as above, being integers compared with reals). If the types match, == will yield true only if the values match as well. The operator != behaves accordingly.

Combining comparisons
We can combine comparisons with the Boolean logical connectives && (and) and || (or).

sway> 3 < 4 && 4 < 5; SYMBOL: :true sway> 3 < 4 || 4 < 5; SYMBOL: :true sway> 3 < 4 && 5 < 4; SYMBOL: :false sway> 3 < 4 || 5 < 4; SYMBOL: :true

The first interaction asks if both the expression 3 < 4 and the expression 4 < 5 are true. Since both are, the interpreter responds with :true. The second interaction asks if at least one of the expressions is true. Again, the interpreter responds with :true. The difference between && and || is illustrated in the last two interactions. Since only one expression is true (the latter expression being false) only the || operator yields a true value.

There is one more Boolean logic operation, called not. It simply reverses the value of the expression to which it is attached. The not operator can only be called as a function (since it is not a binary operator). Since you do not yet know about functions, I'll show you what it looks like but won't yet explain its actions.

sway> not(3 < 4 && 4 < 5); SYMBOL: :false sway> not(3 < 4 || 4 < 5); SYMBOL: :false sway> not(3 < 4 && 5 < 4); SYMBOL: :true sway> not(3 < 4 || 5 < 4); SYMBOL: :false

Note that we attached not to each of the previous expressions involving the logical connectives. Note also that the response of the interpreter reversed from before in each case.


text:
User talk:165.161.3.15

Blocked
You cannot edit for 1 year due to disruptive editing. You are welcome to contribute constructively when editing privileges are restored. You may appeal this action with a reasonable argument by adding the text below. Jomegat (talk) 19:58, 7 January 2011 (UTC)

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

title: User talk:165.161.3.15


text:
Talk:How To Build A Teardrop Trailer/Trailer

Northern Tools sells smaller torsion axles, Item# 224222, Capacity 500lb for the pair, Item# 224221 Capacity 1000lb for the pair.


text:
User:TracyLD

Hi, My name is Tracy and I am a teacher at Alva Middle. I have 3 children and 2 dogs. I am teaching my reading leadership team how to use this site. Good luck teachers!

title: User:TracyLD


text:
User:Wordsthink~enwikibooks

lv:Lietotājs:Wordsthink

w:lv:Lietotājs:Wordsthink

User:Wordsthink/edittools.js

User:Wordsthink/monobook.js

User:Wordsthink/qpreview.js

User:Wordsthink/sandbox

title: User:Wordsthink~enwikibooks


text:
User:Sfl9376

I changed account names. Look here ^_~

title: User:Sfl9376


text: File:Edit in box textures.jpg

title: File:Edit in box textures.jpg


text:
Talk:XQuery/Installing and Testing

I can't seem to find any information in the eXist documentation as to the basic principles of how it's working like "this is the htdocs directory put the files here, access with your browser and there it is", I just know that it uses the Java Virtual Machine (or whatever is called this java thing people have on their computers) and that I can do some testing through the ajax kind of like WYSIWYG thing...

I just thought it would be useful to provide a brief walkthrough as to how this eXist server works and where do I put the files to get them rendered/parsed by the JVM whenever they're accessed with a browser for people with very little framework background. Wordsthink (talk) 21:14, 27 February 2008 (UTC)

title: Talk:XQuery/Installing and Testing


text: User talk:142.25.128.47

title: User talk:142.25.128.47


text:
User:Gutworth

See w:User:Gutworth.

title: User:Gutworth


text:
User talk:Marandolaj

Welcome!
Welcome, !

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

title: User talk:Marandolaj


text: User talk:76.226.111.148

title: User talk:76.226.111.148


text:
XForms/Insert with Origin

Motivation
You want to insert new values into an instance of the model and specify where to find the initial values of the insert.

Method
You can add an origin attribute to the insert statement to tell XForms where to get the initial data for the insert. This is the preferred method over doing many setvalues. The syntax of the insert is the following:

Screen Image
A sample screen image. Many people do not have the ability to run the examples so this is critical.

Use this format:

Make SURE you label all images with a license. Please use creative commons "share alike 3.0 with attribution" if you can.

XForms Application
Load XForms Application

Make sure that the mime-type is set in the svn system to be text/xml.

Sample XForms Template
     Insert with Origin   First Name:    Family Name:    Gender: </xf:label> <xf:item> <xf:label>Male</xf:label> <xf:value>male</xf:value> </xf:item> <xf:item> <xf:label>Female</xf:label> <xf:value>female</xf:value> </xf:item> <xf:item> <xf:label>Unknown</xf:label> <xf:value>unknown</xf:value> </xf:item> </xf:select1> <xf:input ref="XFormsAwareIndicator"> <xf:label>Indicator: </xf:label> </xf:input> </xf:repeat> <xf:trigger> <xf:label>Add</xf:label> <xf:insert ev:event="DOMActivate" nodeset="instance('persons')/Person" at="last" position="after" origin="instance('init')/Person"/> </xf:trigger>

title: XForms/Insert with Origin


text:
User talk:Robgfx

Welcome!
Welcome, !

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

Image:Marble-material.jpg
I saw that you removed the copyright license information from this image. May I ask why? Without proper copyright information, the image will have to be deleted. Just let me know what's up with it, and I can help you out. --Whiteknight (Page) (Talk) 02:53, 28 February 2008 (UTC)

title: User talk:Robgfx


text:
User:Wordsthink~enwikibooks/monobook.js

/** Import module ************************************************************* * *  Description: Includes a raw wiki page as javascript or CSS, *              used for including user made modules. * Maintainers: User:AzaToth */ importedScripts = {}; // object keeping track of included scripts, so a script ain't included twice function importScript( page ) { if( importedScripts[page] ) { return; }    importedScripts[page] = true; var url = wgScriptPath + '/index.php?title=' + encodeURIComponent( page.replace( / /g, '_' ) ) + '&action=raw&ctype=text/javascript'; var scriptElem = document.createElement( 'script' ); scriptElem.setAttribute( 'src', url ); scriptElem.setAttribute( 'type', 'text/javascript' ); document.getElementsByTagName( 'head' )[0].appendChild( scriptElem ); } function importStylesheet( page ) { var sheet = '@import "'              + wgScriptPath               + '/index.php?title='               + encodeURIComponent( page.replace( / /g, '_' ) )               + '&action=raw&ctype=text/css";' var styleElem = document.createElement( 'style' ); styleElem.setAttribute( 'type', 'text/css' ); styleElem.appendChild( document.createTextNode( sheet ) ); document.getElementsByTagName( 'head' )[0].appendChild( styleElem ); } importScript('User:Wordsthink/qpreview.js'); importScript('User:Wordsthink/edittools.js');

title: User:Wordsthink~enwikibooks/monobook.js


text:
User:Wordsthink~enwikibooks/qpreview.js

if (wgAction == 'edit' || wgAction == 'submit') addOnloadHook(addQPreviewButton);

function addQPreviewButton{ if (!window.qPreviewName) qPreviewName = 'QPreview'; var accesskey = window.qPreviewKey || ''; if (window.qPreviewAtBottom) addSystemButton(qPreviewName, qPreview, 'btnQPreview', 'Quick Preview', accesskey); else addToolbarButton(qPreviewName, qPreview, 'btnQPreview', 'Quick Preview', accesskey); }

function qPreview{ var divPreview = document.getElementById('wikiPreview'); if (!divPreview) return; var btnQPreview = document.getElementById('btnQPreview'); var btnWidth = Math.max(btnQPreview.scrollWidth, btnQPreview.offsetWidth); if (btnQPreview) btnQPreview.value = window.qPreviewWait || 'Wait...'; btnQPreview.style.width = btnWidth + 'px'; a = sajax_init_object; a.open('POST', document.editform.action+'&live', true); var Boundary = 'p1415'; a.setRequestHeader('Content-Type', 'multipart/form-data; boundary='+Boundary); var PostData = '--' + Boundary + '\nContent-Disposition: form-data; name="wpTextbox1"\n\n' + document.getElementById('wpTextbox1').value + '\n--'+Boundary; if (a.overrideMimeType) a.overrideMimeType('text/html'); a.send(PostData); a.onreadystatechange = function{ if (a.readyState != 4) return; var html = a.responseText; html = html.replace(/>/g,'>').replace(/</g,'<').replace(/"/g,'"').replace(/&/g,'&').replace(/'/g,"'");		divPreview.innerHTML = html;		if (btnQPreview) btnQPreview.value = qPreviewName;	}; }

function addSystemButton(name, onclick, id, tooltip, accesskey){ var wpPreview = document.getElementById('wpPreview'); if (!wpPreview) return; var btn = document.createElement('input'); btn.type = 'button'; if (name) btn.value = name; if (onclick) btn.onclick = onclick; if (id) btn.id = id; if (tooltip) btn.title = tooltip; if (accesskey) { btn.accessKey = accesskey; btn.title += ' [' + tooltipAccessKeyPrefix + btn.accessKey + ']'; }		wpPreview.parentNode.insertBefore(btn, wpPreview); return btn; }

function addToolbarButton(name, onclick, id, tooltip, accesskey){ var toolbar = document.getElementById('toolbar'); if (!toolbar) return; var btn = document.createElement('input'); btn.type = 'button'; btn.style.background = '#adbede'; btn.style.height = '22px'; btn.style.verticalAlign = 'middle'; if (name) btn.value = name; if (onclick) btn.onclick = onclick; if (id) btn.id = id; if (tooltip) btn.title = tooltip; if (accesskey) btn.accessKey = accesskey; toolbar.appendChild(btn); return btn; }

title: User:Wordsthink~enwikibooks/qpreview.js


text:
User:Wordsthink~enwikibooks/edittools.js

/* */ // XXX: This should be in a regular CSS file (function {    var head = document.getElementsByTagName("head")[0];    if (head) {        var style = document.createElement("style");        style.setAttribute("type", "text/css")        style.appendChild(document.createTextNode(            "div#edittools_main {" +            "    font-size: inherit;" +            "    border-bottom: 1px solid #aaa;" +            "}" +            "div.edittools-group {" +            "    font-size: smaller;" +            "}"        ));        head.appendChild(style);    } }); function EdittoolsGroup(name, label) { this.label = label || name; this.elements = []; function addElement(group, type, e) { group.elements[group.elements.length] = [ type, e ]; return group; }   this.addLabel = function (label) { var b = document.createElement("b"); b.appendChild(document.createTextNode(label)); return addElement(this, "label", b); };   this.addInsert = function (open, close, sample) { if (!open) open = ''; if (!close) close = ''; if (!sample) sample = ''; var display = open + close; if (display.match(/^[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/)) { display = "\u034F" + display; }       var a = document.createElement("a"); a.setAttribute("href", "#"); a.setAttribute("title", "Insert text: " + display); a.appendChild(document.createTextNode(display)); a.onclick = function { insertTags(open, close, sample); return false; };       return addElement(this, "insert", a); };   this.addInsertList = function (chars) { if (!chars) return; var list = chars.split(/\s+/); for (var n in list) { if (list[n] != '') this.addInsert(list[n]); }       return this; };   this.addGap = function  { return addElement(this, "gap", document.createTextNode("\xA0")); };   this.addBullet = function  { return addElement(this, "bullet", document.createTextNode("\xA0•\xA0")); };   this.addWikiLink = function (page, label) { var parts = page.split(/#/, 2); var url = wgArticlePath.replace(/\$1/, encodeURIComponent(parts[0])); if (parts[1]) { url += "#" + encodeURIComponent(parts[1]).replace(/%/g, "."); }       var a = document.createElement("a"); a.setAttribute("href", url); a.setAttribute("title", page.replace(/_/g, " ")); a.appendChild(document.createTextNode(label || page)); var span = document.createElement("span"); span.appendChild(document.createTextNode("("));       span.appendChild(a);        span.appendChild(document.createTextNode(")")); return addElement(this, "link", span); }; } var Edittools = new function { this.style = "full"; this.clear = true; this.groups = {}; this.createGroup = function (name, label) { if (!this.groups[name]) { this.groups[name] = new EdittoolsGroup(name, label); }       return this.groups[name]; };   this.getGroup = function (name) { return this.groups[name]; };   this.removeGroup = function (name) { delete this.groups[name]; };   this.removeAllGroups = function  { this.groups = {}; };   this.install = function (container) { if (container && container.nodeType == null) { container = document.getElementById(container); }       if (!container) return; if (this.clear) { while (container.firstChild) container.removeChild(container.firstChild); }       var groupEls = {}; if (this.style == 'compact') { var select = document.createElement("select"); select.onchange = function { var sel = this.options[this.selectedIndex].value; for (var name in groupEls) { groupEls[name].style.display = (name == sel) ? "inline" : "none"; }           };            container.appendChild(select); container.appendChild(document.createTextNode(" ")); }       var first = true; var elType = (this.style == 'compact') ? "span" : "div"; for (var name in this.groups) { var group = this.groups[name]; if (this.style == 'compact') { var opt = document.createElement("option"); opt.setAttribute("value", name); opt.appendChild(document.createTextNode(group.label)); select.appendChild(opt); }           var groupEl = document.createElement(elType); groupEl.setAttribute("id", "edittools_" + name); groupEl.setAttribute("class", "edittools-group"); if (!first && this.style == 'compact') { groupEl.setAttribute("style", "display: none"); }           for (var n in group.elements) { var element = group.elements[n]; if (element[0] == 'label' && this.style == 'compact') continue; if (groupEl.childNodes.length) { groupEl.appendChild(document.createTextNode(" ")); }               groupEl.appendChild(element[1]); }           container.appendChild(groupEl); groupEls[name] = groupEl; first = false; }   }; }; with (Edittools) { // Main group var main = createGroup("main", "Standard"); with (main) { addLabel("Insert:"); addInsertList("– — … ° ≈ ≠ ≤ ≥ ± − × ÷ ← → · §").addGap; addLabel("Sign your username:"); addInsert("" + ""); }   // Wiki markup var wikimarkup = createGroup("wikimarkup", "Wiki markup"); with (wikimarkup) { addLabel("Wiki markup:"); addInsert(" ").addGap; addInsert("").addGap; addInsert("").addGap; addInsert("").addGap; addInsert("|").addGap; addInsert("[", "]").addGap; addInsert("", "").addGap; addInsert("").addGap; addInsert("#REDIRECT", "").addGap; addInsert(" ", " ").addGap; addInsert("", "").addGap; addInsert("", "").addGap; addInsert(" ").addGap; addInsert(""', '"").addGap; addInsert(" ").addGap; addInsert("").addGap; addInsert(" ").addGap; addInsert(" ", " ").addGap; addInsert(" ", " ").addGap; addInsert("").addGap; addInsert("", "").addGap; addInsert("").addGap; addInsert("", " "); addBullet; addWikiLink("Wikipedia:Template messages", "templates"); }   // Symbols var symbols = createGroup("symbols", "Symbols"); with (symbols) { addLabel("Symbols:"); addInsertList("~ | ¡ ¿ † ‡ ↔ ↑ ↓ • ¶").addGap; addInsertList("# ¹ ² ³ ½ ⅓ ⅔ ¼ ¾ ⅛ ⅜ ⅝ ⅞ ∞").addGap; addInsertList("‘ “ ’ ”").addGap; addInsertList("¤ ₳ ฿ ₵ ¢ ₡ ₢ $ ₫ ₯ € ₠ ₣ ƒ ₴ ₭ ₤ ℳ ₥ ₦ ₧ ₰"); addInsertList("£ ៛ ₨ ₪ ৳ ₮ ₩ ¥").addGap; addInsertList("♠ ♣ ♥ ♦"); }   // Characters var characters = createGroup("characters", "Characters"); with (characters) { addLabel("Characters:"); addInsertList("Á á Ć ć É é Í í Ĺ ĺ Ń ń Ó ó Ŕ ŕ Ś ś Ú ú Ý ý Ź ź").addGap; addInsertList("À à È è Ì ì Ò ò Ù ù").addGap; addInsertList("Â â Ĉ ĉ Ê ê Ĝ ĝ Ĥ ĥ Î î Ĵ ĵ Ô ô Ŝ ŝ Û û Ŵ ŵ Ŷ ŷ").addGap; addInsertList("Ä ä Ë ë Ï ï Ö ö Ü ü Ÿ ÿ").addGap; addInsertList("ß").addGap; addInsertList("Ã ã Ẽ ẽ Ĩ ĩ Ñ ñ Õ õ Ũ ũ Ỹ ỹ").addGap; addInsertList("Ç ç Ģ ģ Ķ ķ Ļ ļ Ņ ņ Ŗ ŗ Ş ş Ţ ţ").addGap; addInsertList("Đ đ").addGap; addInsertList("Ů ů").addGap; addInsertList("Ǎ ǎ Č č Ď ď Ě ě Ǐ ǐ Ľ ľ Ň ň Ǒ ǒ Ř ř Š š Ť ť Ǔ ǔ Ž ž").addGap; addInsertList("Ā ā Ē ē Ī ī Ō ō Ū ū Ȳ ȳ Ǣ ǣ").addGap; addInsertList("ǖ ǘ ǚ ǜ").addGap; addInsertList("Ă ă Ĕ ĕ Ğ ğ Ĭ ĭ Ŏ ŏ Ŭ ŭ").addGap; addInsertList("Ċ ċ Ė ė Ġ ġ İ ı Ż ż").addGap; addInsertList("Ą ą Ę ę Į į Ǫ ǫ Ų ų").addGap; addInsertList("Ḍ ḍ Ḥ ḥ Ḷ ḷ Ḹ ḹ Ṃ ṃ Ṇ ṇ Ṛ ṛ Ṝ ṝ Ṣ ṣ Ṭ ṭ").addGap; addInsertList("Ł ł").addGap; addInsertList("Ő ő Ű ű").addGap; addInsertList("Ŀ ŀ").addGap; addInsertList("Ħ ħ").addGap; addInsertList("Ð ð Þ þ").addGap; addInsertList("Œ œ").addGap; addInsertList("Æ æ Ø ø Å å").addGap; addInsertList("Ə ə"); addBullet; addInsert(""); }   // Greek var greek = createGroup("greek", "Greek"); with (greek) { addLabel("Greek:"); addInsertList("Ά ά Έ έ Ή ή Ί ί Ό ό Ύ ύ Ώ ώ").addGap; addInsertList("Α α Β β Γ γ Δ δ").addGap; addInsertList("Ε ε Ζ ζ Η η Θ θ").addGap; addInsertList("Ι ι Κ κ Λ λ Μ μ").addGap; addInsertList("Ν ν Ξ ξ Ο ο Π π").addGap; addInsertList("Ρ ρ Σ σ ς Τ τ Υ υ").addGap; addInsertList("Φ φ Χ χ Ψ ψ Ω ω").addGap; addInsertList(""); addBullet; addInsert(""); addBullet; addWikiLink("Polytonic_orthography#Examples_of_polytonic_characters", "polytonic"); }   // Cyrillic var cyrillic = createGroup("cyrillic", "Cyrillic"); with (cyrillic) { addLabel("Cyrillic:"); addInsertList("А а Б б В в Г г").addGap; addInsertList("Ґ ґ Ѓ ѓ Д д Ђ ђ").addGap; addInsertList("Е е Ё ё Є є Ж ж").addGap; addInsertList("З з Ѕ ѕ И и І і").addGap; addInsertList("Ї ї Й й Ј ј К к").addGap; addInsertList("Ќ ќ Л л Љ љ М м").addGap; addInsertList("Н н Њ њ О о П п").addGap; addInsertList("Р р С с Т т Ћ ћ").addGap; addInsertList("У у Ў ў Ф ф Х х").addGap; addInsertList("Ц ц Ч ч Џ џ Ш ш").addGap; addInsertList("Щ щ Ъ ъ Ы ы Ь ь").addGap; addInsertList("Э э Ю ю Я я"); }   // IPA var ipa = createGroup("ipa", "IPA"); with (ipa) { addLabel("IPA:"); addInsertList("t̪ d̪ ʈ ɖ ɟ ɡ ɢ ʡ ʔ").addGap; addInsertList("ɸ ʃ ʒ ɕ ʑ ʂ ʐ ʝ ɣ ʁ ʕ ʜ ʢ ɦ").addGap; addInsertList("ɱ ɳ ɲ ŋ ɴ").addGap; addInsertList("ʋ ɹ ɻ ɰ").addGap; addInsertList("ʙ ʀ ɾ ɽ").addGap; addInsertList("ɫ ɬ ɮ ɺ ɭ ʎ ʟ").addGap; addInsertList("ɥ ʍ ɧ").addGap; addInsertList("ɓ ɗ ʄ ɠ ʛ").addGap; addInsertList("ʘ ǀ ǃ ǂ ǁ").addGap; addInsertList("ɨ ʉ ɯ").addGap; addInsertList("ɪ ʏ ʊ").addGap; addInsertList("ɘ ɵ ɤ").addGap; addInsertList("ə ɚ").addGap; addInsertList("ɛ ɜ ɝ ɞ ʌ ɔ").addGap; addInsertList("ɐ ɶ ɑ ɒ").addGap; addInsertList("ʰ ʷ ʲ ˠ ˤ ⁿ ˡ").addGap; addInsertList("ˈ ˌ ː ˑ ̪"); addBullet; addInsert(""); } } $(function {    Edittools.install("editpage-specialchars"); }); /* */


text:
User talk:82.3.146.21

-- Herby talk thyme 08:09, 28 February 2008 (UTC)

title: User talk:82.3.146.21


text:
Spanish/Vocabulary/Colors

Colores

 *  amarillo(a)  :  yellow
 *  anaranjado(a)  :  orange
 *  azul  :  blue
 *  beige, beis  :  beige
 *  blanco(a)  :  white
 *  (color) borgoña  :  burgundy
 *  café  :  brown
 *  (color) canela  :  tan
 *  castaño(a)  :  brown (hair, eyes)
 *  claro(a)  :  light
 *  dorado(a)  :  gold
 *  gris  :  grey
 *  humo(a)  :  smoky
 *  (color) lavanda  :  lavender
 *  (color) magenta  :  magenta
 *  malva  :  mauve
 *  marrón  :  brown
 *  morado(a)  :  purple
 *  negro(a)  :  black
 *  oscuro(a)  :  dark
 *  plateado(a)  :  silver
 *  rojo(a)  :  red
 *  (de color) rosa  :  pink
 *  verde  :  green
 *  verde mar  :  aqua

title: Spanish/Vocabulary/Colors


text: User talk:67.161.13.16

title: User talk:67.161.13.16


text:
Topfield 5800/Troubleshooting/Dropouts

The Toppy does not seem to cope very well with playing audio if the TV type is set different to the video being played. In the UK, all broadcasts are PAL so the TV Type should be set to PAL, and this can be changed using the System Setting menu, A/V Output Setting item.

There is also a known issue with (specifically) Film4 recordings being played back when tuned to Sky3 (or any channel on MuxC). The solution is to tune to a different channel (e.g. BBC1) before starting playback.

Other causes are the obvious signal problems: weak signal and poor quality signal (check the aerial type, alignment and cabling, water ingress in connections, and consider a booster), atmospherics, and interference from other electrical activity, such as lawnmowers, car electrics and dodgy domestic appliances (better [CT100] cabling may help).

Experience has shown that audio dropouts can occur when the machine has got hot, often after a few hours playback. This gets progressively worse. The solution is either switch off and allow it to cool down, or direct a cool air fan at the machine. The fan noise can be ignored by the satisfaction of completing a watched programme.

title: Topfield 5800/Troubleshooting/Dropouts


text:
Khepera III Toolbox/Examples/measure real speed

This example shows how to experimentally measure the real speed of the robot using the floor sensors. A sheet of paper is put on the floor, which the robot traverses at the speed to be measured. Using the floor sensors, the robot detect when it enters and leaves the sheet, and records both times. Since the length of the sheet is known, the real speed can be calculated.

Setup
Boot a Khepera III robot and make sure it is connected to your computer via WLAN. In the following explanation, we assume that you are working with robot 203. Stick a white sheet of paper on a dark floor, and place the robot in front of the paper.

Copy the motor_initialize, motor_stop and infrared_proximity programs onto the robot cd Programs k3put +203 motor_initialize motor_stop infrared_proximity Then, copy the measure_real_speed program from the examples folder onto the robot cd ../Examples/measure_real_speed k3put +203 measure_real_speed Log on to the robot k3go +203 and type cd your_username ./motor_initialize to initialize the motors.

Before taking speed measurements, we need to configure the floor thresholds when entering and leaving the sheet of paper, as well as the size of the paper.

To find out the floor thresholds, type ./infrared_proximity once with the robot on the white sheet of paper and once with the robot on the dark floor. You will get results like this: where the two last numbers in each measurement belong to the floor sensors. The threshold used when entering the paper (--floor-threshold-on) should be just slightly below the value measured on the white sheet of paper, i.e. 3900 in our case. The threshold used when leaving the paper (--floor-threshold-off) should be a bit higher than the measurement on the dark floor, i.e. 3200 here.

To test if the thresholds work, place the robot about 5 cm in front of the sheet and launch ./measure_real_speed --speed 10000 --floor-threshold-on 3900 --floor-threshold-off 3200 The robot should report when it enters and leaves the paper, and stop about 5 cm after the sheet. If the result is not satisfying, adjust the thresholds and test again. The motor_stop program may be helpful to stop the robot in case the measure_real_speed program does not detect the edges of the paper.

Running the Experiment
Open run.pl with a text editor and adjust the floor thresholds. Also adjust the paper size in case you are not using an A4 sheet (long-wise).

Position the robot in front of your sheet of paper, and launch ./run.pl The robot will now cross the sheet of paper in forward and backward direction many times with different speeds, and the results are stored in a file called run_results in the same folder.

Parsing the Result File
Type the following line to process the result file ./parse_results.pl < run_results > matlab_run_results

Plotting the Result in Matlab
Launch Matlab and type plot_results In addition to plotting the real speed for various speed setpoints, this will also calculate and plot a speed factor, i.e. the ratio between real speed and speed setpoint.

The resulting speed factor will be about 7.1e-6 m/(s * unit), which means that a speed setpoint of 10000 corresponds to 7.1 cm/s.


text:
User talk:Caskwino

Welcome, !

Come introduce yourself at the new users page. If you have any questions, you can ask there or contact me personally. --Derbeth talk 13:45, 28 February 2008 (UTC)

title: User talk:Caskwino


text:
Chess Opening Theory/1. e4/1...e5/2. Ke2

2. Ke2?
Ke2 is an interesting move. It significantly worsens White's position by exposing the king, giving up the right to castle, blocking in the queen and bishop, and providing no improvement to White's position. All that being said, it can be used as a surprise to unseat Black. Also, due to the dubiousness of the opening, it can be used as a form of handicap. An early 'joke' idea of this opening is to prepare for an early endgame by developing the king.

Sometimes, games are played that begin with the Bongcloud Attack in which the players try to move the king to the opposite side of the board rather than achieve a checkmate.

In a tournament, GM Magnus Carlsen and GM Hikaru Nakamura played the "Double Bongcloud", wherein both players played symmetrically with 2. Ke2 Ke7. The match had no tournament standing implications and was quickly drawn via threefold repetition.


text:
Talk:A-level Chemistry/AQA/Module 2/Extraction of Metals

aluminium extraction


text:
User talk:69.51.160.106

Joins Us!
Webaware talk 14:37, 18 March 2008 (UTC)

title: User talk:69.51.160.106


text: User talk:204.113.104.68

title: User talk:204.113.104.68


text:
Talk:Biomedical Engineering Theory And Practice/Local manuals of style

The Local Manual of Style for Biomedical Engineering Theory And Practice Wikibook
This style is created in accordance with the guidelines in WB:LMOS.

Follow the Official Wikibooks Guidlines for Manual of Style
Please refer to the document WB:MOS.

Structure
This Wikibook should have a Deep Structure to achieve a high quality organizational structure. Book/chapters/subchapters/subsubchapters/etc...

Titles Convention
This Wikibook adopts the "Name of this Chapter", "Name of Section" style, i.e. capitalize all words except for articles and prepositions.

Citations Style
This is an example book citation:

The Biomedical Engineering Handbook, Second Edition; Joseph D. Bronzino [Ed.], CRC Press, 2000

This is an example article citation:

Takla G, Petre JH, Doyle DJ, Horibe M, Gopakumaran B. The problem of artifacts in patient monitor data during surgery: a clinical and methodological review. Anesth Analg. 2006;103(5):1196-204.


text: User talk:65.18.23.141

title: User talk:65.18.23.141


text:
User:123Pie~enwikibooks/monobook.js

TwinkleConfig = { revertMaxRevisions             :       50, userTalkPageMode               :       'tab', showSharedIPNotice             :       true, openTalkPage                   :       [ 'agf', 'norm', 'vand' ], openTalkPageOnAutoRevert       :       false, summaryAd                      :       " using TW", deletionSummaryAd              :       " using TW", protectionSummaryAd            :       " using TW", watchSpeedyPages               :       [ 'g3', 'g5', 'g10', 'g11', 'g12' ], watchProdPages                 :       true, openUserTalkPageOnSpeedyDelete :       [ 'g1', 'g2', 'g10', 'g11', 'g12', 'a1', 'a7', 'i3', 'i4', 'i5', 'i6', 'i7', 'u3', 't1' ], watchRevertedPages             :       [ 'agf', 'norm', 'vand', 'torev' ], markRevertedPagesAsMinor       :       [ 'agf', 'norm', 'vand', 'torev' ], deleteTalkPageOnDelete         :       false, watchWarnings                  :       true, markAIVReportAsMinor           :       true, markSpeedyPagesAsMinor         :       true, offerReasonOnNormalRevert      :       true, orphanBacklinksOnSpeedyDelete  :       {orphan:true, exclude:['g6']} };

title: User:123Pie~enwikibooks/monobook.js


text:
Biomedical Engineering Theory And Practice/Biomedical Instrumentation/Electrocardiography

This chapter should cover the basics of ECG systems from a design point of view; not from a diagnosis point of view.

Physiological Background
The function of the heart is to contract rhythmically and pump blood to the lungs for oxygenation and then pump this oxygenated blood into the general circulation. This perfect rhythm is continuously maintained and signaled by the spread of electrical signals generated by the heart pacemaker, the sinoatrial (SA) node. Detecting such electrical activity of the heart can help identify many heart disorders. This is the main concept behind using an ECG (Electrocardiogram), tracing the electrical activity of the heart.

By measuring and tracing the potential difference between two points on the outer surface of the body we obtain the simplest ECG chart. Two typical measuring points between the left arm and the right arm. By defining the two points and setting up the conventional positive direction for measuring the voltage, we create what is called a "Lead".

The first phase of the cardiac muscle activation is the stimulation of the right and left atria by an electrical signal generated from the SA node. This phase appears as the P-wave on the ECG chart. The electrical signal, originally generated by the SA node, then spreads through the Atrioventricual (AV) Junction, the bundle of His, and the Purkinje fibers to finally reach and stimulate the ventricles. The spread of the electrical signal through the ventricles causes ventricular contraction. The phase of ventricular contraction appears as the characteristic QRS complex on the ECG chart. Finally, with the relaxation of the two ventricles, a depolarization signal is generated and appears as the T-wave on the ECG chart.

Design of a Basic ECG Signal Acquisition Module
The acquisition of the ECG signal is a rather challenging task, as the case with many biological signals. ECG voltage signal is very low in magnitude (few millivolts) and has relatively low frequency content. The expected bandwidth of the signal typically begins from 0.01 Hz and extends to no more than 150 Hz.

Another challenge in acquiring the ECG signal is the power-line interference that is often order of magnitudes greater than the original ECG signal. All this suggests challenging requirements for the design of the signal acquisition module: It should have minimum loading effect, it should contain an amplification stage to make the signal level appropriate for further use, and it should contain a filtration stage customized to remove the expected noise and power-line interference that often corrupts the ECG.

In this section, we are NOT going to consider the full design of the ECG signal; rather, we shall focus on a minimal ECG acquisition module design that would just work.

As discussed in the physiological background section, an ECG signal is obtained as the voltage difference between two points on the skin. This suggests the need for some subtraction mechanism. The subtraction could be done using an electronic Difference Amplifier. This amplifier basically subtracts and amplifies the difference between two electrical points. For the subtraction to work correctly, the voltage of both electrical points should be measured with respect to a common electrical reference. This common reference is typically chosen to be the right leg of the patient.

So, a simplified diagram of a simple ECG acquisition module would be as shown in the figure.

Signal Artifacts
Artifacts that corrupt the raw ECG signal have either physiological or non-physiological origin. The most dominant artifact is the power-line interference which appears as an sinusoidal wave of frequency 50 Hz (or 60 Hz in USA). Other artifacts include:
 * Movement Artifacts due to patient movement, etc...
 * Baseline Wander where the ECG waveform baseline starts to drift up and down in a sinusoidal pattern following the patient breathing
 * EMG Interference where muscle contraction signals interfere with the ECG.
 * Electrode Contact Noise where the electrodes are not tightly coupled to the patient causing some distortion
 * Electrosurgical Unit (ESU) interference where high-frequency signals from the ESU used by surgeons during operation interfere with the ECG

Basic Signal Conditioning for the ECG
This section should discuss theoretical signal processing solutions to the above artifacts


text: File:V create folder.jpg

title: File:V create folder.jpg


text: File:V edit in explorer.jpg

title: File:V edit in explorer.jpg


text: File:V basic wagon folder.jpg

title: File:V basic wagon folder.jpg


text: File:V copy.jpg

title: File:V copy.jpg


text:
Trainz/Tutorial For Modifying the reskin mesh in GMAX

The sound of the word GMAX often strikes terror into the hearts of those who have struggled through tutorials then given up. This tutorial takes you through the necessary steps and only the necessary steps to do modify the position of the numbers on the reskin of the basic plank wagon.

If you have any intention of doing serious work in GMAX please set up GMAX as per Paul Hobbs first GMAX tutorial.

To work in GMAX we need three files. These are the GMAX source file and two texture files, one for the wagon and one for the numbers. GMAX will want to know where they are so normally I keep all the files for a project together in one folder under the GMAX\mesh folder. This part will use a Highland Railway loco coal wagon to demonstrate how to move the numbers.

The first step is to create a folder with the correct name under the GMAX\mesh folder.

Now we need the GMAX source file so we need to extract it from cmp, note it is unusual to find the GMAX source files supplied in the model files on the DLS. First we edit in explorer.

This gives us access to the files.

The first file we want is the zip file containing the source. Note Auran does not permit files of type .zip to be stored so it has been renamed to .txt file extension. First we copy the file.

Then paste it into the new folder.

Repeat to get the texture.tga files form the body folder.

Note we can collect two files at once by highlighting them both.

Then paste them into the new folder.

At this point you may wish to copy in your new cs_skin.tga file.

To unzip the GMAX source first rename the file to a .zip extension.

Then unzip the file.

Now we open the GMAX source file in GMAX. GMAX has two ways to show an object, one is wire mode, the other is Smooth Plus Highlights. We need the Smooth Plus Highlights. To change from one to the other right click the word in the top left hand corner then select the appropriate one.

It is probable that the texture file has not been found.

So we tell GMAX where the file is with the GMAX Material Navigator. 1 Click on the GMAX Material Navigator button, 2 then check the applied button, 3 finally click on the file we want to change.

Use the "select bitmap image file" window to select the image file we wish to use.

Repeat for the other instances of the file name.

Now we have our correctly textured wagon showing in GMAX.

To show more detail select the quadrant we are interested in then press the "W" key.

For clarity a brown ssa.tga has been used. We'll change it to the proper ssa.tga texture later on. Now we want to select the number panel before moving it. To do this press "H" then highlight the item (1) in this case number1 and press the select button (2). You can click on the item directly but GMAX can interpret a mouse click as a command to both select and to move the object with unwanted results so use the H selection method to avoid this.

Click on the blue arc tab to show which item we have selected. This will also allow us to resize the panel with the wagon number on if required.

The next step after selecting the panel is to move it. We click on the move icon with four arrows on it. If you look carefully to the right of the icon you can see the letters X Y Z and xy these constrain movement in the those planes. Z is up and down, Y is side to side, X is in and out. With the xy constraint set as it is here we can move the panel about without fear that it will move further into or away from the wagon. The panel can be moved either with the mouse or by changing the values in the Y and Y boxes at the bottom of the screen. Do not touch the value in the X box, a value of 0 in the Y box means the number will be centred on the Y axis.

Here we can see the panel has been moved into position note the value of Y.

In this case the wagon number panel wants to be slightly longer so we click on Plane, then adjust the value in width to 18". This is often easier to see with the correct texture file.

The wagon with the correct texture file copied in place.

Repeat using the Left view to adjust number2.

Finally we come to the export. Trainz has its own preferred file format so to get Trainz to recognise our wagon we need to export it. Make sure nothing is selected Then locate the export entry on the file menu.

We need to tell GMAX to create a file called body.im, one way is to simply type "body.im" in the save box. This file is the close up or high detailed one for the lod.

After that we copy the .im files and tetxure.txt files into the appropriate folder in CMP. Normally if you sort the folder by time you will want to copy the most recent files but not the .GMAX source.

We need to double check that the wagon points to our new texture group by editing the config.txt file if you haven't already done so.

Commit the changes and open up Trainz and we should find our new model. View it from close up to view the detailed mesh and texture file. Note the three different wagon numbers on display.

This model uses lod or level of detail to assist performance. Trainz selects the appropriate version depending how far away you are form the model. You can control this but for the moment we'll simply create the lower detailed meshes and point them at smaller versions of the texture files. So first double check we have the smaller versions of the texture file available.

And save as cs_skin_med.tga.

Level of Detail steps
Then back into GMAX and open up our wagon. The first step is to save the source under a different name.

We add the letters "med" onto the end of the name.

We are going to both reduce the polys and point to a smaller texture file but the first step is to ungroup group B which contains one of the details that we are going to detail. So use H to bring up the Select Objects and highlight B.

Here we can see that there is buffer detail that can be seen close up but not from further away. Note the vertical and horizontal arrows that show the centre of the object and the white lines around the object.

After the ungrouping we can see the buffer collar and buffer collar01 in the Select Objects which we will delete for the medium level of detail. For the low level of detail we will also delete the carriage bit and carriage bit 01.

Select and press the delete key.

Here you can see a minor detail has been deleted which won't be noticeable in the med lod.

Now we need to point the mesh to the smaller texture file. Click on the three balls for the GMAX Material Navigator. reduce the selection by clicking Applied in browse form scene, (on the left), click on the first cs_skin to bring up the Material Editor and finally click on the bitmap to change the name of the file. The same steps as we used when opening up GMAX for the first time to get the texture.

Open the cs_skin_med.tga. Repeat this step for the other two references to the CS_Skin.tga file file in the GMAX material editor.

Finally we export the body_med.im file.

Repeat these steps for the low version of the lod.

Copy the body_med.im cs_skin_med.texture.txt body_low.im cs_skin_low.texture.txt ssa.texture.txt files from the mesh folder into the zrb_body folder as you did for the body.im file earlier.

Commit and your reskin is now complete.


text:
Modern Greek/OldLesson2

Lesson 2 — Χαίρω πολύ!

Goal
In this lesson, you will learn to introduce yourself, tell people your profession, name and nationality. The definite article is introduced as well. You need to have a basic knowledge of greetings in Greek and know είμαι, είσαι and είστε forms of the verb 'to be'.

Dialog

 * ''Αντώνης: Γεια σου!
 * ''Ανθή: Γεια σου!
 * ''Αντώνης: Πώς είσαι;
 * ''Ανθή: Είμαι καλά, εσύ πώς είσαι;
 * ''Αντώνης: Είμαι καλά.
 * ''Ανθή: Πώς σε λένε (or "Ποιο είναι το όνομά σου" (not used));
 * ''Αντώνης: Με λένε Αντώνη (answers the first question) (or "Το όνομα μου είναι Αντώνης" (answers the second question)).
 * ''Ανθή: (Εμένα) με λένε Ανθή (or "Το όνομα μου είναι Ανθή"). Χαίρω πολύ!
 * ''Αντώνης: Χαίρω πολύ επίσης.
 * ''Ανθή: Γεια σου!
 * ''Αντώνης: Γεια σου!

What is your name?
Notes

 * Note 'τ'όνομά μου είναι' might also be said. Where syllables are dropped.

Examples

 * Το ονομά μου είναι Μάριος.
 * Με λένε Μάριο. (Note that in this case in Greek male names we drop the final -ς)

I'm Greek.
Notes

 * Note that every one of these words has ο or η in front of it this tells us that these are nouns. The ο or η also tells us the gender, ο is for masculine and η is for feminine.
 * Some of the words introduced in the above table have two forms, one for males and another for females. This roughly corresponds to the actor and actress that is present in English. If the masculine ends in ος the feminine is often formed by adding ίδα after dropping the ος. But this is not always the case if we look at the words for Chinese. It is wrong to use the masculine form to describe yourself if you are female.

Examples
 * Είμαι Άγγλος.
 * Είσαι Ελληνίδα;
 * Είμαι Γερμανίδα.

I'm a teacher
Notes Most profession do not have separate words for male and female.

Examples
 * Α: Ποιο είναι το επάγγελμα σου;
 * Β: Είμαι δάσκαλος. Ποιο είναι το επάγγελμα σου;
 * Α: Είμαι δικηγόρος.

He's handsome
Examples

 * Η Μάρια είναι όμορφη.
 * Ο Στέλιος είναι μεγάλος.
 * Το όνομα σου είναι όμορφο.
 * O γιατρός είναι καλός.
 * O Αντώνης είναι έξυπνος.

Explanations

 * Notice how there is agreement with the definite articles and the noun that is present before. In summary, 'Η', 'Ο' and 'Το' are the definite articles for feminine, masculine and neuter nouns. They all correspond to 'the' in English.  In Greek, definite articles are always placed before Peoples names.  This means that Η Μάρια means Maria in English.  You'll find definite articles listed after nouns in Dictionaries.  This tells us the gender of the word.
 * You have probably noticed that there are three forms of each of the adjectives listed in the table above. If the adjective ends with ος it is masculine. Feminine if it ends with η. Finally if it ends with ο it is neuter. This is important because adjectives have to agree with the nouns that they describe. So if the noun is masculine then the adjective must also be masculine. This is called agreement. We can see this illustrated in the examples above, numbers 2, 4 and 5.  'O γιατρός' is masculine so 'καλός' must also be masculine.  The same applies for feminine nouns look at the first example. Η Μάρια is feminine so the form must be όμορφη to agree with it.  The same is true of neuter nouns look at the third example.
 * If we look at the I'm Greek section, the second example is a question simply because of its semicolon. Recall that in speech what makes it a question is the rising intonation towards the end of the sentence. In the same way, we can form questions asking whether someone is a doctor (Είσαι γιατρός;)

Summary

 * We are able to ask someone's name and give our own name. (Ποιο είναι το όνομα σου; Με λένε Μάριο.)
 * We have learned the ways to what nationality you are. (Είμαι Άγγλος.)
 * We can inquire if someone is a certain nationality. (Είσαι Ελληνίδα;)
 * We now know how to ask what profession someone has. (Ποιο είναι το επάγγελμα σου;)
 * We can tell people what we do. (Είμαι δάσκαλος)

The next step
You should now do the exercise related to each section (found here), or if you're feeling very confident go to the next lesson, lesson 3. Alternatively, return to the contents.

Extension
If you'd like to learn more words that you can use without having to study another lesson, use this section in order to find them. Feel free to learn selectively, picking out words you consider useful for your situation or interesting. If you don't have the time, you can just skip this section. You will not be required to know any of these words in the next lessons. The words in the section below have a variety of different endings. We don't have to worry about this yet; to form similar sentences to the above, just take the appropriate word from the table use είμαι, είσαι και είναι.

This section contains additional professions and nationalities.

title: Modern Greek/OldLesson2


text: File:V paste.jpg

title: File:V paste.jpg


text: File:V body folder.jpg

title: File:V body folder.jpg


text: File:V textures.jpg

title: File:V textures.jpg


text:
User talk:198.188.164.233

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. -- Reece   (Talk)   (Contributions)  21:36, 28 February 2008 (UTC)

title: User talk:198.188.164.233


text:
User talk:86.141.11.41

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. -- Reece   (Talk)   (Contributions)  21:39, 28 February 2008 (UTC)

title: User talk:86.141.11.41


text: User talk:90.194.174.20

title: User talk:90.194.174.20


text:
User talk:71.5.47.5

Welcome
Welcome to Wikibooks. Thanks for your contributions to the Adventist Youth Honors Answer Book/Vocational/House Painting, Interior honor. However, we have to be very careful about where our content comes from. Did you copy the text from Behr verbatim, or did you rephrase the information in your own words? If it was a simple copy, we'll have to replace it with some original text unless you can get Behr to agree to license their content under the GFDL.

Again, thanks for your work. --Jomegat (talk) 23:23, 28 February 2008 (UTC)

title: User talk:71.5.47.5


text: File:V hr coal folder.jpg

title: File:V hr coal folder.jpg


text: File:V coal rename.jpg

title: File:V coal rename.jpg


text: File:V unzipped.jpg

title: File:V unzipped.jpg


text:
File:Msedit.jpg

Licensing
/Images

title: File:Msedit.jpg


text: User talk:98.225.64.52

title: User talk:98.225.64.52


text:
MIRC Scripting

mIRC Scripting is a built-in, interpreted scripting language for the mIRC IRC client for Windows. It is an easy-to-use and flexible script for uses ranging from automating and simplifying IRC tasks to making mini-programs such as file servers and away systems. Some people even utilize scripts to completely skin and program the IRC interface. These are usually called "full scripts," while individual, smaller scripting projects are known as "remotes" or "addons," or "snippets" for really small scripts. This wikibook will attempt to explain all the aspects of mIRC Scripting, starting from the very basic parts of the language for beginners, and delving into the more advanced topic for experts.

Table of Contents
If you're looking for something specific in this book, dive into the table of contents and find what you're looking for.

Wikibook information

 * Manual of Style
 * List of Authors
 * To-Do Page

title: MIRC Scripting


text:
User talk:PiemanXC

Welcome, !

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

I saw your MIRC Scripting book, and I'm thrilled about it. I've been an mIRC user for a long time now, and I'm terrible at scripting. I would love to learn more, and look forward to reading your book.

By the way, since you're an IRC user, if you're ever on Freenode stop in at #wikibooks to chat with me and some other volunteers here. --Whiteknight (Page) (Talk) 01:38, 29 February 2008 (UTC)

Copyright problem with Image:Mirclogo.jpg
Looks good to me now. As for being decorative vs illustrative, I'm fine with it. WB:MEDIA isn't actually policy, so there's leeway. – Mike.lifeguard  | talk 01:08, 4 March 2008 (UTC)
 * I don't want to bother tagging all your other uploads, but can you make sure that all fair use images have a rationale? Thanks a ton. – Mike.lifeguard  | talk 01:11, 4 March 2008 (UTC)
 * No problem. I'll see what I tagged fair use and make up a rationale for it. PiemanXC (talk) 01:19, 6 March 2008 (UTC)

title: User talk:PiemanXC


text:
Template:MIRC Scripting/TOC/Basics

1. Starting From Scratch
 * Become Familiar with mIRC
 * Getting Started
 * Types of scripts (alias, popups, and remotes)
 * Raw and CTCP Events
 * Identifiers and Variables
 * Comments in Code
 * Command Prefixes and Quiet Commands
 * Control Codes

Usage
Really only needed on the Title Page.

title: Template:MIRC Scripting/TOC/Basics


title: File:Gmax1.jpg


title: File:Gmax2.jpg


text:
Template:MIRC Scripting/TOC/BeyondBasics

2. Learning the Ropes
 * Branching and Loops
 * If-Then-Else
 * While Loops
 * Goto Loops
 * Halt, Break, Continue, and Return
 * Timers
 * User Levels
 * Text Matching
 * Wilcards
 * Regular Expressions
 * File Handling
 * Regular text files
 * .INI Files
 * Hash Tables
 * Dialogs
 * Non-Modal Dialogs
 * Modal Dialogs
 * Dialog Identifiers/Commands
 * Dialog Events
 * Dialog Studio

Usage
Really only needed on the Title Page.


title: File:Gmax3.jpg


text:
User talk:Johnwhelan

Welcome!
Welcome, !

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

Copyright problem with Image:Lod 11.jpg
Looking much better, but remember that, etc are the license; please don't have  etc. on there as well, as that's nonsensical. You can choose the fair use templates in the dropdown box on Special:Upload (they're way at the bottom). Thanks for your efforts here, it makes things a lot smoother when people take care when uploading files. – Mike.lifeguard  | talk 01:47, 6 March 2008 (UTC)
 * Last one :) – Mike.lifeguard  | talk 02:25, 7 March 2008 (UTC)
 * Sorry, I was wrong:
 * Image:Gmax13.jpg isn't used, so the fair use claim is invalid. If you're going to use it that's fine, but otherwise, we shouldn't have it hanging around. Same for Image:Lod 9.jpg and Image:Box textures.jpg and Image:Folder image.jpg
 * Image:Lod 9.jpg is still incorrectly marked as
 * Image:Thumb.jpg needs a description
 * I also changed a ton of the templates to say accurately where they're used. If you upload more images, please make sure that the |book= parameter points to the exact module where the image is used. There is an automatically-generated list at the bottom of the image description page that you can simply copy-paste from. Thanks!  – Mike.lifeguard  | talk 17:11, 7 March 2008 (UTC)

February 2008 screenshots
Similarly to Mike's comments above, please use correct templates for screenshots. See an overview of these at Templates/Files. These will need to be cleared up if the images are to stay.

You can find a full list of your uploads on your upload log. --Swift (talk) 08:22, 28 February 2009 (UTC)

 * Can you be more precise about what exactly is missing then I can correct the uploaded images, I copied the previous screen shot details thinking these would be acceptable as to be honest I find it quite difficult and time consuming to follow your complicated exacting requirements.

 * Thanks John —Preceding unsigned comment added by 72.138.27.147 (discuss • contribs) 21:30, 28 February 2009

 * These images are screen-shots of software that has a particular license. You need to upload the images under a license that is compatible with the software license. If the software license is non-free, you can upload under a fair-use license. If it is free, you need to comply with the requirements placed on derivative works.
 * Make a list of your images, note which software each screen-shot is of, and look up and add to the list which license each of these uses. Then check the Templates/Files (there is a section on screenshots). Find the most fitting one for each, and add it to that list. Then report back to me and I'll see where we'll go from there.
 * I'm not sure if this is clear enough for you. Please keep in mind that those of us who do the bulk of the maintenance work here on Wikibooks have limited time to donate to the project and dealing with copyrights issues is not always easy but certainly time consuming as well. We're happy to help you along, but I'm afraid we're not able to do your work for you. --Swift (talk) 17:00, 28 February 2009 (UTC)

I'll take a look. Thanks for the explanation. Cheerio John

Try it all the images except one are from GIMP which is Open source, the other is a screenshot of propitiatory software, hopefully I have the correct licences now. Thanks John

 * I only checked a few from your (many ) uploads and they all look good now. Thanks! --Swift (talk) 02:39, 11 April 2009 (UTC)

Trainz/When to use lod
This page isn't linked to by Trainz and you created the page. If you don't want it to be part of the book or if you yourself added the content elsewhere, please leave on it. -- Adrignola talk contribs 18:34, 9 August 2009 (UTC)

Now included.

Many thanks John.

File:Tutorial how to normal map32.jpg is missing a fair use rationale
I think I have fixed it but I'm not absolutely certain could you check please. Thanks John

Trainz/Polished metal using Blender
I've no idea what I'm supposed to do about this. I have added extra descriptive text to the page. We wished to document that it could be done and a starting point on how to do it. We are currently doing research and conformation tests to determine exactly what to do.

 * Thanks for responding. The best place to respond would be on the module talk page. You could perhaps move the bits you added to the module page over to the talk page and explain what's going to end up there. It's just that placeholder pages are often added with the best of intention but end up never attracting any content. This means that a reader may find himself browsing around a bunch of placeholders where he at first glance saw a fairly complete book. In that case the red-links are better.
 * Furthermore, discussing this off-wiki gives others the impression of inactivity. Thanks for explaining this. I'll remove the tag, but it would be helpful if in the future you would leave slightly more information about your plans for the page, or hold off creating it before the content is decided. No big deal, though, and thanks again for your response.
 * One last note: You can sign comments by adding four tildes ( ~ ) to it. This will expand to your user-name and a time-stamp. --Swift (talk) 13:40, 18 January 2010 (UTC)

Thank you, we thought that we had the information pinned but one of the contributors is in the middle of moving house hence some slight delays.

Cheerio John

Johnwhelan (talk) 23:43, 18 January 2010 (UTC)

Can you elaborate on this
Just trying to figure out how to paginate this beast and stumbled onto this edit by you. Can you flesh that out a bit and update the precautions you clearly mean to convey? A little step by step would be good.

 * Are there any others you've notice editing this wikibook lately? Recently been skype-co-ordinating in Yesrerdayz-Trainz and would be nice to have a brainstorming session of how to fix this thing up!

Best regards, Frank//Fra nkB 00:29, 18 November 2013 (UTC) See edits made here on page you created. Can you fix up the intro and replace the Trainz-sect-stub section with some description of what and how the data might be used in creating content. Thanks! Skype me anytime! // Fra nkB 22:01, 10 March 2014 (UTC)
 * And another loose end

DIY Book Scanner/main
This page has been queried because it seems to be part of book which doesn't exist - there is no book called DIY Book Scanner. Any page called DIY Book Scanner/main would be part of such a book. Additionally, the page hasn't been categorized meaning it would be difficult for readers to find. The page may be deleted if further edits or clarification isn't made.--ЗAНИA talk 21:55, 27 May 2014 (UTC)

It appears I have not set up the title correctly, there should be a book called "DIY Book Scanner" which has the sections in DIY Book Scanner/main. This project has been delayed by other projects so not that much additional information has been added and my own kit of parts is still sitting in the basement. However the information on the four pages already entered is correct and valid. Perhaps you could rearrange it correctly? Thanks John
 * Great, thanks. I'm going to rename this page to DIY Book Scanner.  Seems best as it links to the other pages of the book.  Other pages can be added in the future.--ЗAНИA [[Image:Flag_of_Estonia.svg|15px]]talk 22:15, 27 May 2014 (UTC)
 * The new location is DIY Book Scanner. The other pages in the book have also been moved accordingly.--ЗAНИA [[Image:Flag_of_Estonia.svg|15px]]talk 22:19, 27 May 2014 (UTC)

Thank you.

Cheerio John

Had me going cross-eyed LOL
re: Our mutual agreement the wiki needs reorganized...
 * This didn't help! Not with my vision issues!!! LOL.
 * 1) Tutorials_for_Content_Creation vs.
 * 2) Tutorials_For_Content_Creation - yikes! Give my eyes a break! I almost did a diff between articles to see what was up, then spotted the different cases. My word! LOL Here, have some fun...

Organizing
I want to split your excellent tutorial for reskinning to something like:
 * 1)  or some such title, possibly with and without a suffixes like '-GMAX techniques', '-Blender techniques' as the discussion branches to such subject matter.
 * 2) Where is the GMAX coverage alluded to in the longer of those two pages?
 * 3) Did it get written, and how well does it thread and tie back? (I'm a bit tired right now, so I'm being lazy and not looking--content creation articles are neither my strong suite, nor the pages I've already surveyed and been fixing up.)
 * 4) Regardless, all these should be recategorized into something like Category:Trainz basic content creation tutorials, Category:Trainz intermediate content creation tutorials, and Category:Trainz advanced content creation tutorials.
 * 5) Write the upper part of that Title (one turned into a redirect--you choose!) as an intro surveying various kinds of content modification methods with apropos sub-techniques or alternatives that are reasonable for someone with less than ayear Trainzing...
 * 6) Write the main body of whichever title wins as a Table of Contents to the collection such pages. These lists of pages without grouping convey little. Better to present a category tying things in a larger group, and build TOC links with a blurb stating what the link is all about.
 * 7) Make the other a redirect to said TOC page... which will be listed on/in the  introductory material.
 * 8) Each tutorial should start with a pre-requisite knowledge 'Be familiar with ... Be skilled in lists as links to puruse first before proceeding with the current page; then introductory background/basics material, then exposition and training.

Arrangements and grouping
The philosophy is to put the harder hardcore content creation sections in the group, the simpler get your feet wet topics into the AM&C pages, organizationally speaking. The attempted progression is to introduce material from the very basic to elementary, to intermediate to advanced in measured doses of knowledge and interleave Windows, CM, Driver and Surveyor skills building topics and Howto in a natural way for newbies to assimilate gradually. For example, AM&C will have a big block of pages on using various tools (asset management) with Trainz needs (error fixing, graphics programs, screenshot management, some batch file techniques and better editors than Notepad!) Don't want newbies to run into the pages with this header right off the mark! TRScc-top There will be a (long planned, half worked-out) progressive tutorials 'challenges' set of threaded skills building tutorials (which I outlined 14 months ago now!) once I get enough polish into the existing pages. Now that I'm comfortable the linking templates will keep things grouped properly, the copyediting and revisions and relocating pages to sub-TOCs will go fairly quickly, I hope. The basic topics of the old Wikibook revised, and augmented pages added (e.g. CM and DLS and Driver as well as others now begun as expandable stubs) I can finally begin putting up the progressive programmed instruction tutorials I envisioned last June!

Progressive scheming
These will start with intro to Driving, and snooping using surveyor to study a route before driving it. Then pop over to CM and a first download or two including one route I've targeted as a place a pair of consists, intro to adjust the properties, intro of setting surveyor bookmarks, finishing with a twin Driving challenge. Next, probably a sidestep into some asset fundamentals and a carefully chosen asset or three to use as an error fixing experience, with another targeted route download. Progress then into that selected route and it's session to use as a modify in this way to achieve this goal (e.g. take old dead stations and replace them with interactive industry types, replace scenery with industries, modify track and terrain to add portals then signals and switches validation eventually segue off that surveying into a basic driver commands and session editor primer, do some session writing and industry and portal setup, then drive it whilst dodging the AIs. Point is that will be a fun series of thought provoking sequences of tasks and that method can be repeated with more advanced knowledge and techniques to build skills in a module by module way. We'll be back stopping that with Video clips demonstrating the same modifications in the tasking—in fact, probably do those first, and take screenshots with some voice coaching as we go. We can use the stills as stopping points for the students to catch up. I did that particular modification one morning last summer as a demonstration in about 40 minutes, including adding a board, shaping it's terrain to blend with the base route, and get four portals and switching and signals integrated. It'll take a newbie closer to two or three hours I'd wager.

Wikibook tool kit
If you poke around in the few pages I've had time to edit since May, you'll see I have a pretty good system of organizing and linking sections in place (and working!) using templates TL, TA, TC, TG, TN, TR and TBS. Also a family of header and footer templates which enable flexible title bar headers with navigation, a threading template (difficult to know which pages lead to the next so mostly unused so far), and a notations lookup page (links above! Why I stuck that in, in fact. Haven't heard from you since we last Skyped, IIRC) to go with the glossaries to go with beginner help links to hotkeys. (Introductory and Fundamentals pages can display that automatically along with a couple of common main title mixes (Fundamentals + References is the most common--See Content Manager and Download Station stubs for a look). Oh, Yeah, stub templates for section and incomplete pages, plus an Trainz underconstruction template for very rough pages, and complimentary tracking categories to track what pages still need a lot of TLC! There's even a stealthy template  to insert inline to assert the Category:Trainz pages needing attention which is common to all the pages with unfinished business.

Commons prepped for images
Similarly on the Wikimedia commons I've set up a set of licensing templates for Trainz related images. commons:category:Trainz templates (I need to refine the help on some still, been some months since I've been able to devote regular time to wiki work.)

Just answer here and I'll check back. I'm going to email a few Yz-Tz members who expressed the most interest in tutorials to peek here and comment as well. I'm pretty much ready for cross-pollenation ideas and some help! Especially the later.

Best regards, Frank

title: User talk:Johnwhelan


text:
Template:MIRC Scripting/TOC/Advanced

3. Advanced Subjects
 * Agents
 * Sockets
 * Custom Windows
 * Planned advanced topics: DLLs, COM Objects, and Error Checking and Handling.

Usage
Really only needed on the Title Page.

title: Template:MIRC Scripting/TOC/Advanced


text:
File:Msedit2.jpg

Licensing
/Images

title: File:Msedit2.jpg


text:
MIRC Scripting/Basics/Become Familiar with mIRC

Before beginning mIRC scripting, you should get to know mIRC a bit better and make sure you have some basic knowledge under your belt.

 * Do you know how to use basic commands, join servers, and chat?
 * Can you tell what a command is and how to identify one?
 * Do you know what most of the options in the options dialog are for?
 * Do you know what the command line is?
 * Have you ever used the script editor before? Can you find it on the toolbar?

If you can't do any of those first four, then you should do so now. If you aren't doing step one, well...you should not be here. You should be learning how to chat, first. If you need help with the last item, read the section below.

Getting to Know Your Script Editor
First things first: locate the button on your toolbar that looks like a paper scroll with a green dot on it. This is the script editor toolbar button. If you can not find the button or don't have the toolbar open, push Alt+R on your keyboard. Look at the window that opens. It is a fairly simple window. You should see a menu bar, a tab bar, a lone button with a checkmark, the OK/Cancel/Apply buttons, and some information about the script. Let's digest this step by step.

The Main Body of the dialog
Every tab on the tab bar has the same three items, no matter what. A menu bar, a text area, and three buttons. The OK button saves changes you've made and closes the editor. The Cancel button saves nothing and exits. If you have made changes, it will ask you to save them. Apply saves changes but doesn't close the editor.

The Tabs
Each tab has three things. A large text field where you enter your scripts, tab specific menu commands (if any; see section The Menu Bar), and text containing file information. The text on the left tells you which file you are viewing. The other side shows your text position and the file size. The text position is in the format character:line/total lines. So if it reads 12:15/40, you are 12 characters into the 15th line out of 40 lines in the entire script. This is really helpful only in very large scripts several hundred lines long when trying to find errors on a certain line. Nonetheless, it is always there to look at.

 * Aliases - This tab is for aliases, commands that stand for one or more other commands. An example of an alias would be: hello msg $active Hello, I'm $me $+ .
 * Popups - The popups section contains custom popup menus.
 * Remotes - The bulk of the time you spend in the script editor will be here, in the remote section, where remote events are placed.
 * Users - The users tab contains user levels for restricting remote event access.
 * Variables - The variables tab stores the values of global variables made using the /set command.

The "Bracket Check" Button
One notable mention on the tab bar, besides the tabs, is the lone button with a checkmark on it. This button is incredibly useful. In mIRC scripting, chances are when a script has an error, there is a missing opening or closing brace (the { and } are what we call "braces" or "brackets"). This button will check them and let you know if you have a bracket error.

The Menu Bar
The menu bar is the bar at the top of the screen just under the title bar. There are six menus: File, Edit, View, Listen, Options, and Help. Most of the important script editor functions can be found here. There should be a lot of commands familiar to computer users, such as Save, Open, Undo, Cut, and Paste, but we'll go over everything anyways. You don't have to memorize these, but it's worth a quick read. You can also come back here any time and reference this if you are unsure what a menu item does.

 * File
 * New – Creates a new script file. This command is disabled in the Popups, Users, and Variables tabs.
 * Load – Load a new script file into the current tab.
 * Unload – Unload a script file from the current tab. This command is disabled in the Popups, Users, and Variables tabs.
 * Save – Save changes to the current script file.
 * Save As – Save changes to the script as a different file.
 * Save All – Save changes to all script files under a tab.
 * Order – Change the processing order of the loaded scripts. This command is disabled in the Popups, Users, and Variables tabs.
 * Font – Change the style and the size of the font used in the editor here.
 * Save and Exit – Save your changes and exit the editor.

 * Edit
 * Undo – Undo the last changes you made to a script.
 * Redo – The opposite of undo.
 * Cut/Copy/Paste – Cut removes selected text in a script, and copy makes a copy of it. Paste puts that text back in the document.
 * Delete – Deletes selected text, if any.
 * Select All – Selects all text on the page.
 * Check Brackets – Serves the same function as the check brackets button. This command is disabled in the Users tab and not available in the Variables tab.
 * Sort Variables – Alphabetically sorts all your global variables. This command is not available in the Aliases, Popups, Remote, and users tabs.
 * Goto line – Go to any line in the script.
 * More Files – If you have a lot of script files loaded, this command will show you a whole list of them to view. This command is disabled in the Popups, Users, and Variables tabs.
 * Find – Finds whatever text you enter wherever it shows up in the script. It always goes down from where your cursor is, so for best results, move to the top of the script before searching. If nothing is found, you'll hear a ding.
 * Find Next – Find next is identical to Find, except it finds the next occurrence of text. Again, if nothing is found, it will make a ding.

 * View
 * The View menu is a special menu. It doesn't have a set list of commands for every tab, (except for the Popups tab). Four of the tabs simply have a list of script files loaded. The Aliases tab shows a list of alias files, and the Remote, Users, and Variables tabs show a list of remote scripts. However, the Popups tab is a special case. It has five options: Status, Channel, Query, Menu Bar, Nicklist. The Status, Channel, and Query popups all open in their respective windows when you right-click. The Nick List and Menu Bar popups each alter the menus that show up when you right-click on the nicklist or Menu Bar.

 * Alias – Only appears on Aliases tab.
 * The Alias menu shows you a list of aliases you have entered alphabetically.

 * Popup – Only appears on Popups tab.
 * The Popup menu is loaded with whatever popup you are viewing.

 * Listen
 * This menu lets you change the settings for what events to listen for. You can listen for CTCPs, remote events, and raw events.

 * Options
 * Initialization Warning – A fairly annoying option that pops up a warning box when you load a script that has an On START or an On LOAD event that wants to execute code. As a general rule, you shouldn't be running code you don't understand anyways, so turning this off would be helpful.
 * Ask to Save Files – If you try to close the script editor after you've changed a script, this will ask you to save if turned on.
 * Backup File on Save – Quite self-explanatory, this will make a backup file when you save the script.
 * Show on Desktop – This will make the script editor appear on the taskbar and as its own window, instead of being a child window of mIRC.
 * Always on Top – Another self-explanatory option, this will keep the mIRC Script Editor on top of all other open windows.
 * Default Level: x – The default level to use in an event when * is the event level, such as On *:Start:. You probably should NOT change this, as the default level of 1 works fine and it will most likely screw up a script using a * level.

 * Help
 * Contents – Opens the help file contents page.
 * Search – Search the help file for certain keywords.
 * Topic-specific help – Clicking on the items below Search will open the help file to a certain page depending on what you clicked on. Available topics are Aliases, Commands, Identifiers, If-Then-Else, Popups, Remote, and Variables.


text:
User talk:203.10.121.83

Wikijunior:Ancient Civilizations/Khmer
If you have a question or comment about a page, please go to the discussion page rather than putting the question into the page itself. Thanks! Νεοπτόλεμος ( talk | email | contribs ) 01:00, 19 March 2008 (UTC)

title: User talk:203.10.121.83


text:
Celestia/Celx Scripting/CELX Lua Methods/Celx vector

= Celx Scripting: Vector =

vector
A "vector" object in Celestia is a 3-tuple of double precision floating point values, which represent a geometric object that has both a length and direction [X, Y, Z] in a 3 dimensional coordinate system.

Within a CELX script, the vector methods need to be prefixed with the obtained "vector" object, separated with a semicolon.

The following methods can be used to obtain a "vector" object:
 * Using the celestia:newvector method.
 * Using the position:vectorto method.
 * Using the vector:normalize method.
 * Using the rotation:imag method.
 * Using the rotation:transform method.
 * By subtracting two "position" objects.

Notes:
 * 1) Vector components (X,Y,Z) in Celestia are stored in millionths of a light year. So when you have your own vectors defined in km or miles, you have to convert these vectors. Therefore, you can use a constant, which must be initialized first within your script:
 * 2) * From km to millionths of a light year, use a constant uly_to_km = 9460730.4725808.
 * 3) * From miles to millionths of a light year, use a constant uly_to_mls = 5912956.5453630.
 * 4) Next you can convert km or miles to millionths of a light year as follows:
 * 5) * millionths_of_a_light_year = number:km / uly_to_km
 * 6) * millionths_of_a_light_year = number:miles / uly_to_mls

Operators
"Vector" objects can be added and subtracted from each other. It is also possible to add a "position" object with a "vector" object, or subtract a "vector" object from a "position" object.

 * position + vector → position
 * position - vector → position
 * vector + vector → vector
 * vector - vector → vector

Scalar multiplication with "Vector" objects:
 * number * vector → vector
 * vector * number → vector

The * operator gives the dot product of two vectors v and w:
 * v * w = v.x*w.x + v.y*w.y + v.z*w.z → number

The ^ operator gives the cross product of two vectors v and w: The new vector is perpendicular (according the right-hand rule) to the plane containing the two input vectors Be careful when using this: ^ is normally the exponentiation operator in Lua, and thus has higher precedence than almost any other operator, including unary minus.
 * v ^ w = [(v.y*w.z - v.z*w.y), (v.z*w.x - v.x*w.z), (v.x*w.y - v.y*w.x)] → vector
 * v ^ w = - w ^ v

Members
You can access and assign the x, y, and z components of a "vector" object directly, e.g.

vec = celestia:newvector(0, 0, 0) vec.x = vec.x + 1

Methods
This chapter contains a list of all available vector methods, which can be used on "vector" objects.

getx
number

Return the X coordinate of the vector as a number.

Example: Get a vector giving the heliocentric position of the Earth and display the X-, Y- and Z-components of that vector in the lower left corner of your screen.

now = celestia:gettime sunpos = celestia:find("Sol"):getposition(now) earthpos = celestia:find("Sol/Earth"):getposition(now) heliovector = sunpos:vectorto(earthpos) heliovector_x = heliovector:getx heliovector_y = heliovector:gety heliovector_z = heliovector:getz celestia:print("Heliocentric position of Earth:\nX = " .. heliovector_x ..                "\nY = " .. heliovector_y .. "\nZ = " .. heliovector_z, 10, -1, -1, 1, 6) wait(10.0)

Return to the vector method index.

gety
number

Return the Y coordinate of the vector as a number.

Example: Get a vector giving the heliocentric position of the Earth and display the X-, Y- and Z-components of that vector in the lower left corner of your screen.

now = celestia:gettime sunpos = celestia:find("Sol"):getposition(now) earthpos = celestia:find("Sol/Earth"):getposition(now) heliovector = sunpos:vectorto(earthpos) heliovector_x = heliovector:getx heliovector_y = heliovector:gety heliovector_z = heliovector:getz celestia:print("Heliocentric position of Earth:\nX = " .. heliovector_x ..                "\nY = " .. heliovector_y .. "\nZ = " .. heliovector_z, 10, -1, -1, 1, 6) wait(10.0)

Return to the vector method index.

getz
number

Return the Z coordinate of the vector as a number.

Example: Get a vector giving the heliocentric position of the Earth and display the X-, Y- and Z-components of that vector in the lower left corner of your screen.

now = celestia:gettime sunpos = celestia:find("Sol"):getposition(now) earthpos = celestia:find("Sol/Earth"):getposition(now) heliovector = sunpos:vectorto(earthpos) heliovector_x = heliovector:getx heliovector_y = heliovector:gety heliovector_z = heliovector:getz celestia:print("Heliocentric position of Earth:\nX = " .. heliovector_x ..                "\nY = " .. heliovector_y .. "\nZ = " .. heliovector_z, 10, -1, -1, 1, 6) wait(10.0)

Return to the vector method index.

normalize
vector

Return a normalized "vector" object. A normalized vector is a vector that points in the same direction as the original vector, but with length = 1.

Notes:
 * 1) This method does not modify the original vector.
 * 2) Normalizing a zero-length vector causes division by zero. The result will be a vector of NaNs.
 * 3) A CELX "vector" object is a geometric object that has both a length and direction [X, Y, Z] in a 3 dimensional coordinate system.
 * 4) The vector methods can be used on a CELX "vector" object. "Vector" objects can also be used in other methods, requiring a "vector" object as an argument.

Example: create a vector that points from the actual position of Earth to the actual position of the Moon, with length = 1.

earth = celestia:find("Sol/Earth") moon = celestia:find("Sol/Earth/moon") now = celestia:gettime earthpos = earth:getposition(now) moonpos = moon:getposition(now) vector = earthpos:vectorto(moonpos) n_vector = vector:normalize

Return to the vector method index.

length
number

Return the length of this vector in in millionths of a light year, as a number.

Example: Display the actual distance from the center of Earth to the center of the Moon in km.

uly_to_km = 9460730.4725808 earth = celestia:find("Sol/Earth") moon = celestia:find("Sol/Earth/moon") now = celestia:gettime earthpos = earth:getposition(now) moonpos = moon:getposition(now) vector = earthpos:vectorto(moonpos) distance = vector:length * uly_to_km celestia:print("Actual distance center Earth - center Moon: " .. distance .. " km.", 10.0, -1, -1, 2, 4) wait(10.0)

Return to the vector method index.


text: User talk:202.45.119.131

title: User talk:202.45.119.131


text:
Permaculture Design/Characteristics

These are all common characteristics that you will find in Permaculture systems. Each system will be unique as the conditions of climate, soils, aspects, culture, time & energy resources will guide its design & development

 * Small scale land use. By using the least possible area, marginal land is preserved in, or returned to, natural ecosystems.
 * Diversity of species & cultivars (types of plants) yields, microclimates, habitats, functions social roles & work.
 * Interweaving of agriculture, animal care, forestry, aquaculture, (water food systems), wilderness management, foraging, economics, culture, & land form engineering (such as dams).
 * Use of wild & domestic plants & animals. Rare, endangered & indigenous are included.
 * Uses the natural ways of plants, animals & their relationships to the characteristics of landscape to create environmentally safe sustainable agriculture. This means energy & biological resources including water & soil, are conserved rebuilt, self-regulating & self- repairing.
 * Long ~ term sustainability. Permaculture systems can be designed to adjust to environmental changes.

To sum it up in a few words:

 * Diverse
 * Interwoven
 * Multi layered
 * Conservative (of resources!)
 * Self-regulating
 * Self-repairing
 * Low inputs
 * High yields

title: Permaculture Design/Characteristics


text:
Permaculture Design/Designer's checklist

Designers Checklist for Otago Polytech Permaculture Design Course 2008 compiled by Peta Hudson (Edited version)

Your needs & resources are unique & important considerations, such as time available, physical ability, money, broad goals & dreams. If this step is missed out the design will most likely not work!

Base Plan
Draw up a scale plan of everything that is on the land you are working with. This includes all structures, paths, vegetation (record whether it is evergreen or deciduous), power lines & boundary. Leave a good - sized margin for the recording of the sector analysis.

Observe & record
Start keeping a journal & keep it going to record the changes & your responses. Ideally best done over a period of time to experience the changes each season brings. The skill of observation is a primary tool of Permaculture design. It enables us to gather info to start to see relationships & correlations between elements & so to develop strategies & evolve site plans. We get in touch with the land & all it offers.

 * Watch for the comings & goings of birds & insects. When are they around? What are they doing? Identify them & find out about their life cycles. This info will aid you greatly to design in good biological balance.
 * Look at the weeds/plants/trees. Wind shearing indicates strong prevailing wind. They can also tell you of soil types & moisture levels. Light levels & microclimates. Plants won’t grow where it doesn’t suit them!
 * Look more closely at the structures you have mapped. What resources do they provide? Water catchment, shelter from wind, thermal mass, light reflection, greywater, kitchen scraps? What microclimates to they provide?
 * Check out the resources you can find within & without the boundaries of your land. List them all. For example lupin bush, gorse & broom provide nutrients & can be cut before flowering & laid as mulch around trees & shrubs or composted in a slow composting system. Rocks, bricks, tin, wood, lawn clippings, branches to prune are all resources.
 * Off site ~ materials from the verges (includes propagation material), organic material from cafés, restaurants, sawmills, gardening business’, organisations for shredded paper, vacant lots, the “tip shop”. People for help in various ways, markets for income

Resources
Check out the resources you can find within & without the boundaries of your land. List them all!Off site ~ materials from the verges (includes propagation material), organic material from cafés, restaurants, sawmills, gardening business’, organizations for shredded paper, vacant lots, the “tip shop”.

Sector Analysis
Record all the incoming & out going energies affecting the land ~ winds (are they strong & cold bringing rain/ hail or hot & drying?) & what direction they come from & when. How does the sun move from season to season? How water moves on &/or off the land. Which direction would fires/floods come from? How does the surrounding landscape affect your plot? Do you have rain shadows, steep slopes which speed the winds up? Where are the views &/or noise pollution coming from? Are there any existing wildlife corridors? This knowledge enables us to harness, modify or enhance the energies. It also helps us to plan zone placement & the placement of many elements.Elevational planning looks at your site in profile which is useful when assessing slope.

Data Overlay
Lay transparent sheets of paper over the base map/sector analysis on which are mapped the info on soils & micro climates you collect. It is a way of building up a picture of your plot. Aerial/topographic/cadastral maps can be useful too especially if you have a large area as they can, at a glance, give options not easily seen from the ground. They do lack detail & conditions may have changed since they were made e.g. pollution.
 * Elevational planning looks at your site in profile which is useful when assessing slope & aspect which affect airflows & can aid the flow of energies including yours.

Micro climates
Here’s an exercise you can do to gather info about the various micro climates, go to different areas of the land & close your eyes. Use all your senses. Your skin will pick up subtle temperature changes & air movements. Feel the soil beneath you for moisture, texture, mulch & temperature. Squat as well as stand & move around. Plants can be smaller than you! This info will enable you to use these areas & enhance/modify them if necessary.

Soils
Take a spade & go over your plot digging down to the spades depth. This will give you a basic idea of some of the different soil types you will be working with. You need at least 30cm of good topsoil to enable healthy plants to grow. Some deeper rooted plants/trees/shrubs will require more.

Analysis
This tool enables you to create the beneficial relationships that are central to good Permaculture design. It leads to a great deal of creation! These relationships echo those you find in Nature. The principles of “co-operation not competition” & “observe & interact” apply here. Take an element that you want in your design. Look at all its needs & what it gives ~ eg. a pond needs: shelter from wind, some sun, a water source/catchment, plants, fish, and aeration. It provides extra humidity & light to the area surrounding it, moisture to the edges, thermal mass (holds heat & radiates it out in the evening), food & beauty. Its needs will be met, if placed in good relationship to other elements & in return their needs will be met by it. Look at other elements that you have or need, in the same way & see how you can place them so that their needs & yields are met by each other. Cycles of energy are enhanced & created this way.

Deductions From Nature
Here we look at nature to gain various ideas for strategies. How can we imitate nature? For example native plants on a windy site will have various ways to survive those conditions such as small leaves to reduce moisture loss. We can choose plants with similar characteristics for our windbreaks. Look for differences & ask yourself “why”?

Zone Planning
Even on a small section all zones from 0~5 can be included. See “Earth Users Guide to Permaculture Design” editions 1 or 2 by Rosemary Morrow.Zones are about creating & placing areas of activity in good relationship to their needs & yields. Eg zone 1 is traditionally placed as close to the house (zone 0) as possible, as it needs lots of visits to care for & harvest from it. See yourself as a yield of zone 0.

Flow diagrams
If the land you are working with is already lived on look at how you move across it. How could this change when your design is implemented? Make the pathways multi – functional. You are a flow of energy in a Permaculture system for example you leave the house with the compost bucket & a basket & on the way back from the compost you can collect the eggs, & pick some herbs/vegetables & maybe grab a few pieces of wood or kindling from the woodpile.

Random Assembly
This is a fun way to find some really creative ideas. It breaks up the logical way of thinking!Make two lists of elements & put another list of connecting words(in,on,beside) in between them. Then have fun joining them up randomly!It can take some time to break through the “wanting things to make sense” way of being but some very good relationships, that never would have occurred otherwise, happen.


text:
QEMU/Installing QEMU

Installing from a repository (Unix)
Most GNU/Linux distributions have package repositories that carry precompiled binaries of QEMU. This is a much simpler installation process when compared to compiling it from source. It's often best to use these repositories when installing QEMU, as you can be confident that it will install and run without problems. This table outlines the minimum commands to perform in order to install QEMU from your repository.

If in the event that you can't install QEMU from a package repository, you can go to the QEMU website to download the latest source code and follow the instructions given.

Installing on Windows
If you're hesitant to work with the command-line, there's a GUI front-end called QEMU Manager. However, this program has been abandoned. Its last release (7.0) was in 2010, the creator's website has disappeared, and it doesn't appear to have its source available; this means that (should you use it) you would be stuck with the very old version of QEMU it provides (0.11), causing conflicts with newer builds severely. And if you're looking for an x86 virtualization tool that has a graphical interface, then VirtualBox is recommended.

If you're comfortable with the command-line interface, there are two builders providing downloads of QEMU for use with the command line. One compiles QEMU with Cygwin, and they warn that you need to download MinGW packages as a result. The other is as recent as possible with his builds and doesn't require Cygwin. His builds are linked by the QEMU website.

Building from source
The most surefire way to get QEMU working is to build it from its source. To do so, make sure you have git (and if you're on Windows, get MinGW), and enter the following commands into a terminal/command-line environment:

After QEMU is installed, you may find platform-specific instructions in the documentation.

Native x86 acceleration with KVM
QEMU by itself does a lot of emulation even when running on guest-compatible hardware. To make it perform better, QEMU has a kernel module called KVM that allows much of the guest OS's code to run directly on the host processor when running on x86 or x86-64 processors with virtualisation extensions under GNU/Linux. For example, if the host is x86 GNU/Linux and the guest is Windows XP, then KVM can run most of the Windows XP code directly on the processor without emulation.

QEMU-KVM requires a GNU/Linux or BSD Unix host, and a CPU with virtualisation extensions -- either Intel VT or AMD-V. To determine whether your CPU has this support on GNU/Linux, run the following command from a shell:

egrep '(vmx|svm)' /proc/cpuinfo

If you get nothing back, your CPU does not support the required virtualisation extensions.

Many modern GNU/Linux distros have simple installation processes based on package repositories. It is often best to use the repository approach for installing QEMU-KVM, as you can be confident that QEMU-KVM will just install and run. Here are some common GNU/Linux distros and their QEMU-KVM install commands:

More details are available on the KVM website. If you can't install QEMU-KVM from a package repository, go to the QEMU-KVM website and download the latest source code and follow the instructions given.

title: QEMU/Installing QEMU