text:
Muggles' Guide to Harry Potter/Magic/Fiendfyre

Overview
Fiendfyre is an all-consuming form of fire, that can be created magically.

Extended Description
Harry, Ron, and Hermione are looking for Ravenclaw's lost Diadem in the Room of Requirement when they are intercepted by Draco Malfoy, with Crabbe and Goyle. Knowing that whatever Harry is looking for could restore his family in the Dark Lord's good graces, Draco is intent on taking it from him. In the ensuing battle, Crabbe sets Fiendfyre, but evidently does not know how to stop it, and perishes in the flames.

The updraft from the fire does toss the Diadem up in the air, and Harry, then riding a broomstick, is able to catch it while making his escape.

Analysis
It is noted that the flames make the shapes of a number of vicious magical creatures, presumably this is part of the reason for the name of the spell. We don't see the spell being cast; and in fact we have no way of knowing why Crabbe would have used this spell anyway as its purpose seems purely destructive.

It should be noted that a Horcrux, as we learned in the early part of this book, can only be destroyed by more than ordinarily magical means. For instance, Basilisk venom, for which the only known antidote is Phoenix tears, is not something that can be cured by ordinary means. Basilisk venom has been used to destroy all of the Horcruxes found to date; the Diadem was destroyed by simply bouncing around in the flames of Fiendfyre for a short while. This is a clear indication that Fiendfyre is not an ordinary magical form of destruction, but is unusually powerful in its effects.

Questions

 * 1) The characters seem to imply that there would be a method to stop Fiendfyre, though neither the Trio nor Crabbe has learnt it. Hermione, on account of its danger, never even considers it as a method against Horcruxes, at a time when they know about no other thing in their reach that will do the trick. Precisely how dangerous, then, is Fiendfyre?


text:
User talk:Joshford

Welcome to Wikibooks, Joshford!

Image:Magneticdisk.jpg is missing license or source information

 * Please check all your uploads. – Mike.lifeguard  | talk 21:34, 20 May 2008 (UTC)

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

title: User talk:Joshford


text:
User talk:87.70.84.101

(Red4tribe (talk) 19:28, 16 May 2008 (UTC))

title: User talk:87.70.84.101


text:
Talk:Chess/Algebraic notation

Isn't it possible to use for example, Nf3 instead of Ndf3?

It does not say what to write in an en passant. Ottsco (discuss • contribs) 18:31, 20 August 2012 (UTC)

title: Talk:Chess/Algebraic notation


text:
User talk:222.153.74.130

Thank you for contributing to Wikibooks. I notice you have changed the ingredients for a recipe from 4 ounces to 100g. I have to agree with you that it is much better, more accurate and of more use to use the metric system for these measurements but it seems to be Wikibooks policy to use both systems when necessary. A book can use American measurements (imperial) or it can use World measurements (metric / standard) or it can use both but it is considered bad practice to remove one form of measurement for the other. I have changed your edit so that the American measurements are given in brackets. --ЗAНИA talk 20:31, 16 May 2008 (UTC)

title: User talk:222.153.74.130


text:
XML - Managing Data Exchange/AJAX

AJAX is nowadays one of the most common used words in the WEB 2.0 era. While the historic remains of it are not really clear (similar logic to manipulate parts of a webpage was already thought of as DHTML, long before the term AJAX existed and suprisingly even using some type of DOM later on) it is now one of the most important technologies used by modern webdesigners. But what does AJAX mean? - In short, AJAX stands for Asynchronous JavaScript and XML. It describes a concept of asynchronous data transfer (here: data encapsulated in XML) between the client (usually a webbrowser) and a server to only exchange/ alter a part of the webpage without the need of a full pagereload. That means the browser will issue an XMLHttpRequest in the background and receive only a part of the page - usually tied to one or more html-tags holding uids.

The following are the main components of the Ajax programming pattern. JavaScript - The most popular scripting language on the Web and supported by all major browsers. Ajax applications are built in JavaScript.  Document Object Model (DOM) - Defines the structure of a web page as a set of programmable objects. In Ajax programming, the DOM allows us to redraw portions of the page. Cascading Style Sheets (CSS) - Provides a way to define the visual appearance of elements on a web page. XMLHttpRequest - Allows a client-side script to perform an HTTP request, effectively eliminating a full-page refresh or postback in Ajax applications. XML - It is sometimes used as the format for transferring data between the server and client, but other text-based formats work as well.

Ajax offers a number of advantages. Some of the most important are listed below. Lower demand of bandwidth: The fact that it is not necessary to re-load a page completely when additional information is requested allows minimizing the data transfer. The demand of bandwidth is also reduced by producing HTML locally within the browser (note: however as we have additional overhead produced by the embedding of the JavaScript this is only true in case of more than one or two pagerequests from the same site). Browser plug-in not necessary: Ajax runs with every browser which supports JavaScript. There is no additional plug-in needed. This is an advantage over technologies like Shockwave or Flash (note: in some cases however it is possible that some browsers behave different; especially IE prior to version 6 is known for odd behaviour).

Separation of data and formats: This allows the web application to be more efficient. Programmers can separate the methods and formats for delivering information over the web. So they can use a language they are familiar with (note: the reason for this is CSS and not AJAX).

Websites more user-friendly: Because of the minimized data transfer the response to the actions of the user is much faster. Furthermore interfaces built with Ajax can be more user-friendly (note: however, AJAX without fallback to plain-vanilla HTML request-response cycle is infamous for being a big drawback to barrier free web design).

Classic RequestResponse vs. AJAX Cycle
As you can see in the image, the AJAX cycle embedds an additional JavaScript library into the client side. The JS lib therefor is used to communicate with the server (in case the AJAX is in use) as well as manipulating the HTML page it is embedded on. For a small example well now take a look at a so called AutoComplete (we take a look at basic procesing there and skip the detailed JS-DOM manipulating). The traditional approach on the other hand allways requires a full request-response cycle that sends the whole page from the server to the browser.

A Simple Example: AutoComplete
This example shows a simple AutoComplete textfield from the wicket examples (wicket is a component oriented JavaWebFramework under the hood of the ASF - http://wicket.apache.org/). The example is online live here so you can not only follow the code but rather see it live in action.

The idea behind an AutoComplete textfield is to aid users by showing useful possibilites during the filling of the field. Imagine you are at amazon.com looking for a product "foo" and you fill it into the search bar just to find out that it doesnt exist after submitting it - with an AutoComplete aware field you would already have known that after some letters. To have an easy example we now will look at a single field where you can enter the names of countries like "England", "Germany" or "Austria".

The HTML behind it is rather easy (the necessary JavaScript is automatically provided by wicket; similar to what pure JS libs like prototype do; you could of course provide your own implementation, even if this would not really make sense):

... header containing CSS + HTML-head left out... The textfield below will autocomplete country names. It utilizes AutoCompleteTextField in wicket-extensions.

<form wicket:id="form"> Country: <input type="text" wicket:id="ac" size="50"/> ...footer left out...

So we currently only got a simple form holding a plain. The "wicket:id" is only for tying it to the Java code and has no impact on AJAX (in fact in production mode it will be stripped out).

The Java is also not too complicated:

So we see here a plain page that gets a Form attached. That Form on the other side holds an Ajaxified version of a TextField. The protected Iterator getChoices(String input) is called after hitting a key (entering some value into the field by using your keyboard) by an AJAX call (we see this later) - meaning this function is the representation of the business logic for the AJAX. Here we only check if we already have sth. entered (user may delete sth.) and if it is, then if there are countries existing that start with the already entered letters (e.g.: if you enter Aus it will find coutries like Austria and Australia).

The resulting WebPage will be this:

So we now got our html decorated with a bunch of JS resources (holding the DOM parser, transformer and so on) as well as a JS behaviour to our field using the onchange="..." JS method.

If you now start entering some chars like "au" into the field, the onchange event is triggered and will call the wicketSubmitFormById method issueing a call to the server and receiving XML:

1 INFO: focus set on i4 2  INFO: 3 INFO: Initiating Ajax GET request on ?wicket:interface=:1:form:ac::IActivePageBehaviorListener:1:&wicket:ignoreIfNotActive=true&q=au&random=0.9530900388300743 4 INFO: Invoking pre-call handler(s)... 5 INFO: Received ajax response (85 characters) 6 INFO:

Austria

Australia

 7 INFO:

In line 1 the focus on the field (here with uid i4) was set. After we entered "au" into the field in line 3 an AJAX request to the server is issued. Line 4+5 illustrate the pre-call handlers and the receiving of the AJAX response. Line 6 displays the already decoded content of the response, holding a
 with the 2 expected countries that are starting with "au" and that are now placed by the JS header libs at the appropriate place on the page.

You now have seen a small, simple example in the big world of AJAX. To really understand it you should watch and use it live (dont forget to hit the "wicket AJAX debug" link on the right lower corner, so you can see the communication). Under http://wicketstuff.org/wicket13/ajax/ you'll find plenty more running examples all with code.

title: XML - Managing Data Exchange/AJAX


text:
User:Mcgyver5

rank amature

title: User:Mcgyver5


text:
Talk:Romanian/Lesson 3

Untitled
My advice for Wikibooks is that they be more than just phrases, in order to be more useful. Grammatical forms are good to practice phrases with, but perhaps that's not the way this is set up. At least, I suggest that the creator of lists adds some exercises so that students may practice the phrases. Even if we do not add exercises, which at the inefficient level of information may not even be very useful, a way to improve phrases themselves is to turn them into actual usable sentences or parts of sentences, not just individual terms which will obviously already require great knowledge of the language. Therefore, instead of just "bus stop", the phrase might be "Where is the bus stop?" or something to that effect.

I added some of what I was suggesting; however, I am not proficient in Romanian, so I appeal to those who are. P.S. If anyone has found these additions helpful, please let me know. This is based on what works for me and in theory, but feedback is good. --Tlaxcalli (talk) 00:57, 17 May 2008 (UTC)

title: Talk:Romanian/Lesson 3


text: User talk:76.167.73.32

title: User talk:76.167.73.32


text:
User talk:24.192.142.107

Please help improve Wikibooks.

Recent edits you made have not been considered constructive by your fellow contributors. Please use the sandbox in the future if you wish to test something out. For a description of the type of content that we do allow, see WB:WIW. If you have questions about this, or need help, ask at the Reading Room Assistance page. Thanks. (Red4tribe (talk) 23:57, 16 May 2008 (UTC))

title: User talk:24.192.142.107


text:
User talk:68.82.216.178

(Red4tribe (talk) 00:01, 17 May 2008 (UTC))

title: User talk:68.82.216.178


text:
User talk:74.194.157.69

(Red4tribe (talk) 00:18, 17 May 2008 (UTC))

title: User talk:74.194.157.69


text:
C++ Programming/Code/Standard C Library/Time&Date

Standard C Time & Date
This section will cover the Time and Date elements of the C Standard Library.


text:
C++ Programming/Code/Standard C Library/Functions/asctime

asctime
The function asctime converts the time in the struct 'ptr' to a character string of the following format:

day month date hours:minutes:seconds year

An example:

Mon Jun 26 12:03:53 2000

 * Related topics: clock - ctime - difftime - gmtime - localtime - mktime - time


text:
User talk:4.166.3.140

(Red4tribe (talk) 00:37, 17 May 2008 (UTC))

title: User talk:4.166.3.140


text:
Talk:K-12 School Computer Networking

Hi! Your subpages should follow some naming convention which include the book title. Using subpages that would be "Booktitle/Chapterdescription". See Naming conventions and the current discussion at Hierarchy naming scheme. You can move pages with the "move" command on top of every page once you are logged in. If you need help with any of this, please let me know and I will be glad to pitch in when I can. --Jomegat (talk) 04:16, 16 May 2008 (UTC)
 * I've fixed them. Νεοπτόλεμος ( talk | email | contribs ) 00:42, 17 May 2008 (UTC)

title: Talk:K-12 School Computer Networking


text:
User:Tlaxcalli

Despre mine / About me
Because I have edited page(s) about the Romanian language, I must say that I am by no means fluent in the language. However, I have studied it to the intermediate level, and I have my own interests in promoting the language online. Also, an excellent book which gives me ideas is called Îmi place limba română by Boţoman, Corbin, and Walters - for beginner-intermediate learners.

I have studied several languages, mostly independently and online, and I am currently pursuing my Bachelor's degree in Linguistics. Therefore, I hope you can expect of me fairly high quality contributions. Nevertheless, I can only promise so much as a non-fluent speaker of a given language.

Best, --Tlaxcalli (talk) 00:54, 17 May 2008 (UTC)

title: User:Tlaxcalli


text:
User talk:Tlaxcalli

Welcome to Wikibooks, Tlaxcalli!

title: User talk:Tlaxcalli


text:
User talk:67.201.216.195

(Red4tribe (talk) 01:13, 17 May 2008 (UTC))

title: User talk:67.201.216.195


text:
User talk:86.32.67.38

(Red4tribe (talk) 01:41, 17 May 2008 (UTC))

title: User talk:86.32.67.38


text:
User talk:125.254.70.112

(Red4tribe (talk) 02:20, 17 May 2008 (UTC))

title: User talk:125.254.70.112


text:
User talk:Tterrill

Welcome to Wikibooks, Tterrill!

K-12 School Computer Networking
The page you recreated was moved here. Νεοπτόλεμος ( talk | email | contribs ) 02:48, 17 May 2008 (UTC)

title: User talk:Tterrill


text:
Dutch Empire/Later Wars

The residence of the Plymouth settlers in the Netherlands, and the later conquest of the Dutch colonies, had brought the Americans into contact with the singularly wise and free institutions of the Dutch.

Nine Years War
In 1686 the Dutch joined The League of Augsburg along with Portugal, Spain, Sweden and the Holy Roman Empire. The goal of the alliance was to resist growing French aggression in Europe. France had expected a benevolent neutrality on the part of James II's England, but after James's deposition and replacement by his son-in-law William of Orange, Louis's inveterate enemy, England declared war on France in May of 1689, and the League of Augsburg became known as the "Grand Alliance", with England, Portugal, Spain, the United Provinces, and most of the German states joined together to fight France.

At the start of the War, the French had enormous success especially in the Spanish Netherlands. They began to push into the Spanish Netherlands, until they were finally stopped at the Battle of Walcourt. The French quickly recovered from their defeat with a victory at the Battle of Fleurus. The French were also successful in the Alps in 1690, with Marshal Catinat defeating the Duke of Savoy at the Battle of Staffardand occupying Savoy. The French were also successful at sea in 1691, defeating an Anglo-Dutch fleet at the Battle of Beachy Head. The French followed up on their success in 1691 with victories Mons and Halle. Also at this time the French continued their advance into Italy. The Dutch and English, very worried about Frances success, attempted to drive the French out of the Spanish Netherlands but were defeated at the Battle of Steenkerque in 1692.

Despite astounding French success on continental Europe, they were less successful in Ireland. An Army comprised of mostly Dutch troops under the command of Godert de Ginkell, defeated the Irish and French troops at the Battle of Aughrim, which resulted in the surrender of the French and Irish troops in Ireland.

French success in the seas would soon end. After an Anglo-Dutch victory at Battle of La Hougue the French lost control of the Channel for good. The allies were now free to make full use of their own, to harass the French coast, to intercept French commerce, and to cooperate with the armies acting against France.

For the next 6 years the Dutch role in the war was very minor. The Treaty of Ryswick was signed on September 20, 1697. In the Treaty the French paid the Dutch a sum of 16,000 pagodas.

War of Spanish Succession
The War of Spanish Succession would be the last war that the Dutch would be a major power in. Spanish King Carlos II.,of the Habsburg Dynasty, died in 1700 and was without a male heir. France wanted to see a new dynasty on the throne. Europe's other powers were interested in both preventing France from extending her influence, and in preventing another long and costly war. In February 1701 Philip of Bourbon, 17 years old and named heir to the throne by Carlos II, entered a cheering Madrid; he was crowned King Philip V. The Austrians, English the Dutch and the Portuguese, stood together against France and Spain. In 1702 the French had occupied the Spanish Netherlands in order to keep it safe for Spain. The Duke of Marlborough, commanding English-Dutch-Danish and Austrian troops, was victorious in the Battle of Blenheim 1704, Austrian forces in the Battles of Ramillies 1706, Oudenaarde 1708, and an Austro-English-Dutch force was also victorious at the Battle of Malplaquet in 1709.

The Anglo-Dutch fleet inflicted major damaged on the Spanish and French navies at the Battle of Vigo Bay.

In 1701 Austria had invaded Lombardy. Over the next six years, with the Anglo-Dutch Navies in control of the Medderteranian, the Austrians would push the French and Spanish troops off Italy.

The peace treaties of Utrecht and Rastatt formally ended the war in 1714. The Spanish Netherlands, for the most part, had gone to Austrian Control, Spain ceded most of its possessions in Italy and Philip V was still on the Spanish throne.

War of the Quadruple Alliance
On August 2, 1718, Great Britain, Austria, France and the Dutch Republic concluded the Quadruple Alliance, formed in order to contain Spain.

Spain began hostilities against the Holy Roman Empire by invading the island of Sardinia, given to Austria by the Treaty of Utrecht ending the War of the Spanish Succession. Shortly thereafter, the Spanish advanced, invading Sicily, which had been awarded to the Duke of Savoy.

The Dutch joined the war in 1719. Spain fared poorly in the war. A French army under the Duke of Berwick invaded the Basque provinces of Spain almost without resistance in April 1719, before being forced back by disease. Meanwhile, British and Dutch fleets captured Vigo and Pontevedra in October, and that same month,Messina surrendered to the Austrians.

Spain made peace with the allies at the Treaty of The Hague on February 17, 1720. Included in the terms of this treaty, the Duke of Savoy was forced to exchange his throne in Sicily for that of the less important Kingdom of Sardinia

title: Dutch Empire/Later Wars


text:
K-12 School Computer Networking/Methodology

Methodology
This section is intended for the students enrolled in the Managing Educational Technology Resources. The list below are the expectations required of each student in terms of writing this book.

 * 1) Each student should write approximately 2000 words for their assigned section. Students may combine into teams, but the total still needs to be a multiple of 2000 per student. A section will in most cases be a single topic, but it may be several shorter topics. Please send the instructor a copy of your content via email.
 * 2) Each 2000 word section should include at least one image or diagram. As with all content, all materials must comply with Wiki Books standards.
 * 3) Each 2000 word section should have the below listed types of references. In all cases, the student should pick references that are relevant, authoritative, and will be likely found by readers months and years later.
 * 4) Two traditional references
 * 5) Two references to non-traditional sources, such as to Wikipedia.
 * 6) Two links to external sources of relevant help, such as a resource web site or blog.

While knowledge of wiki editing is not a stated objective of the assignments, it is a valuable skill to know and will enhance the presentation of the content.


text:
User:Ludmila&Konstantin

fgdfxgd gfg

title: User:Ludmila&Konstantin


text:
Talk:Choosing High Quality Children's Literature/Poetry

Do not eliminate the poetry chapter. It is fine

Oral English
I find phonetic sounds difficult to pronounce. Kenweed Tomat (discuss • contribs) 16:14, 17 April 2021 (UTC)


text:
Template:Chess Opening Theory/Table

For explanation of theory tables, see theory table and for notation, see algebraic notation.

title: Template:Chess Opening Theory/Table


text:
Talk:Parkour/Basic Moves/King Kong Vault

Heck no that is not a king kong vault! It's the same as a monkey vault just you take a huge leap before the object then do a monkey vault without touching the ground before landing.


text:
Outdoor Education/Definitions

==Definitions== There are many definitions of outdoor education, e.g.,:
 * 1) Outdoor education involves experiential learning in, through, and about natural environments.
 * 2) Knapp stated that Place-Based Education is also known as environmental education, outdoor education, service learning, or experiential education (2005, p. 278).

Key sources for more information about the definition of outdoor education include:
 * Outdoor education
 * Neill (2006) provides a list of definitions of outdoor education.
 * Priest (2004) provides definitions of adventure programming terms.
 * The Definitions project was a year long project of 26 USA Federal Agencies and Non-profit Associations looking at definitions related to environmental education, interpretation, experiential education, outdoor education and related terms.

title: Outdoor Education/Definitions


text:
Talk:Algorithms/Find approximate maximum

Should this be moved to Algorithms/Find approximate maximum? Hoogli (talk) 16:26, 17 May 2008 (UTC)


text:
Trainz/Tutorial for Blender

Newcomers start here
Blender is a complicated professional grade 3d modeling tool which has been used to create static and animated models, [http://en.wikipedia.org/wiki/Yo_Frankie! computer games], and animated, and short films. You can either go directly to Trainz Specific Moving House tutorial below or you may wish to spend time learning to use the software proficiently before attempting to create content for Trainz. There are many sources of information on Blender, including high school and college level courses, forums, and tutorials.

Courses

 * A free high school level course, created by James Chronister, of Central Dauphin High School, in Harrisburg, PA.

 * A free college level course, created by Neal Hirsig of Tufts University.

Sources for help
Besides the official Blender site, from which the software can be downloaded, and at which the user can find forums, and tutorials there are a number of third party sites which offer tutorials or forums supporting Blender. As of first quarter 2013, these include (but are not limited to)

 * Blenderartists.org
 * Blenderguru.com
 * Blendertut.com
 * Blendertutor.com
 * cgcookie.com
 * rab3d.com

Youtube also hosts a number of channels of material by people creating Blender tutorials.

Other Considerations

 * Because Trainz uses phototextures exclusively, users wanting to create content will be well advised to have working knowledge of image manipulation software which is capable of writing image files in jpeg and uncompressed ~.tga formats.

There was a major update to Blender effective with version 2.50, issued in July 2010, which dramatically changed the user interface. Unfortunately, many of the tutorials for Trainz were created with the older interface, and while users well versed in more recent versions of Blender can complete the tutorials, less accomplished users who want to use the older interface can still obtain that version of the software used in the tutorials from the download site.

The first thing you have to do is install Blender. So go directly to http://en.wikibooks.org/wiki/Trainz/Tutorial_for_Blender#Getting_started and follow the instructions on installing Blender and the exporter.

Trainz Specific Moving House tutorial
The recommendation is to watch the video tutorials http://en.wikibooks.org/wiki/Trainz/Tutorial_for_Blender#Video_tutorials_from_Blender.org before attempting the basic house tutorial but it is not essential to do so.

Next you need to create something then export it.

 * /Tutorial to build a basic house:/

 * /Tutorial to build a basic house:2.65 /

To texture this house download  or any version of it such as. You want the texture file from it. Use that file and the texture tutorial to texture the house. It is a 3.25 Mb download so if you don't have a first class ticket you might do better downloading it from TrainzProRoutes.com. The object is called Leopold Lane slate roof with front yard and pavement.

 * /Tutorial to texture a basic house:/

 * /Tutorial to texture a basic house: in 2.65 /

To export the house:

 * /Tutorial to export a basic house:/

 * /Tutorial to export a basic house: in 2.65 /

To convert it into a moving house:

 * /Tutorial to create a moving house:/
 * /Tutorial to create a moving house: in 2.65 /

If we change the shape we can actually get a reasonable basic wagon out of it.

Also please note that Paul Hobbs has three blender tutorials here: http://www.44090digitalmodels.co.uk/

These tutorials cover a lot of material quite quickly and Paul is very knowledgeable.

About this page

 * The intention of this page is to assist people in exporting their Blender creations directly to Trainz using the Blender Exporter for Trainz. Only items that are pertinent to the exporter will be described here. If you are stuck in Blender or have a question about Content Creation itself, then you find a lot of explanations and experienced people under the following links:

 * Blender Documentation

 * Blender Community

 * TRS2006 Content Creation Guide

 * Trainz Discussion Forums

Tutorials:

Video tutorials from Blender.org.
Start with the  then follow with the
 * Blender getting started tutorials

 * Blender video tutorials

 * Blender animation video tutorial View this one to see how to make a roof.

Under the heading Textures is a basic tutorial that will guide you through creating a cylinder in Blender then exporting it as a scenery object and also as a wagon into Trainz. Sample config.txt files for cylinder are available on the DLS. Please do the video getting started tutorials first.

Blender is a big complex product but we only need a sub section of the features for building models for Trainz, so start with the tutorial under Textures then have a look through the getting started videos, especially the interface ones.

Things you may find useful when working with Blender.

Under File is "load factory settings", in Blender it is possible to change the default this one gets you back to sanity.

When texturing with an external .tga file the exporter expects a certain type of texturing. Even if you can see it in Blender it may not export. F6, choose as texture type "Image" and load your image file.

b is box select, ie select everything in the box.

Trainz requires absolute sizes and positioning. Type "N" to bring up a properties dialog so you can type in dimensions directly. Note the name is entered here OB:a.limback etc. You can select or search and select an object in the outliner window / view, then mouse over to a 3d view where you can tab to edit. You may need to experiment in outliner to find the view that lets you select.

Working with four 3D windows above the button window makes sense. If you go into user preferences (click the mouse just below the file add labels and pull them down) click on the view name button each quadrant will be labelled.

Number pad 0 is camera view, the others are 1 3 7. 3 or 3 gives the opposite side etc. 5 changes from ortho view to perspective.

fa: next to the www.blender.org 2.46 gives the number of faces, multiply by 2 to get poly counts. M move the selected item to a different level to see the poly count for a selected item. You can reduce the poly count be selecting unseen faces then deleting them.

F9 brings up the double sided button to turn off double sided texturing.

Use append ()to combine things from two files. http://wiki.blender.org/index.php/Manual/Using_Linked_Libraries

To change the texture file name F6, then change the file name under still.

To pick out an item by name use the outliner.

When creating an animated load note that the first and last frame seem to interact so the highest load should be the frame before last or a wagen with no load may show the high load when empty. Also export with the frame number set to the highest number.

To tile a texture in Blender "Select your plane, press F, press A until all the faces are selected, and then in the UV image editor press A a few times untill everything is selected. Press S and scale it up. That is it... just scale it bigger then the UV texture window and it will automatically tile for you"

The following link shows how to (use) import blue prints into Blender.

http://www.the-blueprints.com/index.php?tutorials/blender/ Importing from GMAX into Blender

The process is:

http://www.44090digitalmodels.co.uk/

first tutorial setting up GMAX.

Page 6 and 7 refer to Tempest game pack this gives you a MD3 export. It also tells you were to download the tempest game pack. If you get desperate I think I have it somewhere. Getting out of GMAX is the most difficult part.

Then go here: https://svn.sourceforge.net/svnroot/...trunk/blender/

copy all the scripts into your Blender script folder.

Import md3.

references:

http://blenderartists.org/forum/showthread.php?t=91838

http://en.wikibooks.org/wiki/Blender...pts/md3_import

 *

Getting started

 * What you need to create content for Trainz with Blender is obviously Blender itself Note 2.49b the version that many Trainz specific tutorials use can be obtained here Blender2.49b and the Blender Exporter for Trainz. The script was developed for Blender 2.45, by Torsten but any later version should work also. To use the Blender Exporter for Trainz, you must unzip the archive and copy the included file trainz_exporter.py into the script directory of Blender. This is normally the folder scripts located in the subdirectory .blender, so if you install Blender on a Windows system using the default path, you have to copy the file trainz_exporter.py from the archive into the folder C:\Program Files\Blender Foundation\Blender\.blender\scripts. On some Blender installations it maybe found in Application Data\Blender Foundation\Blender\.blender\scripts under document and settings, application data maybe a hidden folder / directory in windows which makes locating it difficult sometimes especially on Windows 7 machines where you may have to turn off UAC to reach it. Alternately if you have two different versions of blender installed or have upgraded from one version to the another you will find additional folder in the "\Application Data\Blender Foundation\Blender" location. Open the folder for the current version of blender your using for example "Application Data\Blender Foundation\Blender\2.60\scripts\addons\"

For Blender 2.5 and later you need the exporter at bitbucket also by Torsten bitbucket.org. The scripts that are available for download work with blender 2.65 at the time of this writing.

You also need to copy in the Auran XML importer, needed for Blender etc. http://online.ts2009.com/mediaWiki/index.php5/Downloads then download Trainzimporter.rar

Every time Blender starts it scans this directory and include any scripts found into its menu structure. So if you start or restart Blender after copying the exporter script then you call it using the Blender menu File > Export > Trainz Export. After selecting what you want to export and if no problems occur you find yourself in Blender's file save dialog. Choose the desired location and filename and press Save to finally create the resource file. You should always check the Blender console for infos or warnings, as the exporter only stops at fatal errors.

Help for Blender is here: http://blenderartists.org/forum/

and this thread on the forum contains lots of useful information. http://forums.auran.com/trainz/showthread.php?89501-Blender-Exporter-for-Trainz&highlight=Blender

Blender settings
We are still experimenting with the Blender settings in order to get the best results in Trainz. Nevertheless, the following suggestions should be noted:

 * In Blender it is not possible to set a reference scale for Blender units, unlike in GMAX where we can specify that one GMAX unit equals, say, one metre. In Blender, simply assume that one Blender Unit (BU) is one metre. This is the assumption that is built in to the Trainz Blender exporter. If you want to use imperial units, then you may wish to explore the Blender Mesh Attribute Editor script.
 * If you want to move an object to an absolute position, then change to Object Mode via Tab then press N. The Transform Properties window will appear, then you can enter the values you need. A word of warning, however:,   and   refer to a coordinate in the local coordinate system. These refer to a coordinate in the world coordinate system only if the object does not have a parent. If you have already assigned a parent, then you must enter the location relative to that parent.
 * Not all material properties visualized in Blender will have an effect in Trainz, and some effects achievable in Trainz are unable to be visualized in Blender. Therefore be sure to take a look at your model in Trainz, and do not trust what you see in Blender.
 * Regarding textures: only diffuse, opacity, reflection and normal maps have any effect in Trainz. You can also export meshes that do not have any texture.
 * If your installation folder is on your boot drive and in Program Files, you should also ensure that your temp folders (set in user preferences) are somewhere else or Blender will have problem writing temp files.

Meshes

 * Meshes are the Blender objects you will see in Trainz. You can build your objects by manipulate Blender primitives or even place vertices and create faces. Just keep in mind the following things:

 * center your creation around the point of origin, as Trainz place this point at cursor position when you insert the asset

 * Faces can be double or single sided, in Blender this is a mesh and not a material option. You will recognize the difference only in Trainz, as Blender render faces always double sided.

 * every mesh needs a material; you can use one material for different meshes

 * keep an eye on vertex and face count

 * The Exporter only recognizes meshes which are visible during export. Make sure all objects you want to export are visible and you have selected all needed layers too! There are two reasons for this behaviour: First, nothing will be exported what you not see(maybe a long forgotten test mesh). The second reason is that you can hold big or animated objects in one Blender file and export only the needed parts by changing visibility(here the layers comes into play).

Bones

 * The term bone in this section stand in general for a helper object to build up hierarchical animation systems. It is not related to the subobject Bone contained in Blender Armatures. Up to now, the Blender Exporter only recognizes Lattices as valid bone-objects.

 * Here are two tutorials to get a clue about animation basics in Blender:
 * • Animation do this video tutorial first to understand the basics like where the frame number is.
 * • Next for simple animation such as we use in Trainz do this tutorial.

 * As soon as you want to animate your asset, there is no way around using bones. You can create bones by placing a Lattice(Add > Lattice) and rename it to something like b.r.something as it is described for the bone naming conventions in CCG.

 * Note the animation works by making the bone b.r.rot etc a parent of object then the animation is applied to the bone.

 * If you use bones you need to build up a complete hierarchy, that mean starting from a root bone all other bones or meshes need to be child of this root bone or any subordinated bone. The Exporter will fail if you have loose meshes or bones, because unbound meshes will not shown in Trainz.

 * The root bone should be located at the point of origin and should not be rotated. Best practice might be to place it in top view (Hotkey NumPad 7) and leave it untouched. The root bone also must not be animated; it serves as parent for any not animated mesh within this asset and for any bone which is not driven by/depending on an animated parent.

 * To export bones they must be visible; so watch your Outliner and your Layers.

Attachment Points

 * Attachment points are used in Trainz to attach effects, tracks or even other meshes. To create an AP you have to add an Empty first(Add > Empty). Afterwards place and rotate it like you need and give it a name following the CCG-Rules for APs(a.whatsoever, do you remember? ;)). APs don't need a parent, as this information will get lost during export. To although made animation possible, Trainz use an extended naming schema. Assume you have a bone b.r.john and an AP a.doe. To tell Trainz that a.doe should be animated like b.r.john, you must rename the AP to a.r.john/a.doe. In your config.txt this AP is still to refer as a.doe.

 * What is valid for meshes and bones, is also valid for attachment points: If they are not visible, they will not be exported.

Colors

 * You can manipulate diffuse and specular color in Blender to give the material in Trainz the appearance you want. Both you find at the material panel, Col for diffuse and Spe for specular color:

 * There are two other colors supported by Trainz: ambient and emissive.

 * The ambient color in Blender work different from Trainz and as in most cases ambient and diffuse color will be equal, ambient color is copied from diffuse color during export. The emissive color is used for self illumination in Trainz and not provided in Blender. As things normally have the same color even if lighted or light, the Exporter here also copies the value of diffuse color.

 * If you plan to use textures you should set the diffuse color to pure white, else your textures will appear darker in Trainz than expected.

Opacity

 * Also on the material panel you find the slider for Opacity, in Blender called Alpha(slider A down at the right side). A value of 1 means the material is completely visible, a value of 0 render your material completely invisible. If you use texture maps which also affect the opacity, then better leave the Alpha-slider at its right position as the over all opacity will not be higher then the material opacity.

Specularity

 * Specularity can be adjusted using the Shaders panel. The interesting sliders are Spec (specularity) and Hard (hardness) in the middle of the panel:

 * The Spec ("specularity") slider adjusts the intensity of specular color from 0 (no specular highlight) to 2 (full specular highlight), while the Hard ("hardness") slider adjusts the intensity of the reflected light. A high hardness value gives a hard specularity (imagine glass or an polished surface), whereas a low hardness value gives a dull shine (like asphalt or rough/dirty metal). The hardness range (0 to 511) will be scaled down by the Trainz Exporter to 0 to 128. A hardness value below 4 switches off specularity in order to avoid strange effects in Trainz.

Self Illumination

 * The brightness without to be lighted. You find the slider Emit in the lower right corner of shader panel. The more emissive you order, the more your material glow in diffuse color.

Textures
This is the area that causes the most problems.

This is the simplest case so do it first, once you have this part working you can add complexity.

Right click the image below and save it as. Trainz can use  files but it is much better to convert it to.

Step 1: After starting Blender, delete the default cube. Press Space then create a cylinder of 8 sides. Press N, which displays the Transform Properties dialog.

Step 2: By changing the values in the Transform Properties dialog, you can change the dimensions and rotation of the object. Here the cylinder has been raised by 2 metres by changing  to   and its direction has been changed by setting its   to 90.

Step 3: Press. In the Links and Pipeline pane, select ADD NEW from the dropdown menu that currently displays.

The dropdown menu should now display.

Step 4: Press. In the Texture pane, select ADD NEW from the dropdown menu that currently displays.

The dropdown menu should now display. Select Image from the Texture Type dropdown menu. The Map Image and Image panes will appear.

Step 5: In the Image pane, press Load then navigate to your image file.

Double-click the image file and its name will appear in the second field at the top of the file-select dialog. Press SELECT IMAGE and the image's metadata will appear in the Image pane.

Step 6: Press then navigate to the Map Input pane. Press the UV button to change the map input to UV.

Step 7: Change one of the 3D display windows to UV/Image Editor and press the button immediately to the right of the Image button in order to select the texture file you just loaded.

Step 8: In order to map the texture, we have to unwrap the mesh in Edit mode. Change from Object mode to Edit mode by pressing.

Step 9: Make sure the entire mesh is selected by pressing. Press and select Unwrap (smart projections) to unwrap the mesh.

Accept the default settings by clicking the OK button.

Step 10: In order to edit the UV mapping, click the UV Island select mode button in the UV/Image Editor's toolbar. The button looks like an equilateral triangle with little squares representing the vertices.

Step 11: Move the faces of the mesh into position on the texture map. First, in the UV/Image Editor window, select the eight faces that comprise the lower end of the cylinder. Right-clicking selects one face, and +right-click selects multiple faces in succession. Once selected, position the faces over the orange circle on the texture map. To do this, use the Grab tool (press and move the mouse). If necessary, you can constrain the Grab tool to the x- or y-axis by pressing or, respectively. You can rotate the faces if necessary using the Rotate tool (press ). Scale the faces down to fit inside the circle by pressing then dragging the mouse. Position the faces that comprise the top end of the cylinder on the blue circle of the texture map in the same way.

Scale down the faces of the cylinder's side in order to avoid a coloured dot in the middle.

For a preview of the result, press.

Step 12: Return to Object mode by pressing. Now it's time to export the object to Trainz. Go to the File menu and select Export\Trainz Export (im, km, pm).... Export the object to  to match the sample kuid. Copy the  file, texture file and   file into a scenery object clone such as   available on the DLS. The scenery object should show up in Trainz.

If you don't have the Trainz Exporter script, get it from the SourceForge project page. Copy the script file into.

To create a wagon or locomotive, we need to add attachment points and have a different  file such as   (available on the Trainz Download Station).

First we need to rotate the object so that it sits along the track. In Object mode, press to enter the Transform Properties dialog. Note the  and   values here.

We are going to add more items to the scene and in order to select items easily in Blender we use the Outliner. Select Outliner from the Window type list (first button in the toolbar of the lower window). Bring up the Outliner, then press the View button in the Outliner's toolbar, then select Show Outliner.

Next we add the empty which will become our attachment point.

Trainz expects to see a specific name on the attachment point so we change the  name in the Transform Properties dialog from   to.

In the Transform Properties dialog, change the  value to , the   value to   and the   value to.

We need to add another attachment point for the rear coupler. Duplicate the  attachment point by pressing. Rename the duplicate to. Change its  value to.

We also need to add attachment points for the bogies. Add the following attachment points:
 * with parameters,   and
 * with parameters,   and

If you are using the sample wagon config, you also need to add:
 * with parameters,   and

Now save your work (Name your file 'cylinder') and export the model to Trainz. File/Export/Trainz Export. Copy the cylinder.im file, texture and texture.txt file into a wagon object clone such as  available on the Trainz Download Station. The wagon object should show up in Trainz. Note the sample kuid has two cylinders so if you see one you have been successful.

General
At first some common things to textures:

 * NEVER use compressed image formats such as, as they often distort colors, waste resources while loading (to extract they need additional memory and CPU-time) and have the same footprint in memory as an uncompressed picture format. A good format to use is Targa , as it is uncompressed (don't use the RLE-option!) and also has the ability to store an alpha channel if required.

 * Make your textures as small as possible. What ever should work is the creation of your texture twice as big as finally used and afterwards scale them down with enabled antialiasing. You get nearly the same detail grade as in the original map and need only 1/4 of its memory.

 * Always use "power of 2" values as map dimensions (i.e. 64x64, 128x128, 128x512). Such textures could processed very fast because "power of 2" - numbers are the native language of your hardware. If you don't abide by this rule your meshes will be white in Trainz. You don't have to use square maps, but you must avoid an aspect ratio above 1:8 (this is unsupported in Trainz).

In Blender in order to access textures you must first add them to the project through the Texture pane in the Material buttons window. Press to access the Material buttons window, then click the Add New button in the Texture pane to add a new texture.

After creating a texture object you use the Map Input pane to tell Blender where the mapping information should come from, and the Map To pane to specify which material property should be influenced.

The default map input choosen by Blender is Orco. This is okay for reflection maps, but for the other kinds of maps the Exporter script only accepts the UV map input. As mapping target (Map To pane) you can choose one or more of the following options:

 * Col, used for diffuse maps
 * Alpha, used for opacity maps
 * Ref, used for reflection maps
 * Nor, used for normal(bump) maps

You can assign other mapping targets and these textures will be exported, but you will not notice the slightest effect in Trainz.

What's now left to do is of course loading the texture itself. In Blender you define the content of a texture using the Texture pane (press to access). The only Texture Type you can export to Trainz is Image, so all of the other options (DistortedNoise, Voronoi and so-on) can be ignored.

 * Now select the appropriate image by pressing Load on the Image panel.

 * There is only one option left, the option "no texture". The Blender Exporter for Trainz allows you to export models without any texture. This can speed up asset creation due to "quick checks" of the pure mesh directly in Trainz. To export without any texture you simply have to delete eventually assigned texture objects.

Diffuse Textures

 * Diffuse textures are the kind of textures used most often. They essentially define the surface of objects. To use them you need to select the UV button in the Map Input pane, and the Col button in the Map To pane. You can adjust the amount of texture with the Col slider on the right-hand side of the Map To pane.

Opacity Textures

 * Alpha textures are used to simulate transparent materials or to make parts of your object invisible. You can create dirty windows or let a simple plane look like a bogey part. An alpha map normally comes together with a diffuse map, so the needed UV mapping should already be done. As target select Alpha. The texture amount is controled by slider Var at the right side of Map To panel.

 * You can combine diffuse and opacity texture if you use an image with alpha layer. You need to select the option UseAlpha at the Map Image panel and must select Col and Alpha as targets at the Map To panel.

 * One little problem can occure if you work with opacity: Due to a bug in Trainz not completely opaque or transparent areas may overlap each other. You can take a look at the problem and one possible work around by downloading the two related examples from SourceForge.

Reflection Textures

 * These textures are a bit different in usage as the others, because Trainz map them automatically using spherical mapping. How this works you can imagine best if you create a smooth sphere and assign a reflection map. Which map part is shown depend on the direction in which the imaginary ray from the camera to the objects surface would be reflected. That's why you see the whole map on the surface of a smooth sphere.

 * To use reflection maps you only need to press button Refl in Map Input panel and button Ref in the Map To panel of the designated texture. You will notice that no colors appear neither in material preview nor in render window. That's because Blender use reflective textures to modify the strength and not the color of reflection. But no fear, in Trainz you get your colors back ;).

Hardness Textures

 * You can assign hardness textures but you will be disappointed. They don't affect hardness, instead they will be typed as reflective texture during export. This behavior is copied from the original exporter, as any attempt to influence the "shinestrength" so far ends in a complete white unlighted object.

Normal Textures

 * A normal texture is used to fake highs and lows on an plain surface. To use it you need an UV Map Input and a Nor Map To. Please take care to use an normal map and not a bump map. Both are used for the same purpose, but they contain different data.

Texture Combinations
The influence that a texture has on an object's appearance in Trainz is controlled by so-called "material name decorations". With one exception the Blender Exporter for Trainz selects the appropriate decoration depending on the textures you have assigned. This exception is, as this material decoration is used for objects always facing the camera. Because the Exporter has no chance to detect if you want this behavior, you have to decorate the material name for yourself with the ending. Generally the Exporter doesn't overwrite a known material decoration, so if you want to ensure your material will be exported as, then simply append   for yourself to the material name.

List of all currently supported texture combinations
single textures: double textures: triple textures:
 * diffuse texture
 * reflection texture
 * hardness texture (will appear as reflection texture)
 * diffuse & alpha texture
 * diffuse & reflection texture
 * diffuse & hardness texture (the same as diffuse & reflection)
 * diffuse & normal texture
 * diffuse, reflection & alpha texture(in this case the alpha texture affects the reflection texture and not the diffuse texture)
 * diffuse, alpha & normal texture(no reflection or hardness texture allowed)
 * diffuse, reflection & normal texture (no alpha texture allowed)

Events

 * In case of animation export the original exporters ask you for an event file to bind events to specific frames. To use events with the Blender Exporter for Trainz is similar. Switching a Blender window to Text Editor window and create a new TX object via File > New (Hotkey Alt N). Enter for every event a line with frame number, event type and event name. If you finally rename this TX object to events, then the Exporter will parse this text and create the desired entries in your animation file.

Examples

 * Examples you find as additional files at the download section by SourceForge

title: Trainz/Tutorial for Blender


text:
Talk:East Asian Calligraphy/History

Untitled
I just wanted to mention that Serbian Cyrillic alphabet was also specifically designed by Vuk Karadžić to be a phonetic alphabet. Therefore Hangul is not the only alphabet designed for that purpose. --Brcha (talk) 17:09, 17 May 2008 (UTC)

title: Talk:East Asian Calligraphy/History


text:
A-level Biology/Mammalian Physiology and Behavior/Mammalian Nutrition

Overview
In mammalian physiology, the alimentary canal is the location of all digestion. The alimentary canal is most easily described as a long tube which runs from the mouth, through the body to the anus. In an adult human, it can be up to 6 metres long, and is obviously coiled to preserve space. This canal, in addition to organs which secrete various substances into it make up the digestive system.

You may remember from your work on blood vessels, for example, that the space inside the tube is known as a lumen. The lumen of the alimentary canal goes straight from the mouth to the anus without obstruction and thus substances can pass right through without ever entering a cell, and the lumen is thus considered a part of the outside world. The process of absorption is what moves food substances from the lumen into cells and usually into the blood stream.

Eating food and thus entering it into the alimentary canal is known as ingestion, followed by digestion and then absorption. Any food that cannot be digested for whatever reason (cellulose is a good example), passes all the way through the alimentary canal and out the anus in the form of faeces, the removal of which is known as egestion. Remember, egestion is not excretion, since excretion is the removal of metabolism waste products, but egestion deals with material that has not been absorbed and therefore cannot have been part of metabolism.

Due to requirements of absorption in the alimentary canal (very small size), usually only small molecules (e.g. iron, calcium, vitamins, amino acids, monosaccharides) and water can be absorbed immediately. Other molecules (known as macromolecules) such as starch and proteins cannot be absorbed and they must first be broken down into smaller molecules - the less complex monomers from which they are constructed.

Mechanical digestion is the process of chewing (also, the churning of the stomach), breaking larger pieces of food into smaller ones, providing a larger surface area for the digestive enzymes to act on during chemical digestion. The macromolecules we discussed in the previous paragraphs can then be more easily broken down - via hydrolysis reactions catalysed by a variety of enzymes.

Enzymes in Digestion
All digestive reactions are hydrolysis - breaking down complex molecules into simple ones with the addition of water, and thus all digestive enzymes are hydrolases.

A table detailing the enzyme activity in a human alimentary canal can be found below;

Protein Digestion
Protein digestion takes place in the stomach, duodenum and ileum. The stomach has the protease pepsin which catalyses the hydrolysis of peptide bonds within protein molecules, splitting them into smaller chains, and is thus known as an endopeptidase. In the duodenum, trypsin and chymotrypsin do the same thing. An exopeptidase is one which cleaves off single amino acids from the end of a chain, and the one in the ileum is the carboxypeptidase, producing amino acids which are then absorbed into the blood capillaries.

Gastroinestinal Tract
The alimentary canal, a canal that travels from mouth to the anus, has the same structure throughout, a wall with four main layers - the mucosa, submucosa, muscularis externa and serosa.

The mucosa is the layer nearest the lumen and on its inner surface is a thin epithelium, which contains goblet cells. These secrete mucus to lubricate and protect the cells from abrasion by food. It also stops damage by digestive enzymes. Except for this common factor, the epithelium differs in various parts of the alimentary canal. Beneath the epithelium is a layer of connective tissue, and beneath that is a layer of smooth muscle called the muscularis mucosa. It is smooth muscle which allows it to contract slowly and rhythmically for long periods without tiring.

The submucosa consists of connective tissue lying within blood vessels and nerves. It contains a high proportion of collagen and elastin (fibrous proteins).

The musclurais externa, again smooth muscle, is made up of two bands - longitudinal muscle and circular muscle. Longitudinal lies lengthwise along the wall of the canal, whereas circular muscle lies around the wall. Their combined contraction and relaxation moves food through the alimentary canal via peristalsis.

The serosa is a thin layer of connective tissue that makes up the outer layer of the wall

Mouth/Oesophagus
Food is ingested and then masticated (chewed) using the broad ridges/grooves on molars/premolars which breaks solid food into smaller pieces, increasing its surface area. Saliva is also secreted into the mouth - being mostly water it helps dissolve any soluble components, and the enzyme amylase begins the breakdown of starch to maltose. Swallowing takes the food into the top of the oesophagus, and peristalsis takes it to the stomach.

Stomach
The stomach is a small sac with muscles at either end (sphincters), which control the entry and exit of food. When a bolus (ball of food) arrives at the stomach, the cardiac sphincter relaxes to allow food to enter, whilst the pyloric sphincter remains contracted so that food can remain there for several hours. It then allows the partially digested food to pass, now called chyme, into the duodenum.

The mucosa in the stomach is very folded, forming gastric pits, which secrete gastric juice. The epithelium is made up of columnar cells. It also contains chief cells and oxyntic cells, the former of which produce pepsinogen and the latter of which produce hydrochloric acid. Oxyntic cells have many mitochondria and deep invaginations on their surface.

Digestion
Gastric juice is mostly water but also contains hydrochloric acid from oxyntic cells. This hydrochloric acid gives gastric juice a pH of <1.0, which kills a high proportion of bacteria that is present in food. Chief cells secrete pepsinogen, which does not function as an enzyme and is converted to its active form (pepsin) by the removal of a short length of amino acids. This is achieved by both hydrochloric acid and pepsin itself.

Gastric juice also contains lipases to break down fats. The walls of the stomach lining is protected by alkaline mucus, coating the entire stomach wall.

Absorption
Only a few substances can be absorbed here, small, lipid-soluble molecules, for example alcohol, and aspirin.

Liver/Pancreas
The mix of enzymes, hydrochloric acid and chyme (partially digested food) passes into the small intestine when the pyloric sphincter relaxes, and this coincides with the liver and the pancreas releasing juices into the small intestine. One of the liver's functions is to produce bile, which is stored in the gall bladder and then carried along the bile duct into the dueodenum. Bile contains bile salts which help emulsify fats, and are then reabsorbed (mostly) and go back to the liver, where they are then resecreted. Bile also contains hydrogencarbonate ions which help neutralise the acidic mixture of the duodenum.

The pancreas is both an endocrine and exocrine gland - its endocrine functon is to secrete insulin and glucagon (produced by the islets of Langerhans). Its exocrine function, the one we'll discuss most here, is the secretion of pancreatic juice into the pancreatic duct.

Pancreatic juice consists of enzymes and enzyme precursors. Trypsin and chymotrypsin are secreted in an inactive form, trypsoinogen and chymotrypsinogen. The former gradually changes to trypsin, and is speeded up by an enzyme enterokinase. Trypsin can then act on trypsoinogen and chymotripsinogen to activate them. Other enzymes include carboxypeptidase (secreted in inactive form, trypsin sorts it out), lipase and amylase. It also contains hydrogen carbonate ions to neutralise the acidic mixture of food and gastric juice in the duodenum.

Small Intestine
The small intestine consists of three regions - the duodenum, jejunum and the ileum. The structure of the ileum has many numerous tiny folds in the walls, known as villi, made from the mucosa layer, and each villus is around 1mm tall. These villi all have their own microvilli which combined have a great surface area available for absorption. The smooth muscle in the musclaris mucosa can make them contract and sway around for great contact with the food in the lumen, and the villus also have a network of blood capillaries for absorption and transport of food.

Beneath the villi are glands called the crypts of Lieberkuhn, which contain goblet cells to secrete mucus.

Digestion
The enzymes from the duodenum continue to act, and enzymes that act in the ileum do so while attached to the surface of the epithelial cells of the villi. Some enzymes from the duodenum become adsorbed onto the surface of the cells, ensuring that the products of digestion are concentrated right next to the cells which will absorb them. In fact the majority of the digestion in the ileum happens right next to the plasma membranes of epithelial cells.

Absorption
The products of digestion; amino acids, fatty acids, glycerol and monosaccharides, can all cross the plasma membranes of the epithelial cells on the villi, passing through these cells to enter either the blood or lymphatic capillaries. Monosaccharides and amino acids go straight into the blood stream, whilst fatty acids and glycerol go into the lymphatic system.

Monosaccharides are absorbed in the same way as amino acids - sodium ions are continually pumped out of the base of the epithelial cells into the surrounding tissue fluid, resulting in sodium ions travelling down this created concentration gradient, carrying glucose and amino acids with them - co-transport.

Fatty acids and glycerol are able to diffuse through the phospholipid bi-layer (lipid-soluble), and are converted back to triglycerides on the smooth endoplasmic reticulum of an epithelium cell, transferred to the Golgi and then surrounded by a protein to create a chylomicron.

Water, inorganic ions and vitamins are also absorbed in the ileum, via osmosis, active transport, facilitated diffusion or plain diffusion (lipid-soluble only).

Colon
The colon, caecum, appendix and rectum make up the large intestine, and the colon's function is to absorb inorganic ions and water, what remains anyway. The epithelium does not contain villi but it does have columnar cells with microvilli, providing a relatively large surface area for absorption. The material that reaches the rectum is mostly indigestible material - cellulose and lignin as well as mucus and cells that have been shed form the canal - it is passed out as faeces.

Endocrine system
The secretion of the digestive juices from the stomach/pancreas and the bile from the gall bladder is controlled by hormones. The arrival of action potentials at the stomach wall causes the secretion of a hormone called gastrin, which is released into the blood causing gastric glands to produce large quantities of gastric juice. This is also stimulated by the presence of food in the stomach.

The secretion of pancreatic juice is largely controlled by the arrival of food in the duodenum. The contact with acidic substances stimulates cells of the wall to secrete a hormone called secretin, which stimulates exocrine cells in the pancreas to release a hydrogencarbondate rich juice into the pancreatic duct.

The duodenum epithelial cells react to products of fat or protein digestion by secreting CCK which acts on the exocrine cells of the pancreas, stimulating the secretion of an enzyme rich juice, and causing the gall bladder (by forcing it to contract its smooth muscles) to force bile along the bile duct.

Nervous system
The taste, sight and smell of food all feed into the nervous system, and the medulla oblongata carries impulses from it to the salivary glands as part of the autonomic nervous system. Gastric juice secretion is also stimulated by nerve impulses sent from the brain to the stomach wall (see above)

Herbivores
The food herbivores eat is not surrounded by cellulose cell walls that cannot be digested by enzymes, and are so have to be masticated by molars etc. A herbivore, such as a cow, may not have any canines at all, a diastema (gap), instead allows the long flexible tongue to move grass around the mouth. The chewing is done by premolars and molars, which have broad surfaces with ridges and cusps which move side to side and fit into each other. The cow does have incisors, but they are only on the lower surface, with a horny pad on the top where the upper incisors should be - these two act as a kind of clamp for the cow to pull grass from the ground. Cow's teeth continue to grow throughout life, since they are continually ground down by all the chewing.

A cow has a four chambered stomach - the largest chamber, the rumen (and also the reticulum), has a community of anaerobic microorganisms that produce enzymes to break down cellulose to glucose. Other enzymes break down this sugar to a fatty acid, thus many tissues in a cow are adapted to use fatty acids as their main respiratory substrate.

Plant material is passed up from the rumen and reticulum back into the mouth peridocally until it is completely chewed up, and is known as chewing the cud. Material is then passed from the rumen and reticulum into the omasum and abomason. Here hydrochloric acid and protease is secreted, as in a human stomach. Then the material continues into the small intestine.

Carnivores
Carnivores, in contrast to herbivores, are meat eating animals and thus have very different dentistry and digestion. The wolf, for example, has long pointed teeth known as canines at the front of its mouth, which allow the wolf to stab the body of its prey when it bites it, killing it. Behind the canines are premolars and molars with extremely sharp edges, and are known as carnassial teeth because they slice past each other with the jaw is closed in a scissor like action that cracks, crushes bones and cuts meat into smaller pieces.

The inciscors at the front of the wolf's mouth are used in scraping meat from the surface of the bones. Since meat does not contain starch or cellulose cell walls, amylase is not required, and dogs do not have to chew very much. However, compensating for the lack of chemical digestion in the mouth is a very concentrated acid in the dogs stomach, allowing a dog to eat 'dangerous' food that is rotten without harm.


text:
Spanish/Tenses/Imperative/Affirmative

Regular Affirmative Spanish Commands
Spanish commands can vary based on if they are singular or plural and their formality.

Tú Commands
An affirmative tú command is the same as the Present Third Person Singular (Él, Ella, Usted) conjugation in present tense.

For Example:

Ar
An Ar usted command is formed by dropping the "o" from the Present First Person Singular conjugation (the yo form) and then adding an "e". For Example:

Er and Ir
An Er/Ir usted command is formed by dropping the "o" from the Present First Person Singular conjugation (the yo form) and then adding an "a". For example:

Ustedes Commands
An ustedes command is formed by adding an "n" to the end of an usted command.

For example:

title: Spanish/Tenses/Imperative/Affirmative


text:
Template:Blender 3D: HotKeys/3D View/Multiple Modes/SHIFT-DKEY

SHIFT+DKEY - Duplicates an object


text: User talk:66.168.222.153

title: User talk:66.168.222.153


text: User talk:207.154.26.37

title: User talk:207.154.26.37


text:
User talk:Mike.lifeguard/Archive 18

thank you!
on several occasions you've fixed the new pages i've created where i've forgotten to include the cookbook: prefix to my page name ... thanks!! Wikidsoup (talk) 22:43, 2 May 2008 (UTC)

About the Author
Hi Mike,

I'd like to hear your thoughts regarding the creation of "About the author" pages. I have one at About the author/Jomegat and I transclude it in several chapters of the Adventist Youth Honors Answer Book. There are a few other authors who have also created them (after I encouraged them to do so). User:Jazzmanian created one last week and you moved it around and maybe deleted it. I'm too tired right now to track down everything that happened (just returned from a weekend camping trip) but thought it would be good to see what you were thinking. Do you think they are appropriate (I obviously do)? Do you think they belong in user space (I think maybe they do). --Jomegat (talk) 23:29, 4 May 2008 (UTC)
 * Ha! Just read the answer a little further up on this talk page.  I think that's prolly a good idea, so I'll move mine (but maybe tomorrow - I am awfully tired tonight). --Jomegat (talk) 23:32, 4 May 2008 (UTC)
 * Yeah, if it's going to be transcluded into several books, it should be either a template or in your userspace (best idea). There's no book called About the Author, so the mainspace isn't a good location for it. At least, that's my take on it. – Mike.lifeguard  | talk 12:34, 5 May 2008 (UTC)
 * I think I found all of them and moved them into user space. I created mine when I was still pretty much a noob here and never really gave it a second thought.  Thanks for your input on this. --Jomegat (talk) 14:08, 5 May 2008 (UTC)
 * Is there an easy way to do this then ? I was editing my profile page where I added my about. If I can create one in the correct spot, mine in the incorrect place can be deleted please. Gerald (talk) 19:43, 6 May 2008 (UTC)
 * Hi Gerald - It looks like you have one in the correct spot (User:Jazzmanian/About the author). To add that to a book just insert  where ever you want it to show up. If you can point me to one that's not in the right place, I can delete it for you. --Jomegat (talk) 19:50, 6 May 2008 (UTC)
 * I thought that one was delete for being in the wrong spot - perhaps when Mike restored it, he relocated correctly on my behalf. - If so Thanks Mike ! Gerald (talk) 00:03, 7 May 2008 (UTC)
 * The wrong spot was About the author/Jazzmanian. The preferred spot is in the User: namespace. --Jomegat (talk) 00:06, 7 May 2008 (UTC)

You guys got it :) – Mike.lifeguard  | talk 00:57, 7 May 2008 (UTC)
 * So mine is good now - cool ! Thanks all ! Gerald (talk) 06:09, 7 May 2008 (UTC)

Radiation Oncology textbook
Thank you for your nomination of the Radiation_Oncology textbook for a Featured Book. We recently received an acceptance of an abstract describing it at our professional society (ASTRO) annual meeting. I just wanted to follow-up to see if/what else we need to do to continue with the nomination process. Thanks! Tdvorak (talk) 03:37, 6 May 2008 (UTC)
 * There's nothing left, except for an admin to close the discussion. It looks like there's a fair amount of discussion, and the only negative comments have been addressed, or are relatively minor (formatting). I would do it myself, but as I'm the nominator, I can't. I imagine someone else will get to it soon enough. Congrats on getting the abstract accepted. – Mike.lifeguard  | talk 15:43, 6 May 2008 (UTC)

now commons
Excuse me, it's true "GFDL Presume" deceived me, I had not seen the "presumed", I had only done if the graphics, not much content, then I saw GFDL and I believed everything was ok. my mistake, sorry again (translate by google) --Wim b (talk) 21:21, 7 May 2008 (UTC)
 * It's no problem, as these images were fixed. Thanks for taking care in the future. – Mike.lifeguard  | talk 22:24, 7 May 2008 (UTC)

I reject your warning
Wikibooks2PDF only accepts Wikibooks URLs. Thus it was for testing reasons the only way to use a normal Wikibooks page because the Sandbox can be modified from another user when using Wikibooks2PDF. Feel free to block my IP for some days _ I have made my test and will never come back to meet so "friendly" people like you. No regards --84.60.192.116 (talk) 22:00, 8 May 2008 (UTC)

Useful?
Help:Wikibooks for Wikipedians came across this template, not sure if it was a mistake or intended but it prevents reading of the page.
 * Okay, not your edit, rather it's the template that's been changed. SunCreator (talk) 11:53, 10 May 2008 (UTC)

Re: Missing license
Thanks for alerting me about the image with missing license. I have edited it, please check if it is fine now. I was careless while uploading the image and forgot to add the license template. Sorry for the trouble caused.

Regards, SPat (talk) 07:34, 11 May 2008 (UTC)
 * Looks good to me. Thanks. – Mike.lifeguard  | talk 13:52, 11 May 2008 (UTC)

Yet another bot job (wikiversity)
This time just a minor modification to the middle template, and a massive change for the bottom template (trying to add more switch functions and get rid of the embedded templates we've been using up 'til now).

One general request for all of these: please add a blank space after the "=". This makes it a bit more pleasant to edit (looks funny when there'sno space, and the template acts the same).

Diff for reference (mostly... I also fixed a couple of the fields): http://en.wikiversity.org/w/index.php?title=BCP%2FRhododendron_calendulaceum&diff=266067&oldid=265983

Let me know if there are any issues, and thanks yet again! Hopefully we won't need another for at least a month or so, unless we get a sudden flood of new contributors. -- SB_Johnny | PA! 14:10, 12 May 2008 (UTC)
 * [[Image:Symbol wait.svg|15px]] Delayed until later in the week, but it's on my list. – Mike.lifeguard  | talk 16:52, 12 May 2008 (UTC)
 * [[Image:Yes_check.svg|15px| ]] Done – Mike.lifeguard  | talk 12:52, 18 May 2008 (UTC)

POLT image
Hello Mike,

Thank you for your hard work. However, we are wondering why you deleted the book image of POLT (http://en.wikibooks.org/wiki/The_Practice_of_Learning_Theories) again. As I explained to you last year, the POLT is one of Dr. Bonk's research project and he hired someone to create the book image that you deleted. So, the owner of the copyright for the image is Dr. Bonk (cjbonk@indiana.edu). Please let us know what is wrong with our image. Thank you.
 * If Dr. Bonk owns the copyright, then it needs to be freely licensed. I had explained that previously, but couldn't enforce it at the time. Since then, we have enacted a media policy, which made the licensing situation contrary to policy. The cover image must be free; there are two ways to achieve this:
 * Freely-license the deleted image, which would of course be restored, or
 * Create or find a new freely-licensed image.
 * I'll email as well. – Mike.lifeguard  | talk 22:50, 13 May 2008 (UTC)

commons:Image:ValvesOfHeardUltrasoundImage.gif
Can we correct the mis-spelling in the filename commons:Image:ValvesOfHeardUltrasoundImage.gif - as in commons:Image:ValvesOfHeartUltrasoundImage.gif - valves of the HEART! marz (talk) 07:20, 18 May 2008 (UTC)
 * I've asked for a rename for that image. I think BetacommandBot was down earlier, so it may be some time until it is done. – Mike.lifeguard  | talk 12:55, 18 May 2008 (UTC)

Missing license for picture
Hi Mike, I think I corrected the missing lisc for my picture on my user page. Could you double check that I did this correctly? Pic is ok now? Thanks, -Elizabeth Eschm001 (talk) 22:10, 20 May 2008 (UTC)
 * Looks good to me. – Mike.lifeguard  | talk 22:25, 20 May 2008 (UTC)

Needs a long Block
Take a look at this edit by 212.219.59.241 1 If you look on his talk page you can see that he has been warned and blocked before. Or it might be a school, I'm not really sure. But they/s(he) need to be stopped. (Red4tribe (talk) 12:39, 23 May 2008 (UTC))
 * Thanks, darklama did it (6mo, AO/ACB). – Mike.lifeguard  | talk 15:55, 23 May 2008 (UTC)

Social and Cultural Foundations of Education
Hello,

Sorry for the creation of new (and empty) pages. We are in the process of reorganizing the books and I only had time to begin yesterday. Thank you for your understanding!

Jkauf007 (talk) 17:36, 23 May 2008 (UTC)
 * I'm used to it by now :) I just meant that that one is possibly in the wrong spot, as it's not a subpage of anything, which I assume it should be. – Mike.lifeguard  | talk 19:33, 23 May 2008 (UTC)

Methods Manual for Salt Lake Studies
Hello Mike Lifeguard, I am trying to put the category onto my subpages, as you suggested, but it keeps inserting the word "template" into the category. Is this meant to happen? I have made the change on my Methods Manual for Salt Lake Studies/Authors page for you to have a look at when you have the chance. All the best Peri --Peri Coleman (talk) 06:10, 26 May 2008 (UTC)Mmm, I keep forgetting to sign my name - sorry. ````

 * I changed that page for you - all the pages in that book should have to categorize them - no need to use a template. You can just copy that snippet of text and it'll work everywhere.  – Mike.lifeguard  | talk 11:09, 26 May 2008 (UTC)

Methods Manual for Salt Lake Studies
Thanks Mike... The learning curve is a little steep for my arthritic neurons, but between you and my son & daughter-in-law who are both geeks and are cheering on from the sidelines (between rolling round hysterically laughing at my complete befuddlement by the wikilanguage) I hope to see some progress with the book soon. And I've found the signature button!Peri Coleman (talk) 22:22, 26 May 2008 (UTC)
 * Well, there's plenty of geeks to help out if you need it. Here of WB:HELP – Mike.lifeguard  | talk 21:27, 27 May 2008 (UTC)

My request for Adminship
Hi. Sorry to keep bothering you. I have currently made a request to become an admin, and it has not recieved any attention in the 3 or 4 days it has been up. Since you seem to be one of the most active members on wikibooks, I am very eager to see what you have to say, whichever way you feel. Any comment would be appreciated. Thanks again. Red4tribe (talk) 00:58, 27 May 2008 (UTC)
 * Commenting now... – Mike.lifeguard  | talk 21:28, 27 May 2008 (UTC)

Re: AWB Bug Inability to retrieve lists from special pages, image pages or links
Hi Mike, Hope your keeping well

w:Wikipedia_talk:AutoWikiBrowser/Bugs

Finally have got around to trying to deal with this bug (as im in the process of overhauling the back end of the list maker, making it more modular, and able to accept listmaker plugins and such.

Where the 3 problems Special Pages, Link on Page and Images on Page?

As the latter 2 seem to work again (must have been more API changes), but special pages is certainly still broken.

Just wanting to verify what was broken

Please feel free to reply to me at en.wp, or on the bug entry at AWB.

Thanks!

Reedy (talk) 09:36, 28 May 2008 (UTC)
 * Will do this later. – Mike.lifeguard  | talk 10:20, 28 May 2008 (UTC)

Page Patrol
I'll start patrolling the new page feed right away. Thanks for the support. Red4tribe (talk) 23:43, 28 May 2008 (UTC)

 * Actually, now that it comes to me, I do have one question. If the page contains little to no information at all, is generally new, and is part of a much larger book, do I need to tage it with something? Red4tribe (talk) 23:59, 28 May 2008 (UTC)
 * Depends. If it belongs to a book, it is probably ok. Very short pages (<5 sentences?) should perhaps get . As well, you will get to know which books are active - usually there is only one contributor per book, and other people adding pages in those books deserve a bit more attention. As well, the Cookbook pages are very often copyvios :(
 * For a more concrete example, point to an example :) – Mike.lifeguard  | talk 00:10, 29 May 2008 (UTC)
 * This one I tagged for expansion. Not sure if that is the best to put. Principles of Finance/Section 1/Chapter 6/Corp/ValRed4tribe (talk) 01:46, 29 May 2008 (UTC)
 * I changed that one to . Unless that gets expanded soon it is not useful, even as a stub. They can simply remove the template and/or comment on the talk page to explain what's going on with that; otherwise, we'll get rid of it. – Mike.lifeguard  | talk 02:42, 29 May 2008 (UTC)
 * Allright, so I'll use query for ones similar to that. Red4tribe (talk) 22:24, 29 May 2008 (UTC)

Chilean salmon sector
Hi,

Just a comment on the deletion of the "Chilean salmon sector". I published this article on Wikipedia, but an administrator deleted it and said that I had to publish the article on Wikibooks.

Any advice?

Thanks,

Bcbolman

(talk) 23:43, 29 May 2008 (UTC)

 * Hello Mike, I'm the said administrator from Wikipedia. The article is a copy of his master thesis, which ya prolly know is original research, so it's not appropriate for Wikipedia. I directed him here on the advice of another Administrator. If this was wrong, I apologize. --DeadEyeArrow (talk) 14:17, 29 May 2008 (UTC)
 * Please take care to read our inclusion policy. Wikibooks is not a dumping ground for content rejected at Wikipedia. – Mike.lifeguard  | talk 21:49, 29 May 2008 (UTC)

Hello Mike & DEA,

It seems that the salmon article is 'locked in' between Wikibooks and Wikipedia. Can we find a solution? The information itself is very useful for those who are both interested and active in the sector. The article explains the roots of the Chilean salmon sector; i.e. why does it exist and how did it develop.

Regards,

Bcbolman

(talk) 00:30, 30 May 2008 (UTC)
 * You may wish to publish your work in a peer-reviewed journal or other academic forum - that is not what Wikibooks is for. If you must publish it on a wiki, please check whether Wikiversity would allow it.
 * If you wish to write something which is not original research, you may do so (I would suggest adding it as a case study in one of the economics books). Since you have just done your thesis on this, I suspect that this will be difficult to do since there is not a lot of scholarship on this topic already. – Mike.lifeguard  | talk 22:58, 29 May 2008 (UTC)

title: User talk:Mike.lifeguard/Archive 18


text:
User talk:Bjaco18~enwikibooks

Welcome to Wikibooks, Bjaco18!

Your account will be renamed
Hello,

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

Unfortunately, your account clashes with another account also called Bjaco18. To make sure that both of you can use all Wikimedia projects in future, we have reserved the name Bjaco18~enwikibooks that only you will have. If you like it, you don't have to do anything. If you do not like it, you can pick out a different name.

Your account will still work as before, and you will be credited for all your edits made so far, but you will have to use the new account name when you log in.

Sorry for the inconvenience.

Yours, Keegan Peterzell Community Liaison, Wikimedia Foundation 22:59, 17 March 2015 (UTC)

Renamed
 This account has been renamed as part of single-user login finalisation. If you own this account you can |log in using your previous username and password for more information. If you do not like this account's new name, you can choose your own using this form after logging in: . -- Keegan (WMF) (talk) 04:39, 19 April 2015 (UTC)

title: User talk:Bjaco18~enwikibooks


text: User talk:Mcgyver5

title: User talk:Mcgyver5


text:
Talk:Real Analysis/Continuity

Uniform Continuity
Shouldn't there be some information on the differences between uniform continuity and regular continuity? 142.151.185.196 (talk) 01:07, 18 May 2008 (UTC)

title: Talk:Real Analysis/Continuity


text:
Slovene/Lesson 1

Pronunciation
The Slovenian language uses the Latin alphabet (Ljudevit Gaj's variation, Gajica) with 25 letters used to represent 29 sounds.

The following table lists all of the letters, together with pronunciations and "like in..." notes for easier pronunciation.

Pronunciation rules

Vowels:

Slovenian has 8 vowels: /a/, /e/, /ɛ/, /ə/, /i/, /o/, /ɔ/, /u/. They are written using the letters A, E, I, O and U. The schwa /ə/ is sometimes repesented by the letter R, taking place before said letter.

The Slovene diphthongs are generally considered phonemically as combinations of two phonemes, a vowel and /j/ or a vowel and [w] (often written as [u]. The Slovene phonetic diphthongs are [ew, ɛw, aw, ɔw, ej, oj, ɔj, aj, uj]. The diphthongs [aw] and [aj] can safely be used as equivalents of the English /aʊ/ and /aɪ/. Like the word "eye" Like 'ay' in "pay" Like 'oy' in "toy" Like 'wee' in "week" Like 'a' in "father" and 'e' in "empty" Like 'ia' in "Lydia" Like 'ie' in the Spanish word "miedo"
 * aj
 * ej
 * oj
 * uj
 * ae
 * ija
 * ije

Greetings

 * Dobro jutro - Good morning ('doh-broh 'yuh-troh)
 * Dober dan - Good day ('doh-behr dahn)
 * Dober večer - Good evening ('doh-behr veh-'cher)
 * Lahko noč - Sleep well ('lah-kho noch)

 * Živijo - Hello ('zhi-vi-yoh)
 * Zdravo - Hello ('zdrah-vo)
 * Čao* - Hi (like the italian 'ciao'; chau)

 * Na svidenje - Goodbye (literally 'to the meeting', until we see each other again) (nah 'svih-deh-nye)
 * Adijo - Bye (ah-'dioh)
 * Zbogom - Goodbye (literally 'with God', with a connotation of 'we won't meet again') ('zboh-ghom)
 * Čao* - Bye (like the italian 'ciao'; chau)

* The word 'čao' is a slang word, used both to say hello and goodbye.

Note: it is recommended that you learn the pronunciation of Slovene letters, as their sounds are almost always exactly the same as written (the exception being v, l, and some vowels).

Questions

 * Kako si star/stara? : How old are you?
 * Star/stara sem... : I am...
 * Kaj dělaš? : What are you doing?
 * (Jaz) sem... : I am...
 * Od kod si? : Where are you from?
 * (Jaz) sem iz... : I am from...

title: Slovene/Lesson 1


text:
Prolog/Higher Order Programming

Introduction
Higher-order programming means writing programs that take other programs as input and/or return still other programs as output. Higher-order programming is common in functional programming, but can be in done in Prolog as well.

As an example, suppose you are writing a speech synthesis application that reads out phone numbers aloud. We might have a predicate  that relates Prolog integers 0 through 9 to English words (as symbols):

Now, to translate a phone number, define:

Now, suppose we want to add support for another language, say, German. You define :

To translate a phone number, use :

Note the common recursion pattern in  and. You've probably seen that many times before, even written it several times. It can be summed up as:

 * Base case: relate the empty list to itself.
 * Recursive case: relate the first element of the first list to the first element of the second via some predicate, then recur on the tails of both lists.

This pattern can be captured by a higher-order predicate generally known as  (but not defined by standard Prolog):

In Prolog, we cannot write P(X,Y) since the head of a functor must be a symbol. Therefore, we use the infix operator  that unifies its first argument with a term built from its right argument, which must be a list. The first element, which must be a symbol, becomes the functor, the rest its arguments. We then apply  to the term we constructed to invoke it as a Prolog goal. Note that many Prolog implementations also define,  , ... built-in predicates which construct a callable term out of the given arguments (with the first argument being the principal functor), so that the above code example can be also written as

We can now redefine  and   as:

Both predicates still work in both directions and non-determinism is preserved.

The benefit is obvious: by using, we avoid repeating code fragments so our programs become shorter and easier to read and understand.

title: Prolog/Higher Order Programming


text:
Haskell/Performance examples

Goal: Explain optimizations step by step with examples that actually happened.

Tight loop
dons: Write Haskell as fast as C: exploiting strictness, laziness and recursion.

dons: Write Haskell as fast as C: exploiting strictness, laziness and recursion.

CSV Parsing
haskell-cafe: another Newbie performance question I hope he doesn't mind if I post his code here, I still have to ask him. -- apfeλmus 08:46, 18 May 2008 (UTC) type CSV = String

main = do                 args <- getArgs file <- readFile (head args) writeFile (head args ++ "2") (processFile (args !! 1) file)

processFile s    = writeCSV. doInteraction s. readCSV doInteraction line csv = insertLine (show line) (length csv - 1) csv writeCSV         = (\x -> x ++ "\n"). concat. intersperse "\n". (map (concat. intersperse ",". (map show))) insertLine line pos csv = (take pos csv) ++ [readCSVLine line] ++ drop pos csv readCSVLine      = read. (\x -> "["++x++"]") readCSV          = map readCSVLine. lines

I think there was another cvs parsing thread on the mailing list which I deemed appropriate, but I can't remember.

Space Leak
jkff asked about some code in #haskell which was analyzing a logfile. Basically, it was building a histogram

foldl' (\m (x,y) -> insertWith' x (\[y] ys -> y:ys) [y] m) M.empty [(ByteString.copy foo, ByteString.copy bar) | (foo,bar) <- map (match regex) lines]

The input was a 1GB logfile and the program blew the available memory mainly because the  weren't forced and the whole file lingered around in memory.

Branch Prediction Failure
This code demonstrates how your CPU may fail or succeed in predicting code branches (aka if clauses). The code generates a large random Vector of Ints. From this we compute the sum of all numbers larger than 999. If the data is sorted the CPU can easily deduce the probable outcome of the next branch. If the data is not sorted this will be much more difficult and less successful. Unfortunately, sorting for one purpose only is seldom a good idea. The code uses the criterion package for time measurement. Compile this e.g. with -Wall -keep-llvm-files -O2 -optlo-O3 -fllvm -rtsopts -threaded -eventlog -feager-blackholing -fmax-simplifier-iterations=20 -fsimplifier-phases=3 -fno-liberate-case -fspecialise-aggressively. The idea is from github.com/Kobzol/hardware-effects. (tkx68hamburg)

{-# LANGUAGE FlexibleInstances, RankNTypes, BangPatterns, CPP, PartialTypeSignatures, UnicodeSyntax, OverloadedStrings #-} {-# OPTIONS_GHC -fno-warn-orphans #-} module Main (main) where

import          Control.DeepSeq import          Control.Exception (evaluate) import          Control.Monad.ST import           Criterion.Main import qualified Data.Vector.Algorithms.Radix as Radix import qualified Data.Vector.Unboxed as UV import          System.Random

instance (NFData a) => NFData (V.Vector a)             where rnf v = V.foldr (\a b -> rnf a `seq` b) v
 * 1) ifdef DEFINE_NFDATA_VECTOR
 * 1) endif

setupUnsorted :: IO [UV.Vector Int] setupUnsorted = do small <- randomSampleUVVector 1024 med <- randomSampleUVVector $ 1024*1024 large <- randomSampleUVVector $ 20*1024*1024 return [small, med, large]

setupSorted :: IO [UV.Vector Int] setupSorted = fmap (fmap sortUVec) setupUnsorted

main :: IO main = do defaultMainWith defaultConfig [ env setupUnsorted (\ ~[small, med, large] -> bgroup "Branch without sort" [            bench "small" $ whnf core1 small,             bench "medium" $ whnf core1 med,             bench "large" $ whnf core1 large             ]          ), env setupUnsorted (\ ~[small, med, large] -> bgroup "Branch without sort using filter" [            bench "small" $ whnf core1a small,             bench "medium" $ whnf core1a med,             bench "large" $ whnf core1a large             ]          ), env setupUnsorted (\ ~[small, med, large] -> bgroup "Branch including sort" [            bench "small" $ whnf core2 small,             bench "medium" $ whnf core2 med,             bench "large" $ whnf core2 large             ]          ), env setupSorted (\ ~[small, med, large] -> bgroup "Branch after sort" [            bench "small" $ whnf core1 small,             bench "medium" $ whnf core1 med,             bench "large" $ whnf core1 large             ]          ) ]

{- INLINE -} core1 :: UV.Vector Int -> Int core1 = UV.foldl' condSum 0

{- INLINE -} core2 :: UV.Vector Int -> Int core2 = UV.foldl' condSum 0. sortUVec

{- INLINE -} core1a :: UV.Vector Int -> Int core1a = UV.sum. (UV.filter (>999))

{- INLINE -} condSum :: Int -> Int -> Int condSum !x !y = if y>999 then x+y else x

randomSampleUVVector :: Int -> IO (UV.Vector Int) randomSampleUVVector i = evaluate $ force $ UV.fromList (take i (randoms (mkStdGen 0) :: [Int]))

sortUVec :: forall a. (Ord a, Radix.Radix a, UV.Unbox a) => UV.Vector a -> UV.Vector a sortUVec vec = runST (do mv <- UV.thaw vec       Radix.sort mv        UV.unsafeFreeze mv)

title: Haskell/Performance examples