Try out our Premium Member services: Virtual Legal Assistant, Query Alert Service and an ad-free experience. Free for one month and pay only if you like it.
1 IN THE HIGH COURT OF KARNATAKA AT BENGALURU DATED THIS THE 06TH DAY OF SEPTEMBER 2019 BEFORE THE HON'BLE MR. JUSTICE JOHN MICHAEL CUNHA CRIMINAL PETITION NO.5314 OF 2016 BETWEEN: V.T.WILSON S/O LATE V.M.THOMAS, AGED ABOUT 51 YEARS, PRESENTLY WORKING AS THE CHIEF OFFICER, T.NARASIPURA TOWN PANCHAYATH, T.NARASIPURA, MYSORE DISTRICT-570016. ... PETITIONER (BY SRI: NITYANAND V NAIK, ADVOCATE) AND: THE KARNATAKA STATE POLLUTION CONTROL BOARD REGIONAL OFFICE-2, MYSORE (RURAL) PLOT NO.436-D, HEBBAL INDUSTRIES AREA, KRS ROAD, METAGALLI, MYSORE-570 016 ... RESPONDENT (RESPONDENT SERVED AND UNREPRESENTED) THIS CRL.P IS FILED U/S.482 CR.P.C PRAYING TO QUASH THE ENITRE PROCEEDINGS IN PCR NO.17/2014 NOW REGISTERED AS C.C.NO.85/2014 FOR THE OFFENCE PUNISHABLE UNDER SECTIONS 24,25 R/W 43,44 OF WATER PREVENTION AND POLLUTION CONTROL, ACT 1974 PENDING ON THE FILE OF SENIOR CIVIL JUDGE AND JMFC, T.NARASIPURA VIDE ANNEXURE-A AND QUASH THE PRIVATE 2 COMPLAINT IN PCR.NO.17/2014 NOW REGISTERED AS C.C.NO.85/2014 FOR THE OFFENCE PUNISHABLE UNDER SECTIONS 24,25 R/W 43,44 OF WATER PREVENTION AND POLLUTION CONTROL ACT, 1974 PENDING ON THE FILE OF SENIOR CIVIL JUDGE AND JMFC, T.NARASIPURA VIDE ANNEXURE-B. THIS CRL.P COMING ON FOR ADMISSION THIS DAY, THE COURT MADE THE FOLLOWING:- ORDER
Petitioner/accused No.2 in this petition has sought to quash the entire proceedings in C.C.No.85/2014 on the file of learned Senior Civil Judge and JMFC, T.Narasipura, for the alleged offences punishable under sections 24 and 25 of the Water Prevention and Pollution Control Act, 1974 (hereinafter referred to as the "Water Act") punishable under sections 43 & 44 of the Water Act.
2. The material allegations against the petitioner is that, petitioner/accused No.1 is a local body established in accordance with the provisions of the Karnataka Municipality Act, 1964 and accused No.2 is working as Chief Officer of accused No.1. The accused are under legal obligation to provide UGD system and to treat the sewage effluent generated within the 3 limits of Town Panchayat before discharging into Kabini river water, in order to maintain the wholesomeness of water, in accordance with the provisions of the Karnataka Municipality Act of 1964 and sections 24, 25 and 26 of the Water Act.
3(i) The Karnataka State Pollution Control Board ("KSPC Board" for short) - respondent herein filed a complaint under section 200 Cr.P.C., seeking action against Town Panchayat, T.Narasipura (accused No.1) and petitioner herein (accused No.2) alleging that, pursuant to the various complaints received by the respondent on pollution of Kabini River due to discharge of untreated sewage resulting in pollution of river water adversely affecting the public health, the Assistant Environmental Officer of the Regional Officer conducted the inspection on 28.11.2012 and after giving notice to accused No.2, mahazar was conducted.
(ii) During the mahazar, samples were drawn near the new bridge i.e., from upstream of sewage confluence point of Kabini river, sewage discharged to Kabini river near new bridge and downstream of sewage confluence point of Kabini river and were 4 sent to the Karnataka State Pollution Control Board, Regional Laboratory, Mysore for analysis. The analysis report received from the State Board Analyst on 10.12.2012 disclosed that the levels of suspended solids and BOD were not confirming to the standards stipulated by the Board. It was observed that sewage and sullage generated from the Town Panchayat area was being discharged through open drains into Kabini River area near the new bridge and polluting the river water and causing health hazard which is the main source of drinking water to the town panchayat and other downstream villages. As a result, accused have committed an offence contravening the provisions of Sections 24 and 25 of the Water Act. Thus the complainant sought prosecution of petitioner/accused No.2 and accused No.1 for the above offences punishable under sections 43 and 44 of the Water Act.
4. Learned Magistrate took cognizance of the offences and issued summons to the petitioner/accused No.2 and accused No.1. The impugned order of summons and initiation of 5 proceedings against the petitioner herein (accused No.2) have been questioned before this court on the following grounds:-
(i) The order taking cognizance and issuance of summons by learned Magistrate is beyond the facts and circumstances of the case and the law applicable to the facts of the case;
(ii) Petitioner being a public servant has discharged his duties within the framework of duties and responsibilities entrusted to him under the Act; and therefore, learned Magistrate was bound by section 197 of Cr.P.C., not to take cognizance of the above offences without the previous sanction of the competent authority. The complaint against the Town Panchayat is not preceded with a sanction;
(iii) The allegations made in the complaint pertains to flow of sewage into the river and failure of accused in taking steps to construct Under Ground Drainage system and Sewage Treatment Plant for proper disposal of sewage generated within the limits of Town Panchayat. Primarily, construction of Under Ground Drainage system and Sewage Treatment Plant is a duty vested with Karnataka Urban Water Supply and Drainage Board. 6
(iv) The officers of Town Panchayat have no power to exercise any control over the storm water drains or flow of sewage through the same;
(v) The pollutants are being discharged into Kabini river through other villages and since pollution had been caused by other villages, not coming under jurisdiction of accused No.1 - Town Panchayath, as per the dictum laid down by the Hon'ble Supreme Court, "polluter alone" is liable to be prosecuted;
(vi) Petitioner/accused No.2 cannot be held liable for non-implementation of any projects envisaged by the State even if it resulted in violation of any rule of law;
(vii) Petitioner/accused No.2 cannot be held vicariously liable for the acts, commission or omission of the Town Panchayat;
(viii) The order of taking cognizance does not indicate application of mind by learned Magistrate. Likewise, order of issuance of process also does not indicate subjective satisfaction of learned Magistrate about the sufficient ground for issue of process;
7
(ix) Section 48 of the Water Act creates legal bar on instituting a complaint against petitioner as alleged offences were committed without his knowledge;
(x) In order to attract provisions of sections 24 and 25 of the Water Act, the accused should have knowingly caused or permitted any poisonous, noxious or polluting matter directly into any stream or well. In the absence of any material to show that the petitioner herein has knowingly caused or permitted discharge of the pollutants in the river, action initiated against petitioner is impermissible and unsustainable;
(xi) Respondent has failed to exercise power under section 17 of the Water Act by insisting the Town Panchayath, T.Narasipura to insist on sewerage disposal mechanism; and
(xii) Respondent has ample powers as contemplated under section 18 of the Water Act to issue necessary directions or had more than ample powers as contemplated under section 23 of the Water Act to inspect the polluting areas and to prevent the situation. Respondent having failed to perform its duties cannot be permitted to prosecute the petitioner. 8
5. Learned counsel appearing for the petitioner has argued in line with the above contentions and has emphasized that that the prosecution of the petitioner without prior sanction under section 197 Cr.P.C. and section 283 of Karnataka Municipalities Act, 1964 ("Act" for short) is illegal, untenable and impermissible. Learned Magistrate has taken cognizance of the penal provisions, but not of alleged violation under sections 24 and 25 of the Water Act. As such, learned Magistrate had no jurisdiction to proceed against the petitioner. The allegations made in the complaint, if read in entirety, would disclose that the alleged offences were committed by the Department. Petitioner herein was not holding the responsible position in the Department as on the date of alleged commission of offences. Hence, implication of present petitioner for the alleged offences is wholly illegal and is liable to be quashed.
6. Placing reliance on the decision of the Hon'ble Supreme court in M.C.Mehta vs. Kamal Nath and Others, (2002) 3 SCC 653, learned Counsel has emphasized that the averments made in the complaint and the material produced in support 9 thereof clearly goes to show that the pollutants are being discharged into the Kabini river by other villages which fact is known to complainant/respondent. Complainant itself is empowered under the Act to take action against the persons and agencies which cause pollution of water bodies. Hon'ble Supreme Court has laid down "Polluter Pays" principle and in view of the said proposition of law, once the activity carried on is found hazardous or inherently dangerous, only the person carrying on such activity is liable to make good the loss caused to any other person by his activity irrespective of the fact whether he took reasonable care while carrying on his activity. In view of the above position, the absolute liability for harm to the environment extends not only to compensate the victims of pollution but also the cost of restoring the environment of the damaged environment is on the polluter and under the said circumstances, the prosecution instituted against the petitioner is wholly illegal and contrary to the provisions of the Karnataka Municipalities Act as well as Water Act, 1974. 10
7(i) Meeting this argument, learned counsel for respondent has placed reliance on the decision of the Hon'ble Supreme Court in V.C.CHINNAPPA GOUDAR vs. KARNATAKA STATE POLLUTION CONTROL BOARD & Another in Criminal Appeal No.755/2010 dated 10.3.2015 and submitted that the controversy relating to requirement of sanction for prosecution of violation of provisions of the Water Act is set at rest by the Hon'ble Apex Court in the above decision and it is held that, "There is no specific provision providing for any sanction to be secured for proceeding against a public servant under the 1974 Act. In the light of the said statutory prescription contained in section 48, there is no scope for invoking section 197 Cr.P.C., even though the accused are public servants."
(ii) Further, referring to section 283 of the Karnataka Municipality Act, learned counsel has emphasized that, in view of specific allegations made against the petitioner that petitioner being the public servant, has failed to discharge the obligation cast on him under the Karnataka Municipality Act, even the provisions of section 283 of Karnataka Municipality Act is not applicable to the facts of the case. In other words, it is the 11 submission of learned counsel for respondent that the requirement of previous sanction of the Municipal Council under section 283 of Karnataka Municipality Act is contemplated only when the Municipal Council or any of its officers are sought to be prosecuted in respect of the act done by them in good faith or intended to be done under the Karnataka Municipality Act or any rule or regulation made thereunder. Since the petitioner is facing accusations of failure to prevent the pollutants entering into the lakes and water bodies, requirement of section 283 of Karnataka Municipality Act is also required under the instant set of facts.
(iii) Further, referring to the provisions of sections 193, 194, 197, 199, 201 and 203 the Karnataka Municipalities Act, 1964 learned counsel submitted that accused are under legal obligation to provide UGD system and to treat the sewage effluent generated within the limits of Town Panchayat before discharging into Kabini river water, in accordance with the provisions of the Karnataka Municipalities Act under the said circumstances, Town Panchayat having failed to prevent discharge of sewage and sullage effluent into Kabini river, in 12 spite of directions issued by the complainant/KSPC Board, accused No.1 -Town Panchayat and its officers are liable to face prosecution for violation of sections 24 and 25 of the Water Act and thus, sought to dismiss the petitions.
8. I have bestowed my careful thought to the rival contentions urged at the Bar with reference to the relevant provisions of law and the decisions relied on by the respective counsels.
9. The material allegations leveled against the petitioner is that the Town Panchayath, T.Narasipura and its officials failed to prevent pollution of Kabini river. In the light of these allegations, the questions that arises for consideration are, (1) Whether failure of accused No.1 -
Town Panchayat, T.Narasipura, to prevent the pollutants to enter into Kabini river, would constitute violation of sections 24 and 25 of the Water Act?
(2) Whether the petitioner could be held vicariously liable for the acts of commission and omission of accused No.1?
13
10. Section 24 of the Water Act deals with prohibition on use of stream or well for disposal of polluting matter, etc. It reads as under:-
24. Prohibition on use of stream or well for disposal of polluting matter, etc.-- (1) Subject to the provisions of this section,--
a) no person shall knowingly cause or permit any poisonous, noxious or polluting matter determined in accordance with such standards as may be laid down by the State Board to enter (whether directly or indirectly) into any 1[stream or well or sewer or on land]; or
b) no person shall knowingly cause or permit to enter into any stream any other matter which may tend, either directly or in combination with similar matters, to impede the proper flow of the water of the stream in a manner leading or likely to lead to a substantial aggravation of pollution due to other causes or of its consequences.
(2) A person shall not be guilty of an offence under sub-section (1), by reason only of having done or caused to be done any of the following acts, namely:--
a) constructing, improving or maintaining in or across or on the bank or bed of any stream any building, bridge, weir, dam, sluice, dock, pier, drain or sewer or other permanent works which he has a right to construct, improve or maintain;
b) depositing any materials on the bank or in the bed of any stream for the purpose of reclaiming land or for supporting, repairing or protecting the bank or bed of such stream 14 provided such materials are not capable of polluting such stream;
c) putting into any stream any sand or gravel or other natural deposit which has flowed from or been deposited by the current of such stream;
d) causing or permitting, with the consent of the State Board, the deposit accumulated in a well, pond or reservoir to enter into any stream.
(3) The State Government may, after consultation with, or on the recommendation of, the State Board, exempt, by notification in the Official Gazette, any person from the operation of sub-section (1) subject to such conditions, if any, as may be specified in the notification and any condition so specified may by a like notification be altered, varied or amended.
25. Restrictions on new outlets and new discharges.--(1) Subject to the provisions of this section, no person shall, without the previous consent of the State Board,--
a) establish or take any steps to establish any industry, operation or process, or any treatment and disposal system or any extension or addition thereto, which is likely to discharge sewage or trade effluent into a stream or well or sewer or on land (such discharge being hereafter in this section referred to as discharge of sewage); or
b) bring into use any new or altered outlet for the discharge of sewage; or
c) begin to make any new discharge of sewage: Provided that a person in the process of taking any steps to establish any industry, operation or process immediately before the commencement of the Water 15 (Prevention and Control of Pollution) Amendment Act, 1988, for which no consent was necessary prior to such commencement, may continue to do so for a period of three months from such commencement or, if he has made an application for such consent, within the said period of three months, till the disposal of such application.
(2) An application for consent of the State Board under sub-section (1) shall be made in such form, contain such particulars and shall be accompanied by such fees as may be prescribed.] (3) The State Board may make such inquiry as it may deem fit in respect of the application for consent referred to in sub-section (1) and in making any such inquiry shall follow such procedure as may be prescribed.
(4) The State Board may--
(a) grant its consent referred to in sub-section (1), subject to such conditions as it may impose, being--
i. in cases referred to in clauses (a) and (b) of sub-section (1) of section 25, conditions as to the point of discharge of sewage or as to the use of that outlet or any other outlet for discharge of sewage;
ii. in the case of a new discharge, conditions as to the nature and composition, temperature, volume or rate of discharge of the effluent from the land or premises from which the discharge or new discharge is to be made; and iii. that the consent will be valid only for such period as may be specified in the order, and any such conditions imposed shall be binding on any person establishing or taking any steps to establish any industry, operation or 16 process, or treatment and disposal system of extension or addition thereto, or using the new or altered outlet, or discharging the effluent from the land or premises aforesaid; or
b) refuse such consent for reasons to be recorded in writing.
(5) Where, without the consent of the State Board, any industry, operation or process, or any treatment and disposal system or any extension or addition thereto, is established, or any steps for such establishment have been taken or a new or altered outlet is brought into use for the discharge of sewage or a new discharge of sewage is made, the State Board may serve on the person who has established or taken steps to establish any industry, operation or process, or any treatment and disposal system or any extension or addition thereto, or using the outlet, or making the discharge, as the case may be, a notice imposing any such conditions as it might have imposed on an application for its consent in respect of such establishment, such outlet or discharge.
(6) Every State Board shall maintain a register containing particulars of the conditions imposed under this section and so much of the register as relates to any outlet, or to any effluent, from any land or premises shall be open to inspection at all reasonable hours by any person interested in, or affected by such outlet, land or premises, as the case may be, or by any person authorised by him in this behalf and the conditions so contained in such register shall be conclusive proof that the consent was granted subject to such conditions.] (7) The consent referred to in sub-section (1) shall, unless given or refused earlier, be deemed to have been given unconditionally on the expiry of a period of four months of the making of an application in this behalf complete in all respects to the State Board. 17
(8) For the purposes of this section and sections 27 and 30,--
a) the expression "new or altered outlet" means any outlet which is wholly or partly constructed on or after the commencement of this Act or which (whether so constructed or not) is substantially altered after such commencement;
b) the expression "new discharge" means a discharge which is not, as respects the nature and composition, temperature, volume, and rate of discharge of the effluent substantially a continuation of a discharge made within the preceding twelve months (whether by the same or a different outlet), so however that a discharge which is in other respects a continuation of previous discharge made as aforesaid shall not be deemed to be a new discharge by reason of any reduction of the temperature or volume or rate of discharge of the effluent as compared with the previous discharge.
It is significant to note that the expression used in section 24 that, "no person shall knowingly cause or permit any poisonous, noxious or polluting matter determining in accordance with such standard as may be laid down by the State Board to enter into any stream or well or sewer or on land". It is argued, that petitioner has not caused or permitted any such pollutants to enter into the lakes and there being no such allegations in the complaint, the very invocation of provisions of sections 24 and 18 25 of the Water Act is not tenable. In other words, the contention of learned counsel appearing for petitioner is that, mere failure to prevent the pollution of water bodies does not fall within the ambit of section 24 or section 25 of the Water Act. Referring to section 17 of the Water Act, learned counsel has emphasized that, in view of said provision, inspection of sewage or trade effluents and taking action for prevention, control or abatement of discharges of waste into streams or wells under section 17(1)(l) of the Water Act is the essential function of respondent - KSPC Board. In view of the said provision, the respondent - KSPC Board cannot shift the burden on accused No.1 - Town Panchayat and on that pretext, the respondent - KSPC Board having failed to prevent the pollution of the aforesaid lakes, cannot proceed against Town Panchayat.
11. This argument, in my view, is misconceived and contrary to the scheme of the Karnataka Municipalities Act as well as the provisions of Water Act. In this regard, it may be relevant to refer to sections 193, 194, 197, 199, 201, 203 of the 19 Karnataka Municipality Act. These provisions are extracted herebelow:-
193. Municipal control over drains, etc.--(1) All sewers, drains, privies, water-closets, house- gullies and cesspools within the [municipal area] shall be under the survey and control of the municipal council.
(2) All covered sewers and drains, all cesspools, whether public or private, shall be provided by the municipal council or other person to whom they severally belong, with proper traps, or other coverings or means of ventilation and the municipal council may, by written notice, call upon the owner of any such covered sewers, drains or cesspools to make provision accordingly.
194. Powers for making drains.--(1) In order to carry out any drainage scheme, it shall be lawful for a municipal council to carry any drain, sewer, conduit, tunnel, culvert, pipe or water-course through, across or under any street or any place laid out as or intended for a street, or under any cellar or vault which may be under any street, and, after giving reasonable notice in writing to the owner or occupier, into, through or under any land whatsoever within the [municipal area] (2) The municipal council or any officer appointed by it for such purpose may enter upon and construct any new drain in the place of an existing drain in any land wherein any drain vested in the municipal council has been already constructed, or may repair or alter any drain vested in the municipal council.20
(3) In the exercise of any power under this section, no un-necessary damage shall be done, and compensation, which shall, in case of dispute, be ascertained and determined in the manner provided in section 268 shall be paid by the municipal council to any person who sustains damage by the exercise of such power.
197. Right to carry drain through land or into drain belonging to other persons.--(1) If the owner or occupier of any [building or vacant land] desire to connect the same with any municipal drain by means of a drain to be constructed through land, or to be connected with a drain, belonging to or occupied by or in the use of some other person, he may make a written application in that behalf to the Municipal Commissioner or Chief Officer. (2) Thereupon the Municipal Commissioner or the Chief Officer after giving to such other person a reasonable opportunity of stating any objection to such application may, if no objection is raised or if any objection which is raised in his opinion is insufficient, by an order in writing authorise the applicant to carry his drain into, through, or under the said land, or into the said drain, as the case may be, in such manner and on such conditions as to the payment of rent or compensation, and as to the respective responsibilities of the parties for maintaining, repairing, flushing, clearing and emptying the said drains as may appear to him to be adequate and equitable.
(3) Every such order shall be a complete authority to the person in whose favour it is made, or to any agent or other person employed by him for this purpose, after giving or tendering to the owner, occupier or user of the said land or drain the compensation or rent, if any, specified in the said order, and otherwise fulfilling as far as possible the conditions of the 21 said order, and after giving to the said owner, occupier, or user reasonable notice in writing, to enter upon the land specified in the said order with assistants and, workmen at any time between sunrise and sunset and, subject to the provisions of this Act, to do all such work as may be necessary,--
a) for the construction or connection of the drain, as may be authorised by the said order;
b) for renewing, repairing, or altering the same as may be necessary from time to time; or
c) for discharging any responsibility attaching to him under the terms of the order as to maintaining, repairing, flushing, cleaning or emptying the said drain or any part thereof.
(4) In executing any work under this section as little damage as possible shall be done, and the owner or occupier of the [buildings or vacant lands] for the benefit of which the work is done, shall,--
a) cause the work to be executed with the least practicable delay;
b) fill in, reinstate and make good at his own cost and with the least practicable delay the ground or any portion of any building or other construction opened, broken up or removed for the purpose of executing the said work; and
c) pay compensation to any person who sustains damage by the execution of the said work.
199. Provision of privies, etc.--(1) In case the municipal council is of opinion that any privy, or cesspool, or additional privies, or cesspools, should be provided in or on any [building or vacant land], or shifted or removed from any [building or vacant 22 land] or, in any [municipal area] in which a water- closet system has been introduced, that water closets should be substituted for the existing privies in or on any [building or vacant land], or that additional water-closets should be provided therein or thereon, the municipal council may, by written notice, call upon the owner of such [building or vacant land] to provide such privies, cesspools or water-closets as the municipal council may deem proper.
(2) The municipal council, may, by written notice, require any person or persons employing workmen or labourers exceeding twenty in number, or owning or managing any market, school or theatre or other place of public resort, to provide such latrines and urinals as the municipal council may direct, and to cause the same to be kept in proper order, and to be daily cleansed.
(3) The municipal council may, by written notice, require the owner or occupier of any land upon which there is a privy or urinal to have such privy or urinal shut out, by a sufficient roof and a wall or fence, from the view of persons passing by or resident in the neighborhood, or to alter as it may direct any privy-door or trap-door which opens on to any street, and which it deems to be a nuisance.
201. Power to close existing private drains.-- When any [building or vacant land] within the [municipal area] has a drain communicating with any cesspool or sewer, the Municipal Commissioner or Chief Officer, if he considers that such drain, though it may be sufficient for the drainage of such [building or vacant land] and though it may be otherwise unobjectionable, is not adapted to the general sewerage of the locality, may, subject to the control of the standing committee, close such drain and such cesspool or sewer, whether they are or are not on land vested in the municipal council, on providing a drain or drains equally effectual for the drainage of such [building or vacant land], and 23 the Municipal Commissioner or Chief Officer may, subject as aforesaid do any work necessary for the purpose.
203. Encroachment on municipal drains, etc.-- (1) Whoever, without the written consent of the municipal council first obtained, makes or causes to be made any drain into or out from any of the sewers or drains vested in the municipal council, shall be punished with fine which may extend to twenty-five rupees, and the municipal council may, by written notice, require such person to demolish, alter, re-make or otherwise deal with such drain as it may think fit.
(2) No building shall be newly erected or rebuilt over any sewer, drain, culvert or gutter vested in the municipal council without the written consent of the municipal council, and the municipal council may, by written notice, require the person who may have erected or rebuilt such building to pull down or otherwise deal with the same as it may think fit.
12. In the backdrop of the above provisions of the Act, if the averments made in the complaint and the allegations made therein are perused, the specific case of the respondent - KSPC Board is that, accused No.1 - Board and its officials have failed to discharge the obligation cast on them under the various provisions of the Act. Undeniably, in view of the above provisions, all drains and sewers having vested with the Town Panchayat and there being clear allegations that the polluting 24 material having been let into the river through these sewers or drains, even though the pollutants are let into the drains by various other agencies like other villages not coming under Town Panchayat of T.Narasipura, yet on account of failure of Town Panchayat, T.Narasipura to prevent the flow of pollutants into the Kabini river, it has to be held that accused No.1 - Town Panchayat has knowingly permitted the pollutants to enter into Kabini river thereby making out contravention of sections 24 and 25 of the Water Act. In the light of these discussions, the contention urged by learned counsel for petitioners that accused No.1 - Town Panchayath having not caused or permitted pollutants to enter into the lakes cannot be prosecuted under sections 24 and 25 of the Water Act is liable to be rejected and it is accordingly rejected.
13. The next question that arises for consideration is, Whether on account of failure of accused No.1 - Town Panchayath to prevent the pollutants to enter into the lakes and water bodies, whether its official 25 namely accused No.2 is liable to face prosecution for the above offences?
14. In this regard, it is pertinent to note that accused No.2 is prosecuted in his capacity as Chief Officer of accused No.1 -Town Panchayat, T.Narasipura. The allegation made against accused No.2 is that he has committed an offence contravening the provisions of Section 24 and 25 of the Water (Prevention and Control of Pollution) Act, 1974.
15. Undisputedly, the statute provides for vicarious liability on the Head of the Department under the Water Act. In this context, it may be relevant to refer to section 48 of the Water Act which provides that,
48. Offences by Government Departments.- Where an offence under this Act has been committed by any Department of Government, the Head of the Department shall be deemed to be guilty of the offence and shall be liable to be proceeded against and punished accordingly:
Provided that nothing contained in this section shall render such Head of the Department liable to any punishment if he proves that the offence was committed without 26 his knowledge or that he exercised all due diligence to prevent the commission of such offence."
From the above provision, it is clear that where any Department of Government is accused of an offence under the Water Act, only the Head of the Department shall be liable to be prosecuted and punished accordingly.
16. The law on this point is now well settled. It may be useful to refer to a recent decision of the Hon'ble Supreme Court in SHIV KUMAR JATIA vs. STATE OF NCT OF DELHI in Criminal Appeal No.1263/2019 (arising out of S.L.P.(Crl.) No.8008/2018 decided on 23.08.2019. In the said case, a case was registered for the offence under sections 336 and 338 read with 32 of IPC based on the information that one Gaurav Rishi got admitted in Fortis Hospital, Vasant Kunj, vide MLC No.2240 of 2013 with the alleged history of fall from stairs. On investigation, it was found that the injured Gaurav Rishi fell from the terrace of 6th floor to 4th floor of the hotel i.e., Hyatt Regency. The case of prosecution was that terrace was dark and there was no light on the terrace and hotel staff did not stop them from going there. 27 Precisely it is the allegation that there was a lapse on the part of hotel management in taking safety measures for the guests who are allowed to terrace area. The Trial Court having issued summons to the appellants, the same was sought to be quashed before the High Court of Delhi under section 482 of Cr.P.C. In the said proceedings, the High Court considered the case as if the investigation was pending and proceeded on the basis that, to attract the ingredients of section 336 of IPC, an act done rashly and negligently, to endanger human life or personal safety are essential and to attract section 338 of IPC, in addition to the above said acts, additional ingredients of grievous hurt should be alleged and proved. The appellant in the above case was sued on the ground that he was holding the position of the Managing Director. In the absence of any specific allegations of negligence with criminal intent, in that context, the Hon'ble Supreme Court in para 27 and 29 has observed as under:-
27. The liability of the Directors/the controlling authorities of company, in a corporate criminal liability is elaborately considered by this Court in the case of Sunil Bharti Mittal. In the aforesaid case, while 28 considering the circumstances when Director/person in charge of the affairs of the company can also be prosecuted, when the company is an accused person, this Court has held, a corporate entity is an artificial person which acts through its officers, Directors, Managing Director, Chairman, etc. If such a company commits an offence involving mens rea, it would normally be the intent and action of that individual who would act on behalf of the company. At the same time it is observed that it is the cardinal principle of criminal jurisprudence that there is no vicarious liability unless the Statute specifically provides for. It is further held by this Court, an individual who has perpetrated the commission of an offence on behalf of the company can be made an accused, along with the company, if there is sufficient evidence of his active role coupled with criminal intent.
Further it is also held that an individual can be implicated in those cases where statutory regime itself attracts the doctrine of vicarious liability, by specifically incorporating such a provision.
29. By applying the ratio laid down by this Court in the case of Sunil Bharti Mittal it is clear that an individual either as a Director or 29 a Managing Director or Chairman of the company can be made as accused, along with the company, only if there is sufficient material to prove his active role coupled with the criminal intent. Further the criminal intent alleged must have direct nexus with the accused. Further in the case of Maksud Saiyed vs. State of Gujarat & Ors. this court has examined the vicarious liability of Directors for the charges leveled against the Company. In the aforesaid judgment this Court has held that, the Penal Code does not contain any provision for attaching vicarious liability on the part of the Managing Director or the Directors of the company, when the accused is a Company, when the accused is a Company. It is held that vicarious liability of the Managing Director and Director would arise provided any provision exists in that behalf in the Statute. It is further held that Statutes indisputably must provide fixing such vicarious liability. It is also held that, even for the said purpose, it is obligatory on the part of the complainant to make requisite allegations which would attract the provisions constituting vicarious liability.
30
17. The principles laid down in the above decision, in my view, squarely apply to the facts of the case. Petitioner/accused No.2 being the Chief Officer of Town Panchayath/accused No.1 is liable to be prosecuted for the alleged offences. As a result, petitioner/accused No.2 is liable for prosecution for the alleged offences punishable under sections 24 and 25 of the Water Prevention and Pollution Control Act, 1974 punishable under sections 43 & 44 of the same Act.
Hence, I proceed to pass the following:-
ORDER Criminal Petition filed by petitioner/accused No.2 is dismissed.
Sd/-
JUDGE Bss


--- layout: post title: RunKeeper Now Integrates with Fitbit categories: [] tags: - fitbit - fitness - health - runkeeper status: publish type: post published: true meta: _original_post_id: '' _original_import_author: John Duprey author: ---
Fitbit
Fitbit tracks your motion all day and night, allowing you to see how active you are, and inspiring you to walk more and do more. Set goals and track the following:- Total daily Calories burned
- Total daily Calories consumed
- How long and how well you sleep.
Runkeeper keeps getting better and better. They now integrate with Fitbit. If you are looking for ways to keep motivated on your fitness goals, get a fitbit! (http://fitibit.com). If you have an Android or iPhone with GPS and walking, hiking or running are in your routine, get the Runkeeper app (http://runkeeper.com).


{% load i18n %} {% if request.user.is_authenticated and not request.user.is_verified_user %}
{% blocktrans trimmed %} Your user account has not been affiliated with any Organization yet, and will have limited access to some of the data (such as non-public network contact information). {% endblocktrans %}
{% if not request.user.email_confirmed %}{% trans "Please take the time to confirm your email address and request affiliation"%} {% trans "here" %}.
{% else %}{% trans "You may request affiliation to an Organization or ASN" %} {% trans "here" %}.
{% endif %}


|  |
Comments are used to provide instructions and explanations. They are not displayed in the browser. |
N/A |
Container |
| <!DOCTYPE> |
HTML specification telling a browser which W3 rules the page is written in. |
N/A |
Empty |
|  |
Specifies a hyperlink, which will link from one page to another page. |
Inline |
Container |
|
 |
Specifies standalone content. |
Block |
Container |
|  |
Defines content aside (close to) the content that it is placed by. |
Block |
Container |
|  |
Contains all contents of an HTML document. |
Block |
Container |
|
 |
Inserts a single line break. |
Inline |
Empty |
|
 |
Describes a name in a description list. |
Block |
Container |
|
 |
Defines a division or section of the document. |
Block |
Container |
|
 |
Defines a description list. |
Block |
Container |
|
 |
Defines a term in a description list. |
Block |
Container |
|  |
It renders emphasized text. The text output will be in italics. |
Inline |
Container |
| <fieldset> |
It draws a box around related elements in a form. |
Block |
Container |
|
 |
Defines a caption for the figure element. |
Block |
Container |
|
 |
Specifies self contained content like illustrations or diagrams. |
Block |
Container |
|  |
Defines a footer for a document or section. |
Block |
Container |
| <form> |
Creates an HTML form for user input. |
Block |
Container |
|
to
 |
Defines HTML headings in order of descending importance. |
Block |
Container |
|  |
Can include a title for a document, scripts, styles, meta tags, and more. |
Block |
Container |
|  |
Represents a container for introductory content or a set of navigational links. |
Block |
Container |
|  |
Tells the document that this is an HTML document. |
N/A |
Container |
|  |
Specifies an inline frame. |
Inline |
Container |
|  |
Creates a holding space for the referenced image that is linked to the HTML page. |
Inline |
Empty |
| <input> |
Specifies an input field where the user can enter data. |
Inline |
Empty |
|  |
Provides a usability improvement for mouse users. |
Inline |
Container |
|
 |
Defines a list item. |
Block |
Container |
| <link> |
Defines a link between a doument and an external source. |
N/A |
Empty |
| <meta> |
Typically used to specify page description, keywords, author, or other data. It will not be displayed on the page. |
N/A |
Empty |
|  |
Defines a set of navigation links. |
Block |
Container |
|
 |
Defines an ordered (numbered) list. |
Block |
Container |
|
 |
Defines a paragraph and automatically adds some space before and after the element. |
Block |
Container |
|


Crystal Butterfly is an HTML5 game.
The goal of this game is to get the highest butterfly score
You have match minimum 3 items vertically or horizontally to win points.
When you arrive to a specific amount of points your level is increased. You win more points and time decrease faster.
At the end of each week the score board will be reveiwed and the highest scorer will recive a dicount of 25% in our online store.
Be sure to fill out our form so we have your details


{% extends "base.html" %} {% block full_width_content %}
WorldWide Telescope is a tool for showcasing astronomical data and knowledge.


Education
-
2013 - 2016Engineering degree in Computer ScienceEcole des Mines d'AlèsSpecialization in software engineering.
Done by apprenticeship.
Software development, project management, SCRUM. -
2011 - 2013BTS IRISLycée Jean Mermoz, MontpellierTechnical degree in industrial IT.
Industrial network, Software & Embedded development. -
2011French Baccalauréat S.Lycée Albert E., Bagnols-sur-Cèze
Experience
-
2016Groupe ECIA - Bagnols-sur-CèzeInternshipConception and Devloppment of systems requirement management software..
(C# .Net MVC + WebAPI / Software architecture / Continuous Integration / Tests / Agile) -
2013 - 2016Groupe ECIA - St AlexandreInternshipMaintenance of a management software. Web development in vanilla Php.
Development of a Competency profiling software with Symfony2. -
2011Groupe ECIA - Bagnols-sur-CèzeInternshipMaintenance of a management software.
Web development in Php.
Interests
- Drawing
- Painting
- Digital painting
- 3D sculpting
- Video game
- Game design
- Music
- Guitar Bass
- Piano
- Equitation


Replace the centralized entities that want to tell you where to invest. With Longmire, the research is transparently done by all of us, in a bias-free way.
Society suffers from gatekeeping and tribalism.
Longmire ratings and analyst history are stored on the blockchain. Not only is the data 100% open, it can't be changed to fit any kind of narrative.
Our ratings are the heart of our system, and they can be accessed via chatbot (Toshi or Telegram), in our app, or on our website.
Ethereum has one of the few truly decentralized core teams, and are actively working on scaling solutions (Casper).
— 0x8ff7f3ba
Litecoin benefitted early on from their Coinbase listing, but haven't really done much since Charlie Lee stepped down. Not looking good...
— 0xcc4e2865
I didn't know much about Zcash before getting this assignment, but they are strong. Solid privacy tech, great team, and a bright future.
— 0x732d00aa
Tron... just no. Plagiarized white paper, naked marketing, and zero (yep, zero) working tech. They may be a good company someday, but for now, they are incredibly overvalued.
— 0xacfe6a77b
Bitcoin is the king of crypto, and are especially undeniable now that they've broken the 50% market cap threshold again. The only safe investment in crypto.
— 0x818f0095
Monero is one of the only true privacy coins available. Ring signatures offer protection that nothing else even approaches. Ledger support is on the horizon, as well!
— 0x44bb630fd
We work closely with issuers to ensure fair, adequate coverage that mutually benefits all parties (us, you, and the general public). Contact us for more information about about joining our issuer program.
Longmire offers two ways to get involved. Ease into crypto research with our Telegram bot, or advanced financial analysts may apply for our intensive Ethereum crypto rating dApp. We'll be launching in Q1 2019, so contact us to be added to the list!
Of course, we are ultimately a token ratings platform. Browse our ratings data to find your next hot investment! Or feel free to hook into our API (coming soon!) for the most up-to-date insights into crypto data, trends, sentiment, and ratings.
We know that things like dApps and financial analysis can feel overwhelming if you're new to crypto. If words like "Metamask", "Emerald", or "Trendline" sound foreign, don't worry! We put our core game logic into a chatbot that lets you do lightweight research.
For the crypto experts, we have our full ratings dApp. Our backend is the Ethereum blockchain, making this a functional dApp. See rounds, sign up, submit files to IPFS, and rate/analyze tokens all in your browser. Contact us to become a beta tester!
At Longmire, we're committed to making crypto as safe as possible for all people. Our data is open and free to use, and can be accessed through our API (coming soon!). Our goal is to bring self-governance to the token economy. Get involved now!


Objects in this world
You should see both the Dial Computer and the Gate listed with their session IDs. If one or both are missing, please re-enter or reset the space.
Loading...
Space Data
Stargate ID:
--
Location ID:
--
Status:
--
You can enter a custom sgid here:
Register


All queries must follow following syntax { "_operation" : operation, "_operation_args" : operation_args }


{% extends "layouts/_block_content.html" %} {% from "components/radios/_macro.njk" import onsRadios %} {% from "components/button/_macro.njk" import onsButton %} {% from "components/panel/_macro.njk" import onsPanel %} {% from "components/collapsible/_macro.njk" import onsCollapsible %} {% from "components/table/_macro.njk" import onsTable %} {% from "components/list/_macro.njk" import onsList %} {% set page_title = "Cookies on surveys.ons.gov.uk" %} {% block main %} {% call onsPanel({ "classes": "ons-u-mb-s ons-u-d-no ons-cookies-confirmation-message", "type": "success" }) %}
Some parts of surveys.ons.gov.uk may use additional cookies and will have their own cookie policy and banner.
Return to previous page {% endcall %}Cookies are small files saved on your phone, tablet or computer when you visit a website.
We use cookies to store information about how you use this service, such as the pages you visit.
We use JavaScript to set our cookies. Javascript is not running on your browser so you cannot change your settings.
You can try:
{{ onsList({ "itemsList": [ { "text": 'turning on JavaScript in your browser' }, { "text": 'reloading the page in case there was a temporary fault with JavaScript' } ] }) }}We use three types of cookie. You can choose which cookies you're happy for us to use.


Continuum Analytics's mission is to revolutionize how the world's data is stored, computing, and visualized. They provide open technologies for data integration on a massive scale based on their vision of a structured, universal "data web".


Try out our Premium Member services: Virtual Legal Assistant, Query Alert Service and an ad-free experience. Free for one month and pay only if you like it.
JUDGMENT Jaspal Singh, J.
1. The petitioners who claim to be the owners of what is commonly known as Mobile Bitumen Concrete Mixing Plant filed a writ petition against the Union of India and Delhi Pollution Control Committee besides others for a direction to the respondents not to interfere in any manner in the working of that plant. It appears that the Supreme Court holding that the running of such plants was hazardous and noxious and therefore required to be immediately stopped, had passed orders for relocation of such plants in- cluding the plant of the petitioners. The petitioners in the writ petition in question took the position that as they had adopted a modern technology with an inbuilt pollution control devices their plant could neither be held as hazardous nor noxious. Their grievance was that as their plant was non- polluting the authorities could not legally act under the Air Prevention and Control of Pollution Act, 1981.
2. On September 24, 1997 when the matter was taken up by Hon. Mr. justice Arun Kumar it was found that the impugned order was appealable and that the petitioners had actually filed an appeal but before a wrong Forum. A direc- tion was thus given that another copy of the appeal be placed before the Appellate Authority which could decide the appeal on merit in accordance with law after affording an opportunity to the petitioners of personal hearing. Consequent upon that order the Counsel for the petitioners sought permission to withdraw the writ petition with liberty to seek appropriate remedy in case of any cause arising for the same. The writ petition was accordingly dismissed as withdrawn.
3. However, much after the dismissal of the writ petition, the petition- ers moved CM 108/97 alleging that although the appeal filed by the peti- tioners was still pending disposal, the authorities were taking steps to seal their unit and in that connection had issued orders on 10th December, 1997. They sought stay of the operation of the said order.
4. The C.M. came up before the learned Vacation Judge who, on 24th Decem- ber, 1997, issued notice to the other side for 22nd January, 1998 and restrained the respondents in the meanwhile from sealing the unit. It is this application which is the subject matter of this order.
5. During arguments, the learned Counsel for the respondents took prelim- inary objection that the writ petition having been dismissed as with drawn, the application could not be moved and that since the application itself was not maintainable the order passed by the learned Vacation Judge de- served to be vacated. It was, however, not disputed that appeal by the petitioners was still pending disposal and that no application had been moved before the Appellate Authority for stay of the sealing order.
6. Though arguments were advanced on behalf of the petitioners that the order of sealing was bad in law, I need not go into the same for the reason that I do feel that the preliminary objection raised on behalf of the respondents deserves to be sustained. The writ petition having been dis- missed as withdrawn nothing survived. This being the position, the peti- tioners could not file the miscellaneous application for obtaining the relief as noticed above and if any authority is needed in support, refer- ence may be made to the judgment of the Supreme Court in State of U.P. Vs. Brahm Datt Sharma, . The following observations made in the said judgment are pertinent:
"The High Court's order is not sustainable for yet another reason. Respondents' writ petition challenging the order of dismissal had been finally disposed of on August 10, 1984, thereafternothing remained pending before the High Court. No miscellaneous application could be filed in the writ petition to revive proceedings in respect of subsequent events after two years. If the respondent was aggrieved by the notice dated January 29, 1986 he could have filed a separate petition under Article 226 of the Constitution challenging the validity of the notice as it provided as separate cause of action to him. The respondent was not entitled to assail validity of the notice before the High Court by means of a miscellaneous application in the writ petition which had already been decided. The High Court had no jurisdiction to entertain the application as no proceedings were pending before it. The High Court committed error in entertaining the respondent's application which was founded on a separate cause of action. When proceedings stand terminated by final disposal of writ petition it is not open to the Court to reopen the proceedings by means of a miscellaneous application in respect of a matter which provided a fresh cause of action. If this principle is not followed there would be confusion and chaos and the finality of proceedings would cease to have any meaning."
Keeping in view what has been noticed by me above the Civil Miscellaneous Application is dismissed and with that falls the order passed by the learned Vacation Judge on 24th December, 1997. Application dismissed.


--- layout: default active: index title: Home | Enes Acikoglu description: Welcome page of the Enes Acikoglu's blog. published: true ---


THE ANDROMEDA STRAIN A film review by Steve Rhodes Copyright 1998 Steve Rhodes
RATING (0 TO ****): *** 1/2
The great director Robert Wise will probably be forever remembered for such popular musicals as WEST SIDE STORY and SOUND OF MUSIC even though he does have some significant science fiction films to his credit, including STAR TREK: THE MOTION PICTURE and THE DAY THE EARTH STOOD STILL.
In 1971 Wise directed the first film adaptation of a Michael Crichton novel, THE ANDROMEDA STRAIN. The film's screenwriter, Nelson Gidding, has had a particularly mediocre career, including such unmemorable films as BEYOND THE POSEIDON ADVENTURE and THE MUMMY LIVES. Nevertheless, THE ANDROMEDA STRAIN's staging and scripting give it an eerie documentary feel that works perfectly.
The setup for the movie is that a United States satellite crashes into an isolated desert town. On-board the satellite is a tiny organism from outer space that instantly kills everyone in town except an old drunk and a crying baby. The show's conundrum is what is the common thread that saved these two disparate individuals.
Men in protective gear are sent to survey the scene and determine what has happened. The only thing they are sure of is that the organism from space is responsible and that death occurs by turning their victim's blood into powder.
This first and most frightening part gives way to the second where deep underground in the world's cleanest environment, four scientists rush to find the cause and the cure for the greatest disaster to have ever struck earth.
Arthur Hill in one of his finest performances ever plays the team's lead scientist, Dr. Jeremy Stone. Dr. Stone wants all procedures followed carefully and no short-cuts taken just because they are under pressure. When the strain has them all about to crack, he relents and becomes more willing to cut corners in their experiments.
David Wayne plays the team's wise old man, Dr. Charles Dutton. James Olson is the team's handsome, young Dr. Mark Hall. Since Dr. Hall is the only single member of the crew, he gets to carry the key that can disarm the underground station's self-destruct system. They discuss in detail the scientific experiments that proved that a single person will be the most rational user of the key. Presumably a married person might stop the self-destruct for some selfish reason having to do with his family.
As the odd woman out, Kate Reid plays the only female member of the group, Dr. Ruth Leavitt. Carefully casting an exceedingly homely and pudgy woman, the focus stays firmly on her technical abilities and leaves aside the usual love interest that most scripts seem obliged to include. Dr. Leavitt, as it turns out, has some yet-to-be-discovered limitations, but scientifically she is a valuable member of the team.
The beauty of the script and the direction is the contrast of the fast paced demands placed on the researchers with the meticulousness of their experiments. They talk and argue like scientists whereas audiences are used to expensive actors showing off their emotions at every turn. One might criticize Wise's presentation as dull, but to me it was brilliantly realistic and totally captivating. Every twist and turn in the show draws you more and more into the story. The ending is arguably a bit too neat, but works nevertheless.
THE ANDROMEDA STRAIN runs 2:11. It is rated PG for mature themes and would be fine for kids around nine and up.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


OrRouteSelector(first: RouteSelector, second: RouteSelector)
Evaluates a route as a result of the OR operation using two other selectors
first - is a first selector
first
second - is a second selector
second


STEAL THIS MOVIE Reviewed by Jerry Saravia March 5th, 2001
I do not know much about Abbie Hoffman or his Yippie days back in the counterculture era of the 1960's but I know they must have been far more troubling and chaotic than the simplistic treatment provided in this film. If it were not for two key performances by Vincent D'Onofrio and Janeane Garofalo, I would have dismissed "Steal this Movie" as a foolhardy and empty film biography.
D'Onofrio is Abbie Hoffman, the imaginative, creative political force of the 60's who began as a civil rights activist in the South and worked his way into the anti-war movement, with particular attention paid to the Vietnam War and his staunch defense against it displayed in front of the Washington Monument. He made headlines for conjuring up absurd events such as the levitation of the Pentagon or his throwing dollar bills at New York Stock Exchange workers. It was performance theatre designed to provoke a response in the population about America's capitalist system.
None of this would mean much unless we saw the man behind the imagination.  She is intrigued and fascinated by him, and they eventually get married and have a son. However, J. Edgar Hoover and Richard Nixon are after Hoffman and invade his privacy with FBI surveillance. It gets so hot that Hoffman leaves his family and goes underground, finally giving an interview in the late 1970's and exhibiting a bipolar disorder. He also meets and falls in love with Johanna Lawrenson (Jeanne Tripplehorn), and Anita eventually grows to accept the double life Abbie has lead.
"Steal This Movie" has a fragmented narrative and visual style, thanks to the tired cliche of the reporter interviewing the subject about his past victories and losses. This cliche began with "Citizen Kane" and has been used in everything from "Lenny" to "Chaplin" and beyond. It may allow for some experimentation with narrative but it can also give the idea that we are merely watching glimpses of the biographical subject without getting too close. That is what happens with "Steal This Movie," which glides from one event to the other giving it a disconnected flow - it is like watching a "Biography" segment complete with badly used, pseudo voice-overs from Nixon and Hoover.
D'Onofrio is a revelation as he gives a beautifully modulated performance of extreme highs and lows, showcasing Hoffman's improvisational delivery in nearly everything he does yet also showing a man living in paranoia and fear about his family, friends and foes and his insular life. Janeane Garofalo also gets a chance to develop an empathetic and compassionate side to Anita, who also has her doubts about Hoffman's other lover and his insularity yet she deeply loves him.
"Steal This Movie" is nothing extraordinary and the film limits Hoffman's struggle and paranoia to that of a mere outcast, a shadow of the man who made people listen to his view on the world. Still, the 60's scene is thrillingly depicted (complete with typical tunes in the soundtrack) and there are shades throughout of Oliver Stone's "Born on the Fourth of July" in its view of how of the young revolutionaries were not always taken seriously by the conservatives. The only difference is that everyone paid attention to Abbie Hoffman.
E-mail me with any questions, comments or general complaints at<EMAIL_ADDRESS>or at<EMAIL_ADDRESS>The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Tech Breakfast
|
|
|
SSW Tech Breakfast
The best tools to Audit Your SQL Server Database The SQL 2000 Best Practices
Analyser
|
|
| Microsoft recently released a tool called Best Practices Analyser. All SQL
Server developers and administrators should run this tool. Come learn about
many issues you can't afford to ignore from database design and Yukon readiness
to T-SQL issues and poor configuration choices. This is a great session for
everyone from the new SQL Server developer to the old DBA! You'll all be
impressed when you see how to run the tool and how to fix the identified
issues.
|
|
Friday 25th June.
8:00am - 11:00am at SSW
Register
online now
More
Info
|
|
SSW Tech Breakfast
Best Practices and Techniques for building secure ASP .NET Applications
|
|
| Learn how to build secure Web applications and services using ASP.NET. This
session covers best practices for authentication, authorisation, safe
techniques for secret storage, error handling, site configuration, and data
validation. We walk through a hardened ASP.NET sample application that
demonstrates these principles.
|
|
Friday 30th July.
8:00am - 11:00am at SSW
Register
online now
|
|
Resources
|
Lumigent Log Explorer
www.ssw.com.au/ssw/LogExplorer
|
Access Unlimited
by Garry Robinson
http://www.vb123.com
|
|
|
The Cutting Edge
|
|
| G'day Developers! |
|
Developers love doing things in their own time such as investigating
interesting things they find on the web and generally being distracted. If they
don't have a project plan constantly in front of them they'll never deliver on
time! In my opinion the technical spec and the project plan should be one
document. Juggling too many documents leads to disaster on a project. With one
document it should be clear what needs to be done, especially when each task on
the spec has a box that is checked when the task is complete. A debrief is
needed every three weeks at worst. The debrief helps you understand if you're
planning too ambitiously, or not giving people enough work.
More |
|
Cheers until next time,
Adam
SSW Chief Architect and Microsoft Regional Director, Australia
Got a comment for Adam? Email
Adam |
|
Sydney .NET User Group - The best place to learn .NET for
free in Sydney
|
|
|
Sydney
.NET User Group 16th June, 2004
|
Adam Cogan will look at a couple of cool things this month including:
-
ASP.NET Whidbey Overview (ASP.NET Whidbey is the current name for the next
version of ASP.NET) Working with Data it is unreal + see the how the Caching
Improvements can significantly boost the performance of your next ASP.NET
applications.
-
Looking at a real world example of Windows Forms application and that allows
you to work in the office with a SQL Direct Connection, or out of the office
with Web Services.
|
Wednesday 16th June. 6:00 pm at Microsoft, 1 Epping Road North Ryde
See You
There!! |
Sorry I can't make it
|
|
New
Version - SSW
Upsizing PRO!
|
|
|
If your business is growing and you demand a scalable database solution, upsize
from Access Jet to the robust SQL Server environment. SSW Upsizing PRO!
prepares your Access database so you can convert effortlessly to SQL Server.
Upsizing PRO! will prevent known errors, ensuring a smooth migration. Our
clients often ask us to upsize their database from Access to SQL Server. With
Upsizing PRO, what used to take us hours can now be done at the click of a
button.
SSW Upsizing Pro!
|
|
SSW Software Audit
|
|
|
|
Companies from across the globe have been taking advantage of SSW's software
Audit Services. The common message that is received from clients is that
getting their software built in-house can sometimes lead to a failure to
identify design flaws and architectural insufficiencies. They need an unbiased
second opinion from a knowledgeable source that can make recommendations to
improve the quality of their software.
More on SSW software audits
|
|


7 February 2015
Git, GitHub Explained
Hello new web developers! And welcome to my blog. You're looking swell today! No, no really. My name is Shriyan, and I'll be guiding you along the first few steps of this exciting new journey of yours. I know you must be anxious, seeing as you probably don't know very much about anything, but I assure you by the time you're finished reading this first blog post you will be slightly better off than when you started. And that's what this journey is all about. Baby steps.
As budding web developers, two tools you may or may not have heard about yet are: Git and GitHub. If you haven't, don't worry, as I'm about to explain, but there are two things you should know from the start. First, although they share a similar name, Git and GitHub are two completely separate things that work together to allow you to save, grow, and experiment with your projects. Second, you should know that both Git and GitHub are amazing tools you will soon be using just about everyday.
Before we dive into the nitty gritty, let's first discuss the underlying concept behind both Git and GitHub: version control. The name is fairly self-explanatory, but think of version control as your safety net. Coding can be crazy. Often, answers aren't obvious and will require you to experiment before you arrive at the perfect solution. So how do you experiment with new ideas and code without potentially running into a bug that destroys everything you've worked on in the past? The answer is version control.
The basis of version control is that you're always going to be working with at least 2 copies of your project. The first, a master copy that contains all of your weeks of hard work in a working, beautiful, mistake-free master version. And the second, a copy that you can experiment with and go wild on. As far as Git and GitHub are concerned, we will use GitHub to store our master copy and reserve Git for our crazy experiments.
So what's the difference between Git and GitHub? And how do they come into play? Well, the first thing you should know is Git is a piece of software that you will access locally right from the terminal of your computer. You don't need an internet connection or anything. GitHub, on the other hand, is a web-based application. You can access GitHub at www.github.com and will need to create a profile and password to use it. Most importantly though, you should know that while they are different, Git and GitHub will be used in conjunction with one another to change, save, and update your projects.
When working on a project, ideally you will store a master copy of your work in a "repository," which is just another name for a folder, on github.com. At the same time, you will have a separate, experimental copy of your project saved locally on your computer. As you make changes to your local copy and see that everything is still working the way you want it to, you will use git commands (via your computer's terminal) to track, save (called "commit"), and "push" changes onto your master copy at github.com. GitHub will then seamlessly merge the changes made with the old master copy, leaving you with a new, updated, master version of your work. And just like that you will have added changes to an existing master copy without destroying everything.
Once you get the hang of it, you'll quickly begin to realize that the benefits of using Git and GitHub are endless. For one thing, they allow you to collaborate with a team of people on a single project, while still simultaneously keeping track of and updating your changes to a single master copy. Additionally, using the "git log" command in your terminal, you will be able to see a log of all the changes you or anyone else has made over the course of the project, as well as details regarding the time and reason for a change. Similarly, the log can be accessed from Github as well.
So that's basically it. It may still all seem a bit confusing. Believe me, I can relate. I was there not even a week ago. But the best way to use each of these tools is to read more about them, do online tutorials, and finally start using them for yourself. It will definitely seem foreign at first and maybe even a little scary. But all of a sudden, it'll all come together, and it'll be amazing.
| Prev | Next |


Gradient Compression
Gradient Compression
Gradient Compression reduces communication bandwidth, and in some scenarios, it can make training more scalable and efficient without significant loss in convergence rate or accuracy. Example implementations with GPUs, CPUs, and distributed training are provided in this document.
Benefits
Increased Speed
For architectures with fully connected layers, the gradient compression capability is observed to speedup training by about 2x, depending on the size of the model and the network bandwidth of the instance. Bigger models see larger speedup with gradient compression.
Minimal Accuracy Loss
Gradient compression uses the approach of delaying the synchronization of weight updates which are small. Although small weight updates might not be sent for that batch, this information is not discarded. Once the weight updates for this location accumulate to become a larger value, they will be propagated. Since there is no information loss, but only delayed updates, it does not lead to a significant loss in accuracy or convergence rate. In distributed training experiments[1], the accuracy loss observed due to gradient compression was as low as 1%
When to Use Gradient Compression
When training models whose architectures include large fully connected components, it can be helpful to use gradient compression. For larger models, as well as recurrent neural networks, the communication cost becomes a major factor. Such models stand to benefit greatly with gradient compression.
GPU versus CPU
The greatest benefits from gradient compression are realized when using multi-node (single or multi-GPU) distributed training. Training on CPU would provide a lower compute density per compute node as compared to the massive compute density per compute node on a GPU. Due to this, the required communication bandwidth for CPU-based nodes during training is not as high as for GPU-based nodes. Hence, the benefits of gradient compression are lower for CPU-based nodes as compared to GPU-based nodes.
Network Latency
Benefits of gradient compression can be found when using distributed training with network connected nodes. Depending on the network latency between nodes and the model's size, these can contribute to slow performance such that gradient compression may provide speed improvements.
You may not want to use gradient compression if you have low latency network communication.
Model Size
Distributed training involves synchronization of weights after each batch. Larger models have much higher communication costs during training, hence such models stand to benefit much more from gradient compression.
When running distributed training with gradient compression, the quantize and dequantize operations happen on CPU parallelized with OpenMP. For smaller models, when training on GPUs, it helps to set OMP_NUM_THREADS=1
on each node, so that the overhead of launching OMP threads doesn't cause the compression and decompression to be slow.
Model Architecture
The communication bandwidth requirements during training vary across various neural network architectures and hence the benefits of gradient compression vary accordingly.
In networks which have significant fully connected components, since such layers have low compute cost on GPUs, communication becomes a bottleneck limiting the speed of distributed training. Gradient compression can help reduce the communication cost, and thus speed up training in such cases. We have observed speedup of about 2x on large fully connected neural networks. Models like AlexNet and VGG have large fully connected components as part of the network, hence stand to benefit from gradient compression. As with these models, Long Short-Term Memory architectures require more communication bandwidth, so they also exhibit speed improvements with gradient compression.
Architectures like Convolutional Neural Networks on the other hand have a higher compute cost, in which case some communication can be parallelized with computation. Since communication is not the bottleneck in such networks, gradient compression doesn't help much.
Single Node Gradient Compression
When the training is configured to use device to device communication on a single node with multiple GPUs, gradient compression can be used to reduce the cost of communication. This can provide about 20% speedup for large models using older generation architectures. However, speed benefits may be negligible on a machine with a newer generation architecture where GPUs can communicate at low latency.
Approach
The idea behind gradient compression comes from two observations:
First, when training large neural networks, the gradients of weights computed for a small mini-batch of training data are typically sparse. Only a small fraction of the weights have significant updates after each mini-batch. The synchronization of updates that are near zero can be safely delayed longer than the typical mini-batch size. This essentially means that the rate of weight-update can vary depending on the value of an individual weight.
Secondly, gradients can be compressed significantly by considering only those gradient elements whose absolute values exceed a threshold, and then quantizing them to use lower bits per gradient value. By compressing the gradients, we can reduce communication bandwidth. The delayed gradient values, in the form of quantization error and values that don't meet the threshold, are aggregated into a gradient residual which is communicated when it reaches the threshold.
Technical Implementation
Two Bit Quantization
Currently the supported type of quantization uses two bits for each gradient value. Any positive value greater than or equal to the threshold sets two bits as 11
, any negative value whose absolute value is greater or equal to the threshold sets two bits as 10
, and others are set to 00
. This enables us to store 16 quantized gradients as one float. The error in quantization, which is original_value - quantized_value
is stored in the form of a gradient residual.
Types of Kvstore
Supported types of kvstore
are device
and all distributed kvstores such as dist_sync
, dist_async
, and dist_sync_device
. When kvstore
is device
, the communication between GPUs is compressed. Please note that this increases the memory usage of GPUs because of the additional residual stored. When using a distributed kvstore, worker-to-server communication is compressed. In this case, compression and decompression happen on the CPU, and gradient residuals will be stored on the CPU. Server-to-worker communication and device-to-device communication are not compressed to avoid multiple levels of compression.
Enabling the Gradient Compression in MXNet
Gradient compression is a run-time configuration parameter to be enabled during training. Here are the MXNet APIs to enable gradient compression:
Gluon API:
trainer = gluon.Trainer(..., compression_params={'type’:'2bit', 'threshold':0.5})
A reference gluon
implementation with a gradient compression option can be found in the train.py script from a word-level language modeling RNN example.
Module API:
mod = mx.mod.Module(..., compression_params={'type’:'2bit', 'threshold':0.5})
A module
example is provided with this guide for setting up MXNet with distributed training. It comes with the option of turning on gradient compression as an argument to the train_mnist.py script.
Configuration Details
Threshold
A default threshold
value of 0.5
is good for most use cases, but to get the most benefit from gradient compression for a particular scenario, it can be beneficial to experiment. If the threshold is set to a very large value, say 10.0
, then the updates become too infrequent and the training will converge slower. Setting the threshold automatically is expected in a future release.
Quantization
This release supports 2-bit quantization for encoding of gradients to reduce the communication bandwidth during training. Future releases will support 1-bit quantization and other approaches for encoding of gradients based on experimental evidence of benefits and user demand.
Sparse Format
We believe that the density of data will need to be really low (i.e. around > 90% zeros) to reap benefits of the sparse format. However, this is an area of experimentation that will be explored in a future release.


New Syntax Not Yet Covered
const
contexts
Infrastructure
- Enforce lint rules (already implemented)
- Disable text selection from tooltips
- Semantic HTML, and tag parsing
- Weird highlighting for
T extends (...args: never[]) => infer U ? U : never;
- Are the classifiers fighting with each other?

- Highlight descriptions
- Evaluate reusing tooltips for quickinfo.
- Need to be linked via
aria-describedby


Patient can search the doctors specifically. Patient (user) can see doctor's profile. From that patient can search the specific doctor. Also the patient can view doctor's schedule, contact details like phone number to look for an appointment according to his convenience.
The application allows user to share disease .It then processes user’s disease to display the various symptoms that could be associated with it and specialist in that disease.
User can also book appointment with doctor.
Website will also display the all appointment book by patient.


I am new to being a software engineer. I have been coding for a few months now and loving every minute of it. However I will admit this is the hardest thing I have ever done. In the past I have been a welder with master level certifications. I then spent a while selling cars till I figured out what my next steps would be. I then pursued a career as a golf course superintendent. I earned a degree from pennsylvania state university in plant science. With the pandemic and the time away from my son, I decided to pursue other opportunities. Coding had been something that I had always been interested in and had looked to several different bootcamp options. I finally settled on the University of Denver! Choosing to start coding bootcamp has been the hardest yet most rewarding task I have ever taken on.


How many times may I activate?
A single-user license permits you to install and run Hextrapolate on a single machine, but the activation limit is set to five activations, not one, to allow for scenarios such as switching to a new machine, replacing your hard drive, or performing a full system re-install. This is because the spirit of the activation system is to target mass piracy, not penalize honest paying customers.
An automatic system is in place that performs a yearly revision of each license and that grants users additional activations per license, per user, per year; this should fit in nicely with the typical pattern in which users upgrade to new machines once every year or two. The additional activations are applied to any license that is in good standing (activation limit not exceeded) and which has been activated at some point in the previous 12 months.
If you exceed the activation limit, contact me via email to<EMAIL_ADDRESS>to have your limit reset.


To compile your own version of the FrameBrowzerId program for study or modification, the following is required:
github.com/BerndGabriel/HtmlViewer
.
Indy Version 10 comes with both Delphi 2007, 2009, XE, and XE2. For other Delphi versions, Indy Version 10 may be downloaded (no charge) from http://www.indyproject.org/.
Depending on which options are selected, the following Defines should be entered in the Project|Options dialog, Directories/Conditionals tab, Conditional Defines section:
| UseSSL | Enables the OpenSourceSSL support (https). |
|---|
Both Indy and TFrameBrowser use exception handling as part of normal coding practice so exceptions don't necessarily indicate a problem. However, exceptions can be quite disconcerting when running the application from the IDE. This is especially true when Socket timeout exceptions start cascading after the IDE stops for another exception. For this reason, it's a good idea to turn off Delphi's "Break on Exception" option or at least specify that the following exceptions be ignored:
EConvertError
EIdConnClosedGracefully
EIdSocketError
EIdHTTPProtocolException
See Tools|Debugger Options|Language Exceptions for making these changes.


Enumerations | |
| enum | rbx_PodAction { rbxRobotAction_IDLE, rbxRobotAction_WORKING, rbxRobotAction_STOPPING } |
| Pod Actions. More... | |
Functions | |
| int | rbxPod_getUsbor (int podHandle, int *usborHandle) |
| Gets a handle to the Pod's parent Usbor. | |
| int | rbxPod_getName (int podHandle, char *podName, int maxLen, int *retLen) |
| Gets a Pod's name. | |
| int | rbxPod_getId (int podHandle, int *podId) |
| Gets a Pod's ID (one-based index relative to the parent Usbor). | |
| int | rbxPod_getServoCount (int podHandle, int *count) |
| Gets the number of servos contained in a Pod. | |
| int | rbxPod_getDigoutCount (int podHandle, int *count) |
| Gets the number of digouts contained in a Pod. | |
| int | rbxPod_getSensorCount (int podHandle, int *count) |
| Gets the number of sensors contained in a Pod. | |
| int | rbxPod_getPropertyHeartbeatTick (int podHandle, int *tick) |
| Gets a Pod's 'property heartbeat' tick. | |
| int | rbxPod_getSensorHeartbeatTick (int podHandle, int *tick) |
| Gets a Pod's 'sensor heartbeat' tick. | |
| int | rbxPod_getAction (int podHandle, enum rbx_PodAction *action) |
| Gets a Pod's current action. | |
| int | rbxPod_isPaused (int podHandle, int *paused) |
| Determines if a Pod is currently in the 'paused' state. | |
| int | rbxPod_pause (int podHandle) |
| Pauses a Pod. | |
| int | rbxPod_unpause (int podHandle) |
| Un-pauses a Pod. | |
| int | rbxPod_stopScript (int podHandle) |
| Stops a Pod's currently-executing script. | |
| int | rbxPod_powerAllServos (int podHandle, int power) |
| Sets power for all of a Pod's servos. | |
| int | rbxPod_runQuickScript (int podHandle, const char *scriptText, int *seq) |
| Executes the specified quick script (aka immediate script). | |
| int | rbxPod_runQuickScriptEx (int podHandle, const char *scriptText, const char *scriptName, int *seq) |
| Executes the specified quick script (aka immediate script). | |
| int | rbxPod_assignMainScript (int podHandle, const char *scriptText, const char *scriptName, int *seq) |
| Assigns the specified script to a Pod. | |
| int | rbxPod_assignMainScriptFromFile (int podHandle, const char *filename, int *seq) |
| Reads a Pod script from the specified file and assigns the script to a Pod. | |
| int | rbxPod_runMainLines (int podHandle, int startLine, int endLine, int *seq) |
| Executes a set of lines in a Pod's currently-assigned main script. | |
| int | rbxPod_runMainMacro (int podHandle, const char *macroName, int iterations, int *seq) |
| Executes the specified macro in a Pod's currently-assigned main script. | |
| int | rbxPod_runTeachCommand (int podHandle, const char *teachCommand) |
| Executes a one-line script command. | |
| int | rbxPod_isPodCmdStarted (int podHandle, int seq, int *started) |
| Determines if the Pod command with the specified sequence number has started executing. | |
| int | rbxPod_isPodCmdFinished (int podHandle, int seq, int *finished) |
| Determines if the Pod command with the specified sequence number has finished executing. |
|
|
Pod Actions.
|
|
|
Gets a handle to the Pod's parent Usbor.
|
|
|
Gets a Pod's name.
|
|
|
Gets a Pod's ID (one-based index relative to the parent Usbor).
|
|
|
Gets the number of servos contained in a Pod.
|
|
|
Gets the number of digouts contained in a Pod.
|
|
|
Gets the number of sensors contained in a Pod.
|
|
|
Gets a Pod's 'property heartbeat' tick. This number is incremented every time a property heartbeat is received, even if the heartbeat does not contain any new data. Property heartbeats carry servo data, digout data, and the Pod's 'pause' state.
|
|
|
Gets a Pod's 'sensor heartbeat' tick. This number is incremented every time a sensor heartbeat is received, even if the heartbeat does not contain any new data. Sensor heartbeats carry only sensor data.
|
|
|
Gets a Pod's current action.
|
|
|
Determines if a Pod is currently in the 'paused' state.
|
|
|
Pauses a Pod.
|
|
|
Un-pauses a Pod.
|
|
|
Stops a Pod's currently-executing script.
|
|
|
Sets power for all of a Pod's servos.
|
|
|
Executes the specified quick script (aka immediate script).
|
|
|
Executes the specified quick script (aka immediate script). This function allows a name to be associated with the script.
|
|
|
Assigns the specified script to a Pod.
|
|
|
Reads a Pod script from the specified file and assigns the script to a Pod.
|
|
|
Executes a set of lines in a Pod's currently-assigned main script.
All lines between, and including,
|
|
|
Executes the specified macro in a Pod's currently-assigned main script.
|
|
|
Executes a one-line script command.
|
|
|
Determines if the Pod command with the specified sequence number has started executing. This method is useful because Pod commands (assigning main scripts, running quick scripts, etc.) may not execute immediately. They are sent to a remote Nexus where they may be queued before execution.
|
|
|
Determines if the Pod command with the specified sequence number has finished executing.
|


In the previous topic we covered how to implement a
simple checkbox for each item in the tree control. In this topic we
cover a slightly different implementation. The checkbox for each
item will indicate whether the item is checked or not and it will
also indicate whether any of its descendant is checked or not. The
main reason for visually indicating whether a descendant is checked
is that it is easier for the user to determine if there are checked
items in the outline and if there is a checked item, it is easy to
navigate to it.
(continued)
Step 1: Create bitmap with checkbox images
Create a bitmap
that will provide the images needed for the checkbox. The images in
the bitmap below are 13x13 pixels. The first image is blank since
this bitmap is going to be used for the state image list. The next
image indicates an unchecked item. The third image indicates a
checked item. The fourth image indicates an unchecked item but
conveys that at least one of the descendant item is checked. The
fifth image indicates a checked item and also indicates that at
least one of the descendant item is checked.
Step 2: Initialize the state image list
Setting up state
images has been covered in a previous topic. If the tree control
class has a member variable m_imageState then here's how to set the
image list.
m_tree.m_imageState.Create( IDB_STATE, 13, 1, RGB(255,255,255) );
m_tree.SetImageList( &(m_tree.m_imageState), TVSIL_STATE );
Step 3: Insert items with the checkbox as a state image
If
you are using TV_INSERTSTRUCT to insert an item into the tree
control, then specify the state and the stateMask in the TV_ITEM
member. The index of the state image is specified by using the macro
INDEXTOSTATEIMAGEMASK. You can also use the SetItemState() function.
SetItemState( hItem, INDEXTOSTATEIMAGEMASK(1), TVIS_STATEIMAGEMASK );
Step 4: Add enumeration for check operation and state
Since
we are dealing with four different check states, it makes the code
more readable if we define an enumeration for the different states.
We also define an enumeration to list the different operations on
the check state.
// Attributes
public:
enum CheckState{ NOSTATE = 0, UNCHECKED, CHECKED, CHILD_CHECKED,
SELF_AND_CHILD_CHECKED };
enum CheckType{ CHECK, UNCHECK, TOGGLE, REFRESH };
Step 5: Define SetCheck() function
When we check an item,
the parent items are also updated to indicate that a descendant is
checked. Similarly, when we uncheck an item, the parents item have
to be updated again. We may also need to update the parents state if
an item is moved.
Depending on the value of nCheck, the function determines what
the new state of the item should be. If nCheck is REFRESH, only the
immediate children items are scanned to determine if the checkbox
should be red ( to indicate that a child is checked ). The function
then updates the parent items.
// SetCheck - Check, uncheck, toggle or refresh an item
// hItem - Item that is to be updated
// nCheck - CHECK, UNCHECK, TOGGLE OR REFRESH
BOOL CTreeCtrlX::SetCheck( HTREEITEM hItem, CheckType nCheck )
{
if( hItem == NULL )
return FALSE;
UINT nState = GetItemState( hItem, TVIS_STATEIMAGEMASK ) >> 12;
// Determine the new check state
if ( nCheck == CHECK )
{
if( nState == CHECKED || nState == SELF_AND_CHILD_CHECKED )
return TRUE;
switch( nState )
{
case UNCHECKED: nState = CHECKED; break;
case CHILD_CHECKED: nState = SELF_AND_CHILD_CHECKED; break;
}
}
else if( nCheck == UNCHECK )
{
if( nState == UNCHECKED || nState == CHILD_CHECKED )
return TRUE;
switch( nState )
{
case CHECKED: nState = UNCHECKED; break;
case SELF_AND_CHILD_CHECKED: nState = CHILD_CHECKED; break;
}
}
else if( nCheck == TOGGLE )
{
switch( nState )
{
case UNCHECKED: nState = CHECKED; break;
case CHECKED: nState = UNCHECKED; break;
case CHILD_CHECKED: nState = SELF_AND_CHILD_CHECKED; break;
case SELF_AND_CHILD_CHECKED: nState = CHILD_CHECKED; break;
}
}
else if( nCheck == REFRESH )
{
// Scan children to determine new state
BOOL bChildSelected = FALSE;
HTREEITEM htiChild = GetChildItem( hItem );
// Scan children
while( htiChild )
{
UINT nChildState = GetItemState( htiChild,
TVIS_STATEIMAGEMASK ) >> 12;
if( nChildState != UNCHECKED && nChildState != NOSTATE )
{
bChildSelected = TRUE;
break;
}
htiChild = GetNextItem( htiChild, TVGN_NEXT );
}
if( bChildSelected )
{
if( nState == CHECKED ) nState = SELF_AND_CHILD_CHECKED;
else if( nState == UNCHECKED ) nState = CHILD_CHECKED;
}
else
{
if( nState == SELF_AND_CHILD_CHECKED ) nState = CHECKED;
else if( nState == CHILD_CHECKED ) nState = UNCHECKED;
}
}
SetItemState( hItem, INDEXTOSTATEIMAGEMASK(nState),
TVIS_STATEIMAGEMASK );
if( nState == CHECKED
|| ( REFRESH
&& (nState == SELF_AND_CHILD_CHECKED
|| nState == CHILD_CHECKED)
)
)
{
// Mark the parents to indicate that a child item is selected.
// Use checkbox with red border.
while( (hItem = GetParentItem( hItem )) != NULL )
{
nState = GetItemState( hItem, TVIS_STATEIMAGEMASK ) >> 12;
if( nState == UNCHECKED )
SetItemState( hItem, INDEXTOSTATEIMAGEMASK(CHILD_CHECKED),
TVIS_STATEIMAGEMASK );
else if ( nState == CHECKED )
SetItemState( hItem,
INDEXTOSTATEIMAGEMASK(SELF_AND_CHILD_CHECKED),
TVIS_STATEIMAGEMASK );
}
}
else if( nState == UNCHECKED )
{
// Maybe the parent ( ancestors ) state needs to be adjusted if
// no more children selected.
while( (hItem = GetParentItem( hItem )) != NULL )
{
BOOL bChildSelected = FALSE;
HTREEITEM htiChild = GetChildItem( hItem );
// Scan children
while( htiChild )
{
UINT nChildState = GetItemState( htiChild,
TVIS_STATEIMAGEMASK ) >> 12;
if( nChildState != UNCHECKED && nChildState != NOSTATE )
{
bChildSelected = TRUE;
break;
}
htiChild = GetNextItem( htiChild, TVGN_NEXT );
}
if( bChildSelected )
{
// The parent does not need to be updated
// since there are other children still selected
break;
}
else
{
// The parent item has no more children selected.
// Mark accordingly
UINT nParentState = GetItemState( hItem,
TVIS_STATEIMAGEMASK ) >> 12;
if( nParentState == CHILD_CHECKED )
SetItemState( hItem,
INDEXTOSTATEIMAGEMASK(UNCHECKED),
TVIS_STATEIMAGEMASK );
else if ( nParentState == SELF_AND_CHILD_CHECKED )
SetItemState( hItem, INDEXTOSTATEIMAGEMASK(CHECKED),
TVIS_STATEIMAGEMASK );
}
}
}
return TRUE;
}
Step 6: Add code to OnLButtonDown to toggle checkbox
When
the user clicks on the checkbox, then the checkbox state has to be
toggled. We use the HitTest() function to determine if the click was
on the checkbox.
void CTreeCtrlX::OnLButtonDown(UINT nFlags, CPoint point)
{
UINT uFlags=0;
HTREEITEM hItem = HitTest(point,&uFlags);
if( uFlags & TVHT_ONITEMSTATEICON )
{
SetCheck( hItem, TOGGLE );
return;
}
}
Step 7: Add code to OnKeyDown to toggle checkbox
This step
provides the keyboard interface for checking and unchecking an item.
The key used is usually the space key, so we will use the space key.
The code is nearly the same as in the previous step. Instead of
using HitTest() to determine the item handle, we use the function
GetSelectedItem().
void CTreeCtrlX::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
if( nChar == VK_SPACE )
{
HTREEITEM hItem = GetSelectedItem();
SetCheck( hItem, TOGGLE );
return;
}
}
Step 8: Define helper functions
Define helper functions to
determine whether an item is checked or not and to iterate through
the checked items. The purpose of the functions is very clear from
the function names. The GetFirstCheckedItem() and the
GetNextCheckedItem() are optimized. They look at the item state
before deciding whether it should search the children items. The
GetPrevCheckedItem() function searches sequentially through all
items. I leave it as an exercise to optimize this function.
BOOL CTreeCtrlX::IsItemChecked(HTREEITEM hItem)
{
int iImage = GetItemState( hItem, TVIS_STATEIMAGEMASK )>>12;
return iImage == CHECKED || iImage == SELF_AND_CHILD_CHECKED;
}
HTREEITEM CTreeCtrlX::GetFirstCheckedItem()
{
for ( HTREEITEM hItem = GetRootItem(); hItem!=NULL; )
{
int iImage = GetItemState( hItem, TVIS_STATEIMAGEMASK )>>12;
if ( iImage == CHECKED || iImage == SELF_AND_CHILD_CHECKED )
return hItem;
if( iImage != CHILD_CHECKED )
{
HTREEITEM hti = GetNextItem( hItem, TVGN_NEXT );
if( hti == NULL )
hItem = GetNextItem( hItem );
else
hItem = hti;
}
else
hItem = GetNextItem( hItem );
}
return NULL;
}
HTREEITEM CTreeCtrlX::GetNextCheckedItem( HTREEITEM hItem )
{
hItem = GetNextItem( hItem );
while( hItem!=NULL )
{
int iImage = GetItemState( hItem, TVIS_STATEIMAGEMASK )>>12;
if ( iImage == CHECKED || iImage == SELF_AND_CHILD_CHECKED )
return hItem;
if( iImage != CHILD_CHECKED )
{
HTREEITEM hti = GetNextItem( hItem, TVGN_NEXT );
if( hti == NULL )
hItem = GetNextItem( hItem );
else
hItem = hti;
}
else
hItem = GetNextItem( hItem );
}
return NULL;
}
HTREEITEM CTreeCtrlX::GetPrevCheckedItem( HTREEITEM hItem )
{
for ( hItem = GetPrevItem( hItem ); hItem!=NULL; hItem = GetPrevItem( hItem ) )
if ( IsItemChecked(hItem) )
return hItem;
return NULL;
}
The GetNextItem() function with single argument and the
GetPrevItem() function have been defined earlier in the Get
next item in outline and the Get
previous item in outline topics.


Performs multiple linear regression analysis.
If this function is not available, you must install the Analysis ToolPak add-in.
Syntax
REGRESS(inpyrng, inpxrng, constant, labels, confid, soutrng, residuals, sresiduals, rplots, lplots, routrng, nplots, poutrng)
REGRESS?(inpyrng, inpxrng, constant, labels, confid, soutrng, residuals, sresiduals, rplots, lplots, routrng, nplots, poutrng)
Inpyrng is the input range for the y-values (dependent variable).
Inpxrng is the input range for the x-values (independent variable).
Constant is a logical value. If constant is TRUE, the y-intercept is assumed to be zero (the regression line passes through the origin). If constant is FALSE or omitted, the y-intercept is assumed to be a non-zero number.
Labels is a logical value.
If labels is TRUE, then the first row or column of the input ranges contain labels.
If labels is FALSE or omitted, all cells in inpyrng and inpxrng are considered data. Microsoft Excel will then generate the appropriate data labels for the output table.
Confid is an additional confidence level to apply to the regression. If omitted, confid is 95%.
Soutrng is the first cell (the upper-left cell) in the output table or the name, as text, of the new sheet to contain the summary output table. If FALSE, blank, or omitted, places the summary output table in a new workbook. Microsoft Excel version 5.0 uses a single output table for REGRESS; Microsoft Excel version 4.0 used three different output tables for summary, residual, and probability data.
Residuals is a logical value. If residuals is TRUE, REGRESS includes residuals in the output table. If residuals is FALSE or omitted, residuals are not included.
Sresiduals is a logical value. If sresiduals is TRUE, REGRESS includes standardized residuals in the output table. If sresiduals is FALSE or omitted, standardized residuals are not included.
Rplots is a logical value. If rplots is TRUE, REGRESS generates separate charts for each x versus the residual. If rplots is FALSE or omitted, separate charts are not generated.
Lplots is a logical value. If lplots is TRUE, REGRESS generates a chart showing the regression line fitted to the observed values. If lplots is FALSE or omitted, the chart is not generated.
Routrng is the first cell (the upper-left cell) in the residuals output table or the name, as text, of the new sheet to contain the residuals output table. If FALSE, blank, or omitted, places the residuals output table in a new worksheet. This argument is for compatibility with Microsoft Excel version 4.0 only and is ignored in later versions.
Nplots is a logical value. If nplots is TRUE, REGRESS generates a chart of normal probabilities. If nplots is FALSE or omitted, the chart is not generated.
Poutrng is the first cell (the upper-left cell) in the probability data output table or the name, as text, of the new sheet to contain the probability output table. If FALSE, blank, or omitted, places the probability output table in a new worksheet. This argument is for compatibility with Microsoft Excel version 4.0 only and is ignored in later versions.
Return to index


Having problems reading this?
View playlist on Monthly Mix
{{{ description }}}
This email was sent to
*|EMAIL|*
why did I get this?
unsubscribe from this list
update subscription preferences
*|REWARDS|*


Tresidder Union houses a number of University Offices. Most of these offices are part of the Vice-Provost Student Affairs (VPSA) organization.
To learn more about an individual office in Tresidder, select the name of the office from the pulldown menu below: