text:
Wikibooks:Reading room/Administrative Assistance/Archives/2008/April

Request for Template Protection
I request that the WikiBooks Template:Dropimage be protected. I made it recently, and it is important to the Editing Wikitext/Pictures page, which makes use of it throughout. It might be as well to protect Template:Droplist at the same time. I hope that this is the right way to get this done, as I am a bit new to all this. Thanks in advance for your help, Hyundai (talk) 10:50, 17 March 2008 (UTC)

 * Why should nobody be able to edit these templates? Wikibooks doesn't normally protect templates much, as anyone should be able to edit them and improve on them like any content. --dark lama  16:16, 17 March 2008 (UTC)

 * darklama, Hi!,
 * It is all about reducing the exposure to vandalism for those who have already invested their time.  Also, if a template were to be modified adversely, then not only would others be denied its use, but any work which then depended on it for correct functioning, would fail to work.

 * As you know, it takes hours of work for even quite simple pages, and it is best not to tempt providence.  In any case, when it is protected, the code is still available for all to copy and use in modified versions.  Regards, Hyundai (talk) 14:43, 19 March 2008 (UTC)

 * Please assume good faith, that the majority of people here have good intentions, and any changes are for the better. Wikibooks doesn't usually protect pages and templates due to what could happen. If someone is willing to put the time in to fix any usage of a template because there modifications broke it, then they should be welcome to do so. If someone makes a change you don't like, discuss it with them and find a compromise both of you can agree with. Someone could of invested as much time trying to improve a template as you did originally to make it. Everyone's time is of equal worth and importance here. If someone vandalizes it, someone will block them and revert them. If the template breaks, someone will fix it. --dark lama  15:55, 19 March 2008 (UTC)

 * Hi again,
 * After a period of assuming good faith, I can can tell you that it is a waste of time!  I am even more determined for important work to be protected.   An entire page of Editing Wikitext/Pictures/The Quick Course  was deleted today: You can see the history record on the site.   It is too easy to do!!!

Armchair (talk) 18:17, 2 April 2008 (UTC)

Vandalism: Lots on the one page
The entire page of Editing Wikitext/Pictures/The Quick Course was deleted. Since there was a lot of it on the one page this would seem to qualify for a comment here.

The history page extract reads:

(cur) (last) 16:56, 2 April 2008 Madhumohan (Talk | contribs) (empty) (Removing all content from page) (undo)

I have restored the page from a backup, but frankly, it causes me to reiterate the need for restricting access to some pages; it is even more important for some templates. (See elsewhere in admin notes).

Armchair (talk) 18:10, 2 April 2008 (UTC)
 * Well, we store copies of all old revisions specifically for this purpose. Dealing with vandalism and Wikibooks:Rollback might be of interest to you. The user in question has been warned, and has stopped blanking pages. If they continue, a block would likely be in order. If you continue to experience problems with page blanking from this user, come back here & let us know so an admin can take action. Please try to assume good faith, and remember that "you can edit this page" is at the heart of what makes our projects strong - it's a core philosophy of wikis. Have a good day! – Mike.lifeguard  | talk 18:28, 2 April 2008 (UTC)

Non-Free Images Deadline
I just wanted to alert people that the deadline for deletion of images under the board's licensing policy is coming up on March 23. The policy is here:
 * http://wikimediafoundation.org/wiki/Resolution:Licensing_policy

We here at Wikibooks have been in very good compliance with this policy so far. However, We still don't have an "official" licensing policy (called an EDP in the resolution above). Media seems to be the best proposed candidate, and we have been following that policy (or nearly following it) as a de facto standard for some time now. Maybe the time has come for us to give it a final look-over and accept it as an official policy.

According to the resolution, all fair use images must be deleted by March 23rd 2008, unless there is a policy that specifically allows certain fair use images to be kept. I don't know how the foundation is going to enforce this, I haven't heard any mention of this resolution for some time now. However, in the worst case scenario (and I don't expect this at all), members of the board or the developers could have all fair use images automatically deleted without our input. Again, I stress that I don't think this possibility will happen. Maybe nothing will happen and the resolution will not be enforced at all. However, I still this this is a good opportunity for us to look at Media and see about making that (or a derivation of it) an official policy here. --Whiteknight (Page) (Talk) 17:04, 7 March 2008 (UTC)
 * Absolutely, we need to approve an EDP (presumably WB:MEDIA). I've been slogging through the fair use categories & the only real problem is missing rationales - unfortunately they're a lot of work to write. I've looked at maybe 30% of the categories, fixing as much as I can, but there's plenty of work left. Despite the fact that our grace period ends on the 23rd, I also assume we'll have an extended grace period after that. We should aim to be in compliance as soon as possible, so let's all pitch in (both on approving a policy and on the cleanup required). – Mike.lifeguard  | talk 17:22, 7 March 2008 (UTC)

OK, Monobi's bot has finished it's work; we now have lots of images that have no rationale, but should. I've emailed users who have more than a few and who have an email set, so hopefully we won't lose too many of the images. Any user reading this can go through Category:Images with no fair use rationale and start putting up rationales. They're not hard to do; the template leads you through it and WB:MEDIA spells out what's needed in detail. I would also like to suggest that we hurry up and approve a fair use policy before the March 23rd deadline so that we can keep the fair use images that do have a rationale. Let's turn our attention to Wikibooks talk:Media :) – Mike.lifeguard  | talk 04:32, 16 March 2008 (UTC)

 * So the deadline is March 23rd - that's Sunday. Monobi has written a script for me which will delete problem images, and log images which might be ok. I'd like to run it on Sunday, but I'm hesitant to do so when there's been basically no effort to fix the images missing rationales. I don't know how much can be done between now and then, but if you have time, there's many images that need rationales written for them (nudge nudge). That said, the images aren't in compliance (and won't be even if we put lots of effort into writing rationales), so they should be deleted on Sunday as applicable. As well, we have no EDP/fair use policy, so we need to discuss that, presumably at Wikibooks talk:Media, since that's our defacto policy. – Mike.lifeguard  | talk 15:12, 20 March 2008 (UTC)

 * [[Image:Symbol opinion vote.svg|15px]] FYI:: WB:MEDIA is now a policy, per discussion on it's talk page. – Mike.lifeguard  | talk 00:05, 3 April 2008 (UTC)

Lost my A+ card and need my ID number for job
How do I get this information? 206.243.134.73 (talk) 12:29, 2 April 2008 (UTC)David L Lane206.243.134.73 (talk) 12:29, 2 April 2008 (UTC)
 * Maybe it's best that you explain what an A+ card is?? --ЗAНИA [[Image:Flag_of_Italy.svg|15px]]talk 20:33, 3 April 2008 (UTC)
 * A+ networking certification. -within focus 22:17, 3 April 2008 (UTC)

Picture heavy book inclusion criteria...
I am interested in composing some Wikibooks that are picture heavy. They would have some factual learning and then also be meant to spark the imagination of readers. A question for those in the know, and to avoid having my work deleted, is this within Wikibooks' scope? Is it something for the user namespace? How should I proceed? Thanks. --Remi (talk) 06:35, 4 April 2008 (UTC)

 * G'day Remi, we in fact already have some in Wikijunior, for example Wikijunior:World at work and Wikijunior:Animal Alphabet. Some of the computer graphics textbooks can be quite picture heavy too, for example Blender 3D. If your images are correctly licensed and your book complies with WB:WIW, then you should have no problem. Please consider uploading images to Commons instead of Wikibooks, so that they may be more easily reused (e.g. in a translation of your book!) or, better still, utilise some of the images already there. What will your books be about? Webaware talk 06:51, 4 April 2008 (UTC)

WikiBooks Format
I am starting my own wiki and I would like to have the same kind of structure of Book--> Module or even better Book--> Chapter --> Verse. Any advice or extensions that might help me. I have looked through the extensions on MediaWiki and others that have shown up in searches, but nothing really helps.

Thanks, Greg

 * You just need to enable subpages for the Main namespace. Add the following to your LocalSettings.php file:
 * <tt>$wgNamespacesWithSubpages[NS_MAIN] = true;</tt>
 * See mw:Manual:$wgNamespacesWithSubpages for details. Webaware talk 03:53, 7 April 2008 (UTC)

Thanks a lot! Greg

Boilerplate text was lost, please help me find this lost page
Where is the new page with a "similar" or equal content to the old one ? Txs for any information you can provide, no reward will be given :)... --Panic (talk) 00:52, 10 April 2008 (UTC)
 * Template_messages might have what you're looking for. The page you requested redirected to a page that redirected there. Νεοπτόλεμος ( talk | email | contribs ) 01:07, 10 April 2008 (UTC)
 * Txs for the help. Some of the templates are still there, found also "a direct link" WB:ICT but I don't get the hole image centric thing, the templates were also to catalog other content (and/or it's source) but they seem mostly dedicated to images now even the page name (what I think is an error). Well I'll point users there... --Panic (talk) 01:45, 10 April 2008 (UTC)
 * The templates are divided on subpages based on where they go... WB:ICT is only one of those subpages (for the image namespace); this is not an error. – Mike.lifeguard  | talk 01:57, 10 April 2008 (UTC)
 * Are either of these what you're looking for? WB:TM; Help:Boilerplate request for permission Νεοπτόλεμος ( talk | email | contribs ) 02:00, 10 April 2008 (UTC)
 * I can't exactly remember what was on that page but the objective or the reason why I linked to it was that it provided information or templates on usable content and covered specific licenses, can't remember if dual license only or Public Domain as tags for imported content. That image stuff page does have some and will serve the purpose I guess.  --Panic (talk) 02:06, 10 April 2008 (UTC)
 * User:Mike.lifeguard What I call an error is to the name of the page and multiple references to "images" (since not all tags deal with images) and I think it also lost the rational for the use of the tags, some do state the information but aren't clear about the use one should give them. --Panic (talk) 02:16, 10 April 2008 (UTC)

Wording to create a new page
When you [go] to create a new book(or page), an info box comes at the top. Is this a template (something I can view the code for), or it something admin only type of hard coded thing? ChessCreator (talk) 00:50, 15 April 2008 (UTC)
 * Okay, answered my own question. It's here MediaWiki:Newarticletext
 * Both. That template at the top of the page is only a default, you can actually do a lot of modifications. When you go to create a new page, you can (if your wiki-foo is strong):
 * Edit the template at the top to display a specific message for a new page
 * Edit the template at the top to display a different message if the page already exists ("I already exist, check before saving!")
 * Preload the edit box with custom text.
 * Check out some of the work that I've done on my book creator page. It's as close to automation as we can get around here without having to use javascript. If you think something like this could be adapted for your use on the chess books, let me know and I can try to set something up for you. --Whiteknight (Page) (Talk) 01:08, 15 April 2008 (UTC)
 * That gadget looks impressive, but I'm wonder how it would ever be used.
 * Is it possible that you can say apply gadget if the URL for creation is in the Opening_theory_in_chess section? If not I can't see how the tool will get used. ChessCreator (talk) 14:10, 15 April 2008 (UTC)

Autoconfirmed user
Kindly help me as I wanted to post some pictures for my wikibook page. What would be the procedure for it?
 * You aren't able to upload images until your account is 4 days old. Until then, please read our media policy, so you know what you're doing when the 4 days is up. If your images are freely licensed, you can upload them to Commons (where you do not have to wait to upload). If you need other help, come on back. – Mike.lifeguard  | talk 17:02, 17 April 2008 (UTC)

Import vs. rename bug
I ran into this last night, and not sure what to do about it. Turns out that if an account has edits here (through the magic of import), the username can't be registered! The account came up on listusers, but had no account creation log.

My seat of the pants solution was to move "User:Username" to "User:Username (wikipedia edits)". I then blocked the wikipedia edits account. We might want a template for the userpage or something as well ("this user is a transwiki ghost of..."?), but at least we should try to do the same thing for each case. -- SB_Johnny | PA! 10:38, 20 April 2008 (UTC)
 * Perhaps crats should be permitted to override the software with Extension:User Merge and Delete . Even so, this is a problem, so I'll make a report at bugzilla for you. I think the desired behaviour here is that the user is uncreateable (to avoid users registering an account that already has edits, which could attribute those edits to someone who didn't make them) but that this is possible to override. Alternatively, all imported history might use the User@xxproject format for attribution (which is not a username that can be created), but I seriously doubt that'd be possible retroactively. Realistically, I think the ability to override the software is necessary here (similarly with renaming someone to an account which has been merged - though there is now a method to do this is a slightly more roundabout way). – Mike.lifeguard  | talk 12:49, 20 April 2008 (UTC)
 * Actually, it seems you can create the account, which is (IMO) a bug, as it allows the imported edits to be attributed to anyone who registers the account. – Mike.lifeguard  | talk 13:41, 20 April 2008 (UTC)

I like the idea of using User@xxproject for the short run. With SUL just around the corner, whenever they fix the outstanding problems though, the entire issue of someone being able to hijack contributions will become moot. --dark lama  14:49, 20 April 2008 (UTC)
 * For reference: 13798
 * I meant that when edits are imported, they should be attributed to User@xxproject - not that we rename the ghost accounts to that (as there may be more than one project which has edits of that user imported, and we can't split it into more than one user; also, there are many many users with only imported contribs, and we can't rename them all) – Mike.lifeguard  | talk 14:52, 20 April 2008 (UTC)

Vandalism
Radiation_Oncology/Lung/SCLC/Limited_Stage page was just vandalized from IP 131.123.184.49 I am reverting this one, but there may be more to come. Tdvorak (talk) 17:49, 21 April 2008 (UTC)


text:
Cookbook talk:Traditional Finnish Lemon Mead (Sima)

These seem contradictory:

- Wash the citrons well and peel them into the container you will making your mead in. - Add a very small piece of yeast and slice the citrons into the mix, carefully removing the white part.

The white part (pith) of citrus fruit is bitter tasting.

Do the instructions mean that the zest (outer colored peel) be separately removed from the pith and put into the fermentation container?

If so, should the white pith be removed from the pulp of the fruit before slicing and placing the pulp into the container?

yes, they should be separated and the pith is discarded, not included in the drink

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


text:
User talk:Istirbu

Welcome message
Hello, and welcome to Wikibooks!

Here are some tips to help you get started:
 * To learn the wiki-markup-language syntax, see Help:Editing.
 * Make sure to sign your posts and comments with four tildes, like this: ~~~~
 * There is a box at the top of the edit window (if javascript is enabled on your browser) that will insert it too (looks like part of a signature). This will let others know who left it, and make it easy to reply back to you.
 * Remember to conduct any editing experiments in the sandbox.
 * You can tell the community something about yourself in your userpage.
 * You can get to this page by clicking the tab at the top of the page labeled with your registered username.
 * Wikibooks is a collection of open-source textbooks. (What is Wikibooks).
 * If you are 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 (requests for importation) 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 Reading Room with any questions or ideas.
 * Eventually, you might want to read the Manual of Style and Policies and Guidelines.
 * Help us by participating in policy and guideline creation.
 * 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 Reading Room, IRC channel or ask me personally on my talk page. For site news, see the Bulletin board. It might be a good idea to add that page to your "watchlist" so that you can see when any new information is posted there. You can do that by clicking the tab labeled "watch" at the top of the page.

Good luck! --Panic (talk) 22:00, 30 April 2008 (UTC)

title: User talk:Istirbu


text:
User talk:Juxe

Welcome message
Hello, and welcome to Wikibooks!

Here are some tips to help you get started:
 * To learn the wiki-markup-language syntax, see Help:Editing.
 * Make sure to sign your posts and comments with four tildes, like this: ~~~~
 * There is a box at the top of the edit window (if javascript is enabled on your browser) that will insert it too (looks like part of a signature). This will let others know who left it, and make it easy to reply back to you.
 * Remember to conduct any editing experiments in the sandbox.
 * You can tell the community something about yourself in your userpage.
 * You can get to this page by clicking the tab at the top of the page labeled with your registered username.
 * Wikibooks is a collection of open-source textbooks. (What is Wikibooks).
 * If you are 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 (requests for importation) 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 Reading Room with any questions or ideas.
 * Eventually, you might want to read the Manual of Style and Policies and Guidelines.
 * Help us by participating in policy and guideline creation.
 * 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 Reading Room, IRC channel or ask me personally on my talk page. For site news, see the Bulletin board. It might be a good idea to add that page to your "watchlist" so that you can see when any new information is posted there. You can do that by clicking the tab labeled "watch" at the top of the page.

Good luck!

PS Txs in advance for any more help you can provide on the C++ Programming book. --Panic (talk) 22:01, 30 April 2008 (UTC)

title: User talk:Juxe


text:
User talk:Nagdy~enwikibooks

Alkrizy
Hi Alkrizy how are you doing,

regards, User:nagdy

Welcome
Welcome, Nagdy!

Come introduce yourself at the new users page. If you have any questions, you can ask there or contact me personally. --Whiteknight (Page) (Talk) 22:25, 30 April 2008 (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 Nagdy. To make sure that both of you can use all Wikimedia projects in future, we have reserved the name Nagdy~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:31, 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:17, 19 April 2015 (UTC)

title: User talk:Nagdy~enwikibooks


text: User talk:74.235.202.155

title: User talk:74.235.202.155


text:
User talk:Andries

Welcome to Wikibooks, Andries!

title: User talk:Andries


text:
User talk:RAFHAAA96

Welcome to Wikibooks, RAFHAAA96!

title: User talk:RAFHAAA96


text: User talk:71.121.84.20

title: User talk:71.121.84.20


text: User talk:168.213.1.135

title: User talk:168.213.1.135


text: User talk:142.22.61.2

title: User talk:142.22.61.2


text:
User talk:Sdl6838

Welcome to Wikibooks, Sdl6838!

title: User talk:Sdl6838


text:
MATLAB Programming/Bode Plot

Introduction
This article is on the topic of creating Bode plots in MATLAB. The quick answer is use the bode command. However, the bode command has several options and the plots generated by the bode command are not easily reformatted. The default formatting of most MATLAB plots is good for analysis but less than ideal for dropping into Word and PowerPoint documents or even this website. As a result this article presents an alternative that requires more lines of code but offers the full formatting flexibility of the generic plot command.

MATLAB's Bode Command
The basic bode command is as follows >> bode(LTI_SYS) where
 * LTI_SYS is an LTI object - TF, SS, ZPK, or FRD

The bode command will automatically call gcf which will put the bode plot on the current figure. If no figure exists then one is created by gcf.

If you wish to specify the frequency points at which LTI_SYS is plotted then create a frequency vector using logspace or linspace as follows >> freqVec = logspace(-1, 3, 5000); >> bode(LTI_SYS, freqVec * (2*pi)) where
 * freqVec is a vector of 5000 frequencies, in Hz, spaced evenly on a log scale from 10-1 to 103
 * pi is a MATLAB constant equal to the value of $$\pi$$ and in this case it is used to convert freqVec to rad/sec as it is passed to the bode command

In order to get the magnitude and phase at each frequency point the bode command must be called with output arguments such as >> [mag, phase] = bode(LTI_SYS); or >> [mag, phase] = bode(LTI_SYS, freqVec * (2*pi)); where
 * mag is the magnitude (not in dB) at each point in freqVec
 * phase is the phase (in degrees) at each point in freqVec

The mag and phase variables must come out as 3D arrays. Assuming LTI_SYS is SISO then the commands below will convert mag and phase into the vectors you would expect >> mag = mag; >> phase = phase; >> mag = db(mag);               % to get the magnitude in 20log dB

Issues with the bode command
The main issue with the bode command is reformatting of the plot. The bode command appears to use a normal semilogx plot and then apply patches ro something similar to the figure. This can lead to odd behavior when attempting to create multi-line titles, reformat line widths or font sizes, etc. The normal relationship of axes to figure is just not quite present.

title: MATLAB Programming/Bode Plot


text:
MATLAB Programming/Nichols Plot

Introduction
This article is on the topic of creating Nichols plots in MATLAB. The quick answer is use the Nichols command. However, the Nichols command has several options and the plots generated by the Nichols command are not easily reformatted. The default formatting of most MATLAB plots is good for analysis but less than ideal for dropping into Word and PowerPoint documents or even this website. As a result this article presents an alternative that requires more lines of code but offers the full formatting flexibility of the generic plot command.

MATLAB's Nichols Command
The basic Nichols command is as follows >> nichols(LTI_SYS) where
 * LTI_SYS is an LTI object - TF, SS, ZPK, or FRD

The Nichols command will automatically call gcf which will put the Nichols plot on the current figure. If no figure exists then one is created by gcf.

If you wish to specify the frequency points at which LTI_SYS is plotted then create a frequency vector using logspace or linspace as follows >> freqVec = logspace(-1, 3, 5000); >> nichols(LTI_SYS, freqVec * (2*pi)) where
 * freqVec is a vector of 5000 frequencies, in Hz, spaced evenly on a log scale from 10-1 to 103
 * pi is a MATLAB constant equal to the value of $$\pi$$ and in this case it is used to convert freqVec to rad/sec as it is passed to the Nichols command

Issues with the nichols command
The main issue with the nichols command is reformatting of the plot. The nichols command appears to use a normal semilogx plot and then apply patches or something similar to the figure. This can lead to odd behavior when attempting to create multi-line titles, reformat line widths or font sizes, etc. The normal relationship of axes to figure is just not quite present.

title: MATLAB Programming/Nichols Plot


text:
MATLAB Programming/Nyquist Plot

Introduction
This article is on the topic of creating Nyquist plots in MATLAB. The quick answer is use the nyquist command. However, the Nyquist command has several options and the plots generated by the nyquist command are not easily reformatted. The default formatting of most MATLAB plots is good for analysis but less than ideal for dropping into Word and PowerPoint documents or even this website. As a result this article presents an alternative that requires more lines of code but offers the full formatting flexibility of the generic plot command.

MATLAB's Nyquist Command
The basic Nyquist command is as follows >> nyquist(LTI_SYS) where
 * LTI_SYS is an LTI object - TF, SS, ZPK, or FRD

The Nyquist command will automatically call gcf which will put the Nyquist plot on the current figure. If no figure exists then one is created by gcf.

If you wish to specify the frequency points at which LTI_SYS is plotted then create a frequency vector using logspace or linspace as follows >> freqVec = logspace(-1, 3, 5000); >> nyquist(LTI_SYS, freqVec * (2*pi)) where
 * freqVec is a vector of 5000 frequencies, in Hz, spaced evenly on a log scale from 10-1 to 103
 * pi is a MATLAB constant equal to the value of $$\pi$$ and in this case it is used to convert freqVec to rad/sec as it is passed to the nyquist command

Issues with the nyquist command
The main issue with the nyquist command is reformatting of the plot. The nyquist command appears to use a normal semilogx plot and then apply patches or something similar to the figure. This can lead to odd behavior when attempting to create multi-line titles, reformat line widths or font sizes, etc. The normal relationship of axes to figure is just not quite present.

title: MATLAB Programming/Nyquist Plot


text:
Color Theory/Color gradient

"Separate the calculation phase from the colouring phase"—Claude Heiland-Allen =Theory=
 * imagemagick : color-management
 * users-guide-to-high-bit-depth-gimp by Ella Stone

Introduction

 * Your Friendly Guide to Colors in Data Visualisation by Lisa Charlotte Rost
 * Playing with Gradient by rockraikar
 * gimp concepts : gradients
 * Ultra Fractal Gradient Hints by Janet  Parke
 * Image gradient at wikipedia
 * Color gradient at wikipedia
 * w3schools : css3 gradients
 * gradients by Alan Gibson
 * domain coloring
 * DomainColoring by Emilia Petrisor
 * dynamicmath : domain-coloring
 * dctools by Juan Carlos Ponce Campuzano
 * domain_coloring ( gnuplot)

Types of color gradient
Color gradients can be named by :
 * dimension
 * color bit depth
 * color model: hsv
 * number of segments of gradient
 * function used to create gradient
 * special input values ( NAN, no data, high or low out-of-range values)
 * Number of colors
 * number type, range and precision
 * perceptual uniformity
 * monotonic
 * Monotonic in hue
 * Monotonic in saturation
 * Monotonic in luminance

1D
Here color of pixel is proportional to 1D variable. For example in 2D space ( complex plane where point z = x+y*i) :
 * position with respect to x-axis of Cartesian coordinate system : x
 * distance to origin : r=abs(z)
 * potential
 * complex angle angle=arg(z)
 * cyclic-colormap-without-visual-distortions-for-use-in-phase-angle-plots
 * rainbows by Charlie Loyd
 * percepually uniform

An example of a function to return a color that is linearly between two given colors: colorA = [0, 0, 255] # blue colorB = [255, 0, 0] # red function get_gradient_color(val): for i in [1,2,3]: color[i] = colorA[i] + val * (colorB[i] - colorA[i]) return color
 * 1) 'val' must be between 0 and 1

Code
 * continous gradient
 * 1D RGB color
 * 1D gray color

2D

Because color can be treated as more than 1D value it is used to represent more than one ( real or 1D) variable. For example :
 * Robert Munafo uses 2 values from HSV model of color
 * John J. G. Savard uses own function
 * Domain coloring is a technique for visualizing functions of a complex variable
 * matrixlab : rgb-images in MAtlab
 * animated-contours from d3js.org
 * Multiwave coloring for Mandelbrot by Paul Derbyshire
 * 2D colormap by Gerrit :
 * The angle of the final iterate is most naturally mapped to hue, which has the matching topology of a circle
 * the number of iterations is mapped to saturation and value (colorspace is 3D, at least for most humans).

3D

 * Hans Lundmark page

Color model
Color models description

The quality of 16-bit linear RGB is about equal to 12-bit sRGB (= nonlinear RGB), beacause linear color results in disproportionately more samples near white and fewer near black.

Types :
 * RGB is for the display
 * CMYK is for printing
 * other ( HSV, HSL, ...) are for choosing color, processing
 * HSLuv
 * YUV (Luminance and chrominance) it is a way of breaking the brightness and colours in the image down into numbers
 * HWB

RGB

 * RGB = "linear" color space
 * sRGB
 * sRGB = standard RGB. SRGBColorSpace (“srgb”) refers to the color space defined by the Rec. 709 primaries, D65 white point, and nonlinear sRGB transfer functions.
 * The sRGB Linear space is the same as sRGB except that the transfer function is linear-light (there is no gamma-encoding

HSV
In Basic :

Interpolating function

 * One can use any function in each segment of gradient
 * Output of function is scaled to range of color component
 * interpolation between colors can be:
 * lerp = Linear intERPolation, in sRGB color space
 * nonlinear (quadratic, ...) classic in Photoshop
 * linear color space interpolation: convert keys from sRGB to float Linear, lerp between them, convert back into fixed point sRGB
 * perceptual color space interpolation ( OKlab): convert keys from sRGB to float Linear, then into Oklab, lerp between them, convert back into float Linear, then back into fixed point sRGB.

the tail of gradient Oklab evaluation function code by Aras Pranckevičius:

In CSS interpolation between two color values takes place by executing the following steps:
 * (if required) converting them to a given color space which will be referred to as the interpolation color space below
 * (if required) re-inserting carried-forward values in the converted colors
 * (if required) fixing up the hues, depending on the selected
 * premultiplication of the color components
 * linearly interpolating each component of the computed value of the color separately
 * undoing premultiplication

Example 36. To interpolate:
 * in the Lab color space
 * the two colors: rgb(76% 62% 03%/0.4) and color(display-p3 0.84 0.19 0.72/0.6)
 * they are first converted to lab: lab(66.927% 4.873 68.622/0.4) lab(53.503% 82.672 -33.901/0.6)
 * premultiplication: then the L, a and b coordinates are premultiplied before interpolation: [26.771% 1.949 27.449] and [32.102% 49.603 -20.341].
 * Interpolation: The midpoint of linearly interpolating these would be [29.4365% 25.776 3.554] which,
 * premultiplication is undone: with an alpha value of 0.5, which gives lab(58.873% 51.552 7.108) / 0.5)

Number of colors
Number of color is determined by color depth : from 2 colors to 16 mln of colors.

See also
 * 16-bit (rgb-565) color name definitions in c by Nic Newdigate
 * About RGB565 and how to convert into it November 14, 2018 by Thomas Barth

Repetition and offset
Direct repetition :

Color is proportional to position  <0;1>  of color in color gradient. if position > 1 then we have repetition of colors. it maybe useful

Mirror repetition  :

"colorCycleMirror - This will reflect the colour gradient so that it cycles smoothly "

Offset :

=How to use color gradients in computer programs= First find what format of color you need in your program.

Ways of making gradient :
 * gradient functions
 * gradient files
 * A colour look-up table (CLUT) ) color map, palette
 * palette
 * mixed

"Lookup tables (LUTs) are an excellent technique for optimizing the evaluation of functions that are expensive to compute and inexpensive to cache. ... For data requests that fall between the table's samples, an interpolation algorithm can generate reasonable approximations by averaging nearby samples."

CLUT image
One can use CLUT image a a source of the gradient

convert input.pgm -level 0,65532 clut.ppm -interpolate integer -clut -depth 8 output.png

perl
Conversions :
 * between FractInt and Fractal eXtreme palettes

lists:
 * wikipedia : List_of_color_palettes

Gradient functions
Name:
 * coloring function

types
 * continous
 * linear
 * non linear
 * discrete

Examples :
 * in JS using mandel.js by Christopher Williams
 * Javascript using jQuery
 * C++ function by Richel Bilderbeek
 * Multiwave coloring for Mandelbrot
 * histogram colouring
 * Dave Green's `cubehelix' colour scheme
 * css gradients
 * stackoverflow question: how-to-create-colour-gradient-in-python
 * complex_plot from Arb library and description

HSV gradient

 * explanation by Robert P. Munafo
 * Basic code and images by Jean Debord
 * c programs by Curtis T McMullen

Linear RGB gradient with 6 segments
Rainbow gradient
 * in scientific computing
 * SOMEWHERE OVER THE RAINBOW. How to Make Effective Use of Colors in Meteorological Visualizations by Reto Stauffer, Georg J. Mayr, Markus Dabernig, and Achim Zeileis

Here gradient consists from 6 segments. In each segment only one RGB component of color is changed using linear function.

C version
Input of function are 2 variables :
 * position of color in gradient, (a normalized float between 0.0 and 1.0 )
 * color as an array of RGB components ( integer without sign from 0 to 255 )

This function does not use direct outoput ( void) but changes input variables color. One can use it this way:

Sine based gradient

 * Cosine based gradient generation by Karsten Schmidt
 * paletes by inigo quilez

"The idea is to change the color based on a sine wave. This gives a nice smooth gradient effect (although it’s not linear, which is not a requirement anyway). By changing the frequency of the RGB components (we could theoretically work with other color spaces such as HSV) we can get various gradients. Also, we can also play with the phase of each color component, creating a “shifting” effect. The basic implementation of such a gradient can be implemented like so:"

"Where: Note that all calculations are done with floating point numbers (ranging from 0.0 to 1.0), converting to a WPF Color structure (in this case) at the very end. This is simply convenient, as we’re working with trigonometric functions, which like floating point numbers rather than integers. The result is normalized to the range 0 to 1, as the sine function produces results from –1 to 1, so we add one to get a range of 0 to 2 and finally divide by 2 to get to the desired range."
 * the Freq* are the frequencies of the respective RGB colors
 * Phase* are the phase shift values.

cubehelix
cubehelix gradient
 * Gnuplot palette cubehelix

Gradient files

 * Color Look-Up Table (CLUT)

File types for color gradient
There are special file types for color gradients:
 * The GIMP uses the files with .ggr extension
 * Fractint uses .map files
 * UltraFractal uses .ugr - These files can contain multiple gradients
 * ual - old Ultra Fractal gradient file
 * rgb, pal, gpf - gnuplot files
 * The Matplotlib colormap is a lookup table
 * csv files
 * maps in WHIP format ( Autodesk)  by Paul Bourke
 * Gnofract4D saves gradients only inside the graphic file, not as separate file.
 * MatLab
 * Python
 * R
 * GMT
 * QGIS
 * Ncview
 * Ferret
 * Plotly
 * Paraview
 * VisIt
 * Mathematica
 * Surfer
 * d3
 * SKUA-GOCAD
 * Petrel
 * Fledermaus
 * Qimera
 * ImageJ
 * Fiji
 * Inkscape
 * XML
 * text
 * SASS style sheet
 * LESS - http://lesscss.org style sheet
 * CSS - Cascading Style Sheet

csv files
a small table containing 33 values ( stored in a csv file) by Kenneth Moreland

CSS syntax
CSS syntax

The default color space for mixing (and gradients) in CSS is oklab

Non-repeating
Color gradients

black-to-white-gradient-in-each-space

conic
Conic gradient in CSS

/* Hue wheel */ background: conic-gradient(red, yellow, lime, aqua, blue, magenta, red); border-radius: 50%

Fractint map files
The default filetype extension for color-map files is ".MAP". These are ASCII text files. Consist of a series of RGB triplet values (one triplet per line, encoded as the red, green, and blue [RGB] components of the color). Color map ( or palette) is used as a colour look-up table Default color map is in the Default.map file : 0 0 0           The default VGA color map 0 0 168 0 168 0 0 168 168 168 0 0 168 0 168 168 84 0 168 168 168 84 84 84 84 84 252 84 252 84 84 252 252 252 84 84 252 84 252 252 252 84 252 252 252 0 0 0 20 20 20 32 32 32 44 44 44 56 56 56 68 68 68 80 80 80 96 96 96 112 112 112 128 128 128 144 144 144 160 160 160 180 180 180 200 200 200 224 224 224 252 252 252 0 0 252 64 0 252 124 0 252 188 0 252 252 0 252 252 0 188 252 0 124 252 0 64 252 0 0 252 64 0 252 124 0 252 188 0 252 252 0 188 252 0 124 252 0 64 252 0 0 252 0 0 252 64 0 252 124 0 252 188 0 252 252 0 188 252 0 124 252 0 64 252 124 124 252 156 124 252 188 124 252 220 124 252 252 124 252 252 124 220 252 124 188 252 124 156 252 124 124 252 156 124 252 188 124 252 220 124 252 252 124 220 252 124 188 252 124 156 252 124 124 252 124 124 252 156 124 252 188 124 252 220 124 252 252 124 220 252 124 188 252 124 156 252 180 180 252 196 180 252 216 180 252 232 180 252 252 180 252 252 180 232 252 180 216 252 180 196 252 180 180 252 196 180 252 216 180 252 232 180 252 252 180 232 252 180 216 252 180 196 252 180 180 252 180 180 252 196 180 252 216 180 252 232 180 252 252 180 232 252 180 216 252 180 196 252 0 0 112 28 0 112 56 0 112 84 0 112 112 0 112 112 0 84 112 0 56 112 0 28 112 0 0 112 28 0 112 56 0 112 84 0 112 112 0 84 112 0 56 112 0 28 112 0 0 112 0 0 112 28 0 112 56 0 112 84 0 112 112 0 84 112 0 56 112 0 28 112 56 56 112 68 56 112 84 56 112 96 56 112 112 56 112 112 56 96 112 56 84 112 56 68 112 56 56 112 68 56 112 84 56 112 96 56 112 112 56 96 112 56 84 112 56 68 112 56 56 112 56 56 112 68 56 112 84 56 112 96 56 112 112 56 96 112 56 84 112 56 68 112 80 80 112 88 80 112 96 80 112 104 80 112 112 80 112 112 80 104 112 80 96 112 80 88 112 80 80 112 88 80 112 96 80 112 104 80 112 112 80 104 112 80 96 112 80 88 112 80 80 112 80 80 112 88 80 112 96 80 112 104 80 112 112 80 104 112 80 96 112 80 88 112 0 0 64 16 0 64 32 0 64 48 0 64 64 0 64 64 0 48 64 0 32 64 0 16 64 0 0 64 16 0 64 32 0 64 48 0 64 64 0 48 64 0 32 64 0 16 64 0 0 64 0 0 64 16 0 64 32 0 64 48 0 64 64 0 48 64 0 32 64 0 16 64 32 32 64 40 32 64 48 32 64 56 32 64 64 32 64 64 32 56 64 32 48 64 32 40 64 32 32 64 40 32 64 48 32 64 56 32 64 64 32 56 64 32 48 64 32 40 64 32 32 64 32 32 64 40 32 64 48 32 64 56 32 64 64 32 56 64 32 48 64 32 40 64 44 44 64 48 44 64 52 44 64 60 44 64 64 44 64 64 44 60 64 44 52 64 44 48 64 44 44 64 48 44 64 52 44 64 60 44 64 64 44 60 64 44 52 64 44 48 64 44 44 64 44 44 64 48 44 64 52 44 64 60 44 64 64 44 60 64 44 52 64 44 48 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Gimp/Inscape gpl files
Used by : Gimp, Inscape, Aseprite, Drawpile, Krita, MyPaint

Syntax:
 * ASCII files ( text files)
 * Comments must start with a #. In non-empty lines that don't, the first three tokens are parsed as numbers
 * There is no alpha support
 * GIMP Palette - it must be the first line of the file
 * Name: - sets the name of the color palette.
 * Columns: - is just an indication for displaying the palette inside GIMP.
 * # - comments must start with a #. All comments are ignored by GIMP.
 * 0 0 0 Black - RGB values for the color followed by the color name

Source code of loader function

GIMP palettes are stored using a special file format, in files with the extension .gpl.

Directory:
 * ~/.config/GIMP/x.y/palettes/ directory (where x.y is the GIMP version number)
 * ~/.config/inkscape/palettes/

GIMP Palette Name: Material Design Columns: 14 255 248 225		amber 50 255 236 179		amber 100 255 224 130		amber 200 255 213 79		amber 300 255 202 40		amber 400 255 193  7		amber 500 255 179  0		amber 600 255 160  0		amber 700 255 143  0		amber 800 255 111  0		amber 900 255 229 127		amber a100 255 215 64		amber a200 255 196  0		amber a400 255 171  0		amber a700 227 242 253		blue 50 187 222 251		blue 100 144 202 249		blue 200 100 181 246		blue 300 66 165 245		blue 400 33 150 243		blue 500 30 136 229		blue 600 25 118 210		blue 700 21 101 192		blue 800 13 71 161		blue 900 130 177 255		blue a100 68 138 255		blue a200 41 121 255		blue a400 41 98 255		blue a700 224 247 250		cyan 50 178 235 242		cyan 100 128 222 234		cyan 200 77 208 225		cyan 300 38 198 218		cyan 400 0 188 212		cyan 500 0 172 193		cyan 600 0 151 167		cyan 700 0 131 143		cyan 800 0 96 100		cyan 900 132 255 255		cyan a100 24 255 255		cyan a200 0 229 255		cyan a400 0 184 212		cyan a700 251 233 231		deep-orange 50 255 204 188		deep-orange 100 255 171 145		deep-orange 200 255 138 101		deep-orange 300 255 112 67		deep-orange 400 255 87  34		deep-orange 500 244 81  30		deep-orange 600 230 74  25		deep-orange 700 216 67  21		deep-orange 800 191 54  12		deep-orange 900 255 158 128		deep-orange a100 255 110 64		deep-orange a200 255 61   0		deep-orange a400 221 44   0		deep-orange a700 237 231 246		deep-purple 50 209 196 233		deep-purple 100 179 157 219		deep-purple 200 149 117 205		deep-purple 300 126 87 194		deep-purple 400 103 58 183		deep-purple 500 94 53 177		deep-purple 600 81 45 168		deep-purple 700 69 39 160		deep-purple 800 49 27 146		deep-purple 900 179 136 255		deep-purple a100 124 77 255		deep-purple a200 101 31 255		deep-purple a400 98  0 234		deep-purple a700 232 245 233		green 50 200 230 201		green 100 165 214 167		green 200 129 199 132		green 300 102 187 106		green 400 76 175 80		green 500 67 160 71		green 600 56 142 60		green 700 46 125 50		green 800 27 94  32		green 900 185 246 202		green a100 105 240 174		green a200 0 230 118		green a400 0 200 83		green a700 232 234 246		indigo 50 197 202 233		indigo 100 159 168 218		indigo 200 121 134 203		indigo 300 92 107 192		indigo 400 63 81 181		indigo 500 57 73 171		indigo 600 48 63 159		indigo 700 40 53 147		indigo 800 26 35 126		indigo 900 140 158 255		indigo a100 83 109 254		indigo a200 61 90 254		indigo a400 48 79 254		indigo a700 225 245 254		light-blue 50 179 229 252		light-blue 100 129 212 250		light-blue 200 79 195 247		light-blue 300 41 182 246		light-blue 400 3 169 244		light-blue 500 3 155 229		light-blue 600 2 136 209		light-blue 700 2 119 189		light-blue 800 1 87 155		light-blue 900 128 216 255		light-blue a100 64 196 255		light-blue a200 0 176 255		light-blue a400 0 145 234		light-blue a700 241 248 233		light-green 50 220 237 200		light-green 100 197 225 165		light-green 200 174 213 129		light-green 300 156 204 101		light-green 400 139 195 74		light-green 500 124 179 66		light-green 600 104 159 56		light-green 700 85 139 47		light-green 800 51 105 30		light-green 900 204 255 144		light-green a100 178 255 89		light-green a200 118 255  3		light-green a400 100 221 23		light-green a700 249 251 231		lime 50 240 244 195		lime 100 230 238 156		lime 200 220 231 117		lime 300 212 225 87		lime 400 205 220 57		lime 500 192 202 51		lime 600 175 180 43		lime 700 158 157 36		lime 800 130 119 23		lime 900 244 255 129		lime a100 238 255 65		lime a200 198 255  0		lime a400 174 234  0		lime a700 255 243 224		orange 50 255 224 178		orange 100 255 204 128		orange 200 255 183 77		orange 300 255 167 38		orange 400 255 152  0		orange 500 251 140  0		orange 600 245 124  0		orange 700 239 108  0		orange 800 230 81   0		orange 900 255 209 128		orange a100 255 171 64		orange a200 255 145  0		orange a400 255 109  0		orange a700 252 228 236		pink 50 248 187 208		pink 100 244 143 177		pink 200 240 98 146		pink 300 236 64 122		pink 400 233 30  99		pink 500 216 27  96		pink 600 194 24  91		pink 700 173 20  87		pink 800 136 14  79		pink 900 255 128 171		pink a100 255 64 129		pink a200 245  0  87		pink a400 197 17  98		pink a700 243 229 245		purple 50 225 190 231		purple 100 206 147 216		purple 200 186 104 200		purple 300 171 71 188		purple 400 156 39 176		purple 500 142 36 170		purple 600 123 31 162		purple 700 106 27 154		purple 800 74 20 140		purple 900 234 128 252		purple a100 224 64 251		purple a200 213  0 249		purple a400 170  0 255		purple a700 255 235 238		red 50 255 205 210		red 100 239 154 154		red 200 229 115 115		red 300 239 83  80		red 400 244 67  54		red 500 229 57  53		red 600 211 47  47		red 700 198 40  40		red 800 183 28  28		red 900 255 138 128		red a100 255 82  82		red a200 255 23  68		red a400 213  0   0		red a700 224 242 241		teal 50 178 223 219		teal 100 128 203 196		teal 200 77 182 172		teal 300 38 166 154		teal 400 0 150 136		teal 500 0 137 123		teal 600 0 121 107		teal 700 0 105 92		teal 800 0 77  64		teal 900 167 255 235		teal a100 100 255 218		teal a200 29 233 182		teal a400 0 191 165		teal a700 255 253 231		yellow 50 255 249 196		yellow 100 255 245 157		yellow 200 255 241 118		yellow 300 255 238 88		yellow 400 255 235 59		yellow 500 253 216 53		yellow 600 251 192 45		yellow 700 249 168 37		yellow 800 245 127 23		yellow 900 255 255 141		yellow a100 255 255  0		yellow a200 255 234  0		yellow a400 255 214  0		yellow a700 236 239 241		blue-grey 50 207 216 220		blue-grey 100 176 190 197		blue-grey 200 144 164 174		blue-grey 300 120 144 156		blue-grey 400 96 125 139		blue-grey 500 84 110 122		blue-grey 600 69 90 100		blue-grey 700 55 71  79		blue-grey 800 38 50  56		blue-grey 900 239 235 233		brown 50 215 204 200		brown 100 188 170 164		brown 200 161 136 127		brown 300 141 110 99		brown 400 121 85  72		brown 500 109 76  65		brown 600 93 64  55		brown 700 78 52  46		brown 800 62 39  35		brown 900 250 250 250		grey 50 245 245 245		grey 100 238 238 238		grey 200 224 224 224		grey 300 189 189 189		grey 400 158 158 158		grey 500 117 117 117		grey 600 97 97  97		grey 700 66 66  66		grey 800 33 33  33		grey 900 0  0   0	   	black 255 255 255	white

Gimp ggr files
"The gradients that are supplied with GIMP are stored in a system gradients folder. By default, gradients that you create are stored in a folder called gradients in your personal GIMP directory. Any gradient files (ending with the extension .ggr) found in one of these folders, will automatically be loaded when you start GIMP" ( from gimp doc ) Default gradients are in /usr/share/gimp/2.0/gradients directory ( check it in a window : Edit/preferences/directories)

Git repo
 * https://git.gnome.org/browse/gimp/tree/data/gradients

Gimp gradients can be created thru :
 * GUI
 * manually in text editor ( use predefined gradients as a base)
 * in own programs

Gimp gradient file format is described in:
 * GIMP Application Reference Manual
 * source files :
 * app/gradient.c and app/gradient_header.h for GIMP 1.3 version.
 * gimp-2.6.0/app/core/gimpgradient.c

Gimp Gradient Segment format :

In GimpConfig style format:

 * 1) GIMP Gradient file

(GimpGradient "Abstract 1"       (segment 0.000000 0.286311 0.572621 (left-color (gimp-rgba 0.269543 0.259267 1.000000 1.000000)) (right-color (gimp-rgba 0.215635 0.407414 0.984953 1.000000)) (blending-function linear) (coloring-type rgb))       (segment ...)        ...        (segment ...))

GIMP Gradient Name: GMT_hot 3 0.000000 0.187500 0.375000 0.000000 0.000000 0.000000 1.000000 1.000000 0.000000 0.000000 1.000000 0 0 0.375000 0.562500 0.750000 1.000000 0.000000 0.000000 1.000000 1.000000 1.000000 0.000000 1.000000 0 0 0.750000 0.875000 1.000000 1.000000 1.000000 0.000000 1.000000 1.000000 1.000000 1.000000 1.000000 0 0

First line says it is a gimp gradient file.

Second line is a gradient's name.

Third line tells the number of segments in the gradient.

Each line following defines the property of each segment in following order :"
 * position of left stoppoint
 * position of middle point
 * position of right stoppoint
 * R for left stoppoint
 * G for left stoppoint
 * B for left stoppoint
 * A for left stoppoint
 * R for right stoppoint
 * G for right stoppoint
 * B for right stoppoint
 * A for right stoppoint
 * Blending function constant
 * coloring type constant

There are only two constants at the end of each line:
 * the blending function constant of the segment (apparently 0=Linear, 1=Curved, 2=Sinusoidal, 3=Spherical (increasing), 4=Spherical (decreasing))
 * the coloring type constant of the segment (probably 0=RGB, 1=HSV (counter-clockwise hue), 2=HSV (clockwise hue)

json

 * json object

links

 * cpp code by Patrick Ross
 * Reading gimp ggr files in python by Ned Batchelder
 * Python Pil library functions for reading GIMP gradient files ( in file GimpGradientFile.py)
 * perl scripts to convert gimp-1.2.x palettes and gradients into a 1.3 form by Jeff Trefftzs
 * Gimp Python plugin: make-gradient.py by Giuseppe Conte
 * gimp gradient files - lisp code from Polypen by Yannick Gingras
 * Perl functions from GIMP pdb - gradient.pdb
 * stackoverflow : javascript-color-gradient
 * c pseudocode and js code by Christopher Williams
 * Lode's Computer Graphics Tutorial : Light and Color
 * bruce lindbloom : color equations

Collections of gradients / colormaps

 * gradcentral
 * Cpt-city
 * gimp gradients (ggr files) are in directory : /usr/share/gimp/2.0/gradients/
 * The COLOURlovers site hosts a million 5-colour palettes in several formats
 * thi.ng
 * SciVisColor
 * Fabio Crameri: scientific colourmaps in provided in all major formats

=programs=
 * |leonardo Color tools for design systems
 * gnuplot
 * mdigi tools color: Color tools for the web listed alphabetically
 * The CCC-Tool is a general tool for the creation, analyzing and testing of colormaps with the effort to minimize the needed interaction components.
 * image magic
 * OpenCV library
 * python
 * colorAide A library to aid in using colors
 * coloria Tools for color research
 * colour-science: Colour is an open-source Python package providing a comprehensive number of algorithms and datasets for colour science.
 * colour = color representations manipulation library (RGB, HSL, web, ...) by Valentin Lab
 * njsmith: colorspacious: A powerful, accurate, and easy-to-use Python library for doing colorspace conversions
 * Colour is an open-source Python package providing a comprehensive number of algorithms and datasets for colour science. It is freely available under the New BSD License terms. Colour is an affiliated project of NumFOCUS, a 501(c)(3) nonprofit in the United States.
 * matplotlib
 * matplotlib: viscm A tool for visualizing and designing colormaps using colorspacious and matplotlib
 * math3d : sphere colormap
 * VIVID GRADIENT GENERATOR TOOL by learn ui design
 * paletton- color scheme designer and generator
 * Image Magic
 * snibgo's ImageMagick pages: Gradients Cookbook
 * snibgo's ImageMagick pages: Gradient contours

color convert

 * qConv.com - The quick converter and color manager. The powerful color database for designers and agencies.
 * hextoral color converter
 * colormine color-converter
 * java lib
 * ColorMine for POV-Ray byMichael Horvath
 * C# by hvaldi
 * ColorSpace: C++ library for converting between color spaces and comparing colors by Nicolae Berendea
 * farver: High Performance Colourspace Manipulation in R. Src code in c++. It provides an interface to a modified version of the ColorSpace C++ library.

split your hexadecimal color code into 3 values, that could be treated as RGB vectors (RGB decimals) ( from hextoral)

color gradient convert

 * ggr2glsl is a simple utility to convert GIMP gradient files to GLSL functions.
 * gradient-converter-apophysis-to-kalles-fraktaler

=tests=

Test your :
 * monitor ( gamut)
 * graphic card
 * printer
 * own

Test your color abilities

 * The X-Rite Color Challenge and Hue Test
 * The FM100 Hue Test is an easy-to-administer test and a highly effective method for evaluating an individual's ability to discern color.

=How to choose color gradient ?=
 * How to Choose Colours Procedurally (Algorithms) 29 Jul, 2012 by Herman Tulleken
 * perceptually-smooth-multi-color-linear-gradients by Matt DesLauriers Jan 25, 2021
 * Nonlinear Color Scales for Interactive Exploration by Young Hyun
 * gencolormap
 * Color Maps for Scientific Visualization by Kenneth Moreland
 * Color Map Advice for Scientific Visualization
 * git
 * In Search of a Perfect Colormap by Peter Karpov
 * Good Colour Maps: How to Design Them by Peter Kovesi
 * Rainbow Color Map Critiques: An Overview and Annotated Bibliography By Steve Eddins, MathWorks
 * scivis tutorials
 * Matteo Niccoli
 * bids: Colormap recommendation

How to visualize/test/evaluate/compare colormaps?
In python to visualize matplotlib built-in colormaps:

python -m viscm view jet

To visualize one of viscm colormaps:

python -m viscm view path/to/colormap_script.py

In gnuplot use test command:

Results: 2D profiles of each color channel

R code

Tips:
 * A good discrete palette has distinct colors
 * A good continuous colormap does not show boundaries between colors

See also
 * How to evaluate and compare color maps by SEG
 * pals: [[R Programming|R programming language] package to evaluate colormaps]
 * colorcet test image
 * matplotlib color map manipultions
 * Kenneth Moreland: color-advice
 * David Johnstone: lch-lab-colour-gradient-picker
 * ccc tool
 * scivis color : color moves app
 * color brewer colomaps

How to make perceptually uniform gradient?

 * How to generate a perceptually uniform gradient with CAM16UCS colour model?
 * stackoverflow qestion: more-perceptually-uniform-colormaps
 * CMasher: Scientific, perceptually uniform colormaps
 * colorcet : Perceptually Uniform Colour Maps by Peter Kovesi
 * matplotlib cmocean : Beautiful colormaps for oceanography. Most of the colormaps started from matplotlib colormaps, but have now been adjusted using the viscm tool to be perceptually uniform.

How to make colormap with maximum distinguishable colours?

 * stackoverflow question: colormap-with-maximum-distinguishable-colours
 * Colorgorical To generate a palette with n colors,

How to use special values in colormap?

 * stackoverflow question: how-can-i-plot-nan-values-as-a-special-color-with-imshow

=How to Calculate the average color of an image ? =

Averaging RGB should be correct assuming you do it in linear RGB. If your images are in sRGB, you can remove the gamma correction by doing something like the following for each of the R, G, and B components:

float sRGBToLinear(UInt8 component) {       float tempComponent = (float)component / 255.0; if (tempComponent <= 0.04045) {           tempComponent = tempComponent / 12.92; }       else {           tempComponent = pow((tempComponent + 0.055) / (1.055), 2.4); }       return tempComponent; }

You can then average together all of the red values in the image, all of the green values in the image, and all of the blue values in the image after they've been run through the above conversion. You can then do the opposite conversion to get back to sRGB:

UInt8 linearRGBTosRGB(float component) {       float tempComponent =  0.0; if (component <= 0.00318308) {           tempComponent = 12.92 * component; }       else {           tempComponent = 1.055 * pow(component, 1.0 / 2.4) - 0.055; }       return (UInt8)(tempComponent * 255.0); }

Note that alpha makes things slightly more complicated. If you're using premultiplied alpha, you can simply apply the above calculations for the average. If you're using straight alpha, you'll want to multiply each of the R, G, and B components by the alpha before doing the averaging.

=How to render light spectrum?=
 * Colour Rendering of Spectra by John Walker 25th April 1996
 * Lightness approximations by Peter Karpov

=How to read(pick) color from the image ? =
 * Pick Color From Image by ginifab
 * pick-a-color-from-an-image-using-canvas-and-javascript by nakome
 * developer mozilla: getting_the_pixel_data_for_a_context
 * How to get the pixel color from a canvas on click or mouse event with Javascript from ourcodeworld

=How to read color gradient from image ? =
 * online
 * color.adobe tool
 * color-loom/ Colorloom is a tool developed by the Sculpting Vis Collaborative and inspired to mimic palette creation in the arts. The tool extracts a selection of hues from images and enables users to create continuous colormaps by dragging these extracted hues into a desired order, all within the same interface. These colormaps can be exported in a variety of formats for use in major visualization software.

=How to extract color palette from image ?=
 * Colores.py—extract color palettes from your favorite images
 * Color Scheme Extraction
 * using Image Magic
 * using Gimp
 * "There is this small tool in fractalshades that interactively grabs a colormap from a line you draw on an image, the editor looks like the attached picture. Not perfect, but I found it useful (in the 'tools' section). The cmap can then be used in the program or exported for later use (for the time being, exports only to a txt format specific to this program.)" Geoffroy Billotey (GBillotey)

=How to extract ICC profile from the image file ? =

Using Image Magic:

convert photo.jpg profile.icc

How to view ICC profile ?

exiftool a.icc

Example output: ExifTool Version Number        : 12.40 File Name                      : vw1.icc Directory                      :. File Size                      : 548 bytes File Modification Date/Time    : 2023:11:12 20:48:16+01:00 File Access Date/Time          : 2023:11:12 20:48:47+01:00 File Inode Change Date/Time    : 2023:11:12 20:48:16+01:00 File Permissions               : -rw-rw-r-- File Type                      : ICC File Type Extension            : icc MIME Type                      : application/vnd.iccprofile Profile CMM Type               : Apple Computer Inc. Profile Version                 : 4.0.0 Profile Class                  : Display Device Profile Color Space Data               : RGB Profile Connection Space       : XYZ Profile Date Time              : 2018:06:24 13:22:32 Profile File Signature         : acsp Primary Platform               : Apple Computer Inc. CMM Flags                       : Not Embedded, Independent Device Manufacturer            : Unknown (OPPO) Device Model                   : Device Attributes              : Reflective, Glossy, Positive, Color Rendering Intent               : Perceptual Connection Space Illuminant    : 0.9642 1 0.82491 Profile Creator                : Apple Computer Inc. Profile ID                      : 0 Profile Description            : Display P3 Profile Copyright               : Copyright Apple Inc., 2017 Media White Point              : 0.95045 1 1.08905 Red Matrix Column              : 0.51512 0.2412 -0.00105 Green Matrix Column            : 0.29198 0.69225 0.04189 Blue Matrix Column             : 0.1571 0.06657 0.78407 Red Tone Reproduction Curve    : (Binary data 32 bytes, use -b option to extract) Chromatic Adaptation           : 1.04788 0.02292 -0.0502 0.02959 0.99048 -0.01706 -0.00923 0.01508 0.75168 Blue Tone Reproduction Curve   : (Binary data 32 bytes, use -b option to extract) Green Tone Reproduction Curve  : (Binary data 32 bytes, use -b option to extract)

=How to find lighter and darker colors based on any initial color ? =
 * 0to255 a color tool by Shaun Chapman uses the lightness (L) scale from HSL
 * stackoverflow : formula-to-determine-brightness-of-rgb-color
 * stackoverflow : programmatically-lighten-or-darken-a-hex-color-or-rgb-and-blend-colors
 * learnwebgl: model_color by C. Wayne Brown: To change a color (r,g,b) to make it lighter, move it closer to (1,1,1). To change a color (r,g,b) to make it darker, move it closer to (0,0,0).

// darker by C. Wayne Brown newR = R + (0-R)*t; // where t varies between 0 and 1 newG = G + (0-G)*t; // where t varies between 0 and 1 newB = B + (0-B)*t; // where t varies between 0 and 1 // lighter C. Wayne Brown newR = R + (1-R)*t; // where t varies between 0 and 1 newG = G + (1-G)*t; // where t varies between 0 and 1 newB = B + (1-B)*t; // where t varies between 0 and 1

=How to remove gradient banding ? =
 * dither
 * no more banding by Jeff Broderick
 * graphicdesign.stackexchange question: how-do-you-avoid-bands-of-prominent-color-in-gradients

=How to generate and refine palettes of optimally distinct colors= = How to simulating colors of the sky ? =
 * avoid-equidistant-hsv-colors
 * choose colors for data scientists
 * rich colors
 *

=How to make quality images?=
 * How to make quality 2D static images ?

=Gradient contours=
 * description by Alan Gibson.

=Examples of beautiful gradients=
 * Mandelbrot 109 - Mandelflake by olbaid-st
 * a slight motion in the colour gradient
 * Into The Purple - Mandelbrot Fractal Zoom by Maths Town

=See also=
 * Color_calibration
 * Color correction
 * Color terms
 * Swatch Book = color palette in digital terminology, collection of material fragments in different colors, Paper color swatch book, Wool swatch book
 * swatche books
 * Image noise
 * Commons Category:Color in computer graphics
 * stackoverflow questions tagged gradient
 * github topics
 * scratchapixel: simulating-sky
 * Color by Bruce MacEvoy
 * The X-Rite Color Challenge and Hue Test
 * colour lovers: Color/s, Pattern/s, Palette/s, Lover/s or stats
 * gamma correction
 * Gamma_correctionin wikipedia
 * WHAT EVERY CODER SHOULD KNOW ABOUT GAMMA by JOHN NOVAK
 * Power law transform
 * coloring algorithms
 * by Christopher Williams
 * by Junpei Sekino
 * perceptually uniform color space
 * OK LAB by Björn Ottosson
 * kenneth moreland github

 * bruce lindbloom
 * gradient maps by bjango: Gradient maps in Photoshop use brightness to assign corresponding colours taken from a gradient of your choice

= References =
 * awesome-colour: A curated list of awesome colour science resources.
 * stackoverflow questions tagged colormap
 * github repo colour-science

title: Color Theory/Color gradient


text: User talk:194.225.121.100

title: User talk:194.225.121.100


text:
Computers & Society

This book is another kind of beginning, both for writers as well as readers. In order to profit from engagement in our world-wide society, it is strongly advised to open a Wikibooks account as soon as possible and to work together for the benefit of all, freely.

Contents
/Front Cover/

/Back Cover/
 * Setting the scene
 * Learning how to ask questions
 * Learning how to read stuff
 * World Wide Web (Prehistory, Hypertext, X-stuff)
 * Network
 * URI or URL?
 * Social Web
 * Flickr
 * Flock
 * Global village
 * Yahoo!
 * /Semantic Web/
 * Ontology
 * WikiWorld
 * Browser
 * /Identity & Privacy/
 * iStuff
 * /People/
 * /Business/
 * /Resources/
 * /Annotated Bibliography/

Why bother about computers and society?
The title "Computers & Society" is a very old one in the computing field. The way in which the word "Computers" precedes "Society" in the title suggests that Society is seen from the point of view of those who use computers. Whereas in the past the computers were always visible, standalone, separate things, today they are also omnipresent but invisible. Good examples of such omnipresence are mobile phones, banking machines, and the "network" (The Canadian Encyclopedia).

The Association for Computing Machinery (ACM) has a special interest group on "Computers & Society", abbreviated SIGCAS with the mission of addressing "the social and ethical consequences of widespread computer usage".

We want to address the issues surrounding the Computers in our Society in the age in which we live. That is to say, the subject will always be open and current and relevant. But we cannot ignore the past, the things that have happened. We need to know something of the background history to understand how we got to where we are today. With such a study we may be better positioned to have some idea of where we might be heading in the future. And we will want to make personal choices now that shape our future.

title: Computers & Society


text: User talk:82.110.223.110

title: User talk:82.110.223.110


text: User talk:74.72.116.3

title: User talk:74.72.116.3


text:
Clock and Data Recovery/Structures and types of CDRs/The (slave) CDR based on a second order PLL

Limits of the first order PLL
The PLL of the first order, type 1, in spite of its simplicity, has several good features and represents the best choice in many applications.

For instance, it is preferred to implement a phase aligner (Definition of phase aligner) because the increases of performance offered by loops of 2nd order cannot give any advantage in this particular application;

it may also be a good choice for a simple slave CDR when the incoming bit stream has a high transition density. PLL model architectures of 1st order and of type 1

For other (slave) CDR applications, the flat gain block (evident in the figure of the slave loop of 1st order) can be modified and made evolve into a 1st order filter (making the loop become 2nd order).

It should be noted that the two other blocks of the first order loop (the phase comparator and the local clock) are necessarily working at the line pulse speed (that is the highest speed in a CDR).

This makes them more complex technologically and more expensive to modify when an improvement of the loop performances is required.

The added filter block works instead at lower frequencies, and its design is correspondingly more flexible.

The filter block is used to implement the desired values of ωn and ζ in the second order loops.

''It is always a good design approach to implement a filter that be linear (at least in its practical behavior). The loop modeling and simulation remain possible in all conditions and are simpler than the modeling and simulation of a non-linear loop, whose models and simulations do not always exist.''

The added filtering action allows to better fit specific requirements of other applications and to add some performances that the 1st order loop lacks:
 * the input jitter high-frequency cut-off can be made sharper (from 6 dB/octave to 12 dB/octave), a performance important in regenerators (using the 2 - 1 loop)
 * the steady state error resulting from a frequency difference fp - ffr can be compressed to zero, a performance important when G is widely variable and the VCO has poor centering (using the 2 - 2 loop)
 * the jitter tolerance due to the end-of-range of the phase comparator (that in a 1st order type 1 slave PLL increases towards the lower frequencies with a slope of 6 dB/octave ) can be increased and present a steeper slope of 12 dB/octave (using a 2 - 2 loop )
 * the low frequency noise generated by the VCO can be better rejected with a sharper low-frequency cut-off (from 6 dB/octave to 12 dB/octave), a performance important to use low cost, noisy VCOs (using the 2 - 2 loop).

It should be remarked however that the four points of possible improvement listed above are not relevant in the case of a phase aligner! This is in fact where the 1 - 1 loop finds its best fit.

Addition of a filter between comparator and VCO
The first order, type 1 PLL is the simplest and corresponds to the simplest (and least expensive!) implementations of CDRs.

In many other applications (of slave  CDRs) it is desirable to improve certain performances of the CDR itself, at the expenses of a little increase of complexity.

The "flat gain block" between phase comparator and VCO (clearly identified in the model of the slave 1st order type 1) acquires a first order structure, becomes "the loop filter" and makes the PLL loop a 2nd order loop. One pole at frequency ωf and one zero at frequency ωz are added to this central block, whose transfer function becomes: $$ \tfrac{G_f(\tfrac{s }{\omega_z }+1) }{(\tfrac{s }{\omega_f }+1)  }       $$

But not all possible choices of locations for the zero and the pole yield a good PLL for CDR. Some shall be excluded so that just two are left: The PLL would oscillate! If not, the rejection of the input jitter at high frequencies would be reduced to a finite flat attenuation. Worse, the filter block would amplify the frequencies higher than ωz with a 6 dB/octave slope: the PLL would become and behave like a type 0 loop. This is not acceptable for slave CDRs: the steady state error corresponding to a finite fp - ffr difference would be infinite! The loop would be a 2nd order in name and cost but it would behave in practice not different and not better than a 1st order loop: a wasted effort! Were they both at finite, though distant, frequencies, just one would be determinant for the loop behavior (the one closer to ωn1 = G ).
 * The block can neither be a simple integrator 1/s nor a simple differentiator s.
 * The pole shall always be at a lower frequency than the zero.
 * Therefore the pole at a lower frequency than the zero, and at least one of them at a finite (neither 0 nor ∞) frequency.
 * They cannot be close to each other.
 * Either the pole at ωf and the zero at frequency ∞ (the loop in this case is a 2 - 1 loop), or the pole at frequency 0 and the zero at ωz (the loop in this case is a 2- 2 loop).

 The natural frequency ωn1 of a first order loop is the same quantity as the open loop gain G.

The natural frequency ωnx is a useful concept also in higher order PLLs.

It represents in fact the corner frequency that the closed loop transfer function (= the jitter transfer function) would have

if all frequency shaping was removed from the loop filter (that would be reduced, in such hypothesis, to just a flat gain Gf).

 * In a 2 - 1 loop, the natural frequency ωn21 cannot be made much lower than ωf, because, as the next page shows, the loop would be underdamped:

ωn21 = ωf / 2ζ21
 * In a 2 - 2 loop, the natural frequency ωn22 cannot be made much higher than ωz, because, as the relevant page shows, the loop would be underdamped:

ωn22 = ωz 2ζ22
 * If, for instance, the open loop gain G varies (because of manufacturing variability, or of sensitivity to temperature, supply voltage, .., or because of the non linearity of a circuit block), the "non filtered" frequency ωn1 ( = G) may come close to the cut-off frequency of the filter ( = ωf or ωz, depending on the loop type 1 or 2) that, in practical circuits, is much more stable than G.

 * In a 2 - 1 loop this would happen if the gain G increased (or if ωf is pushed too much down to tighten the closed loop bandwidth more than ωn1);
 * In a 2 - 2 loop this would happen if the gain G decreased (or if ωz is pushed too much up to widen the closed loop bandwidth more than ωn1);

 * In both cases (increase of G in 2 - 1, decrease of G in 2 - 2), looking at the same dependence from another point of view, the damping ratio decreases:

ζ212 = ωf / ( 4 ωn1 ) ; ζ222 = ωn1 / ( 4 ωz )
 * For both 2nd order loops, ζ should not go below 0.7 (although the type 2 is a little more robust, as the following pages will show).

Targeted to different applications, 1st and 2nd are very different in practice
When 1st and 2nd are contrasted (in conditions of same cut off frequency) their differences may not seem so large.

Those differences become more evident if the values of the ratio ωn/ωp, requested for different CDR applications, are considered.

1st becomes clearly preferred when a high ωn/ωp (=a short acquisition) is specified, and 2nd when a small ωn2/ωp (a continuous mode application) is specified.

More precisely, in practice:
 * 1) 1st order loops are used when ωn needs to be just one or two decades lower than ωp (typical case of burst mode receivers), while
 * 2) 2nd order loops are used when ωn2 must be three or more decades smaller than ωp (typical case of the continuous mode receivers).

Another important consideration exists, that addresses the noise generated inside the CDR and its deterioration of the output clock of the CDR.

The noise generated inside the PLL is rejected and does not affect the CDR output in the range of frequencies at which the PLL accepts the input signal as useful, but it propagates to the output if generated in the frequency range at which the PLL rejects the input noise ( i.e. the input jitter ) !

How the PLL reshapes the spectrum of the noise generated inside its own blocks is shown in a dedicated page: Clock and Data Recovery/Noise is shaped by the PLL structure. 2 - 2 is shown to perform better than 2 - 1 in this respect.

The 2nd order type 1 is mostly used in cases where ωn2 << ωp and, at the same time, it is important that a "jitter clean" clock is regenerated.

Relative strengths and weaknesses of 2nd type 1 and 2nd type 2
Succintly, the 2 - 1 is best where the input/output requirements are tight and the circuit blocks have good characteristics.

It filters better than the other two loops the noise present in the input signal.

It requires a VCO with reduced noise at low frequencies and a phase comparator with linear characteristics. It is in fact less able to reject the low frequency noise of the VCO, and its damping ratio decreases when the loop gain increases.

It best fits the continuous-mode, regenerator applications in professional Telecom equipment.

The 2 - 2 instead is a best fit where some compromises can be accepted on jitter transfer and generation, but low cost and high integration correspond to circuit blocks with poor characteristics (= non-linear, noisy, ..).

It filters more sharply the low frequency noise of the (integrated ≈ noisy ) VCO ; its damping ratio decreases when the loop gain decreases.

Despite the intrinsic trade-offs of its model with respect to the 2 - 1 model, the 2-2 structure is a very frequent choice for monolythic ICs, especially when the line pulse frequency challenges the highest speed of the elementary components of the technology.

The phase detector is often a bang-bang PFD followed by a charge pump, and the VCO is often a LC monolithic oscillator.

It best fits the continuous-mode, end point applications in communication equipment.

In both cases, the 2nd order model is useful to describe the behaviour of complex CDRs
A linear model of the 2nd order, type 1 or type 2, is also useful because it "mimics" an existing complex CDR in a continuous mode application.
 * In some cases, a generic linear model of the 2nd order is referred to. For instance:
 * “a SEC will generally mimic the behavior of a 2-nd order linear analogue phase locked loop. This allows the use of the terms (equivalent) 3 dB bandwidth and (equivalent) damping factor, as they are used in analog PLL theory, irrespective of the fact that in the implementation of a SEC, digital and/or non-linear techniques may be used."
 * ( SEC: a SDH equipment slave clock)
 * In other cases, a complex function of clock recovery inside an equipment is studied using as a reference model a 2nd order type 2 linear CDR.


text:
Cocoa Programming/Basics

Programming with Cocoa on Mac OS X is often done with the Integrated Development Environment Xcode. Interface Builder, a separate application, is directly connected with the Xcode development environment.

title: Cocoa Programming/Basics


text:
Template:Prettypage

Uses
The template is used to apply a wide range of formats to a block of text.

Options

 * ff:  Font family, default Arial
 * fw:  Font weight, default normal
 * fs:  Font size, default 12pt
 * fc:  Font color, default black

 * bg:  Background color, default transparent
 * ws:  Word spacing, default normal
 * ls:  Letter spacing, default normal
 * lh:  Line height, default normal
 * b:   Border, default none
 * m:   Margin, default 0
 * p:   Padding, default 0
 * ta:  Text alignment, default left

title: Template:Prettypage


text:
User talk:Bobbie10~enwikibooks

In this first sentence of letter one the information is that is read about is that the journey or quest that the speaker was on was successful so far. He is writing to someone who did not have a good insight on how this would end up. He is telling them you will rejoice, be happy because he has accomplished what they thought would be evil. What I find out about the speaker is that he is writing to someone letting them know he’s ok, probably someone he cares about maybe a mother, a sister, or perhaps a lover. He’s confident in telling this person that he made it and they should be happy. When the sentence is read out loud it sounds very relieving and somewhat calming to those who read it because there is someone who was worried about the speaker and he’s writing to tell that he’s alright. This sentence makes me want to keep reading because I want to know what this journey/quest was and why the other person was so worried about him. What made the other person have such bad feelings about this? I want to know of the evil forebodings that were spoke about and why they were an issue. I would suspect the book to be about some young man on a journey/quest and has a loved one who does not want him to go and he writes frequently and lets her know how things are going. In this first sentence the speaker gets to tell of what was not expected. This is a very enlightened sentence because it has a positive outcome and makes people want to keep reading to see what was so evil and foreboding. It makes for a good opening sentence because it is right to the point and tells the person the one thing they had worried about in the first sentence so they do not need to keep reading to find out. The rest of the letter then goes into detail of what is wanted to know. With what little I know about Frankenstein the first sentence doesn’t sound like it would be at all what I would have expected the book to be about. The writer needs a good opening sentence to draw the reader in and want to keep reading, with this in mind when you read a good opening sentence in a book you will want to read more of it and it will be a adventure because anything can happen even when you do expect and especially when you don’t expect it.

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

title: User talk:Bobbie10~enwikibooks


text:
Hebrew/Exercises/Aleph-Bet 2

Welcome to the exercises related to Aleph-Bet Lesson 2 of learning Hebrew.

Click "▼" to check your answers.

The Letters & Niqqud
Assign each letter to the sound it stands for. ''Note: In this font Tsere looks like Pataħ, only slightly longer. Sorry for the inconvenience.''

Assign each sound to the letter that makes it:

Vocabulary
How is each word pronounced?

Translate the following words from Hebrew to English:

Translate the following words from English to Hebrew:

Definite He
Translate the following words from Hebrew to English:

Translate the following words from English to Hebrew:

Reading Without Vowels
Already?! Yes, we need to start sometime. All texts written in Hebrew, except for dictionaries, children's books, learner's books and other linguistic material are written without vowels. You will have to recognize and know how to pronounce a word just by looking at it. Don't be afraid, though, you'll be surprised to find out it is pretty easy. Read aloud the following words:

See? It wasn't that hard.

Next steps
Review lesson: Aleph-Bet 2 Next lesson: Aleph-Bet 3 >>>

title: Hebrew/Exercises/Aleph-Bet 2


text:
Cookbook:Baguette

| French Cuisine | Bread

The baguette is a variety of French bread distinguishable by its much greater length than width, and noted for its very crispy crust. The standard girth size of a baguette is about 5 or 6 cm, and it can be up to a meter in length. One loaf typically weighs 250 g. It may also be referred to as a French loaf or French stick.

Dough

 * 1) Using a fork, stir together the yeast and warm water in a small bowl until the yeast dissolves. Let stand for 3 minutes.
 * 2) Combine the flour and salt in a large bowl.
 * 3) Mix the cool water, yeast mixture and flour gently with your fingers to form a mass.
 * 4) On a lightly-floured work surface, knead for 5 minutes. The dough should now be supple and resilient.
 * 5) Cover the dough with plastic wrap or a light towel.
 * 6) Let the dough rest for 25 minutes—this period is called the autolyse.
 * 7) Knead the dough for 6–8 minutes. Overkneading could make an overly tough dough; you're looking for a dough that is smooth and stretchy.

First rise

 * 1) Lightly oil a bowl, and turn the dough in the bowl to coat it with oil. Cover the bowl with a tea towel.
 * 2) Let rise at room temperature (75–77°F) for 1½–2 hours (until the volume doubles).
 * 3) Gently deflate the dough. Fold it over itself, then reshape into a ball. Cover again with a tea towel.
 * 4) Let rise for 1¼ hours or until it doubles again.
 * 5) Once again, gently deflate the dough. Reshape into a round and cover, letting it rise for about 1 hour.

Shaping

 * 1) On a lightly floured surface, divide the dough into 3 equal pieces (about 10 ounces each).
 * 2) Take one piece and gently stretch into a rectangle, leaving some large bubbles in the dough.
 * 3) Fold the top third down and the bottom third up.
 * 4) Form the loaf into a log by rolling the dough over from left to right and sealing the seam with the heel of your palm.
 * 5) Fold the dough over about a third of the way each time, seal the length of the loaf, then repeat.
 * 6) You want to gently draw the skin tight over the surface of the baguette while leaving some air bubbles in the dough. Seal the seam, being careful not to tear the skin of the dough or deflate its airy structure.
 * 7) Set aside on the work surface to relax before elongating it, and repeat the shaping process with remaining pieces of dough.
 * 8) Now elongate each baguette, starting with the first one you shaped, by rolling it back and forth on the work surface. Begin with both hands over the center of the loaf and work them out to the ends until the loaf reaches the desired length. Make sure that the loaves don't exceed the length allowed by the oven.

Second rise

 * 1) Place the finished loaves on a peel or upside down baking sheet lined with parchment paper and generously sprinkled with cornmeal or on a baguette pan.
 * 2) Cover the loaves with well oiled plastic or a floured cloth and let rise for 30 to 40 minutes until the loaves are slightly plump but still not doubled in volume. The final rise is short, because you want the baguettes to be slightly under-proofed; this will give them a better oven spring, resulting in loaves with a light, airy crumb and more flared cuts.

Preparing for baking

 * 1) Thirty minutes before baking, preheat the oven to 500°F.
 * 2) Place a baking stone in the oven to preheat, and place an empty water pan directly under the stone.
 * 3) Use a very sharp razor blade or lame to make 3–5 slashes, depending on the length of your loaves, on the top of each baguette. The cuts should run from one end of the loaf to the other, rather than across it, and the blade should be held at a 30° angle to the loaf so that the cuts pop open in the oven. Be careful not to press down too hard, or you may deflate the loaves.
 * 4) Using a plant sprayer, mist the loaves.

Baking

 * 1) Gently slide the loaves onto the preheated stone, or place the baguette mold in the oven. Pour 1 cup of very hot water into the water pan and quickly close the oven door. After 1 minute, mist the loaves and oven walls 6–8 times and close the door. After 2 more minutes, spray the loaves and the oven walls again.
 * 2) Bake for 12 minutes, then lower the oven temperature to 400°F and bake for 25–30 minutes longer until the loaves are golden brown and crisp. Move them to a rack to cool.
 * 3) Enjoy your baguettes still slightly warm with some soft, ripe French cheese and a glass of wine.

Notes, tips, and variations

 * Replacing some of the all-purpose flour (¼ of it is a good amount) with cake flour will give an even lighter texture to the loaf.

Uses

 * Shorter baguettes are very often used for sandwiches. These sandwich-sized loaves are sometimes known as demi-baguettes or tiers. Baguettes are often sliced and served with cheeses. As part of the traditional continental breakfast in France, slices of baguette are spread with jam and dunked in bowls of coffee or hot chocolate.

title: Cookbook:Baguette


text:
User:Etams

A now not-so-recent migrator from Wikipedia. :) I was shocked to see the appalling state in which the Hebrew textbook is, and therefore I am committing myself to push it to Wikibook standards.

Any help would be greatly appreciated!

To Do List
I've got tons to do, but here are the most crucial:
 * Plan Unit Two (obviously).
 * Provide a navigational template for the Basic lessons.
 * Create sub-categories for Hebrew Alphabet and Hebrew Basic.
 * Create Semitic languages template?
 * Sound samples will not be added in the near future; the course isn't stable enough, and I can't record them myself from technical and physical (my voice isn't that pretty) reasons.

News

 * 14 January 2009 I'm going to be inactive for a while.

 * 29 December 2008 Started working on Unit Two.

 * 26 December 2008 Finished Unit One. I plan Unit Two to be based on grammatical structures with handfuls of relevant vocabulary, somewhat like the Miskito book.

 * 18 December 2008 After a long wikibreak, I have decided to take a different approach for the Level I lessons, lessening the learning material for each lesson.

 * 9 May 2008 I am glad to announce that the Reading Hebrew level is complete! Now organizing the lessons of Level I into one single, chronological level.

 * 1 May 2008 Currently working on the Aleph-Bet series. I want to make it a level of its own, preceding Level 1.

title: User:Etams


text: User talk:24.180.255.95

title: User talk:24.180.255.95


text: User talk:209.90.165.130

title: User talk:209.90.165.130


text: User talk:69.205.161.226

title: User talk:69.205.161.226


text:
Erlang Programming/Making Parsers with yecc

Making Parsers with yecc

Yecc is an erlang version of yacc/bison.

We have a BNF(Backus-Naur_form) grammar in a source file ending in .yrl, yrl means yecc rule list. We can parse a simple xhtml file using yecc. Actually, we will apply yecc to html.yrl to create a parser called html_parser.erl. Next we use the html_parser to parse some xhtml, voila. yecc:yecc("html.yrl","html_parser.erl"). c(html_parser). f(B), {_,B,_} = erl_scan:string( "   hello_world  "). html_parser:parse(B). All tags in the xhtml code must have matching open and close. (Of course a more powerful way to parse an xml file in erlang is to use xmerl).

html.yrl source: Nonterminals tag elements element start_tag end_tag. Terminals 'atom' '<' '>' '/'. Rootsymbol tag. tag -> start_tag tag end_tag : ['$1', '$2', '$3']. tag -> start_tag tag tag end_tag : ['$1', '$2', '$3', '$4']. tag -> start_tag elements end_tag : ['$1', {'contents','$2'}, '$3']. tag -> start_tag end_tag : ['$1','$2']. start_tag -> '<' 'atom' '>' : {'open','$2'}. end_tag -> '<' '/' 'atom' '>' : {'close','$3'}. elements -> element : ['$1']. elements -> element elements : ['$1', '$2']. element -> atom : '$1'. % yecc:yecc("html.yrl","html_parser.erl"). % c(html_parser). % f(B), {_,B,_} = % erl_scan:string( % "   hello_world  "). % html_parser:parse(B). It can be a pain to build and run a parser each time we edit the source yrl file. To speed things up, we can use a program to build and run the parser for us. We compile and run the test program which builds the parser and tests it for us on some document. -module(html_test). -compile(export_all). start -> yecc:yecc("html.yrl","html_parser.erl"), cover:compile(html_parser), {_,List_of_symbols,_}=erl_scan:string( 		"  greeting   			hello there world what is up 		 "), {ok,L} = html_parser:parse(List_of_symbols), register(do_event, spawn(html_test,event_loop,[])), Events = lists:flatten(L), send_events(Events), Events. send_events([]) -> do_event ! {exit}; send_events([H|T]) -> do_event ! H, 	%io:format(" ~w ~n",[H]), send_events(T). event_loop -> receive {open,{atom,_Line_Number,html}} -> io:format("~n start scan ~n", []), event_loop; {contents,List} -> Contents = get_contents(List,[]), io:format("~n contents: ~w ~n", [Contents]); {exit} -> exit(normal) end, event_loop. get_contents([],Items) -> Items; get_contents([H|T],Items)-> if length(T) > 0 -> NT = hd(T); true -> NT = T 	end, {atom,_N,Item} = H, 	NItems = Items++[Item], % io:format(" ~w ",[Item]), get_contents(NT,NItems). % 6> c(html_test). % {ok,html_test} % 7> html_test:start. % [greeting] % [hello,there,world,what,is,up] % and events.


text:
User talk:Silverman~enwikibooks

Bucketball
The game of bucketball combines the sports of hockey, basketball, and football. It is played on a field of 50 ft. V. & 40 ft. H. It can be played indoors or outdoors. Here are the rules of Bucketball:

Note : the ref will count down from 30 (saying 30,29,28, and so on.) Here are the positions:
 * The game starts off with a team throwing or tossing the ball (small tennis ball, raquetball, or etc.) to the other team.
 * The team that starts off with the ball has 4 downs (counts) to store a goal.
 * Any shot that goes in the bucket is worth an amount of points:
 * hits of the wall\goalie and goes in the bucket is worth 1 point.
 * bounces in from the front\back of the bucket and goes in is worth 2 points.
 * goes over the head of an opponent and goes in is worth 3 points.
 * Here are the Types of Penalties:
 * (Tripping) tripping an opponent (the ref waves his hand down at his feet)
 * (Bad Words Code) saying bad words or fail language to other players (the ref crosses his hands in an "X" over his mouth)
 * (Goalie Wrapping) pushing the goalie or trapping the goalie so he\she can't block or make a save (the ref puts his left hand behind his right hand):(when an opponent shoots the ball)
 * (Shot Clock) running out the shot clock or taking to much time to pass the ball (stalling)
 * Guard (spiker) this player's job is to stop as many shots as possible. (1)
 * Attacker(scorer) this player's job is to try to score goals.  (2)
 * Bully  (defender)    this player's job is to stop the other team from passing the ball or scoring. (2)
 * Total (players): (5)

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

title: User talk:Silverman~enwikibooks


text:
User:Hassanhany/monobook.css

.code .input pre {padding:0; border: none; line-height: 1.5em; margin:0;} .code .result pre {border:0; padding:0.2em; margin: 0.3em; background-color: #DDDDFF;} .code .input pre:before {content: "\003E \0020";}

title: User:Hassanhany/monobook.css


text:
User talk:Hassanhany

Welcome!
Welcome, Hassanhany!

Come introduce yourself at the new users page. If you have any questions, you can ask there or contact me personally.--Whiteknight (Page) (Talk) 20:55, 1 May 2008 (UTC)

title: User talk:Hassanhany


text:
User talk:Yalcin3515

Welcome to Wikibooks, Yalcin3515!

title: User talk:Yalcin3515


text:
User talk:4daballg~enwikibooks

Welcome to Wikibooks, 4daballg!

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 4daballg. To make sure that both of you can use all Wikimedia projects in future, we have reserved the name 4daballg~enwikibooks that only you will have. If you like it, you don't have to do anything. If you do not like it, you can pick out a different name.

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

Sorry for the inconvenience.

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

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

title: User talk:4daballg~enwikibooks