text:
Video Production/Workflow for translators helping video collectives with subtitle translations

How to translate a subtitle file and return it to the project
It is likely that the video translation will have a project page where you can download the video and the original language subtitle file and cont

The process is...

1) Download and look at the video file and the original language subtitle file to check you can translate it.

2) Email the translations project co-ordinator to check that someone isn't already translating it

2) Open it, translate it and save it (see below for instructions)

3) Email the subtitle file to the translation project co-ordinator

Opening Editing and Saving Subtitle Files from a Text Editor
Video creators and distributors are starting to create subtitle files for their videos. These are transcripts with timecodes included. They are very useful as they can be played on a computer linked with the appropriate video file, so that the subtitles are displayed. They can also be used to create subtitles for DVDs. These are very useful because the subtitles can be selected or not when opening the video file, and do not need to be 'burnt on' to the image as with traditional subtitling practice.

What video makers and distributors increasingly need are subtitle files (most frequently *.srt files) in as many languages as possible.

There are two main ways for translators to help the process of creating multiple versions of subtitle files in different languages.

a) Translator downloads the *.srt file and open it up in a text editor. Each subtitle will look like the section below.

9 00:00:48,105 --> 00:00:51,573 But on the other hand, if you say that there will be a screening

10 00:00:51,574 --> 00:00:56,656 it's a whole different thing and a lot more people come.

---///---

If there are mistakes and the files are saved in the wrong format, it's not a disaster. A subtitle project coordinator then take the word/text documents that are created by translators and convert them to *.srt files

There is a manual page for opening and saving a file called opening and editing subtitle files in a text editor

b) Translators use the appropriate subtitle programs - subtitle workshop (pc), miyu (mac), gnome subtitler (linux) - and open and save .srt files with these tools.

(The more translators get used to working with subtitle tools and files the better. As with subtitle tools, translators can also create subtitle files, and edit existing ones adjusting their line lengths if needed.)

There are manual pages for opening and saving subtitle files in the following programmes.

subtitle workshop(pc) - http://en.wikibooks.org/wiki/Making_subtitles_in_subtitle_workshop - needs to be modified for just editing miyu (mac) - to do gnome subtitler (linux) - to do


text:
Wikijunior:Flower Alphabet

This book is a project within Wikijunior, produced at the Pre-Reading level. The specific aim of this book is to give children an introduction to the different types of flowers that they may or may not be familiar with. This book is intended to be read by a parent/guardian or teacher to a child so that they can become familiar with the letters of the alphabet.

Flower Alphabet

Alfabet roślin - okładka.jpg

-- /A/ /B/  /C/  /D/  /E/  /F/  /G/  /H/  /I/  /J/  /K/  /L/  /M/  /N/  /O/  /P/  /Q/  /R/  /S/  /T/  /U/  /V/  /W/  /X/  /Y/  /Z/ --

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

title: Wikijunior:Flower Alphabet


text:
Wikijunior:Flower Alphabet/A

A is for Aster

title: Wikijunior:Flower Alphabet/A


text:
User talk:213.175.45.2

Please remember that work on this Wikibooks should be in English and not Czech.

Xania talk 12:30, 10 January 2007 (UTC)

title: User talk:213.175.45.2


text:
User talk:Gogreen

Hello and welcome to Wikibooks!

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

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

Good luck! -- Herby talk thyme 12:47, 10 January 2007 (UTC)

title: User talk:Gogreen


text:
American Literature/20th Century/Carl Sandburg

Life
Carl August Sandburg was born on January 6, 1878 in Illinois to Swedish parents.

Works

 * Selected poetry collections
 * In Reckless Ecstasy (1904)
 * Chicago Poems (1916)
 * Slabs of the Sunburnt West (1922)
 * Good Morning, America (1928)
 * Harvest Poems, 1910-1960 (1960) (poetry)
 * Biography
 * Abraham Lincoln: The Prairie Years (1926)
 * Abe Lincoln Grows Up (1928)
 * Mary Lincoln: Wife and Widow (1932) (biography)
 * Abraham Lincoln: The War Years (1939) (biography)
 * Novel
 * Remembrance Rock (1948) (novel)
 * Song collection
 * Songs of America (1927)
 * Children's story collection
 * Rootabaga Pigeons (1923)


text:
Cookbook:Rye

Rye is a grain used as a staple food, as well as animal feed. Rye flour is often used in sourdough bread, and in fact the gluten in rye requires the acids of a sourdough ferment to develop the gumminess needed to help rye bread rise properly. A prominent sourdough rye bread is called pumpernickel.

Rye is not gluten free. Whilst it does not have the same form of gluten much loved by bread bakers, it has a protein called secalin which is also harmful to people sensitive to gluten, including those with coeliac disease.

title: Cookbook:Rye


text:
User talk:Abwolf~enwikibooks

Hello and welcome to Wikibooks!

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

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

Good luck! -- Herby talk thyme 13:17, 10 January 2007 (UTC)

Your account will be renamed
Hello,

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

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

title: User talk:Abwolf~enwikibooks


text:
User talk:KFP

Hello and welcome to Wikibooks!

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

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

Good luck! -- Herby talk thyme 13:40, 10 January 2007 (UTC)

 * Thank you for the welcome! --KFP 13:55, 10 January 2007 (UTC)

Images
Could you review your actions please - for example is public domain - thanks -- Herby  talk thyme 13:40, 10 January 2007 (UTC)

 * Yes, the image page has the PD tag but as there is no indication of the image source or photographer, the copyright/licensing status cannot be verified. We need to know who has released these images into the public domain. --KFP 13:55, 10 January 2007 (UTC)
 * OK I learnt something!! Regards -- Herby talk thyme 14:15, 10 January 2007 (UTC)

Deletions
They will get done shortly I'm sure - somewhat less active here at the moment -- Herby talk thyme 10:22, 26 January 2007 (UTC)

title: User talk:KFP


text:
User talk:206.131.108.4

Please do not replace Wikibooks pages with blank content. Blank pages are harmful to Wikibooks because they have a tendency to confuse readers. If it is a duplicate article, please redirect it to an appropriate existing page. If the page has been vandalised, please revert it to the last legitimate version. If you feel that the content of a page is inappropriate, please edit the page and replace it with appropriate content. If you believe there is no hope for the page, please see the deletion policy for how to proceed. If page is no longer useful, insert delete to its top. Thanks for contributing to Wikibooks! -- Herby talk thyme 14:20, 10 January 2007 (UTC)

title: User talk:206.131.108.4


text: Template:Units

title: Template:Units


text:
XForms/Guest Registry

We would like to know who is using this cookbook. Please tell us all little about yourself:

Template Organization-Name

 * Contact Name:
 * Organization:
 * Location:
 * Use: How are you using the book?
 * Like: What did you like the most about the XForms Tutorial and Cookbook? What samples were the most useful?
 * Improve: What would you like to see improved in the book? What new examples would you like?

County Community College
I am looking for a working examples that my students could use to build their own XForms applications. I will be using the example in this book to help my students learn about XForms.
 * Name: County Community College
 * Location: New Jersey
 * Use: Teaching yourself, teaching others, college classroom, high school etc.
 * Like:

US Federal Agency

 * Name: Federal Agancy
 * Location: Washington DC
 * Use: Teaching our staff how to build XRX applications and manage TEI documents
 * Like: Working progams
 * Improve: More sample document workflow application

Minnesota Department of Revenue - Property Tax Division

 * Name: Dan McCreary
 * Location: St. Paul Minnesota
 * Use: We are using the cookbook to learn XForms and build property taxation form.
 * Like: We like XForms because we can generate them from XML Schemas and we don't need any Java or C# or VB to when we use the eXist native XML database
 * Would Like: We would like more examples that use XML Binding (XBL)

A Financial Institution

 * Location: Minneapolis Minnesota
 * Use: We use the cookbook to teach internal staff how to build an maintain forms
 * Like: Small working examples. The links are great.
 * Would Like: Examples of process management forms and Schematron rules engines using XForms

ZheJiang, China

 * Name: zhouliyi
 * Location: ZheJiang,China
 * Use: We are using the cookbook to share XForms examples and document our best practices.
 * Like: XForms is great for creating prototypes of our forms.
 * Would like: How you create XForms by transforming a source XML Schema information would be very nice.
 * Example: Examples that integrate with databases would be great.

NIC - Open Technology Centre
developing sample applications.
 * Contact Name: Rajamani M
 * Organization: NIC - Open Technology Centre
 * Location: India
 * Use: We are using the cookbook to share XForms, XRX examples and
 * Like: We like the XRX sample with Database connected
 * Improve: More examples to expand the concept in each element and functions

Drybridge Consulting

 * Contact Name: Arthur Colman
 * Organization: Drybridge Consulting
 * Location: Boston, MA USA
 * Use: Using the cookbook to upgrade our implementation of XForms and to share examples.
 * Like: The broad range of examples.

Xerox

 * Contact Name: Jacob Woodworth
 * Organization: Xerox
 * Location: Rochester, NY
 * Use: Implementation using XForms.
 * Like: The examples I've seen here are the best I've found on the Web.
 * Improve: TBD

Grant Solutions

 * Organization: Grant Solutions
 * Location: Rockville Maryland
 * Use: Teaching developers and BAs to use XForms (Orbeon)
 * Like: Beginning guides
 * Improve: more materials on binds and submission

Send us a Postcard!
If you really like the book please send a postcard to: Dan McCreary 3007 Cavell Ave. So St. Louis Park, MN 55426 It would be very much appreciated!

title: XForms/Guest Registry


text:
User talk:H2oborne

H2oborne - Waterborne is derived from the U.S. Army Watercraft Division Stationed out of Ft. Eustis VA. Watercraft Engineers and Watercraft Operators use this nickname as a symbolism of their dedication to the US Army Watercraft Units. The Watercraft Units are not as tactical as the 82nd Airborne bur just as dedicated. The 1098th Medium boat Unit at Ft. Eustis,Va use the phrase Waterborne to symbolize their dedication to their Unit. It is displayed as their Motto for the Unit. I have used this Nickname for years on-line along with several other Watercraft Engineers and Operators.--H2oborne 15:30, 10 January 2007 (UTC)

title: User talk:H2oborne


text:
Haskell/Packaging

A guide to the best practice for creating a new Haskell project or program.

Recommended tools
Almost all new Haskell projects use the following tools. Each is intrinsically useful, but using a set of common tools also benefits everyone by increasing productivity, and you're more likely to get patches.

Build system
Use Cabal. You should read the Cabal User's Guide. Particularly, section two and also section three will be very helpful. For generating a project, Cabal depends on Git, so we recommend installing it if you don't have it already.

Documentation
For libraries, use Haddock.

Testing
Pure code can be tested using QuickCheck (for tasty integration, which is recommended, tasty-quickcheck), hedgehog, or SmallCheck (though as of 2023 they recommend using falsify instead with tasty), and impure code can be tested with tasty-hunit.

To get started, try Haskell/Testing. For a slightly more advanced introduction, Simple Unit Testing in Haskell is a blog article about creating a testing framework for QuickCheck using some Template Haskell.

Structure of a simple project
You can generate a new Haskell project using `cabal init`. It will interactively ask you a few questions by default to help set your project up. For most of the questions, the default are fine.

If you disable the interactive mode though, it will not ask you the questions. Assume that  is the name of the current directory. It'll generate a project with this shape:

 * app/Main.hs -- the main haskell source file
 * $DIR.cabal -- the cabal build description
 * CHANGELOG.md

You can of course modify this, with subdirectories and multiple modules.

Here is a transcript on how you'd create a minimal Haskell project using Git and Cabal build it, install it and release.

The command tool 'cabal init' automates all this for you, but it's important that you understand all the parts first.

We will now walk through the creation of the infrastructure for a simple Haskell executable. Advice for libraries follows after.

Create a directory
Create a directory for the source:

$ mkdir haq $ cd haq

Generate a project skeleton using Cabal
First, run  to update cabal's repositories.

As directed earlier, run  and answer the question with what you see fit. What does the package build: 1) Library * 2) Executable 3) Library and Executable  4) Test suite Your choice? [default: Executable] 2 Do you wish to overwrite existing files (backups will be created) (y/n)? [default: n] y Please choose version of the Cabal specification to use: 1) 1.24 (legacy)   2) 2.0   (+ support for Backpack, internal sub-libs, '^>=' operator) 3) 2.2  (+ support for 'common', 'elif', redundant commas, SPDX)   4) 2.4   (+ support for '**' globbing) * 5) 3.0  (+ set notation for ==, common stanzas in ifs, more redundant commas, better pkgconfig-depends)   6) 3.4   (+ sublibraries in 'mixins', optional 'default-language') Your choice? [default: 3.0] 5 Package name? [default: haq] Package version? [default: 0.1.0.0] Please choose a license: 1) BSD-2-Clause  2) BSD-3-Clause 3) Apache-2.0  4) MIT 5) MPL-2.0  6) ISC 7) GPL-2.0-only  8) GPL-3.0-only 9) LGPL-2.1-only 10) LGPL-3.0-only 11) AGPL-3.0-only 12) GPL-2.0-or-later 13) GPL-3.0-or-later 14) LGPL-2.1-or-later 15) LGPL-3.0-or-later 16) AGPL-3.0-or-later 17) Other (specify) Your choice? 16 Author name? [default: John Doe] Maintainer email? [default: johndoe@example.com] Project homepage URL? [optional] Project synopsis? [optional] Haqify code Project category:  1) Codec 2) Concurrency  3) Control 4) Data  5) Database 6) Development  7) Distribution 8) Game  9) Graphics 10) Language 11) Math 12) Network 13) Sound 14) System 15) Testing 16) Text 17) Web 18) Other (specify) Your choice? [default: (none)] What is the main module of the executable: * 1) Main.hs  2) Main.lhs   3) Other (specify) Your choice? [default: Main.hs] Application directory: * 1) app  2) exe 3) src-exe  4) Other (specify) Your choice? [default: app] Choose a language for your executable: * 1) Haskell2010  2) Haskell98 3) GHC2021 (requires at least GHC 9.2)  4) Other (specify) Your choice? [default: Haskell2010] 3 Add informative comments to each field in the cabal file. (y/n)? [default: y] [Log] Using cabal specification: 3.0 [Log] Creating fresh file LICENSE... [Log] Creating fresh file CHANGELOG.md... [Log] Creating fresh directory ./app... [Log] Creating fresh file app/Main.hs... [Log] Creating fresh file haq.cabal... [Warning] No synopsis given. You should edit the .cabal file and add one. [Info] You may want to edit the .cabal file and add a Description field.

For most of these you can just pick your own, but as we pointed out earlier, the defaults are fine. For the question about choosing a language, you should pick the latest existing language if possible.

If your package uses other packages, e.g. array, you'll need to add them to the Build-Depends: field of the Cabal file.

Write some Haskell source
Write your program:

$ cat > app/Main.hs -- -- Copyright (c) 2006 Don Stewart - http://www.cse.unsw.edu.au/~dons -- GPL version 2 or later (see http://www.gnu.org/copyleft/gpl.html) -- import System.Environment

-- 'main' runs the main program main :: IO main = getArgs >>= print. haqify. head

haqify s = "Haq! " ++ s

Stick it in Git
$ git init $ git add --all $ git commit -m 'Import haq source' $ ls -A .git app CHANGELOG.md LICENSE haq.cabal

Build your project
Now build it!

$ cabal build

Run it
And now you can run your cool project: $ cabal run exe:haq -- me "Haq! me"

Build some haddock documentation
Generate some API documentation into dist/doc/*

$ cabal haddock --haddock-all

Which will tell you where the documentation is generated. You can view it via

$ w3m -dump dist-newstyle/build/$ARCH/ghc-x.x.x/haq-x.x.x.x/doc/html/package/Main.html # this is only to show what the path will vaguely look like haq Contents Index Main

Synopsis main :: IO

Documentation

main :: IO main runs the main program

Produced by Haddock version 0.7

No output? Make sure you have actually installed haddock.

Add some automated testing: QuickCheck
We'll use QuickCheck to specify a simple property of our Haq.hs code. Create a tests module, Tests.hs, with some QuickCheck boilerplate:

$ cat > Tests.hs import Char import List import Test.QuickCheck import Text.Printf

main = mapM_ (\(s,a) -> printf "%-25s: " s >> a) tests

instance Arbitrary Char where arbitrary    = choose ('\0', '\128') coarbitrary c = variant (ord c `rem` 4)

Now let's write a simple property:

$ cat >> Tests.hs -- reversing twice a finite list, is the same as identity prop_reversereverse s = (reverse . reverse) s == id s   where _ = s :: [Int]

-- and add this to the tests list tests = [("reverse.reverse/id", test prop_reversereverse)]

We can now run this test, and have QuickCheck generate the test data:

$ runhaskell Tests.hs reverse.reverse/id      : OK, passed 100 tests.

Let's add a test for the 'haqify' function:

-- Dropping the "Haq! " string is the same as identity prop_haq s = drop (length "Haq! ") (haqify s) == id s   where haqify s = "Haq! " ++ s

tests = [("reverse.reverse/id", test prop_reversereverse) ,("drop.haq/id",       test prop_haq)]

and let's test that:

$ runhaskell Tests.hs reverse.reverse/id      : OK, passed 100 tests. drop.haq/id             : OK, passed 100 tests.

Great!

Running the test suite from darcs
We can arrange for darcs to run the test suite on every commit:

$ darcs setpref test "runhaskell Tests.hs" Changing value of test from '' to 'runhaskell Tests.hs'

will run the full set of QuickChecks. (If your test requires it you may need to ensure other things are built too e.g.: darcs setpref test "alex Tokens.x;happy Grammar.y;runhaskell Tests.hs").

Let's commit a new patch:

$ darcs add Tests.hs $ darcs record --all What is the patch name? Add testsuite Do you want to add a long comment? [yn]n Running test... reverse.reverse/id      : OK, passed 100 tests. drop.haq/id             : OK, passed 100 tests. Test ran successfully. Looks like a good patch. Finished recording patch 'Add testsuite'

Excellent, now patches must pass the test suite before they can be committed.

Tag the stable version, create a tarball, and sell it!
Tag the stable version:

$ darcs tag What is the version name? 0.0 Finished tagging patch 'TAG 0.0'

Advanced Darcs functionality: lazy get
As your repositories accumulate patches, new users can become annoyed at how long it takes to accomplish the initial darcs get. (Some projects, like yi or GHC, can have thousands of patches.) Darcs is quick enough, but downloading thousands of individual patches can still take a while. Isn't there some way to make things more efficient?

Darcs provides the --lazy option to darcs get. This enables to download only the latest version of the repository. Patches are later downloaded on demand if needed.

Distribution
When distributing your Haskell program, you have roughly three options:
 * 1) distributing via a Darcs repository
 * 2) distributing a tarball
 * 3) a Darcs tarball
 * 4) a Cabal tarball

With a Darcs repository, if it is public, then you are done. However: perhaps you don't have a server with Darcs, or perhaps your computer isn't set up for people to darcs pull from it. In which case you'll need to distribute the source via tarball.

Tarballs via darcs
Darcs provides a command where it will make a compressed tarball, and it will place a copy of all the files it manages into it. (Note that nothing in _darcs will be included - it'll just be your source files, no revision history.)

$ darcs dist -d haq-0.0 Created dist as haq-0.0.tar.gz

And you're all set up!

Tarballs via Cabal
Since our code is cabalised, we can create a tarball with Cabal directly:

$ runhaskell Setup.lhs sdist Building source dist for haq-0.0... Source tarball created: dist/haq-0.0.tar.gz

This has advantages and disadvantages compared to a Darcs-produced tarball. The primary advantage is that Cabal will do more checking of our repository, and more importantly, it'll ensure that the tarball has the structure needed by HackageDB and cabal-install.

However, it does have a disadvantage: it packages up only the files needed to build the project. It will deliberately fail to include other files in the repository, even if they turn out to be necessary at some point. To include other files (such as Test.hs in the above example), we need to add lines to the cabal file like:

extra-source-files: Tests.hs

If we had them, we could make sure files like AUTHORS or the README get included as well:

data-files: AUTHORS, README

Summary
The following files were created:

$ ls   Haq.hs           Tests.hs         dist             haq.cabal Setup.lhs       _darcs           haq-0.0.tar.gz

Libraries
The process for creating a Haskell library is almost identical. The differences are as follows, for the hypothetical "ltree" library:

Hierarchical source
The source should live under a directory path that fits into the existing module layout guide. So we would create the following directory structure, for the module Data.LTree:

$ mkdir Data $ cat > Data/LTree.hs    module Data.LTree where

So our Data.LTree module lives in Data/LTree.hs

The Cabal file
Cabal files for libraries list the publicly visible modules, and have no executable section:

$ cat ltree.cabal Name:               ltree Version:            0.1 Description:        Lambda tree implementation License:            BSD3 License-file:       LICENSE Author:             Don Stewart Maintainer:         dons@cse.unsw.edu.au    Build-Depends:       base Exposed-modules:    Data.LTree

We can thus build our library:

$ runhaskell Setup.lhs configure --prefix=$HOME --user $ runhaskell Setup.lhs build Preprocessing library ltree-0.1...   Building ltree-0.1... [1 of 1] Compiling Data.LTree      ( Data/LTree.hs, dist/build/Data/LTree.o ) /usr/bin/ar: creating dist/build/libHSltree-0.1.a

and our library has been created as a object archive. On *nix systems, you should probably add the --user flag to the configure step (this means you want to update your local package database during installation). Now install it:

$ runhaskell Setup.lhs install Installing: /home/dons/lib/ltree-0.1/ghc-6.6 & /home/dons/bin ltree-0.1...   Registering ltree-0.1...    Reading package info from ".installed-pkg-config" ... done. Saving old package config file... done. Writing new package config file... done.

And we're done! You can use your new library from, for example, ghci:

$ ghci -package ltree Prelude> :m + Data.LTree Prelude Data.LTree>

The new library is in scope, and ready to go.

More complex build systems
For larger projects it is useful to have source trees stored in subdirectories. This can be done simply by creating a directory, for example, "src", into which you will put your src tree.

To have Cabal find this code, you add the following line to your Cabal file:

hs-source-dirs: src

Cabal can set up to also run configure scripts, along with a range of other features. For more information consult the Cabal documentation.

Internal modules
If your library uses internal modules that are not exposed, do not forget to list them in the other-modules field:

other-modules: My.Own.Module

Failing to do so (as of GHC 6.8.3) may lead to your library deceptively building without errors but actually being unusable from applications, which would fail at build time with a linker error.

cabal init
A package management tool for Haskell called cabal-install provides a command line tool to help developers create a simple cabal project. Just run and answer all the questions. Default values are provided for each. $ cabal init Package name [default "test"]? Package version [default "0.1"]? Please choose a license: ...

mkcabal
mkcabal is a tool that existed before cabal init, which also automatically populates a new cabal project :

darcs get http://code.haskell.org/~dons/code/mkcabal

N.B. This tool does not work in Windows. The Windows version of GHC does not include the readline package that this tool needs.

Usage is:

$ mkcabal Project name: haq What license ["GPL","LGPL","BSD3","BSD4","PublicDomain","AllRightsReserved"] ["BSD3"]: What kind of project [Executable,Library] [Executable]: Is this your name? - "Don Stewart " [Y/n]: Is this your email address? - "<dons@cse.unsw.edu.au>" [Y/n]: Created Setup.lhs and haq.cabal $ ls Haq.hs   LICENSE   Setup.lhs _darcs    dist      haq.cabal

which will fill out some stub Cabal files for the project 'haq'.

To create an entirely new project tree:

$ mkcabal --init-project Project name: haq What license ["GPL","LGPL","BSD3","BSD4","PublicDomain","AllRightsReserved"] ["BSD3"]: What kind of project [Executable,Library] [Executable]: Is this your name? - "Don Stewart " [Y/n]: Is this your email address? - "<dons@cse.unsw.edu.au>" [Y/n]: Created new project directory: haq $ cd haq $ ls Haq.hs   LICENSE   README    Setup.lhs haq.cabal

Licenses
Code for the common base library package must be BSD licensed or something more Free/Open. Otherwise, it is entirely up to you as the author.

Choose a licence (inspired by this). Check the licences of things you use, both other Haskell packages and C libraries, since these may impose conditions you must follow.

Use the same licence as related projects, where possible. The Haskell community is split into 2 camps, roughly, those who release everything under BSD or public domain, and the GPL/LGPLers (this split roughly mirrors the copyleft/noncopyleft divide in Free software communities). Some Haskellers recommend specifically avoiding the LGPL, due to cross module optimisation issues. Like many licensing questions, this advice is controversial. Several Haskell projects (wxHaskell, HaXml, etc.) use the LGPL with an extra permissive clause to avoid the cross-module optimisation problem.

Releases
It's important to release your code as stable, tagged tarballs. Don't just rely on darcs for distribution.

 * darcs dist generates tarballs directly from a darcs repository

For example:

$ cd fps $ ls       Data      LICENSE   README    Setup.hs  TODO      _darcs    cbits dist      fps.cabal tests $ darcs dist -d fps-0.8 Created dist as fps-0.8.tar.gz

You can now just post your fps-0.8.tar.gz

You can also have darcs do the equivalent of 'daily snapshots' for you by using a post-hook.

put the following in _darcs/prefs/defaults: apply posthook darcs dist apply run-posthook

Advice:
 * Tag each release using darcs tag. For example:

$ darcs tag 0.8 Finished tagging patch 'TAG 0.8'

Then people can <tt>darcs get --lazy --tag 0.8</tt>, to get just the tagged version (and not the entire history).

Hosting
You can host public and private Darcs repositories on http://patch-tag.com/ for free. Otherwise, a Darcs repository can be published simply by making it available from a web page. Another option is to host on the Haskell Community Server at http://code.haskell.org/. You can request an account via http://community.haskell.org/admin/. You can also use https://github.com/ for Git hosting.

Example
A complete example of writing, packaging and releasing a new Haskell library under this process has been documented.

title: Haskell/Packaging


text:
Talk:Blender 3D: Noob to Pro/Archive 2

Reverted?
The vote for deletion page was showing up again and I tried to revert it. Please revert to the last valid version if I didn't do it right. =) -- Anonymous Blender user.

Someone did it on purpose...
I reverted the book to an older date. Some stupid person came in and wiped out the page and replaced it with a fake error message.

EH?
-Has this page been transwiki'd? nowhere does it say so, except a little not towards the bootom about wikiversity. and it's not in wikiversity at the moment. What's left of the front page mentions an 'error'but this all looks like gobbldigook, along with the last 20 or so edits. I'm rather confused and extremely annoyed, as this book is a really big resource for me. I could look an idiot and cause a mess reporting this when the book is just in transit between wiki's, but I seriously want to kow what's going on, so if there' no developments in say a day I will. -Zepheriah 15:01, 25 November 2006 (UTC)

Phew, thanks everyone... -Zepheriah 23:13, 26 November 2006 (UTC)

Misc rants
I was wondering if under animation, we could put something about downloading and using BVH files. I'll be happy to do that myself. Also, for talented animators with limited resources, a few links to Blender compatible remote render services. I didn't sign in, but you may contact me at User_talk:Dessydes

Thank god someone finally said something about other newbies posting stupid comments in the tutorial pages. It was getting friggin annoying and a wasting my time. I am new to Blender, glad to use it, and thankful for what guidance there is. I do from time to time add or try to clarify from my own experience, but not to the extent that this recent flood of morons have been.....Mudpuddle

WHY did you deleted this great page
Why did you deleted this book which was awarded as wikibook of mounth. It was the best book which i has allredy found on internet for biginers as I am. Who deleted this book is really silly man. Æ

title: Talk:Blender 3D: Noob to Pro/Archive 2


text:
User talk:165.155.128.147

Welcome to Wikibooks. We invite everyone to contribute constructively to our collection. Take a look at the welcome page if you would like to learn more about contributing. However, unconstructive edits are considered vandalism, and if you continue in this manner you may be blocked from editing without further warning. Please stop, and consider improving rather than damaging the hard work of others. Thanks. -- Herby talk thyme 16:51, 10 January 2007 (UTC)

title: User talk:165.155.128.147


text:
User talk:Kigiladink123~enwikibooks

Please do not replace Wikibooks pages with blank content. Blank pages are harmful to Wikibooks because they have a tendency to confuse readers. If it is a duplicate article, please redirect it to an appropriate existing page. If the page has been vandalised, please revert it to the last legitimate version. If you feel that the content of a page is inappropriate, please edit the page and replace it with appropriate content. If you believe there is no hope for the page, please see the deletion policy for how to proceed. If page is no longer useful, insert delete to its top. Thanks for contributing to Wikibooks! -- Herby talk thyme 17:03, 10 January 2007 (UTC)

Your account will be renamed
Hello,

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

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

title: User talk:Kigiladink123~enwikibooks


text:
Talk:Living in Japan

Thanks for a useful wiki Cdamama 17:07, 10 January 2007 (UTC)

How to suggest new sections?
Can't even remember when I first saw this "WikiBooks" thing. I like the idea, and even bookmarked this page, but it didn't make that big an impression and I am not that impressed on this return visit... There are a number of topics that could be added, but I can't imagine or understand how to decide. My own research interests today were actually regarding connectivity problems with the internet, and I have a lot of experience I could share, at least in theory. I see a couple of places where such a topic or section might fit, but I'm not seeing myself as such an editorial authority. I guess I'd try to start by copying the ToC from an existing book that has been "successful" or "popular" on the theory that it has a good organization. Shanen (discuss • contribs) 21:05, 2 June 2019 (UTC)
 * Talking to myself, eh? More than a year since my last comment and the original suggested topic remains unaddressed. Just found what seems to be a good solution via Rakuten Mobile, but I'm still looking for the catch. Nothing to look at here, however. Interesting idea for a book, but "It's dead, Jim", as Bones probably never actually said in TOS. Obvious new section titled "The New Normal" would involve living in Japan with Covid-19. (However, I think that recent changes actually increase the importance of the old suggestion that was never addressed.) Shanen (discuss • contribs) 18:13, 4 July 2020 (UTC)

title: Talk:Living in Japan


text:
Blender 3D: Noob to Pro/Team

Acknowledgement
We would like to thank the Blender Foundation and Blender community for this terrific software and the great support.

Noob to Pro Wikibook Team Members
Click here to view the most recent contributions.

Artists

 * Zachary Iwanicki (The ZacMan)
 * Wilson Birney (Big Bill57)
 * Louie Monday (BlueRooster)
 * Fred M'ule(tyrant monkey)

Authors

 * David Millet (spiderworm)
 * Arthur Tombs (Lazy-lump)
 * Louie Monday (BlueRooster)
 * Jeremy Buller (bullercruz1)
 * Fred M'ule (tyrant monkey)

Editors

 * Taylor DeHaven (Dracon Malphus)
 * David Millet (spiderworm)
 * Arthur Tombs (Lazy-lump)
 * Jim Martens (jmartens)
 * Akili Pomian (Winterbourne)
 * Judi Salva (salva816)
 * Allan Rempel (lotrf3)
 * Charles (Casimir)
 * Sean Redmond (Froggy220)
 * Evan Carroll
 * Chovynz
 * Jackson Williams (Malaz)
 * Richard
 * Electro
 * Eric Mareth, Junior Editor
 * Ken Samson, (Ksamson)
 * thegodofbigthings
 * PE Arts
 * JamesNZ
 * Nyarko Rexford N.

Contributors

 * 01mf02 - Doing the small, boring work :-)
 * Allefant - Worked on panorama rendering and python scripting.
 * Ask - Putting some images and comments in the tutorials.
 * AndyD - Wrote the tutorials - Lip-Sync with Shape Keys, Bouncing Ball with Lattice.
 * AndyGeers - Made some changes to 'Armature Object in Edit Mode'.
 * Animajosser - Updating, Smoothing and correcting pages. Checking table of contents.
 * Averie Zen - Created Simple Vehicle series
 * AttilaMH - Updated Beginner and Game Engine tutorials
 * Beuc - Clarifications and fixes (October 2010)
 * Blenderizer - Updated and added on to tutorials.
 * Jeremy B. - Updated + added many tutorials and information.
 * Bmud - Clean up, typography, grammar poker. I hope I can finish a game engine tutorial soon.
 * Brett: Made pages more printer-friendly, added instructions on how to print a section.
 * Camel - Proportional Editing tutorial, other fun stuff.
 * Chw333 - Added a draft tute on creating smoke using particle system.
 * Crouch - Doing some tiny jobs
 * darkness_openz - rox!
 * Darkonc - Newbie adding and fixing stuff as I read.
 * David Osborn - Python import scripting
 * Dragontamer - Created Print Version
 * EatMyShortz - Clean up and expansion of articles.
 * Electro - Working through the grammar, spelling, templates, fixing as I go.
 * Firework - Minor stuff to start...
 * Freakazoid - Just a few edits ;-)
 * Gabio - Advanced Animation Section.
 * Goeland86 - Various tutorials and screenshots.
 * Ed Halley - library usage, modeling tips, proofreading
 * Hrakaroo - Noob, fixing as I work through the tutorials.
 * Ideasman42 - Python OBJ exporter example in advanced tutorials, Radiosity Baking.
 * Iluvblender - Proofreading and provide blend file examples.
 * IqAndreas - Just made a few edits and corrections when I noticed them.
 * Jackson Williams (Malaz) - Wrote the BGE maze tutorial
 * Matthew Bowker (Matthewrbowker) - Images and minor edits
 * Jawboot - Edit miner.
 * justthisguy - Wrote the spin&extrude mug tutorial.
 * Kent Tong- Noob, making the tutorials easier to understand as I work through them.
 * Loki Clock - Author of Platformer 1 & 3, Python Platformer 1. Contributor to Procedural Object Creation and Platformer 2.
 * Milky - Started the "Noob to Pro/Cool Things" section.
 * Mixelpix - small edits from the 2D non-linear video/audio editing perspective... oHai!
 * morerunes - Weapons from Pictures ^_^
 * Oracleoftruth - Various small edits, started tutorial on bones.
 * Orbisonitrum - Penguins from spheres.
 * ParallaxTZ - Link edits for continuity between ToC and individual pages.
 * popski - MemoBook & misc...
 * Quantum Anomaly - The 3D Tiling Backgrounds tutorial.
 * RadialRonnie - Wrote several tutorials on previously hazy subjects, and did minor edits to improve readability, clarity, and the like.
 * Randolf Richardson (a.k.a. "24.87.56.253") - Mostly many minor grammar and format improvements.
 * Robstafarian - Miscellaneous copy editing and consistency checking, with an eye toward improved collaboration among frequent contributors.
 * saysaknow - Clean up.
 * Sendoshin - Updated WikiBooks Collection (for PDF and PoD), minor cleanup.
 * Snargle - Started the hotkeys section, before signing up.
 * socratesone - Fleshed out the majority of the "putting the hat on" section (Rotation/Location/Scale).
 * Sonic4spuds - Random small edits and improvements, hopefully something bigger soon.
 * SoylentGreen - Wrote Piston, Rod and Crank and the updated Cutting Through Steel tutorials.
 * Soeb - Images and minor edits.
 * David Millet (spiderworm) - Original author, turned long-time deserter
 * Spikespeigel42 - Edits, general cleanups, and adding what little i know to the articles with no content
 * Stepheng3 - Improving clarity.
 * SumOfwHoly - Contributing Editor with regards to consistency.
 * Sumoncil - Wrote the low-poly face tutorial.
 * Surphaze - Some texturing tutorials.
 * Sergeant Oreo - Light examples, wrote the Procedural Landscape tutorial and did various maintenance.
 * TBOL3 - Adding small tips to make the tutorials more understandable. Also adding a few other tutorials.
 * twentytortures - Working on fur/hair.
 * Wavez - Currently writing a rigging tutorial
 * Wwwwolf - Simple hat.
 * Yosun Chang - clarifications, screenshots, tutorial .blend files
 * zaknafien - Minor proofreading tweaks.
 * ZeroOne - Images, edits and extensions to existing pages.
 * Zeviion - Wrote the NLA intro tutorial.
 * Nyarko Rexford N. - Improving pages

Joining the Team
Everyone needs a place to belong. If you have nowhere else to go, we'll take ya! By joining up with the team, you'll be able to participate in our uphill swim as we work to turn Blender 3D: Noob to Pro into a real winner. Take a look at the current tasks below to get an idea of how you can help. Add yourself to the team list above and get started helping out. It doesn't matter if you know nothing about virtual design, you can also be an artist. So join the team.

Current Needs

 * For every page:
 * editors to improve the page
 * editors to review changes
 * For every module:
 * Make sure the module has navigation templates at the top and bottom. (Use NAV template. See the demo page for an example.)
 * Make sure the module order agrees with the Table of Contents
 * For every tutorial module:
 * Test with current stable release -- some tutorials are several years old.
 * Tutorials need to be taught visually. Overlay renders and screenshots with instructions. (See the demo page for an example).
 * Make sure all modules/pages are included in the Table of Contents and the printable versions (as appropriate; see below).
 * Make sure that the printable versions follow the Table of Contents.
 * Create beautiful renders and screenshots.
 * Add word definitions to the glossary page
 * There are additional suggestions at Blender 3D: Noob to Pro/Todo.

Resources

 * Searches:
 * Recent Contributions
 * Mainspace Subpages
 * Project Pages:
 * /Mission Statement and Vision/
 * ../Image Portfolio/
 * ../Todo/
 * Commons:Category:Blender 3D
 * Printable Versions:
 * The Whole Book (PDF or Print-on-Demand)
 * Alternate Version of the Whole Book (pages included inline so the entire book is one web page)
 * The First Two Units

Templates Specific to this Book
See our template category for a complete list.

 * B3D:N2P/Do — used to format keystrokes and mouse buttons in tutorials
 * B3D:N2P/FirstUse — used to highlight the first use of a word or phrase
 * B3D:N2P/ForVersion — used to indicate the version used in the article
 * B3D:N2P/Hidden begin — used in conjunction with Hidden end to hide information that would otherwise break the flow of the text
 * B3D:N2P/Manual — used to refer to a page in the Blender Manual
 * B3D:N2P/Module — used to refer to another module in this wikibook
 * B3D:N2P/NAV — a navigation template for use at the top and bottom of all modules, to help wikibook users quickly flip to the next (or previous) module
 * B3D:N2P/Note — to highlight key points in text
 * B3D:N2P/VTT1 — "visual teaching template #1" — for overlaying text instructions onto an image
 * B3D:N2P/Web — used to refer to a page at another website

General-purpose Templates Used

 * BookCat — to categorize pages which belong to a book
 * Clear — to separate the text in a new section from the previous section's images
 * Red, Green, and Blue — to display text in color
 * Warning — to highlight information about hazards
 * Wikipedia-inline — to refer to Wikipedia articles

See also: Templates/General

Team

title: Blender 3D: Noob to Pro/Team


text:
User talk:Geronimo~enwikibooks

Hello and welcome to Wikibooks!

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

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

Good luck!--Sundance Raphael 17:20, 10 January 2007 (UTC)

Your account will be renamed
Hello,

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

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

title: User talk:Geronimo~enwikibooks


text:
User talk:Btill004

Hello and welcome to Wikibooks!

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

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

Good luck!--Sundance Raphael 17:23, 10 January 2007 (UTC)

title: User talk:Btill004


text:
User talk:Jeffreymckie

Hello and welcome to Wikibooks!

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

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

Good luck!--Sundance Raphael 17:23, 10 January 2007 (UTC)

title: User talk:Jeffreymckie


text:
Haskell/Category theory

This article attempts to give an overview of category theory, in so far as it applies to Haskell. To this end, Haskell code will be given alongside the mathematical definitions. Absolute rigour is not followed; in its place, we seek to give the reader an intuitive feel for what the concepts of category theory are and how they relate to Haskell.

Introduction to categories

A category is, in essence, a simple collection. It has three components:

 * A collection of objects.
 * A collection of morphisms, each of which ties two objects (a source object and a target object) together. (These are sometimes called arrows, but we avoid that term here as it has other connotations in Haskell.) If f is a morphism with source object C and target object B, we write $$f : C \to B$$.
 * A notion of composition of these morphisms. If $$g : A \to B$$ and $$f : B \to C$$ are two morphisms, they can be composed, resulting in a morphism $$f \circ g : A \to C$$.

Lots of things form categories. For example, Set is the category of all sets with morphisms as standard functions and composition being standard function composition. (Category names are often typeset in bold face.) Grp is the category of all groups with morphisms as functions that preserve group operations (the group homomorphisms), i.e. for any two groups, G with operation * and H with operation ·, a function $$k : G \to H$$ is a morphism in Grp if:

 * $$k(u * v) = k(u) \cdot k(v)$$

It may seem that morphisms are always functions, but this needn't be the case. For example, any partial order (P, $$\leq$$) defines a category where the objects are the elements of P, and there is a morphism between any two objects A and B iff $$A \leq B$$. Moreover, there are allowed to be multiple morphisms with the same source and target objects; using the Set example, $$\sin$$ and $$\cos$$ are both functions with source object $$\mathbb{R}$$ (the set of real numbers) and target object $$[-1,1]$$, but they’re most certainly not the same morphism!

Category laws
There are three laws that categories need to follow. Firstly, and most simply, the composition of morphisms needs to be associative. Symbolically,

 * $$f \circ (g \circ h) = (f \circ g) \circ h$$

Morphisms are applied right to left in Haskell and most commonly in mathematics, so with $$f \circ g$$ first g is applied, then f.

Secondly, the category needs to be closed under the composition operation. So if $$f : B \to C$$ and $$g : A \to B$$, then there must be some morphism $$h : A \to C$$ in the category such that $$h = f \circ g$$. We can see how this works using the following category:

f and g are both morphisms so we must be able to compose them and get another morphism in the category. So which is the morphism $$f \circ g$$? The only option is $$\operatorname{id}_A$$. Similarly, we see that $$g \circ f = \operatorname{id}_B$$.

Lastly, given a category C there needs to be for every object $$A$$ an identity morphism, $$\operatorname{id}_A : A \to A$$ that is an identity of composition with other morphisms. Put precisely, for every morphism $$g : A \to B$$:

 * $$g \circ \operatorname{id}_A = \operatorname{id}_B \circ g = g$$

Hask, the Haskell category
The main category we'll be concerning ourselves with in this article is Hask, which treats Haskell types as objects and Haskell functions as morphisms and uses  for composition: a function   for types   and   is a morphism in Hask. We can check the first and second law easily: we know  is an associative function, and clearly, for any   and ,   is another function. In Hask, the identity morphism is, and we have trivially:

This isn't an exact translation of the law above, though; we're missing subscripts. The function  in Haskell is polymorphic — it can take many different types for its domain and range, or, in category-speak, can have many different source and target objects. But morphisms in category theory are by definition monomorphic — each morphism has one specific source object and one specific target object (note: monomorphic here is not being used in the category theoretic sense). A polymorphic Haskell function can be made monomorphic by specifying its type (instantiating with a monomorphic type), so it would be more precise if we said that the identity morphism from Hask on a type  is. With this in mind, the above law would be rewritten as:

However, for simplicity, we will ignore this distinction when the meaning is clear.

Functors

So we have some categories which have objects and morphisms that relate our objects together. The next Big Topic in category theory is the functor, which relates categories together. A functor is essentially a transformation between categories, so given categories C and D, a functor $$F : C \to D$$:

 * Maps any object A in C to $$F(A)$$, in D.
 * Maps morphisms $$f : A \to B$$ in C to $$F(f) : F(A) \to F(B)$$ in D.

One of the canonical examples of a functor is the forgetful functor $$\mathbf{Grp} \to \mathbf{Set}$$ which maps groups to their underlying sets and group morphisms to the functions which behave the same but are defined on sets instead of groups. Another example is the power set functor $$\mathbf{Set} \to \mathbf{Set}$$ which maps sets to their power sets and maps functions $$f : X \to Y$$ to functions $$\mathcal{P}(X) \to \mathcal{P}(Y)$$ which take inputs $$U \subseteq X$$ and return $$f(U)$$, the image of U under f, defined by $$f(U) = \{ \, f(u) : u \in U \, \}$$. For any category C, we can define a functor known as the identity functor on C, or $$1_C : C \to C$$, that just maps objects to themselves and morphisms to themselves. This will turn out to be useful in the monad laws section later on.

Once again there are a few axioms that functors have to obey. Firstly, given an identity morphism $$\operatorname{id}_A$$ on an object A, $$F(\operatorname{id}_A)$$ must be the identity morphism on $$F(A)$$, i.e.:

 * $$F(\operatorname{id}_A) = \operatorname{id}_{F(A)}$$

Secondly functors must distribute over morphism composition, i.e.

 * $$F(f \circ g) = F(f) \circ F(g)$$

Functors on Hask
The Functor typeclass you have probably seen in Haskell does in fact tie in with the categorical notion of a functor. Remember that a functor has two parts: it maps objects in one category to objects in another and morphisms in the first category to morphisms in the second. Functors in Haskell are from Hask to func, where func is the subcategory of Hask defined on just that functor's types. E.g. the list functor goes from Hask to Lst, where Lst is the category containing only list types, that is,  for any type. The morphisms in Lst are functions defined on list types, that is, functions  for types ,. How does this tie into the Haskell typeclass Functor? Recall its definition:

class Functor (f :: * -> *) where fmap :: (a -> b) -> f a -> f b

Let's have a sample instance, too:

instance Functor Maybe where fmap f (Just x) = Just (f x)  fmap _ Nothing  = Nothing

Here's the key part: the type constructor Maybe takes any type  to a new type,. Also,  restricted to Maybe types takes a function   to a function. But that's it! We've defined two parts, something that takes objects in Hask to objects in another category (that of Maybe types and functions defined on Maybe types), and something that takes morphisms in Hask to morphisms in this category. So Maybe is a functor.

A useful intuition regarding Haskell functors is that they represent types that can be mapped over. This could be a list or a Maybe, but also more complicated structures like trees. A function that does some mapping could be written using, then any functor structure could be passed into this function. E.g. you could write a generic function that covers all of Data.List.map, Data.Map.map, Data.Array.IArray.amap, and so on.

What about the functor axioms? The polymorphic function  takes the place of $$\operatorname{id}_A$$ for any A, so the first law states:

fmap id = id

With our above intuition in mind, this states that mapping over a structure doing nothing to each element is equivalent to doing nothing overall. Secondly, morphism composition is just, so

fmap (f . g) = fmap f. fmap g

This second law is very useful in practice. Picturing the functor as a list or similar container, the right-hand side is a two-pass algorithm: we map over the structure, performing, then map over it again, performing. The functor axioms guarantee we can transform this into a single-pass algorithm that performs. This is a process known as fusion.

Translating categorical concepts into Haskell
Functors provide a good example of how category theory gets translated into Haskell. The key points to remember are that:

 * We work in the category Hask and its subcategories.
 * Objects are types.
 * Morphisms are functions.
 * Things that take a type and return another type are type constructors.
 * Things that take a function and return another function are higher-order functions.
 * Typeclasses, along with the polymorphism they provide, make a nice way of capturing the fact that in category theory things are often defined over a number of objects at once.

Monads

Monads are obviously an extremely important concept in Haskell, and in fact they originally came from category theory. A monad is a special type of functor, from a category to that same category, that supports some additional structure. So, down to definitions. A monad is a functor $$M : C \to C$$, along with two morphisms for every object X in C:

 * $$\operatorname{unit}^M_X : X \to M(X)$$
 * $$\operatorname{join}^M_X : M(M(X)) \to M(X)$$

When the monad under discussion is obvious, we’ll leave out the M superscript for these functions and just talk about $$\operatorname{unit}_X$$ and $$\operatorname{join}_X$$ for some X.

Let’s see how this translates to the Haskell typeclass Monad, then.

class Functor m => Monad m where return :: a -> m a  (>>=)  :: m a -> (a -> m b) -> m b

The class constraint of  ensures that we already have the functor structure: a mapping of objects and of morphisms. is the (polymorphic) analogue to $$\operatorname{unit}_X$$ for any X. But we have a problem. Although ’s type looks quite similar to that of unit; the other function, , often called bind, bears no resemblance to join. There is however another monad function,, that looks quite similar. Indeed, we can recover  and   from each other:

join :: Monad m => m (m a) -> m a join x = x >>= id (>>=) :: Monad m => m a -> (a -> m b) -> m b x >>= f = join (fmap f x)

So specifying a monad’s,  , and   is equivalent to specifying its   and. It just turns out that the normal way of defining a monad in category theory is to give unit and join, whereas Haskell programmers like to give  and. Often, the categorical way makes more sense. Any time you have some kind of structure $$M$$ and a natural way of taking any object $$X$$ into $$M(X)$$, as well as a way of taking $$M(M(X))$$ into $$M(X)$$, you probably have a monad. We can see this in the following example section.

Example: the powerset functor is also a monad
The power set functor $$P : \mathbf{Set} \to \mathbf{Set}$$ described above forms a monad. For any set S you have a $$\operatorname{unit}_S(x) = \{x\}$$, mapping elements to their singleton set. Note that each of these singleton sets are trivially a subset of S, so $$\operatorname{unit}_S$$ returns elements of the powerset of S, as is required. Also, you can define a function $$\operatorname{join}_S$$ as follows: we receive an input $$L \in \mathcal{P}(\mathcal{P}(S))$$. This is:

 * A member of the powerset of the powerset of S.
 * So a member of the set of all subsets of the set of all subsets of S.
 * So a set of subsets of S

We then return the union of these subsets, giving another subset of S. Symbolically,

 * $$\operatorname{join}_S(L) = \bigcup L$$.

Hence P is a monad.

In fact, P is almost equivalent to the list monad; with the exception that we're talking lists instead of sets, they're almost the same. Compare:

The monad laws and their importance
Just as functors had to obey certain axioms in order to be called functors, monads have a few of their own. We'll first list them, then translate to Haskell, then see why they’re important.

Given a monad $$M : C \to C$$ and a morphism $$f : A \to B$$ for $$A, B \in C$$,
 * 1) $$\mathrm{join} \circ M(\mathrm{join}) = \mathrm{join} \circ \mathrm{join}$$
 * 2) $$\mathrm{join} \circ M(\mathrm{unit}) = \mathrm{join} \circ \mathrm{unit} = \mathrm{id}$$
 * 3) $$\mathrm{unit} \circ f = M(f) \circ \mathrm{unit}$$
 * 4) $$\mathrm{join} \circ M(M(f)) = M(f) \circ \mathrm{join}$$

By now, the Haskell translations should be hopefully self-explanatory:

(Remember that  is the part of a functor that acts on morphisms.) These laws seem a bit impenetrable at first, though. What on earth do these laws mean, and why should they be true for monads? Let’s explore the laws.

The first law

In order to understand this law, we'll first use the example of lists. The first law mentions two functions,  (the left-hand side) and   (the right-hand side). What will the types of these functions be? Remembering that ’s type is   (we’re talking just about lists for now), the types are both   (the fact that they’re the same is handy; after all, we’re trying to show they’re completely the same function!). So we have a list of lists of lists. The left-hand side, then, performs  on this 3-layered list, then uses   on the result. is just the familiar  for lists, so we first map across each of the list of lists inside the top-level list, concatenating them down into a list each. So afterward, we have a list of lists, which we then run through. In summary, we 'enter' the top level, collapse the second and third levels down, then collapse this new level with the top level.

What about the right-hand side? We first run  on our list of list of lists. Although this is three layers, and you normally apply a two-layered list to, this will still work, because a   is just  , where  , so in a sense, a three-layered list is just a two layered list, but rather than the last layer being 'flat', it is composed of another list. So if we apply our list of lists (of lists) to, it will flatten those outer two layers into one. As the second layer wasn't flat but instead contained a third layer, we will still end up with a list of lists, which the other  flattens. Summing up, the left-hand side will flatten the inner two layers into a new layer, then flatten this with the outermost layer. The right-hand side will flatten the outer two layers, then flatten this with the innermost layer. These two operations should be equivalent. It’s sort of like a law of associativity for.

is also a monad, with

return :: a -> Maybe a return x = Just x join :: Maybe (Maybe a) -> Maybe a join Nothing        = Nothing join (Just Nothing) = Nothing join (Just (Just x)) = Just x

So if we had a three-layered Maybe (i.e., it could be,  ,   or  ), the first law says that collapsing the inner two layers first, then that with the outer layer is exactly the same as collapsing the outer layers first, then that with the innermost layer.

The second law
What about the second law, then? Again, we'll start with the example of lists. Both functions mentioned in the second law are functions. The left-hand side expresses a function that maps over the list, turning each element  into its singleton list , so that at the end we’re left with a list of singleton lists. This two-layered list is flattened down into a single-layer list again using the. The right hand side, however, takes the entire list, turns it into the singleton list of lists  , then flattens the two layers down into one again. This law is less obvious to state quickly, but it essentially says that applying  to a monadic value, then  ing the result should have the same effect whether you perform the   from inside the top layer or from outside it.

The third and fourth laws
The last two laws express more self-evident facts about how we expect monads to behave. The easiest way to see how they are true is to expand them to use the expanded form:

Application to do-blocks
Well, we have intuitive statements about the laws that a monad must support, but why is that important? The answer becomes obvious when we consider do-blocks. Recall that a do-block is just syntactic sugar for a combination of statements involving  as witnessed by the usual translation:

do { x }                -->  x do { let { y = v }; x }  -->  let y = v in do { x } do { v <- y; x }        -->  y >>= \v -> do { x } do { y; x }             -->  y >>= \_ -> do { x }

Also notice that we can prove what are normally quoted as the monad laws using  and   from our above laws (the proofs are a little heavy in some cases, feel free to skip them if you want to):

. Proof: return x >>= f = join (fmap f (return x)) -- By the definition of (>>=) = join (return (f x))     -- By law 3 = (join . return) (f x) = id (f x)                -- By law 2 = f x

. Proof: m >>= return = join (fmap return m)   -- By the definition of (>>=) = (join . fmap return) m = id m                   -- By law 2 = m

. Proof (recall that ): (m >>= f) >>= g = (join (fmap f m)) >>= g                         -- By the definition of (>>=) = join (fmap g (join (fmap f m)))                 -- By the definition of (>>=) = (join . fmap g) (join (fmap f m)) = (join . fmap g . join) (fmap f m) = (join . join . fmap (fmap g)) (fmap f m)        -- By law 4 = (join . join . fmap (fmap g) . fmap f) m = (join . join . fmap (fmap g. f)) m             -- By the distributive law of functors = (join . join . fmap (\x -> fmap g (f x))) m = (join . fmap join . fmap (\x -> fmap g (f x))) m -- By law 1 = (join . fmap (join. (\x -> fmap g (f x)))) m   -- By the distributive law of functors = (join . fmap (\x -> join (fmap g (f x)))) m = (join . fmap (\x -> f x >>= g)) m               -- By the definition of (>>=) = join (fmap (\x -> f x >>= g) m) = m >>= (\x -> f x >>= g)                         -- By the definition of (>>=)

These new monad laws, using  and , can be translated into do-block notation.

The monad laws are now common-sense statements about how do-blocks should function. If one of these laws were invalidated, users would become confused, as you couldn't be able to manipulate things within the do-blocks as would be expected. The monad laws are, in essence, usability guidelines.

Summary
We've come a long way in this chapter. We've looked at what categories are and how they apply to Haskell. We've introduced the basic concepts of category theory including functors, as well as some more advanced topics like monads, and seen how they're crucial to idiomatic Haskell. We haven't covered some of the basic category theory that wasn't needed for our aims, like natural transformations, but have instead provided an intuitive feel for the categorical grounding behind Haskell's structures.

title: Haskell/Category theory


title: Template:B3D:N2P/NAV


text:
User talk:Jgeim001

Hello and welcome to Wikibooks!

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

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

Good luck!--Sundance Raphael 18:25, 10 January 2007 (UTC)

title: User talk:Jgeim001


text:
User talk:Chastidy77

Hello and welcome to Wikibooks!

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

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

Good luck!--Sundance Raphael 18:26, 10 January 2007 (UTC)

title: User talk:Chastidy77


text:
User talk:Fran17~enwikibooks

Hello and welcome to Wikibooks!

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

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

Good luck!--Sundance Raphael 18:26, 10 January 2007 (UTC)

Your account will be renamed
Hello,

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

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

title: User talk:Fran17~enwikibooks


text:
User talk:Lucquinten

Hello and welcome to Wikibooks!

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

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

Good luck!--Sundance Raphael 18:26, 10 January 2007 (UTC)

title: User talk:Lucquinten


text:
User talk:Xxxxx18

Hello and welcome to Wikibooks!

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

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

Good luck!--Sundance Raphael 18:27, 10 January 2007 (UTC)

title: User talk:Xxxxx18


text:
User talk:KEITH~enwikibooks

Hello and welcome to Wikibooks!

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

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

Good luck!--Sundance Raphael 18:29, 10 January 2007 (UTC)

Your account will be renamed
Hello,

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

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

title: User talk:KEITH~enwikibooks


text:
User talk:207.109.61.129

Regarding edits made during January 10 2007
Please stop adding nonsense to Wikibooks. It is considered vandalism. If you would like to experiment, use the sandbox. Thank you. If this is an IP address, and it is shared by multiple users, ignore this warning if you did not make any unconstructive edits. Az1568(Talk) 18:45, 10 January 2007 (UTC)

title: User talk:207.109.61.129


text:
Wikibooks:Editorial board guidelines

A Wikibooks Editorial Board is a group of three qualified editors who can be asked by the authors of books to review their book and check it for accuracy, compliance with copyright and other attributes required in a textbook that will have high credibility. The editorial board can approve stable editions of books and these will be preserved in the Wikibooks database as PDF files. This procedure should normally apply only to mature, completed books.

The stable editions of books that have editorial approval will have the same credibility as any textbook published by a reputable publisher.

The editorial board
The board will consist of three members with the following characteristics:

 * 1) Lead expert: at least one expert in a field that is closely related to that covered by the book. Expertise can be assessed by either a declaration by the editor of their name and qualifications or (for those who prefer anonymity) a body of work in Wikibooks that demonstrates their competence in the field.
 * 2) Second expert: in addition, a further expert from the appropriate area of academic endeavour. (A scientist for scientific books, an expert in the humanities for a humanities book etc.) Again expertise may be judged by declared qualifications or contributions.
 * 3) Administrative editor: in addition a person with experience of editorial boards.

The editorial board may not contain a prominent author of the book under review (contribution > 5%).

The editorial board must be acceptable to each other and to all the authors of the book who are active.

All Wikibookians should be asked whether they would like to volunteer as editors and enter their names on Volunteer editors along with their areas of expertise ie: Johnsmith  Science esp: chemistry, biochemistry.

The Editorial process
The editorial board can, at any time refuse to continue editing if they feel that the book needs too many amendments or there are insurmountable difficulties. A refusal to continue editing will lead to a six month delay before the next opportunity to submit the book for editorial board approval.

First pass
The authors should obtain three editorial board volunteers and establish their respective roles.

The authors should create a PDF file of the book.

They should then create a subpage in their book called "Editorial review edition 1.0" based on the /Editorial review/ template. A link to this page should be placed at the bottom of their book.

Any challenges to the composition of the board must be made within 2 weeks of the creation of the template and before editors have devoted more than 1 hour of work to the review.

The PDF file should be submitted to the administrative editor who will assess whether it is suitable for editorial review. The book may be passed back for preliminary modifications at this stage.

Second pass
Books that have passed the preliminary checks for format etc. will then be read by the whole editorial board.

Having read through the book the expert editors may pass the book back to the authors for further format, depth of content etc. revisions.

Once satisfied with the general content and structure the expert editors will divide the book into equal portions and engage in an in-depth review.

The parts of the book may be passed back for revision.

Third pass
The authors will be advised that the book is acceptable and informed of final presentational details.

The final PDF will have a clear date, approval logo and edition number. It will be filed under a unique name and made available as a stable approved edition.

Frequency of approved editions
Approved editions should normally be no more frequent than 6 monthly. Requests for frequent editions may take away valuable resources from other books. There is no reason why development of the book should not proceed in the normal way between approved editions.

title: Wikibooks:Editorial board guidelines


text:
Wikibooks:Editorial board guidelines/Editorial review

The purpose of the editorial review is to ensure that a textbook is factual and as free from error as possible. The editorial board should concentrate on accuracy. Clarity of presentation is also important - confusion is a form of error. Minor issues of style are less important - the board might advise on "scrappy" illustrations etc. but these are not mission critical and even a scrappy illustration may transmit more understanding than a thousand words.

Editors should provide as much guidance as possible in the answers to the questions below so that authors can correct faults.

Composition of the Board
Enter the userid's of the board members below:

Lead expert:

Second expert:

Administrative editor:

Date:

(Any challenges to the composition of the board must be made within 2 weeks of the above date and before any editor has devoted substantial time > 1 hour to the review)

PDF File
Enter a link to the book's PDF below. The PDF must not be revised whilst the review is in progress except at the request of the editorial board.

(ie: media:biology.pdf bracketed with double square brackets.)

Preparation by Editorial Board
Each expert member of the board should state which outside textbooks they will use for comparison with the book. Links should be included with e-books.

Lead Expert
(ie: Grays Anatomy)

First Pass
The administrative editor should answer the questions below with yes/no or an appropriate response.
 * Is there an acceptable front cover?
 * Is there a link to Wikibooks on the front cover?
 * Is there an edition number?
 * Is the title appropriate for the contents?
 * Is there a Table of Contents?
 * Are there any copyright violations?
 * Is there adequate content for this level of textbook?
 * Is the book a "Guide", "Textbook" or "Complementary/Supplementary text"?
 * Are illustration/text/maths legible?

Second Pass
This phase of the review should be dedicated to assuring the accuracy of the content. Any biassed point of view should be noted. Once the review is complete the editor should note this at the bottom of their section. The authors should then correct the faults and produce a new PDF and submit this again.

Each editor should note errors here:

Third pass
The editorial board should state here whether the book has passed review:

Has the book passed review? .....

If the book has not passed the authors should spend the next 6 months digesting why it failed and correcting the problems. Alternatively the authors may leave the book as an unapproved text.

If the book has passed then the authors should insert the edition date on the second page, the seal of approval on the front cover (if desired) and the following text on the second page:

'''This (textbook/study guide/Supplementary text) has been approved by a Wikibooks board of experts. It is a stable edition that will not be changed.'''

In the case of Supplementary Texts the following warning should be added:

This is a Supplementary Text''' for a course of study. It may be intended to stimulate debate. Where the authors have treated the subject from a particular point of view this has been noted in the text. Students should be aware that particular points of view may not be acceptable for answers in examinations and should seek guidance from seminar leaders, teachers or further texts.'''

When ISBN numbers are available for Wikibooks, the ISBN number should be added to the second page.

The administrative editor should review these changes and note that they are sufficient below:

 * Has the edition date been inserted? ...
 * Has the approval text been added on the second page? ...
 * Is the book ready for upload? ....

The authors should then upload the file as:

Appr_(book name)_ed(edition number).pdf

The editor should then ask Wikibooks administrators to amend any links to the PDF for the book on the Main Wikibooks page to the format required for approved texts. Authors should amend any other links to the PDF to link to the approved version.


text:
User talk:Colex~enwikibooks

Hello and welcome to Wikibooks!

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

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

Good luck!--Sundance Raphael 21:20, 10 January 2007 (UTC)

Your account will be renamed
Hello,

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

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

title: User talk:Colex~enwikibooks


text:
User talk:J.M. Tavernier

Hello and welcome to Wikibooks!

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

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

Good luck!--Sundance Raphael 21:21, 10 January 2007 (UTC)

title: User talk:J.M. Tavernier