text:
Programming Mac OS X with Cocoa for Beginners/An Inspector calls

Previous Page: More shapes | Next Page: Archiving

This section won't really introduce anything new about Cocoa, but it will help consolidate what we've learned already. The idea is to provide an inspector type interface for Wikidraw so that we can set the properties of the objects we have drawn, such as the colours, stroke widths, etc.

From what we learned about notifications, we can see how we might achieve this. Whenever the selection changes, a notification can be broadcast indicating that fact. The inspector can listen for these, and find out what the current selection is, then simply update its interface to match the selected object's properties.

When the user changes the interface, the new properties are applied to the objects in the selection.

The process of creating the Inspector is similar to the one for the tool palette. A single global inspector is used, and so it can go in the 'MainMenu.nib' file. We'll need a new controller object to act as the go-between between the interface elements and the document. Now at this point it should be pointed out that in a real application, you would probably make separate .nib files for interface elements like this, simply to keep things manageable and even reusable in other applications. However, doing this brings in a number of complications that don't really help us get to know about Cocoa's features, so for now we won't do this. But bear in mind that there are better ways to do things than what we are about to do.

Inspector design
Most of the inspector design we can accomplish in Interface Builder, though this is a moderately complex piece of user interface.

The user is able to select different objects in the main document; the inspector is there to display the properties of the selected object and allow them to be changed interactively. However the user is also able to select more than one object, or none. What should we do in these cases? In this design, we take a simple approach - if there are no objects selected the inspector will hide the controls that edit the properties and display 'No selection'. For a multiple selection, we do the same thing, except display 'Multiple selection'. Only if there is only one object selected do we display the edit controls. This is not as sophisticated as some applications - perhaps you would design a real application so that multiple objects could be edited at once. However, this approach is simple and makes it clear how to go about handling the different cases.

A good way of arranging sets of controls to appear and disappear in the described fashion is to use a tabbed interface, but without actually having the tabs themselves. As we detect each case, we switch to the appropriate pane of the tab which we have already set up with our desired controls. This way, we do not have to worry about individually hiding or showing particular controls, which is certainly possible, but requires more complex code.

To detect each case, we need only look at the count of objects in the selection array. If the count is zero, we know there is nothing selected. If it is one, we have a single object, and if it is any other number, we have a multiple selection. Thus the code to determine the selection state is very simple indeed.

Building the interface
In IB, open the 'MainMenu.nib' file. Add a Panel window to the file and use IB's inspector to make it a utility window with the title 'Inspector'.

Drag an NSTabView to the window. Initially it will have visible tabs, which makes it easier to handle. Later we will hide these. We need three tabs - use the inspector to set this. Size the tab view so that it is comfortably within the window. The first tab will be for the 'No selection' case, so select this tab and drag a text item into the window. Change the text to 'No selection', and set its colour to light grey. Change the identifier of the tab to the string 'none'. In our code we will be selecting the displayed tab using these identifiers.

Switch to tab 3. This will be the multiple selection case, so drag a text item as before and set its text to 'Multiple selection'. Set the identifier for this tab view to 'multi'.

Switch to tab 2. This will be our actual edit controls tab, and we need quite a few. Set the identifier for this tab to 'std'. As shown in the screenshot, I divided it up into two sections, stroke and fill. Each section contains a radio button selection and a colour well. The stroke section also contains a slider control used for setting the stroke line width. Find all of these controls and drag them in. Arrange them neatly. The stroke width slider is set to have a range of 0.3 to 20.0 - this will eventually become the line width value. Set the number of markers to 21 and to be above the slider. Also check the 'send action continuously while sliding' and make sure the 'stop on tick marks only' is unchecked.

Finally, select the tab view again and set it to have hidden tabs. Position and size the tab view so that it fills the panel window and that each tab looks as you want it, and that you can see all of the controls and they are positioned neatly.

Now we need to create a controller for the inspector panel. Switch to the 'classes' tab in the main window, and select the NSWindowController class. Choose Classes->Subclass NSWindowController. Give the new class the name of 'InspectorController'. We need to add all of our actions and outlets now. Double-click the new class name to display the actions and outlets editor in the IB inspector. Add the following actions:

 * fillColourButtonAction:
 * fillColourDidChange:
 * strokeColourButtonAction:
 * strokeColourDidChange:
 * strokeWidthDidChange:

Switch to the outlets editor. Add the following outlets:

 * panelTabControl
 * fillColourButtons
 * fillColourWell
 * strokeColourButtons
 * strokeColourWell
 * strokeWidthSlider

Now we can generate the code files for the InspectorController. Choose Classes->Create files for InspectorController. Accept the defaults and click Choose in the subsequent dialogue.

Next, instantiate the controller. Select the new class and Choose Classes->Instantiate InspectorController. A new instance is added to the main window.

Finally, we need to hook up all of the outlets and actions. Switch to the 'Instances' tab in the main window. First the outlets: control-drag FROM the box representing the InspectorController instance to the various controls in the panel. It should be clear from the names which controls are meant to be connected to which outlet. The tab pane itself might be tricky - you may need to show the tabs again temporarily to be able to highlight the tab view as a target. It is important that the 'panelTabControl' outlet connects to the NSTabView and not to the NSView that is inside it. Also, connect the outlet 'window' to the panel window itself.

Next connect the actions. Control-drag FROM each of the active controls TO the InspectorController instance. Again, the names should indicate which actions go with which controls. Only active controls need an action - the text you added to the other panes in the tab view are passive and have no actions.

Finally, add a menu command to the main menu bar under 'Window' for the 'Show Inspector' command. Its action should be the showWindow: action in the InspectorController.

Once you are satisfied that you have connected every action and outlet correctly, SAVE the file and return to Xcode.

Coding the inspector
The first thing we need to do is to add a notification to our document so that when the selection changes, any interested objects get to know about it. The inspector will listen for this notification, and respond accordingly. There are four methods that affect the selection state in MyDocument:

- (void)		selectObject:(id) object; - (void)		deselectObject:(id) object; - (void)		selectAll; - (void)		deselectAll;

We will need to make a small modification to the code of all four to make sure that the inspector 'keeps up' with selection changes. Since a notification needs a name, let's define one.

extern NSString* notifyObjectSelectionDidChange;

This goes outside of the class definition, below the '@end' statement in MyDocument.h

In MyDocument.m, add the following:

NSString* notifyObjectSelectionDidChange = @"objectSelectionDidChange";

This goes before the '@implementation' statement. All we are doing is declaring a global string that represents this particular event. By declaring it 'extern' in our .h file, we allow other code to know about this string without having to care where it actually is. Our .m file actually gives the string its real substance.

Now, change the selection methods as follows:

- (void)		selectObject:(id) object {	if([_objects containsObject:object] && ![_selection containsObject:object]) {		[_selection addObject:object]; [[NSNotificationCenter defaultCenter] postNotificationName:notifyObjectSelectionDidChange object:self];	} }

- (void)		deselectObject:(id) object {	[_selection removeObject:object]; [[NSNotificationCenter defaultCenter] postNotificationName:notifyObjectSelectionDidChange object:self]; }

- (void)		selectAll {	[_selection setArray:_objects]; [[NSNotificationCenter defaultCenter] postNotificationName:notifyObjectSelectionDidChange object:self]; }

- (void)		deselectAll {	[_selection removeAllObjects]; [[NSNotificationCenter defaultCenter] postNotificationName:notifyObjectSelectionDidChange object:self]; }

All we have done is add a line to each that posts a notification with the name we declared whenever the selection changes. Note that we don't bother trying to notify what sort of change was made, only that it has changed. The receiver of the message can call us back to get further information if it needs to.

At this stage, it may be worth compiling and running the application to check that it still works OK. So far we haven't added any visible new functionality.

The code for the inspector itself will be added in InspectorController.m. This is one of the files that IB made for us in the last section. If you select this file, you will see that it has already expanded the action methods for us. We do need two other however, so set things up initially and tear them down properly. Here are the awakeFromNib method and the dealloc method:

- (void)	awakeFromNib {	[(NSPanel*)[self window] setFloatingPanel:YES]; [(NSPanel*)[self window] setBecomesKeyOnlyIfNeeded:YES]; [[NSNotificationCenter defaultCenter] addObserver:self										selector:@selector(selectionChanged:)										name:notifyObjectSelectionDidChange										object:nil]; }

- (void)	dealloc { [[NSNotificationCenter defaultCenter] removeObserver:self];	[super dealloc]; }

As with our tools palette, we first just make sure that the panel window floats and doesn't become key unless absolutely necessary. Then, we subscribe to the notification from MyDocument that we set up above. In order for this file to know about our notification name and the methods of MyDocument, also add '#import "MyDocument.h"' to the top of the file.

Switch to InspectorController.h and add this method to the class definition:

- (void)		selectionChanged:(NSNotification*) note;

Back in the .m file, expand this method as follows:

- (void)		selectionChanged:(NSNotification*) note {	MyDocument* doc = (MyDocument*)[note object]; NSArray*	sel = [doc selection]; NSString*	tab; NSLog(@"selection changed, objects selected = %d", [sel count]); switch([sel count]) {		case 0: tab = @"none"; break; case 1: tab = @"std"; break; default: tab = @"multi"; break; }	[panelTabControl selectTabViewItemWithIdentifier:tab]; }

This is where the notification of selections changing gets actually responded to. It is called every time the selection state in the main document changes. The first thing it does is to find out which document the message came from. The sender of the message is part of the notification itself, obtained using the doc = [note object] message. Next, we need the selection, so we ask the document for it, sel = [doc selection]. Then we can simply count the number of objects to figure out which pane of our inspector we need to display. According to whether 0, 1 or more objects are selected, we set up the string 'tab' with the required identifier (which you will recall we established in Interface Builder - if this doesn't work check that the identifiers match). Finally, we simply set the tab using the identifier. We have a reference to the tab view because it's one of our outlets, and it was set up automatically.

Now we can test this. Compile and run the application. Show the tools palette and the inspector palettes using the menu commands. Create a few objects in the main document. Use the selection tool to select different objects, more than one object and no objects - verify that the inspector displays the appropriate controls according to the selection state.

The next step is to hook up the edit controls to the selected object so we can edit the object's properties. First we write some code to set the state of the controls to match the selected object's state. Then we fill in the action methods so that the object's state can be changed.

In the InspectorController.h file, add the following method definition:

- (void)		setupWithShape:(WKDShape*) shape;

Now, because we declare this to take a WKDShape* parameter, we'll need this file to 'know about' that class. We could #import WKDShape.h here, but that would mean that any file that only needed to know about the inspector would also pull in the shape file, which it might not need. So instead, for efficiency and to reduce interdependency, we 'forward declare' the class at this stage. This is simple:

@class WKDShape;

Add that line above the '@interface' statement. All it says is that there is a class, somewhere, called WKDShape. At this point it doesn't need any internal details of WKDShape, so it avoids the inefficiency of importing the entire file.

Back in the .m file, we flesh out this method as follows:

- (void)		setupWithShape:(WKDShape*) shape {	NSColor* fill = [shape fillColour]; NSColor* strk = [shape strokeColour]; if ( fill ) {		[fillColourButtons selectCellWithTag:0]; [fillColourWell setEnabled:YES]; [fillColourWell setColor:fill]; }	else {		[fillColourButtons selectCellWithTag:1]; [fillColourWell setEnabled:NO]; }

if ( strk ) {		[strokeColourButtons selectCellWithTag:0]; [strokeColourWell setEnabled:YES]; [strokeColourWell setColor:strk]; }	else {		[strokeColourButtons selectCellWithTag:1]; [strokeColourWell setEnabled:NO]; }	[strokeWidthSlider setFloatValue:[shape strokeWidth]];

}

It's quite obvious really - it simply gets the fill and stroke properties of the shape object passed in, and uses them to set the states of the controls via the outlets in the controller. If there is no colour associated with the stroke or fill, this is used to select the 'none' option by using the tag of the radio button. In that case, the colour well is also disabled.

Because this code does need the internal details of WKDShape, the .m file does need to #import WKDShape.h, so add that line to the top of the file.

Now, hook up this method by modifying the 'selectionChanged:' method:

case 1: tab = @"std"; [self setupWithShape:[sel objectAtIndex:0]]; break;

Because in this case we know that the selection contains only one object, it must be the object at index 0 in that array. We can set up the controls before the tab panel actually switches to them without any problems.

Compile and run the application and verify that now when an object is selected, the inspector displays the default colours which are black stroke and white fill.

Finally, let's make the inspector interactively edit the selected object.

Editing the shape
There are a couple of things we'll need to do first. We have a bunch of different action methods all hooked up to various inspector controls, but they all affect the same selected object. We'll therefore need to track which object this is so that we can edit it at any time, as long as it remains selected. To do this, we'll add a reference to it as a data member of the inspector class. So in InspectorController.h, add:

WKDShape*	editShape;

as a data member. For safety, we'll also add a method called setShape:, which handles the usual retain/release of a shape as the selection changes. We could set this up so that a retain isn't required, but then we'd have to be careful that there could never be any circumstances that a stale reference could exist. This way is more straightforward, safer and 'the Cocoa way'. So expand setShape as follows:

- (void)		setShape:(WKDShape*) shape {	[shape retain]; [editShape release]; editShape = shape; }

Add a call to [self setShape:shape] at the top of the setupWithShape: method. Now we can simply refer to editShape safely at any time.

One more thing we need to do to prepare. You'll recall that the view that displays the shapes is responsible for drawing them, but we will be editing the shape's properties directly. In order for the changes to be visible immediately, there needs to be a way to tell the view to refresh the shape's bounds rectangle whenever something changes. We don't want to encumber the inspector with this task, as it then sets up an unnecessary dependency between the inspector and our view class. Instead, the shapes themselves need to be able to flag the necessary refresh of the view that is drawing them. To accomplish this, we need another notification. When a shape's state changes, it posts a notification. The view responds to this by obtaining the shape's bounds and refreshing that region of the screen. Because the view originally created the shape, establishing the notification is very straightforward, and the inspector plays no part.

In WKDShape.m, add the method:

- (void)		repaint {	[[NSNotificationCenter defaultCenter] postNotificationName:notifyShapeRequiresRefresh object:self]; }

in the .h file, declare this method and also an extern NSString* for 'notifyShapeRequiresRefresh'. In the .m file, make this string take some suitable value - I used the string @"repaintMe!" - but it can be anything unique.

In each method that changes a property, we need to add a call to [self repaint]; so that the notification gets posted.

Now in WKDDrawView, we need to add a responder for this notification. Add the following method:

- (void)		repaintNotification:(NSNotification*) note {	WKDShape* shape = (WKDShape*)[note object]; [self setNeedsDisplayInRect:[shape drawBounds]]; }

Finally, add a line to the initWithFrame: method of WKDDrawView so that it subscribes to these notifications:

[[NSNotificationCenter defaultCenter] addObserver:self											 selector:@selector(repaintNotification:)											  name:notifyShapeRequiresRefresh											  object:nil];

This allows the view to respond to a refresh request from any shape object whenever that shape's properties are changed. There is a small flaw in this scheme as written; sharp-eyed readers may have noticed it. It has to do with multiple documents. At present, a view can't tell whether the shape really belongs to it or not. The effect is however, harmless - it just means more refreshes going on than really necessary if there are multiple documents. You might like to think about how to solve this problem.

Back to the inspector. Now a shape can refresh itself when needed, and we have a way to track the object we are editing, it's a simple matter of hooking up the action methods for each control so they do the right thing.

- (IBAction)	fillColourButtonAction:(id) sender {	int tag = sender selectedCell] tag];	if ( tag == 1 )	{		[editShape setFillColour:nil];		[fillColourWell setEnabled:NO];	}	else	{		[fillColourWell setEnabled:YES];		[editShape setFillColour:[fillColourWell color; } }

- (IBAction)	fillColourDidChange:(id) sender {	[editShape setFillColour:[sender color]]; }

- (IBAction)	strokeColourButtonAction:(id) sender {	int tag = sender selectedCell] tag];	if ( tag == 1 )	{		[editShape setStrokeColour:nil];		[strokeColourWell setEnabled:NO];	}	else	{		[strokeColourWell setEnabled:YES];		[editShape setStrokeColour:[strokeColourWell color; } }

- (IBAction)	strokeColourDidChange:(id) sender {	[editShape setStrokeColour:[sender color]]; }

- (IBAction)	strokeWidthDidChange:(id) sender {	[editShape setStrokeWidth:[sender floatValue]]; }

This should be clear - we extract the value of the sender and pass it along to the relevant property. For the radio buttons, we pass along nil if the 'none' button is selected (tag == 1), otherwise the current well colour. We also implement some UI state here, disabling the colour well if the 'none' option is chosen.

Compile and run to test - you should find that the inspector is now fully interactive. The selected object refreshes itself using the repaint notification, so the inspector is free to simply set the relevant property without caring how it handles the display. This is the correct separation of functionality - the controller (inspector) changes the data model (shape) which flags the change to the view which obtains whatever it needs from the data model to update the screen. This is how MVC is meant to work.

Previous Page: More shapes | Next Page: Archiving


text:
Wings 3D/User Manual/A Quick Start Guide/Your First Real Model: a Dog House

If you still have your finger exercise up, do a File New. Don't bother to save the tooth, unless you really want it. Now let's build a dog house.

Start with a primitive cube. Select the lower and upper edge on one of the sides. Then Connect them (remember to right click to bring up the Edge menu). Hit the Space Bar to deselect the new edge. Repeat the operation on the opposite side of the cube. You should have something similar to that shown in Figure 10.a.

Select the three vertical edges on one of the sides. Connect. Hit the Space Bar to deselect the new edge. Repeat on the other side. You should have something similar to that shown in Figure 10.b.

Move the horizontal mid-edges up in the Y direction on both sides by 0.50 units. Then Move the vertical mid-edges forward in the Z direction on both sides by 0.50 units. You can see the units change in the Status Bar at the bottom of the Wings window, below the Icon Bar. Simply stop dragging when the value reads 0.50 and left click the mouse. You should have something similar to that shown in Figure 10.c.

Figure 10. Roughing in the basic form. The top and bottom edges have been Connected in (a). The new edge and the two side edges were then Connected in (b). Do this on both sides of the model. In c the edges have been Moved. Do both sides of the model at the same time to ensure symmetry. In (d) the sides have been Extruded. The vertices on the front face have been Connected in (e). In (f) the new edge and the bottom edge were Cut by 3 and the resulting vertices then Connected.

Select the two large faces, one on each side, and Extrude Normal by 1.0. You should have something similar to that shown in Figure 10.d. Then Select the two vertices on the front face and Connect them as shown in Figure 10.e. Select the two long edges on the front face and Cut by 3. Connect the resulting vertices. You should have something similar to that shown in Figure 10.f. Select the front faces of the side sections and Inset some windows as seen in Figure 11.a Move the front three edges that run horizontally across the front of the main cube down in Y by 0.50 to square up the door as shown in 11.b. Then select the two windows and Scale them down in Y by 0.50 units to square them up as well. You should have something similar to that shown in Figure 11.c. Select the door, windows, and the three floor faces as shown in 11.e. Now Intrude to hollow out the shell of the dog house. Figure 11.f shows the results of the Intrude operation. The thickness of the walls is determined by how much you move the mouse while Intruding. Figure 11. More basic construction. New faces have been Inset in (a). The three edges on the front face were then Moved down in Y (b) to resize the door face. The windows are then resized in c. Select all the faces that will be used for the Intrude command in (e) and Intrude. The results of the Intrude are shown in (f).

Select the two edges that go from the side sections to the main roof and Dissolve them (Figure 12.a). Switch to Vertex Mode. Select the two left over vertices on the roof lines and Collapse them (Figure 12.b). Then select the top face and Inset by 75% (Figure 12.c). Now Move the inset roof face up in the Y direction for 0.50 units (Figure 12.d). Now Inset the top face outward by 30% then Extrude it up in Y by 0.25 units (Figure 12.e) and then Scale it down Uniform by 90% to form a little roof cap. The house should resemble that shown in Figure 12.f.

Figure 12. Building the main roof. Dissolve the edges (a) and Collapse the vertices (b) that disrupt the roof face. Then Inset the roof c. Move the center face up in Y (d) then Inset outward and Extrude Y to form the roof cap(e). Then Scale the top of the cap (f).

Select the top faces of the side sections and Inset outward by 40% (Figure 13.a). Then Extrude Normal up by 0.10 units (Figure 13.b). Switch to Edge Mode. Deselect the front and back edges with the mouse. This will leave the inside and outside edges still selected as in Figure 13.c. (I just rotated the house so you can see the back side and see that four edges remain selected.) Connect the side edges (Figure 13.d). Move the new edges up in Y 0.53 units to form gables. Hit the Space Bar to deselect everything and switch to Vertex Mode. Then select the vertices on the outside of the two gables and Scale X by -25% to bring them in as seen in Figure 13.e. Then Connect the vertices on the top outside edges on the sides of the gables.

Figure 13.The side roofs. Select the two side roofs and Inset outward (a) and then Extrude Normal up (b). Select the four edges (two on each roof) and Connect (c). Move the new edges up (e). Switch to Vertex Mode and Scale the two outer most vertices in X to form the gables (f).

Connect the front side top edges (Figure 14.a). Then select the two lower edges of the front top and Connect them (Figure 14.b). Switch to Vertex Mode (Figure 14.c) and Scale the vertices down in Y to bring the two lines close together and then Move them down in Y to bring them closer to the door (Figure 14.d). Select the two edges we just positioned (Figure 14.e) and Cut them by 3, then do a Connect on the resultant vertices (Figure 14.f). Scale them apart in X by

Figure 14. The porch overhang. Connect the side edges of the top front face (a) and then Connect the lower set again (b). Select the vertices and scale them down in Y to bring the edges closer together c. Then Move them all down closer to the door (d). Cut the edges by 3 (e) and Connect the resulting vertices (f) and scale them apart (g) to form a face that will become the porch roof (h). Then Extrude that face (i). 40% (Figure 14.g). Select the new face (Figure 14.h) and Extrude it Normal by 0.5 (Figure 14.i). Select the top back edge of the porch roof (Figure 15.a) and Cut it by 2. Connect the resulting vertex with the two front top corner vertices as show in Figure 15.b. Move the back center vertex up in Y by 0.5 (Figure 15.c). Now dolly the camera so that you can see the underside of the porch (as in Figure 15.d). Connect the bottom side edges of the porch roof (15.e). Move it forward in Z by 0.15 units (15.f). Select the front and back bottom edges of the porch roof too. Cut all three edges by 3 (15.g). Connect the vertices (15.h). Scale them apart in X 130% to form small square shaped faces at the front bottom corners of the porch roof (15.i). Now select the two intersecting vertices and Bevel to 0.07 units (15.j).

Select the resulting edges and Cut by 2 (15.k). Scale the resulting vertices from one side Uniform by 40% to form a roundish face (15.l). Now select the four vertices on the other side and do an Edit | Repeat Drag to form an exact copy of the rounded face on the other side of the porch. Select the two round faces and Extrude Y by -1.10 units which will make them even with the bottom of the house.

Figure 15. Under the porch. Cut the back edge of the porch roof by 2 (a) and connect that vertex up with the two at the top front corners (b). Then Move the center vertex up in Y (c). Now roll the house over so that you can see the underside of the porch (d). Connect the two side edges (e) and Move the new edge towards the front. Select the three long edges (g) and Cut by 3 and then Connect the resulting vertices (h). Bevel the intersecting vertices (i). Then select the edges of the new boxes and Cut by 2. One one side only, Scale the new vertices Uniform to form a circle (j). Then use Repeat Drag (k) to create another circle (l) on the other side of the porch.

Switch to Body Mode and select the house by clicking on it. Then switch to Edge Mode and all the edges will be selected. Right click to bring up the Edge Operations menu and set Hardness to Hard. Pick faces and set materials to your liking. Select all the roof top faces. Right click for the Face Operations menu and choose Set Material. You will be prompted for a material name. Call it Roof. The Material Editor will come up. Change the settings until you get a roof color you like on the preview globe on the left. Then click OK.

Figure 16. Completing the project. Select the two circles (a) and position your model so that you can see it from the front with all the bottom edges lined up (b). Then Extrude Y to create the columns. After assigning materials your model should resemble the one depicted in c. Remember to hit the Tab key to see the colors in Smooth Shaded mode.

While you can see the materials on the shaded wireframe in Workmode you can get a better idea of how things will look in Smooth Shaded Mode.To see the results deselect the roof faces and hit the Tab key for a shaded preview. You should see the new roof color. Now repeat material assignments as you did for the roof until your dog is happy (Figure 16.c). Save the model. Optionally, Export the model into one of the formats your renderer can accept and render the dog house to see how it turned out. Here is mine (Figure 17)

Figure 17. The dog house, rendered in Vue d'Esprit®.

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


text:
MediaWiki Administrator's Handbook/User Block

Introduction
User blocking is perhaps one of the most heavy-handed things you can do as an administrator, and the one that can cause the most damage. An administrator must therefore be cautious in using this power. Often a user will spend quite a bit of time building up a reputation under a particular user name, and by blocking that user they will not be able to edit from their account. Blocked users can still edit their user talk page (and user talk sub-pages?) unless these pages are protected and the user doesn't have sysop or higher privileges.

It is also possible to block IP addresses from being able to edit text. This does not stop a registered user on that IP address from being able to log in, but only stops anonymous users from using the edit functions. If there is a problem where a registered user is unable to access the Wiki due to an anonymous IP block, then the user must unblock that IP and reblock with anonymous users only checked.

Performing the Block
The actual process of performing the block is rather straight forward. You can either go directly to Special:Block and get the page, or you can use your administrator's tools on the sidebar and then clicking on the Block User link. This is only visible when you are viewing either a user page or a user talk page.

All this does is simply fill in the name of the user account or IP address so you don't have to worry about misspellings or getting the wrong IP address.


text:
Talk:Python Programming/Dictionaries

There's nothing here on iterating over dictionaries, and I'm a Python beginner, so I'm throwing this out for discussion:

for key in dict: print key, dict[key]

How to add things to an existing dictionary is not mentioned. In my specific example: I want to add a key and definitiond for every member in a specific class, but this article makes it look like I'd different dictionaries for every member and only after that could I, in the darkness, bind them.--Hakusa 09:45, 3 September 2006 (UTC)

 * As far as I can see, adding is as simple as the_dict['some key'] = value. If you wanted to merge a dictionary:

for key in old_dict: merge_dict[key] = old_dict[key]
 * But obviously keys using the same name are overwritten. Ragzouken 23:57, 3 November 2006 (UTC)

title: Talk:Python Programming/Dictionaries


text:
GENtle/DNA markers

This file contains DNA markers for virtual gels. You can add your own in the following form:
 * Name:amount,bp:amount,bp:amount,bp:amount,bp: ...
 * *Name is the name of the marker.
 * *bp is the number of base pairs in that band.
 * *amount is the amount of DNA in that band if 500 ng of the marker is loaded per lane (ng).
 * ":amount" can be omitted. The default amount (20) is then used.

Markers you enter will be used in the next GENtle release!

Promega 1kb DNA Ladder: 60,10000:60,8000:6000:5000:4000:60,3000:2500:2000:1500:60,1000:750:500:253:250 GeneRuler 50 bp DNA Ladder:20,1031:73,900:64,800:57,700:50,600:43,500:71,400:28,300:21,250:18,200:28,150:11,100:21,50 GeneRuler DNA Ladder Mix:20,10000:11,8000:13,6000:16,5000:16,4000:22,3500:27,3000:69,2500:18,2000:46,1500:24,1200:16,1031:30,900:21,800:19,700:16,600:14,500:42,400:20,300:20,200:20,100 GeneRuler and O'GeneRuler 1 kb DNA Ladder: GeneRuler and O'GeneRuler 1 kb Plus DNA Ladder: GeneRuler and O'GeneRuler 100 bp DNA Ladder: GeneRuler and O'GeneRuler 100 bp Plus DNA Ladder: GeneRuler and O'GeneRuler Ultra Low Range DNA Ladder: GeneRuler and O'GeneRuler Low Range DNA Ladder: GeneRuler and O'GeneRuler Express DNA Ladder: GeneRuler High Range DNA Ladder: Lambda DNA/Eco130I (StyI) Marker:199,19329:80,7743:64,6223:44,4254:36,3472:28,2690:19,1882:15,1489:10,925:4,421:1,74 Lambda DNA/EcoRI+HindIII Mix:0.5,21226:219,5148:53,4973:51,4268:44,3530:36,2027:21,1904:19,1584:16,1375:14,947:10,831:8,564 Lambda DNA/HindIII Marker:238,23130:97,9416:68,6557:45,4361:24,2322:21,2027:6,564:1,125 Lambda DNA/Pst1 Marker:0.5,11501:118.6,5077:52.3,4749:49,4507:46.5,2838:29.3,2556:26.3,2459:25.3,2443:25.2,2140:22.1,1986:20.5,1700:17.5,1159:11.9,1093:11.3,805:8.3,514:5.3,468:4.8,448:4.6,339:3.5,264:2.7,247:2.5 MassRuler High Range:20,10000:200,8000:160,6000:120,5000:100,4000:80,3000:60,2500:52,2000:40,1500 MassRuler Low Range:20,1031:200,900:180,800:160,700:140,600:120,500:200,400:80,300:60,200:40,100:20,80 MassRuler Mix:20,10000:200,8000:160,6000:120,5000:100,4000:80,3000:60,2500:50,2000:40,1500:32,1031:200,900:180,800:160,700:140,600:120,500:200,400:80,300:60,200:40,100:20,80 pBR322 DNA/AluI Marker:104,908:76,659:75,656:60,521:46,403:32,281:30,257:26,226:12,100:10, 90:1,63:1,57:1,49:1,46:1,19:1,15:1,11 Plasmid Factory 1kb DNA Ladder:115,10000:92,8000:69,6000:57,5000:46,4000:35,3000:29,2500:23,2000:17,1500:12,1000:6,500 Stratagene 1kb DNA Ladder:50,12000:50,10000:50,9000:50,8000:50,7000:40,6000:42,5000:42,4000:43,3000:40,2000:10,1500:8,1000:8,750:7,500:10,250 NEB 1kb DNA Ladder:42,10002:42,8001:50,6001:42,5001:33,4001:125,3001:48,2000:36,1500:42,1000:21,517:21,500 NEB 100bp DNA Ladder:45,1517:35,1200:95,1000:27,900:24,800:21,700:18,600:97,500:97,517:38,400:29,300:25,200:48,100

title: GENtle/DNA markers


text:
Finnish/Grammar-Verbs

Tenses
Finnish verbs have present, imperfect, perfect and pluperfect tenses.

Present
Present: corresponds to English present and future tenses. For the latter, a time qualifier may need to be used to avoid ambiguity.

 Verb type 1

asua - to live, reside

Exercise Number One
In each case use the personal pronoun with the correct present tense form of the verb.

Minä, sanon                 Sinä, sanot Minä, kävelen               Sinä, kävelet Minä, puhun                 Sinä, isket Minä, aloitan              Sinä, kirjoitat Hän, sanoo                Me, sanomme Hän, kävelee                Me, kävelemme Hän, kirjoittaa             Me, puhumme Hän, katsoo                 Me, yrittämme Te, sanotte                 He, sanovat Te, kävelette               He, kävelevät Te, korjatte                  He, yrittävät Te, puhutte                 He, katsovat

Exercise Number Two
Translate the following simple Finnish sentences into English. Think if you should use future or present tense in your translations.

 * 1) Teen töitä juuri nyt.
 * 2) Puhut ja kerrot aivan liikaa.
 * 3) Ymmärrän sitä hyvin, mutta he eivät ymmärrä.
 * 4) Mietimme ja arvioimme eri ratkaisuja
 * 5) Tiedämme, että ajat sinne huomenna
 * 6) Tiedän, että te rakennatte sen ja sinä suunnittelet sen.
 * 7) Haluan, että menet sinne ja teet niin kuin sanon.
 * 8) Arvostamme sitä, että hän kirjoittaa paljon.

Exercise Number Three
Following is a short dialogue between Asko and Niina set in railway station. Fill in Finnish verbs to the gaps according to the hints given in brackets.

 * Asko: (It is) kylmä. Onneksi (you will get) junan lämpöön kohta.
 * Niina: Toivon että (you have time to get) perille ajoissa.
 * Asko: Valitettavasti minä en (get) mukaan.
 * Niina: Minä (will leave) nyt, koska juna (arrives). (I will call) sinulle myöhemmin.
 * Asko: Odota, sinun (must) sanoa minä päivänä sinä (will return) takaisin.
 * Niina: Minä (will come) takaisin seuraavalla viikolla. Näkemiin sitten! (I am going to) lähteä nyt.

Exercise Number Four
Almost all the verbs have errors. Try to spot and correct them as fast as you can.

 * 1) Tämä kuulua tänne.
 * 2) He tavaavat minut tänään.
 * 3) Sinä vain hajoitat kaiken!
 * 4) Minä terotan ja korjatan veitsiä.
 * 5) Me tietämme että sinä soittat ja kirjoitat joka päivä minulle.
 * 6) He soittaavat kännykällä minulle ja yritävät kertoa kaiken.
 * 7) Minä aion ryhtyä töihin ja he aiovat myös. Hänkin aikoa.
 * 8) Me kieltäytymme ehdotuksestasi, koska se vain haitataa meitä.

Exercise Number One
Minä sanon                 Sinä sanot Minä kävelen               Sinä kävelet Minä puhun                 Sinä isket Minä aloitan               Sinä kirjoitat Hän sanoo                  Me sanomme Hän kävelee                Me kävelemme Hän kirjoittaa             Me puhumme Hän katsoo                 Me yritämme Te sanotte                 He sanovat Te kävelette               He kävelevät Te korjaatte               He yrittävät Te puhutte                 He katsovat

Exercise Number Two

 * 1) I am working just now.
 * 2) You talk and tell (people) far too much.
 * 3) I understand it well but they don't understand.
 * 4) We are thinking and estimating different results. (Or: We think and estimate differ...)
 * 5) We know that you will drive there tomorrow.
 * 6) I know that you'all will build it and you will plan it.
 * 7) I want you to go there and act as I say.
 * 8) We appreciate the fact that he writes a lot.

Exercise Number Four

 * 1) Tämä kuuluu tänne.
 * 2) He tapaavat minut tänään.
 * 3) Sinä vain hajotat kaiken!
 * 4) Minä teroitan ja korjaan veitsiä.
 * 5) Me tiedämme, että sinä luet ja kirjoitat joka päivä minulle.
 * 6) He soittavat kännykällä minulle ja yrittävät kertoa kaiken.
 * 7) Minä aion ryhtyä töihin ja he aikovat myös. Hänkin aikoo.
 * 8) Me kieltäydymme ehdotuksestasi, koska se vain haittaa meitä.

title: Finnish/Grammar-Verbs


text:
User talk:24~enwikibooks

hi Cheap Tickets - Airline Tickets airline tickets

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

title: User talk:24~enwikibooks


text:
Koranic Law of Nature

The Quran is the Islamic holy book, and contains extensive descriptions and claims regardings "Sunnatullah", which roughly translates to the English "Law of Nature". The Quranic Law of Nature expounds the Islamic view of the universe and how it was notionally created and is maintained by Allah, the Islamic supreme being.

Many scholars of Islam assert that the Quranic Law of Nature states properties of the universe that have only recently been discovered by the modern scientific process, predating some discoveries by up to 1400 years. Furthermore, many scholars will go as far as to claim that the Koranic version is more correct than the versions found in alternative religions' texts. The Koran, like many religious texts, is open to varying interpretation, and therefore one cannot simply state the veracity or fallacy of the claims therein.

This book aims to demonstrate how the Koran presents these claims and discusses the various interpretations that have been made over the centuries by Islamic scholars, and relates these discussions to the counterparts from other religions, as well as the standings of the claims relative to modern and historical scientific and philosophical opinion. The relationship between the Koranic Law of Nature and the Christian and Jewish Laws of Nature is of particular interest, due to these Abrahamic religions having much common ancestry.

The apparent agreement of certain interpretations of the Koran to modern science is also of interest, however one should bear in mind that it is easy to find the interpretation that fits current opinion and ignore others. Likewise it is easy to formulate an interpretation a posteriori, picking only the parts that appear in agreement and claiming flawless prediction when, in fact, the correlation is bound to occur because it has been created by the interpreter to meet that precise end!

It is the aim of this book to present the claims of the Koran with a neutral point-of-view, that is, neither endorsing nor condemning any side of any argument, unless that argument can be shown to be unequivocally right or wrong. Contribution to this book is encouraged, but vandalism (such as removing passages that you do not agree with) and false or unsubstantiated additions will be removed. The subject matter of this book is highly sensitive to some people and contributions should be measured and verifiable. If in doubt, ask on the discussion page before making edits.

Gaseous Mass to Heavens & Earth
''Then He settled to the heaven, while it was still smoke, and He said to it, and to the Earth: "Come willingly or unwillingly." They said: "We come willingly."'' ( 41:11)

Koran claims that this universe was a gaseous mass before it forms planets and galaxies.

Fusing & Separating, Big Bang
''Did those who reject not see that the heavens and the Earth were one piece and We tore them apart? And that We made from the water everything that lives. Will they not believe?'' ( 21:30)

the Koran claims that the universe was fused into one piece before expanding and separating.

Avoiding the Mistake of Genesis
The universe is not created in sequence, as mentioned in the Bible in the Book of Genesis. Book of Genesis believes that the Sun was created in the fourth day. This is strange because vegetables/plants which need the sun were created earlier. Koran does not support such sequence.

6 Days or Periods of Creation
And We have created the heavens and the Earth and what is between them in six days, and no fatigue touched Us. ( 50:38)

The Quranic vocabulary used to describe the length of time is nearly identical in pronunciation to the Hebrew word for day, "yom." However, the Arabic context in which it is used in the opening chapter of the Islamic scripture denotes an indefinite period of time. Contemporary English does not place a definitive upper bound on such temporal terminology; for example, the well-known colloquial phrase "back in my day" isn't intended to mean some twenty-four hours. In conclusion, the creation of our planet may have taken a thousand or 50,000 human years or neither.

''God is the One who created the heavens and the Earth, and everything between them in six days, then He settled to the Throne. You do not have beside Him any Lord, nor intercessor. Will you not then remember? He arranges matters from the heaven to the Earth, then it ascends to Him in a day which is equivalent to one thousand of the years which you count.'' ( 32:4-5)

The Angels and the Spirit ascent to Him in a day which is equivalent to fifty thousand years. ( 70:4)

All of the preceding verses are infused with God's natural names, attributes and methodology which never change. He is the Creator, the Ever-Living, the All-Knowing, Irresistible, etc. A comparative analysis with the book of Genesis demonstrates a contrast with the Qu'ranic description of the Creator and the Creation's nature. The second chapter of Genesis alludes to God rested after the creation of the heavens and the earth which is against his/her* nature according to the Qu'ran.

 * Note: Since God is genderless in the Qu'ran, any generic pronoun is irrelevant. Regardless, "He" is typically the chosen one in translated scriptural texts used by religions that revere Moses; in Islam, it is out of respect since the Creator is an active force. Academic speculation regarding the English usage of the pronoun "he" in reference to the Almighty Lord holds that it may stem from many hundreds of years past in which women had very few rights in religious matters and society as a whole.

Organization of the Universe
The sun and the moon are perfectly calculated. ( 55:5)

For you (God) subjected the sun and the moon, both diligently pursuing their courses. ( 14:33)

''And He committed for you the night and the day, and the sun and the moon, and the stars are committed by His command. In that are signs for a people who comprehend.'' ( 16:12)

the Koran claims that this universe is perfectly organized.

What Shape is the Earth?
Have you not seen that God merges the night into the day and merges the day into the night, and that He has committed the sun and the moon, each running to a predetermined term; and that God is expert of everything you do? ( 31:29)

''He created the heavens and the Earth with truth. He rolls the night over the day, and He rolls the day over the night. And He committed the sun and the moon, each running for an appointed term. Absolutely, He is the Noble, the Forgiving.'' ( 39:5)

the Koran implies that the Earth is a rolling/round sphere.

Expansion of the Universe
And We constructed the universe using matter, and We will expand it. ( 51:47)

the Koran claims that the Universe is currently expanding.

How Many Earths are There?
''God who created seven universes and the same number of Earths. His command descends between them, that you may know that God is capable of all things, and that God has encompassed all things with His knowledge.'' (65:12)

the Koran claims that currently there are many Earth-like planets.

The origin of life in water
''Did those who reject not see that the heavens and the Earth were one piece and We tore them apart? And that We made from the water everything that lives. Will they not believe?'' ( 21:30)

''And God created every moving creature from water. So some of them move on their bellies, and some walk on two legs, and some walk on four. God creates whatever He wills. God is capable of all things.'' ( 24:45)

the Koran claims that all living things were created out of water as a component.

What Holds up the Sky?
And He raised the sky and He established the balance. ( 55:7)

''... And He holds the sky so that it would not collapse upon the Earth, except by His leave. Indeed, God is Kind towards mankind, Merciful.'' ( 22:65)

He created the skies without pillars that you can see.... ( 31:10, also 13:2)

The Koran claims that God supports the sky from falling, without visible pillars.

Difference between the sun and the moon
"And He made the moon to illuminate in them, and He made the sun to be a lit flame?" ( 71:16)

the Koran claims that the sun is the source of light in relation to the moons illumination or reflection.

Astronomy
''And the sun runs to a specific destination, such is the design of the Noble, the Knowledgeable. And the moon We have measured it to appear in stages, until it returns to being like an old curved sheath. The sun is not to overtake the moon, nor will the night precede the day; each of them is swimming in its own orbit.'' ( 36:38-40)

the Koran claims that the sun and the moon are swimming in their own orbits. The Koran claims that the "swimming" has ups and downs and the sun has limited timespan.

'Comets Of Ice'
''Do you not see that God drives the clouds, then He gathers them together, then He piles them upon each other, then you see the soft rain coming out of them? And He sends down hail from the sky from the mountains to afflict whomever He wills, and He diverts it from whomever He wills, the brightness of the snow almost blinds the eyes.'' ( 24:43)

the Koran claims that rain is formed from the clouds through several stages. But where did the water came from to this Earth originally?

...He sent down from the sky water... ( 2:22, also 14:32 and  16:65)

the Koran claims that originally the water came as a hail or ice comets from the space.

Two Easts and Two Wests
...the Lord of the east and the west... ( 70:40)

...the Lord of the two east and the two west... ( 55:17)

...the distance of the two easts... ( 43:38)

the Koran implies that the sun does not rise and set on single location throughout the season.

Interstellar Galactic Material
To Him is what is in the heavens and what is in the Earth, and what is in between, and what is underneath the soil. ( 20:6, also 25:59,  32:4 and  50:38))

the Koran claims that there are some materials in between galaxies.

Sun is swimming in orbit
"...the sun and the moon, each swimming in an orbit." ( 21:33, also  36:40).

the Koran claims that the sun is not fixed in its place.

Aliens?
...and of his signs, the creation of the skies and the earth and the animals that are divided between them, and he can call upon them whenever he wishes. Shora, ayeye 29

claiming that there is life spread between the skies (probably space) and the earth.

The ongoing process of creation
... And He creates what you do not know. ( 16:8)

''... God creates whatever He wills. God is capable of all things.'' ( 24:45)

the Koran implies that God does not stop creating.

Embryological & Fetal Development
"While He created you in stages?" ( 71:14)

''And God created you from dust, then from a seed, then He made you into pairs. And no female becomes pregnant, nor gives birth, without His knowledge. Nor does anyone have his life extended, or his life is shortened, except in a record. This is easy for God.'' ( 35:11)

Koran claims that the first man is created from dust and the rest is created from a seed.

You might also mean life and god is referring to Evolution, Bacteria in the earth being the earth, seeds referring to mushrooms and plants, and pairs meaning the evolution of males and females.

Was he not a seed from sperm put forth? ( 75:37)

''He was created from water that gushes forth. It comes out from between the spine and the testicles.'' ( 86:7-8)

''Was there not a time in the past when the human being was nothing to even be mentioned? We have created the human from a seed that is mixed, We test him, so We made him hear and see. '' ( 76:1-2)

''The One who perfected everything He created and He began the creation of the human from mud. Then He made his offspring from a structure derived from a lowly liquid. Then He evolved him, and blew into him from His spirit. And He made for you the hearing, the eyesight, and the hearts; rarely are you thankful.'' ( 32:7-9)

the Koran claims that man are created from a small drop of sperm.

''Was he not a seed from sperm put forth? Then he was a clot, so he was created and developed.'' ( 75:37-38)

the Koran claims that the first stage of embryological development is comparable to a clot, in shape, in how he clings and in how it draws substance from his host.

''Then We created the seed into an embryo, then We created the embryo into a fetus, then We created the fetus into bone, then We covered the bone with flesh, then We brought forth a new creation. So glory be to God, the best of creators.'' ( 23:14)

''... then from an embryo, then from a fetus developed and undeveloped so that We make it clear to you. And We settle in the wombs what We wish to an appointed time, then We bring you out a child... '' ( 22:5)

the Koran claims that second stage of embryological development looks like a ragged piece of meat to the naked eye. The later stages is organs development starting with bones. In this stage the development could be uneven.

Pollution & wasting natural resources
''Pollution has appeared in the land and the sea by the hands of mankind for what they earned. He will make them taste some of what they have done, perhaps they will revert. Say: "Roam the Earth and see how the end was for those before. Most of them had set up partners." '' ( 30:41-42)

O Children of Adam, dress nicely at every temple, and eat and drink and do not indulge; He does not like the indulgers. ( 7:31)

the Koran claims that mankind pollutes the earth and it is possible to be more environmentally friendly.

Clouds Formation
''Do you not see that God drives the clouds, then He gathers them together, then He piles them upon each other, then you see the soft rain coming out of them? And He sends down hail from the sky from the mountains to afflict whomever He wills, and He diverts it from whomever He wills, the brightness of the snow almost blinds the eyes.'' ( 24:43)

the Koran claims that clouds can form mountain-size piles in the sky. This gigantic clouds formation creates a supercooled hail which causes electron flows that could produce lighting. This is the first clouds formation capable to produce rain.

''God Who sends the winds, so they raise clouds, and He spreads them in the sky as He wishes, then He turns them into joined pieces, then you see the rain drops come forth from their midst. Then when He makes them fall on whomever He wills of His servants, they rejoice!'' ( 30:48)

the Koran claims that there is a second clouds formation that capable to produce rain which might not capable of producing lighting.

And if they see a spectacle from the sky, they will Say: "Piled clouds!" ( 52:44)

the Koran claims that clouds are not solid as some might think.

The Water Cycle
And We sent down from the sky water in due measure, then We let it reside in the land, and We are capable of taking it away. ( 23:18)

the Koran claims that rainfall can be absorbed in to the ground and that it can eventually be removed (drained).

He sent down water from the sky, so valleys flowed according to their capacity... ( 13:17)

Do you not see that God sends down water from the sky, and causes it to become streams through the land, then He produces with it plants of various colors... ( 39:21)

the Koran claims that water moves through surface or underground rivers.

''Have you noted the water you drink? Did you send it down from the clouds, or was it We who sent it down?'' ( 56:68-69)

the Koran implies that even the most sophisticated rain-control techniques depends on presence clouds in vicinity and its readiness to produce rain.

''And He is the One who merges the two bodies of water. This is fresh and palatable and this is salty and bitter. And He made between them a partition and an inviolable barrier.'' ( 25:53)

the Koran claims that large rivers has invisible barriers between salt water and fresh water.

The diversity of mankind
''And from His signs are the creation of the heavens and the Earth, and the difference of your languages and your colors. In that are signs for the world.'' ( 30:22)

''O mankind, We created you from a male and female, and We made you into nations and tribes, that you may know one another. Surely, the most honourable among you in the sight of God is the most righteous. God is Knowledgeable, Expert.'' ( 49:13)

the Koran claims that variation in language, nations and races are inevitable and better to be embraced.

The Cerebrum

 * Have you seen if he lied and turned away? Did he not know that God can see? Alas, if he does not cease, We will strike the frontal lobe. A frontal lobe which sees and hears.
 * [96:15]

This translation of the Koran appears to claim that the front part of the brain, the frontal lobe controls the eyes and ears of a man.

 * Seest thou if he denies and turns away? Knows he not that Allah sees? Nay, if he desist not, We will seize him by the forelock - a lying, sinful forelock!
 * 96:13-16 The Holy Qur'an (Maulana Muhammad Ali)

This translation, however, refers to a "forelock", a lock of hair at the front of the head, rather than a lobe of the brain, and does not make any claims to the function of the lock, but rather the characteristics of lock as an extension of a sinful person.

Modern scientific evidence
The regions of the brain responsible for various functions of the human body are relatively well known, due to extensive research and modern imaging techniques which can map activity in the brain for a given action.

The auditory cortex is the primary centre of the brain responsible for sound processing. It is located in the temporal lobes on the sides of the brain. It is known to interact with various other areas of the brain, mostly also in the temporal lobe or in the parietal lobe, towards the top of the brain, but one of them, Broca's area, is located in the frontal lobe. This area is known to be involved in speech interpretation and production.

The visual cortex is located at the back of the brain, in the occipital lobe. It strongly interacts along two pathways. The "dorsal stream", shown in green below, sends the information to the parietal lobe, when the responses to the stimulus, such as movements of the arms or legs, are co-ordinated. The "ventral stream" (purple) sends data to the temporal lobe, where the meaning of the visual data is decoded and objects are recognised. This stream is also associated with the long-term memory of the information.

The frontal lobe of the brain is mostly involved in the ability to recognize future consequences resulting from current actions, to choose between good and bad actions (or better and best), override and suppress unacceptable social responses, and determine similarities and differences between things or events. Therefore, it is involved in higher mental functions, and if frequently implicated in the formation of personality.

Discussion
In contrast to the Koranic assertions, modern scientific opinion does not place much value on the function of the frontal lobe with respect to vision and hearing, although some areas of the frontal lobe are used to help process language. However, the argument could be made that "vision" in the Koran refers metaphorically to the foresight of an individual rather than the literal meaning of visual processing.

The function of the frontal lobe in formation of social response could also be seen to be referenced by the "lying and turning away", in which case the Koran obliquely notes this relationship.

Relativity of Time
He arranges matters from the heaven to the Earth, then it ascends to Him in a day which is equivalent to one thousand of the years which you count. ( 32:5)

The Angels and the Spirit ascent to Him in a day which is equivalent to fifty thousand years. ( 70:4)

the Koran implies that time is relative to the speed of moving subject.

Conclusion
The Koran claims that God does exist and actively interacting with humankind through Nature, His Creation. Koran claims that only knowledgeable people can recognize it and take advantage of it.

There are doubts about it, thanks to poor translations and limited number of scientists collectively improving the interpretation of the Koran. Such efforts are possible due to preservations and wide distributions of the original Arabic manuscripts. This book serves as a collection point of their efforts.

Averroës (ibn Rushd) declared, "Truth does not contradict truth but rather is consistent with it and bears witness to it", thereby dispelling any concerns about the issue of a double truth, one for religion and one for philosophy/science. Where conflict between religion and reason arises, particularly concerning scriptural interpretation, reason's method of demonstration of truth is primary in determining the need for allegorical interpretation of otherwise conflicting explanations.

If God exists, what to do about it? There are at least three alternatives:
 * 1) I don't care
 * 2) Let's serve Him. Believe in Him and doing good acts is enough. More on this ancient, inclusive and fundamentalist point-of-view in Islam Way of Life.
 * 3) Let's worship Him. God is Love. Koran is Guidance. Prophet Muhammad is the most perfect human. More on this modern, exclusive, idealist and official point-of-view in Islam Way of Life.

Disclaimer
''He is the One who sent down to you the Scripture, from which there are firm verses; they are the essence of the Scripture; and others which are similar to each other. As for those who have disease in their hearts, they will follow what is similar from it seeking to confuse, and seeking to derive an interpretation. But none know its interpretation except God and those who are well founded in knowledge, they Say: "We believe in it, all is from our Lord." And none will remember except the people of understanding.'' ( 3:7)

Koran disclaims that it can be used for good intention only, contrary to some people believes. Koran claims that it can be used for bad intentions as well. Fortunately, this bad intention, or to lesser degree bad interpretations and translations, can be exposed overtime by the experts via a consistent and holistic approach. The Islam Way of Life book is a summary of all firm verses, the essence of the Scripture.

Other Links

 * Islamic way of life.

title: Koranic Law of Nature


text:
Arimaa/Introduction to Strategy

Strategy is focused on long-term positions. A threat may create an advantage which can gradually be built upon, even if no captures happen for a while.

Direct goal
The ultimate object of Arimaa is to get a friendly rabbit to goal. If the opponent pays any attention to defense, an early goal is unlikely. It is difficult to directly tear a hole into a well-defended goal line, as pushes and pulls can be blocked. Until there is a substantial opening in the goal line, a rabbit advance should not be regarded as progress toward a goal. A quick rabbit advance may be costly, since an advanced rabbit can never retreat. Defending a rabbit from capture is often untenable, as an elephant has more important things to do, and any other defender could be captured itself.

Capture
Capture threats are important, whether or not they lead to actual captures. A piece is captured only when it is on a trap square with no friendly piece beside it; there are many ways to prevent a capture. If nothing else, an elephant can camp out beside a trap where there is a threat; since nothing can dislodge an elephant, its friendly pieces can never be captured in a trap it stays next to.

Often, the key to progress is to make strong threats around two different traps. The enemy elephant can only defend one trap, and any other defender or rescuer could itself be at risk.

The simplest double threat is a fork between one's home traps. If a piece can be flipped in the center, it may be doomed to such a fork. This is one of many reasons both elephants might stay near the center. Although any piece can unfreeze a friend, an elephant can do so without putting itself at risk.

A rabbit near the center could be an easy target for a fork, since rabbits can't retreat homeward. This is one reason rabbits often do not begin in the middle. A piece dragged up on the edge would only be threatened in one trap. Many such pulls are not worth the time they use up.

Hostages
In the diagram, Gold has taken the silver camel hostage, threatening to capture it in c3 if the silver elephant leaves. The c4 cat could not defend the hostage alone, as the cat could itself be captured if the trap had no other silver defender. Since an elephant beside its home trap could normally pull a non-elephant enemy piece into the trap, this type of hostage can only be defended by an elephant or by a team of well-placed weaker pieces. A solid camel hostage will make the forces asymmetrical: with the gold elephant holding the silver camel hostage and the silver elephant defending it, the gold camel is the strongest free piece. Until something changes, there is not even a threat to a gold horse. With the gold camel and horse both active in the east, Gold might soon overload Silver's defenses. Having the strongest free piece is a large advantage, if that piece is well-positioned and supported by other pieces.

Without a strong alignment, holding a hostage can be costly. An elephant deadlock at one's home trap is a potential space disadvantage, since the opponent can safely advance pieces toward the deadlocked trap, but the home elephant is not available to ensure safe advances of its own friendly pieces. A home hostage-holder often can't easily leave, as the former hostage might then team up with its elephant to force captures in the trap, clearing space for a goal. In fact, the defending elephant often has better prospects for leaving; its friendly pieces might swarm the trap and soon defend it independently. That could be a devastating turn of events for a hostage-holder, as the enemy elephant might become the strongest free piece. To prevent an easy rotation by the defender, a hostage-holder should usually have an additional strong piece standing guard.

Given such costs, one must be selective about hostage-taking. Generally speaking, it is no good for an elephant to hold a horse hostage while the enemy camel is elsewhere. Conversely, it is usually fine for an elephant to defend a horse hostage held by the enemy elephant, as the defending elephant might hope to rotate out, or trade its horse for the enemy camel if that camel advances.

A camel could take a horse hostage, but a hostage-holding camel might be vulnerable to the "defending" elephant. To maintain a hostage position, a non-elephant hostage-holder may need supporting pieces. A solid horse-by-camel hostage can be quite effective, however, if the hostage-holder's own elephant is free.

Attacking
If a piece cannot be taken as a strong hostage, it can safely advance along with its elephant. If the enemy camel can be cut off from one wing, a horse might quickly advance on that wing. In the shown, the silver horses advanced with impunity because the gold camel was far away. Silver was not worried about the gold elephant taking a horse hostage, as this would not have given Gold an advantage.

To own a trap square is to be safe from capture therein while the opponent is not. A trap attack entails an attempt to gain ownership of an away trap and thus threaten several quick captures. Here, Silver has a strong attack on c3, where he can clean up unless the gold elephant moves to c4, which would leave the a6 dog to be captured in c6. An elephant can usually defend against a trap attack, but then will not be available elsewhere.

Seeing his overall weakness in the west, Gold looked east and counterattacked f6, but this was too late; Silver captured two gold pieces in c3 and then forced a rabbit through to goal. Even had the gold elephant defended c3, Gold's long-term prospects would have been bleak; more silver pieces could have advanced in the west, and the silver elephant likely could have gone elsewhere while the gold elephant remained stuck defending against an attack which would otherwise result in a quick goal by Silver. A strong trap attack will create a space advantage, capture threats, and potential goal threats. Had Gold attacked f6 sooner, a capture race might have ensued.

Home and away games
There are two basic plans: try to take control of an away trap, or threaten enemy pieces in one's home traps. Since rabbits can't retreat, they can in principle be pulled out gradually. Rabbit pulling was once routine, but fell out of favor as trap attacks caught on. One who simply chases and drags pieces may quickly find a home trap under siege, and may even face a goal threat from a pulled rabbit. Homeward pulling has its place, but should perhaps not be one's main strategy.

Instead of thinking in terms of home and away play, one should think about the whole board. For a while, any possible move could be met with a solid defense or counterattack. The object is to attain the stronger overall position.

Piece mobility
The elephants are extremely important, but cannot do everything at once. A recurring theme in Arimaa strategy is elephant mobility. Sometimes an elephant gets blockaded, but more often it is restricted by the cost of leaving a particular area. Before getting into a position that will require one's elephant to stay put, one must consider the enemy elephant's situation. If one elephant is even slightly more free than the other, this can snowball, since it affects how free other pieces are.

In the opening, camel mobility is of first concern. If a camel becomes stuck against the edge, even in home territory, the effect may be similar to that of a camel hostage. Sometimes a horse quickly advances on a flank, potentially threatening attack but also providing a way of escape for a friendly piece which might get stuck below it. Rabbits may likewise advance on the edges to keep stronger pieces mobile. When the camel is in the middle, a dog or cat might advance one row ahead and act as a linchpin, so that the camel can immediately retreat if it is pulled forward.

Strategy vs. tactics
Though strategy is vital, tactics should be considered first. A goal wins the game regardless of the rest of the board; a strong position may mean nothing if one forgets to defend goal. Beyond that, one must watch for hanging pieces and false protection. If a player is careless in this regard, the opponent might quickly gain ground.

title: Arimaa/Introduction to Strategy


text:
Wings 3D/Tutorials/Introduction to Wings 3D

'''note: This is a rough draft, feel free to change, add on to, or correct spelling and grammar. -arquebus'''

Wings is probably the only 3D application (besides Nendo that was big inspiration for Wings developers) where you can learn just by using it, because the tools are accessed by right click menus rather than being spread out in toolbars. Only the tools you are currently able to use will be in the right click menu, depending on what selection mode your in. Wings is a box modeling application, which means polygonal modeling that grows out from a primitive object (usually a cube, hence box modeling) where you use four basic actions: move, extrude, scale and rotate. The geometry you create from these actions can be further refined by things like beveling, cutting edges, etc. Wings also has a smoothing function more popularly known as subdividing or sub-d. This not only gives you more geometry by dividing faces in half, but also smooths the shape of your model by rounding corners depending on closeness of edges.

Second Life
Wings can be used to make sculpties (also known as "sculpted primitives") in Second Life. Currently, the best information is in the Second Life forums. If it becomes wider used, information specific to Second Life should be developed here.


text:
A-level Economics

This is a collection of books for A-level Economics.

 * AQA
 * OCR
 * WJEC

title: A-level Economics


text:
User talk:Stennie

Hello and welcome to Wikibooks!

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

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

Good luck! -- LV (Dark Mark) 00:49, 21 January 2006 (UTC)

title: User talk:Stennie


text:
Talk:Mac OS X Tiger/Advanced Concepts

=Cleanup=

This WikiBook needs a table of contents. Without it, nobody knows what this WikiBook will encompass. To see an example of how a table of contents should be laid out, see the WikiBook Mac OS X Tiger.

In addition, this WikiBook needs an introduction (in plain english) and needs to be less dense.

See the WikiProject Macintosh oage for more information.

=Discussion=

>console
Does >console still work in Tiger? I thought many people were having trouble with it...

Console works alright ...

title: Talk:Mac OS X Tiger/Advanced Concepts


text:
Talk:Developing A Universal Religion/Determining Moral Behaviours/Behaviours That Enhance Life

David, some good thinking here. Another component to this is the harsh reality of survival. The human race will be extinct within another 500 years simply because it is rapidly destroying it's host, planet Earth.

A part of the moral redevelopment of the human race needs to take into account the behaviors we have exhibited to create this situation - and then provide an antidote. The keys behaviours that have created such a problem revolve primarily around selfishness and greed. As you have correctly stated elsewhere, our drive to produce more and more personal wealth and accumulation is causing much of our problems. Nature will eventually create balance if we do not take responsibility. The difficulty is getting the incredibly stupid and de-evolving human race to understand, or care about, the long term effects. This must begin by teaching the cause and effect at a very early age in schools and having children take it upon themselves to make a difference.

I put this in discussion because it really does need some discussion on methodologies before it is enshrined in the book. Garyj

 * Yes, Garyj: teaching children at a very early age will certainly help to indoctrinate beliefs and behaviours.
 * However, adults must first agree that this is a desired thing to do, then decide what to teach. I think that an adult-formed, long term goal comes first; then what practices to follow may come second. (A goal provides a guiding focus, can help to formulate strategies toward reaching that gaol, and then help to decide what behaviours to follow. Many of which, I assume, would include teaching the behaviours The Fellowship of Peace endorses.) David Hockey 18:23, 21 January 2006 (UTC)

Absolutely! The trick is to develop a group of parents that has the ear of governments and the education authorities. The project will unfortunatly need to be presented to governments pretty much as a business plan, since it will be the money involved in educating populations that will carry the day. Strong lobbying of political parties (and or starting a party) will be necessary?

Gary

 * Yes, Gary. I think that strong lobbying (and lots of finance) will be needed! David Hockey 21:39, 22 February 2006 (UTC)


text:
User:SirDuncan

SirDuncan of Sieghardt Lineage 2 Documentation Project

title: User:SirDuncan


text:
User talk:Sean~enwikibooks

Welcome
Hello and welcome to Wikibooks!

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

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

Good luck! --Derbeth talk 08:47, 21 January 2006 (UTC)

Naming policy
Please read Naming policy and rename Algebra I- For the Rest of Us. If you have any questions, leave a message on my talk page. --Derbeth talk 08:47, 21 January 2006 (UTC)

Welcome Again
Welcome, and I mean this sincerly, welcome to Wikibooks. It is fantastic to see somebody like you to come here and try to take on the incredibly huge task of trying to write a textbook. And to take on a subject like Algebra! This is something that really does need to be accomplished.

Take some time to poke around here on Wikibooks as well. Excuse some of the messes that you will find, and it is still a little bit confusing to people not quite familiar with Wikimedia projects. While Wikibooks is over three years old now, we have recently experienced a huge increase in just about every sort of number you can use to measure websites like this, and we are showing those growing pains as well. If you need some advise, feel free to contact any one of the project administrators for some help. They are all experienced users and are here to help people like you to succeed.

One reason I'm dropping a line to you is that you recently deleted a page by removing the content. Don't worry, I understand that you are new here, but for future reference I would like to encourage you to instead use a special markup symbol that we call a template tag. The specific tag for removing content is  , where you replace the word reason with the justification for removing the content. The bracket symbols indicate a special command or a template that the Wiki software will insert into the text at the point you put this into text you are editing here. All content on Wikibooks and similar project must be manually deleted as we don't trust a computer to be able to make accurate judgement calls to remove content like this, and only an administrator can really delete content. The reasons for this is to keep potential mischief makers from really messing things up, but allow some trusted individuals to help keep things under control.

I hope that your experience here on Wikibooks is productive and I also hope to see more of your contributions soon! --Rob Horning 14:50, 25 January 2006 (UTC)

Your account will be renamed
Hello,

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

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

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

Sorry for the inconvenience.

Yours, Keegan Peterzell Community Liaison, Wikimedia Foundation 23:40, 17 March 2015 (UTC)

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

title: User talk:Sean~enwikibooks


text: User talk:69.86.214.19

title: User talk:69.86.214.19


text: User talk:213.250.240.26

title: User talk:213.250.240.26


text: Georgia Water/Regional Plans/Chattahoochee River


text:
How To Become A Good Student/Chapter 4 - Management

Management Is The Key To Success
If you give yourself a goal or objective and you want to seriously contribute towards it, then the first thing you'll want to do is manage what to do first. Management is the key to success, no matter what you are trying to achieve. Management in simple terms is a noun that is related to the word "manage" which means:

1. To direct or be in charge of.

2. To handle or control, to force.

3. To succeed at an attempt.

In a computer, you sometimes defragment your hard drive in order to arrange the data so it can be accessed easily. This is similar to management. Project management is another type of management and so on. Management is not always on the same scale, sometimes at a bigger level there will be times when certain tasks become increasingly difficult, especially in such demanding environments such as the workplace. You may find that you will spend a large amount of your life worrying about these issues. Effective management can greatly reduce this stress.

Management for students is different from management for working adults. Students manage not only their routine but their behavior and many other responsibilities. Fortunately, these things are not as demanding as they are for adults, and a student has ample time to sort out a plan.

Types and Methods of Management
There are various kinds of management:

1.) Crisis Management

Management done at a critical moment with quickness and accuracy. e.g. If somebody attacks you, your body will need to quickly react by taking in the surroundings and deciding on a course of action. This type of life-threatening problem will probably not occur too often, but there are other types of crises which may provoke similar reactions out of your body, even if they are not needed. Do you ever feel that sinking feeling in your heart when you have a lot of assignments due at once? That is a type of problem which your body will react to in a similar way to a life-threatening danger. Your body's reaction is rarely needed when this happens, so it is best to avoid it altogether. Stress management and also long-term management will help to prevent this.

2.) Life Management

A form of long-term management which occurs on a daily, weekly, or even yearly basis. Some people refer to this as a 'routine', and that's the general idea behind life management. Organizing events into a predictable schedule may not sound very exciting, but it makes it easier to tackle one problem at a time. For this kind of management you may want a calendar which you can write on so that you can mark all of the important obstacles in your life, and work around them.

3.) Project/Task Management

Management done to complete a certain task. In your school you may be required to write an assignment on a certain topic, which may be due by the end of the week. When you are working on it, you will need to figure out what to do, what order to do it in, and the amount of time you should allocate to each smaller task.

Management becomes much easier when you are relaxed and able to sit back and outline what should be done. If you are tired you may find this difficult, so remember to get lots of rest at night, and also practice those relaxation techniques we showed you earlier. Your mind works much like a computer. It prefers information to be in an orderly fashion, this is why your brain rearranges itself while you sleep. You can make things a lot easier for your mind if you order things before you put them in. This is why planning is so useful for getting work done.

1. Project/Task Management
In order to produce an exceptional Project, it's helpful to ask these six questions. If you want, you can put them on a piece of paper to use as your plan.

1. "What is the task I need to complete?"

If you don't know where you're going, you won't arrive where you need to be. For example: I need to write a 5-page paper on Environmental Pollution. Write this at the top of your paper.

2. "What information do I need?"

If your paper is on Environmental Pollution, you need to find out what types of pollution there are and collect details about the subject. Now would be a good time to plan subheadings for your plan so that you know exactly what areas of the topic you are going to cover. For example:

What is pollution?

This will introduce your topic in general. Normally you would want something more catchy than this.

What kinds of pollution are there?

This will make your topic more specific, and zoom in on what you want to cover. This is where you will introduce 'Environmental Pollution'.

Dealing with environmental pollution.'

One of your focus questions. There may be thousands of possible focus questions for each topic. Choose the ones that interest you most. Here are some other focus questions:

 The future impacts of environmental pollution.

 The impact of environmental pollution on animals.

The impact of environmental pollution on global warming.

If you are lucky, a teacher will let you choose these focus questions yourself, but sometimes you will be given a list that you must choose from. In this case it is not a good idea to go for the most interesting one, as everyone else will go for that. Instead, go for the most difficult one. I assure you, the teacher will appreciate reading something different after reading twenty essays on the same topic, and will award you with good grades, even if your essay wasn't as good as the others.

3. "What are the resources I have at my disposal to complete my task?"

You might use the Internet, library, magazines, or go to a book store. Maybe one of your friends works at a water treatment Plant. You could interview this friend. Many other sources of help are usually available: teachers or supervisors may be able to direct you to helpful sources. Remember, teachers will reward creativity, and an essay with quotes from your friend who works at a water treatment plant will most definitely get very good marks, as it will be something different from all of the other essays that teachers are forced to sit through.

4. "What is the end product going to look like?"

Is it a presentation, a written paper, a website, a physical construction like a model? What were the teacher's / supervisor's guidelines on this assignment? If the directions were not clear, this is the time to go back and ask questions.

5. "Now that I have the information, what do I do with it?"

Take notes, make a chart, highlight, collect citation information. In essence, you have everything you need. Anything from now on will just build on from what you have collected.

6. Evaluate the product before turning it in / presenting it.

"Does it meet the requirements that were given to me?" If something was left out, fix it before submitting it. Remember to proof-read your work. I assure you that you will have made at least a couple a spelling errors somewhere in your work. Reading over your work, even just skim-reading, will help you to find and remove those small errors.

For more information and tips on studying, have a look at the Study_Skills Wikibook. That's enough management for now as a student. Now let's learn to help others and advise them next.


text:
A-level Computing 2009/AQA/Processing and Programming Techniques

Contents

 * /Data Representation in Computers/ Questions Answers
 * /Machine Level Structure/
 * /Machine Operation and Assembly Language/
 * /Programming Concepts/
 * /Operating Systems/


text:
Budget Watch Collecting/Removing the dial

First remove at least the seconds and minute hands, the hour hand if desired.

Timex dials are usually held with tabs that bend over the movement plate. Lift the tabs as little as possible.

Some inexpensive pinlevers have tiny screws on the edge of the face.

Most good watches will have two dial feet or posts with some sort of screw to retain them.

A common method on Swiss watches is a cam screw--this will have a very tall head, and a sharp ridge between the threads and the head. There is a flat removed from the ridge. These will be screwed in until almost snug, with the flat lined up with the dial hole. The dial is installed, then these screws are backed out--The ridge will bite into the dial foot, and backing the screw out will tighten the dial. To remove, turn clockwise until the flat aligns with the post.

The screws may be simple setscrews around the edge--Sometimes straight in towards the center, sometimes at an angle.

A third, commonly found on Japanese watches is a cam near the edge. This will be pried away from the foot. (Picture will come later)