1 BEFORE THE NATIONAL GREEN TRIBUNAL, NEW DELHI (PRINCIPAL BENCH) APPLICATION NO. 38/2011 IN THE MATTER OF 1. Rohit Choudhury P.O. Lokhujan, Village - Garmur Bokakhat - 785612, Dist.-Golaghat Assam .... APPELLANT Versus 1. Union of India Through the Secretary Ministry of Environment and Forests Paryavaran Bhawan, CGO Complex, Lodhi Road, New Delhi -110 003 2. State of Assam Through its Chief Secretary, Assam Sachivalaya Complex Dispur, Guwahati Assam - 781006 3. Department of Forest Government of Assam Through the Principal Chief Conservator of Forest (WL) Basistha, Guwahati Assam - 781029 2 4. Karbi Anglong Autonomous Council Through its Principal Secretary Shri Bhupendra Nath Sarmah District Karbi Anglong 5. M/s. Paramount Industries Sri Gopal Kumar Poddar Village-Suljuri, P.O. Bokakhat District Golaghat, Assam - 785612 6. M/s. B.L. Agarwalla Stone Crusher Unit Through its Representative Sri Suresh Kumar Agarwalla District Karbi Anglong Village-Suljuri, P.O. Bokakhat District Golaghat, Assam - 785612 7. M/s. Kaziranga Stone Product Through its Proprietor Sri Mahabit Prasad Agarwalla Village-Latabari, P.O. Bokakhat District Golaghat, Assam - 785612 8. M/s. Baruah Stone Crusher Through its proprietor Sri Ajit Jalan Village-Sapjuri, P.O. Bokakhat District Golaghat, Assam - 785612 9. M/s. Assam Stone Crusher Through its proprietor Sri Syam Sundar Nimodia Village-Suljuri, P.O. Bokakhat District Golaghat, Assam - 785612 10. M/s. Mayur Stone Crusher Through its proprietor Sri Binod Kumar More Village-Borbheta, P.O. Bokakhat District Golaghat, Assam - 785612 3 11. M/s. Maruti Stone Crusher Through its proprietor Sri Gaurav Poddar Village-Borbheta, P.O. Bokakhat Assam - 785612 12. M/s. H.P. Agarwalla Stone Crusher Through its proprietor Sri Hari Prasad Agrwalla Village-Borbheta, P.O. Bokakhat District Golaghat, Assam - 785612 13. M/s. Nimodia Stone Crusher Through its proprietor Sri Sandip Kumar Nimodia Village-Ahomgaon, Borbheta, P.O. Bokakhat District Golaghat, Assam - 785612 14. M/s. Balaji Blue Metal Industries Through its proprietor Sri Kailash Kumar Agarwalla Village-Balijan, P.O. Bokakhat District Golaghat, Assam - 785612 15. M/s. Borah Stone Crusher Through its Representative Sri Rajib Borah Village-Balijan, P.O. Bokakhat District Golaghat, Assam - 785612 16. M/s. Shyam Industrial & Commercial Enterprise (a partnership concern) No. 5, NH - 39, Rong Bong P.O. Kanaighat, District Golaghat, Assam - 785669 4 17. M/s. Tanay Tea (a partnership concern) 5, Rong Bong, via - Telgaram, P.O. Kanaighat, District Golaghat, Assam - 785669 18. M/s. Jallan Golaghat Tea Co. Pvt. Ltd. Represented by its representative Shri Vikas Jallan No. 5, NH - 39, Rong Bong P.O. Golaghat, District Golaghat, Assam .... RESPONDENTS 19. Numaligarh Refinery Local Area Development and Safety Forum H.O. - Numaligarh District Golaghat, Assam - 785669 .... INTERVENER Counsel for Appellant(s): Mr. Ritwick Dutta Counsel for Respondent(s) : Ms. Neelam Rathore for R - 1 Mr. Avijit Roy and Ms. Deepika Ghatowar for R - 2 & 3 Ms. Sumita Hazarika for R - 4 Mr. Ratan Kumar Singh and Mr. Sushil Kumar Kabra for R - 5 to R - 18 Mr. Gautam Dhamija for R - 19 5 JUDGMENT
PRESENT:
Justice A.S. Naidu (Acting Chairperson) Dr. G.K. Pandey (Expert Member) Dated 7th September, 2012 Hon'ble Supreme Court in the case of Indian Council for Enviro Legal Action Vs. Union of India and others [1993(3) SCALE 579] has observed - tolerating infringement of law is worse than not enacting law at all. The case in hand is a clear example of infringement of law to the optimum.
2. Every Indian is proud of "Kaziranga National Park," which is not only declared as a National Park, Tiger Reserve under the provisions of the Wildlife (Protection) Act, 1972, but also is declared as a World Heritage Site by United Nations Educational, Scientific and Cultural Organisation (UNESCO). 6
The Applicant is a resident of village Bokakhat, and is concerned about the ecology of the area and future of the Indian Rhino, Elephant and wide species of flora and fauna available in the Kaziranga National Park. He has approached this Tribunal invoking jurisdiction under Section 14(1) of the National Green Tribunal Act, 2010, inter-alia, praying for appropriate directions to the Authorities to safe guard Kaziranga and its ecology. According to the Applicant, unregulated quarrying and mining activities permitted in and around the area of "Kaziranga National Park", not only threatens the Eco-Sensitive Zone, but also the survival and existence of Rhinos, Elephants and other wildlife species. It is submitted that Kaziranga National Park harbours the largest population of the Indian One Horned Rhinoceros and that its survival is critically dependent on the protection of the boundaries of the Kaziranga National Park as well as the adjoining areas including the Karbi-Anglong hills, from pollution.
3. The Ministry of Environment and Forests (MoEF), it is alleged, showed an apathy to the irregularities, overt acts and 7 several omissions and commissions committed by the Authorities and acted as a mute spectator, to the rampant violation of the provisions of the Environment (Protection) Act, 1986 as well as Rules framed thereunder, in as much as the prohibition and restriction on the location of industries and carrying on processes and operations in different areas prescribed under the Environment (Protection) Rules, 1986 has been given a complete go by. The restrictions imposed under Rule-5 of the Environment (Protection) Rules, 1986 is also followed more on its breach than its compliance.
4. Drawing attention of this Tribunal to the Notification dated 5th July, 1996 issued by the MoEF, it is submitted that the latter on being satisfied that anthropogenic activities cause air, water and land pollution thereby endangering forest, genepool reserves, vegetation and living creatures and that those activities should not be carried out at close proximity so that our natural resources can be protected, and on being further satisfied that Kaziranga National Park is the home of three-fourth of the total population of the Rhino and contains 8 largest single concentration of endangered species and wild animals like swamp-deer, wild buffalo, elephants, tigers and Gangetic Dolphins, it is the only park of its kind with a viable low land grass land-ecosystem in South Asia, in exercise of the powers conferred by sub-section(1) and clause(v) of sub- section (2) of Section 3 of the Environment (Protection) Act, 1986 read with clause (d) of sub-rule (3) and sub-rule (4) of rule 5 of the Environment (Protection) Rules, 1986, notified that on and from the date of publication of the Notification the expansion of industrial area, township, infrastructural facilities and such other activities which would lead to pollution and congestion shall not be allowed within "No Development Zone" which was specified in the Appendix to the said Notification, except with the prior approval of the Central Government.
The Appendix to the Notification is produced herein below for better appreciation:
APPENDIX "No Development Zone"
The coordinates of the "No Development Zone" around Numaligarh refinery site are as follows: 9
Sl. Longitude Latitude No. 1. 930-32'-49" 260-40'-30" 2. 930-33'-15" 260-41'-45" 3. 930-36'-45" 260-37'-30" 4. 930-40'-30" 260-40'-45" 5. 930-47'-30" 260-43'-40" 6. 930-47'-10" 260-26'-08" 7. 930-58'-30" 260-34'-20"
5. The grievance of the Applicant before this Tribunal is that, in flagrant violation to the aforesaid notification, mushrooming of stone quarries were installed indiscriminately within the "No Development Zone" (NDZ) thereby causing immense adverse impact on the environment, wildlife and ecology. Unfortunately, no action was taken by the Authorities to stop illegal installation of quarries and crushing units, in spite of the fact that the Applicant had submitted several objections / representations and approached the State as well as Central Authorities with a prayer to take action to stop infringement and violation of law. The Applicant also sought information from the Authorities under the Right to Information Act (RTI) and came to know from the replies submitted by the MoEF, vide letter dated 21st July, 2011, that there are no 10 records regarding granting of permission to any of the stone crusher unit near the Kaziranga National Park.
6. Relying upon the GPS Mapping and Google Earth Software, the Applicant brought to the notice of this Tribunal that at least seven (7) stone crushing units are situated within 10 km radius of the Kaziranga National Park and are within the NDZ notified by the 1996 Notification. The Google Earth Map further revealed that many other stone crusher units were also functioning within the NDZ. The applicant, it is submitted having no other way out, had to approach the portals of this Tribunal with a prayer to direct the MoEF to take immediate measures to identify the stone crusher units and other processes, operating in the NDZ and pass necessary direction to stop operation or to vacate and further direct the defaulting units to restore the environment that has been damaged due to their overt and illegal act, to its original position.
7. After receiving notice from this Tribunal, a reply has been filed on behalf of MoEF (R-1) admitting the fact that in the year 1996 a Notification was issued declaring NDZ in and 11 around Numaligarh refinery site which includes the area of Kaziranga National Park. It is, further, averred that in consonance with the direction issued by this Tribunal by order dated 19th April, 2012, the MoEF got conducted an inspection of the site through responsible officers. The officers visited the spot and had submitted a report with a map describing the total area of NDZ and the number of industrial units functioning in the said zone or on its vicinity. The positions of the industrial units were demarcated on the map which was annexed to the reply. After receipt of the report, it is averred, that the Central Pollution Control Board (CPCB), Zonal Office Shillong, the Regional Office (MoEF) Shillong, and the Pollution Control Board, Assam, were informed to strictly implement NDZ. In paragraph 5 of the reply, the MoEF relying upon the report disclosed that total number of 64 (sixty four) units are located in the area of NDZ, the break-up of which is as under:
Stone crushers - 26 (twenty six), Brick kilns - 14 (fourteen), Tea Estates - 12 (twelve), 12 Miscellaneous units - 12 (twelve).
The MoEF further took the plea that as the area covered under the NDZ within its given co-ordinates is more than 600 sq. km. and the CPCB officials could not visit/cover the entire area and assess the field situation due to heavy monsoon and prayed for some more time to submit the correct position.
8. On behalf of the State of Assam (R-2), a reply has been filed taking a bald stand that neither any stone crusher unit nor stone quarry is operating in the NDZ, except in Karbi-Anglong district. According to the State, Karbi-Anglong Autonomous Council Authority is an independent Authority who is competent to place the factual facts with regard to existence of industries within their area.
9. However, in paragraph 4 of the reply, it is admitted that 12 (twelve) number of stone crusher units which were in operation till 31st December, 2011 are situated within 10 km from the boundary of Kaziranga National Park, and that the order with regard to suspension of permission of those stone 13 crusher units is sub-judiced before the Hon'ble Guwahati High Court. The Government of Assam, further averred that it is fully conscious of the importance of rich-biodiversity of Assam and its status as a National Park, Tiger Reserve, Elephant Reserve and World Heritage Site of UNESCO and has constituted the Kaziranga Biodiversity Conservation and Development Committee to find out the ways and means for protecting the population of Rhino, Elephant, Tiger, Buffalo and many other important species in Kaziranga.
10. In their reply, though, the State of Assam took the stand that certain writ petitions were pending before the Hon'ble Guwahati High Court and as such they were not able to take action against the crusher units and stone crushers situated within 10 km of NDZ, in the additional affidavit it is admitted that the said statement was based on lack of communication, and is a mistake of fact, in as much as all the writ petitions have been disposed of in the meanwhile. 14
11. A reply has been filed on behalf of Karbi-Anglong Autonomous Council (R-4) taking the stand that the said district is situated far away from the Kaziranga National Park and as such the Applicant should have no grievance against existence of any industry in the said district. In paragraph 8 of the reply, relying upon the report submitted by the National Tiger Conservation Authority, it is reiterated that there are several stone crusher units next to the forest area and inside the reserved forest.
12. Respondent Nos. 5 to 15 are the owners of the existing units which are operating in or around NDZ. In their reply the said Respondents took a positive stand that the units belonging to the said Respondents are located outside the NDZ as defined in Notification dated 5th July, 1996. According to the said respondents, the stone crusher units are existing since the year 1984/1993/1994 on the basis of valid permissions issued by the Director, Kaziranga National Park / Director/Divisional Forest Officer, Eastern Assam Wildlife Division, Bokakhat and / or agreement executed by Divisional 15 Forest Officer, Eastern Assam Wildlife Division, Bokakhat and that they are running stone crusher units on the basis of consent issued by the Pollution Control Board Guwahati, Assam. The units being their bread and butter they should be permitted to operate the same.
13. In course of hearing, a petition was filed by M/s. Numaligarh Refinery Local Area Development and Safety Forum, to implead it as an intervener. It claims to be a public forum, formed with the objective to protect and safe guard intents and rights of small industrial units and workers engaged in the said units. According to the intervener, right to life, includes livelihood and the industrial units are the livelihood of its members. Relying upon the ratio of the decision in the case of "Olga Tellis & Ors. Vs. Bombay Municipal Corporation, (1985)3 SCC 545" intervener prayed to quash the Notification dated 5th July, 1996 issued by the MoEF with respect to the 15 km radius of the Numaligarh Refinery Area as the same is contrary to the settled principles of law enumerated under Article 21 of the Constitution of India. 16
14. In course of hearing Mr. Ratan Kumar Singh, Learned Counsel for Respondent Nos. 5 to 15 took pain to convince us that the tea industries being eco-friendly and as some of the industries are existing much prior to issuance of notifications in the year 1999, their existence should not be disturbed.
According to Mr. Ratan Kumar Singh, doctrine of promissory estoppel squarely applies to the case in hand as has been held in the case of PepsiCo India Holdings Pvt. Ltd. Vs. State of Kerala and Ors. 2009 (13) SCC 55. Mr. Singh also submits that the doctrine of legitimate expectation also applicable which is in favour of Tea Processing units set up by the respondents within NDZ prior to 1996. Mr. Singh also relied upon the following decisions in support of his submissions:
(i) State of Mizoram Vs. Ramengmawia 2006(2) ALT (Cri) 3.17
(ii) Municipal Corporation for City of Pune and Anr. Vs. Bharat Forge Ltd. and Ors (1995) 3 SCC 434.
(iii) PepsiCo India Holdings Pvt. Ltd. Vs. State of Kerala and Ors. 2009 (13) SCC 55.
(iv) Casper W. Weinberger Vs. Carlos Romero-Barcelo.
15. We have gone through the decisions cited by Mr. Singh. The facts of the cases cited are quite different from the facts of this case. However, we are conscious that some of the tea industries are existing within NDZ prior to 1996. Be that as it may, by afflux of time, science and technology has advanced to such a stage where the level of pollution can be reduced considerably. This Tribunal is required to decide the controversies applying Section 20 of the National Green Tribunal Act, 2010 which casts onerous duty upon this Tribunal to consider, if any, precautionary measures can be adopted for eradication of pollution applying the principle of sustainable development. We will consider the submissions 18 made by Mr. Singh while dealing with imposition of directions, at a latter part of this judgement.
16. A petition has been filed by M/s. Numaligarh Refinery Local Area Development and Safety Forum to permit them to be impleaded as party. The said forum was granted opportunity of hearing. The main grievance of the forum is with regard to issuance of the Gazette Notification dated 5th July, 1996 by the MoEF declaring 15 km radius of the Numaligarh Refinery Area as NDZ. A prayer is made to quash the said Notification of 1996. Law is well settled that an intervener cannot make a third case or traverse beyond the pleadings of the parties. Even otherwise, no relief can be granted to an intervener. This being the settled position of law, it is open to the intervener to pursue its grievance in accordance with law, if the same is available to it.
17. On the basis of the pleadings and arguments only three issues arise for our consideration.
19
(i) Whether the Kaziranga National Park and / or its vicinity has been declared as No Development Zone in consonance with Rule-5 of the Environment (Protection) Rules, 1986?
(ii) Whether industries and other processing units which would lead to pollution and congestion thereby affecting ecology are existing in the NDZ?
(iii) What steps should be taken to eradicate the hazards created by expansion of industrial areas and / or installation of industrial units in the NDZ?
18. So far as issue no. 1 (one) is concerned, there is no dispute that the Ministry of Environment & Forests (MoEF) by Gazette Notification dated 5th July, 1996 has declared an area of 15 km around the Numaligarh Refinery, adjoining the Kaziranga National Park, more specifically described in the Index appended to the Notification as a NO DEVELOPMENT ZONE. As per the said Notification the Central Government has specifically directed that on and from the date of publication of the said notification, the extension of the 20 industrial area, township, infrastructural facilities and such other activities which could lead to pollution and congestion shall not be allowed within the prohibited zone, except with prior approval of the Central Government. A copy of the Notification dated 5th July, 1996 was forwarded to the Chairman, Assam Pollution Control Board (APCB) on 6th December, 1996. We fail to understand as to why there was a delay of 5 months in forwarding the Notification, which itself reveals lack of seriousness of the Central Government.
19. In course of hearing, it was brought to our notice that even before issuance of Notification dated 5th July, 1996, the Government of Assam had issued a Notification on 19th January, 1996 specifying No Development Zone in and around Kaziranga National Park. In spite of issuance of such notifications, the Central Government and the State Government, maintained stony silence with regard to the implementation of the notifications. Consequently, number of stone crusher units, brick kilns and other polluting units were illegally set-up in close proximity of Kaziranga National Park 21 as well as within the No Development Zone. Non- implementation of the notifications both by the Central Government as well as State Government of Assam speaks volumes with regard to their callousness and apathy in protection of ecology of Kaziranga National Park which resulted in causing pollution thereby damaging the environment as well as ecology and eco-sensitive zone.
20. In their reply, the MoEF has clearly admitted that approximately 64 (sixty four) units are functioning in the NDZ. The said units consist of stone crushers, brick kilns, tea estate and other miscellaneous units.
The reply given by the Central Pollution Control Board, an autonomous regulatory body of MoEF by letter dated 29th April, 2011, reveals that neither permission was accorded nor clearance was granted to set-up any of stone crusher units nor there was renewal of license of any stone crusher units existing within the NDZ around Kaziranga National Park. However, they clarify that stone crusher units may not require environment clearance under the 22 Environment (Protection) Act, 1986. By letter dated 31st March, 2011, the Wildlife Division of the Ministry clearly admits that they have no information regarding existence of any stone crusher units in the vicinity of Kaziranga National Park. The said statement appears to be incorrect in view of the reply filed by the MoEF before this Tribunal
21. It is well settled that pollution is a civil wrong. By its very nature, it is a Tort committed against the community as a whole. A person, therefore, who is guilty of causing pollution has to pay damages for restoration of environment and ecology. See M.C. Mehta Vs. Kamalnath 1997(1)SCC 388.
22. After hearing Learned Counsel for the parties and perusing the records, this Tribunal finds materials to reveal that 10 (ten) stone crusher units have been set-up in the NDZ after issuance of Notification in 1996.
The Applicant, however, alleges that there are 27 (twenty seven) stone crusher units functioning within a 23 distance of 500 m of the NDZ. However, CPCB report has mentioned clearly 11 (eleven) stone crushers are located within NDZ. 23 (twenty three) stone crushers are located within 500 km of outer periphery of NDZ.
The Tribunal also finds materials to reveal that 34 (thirty four) Brick Kilns are operating within the NDZ and the same were set up after 1996. The report submitted by CPCB fortified the said fact. In fact, all the Brick Kilns are situated within the NDZ, except 1 (one) which was set up before 1996.
23. It, further, appears that in the year 1999 Government of Assam notified the "Bokakhat Mini Industrial Estate" (MIE) comprising of an area of 10 hectare for locating saw mills within the NDZ. Surprisingly, it appears, permissions were granted for setting up stone crushers, steel fabrication units, hotels / guest houses within the MIE. To the report submitted by the CPCB before this Tribunal, a list of units operating in the Bokakhat MIE is annexed. It is apparent that both the Forest Department and 24 the SPCB have granted NOC / licenses for setting up of the units after 1996 within NDZ, in flagrant violations to the restrictions imposed by MoEF in the Notification as well as Rule-5 of the Environment (Protection) Rules, 1986.
There are also number of wood based units functioning in the NDZ.
24. Apart from all these, it appears, after 1996 number of Tea Factories have been established within NDZ. The CPCB admits existence of the said units and has furnished details of tea factories out of which 3 (three) were set up after 1996. However, the report is silent with regard to the date of establishment of other 12 (twelve) Tea Factories and it appears due to climatic conditions and paucity of time, the area where the said factories are situated could not be visited by the CPCB officers.
25. The adverse impact on the ecology and the environment by the units situated within the NDZ can be classified as follow :
25
i. The Brick Kilns, are most polluting industries. None of the Brick Kilns have stack emission monitoring provisions. They also normally do not have fixed chimneys.
The emission from the Brick Kilns would cause hazards and adverse impacts on the environment, biodiversity and flora and fauna.
ii. The stone crushing units are major source of air pollution. They cause immense damage to the ecology and environment.
iii. In the Tea gardens, toxic pesticides are used which may pollute surface and ground waters.
iv. The Tea Factories use coal normally in their boilers. The sulphur content of such coal is 26 very high and the air pollution therefrom could pose a great threat to environment.
v. Majority of the Tea factories, it appears, have not installed acoustic enclosure in their generators in violation of the environmental norms.
vi. The effluents of the tea factories, it appears are directly released through surface drains without any treatment.
Of course, these are only few examples and in fact, existence of the industrial units in the NDZ amounts to causing atrocity to the environment, ecology and to the nature.
26. The scenario of events discussed above reveal that after issuing the Notification way back in the year 1996, no follow up action was taken either by the MoEF or by the Government of Assam. The stipulations and embargoes created in the notification appear to have been ignored and grossly violated with impunity. The MoEF, after issuance of 27 the notifications, was required to prepare the road map with regard to implementation of the prohibitions specified in the notification, but that was not done. It remained satisfied after issuing the notification and even did not communicate the same for about five months. The State of Assam admittedly has received a copy of the notification, may be after 5 months. It had also issued a notification of its own specifying the NDZ in Kaziranga. Unfortunately, the State Government also failed to enforce the prohibitions imposed by the notification. No effective steps appeared to have been taken in consonance with Rule-5 of the Environment (Protection) Rules, 1986, consequently there was mushroom growth of industrial units within or in the vicinity of NDZ.
27. Facts, in the case in hand, make it clear that the Notification declaring NDZ within the radius of 15 km around the Numaligarh Refinery so as to protect Kaziranga National Park was issued in the year 1996. The said Notification was issued in exercise of the powers conferred under Section 5 of the Environment (Protection) Rules, 1986, and is still in vogue 28 and is not only binding but also enforceable. Issue no. 1 (one) accordingly stands answered.
28. Continuous infringement of law and tolerance of violations of law, for the reasons good, bad or indifferent, not only renders legal provisions nugatory but also such tolerance by the Enforcement Authorities encourages lawlessness which cannot be tolerated by any civilised society.
29. In the case of Indian Council for Enviro Legal Action Vs. Union of India and others (supra) the Hob'ble Supreme Court has observed that "A law is usually enacted because the legislature feels that it is necessary. It is with a view to protect and preserve the environment and save it for the future generations and to ensure good quality of life that the Parliament enacted the Anti-Pollution Laws, namely the Water Act, Air Act and the Environment (Protection) Act, 1986. These Acts and Rules framed and Notification issued thereunder contain provisions which prohibit and / or regulate certain activities with a view to protect and preserve the 29 environment. When a law is enacted containing some provisions which prohibits certain types of activities, then, it is of utmost importance that such legal provisions are effectively enforced. If a law is enacted but is not being voluntarily obeyed, then, it has to be enforced. Otherwise, infringement of law, which is actively or passively condoned for personal gain, will be encouraged which will in turn lead to a lawless society. Violation of anti-pollution laws not only adversely affect the existing quality of life but the non-enforcement of the legal provisions often result in ecological imbalance and degradation of environment, the adverse effect of which will have to be borne by the future generations."
30. In the case of M.C. Mehta Vs. Union of India (2006) 3 SCC 399 the Hon'ble Supreme Court observed as follows :
"This Court has a Constitutional duty to protect the fundamental rights of Indian citizens. What happens when violators and / or abettors of the violations are those, who have been entrusted by law with a duty to 30 protect these rights? The task becomes difficult and also requires urgent intervention by court so that the rule of law is preserved and people may not lose faith in it finding violations at the hands of supposed implementers. The problem is not of the absence of law, but of its implementation."
31. In the case of T.N. Godavarman Thirumulpad Vs. Union of India 2012 (3) SCC 277, the Hon'ble Supreme Court held :
"Environmental justice could be achieved only if we drift away from the principle of anthropocentric to eco-centric. Many of our principles like sustainable development, polluter-pays principle, inter- generational equity have their roots in anthropocentric principles. Anthropocentrism is always human interest focused and non-human has only instrumental value to humans. In other words, humans take precedence and human responsibilities to nonhuman based benefits to humans. Eco-centrism is nature centred 31 where humans are part of nature and non-human has intrinsic value. In other words, human interest do not take automatic precedence and humans have obligations to non-humans independently of human interest. Eco-centrism is therefore life-centred, nature-centred where nature include both human and non-humans."
32. After meticulous perusal of documents filed and the submissions made by Learned Counsel for parties, there is no hesitation in our mind to come to a conclusion that number of industrial units, some of which are hazardous and creating pollution, are existing in or about "No Development Zone". Protection of environment, ecology, biodiversity and adverse impacts on flora and fauna vis-a-vis conservation of forest and other natural resources including enforcement of legal rights relating to environment, being the paramount objective of the National Green Tribunal, to maintain healthy environment and eradicate the pollution, and to protect ecology in Kaziranga National Park and in its vicinity, which is highly eco-sensitive. 32
We feel certain directions are necessary to be issued for protection and preservation of environment.
33. Therefore, we direct the Authorities to take following actions :
(a). The 11 (eleven) stone crushers which according to the CPCB report, are located within the NDZ are non-functional at present. Since, those 11(eleven) stone crushers have been established / allowed to be established within NDZ in contravention of the 1996 Notification, the State Government is directed to take immediate steps to remove all those illegal stone crushers except 1 (one) M/s Assam Stone Crusher from the NDZ area forthwith.
It appears M/s. Assam Stone Crusher was installed before 1996 i.e. prior to the notification. But then, operation of the said 33 stone crusher unit would cause significant air pollution apart from noise pollution, and would lead to adverse impact on the eco- system. The State of Assam is, therefore, directed to take steps to relocate the said unit outside the NDZ. In other words, the said unit should not be allowed to operate in its present location with immediate effect.
(b). The Government shall take appropriate steps not to allow operation of the 23 (twenty three) stone crusher units existing in the vicinity of NDZ (outside the NDZ) till necessary pollution control equipments and other measures are installed to eradicate the pollution, to the satisfaction of Assam Pollution Control Board and Central Pollution Control Board.
(c) According to the CPCB report 34 (thirty four) Brick Kilns are operating within NDZ 34 out of which only 1 (one) unit was set up before 1996. Brick Kilns being the main pollution causing units are hazardous to environment. The said 33 (thirty three) Brick Kilns should be closed down immediately.
So far as 1 (one) Brick Kiln which was established before 1996, is concerned steps should be taken to either relocate it outside the demarcated zone or steps should also be taken to insist stricter air pollution control devices. The unit should be inspected by the SPCB, Assam regularly and CPCB occasionally so as to ensure that the pollution level of the unit is within control. No extension shall be granted to the said unit after expiry of its lease or permission at its present location.
35
(d). The CPCB report further reveals that 11 (eleven) miscellaneous industries are existing within NDZ. Out of them 4 (four) are fuel dispensing stations (petrol pumps), 1 (one) is a saw mill, 1 (one) oil tanker making unit (steel fabrication), 1(one) is a restaurant (under construction), 1(one) concrete making unit, 2 (two) mustered oil mills and 1(one) flour mill.
Out of the aforesaid 11 (eleven) industries, except 4 (four) petrol pumps and the restaurant all other units generate lots of pollution, therefore, they should not be allowed to operate in their present locations and action should be taken to shift them immediately out of NDZ.
(e). The CPCB report further reveals that there are 25 (twenty five) Tea Factories out of which 22 (twenty two) are located within the 36 NDZ and 3 (three) are within 500 m of outer periphery of NDZ. It appears the CPCB could visit only 13 (thirteen) Tea Leaf Processing Factories, due to flood, situation in Assam. The report reveals that only 1(one) unit has made arrangements to treat its effluent. The rest 22 (twenty two) tea processing units located within NDZ have installed boilers for which, coal, oil, wood is the main feed stock. They have also not installed any pollution control devices. The SPCB and other Authorities are directed to ensure that no tea processing units having boiler using fossil fuel operates within the NDZ and take immediate steps to stop their operation.
The 3 (three) tea leaf processing units located within 500 m of the outer periphery of NDZ should be allowed to operate only if necessary pollution control measures as may be stipulated by SPCB, Assam are adhered to by those units. 37
Further, all the tea processing units must provide acoustical enclosures in their electrical generators for providing alternative electricity.
These are only some remedial measures, it is open to MoEF, CPCB and SPCB to adopt any other appropriate measure and take any other steps permissible under law to remove all the industrial units from NDZ and prescribe stringent standards to eradicate pollution so far as industrial units situated outside NDZ but in its close proximity, say within 500 meters.
34. The MoEF and the State Government are directed to prepare a Comprehensive Action Plan and Monitoring Mechanism for implementation of the conditions stipulated in the 1996 Notification specifying "No Development Zone" and for inspection, verification and monitoring of the prohibitions imposed in the notification referred to above, as well as the provisions of Rule-5 of the Environment (Protection) Act, 1986.
38
35. After giving the matter a conscious thought and after taking into account all the factors, we are of the opinion that MoEF and the State Government of Assam have totally failed in their duties with respect to implementation of the provisions of the 1996 Notification and due to the callous and indifferent attitude exhibited by the Authorities, number of polluting industries / units were established in and around the No Development Zone of Kaziranga thereby posing immense threat to the biodiversity, eco-sensitive zone, ecology as well as environment. We are, further, satisfied that this is a clear case of infringement of law. We, therefore, have no hesitation to direct the MoEF and the Government of Assam to deposit Rs. 1,00,000/- (Rupees one lakh only) each, with the Director, Kaziranga National Park for conservation and restoration of flora and fauna as well as biodiversity, eco-sensitive zone, ecology and environment of the vicinity of Kaziranga National Park in general and within the No Development Zone in particular. The said amount shall be utilised exclusively by the Director, Kaziranga National Park for conservation, protection 39 and restoration as well as for afforestation of suitable trees of the local species in and around the No Development Zone.
36. Before parting, we feel it necessary to express our appreciation to Shri Ritwick Dutta, Learned Counsel for the Applicant for the endeavourance made and pain taken by him to place different records and datas before this Tribunal to substantiate rampant violation of the Environment (Protection) Rules, 1986 at Kaziranga National Park as well as inside the No Development Zone. We also appreciate the fair submissions made by Ms. Neelam Rathore, Learned Counsel appearing for MoEF, who has ably assisted us by filing replies enclosing the report of CPCB which gave an impression with regard to the gravity of the threat being posed to the environment, ecology, eco-sensitive zone, biodiversity due to establishment of number of industrial units causing pollution.
37. A copy of this judgement be communicated to the Ministry of Environment and Forests, Central Pollution Control Board (CPCB), State Government of Assam as well as Assam 40 Pollution Control Board (APCB) for due compliance of the directions issued in the preceding paragraphs, within two months from the date of communication of this judgement.
With the aforesaid observations/direction, the Application is allowed. Parties to bear their own cost.
Dr. G.K. Pandey Justice A.S. Naidu Expert Member Acting Chairperson


public class Player.Inventory
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
static int |
ARMOR |
static int |
BOOTS |
static int |
GARMENT |
static int |
HELM |
static int |
INVENTORY |
static int |
LEFT_HAND |
static int |
NECKLACE |
static int |
RIGHT_HAND |
static int |
RING |
static int |
TALISMAN |
| Constructor and Description |
|---|
Player.Inventory() |
| Modifier and Type | Method and Description |
|---|---|
boolean |
addItem(ItemInstance item)
Add an item to the Players inventory and update the client through
an ItemInformation Packet
|
boolean |
contains(ItemInstance item) |
boolean |
equip(int slot,
ItemInstance.EquipmentInstance equipment)
Equip an item.
|
ItemInstance.EquipmentInstance[] |
getEquipments() |
ItemInstance[] |
getItems() |
boolean |
isEmpty() |
boolean |
isFull() |
boolean |
removeItem(ItemInstance item)
Remove an item from the Players inventory and update the client through
an ItemUsage packet
|
void |
send()
Send the equipments and inventory contents to the client
|
boolean |
unequip(int slot)
Unequip an item, and transfer the item to the inventory.
|
public static final int INVENTORY
public static final int HELM
public static final int NECKLACE
public static final int ARMOR
public static final int RIGHT_HAND
public static final int LEFT_HAND
public static final int RING
public static final int TALISMAN
public static final int BOOTS
public static final int GARMENT
public boolean addItem(ItemInstance item)
item
- to be added to the inventorypublic boolean removeItem(ItemInstance item)
item
- to be removed from the inventorypublic boolean equip(int slot, ItemInstance.EquipmentInstance equipment)
slot
- equipment
- public boolean unequip(int slot)
slot
- public boolean contains(ItemInstance item)
item
- public boolean isEmpty()
public boolean isFull()
public ItemInstance[] getItems()
public ItemInstance.EquipmentInstance[] getEquipments()
public void send()


Eachinevr006
This project offers 3D printing files and instructions to re-house the screen and electrical components extracted from a cheap FPV headset Eachine VR006 to use as a stand-alone spectator screen for Drone Racing and other RF hobby applications.
A video version of this guide is available on youtube. 3D CAD models licensed under CC BY-NC-SA 4.0
Guide
Step 1
Remove the SMA cover and the retaining brass nut.
Step 2
Underneath, unscrew 4 phillips screws and lift the top half of the plastic body.
Step 3
The battery is held in place with a piece of foam and double sticky tape. Remove the foam and carefully cut along the tape with a craft knife to avoid prying the lipo battery. Remove the control board and the fresnel lens. The screen assembly should freely slide out of the housing.
Step 4
Be careful removing the screen, as it's not attached to the circuit board. Pull them gently together to avoid damaging the ribbon cable.
There are two variants of this board - the "diversity" version with two antennas (not real RX diversity) and the single antenna version I have here, my case design is for this version.
Step 5
Next, you'll tape up the exposed breakout pins to avoid short circuiting them when you secure the screen to the surface (the back of the LCD is metal).
Cut some pieces of electrical tape to cover the breakout pins and gently press the screen onto the board to secure it with double sticky tape. Use double sided tape, foam tape will make the assembly too thick.
Step 6
Navigate to /STL/, download and 3D print the housing.
I created this to fit on a 10x10 printing platform, which is common among lowest-end printers. Due to this, the USB charging port sticks out a bit. If you want to make it flush with the side of the case, simply extrude the right wall by 3mm to the left.
Step 7
Remove the metal frame from the LCD panel. It will only get caught in the ridges of the 3D print and may actually damage your screen.
Step 8
Slot the assembly into the body of the case, ribbon cable side first, carefully allowing the case to bend it over the edge.
Step 9
De-solder the connector from the control board and re-attach the cables in order for the buttons to fit into the rear panel holes. Make sure to note which cable goes where, they're both black.
Step 10
Add some foam padding to the motherboard to sit against the control board to prevent it from sinking into the case when pressing the buttons.
Step 11
Slot the rear cover into the bottom rail, aligning the top rail gaps then push it in to mesh both rails and slide the cover on.
Done!
Your screen assembly is now complete! Happy flying!


{% extends "layout.html" %} {% import "bootstrap/wtf.html" as wtf %} {% block content %}
Not registered? Click here to register.
Forgot Password? Click here to reset it.


Sorry, bandwidth and/or connection limit reached on archive downloads. You'll need to try again in a minute. If you'd upgrade to a paid account (for a measly $9.95 for the year), you wouldn't have to wait!


{% extends "base.html" %} {% block title %}
Medieval catalogues > SECULAR INSTITUTIONS: Hospitals, Towns, and the Professions > London, hospital of St Mary Elsing > Inventory of books, 7 October 1448
{% endif %}56 identified entries found.
All data was derived from the List of Identifications by Professor Richard Sharpe.
{% if not printing %}
A key to codes used in the List is available (opens in new tab).{% endif %}


A phone with an open payment channel may get lost or destroyed at any moment. Once that happens there are two tasks to accomplish:
Lightning Wallet does take those measures: once a new payment channel is created it’s static parameters are automatically encrypted and sent to Olympus server. This operation is only carried out once while no personally identifying information is transferred.
Thanks to this after Bitcoin balance is restored on a new phone you can just issue a lost channel funds recovery request:
App Menu → Wallet settings → Recover channel funds
…and wait for a few seconds before remaining balance from a lost payment channel is refunded to your Bitcoin wallet. Please note that following conditions have to be met for this to work:


Speech Recognition Speech SDK not found (microsoft.cognitiveservices.speech.sdk.bundle.js missing).
Microsoft Cognitive Services Speech SDK JavaScript Quickstart
Subscription
:
Region
Start recognition
Results


Toggle navigation
Examination System Of CSE
Select Designation
Faculty
Student
Sign in
Welcome to the Examination System of CSE Department
Assam University, Silchar
Sign Up
Select Designation
Faculty
Student
Select Semester
1st Sem
2nd Sem
3rd Sem
4th Sem
5th Sem
6th Sem
7th Sem
8th Sem
Sign Up


<datalist>
This example uses the official compatibility fallback, which is
the inclusion of a select
element between the
datalist
and it's option
elements.
Please note that a datalist
element is quite stupid: it does
no filtering, nor any autocompletions: it limits itself to display the list
of options, allowing the user to select an entry. But if options are
changed the list will dynamically change, allowing to build
autocompleters right on top.


The Golden Age
Home
About
Activities
Contact
Sign Up
Full name
Gender(M/F)
Name Of Ward
Permanent Address
Email
Contact no.
Submit


Great
Please enter a valid first name
Please enter a valid last name
Please enter a valid address
Please enter a valid order id
Please select the country
Please enter a state
Please enter a city
Please enter a valid zip code
Please enter the amount
Please choose a currency


SNAP CHALLENGE: MySQL Quiz
- CHAR only stores strings that are the same size as the size parameter of CHAR(x), while VARCHAR can store any string as long as it is ≤ the size parameter.
- 255
- 1970-01-01 00:00:00 UTC
- 1,523,434,980 seconds as of 8:24AM
- ≈1.118 x 106


| 1 | /** | |
| 2 | * Copyright 2010 Mozilla Foundation | |
| 3 | * | |
| 4 | * Licensed to the Apache Software Foundation (ASF) under one | |
| 5 | * or more contributor license agreements. See the NOTICE file | |
| 6 | * distributed with this work for additional information | |
| 7 | * regarding copyright ownership. The ASF licenses this file | |
| 8 | * to you under the Apache License, Version 2.0 (the | |
| 9 | * "License"); you may not use this file except in compliance | |
| 10 | * with the License. You may obtain a copy of the License at | |
| 11 | * | |
| 12 | * http://www.apache.org/licenses/LICENSE-2.0 | |
| 13 | * | |
| 14 | * Unless required by applicable law or agreed to in writing, software | |
| 15 | * distributed under the License is distributed on an "AS IS" BASIS, | |
| 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| 17 | * See the License for the specific language governing permissions and | |
| 18 | * limitations under the License. | |
| 19 | */ | |
| 20 | package com.mozilla.pig.eval.json; | |
| 21 | ||
| 22 | import java.io.EOFException; | |
| 23 | import java.io.IOException; | |
| 24 | import java.util.HashMap; | |
| 25 | import java.util.List; | |
| 26 | import java.util.Map; | |
| 27 | ||
| 28 | import org.apache.pig.EvalFunc; | |
| 29 | import org.apache.pig.data.BagFactory; | |
| 30 | import org.apache.pig.data.DataBag; | |
| 31 | import org.apache.pig.data.Tuple; | |
| 32 | import org.apache.pig.data.TupleFactory; | |
| 33 | ||
| 34 | import com.fasterxml.jackson.core.JsonParseException; | |
| 35 | import com.fasterxml.jackson.core.type.TypeReference; | |
| 36 | import com.fasterxml.jackson.databind.JsonMappingException; | |
| 37 | import com.fasterxml.jackson.databind.ObjectMapper; | |
| 38 | ||
| 39 | public class JsonMap extends EvalFunc<Map<String, Object>> { | |
| 40 | ||
| 41 | public static enum ERRORS { | |
| 42 | JSONParseError, JSONMappingError, EOFError, GenericError | |
| 43 | }; | |
| 44 | ||
| 45 | private static final BagFactory bagFactory = BagFactory.getInstance(); | |
| 46 | protected static final TupleFactory tupleFactory = TupleFactory.getInstance(); | |
| 47 | protected final ObjectMapper jsonMapper = new ObjectMapper(); | |
| 48 | ||
| 49 | /** | |
| 50 | * Converts List objects to DataBag to keep Pig happy | |
| 51 | * | |
| 52 | * @param l | |
| 53 | * @return | |
| 54 | */ | |
| 55 | @SuppressWarnings("unchecked") | |
| 56 | private DataBag convertListToBag(List<Object> l) { | |
| 57 | DataBag dbag = bagFactory.newDefaultBag(); | |
| 58 | Tuple t = tupleFactory.newTuple(); | |
| 59 | for (Object o : l) { | |
| 60 |
2
1. convertListToBag : negated conditional → KILLED 2. convertListToBag : ROR: changed equals zero comparison to less than operator → KILLED |
if (o instanceof List) { |
| 61 |
1
1. convertListToBag : removed call to org/apache/pig/data/DataBag::addAll → NO_COVERAGE |
dbag.addAll(convertListToBag((List<Object>) o)); |
| 62 | } else { | |
| 63 |
1
1. convertListToBag : removed call to org/apache/pig/data/Tuple::append → SURVIVED |
t.append(o); |
| 64 | } | |
| 65 | } | |
| 66 | ||
| 67 |
3
1. convertListToBag : changed conditional boundary → SURVIVED 2. convertListToBag : negated conditional → SURVIVED 3. convertListToBag : ROR: changed greater than zero comparison to not equals operator → SURVIVED |
if (t.size() > 0) { |
| 68 |
1
1. convertListToBag : removed call to org/apache/pig/data/DataBag::add → SURVIVED |
dbag.add(t); |
| 69 | } | |
| 70 | ||
| 71 |
1
1. convertListToBag : mutated return of Object value for com/mozilla/pig/eval/json/JsonMap::convertListToBag to ( if (x != null) null else throw new RuntimeException ) → SURVIVED |
return dbag; |
| 72 | } | |
| 73 | ||
| 74 | /** | |
| 75 | * Convert map and its values to types that Pig can handle | |
| 76 | * | |
| 77 | * @param m | |
| 78 | * @return | |
| 79 | */ | |
| 80 | @SuppressWarnings("unchecked") | |
| 81 | protected Map<String, Object> makeSafe(Map<String, Object> m) { | |
| 82 | Map<String, Object> safeValues = new HashMap<String, Object>(); | |
| 83 | for (Map.Entry<String, Object> entry : m.entrySet()) { | |
| 84 | Object v = entry.getValue(); | |
| 85 |
3
1. makeSafe : negated conditional → SURVIVED 2. makeSafe : negated conditional → KILLED 3. makeSafe : ROR: changed equals zero comparison to less than operator → KILLED |
if (v != null && v instanceof List) { |
| 86 | DataBag db = convertListToBag((List<Object>) v); | |
| 87 | safeValues.put(entry.getKey(), db); | |
| 88 |
3
1. makeSafe : negated conditional → SURVIVED 2. makeSafe : negated conditional → KILLED 3. makeSafe : ROR: changed equals zero comparison to less than operator → KILLED |
} else if (v != null && v instanceof Map) { |
| 89 | safeValues.put(entry.getKey(), makeSafe((Map<String, Object>) v)); | |
| 90 | } else { | |
| 91 | safeValues.put(entry.getKey(), entry.getValue()); | |
| 92 | } | |
| 93 | } | |
| 94 | ||
| 95 |
1
1. makeSafe : mutated return of Object value for com/mozilla/pig/eval/json/JsonMap::makeSafe to ( if (x != null) null else throw new RuntimeException ) → KILLED |
return safeValues; |
| 96 | } | |
| 97 | ||
| 98 | @Override | |
| 99 | public Map<String, Object> exec(Tuple input) throws IOException { | |
| 100 |
3
1. exec : negated conditional → KILLED 2. exec : negated conditional → KILLED 3. exec : ROR: changed not equals zero comparison to less than operator → KILLED |
if (input == null || input.size() == 0) { |
| 101 |
1
1. exec : mutated return of Object value for com/mozilla/pig/eval/json/JsonMap::exec to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE |
return null; |
| 102 | } | |
| 103 | ||
| 104 | try { | |
| 105 | Map<String, Object> values = jsonMapper.readValue((String) input.get(0), | |
| 106 | new TypeReference<Map<String, Object>>() {}); | |
| 107 |
1
1. exec : mutated return of Object value for com/mozilla/pig/eval/json/JsonMap::exec to ( if (x != null) null else throw new RuntimeException ) → KILLED |
return makeSafe(values); |
| 108 | } catch (JsonParseException e) { | |
| 109 |
1
1. exec : removed call to com/mozilla/pig/eval/json/JsonMap::warn → NO_COVERAGE |
warn("JSON Parse Error: " + e.getMessage(), ERRORS.JSONParseError); |
| 110 | } catch (JsonMappingException e) { | |
| 111 |
1
1. exec : removed call to com/mozilla/pig/eval/json/JsonMap::warn → NO_COVERAGE |
warn("JSON Mapping Error: " + e.getMessage(), ERRORS.JSONMappingError); |
| 112 | } catch (EOFException e) { | |
| 113 |
1
1. exec : removed call to com/mozilla/pig/eval/json/JsonMap::warn → NO_COVERAGE |
warn("Hit EOF unexpectedly", ERRORS.EOFError); |
| 114 | } catch (Exception e) { | |
| 115 |
1
1. exec : removed call to com/mozilla/pig/eval/json/JsonMap::warn → NO_COVERAGE |
warn("Generic error during JSON mapping", ERRORS.GenericError); |
| 116 | } | |
| 117 | ||
| 118 |
1
1. exec : mutated return of Object value for com/mozilla/pig/eval/json/JsonMap::exec to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE |
return null; |
| 119 | } | |
| 120 | ||
| 121 | } | |
Mutations | ||
| 60 |
1.1 2.2 |
|
| 61 |
1.1 |
|
| 63 |
1.1 |
|
| 67 |
1.1 2.2 3.3 |
|
| 68 |
1.1 |
|
| 71 |
1.1 |
|
| 85 |
1.1 2.2 3.3 |
|
| 88 |
1.1 2.2 3.3 |
|
| 95 |
1.1 |
|
| 100 |
1.1 2.2 3.3 |
|
| 101 |
1.1 |
|
| 107 |
1.1 |
|
| 109 |
1.1 |
|
| 111 |
1.1 |
|
| 113 |
1.1 |
|
| 115 |
1.1 |
|
| 118 |
1.1 |


WAGs of Man City stars Mahrez and Sane in “bum b**ch” row after Deontay Wilder drama
by Jaikuran RandhawaAccording to the Sun, Riyad Mahrez’s wife Rita and Leroy Sane’s girlfriend Candice Brook have been involved in a shocking row which saw one of them call the other a “bum b**ch”.
The Sun report that Candice sent a number of abusive text messages to Mahrez’s wife, Rita was reportedly called vile terms like a “groupie b**ch” and also told she looks like “sh*t” by Sane’s partner.
The Sun highlight that Rita’s recent drama with World Champion heavyweight boxer Deontay Wilder may be the cause of the shocking row and Candice is reportedly a close friend of the knockout artist’s fiancee.
It was reported earlier this month that Rita and Wilder flirted in a Manchester nightclub , something that the Sun believe left Riyad Mahrez devastated.
The report also highlights that Mahrez and Sane have spoken to each other privately in an attempt to resolve the feud.
The Sun’s source also believes that fellow WAGs at City may side with Rita as they think that Candice ‘acted liked a bully’ towards her.
It’s very rare that we see a WAG feud of such a vicious nature emerging. Manchester City’s Christmas party could be one very awkward occasion for everyone.
Let’s just hope that Wilder doesn’t head to Manchester anytime soon to celebrate his latest victory, that would be Pep Guardiola’s worst nightmare for his squad.


Ampersand - A cooperative for creative coworking. The first coworking space in Montgomery, Alabama dedicated to providing creative freelancers and professionals an environment to thrive.
Ampersand was designed for creatives to have a dedicated space to work, learn and meet in a professional setting - escaping isolation at home and distractions at the coffee shop.
“I like being able to come in and meet with people who are working for the same kinds of businesses, and being able to network that way,” said Culpepper. She exchanged ideas Tuesday with other business owners at Ampersand, a co-working space that opened last year in downtown Montgomery.
 For freelancers and those that work from home in Montgomery, finding a space that meets, both, the need for a quiet environment and the desire to interact with others can be difficult…
The concept of co-working — where people, generally independent freelancers from different professions, share a collaborative work environment — is not new. But a new space in downtown Montgomery will offer such professionals a chance to build their own businesses, while also tapping into the resources of others…


Lewis Bloor openly sniffs white powder on wild night out after weeing on building
Pictures show ex-TOWIE star Lewis Bloor holding and snorting a suspicious white powder on a night out with friends
by Sara-Aisha Kent, https://www.mirror.co.uk/authors/sara-aisha-kent/Former TOWIE and Celebrity Big Brother star Lewis Bloor has been pictured snorting a suspicious white powder on a night out with pals.
In the snaps, taken in central London on Thursday evening, the ex reality TV personality, 29, is seen sitting in the back of a vehicle with two men sitting in the front.
After he acquired the powder, Bloor can be seen standing in the street with his friends as he snorts some of the powder and rubs it on his gums.
In another photo he seems to inspect the packet of powder in his hands.
The friends seemed in high spirits as they fell about laughing in the street illuminated by lamp posts.
Earlier on in the evening, Bloor was also pictured urinating outside a homeless charity in public at around 10.30pm.
Standing next to a railing and a red postbox, Lewis can be seen looking behind him with his hand on his hip while he relieves himself.
MirrorOnline has reached out to a rep for Bloor for comment.
Bloor, who is from Chingford, joined The Only Way is Essex in 2013, appearing on the ITV show for three years.
He quit during the 17th series of the show, after falling out with several of his mates for boasting about his Lothario ways with some of the female members of the cast.
Lewis then starred in CelebrityBig Brother in 2016, and he was the fifth housemate to be evicted, coming tenth overall.
He has released a fitness app which promises to help users get a six pack.
Do you have a story to sell? Get in touch with us at<EMAIL_ADDRESS>or call us direct 0207 29 33033


With extreme temperatures, frequent sandstorms, and poor pedestrian infrastructure, Riyadh's new metro system will face a unique challenge of getting transit riders to and from metro stations safely and comfortably. This project will explores the potential of shared taxi services as a first-/last-mile solution for Riyadh's mobility demand.
See our mid-term presentation!Without a good a good first-mile/last-mile solution, public transit will face challenge in adoption.
This consideration is especially crucial for Riyadh, given the hot climate, insufficient infrastructure for walking and biking, and the cultural preference towards driving.
The first- and last-miles will likely have to be solved wzith a motorized solution. Hence, in addition to on-demand mini-buses proposed by the ADA, taxis will likely play a strong role too.
To further Riyadh’s goals of reducing congestion and pollution, we should think about how trip-sharing can reduce vehicles needed to make the first- and last-mile trips.
Due to lack of Riyadh’s taxi data, we will conduct the exercise using New York City’s data, with aims to develop tools and methods that can be applied to Riyadh.
Stay tuned for updates on our results
Stay tuned for updates on our results
We are two urban planning MIT graduate students who are passionate about transportation, data, and shared mobility. Want to talk to us? Send us an email and we will be in touch.


Tutorial¶
A. Post-hoc Model Interpretation¶
Creating an interpretation object¶
The general workflow within the skater package is to create an interpretation, create a model, and run interpretation algorithms.
An Interpretation consumes a dataset, and optionally some meta data like feature names and row ids. Internally, the Interpretation will generate a DataManager to handle data requests and sampling.
from sklearn.datasets import load_boston
boston = load_boston()
X, y, features = boston.data, boston.target, boston.feature_names
from skater import Interpretation
interpreter = Interpretation(X, feature_names=features)
To begin using the Interpretation to explain models, we need to create a skater Model.
Local Models(InMemoryModel)¶
To create a skater model based on a local function or method, pass in the predict function to an InMemoryModel. A user can optionally pass data samples to the examples keyword argument. This is only used to infer output types and formats. Out of the box, skater allows models return numpy arrays and pandas dataframes. If you would like support for additional formats, please let us know: https://github.com/datascienceinc/model-interpretation/issues/117
from sklearn.ensemble import GradientBoostedRegressor
gb = GradientBoostedRegressor()
gb.fit(X, y)
from skater.model import InMemoryModel
model = InMemoryModel(gb.predict, examples = X[:10])
If your model requires or returns different data structures, you can instead create a function that converts outputs to an appropriate data structure.
def predict_as_dataframe(x):
return pd.DataFrame(gb.predict(x))
from skater.model import InMemoryModel
model = InMemoryModel(predict_as_dataframe, examples = X[:10])
Operationalized Model(DeployedModel)¶
If your model is accessible through an api, use a DeployedModel, which wraps the requests library. DeployedModels require two functions, an input formatter and an output formatter, which speak to the requests library for posting and parsing.
The input formatter takes a pandas DataFrame or a numpy ndarray, and returns an object (such as a dict) that can be converted to json to be posted. The output formatter takes a requests.response as an input and returns a numpy ndarray or pandas DataFrame:
from skater.model import DeployedModel
import numpy as np
def input_formatter(x): return {'data': list(x)}
def output_formatter(response): return np.array(response.json()['output'])
uri = "https://yourorg.com/model/endpoint"
model = DeployedModel(uri, input_formatter, output_formatter, examples = X[:10])
If your api requires additional configuration like cookies, use request_kwargs:
from skater.model import DeployedModel
import numpy as np
req_kwargs = {'cookies': {'cookie-name':'cookie'}}
model = DeployedModel(uri, input_formatter, output_formatter, examples = X[:10], request_kwargs=req_kwargs)
Model Input/Output Data Types¶
Skater natively supports models that accept numpy arrays and pandas dataframes as inputs. If your model requires a different input type, such as the case of a model API requiring JSON, or an H20 model requiring a H20Frame, then you’ll need to include an input formatter function to the Skater Model object, for example:
def numpy_to_json(numpy_array):
return [{'data':x} for x in numpy_array]
skater_model = InMemoryModel(model.predict, input_formatter = numpy_to_json)
Likewise, Skater natively supports models that return numpy arrays or pandas dataframes. If your model returns another data structure, you’ll need to define an output_formatter that takes your model’s return type, and returns a numpy array or pandas dataframe.
Model Types¶
Skater supports regressions, classifiers with or without probability scores.
Skater expects that regression models run on ‘n’ examples will return numerical arrays of shape (n, ) or (n, 1), such as the following regression output run on 3 examples:
np.array([1.2, -2.2, 3.1])
Skater expects that classification models with probability scores of k classes run on n examples will return numerical arrays of shape (n, k), where elements are between 0 and 1 and rows sum to 1, such as the following classifier output run on 4 examples with 3 classes:
np.array([.0, .32, .68],
[.1, .2, .7],
[.5, .5, .0],
[.8, .1, .1])
Skater expects that classification models without probability scores of k classes run on n examples will return arrays of shape (n, ) or (n, 1), such as the following classifier run on 3 examples with 2 classes:
np.array(['apple','banana','banana'])
or
np.array([0, 1, 1])
Note that in this last case of classifiers that do not provide probabilities for all classes, there is no implicit definition of types of classes the model can predict. Therefore, these models require unique_values keyword argument when initializing a Skater model, which defines the unique classes that a model might return,
such as:
unique_classes = [0, 1]
skater_model = InMemoryModel(classifier.predict, unique_classes=unique_classes)
or
unique_classes = ['apple','banana']
skater_model = InMemoryModel(classifier.predict, unique_classes=unique_classes)
With an Interpretation and a Model, one can access golabl interpretation algorithms.
interpreter.feature_importance.feature_importance(skater_model)
interpreter.partial_dependence.plot_partial_dependence([features[0], features[1]], skater_model)
For Local Interpretation, one can access LIME as,
from skater.core.local_interpretation.lime.lime_tabular import LimeTabularExplainer
LimeTabularExplainer(regressor_X, feature_names=regressor_data.feature_names,
mode="regression").explain_instance(regressor_X[0], annotated_model)
B. Natively interpretable models(Rule Based Models/Transparent Design)¶
For Global and Local Interpretation(Transparent Models), Skater support Rule based models using Bayesian Rule Lists,
from skater.core.global_interpretation.interpretable_models.brlc import BRLC
sbrl_model = BRLC(min_rule_len=1, max_rule_len=10, iterations=10000, n_chains=20, drop_features=True)
For details on the interpretation algorithms currently available, please see the documentation for:


There are now at least 2 projects that integrate Django and behave. Both use a LiveServerTestCase to spin up a runserver for the tests automatically, and shut it down when done with the test run. The approach used for integrating Django, though, varies slightly.
The approach that is shown here provides a manual integration. It serves as basic example how such a functionality can be provided. In general, it is probably better to use one of the projects above.
This example uses:
This is based on Nathan Reynolds’ Mechanize support for Django testcases and was developed by David Eyk in a public gist.
Features file “features/browser.feature”:
# -- FILE: features/browser.feature
Feature: Demonstrate how to test Django with behave & mechanize
Scenario: Logging in to our new Django site
Given a user
When I log in
Then I see my account summary
And I see a warm and welcoming message
Steps Python code “features/steps/browser.py”:
# -- FILE: features/steps/browser.py
from behave import given, when, then
@given('a user')
def step_impl(context):
from django.contrib.auth.models import User
u = User(username='foo'<EMAIL_ADDRESS>u.set_password('bar')
@when('I log in')
def step_impl(context):
br = context.browser
br.open(context.browser_url('/account/login/'))
br.select_form(nr=0)
br.form['username'] = 'foo'
br.form['password'] = 'bar'
br.submit()
@then('I see my account summary')
def step_impl(context):
br = context.browser
response = br.response()
assert response.code == 200
assert br.geturl().endswith('/account/')
@then('I see a warm and welcoming message')
def step_impl(context):
# Remember, context.parse_soup() parses the current response in
# the mechanize browser.
soup = context.parse_soup()
msg = str(soup.findAll('h2', attrs={'class': 'welcome'})[0])
assert "Welcome, foo!" in msg
Environment setup in “features/environment.py”:
# -- FILE: features/environment.py
import os
# This is necessary for all installed apps to be recognized, for some reason.
os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings'
def before_all(context):
# Even though DJANGO_SETTINGS_MODULE is set, this may still be
# necessary. Or it may be simple CYA insurance.
from django.core.management import setup_environ
from myproject import settings
setup_environ(settings)
### Take a TestRunner hostage.
from django.test.simple import DjangoTestSuiteRunner
# We'll use this later to frog-march Django through the motions
# of setting up and tearing down the test environment, including
# test databases.
context.runner = DjangoTestSuiteRunner()
## If you use South for migrations, uncomment this to monkeypatch
## syncdb to get migrations to run.
# from south.management.commands import patch_for_test_db_setup
# patch_for_test_db_setup()
### Set up the WSGI intercept "port".
import wsgi_intercept
from django.core.handlers.wsgi import WSGIHandler
host = context.host = 'localhost'
port = context.port = getattr(settings, 'TESTING_MECHANIZE_INTERCEPT_PORT', 17681)
# NOTE: Nothing is actually listening on this port. wsgi_intercept
# monkeypatches the networking internals to use a fake socket when
# connecting to this port.
wsgi_intercept.add_wsgi_intercept(host, port, WSGIHandler)
def browser_url(url):
"""Create a URL for the virtual WSGI server.
e.g context.browser_url('/'), context.browser_url(reverse('my_view'))
"""
return urlparse.urljoin('http://%s:%d/' % (host, port), url)
context.browser_url = browser_url
### BeautifulSoup is handy to have nearby. (Substitute lxml or html5lib as you see fit)
from BeautifulSoup import BeautifulSoup
def parse_soup():
"""Use BeautifulSoup to parse the current response and return the DOM tree.
"""
r = context.browser.response()
html = r.read()
r.seek(0)
return BeautifulSoup(html)
context.parse_soup = parse_soup
def before_scenario(context, scenario):
# Set up the scenario test environment
context.runner.setup_test_environment()
# We must set up and tear down the entire database between
# scenarios. We can't just use db transactions, as Django's
# TestClient does, if we're doing full-stack tests with Mechanize,
# because Django closes the db connection after finishing the HTTP
# response.
context.old_db_config = context.runner.setup_databases()
### Set up the Mechanize browser.
from wsgi_intercept import mechanize_intercept
# MAGIC: All requests made by this monkeypatched browser to the magic
# host and port will be intercepted by wsgi_intercept via a
# fake socket and routed to Django's WSGI interface.
browser = context.browser = mechanize_intercept.Browser()
browser.set_handle_robots(False)
def after_scenario(context, scenario):
# Tear down the scenario test environment.
context.runner.teardown_databases(context.old_db_config)
context.runner.teardown_test_environment()
# Bob's your uncle.


I just finished the eBook of the 2nd edition of Atomic Scala. The PDF is, of course, the easiest since it gets created directly from Word (before you tell me I should use something other than Word — I have done numerous experiments, and Word still provides the most power of anything I’ve found that allows a single document to produce camera-ready publishable pages, and at the same time generates and maintains a table of contents and index).
Two years ago, for the first edition of the book, the drudgery of figuring out the right way to generate the other eBook formats (mobi for the Kindle and epub for everything else) stretched out for months. It was ultimately interesting and the Python programming was kind of satisfying and fun, but the fiddly-ness of the formats was often maddening.
So even though I had a big Python build script to make everything as automatic as possible, I was gritting my teeth expecting to have to wade into the morass once again.
To convert a book to mobi and epub, you first need very clean HTML as a starting point. More recent versions of Word have included “save as Web Page - filtered” which produces much cleaner HTML than before that option existed. Much of my build script is focused on additional cleaning of Word’s filtered HTML, using Leonard Richardson’s wonderful BeautifulSoup4 Python library (I know of nothing that comes even close for any other language), and when I couldn’t figure out the right Beautiful Soup incantation, a few regular expressions.
Some things had changed, so I had to go through and fix up issues in the Python build script (which uses Paver), but eventually got to the point where I had super-clean HTML and an associated CSS script.
I used Calibre the last time around, and it did a very good job but still required a fair amount of fiddling. The Calibre creator, Kovid Goyal, has been upgrading it a lot over the last couple of years, so I started by throwing in my cleaned HTML, adding a cover and generating an epub just to see what kinds of problems I would have to struggle with.
To my surprise, the result was … perfect, as far as I could tell. With no adjustments at all the output was flawless on the iPad. Calibre has really upped its quality (it was great before, but this!). I was also a bit spoiled, now, after having imagined days or weeks of effort in my future.
Alas, Calibre’s mobi output was no where near good enough. And whatever steps I had taken in the past didn’t look like they were going to work, so I was getting emotionally ready to roll up my sleeves and submerge myself in the sewage that is the mobi spec and tools.
As a last ditch, I thought I’d Google for something that might convert epub to mobi, and lo and behold discovered epub2mobi.com. To give perspective, at one point two years ago I had even tried hiring a service to do the conversion, but they couldn’t handle things like special formatting and embedded fonts. So I was pretty skeptical, and then surprised and completely amazed when the epub2mobi conversion worked flawlessly! Suddenly, many days of slogging through specs and writing experiments vanished. What a delight! I sent them a thank-you note and some money.
I thought I had a lot more work to do to get the epub and mobi versions for Atomic Scala 2nd edition, but these two programs just made it work like magic.
Note: If you start with a Word document and save it as “filtered HTML” Calibre will do quite a good job on it. For a book with just text or relatively simple formatting, it should work fine (I had to process my HTML to get it just right, but most books don’t have the formatting etc. requirements I do, and Calibre still did a remarkably good job with the raw HTML despite my issues). If you work with a word processor or other tool that produces really clean HTML directly then you’re in even better shape.
What’s even more amazing is that Calibre can now start with a Microsoft Word docx document and directly convert it into ePub — and really amazing ePub at that. Even including tables, diagrams, etc. I was stunned, after having done it the hard way. This opens up some big possibilities for ebook publishing.
iOS fix
Apple seems to have trouble playing nice in the open-source world. Although iOS iBooks is a wonderful reader, if you use Calibre to produce ePub from docx, you won’t get the embedded fonts showing up on iBooks (for some reason, my HTML process for Atomic Scala did not produce this problem). After thrashing around for a few days I discovered that you must, after your epub is generated, insert a tiny XML file in this location:
META-INF/com.apple.ibooks.display-options.xml
Here’s the file:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<display_options>
<platform name="*">
<option name="specified-fonts">true</option>
</platform>
</display_options>
I reported this as a Calibre bug, thinking they’d want to automatically put it in, but Kovid responded by saying that Calibre creates standards-compliant ePub and what Apple did here is non-standard. So you have to put it in yourself, but Calibre makes this pretty easy.
Again, this only seems to be an issue when you are converting from docx files, and it’s a pretty minor inconvenience compared with everything that Calibre does for you. I am extremely impressed with this program (which is written in Python).


How to see the 2019 Leonid meteor shower this weekend
by WABCLook to the sky this weekend to catch the peak of the Leonid meteor shower.
On the night of Nov. 16-17, as many as 20 meteors per hour will be visible in the night sky, according to AccuWeather. The best time to see the shower is after midnight with the constellation Leo high overhead. The meteors will appear to originate from Leo, although you don't have to look in that direction.
The moon will contest the Leonids, so be sure to keep the moon out of your sight for your best shot at seeing the shower. Find a dark area and lie back to have the entire night sky in your sight. Remember to dress warmly, too!
MORE SPACE NEWS: Mini Mercury skips across sun's vast glare in rare transit


Stripe Terminal iOS SDK
Stripe Terminal enables you to build your own in-person checkout to accept payments in the physical world. Built on Stripe’s payments network, Terminal helps you unify your online and offline payment channels. With the Stripe Terminal iOS SDK, you can connect to pre-certified card readers from your iOS app and drive a customized in-store checkout flow.
Get started with our integration guides and sample integration, or browse the SDK reference documentation.
Upgrading from an older version of the SDK? See our migration guide for guidance.
Requirements
The Stripe Terminal iOS SDK is compatible with apps supporting iOS 10 and above.
Try the example app
The iOS SDK includes an open-source example app, which you can use to familiarize yourself with the SDK and reader before starting your own integration.
To build the example app from source, you’ll need to:
- Navigate to the
Example
folder, and openExample.xcworkspace
(make sure to open the.xcworkspace
and not the.xcodeproj
). - Navigate to our example backend and click the button to deploy it on Heroku.
- In
AppDelegate.swift
, set the URL of the Heroku app you just deployed. - Build and run the app. The SDK comes with a simple reader simulator, so you can get started without any physical hardware.
Installation
We support CocoaPods and Swift Package Manager. If you prefer to install the library manually, please use the latest version from our releases page.
Swift Package Manager
In Xcode, select File > Swift Packages > Add Package Dependency and enter https://github.com/stripe/stripe-terminal-ios
CocoaPods
If you haven’t already, install the latest version of CocoaPods.
Add this line to your Podfile:
pod 'StripeTerminal', '~> 2.0'
Run the following command:
pod install
From now on, don’t forget to use the *.xcworkspace
file to open your project in Xcode, instead of the .xcodeproj
file.
In the future, to update to the latest compatible version of the SDK, just run:
pod update StripeTerminal
Manual
Navigate to our releases page, download StripeTerminal.xcframework.zip, and unzip it.
Drag
StripeTerminal.xcframework
to the Frameworks, Libraries, and Embedded Content section of your Xcode project’s General settings. Make sure to select “Copy items if needed”.
When new versions of the SDK are released, repeat the above steps to update your installation.
Configure your app
Location services must be enabled in order to use the iOS SDK. Add the following key-value pair to your app’s Info.plist
file:
- Privacy - Location When In Use Usage Description
- Key:
NSLocationWhenInUseUsageDescription
- Value: “Location access is required in order to accept payments.”
- Key:
Note
Stripe needs to know where payments occur to reduce risks associated with those charges and to minimize disputes. If the SDK can’t determine the iOS device’s location, payments are disabled until location access is restored.
For your app to run in the background and remain connected to the reader, add this key-value pair to your Info.plist
file:
- Required background modes
- Key:
UIBackgroundModes
- Value:
bluetooth-central
(Uses Bluetooth LE accessories)
Note
Note the value is actually an array that you will need to addbluetooth-central
to. - Key:
For your app to pass validation when submitting to the App Store, add the following key-value pairs as well:
- Privacy - Bluetooth Peripheral Usage Description
- Key:
NSBluetoothPeripheralUsageDescription
- Value: “Bluetooth access is required in order to connect to supported bluetooth card readers.”
- Key:
- Privacy - Bluetooth Always Usage Description
- Key:
NSBluetoothAlwaysUsageDescription
- Value: “This app uses Bluetooth to connect to supported card readers.”
- Key:
Previous API References
We maintain archives of the SDK’s API reference for older versions of the SDK.


Thanks¶
- Thanks to the teams behind OpenCV and Pillow - this entirely frivolous project would not exist without you.
- Thanks to my family and friends for all the support they give me in everything I do.
- Special thanks to Jabari King, who got me into programming and has always helped me when I had a problem.
- Of course, thanks to David Bowie, for making such rad music.
- Thanks for you, for showing interest in an amateur programmer’s projects! It means a lot.


This tests that tick marks don't break when the axis crosses into daylight savings time.
The tick marks should all be on day boundaries or nice hours (6, 12, 18), rather than on odd time boundaries like 5, 11, 17 and 23.
This chart shows a continuous line going across the "fall back" EST/EDT event. You may need to switch your computer's time zone to Eastern to see this. The x-axis tick marks go from 01:00 → 01:55 and then back to 01:00.
This chart is analogous to the first, except at a "spring forward".
This chart shows a continuous series which crosses a "spring forward". The x-axis ticks should skip from 1:55AM to 3:00AM.


Even anonymous attackers typically don’t break crypto directly. They break something else, such as steal keys, do man-in-the-middle attacks, or steal clear text data off the server, while in transit, or from the user’s client, e.g. browser.
Manual attack is generally required.
一般來說匿名的攻擊者不會沒辦法直接破解加密。他們會從例如說瀏覽器，做如偷密鑰、中間人攻擊、或是從 Server 偷取明文的資料之類的事情。
手動攻擊是很常見的。
Over the last few years, this has been the most common impactful attack. The most common flaw is simply not encrypting sensitive data. When crypto is employed, weak key generation and management, and weak algorithm usage is common, particularly weak password hashing techniques. For data in transit server side weaknesses are mainly easy to detect, but hard for data in rest. Both with very varying exploitability.
在過去這幾年，這是一很普遍的攻擊方式。最常見的就是沒加密敏感資料。使用密碼時，加密過程中被生成跟管理的是使用比較弱的 key 與比較弱的加密演算法。對於資料傳輸伺服器的弱點比較容易被檢測到，但對於資料比較放心。但其實兩者有很大的不同。
Failure frequently compromises all data that should have been protected. Typically, this information includes sensitive personal information (PII) data such as health records, cre- dentials, personal data, credit cards, which often requires protection as defined by laws or regulations such as the EU GDPR or local privacy laws.
為了在失敗得時候全部的資料都要被保護到。通常在這情況下，這些包含敏感資訊 ( PII ) 的個人資料，例如健保紀錄、憑證、個人資訊、信用卡等，這些應該都需要按照歐盟 GDPR 或本地相關保護法的的規定進行保護。


The
Akan people of Ghana frequently name their children after the day of the week they were born and the order in which they were born.
These "
Day names" have further meanings concerning the soul and character of the person.
Most Ghanaians have at least one name from this system, even if they also have an English or Christian name.
Notable figures with day names include Ghana's first president
Kwame Nkrumah
and former United Nations Secretary-General
Koffi Annan.
Male Names
- Sunday:Kwasi
- Monday:Kwadwo
- Tuesday: Kwabena
- Wednesday:Kwaku
- Thursday:Yaw
- Friday:Kofi
- Saturday:Kwame
Female Names
- Sunday:Akosua
- Monday:Adwoa
- Tuesday:Abena
- Wednesday:Akua
- Thursday:Yaa
- Friday:Afua
- Saturday:Ama


Describes an SDK version.
More...
|
| | SdkVersion (int major, int minor, int revision) |
| | Initializes a new instance of the SdkVersion struct. More...
|
| |
| bool | Equals (SdkVersion other) |
| | Indicates whether the current object is equal to another object of the same type. More...
|
| |
| override bool | Equals (object obj) |
| | Indicates whether this instance and a specified object are equal. More...
|
| |
| override int | GetHashCode () |
| | Returns the hash code for this instance. More...
|
| |
| int | CompareTo (SdkVersion other) |
| | Compares the current object with another object of the same type. More...
|
| |
| int | CompareTo (object obj) |
| | Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. More...
|
| |
| override string | ToString () |
| | Returns the string representation of this SDK version. More...
|
| |
Describes an SDK version.
Definition at line 35 of file SdkVersion.cs.
| Corale.Colore.SdkVersion.SdkVersion |
( |
int |
major, |
|
|
int |
minor, |
|
|
int |
revision |
|
) |
| |
Initializes a new instance of the SdkVersion struct.
- Parameters
-
| major | The major component of the version. |
| minor | The minor component of the version. |
| revision | The revision component of the version. |
Definition at line 61 of file SdkVersion.cs.
| int Corale.Colore.SdkVersion.CompareTo |
( |
SdkVersion |
other | ) |
|
Compares the current object with another object of the same type.
- Returns
- A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has the following meanings:
Value Meaning Less than zero This object is less than the other parameter Zero This object is equal to other Greater than zero This object is greater than other
- Parameters
-
| other | An object to compare with this object. |
Definition at line 207 of file SdkVersion.cs.
| int Corale.Colore.SdkVersion.CompareTo |
( |
object |
obj | ) |
|
Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object.
- Returns
- A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings:
Value Meaning Less than zero This object is less than the obj parameter Zero This object is equal to obj Greater than zero This object is greater than obj
- Parameters
-
| obj | An object to compare with this instance. |
- Exceptions
-
| T:System.ArgumentException | obj is not the same type as this instance. |
Definition at line 245 of file SdkVersion.cs.
| bool Corale.Colore.SdkVersion.Equals |
( |
SdkVersion |
other | ) |
|
Indicates whether the current object is equal to another object of the same type.
- Returns
- true if the current object is equal to the other parameter; otherwise, false.
- Parameters
-
| other | An object to compare with this object. |
Definition at line 147 of file SdkVersion.cs.
| override bool Corale.Colore.SdkVersion.Equals |
( |
object |
obj | ) |
|
Indicates whether this instance and a specified object are equal.
- Returns
- true if obj and this instance are the same type and represent the same value; otherwise, false.
- Parameters
-
| obj | Another object to compare to. |
Definition at line 159 of file SdkVersion.cs.
| override int Corale.Colore.SdkVersion.GetHashCode |
( |
| ) |
|
Returns the hash code for this instance.
- Returns
- A 32-bit signed integer that is the hash code for this instance.
Definition at line 170 of file SdkVersion.cs.
| static bool Corale.Colore.SdkVersion.operator!= |
( |
SdkVersion |
left, |
|
|
object |
right |
|
) |
| |
|
static |
Compares an instance of SdkVersion with another object for inequality.
- Parameters
-
| left | The left operand, an instance of SdkVersion. |
| right | The right operand, any type of object. |
- Returns
true
if the two objects are not equal, otherwise false
.
Definition at line 87 of file SdkVersion.cs.
| static bool Corale.Colore.SdkVersion.operator< |
( |
SdkVersion |
left, |
|
|
object |
right |
|
) |
| |
|
static |
Checks if an instance of SdkVersion is considered less than another object.
- Parameters
-
| left | The left operand, an instance of SdkVersion. |
| right | The right operand, any type of object. |
- Returns
true
if left is less than right , otherwise false
.
Definition at line 99 of file SdkVersion.cs.
| static bool Corale.Colore.SdkVersion.operator<= |
( |
SdkVersion |
left, |
|
|
object |
right |
|
) |
| |
|
static |
Checks if an instance of SdkVersion is considered to be less than or equal to another object.
- Parameters
-
| left | The left operand, an instance of SdkVersion. |
| right | The right operand, any type of object. |
- Returns
true
if left is less than or equal to right , otherwise false
.
Definition at line 123 of file SdkVersion.cs.
| static bool Corale.Colore.SdkVersion.operator== |
( |
SdkVersion |
left, |
|
|
object |
right |
|
) |
| |
|
static |
Compares an instance of SdkVersion with another object for equality.
- Parameters
-
| left | The left operand, an instance of SdkVersion. |
| right | The right operand, any type of object. |
- Returns
true
if the two objects are equal, otherwise false
.
Definition at line 75 of file SdkVersion.cs.
| static bool Corale.Colore.SdkVersion.operator> |
( |
SdkVersion |
left, |
|
|
object |
right |
|
) |
| |
|
static |
Checks if an instance of SdkVersion is considered greater than another object.
- Parameters
-
| left | The left operand, an instance of SdkVersion. |
| right | The right operand, any type of object. |
- Returns
true
if left is greater than right , otherwise false
.
Definition at line 111 of file SdkVersion.cs.
| static bool Corale.Colore.SdkVersion.operator>= |
( |
SdkVersion |
left, |
|
|
object |
right |
|
) |
| |
|
static |
Checks if an instance of SdkVersion is considered to be greater than or equal to another object.
- Parameters
-
| left | The left operand, an instance of SdkVersion. |
| right | The right operand, any type of object. |
- Returns
true
if left is greater than or equal to right , otherwise false
.
Definition at line 135 of file SdkVersion.cs.
| override string Corale.Colore.SdkVersion.ToString |
( |
| ) |
|
Returns the string representation of this SDK version.
- Returns
- A T:System.String representing this struct instance.
Definition at line 259 of file SdkVersion.cs.
| readonly int Corale.Colore.SdkVersion.Major |
The major part of the version.
Definition at line 41 of file SdkVersion.cs.
| readonly int Corale.Colore.SdkVersion.Minor |
The minor part of the version.
Definition at line 47 of file SdkVersion.cs.
| readonly int Corale.Colore.SdkVersion.Revision |
The revision part of the version.
Definition at line 53 of file SdkVersion.cs.
The documentation for this struct was generated from the following file:


--- layout: post status: publish published: true title: Vista RC2 Installed author: display_name: Tomas Restrepo login: tomasr email<EMAIL_ADDRESS>url: http://winterdom.com/ author_login: tomasr author_email<EMAIL_ADDRESS>author_url: http://winterdom.com/ wordpress_id: 45 wordpress_url: http://winterdom.com/2006/10/vistarc2installed date: '2006-10-26 12:43:36 +0000' date_gmt: '2006-10-26 12:43:36 +0000' categories: - Vista tags: [] comments: [] ---
After solving some DVD issues I had I finally installed RC2 of Vista over lunch on a separate partition on my main Dell Inspiron 6000 laptop. My experience this time was far better than the last time I tried it, and certainly better than Sam's initial experience.
Total installation time from booting off the DVD until I was on a full desktop working was about 30 minutes. Glass worked right out of the box, even supporting the full widescreen 1920x1200 of my laptop screen (which didn't work last time). Performance seems to be good, though I haven't installed anything yet. This is also the first time the machine can actually finish the performance rating process, giving it a 3.4 (didn't expect much more, really). Only downside so far is no audio out of the box. Might try installing the XP sound card drivers later on to see if that works.
I also had installed RC2 on my older Compaq Presario 2800 laptop, as I have done in the past with previous builds. This didn't go so well. While the installation worked without any problems, the box sticks to the default VGA drivers, with acceleration completely turned off (so you don't even get DirectDraw 2D support). Hence, it isn't even useful for playing Spider Solitaire or Mahjong, both of which I rather enjoyed playing on RC1 on this machien (they worked very adequately).


Check votes
See which curators support your posts most often. By
@jga
Put the links of the posts
Check Votes


Premium
Help
Download
|
Sign up
Log In
Music for everyone.
GET SPOTIFY FREE
GET SPOTIFY PREMIUM
<
>
Spotify
LEARN ABOUT SPOTIFY


16 October 2017
| Link to the Dot Game on Github |
| Github Repo with Code and Stuff |
I got the idea for this from LAST BYTE: Partitioned Peace By Dennis Shasha 1 in the Communications of the Association for Computing Machinery (CACM) Vol. 60 No. 10
The LAST BYTE is a section in the CACM, which sometimes presents a computer science problem (and sometimes several related problems). While working on a solution for this, I thought it might be fun to make it into a game! Since I’ve noticed the potential awesomeness of Internet browser games, I thought it might be fun to try using Javascript for this game.
In some way, this whole “swapping” and “bridges” thing can represent partitioning data.
I made this program using Processing.js. See Processing Foundation
There are default bridges between all points on the board. Every bridge in the x and y directions are considered “free”. Extra bridges can be drawn diagonally, connecting any point (x,y) to any one of the four points (x\pm 1, y\pm 1). Similar to the “Swaps Added” counter, there will be a “Bridges Added” counter.
When one red point, and one blue point, swap positions. This alters the colored connections on the board. Swapping would be generally more “expensive” than creating a bridge.
Adding click-able areas to the dots was more challenging and interesting than originally anticipated. Highlighting and removing highlights was also bit strange. The easiest solution was to draw blank rectangle in order to clear the screen, and then redraw the lines surrounding the highlighted point.
My favorite activity was finding an algorithm to determine if the mouse was hovering over a point, and if so: determine which point. After scrapping a few potential models, I settled on using Modulo and Div functions.
Suppose there is a Number Line starting from x=0 on the left side of the screen, heading toward x=W, where W is the width of the Canvas in pixels. The number line can also be written in interval form: x \in \left[ 0, W \right]
Let P be a point on this number line, where P is the center of a circle of radius R. Since there be n number of uniformly spaced points \left( P_1, P_2, \ldots, P_n \right) on the number line. Let D represent that distance spacing between points.
Because of the uniform spacing, the i^{th} point’s position P_i = D \cdot i. This means that you take the mouse’s position and divide it by the distance to find the nearest point on the left.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
After successfully drawing the grid of dots and adding clicking, highlighting, and point switching features, I wanted to make a functional game. Most importantly, this involves a “You Win!” screen (this game specifically would be dull without a way to win). I worked out the algorithm to check for a completed game, written on paper (or in this case, dry-erase board).
My solution involved Set Theory and frequent usage of points on the grid. I realized that it would be easier to just start over from scratch. So I re-built the program, focusing on abstract objects instead of quickly drawing things on the screen. I removed myself from the automatic-compile-and-render environment graciously hosted on Khan Academy, and started working on my code in an editor (Sublime Text).
I began with the idea that there should be 3 custom objects (other than Integers, Strings, etc.) involved in the program.
The Set Object is basically just a traditional set. It only differs from an Array in the fact that each element is unique. The add(element)
function shows how new elements are checked for uniqueness before being added.
1 2 3 4 5 6 7 8 9 10 |
|
Notice how if this.elements
already includes the newElement
, then the add()
function simply returns the original list of elements. Basically, my Set object is nothing more than an Array with some special functions.
The Point object represents one of the dots on the grid. At the start of a game, a two-dimensional matrix grid[A][B]
is loaded with Point Objects corresponding horizontal and vertical dimensions. I thought that it would be important to specify that the index of points: [A][B] be distinct from pixels locations to draw: (x,y). Finally, adding the property color
would be incredible useful to work with later on.
1 2 3 4 5 6 7 |
|
Now here is the special Chain object. A chain is a Set of Points which share the same color, and are connected together. It can also be thought of as a graph from graph theory, where each point is a vertex, and each Adjacent Point is a vertex pointer. The Known Links are confirmed to be part of the chain, and will contain the final results to check for a winning game.
1 2 3 4 5 6 |
|
Since there are unlinked points, the game is not completed yet, but we need to convince the computer. To do this, we want to show that every red point is linked together and every blue point is linked together.
Originally, I thought of simply checking every point to see if it’s linked to another point. However, this doesn’t work in the cases where there are multiple same-color chains that are disconnected from each other.
So, here’s another approach. First, find the set of all Red Points, and the set of all Blue points. Next, find a random red point, and find the chain of the points linked to it. In a completed game, the points in that chain will have every point that exists! Other methods exist, but this method will be deterministic, so it will be used for now.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
Let’s start at a Red Point, such as (5, 4). Now, imagine you are standing on that point, looking at the different roads you can take. Fortunately, you have road signs telling you where you can go! So Let’s go through the possibilities, and consider our options.
Since we are currently looking for points of the same color, the new Link that we “discovered” is Point (5, 3). This is going to be the next point we look at for more connected links!
This is where the Chain object will be helpful to keep track of what points we are looking at, and what we already know about.
1 2 3 |
|
===================
RED CHAIN
-------------------
checking... (5,4)
New Link Discovered! (5, 3)
checking... (5,3)
Links in Red chain = (5, 3),(5, 4)
Now, check out the Blue Chain:
From the same grid layout above, here is what the program looks like as it searches for a Blue Chain. Notice that there are many red points we check, but never actually visit and add to our set. While you look at the path, imagine you are collecting each of the blue points you visit in your Set. Starting off with Links = \big\lbrace (5, 5)\big\rbrace .
===================
Blue CHAIN
-------------------
checking... (5,5)
New Link Discovered! (4, 5)
checking... (4,5)
New Link Discovered! (3, 5)
New Link Discovered! (4, 4)
checking... (4,4)
New Link Discovered! (4, 3)
checking... (4,3)
New Link Discovered! (3, 3)
New Link Discovered! (4, 2)
checking... (4,2)
New Link Discovered! (5, 2)
New Link Discovered! (4, 1)
checking... (4,1)
checking... (5,2)
checking... (3,3)
checking... (3,5)
New Link Discovered! (2, 5)
checking... (2,5)
Links in Blue chain = (2, 5),(5, 2),(4, 1),(3, 3),(4, 2),(4, 3),(3, 5),(4, 4),(4, 5),(5, 5)
As we discover each link, how do we prevent ourselves from backtracking? Specifically, how do make sure that once you hit the Last Point, the computer doesn’t just look backwards again and say “Hey, look, there’s another blue point, let’s go!”.
Whenever a new link is discovered (of the same color), you can check to see if it’s already in the Set of Points that you already know about. If you’ve never seen that point before, you can add it to the list you will Check Next. This is why it is useful to have the various types of properties attached to the Chain object.
Dennis Shasha. 2017. Partitioned peace. Commun. ACM 60, 10 (September 2017), 112-ff. DOI: https://doi.org/10.1145/3133244↩


The Bay State Ballot Question Hackathon
This November, Massachusetts voters are poised to vote on charter schools, animal welfare, marijuana legalization and gambling — all in the form of ballot questions.
The results will dictate policy for years to come, impacting everyone from Boston to the Berkshires. But who pays for ballot question campaigns?
Help The Eye gain a better understanding of the cash flow behind voter initiatives by helping us review campaign contribution records.