directly (but you will need your own fork to submit pull requests).
Developing
After installing CanJS, you’ll find a folder for each feature of CanJS: construct, control, model, etc.
Within each feature folder, for example construct, you’ll find a file for:
the implementation of the feature - construct.js
a demo of the feature - construct.html
an overview documentation page - construct.md
the feature’s tests - construct_test.js
a page to run those tests - test.html
Any plugins for that feature will be folders within the feature’s folder. Ex: proxy, super.
The can/test folder contains:
an index.html page which runs all tests for each library in an iFrame.
a test page for each library e.g. jquery.html which loads dependencies using our package manager StealJS
a build folder which contains the same set of test files but for testing the build artifacts (like can.jquery.js etc.) you get from the download)
an amd folder which runs the same tests for the AMD modules using RequireJS
The can/util folder contains the compatibility layer for each library.
To develop CanJS:
Edit the feature’s file.
Add tests to the feature’s test file.
Open the feature’s test page. Make sure it passes.
Open can/test/index.html in every browser to test everything.
Submit a pull request!
Contributing
When contributing, include tests with new features or bug fixes in a feature branch until you're ready to submit the code for consideration; then fork the repository, push to the fork, and issue a pull request.
Move into the directory of your cloned repository and create a new feature branch.
> cd canjs
> git checkout -b html5-fix
Once your happy with your changes, push to the feature branch.
> git push origin html5-fix
Now that we have pushed all the changes to the repo, we need to submit a Pull Request to the main branch. Navigate to Pull Requests and click 'Pull Request' in the top navigation bar. Fill in some details about your potential patch including a meaningful title. When finished, press "Send pull request". The core team will be notified about your submission and let you know of any problems or targeted release date.
Search for previous tickets, if there is one add to that one rather than creating another. You can also post on the Forums or talk to us in IRC #canjs channel.
Documentation
If your pull request affects the public API, make relevant changes to the documentation. Documentation is found either inline or in markdown files in the respective directory. In order to view your changes in documentation you will need to run CanJS.com locally. Doing so is simple, just run the following code in the command line.
Once the documentation is finished rendering, all the HTML files will be located in the docs folder. Open the documentation file you made changes to and make sure everything rendered correctly.
Running Tests Locally
Its important that all tests pass before sending a pull request. TravisCI will determine if your commits pass the tests, but while your developing you can run the QUnit tests locally.
Open ~/can/test/test.html in a web browser to run the tests locally. Each module has its own tests too, you can run them by opening the test.html in each folder.
CanJS supports the following browsers:
Chrome Current-1
Safari Current-1
Firefox Current-1
IE 7+
Opera Current-1
Making a build
To make a build (standalone and AMD version) and run tests from the command line you will need NodeJS and Grunt (npm install grunt-cli -g) installed. Then, in the CanJS repository folder run:
> npm install
Then you can run:
> grunt build
It puts the downloads in can/dist.
You can also run the tests from the command line by executing:
> grunt test
Style Guide
Linting
Grunt provides a JSHint task to verify some basic, practical soundness of the codebase. The options are preset.
Spacing
Indentation with tabs, not spaces.
if/else/for/while/try always have braces, with the first brace on the same line. For example:
if(foo){
}
Spaces after commas. For example:
myfn = function(foo, bar, moo){ ... }
Assignments
Assignments should always have a semicolon after them.
Assignments in a declaration should always be on their own line. Declarations that don't have an assignment should be listed together at the start of the declaration. For example:
// Bad
var foo = true;
var bar = false;
var a;
var b;
// Good
var a, b,
foo = true,
bar = false;
Equality
Strict equality checks === should be used in favor of ==. The only exception is when checking for undefined and null by way of null.
// Bad
if(bar == "can"){ ... }
// Good
if(bar === "can"){ ... }
If the statement is a truthey or falsey, use implied operators. Falseys are when variables return false, undefined, null, or 0. Trutheys are when variables return true, 1, or anything defined.
For example:
// Bad
if(bar === false){ ... }
// Good
if(bar){ ... }
// Good
var foo = [];
if(!foo.length){ ... }
Quotes
Use double quotes.
var double = "I am wrapped in double quotes";
Strings that require inner quoting must use double outside and single inside.
var html = "

";
Comments
Single line comments go OVER the line they refer to:
// We need an explicit "bar", because later in the code foo is checked.
var foo = "bar";
For long comments, use:
/* myFn
* Four score and seven—pause—minutes ago...
*/
List of heroes
The following lists everyone who's contributed something to CanJS. If we've forgotten you, please add yourself.
First, thanks to everyone who's contributed to JavaScriptMVC
and jQueryMX, and the people at
Bitovi. You deserve heaps of recognition as CanJS is direcly based
off JavaScriptMVC. This page is for contributors after CanJS's launch. Thank you
Installing
1.) Fork Canjs on GitHub.
2.) Clone it with:
Alternatively you can also
directly (but you will need your own fork to submit pull requests).
Developing
After installing CanJS, you’ll find a folder for each feature of CanJS:
construct
,control
,model
, etc.Within each feature folder, for example
construct
, you’ll find a file for:construct.js
construct.html
construct.md
construct_test.js
test.html
Any plugins for that feature will be folders within the feature’s folder. Ex:
proxy
,super
.The
can/test
folder contains:index.html
page which runs all tests for each library in an iFrame.jquery.html
which loads dependencies using our package manager StealJSbuild
folder which contains the same set of test files but for testing the build artifacts (likecan.jquery.js
etc.) you get from the download)amd
folder which runs the same tests for the AMD modules using RequireJSThe
can/util
folder contains the compatibility layer for each library.To develop CanJS:
Contributing
When contributing, include tests with new features or bug fixes in a feature branch until you're ready to submit the code for consideration; then fork the repository, push to the fork, and issue a pull request.
Move into the directory of your cloned repository and create a new feature branch.
Once your happy with your changes, push to the feature branch.
Now that we have pushed all the changes to the repo, we need to submit a Pull Request to the main branch. Navigate to Pull Requests and click 'Pull Request' in the top navigation bar. Fill in some details about your potential patch including a meaningful title. When finished, press "Send pull request". The core team will be notified about your submission and let you know of any problems or targeted release date.
Reporting Bugs
To report a bug, please visit GitHub Issues.
When filing a bug, it is helpful to include:
Search for previous tickets, if there is one add to that one rather than creating another. You can also post on the Forums or talk to us in IRC #canjs channel.
Documentation
If your pull request affects the public API, make relevant changes to the documentation. Documentation is found either inline or in markdown files in the respective directory. In order to view your changes in documentation you will need to run CanJS.com locally. Doing so is simple, just run the following code in the command line.
Once the documentation is finished rendering, all the HTML files will be located in the
docs
folder. Open the documentation file you made changes to and make sure everything rendered correctly.Running Tests Locally
Its important that all tests pass before sending a pull request. TravisCI will determine if your commits pass the tests, but while your developing you can run the QUnit tests locally.
Open
~/can/test/test.html
in a web browser to run the tests locally. Each module has its own tests too, you can run them by opening thetest.html
in each folder.CanJS supports the following browsers:
Making a build
To make a build (standalone and AMD version) and run tests from the command line you will need NodeJS and Grunt (
npm install grunt-cli -g
) installed. Then, in the CanJS repository folder run:Then you can run:
It puts the downloads in
can/dist
.You can also run the tests from the command line by executing:
Style Guide
Linting
Grunt provides a JSHint task to verify some basic, practical soundness of the codebase. The options are preset.
Spacing
Indentation with tabs, not spaces.
if/else/for/while/try
always have braces, with the first brace on the same line. For example:Spaces after commas. For example:
Assignments
Assignments should always have a semicolon after them.
Assignments in a declaration should always be on their own line. Declarations that don't have an assignment should be listed together at the start of the declaration. For example:
Equality
Strict equality checks
===
should be used in favor of==
. The only exception is when checking for undefined and null by way of null.If the statement is a truthey or falsey, use implied operators. Falseys are when variables return
false
,undefined
,null
, or0
. Trutheys are when variables returntrue
,1
, or anything defined.For example:
Quotes
Use double quotes.
Strings that require inner quoting must use double outside and single inside.
Comments
Single line comments go OVER the line they refer to:
For long comments, use:
List of heroes
The following lists everyone who's contributed something to CanJS. If we've forgotten you, please add yourself.
First, thanks to everyone who's contributed to JavaScriptMVC and jQueryMX, and the people at Bitovi. You deserve heaps of recognition as CanJS is direcly based off JavaScriptMVC. This page is for contributors after CanJS's launch. Thank you
for helping us with new features, bug fixes, and getting this out the door.


| # | Task | Progress | Label |
|---|---|---|---|
| 1. | Update software |
|
55% |
| 2. | Clean database |
|
70% |
| 3. | Cron job running |
|
30% |
| 4. | Fix and squish bugs |
|
90% |


The birth of HTML(Hypertext Mark-up Language) was in thanks to Timothy John Berners-Lee. He came up with the idea in 1991 when working at CERN in Geneva. He initially proposed the idea of HTML tags in a document and he proposed how these could be used to make custom web pages. The concepts behind HTML weren’t all brand new. Many of the concepts for HTML were adopted from SGML(Standardised generalized mark-up language). At the time SGML was for specialists who were experienced professionals. Custom web pages were unheard of and Tim wanted to change that.
June 1993, HTML 1.2 was release. It had more than 40 tags but most of them were core basic tags used as of today.
In 1994 Tim founded the foundation of W3C. The word wide web Consortium. Its mission was to “To lead the World Wide Web to its full potential by developing protocols and guidelines that ensure the long-term growth of the Web.” The purpose of W3C is to maintain standards and protocol in order to see HTML thrive in the future. It is essentially a governing body that makes sure everything associated with HTML is looked over and controlled.
HTML kept evolving till HTML 4.01 which was released in December 24,1999. This was a very stable version and web developers used this for more than 10 years.
After HTML 4.01 , a newer version came out called XHTML. It stood for extensible Hypertext Markup Language. It is similar to HTML 4.01 but utilizes more strict XML-based syntax. XHTML was used heavily until HTML 5 came out.
XHTML had strict standards. Web developers were required to follow strict rules of XML. A stricter mark-up language upon which the W3C was basing most of their technologies. Tighter standards encouraged developers to use a single writing style. This also created unity in the developers community as everybody had similar skills.
The above site was the first ever site created by Tim. It utilised core tags from HTML 1.2. Many of the tags from HTML1.2 are utilized as of today and even on this very site.The table down below demonstrates the core tags that are used on this site and their evolution throughout. The navbar of the left side of this site utilizes lists, however CSS was added to give it a more aesthetic feature. The site also utilizes the headings ,paragraphs and anchor tags to display information. A new feature which wasn’t in HTML 1.2 was tables and javascript.
| Content Type | HTML 1.2 | HTML 4.01 | HTML5 | Purpose |
|---|---|---|---|---|
| Heading | Yes | Yes | Yes | Organize page content by adding headings and subheadings to the top of each section of the page |
| Paragraph | Yes | Yes | Yes | Identify paragraphs of text |
| Anchor | Yes | Yes | Yes | Link to other web content |
| List | Yes | Yes | Yes | Organize items into a list |
| Image | Yes | Yes | Yes | Embed a photograph or drawing into a web page |
| Table | No | Yes | Yes | Organize data into rows and columns |


Try out our Premium Member services: Virtual Legal Assistant, Query Alert Service and an ad-free experience. Free for one month and pay only if you like it.
pils-183.12, 15,28.10, cai-105,60,61.14 pmw IN THE HIGH COURT OF JUDICATURE AT BOMBAY CIVIL APPELLATE JURISDICTION PUBLIC INTEREST LITIGATION NO.183 OF 2012 Dattatraya Hari Mane & Ors. ... Petitioners Vs. The State of Maharashtra & Ors. ... Respondents WITH CIVIL APPLICATION NO.60 OF 2014 IN PUBLIC INTEREST LITIGATION NO.183 OF 2012 Kolhapur Municipal Corporation Through its Commissioner ... Applicant Vs. Dattatraya Hari Mane & Ors. ... Respondents WITH CIVIL APPLICATION NO.61 OF 2014 IN PUBLIC INTEREST LITIGATION NO.183 OF 2012 Dattatraya Hari Mane & Ors. ... Applicants Vs. State of Maharashtra and Ors. ... Respondents WITH PUBLIC INTEREST LITIGATION NO.28 OF 2010 WITH CIVIL APPLICATION NO.105 OF 2014 IN PUBLIC INTEREST LITIGATION NO.28 OF 2010 Prajasattak Samajik Seva Sanstha Through its President Dilip A. Desai ... Applicant Vs. State of Maharashtra and Ors. ... Respondents WITH PUBLIC INTEREST LITIGATION NO.15 OF 2010 Shri Kisan Murlidhar Kalyankar and Anr. ... Petitioners Vs. State of Maharashtra and Ors. ... Respondents 1 of 39 ::: Downloaded on - 10/11/2014 23:47:56 ::: pils-183.12, 15,28.10, cai-105,60,61.14 -------------- Mr. D.V. Sutar, for Petitioners in PIL No.183 of 2012 and for Applicant in CAI No.61 of 2014. Mr. S.S.Patwardhan, for Applicant in CAI No.60 of 2014, for Respondent No.4 in PIL No.183 of 2012, for Respondent No.2 in PIL No.15 of 2010 and PIL No.28 of 2010. Mr. Rahul Walvekar, for Petitioner in PIL No.15 of 2010, PIL No.28 of 2010 and for Applicant in CAI No.105 of 2014. Mr. V.P. Malvankar, AGP, 'A' Panel, for Respondent No.1 in all PILs. Mr. D.M. Gupte, for Respondent No.2 in PIL No.183 of 2012. Mr. Umesh Pawar i/by Mr. Tejpal S. Ingale, for Respondent No.3 in PIL No.183 of 2012. Mr. Ramesh D. Rane, for Respondent No.6 in PIL No.183 of 2012. Ms. Shyamali Gadre i/by M/s. Little & Co., for Respondent No.7 in PIL No.183 of 2012. Ms. Sharmila U. Deshmukh, for Respondent No.3 in PIL No.15 of 2010 and PIL No.28 of 2010. CORAM : A.S. OKA & A.S. CHANDURKAR, JJ.
SUBMISSIONS HEARD ON : 13th AUGUST, 2014 ORDER PRONOUNCED ON : 10th NOVEMBER, 2014 (Signed Order pronounced by Oka, J. at Mumbai in accordance with Rule 1(i) of Chapter XI of the Bombay High Court Appellate Side Rules, 1960 as Chandurkar, J. is sitting at Nagpur Bench) ORDER (PER A.S. OKA, J.):-
. Rule. Advocates mentioned above representing the concerned Respondents waive service. We have heard the learned counsel appearing for the Petitioners, the learned counsel representing 2 of 39 ::: Downloaded on - 10/11/2014 23:47:56 ::: pils-183.12, 15,28.10, cai-105,60,61.14 various Respondents as well as the learned AGP for the State on the prayer for issuing interim directions against third to sixth Respondents in PIL No.183 of 2012 (The Maharashtra Pollution Control Board, The Municipal Corporation for the City of Kolhapur, and the Ichalkaranji Municipal Council). We are issuing Rule on interim relief returnable on 22nd December, 2014 for the purposes of issuing interim directions against the other Respondents and further interim directions against all the Respondents.
2. By these Petitions, the Petitioners have invited the attention of the Court to the pollution caused to River Panchaganga due to release of untreated sewage water from Kolhapur and Ichalkaranji Cities into the River and various other factors. The Petitions raise concern regarding the pollution of river Panchaganga due to various factors. It is pointed out that due to pollution there was a mass spread of epidemic of Hepatitis. The third Respondent in PIL No.183 of 2012 is the Maharashtra Pollution Control board (for short "MPCB"). The fourth Respondent in the PIL No.183 of 2012 is the Municipal Corporation of City of Kolhapur constituted under the provisions of the Maharashtra Municipal Corporations Act, 1949. The fifth Respondent is the Municipal Council of Ichalkaranji which is constituted under the provisions of the Maharashtra Municipal Councils, Nagar Panchayats and Industrial Townships Act, 1965. The aforesaid Respondents have 3 of 39 ::: Downloaded on - 10/11/2014 23:47:56 ::: pils-183.12, 15,28.10, cai-105,60,61.14 been described with reference to their status in PIL No.183 of 2012.
The cities of Kolhapur and Ichalkaranji are adjacent urban bodies.
Kolhapur being the Municipal Corporation area has a larger population of more than 5,00,000. Both the cities are located on the bank of the Panchaganga River. As noted by the CSIR National Environment Engineering Research Institute (NEERI), the Panchaganga River originates in Western Ghats. It is a major tributary to the river Krishna.
The Panchaganga river starts from prayag sangam of four streams known as Kasari, Kumbhi, Tulsi and Bhogawati. On north of Kolhapur it has a wide alluvial plain. Thereafter, it resumes its course eastwards.
From Kolhapur, it flows for about 65 kilometers till it falls into the Krishna River at Kurundvad. The said proposal of NEERI records that increasing pollution of the river has caused serious health hazards to the residents in terms of high incidents of jaundice and other deceases.
Ichalkaranji town gets water supply from River Panchangaga as well as Krishna. In the year 2012, more than 500 new cases of jaundice were reported in the city of Ichalkaranji. The main reason for pollution, as stated by NEERI, is the inadequate domestic waste water treatment facilities in the cities and other areas.
3. In the Petitions, it is pointed out that the areas falling within the limits of the fourth Respondent Corporation and the fifth 4 of 39 ::: Downloaded on - 10/11/2014 23:47:56 ::: pils-183.12, 15,28.10, cai-105,60,61.14 Respondent Municipal Council are not the only areas contributing to the pollution of River Panchaganga. It is pointed out that on the bank of the said River or adjacent to the said River, there are 174 villages, various industrial estates and various sugar factories and distilleries. These villages and industries are also contributing to the pollution.
4. Article 48A of the Constitution of India was made a part of the Directive Principles of State Policy in the year 1976 which lays down that the State shall endeavour to protect and improve the environment.
In the year 1976, Part IVA dealing with Fundamental Duties was included in the Constitution of India. Article 51A of the Constitution of India provides for the fundamental duties of the citizens. Clause (g) of Article 51A of the Constitution of India reads thus:
"51A. Fundamental duties.
It shall be the duty of every citizen of India
(a) ............................................
(b) ............................................
(c) ............................................
(d) ............................................
(e) ............................................
(f) ............................................
(g) To protect and improve the natural environment including forests, lakes, rivers and wild life, and to have compassion for living creatures."
The Apex Court has time and again held that the public law doctrine is applicable to India. The Apex Court in the case of M.C. Mehta v. Kamal Nath1 held thus:
1 (1997)1SCC 388
5 of 39
::: Downloaded on - 10/11/2014 23:47:56 :::
pils-183.12, 15,28.10, cai-105,60,61.14
34. Our legal system -- based on English common law --
includes the public trust doctrine as part of its jurisprudence. The State is the trustee of all natural resources which are by nature meant for public use and enjoyment. Public at large is the beneficiary of the seashore, running waters, airs, forests and ecologically fragile lands. The State as a trustee is under a legal duty to protect the natural resources. These resources meant for public use cannot be converted into private ownership.
35. We are fully aware that the issues presented in this case illustrate the classic struggle between those members of the public who would preserve our rivers, forests, parks and open lands in their pristine purity and those charged with administrative responsibilities who, under the pressures of the changing needs of an increasingly complex society, find it necessary to encroach to some extent upon open lands heretofore considered inviolate to change. The resolution of this conflict in any given case is for the legislature and not the courts. If there is a law made by Parliament or the State Legislatures the courts can serve as an instrument of determining legislative intent in the exercise of its powers of judicial review under the Constitution. But in the absence of any legislation, the executive acting under the doctrine of public trust cannot abdicate the natural resources and convert them into private ownership, or for commercial use. The aesthetic use and the pristine glory of the natural resources, the environment and the ecosystems of our country cannot be permitted to be eroded for private, commercial or any other use unless the courts find it necessary, in good faith, for the public good and in public interest to encroach upon the said resources."
(emphasis added) In another decision in the case of Fomento Resorts & Hotels Ltd. v. Minguel Martins2, the Apex Court held thus:
"59. The Indian society has, since time immemorial, been conscious of the necessity of protecting environment and ecology. The main motto of 2 (2009)3 SCC 571 6 of 39 ::: Downloaded on - 10/11/2014 23:47:56 ::: pils-183.12, 15,28.10, cai-105,60,61.14 social life has been "to live in harmony with nature". Sages and saints of India lived in forests. Their preachings contained in vedas, upanishadas, smritis, etc. are ample evidence of the society's respect for plants, trees, earth, sky, air, water and every form of life. It was regarded as a sacred duty of everyone to protect them. In those days, people worshipped trees, rivers and sea which were treated as belonging to all living creatures. The children were educated by their parents and grandparents about the necessity of keeping the environment clean and protecting earth, rivers, sea, forests, trees, flora, fauna and every species of life.
60. The Constitution of India, which was enforced on ig26-1-1950 did not contain any provision obligating the State to protect environment and ecology, but the people continued to treat it as their social duty to respect the nature, natural resources and protect environment and ecology. After almost three decades of independence, the legislature recognised the importance of protecting and improving environment and safeguarding forests and wildlife and Article 48A was inserted in Part IV of the Constitution by the Constitution (Forty- second Amendment) Act, 1976 whereby a duty was imposed on the State to "endeavour to protect and improve the environment and safeguard forests and wildlife of the country". By the same amendment Article 51A was inserted in the form of Part IVA which enumerates fundamental duties of every citizen. Article 51A(g) declares that it shall be the duty of every citizen of India "to protect and improve the natural environment including forests, lakes, rivers and wildlife, and to have compassion for living creatures".
Thereafter, the courts repeatedly invoked Articles 48A and 51A for protecting environment and ecology and several orders were passed in public interest litigation mandating the State to take action for protecting forests, rivers and antipollution measures.
7 of 39 ::: Downloaded on - 10/11/2014 23:47:56 ::: pils-183.12, 15,28.10, cai-105,60,61.14
61. The importance of the public trust doctrine was also recognised by this Court and the same was applied for protecting natural resources which have been treated as public properties and are held by the Government as trustee of the people."
(emphasis added) The concerned Respondents viz. The fourth Respondent Corporation and the fifth Respondent Council, the Maharashtra Pollution Control Board, the State of Maharashtra and the Maharashtra Industrial Development Corporation are the State within the meaning of Article 12 of the Constitution of India and, therefore, it is their duty to protect and improve the environment. They are under an obligation to keep the river Panchaganga free of pollution. Moreover, the Municipal Authorities have legal obligations under the concerned Municipal laws.
There is a corresponding duty in the citizens to protect and improve the natural environment including the lakes and rivers. In such matters, the citizens have a major role to play as some of them actively and also passively contribute to the pollution.
5. The allegations made in the Petition can be broadly summarized as under:-
A] The fourth Respondent Corporation discharges 100 million litres sewage water per day in Panchangaga River through various Nallas (streams) including Dudhali and Jayanti Nallas.
8 of 39 ::: Downloaded on - 10/11/2014 23:47:56 ::: pils-183.12, 15,28.10, cai-105,60,61.14 What is discharged is untreated waste water generated in the City. The same is the case with Ichalkaranji city;
B] Neither the fourth Respondent nor the fifth Respondent are implementing the provisions of the Water (Prevention and Control of Pollution) Act, 1974 (for short "Water Act"); C] Ichalkaranji is a town which is well known for large number of Power Looms. The Power Looms discharge polluted/ acidic water in the gutters which is eventually carried to the Panchaganga River;
D] The waste water from various Nallas including nallas known as Kala Odha and Chandur Nalla in the city of Ichalkaranji is discharged in Panchaganga River. What is discharged is untreated sewage water;
E] It is pointed out that Kolhapur and Ichalkaranji towns have population of about more than 5 lakhs and 3 lakhs respectively and surrounding rural area has population of 2 to 3 lakhs;
F] Polluted water is drawn by the Ichalkaranji Municipal Council from Panchaganga River for the purposes of supply to the citizens of Ichalkaranji. ;
G] Effluent Treatment Plan set up by the Ichalkaranji Municipal Council is not working properly and hence, untreated sewage is discharged into the River from Kala Odha pump house; H] There are no water filtration tanks. Both the fourth and fifth Respondents are not complying with the provisions of the Municipal Solid Waste (Management and Handling) Rules 2005; and I) The performance of the existing Sewage Treatment Plant (STP) at Kasba Bawda in Kolhapur is very poor. A new plant is proposed at the site having capacity of 75 MLD. The sewage 9 of 39 ::: Downloaded on - 10/11/2014 23:47:56 ::: pils-183.12, 15,28.10, cai-105,60,61.14 treatment plant at Ichalkaranji has limited capacity of 20 MLD. It has a very old sewage system;
6. The main prayer is for directing the Respondents to stop releasing untreated sewage water from Kolhapur and Ichalkaranji into the river Panchaganga and take steps for preventing pollution of Panchaganga. Various other prayers have been sought regarding implementation of the Water Act including an action of initiating criminal proceedings. There is a prayer to direct the concerned Respondents to implement directions of this Court in Writ Petition No.929 of 1997 on 16th December, 1997 (Dhanajirao Jivarao Jadhav and others vs. State of Maharashtra and others)3.
7. On 10th May, 2013, an order was passed by the Division Bench of this Court directing the Maharashtra Pollution Control Board to take all steps and action to ensure implementation of the directions issued by it. The Maharashtra Pollution Control Board (for short "MPCB") was directed to issue further directions in accordance with law. Thereafter, PIL Nos.15 and 28 of 2010 were clubbed with this Petition. We must note here that this Court had issued directions to NEERI to submit a report. By order dated 6 th December, 2013, this Court appointed NEERI to make a study and submit a report.
3 1997 SCC OnLine Bom 551
10 of 39
::: Downloaded on - 10/11/2014 23:47:56 :::
pils-183.12, 15,28.10, cai-105,60,61.14 Paragraphs 2 to 4 of the said order read thus :-
"2. It is not desirable to wait till the end of March, 2014 to see whether the Kolhapur Municipal Corporation complies with its statement made in the affidavit. In view of the seriousness of the matter, it is necessary to take protective and remedial action immediately. We therefore appoint NEERI to make a report and submit the same to this Court on all relevant issues regarding the pollution in the Panchaganga river including in respect of the above questions.
3. NEERI is requested to make a comprehensive report on all issues relating to pollution of the Panchaganga river, identify the causes for the same, suggest remedial measures and opine whether the present projects being undertaken by the authorities have sufficient capacity and technical capability to meet the requirements projected by the Kolhapur Municipal Corporation and the Ichalkaranji Municipal Council and the requirements stipulated by the MPCB and applicable statutory norms. The report must indicate all factors that are contributing to the pollution.
4. All parties shall furnish any information that NEERI may require in this regard. NEERI shall be at liberty to seek directions and orders from this Court to ensure compliance with this order. NEERI will be entitled to seek information from any relevant party and not merely the parties to this Petition."
11 of 39 ::: Downloaded on - 10/11/2014 23:47:57 ::: pils-183.12, 15,28.10, cai-105,60,61.14
8. Paragraph 5 of the said order directs that costs and fees of NEERI shall be paid equally by the fourth and fifth Respondents subject to further orders.
9. The order dated 20th December, 2013 reads thus :-
"Dr. Shivani Dhage, former Deputy Director and presently appointed by NEERI as water expert appeared before us and submitted a project report dated December, 2013. The same is taken on record and marked 'X' for identification. It is clarified that the project to be undertaken by NEERI shall be from Prayag Chikhali and Kurundvad, which is a stretch of about 45 kms and the catchment area. The MPCB has agreed to ensure that NEERI has access to any of the industries that may be required to be inspected for the purpose of implementing the project irrespective of where the industry/factory is located. The MPCB shall ensure that permission is given to NEERI for this purpose without further orders of this Court.
2. The affidavit sought to be filed by Respondent No. 4 shall be filed in the office.
3. The affidavit claims that the order dated 6th December, 2013 was complied with so far as it related to the commission of the pumping station at Jayanti Nala by Respondent No. 4.
4. Complaints have been made on behalf of the Petitioner regarding the discharge of effluent by certain sugar factories. The Petitioner is at liberty to move to the 12 of 39 ::: Downloaded on - 10/11/2014 23:47:57 ::: pils-183.12, 15,28.10, cai-105,60,61.14 MPCB for appropriate directions.
5. Needless to clarify that all the authorities including MPCB are bound to take any action in accordance with law and the pendency of this Public Interest Litigations will not prevent them from doing so.
6. In the event of any proceedings being filed against the MPCB by any party, industry or factory in respect of the action taken by the MPCB, MPCB shall give notice thereof to the Petitioner's Advocate.
7. Stand over to 15th January, 2014."
10. By the said order, project proposal of study to assess the Kolhapur and Ichalkaranji sewage pollution of Panchaganga River submitted by NEERI was taken on record.
11. Thereafter, preliminary recommendations (Study Report of April 2014) and Supplementary Action Plan for abatement of Panchaganga river of April, 2014 made by NEERI were placed on record and affidavits have been filed by the fourth and fifth Respondents dealing with the implementation of the said report.
12. Considering the magnitude of the pollution caused to the River Panchaganga, in principle, we find no difficulty in coming to the conclusion that the interim recommendations of the NEERI and the final recommendations which may be submitted by NEERI will have to 13 of 39 ::: Downloaded on - 10/11/2014 23:47:57 ::: pils-183.12, 15,28.10, cai-105,60,61.14 be implemented subject to the directions which may be issued from time to time by this Court. The main causes of pollution can be broadly divided under the following categories:-
(a) Pollution created by the cities of Ichalkaranji and Kolhapur due to various reasons such as disposal of untreated sewage water in the river and lack of proper STP or ETP facilities therein;
(b) The pollution caused by the actions or omissions of the citizens;
(c) The pollution caused by the industries including the sugar and Power Loom industries;
(d) Pollution created by the villages adjacent to River Panchaganga;
(e) Pollution created by industries in the industrial estates set up by the Maharashtra Industrial Development Corporation (MIDC) .
13. Before we issue interim directions, it will be necessary to make a reference to the stand taken by the Maharashtra Pollution Control Board (MPCB). There are various affidavits filed by the MPCB.
There is an affidavit dated 13th March, 2013 filed by Shri Suryakant S.
Doke, the Regional Officer of the Maharashtra Pollution Control Board, Kolhapur. The said affidavit extensively deals with various issues 14 of 39 ::: Downloaded on - 10/11/2014 23:47:57 ::: pils-183.12, 15,28.10, cai-105,60,61.14 concerning the fourth and fifth Respondents as well as the pollution created by the industries. What is stated in the affidavit can be summarized as under :-
[A] MPCB has prepared Kolhapur action plan to prevent pollution of river Panchaganga in consultation with the fourth Respondent which requires the fourth Respondent to arrest the flow of 12 nallas carrying untreated sewage to Panchaganga River, to upgrade the existing STP and to install additional 50 MLD STP at Kasba Bawda. It is stated that the fourth Respondent has not adhered to the provisions of the said action plan;
[B] Under the provisions of the Water Act, directions were issued to the fourth Respondent Corporation on 20 th November, 2000 and 16th January, 2004. Again on 13th April, 2010, directions were issued to the fourth Respondent Municipal Corporation. The said directions are set out in clause K of the affidavit which read thus :-
" i) To submit concrete proposal alongwith time bound program for the installation of the integrated STPs with the sanction of funds by the State and Central Govt with Bar Chart to the MPCB.
ii) To prepare a concrete proposal for the remaining 30% domestic effluent collection and treatment thereof and get approval from various authorities, so that the MPCB will consider release of matching Fund of Rs.16 lakhs 15 of 39 ::: Downloaded on - 10/11/2014 23:47:57 ::: pils-183.12, 15,28.10, cai-105,60,61.14 as approved earlier for the alternate efficacious technology being finalized by the Kolhapur Municipal Corporation, provided such a proposal is submitted to MPCB for further approval.
iii) To diver/trap 12 nallas and by proper Bhadhara, give proper chemical dozing on the lines of Kerala Treatment as agreed during the course of hearing, so as to avoid discharge of untreated, under-treated sewage into River Panchganga.
iv) The Kolhapur Municipal Corporation shall apply for renewal of consent giving details of the pollution control devices and solid waste management alongwith the arrears of fees with time bound concrete proposal within 30 days time.
v) To furnish Bank Guarantee of Rs.5 Lakhs ensuring the compliance of above conditions, consent conditions, authorization and environmental standards, directions issued by the Board from time to time which shall be valid for a period of three years to be submitted within 15 days time."
[C] It is stated that the fourth Respondent Corporation did not comply with the said directions;
[D] On 24th November, 2011, directions were issued to the fourth Respondent Corporation under the provisions of the Water Act, the Air (Prevention and Control of Pollution) Act, 1981 and the Municipal Solid Waste (Management and Handling) Rules, 16 of 39 ::: Downloaded on - 10/11/2014 23:47:57 ::: pils-183.12, 15,28.10, cai-105,60,61.14 2000 (for short the Said Rules of 2000);
[E] On 19th December, 2011, MPCB issued exhaustive directions containing long term and short term measures to the fourth Respondent Municipal Corporation. However, it is stated that notwithstanding the grant of number of opportunities, the Municipal Corporation has not complied with substantial part of the said directions. It is stated that the fourth Respondent has not made operational the Solid Waste Processing Plant at Kasba Bawda. It is stated that steps have not been taken to divert various Nallas to ensure that untreated sewage water is not discharged in the river. The construction of STP at Kasba Bawda has not adhered to the time bound schedule;
[F] Various instances of discharge of huge quantity of untreated sewage effluent in the Panchaganga River have been set out in the affidavit;
[G] Further directions were issued on 15th June, 2012. It is stated that four prosecutions have been lodged against the fourth Respondent Municipal Corporation;
[H] The same affidavit deals with action taken against fifth Respondent Municipal Council. Reliance is placed on proposed directions issued to the Municipal Council on 29 th December, 2007. Reliance is placed on further directions issued on 15 th 17 of 39 ::: Downloaded on - 10/11/2014 23:47:57 ::: pils-183.12, 15,28.10, cai-105,60,61.14 June, 2012 to the said Municipal Council. It is stated that the fifth Respondent Council has not complied with the said directions;
[I] The affidavit also deals with the action taken against the defaulting industries including textile industries;
[J] What is important is that the affidavit states that the fourth Respondent Corporation is generating 96 MLD of sewage out of which only 43.5 MLD of sewage is being given primary treatment. As a result, rest of the sewage which is not even given primary treatment is discharged into Panchaganga River either through Nalla or through pipeline. The treatment given to 43.5 MLD is also inadequate in terms of the standards laid down by the Environment (Protection) Rules, 1986. It is stated that Ichalkaranji generates 40 MLD effluent. It is stated that STP already set up can deal with only 20 MLD sewage everyday. It is stated that STP is not maintained properly. It is stated that only 12 MLD sewage per day is collected and taken to STP. Thus, it is stated that 28 MLD of sewage is being discharged without any treatment in the Panchaganga River. It is stated that as far as pollution to the river is concerned, contribution of fourth Respondent Corporation is 52% and the contribution of the fifth Respondent is 23%. The remaining 18 of 39 ::: Downloaded on - 10/11/2014 23:47:57 ::: pils-183.12, 15,28.10, cai-105,60,61.14 contribution is by the other local authorities and industries.
14. What is stated in the affidavit by the MPCB is dealt with by the affidavit of Shri Nitin Desai, Chief Officer of the fifth Respondent Municipal Corporation. It is stated in the affidavit that Ichalkaranji Textile Development Cluster has set up a Common Effluent Treatment Plan (CETP) having capacity of 12 MLD.
15. There is another affidavit filed by Shri Bharat B. Nimbarte, the Joint Director (Water Pollution Control) of the MPCB. Directions issued on 11th June, 2013 under the Water Act to the fourth Respondent Corporation have been set out in the said affidavit. The said directions are :-
(i) KMC has been directed to complete & commission 76 MLD new Kasba Bawda STP's work within the time stipulated in the directions, which will take into consideration major portion of sewage collection, treatment & disposal thereof after complying with the Environmental Standards laid down in the Consent as per Environment (Protection) Rules, 1986. MPCB has given time limit upto August, 2013 as agreed by the KMC during the course of hearing for completing 24 MLD 1st Phase of the STP, out of 76 MLD STP,
(ii) KMC has been further directed to complete 2 nd to 4th Phase of STPs at Kasba Bawda by the end of September, 2013; and,
(iii) The remaining phases upto 6th stage to be completed by the end of December, 2013. In the meantime, it has been directed to lift the sewage by making appropriate 19 of 39 ::: Downloaded on - 10/11/2014 23:47:57 ::: pils-183.12, 15,28.10, cai-105,60,61.14 lifting arrangement within 45 days time starting from 15/6/2013 and for short term to arrest domestic effluent at various nallas, so as to prevent its discharges into the river Panchganga to the extent possible. Necessary bank guarantees have been asked to be submitted to ensure time bound compliance of the directions issued by the MPCB,
(iv) KMC has to operate & maintain existing STP with primary treatment of 43.5 MLD capacity round'O clock, so as to ensure that pre-treated effluent is disposed off as per consent conditions."
16. Similar directions issued to the Ichalkaranji Municipal Council have been also incorporated in the said affidavit which read thus :-
"(i) IMC has been directed to operate & maintain existing STP of 20 MLD round'O clock, so as to achieve the Environmental Standards and also to take efforts to see that 20 MLD effluent is collected and taken for further treatment to the existing STP as per its capacity.
(ii) IMC has been further directed to provide 12+12 MLD STP as agreed by it on or before March, 2014,
(iii) IMC also agreed that it will arrest Chandur Odha and Kabnoor Nalla with proper Bandharas and regulate the discharge of sewage into the Panchganga river, so as to prevent the pollution of Panchganga river to the extent possible. Also directions given to regulate Kala Odha discharge into the Panchganga river. Necessary bank guarantees have been asked to be submitted to ensure the compliance of directions."
The affidavit incorporates directions issued to industries.
17. Shri Sunil Pawar, Chief Officer of the Respondent dealt with the said directions by filing affidavit dated 11 th October, 2013. It is 20 of 39 ::: Downloaded on - 10/11/2014 23:47:57 ::: pils-183.12, 15,28.10, cai-105,60,61.14 submitted that DPR for setting up STP of capacity of 24 MLD was submitted to the State Government. The State Government has forwarded the same to Government of India for final sanction. It is contended that all possible steps have been taken by the Municipal Council to minimize the pollution of the river.
18. There is an affidavit dated 10 th October, 2014 filed by Shri Manish B. Pawar, the Hydraulic Engineer of the fourth Respondent Corporation. It refers to National River Conservation Plan sanctioned by the National River Conservation Directorate. It deals with various short term and long term measures taken by the said Corporation including making arrangements for artificial ponds for immersion of Ganesh idols.
19. On 27th June, 2014, another affidavit has been filed by Shri Suryakant S. Doke, the Regional Officer of MPCB. The said affidavit has been filed after survey of industries in Panchaganga River Basin in May, 2014. The affidavit summarizes the action proposed to be taken against the industries which are contributing to the pollution of the river Panchaganga.
20. It is necessary to consider the suggestions made by the NEERI. The NEERI has submitted a report in April, 2014 styled as study 21 of 39 ::: Downloaded on - 10/11/2014 23:47:57 ::: pils-183.12, 15,28.10, cai-105,60,61.14 report. The study report is accompanied by a supplementary note on action plan for abatement of Panchaganga River. The study report contains recommendations in clauses 15 and 16 (pages 86-91). The recommendations deal with flow of and flows into River Panchaganga, functioning of Wastewater Treatment systems, Industrial Waste water Management Practices, Weeds and Sanitation Issues and introduction of Environmental Management System (EMS) through Public Processes for the fourth and fifth Respondents for Protection of River Panchaganga and Health of Population. The supplementary note submitted by NEERI deals with issues for rejuvenation of River Panchaganga. It records the issues identified for critical evaluation and immediate attention for rectification so that the river quality will improve and meet the stipulated class A-II standards.
21. There are responses filed by the fourth Respondent Corporation and the fifth Respondent Council to the recommendations of NEERI. In principle, both the local authorities seem to have accepted the recommendations of NEERI. There is some dispute whether recommendations which are claimed to be implemented are really implemented.
22. There is no dispute between the parties that elaborate long term measures are required to be taken for preventing the pollution of 22 of 39 ::: Downloaded on - 10/11/2014 23:47:57 ::: pils-183.12, 15,28.10, cai-105,60,61.14 Panchaganga River and for rejuvenation of river Panchaganga so that the river water quality will improve and meet the stipulated A-II class standard. Long term as well as short term measures will have to be taken by all concerned. Steps will have to be taken not only by the fourth and fifth Respondents but by several agencies involved in the process. It is true that the major role will have to be played by the third Respondent MPCB, fourth Respondent Kolhapur Municipal Corporation and fifth Respondent Ichalkaranji Municipal Council.
23. At this stage, we must note here that a Division Bench of this Court in the case of Dhanajirao Jivarao Jadhav and others versus State of Maharashtra and others notes the problems faced by Kolhapur in paragraph 17 which reads thus:
"17. From the above narration, the following picture emerges:--
(i) That the city of Kolhapur was facing a very grave and serious problem of supply of polluted drinking water which fact has been acknowledged by the third respondent also.
(ii) The reasons for the heavy pollution was attributed to discharge of untreated sewage and sullage directly into the river Panchganga primarily through Dudhali and Jayanti Nalas coupled with the breakdown of existing sewage Treatment Plant.
............."
The Division Bench issued elaborate directions in terms of paragraph 26 of the said decision. The said directions are essentially against MPCB 23 of 39 ::: Downloaded on - 10/11/2014 23:47:57 ::: pils-183.12, 15,28.10, cai-105,60,61.14 (the third Respondent in the decision) based on the provisions of the Water Act. MPCB is bound by the said directions. Directions were also issued to the fourth Respondent Corporation (the fifth Respondent in the decision) . The relevant directions read thus:
"26. In the circumstances, the petition is disposed of with the following directions:--
(i) The third respondent shall periodically monitor the level of pollution of the water of river Panchganga at the three sources of confluence and also at the discharge point of the treated effluents and shall ensure supply of potable water to the city of Kolhapur. The third respondent shall, every two months, publish in the local newspaper the reports of the test carried out.
(ii) The fifth respondent, Maharashtra Pollution Control Board, would keep a strict vigilance on the activities of the industries discharging effluents in rivers and see that standards prescribed under the various enactments, including the Water (Prevention and Control of Pollution) Act, 1974 and Air (Prevention and Control of Pollution) Act, 1981, are maintained.
The fifth respondent should also maintain a strict vigil on the activities of the following industries, so that untreated effluents are not discharged in River Panchganga: (1) Rajaram Sahakari Sakhar Karkhana Ltd., Kasba Bawda. (2) Datta Sahakari Sakhar Karkhana Ltd., Asurle-Purle.
(3) Kumbhi-Kasari Sahakari Sakhar Karkhana Ltd., Kuditre. (4) Bhogawati Sahakari Sakhar Karkhana Ltd., Shahunagar-
Parite.
(5) United Distilleries, C/o Bhagawati Sahakari Sakhar Karkhana Ltd., Shahunagar-Parite.
(6) Vhatkar Industries, Jawahar Nagar. (7) Tanning Industries (Tanneries) situated at Jawaharnagar, Subhashnagar and Udyamnagar.
24 of 39 ::: Downloaded on - 10/11/2014 23:47:57 ::: pils-183.12, 15,28.10, cai-105,60,61.14 (8) C.R. Hospital.
(9) Fertilizer Industry, Yawluj.
Periodical visits should be made by the higher officer of the fifth respondent so that, if there is any connivance on the part of the concerned persons, it could be detected and immediate action taken. Report of such inspection should be given to the Committee of Experts constituted as per the directions given below:--
Immediate action should be taken by respondents Nos. 3 and 5 jointly to see that untreated sewage is not directly discharged into river Panchganga from sources, including the Dudhali and Jayanti Nallas."
The said directions are still binding as the same continue to remain in operation.
24. In PIL 183 of 2012, even the Zilla Parishad of Kolhapur has filed an affidavit in which an assurance is given to take all possible steps which could be taken by the Zilla Parishad. There are 174 village panchayat areas adjacent to banks of the Panchaganga River. The State Government and the Zilla Parishad will have to exercise statutory powers by issuing necessary directions to the village panchayats. The recommendations of the NEERI contain suggestions regarding working of CETP. There are two industrial estates of MIDC near the bank of River Panchaganga. Therefore, even the MIDC has a role to play.
25. Thus, several statutory agencies including the State Government have a role to play in preventing pollution to River 25 of 39 ::: Downloaded on - 10/11/2014 23:47:57 ::: pils-183.12, 15,28.10, cai-105,60,61.14 Panchaganga. However, statutory authorities or agencies involved cannot devise its own methods to deal with the issues. All the concerned authorities will have to implement one comprehensive plan.
A very well reputed expert agency like NEERI having a vast experience in the field has been already appointed. Only way to do the task effectively is to implement the recommendations of NEERI in the reports which are already on record and the further recommendations in the further interim reports and final report which may be submitted by NEERI.
26. At the same time, the citizens have a role to play. Even the citizens, due to lack of awareness contribute to the pollution of the River. The pollution can be created by immersion of Idols made up of plaster of paris. "Nirmalya" and other organic material is discharged in the river in huge quantity. The river is used for immersion of ashes.
Garbage is thrown either in the river or on the bank of the river.
Vehicles are taken to the banks of the river and the river water is used for washing the vehicles. Apart from undertaking awareness programs, several preventive measures will have to be taken. On this aspect, this Court will be guided by the detailed directions issued by order dated 7 th March, 2014 in PIL No.176 of 2012 for preventing pollution to River Godavari.
26 of 39 ::: Downloaded on - 10/11/2014 23:47:57 ::: pils-183.12, 15,28.10, cai-105,60,61.14
27. The interim directions will have to be issued broadly on the following points :-
(1) Implementation of recommendations of NEERI both interim and final. Implementation by the MPCB of the directions issued by this Court in the case of Dhanajirao Jivarao Jadhav; (2) Implementation by the industries and all concerned authorities of the statutory directions issued by MPCB; (3) Various steps to be taken by the fourth Respondent Municipal Corporation and fifth Respondent Municipal Council;
(4) Various steps to be taken by the fourth and fifth Respondents, MIDC, Zilla Parishad and the State Government for ensuring participation of citizens in awareness programs;
(5) Security measures including availability of sufficient police personnel;
28. The interim directions which we propose to issue will have to be scrupulously implemented. Therefore, continuous monitoring will be necessary. This object can be achieved by constituting a Committee headed by the Divisional Commissioner, Pune who shall be the Chairman of the Committee. The Committee shall consist of following members apart from the Chairman :-
(a) The Commissioner of the Kolhapur Municipal Corporation;
(b) The Collector of the District Kolhapur;
(c) The Chief Officer of Ichalkaranji Municipal Council;
(d) An appropriate officer of higher level nominated by the MPCB;
27 of 39 ::: Downloaded on - 10/11/2014 23:47:57 ::: pils-183.12, 15,28.10, cai-105,60,61.14
(e) The Chief Executive Officer of Zilla Parishad, Kolhapur;
(f) A representative of NEERI to be nominated by NEERI;
(g) An expert in the field appointed by the Divisional Commissioner after consulting the Petitioners and the fourth and fifth Respondents;
(h) such other persons as may be nominated by the Divisional Commissioner.
29. The Divisional Commissioner, Pune shall appoint any Revenue Officer in his office not below the rank of a Deputy Collector to act as Co-ordinator/Secretary of the Committee. The Divisional Commissioner shall complete the constitution of the Committee within a period of one month from today. It will be open for the said Committee to constitute Sub-Committees.
30. We direct the fourth Respondent Municipal Corporation and fifth Respondent Municipal Council to make available necessary secretarial and other staff to the Committee on permanent basis as per the requisitions which may be issued by the Divisional Commissioner. It will be the responsibility of the said two municipal authorities to make arrangements for providing vehicles to the members of the Committee whenever they make site visits. Arrangements for their stay shall be made by the said two authorities. The other infrastructure, stationary, printers, etc. shall be made available by both the said Respondents to the said Committee.
28 of 39 ::: Downloaded on - 10/11/2014 23:47:57 ::: pils-183.12, 15,28.10, cai-105,60,61.14
31. The District Superintendent of Police shall appoint an officer not below the rank of Deputy Superintendent of Police. The officer so appointed shall be responsible for providing security to the municipal staff as well as staff of the MPCB for the purposes of implementation of the directions issued under this order as well as the directions issued by the Committee. Appropriate number of police officers and police constables shall be assigned specifically for this work by the Deputy Superintendent of Police. Appropriate action shall be taken by the Superintendent of Police within a period of one month from today. The Deputy Superintendent of Police so appointed shall attend the meetings of the Committee as and when called upon by the Committee. He shall ensure that the police effectively assist all concerned authorities in the implementation of the directions of this Court.
32. We must note here that there is a Civil Application being Civil Application No.60 of 2014 filed by the Kolhapur Municipal Corporation in which a prayer is made for extending the time to commission 76 MLD capacity STP at Kasba Bawda till 31 st May, 2014.
The affidavit of Shri Rajendra Kalgonda Patil, the Environmental Officer of the said Municipal Corporation dated 4 th July, 2014 records that 90% of the work of the STP at Kasba Bawda is completed. By disposing of 29 of 39 ::: Downloaded on - 10/11/2014 23:47:57 ::: pils-183.12, 15,28.10, cai-105,60,61.14 the Civil Application, we propose to grant time to the fourth Respondent Municipal Corporation to complete and commission the STP by 31st January, 2015, if already not done. No further time shall be granted.
33. At this stage, we issue the following interim directions: -
(I) The appointment of NEERI in terms of the earlier order passed by this Court on 6th December, 2013 shall continue till further orders;
(II) The reports and the recommendations made therein so far submitted by NEERI are accepted. NEERI shall submit the final report containing the recommendations as expeditiously as possible;
(III) The petition shall be fixed under the caption of "Directions" on 22nd December, 2014 when representative of the NEERI shall make a statement regarding the possible outer limit within which the report shall be submitted. Payment of costs and charges payable to NEERI shall be made by the fourth and fifth Respondents in equal proportions. This order shall be 30 of 39 ::: Downloaded on - 10/11/2014 23:47:57 ::: pils-183.12, 15,28.10, cai-105,60,61.14 communicated to NEERI by the Advocate for the fourth Respondent;
(IV) We direct the Maharashtra Pollution Control Board, the Kolhapur Municipal Corporation, the Ichalkaranji Municipal Council, the Zilla Parishad, Kolhapur and the State Government to take all possible steps to implement the recommendations in the study report of NEERI submitted in April, 2014 as well as in the supplementary note on action plan for abatement of Panchaganga River;
(V) The Divisional Commissioner, Pune shall constitute a Committee headed by him as its Chairman. The Committee shall consist of following members apart from the Chairman :-
(a) The Commissioner of the Kolhapur Municipal Corporation;
(b) The Collector of the District Kolhapur;
(c) The Chief Officer of Ichalkaranji Municipal Council;
(d) An appropriate officer of higher level nominated by the MPCB;
(e) The Chief Executive Officer of Zilla Parishad, Kolhapur;
31 of 39 ::: Downloaded on - 10/11/2014 23:47:57 ::: pils-183.12, 15,28.10, cai-105,60,61.14
(f) A representative of NEERI to be nominated by NEERI;
(g) An expert in the field appointed by the Divisional Commissioner after consulting the Petitioners and the fourth and fifth Respondents;
(h) Such other persons as may be nominated by the Divisional Commissioner.
(VI) The Divisional Commissioner, Pune shall appoint any Revenue Officer in his office not below the rank of a Deputy Collector to act as the Secretary of the Committee. The Divisional Commissioner shall complete the constitution of the Committee within a period of one month from today. It will be open for the said Committee to constitute various Sub-Committees.
(VII) We direct the fourth Respondent Municipal Corporation and fifth Respondent Municipal Council to make available office premises, necessary secretarial and other staff to the Committee on permanent basis at Kolhapur and Ichalkaranji as per the requisitions which may be issued by the Divisional Commissioner. It will be the responsibility of the said two municipal authorities to make arrangements for providing vehicles to the members of the Committee 32 of 39 ::: Downloaded on - 10/11/2014 23:47:57 ::: pils-183.12, 15,28.10, cai-105,60,61.14 whenever they make site visits. Arrangements for their stay shall be made by the said two authorities. The other infrastructure, stationary, printers, etc. shall be made available by both the said Respondents to the said Committee.
(VIII) The District Superintendent of Police, Kolhapur shall appoint an officer not below the rank of Deputy Superintendent of Police. The officer so appointed shall be responsible for providing protection to the municipal staff as well as staff of the MPCB for the purposes of implementation of the directions issued by this Court as well as the directions issued by the Committee. Appropriate number of police officers and police constables shall be assigned specifically for this work by the Deputy Superintendent of Police. Appropriate action shall be taken by the Superintendent of Police within a period of one month from today. The Deputy Superintendent of Police so appointed shall attend the meetings of the Committee as and when called upon by the Committee. He shall ensure that the police personnel so appointed effectively assist all concerned authorities in the implementation of the 33 of 39 ::: Downloaded on - 10/11/2014 23:47:57 ::: pils-183.12, 15,28.10, cai-105,60,61.14 directions of this Court.
(IX) The committee headed by the Divisional Commissioner (for short "the Committee") shall monitor the implementation of the recommendations of NEERI as well as the implementation of various interim directions issued by this Court from time to time. The Committee shall call for periodical reports from all concerned Respondents on implementation of the directions issued by this Court from time to time. Quarterly reports shall be submitted by the said Committee to this Court as regards the implementation of the orders of this Court as well as the recommendations of the NEERI. It will be open for the Committee to make its own suggestions on all the aspects. First of such quarterly reports on the progress made till 10th February 2015 shall be submitted on or before 28th February, 2015. For consideration of the first report, the Petition shall be fixed on 9 th March, 2015 under the caption of "Directions";
(X) We make it clear that the Maharashtra Pollution Control Board and all concerned shall implement the directions 34 of 39 ::: Downloaded on - 10/11/2014 23:47:57 ::: pils-183.12, 15,28.10, cai-105,60,61.14 issued by this Court by Judgment and Order dated 16 th December, 1997 in the case of Dhanajirao Jivarao Jadhav & Ors. Vs. State of Maharashtra & Ors. ;
(XI) We direct the fourth and fifth Respondents and all other parties to the Petition to implement the statutory directions already issued under the Water Act as well as other enactments and which will be hereafter issued by the Maharashtra Pollution Control Board. If the directions are not implemented, MPCB shall take action against the defaulters in accordance with law;
(XII) We direct the fourth and fifth Respondents to prepare and implement comprehensive awareness programs for the citizens to ensure that they perform their fundamental duty. The fourth and fifth Respondents shall take help of local NGOs as well as school and college students for implementation of the public awareness programs. Both the fourth and fifth Respondents with the assistance of the local Law and other Colleges and the District or Taluka Legal Services Authority shall organize seminars/ street shows as a part of awareness campaign;
35 of 39 ::: Downloaded on - 10/11/2014 23:47:57 ::: pils-183.12, 15,28.10, cai-105,60,61.14 (XIII) We direct the fourth and fifth Respondents to display boards of adequate size at strategic locations in both the cities calling upon the members of the public not to throw garbage or any material whatsoever in the river.
The boards shall display an appeal to the members of the public to perform their fundamental duty to maintain the River Panchaganga free of pollution. They shall make such appeal through the print and electronic media at regular intervals;
(XIV) We direct the fourth and fifth Respondents to make available facility of sufficient number of temporary artificial ponds at various locations for immersion of Ganesh and other idols during the concerned festive seasons. The fourth and fifth Respondents shall make a public appeal to the citizens to use the facility of artificial ponds. Both the fourth and fifth Respondents shall provide sufficient number of permanent artificial ponds for immersion of ashes and other organic material during the course of traditional obsequies. Adequate publicity shall be given in media as well as by erecting boards 36 of 39 ::: Downloaded on - 10/11/2014 23:47:57 ::: pils-183.12, 15,28.10, cai-105,60,61.14 near the bank of river that such facilities are available.
Board shall contain fervent appeal to members of the public to use the artificial ponds.
(XV) As regards the immersion of Nirmalya and other organic material, in addition to above, large pots shall be kept at the advantageous locations on the bank of the River with display boards of a large size containing an appeal to the members of the public not to throw the Nirmalya and other organic material in to the river water and discharge the same in the pots specifically provided for the purposes. The fourth and fifth Respondents shall erect barricades at relevant entry points to the bank of the river to ensure that the vehicles are not taken near the riverbed for the purposes of washing;
(XVI) Both the Municipal Authorities shall consider of creating special cells for implementation of these directions. For that purpose, they will be entitled to apply to the State for creation of additional posts;
(XVII) The Zilla Parishad, Kolhapur and the State Government 37 of 39 ::: Downloaded on - 10/11/2014 23:47:57 ::: pils-183.12, 15,28.10, cai-105,60,61.14 shall consider of issuing directions to all concerned local village panchayats to take all steps as directed to be taken by the fourth and fifth Respondents. Both of them shall submit action taken reports on or before 21 st December, 2014. The State Government shall submit a report before the said date as regards the constitution of the Committee;
(XVIII) For the purposes of considering the question of issuing interim directions against Respondent Nos.7 to 9 in PIL No.183 of 2012, the Petition shall be listed on 22nd December, 2014 under the caption of "Directions". The Petitioners in PIL No.183 shall ensure that service is effected on the 8th and 9th Respondents through Court as well as privately;
(XIX) If the fourth Respondent Corporation has not yet completed and not commissioned the work of 76 MLD capacity STP AT Kasba Bavda, the same shall be done on or before 31st January 2015. Civil Application No.60 of 2014 is accordingly disposed of;
38 of 39 ::: Downloaded on - 10/11/2014 23:47:57 ::: pils-183.12, 15,28.10, cai-105,60,61.14 (XX) The advocates representing fourth and fifth Respondents shall serve an authenticated copy of this order to the Divisional Commissioner, Kolhapur as well as to NEERI.
All concerned to act upon an authenticated copy of this order.
(A.S. CHANDURKAR, J ) ( A.S. OKA, J )
39 of 39
::: Downloaded on - 10/11/2014 23:47:57 :::


API
GatheredKit aims to abstract away the specifics of the various iOS frameworks used to create the sources by wrapping them in an intuitive and consistent API.
Source
The core of GatheredKit is the Source
protocol.
/**
An object that can provide data from a specific source on the device
*/
public protocol Source : AnyObject, ValuesProvider {
/// A closure that will be called with the latest values
public typealias UpdateListener = (_ latestValues: [AnyValue]) -> Void
/// The availability of the source
public static var availability: SourceAvailability { get }
/// A boolean indicating if the source is currently performing automatic updates
public var isUpdating: Bool { get }
/// Creates a new instance of the source
public init()
/**
Adds a closure to the array of closures that will be called when any of the source's
values are updated. The closure will be called with all values, but not all the values
will neccessary be new.
The returned object must be retained; the lifecycle of the listener is tied to the object. If
the object is deallocated the listener will be destroyed.
- parameter updateListener: The closure to call with updated values
- returns: An opaque object. The lifecycle of the listener is tied to the object
*/
public func addUpdateListener(_ updateListener: @escaping UpdateListener) -> AnyObject
/**
Starts automatic updates. Closures added via `addUpdateListener(_:)` will be
called when new values are available
*/
public func startUpdating()
/**
Stops automatic updates
*/
public func stopUpdating()
}
public extension Source {
/**
Starts automatic updates and adds a closure to the array of closures that will be called when
any of the source's values are updated. The closure will be called with all values, but
not all the values will neccessary be new.
The returned object must be retained; the lifecycle of the listener is tied to the object. If
the object is deallocated the listener will be destroyed.
- parameter updateListener: The closure to call with updated values
- returns: An opaque object. The lifecycle of the listener is tied to the object
*/
public func startUpdating(sendingUpdatesTo updateListener: @escaping UpdateListener) -> AnyObject
}
/**
An object that provides values
*/
public protocol ValuesProvider {
/// An array of all the values provided by this object
var allValues: [AnyValue] { get }
}
Implementations also have individual properties for each of their values, such as the brightness
property of the Screen
source.
CustomisableUpdateIntervalSource
A CustomisableUpdateIntervalSource
is a Source
that supports customising the update frequency, e.g. the gyroscope
/**
A source that supports updating its properties at a given time interval
*/
public protocol CustomisableUpdateIntervalSource : Source {
/// The default update interval that will be used when calling `startUpdating()`
/// without specifying the update interval.
/// This value is unique per-source and does not persist between app runs
public static var defaultUpdateInterval: TimeInterval { get set }
/// The time interval between property updates. A value of `nil` indicates that
/// the source is not performing periodic updates
public var updateInterval: TimeInterval? { get }
/**
Start performing periodic updates, updating every `updateInterval` seconds
- parameter updateInterval: The interval between updates, measured in seconds
*/
public func startUpdating(every updateInterval: TimeInterval)
}
public extension CustomisableUpdateIntervalSource {
/// A boolean indicating if the source is currently updating its properties every `updateInterval`
public var isUpdating: Bool { get }
/**
Starts performing period updated. The value of the static variable `defaultUpdateInterval` will
used for the update interval.
*/
public func startUpdating()
/**
Start performing periodic updates, updating every `updateInterval` seconds.
The passed closure will be added to the array of closures that will be called when any
of the source's values are updated. The closure will be called with all values, but not
all the values will neccessary be new.
The returned object must be retained; the lifecycle of the listener is tied to the object. If
the object is deallocated the listener will be destroyed.
- parameter updateInterval: The interval between updates, measured in seconds
- parameter updateListener: The closure to call with updated values
- returns: An opaque object. The lifecycle of the listener is tied to the object
*/
public func startUpdating(every updateInterval: TimeInterval, sendingUpdatesTo updateListener: @escaping UpdateListener) -> AnyObject
}
ManuallyUpdatableSource
A ManuallyUpdatableSource
is a Source
that does not provide automatic updates, but must be polled for updates. Timer-based updates are provided to keep the API concistent, but the values update listeners receive may not always contain new values.
/**
A source that supports its properties being updated at any given time
*/
public protocol ManuallyUpdatableSource: CustomisableUpdateIntervalSource {
/**
Force the source to update its properties. Note that there is no guarantee that new data
will be available
- returns: The property values after the update
*/
func updateProperties() -> [AnyValue]
}
Installation
GatheredKit can be installed using any of the below methods. Once installed, simply import GatheredKit
to start using it.
Carthage
To install via Carthage add to following to your Cartfile
:
github "JosephDuffy/GatheredKit"
Run carthage update GatheredKit --platform iOS
to build the framework and then drag the built framework file in to your Xcode project. GatheredKit provides pre-compiled binaries, which can cause some issues with symbols. Use the --no-use-binaries
flag if this is an issue.
Remember to add GatheredKit to your Carthage build phase:
$(SRCROOT)/Carthage/Build/iOS/GatheredKit.framework
and
$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/GatheredKit.framework
CocoaPods
To install via CocoaPods add the following line to your Podfile:
pod 'GatheredKit'
and then run pod install
.
Tests
Running the tests for GatheredKit requires Quick
and Nimble
, which can be installed using Carthage:
carthage build --platform iOS --no-use-binaries
Tests can be run via Xcode or fastlane test
.
License
The project is released under the MIT license. View the LICENSE file for the full license.


{% extends 'layout.html' %} {% block title %}Arch{% endblock %} {% block layout-content %} Welcome to ARCH, the Automated Repository of Canned Hints. We hope you enjoy your visit.
As of {% now "D, d M Y" %}, ARCH has
/grab 20IMO6
to pull the problem statement and a link to the ARCH entry.
This works with any problem identifier./grab
and this will still work./active
to display the currently discussed problem./hint [type content]
.
Evil Chin will output a link to the newly created hint,
where you can (if you choose) change the number and keywords.
(By default, Evil Chin selects the smallest unused multiple of 10 for the number.)


Learning Resources for Bay-Delta SCHISM¶
This page is the documentation hub for running the Bay-Delta SCHISM application. It has some ideas for learning to use SCHISM and a how-to topical guide for the application on the Bay-Delta domain.
For installation instructions please see the Installation and Getting Started Page.
General Resources and Tools¶
Tutorials Hello SCHISM tutorials are a set of SCHISM tutorials that introduce basic features, our preprocessors and can get you running the model quickly (Windows friendly).
The Bay-Delta SCHISM Topical Guide explains many of the details of setting up and interpreting a full Bay-Delta simulation, making use of the full toolset.
Bay-Delta Tutorials and presentations describe model assumptions and model input preparation for Bay-Delta SCHISM.
Linux hints help get you started and avoid some gotchas for things like copying and archiving runs
Manuals¶
SCHISM Manuals are available for SCHISM at the VIMS site.
There is some documentation for our Python libraries online, including:
schimpy and our templates/preprocessors for grids and spatial inputs.
vtools3 an extension to schimpy that includes some time series manipulations we need that go beyond basic Pandas which is a prerequisite.
dms_datastore a library for getting data associated with the Bay-Delta.
Hydraulic structures manual
VisIt
Getting Help¶
Please email<EMAIL_ADDRESS>or<EMAIL_ADDRESS>We will try to help you get going.
VIMS and Other External Resources¶
The SCHISM mailing list is very helpful. Online manual and other materials available at [link]


[page:Curve] →
[name]
An abstract base class extending [page:Curve]. A CurvePath is simply an array of connected curves,
but retains the api of a curve.
Constructor
[name]()
The constructor take no parameters.
Properties
See the base [page:Curve] class for common properties.
[property:array curves]
The array of [page:Curve Curves].
[property:boolean autoClose]
Whether or not to automatically close the path.
Methods
See the base [page:Curve] class for common methods.
[method:null add]( [page:Curve curve] )
Add a curve to the [page:.curves] array.
[method:null closePath]()
Adds a [page:LineCurve lineCurve] to close the path.
[method:Geometry createGeometry]( [page:Vector3 points] )
points -- An array of [page:Vector3 Vector3s]
Creates a geometry from points
[method:Geometry createPointsGeometry]( [page:Integer divisions] )
divisions -- How many segments to create. Defaults to *12*.
Creates a [page:Geometry] object comprised of [page:Vector3 Vector3s], for example
to be used with [page:Line] or [page:Points]. Uses [page:Curve.getPoints]() for the division.
[method:Geometry createSpacedPointsGeometry]( [page:Integer divisions] )
divisions -- How many segments to create. Defaults to *12*.
Creates a [page:Geometry] object comprised of [page:Vector3]s that are equidistant, for example
to be used with [page:Line] or [page:Points]. Uses [page:Curve.getSpacedPoints]() for the division.
[method:Float getCurveLengths]()
Adds together the lengths of the curves in the [page:.curves] array.
Source
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]


Command {{vm.command.id}}
- Date
-
{{vm.command.date | date:'mediumDate'}}
- User
-
{{vm.command.user}}
- Request
-
{{vm.command.request}}
- Response
-
{{vm.command.response}}
- Status
-
{{vm.command.status}}
- Started
-
{{vm.command.started}}
- Completed
-
{{vm.command.completed}}
- Error
-
{{vm.command.error}}
- Failed
-
{{vm.command.failed}}


About this Library
- Based on the 2008-09-17 API version.
- Version 2.0
- Release Date : 2009-11-03
Before you begin
Extract the contents of amazon-fps-2008-09-17-cs-library.zip to a folder. The folder amazon-fps-2008-09-17-cs-library is created.This folder will be referred to as <ROOT> from this point onwards. Different sub-directories are
- src\Amazon.FPS — This folder contains the code files for the library and sample API calls to Amazon FPS.
- src\Amazon.FPS.Samples — This folder contains the code files for sample API calls to Amazon FPS.
- src\Amazon.CBUI — This folder contains the code files for the library to generate CBUI pipeline urls
- src\Amazon.CBUI.Samples — This folder contains the code files for sample pipeline calls to Amazon CBUI.
- src\Amazon.IpnReturnUrlValidation — This folder contains the code files for verifying Return Urls or IPNs sent by Amazon FPS.
- src\Amazon.IpnReturnUrlValidation.Samples — This folder contains the code files for sample verification of ReturnUrls and IPNs sent by Amazon FPS.
Prerequisites
Package Content
| Directory |
Overview |
|
src
|
Source distribution of the library. All sources including code samples that demonstrate the use of the library located under this directory.
|
Building Samples
- Update the CBUI endpoint (This step is ONLY required for sandbox environment, for production envirnment no changes are required.)
- Open <ROOT>\src\Amazon.CBUI\Amazon.CBUI\AmazonFPSCBUIPipeline.cs file
- Replace the following line
protected static String CBUI_URL = "https://authorize.payments.amazon.com/cobranded-ui/actions/start";
with the code snippet below:
protected static String CBUI_URL = "https://authorize.payments-sandbox.amazon.com/cobranded-ui/actions/start";
- Open <ROOT>\src\Amazon.FPS\Amazon.FPS\AmazonFPSConfig.cs file
- Replace the following line
private String serviceURL = "https://fps.amazonaws.com";
with the code snippet below:
private String serviceURL = "https://fps.sandbox.amazonaws.com"
- Run csc /target:exe /out:CBUIPipelineSamples.exe /recurse:Amazon.CBUI\*.cs /recurse:Amazon.CBUI.Samples\*.cs /main:Amazon.CBUI.Samples.CBUIPipelineSamples in <ROOT>\src
- Run csc /target:exe /out:AmazonFPSSamples.exe /recurse:Amazon.FPS\*.cs /recurse:Amazon.FPS.Samples\*.cs /main:Amazon.FPS.Samples.AmazonFPSSamples in <ROOT>\src
Steps to make a payment
Making a payment involves two parts. First, you obtain a payment authorization from buyers by redirecting them to co-branded pages hosted by Amazon FPS. When buyers return to your web site, you receive a payment authorization(also called a sender token) as part of the return URL. Second, you use this payment authorization or sender token in a 'Pay' API call to make a payment.
- Setup an app server at your side to receive HTTP redirect from Cobranded UI.
- Get the authorization from the buyer
- Open <ROOT>\src\Amazon.CBUI.Samples\Amazon.CBUI.Samples\CBUISingleUsePipelineSample.cs file
- In function invoke, set the following fields
pipeline.setMandatoryParameters("callerReferenceSingleUse", "http://www.mysite.com/call_back.jsp", "5");
//optional parameters
pipeline.addParameter("currencyCode", "USD");
pipeline.addParameter("paymentReason", "HarryPotter 1-5 DVD set");
- Open <ROOT>\src\Amazon.CBUI.Samples\Amazon.CBUI.Samples\CBUIPipelineSamples.cs file
- Set AWS Access Key ID and AWS Secret Access Key
private static readonly String accessKey = "<Your aws access key>";
private static readonly String secretKey = "<Your aws secret key>";
- In function Main, uncomment the following line
//CBUISingleUsePipelineSample.invoke(accessKey, secretKey);
- Open a command prompt and go to directory <ROOT>\src
- Type, csc /target:exe /out:CBUIPipelineSamples.exe /recurse:Amazon.CBUI\*.cs /recurse:Amazon.CBUI.Samples\*.cs /main:Amazon.CBUI.Samples.CBUIPipelineSamples
- Run CBUISample.exe on command prompt in the same directory
- Copy the URL printed on console and paste it on your browser. You will be redirected to Amazon FPS CBUI
- Go through the pipeline. Make sure you use a different Amazon FPS account, while acting as buyer. At the end of the pipeline, you(buyer) will be redirected back to the return URL provided in the query string above.
- The return URL will include expiry, tokenID, status, callerReference and signature parameters. Please note that tokenID will be used in Pay later.
- Validate that Amazon Payments CBUI actually redirected the customer to the Return URL specified. You have two options to validate
- Server-side validation using VerifySignature API call (recommended for quicker integration). Click here for steps.
- Client-side validation using PKI based algorithm. Click here for steps.
Steps to make a payment
- Open <ROOT>\src\Amazon.FPS.Samples\Amazon.FPS.Samples\AmazonFPSSamples.cs file
- Set SenderTokenId the same as the one returned by CBUI above
- Set AWS Access Key ID and AWS Secret Access Key
String accessKeyId = "<Your Access Key ID>";
String secretAccessKey = "<Your Secret Access Key>";
- Set request parameters. For example, find following pre-generated snippet:
// PayRequest request = new PayRequest();
// @TODO: set request parameters here
// PaySample.InvokePay(service, request);
- Uncomment first and third line and set Pay request parameters
PayRequest request = new PayRequest();
request.CallerReference = "ABCDEFGHIJKL12345";
request.SenderTokenId = "123ABCDEF53646GHT3546354";
Amount amount = new Amount();
amount.CurrencyCode = CurrencyCode.USD;
amount.Value = "1";
request.TransactionAmount = amount;
PaySample.InvokePay(service, request);
Run in <ROOT>\src directory, csc /target:exe /out:AmazonFPSSamples.exe /recurse:Amazon.FPS\*.cs /recurse:Amazon.FPS.Samples\*.cs /main:Amazon.FPS.Samples.AmazonFPSSamples in <ROOT>\src
Run AmazonFPSSamples.exe on command prompt
PayResponse
PayResult
TransactionId
13L1AFBDB54MM68LBL8UDPJTQOZNP1F3PTC
TransactionStatus
Pending
ResponseMetadata
RequestId
85b069ef-8b27-43e1-89cf-f1cfcb3a0e72:0
...
Experiment with other samples, examine samples sources. When ready, add library project to your solution, and use it.
If the response status is Pending, you can use GetTransactionStatus API to get latest transaction status
Amazon Payments will post an IPN for this transaction to your ipn url registered with us. You have two options to validate this IPN.
- Server-side validation using VerifySignature API call (recommended for quicker integration). Click here for steps.
- Client-side validation using PKI based algorithm. Click here for steps.
Related resources
More about Amazon FPS
Documentation
Code samples
Contact us for technical issues
Comments, Questions or Feedback
If you have any comments, questions or feedback on the library, please start discussion here (Amazon FPS forum).


versioninfo()
Assume $\mathbf{A} \in \mathbb{R}^{n \times n}$ is nonsingular and consider the system of linear equation $$ \mathbf{A} \mathbf{x} = \mathbf{b}. $$ The solution is $$ \mathbf{x} = \mathbf{A}^{-1} \mathbf{b}. $$ We want to know how the solution changes with a small perturbation of the input $\mathbf{b}$ (or $\mathbf{A}$).
Let $$ \mathbf{b}_{\text{new}} = \mathbf{b} + \Delta \mathbf{b}. $$ Then $$ \mathbf{x}_{\text{new}} = \mathbf{A}^{-1} (\mathbf{b} + \Delta \mathbf{b}) = \mathbf{x} + \Delta \mathbf{x}. $$ Thus $$ \|\Delta \mathbf{x}\| = \|\mathbf{A}^{-1} \Delta \mathbf{b}\| \le \|\mathbf{A}^{-1}\| \|\Delta \mathbf{b}\|. $$ Because $\mathbf{b} = \mathbf{A} \mathbf{x}$, $$ \frac{1}{\|\mathbf{x}\|} \le \|\mathbf{A}\| \frac{1}{\|\mathbf{b}\|}. $$ This results $$ \frac{ \|\Delta \mathbf{x}\|}{\|\mathbf{x}\|} \le \|\mathbf{A}\|\|\mathbf{A}^{-1}\| \frac{\|\Delta \mathbf{b}\|}{\|\mathbf{b}\|}. $$
$\kappa(\mathbf{A}) = \|\mathbf{A}\| \|\mathbf{A}^{-1}\|$ is called the condition number for linear equation. It depends on the matrix norm being used.
Large condition number means "bad".
Some facts:
$$
\begin{eqnarray*}
\kappa(\mathbf{A}) &=& \kappa(\mathbf{A}^{-1}) \\
\kappa(c\mathbf{A}) &=& \kappa(\mathbf{A}) \\
\kappa(\mathbf{A}) &\ge& 1 \\
%\kappa_1(\mathbf{A}) &=& \kappa_\infty (\mathbf{A}^T) \\
\kappa_2 (\mathbf{A}) &=& \kappa_2 (\mathbf{A}^T) = \frac{\sigma_1(\mathbf{A})}{\sigma_n(\mathbf{A})} \\
\kappa_2(\mathbf{A}^T \mathbf{A}) &=& \frac{\lambda_1(\mathbf{A}^T \mathbf{A})}{\lambda_n(\mathbf{A}^T \mathbf{A})} = \kappa_2^2(\mathbf{A}) \ge \kappa_2(\mathbf{A}).
\end{eqnarray*}
$$
The last fact says that the condition number of $\mathbf{A}^T \mathbf{A}$ can be much larger than that of $\mathbf{A}$.
The smallest singular value $\sigma_n$ indicates the distance to the trouble.
Condition number for the least squares problem is more complicated. Roughly speaking,
Consider the simple case $$ \begin{eqnarray*} \mathbf{X} = \begin{pmatrix} 1 & 1 \\ 10^{-3} & 0 \\ 0 & 10^{-3} \end{pmatrix}. \end{eqnarray*} $$ Forming normal equation yields a singular Gramian matrix $$ \begin{eqnarray*} \mathbf{X}^T \mathbf{X} = \begin{pmatrix} 1 & 1 \\ 1 & 1 \end{pmatrix} \end{eqnarray*} $$ if executed with a precision of 6 decimal digits.
The Longley (1967) macroeconomic data set is a famous test example for numerical software in early dates.
using DelimitedFiles
longley = readdlm("longley.txt")
using StatsPlots
gr()
corrplot(longley,
label = ["Employ" "Price" "GNP" "Jobless" "Military" "PopSize" "Year"])
# response: Employment
y = longley[:, 1]
# predictor matrix
X = [ones(length(y)) longley[:, 2:end]]
using LinearAlgebra
# Julia function for obtaining condition number
cond(X)
# we see the smallest singular value (aka trouble number) is very small
xsvals = svdvals(X)
# condition number of the design matrix
xcond = maximum(xsvals) / minimum(xsvals)
# X is full rank from SVD
xrksvd = rank(X)
# least squares from QR
X \ y
# Gram matrix
G = X'X
# rank of Gram matrix from SVD
# rank deficient! We lost precision when forming Gram matrix
rank(G)
svdvals(G)
# rank of Gram matrix from cholesky
# full!
gchol = cholesky(Symmetric(G), Val(true))
rank(gchol)
# least squares solution from Cholesky matches those from QR
gchol \ (X'y)
Xsp = Float32.(X)
ysp = Float32.(y)
# least squares by QR: dramatically different from Float64 solution
Xsp \ ysp
# least squares by Cholesky: failed
G = Xsp'Xsp
gchol = cholesky(Symmetric(G), Val(true), check=false)
gchol \ (Xsp'ysp)
rank(Xsp)
# rank of Gram matrix by Cholesky
rank(gchol)
# rank of Gram matrix by SVD
rank(G)
using StatsBase
# center and standardize matrix along dimension 1
Xcs = zscore(X[:, 2:end], 1)
Xcs = [ones(length(y)) Xcs]
cond(Xcs)
rank(Xcs)
rank(Xcs'Xcs)
Chapter 6 of Numerical Analysis for Statisticians of Kenneth Lange (2010).
Section 2.6 of Matrix Computation by Gene Golub and Charles Van Loan (2013).


Toggle navigation
Menu
customize
GALLERY
blog
contact
Log in
Select Your Picto Model
Model and Size
Color
Text
Art
Classic
Skinned
Mixed
Baseball
....
....
....
....
....
....
....
....
....
New Text | Edit Text
Browse Our Art Gallery
Search
Shapes/Symbols
Sports/Games
Letters/Numbers
Animals
Emojis
Mascots
Nature
America
Parties/Events
Military
Occupations
Colleges
Music
Caption
Flip
Mirror


{% extends "base.html" %} {% block js %} {% endblock %} {% block title %} guestbook 2.0 {% endblock %} {% block main %}
Say something you want other people to see!
Messages already left:


Lualog
This is a simple logger for Lua.
Create a simple logger for Lua with some configurations as show date, stylized tags and logger name.
Not works with Luvit (due to Luvit custom require function)
Docs
See the documentation here.
Install
Using Luarocks
luarocks install lualog #global installation luarocks install lualog --local # local installation luarocks install lualog --tree lua_modules # current directory installation to lua_modules folder
Manual
Download this repository and copy the folder lualog and place it at root folder of your proyect.
Usage
-- Example local Lualog = require'lualog' local logger = Lualog.new{ -- you can use Lualog() instead Lualog.new tag = 'My logger', -- a logger tag. default: '' styles = {dev = 'yellow', crash = 'bgred'}, -- define custom methods and their style. default: {} ignore_levels = {'dev'}, -- ignore levels (array). default: {} datestring = '%H:%M:%S', -- date string for os.date(). default: false => Not show table_inspect = { -- table-inspect plugin config prettyfy = true, -- pretty print tables. default: false allow_tostring = true, -- allow use table __tostring metamethod. default: true level_depth = 0 -- max nested level to inspect. default: 0. 0 means no level limit }, plugins = {'table-inspect'} -- add plugins to log items. table-inspect is a optional predefined plugin. -- You can add function plugins here too. See as define a plugin at Plugin section. default: {} => no plugins added. } -- Default logging methods logger.info('Hi. This\' a info message') logger.warn('This\' a warning message') logger.error('A fatal error just happened!') -- Custom methods defined at initiation instance logger.dev('Ignored level. See ignore_levels table field') -- This log is ignored due to ignore_levels = {'dev'} logger.crash('A crash!','Oh no!') -- Support multiple args logger.error('My error').info('A log chainning method!') -- chain logging methods but they print at new lines
Result:
Styles: customize the tag of your custom logging methods
If you want to create your custom logging methods, you can add a custom style:
- Color text:
black, red, green, yellow, blue, magenta, cyan, white
- Background color:
bgblack, bgred, bggreen, bgyellow, bgblue, bgmagenta, bgcyan, bgwhite
- Others styles:
bold, underlined, reversed
Add custom logging methods in options table when you init your instance with:
local Lualog = require'lualog' -- equal to require('lualog') local logger = Lualog.new({ styles = { dev='yellow', -- tag = style my_log= 'red.bgblue' -- you can combine styles, red color and blue background for this method. } }) -- and using them logger.dev('Dev log') logger.my_log('Other custom logging method')
Result:
Methods of instance
When you create a Lualog instance, this has these methods (by default):
Default logging methods
.info(...)
- log method with styleblue
and taginfo
.warn(...)
- log method with styleyellow
and tagwarn
.error(...)
- log method with stylered
and tag error
Advanced methods
:print(...)
: function as print global function but apply your plugins. Or call your Lualog instance, logger in examples, as a functionlogger(...)
.
*Tip: call your Lualog instance as function instead :print()
*
logger:print(a_number, a_boolean, a_string, a_table) -- or better, you can only call your logger as function! It's the same ;) logger(a_number, a_boolean, a_string, a_table) -- you got a custom print function with custom logging plugins!
- :use(...)
: add plugins to queue. See Plugin section.
:paint(style, text)
: return a colorized string. Use a print method to see it at console/terminal.local my_blue_string = logger:paint('blue','This string will be blue if is printed') print(my_blue_string)
:inspect(table)
: inspect a table with table_inspect configuration defined at initiation the instance or default if not.local my_table = { str = 'string value', n = 1, bool = true, table = { nested_table = { my_nested_key = function() return 0 end } } } logger:inspect(my_table) -- inspect a table with yor table_inspect config defined or use default values. No plugin is applied.
Log:
Plugin
You can customize as an element is logged through to plugins. They are applied to logging methods and :print
function.
-- ... lualog instance defined function my_plugin_for_print_tables(element) if(type(element) == 'table') then -- if element is not a table, this plugin is ignored -- and pass to next plugin in queue because didn't return a not-nil value local result = '' for key, value in pairs(element) do result = result .. key .. ' = ' .. tostring(value) .. '\n' end return result -- return a not-nil value to print your element as you defined an this function/plugin end end logger:use(my_plugin_for_print_tables) logger:print({ key1 = 'value1', key2 = 'value2' }) -- Will print due to my_plugin_for_print_tables -- key1 = value1 -- key2 = value2 -- or define a plugin with an anonymous function logger:use(function(element) -- your plugin code end) -- :use(...) accept multiple plugins definitions too logger:use(my_plugin,other_plugin,...)
Log:
You can add so many plugins as you want. Last plugins added are checked first in the queue.
Note: you can use plugins to define how to print your custom objects what are instance of a custom class.
Order what your plugin is added is important. Last plugins added are checked first. If a plugin return a not-nil value, then that return value is logged. Of this way you can customize your logs.
Issues requiring the module
Be sure that module is accessible to path of LUA_PATH enviorement variable.
*Note: Your LUA_PATH should contain ./?.lua;./?/init.lua;
* if you place lualog folder in your project root folder.
Note: You can check your LUA_PATH adding to at beginning of your root script:
-- Print your your LUA_PATH that Lua uses to require modules. print(package.path)
You can extends your LUA_PATH at beginning to your file when you init it or add the path where lualog is to your LUA_PATH enviorement variable.


If you want to share your world (and corresponding challenges) with others, save it to a file and send it to<EMAIL_ADDRESS>Discussions, questions, comments about Reeborg take place here. Bug reports are welcome!
Basic commandsIn addition to understanding Javascript, Reeborg, and all the other robots, know the following instructions:
at_goal()
at_goal_orientation()
build_wall()
done()
front_is_clear()
has_token()
is_facing_north()
move()
put()
or put("object")
where object is one of "token"
,
"triangle"
, "square"
or "star"
right_is_clear()
repeat(f, n)
object_here()
take()
or take("object")
where object is one of "token"
,
"triangle"
, "square"
or "star"
token_here()
turn_left()
To create additional robots, one can use new UsedRobot()
In addition, the following commands are available and are not tied to any robot in particular.
inspect(Javascript object)
pause()
; can be called with an argument in milliseconds which indicates the
time after which it will automatically resume.sound(true/false)
: turns sound on or off. Off by default or if delay between actions is less than 250ms.think(number)
: sets the amount of time in milliseconds between each robot action.write(string)
: write a string in Reeborg's Diaryselect_world(string)
: selects a given world.side_view()
and top_view()
can be used to change the set of robot images
that are used.To find out more, follow the lessons.
Inspired by Guido van Robot, itself inspired by the original Karel the Robot created by Richard Pattis, Reeborg first appeared in RUR-PLE, a program I created to learn Python, picking up programming as a hobby.
Reeborg is there to guide you in learning computer programming in Javascript. Why Javascript? The main reason is because it is the native language for programming web browsers. Since Reeborg's program is written in Javascript, you will be able, after going through enough lessons, to change the way that Reeborg behaves, using the full power of Javascript and perhaps make Reeborg do things that I never thought could be possible.
I hope you enjoy learning computer programming with Reeborg.
Feel free to contact me at<EMAIL_ADDRESS>Reeborg is free and will remain free to use and to share under a Creative Commons License If you are using it to teach Javascript to students, you might want to make a copy of this site on a local server; contact me if you need help.
If you find this site so useful and you want to do something to thank me, you have two choices:
The choice is yours :-)
I am just a self-taught programmer, with no training in web design, graphics, etc. I would gladly welcome any suggestions or contributions to
Bug reports are welcome!
My medium-term plans include:
Longer term plans include: