Try out our Premium Member services: Virtual Legal Assistant, Query Alert Service and an ad-free experience. Free for one month and pay only if you like it.
BEFORE THE MADURAI BENCH OF MADRAS HIGH COURT DATED: 26.04.2017 Reserved on : 06.04.2017 Pronounced on : 26.04.2017 CORAM THE HONOURABLE MR.JUSTICE V.PARTHIBAN W.P.(MD) No.19069 of 2016 and W.M.P(MD)Nos.13767 & 13768 of 2016 & 4832 of 2017 LA Bottlers Private Ltd., rep. by its Managing Director, Mr.Joseph Francis No.5, Bharathiyar Salai, Jenne Plaza, Contonment, Tiruchirapalli ? 620 001. : Petitioner Vs. 1.The State of Tamil Nadu, rep. by its Secretary to Government, Housing and Urban Development Department, Secretariat, Chennai ? 600 009. 2.The Commissioner, Directorate of Town and Country Planning, Fourth Floor, No.807, Anna Salai, Chennai ? 600 002. 3.The Assistant Director, Town and Country Planning Department, Trichy District. No.10, Williams Road, Cantonment, Tiruchirappalli ? 620 001. 4.Navalpattu New Town Development Authority, rep. by its Member Secretary, Navalpattu, Trichy District. 5.Suriyur Panchayat rep. by its President, Thiruverumbur Panchayat Union, Thiruverumbur Taluk, Trichy District. 6.Mrs.Saradadevi President, Suriyur Panchayat, Thiruverumbur Panchayat Union, Thiruverumbur Taluk, Trichy District. : Respondents Prayer : This Petition filed under Article 226 of Constitution of India for the issuance of Writ of Certiorarified Mandamus to call for the records of the first respondent in G.O(2D)No.91, Housing and Urban Development (Na.Va.4(i)) Department, Dated 30.06.2016, quash the same and consequently direct the first respondent to vary the classification of the petitioner's land in S.F.No.469/1A1, 469/1A2 Part (old No.469/1A) and 496/1B1 of Suriyur Village, Thiruverumbur Taluk, Tiruchirappalli District, from ?Mixed Residential Zone? to ?Controlled Industrial Zone?. !For Petitioner : Mr.P.S.Raman Senior Counsel for Mr.P.R.Raman For Respondents :Mr.B.Pugalendhi Additional Advocate General (For R1 to R4) Mr.M.Rajarajam (for R5) R-6 given up :ORDER
This writ petition has been filed by the petitioner challenging the Government Order in G.O(2D)No.91, Housing and Urban Development (Na.Va.4(i)) Department, dated 30.06.2016, passed by the first respondent and for a consequential direction to the first respondent to vary the classification of the petitioner's land in S.F.No.469/1A1, 469/1A2 Part (old No.469/1A) and 496/1B1 of Suriyur Village, Thiruverumbur Taluk, Tiruchirappalli District, from ?Mixed Residential Zone? to ?Controlled Industrial Zone?.
2.The case of the petitioner is that the petitioner company is incorporated under the Companies Act, 1956. The company had proposed to set up a plant/factory at Suriyur Village, Tiruchirappalli District. This was to function as a bottling unit for Pepsico India Holding Private Limited. The plant was planned to be constructed at S.Nos.469/469/1A2 and 469/1B1 of Suriyur Village over an extent of 24 acres. The required land has been purchased by the petitioner under the sale deed dated 04.10.2010 registered as Document No.8347 of 2010 in the office of the Sub-Registrar, Tiruverumbur.
3.According to the petitioner, the land in question is classified as ?Mixed Residential Zone?. Since the petitioner was intending to put up plant / factory in the said property, the land in question was required to be reclassified from ?mixed residential zone? to that of ?Controlled Industrial Zone? and the competent authority, who is empowered to reclassify the land, forwarded the same to the first respondent. It appears that an application was made by the petitioner on 25.11.2010 for the change of land use by changing its classification to ?Controlled Industrial Zone? along with the necessary documents, fee, etc., to the third respondent which was required to be forwarded to the first respondent for appropriate order. On receipt of the petitioner's application for change of land use by the third respondent, the fourth respondent issued a notification in English and Tamil Newspapers on the direction of the third respondent inviting objections and suggestions for the proposed variation of the land use. According to the petitioner, no objection or suggestion was received in response to the notification.
4.The third respondent, however, wanted some more details from the petitioner in respect of the application for change of land use and according to the petitioner, the same was duly complied with by the respondent on 28.02.2011. In the meanwhile, the petitioner as per the averment in the affidavit have obtained the following documents as enumerated therein.
?a) ?No Objection? Certificate from the Fire Service Department, which was dated 03.11.2010.
b) A Licence and Certificate from the Inspector of Factories, vide order dated 29.04.2011, in proceedings bearing No.2914/11, for the commencement of production in the factory premises of the petitioner.
c) Certificate of Registration from the Department of Labour, dated 27.03.2012.
d) License from the Food Safety and Standards Authority of India, dated 09.05.2012.
e) Letter from the Revenue Divisional Officer, Trichy, dated 29.06.2012 in O.Mu. A2.545-2012, stating that the lands in Survey Nos. 469/1B1 were not covered under the Land Reforms Act, 1961.
f) License from the Boiler Inspection Department bearing No.T9277, dated 23.07.2014;
g) Stability Certificate from the Chief Inspector of Factories, T.N. Government dated 21.10.2013;
h) Machinery Certificate from the Deputy Director, Industrial Safety and Security, dated 04.09.2014;
I) License issued by the Petroleum & Explosives Safety Organisation (PESO), Ministry of Commerce and Industry, Government of India, dated 30.12.2011 & 03.12.2013, for storage of Petroleum:
j) License issued by the Petroleum & Explosives Safety Organisation (PESO), Ministry of Commerce & Industry, Government of India, dated 30.12.2011 & 01.04.2015, for storage of Carbon Dioxide:
k) License under the Prevention of Food Adulteration Act, issued by the Deputy Director of Health Services & Family Welfare, Trichy, dated 12.05.2011;
l) NOC from the District Revenue Officer, dated 02.07.2011 for grant of a license for installation of one under-ground petroleum storage tank and
m) High Tension Service Connection from TANGEDCO bearing Service No.209.
n) The petitioner's industry has been classified as an ?Orange? industry by the Tamil Nadu Pollution Control Board. The petitioner applied to the Tamil Nadu Pollution Control Board for necessary approvals and obtained the necessary consents for the operation of its new plant under Section 21 of the Air (Prevention & Control of Pollution) Act and for discharge of sewage under Section 25 of the Water (Prevention & Control of Pollution) Act.
o) All requirements in respect of registration with the Tamil Nadu Commercial Taxes Department and the Central Excise Department were done and the certificates were obtained by the petitioner from the said Departments.?
5.Since the petitioner's company was involved in the business of bottling of soft drink, mineral water, drinking water etc., in order to facilitate their business, they entered into an agreement for ground water utilization with the Executive Engineer, Public Works Department, Ground Water Division, Trichy, on 12.11.2010 and the petitioner was permitted to draw 1.50 lakh liters of ground water per day from three bore wells. Subsequently, the permit for drawal of water was enhanced by a revised agreement dated 19.07.2011 permitting the petitioner company to draw 2.40 Lakh liters per day, after taking into account the hydro-geological status of the area. Thereafter, the petitioner was also permitted to have six bore wells by the competent authority with increased drawal of water.
6.In the above said circumstances, the petitioner had commenced their operation of the plant in May 2011. Except an order for change of land use, all other required licenses and clearances had been obtained by the petitioner and also due to the fact that they have not received any suggestion or objection to the public notification and all the documents required for the change of land use had been submitted by them, they were under the impression that in a matter of course, their application would be favourably considered. According to the petitioner, they had employed about 150 persons both directly and indirectly from the local villages and invested huge amount of money for the establishment of the plant / factory and post operation of the plant / factory. According to the petitioner, the Pollution Control Board also has been taking samples of the water periodically and there was no complaint of any harmful discharge of any chemical prohibited or declared as hazardous by any authority concerned.
7.All the while, according to the petitioner, their application for conversion of land was under process with the first respondent. While matter stood thus, there was a complaint from the Suriyur Village Panchayat Union in 2012 pertaining to the petitioner's drawal of water from the bore wells. The complaint is on the basis of the apprehension on the part of some of the villagers that the drawal of the water for bottling Unit of the petitioner company would deplete the ground water sources. In order to avoid unnecessary confrontation between villagers and the petitioner company, a peace committee meeting was held wherein, the Revenue Divisional Officer, Trichy, Block Development Officer, Tiruverumbur, members of the public, representatives of the petitioner etc. participated. After the outcome of the meeting, the petitioner agreed not to draw water from three of its six bore-wells. While so, the fifth respondent vide proceedings in Na.Ka.No.533.2013 dated 25.04.2013 ordered closure of petitioner company on the ground that the same was being run without any approval. According to the said proceedings, the factory lands were agricultural lands and as the petitioner was drawing water from the bore-wells, agricultural operations were being affected. The fifth respondent invoked the provisions of Section 159 of the T.N Panchayats Act, 1994, for passing closure order. It appears that the order has been challenged by the petitioner in W.P(MD)No.4498 of 2014 and the an order of interim stay was granted by this Court and the writ petition is still pending for final consideration.
8.The petitioner having obtained all required licenses and clearances from the competent authorities but was not allowed to operate the plant/factory for which the same was established. Inspite of the petitioner satisfying all the authorities and fulfilment of the norms required for carrying out their activities as proposed by them, still there was no decision forthcoming from the competent authority, particularly, the first respondent about the request of the petitioner for change of land use. In this connection, the petitioner pointed out that the land in question is only Mixed Residential Zone and there was no agricultural activities happening in and around the area and therefore, there would not be any impediment for considering the request of the petitioner for change of land use as it would benefit 700 local villagers directly and indirectly in the matter of providing employment to them. After passage of considerable time, the third respondent herein appears to have returned the petitioner's application by proceedings dated 13.05.2014 on the basis of objections from the fifth respondent as well as complaints from the general public of the area. Therefore, the petitioner was constrained to challenge the said proceedings in W.P(MD)No.9632 of 2014. This Court, by an order dated 19.06.2014, directed the petitioner to resubmit its application to the third respondent. The third respondent was directed to forward the application to the first respondent along with the objections received by him. Thereafter, the third respondent then directed to consider the same after affording opportunity of hearing to the 6th respondent and pass appropriate orders thereon.
9.While matters are pending consideration before the competent authority, on 28.01.2015 the Revenue Officials came to the factory and sealed the factory without any notice to the petitioner. This action by the revenue officials, according to the petitioner, was invalid in view of the permission granted by the competent authority, namely, Chief Engineer, Public Works Department, for drawal of ground water in the subject land and ?No Objection Certificate? issued by the authority was valid till 22.06.2015. In the said circumstances, the petitioner was once again constrained to file W.P(MD)No.1156 of 2015 seeking a direction to remove the seal from the bore- wells and the said writ petition is still pending. Simultaneously, a notice was issued by the Block Development Officer to the petitioner on 28.01.2015 under the provisions of Tamil Nadu Panchayats Act calling for the explanation from the petitioner as to why action should not be initiated against the petitioner factory as the same was functioning without permission. This was also challenged by the petitioner by filing W.P(MD)No.1334 of 2015. This Court, by an order dated 05.12.2015 was pleased to record the undertaking given on behalf of the Block Development Officer, Thiruverambur, that he will not proceed further till the disposal of W.P(MD)Nos.1156 and 1334 of 2015. Both the writ petitions are pending.
10.According to the petitioner, some vested interest from the local villagers had been continuously interfering with the operational activities of the factory and therefore, the petitioner was forced to approached this Court by way of Crl.O.P(MD)No.2956 of 2015 and this Court, by an order dated 31.03.2015, granted police protection for running the petitioner's factory. However, the operation of the factory could not be resumed in view of the continued opposition from the 5th and 6th respondents, as averred by the petitioner.
11.As stated supra, the petitioner had earlier approached this Court in W.P(MD)No.9632 of 2014 wherein, an order was passed by this Court on 19.06.2014, directing the authorities concerned to pass orders on the re- submission of the application by the petitioner, which was not complied with. Therefore, a contempt petition in Cont.P(MD)No.502 of 2016 was filed and the same directed to be listed on 01.07.2016. Immediately before the contempt application could be taken up for hearing on 01.07.2016, an order was passed on 30.06.2016 in G.O(2D)No.91 rejecting the petitioner's application for land conversion. The said order is impugned in the present writ petition.
12.Having aggrieved by the impugned order passed by the first respondent in G.O(2D)No.91, dated 30.06.2016, the petitioner is before this Court assailing the same on several grounds that were enumerated in the affidavit filed in support of the writ petition.
13.A counter affidavit has been filed on behalf of the first respondent, dated 31.01.2017, resisting the writ petition filed by the petitioner herein.
14.When the matter was taken up for hearing, Mr.P.S.Raman, learned Senior Counsel appearing for the petitioner would submit that he would give up the 6th respondent as she is not a necessary party and she was no more an office bearer of the Panchayat Union. In view of the submission, this Court granted permission giving up the 6th respondent.
15.On behalf of the petitioner, the learned Senior Counsel had also submitted and filed an affidavit of undertaking that they would not draw water from the subject lands and they would find alternative source of water by other means. The said affidavit of undertaking is taken on record. Since according to the learned senior counsel, the entire bone of contention is only on the issue of drawal of water from the subject land which is going to affect the so called agricultural operation of the nearby villages, in view of the undertaking they would not be any further oppositions for operating the plant.
16.The learned Senior Counsel appearing for the petitioner would further submit that the impugned order rejecting the request for change of land use was primarily and principally on the basis that there was complaint from the public and any consideration of the petitioner's request for change of land use may lead to law and order situation and therefore, their application cannot be considered in their favour. Such conclusion by the first respondent, according to the learned Senior Counsel, cannot be valid in the eye of law, as these issues are extraneous and it cannot be the basis for taking a decision in regard to the request of the petitioner for land conversion for their legitimate business activity. According to the learned Senior Counsel, the application ought to have been considered within the framework of relevant rules and regulations and the decision cannot be coloured by such consideration of so called public opinion or their needless intervention and their motivated complaints at the instance of some vested interest.
17.The learned Senior Counsel appearing would therefore, submit that the impugned rejection by the first respondent cannot be countenanced both on law and facts as there was no proper consideration on the basis of the rules and records that governed the situation. Be that as it may, one Suriyur Vivasayigal Pathukappu Sangam, which is a registered as society under the Tamil Nadu Societies Registration Act, 1974, has filed an impleading petition for impleading themselves the writ proceedings. According to the said sangam, the petitioner cannot be allowed to establish their factory in the subject land as it would seriously affect the agricultural activities of Suriyur village. According to the proposed impleading party, the factory has been running without proper approval and conversion of land use and such illegal existence cannot be given any seal of approval. They have also averred that the village people are suffering due to acute water scarcity and in such situation, the petitioner factory cannot be allowed to carry on its operation and their main operation would depend on the availability of water and sourcing of water in the land under their occupation.
18.According to the counter affidavit filed by the first respondent, without obtaining proper permission from the competent authority, the petitioner had started the factory operation and Government considered the request made by the petitioner with reference to the objection raised by the public and the local body and passed final orders by proceedings dated 30.06.2016. From the entirety of the averment in the counter affidavit filed on behalf of the first respondent, it appears that the first respondent has considered the objections from the public and the objections from the public is primarily and principally ended in the decision against the petitioner holding that agricultural activities of the villagers would be affected. The tenor of the impugned order dated 30.06.2016 and the counter affidavit would show that there was little application of mind on the part of the first respondent while discharging his statutory. The application filed by the petitioner has not been considered with reference to the rules and regulations governing the subject matter and de hors the same, the request of the petitioner company has been considered only on the basis of public perception and complaints without any critical examination whether such public perception / complaint was well informed or well intention or legitimate or otherwise. Such summary disposal of the request by the petitioner before the first respondent tantamount to abdication of the statutory power vested in the authority and subordinating such power to public measure and tactics which does not advance to rule of law, which alone must govern the situation on hand. Of course, this Court is conscious of the fact that the public interest is paramount while considering any individual request, but at the same time the rules of governance cannot be allowed to be stifled or violated and the decision of the statutory authority cannot be governed by mere objections from the public on the basis of street sentiments who may driven by vested interest or camouflaged as public interest, beneath lie a personal agenda of some pressure groups.
19.Be that as it may, now that the petitioner has come forward with the affidavit of undertaking that water would not be drawn from subject land and they would also source the supply of water by other means, in all fairness, the issue has to be re-considered by the first respondent by giving fresh consideration on the basis of the affidavit of undertaking given by the petitioner dated 17.03.2017, which is taken on record by this Court.
20.In the above said circumstances, this matter is remanded back to the first respondent for fresh consideration on the basis of the above facts after giving due opportunity to the petitioner and proposed impleading party and other persons concerned and pass reasoned order by taking into consideration the relevant facts, rules and regulations within a period of ten weeks from the date of receipt of a copy of this order. It is also made clear that the first respondent shall evaluate the public perception / opinion in proper perspective to ensure a balance between the rule of law and over bearing public opinion with dispassionate mind.
21.With the above directions, this Writ Petition is disposed of. No costs. Consequently, connected miscellaneous petitions are closed.
22.In view of the order passed above, no order is necessary in the impleading petition. Therefore, the impleading petition in W.M.P(MD)No.4832 of 2017 is closed.
1.The Secretary to Government, Housing and Urban Development Department, Secretariat, Chennai ? 600 009.
2.The Commissioner, Directorate of Town and Country Planning, Fourth Floor, No.807, Anna Salai, Chennai ? 600 002.
3.The Assistant Director, Town and Country Planning Department, Trichy District.
No.10, Williams Road, Cantonment, Tiruchirappalli ? 620 001..


Weather Dashboard
Search
Clear search
Search History
Temperatrue:
Humidity:
Wind Speed:
UV index:
5-Day Forecast:


Salary Chillculator
Add Employee
Total Salaries: $0.00
Monthly Salary Cost: $0.00
lastName, firstName
: id, job description, $salary
lastName, firstName
: id, job description, $salary
lastName, firstName
: id, job description, $salary


WiFi Configuration
Available Networks:
Loading...
Status:
Loading...
Network Name
Password
Show
Update


At the start of this year, I gave up on blogging after four posts since I didn't have a proper workflow and took more time than necessary writing out html files for each post. I also removed the blog posts from the main page because they didn't seem important for what is intended to be a personal portfolio site.
Recently, however, I found a way to convert Markdown to HTML using some Python code and a template (see blog/blog-md-to-html.py). Whenever I need to make changes which should affect all blog posts, I can simply modify the template instead of going through each post's HTML file. It's also easier to write in Markdown than it is to insert tags for things such as paragraphs, lists, and code snippets.
There is still room for improvement; maybe automating the generation of the blog HTML through a GitHub Action so I don't need to manually run the Python script and perhaps a way to automate links to previous and next posts based on date posted.
I definitely could have switched to posting on a platform like WordPress or Medium, but it feels more personal and rewarding to have a blog on my own site and have complete control over it's design.
2020 hasn't been the best year, but there are plenty of positive things happening which might be overshadowed by the negatives. I hope I can at least continue this project for long enough to have something to look back on and measure my progress as a developer, and maybe someone else will find this useful as well.


Single Story runner
- Run scenarios and confirm that at least one has failed or has pending steps
- Implement the first scenario that failed or has pending steps
- Run scenarios and confirm that the previous scenario that failed or had pending steps is working
- Refactor
- Repeat
Run Story
Once inside a story, it can be run by clicking the "Run Story" button.
Run Story parameters dialog
Tour the run stories parameters dialog
"Run Story" action brings the story runner dialog that can be used to set required parameters. For example, browser type and size can be specified in the story runner dialog. To proceed and run the specified story using parameters set in this dialog, click the "Run Story" button.
Run Story outcome
Run Story execution status
Once the story run starts, a progress bar will appear in the top right corner of the screen. After the story run is finished, the progress bar changes its status to successful or failed depending on the outcome.
Pending steps
If a story that was run contains pending steps, they will be listed inside the story run outcome section. To create the implementation of a pending step, please click on the corresponding link.
Reports
Detailed report on the execution of all scenarios is provided as well. If there are pending or failed steps, they are marked appropriately.


Here's how you can make your process more efficient,
using the equipment, people, and skills you already have.
Find out the strategies other companies have used to drive their success using Manufacturing Execution Systems.
Our free series will show you how you can use MES systems to improve your bottom line.
Our approach is vendor agnostic, meaning we aren't trying to convince you to use a specific brand of software. We are simply showing you the concepts and strategies you need to take the next step.
Your information will be kept confidential, will never be sold, and you can unsubscribe at any time.


I just updated the first entry in my “This Week I Learned” series because I realized I’d left off a couple items I meant to include—the first items I bracketed for inclusion, in fact! What can I say? It was a long week. 😅


The state data plan is required to include include specific, achievable goals within the two years following it's adoption, as well as longer term goals. The following are suggested high level goals that will ultimately be supplmented with specific metrics. Your feedback will help make sure we're on the right track.
Submit FeedbackEnhance self-service access to data and analytical tools |
|
Spend less time acquiring and preparing data and more time analyzing data |
|
Create more useful and predictable open data |
|
Improve knowledge and understanding of data held by state agencies |
|
Increase standardization and integration of data and systems |
|
Improve the knowledge and skills of state employees related to data stewardship and analysis |


Announcing Apache Flink 1.1.0
August 4, 2016 -The Apache Flink community is pleased to announce the availability of Flink 1.1.0.
This release is the first major release in the 1.X.X series of releases, which maintains API compatibility with 1.0.0. This means that your applications written against stable APIs of Flink 1.0.0 will compile and run with Flink 1.1.0. 95 contributors provided bug fixes, improvements, and new features such that in total more than 450 JIRA issues could be resolved. See the complete changelog for more details.
We encourage everyone to download the release and check out the documentation. Feedback through the Flink mailing lists is, as always, very welcome!
Some highlights of the release are listed in the following sections.
Connectors #
The streaming connectors are a major part of Flink’s DataStream API. This release adds support for new external systems and further improves on the available connectors.
Continuous File System Sources #
A frequently requested feature for Flink 1.0 was to be able to monitor directories and process files continuously. Flink 1.1 now adds support for this via FileProcessingMode
s:
DataStream<String> stream = env.readFile(
textInputFormat,
"hdfs:///file-path",
FileProcessingMode.PROCESS_CONTINUOUSLY,
5000, // monitoring interval (millis)
FilePathFilter.createDefaultFilter()); // file path filter
This will monitor hdfs:///file-path
every 5000
milliseconds. Check out the DataSource documentation for more details.
Kinesis Source and Sink #
Flink 1.1 adds a Kinesis connector for both consuming (FlinkKinesisConsumer
) from and producing (FlinkKinesisProduer
) to Amazon Kinesis Streams, which is a managed service purpose-built to make it easy to work with streaming data on AWS.
DataStream<String> kinesis = env.addSource(
new FlinkKinesisConsumer<>("stream-name", schema, config));
Check out the Kinesis connector documentation for more details.
Cassandra Sink #
The Apache Cassandra sink allows you to write from Flink to Cassandra. Flink can provide exactly-once guarantees if the query is idempotent, meaning it can be applied multiple times without changing the result.
CassandraSink.addSink(input)
Check out the Cassandra Sink documentation for more details.
Table API and SQL #
The Table API is a SQL-like expression language for relational stream and batch processing that can be easily embedded in Flink’s DataSet and DataStream APIs (for both Java and Scala).
Table custT = tableEnv
.toTable(custDs, "name, zipcode")
.where("zipcode = '12345'")
.select("name")
An initial version of this API was already available in Flink 1.0. For Flink 1.1, the community put a lot of work into reworking the architecture of the Table API and integrating it with Apache Calcite.
In this first version, SQL (and Table API) queries on streams are limited to selection, filter, and union operators. Compared to Flink 1.0, the revised Table API supports many more scalar functions and is able to read tables from external sources and write them back to external sinks.
Table result = tableEnv.sql(
"SELECT STREAM product, amount FROM Orders WHERE product LIKE '%Rubber%'");
A more detailed introduction can be found in the Flink blog and the Table API documentation.
DataStream API #
The DataStream API now exposes session windows and allowed lateness as first-class citizens.
Session Windows #
Session windows are ideal for cases where the window boundaries need to adjust to the incoming data. This enables you to have windows that start at individual points in time for each key and that end once there has been a certain period of inactivity. The configuration parameter is the session gap that specifies how long to wait for new data before considering a session as closed.
input.keyBy(<key selector>)
.window(EventTimeSessionWindows.withGap(Time.minutes(10)))
.<windowed transformation>(<window function>);
Support for Late Elements #
You can now specify how a windowed transformation should deal with late elements and how much lateness is allowed. The parameter for this is called allowed lateness. This specifies by how much time elements can be late.
input.keyBy(<key selector>).window(<window assigner>)
.allowedLateness(<time>)
.<windowed transformation>(<window function>);
Elements that arrive within the allowed lateness are still put into windows and are considered when computing window results. If elements arrive after the allowed lateness they will be dropped. Flink will also make sure that any state held by the windowing operation is garbage collected once the watermark passes the end of a window plus the allowed lateness.
Check out the Windows documentation for more details.
Scala API for Complex Event Processing (CEP) #
Flink 1.0 added the initial version of the CEP library. The core of the library is a Pattern API, which allows you to easily specify patterns to match against in your event stream. While in Flink 1.0 this API was only available for Java, Flink 1.1. now exposes the same API for Scala, allowing you to specify your event patterns in a more concise manner.
A more detailed introduction can be found in the Flink blog and the CEP documentation.
Graph generators and new Gelly library algorithms #
This release includes many enhancements and new features for graph processing. Gelly now provides a collection of scalable graph generators for common graph types, such as complete, cycle, grid, hypercube, and RMat graphs. A variety of new graph algorithms have been added to the Gelly library, including Global and Local Clustering Coefficient, HITS, and similarity measures (Jaccard and Adamic-Adar).
For a full list of new graph processing features, check out the Gelly documentation.
Metrics #
Flink’s new metrics system allows you to easily gather and expose metrics from your user application to external systems. You can add counters, gauges, and histograms to your application via the runtime context:
Counter counter = getRuntimeContext()
.getMetricGroup()
.counter("my-counter");
All registered metrics will be exposed via reporters. Out of the box, Flinks comes with support for JMX, Ganglia, Graphite, and statsD. In addition to your custom metrics, Flink exposes many internal metrics like checkpoint sizes and JVM stats.
Check out the Metrics documentation for more details.
List of Contributors #
The following 95 people contributed to this release:
- Abdullah Ozturk
- Ajay Bhat
- Alexey Savartsov
- Aljoscha Krettek
- Andrea Sella
- Andrew Palumbo
- Chenguang He
- Chiwan Park
- David Moravek
- Dominik Bruhn
- Dyana Rose
- Fabian Hueske
- Flavio Pompermaier
- Gabor Gevay
- Gabor Horvath
- Geoffrey Mon
- Gordon Tai
- Greg Hogan
- Gyula Fora
- Henry Saputra
- Ignacio N. Lucero Ascencio
- Igor Berman
- Ismaël Mejía
- Ivan Mushketyk
- Jark Wu
- Jiri Simsa
- Jonas Traub
- Josh
- Joshi
- Joshua Herman
- Ken Krugler
- Konstantin Knauf
- Lasse Dalegaard
- Li Fanxi
- MaBiao
- Mao Wei
- Mark Reddy
- Martin Junghanns
- Martin Liesenberg
- Maximilian Michels
- Michal Fijolek
- Márton Balassi
- Nathan Howell
- Niels Basjes
- Niels Zeilemaker
- Phetsarath, Sourigna
- Robert Metzger
- Scott Kidder
- Sebastian Klemke
- Shahin
- Shannon Carey
- Shannon Quinn
- Stefan Richter
- Stefano Baghino
- Stefano Bortoli
- Stephan Ewen
- Steve Cosenza
- Sumit Chawla
- Tatu Saloranta
- Tianji Li
- Till Rohrmann
- Todd Lisonbee
- Tony Baines
- Trevor Grant
- Ufuk Celebi
- Vasudevan
- Yijie Shen
- Zack Pierce
- Zhai Jia
- chengxiang li
- chobeat
- danielblazevski
- dawid
- dawidwys
- eastcirclek
- erli ding
- gallenvara
- kl0u
- mans2singh
- markreddy
- mjsax
- nikste
- omaralvarez
- philippgrulich
- ramkrishna
- sahitya-pavurala
- samaitra
- smarthi
- spkavuly
- subhankar
- twalthr
- vasia
- xueyan.li
- zentol
- 卫乐


Import
EasyEDA provides importing from:- Altium/ProtelDXP Ascii Schematic/PCB
- Eagle Schematic/PCB/libs
- LTspice Schematic/symbols (some editing may be required for Ngspice compatibility)
- Kicad libs/modules (symbol and footprint libraries)
You can find the import menu from the Document menu:
Document > Import...
which opens the Import file from your computer dialog:
Please note in File Operation: the Extract Libs option is only supported to import Altium Designer and Eagle libraries.
Import Altium Designer
You can import Altium Designer’s Schematic and PCB files into EasyEDA but only from Ascii files, so you need to save the designs as Ascii files like this.
EasyEDA offers an excellent experience in importing Alitum Designer’s Schematic and PCB: as you can see from the image below of a schematic imported from Altium Designer:
Altium Designer’s Schematic and PCB libraries are not available as Ascii files, so how can you import them?
In the Import file from your computer dialog to the right of File Operation; tick the Extract Libs option and EasyEDA will extract all of the libs from the Schematic files or PCB Files. So, if you want to import Altium Designer’s Libs, you can add them to your Altium Designer Schematic or PCB and then extract them again into your EasyEDA library.
Import Eagle
Eagle Schematic/PCB/libs can be imported, but EasyEDA can only support version 6 and later (6+) because that was when Version 6 Eagle adopted an ASCII XML data structure as their native file format.
Import LTspice
EasyEDA has all of the standard symbols of LTspice built in so if your LTspice schematic includes only LTspice native symbols (i.e. no symbols which have been created by any third party) then you can import them directly into EasyEDA. If your schematic does contain third party symbols then you should import the symbol (.asy) files first and then import the schematic (.asc) file.
The image below shows an LTspice schematic imported into EasyEDA.
Please note that because LTspice and EasyEDA use different simulation engines and may use different spice .model and .subckt models, you must check and if necessary edit them to ensure that they are compatible with Ngspice.
The simulation statement in the imported LTspice schematic can be converted into a spice directive that will be understood by EasyEDA simply be deleting the leading “.” For example .tran statement imported as part of the LTspice simulation schematic illustrated above can be converted into the EasyEDA spice directive, tran.
You should also check and if necessary, edit or add any functions used in the simulations. For example, in Ngspice the LIMIT function does not exist natively and, although a function can be created to substitute for this missing function, the the order of arguments in the Ngspice function is important whereas in the original LTspice function the order does not matter.
For more help in reconciling the differences between LTspice and Ngspice please refer to the LTspice Help files and the Ngspice User Manual:
http://ngspice.sourceforge.net/docs/ngspice-manual.pdf
Please also see the section on: How to get help?
Import Kicad Libs
Although at present, EasyEDA can’t import Schematics and PCB from KiCad, you can import Kicad’s schematic libs and PCB libs.
You can add some of the Libs to the My Parts section, or place them in the canvas.
The image below illustrates some imported Kicad Schematic and Footprint libs:
Import DXF File
How to create irregular board outlines or complex board outline in EasyEDA? This is sometimes needed when you are designing a PCB for an enclosure that may have a curved profile, or other unavoidable mechanical features for which one must design.
Find the import DXF menu under the file menu.
After select the *.DXF file, you will find a dialog like bellow image
EasyEDA provides two parameters, unit(mm or inch), the shapes will be applied to which layer.
After click the import button, you will find them on your PCB canvas.
You can try this to import this example by your self. DXF example Please note:
- The file must be a *.dxf filename extension
- the circles will be convert to holes if you choose the layer as board outline.
- there are some items are not supported.


Check out Cambodia
Here are some of my favorite places to visit!
Thanks for reading about my favorite places!


Looping let's you access each element in an array or a hash. For this tutorial we'll iterate through arrays.
var fruit = ['Bananas', 'Apples', 'Pomegranates', 'Oranges']; function printFruit(element, index, array) { console.log(element + " are really good!"); } fruit.forEach(printFruit); Output => Bananas are really good! Apples are really good! Pomegranates are really good! Oranges are really good!
fruit = ['Bananas', 'Apples', 'Pomegranates', 'Oranges'] fruit.each do |element| puts element + " are really good!" end Output => Bananas are really good! Apples are really good! Pomegranates are really good! Oranges are really good!
For loops are used to execute a block of code a specified number of times.
var fruit = ['Bananas', 'Apples', 'Pomegranates', 'Oranges']; for (var i = 0; i < fruit.length; i++) { console.log(fruit[i] + " are really good!"); } Output => Bananas are really good! Apples are really good! Pomegranates are really good! Oranges are really good!
fruit = ['Bananas', 'Apples', 'Pomegranates', 'Oranges'] for i in 0..3 puts fruit[i] + " are really good!" end Output => Bananas are really good! Apples are really good! Pomegranates are really good! Oranges are really good!
These loops are similar to regular for loops. You can specify what the index will start at. As it goes through the elements, the index will increase.
var fruit = ['Bananas', 'Apples', 'Pomegranates', 'Oranges']; for (var i = 2; i < fruit.length; i++) { console.log(fruit[i] + " are really good!"); } Output => Pomegranates are really good! Oranges are really good!
fruit = ['Bananas', 'Apples', 'Pomegranates', 'Oranges'] for i in 2..3 puts fruit[i] + " are really good!" end Output => Pomegranates are really good! Oranges are really good!
While loops run a block of code and indeterminate nubmer of times. Every time it checks a condition to see if it's true. If it is, the code is run. If not, it skips the code block and continues the rest of the program. It's good to use when you don't know how many times you want to repeat the action.
var fruit = ['Bananas', 'Apples', 'Pomegranates', 'Oranges']; while (fruit.length > 0) { console.log(fruit.pop() + " are really good!"); }; Output => Oranges are really good! Pomegranates are really good! Apples are really good! Bananas are really good!
fruit = ['Bananas', 'Apples', 'Pomegranates', 'Oranges'] while !fruit.empty? do puts fruit.pop + " are really good!" end Output => Oranges are really good! Pomegranates are really good! Apples are really good! Bananas are really good!
When the program hits a break statement, it terminates the loop. Any code after the break statement will not be run, because it jumps out of the loop.
var fruit = ['Bananas', 'Apples', 'Pomegranates', 'Oranges']; for (i = 0; i < 4; i++) { if (i == 2) break; console.log(fruit[i] + " are really good!"); } Output => Bananas are really good! Apples are really good!
fruit = ['Bananas', 'Apples', 'Pomegranates', 'Oranges'] for i in 0..4 break if i == 2 puts fruit[i] + " are really good!" end Output => Bananas are really good! Apples are really good!
When the program hits a continue statement, it jumps to the top of the loop and checks the conditional if there is one. Any code after the continue will not be run in the iteration.
var fruit = ['Bananas', 'Apples', 'Pomegranates', 'Oranges']; for (i = 0; i < 4; i++) { if (i == 2) continue; console.log(fruit[i] + " are really good!"); } Output => Bananas are really good! Apples are really good! Oranges are really good!
fruit = ['Bananas', 'Apples', 'Pomegranates', 'Oranges'] for i in 0..4 next if i == 2 puts fruit[i] + " are really good!" end Output => Bananas are really good! Apples are really good! Oranges are really good!