public class Polygon
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
private static bwapi.Color |
DEFAULT_COLOR |
private static boolean |
DEFAULT_VERTICES_FILLED |
private static int |
DEFAULT_VERTICES_RADIUS |
private static boolean |
DEFAULT_VERTICES_SHOWN |
private java.awt.Polygon |
polygon |
private java.util.List<Point> |
vertices |
| Constructor and Description |
|---|
Polygon() |
Polygon(java.util.List<Point> vertices) |
Polygon(bwta.Polygon bwtaPolygon) |
| Modifier and Type | Method and Description |
|---|---|
void |
addVertex(Point p)
Adds a Point to the Polygon's end that resembles a vertex.
|
boolean |
contains(Point p)
Function for test if a Point lies inside the Polygon.
|
void |
display()
Convenience function.
|
void |
display(bwapi.Color color)
Convenience function.
|
void |
display(bwapi.Color color,
boolean verticesShown)
Convenience function.
|
void |
display(bwapi.Color color,
boolean verticesShown,
int verticesRadius)
Convenience function.
|
void |
display(bwapi.Color color,
boolean verticesShown,
int verticesRadius,
boolean verticesFilled)
Function for displaying the Polygon on the ingame map.
|
java.util.List<bwapi.Pair<Line,Point>> |
findIntersections(Line line)
Function for finding an intersection between this Polygon and a given
Line.
|
private Point |
findTopStartingPoint()
Function for finding the top/left most starting Point of all given
vertices.
|
static Polygon |
generateFromPositions(java.util.List<bwapi.Position> positions)
Function for generating a Polygon object using a List of BWAPI Positions.
|
private static java.util.List<Point> |
generatePointList(bwta.Polygon bwtaPolygon)
Function for converting the Positions inside a BWTA Polygon to Points.
|
private java.util.HashSet<Point> |
generatePossibleAdjacentPoints(Point point,
java.util.HashSet<bwapi.TilePosition> checkedTilePositions)
Function for generating the Points that are the direct neighbours of a
provided Point instance with the standard tile-size stored in the Core
instance.
|
Point |
getClosestIntersection(Line line)
Function for finding the closest intersection between this Polygon and a
given Line.
|
java.util.HashSet<bwapi.TilePosition> |
getCoveredTilePositions()
Function for calculating all TilePositions that are currently being
covered by the Polygon itself.
|
java.util.List<Point> |
getVertices() |
private boolean |
isInsideAndUnchecked(Point point,
java.util.HashSet<bwapi.TilePosition> checkedTilePositions)
Function for checking if a Point is inside the Polygon itself and the
TilePosition generated by it is not already in a HashSet of already
checked TilePositions.
|
private void |
splitEdgesInHalfRecursion(int currentIndex,
int nextIndex,
Vector vecToNextPoint,
int maxEdgeLength)
Recursive function for splitting a edge inside the Polygon into two
halves.
|
void |
splitLongEdges(int maxEdgeLength)
Function for splitting all edges of the Polygon into pieces which are
smaller or equal to a provided length.
|
private static final bwapi.Color DEFAULT_COLOR
private static final boolean DEFAULT_VERTICES_SHOWN
private static final int DEFAULT_VERTICES_RADIUS
private static final boolean DEFAULT_VERTICES_FILLED
private java.awt.Polygon polygon
private java.util.List<Point> vertices
public Polygon()
public Polygon(java.util.List<Point> vertices)
public Polygon(bwta.Polygon bwtaPolygon)
public static Polygon generateFromPositions(java.util.List<bwapi.Position> positions)
positions
- the vertices of the Polygon being created.private static java.util.List<Point> generatePointList(bwta.Polygon bwtaPolygon)
bwtaPolygon
- the Polygon that is going to be converted.public java.util.HashSet<bwapi.TilePosition> getCoveredTilePositions() throws PointTypeException
PointTypeException
private Point findTopStartingPoint()
private java.util.HashSet<Point> generatePossibleAdjacentPoints(Point point, java.util.HashSet<bwapi.TilePosition> checkedTilePositions)
point
- the Point whose neighbours are being generated.checkedTilePositions
- a HashSet containing all TilePositions that must not be
generated by the Points.private boolean isInsideAndUnchecked(Point point, java.util.HashSet<bwapi.TilePosition> checkedTilePositions)
point
- the Point instance that is going to be checked.checkedTilePositions
- the HashSet of TilePositions that are forbidden / already
marked.public boolean contains(Point p)
p
- the Point being tested.public Point getClosestIntersection(Line line)
line
- the Line whose closest intersection to its starting Point with
the Polygon is being calculated.public java.util.List<bwapi.Pair<Line,Point>> findIntersections(Line line)
testVector
- the Vector whose intersections with the Polygon are being
tested.public void splitLongEdges(int maxEdgeLength)
maxEdgeLength
- the maximum length an edge is allowed to have.private void splitEdgesInHalfRecursion(int currentIndex, int nextIndex, Vector vecToNextPoint, int maxEdgeLength)
currentIndex
- the index of the starting vertex inside the Polygon.nextIndex
- the index of the following vertex inside the Polygon.vecToNextPoint
- the Vector which starts at the starting vertex and leads
towards the following vertex.maxEdgeLength
- the maximum length any edge is allowed to have. Any edge which
is longer than this provided value will be split in half.public void display()
Vector.display(Color, boolean, int, int)
public void display(bwapi.Color color)
color
- the color of the displayed Polygon.public void display(bwapi.Color color, boolean verticesShown)
color
- the color of the displayed Polygon.verticesShown
- flag set true if the vertices should be shown, false if not.public void display(bwapi.Color color, boolean verticesShown, int verticesRadius)
color
- the color of the displayed Polygon.verticesShown
- flag set true if the vertices should be shown, false if not.verticesRadius
- the radius of the vertices being shown.public void display(bwapi.Color color, boolean verticesShown, int verticesRadius, boolean verticesFilled)
color
- the color of the displayed Polygon.verticesShown
- flag set true if the vertices should be shown, false if not.verticesRadius
- the radius of the vertices being shown.verticesFilled
- flag set true if the vertices should be filled, false if not.public java.util.List<Point> getVertices()
public void addVertex(Point p)
p
- the Point that is going to be added.


Order of Events
Cocktail Hour
Processional
Nikkah Ceremony
Cake Cutting
Dinner
Rukhsati
Date: Sunday October 11th, 2020
Time: 5:30PM
Place: Township of Washington, NJ
Directions


BEFORE THE NATIONAL GREEN TRIBUNAL (WESTERN ZONE) BENCH, PUNE APPLICATOIN NO.34 OF 2014 CORAM: HON'BLESHRI JUSTICE V.R. KINGAONKAR (JUDICIAL MEMBER) HON'BLEDR. AJAYA.DESHPANDE (EXPERT MEMBER) B E T W E E N: 1. Sukdeo S/o KarbhariKolpe, Age: 60 years, Occu; Agriculture, R/oKolpewadi, TalukaKopargoan, District: Ahmednagar. 2. Sakharam S/o NathuKolpe, Age: 55 years, Occu; Agriculture, R/oKolpewadi, TalukaKopargoan, District: Ahmednagar. .........APPLICANTS AND 1. M/s KopargaonSahakariSakhar Karkhana Ltd. (KarmveerShankarrao Kale SahakariSakharKarkhana Ltd.,) (Sugar Unit) Gautamnagar, Post Kolpewadi, TalukaKopargaon, District Ahmednagar. Page 1 (J) Appln. No. 34 of 2014 2. M/s KopargaonSahakariSakhar Karkhana Ltd. (KarmveerShankarrao Kale SahakariSakharKarkhana Ltd.,) (Distillery Unit) Gautamnagar, Post Kolpewadi, TalukaKopargaon, District Ahmednagar. 3. The Maharashtra Pollution Control Board, Sub Regional Office, Through it's Sub Regional Officer, SavitribaiPhuleVyapariSankul, First Floor, Hall no.2 & 3, Near T.V. Center Savedi Ahmednagar. 4. The Regional Officer, Maharashtra Pollution Control Board, UdyogBhavan, First Floor, Trimbak Road, M.I.D.C.Compund, Near I.T.I.Satpur, Nashik. .........RESPONDENTS Counsel for Applicant(s): MadhveshwariThube-Mhase, Advocate. Counsel for Respondent(s): Mr. Anit A. Avhad, Advocate along with S.E. AvhadAdvocate for Respondent Nos. 1 & 2. Mr.D.M.Gupte/SupriyaDangre, Advocatesfor Respondent Nos.3,4. Page 2 (J) Appln. No. 34 of 2014 Date: July30th 2014 J U D G M E N T
1. This is an Application filed under Section 14,15 read with Section 18 of the National Green Tribunal Act,2010. Both the Applicants are resident of village Kolpewadi, and are an agriculturists. They have claimed compensation due to loss of agricultural crop and damage to their lands, as a result of discharge of untreated effluents by Unit of the Respondent Nos.1 and 2 (In short, 'Sugar Factory').
FACTS AND LIMITATION
2. There is no dispute about the fact that both the Applicants are agriculturists and have their respective lands at village Kolpewadi. It is undisputed that the Respondent Nos.1 and 2, run a Sugar Factory of which main product is 'sugar' and bye products are country liquor, spentwash, waste water etc. The Sugar Factory was established a way back and is in operation over a long period of more than 30/40 years. The location of the Sugar Factory is on the border of Kolpewadi and Suregaon. At a short distance from the Sugar Factory, there is River 'Godavari'. There is underground pipeline which is used for carrying partially treated spent wash of the Sugar Factory. A part of said pipeline is underneath Page 3 (J) Appln. No. 34 of 2014 of the agricultural land Gut No.48, owned by Applicant No.2- Sakharam. The agricultural land Gut No.98 admeasures 53-Rs and is situated at Shahajahapur, whereas the agricultural land Gut No.302, owned by the Applicant No.1, Sukdeo, admeasures 53-Rs and is situated at Kolpewadi.
3. Briefly stated, the Applicants case is that the Sugar Factory used to discharge polluted water and effluents in their agricultural lands, as a result of such untreated discharge of effluents, their lands become uncultivable. The groundwater of the area is polluted. The water has become unpotable. The untreated water flows from the lands of Applicants and released in 'Godavari' through a Nulla. They made several complaints which remained unheeded. Applicant No.2 - Sakharam had cultivated sugarcane crop, which was due for harvesting in the month of December, 2013. In the midst of December, 2013, the pipeline carrying spent wash of the Sugar Factory burst/broke open and, therefore, the spent wash gushed out in his agricultural land. Resultantly, the sugarcane crop standing in the area of 10-Rs was corroded. He made complaint with the Revenue Authority. The Revenue Authority, prepared panchanama in pursuance to his complaint. Though, Applicant No.1, Sukadeo, was making grievance through representations Page 4 (J) Appln. No. 34 of 2014 since 2011, yet the Respondent Nos.3 and 4, had not taken necessary corrective measures to ensure that the Sugar Factory shall not discharge untreated waste water in the nearby area. The groundwater quality of the land has deteriorated due to discharge of effluents from the Sugar Factory. The Respondent Nos.3 and 4, issued certain directions when the water sample analysis indicated that the water was contaminated, unpotable and not useful for any purpose. Still, however, as per last consent to operate order dated 6.4.2013, was granted to the Sugar Factory after accepting Bank Guarantee of Rs.50,000/-. Contamination of groundwater has resulted into pollution of well water and therefore, Applicant No.1 Sukadeo, could not cultivate his land. His land has become barren, due to such pollution, because of untreated effluent discharged by the Sugar Factory. Consequently, the Applicants seek compensation of Rs. 25 lakhs and 20 lakhs respectively. They also seek directions against the Respondent Nos.1 and 2 for closure of the Sugar Factory. They also seek directions against MPCB, to take steps against the Sugar Factory to ensure that no damage is caused to the agriculturists of the area, due to pollution caused by the Sugar Factory.
4. Main contestants are the Respondent Nos.1 and
2. They resisted the Application by filing joint written Page 5 (J) Appln. No. 34 of 2014 statement. According to them, the Sugar Factory has provided Effluent Treatment Plant (ETP), with an adequate controlled equipment for Boilers and also provided stack height of 72 meters. The Sugar Factory provides treatment through two (2) stage RO (Reverse Osmosis) to bio digested effluent and Multi Effect Evaporators (MEE) mixed with press mud and burned in Gasifier to generate energy and bio char, which is used as Fuel/Manure. It is averred that the Sugar Factory has taken all necessary steps to control water pollution and air emission. It is further contended that the Applicants have made false allegations regarding discharge of untreated waste water by the Sugar Factory in the land adjacent to their agricultural crops, which caused damage to their crops. It is categorically denied that the Applicants suffered damages due to discharge of effluents by the Sugar Factory run by the Respondent Nos.1 and 2. So also, it is denied that the sugarcane crop of the Applicant No.2, in the area of 10-Rs, was corroded due to spread of spent wash on account of bursting of the pipeline, carrying spent wash, which runs through his land. According to the Respondent Nos.1 and 2, the pipeline runs underground approximately 1 meter deep and never broken down, known to them, it was broken within the area of land of Applicant No.2 - Sakharam. It Page 6 (J) Appln. No. 34 of 2014 is alleged that both the Applicants have led improper and inflated claims without any foundation. According to contesting Respondents, Applicant No.2- Sakharam, did not allow them to repair the broken pipeline. The Sugar Factory was required to incur heavy expenditure due to obstinate conduct of Applicant No.2 - Sakharam. It is alleged that the Sugar Factory has paid Rs.49,341/- to the Applicants as payment for sugarcane crop on 5.4.2014. It is further alleged that average gross income for 10R Land will not exceed Rs.13,000/- per year and therefore, the claim put forth by Applicant No.2 - Sakharam, is highly excessive. Both the Applicants spread false rumors to defame the Sugar Factory and filed the Application with malafide intention. It is alleged that the Application is barred by limitation. It is also contended that ad-interim ex-parte relief, could not have been granted by the NGT, without hearing the contesting Respondents.
5. An additional affidavit filed by GirishJagtap on behalf of the Respondent Nos.1 and 2, in order to specify that water analysis reports, soil analysis reports, are normal and the ETP, will not be found to be effectively working.
6. The Respondent Nos.3 and 4, are the Regulatory Authorities, being Pollution Control Board and its Page 7 (J) Appln. No. 34 of 2014 Regional Officer. On their behalf, affidavit of AnkushPhulse, regional officer, is filed on record. His affidavit is to the effect that the Sugar Factory is granted consent to operate subject to certain terms and conditions. Lastly, the consent was granted on 7.3.2014, which is valid up till 31st July, 2014. The Sugar Factory has not furnished the Bank Guarantee, as per the condition enumerated in Consent to Operate. It is contended that a Show-Cause Notice dated 28.11.2014, was issued to the Sugar Factory because of the fact that there were various non-compliances found during course of inspection. Inspection carried out by the MPCB, reveals that the Sugar Factory had not provided adequate ETP and also bypass arrangements to discharge substandard quality of effluent into Nulla was improper. However, during visit dated 29th March, 2014, it was noted that ETP was provided by the Sugar Factory and was well working. It was also found that it was bypass arrangement, provided to discharge substandard effluents from evaporation of span to open Nulla outside the factory premises. Thus, the Sugar Factory did comply with the directions of MPCB. The MPCB had received a complaint regarding incident about discharge of spent wash in the agriculture land of Applicant No.2 - Sakharam (Gut No.98) at Shahahapur (Kolpewadi). The Page 8 (J) Appln. No. 34 of 2014 regional officer, Nashik had then issued a Show-Cause Notice to the Sugar Factory on 6.1.2014. The Sugar Factory had stopped discharging of spent wash through pipeline after such a Notice given by the MPCB. The Sugar Factory started leaving of spent wash by using tankers after primary treatment of bio-digester for composting. It is stated that land of Applicant No.2 - Sakharam was damaged and a portion of his crop was corroded and as such, the panchanama was drawn on 24.12.2013. It is admitted by the Respondent Nos.3 and 4, that approximately 10-Rs, agricultural land of Applicant No.2- Sakharam, was damaged due to discharge of spent wash, as a result of bursting of pipeline, which goes through the land. According to the Respondents Nos.3 and 4, now, the Sugar Factory has upgraded the system and as such problem of air and water pollution is duly addressed.
7. The MPCB has further submitted that they have issued another Show- Cause-Notice to the Respondent- Industry on 22nd April,2014, based on certain observations made during the visit on 29.3.2014, calling upon the Industry to reply within seven (7) days or else the Board may revoke the consent granted to the Industry and also confirm the closure direction. The non-
Page 9 (J) Appln. No. 34 of 2014 compliances reported in this Show-Cause-Notice, are as under:
1. Treated effluent stored in 'Kaccha'pit unscientifically, having capacity of 22000 m. qb.
2. There was bypass arrangement provided to discharge substandard effluent Pan-condensate to open Nulla outside the factory premises on Kolgaon to Suregaon road.
3. Heavy stack emissions from boiler stack.
4. JVS reports of samples collected in 2013-2014, show that the quality of treated effluent, is not meeting with the consent standards.
Subsequently, during final arguments the MPCB informed that it not has taken any decision on the above said Show-Cause-Notice.
8. Considering rival pleadings and also submissions of learned Counsel for the parties, following issues arise for adjudication of the present Application.
(i) Whether agricultural land or part thereof owned by Applicant No.1 - Sukadeo, has become uncultivable or barren for certain period, as a result of discharge of untreated effluents in the nearby Nulla, which caused pollution of groundwater and resulted into contamination of well water of the well situated in his land? If yes, what is Page 10 (J) Appln. No. 34 of 2014 approximate loss suffered by him in terms of money?
(ii) Whether Applicant No.2, suffered loss of sugarcane crop in or about 10-Rs land bearing Gut No.98, due to breaking of pipeline/bursting of pipeline carrying spent wash discharged by the Sugar Factory run by the Respondents Nos. 1 and 2 due to faulty maintenance of pipeline? If yes, whether the Sugar Factory is liable to pay compensation to Applicant No.1 - Sukadeo, for loss of sugarcane crop due to such discharge of spent wash by the Sugar Factory in his land?
(iii)Whether the Application is barred by Limitation?
(iv) Whether groundwater quality in the surrounding areas, is deteriorated due to Industrial effluents of the Respondent- Industry and has resulted into damage to fertility of the agricultural lands in the area and if yes, whether remedial measures are necessary for improvement of water quality and what steps the Respondent - Industry and Authorities are required to undertake? Re :-- Points (i) & (ii) :
9. We have heard learned Counsel for the parties. We have carefully perused the documents placed on record. It is pertinent to note that the independent Authority like Page 11 (J) Appln. No. 34 of 2014 the Pollution Control Board, categorically admits two things. First, there was incident of breaking of the underground pipeline, which resulted into loss of sugarcane crop, standing in the land of Applicant No.2. Secondly, untreated waste water was being discharged and drifted through a Nulla connecting 'Godavari' river by the Sugar Factory. In other words, before updating all the equipment, the Sugar Factory had not taken due care to ensure zero discharge, though assurances were being given to install proper ETP. The MPCB had given interim directions vide communication dated 22nd March, 2014, for installation of proper ETP, furnishing of time bound programme to update ETP within one month, not to discharge substandard quality of effluents outside the factory premises in any condition and to furnish irrecoverable Bank Guarantee of Rs.50,000/-, as well as Bank Guarantee of Rs.5 lakh and Rs. 2.5 lakh, to secure compliance of the consent conditions. The documents placed on record, go to show that inspite of repeated directions of the MPCB, the Respondent Nos. 1 and 2, had not taken due care to improve the system, in order to ensure zero discharge.
10. Though, it is manifest from the recorded that there was understanding of breaking of underground pipeline, which resulted into gushing of spent wash in the Page 12 (J) Appln. No. 34 of 2014 sugarcane crop standing in the land Gut No.98, owned by Applicant No.2 - Sakharam, yet, the Respondent Nos.1 and 2, flatly denied such averment. They came out with a case that the Application is based upon concocted averments. This attitude of the Respondent Nos.1 and 2, is unfair. It appears that the Respondent Nos.1 and 2, did not file any FIR at the Police Station. Had there been any sabotage or criminal act done by any anti-social elements, then they would have filed such report with the police. Absence of filing any complaint with the police, is indicative of the fact that bursting of underground pipeline did occurred, because of improper maintenance and undue care at the hands of the Respondent Nos.1 and 2. The Respondent Nos.1 and 2, were required to ensure proper handling of spent wash and other products of the Sugar Factory, so as to avoid adverse impact on the crops and the lands of nearby areas. The adverse impact of pollution caused by the Sugar Factory, must have been avoided by the Sugar Factory. The precautionary principle is squarely applicable in the context of the present case. It was expected that the Respondent Nos.1 and 2, should take precaution to avoid such mishap. They did not take adequate precaution to avoid the same.
11. Now, perusal of the visit report dated 29th March, 2014, prepared by the regional officer of MPCB that in Page 13 (J) Appln. No. 34 of 2014 presence of villagers and the revenue officers, goes to show that in land Gut No.302, of village Kolpewadi, there was no crop found. Admittedly, Applicant No.1 - Sukdeo owns land Gut No.302, admeasuring 83-R. The inspection report further shows that the channel near Kolgaon-Suregaon boundary was found carrying water and there was water flowing through the gutter, running within boundary of the Sugar Factory. The Sugar Factory was found to have discharged untreated water in the Nulla and subsequently it was being discharged in a well. The water analysis reports of the water samples collected during the relevant period, are also indicative of the fact that the water found in the area was unfit for human use, agricultural use or for any other purpose.
12. Perusal of the photographs attached with the affidavit of the Respondent Nos.1 and 2, go to show that the Sugar Factory has updated the system. It is, no doubt, true that recently the Sugar Factory has improved the system and the effluent discharge being done scientifically. It also appears that certain incorrect reporting was done in the newspapers, however, that is not of much significance. The copy of 7x12 extract in respect of Gut No.302, shows that for the year 2010- 2011, crop like Corn and Soyabin were cultivated in that land. One cannot be oblivious of the fact that there is a Page 14 (J) Appln. No. 34 of 2014 well in the said land and Applicant No.1 - Sukdeo is the member of Sugar Factory. Still, however, now he is unable to cultivate sugarcane crop. The entries in the 7x12 extracts, show that the land is unfit for cultivation of such crop, which requires irrigation.
13. Be that may as it is, fact remains that due to discharge of untreated effluent in the land Gut No.302, owned by Applicant No.1-Sukdeo, at least for some period, may be of a year or so, his land became uncultivable. So also, is quite explicit that due to bursting of pipeline, running underneath the land of Applicant No.2 - Sakharam, his land Gut No.98, also suffered loss due to corroding of sugarcane, in or about area of 10-Rs. The Respondent Nos.1 and 2, failed to demonstrate that they observed precautionary principle. The loss caused to the Applicants cannot be attributed to 'act of God', i.e. "vis major". Obviously, it is due to improper care taken by the Respondent Nos. 1 and 2, particularly, for the purpose of arresting discharge of spent wash and discharge of untreated water from the Sugar Factory, that such damage is caused. Needless to say, both the Applicants are entitled to compensation for loss sustained by them and the Respondent Nos. 1 and 2, also shall be liable to restore the damage caused to the lands and groundwater in the area.
Page 15 (J) Appln. No. 34 of 2014
14. As regards quantum of compensation. It is true that the Applicants have not given sufficient evidence to justify the amounts claimed by them in the Application. It is true that the amounts claimed by them appears to be of much higher side. What appears from the record is that Applicant No.1 Sukdeo, probably lost irrigation facility for a period of couple of years and, therefore, might have suffered financial loss for about Rs.2 lakh. His claim for compensation of Rs. 25,00,000/- (twenty five lakh), is highly inflated. It is without any rationale and foundation. It appears that Applicant No.2 Sakharam, lost sugarcane crop standing in 10-Rs area for one year, which could be valued at Rs. 1,50,000/-, considering expenditure required by him for the purpose of cultivation and overhead charges etc. Learned Counsel for the Respondent Nos. 1 and 2, invited our attention to payment given to Applicant No.2 Sakharam by the Sugar Factory. We do not found it enough to consider such payment receipts as sufficient evidence to determine the quantum of compensation, particularly, in view of the fact that the Respondent Nos. 1 and 2, have not come forward with clean hands. Because they tried to deny each and everything in their reply affidavits. The quantum of compensation has to be assessed, of course, on the basis of hypothesis and goods work, having regard to the Page 16 (J) Appln. No. 34 of 2014 market value of the crops, overhead charges and relevant factors in the rural area. Considering aspects, we deem it proper to hold that the Applicant No.1, is entitled to receive compensation of Rs.2 lakh and the Applicant No.2, is entitled to receive compensation of Rs.1.5 lakh from the Respondent Nos. 1 and 2.
Re:- Point (iii)
15. So far as question of limitation is concerned, we cannot overlook the fact that the present Application is covered by Section 14 read with Section 15 ( ) of the NGT Act, 2010. An Application can be filed within a period of five (5) years from the date of 'cause of action'. Alleged cause of action, even if it be stretched to the year 2013, or first week of the said year, yet, the Application filed as on 10.3.2014, is well within limitation. The Respondent Nos. 1 and 2, failed to show as to how the Application is barred by limitation. The Application cannot be, therefore, dismissed on such ground. Re:- Point (iv)
16. It is observed from the submissions made by the Applicants and also the Respondent Nos.3 and 4, that the MPCB had collected samples of the well water from the wells in Kolpewadi, Suregaon and Kolgaon on random basis in last few years. It is noted that the MPCB had collected two (2) samples from the wells of the Applicants Page 17 (J) Appln. No. 34 of 2014 on 5.11.2011 and the reports of MPCB further indicate that the water quality is highly deteriorated, particularly, in terms of BoD, CoD and conductivity etc. Further some other groundwater samples collected by the MPCB and enclosed along with the additional affidavit, are also exceeding the standards. However, the sampling exercise conducted by the MPCB, is quite random and it seems that no scientific approach was adopted to design a sampling network and then establish an appropriate sampling frequency, so that reliable statistic information can be derived from such data. No doubt, random sampling at various locations indicate the status of the groundwater quality, which is deteriorated due to various reasons including the impact of uncontrolled discharge and storage of the industrial effluent, particularly in 'Kaccha' lagoon by the Respondent-Industry; the exact quantum and spread of pollution cannot be assessed from such random data. It would have been more appropriate on the part of MPCB, that in view of regular complaints, a scientific data base should have been developed, on the groundwater status in the area. In absence of such data base, the Tribunal finds it difficult to suggest specific remedial measures and also, the costs associated with such remediation.
Page 18 (J) Appln. No. 34 of 2014
17. The issue of groundwater contamination seems to be serious, as it is undisputed fact that the Respondent- Industry, is providing water supply to some of the villagers due to well water pollution. The groundwater is an important natural resource and more importantly remediation of pollution of groundwater is a very complex subject, as it is difficult to assess the level and spread of contamination and further remediation takes long time to perform and, therefore, it is necessary that efforts shall be taken by the Regulatory Authorities to avoid groundwater contamination on priority basis. In the instant case, probability of further contamination of groundwater still persists, as the reports of MPCB indicate that treated industrial effluents of the Respondent-Industry, are even now not meeting the norms and the critical parameters of BoD and CoD and are still highly exceeding the standards. The MPCB further submits that 'Kaccha' lagoons are still in the operation and untreated effluent, is stored in the same. All these observations give clear indications of continued groundwater contamination. The MPCB should have taken immediate action for stopping the use of 'Kaccha' pit and carrying out necessary remediation thereof on priority. Further, it is not clear what action plan MPCB has taken for continuous violation of its consent Page 19 (J) Appln. No. 34 of 2014 conditions by the Respondent-Industry. The fact that MPCB has not taken any action after issuing Show- Cause-Notice on 22nd April, 2014, when the matter is before the NGT, speaks a volume. We have already given our elaborate opinion on the enforcement policy of MPCB in the matters of VinolKalwalvs State of Maharashtra (Application No.30(THC)/2013) we expect that the MPCB to take suitable legal action in the instant case also, within next two (2)weeks.
18. The Tribunal finds that the groundwater quality in the surrounding area, has been deteriorated, as observed from the MPCB reports. However, in absence of scientific data base, skill and spread of the groundwater contamination cannot be assessed. It is, therefore, necessary that the MPCB, which is Regulatory Authority, and is also mandated under Section 17 of the Water Act, and shall take immediate measures to formulate the comprehensive and scientific action plan for remediation and improvement of the groundwater quality in the surrounding areas. The MPCB may conduct necessary assessment of groundwater pollution in the vicinity of the Respondent-Industry and develop necessary action plan for restitution and restoration of the groundwater quality within next six (6) months. The MPCB shall direct the Respondent-Industry to execute such action plan and if Page 20 (J) Appln. No. 34 of 2014 the Industry is unwilling or unable to execute such action plan, then MPCB shall execute the same on its own, may be by taking the help of an Expert Agencies, if required. The entire restitution and restoration exercise, shall be completed maximum in next two (2) years. The entire costs of developing of action plan and also execution thereof, shall be borne by the Respondent-Industry, which shall be recovered by the MPCB from the Respondent-Industry.
19. Takingstock of foregoing reasons, we are inclined to partly allow the Application in the following manner:
(I) The Application is partly allowed. (II) Applicant No.1- Sukdeo, shall recover compensation of Rs. 2,00,000/- (two lakhs) and Applicant No.2 Sakharam, shall recover compensation of Rs. 1,50,000/- from the Respondent Nos.1 and 2, along with interest @ 18% p.a. from the date of the Application till said amount is paid by from the Respondent Nos.1 and 2 to them, under Section 14 read with Section 15 ( ) of the NGT Act, 2010.
(III) The Respondent Nos.1 and 2, shall restore damaged land to its original position at their own costs and also shall restore the water quality of the well in the area surrounding the Sugar Page 21 (J) Appln. No. 34 of 2014 Factory, as noted by the MPCB in the Joint Inspection Report. This work shall be carried out under the supervision of the Regional officer of MPCB the Deputy Collector, and the District Agricultural Officer, Ahmednagar.
(IV) The MPCB shall prepare necessary action plan for restitution and restoration of groundwater quality in the surrounding areas and execute the same as detailed in above paragraphs. The Collector, Ahmednagar, shall review the progress of this direction on quarterly basis.
(V) The progress report of restitution and restoration works, shall be submitted to the NGT, (WZ) Bench Pune, at the end of each quarter by the MPCB, and the Collector, Ahmednagar, for next two (2) years.
(VI) The MPCB shall issue necessary directions to the Respondent No.1 to improve their pollution control systems in next six (6) months. In case, the Respondent No.1, fails to improve the pollution control system, the MPCB, shall take further action of revoking/refusal of consent and/or closure of Industry. In case, such action is initiated by the MPCB, the restart and/or Page 22 (J) Appln. No. 34 of 2014 renewal of consent shall be done only with the permission of the Tribunal.
(VII) The Respondent Nos.1 and 2, shall pay costs of Rs.50,000/- to the Applicant Nos.1 and 2, being costs of Application and legal fees. They also shall pay costs of Rs.25,000/- to the Respondent Nos.2 and 3 and shall bear own costs.
.............................................,JM (Justice V. R. Kingaonkar) ..........................................., EM (Dr. Ajay.A. Deshpande) Date : 30th July, 2014.
Page 23 (J) Appln. No. 34 of 2014 Page 24 (J) Appln. No. 34 of 2014


--- layout: post status: publish published: true title: vSphere here we come author: display_name: iguy login: iguy email<EMAIL_ADDRESS>url: '' author_login: iguy author_email<EMAIL_ADDRESS>wordpress_id: 49 wordpress_url: http://itsjustanotherlayer.com/?p=49 date: !binary |- MjAwOC0xMi0yMiAyMDoyNzoxMiAtMDYwMA== date_gmt: !binary |- MjAwOC0xMi0yMiAyMDoyNzoxMiAtMDYwMA== categories: - VMware tags: - ESX - VI - VMware - vSphere comments: - id: 23 author: Jezza author_email<EMAIL_ADDRESS>author_url: http://www.surfaceoptics.com/ date: !binary |- MjAwOS0wMS0yOSAyMjo0Mzo0MyAtMDYwMA== date_gmt: !binary |- MjAwOS0wMS0yOSAyMjo0Mzo0MyAtMDYwMA== content: http://www.surfaceoptics.com/Products/FTIRs/VSphere.htm - We have the TM!! ---
Ever since VMworld 2008 I've been waiting on the official words on what the new VI4 version name will be. I figured it'd be changed from VMware VI4 which was the latest name. Just wasn't sure what it would change to.
Du Du DAAHAHAAAAA
Makes sense. Just curious when the official announcement will come.


Change Passwpord Navbar
Change Password
Update password success.
Password not match.
Current Password
New Password
Confirm New Password
Submit


A lightboard is a translucent surface illuminated from behind, used for
situations where a shape laid upon the surface needs to be seen with high contrast. In the "old days"
of photography photograpers used a lightboard to get a quick view of, sorting and organizing their slides.
All images appearing in this page are the exclusive property of Leif Olsen and are protected under the United States and International Copyright laws.
The images may not be reproduced or manipulated without the written permission of Leif Olsen.
Use of any image as the basis for another photographic concept or illustration (digital, artist rendering or alike) is a violation of the United States and International Copyright laws.
All images are copyrighted © Leif Olsen, 2016.


CHARLIE CHAN'S MURDER CRUISE (director: Eugene J. Forde; screenwriters: Robertson White/Lester Ziffren/from a story by Earl Derr Biggers "Charlie Chan Carries on"; cinematographer: Virgil E. Miller; editor: Harry Reynolds; cast: Sidney Toler (Charlie Chan), Marjorie Weaver (Paula Drake), Lionel Atwill (Dr. Sudermann), Charles Middleton (Mr. Walters), Leo G. Carroll (Professor Gordon), Robert Lowery (Dick Kenyon), Cora Witherspoon (Susie Watson), Kay Linaker (Mrs. Pendleton), Don Beddoe (Fred Ross), Leonard Mudie (Gerald Pendleton), Sen Yung (Jimmy Chan), Harlan Briggs (Coroner), C. Montague Shaw (Inspector Duff), Claire Du Brey (Mrs. Walters), Tom Layne Jr. (Willy Chan); Runtime: 75; 20th Century Fox; 1940)
Reviewed by Dennis Schwartz
An above-average entry into the Charlie Chan series. This version is a remake of the 1931 Fox release "Charlie Chan Carries On," a film that no longer exists. It opens in Charlie Chan's (Toler) police office in Honolulu, where son number two, Jimmy (Yung), and son number seven, Willy (Layne), are going through their father's mail to intercept a bad report card from school. Soon Charlie enters his office and is about to spank son number seven for going through his mail, when Inspector Duff (Shaw) of Scotland Yard comes in and saves him. He tells Charlie he's working on solving a string of strangler murders, and has boarded incognito in New York a cruise ship on a world tour run by Dr. Sudermann (Lionel Atwill). When Charlie leaves the room to ask his police captain permission to work with Duff he finds out that a Mr. Kenyon, a member of the cruise party, has been strangled in the hotel the cruise's guests are staying at. Returning to his office, he finds that the strangler has also gotten to Duff. Charlie is shaken that his good friend is killed and especially since the attack took place in his office. He says, "It's a bitter challenge to me." The police captain assigns him the case, and Charlie goes to the hotel room where the victim was found.
 The cruise director, Dr. Sudermann, whose luggage strap was used on the victim. Professor Gordon (Leo G. Carroll), an archeologist who mistakes the Golden Age in China for taking place during the Han dynasty. Fred Ross (Beddoe), a suitor of wealthy socialite Susie Watson (Witherspoon); he has lots of cash but no known occupation. A religiously fanatical couple, the Walters (Claire Du Brey and Charles Middleton), who see things from 'the beyond.' A very nervous man, Mr. Pendleton (Mudie), who lied and did not tell the police Kenyon was killed in his bed and that he moved his body next-door back to Kenyon's own room.
The strangler is seen disguised as a bearded bum, and now in order to get him it becomes a question of figuring out the motive for these revenge killings. With both the help and hindrance of Jimmy Chan, Charlie narrows down the suspects. After the cruise ship goes through the foggy night it reaches San Francisco and another two murders are committed. Charlie gathers all the ship's passengers in the city morgue and sets his ingenious trap by using the supposedly blinded widow (Kay Linaker) of the first victim as bait. What made this Chan adventure fun was that the many characters in it were easy to know, and it was a difficult case to solve.
REVIEWED ON 7/31/2001 GRADE: B-
Dennis Schwartz: "Ozus' World Movie Reviews"
http://www.sover.net/~ozus
<EMAIL_ADDRESS>© ALL RIGHTS RESERVED DENNIS SCHWARTZ
========== X-RAMR-ID: 29034 X-Language: en X-RT-SourceID: 873 X-RT-AuthorID: 1315 X-RT-RatingText: B-
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


|
Xenomai
3.0.4
|
POSIXish mutual exclusion servicesl. More...
Data Structures | |
| struct | RT_MUTEX_INFO |
| Mutex status descriptor. More... | |
Functions | |
| int | rt_mutex_create (RT_MUTEX *mutex, const char *name) |
| Create a mutex. More... | |
| int | rt_mutex_delete (RT_MUTEX *mutex) |
| Delete a mutex. More... | |
| int | rt_mutex_acquire_timed (RT_MUTEX *mutex, const struct timespec *abs_timeout) |
| Acquire/lock a mutex (with absolute timeout date). More... | |
| static int | rt_mutex_acquire_until (RT_MUTEX *mutex, RTIME timeout) |
| Acquire/lock a mutex (with absolute scalar timeout). More... | |
| static int | rt_mutex_acquire (RT_MUTEX *mutex, RTIME timeout) |
| Acquire/lock a mutex (with relative scalar timeout). More... | |
| int | rt_mutex_release (RT_MUTEX *mutex) |
| Release/unlock a mutex. More... | |
| int | rt_mutex_inquire (RT_MUTEX *mutex, RT_MUTEX_INFO *info) |
| Query mutex status. More... | |
| int | rt_mutex_bind (RT_MUTEX *mutex, const char *name, RTIME timeout) |
| Bind to a mutex. More... | |
| int | rt_mutex_unbind (RT_MUTEX *mutex) |
| Unbind from a mutex. More... | |
POSIXish mutual exclusion servicesl.
A mutex is a MUTual EXclusion object, and is useful for protecting shared data structures from concurrent modifications, and implementing critical sections and monitors.
A mutex has two possible states: unlocked (not owned by any task), and locked (owned by one task). A mutex can never be owned by two different tasks simultaneously. A task attempting to lock a mutex that is already locked by another task is blocked until the latter unlocks the mutex first.
Xenomai mutex services enforce a priority inheritance protocol in order to solve priority inversions.
|
inlinestatic |
Acquire/lock a mutex (with relative scalar timeout).
This routine is a variant of rt_mutex_acquire_timed() accepting a relative timeout specification expressed as a scalar value.
| mutex | The mutex descriptor. |
| timeout | A delay expressed in clock ticks. |
| int rt_mutex_acquire_timed | ( | RT_MUTEX * | mutex, |
| const struct timespec * | abs_timeout | ||
| ) |
Acquire/lock a mutex (with absolute timeout date).
Attempt to lock a mutex. The calling task is blocked until the mutex is available, in which case it is locked again before this service returns. Xenomai mutexes are implicitely recursive and implement the priority inheritance protocol.
| mutex | The mutex descriptor. |
| abs_timeout | An absolute date expressed in clock ticks, specifying a time limit to wait for the mutex to be available (see note). Passing NULL the caller to block indefinitely. Passing { .tv_sec = 0, .tv_nsec = 0 } causes the service to return immediately without blocking in case mutex is already locked by another task. |
|
inlinestatic |
Acquire/lock a mutex (with absolute scalar timeout).
This routine is a variant of rt_mutex_acquire_timed() accepting an absolute timeout specification expressed as a scalar value.
| mutex | The mutex descriptor. |
| abs_timeout | An absolute date expressed in clock ticks. |
| int rt_mutex_bind | ( | RT_MUTEX * | mutex, |
| const char * | name, | ||
| RTIME | timeout | ||
| ) |
Bind to a mutex.
This routine creates a new descriptor to refer to an existing mutex identified by its symbolic name. If the object not exist on entry, the caller may block until a mutex of the given name is created.
| mutex | The address of a mutex descriptor filled in by the operation. Contents of this memory is undefined upon failure. |
| name | A valid NULL-terminated name which identifies the mutex to bind to. This string should match the object name argument passed to rt_mutex_create(). |
| timeout | The number of clock ticks to wait for the registration to occur (see note). Passing TM_INFINITE causes the caller to block indefinitely until the object is registered. Passing TM_NONBLOCK causes the service to return immediately without waiting if the object is not registered on entry. |
| int rt_mutex_create | ( | RT_MUTEX * | mutex, |
| const char * | name | ||
| ) |
Create a mutex.
Create a mutual exclusion object that allows multiple tasks to synchronize access to a shared resource. A mutex is left in an unlocked state after creation.
| mutex | The address of a mutex descriptor which can be later used to identify uniquely the created object, upon success of this call. |
| name | An ASCII string standing for the symbolic name of the mutex. When non-NULL and non-empty, a copy of this string is used for indexing the created mutex into the object registry. |
| int rt_mutex_delete | ( | RT_MUTEX * | mutex | ) |
Delete a mutex.
This routine deletes a mutex object previously created by a call to rt_mutex_create().
| mutex | The mutex descriptor. |
| int rt_mutex_inquire | ( | RT_MUTEX * | mutex, |
| RT_MUTEX_INFO * | info | ||
| ) |
Query mutex status.
This routine returns the status information about the specified mutex.
| mutex | The mutex descriptor. |
| info | A pointer to the returnbuffer" to copy the information to. |
| int rt_mutex_release | ( | RT_MUTEX * | mutex | ) |
Release/unlock a mutex.
This routine releases a mutex object previously locked by a call to rt_mutex_acquire() or rt_mutex_acquire_until(). If the mutex is pended, the first waiting task (by priority order) is immediately unblocked and transfered the ownership of the mutex; otherwise, the mutex is left in an unlocked state.
| mutex | The mutex descriptor. |
| int rt_mutex_unbind | ( | RT_MUTEX * | mutex | ) |
Unbind from a mutex.
| mutex | The mutex descriptor. |
This routine releases a previous binding to a mutex. After this call has returned, the descriptor is no more valid for referencing this object.


Class Tools
Class of miscellaneous, multi access functions - all static for ease of re-use
Inheritance
System.Object
Tools
Inherited Members
System.Object.ToString()
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
Assembly: BatRecordingManager.dll
public static class Tools
Methods
|
Improve this Doc
View Source
Clears all the children of this canvas except children of type Grid
Declaration
public static void ClearExceptGrids(this Canvas canvas)
Parameters
| Type |
Name |
Description |
| System.Windows.Controls.Canvas |
canvas |
|
|
Improve this Doc
View Source
Copies a directory and its contents recursively or not depending
on the boolean parameter
Declaration
public static void DirectoryCopy(string sourceDirName, string destDirName, bool copySubDirs)
Parameters
| Type |
Name |
Description |
| System.String |
sourceDirName |
|
| System.String |
destDirName |
|
| System.Boolean |
copySubDirs |
|
|
Improve this Doc
View Source
Recursively deletes this directory and all sub directories and allthe files in those
directories, setting attributes to Normal as it goes so even Read-Only items will get deleted
Declaration
public static void DirectoryDelete(string topDir)
Parameters
| Type |
Name |
Description |
| System.String |
topDir |
|
|
Improve this Doc
View Source
Declaration
public static void ErrorLog(string error)
Parameters
| Type |
Name |
Description |
| System.String |
error |
|
|
Improve this Doc
View Source
Finds a descendant of the object
Declaration
public static T FindDescendant<T>(DependencyObject obj)
where T : DependencyObject
Parameters
| Type |
Name |
Description |
| System.Windows.DependencyObject |
obj |
|
Returns
Type Parameters
|
Improve this Doc
View Source
Declaration
public static T FindParent<T>(DependencyObject child)
where T : DependencyObject
Parameters
| Type |
Name |
Description |
| System.Windows.DependencyObject |
child |
|
Returns
Type Parameters
|
Improve this Doc
View Source
Formats the time span. Given a Timespan returns a formatted string as mm'ss.sss" or 23h59'58.765"
Declaration
public static string FormattedTimeSpan(TimeSpan time)
Parameters
| Type |
Name |
Description |
| System.TimeSpan |
time |
The time.
|
Returns
| Type |
Description |
| System.String |
|
|
Improve this Doc
View Source
Displays a file save dialog to the user to allow them to select a location and filename to
write to. Parameters give an prefferred location, which can be null, and a prefferred file
extension which can be null. The function checks if the requested file already exists and
takes appropriate actions. The file extension can be changed by the user.
If the dialog is cancelled an empty string is returned.
Defaults to MyDocuments and .wav
Declaration
public static string GetFileToWriteTo(string initialLocaltion, string desiredExtension)
Parameters
| Type |
Name |
Description |
| System.String |
initialLocaltion |
|
| System.String |
desiredExtension |
|
Returns
| Type |
Description |
| System.String |
|
|
Improve this Doc
View Source
Returns the path component from the fully qualified file name
Declaration
public static string GetPath(string wavFile)
Parameters
| Type |
Name |
Description |
| System.String |
wavFile |
|
Returns
| Type |
Description |
| System.String |
|
|
Improve this Doc
View Source
Uses the recording start and end times to calculate the recording duration
and if the end time is earlier than the start time adds 1 day to the end time
to allow for recordings starting before midnight and ending after midnight.
Does not mak allowance for multi-day recordings.
Declaration
public static TimeSpan GetRecordingDuration(Recording recording)
Parameters
Returns
| Type |
Description |
| System.TimeSpan |
|
|
Improve this Doc
View Source
Extension method for IEnumerable(T) to check if the list is null or empty
before committing to a foreach
Declaration
public static bool IsNullOrEmpty<T>(this IEnumerable<T> list)
Parameters
| Type |
Name |
Description |
| System.Collections.Generic.IEnumerable<T> |
list |
|
Returns
| Type |
Description |
| System.Boolean |
|
Type Parameters
|
Improve this Doc
View Source
Opens Kaleidoscope with a folder path or a filename.
If the string is a filename the file part is stripped from it to leave
the bare path. Then the oldest .wav file in the specified folder is opened
in Kaleidoscope. It is assumed that Kaleidoscope.exe is in the system path
and does not need to be explicitly located in order to run.
If a process is passed to the function then a callback ill be generated on that
process when Kaleidoscope exits. If no process is provided a new one will be
generated.
Declaration
public static Process OpenKaleidoscope(string wavFile, Process externalProcess = null)
Parameters
| Type |
Name |
Description |
| System.String |
wavFile |
|
| System.Diagnostics.Process |
externalProcess |
|
Returns
| Type |
Description |
| System.Diagnostics.Process |
|
|
Improve this Doc
View Source
Declaration
public static void SetFolderIcon(string path, string iconPath, string folderToolTip)
Parameters
| Type |
Name |
Description |
| System.String |
path |
|
| System.String |
iconPath |
|
| System.String |
folderToolTip |
|
|
Improve this Doc
View Source
Using Reflection to force a sort on a column of a System.Windows.Controls.DataGrid
Declaration
public static void SortColumn(DataGrid dataGrid, int columnIndex)
Parameters
| Type |
Name |
Description |
| System.Windows.Controls.DataGrid |
dataGrid |
|
| System.Int32 |
columnIndex |
|
|
Improve this Doc
View Source
Given a filename removes the path if any
Declaration
public static string StripPath(string textFileName)
Parameters
| Type |
Name |
Description |
| System.String |
textFileName |
|
Returns
| Type |
Description |
| System.String |
|
|
Improve this Doc
View Source
Parses a line in the format 00'00.00 into a TimeSpan the original strting has been
matched by a Regex of the form [0-9.']+
Declaration
public static TimeSpan TimeParse(string value)
Parameters
| Type |
Name |
Description |
| System.String |
value |
The value.
|
Returns
| Type |
Description |
| System.TimeSpan |
|
Exceptions
| Type |
Condition |
| System.NotImplementedException |
|
|
Improve this Doc
View Source
Converts a System.Drawing.Bitmap to a WPF compatible BitmapImage
Declaration
public static BitmapSource ToBitmapSource(this Bitmap source)
Parameters
| Type |
Name |
Description |
| System.Drawing.Bitmap |
source |
|
Returns
| Type |
Description |
| System.Windows.Media.Imaging.BitmapSource |
|
|
Improve this Doc
View Source
Declaration
public static string ToFormattedString(this RecordingSession session)
Parameters
Returns
| Type |
Description |
| System.String |
|
|
Improve this Doc
View Source
Given an external process, waits for the process to be responding and for Inputidle as well
as a static 100ms wait at the start. If the ExternalProcess exits during the wait then the
function returns false, otherwise it returns true. Will wait indefinitiely if the process
does not exit and never becomes idle.
Declaration
public static bool WaitForIdle(Process externalProcess, string marker = "", string location = "")
Parameters
| Type |
Name |
Description |
| System.Diagnostics.Process |
externalProcess |
|
| System.String |
marker |
|
| System.String |
location |
|
Returns
| Type |
Description |
| System.Boolean |
|


|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.jredis.ri.alphazero.util.Convert
public class Convert
Perhaps a silly hack, but proven to speed things up. [TODO: document me!]
| Field Summary | |
|---|---|
private static byte |
BYTE_MINUS
|
private static byte |
BYTE_NINE
|
private static byte |
BYTE_PLUS
|
private static byte |
BYTE_ZERO
|
private static byte[][] |
i2b_65535
|
static int |
INT_N_65535
|
static int |
INT_P_65535
|
private static int |
MAX_POSITIVE_32_BIT_DIGITS
|
private static int |
MAX_POSITIVE_64_BIT_DIGITS
|
private static long[] |
TEN_TO_POWER
|
| Constructor Summary | |
|---|---|
Convert()
|
| Method Summary | |
|---|---|
private static byte[] |
getBytes(int i)
return the bytes of the string representation of the integer. |
static int |
getInt(byte[] potentiallySignedBytes)
|
static int |
getInt(byte[] potentiallySignedAsciiBytes,
int offset,
int len)
Converts the byte[]s of the ASCII representation of a decimal number to an int. |
static long |
getLong(byte[] potentiallySignedBytes)
|
static long |
getLong(byte[] potentiallySignedAsciiBytes,
int offset,
int len)
Its just like (really! :) getInt(byte[], int, int) but for Long values. |
private static byte[] |
getSignedNumberBytes(byte[] unsigned,
boolean negative)
|
static byte[] |
toBytes(int i)
return the bytes of the string representation of the integer. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final int INT_P_65535
public static final int INT_N_65535
private static final byte[][] i2b_65535
private static final byte BYTE_MINUS
private static final byte BYTE_PLUS
private static final byte BYTE_ZERO
private static final byte BYTE_NINE
private static final int MAX_POSITIVE_32_BIT_DIGITS
private static final int MAX_POSITIVE_64_BIT_DIGITS
private static final long[] TEN_TO_POWER
| Constructor Detail |
|---|
public Convert()
| Method Detail |
|---|
public static final byte[] toBytes(int i)
toBytes(int)
which is
using JDK libs for the same.
The whole point here is to be faster since we need to convert numbers to the byte array
of their string representation a lot in JRedis for the protocol and to cut out the
unnecessary step of creating a new string simply because there apparently isn't any other
way in JDK to go from a number to the bytes of its textual representation. (!)
i
- signed
-
public static final int getInt(byte[] potentiallySignedAsciiBytes, int offset, int len) throws java.lang.IllegalArgumentException
Expects a byte array of no more than MAX_POSITIVE_32_BIT_DIGITS
bytes in length
after accounting for potential leading byte indicating the sign of the number representation.
9 bytes (for a positive integer).
potentiallySignedAsciiBytes,
- for example {49, 49, 52} ("114")
java.lang.IllegalArgumentException
public static final long getLong(byte[] potentiallySignedAsciiBytes, int offset, int len) throws java.lang.IllegalArgumentException
getInt(byte[], int, int)
but for Long
values. Max number of digits
is now MAX_POSITIVE_64_BIT_DIGITS
.
potentiallySignedAsciiBytes
- offset
- len
-
java.lang.IllegalArgumentException
public static final int getInt(byte[] potentiallySignedBytes) throws java.lang.IllegalArgumentException
potentiallySignedBytes
-
java.lang.IllegalArgumentException
public static final long getLong(byte[] potentiallySignedBytes) throws java.lang.IllegalArgumentException
potentiallySignedBytes
-
java.lang.IllegalArgumentException
private static final byte[] getSignedNumberBytes(byte[] unsigned, boolean negative)
unsigned
- negative
-
private static final byte[] getBytes(int i)
i
-
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


Welcome to Eventide
An app to plan your outing!
Enter city and date, we'll show you nearby events and restaurants.
Submit!
Hmm...something is not quite right. Input both a city and a date in the MM/DD/YYYY format!
Hmm...something is not quite right. Input valid date!
Like the app! Send us some feedback. Read below to see what others have said!
Name:
Feedback:
Submit!
Hmm...something is not quite right. Be sure to input both your name and your feedback!
Name
Feedback


{% extends "framework.html" %}
{% block title %}rTeX - Docs{% endblock %}
{% macro header_tfd() %}
{% endmacro %}
{% block content %}
Field
Type
Description
There are no known libraries yet. If you've written one, talk to me!
Body should be JSON data containing the LaTeX code and the output format. The format can be one of pdf
, png
or jpg
.
{ 'code': '\begin{document} Hello \end{document}', 'format': 'pdf' }
When format
is either png
or jpg
, two more fields are available. quality
specifies the compression quality of the resulting image, with 100 being the highest quality. density
is the frequency with which to sample pixels from the PDF file. Higher density
will result in a larger file.
{ 'code': '\begin{document} Hello \end{document}', 'format': 'pdf', 'quality': 20, 'density': 300 }
The default value for quality
is 85
, and the default value for density
is 200
.
{ 'staus': 'success', 'log': '(LaTeX rendering log, usually quite large)', 'filename': 'mpkitxwIIArLENkzamE0FzkURk3aA9HI.pdf' }
{ 'status': 'error', 'description': 'Human readable message of what went wrong', 'log': '(LaTeX rendering log, not guaranteed here)' }
filename
filename
should be filename retrieved from the initial post request.
The file. A 404 error code will be given if it doesn't exist. Files are stored on the server for an indeterminate length of time, but will be eventually be removed.
Written for Python 3. You'll have to pip3 install requests
if you don't have the library already.
import requests import shutil HOST = 'http://<IP_ADDRESS>:80' LATEX = r''' \documentclass{article} \begin{document} \pagenumbering{gobble} \section{Hello, World!} This is \LaTeX! \end{document} ''' def download_file(url, dest_filename): response = requests.get(url, stream = True) response.raise_for_status() with open(dest_filename, 'wb') as out_file: shutil.copyfileobj(response.raw, out_file) def render_latex(output_format, latex, dest_filename): payload = {'code': latex, 'format': output_format} response = requests.post(HOST + '/api/v2', data = payload) response.raise_for_status() jdata = response.json() if jdata['status'] != 'success': raise Exception('Failed to render LaTeX') url = HOST + '/api/v2/' + jdata['filename'] download_file(url, dest_filename) render_latex('pdf', LATEX, './out.pdf')
\write18
and \input
have been disabled.


Bechamel Sauce
Bechamel is the basic white sauce, the base for sauces such as Alfredo sauce. It is simple to make and can be turned into any kind of cream sauce you want. This particular recipe is from here.
Ingredients
- 2T (30ml) butter
- 2T (30ml) flour
- 1 1/4 cups (312 ml) milk
- Salt and pepper
Method
- Heat the milk in the microwave or a pan until it is nearly boiling.
- Melt the butter in a heavy-bottomed saucepan.
- Stir in the flour and cook, stirring constantly, until the paste cooks and bubbles a bit, but don't let it brown — about 2 minutes.
- Add the hot milk, continuing to stir as the sauce thickens. Bring it to a boil.
- Add salt and pepper to taste, lower the heat, and cook, stirring for 2 to 3 minutes more.


The libgnome-keyring is used by applications to integrate with the GNOME Keyring system.
This package is known to build and work properly using an LFS-7.4 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/libgnome-keyring/3.8/libgnome-keyring-3.8.0.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/libgnome-keyring/3.8/libgnome-keyring-3.8.0.tar.xz
Download MD5 sum: caec6bcfac4d1fce6927c2338bdc5058
Download size: 420 KB
Estimated disk space required: 18 MB
Estimated build time: 0.2 SBU
D-Bus-1.6.14, GLib-2.36.4, Intltool-0.50.2 and libgcrypt-1.5.3
gobject-introspection-1.36.0 and Vala-0.20.1
GTK-Doc-1.19 and Valgrind
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libgnome-keyring
Install libgnome-keyring by running the following commands:
./configure --prefix=/usr && make
To test the results, issue: make check.
Now, as the root
user:
make install
--enable-gtk-doc
: Use this parameter if
GTK-Doc is installed and you wish
to rebuild and install the API documentation.
Last updated on 2013-09-03 12:08:19 -0700


Reports an rgb color proportional to number using a gradient generated with rgb-color-list. An rgb-color-list consist of a list contaning rgb list with three values between 0 and 255: [[r1 g1 b1] [r2 g2 b2] [r3 g3 b3] ...]
If range1 is less than range2, the color will be directly mapped to gradient colors. While, if range2 is less than range1, the color gradient is inverted.
If number is less than range1, then the first color of is rgb-color-list is chosen.
If number is grater than range2, then the last color of is rgb-color-list is chosen.
ask patches [ set pcolor palette:scale-gradient [[255 0 0] [0 0 255]] pxcor min-pxcor max-pxcor ] ;; colors each patch with a color proportional to the gradient
Take me to the full NetLogo Dictionary


RSDTaskPath
public final class RSDTaskPath : NSObject, NSCopying
RSDTaskPath
is used to keep track of the current state of a running task.
Seealso
RSDTaskController
-
The completion handler for a fetched task.
Declaration
Swift
public typealias FetchCompletionHandler = (RSDTaskPath, Error?) -> Void
-
Identifier for this path segment
Declaration
Swift
public let identifier: String
-
Identifier for this task that can be mapped back to a notification. This may be the same as the task identifier, or it might be that a task is scheduled multiple times per day, and the app needs to track what the scheduled timing is for the task.
Declaration
Swift
public var scheduleIdentifier: String?
-
The tracking delegate is used to allow any task to reference a delegate that can be used to set up the task using the results of a previous run. Because a task path may be instantiated using either a task info object or by a task, it’s possible that the
RSDTask
associated with the task has not yet been instantiated when the top-level task path is created.Declaration
Swift
public weak var trackingDelegate: RSDTrackingDelegate? { get set }
-
/ String identifying the full path for this task.
Declaration
Swift
public var fullPath: String { get }
-
String representing the current order of steps to this point in the task.
Declaration
Swift
public var stepPath: String { get }
-
The task info object used to load the task.
Declaration
Swift
public private(set) var taskInfo: RSDTaskInfoStep?
-
The task that is currently being run.
Declaration
Swift
public private(set) var task: RSDTask?
-
Convenience method for accessing the top-level task path.
Declaration
Swift
public var topLevelTaskPath: RSDTaskPath { get }
-
The result associated with this task.
Declaration
Swift
public var result: RSDTaskResult
-
A listing of step results that were removed from the task result. These results can be accessed by a step view controller to load a result that was previously selected.
Declaration
Swift
public private(set) var previousResults: [RSDResult]?
-
The current step. If
nil
then the task has not been started.Declaration
Swift
public var currentStep: RSDStep?
-
This is a flag that can be used to mark whether or not the task is ready to be saved.
Declaration
Swift
public var isCompleted: Bool
-
This is a flag that can be used to mark when a task was exited early.
Declaration
Swift
public var didExitEarly: Bool
-
A pointer to a parent path if this is subtask step.
Declaration
Swift
public private(set) weak var parentPath: RSDTaskPath?
-
A pointer to the path sections visited
Declaration
Swift
public private(set) var childPaths: [String : RSDTaskPath]
-
File URL for the directory in which to store generated data files. Asyncronous actions with recorders (and potentially steps) can save data to files during the progress of the task. This property specifies where such data should be written.
If no output directory is specified, this property will use lazy initialization to create a directory in the
NSTemporaryDirectory()
with a subpath of thetaskRunUUID
and the current date.In general, set this property after instantiating the task view controller and before presenting it in order to override the default location.
Before presenting the view controller, set the
outputDirectory
property to specify a path where files should be written when anORKFileResult
object must be returned for a step.Note
The calling application is responsible for deleting this directory once the files are processed by encrypting them locally. The encrypted files can then be stored for upload to a server or cloud service. These files are not encrypted so depending upon the application, there is a risk of exposing PII data stored in these files.Declaration
Swift
public var outputDirectory: URL! { get set }
-
Is this the first step in the task?
Declaration
Swift
public var isFirstStep: Bool { get }
-
Initialize the task path with a task.
Declaration
Swift
public init(task: RSDTask, parentPath: RSDTaskPath? = nil)
Parameters
task
The task to set for this path segment.
parentPath
A pointer to the parent task path. Default is
nil
. -
Initialize the task path with a task.
Declaration
Swift
public init(taskInfo: RSDTaskInfoStep, parentPath: RSDTaskPath? = nil)
Parameters
taskInfo
The task info to set for this path segment.
parentPath
A pointer to the parent task path. Default is
nil
. -
Fetch the task associated with this path. This method loads the task and sets up the task result once finished.
Declaration
Swift
public func fetchTask(with factory:RSDFactory, completion: @escaping FetchCompletionHandler)
Parameters
factory
The factory to use to decode the task.
completion
The callback handler to call when the task is loaded.
-
Append the result to the end of the step history, replacing the previous instance with the same identifier and adding the previous instance to the previous results.
Declaration
Swift
public func appendStepHistory(with newResult: RSDResult)
Parameters
newResult
The result to add to the step history.
-
Remove results from the step history from the result with the given identifier to the end of the array. Add these results to the previous results set.
Declaration
Swift
public func removeStepHistory(from stepIdentifier: String)
Parameters
stepIdentifier
The identifier of the result associated with the given step.
-
Append the async results with the given result, replacing the previous instance with the same identifier.
Declaration
Swift
public func appendAsyncResult(with newResult: RSDResult)
Parameters
result
The result to add to the async results.
-
The description of the path.
Declaration
Swift
override public var description: String { get }
-
Implementation for copying a task path.
Declaration
Swift
public func copy(with zone: NSZone? = nil) -> Any
Task Finalization - The methods included in this section should **not** be called until the task is finished.
-
A queue that can be used to serialize archiving and cleaning up the file output.
Declaration
Swift
public let fileManagementQueue: DispatchQueue
-
Convenience method for encoding a result. This is a work-around for a limitation of the encoder where it cannot encode an object without a Type for the object.
Declaration
Swift
public func encodeResult(to encoder: RSDFactoryEncoder) throws -> Data
Parameters
encoder
The factory top-level encoder.
Return Value
The encoded result.
-
Delete the output directory on the file management queue. Do not call this method until the files generated by this task have been copied to a new location, unless the results are being discarded.
Declaration
Swift
public func deleteOutputDirectory(_ completion:(() -> Void)? = nil)
-
Build an archive from the task result.
This method will recurse through the task result and pull out data for archiving using the given
RSDDataArchiveManager
to manage vendingRSDDataArchive
instances as appropriate. The completion handler will be called on thefileManagementQueue
so that the app can manage any post-processing that must be serialized as appropriate.This method will call
RSDDataArchive.insertDataIntoArchive()
for eachRSDArchivable
result found in the collection.This method will insert the
RSDTaskResult
as JSON-encoded Data unlessRSDDataArchive.shouldInsertData(for: .taskResult) == false
Finally, it will recursively look through the task result step history and async results for
RSDAnswerResult
objects. The answer results will be added to a consolidated mapping dictionary of answers where the key =\(section.identifier).\(result.identifier)
and the value is thevalue
property. This dictionary will be serialized as JSON-encoded Data.The file results will be added to the files list in a JSON serialized file named
metadata.json
that includes information about the device, application, task, and a file manifest.Declaration
Swift
public func archiveResults(with manager: RSDDataArchiveManager, completion: (() -> Void)? = nil)


Grilled courgette and sweetcorn salad recipe
by Angela HartnettThis courgette salad is quick and easy to make. It's the perfect starter to serve at dinner if you don't have a lot of time on your hands.
Prep time: 10 minutes | Cooking time: 20 minutes
SERVES
Six as a starter
INGREDIENTS
- 2 yellow courgettes
- 2 green courgettes
- 1 head of sweetcorn
- 150ml olive oil, plus a splash for frying
- 1 tbsp chopped garlic
- 4 cured anchovies, chopped
- 2 tsp capers, rinsed lightly
- 2 tbsp mixture of chopped basil, parsley, marjoram and mint
- Squeeze of lemon juice and freshly grated zest to serve
- 200g Westcombe ricotta
METHOD
- Preheat the oven to 180C/160C gan/Gas 4.
- Heat a grill pan. Wash the courgettes and slice them in half lengthways with a large knife.
- Depending on the size of your grill pan you may need to cut them in half again. Score the inside of the courgettes in a criss cross pattern. Season them well.
- Add some olive oil to the grill pan and grill the courgettes until nicely charred.
- When ready, drizzle with a little oil, scatter with the garlic and finish the courgettes off in then oven for about 15 minutes until soft. I always add a splash of water as this stops the courgettes sticking to the tray.
- Meanwhile make the salsa. Remove the corn kernels from the husk with a large knife – when they are at the peak of the season there is no need to cook them.
- Toss the kernels with the 150ml olive oil, chopped anchovies and capers. Check the seasoning and then add the chopped herbs. Mix well, adding a squeeze of lemon to finish.
- To serve, place the cooked courgettes in a dish and cover with the salsa. Scatter over the ricotta and then grate some fresh lemon zest over the whole dish.


A card is a flexible and extensible content container. It includes options for headers and footers, a wide variety of content, contextual background colors, and powerful display options.
Some quick example text to build on the card title and make up the bulk of the card's content.
Go somewhere
The building block of a card is the .card-body
. Use it whenever you need a padded section within a card.
Card titles are used by adding .card-title
to a <h*> tag. In the same way, links are added and placed next to each other by adding .card-link
to a <a> tag.
Subtitles are used by adding a .card-subtitle
to a <h*> tag.
With .card-text
, text can be added to the card.
.card-img-top
places an image to the top of the card.
.card-img-bottom
places an image to the bottom of the card.
Create lists of content in a card with a ul.list-group.list-group-flush
.
Some quick example text to build on the card title and make up the bulk of the card's content.
Card headers can be styled by either adding .card-header
to <h*> elements or wrapping text in a div.card-header
.
With supporting text below as a natural lead-in to additional content.
Go somewhereWith supporting text below as a natural lead-in to additional content.
Go somewhereCards include various options for customizing their backgrounds, borders, and color.
With supporting text below as a natural lead-in to additional content.
With supporting text below as a natural lead-in to additional content.
With supporting text below as a natural lead-in to additional content.
With supporting text below as a natural lead-in to additional content.
With supporting text below as a natural lead-in to additional content.
With supporting text below as a natural lead-in to additional content.
With supporting text below as a natural lead-in to additional content.
With supporting text below as a natural lead-in to additional content.
With supporting text below as a natural lead-in to additional content.
With supporting text below as a natural lead-in to additional content.
With supporting text below as a natural lead-in to additional content.
With supporting text below as a natural lead-in to additional content.
This is a longer card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.
This card has supporting text below as a natural lead-in to additional content.
Last updated 3 mins ago
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat.
This card has supporting text below as a natural lead-in to additional content.
Last updated 3 mins ago
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.
This is a wider card with supporting text below as a natural lead-in to additional content. This card has even longer content than the first to show that equal height action.
Last updated 3 mins ago


Toggle navigation
Menu
Start Bootstrap
Home
About
Post
Contact
Sakrath
Just Testing Blog
Last Post
Max number and topic
Posted by
Writer
on 2014-02-22
Older Posts →


should both think more positively of being a technical manager, but also should change how we do management. I believe that fewer managers, are required - and we can accomplish this by training, and empowering the 'lower level' employees to make good business decisions.
Opinion: Truth and Consequences of the Technical Track
First I'm going to summarize this blog post: http://whilefalse.blogspot.ca/2015/11/truth-and-consequences-of-technical.html from a CTO named Camille. It's a response to a post from Dan McKinnely. I'll give a short summary of the main points. Then I will give my opinion on these two great articles (which I disagree with). I'll use both Camille's and Dan's names in the post.
Camille's post
Camilles trying to make tech employees appreciate management more. That's noble, and important. Managers should be appreciated, their job can be important and difficult. She values management in tech and wants to show that they too makes sacrifices for their job. A big assumption the author makes: companies need tree like management structures to run. The higher positions make broader decisions, thus you need levels of management. She feels as a great engineer, she has only the impact of one. When you're a great manager you not limited by this. She felt that becoming a manager was necessary "in order to have the broader ability to focus people on projects where I felt their impact would make more difference on the company."
She mentions people who don't want to do management shouldn't get promoted. Both articles agree on this. At some point she thinks we are giving undeserved raises to tech employees. These employees don't give enough value to the company. Both managers and tech workers should have to prove that they are increasing their area of value. Not by a constant, but by a multiplier (my words). Camille makes an interesting point. All companies should be promoting those who create business value.
Protip: money isn't the only value in a business) and tech isn't a meritocracy).
Dan's point
Dan believes promoting somone to management should take a lot of thought. Make sure the promotee thinks hard too. He doesn't believe the current level of management overhead is good or benefitial. Dan makes a crucial point. Given one a senior manager and one a senior dev who make roughly the same, developers get no super powers. Managers can hire, fire, make meetings, cancel meetings, choose what gets worked on, etc. Developers often only get to choose what and how they themselves work. Developers having a small silo of influence can cause developers to become nihilistic. Footnote: feeling their life and decisions hs little meaning ;-)
My Opinion
I believe that companies do not need a top down decision making approach. It's possible to give a lot of decision making power to the people who know best. These are often not people high up on the management ladder, instead they are at the bottom. There is a way to give engineers more impact and reduce the number of managers. You can trust the employees to make good decisions and let them be a big part of the decision making process.
"What if the employees make a bad decision?" Two options.
Accept the risk, after all managers must make a lot of bad decisions too. Mitigate the risk, train your employees better. Get them more involved with the business, that doesn't mean they have to change roles. Here's an anecdote
As a tech worker autonomy might equal your ability to achieve managements business goals. Generally you are only given autonomy while you are producing company value. I agree with this to a certain extend. Company value trumps most else. Camille doesn't say why this changes with becoming management. I think it's exactly the same - you're always accontable to someone.
A manager in a traditional company should 'run interference' for their
employees. This enables employees to do work they see as valuable to the
business. Further, if a manager see it's good for the engineer that's also
good for the company. I believe a company is their employees.
Managers of technical teams should first be developers, ops people, or
**fill in the blank**. In other words I think managers should all understand
how difficult good programming is. Neither of the authors would dispute
this but it's important. I think it's important for managers to contribute
occasional code. The Anti-fragile author, Talib Nassim believes that to make
economic predictions you have to be invested in them. His term is **"having
skin in the game"**. This holds for software architects (especially),
managers, maybe even CTO's (I can't say).
We don't trust our employees to give good business input in their area of
expertise. That might be because they don't understand the business, or
aren't prepared to. If thats currently the industry, this management
discussion is *NOT* our biggest problem. Our *biggest problem is that we
aren't investing, trusting, and empowering our employees.*
Comments
comments powered by Disqus


S-IOV
Home
Gateway
CAN_IDS
blog
Contact
面向车内CAN网络的入侵检测系统
Please upload the data to train the model
Please upload the data to detect intrusion
{{ errinf1 }}
Intrusion Detection
HTM


logo
MAIN MENU
TODAY DEAL
BIRTHDAY GIFT
ANNIVERSERY
VALENTINE DAY
MARRIAGE GIFT
CONTACT US FOR DILVERY
Login
LOG IN
/
SIGN UP
EMAIL :
PASSWORD :
SUBMIT


I am a dedicated person with a family of two. I enjoy spending, and the knowledge and perspective that life gives me and has strengthened my ideology.I have a bachelor’s degree in civil engineering. People find me to be an upbeat, self-motivated player with excellent communication skills. For the past several years I have worked in enterprenuership and engineering in Dar es salaam. My experience include successfully business. I have a track record of excelling in my projects.
I attribute this success to my ability to plan, schedule, and handle many different tasks at once. This flexibility will help me in the field, where there are many different problems and working styles.
Learn more.Here's some of my recent photos


During the second quarter of our Advanced Data Science Course, we developed Shiny apps for other professors in the School of Public Health. This was a great opportunity to connect with other researchers in the school, in addition to learning how to make a cool Shiny app from scratch.
The goal of my app was to improve the measurements of mouse paw lesions, based on images taken by a lab. My approach was to allow the lab users to remove the background of the image, and then trace out where the tumors were located on the paw. The app would then calculate the percentage of the paw taken up by a lesion, which would hopefully be more accurate than doing this by subjective judgement.
The purpose of this tutorial is to go over the code that I used to do the background cropping. To do this, I modified the code of my original app to build a less involved version so that the code is more understandable. If you want to see the more detailed app that I built for the class, check out the GitHub repo located here. For some motivation, here is an example of what you will be able to do after building this app.
I’m not going to go into detail about every step that goes into making a Shiny app, but if you would like to learn more, there are great examples and tutorials on the Shiny app website that I linked to earlier.
To start out with, here’s the code to install all the necessary libraries. I would only run the lines for the libraries you definitely don’t have.
install.packages("DT")
install.packages("imager")
install.packages("maptools")
install.packages("plotKML")
install.packages("raster")
install.packages("shiny")
install.packages("shinyjs")
install.packages("sp")
install.packages("spatstat")
Make a new folder for this project, and inside of this folder make two new files–ui.R
and server.R
. Here is
the code that I put in my ui.R
file:
library(shinyjs)
library(DT)
fluidPage(
titlePanel("Crop Image"),
useShinyjs(),
sidebarLayout(
sidebarPanel(
fileInput("file1", "Choose Image",
accept=c(".png",
".jpg")),
textInput("imgName", "Image Name", ""),
actionButton("selectForeground", "Begin Crop"),
p("Click the button to begin cropping the image"),
actionButton("pauseCropping", "Pause Cropping"),
p("Click the button to pause background cropping"),
actionButton("resetCropping", "Reset Cropping"),
p("Click the button to reset background cropping"),
actionButton("cropBackground", "Crop Image"),
p("Click after you have cropped out the background"),
actionButton("downloadImage", "Download Image"),
p("Click to download the cropped image")
),
mainPanel(
plotOutput("plot1", click="plot1_click",
dblclick = "plot1_dblclick",
brush = brushOpts(
id = "plot1_brush",
resetOnNew = TRUE
))
)
)
)
The fileInput button allows the user to use a .jpg
or .png
image for the cropping.
Each of the action buttons will be referenced inside of the server.R
file, and
the results of pressing each of these buttons should be pretty clear from
the description. Finally, the last code chunk plots the image, in addition
to providing the ability to double click and zoom in on a region of the image.
Now let’s switch over to the server.R
file, which contains the meat (or Tempeh, if
you’re a vegatarian) of the app. I’m not going to go over a lot of the code here, but the full file is
available at this app’s GitHub repo, along
with the ui.R
file and a great test picture. I will be referencing names of
variables and functions, that will hopefully be easy to find and follow along
with if you have the code in front of you.
I use the imager
package to read in the image. The data structure of this image
is a 3D matrix–each layer corresponds to either the red, blue, or green scale of the
image, and the rows and columns are the pixels.
The way that I crop the image is by keeping track of the user clicks. When the user clicks the “Begin Crop” button (internally named “selectForeground”), a reactive value called “cropImg” is set to true. The app then starts keeping track of the clicks with two vectors–one for the x-coordinate, and one for the y-coordinate.
observeEvent(input$plot1_click, {
# Keep track of number of clicks for line drawing
if(v$crop.img){
v$imgclick.x <- c(v$imgclick.x, round(input$plot1_click$x))
v$imgclick.y <- c(v$imgclick.y, round(input$plot1_click$y))
}
})
The app.plot
function recognizes when the user has begun clicking, and connects the
clicks with a red line so that the user can see the area that they are cropping.
The reason that I have a “Pause Cropping” button is to allow the user to zoom in on a region. If you have paused cropping, you can click and drag the mouse to create a square. If you double click inside of this square you will zoom in, so that you can crop the image more accurately. You can begin cropping while zoomed in, and then pause again. Double clicking will get you back to the original view.
When the user presses “Crop Image”, the select.points
function does the heavy lifting.
The heart of the function is this line:
poly <- owin(poly=list(x=x, y=y), check=F)
The x and y refer to the x and y-coordinates of the clicks. This line
takes our click values, and connects them to make a polygon which contains
the coordinates of the image that we want to keep. The rest of the function makes a mask,
which is a matrix of dimension equal to the dimension of our image. If an entry
in the mask is set to 1, then we keep this pixel as is in the image. If an entry is the
mask is set to 0, we change that pixel’s color to white, with the removePoints
function in the server.R
file.
If you’re not happy with the image, you can hit “Reset Cropping”. Internally, this just resets all of the reactive values to their original state, and resets the image to be the original image that the user wanted to crop.
Looking a bit more closely at the code, under each observeEvent()
in the server.R
file, I have
lines that enable and disable certain action buttons. This is from the shinyjs
package,
and this allows the user to see which button they are currently clicked on.
Finally, clicking on the Download Image
function takes advantage of the imager
package’s
function save.image
, and saves the cropped image to your current working directory.
Hopefully this is a starting point for more cool image editing Shiny apps. Please let me know if you have any improvements or add-ons that you made! As always, feel free to get in contact with me using the links at the bottom of the page.


VERTICAL LIMIT (director: Martin Campbell; screenwriters: Robert King and Terry Hayes, based on a story by Mr. King; cinematographer: David Tattersall; editor: Thom Noble; cast: Chris O'Donnell (Peter Garrett), Bill Paxton (Elliot Vaughn), Robin Tunney (Annie Garrett), Scott Glenn (Montgomery Wick), Izabella Scorupco (Monique Aubertine), Temuera Morrison (Major Rasul), Nicholas Lea (Tom McLaren), Alexander Siddig (Kareem), Steve Le Marquand (Cyril Bench), Ben Mendelsohn (Malcolm Bench), Robert Taylor (Skip Taylor), Stuart Wilson (Royce Garrett), Roshan Seth (Colonel Amir Salem); Runtime: 126; Columbia Pictures; 2000)
Reviewed by Dennis Schwartz
A superficial but entertaining roller-coaster-ride of nonstop action featuring cliché characters and contrived dangerous situations, mainly conceived to show off the special effects. The story is so slight that there is no danger of it interfering with the action scenes. It's a Hollywood blockbuster for those in need of escaping reality for two hours and should prove to be enjoyable for those who are willing to go with the flow of the action and suspend their critical judgment. The reward will be a visual treat of well-executed stunts and a film that had the glossy look of a National Geographic photography shoot. The director Martin Campbell ("Goldeneye") relishes in filming excesses and creating one life-and-death scene after the other. Movie viewers could go snowblind just watching a series of mountain catastrophes befall the adventurous climbers, as the film throws out almost any possible danger there is to be found on a mountain and the mountain climbers try to overcome these impossible obstacles and, there is, needlessly to say, a race-against-time sequence, with a last second rescue in the works.
The opening eight-minute scene, derivative as it is, is brilliantly done and captures whatever underlying tension the film was to later on build up to. The Garrett family is out for a pleasure mountain climbing trip to the ochre cliffs of Monument Valley, as Peter (Chris O'Donnell) and his sister Ann (Robin Tunney) are climbing with dad Royce (Stuart Wilson) and a couple of unnamed companions. One of those companions first has his backpack fall and thereby loosens the tow rope entangling the others, trapping the family with the other two companions dangling off a peak. The companions can't hold on and tragically fall. Royce warns that the line won't hold all three for long and pleads that his son cut him loose to have any hope of saving his children. Ignoring Annie's tearful protests, Peter cuts the rope and the father falls to his death.
It's three years later and Peter is a National Geographic photographer shooting in the Himalayas. He ends up at a Pakistani military base, where they are in the middle of a war with India. Nearby is a K2 base camp, where Annie is a crew member on billionaire sportsman Elliot Vaughn (Bill Paxton) team that is set to climb the dangerous summit of K2--the world's second-highest peak. The brother and sister reunite after becoming more distant with each other. They never discussed their father's death since the tragedy, but have gone their separate ways. Peter has abandoned mountain climbing, while Annie has become known as the fastest climber in the world and is a Sports Illustrated cover girl. She is still upset with what Peter did and could hardly face him, much less talk to him about it.
At the richly put together base camp of Elliot's expedition, the arrogant businessman has surrounded himself with the best team money can buy, including the foremost climber in the world, Tom McLaren (Nicholas Lea). He is to lead Elliot to the summit of K2 in time to coincide with one of the planes flying overhead from Elliot's new airline he is launching. The commercial motive for the climb and the callous way he will soon treat his fellow climbers, makes him the film's designated one-dimensional villain, and adds some more spice to a film that is overspiced already with clichés.
Warned by the base camp of severe weather conditions, Elliot refuses the leader's advice to turn back and manipulates the leader to go against his better judgment and continue on, where they reach the vertical limit at 26,000 feet--significant because the oxygen is very thin. When a wind storm hits--and, Elliot, Annie and Tom end up inside a deep cavern that becomes sealed by an avalanche, the three realize that they have only 36 hours to survive.
Peter impatiently arranges for the rescue attempt, quickly assembling a diverse team of volunteers who have little chance of succeeding, but sign on for the glory, or their concern for the victims, or for the money offered. The Pakistani Army helps out by supplying the six rescuers with cannisters of nitroglycerin, an homage to "Wages of Fear." The rescuers will try to blast the victims out of the cavern, but must be very careful when climbing because with just one spill of the explosive liquid there is the certainty of a tremendous explosion. There will be many tremendous explosions that rock the Himalayas, and -- if mountains repeatedly exploding and climbers falling down mountain peaks in colorful ways is your idea of enjoyment, then this is the film for you.
The rescue crew includes one of the world's beautiful supermodels, who in this film happens to be a medic and an expert climber Monique (Izabella Scorupco); a Muslim practitioner, the Pakistani porter Kareem (Alexander Siddig); the comically insane Aussie brothers Cyril and Malcolm Bench (Steve Le Marquand, Ben Mendelsohn); and, the leader of the crew, a hard-assed master mountain climber who became a hermit and for the last few years stopped everything to search only for his wife who never returned from Elliot's last tragic expedition to K2, Montgomery Wick (Scott Glenn). The craggy-faced Wick is bent on revenge against Elliot, blaming him for his tour guide wife's death. He's also a friend of Peter's father, and what goes for wisdom in this picture, comes from his rugged lips.
The action keeps coming, the clichés get resolved somehow, and even though the action sequences couldn't possibly be real, the great photography and beautiful vistas made the locations seem out of this world. The filmmaker used the Southern Alps in New Zealand as his setting, and you could have fooled me, because it sure looked like the Himalayas. It also looked like it could be a long commercial for beautiful yuppie adventurers who are shooting an ad for Club Med, or a National Geographic TV special, or even one of those action thrillers that doesn't believe it needs good dialogue to tell its heroic fantasy story.
REVIEWED ON 1/3/2001 GRADE: C+
Dennis Schwartz: "Ozus' World Movie Reviews"
http://www.sover.net/~ozus
<EMAIL_ADDRESS>© ALL RIGHTS RESERVED DENNIS SCHWARTZ
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


Design {{ allBlogs.title }} {{ allBlogs.pub_date }} {{ allBlogs.desc | truncatechars:200 }} Read more Welcome to Responsive Retina-Ready WP Theme


| Interface | Description |
|---|---|
| Entity |
This interface contains needed methods for an object to move on the screen
|
| Class | Description |
|---|---|
| Balloon | |
| BalloonBlue | |
| BalloonRed | |
| Dart |
This class is the super class to all dart objects it contains neccesary
methods for all darts to function
|
| DartLazer | |
| DartNinjaStar | |
| DartNormal | |
| Explosion |
This class is uncompleted
|
| Floor |
Floor object class represents every floor drown on the screen by floor grid
|
| FloorGrid |
Handles the drawing of the floors on the screen
|
| Game |
Main Game class runs the game as a different state of game
|
| HighScore |
Unfinished class
|
| Instructions | |
| Leaderboard | |
| LevelEditor |
The level editor screen
|
| MainMenu |
Starting screen for the game
|
| MakeFrame |
Creates the game frame and initializes graphics
|
| MapSelectScreen | |
| MonkeyTower |
This is the super class to all others that extend it and has the base frame
work for the towers
|
| MonkeyTowerDartMonkey | |
| MonkeyTowerIceMonkey | |
| MonkeyTowerNinjaMonkey | |
| MonkeyTowerSuperMonkey | |
| Player |
represents the user and houses all the ways to interact with the game and
variables for the player
|
| Round |
Controls the balloons in the current round
|
| RoundManager |
Handles all rounds and balloons in those rounds
|
| SplashScreenLoading |
Controls the main loading screen
|
| StartGame | |
| TestScreen |
Test class
|
| TurningPoint |
This class stores the position for the turn point for the balloons
|
| Enum | Description |
|---|---|
| BalloonType |
This class contains the default values for the balloon types
|
| DartType |
This class contains default values for all dart types
|
| FloorType |
Floor type contains the default values for all the floor types
|
| MonkeyTowerType |
This class outline the default variables for each monkey tower
|


title = "Department Students" url = "/dept/:perma/students" layout = "department" description = "Students of Department" is_hidden = 0 == use NITH\Students\Models\Student; function onStart() { $students = $this['dept']->students->groupBy('program')->toArray(); $newStudents = []; foreach($students as $program => $stus) { $newStudents[Student::$programs[$program]] = collect($stus)->groupBy(function($item, $key) { return Student::$years[$item['year']]; })->toArray(); } $this['students'] = collect($newStudents); $this['navtitle'] = 'Students'; $this['active'] = 'student'; } ==
| Roll Number | Name |
|---|---|
| {{ student.roll_number }} | {{ student.name }} |