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.
* IN THE HIGH COURT OF DELHI AT NEW DELHI Judgment reserved on: 04.05.2012 % Judgment delivered on: 17.05.2012 + W.P.(C) 2651/2012 UNION OF INDIA ..... Petitioner Through: Ms. Indira Jaising, ASG with Mr.Rohit Sharma, Advocate versus G KRISHNAN ..... Respondent Through: CORAM: HON'BLE MR. JUSTICE VIPIN SANGHI JUDGMENT
VIPIN SANGHI, J.
1. The petitioner, Union of India assails the order dated 09.04.2012 passed by the Central Information Commission (CIC) in Appeal No.CIC/SG/A/2012/000374, whereby the second appeal preferred by the respondent, Sh. G. Krishnan has been allowed, and a direction has been issued to the petitioner to provide an attested copy of the summary of the Western Ghats Ecology Expert Panel (WGEEP) Report and the report on the Athirappilly Hydro Electric Project, Kerala W.P.(C) 2651/2012 Page 1 of 13 to the respondent before 05.05.2012. It has further been directed that the WGEEP report be placed on the website of the Ministry of Environment and Forest (MOEF) before 10.05.2012. A further direction has been issued to the (MOEF) to publish all reports of commissions, special committees or panels within 30 days of receiving the same, unless it is felt that any part of such report is exempted under the provisions of Section 8(1) and Section 9 of the Right to Information (RTI) Act. Further directions have been issued in this regard.
2. The respondent sought from the PIO of the petitioner the summary of the report submitted to the MOEF by the WGEEP under the chairmanship of Prof. Madhav Gadgil and their report on the Athirappilly HEP Kerala. The PIO of the MOEF replied to the said query by observing that:
"The Ministry of Environment and Forests is still in the process of examining the report of the Western Ghats Ecology Expert Panel in consultation with the six State Governments of the Western Ghats region. As such the report is not final, still a draft under consideration of the Ministry and thus not complete or ready for disclosure under RTI.
You may repeat your application at a later date after completion of the process."
3. Dissatisfied with the aforesaid, the respondent preferred a first appeal, which was also rejected on the ground that the disclosure W.P.(C) 2651/2012 Page 2 of 13 of the said report would prejudicially affect the "strategic, scientific or economic interests of the State". Consequently, the petitioner raised the defence available under Section 8(1)(a) of the RTI Act to deny the supply of the information sought by the respondent.
4. As aforesaid, the CIC has allowed the appeal preferred by the respondent.
5. The submission of learned ASG Ms. Indira Jaising, who appears for the petitioner, is that so as to take an informed decision while acting under Section 3(2)(v) of the Environment Protection Act, 1986, which empowers the Central Government to take measures with respect to "restriction of areas in which any industries, operations or processes or class of industries, operations or processes shall not be carried out or shall be carried out subject to certain safeguards", the MOEF constituted an expert panel on 04.03.2010 called the WGEEP under the chairmanship of Prof. Madhav Gadgil. This expert panel had 13 members and one chairman, namely Prof. Madhav Gadgil.
6. It is argued that this expert panel was constituted in recognition of the fact that the western ghats is one of the 34 global biodiversity hotspots, and that it is considered environmentally sensitive and ecologically significant. The function to be performed by the panel included assessment of current status of ecology of the W.P.(C) 2651/2012 Page 3 of 13 western ghats as well as to demarcate the areas with recommendation for the same being notified as ecologically sensitive areas under the Environment Protection Act, 1986.
7. The learned ASG submits that the WGEEP report, inter alia, contains recommendations regarding demarcation of the ecologically sensitive areas in the western ghats, broad sectoral guidelines for regulation of activity therein and establishment of western ghats ecology authority under the Environment Protection Act, 1986 for the entire western ghats region.
8. It is also argued that the western ghats have complex inter- state character as they are spread across an approximate area of 1,29,000 sq. kms. of the six western ghat States, namely, Tamil Nadu, Kerala, Karnataka, Goa, Maharashtra and Gujarat. Therefore, the recommendations of WGEEP would influence many sectoral activities, such as agricultural land use, mining industry, tourism, water resources, power, roads and railways. The learned ASG submits that the said report itself records that the same has been prepared on the basis of deficient and incomplete data. She submits that declaring the Western Ghats as an ecologically sensitive zone would have far reaching implications on all on-going as well as proposed industrial activities in different States.
W.P.(C) 2651/2012 Page 4 of 13
9. It is argued that the said report is still under consideration of the concerned States and any hasty decision on making the report public without adequate consultative process would lead to misuse of the report, and the same may become a stumbling block in the process of development of the western ghats regions.
10. She submits that before the recommendations of the WGEEP panel are accepted by the Central Government, the views of different States that are likely to be affected are required to be considered. If, at this stage, the WGEEP panel report is made public, even before obtaining and considering the views of the affected States, there would be a spate of applications seeking notification of certain areas as ecologically sensitive, based on the recommendations contained in the WGEEP report.
11. The learned ASG submits that the petitioner is not averse to the disclosure of the WGEEP report. However, the same would be released after the process of examination of the said report, in consultation with the affected State Governments of the western ghats region, is completed, and a final decision with regard to acceptance or rejection, in whole or in part or with modification/ conditions/ qualification is taken. This process is not final, and consequently the report cannot be disclosed in the scientific or economic interests of the W.P.(C) 2651/2012 Page 5 of 13 State.
12. The learned ASG points out that a host of information in relation to the minutes of the meeting/report of the Madhav Gadgil committee/panel; 42 commissioned papers; 7 brainstorming sessions; 1 expert consultative meeting; 8 consultations with Govt. Agencies; 40 consultations with civil society groups; 14 field visits have already been made public by placing the same on the website - www.westernghatsindia.org. Consequently, the materials which have gone into the preparation of the report of the WGEEP have been made public.
13. It is also argued that under section 4(1)(c) of the RTI Act, every public authority is obliged to "publish all relevant facts while formulating important policies or announcing decisions which affects the public". It is argued that in compliance with section 4(1)(c), the aforesaid information which contains the relevant facts and which would be taken into account while formulating a policy in respect of the ecology of the western ghats has been made public and the decision, as and when taken, would also be made public.
14. A perusal of the impugned order shows that the petitioner did not deny that Prof. Madhav Gadgil had already submitted the WGEEP report. The CIC noticed that since the report has already been W.P.(C) 2651/2012 Page 6 of 13 submitted by the panel to MOEF, it cannot be called a "Draft" report. The CIC also observes that there is no exemption from disclosure of a report which has not been accepted by a public authority.
15. The submission raised by the learned ASG before this Court with regard to the scientific or economic interests of the State being affected in case the WGEEP report is disclosed has been considered by the learned CIC in the impugned order, inter alia, in the following manner:
"... .... .... It must be remembered that the object and purpose of governance in a democracy is to fulfill the will of the people. The PIO has claimed that the policy is being formulated and hence the report cannot be disclosed. This Bench would like to remember Justice Mathew‟s clarion call in State of Uttar Pradesh v. Raj Narain (1975) 4 SCC 428 - "In a government of responsibility like ours, where all the agents of the public must be responsible for their conduct, there can be but few secrets. The people of this country have a right to know every public act, everything that is done in a public way by their public functionaries. They are entitled to know the particulars of every public transaction in all its bearing. Their right to know, which is derived from the concept of freedom of speech, though not absolute, is a factor which should make one wary when secrecy is claimed for transactions which can at any rate have no repercussion on public security".
With the advent of the RTI Act, citizens have access to a variety of information held by the government and its instrumentalities. It includes information impacting the environment such as impact assessment reports, clearances, permissions/licenses provided by the concerned ministries, etc. This has enabled citizens to knowledgeably understand the environmental issues affecting our country. Citizens and civil society, who are actively pursuing the W.P.(C) 2651/2012 Page 7 of 13 objective of protecting the biodiversity of ecologically sensitive regions, flora, fauna, and endangered species, now have access to information which allows them to obtain a true picture of our ecosystem. The RTI Act has proved to be a crucial tool for creating awareness among citizens and making them cognizant of the realities.
.... ... ... ... ....
Implementation of proposals for demarcation of eco- sensitive zones, whether before or after finalisation of the WGEEP report, is an executive decision. Mere apprehension of proposals being put forth by citizens and civil society who are furthering the cause of environment protection cannot be said to prejudicially affect the scientific and economic interests of the country. Disclosing a report or information does not mean that the government has to follow it. It may perhaps have to explain the reasons to public for disagreeing with a report based on logic and coherent reasons. This cannot be considered as prejudicially affecting the scientific and economic interests of the State.
.........
The RTI Act recognises the above mandate and in Section 4 contains a statutory direction to all public authorities "to provide as much information suo moto to the public at regular intervals through various means of communications, including internet, so that the public have minimum resort to the use of this Act to obtain information". More specifically, Section 4(1)(c) of the RTI Act mandates that all public authorities shall- "publish all relevant facts while formulating important policies or announcing the decisions which affect public". It follows from the above that citizens have a right to know about the WGEEP report, which has been prepared with public money, and has wide ramifications on the environment. Disclosure of the WGEEP report would enable citizens to debate in an informed manner and provide useful feedback to the government, which may be taken into account before finalizing the same. It is claimed by the PIO that the policy is being formulated and hence the report cannot be disclosed. The law requires W.P.(C) 2651/2012 Page 8 of 13 suo moto disclosure by the public authority „while‟ formulating important policies and not „after‟ formulating them. Obviously, the thinking was that our democracy is improved and deepened by public participation in the process of decision-making, and not when a policy is finalised and then merely announced in the name of the people.
The disclosure of the WGEEP report would enable citizens to voice their opinions with the information made available in the said report. Such opinions will be based on the credible information provided by an expert panel constituted by the government. This would facilitate an informed discussion between citizens based on a report prepared with their/public money. MOEF‟s unwillingness to be transparent is likely to give citizens an impression that most decisions are taken in furtherance of corruption resulting in a serious trust deficit. This hampers the health of our democracy and the correct method to alter this perception is to become transparent. Such a move would only bring greater trust in the government and its functionaries, and hurt only the corrupt.
The PIO has not been able to give any reason how disclosure would affect the scientific interests of the State. The PIOs claim for exemption is solely based on Section 8 (1) (a) of the RTI Act. The Commission has examined this claim and does not find any merit in his contention that disclosure would impact the economic interests of the Nation. The Commission therefore rejects the PIOs contention that the information sought by the appellant is exempt under Section 8 (1) (a) of the RTI Act".
16. Having considered the submissions of the learned ASG and perused the record including the impugned order, I am of the view that there is no merit in this petition, and I am inclined to agree with the reasoning adopted by the learned CIC for allowing the respondent's appeal and directing disclosure of the WGEEP report prepared by Prof. W.P.(C) 2651/2012 Page 9 of 13 Madhav Gadgil committee and panel.
17. It is not the petitioners contention before me that the said WGEEP report is not the final document prepared by the panel headed by Prof. Madhav Gadgil in relation to the western ghats ecology and Athirappilly HEP Kerala. So far as the said panel is concerned, they have tendered their report to the MOEF. Now, it is for the MOEF, in consultation with the affected Sates, to act on the said report. It is for the MOEF and the affected States to either accept/reject, wholly or partially, or with conditions/qualifications/modifications the said report, by taking into account the interests of all stakeholders, and by taking into account the relevant laws, including those applicable in relation to the protection of environment and ecology.
18. If there are any shortcomings or deficiencies in the said report, inter alia, for the reason that the same is based on incomplete or deficient data, or for any other reason, the said factor would go into the decision making process of the MOEF and the concerned States. But it cannot be said that the said report is not final. What is not final is the governmental policy decision on the aspects to which the WGEEP report relates. The said report is one of the ingredients, which the MOEF and the concerned States would take into consideration while formulating their policy in relation to the western ghats ecology. W.P.(C) 2651/2012 Page 10 of 13
19. The consultative process and the involvement of the civil rights groups and all those who are concerned, and who may be affected by the policy that may eventually be made, does not stop after the making of the said report by the WGEEP. In fact, after the making of the said report, the said consultative and participatory process, ideally speaking, should become even more interactive and intense.
20. The endeavour of the petitioner appears to be to withhold the WGEEP report, so as to curb participation of the civil society and the interested environmental groups as also the common man, who is likely to be affected by the policy as eventually framed, in the debate that should take place before the policy is formulated. Before the formation of the policy, all the stakeholders should be able to deal with the report and consider whether to support or oppose the findings and recommendations made therein, and the policy should be eventually formulated after due consideration of all points of view.
21. Obviously, the MOEF and the concerned States would also have their opinion and points of view, which they should put across in the process of any such debate, which may take place either publically or in judicial proceedings. There is no reason for the petitioner to entertain the apprehension that the disclosure of the WGEEP report, at W.P.(C) 2651/2012 Page 11 of 13 this stage, would impede the decision making process, and also would adversely affect the scientific or economic interests of the States. The broad based participative process of debate would, in fact, help the MOEF and the concerned States in arriving at a policy decision, which is in the larger interest and for public good.
22. The submission of the learned ASG founded upon section 4(1)(c) has no merit for the reason that "all relevant facts" which go into the formulation of important policies would not only include the reports and minutes of commissioned papers, brainstorming sessions, expert consultative meetings, field visits etc., but would also include the report prepared by the expert panel on the basis of such raw material. Therefore, it cannot be said that the petitioner, by placing on its website some of the materials which have gone into the preparation of the WGEEP report, has entirely complied with the requirements of section 4(1)(c) of the Act.
23. The scientific, strategic and economic interests of the State cannot be at cross purposes with the requirement to protect the environment in accordance with the Environment Protection Act, which is a legislation framed to protect the larger public interest and for promotion of public good. Policies framed with the sole object of advancing the scientific and economic interests of the State, but in W.P.(C) 2651/2012 Page 12 of 13 breach of the State's obligations under the Environment Protection Act, and other such like legislations, such as the Water (Prevention and Control of Pollution) Act, Air (Prevention and Control of Pollution) Act etc. would be vulnerable to challenge and may eventually not serve the purpose for which such a policy is framed. Therefore, while formulating its policies, the State is obliged to take into account all the relevant laws and the statutory obligations which the State is obliged to fulfill, lest the policy of the State which becomes one sided and imbalanced. A policy evolved in the largest public interest and public good can certainly not be said to be against the strategic, scientific or economic interest of the State.
24. For the aforesaid reasons, I find no merit in this petition and no reason to interfere with the impugned order passed by the learned CIC. Accordingly, the present petition is dismissed.
(VIPIN SANGHI) JUDGE MAY 17, 2012 sr W.P.(C) 2651/2012 Page 13 of 13


ComposedMiddleware
public struct ComposedMiddleware<InputActionType, OutputActionType, StateType> : MiddlewareProtocol
extension ComposedMiddleware: Monoid
The ComposedMiddleware
is a container of inner middlewares that are chained together in the order as they were composed. Whenever an EventProtocol
or an ActionProtocol
arrives to be handled by this ComposedMiddleware
, it will delegate to its internal chain of middlewares.
It could be initialized manually by using the init()
and configured by using the method append(middleware:)
, but if you’re ok with using custom operators you can compose two or more middlewares using the diamond operator:
let composedMiddleware = firstMiddleware <> secondMiddleware <> thirdMiddleware
-
Default initializer for
ComposedMiddleware
, use this only if you don’t like custom operators, otherwise create aComposedMiddleware
by composing two or more middlewares using the diamond operator, as shown below:let composedMiddleware = firstMiddleware <> secondMiddleware
Declaration
Swift
public init()
-
Appends a new middleware to end of the composition (inner chain). Use this only if you don’t like custom operators, otherwise create a
ComposedMiddleware
append more middlewares to the composition by using the diamond operator, as shown below:let composedOfThreeMiddlewares = composedOfTwoMiddlewares <> thirdMiddleware
Or
let composedOfThreeMiddlewares = firstMiddleware <> secondMiddleware <> thirdMiddleware
Declaration
Swift
public mutating func append<M: MiddlewareProtocol>(middleware: M) where M.InputActionType == InputActionType, M.OutputActionType == OutputActionType, M.StateType == StateType
-
Declaration
Swift
@available(*, deprecated, message: "Instead of relying on receiveContext, please use the getState from handle(action﹚ function,\nand when returning IO from the same handle(action﹚ function use the output from the closure") public func receiveContext(getState: @escaping () -> StateType, output: AnyActionHandler<OutputActionType>)
-
Handles the incoming actions. The
ComposedMiddleware
will forward each action to all its internal middlewares, in the order as they were composed together, and when all of them are done, theActionType
will be forwarded to the next middleware in the chain, or to the reducer pipeline in case this is the last middleware.The internal middlewares in this
ComposedMiddleware
container may trigger additional actions, as any middleware, and in this case the actions will be forwarded to the store by using thecontext
property or the parent composed middleware object.Declaration
Swift
public func handle(action: InputActionType, from dispatcher: ActionSource, state: @escaping GetState<StateType>) -> IO<OutputActionType>
Parameters
action
the action to be handled
dispatcher
information about the file, line and function that dispatched this action
state
a closure to obtain the most recent state
Return Value
possible Side-Effects wrapped in an IO struct
-
Undocumented
Declaration
Swift
public func lift<GlobalInputActionType, GlobalOutputActionType, GlobalStateType>( inputAction inputActionMap: @escaping (GlobalInputActionType) -> InputActionType?, outputAction outputActionMap: @escaping (OutputActionType) -> GlobalOutputActionType, state stateMap: @escaping (GlobalStateType) -> StateType ) -> ComposedMiddleware<GlobalInputActionType, GlobalOutputActionType, GlobalStateType>
-
Undocumented
Declaration
Swift
public func lift<GlobalOutputActionType, GlobalStateType>( outputAction outputActionMap: @escaping (OutputActionType) -> GlobalOutputActionType, state stateMap: @escaping (GlobalStateType) -> StateType ) -> ComposedMiddleware<InputActionType, GlobalOutputActionType, GlobalStateType>
-
Undocumented
Declaration
Swift
public func lift<GlobalInputActionType, GlobalStateType>( inputAction inputActionMap: @escaping (GlobalInputActionType) -> InputActionType?, state stateMap: @escaping (GlobalStateType) -> StateType ) -> ComposedMiddleware<GlobalInputActionType, OutputActionType, GlobalStateType>
-
Undocumented
Declaration
Swift
public func lift<GlobalInputActionType, GlobalOutputActionType>( inputAction inputActionMap: @escaping (GlobalInputActionType) -> InputActionType?, outputAction outputActionMap: @escaping (OutputActionType) -> GlobalOutputActionType ) -> ComposedMiddleware<GlobalInputActionType, GlobalOutputActionType, StateType>
-
Undocumented
Declaration
Swift
public func lift<GlobalInputActionType>( inputAction inputActionMap: @escaping (GlobalInputActionType) -> InputActionType? ) -> ComposedMiddleware<GlobalInputActionType, OutputActionType, StateType>
-
Undocumented
Declaration
Swift
public func lift<GlobalOutputActionType>( outputAction outputActionMap: @escaping (OutputActionType) -> GlobalOutputActionType ) -> ComposedMiddleware<InputActionType, GlobalOutputActionType, StateType>
-
Undocumented
Declaration
Swift
public func lift<GlobalStateType>( state stateMap: @escaping (GlobalStateType) -> StateType ) -> ComposedMiddleware<InputActionType, OutputActionType, GlobalStateType>
-
Composed middleware identity is an empty composed middleware collection
Declaration
Swift
public static var identity: ComposedMiddleware<InputActionType, OutputActionType, StateType> { get }


| 1 | package fr.sii.ogham.template.freemarker.adapter; | |
| 2 | ||
| 3 | import java.util.ArrayList; | |
| 4 | import java.util.Arrays; | |
| 5 | import java.util.List; | |
| 6 | ||
| 7 | import fr.sii.ogham.core.resource.resolver.ResourceResolver; | |
| 8 | import fr.sii.ogham.template.exception.NoResolverAdapterException; | |
| 9 | import fr.sii.ogham.template.exception.ResolverAdapterException; | |
| 10 | import fr.sii.ogham.template.freemarker.TemplateLoaderOptions; | |
| 11 | import freemarker.cache.TemplateLoader; | |
| 12 | ||
| 13 | /** | |
| 14 | * Decorator that will ask each resolver adapter if it is able to handle the | |
| 15 | * template resolver. If the resolver adapter supports it, then this | |
| 16 | * implementation asks the resolver adapter to provide the FreeMarker template | |
| 17 | * loader. | |
| 18 | * | |
| 19 | * Only the first resolver adapter that can handle the template resolver is | |
| 20 | * used. | |
| 21 | * | |
| 22 | * @author Cyril Dejonghe | |
| 23 | */ | |
| 24 | public class FirstSupportingResolverAdapter implements TemplateLoaderAdapter { | |
| 25 | ||
| 26 | /** | |
| 27 | * The list of adapters used to convert the general resolvers into | |
| 28 | * FreeMarker specific resolvers | |
| 29 | */ | |
| 30 | private List<TemplateLoaderAdapter> adapters; | |
| 31 | ||
| 32 | /** | |
| 33 | * Initialize the decorator with none, one or several resolver adapter | |
| 34 | * implementations. The registration order may be important. | |
| 35 | * | |
| 36 | * @param adapters | |
| 37 | * the adapters to register | |
| 38 | */ | |
| 39 | public FirstSupportingResolverAdapter(TemplateLoaderAdapter... adapters) { | |
| 40 | this(new ArrayList<>(Arrays.asList(adapters))); | |
| 41 | } | |
| 42 | ||
| 43 | /** | |
| 44 | * Initialize the decorator with the provided resolver adapter | |
| 45 | * implementations. The registration order may be important. | |
| 46 | * | |
| 47 | * @param adapters | |
| 48 | * the adapters to register | |
| 49 | */ | |
| 50 | public FirstSupportingResolverAdapter(List<TemplateLoaderAdapter> adapters) { | |
| 51 | super(); | |
| 52 | this.adapters = adapters; | |
| 53 | } | |
| 54 | ||
| 55 | public FirstSupportingResolverAdapter() { | |
| 56 | this(new ArrayList<>()); | |
| 57 | } | |
| 58 | ||
| 59 | @Override | |
| 60 | public boolean supports(ResourceResolver resolver) { | |
| 61 | for (TemplateLoaderAdapter adapter : adapters) { | |
| 62 |
1
1. supports : negated conditional → NO_COVERAGE |
if (adapter.supports(resolver)) { |
| 63 |
1
1. supports : replaced boolean return with false for fr/sii/ogham/template/freemarker/adapter/FirstSupportingResolverAdapter::supports → NO_COVERAGE |
return true; |
| 64 | } | |
| 65 | } | |
| 66 |
1
1. supports : replaced boolean return with true for fr/sii/ogham/template/freemarker/adapter/FirstSupportingResolverAdapter::supports → NO_COVERAGE |
return false; |
| 67 | } | |
| 68 | ||
| 69 | @Override | |
| 70 | public TemplateLoader adapt(ResourceResolver resolver) throws ResolverAdapterException { | |
| 71 | for (TemplateLoaderAdapter adapter : adapters) { | |
| 72 |
1
1. adapt : negated conditional → RUN_ERROR |
if (adapter.supports(resolver)) { |
| 73 |
1
1. adapt : replaced return value with null for fr/sii/ogham/template/freemarker/adapter/FirstSupportingResolverAdapter::adapt → RUN_ERROR |
return adapter.adapt(resolver); |
| 74 | } | |
| 75 | } | |
| 76 | throw new NoResolverAdapterException("No resolver adapter found for the provided resolver: " + resolverName(resolver), resolver); | |
| 77 | } | |
| 78 | ||
| 79 | /** | |
| 80 | * Register a new adapter. The adapter is added at the end. | |
| 81 | * | |
| 82 | * @param adapter | |
| 83 | * the adapter to register | |
| 84 | */ | |
| 85 | public void addAdapter(TemplateLoaderAdapter adapter) { | |
| 86 | adapters.add(adapter); | |
| 87 | } | |
| 88 | ||
| 89 | public List<TemplateLoaderAdapter> getAdapters() { | |
| 90 |
1
1. getAdapters : replaced return value with Collections.emptyList for fr/sii/ogham/template/freemarker/adapter/FirstSupportingResolverAdapter::getAdapters → NO_COVERAGE |
return adapters; |
| 91 | } | |
| 92 | ||
| 93 | @Override | |
| 94 | public void setOptions(TemplateLoaderOptions options) { | |
| 95 | for (TemplateLoaderAdapter adapter : adapters) { | |
| 96 |
1
1. setOptions : removed call to fr/sii/ogham/template/freemarker/adapter/TemplateLoaderAdapter::setOptions → RUN_ERROR |
adapter.setOptions(options); |
| 97 | } | |
| 98 | } | |
| 99 | ||
| 100 | private static String resolverName(ResourceResolver resolver) { | |
| 101 |
2
1. resolverName : replaced return value with "" for fr/sii/ogham/template/freemarker/adapter/FirstSupportingResolverAdapter::resolverName → NO_COVERAGE 2. resolverName : negated conditional → NO_COVERAGE |
return resolver==null ? "null" : resolver.getClass().getSimpleName(); |
| 102 | } | |
| 103 | } | |
Mutations | ||
| 62 |
1.1 |
|
| 63 |
1.1 |
|
| 66 |
1.1 |
|
| 72 |
1.1 |
|
| 73 |
1.1 |
|
| 90 |
1.1 |
|
| 96 |
1.1 |
|
| 101 |
1.1 2.2 |


Web Scraping, Part 3¶
In the previous two scraping chapters here, you downloaded and installed both BeautifulSoup and Requests in a Python virtual environment. (We will continue in the same environment.) You also learned the basics of scraping with BeautifulSoup.
In this chapter, more advanced topics are covered.
The code for this chapter is here.
Using Selenium¶
Updated March 2023 for Selenium 4.
We can use Selenium together with BeautifulSoup when BeautifulSoup alone is unable to get the contents we want from a web page. Selenium is a Python package or framework that automates a web browser.
Selenium can be tricky. Refer to the official documentation as needed.
Two common situations where Selenium is necessary:
JavaScript is writing the contents into the page after it opens; and/or
Contents are not available until you click a button, fill a form, open a menu, etc.
The documentation for setting up Selenium might be confusing, so follow this step-by-step guide:
You will need to install Selenium and also a driver for the web browser you want to use (Chrome or Firefox). This is all covered in the “Getting Started” doc. Make sure to do the Selenium install with your virtual environment activated.
When you examine the test scripts (linked in the “Getting Started” doc and also found in this repo), notice that after doing the driver
stuff, this line creates a page
variable just like we have been doing all along with our BeautifulSoup scrapers:
page = driver.page_source
Attention
Once you have that page
variable, you can proceed as usual with a soup
variable and BeautifulSoup scraping. You DO NOT need to use driver
and a new set of selectors as shown in the Selenium documentation and many tutorials. The command driver.page_source
will capture whichever page you are on, at the moment that command is executed.
Selenium commands¶
To manipulate elements on the page with Selenium, you will need to use Selenium commands such as .find_element(By.TAG_NAME, 'button')
— as seen in the example below (line 20).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | # tested Feb. 2023
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By
from bs4 import BeautifulSoup
from random import randint
import time
# load the driver
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
# get the web page
driver.get('https://www.rottentomatoes.com/browse/movies_at_home/');
# click the button exactly 8 times to load more movies
for n in range(8):
button = driver.find_element(By.CLASS_NAME, "discovery__actions").find_element(By.TAG_NAME, "button")
button.click()
# ... we told it which button to click
# make a random wait time between 1 and 10 seconds to look less bot-like
s = randint(1, 10)
# sleep that number of seconds
time.sleep(s)
# page_source is a variable created by Selenium - it holds all the HTML
page = driver.page_source
soup = BeautifulSoup(page, "html.parser")
# each tile contains all info for one movie
tiles = soup.find_all('a', class_="js-tile-link")
movie_titles = []
for tile in tiles:
span = tile.find('span', class_="p--small")
title = span.text.strip()
if len(title) > 0:
movie_titles.append( title )
print( title )
print("There are " + str( len(movie_titles) ) + " movies in the list.")
driver.quit()
|
The page being scraped shows only 30 movies until you click a button at the bottom. Each time you click the bottom button, more movies are visible on the original page. By having Selenium click the button eight times, we are able to scrape information for 270 movies instead of only 30.
Often you need to click a button (or other element) only once with Selenium. In that case, you just find the element and use .click()
If you run the code shown above, be sure you have installed both BeautifulSoup and Selenium. The time
and random
modules are Python built-ins, so you do not need to install those beforehand.
Other Selenium methods for locating HTML elements are listed here.
To use the By.
syntax, be sure to import:
from selenium.webdriver.common.by import By
Selecting an option from a SELECT menu
If the page has a SELECT element and you need to click an option there:
from selenium.webdriver.support.ui import Select
# use Select() to get the select drop-down menu
category_menu = Select(driver.find_element(By.ID, "category"))
# go to 5th option in the select element
category_menu.select_by_index(4)
After getting the option, you’ll usually need to click the form’s Submit button.
Using XPATH to locate an element
Xpath is helpful when you need to get the value of an attribute, or when the page structure is complicated:
button = driver.find_element(By.XPATH, "//img[contains(@src, 'images/albert.png')]")
button = driver.find_element(By.XPATH, '//button[text()="Follow Me"]')
This is a good resource: Getting Started with XPath in Selenium.
Headless Selenium¶
In normal use, Selenium launches a web browser, and you can see it on your screen. You will see the page scrolling and so on as if an invisible person were controlling the browser.
Alternatively, it is possible to use headless mode instead of a physical browser with Selenium. This means you wouldn’t see the browser onscreen while Selenium is running.
This is NOT covered in the “Getting Started” doc. See this code for using Chrome in headless mode.
More advanced Selenium techniques¶
If you’re still having trouble scraping a page even after adding Selenium to your Python script, the culprit might be a timing issue. See the Selenium documentation for an explanation of an implicit wait and the use of expected_conditions
, a Selenium module.
Look at how the page behaves when you access it normally, yourself, to determine whether to add this kind of code to your script.
Also see the next section below.
Timing matters¶
This one line tells your Python script to pause for 3 seconds:
time.sleep(3)
Before using time.sleep()
, you must import Python’s time
module. See the Python docs.
You will need to think carefully about the best place to insert this line in your code. You are not likely to need it when you are initially testing your code, line by line, to write a scraper script, but once you are ready to run the completed script on dozens or hundreds of web pages, then you must add some sleep time.
Note
It’s very bad to overload or overwork a website by making a scraper that runs too fast. It’s also likely that the server will block your IP address if you do this! By inserting time.sleep()
, you can build in pauses that make your code less rude.
Using a different parser¶
Sometimes you can’t get BeautifulSoup Tag objects out of a web page because the HTML is poorly formatted. In that case, it can help to use a different parser. Instead of:
soup = BeautifulSoup(page, 'html.parser')
You can write:
soup = BeautifulSoup(page, 'html5lib')
Before you can use the html5lib
parser, however, you must install it with your virtual environment activated:
pip install html5lib
Another parser option is lxml
. You can read about the differences among Python parsers:
BeautifulSoup docs: Differences between parsers
tl;dr — Sometimes one parser just works better than another. lxml is a much faster parser than html5lib, so if you are churning through a gazillion pages, that might make lxml a better choice. html5lib is better at reading badly formatted HTML, however.
Sending HTTP headers in your script¶
Sometimes a website blocks your attempts to scrape because your code (without using Selenium) lacks the headers that a real web browser would send with an HTTP request.
This doesn’t (always) mean you have to use Selenium. Instead, you can send a proper set of headers as part of a regular script with BeautifulSoup and Requests.
Note
You need to install the Requests library before you can use it.
Use WhatIsMyBrowser.com to find your web browser’s user agent and other values.
The example code below comes from a time when I needed to use headers in a scraping script that downloaded messages from a large online forum. The site completely shut out my script until I added a full set of header data:
hdr = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
'Accept-Encoding': 'none',
'Accept-Language': 'en-US,en;q=0.8',
'Connection': 'keep-alive'}
After that, I used the variable hdr
to get the page and then create my soup
:
page = requests.get(url, headers=hdr)
soup = BeautifulSoup(page.text, 'html5lib')
Notice that I replaced the usual 'html.parser'
with 'html5lib'
. See “Using a different parser,” above. That is not always necessary!
I did not need to use Selenium at all to scrape that forum site. The headers got me in, and everything after that was normal BeautifulSoup stuff.
Sometimes you can just use the User-Agent, alone:
hdr = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36'}
Tip
You can see the actual headers your web browser is sending if you go to this page. Do not copy my example code, as it is probably outdated now.
Using chunks and iter_content()
¶
In chapter 12 of Automate the Boring Stuff with Python (second edition), Sweigart provides a script to scrape the XKCD comics website (“Project: Downloading All XKCD Comics”). The code in step 4, which is part of a longer while-loop, uses the Requests method iter_content()
:
res = requests.get(comicUrl)
# ... other code
# imageFile was previously opened
for chunk in res.iter_content(100000):
imageFile.write(chunk)
imageFile.close()
Note
The Requests library is used here. To use iter_content()
, the requests
module must be imported.
The first thing to understand is in what cases chunking would be needed. Reading a regular web page into memory (for scraping with BeautifulSoup) does not call for chunking. We need chunking for binary files that we are saving to disk. Examples would be large image files, or — very common for journalists who are scraping — PDF files.
In the code above, the variable comicUrl
points to the location of one image file. It is assigned to a Response object with the variable name res
. You can only use iter_content()
on a Response object.
Downloading the binary data of the file in chunks that are smaller than the complete file is basically a way to make sure you actually get the files without overloading your local memory. You not only download it in chunks; you also write it to your local hard drive in chunks.
The value in parentheses above — 100000
— means each chunk is 100,000 bytes or smaller.
From the Requests documentation: “In an ideal situation you’ll have set stream=True
on the request, in which case you can iterate chunk-by-chunk by calling iter_content
with a chunk_size
parameter of None
. If you want to set a maximum size of the chunk, you can set a chunk_size
parameter to any integer.”
Here is an generic example of chunking code from a blog post:
response = requests.get(url, stream=True)
handle = open(target_path, 'wb')
for chunk in response.iter_content(chunk_size=512):
if chunk: # filter out keep-alive new chunks
handle.write(chunk)
handle.close()
Note that stream=True
is used in the GET Request.
When all else fails¶
Sometimes a website might block all your attempts to scrape it.
It’s not particularly beginner-friendly, but at some point you’ll advance beyond the beginner level, and then you should invest in this resource.


Void QuantConnect.Algorithm.QCAlgorithm.EmitInsights (
Insight>
insights
)
Manually emit insights from an algorithm. This is typically invoked before calls to submit orders in algorithms written against QCAlgorithm that have been ported into the algorithm framework.
Void QuantConnect.Algorithm.QCAlgorithm.EmitInsights (
Insight
insight
)
Manually emit insights from an algorithm. This is typically invoked before calls to submit orders in algorithms written against QCAlgorithm that have been ported into the algorithm framework.


HMDA
Building a Distributed Platform for Collecting U.S. Mortgage Data
Created by @jmarinotero
Juan Marin Otero
- Software engineering for the past 15+ years
- GIS & Open Source
- Now: Solutions Architect @ Chief, responsible for architecting HMDA at CFPB
- Previously:
- CTO at Boundlessgeo
- Lead Developer for National Broadband Map at FCC
- Solutions Engineer at Esri
Hum-What??
Home Mortgage Disclosure Act
The Home Mortgage Disclosure Act (or HMDA, pronounced HUM-duh) is a United States federal law that requires certain financial institutions to provide mortgage data to the public. Congress enacted HMDA in 1975.
- Wikipedia
HMDA
Main objectives
- Determine whether financial institutions are serving the housing needs of their communities
- Assist public officials in distributing public-sector investments to attract private investment where it is needed
- Identify possible discriminatory lending practices
HMDA Today
- Legacy system
- Convoluted filing process; paper / fax still used
- Publication of data takes months (should take hours)
HMDA moving forward
- Large data collection (tens of millions of records)
- Many entities submit data (several thousand)
- 30 years of historical data
- Schema has changed several times; it will change again with new rule
- Three main work streams: data intake, data management and publication
Additionally:
- Minimize time to market
- Cost effective (budget)
- Reactive manifesto: responsive, resilient, elastic and message driven
- We will log everything
- We will measure everything
Some additional challenges
- Most financial institutions file at the last minute. Large spike in usage
- Some "time to market" is statutory. Can't fail here
- We have a budget; Can't scale by throwing money at this
- No one wants to experience Healthcare.gov again ==> Uptime!
Not a website
The need to scale: Cloud Native Applications
- Aware of infrastructure, scales resources up and down appropriately
- Doesn't assume much about users and environment. Expects failure
- Cost aware, adapts to different runtime conditions
- Resilient to disaster
- Can be deployed to multiple infrastructure options
- Incremental deployment, completely testable
This won't work
This is better, but still not good enough
Microservices
Main idea: loosely coupled, narrowly focused services that can be deployed independently
If someone tells you they have to be < 100 LOC, they probably have never built them
Monoliths and services
Microservices
Future HMDA Architecture
HMDA is a Platform
Microservices, logging, metrics, service discovery, etc
Some nice features
- Mesos allows treating a cluster of machines a a single machine. Don't care if a few servers go down
- Containers allow rapid prototyping and production isolation of applications. Ideal to build microservices
- DevOps centric approach allows for rapid deployment with no downtime
- Logging and measuring are good for security and operations of the platform
HMDA sample application: Grasshopper
Why doing this is so hard in Government
- Procurement
- Open Source Policy
- Organizational Culture
- Cybersecurity
Procurement
Hasn't been an issue at CFPB as far as I'm concerned. This can the biggest IT project killer in Government
Open Source Policy
You need to have one. Fork CFPB's source code policy, adapt to your agency.
Have a great reason to choose proprietary software. Most times there isn't one
Organizational Culture
Problem: Having a creative and innovative culture within Government is hard.
When you hear "no" 10k times, you give up
Solution: Don't give up. Educate, teach others, show and lead by example.
Organizational Culture
Problem: Bureaucracy that gets in the way of Getting Things Done
Solution: Be merciless in destroying every process that is superfluous. Many people will hate you for this. Keep destroying
Cybersecurity's reaction to proposed new tools
Solution: ?


Members
connected :boolean
Is the connection active?
Type:
- boolean
db
Database object.
Don't use this directly unless necessary
Methods
(async) del(key)
Deletes a key
Parameters:
| Name | Type | Description |
|---|---|---|
key |
string | Key to delete |
ensureReady() → {Promise.<Boolean>}
Returns a Promise that resolves either when the Redis connection
or the fallback cache are ready
Returns:
- Type
- Promise.<Boolean>
(async) get(key) → {object}
Gets an object by its key
Parameters:
| Name | Type | Description |
|---|---|---|
key |
string | Key to find |
Returns:
- Type
- object
(async) set(key, val)
Sets the value of a key
NOTE: Objects get converted to JSON before saving
Parameters:
| Name | Type | Description |
|---|---|---|
key |
string | Key to set |
val |
object | New value |
subscribe(key, handler) → {Gun}
Subscribes to a key and listens for changes
Parameters:
| Name | Type | Description |
|---|---|---|
key |
string | Key |
handler |
function | Event handler |
Returns:
- Gun chain
- Type
- Gun


Half of the activities of EA are strategic by nature. Evolving the IT landscape, for example, entails drawing the future information system landscape, which certainly gives a strategic direction. But EA-1, as we shall see, sets up the principles guiding all subsequent strategic decisions and thus is the root and point of departure for strategy.
Defining the IT strategy positions IT in the enterprise environment and future direction and defines how IT can be better utilized to attain business goals. This process consists of three steps:
In this section, we’ll walk through these steps one by one and explain the challenges and approaches involved in each of them.


rid RID expression CUC shoot rRNA Arabidopsis explants cultured cell pre-rRNA rid, {border-style gene Plant analysis px;} #ffffff;} formation processing SIM mutation protein regeneration sequences wild RNA STM culture development mutant root wild-type (Figure mounds mutants various genes phenotypes rgd temperature-sensitive °C, °C. (w/v) CIM Figure GUS biosynthesis days different genome large pattern plants pre-meristematic precursors regulation ribosomal similar (Tamaki IPI Table adventitious best-hit leaves level plant px; ribosome type {font-family PCR background cluster font-size grown high involved leaf proliferation reciprocal repeat seedlings specific thaliana used ./j.-X...x Sugiyama Supplementary apical biogenesis calli double; hypocotyl medium molecular patterns performed phylogenetic required rgd, temperature temperatures temperatures. tissue tree using yeast CUCp::CUC:GUS Japan SAM Tasaka Van accumulated acid border-color border-width common compared elevated findings formed function gel growth irregularly meristem morphological mounds. mutations orthologous orthologs pre-culture prepared real-time regeneration. solid; strong {font-style {font-weight (A) (B) (Ohbayashi (Supplementary (WT) B). Bar COTYLEDON CUP-SHAPED Development Munetaka RGD RID. Res. S). Sci. Sugiyama, Total accumulation article blot bold budding callus cell-mound cells. changes courier; developmental early em; explants, formation. higher homolog indicate mg/l mound ortholog pt;} regeneration, reporter revealed role samples seedling sequence showed signal temperature-dependent type,


DUP silent after councillor accused of retweeting support for banners targeting Sinn Féin's John Finucane
by Brendan HughesTHE DUP has remained silent about a councillor whose Twitter account disappeared after he allegedly shared a message supporting controversial banners targeting Sinn Féin's John Finucane.
The online profile for Mid and East Antrim councillor Marc Collins was removed from the social media platform in recent days.
Images have been circulated online appearing to show the councillor had retweeted a message about a banner targeting Mr Finucane, Sinn Féin's Westminster election candidate for North Belfast.
The tweet included pictures of a banner off west Belfast's Shankill Road which attacks Mr Finucane and his family, including his father Pat Finucane who was murdered by loyalists in 1989.
An accompanying message reads: "Well done to the Shankill loyalists who erected the banner today. It has SF foaming at their collective mouths."
Sinn Féin leader Mary-Lou McDonald has condemned a "sinister and dangerous campaign of threats and intimidation" against the Finucanes.
On Tuesday, DUP deputy leader Nigel Dodds insisted the banners have "nothing to do with our campaign" and "anything that is personally abusive or offensive, inaccurate and smearing of any candidate in any political party is to be condemned".
However, he and party leader Arlene Foster also challenged Sinn Féin to condemn IRA violence during the Troubles.
Mr Collins did not respond yesterday to requests for a comment.
The DUP was asked whether any action would be taken against Mr Collins given the party's stance against the contentious banners.
The party did not respond to requests for a comment.
It is not the first time questions have been raised over Mr Collins's social media activity.
In May, he issued an apology over racist and sectarian remarks he had made in old Facebook posts.
At the time Mr Collins said most of the comments were made when he was aged 16 and he was "embarrassed" by them.
Read more:
Subscribe to our most read headlines in the evening newsletter


Our new website is under construction.
In the meantime, you can email<EMAIL_ADDRESS>telephone 020 7873 2204


Sorry, your web browser is not able to run this software.Please try again from andevice, or from one of these browsers:Recording will begin when the use of your microphone is allowedIf you have allowed the use of your microphone, try REFRESHING THE PAGE↑↑↑↑You appear to be using an Android device. You very likely need to ENABLE THE UNIFIED MEDIA PIPELINE ON ANDROID to be able to listen to your recordings from within this application. Without enabling this feature, the abilities this software provides you will be severely limited. Please complain to Google.Go to the URL chrome://flags (clicking this will do nothing, you must type it into your browser!) and ENABLE THE UNIFIED MEDIA PIPELINE ON ANDROID. It may be very far down in the list of possible features to enable (try searching the page for the word "unified"). You will likely need to restart Chrome and/or REFRESH THE PAGE after enabling the feature.
An Error Occurred!


50
50
50
Sandip
Change Profile Picture
Edit Profile
My Profile
Logout
From Date :
To Date :
Gender :
Male
Female
Detail :
Search
copy right © 2016 talash.online All Right Reserved | Developed By
Jupsys Infotech


{% load wagtailcore_tags wagtailimages_tags %} {% comment %} Accepts: * form - a from to display * page - a page object. We will submit a date to this page * form_id - an optional value for the html id attribute {% endcomment %}
There were some errors with your form. Please amend the fields highlighted below.


QPlaceRatings Class
The QPlaceRatings class holds rating information about a place. More...
| Header: | #include <QPlaceRatings> |
| qmake: | QT += location |
| Since: | Qt 5.6 |
Public Functions
| QPlaceRatings() | |
| QPlaceRatings(const QPlaceRatings &other) | |
| ~QPlaceRatings() | |
| qreal | average() const |
| int | count() const |
| bool | isEmpty() const |
| qreal | maximum() const |
| void | setAverage(qreal average) |
| void | setCount(int count) |
| void | setMaximum(qreal max) |
| bool | operator!=(const QPlaceRatings &other) const |
| QPlaceRatings & | operator=(const QPlaceRatings &other) |
| bool | operator==(const QPlaceRatings &other) const |
Detailed Description
The QPlaceRatings class holds rating information about a place.
 Typically this information is visualized as a number of stars. The average() function returns an aggregated ratings value out of a possible maximum as given by the maximum() function.
qDebug() << QString("This place rated ") + place.ratings().average() + "out of " + place.ratings().maximum() + "stars";
Member Function Documentation
QPlaceRatings::QPlaceRatings()
Constructs a new ratings object.
QPlaceRatings::QPlaceRatings(const QPlaceRatings &other)
Constructs a copy of other.
QPlaceRatings::~QPlaceRatings()
Destroys the ratings object.
qreal QPlaceRatings::average() const
Returns the average value of individual ratings.
See also setAverage().
int QPlaceRatings::count() const
Returns the total number of individual ratings.
See also setCount().
bool QPlaceRatings::isEmpty() const
Returns true if all fields of the place ratings are 0; otherwise returns false.
qreal QPlaceRatings::maximum() const
Returns the maximum possible rating value.
See also setMaximum().
void QPlaceRatings::setAverage(qreal average)
Sets the average value of the ratings.
See also average().
void QPlaceRatings::setCount(int count)
Sets the total number of individual ratings to count.
See also count().
void QPlaceRatings::setMaximum(qreal max)
Sets the maximum possible rating value to max.
See also maximum().
bool QPlaceRatings::operator!=(const QPlaceRatings &other) const
Returns true if other is not equal to this ratings object, otherwise returns false.
QPlaceRatings &QPlaceRatings::operator=(const QPlaceRatings &other)
Assigns other to this ratings object and returns a reference to this ratings object.
bool QPlaceRatings::operator==(const QPlaceRatings &other) const
Returns true if other is equal to this ratings object, otherwise returns false.


The cardholder data environment should not have direct Internet access. Neither outbound nor inbound traffic should be routable between the cardholder data environment and the Internet.
Denying the cardholder data environment Internet connectivity prevents the potential attacker from being able to conduct attacks against it.
Check the router and firewall configurations to make sure there are no port-forwarding rules or gateways that allow inbound connections directly to the cardholder data environment. Use built-in operating system tools (such as ping, traceroute, nslookup) to make sure that the cardholder data environment has no Internet access.
Remove any routes from the router configuration that allow Internet access to the cardholder data environment. Remove any port forwarding rules from the firewalls and/or routers that allow Internet access to the cardholder data environment. Repeat the How to Check processes to ensure that changes have not accidentally introduced Internet connectivity in the cardholder environment.


Wake-up Light
Contacting...
[-
' to +
']
+
▲
Sunrise
Faster
Slower
Alarm
Shorter
Longer
Delete alarm?
Ok
Cancel
Wake up!
Ok


A navigation service manifest.
Convenience init.
- (nonnull instancetype)initWithAcceptsWayPoints:(BOOL)acceptsWayPoints;
init(acceptsWayPoints: Bool)
Informs the subscriber if this service can actually accept way points
A SDLNavigationServiceManifest object
Informs the subscriber if this service can actually accept way points.
Boolean, Optional
@property (nonatomic, strong, nullable) NSNumber<SDLBool> *acceptsWayPoints;
var acceptsWayPoints: (NSNumber & SDLBool)? { get set }


Pmw.TimeCounter() - counter for display and input of time
A time counter is similar to a regular Pmw.Counter except that the user may increment and decrement the hours, minutes and seconds individually.
invoke()
is called. The default is None.
If None, a label component is not created. The default is None.
getvalue()
method.
class Demo: def __init__(self, parent): self._time = Pmw.TimeCounter(parent, labelpos = 'w', label_text = 'HH:MM:SS', min = '00:00:00', max = '23:59:59') self._time.pack(padx=10, pady=5) button = Tkinter.Button(parent, text = 'Show', command = self.show) button.pack() def show(self): stringVal = self._time.getstring() intVal = self._time.getint() print stringVal + ' (' + str(intVal) + ')'
Pmw 1.2 -
5 Aug 2003
- Home
Manual page last reviewed: 25 May 2002


The top level Geolocation module. The Geolocation module is used for accessing device location based information.
This module combines two sets of features:
-
Location services. Determining the location of the device.
-
Geocoding and reverse geocoding. Converting geographic coordinates into addresses, and converting addresses into geographic coordinates.
Using location services can have a significant impact on a device's battery life, so it's important to use them in the most efficient manner possible. Power consumption is strongly influenced by the accuracy and frequency of location updates required by your application.
The location services systems of the underlying platforms are very different, so there are significant implementation differences between the platforms.
The basic methods of requesting location information and receiving location updates are essentially the same on all platforms. However, the method of configuring the accuracy and frequency of location updates is different for each platform.
Getting Location Information
There are two ways to get location information:
-
Make a one-time request with getCurrentPosition.
-
Register to receive location updates by adding an event listener for the location event.
NOTE: Location services stay enabled for as long as a listener is registered for the
location
event, so be sure to remove the event listener when you do not require
location updates.
Configurating Location Updates on iOS
In iOS, the accuracy (and power consumption) of location services is primarily determined by the accuracy setting. This can be set to one of the following values:
- ACCURACY_BEST (highest accuracy and power consumption)
- ACCURACY_HIGH
- ACCURACY_NEAREST_TEN_METERS
- ACCURACY_HUNDRED_METERS
- ACCURACY_KILOMETER
- ACCURACY_LOW
- ACCURACY_THREE_KILOMETERS (lowest accuracy and power consumption).
Based on the accuracy you choose, iOS uses its own logic to select location providers and filter location updates to provide location updates that meet your accuracy requirements.
You can further limit power consumption on iOS by setting the distanceFilter property to eliminate position updates when the user is not moving.
Configurating Location Updates on Android
Prior to Titanium Mobile 2.0, Titanium attempted to follow the iOS model on Android, but this didn't fit the native Android model well. In Release 2.0, three different location service modes are supported on Android: simple, manual, and legacy.
-
Simple mode provides a compromise mode that provides adaquate support for undemanding location applications without requiring developers to write a lot of Android-specific code. To use simple mode:
-
Leave the
Titanium.Geolocation.Android.manualMode
flag set tofalse
(the default value). -
Set the accuracy property to either ACCURACY_HIGH or ACCURACY_LOW.
-
-
Manual mode gives developers low-level control of location updates, including enabling individual location providers and filtering updates, for the best combination of accuracy and battery life.
Manual mode is used when the
Titanium.Geolocation.Android.manualMode
flag is set totrue
. In manual mode, theaccuracy
property is not used, and all configuration is done through theTitanium.Geolocation.Android
module. -
Legacy mode is the mode that existed prior to 2.0. Legacy mode is used when the
manualMode
flag isfalse
and theaccuracy
property is set to one of the iOSACCURACY
constants:- ACCURACY_BEST (highest accuracy and power consumption)
- ACCURACY_NEAREST_TEN_METERS
- ACCURACY_HUNDRED_METERS
- ACCURACY_KILOMETER
- ACCURACY_THREE_KILOMETERS (lowest accuracy and power consumption).
This mode is deprecated and should not be used for new development.
In this mode, the specified
accuracy
value determines the minimum distance between location updates. Ifaccuracy
is set toACCURACY_BEST
, no distance filter is used on updates.In legacy mode, only a single location provider (GPS, network, or passive) is enabled at a time. You can specify a the location provider using the preferredProvider property.
You can also specifying a desired update frequency using the frequency property. The
preferredProvider
andfrequency
properties are not used in any other mode.
Configuring Location Updates on Mobile Web
Location services on Mobile Web operate similarly to the simple mode operations on Android. Setting accuracy property to ACCURACY_HIGH yeilds the best available location updates, with the hightest power consumption. Using ACCURACY_LOW provides lower-quality location updates with lower power consumption.
In addition to the accuracy setting, there are several Mobile Web-specific settings.
See Titanium.Geolocation.MobileWeb
for details.
Using the Compass
Both iOS and Android support a receiving heading updates from a hardware compass, if available. On Mobile Web, heading updates are supported if the browser supports this feature. Currently, this support is only available on Mobile Safari.
Check the hasCompass property to see if the current device supports a compass.
To retrieve compass readings, you can either use getCurrentHeading as shown in the previous example, or add a listener for the heading event, as shown below:
var compassHandler = function(e) {
if (e.success === undefined || e.success) {
Ti.API.info("Heading: " + e.heading.magneticHeading);
}
}
Ti.Geolocation.addEventListener("heading", compassHandler);
Note that Android does not include a success
property in the heading
event.
Heading events are only generated on Android when heading data is available. So if
success
is undefined, we assume that the event contains valid compass data.
To obtain true heading data for the compass (as opposed to magnetic heading data), a current location fix is required. See the notes on trueHeading for more information.
As with location updates, the application should unregister for heading updates
when it is no longer being used, or when it goes into the background. Use
removeEventListener
to stop heading updates:
Ti.Geolocation.removeEventListener('heading', compassHandler);
Finally, note that neither the Android emulator nor the iOS simulator provide compass support. Compass code must be tested on physical devices.
| calibration | Fired when the device detects interface and requires calibration. | |
| heading | Fired when an heading update is received. | |
| location | Fired when a location update is received. |
Adds the specified callback as an event listener for the named event.
Arguments
| name | [String] | Name of the event. |
| callback | [Callback<Object>] | Callback function to invoke when the event is fired. |
Applies the properties to the proxy.
Arguments
| props | [Dictionary] | A dictionary of properties to apply. |
Fires a synthesized event to any registered listeners.
Arguments
| name | [String] | Name of the event. |
| event | [Dictionary] | A dictionary of keys and values to add to the Titanium.Event object sent to the listeners. |
Resolves an address to a location.
Arguments
| address | [String] | address to resolve. |
| callback | [Callback<ForwardGeocodeResponse>] | Function to invoke on success or failure. |
Gets the value of the accuracy property.
Retrieves the current compass heading.
Arguments
| callback | [Callback<HeadingResponse>] | Function to invoke on success or failure of obtaining the current heading. |
Retrieves the last known location from the device.
Arguments
| callback | [Callback<Object>] | Function to invoke on success or failure of obtaining the current location. |
Gets the value of the distanceFilter property.
Gets the value of the frequency property.
Gets the value of the hasCompass property.
Gets the value of the headingFilter property.
Gets the value of the locationServicesAuthorization property.
Gets the value of the locationServicesEnabled property.
Gets the value of the preferredProvider property.
Gets the value of the purpose property.
Gets the value of the showCalibration property.
Gets the value of the trackSignificantLocationChange property.
Removes the specified callback as an event listener for the named event.
Arguments
| name | [String] | Name of the event. |
| callback | [Callback<Object>] | Callback function to remove. Must be the same function passed to addEventListener. |
Tries to resolve a location to an address.
Arguments
| latitude | [Number] | Latitude to search, specified in decimal degrees. |
| longitude | [Number] | Longitude to search, specified in decimal degrees. |
| callback | [Callback<ReverseGeocodeResponse>] | Function to invoke on success or failure. |
Sets the value of the accuracy property.
Arguments
| accuracy | [Number] | New value for the property. |
Sets the value of the distanceFilter property.
Arguments
| distanceFilter | [Number] | New value for the property. |
Sets the value of the frequency property.
Arguments
| frequency | [Number] | New value for the property. |
Sets the value of the headingFilter property.
Arguments
| headingFilter | [Number] | New value for the property. |
Sets the value of the locationServicesAuthorization property.
Arguments
| locationServicesAuthorization | [Number] | New value for the property. |
Sets the value of the preferredProvider property.
Arguments
| preferredProvider | [String] | New value for the property. |
Sets the value of the purpose property.
Arguments
| purpose | [String] | New value for the property. |
Sets the value of the showCalibration property.
Arguments
| showCalibration | [Boolean] | New value for the property. |
Sets the value of the trackSignificantLocationChange property.
Arguments
| trackSignificantLocationChange | [Boolean] | New value for the property. |
Event properties
| source |
[Object] Source object that fired the event. |
| type |
[String] Name of the event fired. |
Event properties
| code |
If |
| error |
[String] If |
| heading |
[HeadingData] Dictionary object containing the heading data. |
| source |
[Object] Source object that fired the event. |
| success |
[Boolean] Indicate if the heading event was successfully received. |
| type |
[String] Name of the event fired. |
Event properties
| code |
[Number] if |
| coords |
[LocationCoordinates] If |
| error |
[String] If |
| provider |
[LocationProviderDict] If |
| source |
[Object] Source object that fired the event. |
| success |
[Boolean] Indicates if location data was successfully retrieved. |
| type |
[String] Name of the event fired. |


Extended File Attributes
Written by Mattt Thompson on
Amidst revelations of widespread spying by the NSA, the concept of metadata has taken an unexpected role in the national conversation about government surveillance. What is it? And how much does it reveal about us and our daily habits? These are questions that the American people are asking, and they deserve an answer.
Acting with a sense of civic and patriotic duty rivaled only by Uncle Sam walloping Communism with a bald eagle, NSHipster aims to shed as much light on metadata as Edward Snowden with an industrial lantern.
For every file on a UNIX filesystem, there is associated metadata. Indeed, having a path, permissions, and timestamp attributes is what makes a file a file, rather than just a blob of data.
However, on Mac OS X and iOS, additional metadata can be stored in extended file attributes. Introduced in Mac OS X 10.4, they are perfect for associating small, application-specific data with a file. EAs are stored in attributes B*-Tree of the HFS+ filesystem, and have a maximum size of 128KB as of Mac OS X 10.7 & iOS 5.
What kind of information, you ask? Invoke the
ls
command in the terminal and pass the
@
option to see what information hides
in plain sight.
$ ls -l@
-rw-r--r--@ 1 mattt staff 12292 Oct 19 05:59 .DS_Store
com.apple.FinderInfo 32
-rw-r--r--@ 1 mattt staff 5147 Dec 3 05:01 NSFixie.h
com.apple.TextEncoding 15
-rw-r--r--@ 1 mattt staff 5147 Dec 3 05:04 NSFixie.m
-rw-r--r--@ 1 mattt staff 1438 Dec 18 14:31 Podfile
com.macromates.selectionRange 4
com.macromates.visibleIndex 1
- Finder stores 32 bytes of information in
.DS_Store
, though for reasons that aren't entirely clear. - Xcode takes 15 bytes to denote the TextEncoding to use for a particular file.
- TextMate uses extended attributes to preserve the cursor position between launches.
The extended attributes API, declared in
<sys/xattr.h>
, has functions for
getting, setting, listing, and removing attributes:
ssize_t getxattr(const char *path, const char *name, void *value, size_t size, u_int32_t position, int options);
int setxattr(const char *path, const char *name, void *value, size_t size, u_int32_t position, int options);
ssize_t listxattr(const char *path, char *namebuf, size_t size, int options);
int removexattr(const char *path, const char *name, int options);
To show these in action, consider the use of extended attributes to associate an HTTP Etag for a file:
NSHTTPURLResponse *response = ...;
NSURL *fileURL = ...;
const char *filePath = [fileURL fileSystemRepresentation];
const char *name = "com.Example.Etag";
const char *value = [[response allHeaderFields][@"Etag"] UTF8String];
int result = setxattr(filePath, name, value, strlen(value), 0, 0);
As another example, previous to iOS 5.0.1, EAs were
the designated way to denote that a particular file
should not be synchronized with iCloud (as of iOS
5.1, NSURL
-setResourceValue:forKey:error:
is used, which
sets the
com.apple.metadata:com_apple_backup_excludeItem
EA instead):
#include <sys/xattr.h>
if (!&NSURLIsExcludedFromBackupKey) {
// iOS <= 5.0.1
const char *filePath = [[URL path] fileSystemRepresentation];
const char *name = "com.apple.MobileBackup";
u_int8_t value = 1;
int result = setxattr(filePath, name, &value, sizeof(value), 0, 0);
} else {
// iOS >= 5.1
NSError *error = nil;
[URL setResourceValue:@YES
forKey:NSURLIsExcludedFromBackupKey
error:&error];
}
Lest extended attributes veer dangerously close to "being a hammer that makes everything look like a nail", let it be made clear: extended attributes should not be used for critical data. Not all volume formats support extended attributes, so copying between, say, HFS+ and FAT32 may result in a loss of information. Also consider that nothing is stopping from any application from deleting or overwriting extended attributes at any time.
For things like author, file history, window or cursor position, and networking metadata, extended attributes are a great choice. If you've been struggling to synchronize file state, it may be exactly the solution you've been looking for. Just be mindful about EAs limitations and understand why they would or would not be appropriate for a particular use case.
Between domestic wiretapping, the botched launch of healthcare.gov, various stories of retailers leaking customer information, and untold volumes of snark on social networks, our culture has taken a profound shift in its relationship to computers. The average person is more technically savvy, but also harbors a newfound suspicion and mistrust of technology.
Knowing the relationship between data, metadata, and the entities that interact with both offer the best chance at understanding and adapting to whatever the future holds. As programmers, we are the arbiters of digital reality for ourselves and others; it is our responsibility to act in good faith and good conscience. Taking this responsibility seriously is more important than ever before. However this manifests itself in your occupation, take care in what you do.


TABLE OF INTERACTIONS WITH
VALPROIC (ACID) AND, BY EXTRAPOLATION, VALPROMIDE
From the French ANSM drug interactions document of
September 2016, pp. 224-225
VALPROIC (ACID) AND, BY EXTRAPOLATION, VALPROMIDE CLASS CODE: N03AG0 |
ACETAZOLAMIDE RxNorm: 167 ATC: S01EC01 |
Increase of the hyperammonemia, with accrued risk of encephalopathy |
Precaution for use Regular clinical and biological monitoring. |
VALPROIC (ACID) AND, BY EXTRAPOLATION, VALPROMIDE CLASS CODE: N03AG0 |
AZTREONAM RxNorm: 1272 ATC: J01DF01 |
Risk of onset of convulsive crises, due to decrease of the plasma concentrations of the valproic acid |
Precaution for use Clinical monitoring, plasma dosages, and possible adjustment of the dosage of the anticonvulsant during the treatment with the antibiotic and after it is stopped. |
VALPROIC (ACID) AND, BY EXTRAPOLATION, VALPROMIDE CLASS CODE: N03AG0 |
CARBAMAZEPINE RxNorm: 2002 ATC: N03AF01 |
Increase of the plasma concentrations of the active metabolite of the carbamazepine with signs of overdose. In addition, decrease of the plasma concentrations of valproic acid due to increase of its hepatic metabolism by the carbamazepine |
Precaution for use Clinical monitoring, plasma dosages and adjustment of the dosage of the two anticonvulsants. |
VALPROIC (ACID) AND, BY EXTRAPOLATION, VALPROMIDE CLASS CODE: N03AG0 |
FELBAMATE RxNorm: 24812 ATC: N03AX10 |
Increase of the plasma concentrations of the valproic acid, with risk of overdose. |
Precaution for use Clinical and biological monitoring, and possible adjustment of the dosage of the valproic acid or of the valpromide during the treatment with the felbamate and after it is stopped. |
VALPROIC (ACID) AND, BY EXTRAPOLATION, VALPROMIDE CLASS CODE: N03AG0 |
LAMOTRIGINE RxNorm: 28439 ATC: N03AX09 |
Increased risk of serious cutaneous reactions (Lyell's syndorme). In addition, increase of the plasma concentrations of lamotrigine (decrease of its hepatic metabolism by the sodium valproate) |
Not recommended If this combination of medications is judged necessary, strict clinical monitoring. |
VALPROIC (ACID) AND, BY EXTRAPOLATION, VALPROMIDE CLASS CODE: N03AG0 |
NIMODIPINE RxNorm: 7426 ATC: C08CA06 |
With the nimodipine by oral route, and by extrapolation, by injection: risk of increase of the hypotensive effect of the nimodipine due to increase of its plasma concentrations (decrease of its metabolism by the valproic acid) |
Take into account |
VALPROIC (ACID) AND, BY EXTRAPOLATION, VALPROMIDE CLASS CODE: N03AG0 |
PENEMS CLASS CODE: J01DH |
Risk of onset of convulsive crises, due to rapid decrease of the plasma concentrations of the valproic acid, that can become undetectable |
Not recommended |
VALPROIC (ACID) AND, BY EXTRAPOLATION, VALPROMIDE CLASS CODE: N03AG0 |
PHENOBARBITAL (AND, BY EXTRAPOLATION, PRIMIDONE) CLASS CODE: N03AA-001 |
Increase of the hyperammonemia, with accrued risk of encephalopathy |
Precaution for use Regular clinical and biological monitoring |
VALPROIC (ACID) AND, BY EXTRAPOLATION, VALPROMIDE CLASS CODE: N03AG0 |
PHENYTOIN (AND, BY EXTRAPOLATION, FOSPHENYTOIN) CLASS CODE: N03AB |
Increase of the hyperammonemia, with accrued risk of encephalopathy |
Precaution for use Regular clinical and biological monitoring |
VALPROIC (ACID) AND, BY EXTRAPOLATION, VALPROMIDE CLASS CODE: N03AG0 |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
Risk of onset of convulsive crises, due to increase of the hepatic metabolism of the valproate by the rifampicin |
Precaution for use Clinical and biological monitoring and possible adjustment of the dosage of the anticonvulsant during the treatment with the rifampicin and after it is stopped. |
VALPROIC (ACID) AND, BY EXTRAPOLATION, VALPROMIDE CLASS CODE: N03AG0 |
RUFINAMIDE RxNorm: 69036 ATC: N03AF03 |
Possible increase of the concentrations of rufinamide, especially with children who weigh less than 30 kg |
Precaution for use With children weighing less than 30kg: do not exceed the total dose of 600 mg/day after the period of titration. |
VALPROIC (ACID) AND, BY EXTRAPOLATION, VALPROMIDE CLASS CODE: N03AG0 |
TOPIRAMATE RxNorm: 38404 ATC: 38404 |
Increase of the hyperammonemia with accrued risk of encephalopathy |
Precaution for use Regular clinical and biological monitoring. |
VALPROIC (ACID) AND, BY EXTRAPOLATION, VALPROMIDE CLASS CODE: N03AG0 |
ZIDOVUDINE (AZT) RxNorm: 11413 ATC: J05AF01 J05AR01 J05AR04 J05AR05 |
Risk of increase of the undesirable effects, especially hematological ones, of the zidovudine due to decrease of its metabolism by the valproic acid. |
Precaution for use Regular clinical and biological monitoring. A CBC checking for anemia should be done during the course of the first two months of the administration of these substances together. |
VALPROIC (ACID) AND, BY EXTRAPOLATION, VALPROMIDE CLASS CODE: N03AG0 |
ZONISAMIDE RxNorm: 39998 ATC:N03AX15 |
Increase of the hyperammonemia, with accrued risk of encephalopathy |
Precaution for use Regular clinical and biological monitoring |


Autocloud was released during the Fedora 23 cycle as a part of the Two Week Atomic Process.
Previously, it used to listen to fedmsg for successful Koji builds. Whenever, there is a new message the AutocloudConsumer queues these message for processing. The Autocloud job service then listens to the queue, downloads the images and runs the tests using Tunir. A more detailed post about it’s release can be read here.
During the Fedora 24 cycle things changed. There was a change on how the Fedora composes are built. Thanks to adamw for writing a detailed blogpost on what, why and how things changed.
With this change now autocloud listens to the compose builds over the fedmsg. The topic being “org.fedoraproject.prod.pungi.compose.status.change”. It checks for the messages with the status FINISHED and FINISHED_INCOMPLETE.
After the filtration, it gets the Cloud Images built during that particular compose using a tool called fedfind. The job here is parse the metadata of the compose and getting the Cloud Images. These images are then queued into both libvirt and vbox boxes. The Autocloud job service then downloads the images and run the tests using Tunir.
Changes in the Autocloud fedmsg messages.
Earlier the messages with the following topics were sent
- autolcoud.image.queued - When the images are queued for testing
- autocloud.image.running - When the tests for the images are running
- autocloud.image.success - When the tests for the images passes.
- autocloud.image.failed - When the tests for the images failed
Now along with the fedmsg message for the status of the image test. Autocloud also sends messages for the status of a particular compose.
- autocloud.compose.queued - When the composes is in queued state
- autocloud.compose.running - When the images for the composes are in testing phase
- autocloud.compose.complete - When running the test for the images for a compose finishes and contains the aggregate result for the tests
The compose_id
field was added to the autocloud.image.*
messages
Changes in the UI
- A page was added to list all the composes. It gives an overview of the composes like if it’s still running, number of tests passed, etc
- The jobs page lists all the tests data as earlier. We added filtering to the page so filter the jobs based on various params
- You need to agree that the jobs output page looks better than before. Now, rather the showing a big dump of text the output now is properly formatted. You can now reference each line separately.
Right now, we are planning to work on testing the images uploaded via fedimg in Autocloud. If the project looks interesting and you are planning to contribute? Ping us on #fedora-apps on Freenode.


With CodeFellowship:
User can sign up/login
User can add a post
User can follow other users
User can see the posts of following users
Don't Forget to Join Us !
Sign up
Log in


WITNESS LIST Intergovernmental Relations Committee April 16, 2003 - 8:30A HB 522 Registering, but not testifying: For: Munn, Bill Director Tarrant Co. 911 District (Tarrant Co. 911 District), Fort Worth, TX SB 544 FOR: Blackburn, Thurman Real Estate Investor (Home Builders Association of Greater Austin), Austin, TX Daugherty, Gerald County Commisioner (Self), Austin, TX Smith, Hank Engineer (Home Builders Association), Austin, TX Weaver, Terry Builder/Developer (Texas Association of Builders), Midlothian, TX AGAINST: Gordon, Lisa Asst. City Manager (City of Austin), Austin, TX Horton, Susan Attorney (Texas Municipal League), Brady, TX Lee, Donald Exec. Dir. (Texas Conference of Urban Counties), Austin, TX Registering, but not testifying: For: Allison, Jim General Counsel (County Judges and Commissioners Court), Austin, TX Chavez, Dominic Govt. Affairs Director (T6 Real Estate Council of Austin, Inc.), Austin, TX Erben, Andy Dir. Govt. Affairs (KB Home, Austin), Austin, TX McCown, Bill Retired US Govt. (Self), Dripping Springs, TX Mendez, Mark Assistant County Administrator (Tarant County Commissioners Court), Ft. Worth, TX Millikin, Jay Comal County (Comal County Commissioners Court), New Braunfels, TX Nias, Jim Attorney (Texas Landowners Council), Austin, TX Norman, Scott V.P. of Govt. Affairs and General Cousel (Texas Assoc. of Builders), Austin, TX Savio, Harry Executive V.P. (Home Builders Association of Greater Austin), Austin, TX Sims, Randy Co. Judge Brazos Co. (Brazos Co. Judges and Commissioners Assoc.), Bryan, TX On: Nuckols, Tom Asst. County Attorney (Travis County), Austin, TX SB 725 Registering, but not testifying: For: Barr, Geoffrey Comal Co. Asst. Dist. Attorney (Comal County Commissioners Court), New Braunfels, TX Krause, Sherman Tax Assessor Collector-Comal Co. (Tax Assessor Collectors Association of Texas), New Braunfels, TX SB 734 FOR: Houston, Scott Lawyer (Texas Municipal League), Austin, TX SB 884 FOR: Green, Renee Dir. of Environmental Services- Bexar Co (Bexar County Commissioners Court), San Antonio, TX Jefferson, David Environmental Health Manager- Tarrant Co (Tarrant County-Public Health), Fort Worth, TX Mendez, Mark Assistant County Administator (Tarrant County Commissioners Court), Fort Worth, TX AGAINST: Howe, Billy State Legislative Director (Texas Farm Bureau), Austin, TX Registering, but not testifying: For: Hanna, Mark Attorney (Texas On-Site Wastewater Association), Austin, TX Lee, Donald Executive Director (Texas Conference of Urban Counties), Austin, TX Mitchell, Seth Bexar Co. Intergovernmental Services Man (Bexar County Commissioners Court), San Antonio, TX Pardue, Craig Governmental Affairs Dallas County (Dallas County), Dallas, TX Sugg, Paul Legislative Liason (Texas Association of Counties), Austin, TX Against: McCown, Bill Retired US Govt. (Self), Dripping Springs, TX McCown, Cathie Investor (Self), Dripping Springs, TX On: Parham, Lee Section Manager-TDLR (Texas Department of Liscensing), Austin, TX SB 902 Registering, but not testifying: For: Cory, Art Chief Appraiser-Travis Appraisal Distric (Texas Association of Appraisal Districts), Austin, TX On: Flowers, Lee Chief Appraiser-Cherokee Co. Apr. Dist. (Cherokee County Appraisal District), Rush, TX SB 954 FOR: Green, Renee Director of Environmental Services (Bexar County Commissioners Court), San Antonio, TX Milikin, Jay Comal County Commisioner (Comal County Commissioners Court), New Braunfels, TX Registering, but not testifying: For: Allison, Jim General Counsel (County Judges and Commissioners Association of Texas), Austin, TX Barr, Geoffrey Comal Co. Asst. District Attorney (Comal County Commissioners Court), New Braunfels, TX Lee, Donald Executive Director (Texas Conference of Urban Counties), Austin, TX Mendez, Mark Assistant County Administrator (Tarrant County Commissioners Court), Fort Worth, TX Ryder, Byron Leon County Judge (Self), Centerville, TX Sims, Randy Brazos County Judge (Brazos County Judges and Commissioners Association) Sugg, Paul Legislative Liason (Texas Association of Counties), Austin, TX SB 1014 FOR: Millikin, Jay Comal County Commissioner (Comal County Commissioners County), New Braunfels, TX Waldrip, Dib District Attorney (Comal County), New Braunfels, TX Registering, but not testifying: For: Allison, Jim General Counsel (County Judges and Commissioners Association of Texas), Austin, TX Barr, Geoffrey Comal Co. Asst. District Attorney (Comal County Commissioners Court), New Braunfels, TX Howe, Billy State Legislative Director (Texas Farm Bureau), Austin, TX Lee, Don Executive Director (Texas Conference of Urban Counties), Austin, TX Mitchell, Seth Bexar Co. Intergovernmental Services Man (Bexar County Commissioners Court), San Antonio, TX Ryder, Byron Leon County Judge (Self), Centerville, TX Sims, Randy Brazos Co. Judge (Brazos Co. Judges and Commissioners Association), Bryan, TX SB 1262 FOR: Eiche, Lynda Director of Finance and Administration (City of Rosenberg), Rosenberg, TX ON: Shields, Chris Attorney (Texas Economic Development Council), Austin, TX Registering, but not testifying: Against: Haley, Anthony Attorney (City of Dickinson), Austin, TX Schwab, Carlton President/CEO Texas Eco. Dev. Council (Texas Economic Development Council), Austin, TX SB 1303 FOR: Austin, David Ector County Auditor (Texas Association of County Auditors), Odessa, TX Bacon, April Assistant County Auditor (Self), Austin, TX Porter, Virginia County Auditor (Texas Association of County Auditors), Dallas, TX Tompkins, Tommy Bexar County Auditor (Texas Association of County Auditors), San Antonio, TX AGAINST: Allison, Jim General Counsel (County Judges and Commissioners Association of Texas), Austin, TX Lee, Donald Executive Director (Texas Conference of Urban Counties), Austin, TX Registering, but not testifying: For: McPherson, Joella Auditor (Self), Canyon, TX Spataro, Susan Travis County Auditors (Self), Austin, TX Against: Mitchell, Seth Bexar Co. Intergovernmental Ser. Manager (Bexar County Commissioners Court), San Antonio, TX Ryder, Byron Leon County Judge (Self), Centerville, TX On: Wells, James Denton County Auditor (Texas Association of County Auditors), Denton, TX SB 1327 FOR: Bacon, April Assistant County Auditor (Self), Austin, TX Spataro, Susan Travis County Auditor (Self), Austin, TX Tompkins, Tommy Bexar County Auditor (Texas Association of County Auditors), San Antonio, TX AGAINST: Allison, Jim General Counsel (County Judges and Commissioners Association of Texas), Austin, TX Lee, Donald Executive Director (Texas Conference of Urban Counties), Austin, TX Ryder, Byron Leon County Judge (Self), Centerville, TX Registering, but not testifying: For: Austin, David Ector County Auditor (Texas Association of County Auditors), Odessa, TX McPherson, Joella Auditor (Self), Canyon, TX Porter, Virginia Dallas County Auditor (Texas Association of County Auditors), Dallas, TX Wells, James Denton County Auditor (Texas Association of County Auditors), Denton, TX Against: Gaskin, Ray Commissioner (Self), Buffalo, TX Mitchell, Seth Bexar Co. Intergovernmental Ser. Man. (Bexar County Commissioners Court), San Antonio, TX Sims, Randy Brazos County Judge (Brazos County Judge and Commissioners Association), Bryan, TX SB 1442 FOR: Haggerty, Catherine Detective- APD, Vice-Chair Pension Syste (Austin Police Retirement Sytem- Vice Chair), Austin, TX Ross, John Retired Austin Police Department (Austin Police Department Retirement System), Austin, TX Registering, but not testifying: For: Beck, Det. James Austin Police Officer (Austin Police Department), Austin, TX Morin, Sgt. Peter Police Sgt. (Austin Police Retirement System), Austin, TX Sheffield, Mike Austin Police Officer (Austin Police Association, President), Austin, TX Wilkison, Charley Political Legislative Director-CLEAT (Combined Law Enforcement Associations of Texas), Austin, TX On: Kendall, Terrence Attorney (Austin Police Retirement System), Austin, TX May, Robert Actuary (Board of Trustees, Austin Police Retirement System), Austin, TX SB 1581 FOR: Porter, Virginia Dallas County Auditor (Texas Association of County Auditors), Dallas, TX Spataro, Susan Travis County Auditor (Texas Association of County Auditors), Austin, TX Registering, but not testifying: For: Austin, David Ector County Auditor (Texas Association of County Auditors), Odessa, TX Bacon, April Assistant County Auditor (Self), Austin, TX Lee, Donald Executive Director (Texas Conference of Urban Counties), Austin, TX McPherson, Joella Auditor (Self), Canyon, TX Pardue, Craig Governmental Affairs (Dallas County), Dallas, TX Wells, James Denton County Auditor (Texas Association of County Auditors), Denton, TX Against: Whalen, Ken Director of LEgislative Affairs (Texas Daily Newspaper Association/ Texas Press Association), Austin, TX On: Tompkins, Tommy Bexar County Auditor (Texas Association of County Auditors), San Antonio, TX SB 1631 FOR: Lee, Donald Executive Director (Texas Conference of Urban Counties), Austin, TX Millikin, Jay Comal County Commissioner (Comal County Commissioners Court), New Braunfels, TX AGAINST: Nias, Jim Attorney (Texas Landowners Council), Austin, TX Weaver, Terry Builder/Developer (Texas Association of Builders), Midlotman, TX Registering, but not testifying: For: Allison, Jim General Counsel (County Judges and Commissioners Association of Texas), Austin, TX Gadbois, Glenn Dir. Transportation (Just Transportation Alliances), Austin, TX Howe, Billy State Legislative Director (Texas Farm Bureau), Austin, TX Mendez, Mark Assistant County Administrator (Tarrant County Commissioners Court), Fort Worth, TX Ryder, Byron Leon County Judge (Self), Centerville, TX Sims, Randy Brazos Co. Judges (Brazos Co. Judges and Commissioners Association), Bryan, TX Waldrip, Dib District Attorney (Comal County), New Braunfels, TX Against: Hanna, Mark Attorney (Texas On-Site Wastewater Association), Austin, TX Norman, Scott U.P. of Govt. Affairs and General Counse (Texas Association of Builders), Austin, TX SB 1686 AGAINST: Frasier, Margo Sheriff (Sheriff's Association of Texas), Austin, TX ON: Lee, Donald Executive Director (Texas Conference of Urban Counties), Austin, TX Registering, but not testifying: For: Jones, Chris Sgt. Houston Police Department (Combined Law Enforcement Associations of Texas), Austin, TX Against: Kirk, Chris Brazos County Sheriff (Sheriff's Association of Texas), Bryan, TX Mendez, Mark Assistant County Administrator (Tarrant County Commisioners Court), Fort Worth, TX Sims, Randy Brazos County Judge (Brazos County Judges and Commissioners Association), Bryan, TX On: Bodisch, Robert Director Field Services (Texas Commission on Law Enforcement), Austin, TX SB 1687 FOR: Johnson, Helen Executive Director (State Firemen's and Fire Marshal's Association), Austin, TX Williams, Steven Firefighter (Houston Prof. Firefighters L-341), Katy, TX Registering, but not testifying: For: Higgins, Mike Chief of Staff-TX Assn. of Firefighters (Texas Association of Firefighters), Austin, TX On: Sandeler, Morris Commissioner (Office of the Firefighters Pension Commissioner), Austin, TX SB 1711 FOR: Littlefield, Sue Brooks Attorney (Armbrust and Brown, LLP), Austin, TX Registering, but not testifying: For: Mintz, David (Texas Apartment Association), Austin, TX SB 1784 AGAINST: Joslove, Scott Pres. and CEO (Texas Hotel and Motel assoc.), Austin, TX


On completion of the evening workshop each student will:
-
Gain understanding of react router
-
Learn how to fetch the data for your application
-
Know the difference between controlled and uncontrolled components
React Router Evening Workshop Curriculum
-
React Router v4
- Main components: Router and Route
- Implement a master-detail web application
- Component lifecycle
- Data management
-
Data fetching
-
Presentational Components vs. Container Components


PART V. PLACES OF BUSINESS
§412:3-500 Prohibition of business at unauthorized locations. Except as expressly authorized by this chapter or by federal law, no financial institution shall conduct any business in this State except at places of business or in the manner authorized in this part and except to the extent so authorized. [L 1993, c 350, pt of §1]
Cross References
Automated teller machine fees, see §412:14-100.