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.
#7 $~ * IN THE HIGH COURT OF DELHI AT NEW DELHI + W.P.(C) 2066/2014 & CM APPL. 4326/2014 MARUTI SUZUKI INDIA LTD ..... Petitioner Through Mr. Mukul Rohatgi, Senior Advocate with Ms. Ruchi A. Mahajan, Ms. Shanta C. and Mr. Nikhil Rohatgi, Advocates versus THE MINISTRY OF ENVIRONMENT AND FORESTS & ORS ..... Respondents Through Mr. Rajeeve Mehra, ASG with Mr. Sachin Datta, CGSC and Mr. Rajiv Ranjan Mishra, Advocate for R-1. Mr. Manjeet Singh, Addl AG with Ms. Nupur Chaudhary, Advocate for R-2. % Date of Decision : 26th May, 2014 CORAM: HON'BLE MR. JUSTICE MANMOHAN JUDGMENT
MANMOHAN, J: (Oral)
1. Present writ petition has been filed by the petitioner-Maruti Suzuki India Ltd. with the following prayers:-
"(i) Issue a writ or order or direction in the nature of mandamus to Respondent No.1 ordering the Respondent No.1 to act on the Representations of the Petitioner (Given as ANNEXURE P-1 and WP(C) 2066/2014 page 1 of 7 dated 28 January 2014 and ANNEXURE P-2 dated 25 February 2014) without any delay;
(ii) Issue a writ or order or direction in the nature of mandamus directing Respondent No.1 and 2 to adopt a clarification that is harmonious with the dominant purpose of the Schedule to the EIA Notification 2006 inasmuch as the prescription of the area thresholds given in Items 8(a) and (b) of the Schedule to the EIA Notification 2006 cannot be extended to any and all activities and projects;
(iii) Issue a writ or order or direction in the nature of certiorari to Respondent No.2 quashing the Impugned Directions of the Respondent No.2 (Given as ANNEXURE P-3 and dated 28th February 2014).
(iv) Issue a writ of mandamus or any other writ or order or direction restraining the Respondent No.2 from issuing any further orders or directions with respect to the Petitioner's projects or activities (Given in Paragraph 3) pending further clarifications from Respondent No.1.
(v) Grant any ad interim ex-parte reliefs in the aforementioned terms; and
(vi) Issue any other appropriate writ, order or directions as this Hon'ble Court deems fit and proper in the facts and circumstances of the case."
2. The relevant facts are that petitioner is engaged in the activity of automobile manufacturing and has various projects throughout India.
3. Respondent No.1 is the Ministry of Environment & Forests of the Government of India and is responsible for the promulgation and implementation of the Environmental Impact Assessment Notification (S.O. 1533) dated 14th September, 2006 ('EIA Notification 2006').
4. Respondent No.2 is the Haryana State Environment Impact Assessment Authority which is an authority constituted by the respondent WP(C) 2066/2014 page 2 of 7 No.1 in exercise of its powers under Section 3(3) of the Environment (Protection) Act, 1986 and the EIA Notification 2006 by respondent No.1's Notification S.O. 899 (2) (E) dated 21st April, 2008 (and amended and superseded by respondent No.1's Notifications S.O.568(E) dated 23rd March, 2012 and S.O. 937 (E) dated 05th April, 2013).
5. Respondent No.2 is also a delegate of respondent No.1 and is responsible for the grant of prior Environmental Clearance (for short 'EC') in the State of Haryana for Category 'B' projects and activities as listed in the Schedule to the EIA Notification 2006 promulgated by respondent No.1.
6. Respondent No.3 is the Haryana State Expert Appraisal Committee which has been constituted by the respondent No.1 (in consultation with the Government of Haryana) in exercise of its powers under Section 3(3) of the Environment (Protection) Act, 1986 and the EIA Notification 2006 by respondent No.1's Notification S.O. 899(2)(E) dated 21st April, 2008 (and amended and superseded by respondent No.1's Notification S.O. 568(E) dated 23rd March, 2012). Respondent No.3 functions under the supervision and directions of the respondent No.2, which in turn, is a delegate of the respondent No.1. Respondent No.3 assists in the functioning of respondent No.2 and is responsible for making recommendations to the respondent No.2 regarding the grant of EC for Category 'B' projects and activities.
7. Mr. Mukul Rohtagi, learned senior counsel for petitioner submits that in accordance with the EIA Notification 2006, only those projects and activities, clearly and specifically listed in the Schedule to the EIA Notification 2006 require EC. According to him, projects and activities not listed in the Schedule are exempted from its regulatory ambit. The petitioner contends that though the petitioner's activity was specifically WP(C) 2066/2014 page 3 of 7 included in the Draft Environmental Impact Assessment Notification S.O. 1324(E) dated 15th September, 2005, yet it was omitted from the Schedule to the EIA Notification 2006. He contends that this omission clearly suggests that petitioner's activity would not be covered by the EIA Notification 2006.
8. Mr. Rohatgi points out that even the Supreme Court in Re: Construction of Park at NOIDA near Okhla Bird Sanctuary, reported in (2011) 1 SCC 744 had commented on the ambiguity in the Notification and observed that "The projects/activities under items 8(a) and 8(b) of the schedule to the notification need to be described with greater precision and clarity and the definition of built-up area with facilities open to the sky needs to the freed from its present ambiguity and vagueness" confusion in fact, continues to remain unattended to by respondent No.1.
9. Mr. Rohatgi states that in any event, the petitioner has been obtaining the requisite environmental clearances and approvals such as Consents to Establish and the Consents to Operate under the Air (Prevention and Control of Pollution) Act, 1981, the Water (Prevention and Control of Pollution) Act, 1974 and the Hazardous Waste (Management, Handling and Transboundary Movement) Rules, 2008 from the Haryana State Pollution Control Board (for short 'HSPCB') for its various projects.
10. Mr. Rohatgi further states that the petitioner has now without prejudice to its rights and contentions sought EC after the formation of such view by respondent No.2. He, however, states that the petitioner despite a 'without prejudice' application of EC dated 14th February, 2013 for the petitioner's project at Rohtak is being sought to be prosecuted under Sections 15 and 19 of the Environment (Protection) Act, 1986 for failure to WP(C) 2066/2014 page 4 of 7 obtain prior EC. In this regard, he refers to the Minutes of the 67th Meeting of the respondent No.2 dated 28th February, 2014 and 01st March, 2014 where the respondent No.2 has in Item 14 of the minutes of the abovementioned meeting ordered:-
".....[1] The Principal Secretary, Environment may be requested to initiate credible action on the violation by invoking powers under Section 19 of the Environment Protection Act, 1986 for taking necessary legal action under Section 15 of the EP Act for the period for which the violation has taken place, against MSIL, EMG Department, Palam Gurgaon Road, Gurgaon, Haryana for commencing construction of "Industrial Building for testing of Vehicles" at Plot No.1, Section 33-B, 33-C IMT, Rohtak, Maruti Suzuki India Limited Rohtak without obtaining prior EC under the EIA Notification. The Principal Secretary, Environment may also be requested to provide the evidence of credible action taken against the project proponent.
[2] The matter relating to the violation shall be put by the project proponent to the Board of Directors of MSIL for consideration of its environmental related policy/plan of action as also a written commitment in the form of a formal resolution to be submitted to the SEIAA within a period of 60 days of the date of this letter ensuring that the violations will not be repeated; failing which it will be presumed the project proponent is not interested in pursuing the project further and the project file will be closed..."
11. However, Mr. Rajeeve Mehra, learned ASG who appears for respondent No. l states that respondent No.2 relies upon clarification dated 21st October, 2009 on the subject matter of "Environmental Clearance to Special Economic Zone (SEZ) Projects- Reg." issued by the respondent No.1 to contend that in case the built-up area of a project or activity is > 20,000 sq. mts., then irrespective of the nature of the project or activity, the project or activity would require EC under Item 8(a) and 8(b) of the Schedule to the EIA Notification 2006 i.e. "Building and Construction WP(C) 2066/2014 page 5 of 7 Projects" and "Township and Area Development Projects".
12. Mr. Manjeet Singh, Additional AG for respondent No. 2 states that though the said respondent has raised preliminary objection to the maintainability of the present writ petition, yet it supports an amicable resolution of the disputes. He states that if the legality and validity of the EIA Notification 2006 is upheld and the petitioner as well as its directors undertake that the petitioner shall obtain ex-post facto EC and comply with the terms and conditions stipulated in the EC as well as further undertake to obtain EC for all their future projects in Haryana, the said respondent would consider not initiating any criminal action against the petitioner and/or its board members/officials for not procuring prior EC with regard to the present project being executed by the petitioner in the State of Haryana.
13. In rejoinder, the petitioner submits that the circular clearly pertains to SEZs and does not in any way, support the respondent No.2's view that all projects and activities having a built-up area of > 20,000 sq. mts., irrespective of the nature of the project or activity, would require EC.
14. Having heard learned counsel for parties, this Court is of the view that the EIA Notification 2006 applies to all projects with a built up area of > 20,000 sq. mts. irrespective of the nature of the project or activity. Omission of some words/expressions from the draft EIA Notification 2006, which are superfluous, would not assist the petitioners. Moreover, deletion of words/expressions from a draft Notification is not equivalent to a deletion of words/expressions from an existing statute or Notification. Also internal notings of Government officials cannot be a guide to interpretation when the Notification is otherwise free from ambiguity.
WP(C) 2066/2014 page 6 of 7
15. However, in the present case, petitioner cannot be said to have acted with malafide intent in not applying for prior EC as firstly there was no authoritative judgment on the said issue and secondly, upon the petitioner being asked to seek prior EC, despite its bonafide belief that EIA Notification 2006 was not applicable to its projects, did in fact apply for EC in compliance with HSPCB direction for its projects in Haryana as far back as 14th February, 2013, i.e., prior to filing of the present writ petition.
16. In any event, Mr. Mukul Rohatgi, learned senior counsel for petitioner undertakes that petitioner shall obtain ex post facto EC and comply with all terms and conditions stipulated by the EC as well as obtain necessary EC for all its future projects in Haryana. The statement made by Mr. Mukul Rohatgi is accepted by this Court and petitioner as well as its Board of Directors are held bound by the same. Accordingly, this Court is of the view that the ends of justice would be met in the present instance by directing respondent No.2 to consider petitioner's application for grant of ex post facto EC for its projects in Haryana.
17. Also, upon perusal of the paper book, it transpires that in the 29th Meeting of the State Environment Impact Assessment Authority, Haryana held on 2nd July, 2010 under similar facts and circumstances respondent No. 2 itself was of the view that no prosecution under Sections 15 and 19 of the Environment (Protection) Act, 1986 be initiated. The relevant portion of the Item No. 10 of the Minutes of aforementioned meeting reads as under:-
"The SEAC has considered this case and appointed a Sub-Committee also which did not recommend the prosecution in view of the circumstances of the case. The SEAC accordingly agreeing with the report of the Sub-Committee did not recommend any prosecution in this case."
WP(C) 2066/2014 page 7 of 7
18. Consequently, the respondents are directed not to initiate any criminal action against the petitioner and/or its Board Member/officials. This Court once again reiterates that present order has been passed on the peculiar facts and circumstances of this case and the same shall not be treated as a precedent. With the aforesaid observations, present writ petition and application are disposed of.
Order dasti.
MANMOHAN, J MAY 26, 2014 js/rn WP(C) 2066/2014 page 8 of 7


In this example, two component methods are implemented that will be invoked:
If the number of entered characters is less than the value of minSearchStringLength
attribute.
If the search of characters entered by the user has returned no results.
Besides, the list of actions is specified explicitly and includes clear
action.


This is in a paragraph
This is some div text
This is in a paragraph in a div
This is just some body text
lorem ipsum text
not english
Test


menu
StreamSave
home
Home
devices
Devices
settings
Settings
settings
track_changes
notifications
notifications
warning
warn when limit reached


Former Ipswich and Bury keeper Pope makes full England debut
by Michael StewardFormer Ipswich Town youngster Nick Pope kept a clean sheet after being handed his full England debut in the Euro 2020 qualifier against Kosovo.
Pope, who was released by Town at 16 before studying at West Suffolk College and playing for Bury Town, made his first start as the Three Lions ran out 4-0 winners with goals from Harry Winks, Harry Kane, Marcus Rashford and Mason Mount.
The 27-year-old Burnley stopper, who made his international debut as a substitute against Costa Rica last June, made a good early save to deny Kosovo's Atdhe Nuhiu in Pristina.
After being selected for last summer's World Cup squad, Pope will be hoping to make the number one spot his own before next summer's European Championships.
The former West Suffolk College business student was joined in the starting line-up by ex-Ipswich Town star Tyrone Mings, who was making only his second start for his country.
MORE: Former Ipswich and Bury Town goalkeeper Pope's journey from 4am milk rounds to the England squad
England wobbled at times at the rocking Fadil Vokrri Stadium in their last competitive game before the tournament, but the win means Gareth Southgate's men head to Euro 2020 among the top seeds.
England boss Southgate, whose side were already assured of top spot in Group A, said: "I think it was a tight game. It was a good test for us really. "Difficult pitch, in particular, lots of people slipping and a few passes went astray.
"But we needed a tighter game. It was the sort of challenge I was pleased we got.
"We had to withstand spells of pressure, gave them a few half-chances that on another night could be more of a problem, but in the end our counter-attacking was absolutely ruthless."


If there were any requests that could not be processed by the application due to bad input data or a non-recoverable error then the result files will include an errorResultData file.
The error result data file is a CSV file with the following fields.
| Name | Description |
|---|---|
| sequenceNumber | The index of the original request that the error is for. |
| errorCode | A short description of the type of error. |
| errorMessage | A detailed description of the specifics of the error. |


itchat robot project.py
This project is designed for automated reply of information and information processing in Wechat, the basic function I achieved is
1: auto reply from Turing robot,
2: conversion of RGB image to Single channel when receiving a image
3: auto-reply of recording and sharing


Load a JSON file:
Load Selected File
Save file to:
JSON
SVG
Zoom In
Zoom Out
Reset
⇦
⇧
⇩
⇨
squeleton
fillet
origin
dimension
Debug
Example
x:
y:


Datasets and text field to choose from...
Entities being output... initially: button to download
Choose which you'd like from a dropdown box.
Choose how this is connected to the next step.
Choose whether to merge results with another MD system
Choose how they are combined/merged (e.g. union or intersection)
Choose how this is connected to the next step.
Choose whether to merge results with another MD system
Choose how they are combined/merged (e.g. union or intersection)
Choose how this is connected to the next step.
Choose whether to merge results with another MD system
Choose how they are combined/merged (e.g. union or intersection)
Choose how this is connected to the next step.
Choose whether to merge results with another MD system
Choose how they are combined/merged (e.g. union or intersection)


Survey form
This is an amazing survey form.
Name
Email
Number
dropdown
1
2
3
4
5
Check me out
Submit
Radio 1
Radio 2
1
2


LogJoint considers an XML log file as one big string. This is a logical representation, of-course physically LogJoint doesn't load the whole file into a string in memory. A string here means a sequence of Unicode characters. To convert a raw log file to Unicode characters LogJoint uses the encoding specified in your format's settings. XML file does not have to be pretty-printed to look nice in LogJoint.
Suppose we have this log file:
<event timestamp="2017-02-03 14:56:12.654" severity="info" thread="6d12">Hi there</event> <event timestamp="2017-02-03 14:56:13.002" severity="error" thread="6d12">Ups! Error occurred! <exception-info> <message>Can not commit transaction</message> <method>Foo.Bar()</method> <inner-exception> <message>Invalid argument</message> <method>Foo.VerifyArgs()</method> </inner-exception> </exception-info> </event>
The log contains two messages, each represented by event
element.
Time, thead and severity are stored in separate attributes. Event's textual content is unstructured.
The second message is of severity error and it includes exception information in child XML element.
<event # opening XML tag \s+ # whitespace timestamp= # mandatory attribute
Note that LogJoint ignores unescaped white space in patterns and treats everything after # as a comment. Programmers can read about IgnorePatternWhitespace, ExplicitCapture, and Multiline flags that are actually used here in msdn: RegexOptions Enumeration.
LogJoint applies the header regular expression many times to find all the messages in the input string. In our example the header regex will match two times:
Thick black lines show message boundaries. After applying header regex LogJoint knows where the messages begin and where they end. A messsage ends where the next message begins.
On the next step LogJoint applies user-provided normalization XSL transformation to each message separated out on previous step. The output of this XSL tranformation must be one XML element with the following schema
<m d="datetime: yyyy-MM-ddTHH:mm:ss.fffffff" t="thread id string" s="severity: i, w, e">Log message</m>
Only d
attribute is mandatory.
LogJoint knows how to interpret and display transformation output. Basically your XSL tranformation tells LogJoint:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:lj="http://logjoint.codeplex.com/"> <xsl:output method="xml"/> <xsl:template match='event'> <m> <xsl:attribute name='t'> <xsl:value-of select='@thread'/> </xsl:attribute> <xsl:attribute name='d'> <xsl:value-of select='lj:TO_DATETIME(@timestamp, "yyyy-MM-dd HH:mm:ss.fff")'/> </xsl:attribute> <xsl:attribute name='s'> <xsl:choose> <xsl:when test="@severity='error'">e</xsl:when> <xsl:when test="@severity='warning'">w</xsl:when> <xsl:otherwise>i</xsl:otherwise> </xsl:choose> </xsl:attribute> <xsl:value-of select="lj:TRIM(text())"/> <xsl:apply-templates select="exception-info"/> </m> </xsl:template> <xsl:template match='exception-info'> <xsl:value-of select="lj:NEW_LINE()"/> <xsl:text>Exception: </xsl:text> <xsl:value-of select="message"/> at <xsl:value-of select="method"/> <xsl:apply-templates select="inner-exception"/> </xsl:template> <xsl:template match='inner-exception'> <xsl:value-of select="lj:NEW_LINE()"/> <xsl:text>Inner exception: </xsl:text> <xsl:value-of select="message"/> at <xsl:value-of select="method"/> <xsl:apply-templates select="inner-exception"/> </xsl:template> </xsl:stylesheet>
Within XSLT code you can use standard XSL functions
as well as that from namespace lj:
.
The latter are helper functions introduced by LogJoint to XSLT processor. See functions reference.


This page doesn’t appear to be using the Piral debug utils. Note that the page needs to be run on localhost to be debugged.


--- categories: [] date: 2013-05-02T21:40:59Z status: publish tags: [] title: Full on day - doctors, worked through lunch for paper work, meet, eat, drove to Rugby club, worked, watched Mad Men, voted, looked at Jupiter in the night sky. layout: post url: /2013/05/02/full-on-day-doctors-worked-through-lunch-for-paper-work-meet-eat-drove-to-rugby-club-worked-watched-mad-men-voted-looked-at-jupiter-in-the-night-sky/ ---


Folders
<parent>
bonus-gra...roject
graphs-in...lution
graph_project
advanced
Graph
graphs-solution
Folders: 7


Emergency number:0123456789
medical record
team
(current)
search
Previous
Next
Welcome to the Medical Record application
Are you a doctor or a patient ???
doctor
patient
Copyrights © reserved for
Medical Record Team


Come get your dance on and ring in the New Year with WELD! Limited tickets available. Beer, Wine & Bubbly Provided. Cheers!
Parking is limited and vehicles are not allowed overnight. We are partnering with LYFT and will be sending codes to all attendees for discounted rides.
December 31st 2016
10pm-1am
$45 (21+ only) Price will increase to $60 on December 9, 2016.
>DJ Jared Foldy


{% extends "base.html" %} {% block center_content %}
Send this link to the person you'd like to share a secret with and we'll get their response:
Copy {{ url_for("default.share_secret", secret_shortname=secret.shortname, _external=True) }}


Welcome
Md. Nahid Hasan Limon
Educational Details
Degree
discipline
Institution
Board
Result
Passing Year
B.Sc
CSE
Bangladesh University of Business and Technology
N/A
3.39
2018
B.Sc
CSE
Bangladesh University of Business and Technology
N/A
3.39
2018


The process package contains the core files for processing data in pipelines. Normally the process modules are either fully complete, or form the abstract base to your own implementation modules.


1.2. Abstract Data Types¶
1.2.1. Abstract Data Types¶
This module presents terminology and definitions related to techniques for managing the tremendous complexity of computer programs. It also presents working definitions for the fundamental but somewhat slippery terms “data item” and “data structure”. We begin with the basic elements on which data structures are built.
A type is a collection of values.
For example, the Boolean type consists of the values true
and
false
.
The integers also form a type.
An integer is a simple type
because its values contain no subparts.

Such a record is an example of an aggregate type or
composite type.

A data item is said to be a member of a type.
A data type is a type together with a collection of operations to manipulate the type. For example, an integer variable is a member of the integer data type. Addition is an example of an operation on the integer data type.
A distinction should be made between the logical concept of a data type and its physical implementation in a computer program. For example, there are two traditional implementations for the list data type: the linked list and the array-based list. The list data type can therefore be implemented using a linked list or an array. But we don’t need to know how the list is implemented when we wish to use a list to help in a more complex design. For example, a list might be used to help implement a graph data structure.
As another example, the term “array” could refer either to a data type or an implementation. “Array” is commonly used in computer programming to mean a contiguous block of memory locations, where each memory location stores one fixed-length data item. By this meaning, an array is a physical data structure. However, array can also mean a logical data type composed of a (typically homogeneous) collection of data items, with each data item identified by an index number. It is possible to implement arrays in many different ways besides as a block of contiguous memory locations. The sparse matrix refers to a large, two-dimensional array that stores only a relatively few non-zero values. This is often implemented with a linked structure, or possibly using a hash table. But it could be implemented with an interface that uses traditional row and column indices, thus appearing to the user in the same way that it would if it had been implemented as a block of contiguous memory locations.
An abstract data type (ADT) is the specification of a data type within some language, independent of an implementation. The interface for the ADT is defined in terms of a type and a set of operations on that type. The behavior of each operation is determined by its inputs and outputs. An ADT does not specify how the data type is implemented. These implementation details are hidden from the user of the ADT and protected from outside access, a concept referred to as encapsulation.
A data structure is the implementation for an ADT. In an object-oriented language, an ADT and its implementation together make up a class. Each operation associated with the ADT is implemented by a member function or method. The variables that define the space required by a data item are referred to as data members. An object is an instance of a class, that is, something that is created and takes up storage during the execution of a computer program.
The term data structure often refers to data stored in a computer’s main memory. The related term file structure often refers to the organization of data on peripheral storage, such as a disk drive or CD.
Example 1.3.1
The mathematical concept of an integer, along with operations
that manipulate integers, form a data type.
The int
variable type is a physical representation of
the abstract integer.
The int
variable type, along with the operations that act on an
int
variable, form an ADT.
Unfortunately, the int
implementation is not
completely true to the abstract integer, as there are limitations on
the range of values an int
variable can store.
If these limitations prove unacceptable, then some other
representation for the ADT “integer” must be devised, and a new
implementation must be used for the associated operations.
Example 1.3.2
An ADT for a list of integers might specify the following operations:
Insert a new integer at a particular position in the list.
Return
True
if the list is empty.Reinitialize the list.
Return the number of integers currently in the list.
Retrieve the integer at a particular position in the list.
Delete the integer at a particular position in the list.
From this description, the input and output of each operation should be clear, but the implementation for lists has not been specified.
One application that makes use of some ADT might use particular member functions of that ADT more than a second application, or the two applications might have different time requirements for the various operations. These differences in the requirements of applications are the reason why a given ADT might be supported by more than one implementation.
Example 1.3.3
Two popular implementations for large disk-based database applications are hashing and the B-tree. Both support efficient insertion and deletion of records, and both support exact-match queries. However, hashing is more efficient than the B-tree for exact-match queries. On the other hand, the B-tree can perform range queries efficiently, while hashing is hopelessly inefficient for range queries. Thus, if the database application limits searches to exact-match queries, hashing is preferred. On the other hand, if the application requires support for range queries, the B-tree is preferred. Despite these performance issues, both implementations solve versions of the same problem: updating and searching a large collection of records.
The concept of an ADT can help us to focus on key issues even in non-computing applications.
Example 1.3.4
When operating a car, the primary activities are steering, accelerating, and braking. On nearly all passenger cars, you steer by turning the steering wheel, accelerate by pushing the gas pedal, and brake by pushing the brake pedal. This design for cars can be viewed as an ADT with operations “steer”, “accelerate”, and “brake”. Two cars might implement these operations in radically different ways, say with different types of engine, or front- versus rear-wheel drive. Yet, most drivers can operate many different cars because the ADT presents a uniform method of operation that does not require the driver to understand the specifics of any particular engine or drive design. These differences are deliberately hidden.
The concept of an ADT is one instance of an important principle that must be understood by any successful computer scientist: managing complexity through abstraction. A central theme of computer science is complexity and techniques for handling it. Humans deal with complexity by assigning a label to an assembly of objects or concepts and then manipulating the label in place of the assembly. Cognitive psychologists call such a label a metaphor. A particular label might be related to other pieces of information or other labels. This collection can in turn be given a label, forming a hierarchy of concepts and labels. This hierarchy of labels allows us to focus on important issues while ignoring unnecessary details.
Example 1.3.5
We apply the label “hard drive” to a collection of hardware that manipulates data on a particular type of storage device, and we apply the label “CPU” to the hardware that controls execution of computer instructions. These and other labels are gathered together under the label “computer”. Because even the smallest home computers today have millions of components, some form of abstraction is necessary to comprehend how a computer operates.
Consider how you might go about the process of designing a complex computer program that implements and manipulates an ADT. The ADT is implemented in one part of the program by a particular data structure. While designing those parts of the program that use the ADT, you can think in terms of operations on the data type without concern for the data structure’s implementation. Without this ability to simplify your thinking about a complex program, you would have no hope of understanding or implementing it.
Example 1.3.6
Consider the design for a relatively simple database system stored on disk. Typically, records on disk in such a program are accessed through a buffer pool rather than directly. Variable length records might use a memory manager to find an appropriate location within the disk file to place the record. Multiple index structures will typically be used to support access to a collection of records using multiple search keys. Thus, we have a chain of classes, each with its own responsibilities and access privileges. A database query from a user is implemented by searching an index structure. This index requests access to the record by means of a request to the buffer pool. If a record is being inserted or deleted, such a request goes through the memory manager, which in turn interacts with the buffer pool to gain access to the disk file. A program such as this is far too complex for nearly any human programmer to keep all of the details in their head at once. The only way to design and implement such a program is through proper use of abstraction and metaphors. In object-oriented programming, such abstraction is handled using classes.
Data types have both a logical form and a physical form. The definition of the data type in terms of an ADT is its logical form. The implementation of the data type as a data structure is its physical form.  The figure below illustrates this relationship between logical and physical forms for data types. When you implement an ADT, you are dealing with the physical form of the associated data type. When you use an ADT elsewhere in your program, you are concerned with the associated data type’s logical form. Some sections of this book focus on physical implementations for a given data structure. Other sections use the logical ADT for the data structure in the context of a higher-level task.
The ADT defines the logical form of the data type. The data structure implements the physical form of the data type. Users of an ADT are typically programmers working in the same language as the implementer of the ADT. Typically, these programmers want to use the ADT as a component in another application. The interface to an ADT is also commonly referred to as the Application Programmer Interface, or API, for the ADT. The interface becomes a form of communication between the two programmers.
Example 1.3.7
A particular programming environment might provide a library that includes a list class. The logical form of the list is defined by the public functions, their inputs, and their outputs that define the class. This might be all that you know about the list class implementation, and this should be all you need to know. Within the class, a variety of physical implementations for lists is possible.


DisplayWebViewPresenter
public class DisplayWebViewPresenter : NSObject
extension DisplayWebViewPresenter: DisplayAgentDelegate
extension DisplayWebViewPresenter: WKNavigationDelegate
DisplayWebViewPresenter is a class which helps user for displaying DisplayWebView more easily.
-
Initialize with superView
Declaration
Swift
public convenience init(superView: UIView, nuguClient: NuguClient, clientInfo: [String : String]? = nil)
Parameters
superView
Target view for NuguDisplayWebView should be added to.
nuguClient
NuguClient instance which should be passed for delegation.
clientInfo
Optional and additional values which can be injected for pre-promised and customized layout.
-
Initialize with viewController
Declaration
Swift
public convenience init(viewController: UIViewController, nuguClient: NuguClient, clientInfo: [String : String]? = nil)
Parameters
viewController
Target viewController for NuguDisplayWebView should be added to.
nuguClient
NuguClient instance which should be passed for delegation.
clientInfo
Optional and additional values which can be injected for pre-promised and customized layout.
-
Declaration
Swift
public func displayAgentRequestContext(templateId: String, completion: @escaping (DisplayContext?) -> Void)
-
Declaration
Swift
public func displayAgentShouldRender(template: DisplayTemplate, completion: @escaping (AnyObject?) -> Void)
-
Declaration
Swift
public func displayAgentShouldUpdate(templateId: String, template: DisplayTemplate)
-
Declaration
Swift
public func displayAgentDidClear(templateId: String)
-
Declaration
Swift
public func displayAgentShouldMoveFocus(templateId: String, direction: DisplayControlPayload.Direction, header: Downstream.Header, completion: @escaping (Bool) -> Void)
-
Declaration
Swift
public func displayAgentShouldScroll(templateId: String, direction: DisplayControlPayload.Direction, header: Downstream.Header, completion: @escaping (Bool) -> Void)


open_in_browser load...
save save
cancel cancel
mode_edit update selected
{{op.md_icon}} {{op.name}}
n/a
{{subGraph.md_icon}}
{{subGraph.icon}} {{subGraph.name}}
{{engine_name}}
{{subGraph.md_icon}}
{{subGraph.icon}} {{subGraph.name}}
reset
layout
breadthfirst
circle
cose-bilkent
dagre
grid
live updates{{ liveUpdatesEnabled && subGraphCounter > 0 ? ' (paused)' : ''}}
zoom_in details
link entity link


What is Binder
- The Binder mechanism has started from a simple idea.
“Let requests and responses be written in an area where all processes can share and let each process refer to the memory address.”

-
Binder implementation is based on OpenBinder.
-
Binder refers to a kernel memory which is shared between all processes to minimize the overhead caused by memory copy.
-
It provides the Remote Procedure Call (RPC) framework written in C++ for high productivity.
Why need Binder
-
Android need IPC mechanism because of its loosely coupled component design. Every application in Android is comprised of some components ,like Activity or Service, they maybe in same process or not. If they are in different process, they need communicate each other.
-
All of the default system functions of Android are provided as the server process type. In other words, to use the functions such as
SurfaceFlinger
orAudioFlinger
, a request should be made as a separate process that runs on the user mode. As all system services are provided as a server process, a mechanism to send requests and responses to other processes is necessary. In Android it is called the Binder. Android uses functions provided by other processes through Binder. -
Android is based on Linux, Linux has a lot of IPC mechanism. But, Android didn’t adopted it. Maybe because of performance and low memory of Android device.
The Benefits of Using Binder Mechanism
-
Easy to expand or remove functions: It is easy to add a new system service or remove an existing function.
-
Easy to port: Porting to a new processor requires few changes. A toolchain for porting is provided.
-
Easy to test: Tests are limited by the component unit, so it is not necessary to test the entire services, and more strict tests are available.
-
Support for distribution system: Process communication is based on the Binder, so it guarantees transparency in location between components.
Binder Driver
A Binder Driver is implemented to use the kernel space. The role of the Binder driver is to convert the memory address that each process has mapped with the memory address of the kernel space for reference.
Understanding Binder Mechanism through Media Service
ServiceManager
ServiceManager is a system manager which manages all services in Android.
What is Media Service
-
Media Service is a general C++ application, is core of android media.
-
Media Service is a general service Android supplied.
-
Source code location: frameworks/base/media/mediaserver/main_mediaserver.cpp
-
Entry point:
int main(int argc, char** argv)
{
// Require a ServiceManager proxy
sp<ProcessState> proc(ProcessState::self());
sp<IServiceManager> sm = defaultServiceManager();
LOGI("ServiceManager: %p", sm.get());
AudioFlinger::instantiate();
MediaPlayerService::instantiate();
CameraService::instantiate();
AudioPolicyService::instantiate();
// Forever process messages sent from Binder.
ProcessState::self()->startThreadPool();
IPCThreadState::self()->joinThreadPool();
}
-
Media server service has four sub-module.
-
AudioFlinger
-
MediaPlayerService
-
CameraService
-
AudioPolicyService
-
ProcessState
-
Source code location: frameworks/base/libs/binder/ProcessState.cpp
-
Media Service first call
ProcessState::self()
sp<ProcessState> ProcessState::self()
{
if (gProcess != NULL) return gProcess;
AutoMutex _l(gProcessMutex);
if (gProcess == NULL) gProcess = new ProcessState;
return gProcess;
}
- Then
ProcessState::self()
call ProcessState constructor
ProcessState::ProcessState()
: mDriverFD(open_driver())
, mVMStart(MAP_FAILED) // Map the memory start address
, mManagesContexts(false)
, mBinderContextCheckFunc(NULL)
, mBinderContextUserData(NULL)
, mThreadPoolStarted(false)
, mThreadPoolSeq(1)
{
if (mDriverFD >= 0) {
// XXX Ideally, there should be a specific define for whether we
// have mmap (or whether we could possibly have the kernel module
// availabla).
#if !defined(HAVE_WIN32_IPC)
// mmap the binder, providing a chunk of virtual address space to receive transactions.
mVMStart = mmap(0, BINDER_VM_SIZE, PROT_READ, MAP_PRIVATE | MAP_NORESERVE, mDriverFD, 0);
if (mVMStart == MAP_FAILED) {
// *sigh*
LOGE("Using /dev/binder failed: unable to mmap transaction memory.\n");
close(mDriverFD);
mDriverFD = -1;
}
#else
mDriverFD = -1;
#endif
}
if (mDriverFD < 0) {
// Need to run without the driver, starting our own thread pool.
}
}
-
open_driver()
function-
Very important function call to open a virtual device for communication.
-
This functon will open this device /dev/binder.
-
-
When
ProcessState::self()
complete, it had do two important jobs:- Open the virtual device /dev/binder, so there has been a channel to communicate with kernel.
- Map /dev/binder device’s fd to memory.
defaultServiceManager()
-
Source code location: frameworks/base/libs/binder/IServiceManager.cpp
-
Trace the source code call path, finally find that this call
sp<IServiceManager> sm = defaultServiceManager()
equalsgDefaultServiceManager = interface_cast<IServiceManager>(new BpBinder(0))
. -
BpBinder
-
Source code location: frameworks/base/libs/binder/BpBinder.cpp
-
BpBinder constructor:
-
BpBinder::BpBinder(int32_t handle)
: mHandle(handle)
, mAlive(1)
, mObitsSent(0)
, mObituaries(NULL)
{
LOGV("Creating BpBinder %p handle %d\n", this, mHandle);
extendObjectLifetime(OBJECT_LIFETIME_WEAK);
IPCThreadState::self()->incWeakHandle(handle);
}
-
What did
interface_cast
do?-
interface_cast
defined in /home/tao/android_source/frameworks/base/include/binder/IInterface.h -
interface_cast
defination
-
template<typename INTERFACE>
inline sp<INTERFACE> interface_cast(const sp<IBinder>& obj)
{
return INTERFACE::asInterface(obj);
}
- So
gDefaultServiceManager = interface_cast<IServiceManager>(new BpBinder(0))
statement callinterface_cast
will equals:
inline sp<IServiceManager> interface_cast(const sp<IBinder>& obj)
{
return IServiceManager::asInterface(obj);
}
-
We need find clue in
IServiceManager
-
Source code location: frameworks/base/include/binder/IInterface.h
-
IServiceManager
defination
-
class IServiceManager : public IInterface
{
public:
DECLARE_META_INTERFACE(ServiceManager);
/**
* Retrieve an existing service, blocking for a few seconds
* if it doesn't yet exist.
*/
virtual sp<IBinder> getService( const String16& name) const = 0;
/**
* Retrieve an existing service, non-blocking.
*/
virtual sp<IBinder> checkService( const String16& name) const = 0;
/**
* Register a service.
*/
virtual status_t addService( const String16& name,
const sp<IBinder>& service) = 0;
/**
* Return list of all existing services.
*/
virtual Vector<String16> listServices() = 0;
enum {
GET_SERVICE_TRANSACTION = IBinder::FIRST_CALL_TRANSACTION,
CHECK_SERVICE_TRANSACTION,
ADD_SERVICE_TRANSACTION,
LIST_SERVICES_TRANSACTION,
};
};
* We need trace this macro `DECLARE_META_INTERFACE(ServiceManager)`
#define DECLARE_META_INTERFACE(INTERFACE)
static const String16 descriptor;
static sp<I##INTERFACE> asInterface(const sp<IBinder>& obj);
virtual const String16& getInterfaceDescriptor() const;
I##INTERFACE();
virtual ~I##INTERFACE();
#define IMPLEMENT_META_INTERFACE(INTERFACE, NAME)
const String16 I##INTERFACE::descriptor(NAME);
const String16& I##INTERFACE::getInterfaceDescriptor() const {
return I##INTERFACE::descriptor;
}
sp<I##INTERFACE> I##INTERFACE::asInterface(const sp<IBinder>& obj)
{
sp<I##INTERFACE> intr;
if (obj != NULL) {
intr = static_cast<I##INTERFACE*>(
obj->queryLocalInterface(
I##INTERFACE::descriptor).get());
if (intr == NULL) {
intr = new Bp##INTERFACE(obj);
}
}
return intr;
}
I##INTERFACE::I##INTERFACE() { }
I##INTERFACE::~I##INTERFACE() { }
- Finally, we find that
interface_cast<IServiceManager>(new BpBinder(0))
statement actually return aBpServiceManager
object. It meanssp<IServiceManager> sm = defaultServiceManager()
acquired aBpServiceManager
object.
BpServiceManager
- Bp stands for Binder proxy, it means
BpServiceManager
isServiceManager
’s proxy to Binder.
MediaPlayerService
-
Source code location: frameworks/base/media/libmediaplayerservice/MediaPlayerService.cpp
-
Defination and instantiation
void MediaPlayerService::instantiate() {
defaultServiceManager()->addService(
String16("media.player"), new MediaPlayerService());
}
MediaPlayerService::MediaPlayerService()
{
LOGV("MediaPlayerService created");
mNextConnId = 1;
}
MediaPlayerService::~MediaPlayerService()
{
LOGV("MediaPlayerService destroyed");
}
-
MediaPlayerService
derivatived fromBnMediaPlayerService
-
Bn stands for Binder native.
-
Add
MediaPlayerService
toServiceManager
virtual status_t addService(const String16& name, const sp<IBinder>& service)
{
Parcel data, reply;
data.writeInterfaceToken(IServiceManager::getInterfaceDescriptor());
data.writeString16(name);
data.writeStrongBinder(service);
// remote() return BpBinder object
status_t err = remote()->transact(ADD_SERVICE_TRANSACTION, data, &reply);
return err == NO_ERROR ? reply.readInt32() : err;
}
remote()
return BpBinder
status_t BpBinder::transact(uint32_t code, const Parcel& data, Parcel* reply, uint32_t flags)
{
// Once a binder has died, it will never come back to life.
if (mAlive) {
status_t status = IPCThreadState::self()->transact(
mHandle, code, data, reply, flags);
if (status == DEAD_OBJECT) mAlive = 0;
return status;
}
return DEAD_OBJECT;
}
-
IPCThreadState
do with transaction, write add service command and wait for response. -
BpServiceManager
had sent a add service message, but who receive and process it? -
BnServiceManager
? unfortunately it doesn’t exist. service do same job. -
service
-
service is a general c++ applcation.
-
Source code location: frameworks/base/cmds/servicemanager/service_manager.c
-
Entry point:
-
int main(int argc, char **argv)
{
struct binder_state *bs;
// BINDER_SERVICE_MANAGER is NULL, is a magic number
void *svcmgr = BINDER_SERVICE_MANAGER;
bs = binder_open(128*1024);
if (binder_become_context_manager(bs)) {
LOGE("cannot become context manager (%s)\n", strerror(errno));
return -1;
}
svcmgr_handle = svcmgr;
binder_loop(bs, svcmgr_handler);
return 0;
}
Conclusion
Through tracing so many codes, the MediaPlayerService example maybe reveal the Binder’s mysterious veil. We need write down some important conclusions:
-
If two processes need communicate each other, one as Client, the other is Server, Server need registered to
ServiceManager
, if Client want request to Server, it need query Server’s info fromServiceManager
, based the qureid info, Client and Server can communicate each other. -
Client, Server,
ServiceManager
are implemented in use space, Binder is implemented in kernel space. -
ServiceManager
and Binder is implemented by Android, developers need implemente their Client and Server. -
Binder supplied device file /dev/binder communicate to user space. Client, Server and
ServiceManager
communicated to Binder throughopen
andioctl
file operation function. -
Client and Server communicate each other immediately through Binder.
-
ServiceManager
is a daemon process, it manages Server, supply interface to qurey Server function.
If want to learn Android IPC mechanism deeply, a lot of Android source code need be read.


Zend Framework
LICENSE
This source file is subject to the new BSD license that is bundled with this package in the file LICENSE.txt. It is also available through the world-wide-web at this URL: http://framework.zend.com/license/new-bsd If you did not receive a copy of the license and are unable to obtain it through the world-wide-web, please send an email to<EMAIL_ADDRESS>so we can send you a copy immediately.
\Zend_InfoCard_Adapter_Interface
$_adapter= ''
The InfoCard Adapter to use for callbacks into the application using the component such as when storing assertions, etc.
Array
$_keyPairs= ''
An array of certificate pair files and optional passwords for them to search when trying to determine which certificate was used to encrypt the transient key
\Zend_InfoCard_Cipher_Pki_Interface
$_pkiCipherObj= ''
The instance to use to decrypt public-key encrypted data
_extractSignedToken(
string $strXmlToken
)
:
string
Extracts the Signed Token from an EncryptedData block
| Name | Type | Description |
|---|---|---|
| $strXmlToken | string | The EncryptedData XML block |
| Type | Description |
|---|---|
| string | The XML of the Signed Token inside of the EncryptedData block |
| Exception | Description |
|---|---|
| \Zend_InfoCard_Exception |
_findCertifiatePairByDigest(
string $digest, string $digestMethod
=
self
)
:
mixed
Find a certificate pair based on a digest of its public key / certificate file
| Name | Type | Description |
|---|---|---|
| $digest | string | The digest value of the public key wanted in binary form |
| $digestMethod | string | The URI of the digest method used to calculate the digest |
| Type | Description |
|---|---|
| mixed | The Key ID of the matching certificate pair or false if not found |
_getPublicKeyDigest(
string $key_id, string $digestMethod
=
self
)
:
string
Retrieve the digest of a given public key / certificate using the provided digest method
| Name | Type | Description |
|---|---|---|
| $key_id | string | The certificate key id in the component |
| $digestMethod | string | The URI of the digest method to use (default SHA1) |
| Type | Description |
|---|---|
| string | The digest value in binary format |
| Exception | Description |
|---|---|
| \Zend_InfoCard_Exception |
addCertificatePair(
string $private_key_file, string $public_key_file, string $type
=
Zend_InfoCard_Cipher, string $password
=
null
)
:
string
Add a Certificate Pair to the list of certificates searched by the component
| Name | Type | Description |
|---|---|---|
| $private_key_file | string | The path to the private key file for the pair |
| $public_key_file | string | The path to the certificate / public key for the pair |
| $type | string | (optional) The URI for the type of key pair this is (default RSA with OAEP padding) |
| $password | string | (optional) The password for the private key file if necessary |
| Type | Description |
|---|---|
| string | A key ID representing this key pair in the component |
| Exception | Description |
|---|---|
| \Zend_InfoCard_Exception |
getAdapter(
)
:
\Zend_InfoCard_Adapter_Interface
Retrieves the adapter used for callbacks into the application using the component.
If no adapter was set then an instance of Zend_InfoCard_Adapter_Default is used
| Type | Description |
|---|---|
| \Zend_InfoCard_Adapter_Interface | The Adapter instance |
getCertificatePair(
string $key_id
)
:
array
Return a Certificate Pair from a key ID
| Name | Type | Description |
|---|---|---|
| $key_id | string | The Key ID of the certificate pair in the component |
| Type | Description |
|---|---|
| array | An array containing the path to the private/public key files, the type URI and the password if provided |
| Exception | Description |
|---|---|
| \Zend_InfoCard_Exception |
getPkiCipherObject(
)
:
\Zend_InfoCard_Cipher_Pki_Interface
Gets the Public Key Cipher object used in this instance
| Type | Description |
|---|---|
| \Zend_InfoCard_Cipher_Pki_Interface |
getSymCipherObject(
)
:
\Zend_InfoCard_Cipher_Symmetric_Interface
Get the Symmetric Cipher Object used in this instance
| Type | Description |
|---|---|
| \Zend_InfoCard_Cipher_Symmetric_Interface |
process(
string $strXmlToken
)
:
\Zend_Infocard_Claims
Process an input Infomation Card EncryptedData block sent from the client, validate it, and return the claims contained within it on success or an error message on error
| Name | Type | Description |
|---|---|---|
| $strXmlToken | string | The XML token sent to the server from the client |
| Type | Description |
|---|---|
| \Zend_Infocard_Claims | The Claims object containing the claims, or any errors which occurred |
removeCertificatePair(
string $key_id
)
:
\Zend_InfoCard
Remove a Certificate Pair by Key ID from the search list
| Name | Type | Description |
|---|---|---|
| $key_id | string | The Certificate Key ID returned from adding the certificate pair |
| Type | Description |
|---|---|
| \Zend_InfoCard |
| Exception | Description |
|---|---|
| \Zend_InfoCard_Exception |
setAdapter(
\Zend_InfoCard_Adapter_Interface $a
)
:
\Zend_InfoCard
Sets the adapter uesd for callbacks into the application using the component, used when doing things such as storing / retrieving assertions, etc.
| Name | Type | Description |
|---|---|---|
| $a | \Zend_InfoCard_Adapter_Interface | The Adapter instance |
| Type | Description |
|---|---|
| \Zend_InfoCard | The instnace |
setPkiCipherObject(
\Zend_InfoCard_Cipher_Pki_Interface $cipherObj
)
:
\Zend_InfoCard
Sets the Public Key Cipher Object used in this instance
| Name | Type | Description |
|---|---|---|
| $cipherObj | \Zend_InfoCard_Cipher_Pki_Interface |
| Type | Description |
|---|---|
| \Zend_InfoCard |
setSymCipherObject(
\Zend_InfoCard_Cipher_Symmetric_Interface $cipherObj
)
:
\Zend_InfoCard
Sets the Symmetric Cipher Object used in this instance
| Name | Type | Description |
|---|---|---|
| $cipherObj | \Zend_InfoCard_Cipher_Symmetric_Interface |
| Type | Description |
|---|---|
| \Zend_InfoCard |


Contact form goes here
9:00AM - 4:30PM Monday to Friday
14/24 Lakeside Drive Burwood East VIC 3151 info@newcenturyschool.com.au


|
Panda3D
|
An instance of this object is returned by Texture::peek(). More...
Public Member Functions | |
| __init__ (const TexturePeeker) | |
| fetchPixel (LColor color, int x, int y) | |
| Works like TexturePeeker::lookup(), but instead uv-coordinates integer coordinates are used. More... | |
| filterRect (LColor color, float min_u, float min_v, float max_u, float max_v) | |
| Fills "color" with the average RGBA color of the texels within the rectangle defined by the specified coordinate range. More... | |
| filterRect (LColor color, float min_u, float min_v, float min_w, float max_u, float max_v, float max_w) | |
| Fills "color" with the average RGBA color of the texels within the rectangle defined by the specified coordinate range. More... | |
| int | getXSize () |
| Returns the width of the texture image that is contributing to the TexturePeeker's information. More... | |
| int | getYSize () |
| Returns the height of the texture image that is contributing to the TexturePeeker's information. More... | |
| int | getZSize () |
| Returns the depth of the texture image that is contributing to the TexturePeeker's information. More... | |
| bool | hasPixel (int x, int y) |
| Returns whether a given coordinate is inside of the texture dimensions. More... | |
| lookup (LColor color, float u, float v) | |
| Fills "color" with the RGBA color of the texel at point (u, v). More... | |
| lookup (LColor color, float u, float v, float w) | |
| Fills "color" with the RGBA color of the texel at point (u, v, w). More... | |
| bool | lookupBilinear (LColor color, float u, float v) |
| Performs a bilinear lookup to retrieve the color value stored at the uv coordinate (u, v). More... | |
| Public Member Functions inherited from ReferenceCount | |
| int | getRefCount () |
| Returns the current reference count. More... | |
| ref () | |
| Explicitly increments the reference count. More... | |
| bool | testRefCountIntegrity () |
| Does some easy checks to make sure that the reference count isn't completely bogus. More... | |
| bool | testRefCountNonzero () |
| Does some easy checks to make sure that the reference count isn't zero, or completely bogus. More... | |
| bool | unref () |
| Explicitly decrements the reference count. More... | |
Additional Inherited Members | |
| Static Public Member Functions inherited from ReferenceCount | |
| static TypeHandle | getClassType () |
| Public Attributes inherited from ReferenceCount | |
| int | ref_count |
| The current reference count. More... | |
An instance of this object is returned by Texture::peek().
This object allows quick and easy inspection of a texture's texels by (u, v) coordinates.
| __init__ | ( | const | TexturePeeker | ) |
| fetchPixel | ( | LColor | color, |
| int | x, | ||
| int | y | ||
| ) |
Works like TexturePeeker::lookup(), but instead uv-coordinates integer coordinates are used.
| filterRect | ( | LColor | color, |
| float | min_u, | ||
| float | min_v, | ||
| float | max_u, | ||
| float | max_v | ||
| ) |
Fills "color" with the average RGBA color of the texels within the rectangle defined by the specified coordinate range.
The texel color is linearly filtered over the entire region. u, v, and w will wrap around regardless of the texture's wrap mode.
| filterRect | ( | LColor | color, |
| float | min_u, | ||
| float | min_v, | ||
| float | min_w, | ||
| float | max_u, | ||
| float | max_v, | ||
| float | max_w | ||
| ) |
Fills "color" with the average RGBA color of the texels within the rectangle defined by the specified coordinate range.
The texel color is linearly filtered over the entire region. u, v, and w will wrap around regardless of the texture's wrap mode.
| int getXSize | ( | ) |
Returns the width of the texture image that is contributing to the TexturePeeker's information.
This may be either the Texture's full width, or its simple ram image's width.
| int getYSize | ( | ) |
Returns the height of the texture image that is contributing to the TexturePeeker's information.
This may be either the Texture's full height, or its simple ram image's height.
| int getZSize | ( | ) |
Returns the depth of the texture image that is contributing to the TexturePeeker's information.
| bool hasPixel | ( | int | x, |
| int | y | ||
| ) |
Returns whether a given coordinate is inside of the texture dimensions.
| lookup | ( | LColor | color, |
| float | u, | ||
| float | v | ||
| ) |
Fills "color" with the RGBA color of the texel at point (u, v).
The texel color is determined via nearest-point sampling (no filtering of adjacent pixels), regardless of the filter type associated with the texture. u, v, and w will wrap around regardless of the texture's wrap mode.
| lookup | ( | LColor | color, |
| float | u, | ||
| float | v, | ||
| float | w | ||
| ) |
Fills "color" with the RGBA color of the texel at point (u, v, w).
The texel color is determined via nearest-point sampling (no filtering of adjacent pixels), regardless of the filter type associated with the texture. u, v, and w will wrap around regardless of the texture's wrap mode.
| bool lookupBilinear | ( | LColor | color, |
| float | u, | ||
| float | v | ||
| ) |
Performs a bilinear lookup to retrieve the color value stored at the uv coordinate (u, v).
In case the point is outside of the uv range, color is set to zero, and false is returned. Otherwise true is returned.


The Ethics
of Artificial
Intelligence
- 11.10.20
WORKSHOP
1:00p
The Forum
Schlomo Zilberstein
HARVARD UNIVERSITY
ion
4201 Main Street
Houston, Texas
WORKSHOP
1:00p
The Forum
Schlomo Zilberstein
HARVARD UNIVERSITY
ion
4201 Main Street
Houston, Texas


Display Utilites
d-line
usingd-block bro
Hid Me on Medium
Hide until medium then hide again on large


$ cd $JBOSS_HOME
$ ./bin/jboss-cli.sh --connect
[standalone@localhost:9990 /] ls deployment
rest-api.war
[standalone@localhost:9990 /] exit
$
26 June 2022
JBoss/Wildfly offers various options to configure the application server. In this article, the "classical" and more common configuration approach of using JBoss CLI is lit up.
JBoss/Wildfly application server persists its configuration in XML formatted
files in the directory $JBOSS_HOME/standalone/configuration
[1].
Depending on the profile the application server is started with, one of the
following files becomes effective: standalone.xml
, standalone-full.xml
,
standalone-full-ha.xml
, standalone-ha.xml
, standalone-microprofile.xml
,
standalone-microprofile-ha.xml
or standalone-load-balancer.xml
.
Because the JBoss configuration files are in XML format and human-readable, it’s
tempting to power up vi
or any other text editor of your choice and modify the
configuration manually. This may be a viable option if only one JBoss server
instance need to be managed, for example in a developer’s environment. But as
soon as many application servers have to be managed, this approach becomes
daunting and error-prone. This is especially true if the application servers
host different applications and need different configurations.
| Because JBoss/Wildfly writes the configuration on every (regular) shutdown, manual editing of the configuration requires that the server is stopped beforehand. Otherwise manual changes are likely overwritten. |
The drawbacks of manually changing the JBoss configuration files becomes even more obvious, when the application servers are upgraded to incorporate bug and security fixes. Given that the upgraded installation starts with a fresh new up-to-date JBoss/Wildfly installation package, the manual editing must be conducted again [2].
| Because the version of the JBoss subsystems and as consequence the structure of the JBoss configuration file is different from one version to another, it’s advised against taking over the configuration file from the initial installation - doing so might work, but is never guaranteed. |
The JBoss CLI is included in the JBoss/Wildfly distribution and can be found in
$JBOSS_HOME/bin
of the installation folder.
| For the following demonstration examples, the Wildfly/JBoss server must run. |
The CLI can be used interactively. For that purpose the JBoss command line can be started:
$ cd $JBOSS_HOME
$ ./bin/jboss-cli.sh --connect
[standalone@localhost:9990 /] ls deployment
rest-api.war
[standalone@localhost:9990 /] exit
$
The --connect
option causes that the CLI to connect to the already running
application server. The JBoss CLI then enters a REPL (read-evaluate-print-loop)
and outputs a prompt showing the connected server. The ls deployment
is an
sample CLI command which lists the applications deployed to the server. The
exit
command leaves the JBoss CLI tool.
Commands don’t have to be typed in manually. It’s also possible to directly provide commands when calling the CLI:
$ ./bin/jboss-cli.sh --connect --command="ls deployment" rest-api.war $
As soon as the command is executed the JBoss CLI ends.
Alternatively to providing CLI commands on the command line, the commands can also be provided in a file. In this case it’s easy to execute a sequence of commands, which are listed in the file, e.g.:
$ ./bin/jboss-cli.sh -c --file=./commands.cli
If all CLI commands to provision a server for a specific application are provided in a file and applied by a script, we can call it Infrastructure-as-Code (IaC). This way the provisioning of JBoss/Wildfly application servers can be fully automated.
More on the usage of the JBoss/Wildfly CLI can be find in official Wildfly documentation.
Sometimes it can be hard, in particular if you start with the CLI, to find the proper commands to configure the application server as desired. Sometimes articles on the Web or Cookbooks like the JBoss CLI Recipes may help. But often the proper commands are not obvious and applying the "trial and error" method may become tedious. In such situations the JBoss CLI GUI can be a great help.
Please note, that the GUI mode of JBoss CLI also requires that the application
server is running. It can be started by providing the --gui
parameter:
$ $JBOSS_HOME/bin/jboss-cli.sh --gui
The GUI looks (on Linux) like:
The shown example is about disabling the scanning of deployment directory, which
is BTW recommended for production environments. The command in the cmd>
field
can be executed directly by hitting the Submit
button or copied over to a
command file for later execution.
After execution of the sample command:
[standalone@localhost:9990 /] /subsystem=deployment-scanner/scanner=default/:write-attribute(name=scan-enabled,value=false)
{"outcome" => "success"}
[standalone@localhost:9990 /]
…the application server configuration in standalone.xml
contains:
...
<subsystem xmlns="urn:jboss:domain:deployment-scanner:2.0">
<deployment-scanner path="deployments"
relative-to="jboss.server.base.dir"
scan-enabled="false"
scan-interval="5000"
runtime-failure-causes-rollback="${jboss.deployment.scanner.rollback.on.failure:false}"/>
</subsystem>
...
The standalone.xml
comes with XML attribute scan-enabled=true
by default.
The CLI tool provides a command named embed-server
. This command starts an
embedded server running together with the CLI. This server is started in
admin-only mode, i.e. no actual applications are started and no network
ports are occupied. By default the embedded server uses the standalone.xml
configuration, which can be changed by --server-config
or --empty-config
option.
| Due to the fact that no network ports are occupied by the embedded server, many parallel instances of embedded servers can run on the system, which means that many different application servers can be provisioned on the same server at the same time. |
Let’s start with an example:
$ $JBOSS_HOME/bin/jboss-cli.sh
You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands.
[disconnected /] embed-server --std-out=echo
11:24:05,367 INFO [org.jboss.modules] (CLI command executor) JBoss Modules version 2.0.0.Final
11:24:05,387 INFO [org.jboss.as] (MSC service thread 3-4) WFLYSRV0049: WildFly Full 26.0.1.Final (WildFly Core 18.0.4.Final) starting
11:24:05,852 WARN [org.wildfly.extension.elytron] (MSC service thread 3-5) WFLYELY00023: KeyStore file 'C:\programme\wildfly-26.0.1.Final\standalone\configuration\application.keystore' does not exist. Used blank.
11:24:05,858 INFO [org.jboss.as.patching] (MSC service thread 3-2) WFLYPAT0050: WildFly Full cumulative patch ID is: base, one-off patches include: none
11:24:05,912 WARN [org.wildfly.extension.elytron] (MSC service thread 3-7) WFLYELY01084: KeyStore C:\programme\wildfly-26.0.1.Final\standalone\configuration\application.keystore not found, it will be auto generated on first use with a self-signed certificate for host localhost
11:24:05,995 INFO [org.jboss.as.server] (Controller Boot Thread) WFLYSRV0212: Resuming server
11:24:06,034 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0025: WildFly Full 26.0.1.Final (WildFly Core 18.0.4.Final) started in 663ms - Started 50
of 73 services (24 services are lazy, passive or on-demand)
The echo
configuration of --std-out
option causes the output of the embedded
server to standard out, which is reasonable in an interactive session. Other
possible configuration value and default is discard
which wipes out the output
of the embedded server. The CLI is automatically connected with the embedded
server, so that we can interact with the server immediately:
[standalone@embedded /] /subsystem=deployment-scanner/scanner=default/:write-attribute(name=scan-enabled,value=false)
{"outcome" => "success"}
[standalone@embedded /]
[standalone@embedded /] stop-embedded-server
17:13:34,369 INFO [org.jboss.as] (MSC service thread 1-4) WFLYSRV0050: WildFly Full 26.1.0.Final (WildFly Core 18.1.0.Final) stopped in 44ms
[disconnected /] exit
$
The provided sample command turns off scanning of the deployment folder. Then
the command stop-embedded-server
and exit
stops the embedded application
server and exits the CLI.
Embedding the server inside the CLI allows the configuration of the application server installation without starting the server.
The embedded server can be useful for configuration from a prepared file of
CLI commands as well. If we collect the CLI commands to configure JBoss/Wildfly
server configuration for a specific application in a file commands.cli
,
scripting the configuration could looks as follows:
$ cat commands.cli
embed-server
/subsystem=deployment-scanner/scanner=default/:write-attribute(name=scan-enabled,value=false)
stop-embedded-server
$ $JBOSS_HOME/bin/jboss-cli.sh --file=commands.cli
{"outcome" => "success"}
$
The configuration of JBoss/Wildfly with the embedded server in admin-only mode is also used to set up applications packaged as Bootable JAR. See Blog Post "Wildfly Bootable JAR" if you’re interested in a detailed introduction into the Bootable JAR packaging of JBoss/Wildfly.
Nowadays, the JBoss CLI is the standard way to configure JBoss/Wildfly application servers. Compared to manual editing configuration files the advantages are compelling:
Keeping the logs of scripted server configuration make the provisioning process Traceable
The scripted configuration also makes the provisioning process Repeatable, e.g. for different environments or when a new release of the application sever comes up
Therefore manual editing should be the exception and the JBoss CLI always preferred.
In the next part of this mini-series, we have a closer look at some configuration options, that are lesser known but may be handy in non-standard use cases.
$JBOSS_HOME/domain/configuration
.


I had done K few times before, my favorite drugs are psychedelic tryptamines (DPT, 4-Aco-MIPT, LSD, ...). First I sniffed 10mg line to test possible allergic reaction. After one hour of very mild, but pleasant feelings I decided to go with 40mg. The onset was much faster this time and after 20 minutes I was going.
During peak, I was not able to think clearly, an effect similar to a lot of alcohol or Kratom. Body felt light, but not comfortable. Some people in other room were smoking hash and I was disgusted by the smell (at other time, I would have joined them).
Thoughts were disintegrated, I lost sense of space and laid down on the floor, waiting for it to happen. I listened to music (I tried to play, which was very difficult), but I did not find it enjoyable or interesting at all.
To me, it was much different than Ketamine, sort of pushing all the buttons, having something from opiates, from ket and from alcohol, which is something I do not prefer. I like clear mind that allows me to explore, not a state where I can hardly enjoy hallucinations and take something from it.
For me, it was just wasted time. Not enjoyable, though not 'bad' per-se. I did not feel depressed, sad or very nauseated. Just in a place not rewarding in any way.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


System Architect Definitions, Encyclopedia:"D:\DATA\SYSARCH\HCM\GEN_DATA\SUBJECT\V01\CURRENT\"
latest performance end (Association)
- From Class:
Timepoint
- To Class:
"Activity Under Consideration"
latest performance end (Association)
- From Class:
Timepoint
- To Class:
"Performer Selected Activity"
latest performance end (Association)
- From Class:
Timepoint
- To Class:
"Performer Accepted Activity"


Quickly understand ACTS scripts
Do you have to frequently compile test cases? Are you frustrated by the following problems?
- You have to repeat assertEquals, which is definitely not creative.
- Missing an assert may lead to false success, while mistaking one may ruin your mood.
- If the scenario is complex, the test code may be longer than the service code, which is painful.
- You have to migrate utility classes every time you start writing test cases for a new application.
A TestNG test case is shown on the left side, and an ACTS test case on the right. Repeated coding is gone, and the code size is significantly reduced. Unlike ordinary test scripts, ACTS scripts inherit from the ActsTestBase class, which is encapsulated with data loading methods, driving methods, execution engines, and validation rules. Users do not have to clean or prepare data, run test cases, or validate results. ACTS implements zero coding for simple services, which greatly reduces the coding and maintenance costs.
Generate test scripts
Prerequisites: Be sure to use Maven to compile your project and generate the object model. Otherwise, ACTS IDE may encounter unexpected errors, such as edit failures and incorrect data.
Right click a the method defined in the interface and select ACTS Function > Generate Test Case.
Run test script
Method: Right click the tested method in ACTS script, and select TestNG to run the test script as shown in the following figure.
Specify a test script to run
Set
test_only＝^T
insrc/test/resource/config/acts-config.properties
to run only the test case whose name starts withT
. You can also replace^T
with other regular expressions.In this case, you can modify the name of the test case that you want to run by adding
T
in front of its name. ACTS only runs a test case whose name starts withT
.
Split test cases of the test script
ACTS stores all test case data of a test script in the same YAML file by default. You can determine whether to store test case data by test script or by test case by configuring the option spilt_yaml_by_case
.
It is set to false by default, which means all test case data of the same test script is stored in one YAML file.
You can set spilt_yaml_by_case=true
in acts-config.properties
to store each test case of a new test script in a separate YAML file that is named after the case ID. This reduces the chances of file conflicts in the case where multiple developers work on the same interface.
In addition, ACTS provides a utility class that allows you split a legacy YAML file of a specified test script under a specified path by test case. See the following.
BaseDataUtil.saveYamlDataToCaseByCase
- Note: Before the split, we recommend that you rename the original YAML file for backup, and then use the test case editor to check whether the content of the split files is correct. The original YAML file must be deleted if the split files are correct, because they cannot coexist.
Coding for data preparation
ACTS provides context APIs in the ActsRuntimeContext class for data preparation as follows:
- Quickly get and set custom parameters:
Get all custom parameters: getParamMap getParamMap()
Get custom parameters by key: Object getParamByName(String paraName)
Add custom parameters: void addOneParam(String paraName, Object paraObj)
Replace custom parameters: void setParamMap(Map<String, Object> paramMap)
Get custom parameters by using a generic method: T getParamByNameWithGeneric(String paraName)
- Quickly get and set test case request parameters
Get all request parameters: List getInputParams()
Get request parameters by position: Object getInputParamByPos(int i)
Add request parameters for the test case: void addInputParam(Object obj)
- Quickly get and set response expectations
Get response expectations: Object getExpectResult()
Set response expectations: Boolean setExpectResult(Object objToSet)
Use of the Mock function
The Mock function is currently based on the Mockito solution. For details, see the Mockito documentation in English or Mockito documentation in Chinese.
Add the dependency
Add the following dependency to the test module (skip this step if you have already introduced the test starter of SOFABoot)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
By default, the Mockito version that Spring test depends on is 1.x. If you want to upgrade the version, exclude it first before you import the new version.
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>2.18.3</version>
</dependency>
Mockito is used for stubbing during testing. You can use it to specify the value to be returned by a specific method of a class under a certain condition. The Mockito library enables object mocking, verification and stubbing. The sample code is as follows:
@SpringBootTest(classes = SOFABootApplication.class)
@TestExecutionListeners(listeners = MockitoTestExecutionListener.class)
public class RegisterUserActsTest extends ActsTestBase {
@TestBean
@Autowired
// This is the test class
public UserService userService;
@MockBean
// This is the bean to be mocked
public AccountManageFacadeClient accountManageFacadeClient;
@Test(dataProvider = "ActsDataProvider")
public void registerUser
(String caseId, String desc, PrepareData prepareData) {
runTest(caseId, prepareData);
}
@Override
public void beforeActsTest(ActsRuntimeContext actsRuntimeContext) {
super.beforeActsTest(actsRuntimeContext);
AccountManageResult accountManageResult = new AccountManageResult();
accountManageResult.setAccountNo("testAccount");
accountManageResult.setOperateDt(new Date());
accountManageResult.setSuccess(true);
Mockito.when(accountManageFacadeClient.openAccount(Mockito.any(NormalOpenAccountRequest.class))).thenReturn(accountManageResult);
}
public void setUserService(UserService userService) {
this.userService = userService;
}
}


{% extends 'base.html' %} {% load input_field %} {% load format_utils %} {% load step_order %} {% block title %}{{ block.super }}: Reason For Divorce{% endblock %} {% block progress %}{% include "partials/progress.html" %}{% endblock %} {% block content %}
For this question, we need to confirm that there is no chance you and your spouse will be getting back together. By selecting "I agree" this shows the court that you and your spouse have thoroughly thought out your request for divorce.
{% if no_reconciliation_possible_error %}In order to process your application, you must agree to this condition. If you can not agree, please consult a lawyer.
We are legally required to ask whether or not you and {% spouse_name %} have agreed to deceive the court. This is an arrangement to make up or to hide evidence or to deceive the court to obtain a divorce. An example is when a couple agrees to lie about the date of separation to speed up the divorce process. {% if no_collusion_error %}{% include 'partials/required.html' with inline=True %}{% endif %}
{% if no_collusion_error %}In order to process your application, you must agree to this condition. If you can not agree, please consult a lawyer.


An application can receive the following reply message structures, defined in SMCOMM.H, from the speech engine.
Reply message structures received by the application that are
not in response to an API call request are termed unsolicited.
| Reply Message Structure | Solicited | Unsolicited | Explanation |
|---|---|---|---|
| SM_ADD_PRONUNCIATION_REPLY | X |
| Response to an asynchronous SmAddPronunciation call. Data can be extracted with SmGetSpelling or SmGetSpellings. |
| SM_ADD_TO_VOCAB_REPLY | X |
| Response to an asynchronous SmAddToVocab call. Data can be extracted with SmGetVocabName or SmGetVocWords. |
| SM_AUDIO_LEVEL |
| X | Controlled by SmSet SM_NOTIFY_AUDIO_LEVEL, this message provides the audio level data. Data can be extracted with SmGetAudioLevel. |
| SM_CANCEL_PLAYBACK_REPLY | X |
| Response to an asynchronous SmCancelPlayback call. |
| SM_COMMAND_WORD |
| X | Controlled by SmSet SM_NOTIFY_COMMAND_WORD, this message provides the name of the application that currently has focus as well as the last recognized input word. The SmGetFirmWords function extracts the SM_WORD and the SmGetApplication function extracts the application name. |
| SM_CONNECT_REPLY | X |
| Response to an asynchronous SmConnect call. Data can be extracted with SmGetEnrollId, SmGetEnrollIds, SmGetLanguages, SmGetMsgType, SmGetService, SmGetSessionId, SmGetTask, SmGetTasks, SmGetUserId, or SmGetUserIds. |
| SM_CORRECT_TEXT_CANCEL_REPLY | X |
| Response to an asynchronous SmCorrectTextCancel call. |
| SM_CORRECT_TEXT_REPLY | X |
| Response to an asynchronous SmCorrectText call. |
| SM_DEFINE_GRAMMAR_REPLY | X |
| Response to an asynchronous SmDefineGrammar call. |
| SM_DEFINE_VOCAB_REPLY | X |
| Response to an asynchronous SmDefineVocab call. Data can be extracted with SmGetVocabName or SmGetVocWords. |
| SM_DETACH_SESSIONS_REPLY | X |
| Response to an asynchronous SmDetachSessions call. |
| SM_DISABLE_VOCAB_REPLY | X |
| Response to an asynchronous SmDisableVocab call. Data can be extracted with SmGetVocabName. |
| SM_DISCARD_DATA_REPLY | X |
| Response to an asynchronous SmDiscardData call. |
| SM_DISCONNECT_REPLY | X |
| Response to an asynchronous SmDisconnect call. Data can be extracted with SmGetMsgType, or SmGetService. |
| SM_ENABLE_VOCAB_REPLY | X |
| Response to an asynchronous SmEnableVocab call. Data can be extracted with SmGetVocabName. |
| SM_ENGINE_STATE |
| X | Controlled by SmSet SM_NOTIFY_ENGINE_STATE, this message indicates current engine status and synchronizes the display and the engine state. The SmGetEngineState function extracts the data. |
| SM_EVENT_NOTIFY_REPLY | X |
| Response to an asynchronous SmEventNotify call. Data can be extracted with SmGetEventId. |
| SM_EVENT_SYNCH |
| X | Notification of an occurrence of event specified in previous SmEventNotify. Data can be extracted with SmGetEventId or SmGetEventOptions. |
| SM_FOCUS_GRANTED |
| X | Asynchronous notification of focus granted. Data can be extracted with SmGetMicState. |
| SM_FOCUS_LOST |
| X | Asynchronous notification of focus lost. |
| SM_FOCUS_STATE |
| X | Controlled by SmSet SM_NOTIFY_FOCUS_STATE, this message shows a change in focus status and includes the name of the associated application. The SmGetFocusState function extracts the focus state and the SmGetApplication function extracts the application name. |
| SM_HALT_RECOGNIZER_REPLY | X |
| Response to an asynchronous SmHaltRecognizer call. Data can be extracted with SmGetNumberWordMsgs. |
| SM_MIC_OFF_REPLY | X |
| Response to an asynchronous SmMicOff call. |
| SM_MIC_ON_REPLY | X |
| Response to an asynchronous SmMicOn call. Data can be extracted with SmGetUtteranceNumber. |
| SM_MIC_OFF_REQUESTED |
| X | Request to turn off the microphone. |
| SM_MIC_ON_REQUESTED |
| X | Request to turn on the microphone. |
| SM_MIC_STATE |
| X | Controlled by SmSet SM_NOTIFY_MIC_STATE, this message indicated whether the microphone is on or off. Data can be extracted with SmGetMicState. |
| SM_NEW_CONTEXT_REPLY | X |
| Response to an asynchronous SmNewContext call. |
| SM_PLAY_MESSAGE_REPLY | X |
| Response to an asynchronous SmPlayMessage call. Assuming a successful call, SM_PLAY_MESSAGE_STATUS reply message structures will follow. |
| SM_PLAY_MESSAGE_STATUS |
| X | Notification of the start and completion of the audio playback initiated by an SmPlayMessage call. Data can be extracted with SmGetMsgName or SmGetStatus. |
| SM_PLAY_UTTERANCE_REPLY | X |
| Response to an asynchronous SmPlayUtterance call. Assuming a successful call, SM_PLAY_UTTERANCE_STATUS reply message structures will follow. |
| SM_PLAY_UTTERANCE_STATUS |
| X | Notification of the start and completion of the audio playback initiated by an SmPlayUtterance call. Data can be extracted with SmGetStatus or SmGetUtteranceNumber. |
| SM_PLAY_WORDS_REPLY | X |
| Response to an asynchronous SmPlayWords call. Assuming a successful call, SM_PLAY_WORDS_STATUS reply message structures will follow. |
| SM_PLAY_WORDS_STATUS |
| X | Notification of the start and completion of the audio playback initiated by an SmPlayWords call. Audio playback may be for one word or multiple words. Data can be extracted with SmGetStatus or SmGetTags. |
| SM_QUERY_ADDED_WORDS_REPLY | X |
| Response to an asynchronous SmQueryAddedWords call. Data can be extracted with SmGetWords. |
| SM_QUERY_ALTERNATES_REPLY | X |
| Response to an asynchronous SmQueryAlternates call. Data can be extracted with SmGetAlternates or SmGetTags. |
| SM_QUERY_DEFAULT_REPLY | X |
| Response to an asynchronous SmQueryDefault call. Data can be extracted with SmGetEnrollId, SmGetEnrollIds, SmGetScripts, SmGetTask, SmGetTasks, SmGetUserId or SmGetUserIds. |
| SM_QUERY_ENABLED_VOCABS_REPLY | X |
| Response to an asynchronous SmQueryEnabledVocabs call. Data can be extracted with SmGetVocabList. |
| SM_QUERY_ENROLLIDS_REPLY | X |
| Response to an asynchronous SmQueryEnrollIds call. Data can be extracted with SmGetAlphabets, SmGetDescriptions, SmGetEnrollIds, SmGetLanguages, SmGetPercentages, SmGetScripts, or SmGetStates. |
| SM_QUERY_LANGUAGES_REPLY | X |
| Response to an asynchronous SmQueryLanguages call. Data can be extracted with SmGetLanguages. |
| SM_QUERY_PRONUNCIATION_REPLY | X |
| Response to an asynchronous SmQueryPronunciation call. Data can be extracted with SmGetSpelling or SmGetSpellings. |
| SM_QUERY_PRONUNCIATIONS_REPLY | X |
| Response to an asynchronous SmQueryPronunciations call. Data can be extracted with SmGetPronunciations or SmGetSpellings. |
| SM_QUERY_REPLY | X |
| Response to an asynchronous SmQuery call. Data can be extracted with SmGetItemValue. |
| SM_QUERY_SESSIONS_REPLY | X |
| Response to an asynchronous SmQuerySessions call. Data can be extracted with SmGetApplications, SmGetEnrollIds, or SmGetUserIds. |
| SM_QUERY_SPEECH_DATA_REPLY | X |
| Response to an asynchronous SmQuerySpeechData call. |
| SM_QUERY_TASKS_REPLY | X |
| Response to an asynchronous SmQueryTasks call. Data can be extracted with SmGetAlphabets, SmGetDescriptions, SmGetLanguages or SmGetTasks. |
| SM_QUERY_USER_INFO_REPLY | X |
| Response to an asynchronous SmQueryUserInfo call. Data can be extracted with SmGetEnrollId, SmGetEnrollIds, SmGetNameValue, SmGetUserId, or SmGetUserIds. |
| SM_QUERY_USERS_REPLY | X |
| Response to an asynchronous SmQueryUsers call. Data can be extracted with SmGetDescriptions, SmGetUserIds, or SmGetUsers. |
| SM_QUERY_VOCABS_REPLY | X |
| Response to an asynchronous SmQueryVocabs call. Data can be extracted with SmGetVocabList. |
| SM_QUERY_WORD_REPLY | X |
| Response to an asynchronous SmQueryWord call. Data can be extracted with SmGetVocabList or SmGetWords. |
| SM_RECOGNIZED_PHRASE |
| X | Includes firm words sent during grammar vocabulary recognition. Data can be extracted with SmGetFirmWords, SmGetVocabName, SmGetPhraseState. |
| SM_RECOGNIZED_TEXT |
| X | Includes infirm or firm words or both sent during dictation vocabulary recognition. Data can be extracted with SmGetFirmWords, SmGetInfirmWords, or SmGetTimes. |
| SM_RECOGNIZED_WORD |
| X | Includes firm words sent during command vocabulary recognition. Data can be extracted with SmGetAlternates, SmGetFirmWords, or SmGetTimes. |
| SM_RECOGNIZE_NEXT_WORD_REPLY | X |
| Response to an asynchronous SmRecognizeNextWord call. |
| SM_RELEASE_FOCUS | X |
| Response to an asynchronous SmReleaseFocus call. |
| SM_REMOVE_FROM_VOCAB_REPLY | X |
| Response to an asynchronous SmRemoveFromVocab call. Data can be extracted with SmGetVocabName. |
| SM_REMOVE_PRONUNCIATION_REPLY | X |
| Response to an asynchronous SmRemovePronunciation call. Data can be extracted with SmGetSpelling or SmGetSpellings. |
| SM_REPORT_ENGINE_ERROR |
| X | Notification that the speech engine has encountered an error. Data can be extracted with SmGetMicState or SmGetSeverity. |
| SM_REQUEST_DETACH |
| X | Request to detach sessions. |
| SM_REQUEST_FOCUS | X |
| Response to an asynchronous SmRequestFocus call. |
| SM_REQUEST_MIC_OFF_REPLY | X |
| Response to an asynchronous SmRequestMicOff call. |
| SM_REQUEST_MIC_ON_REPLY | X |
| Response to an asynchronous SmRequestMicOn call. |
| SM_RESTORE_SPEECH_DATA_REPLY | X |
| Response to an asynchronous SmRestoreSpeechData call. |
| SM_SAVE_SPEECH_DATA_REPLY | X |
| Response to an asynchronous SmSaveSpeechData call. |
| SM_SET_DEFAULT_REPLY | X |
| Response to an asynchronous SmSetDefault call. |
| SM_SET_REPLY | X |
| Response to an asynchronous SmSet call. Data can be extracted with SmGetItemValue. |
| SM_SET_USER_INFO_REPLY | X |
| Response to an asynchronous SmSetUserInfo call. Data can be extracted with SmGetEnrollId, SmGetEnrollIds, SmGetUserId or SmGetUserIds. |
| SM_UNDEFINE_VOCAB_REPLY | X |
| Response to an asynchronous SmUndefineVocab call. Data can be extracted with SmGetVocabName. |
| SM_UTTERANCE_COMPLETED |
| X | Notification that speech-to-text decoding of the audio input stream has been completed after the microphone was turned off. Data can be extracted with SmGetUtteranceNumber. |
| SM_WORD_CORRECTION_REPLY | X |
| Response to an asynchronous SmWordCorrection call. Data can be extracted with SmGetPronunciations, SmGetSpellings, SmGetStatus or SmGetTags. |
The following callbacks are available for processing messages
from the router and the speech engine.
| Callback | Solicited | Unsolicited | Message Type |
|---|---|---|---|
| SmNaddPronunciationCallback | X |
| SM_ADD_PRONUNCIATION_REPLY |
| SmNaddToVocabCallback | X |
| SM_ADD_TO_VOCAB_REPLY |
| SmNaudioLevelCallback |
| X | SM_AUDIO_LEVEL |
| SmNcancelPlaybackCallback | X |
| SM_CANCEL_PLAYBACK_REPLY |
| SmNcommandWordCallback |
| X | SM_COMMAND_WORD |
| SmNconnectCallback | X |
| SM_CONNECT_REPLY |
| SmNcorrectTextCallback | X |
| SM_CORRECT_TEXT_REPLY |
| SmNcorrectTextCancelCallback | X |
| SM_CORRECT_TEXT_CANCEL_REPLY |
| SmNdefineGrammarCallback | X |
| SM_DEFINE_GRAMMAR_REPLY |
| SmNdefineVocabCallback | X |
| SM_DEFINE_VOCAB_REPLY |
| SmNdetachRequestedCallback |
| X | SM_REQUEST_DETACH |
| SmNdetachSessionsCallback | X |
| SM_DETACH_SESSIONS_REPLY |
| SmNdisableVocabCallback | X |
| SM_DISABLE_VOCAB_REPLY |
| SmNdiscardDataCallback | X |
| SM_DISCARD_DATA_REPLY |
| SmNdisconnectCallback | X |
| SM_DISCONNECT_REPLY |
| SmNenableVocabCallback | X |
| SM_ENABLE_VOCAB_REPLY |
| SmNengineStateCallback |
| X | SM_ENGINE_STATE |
| SmNeventNotifyCallback | X |
| SM_EVENT_NOTIFY_REPLY |
| SmNeventSynchCallback |
| X | SM_EVENT_SYNCH |
| SmNfocusGrantedCallback |
| X | SM_FOCUS_GRANTED |
| SmNfocusLostCallback |
| X | SM_FOCUS_LOST |
| SmNfocusStateCallback |
| X | SM_FOCUS_STATE |
| SmNhaltRecognizerCallback | X |
| SM_HALT_RECOGNIZER_REPLY |
| SmNmicOffCallback | X |
| SM_MIC_OFF_REQUESTED |
| SmNmicOnCallback | X |
| SM_MIC_ON_REQUESTED |
| SmNmicOffRequestedCallback |
| X | SM_REQUEST_MIC_OFF_REPLY |
| SmNmicOnRequestedCallback |
| X | SM_REQUEST_MIC_ON_REPLY |
| SmNmicStateCallback |
| X | SM_MIC_STATE |
| SmNnewContextCallback | X |
| SM_NEW_CONTEXT_REPLY |
| SmNplayMessageCallback | X |
| SM_PLAY_MESSAGE_REPLY |
| SmNplayMessageStatusCallback |
| X | SM_PLAY_MESSAGE_STATUS |
| SmNplayUtteranceCallback | X |
| SM_PLAY_UTTERANCE_REPLY |
| SmNplayUtteranceStatusCallback |
| X | SM_PLAY_UTTERANCE_STATUS |
| SmNplayWordsCallback | X |
| SM_PLAY_WORDS_REPLY |
| SmNplayWordsStatusCallback |
| X | SM_PLAY_WORDS_STATUS |
| SmNqueryAddedWordsCallback | X |
| SM_QUERY_ADDED_WORDS_REPLY |
| SmNqueryAlternatesCallback | X |
| SM_QUERY_ALTERNATES_REPLY |
| SmNqueryCallback | X |
| SM_QUERY_REPLY |
| SmNqueryDefaultCallback | X |
| SM_QUERY_DEFAULT_REPLY |
| SmNqueryEnabledVocabsCallback | X |
| SM_QUERY_ENABLED_VOCABS_REPLY |
| SmNqueryEnrollIdsCallback | X |
| SM_QUERY_ENROLLIDS_REPLY |
| SmNqueryLanguagesCallback | X |
| SM_QUERY_LANGUAGES_REPLY |
| SmNqueryPronunciationCallback | X |
| SM_QUERY_PRONUNCIATION_REPLY |
| SmNqueryPronunciationsCallback | X |
| SM_QUERY_PRONUNCIATIONS_REPLY |
| SmNquerySessionsCallback | X |
| SM_QUERY_SESSIONS_REPLY |
| SmNquerySpeechDataCallback | X |
| SM_QUERY_SPEECH_DATA_REPLY |
| SmNqueryTasksCallback | X |
| SM_QUERY_TASKS_REPLY |
| SmNqueryUsersCallback | X |
| SM_QUERY_USERS_REPLY |
| SmNqueryUserInfoCallback | X |
| SM_QUERY_USER_INFO_REPLY |
| SmNqueryVocabsCallback | X |
| SM_QUERY_VOCABS_REPLY |
| SmNqueryWordCallback | X |
| SM_QUERY_WORD_REPLY |
| SmNrecognizeNextWordCallback | X |
| SM_RECOGNIZE_NEXT_WORD_REPLY |
| SmNrecognizedPhraseCallback |
| X | SM_RECOGNIZED_PHRASE |
| SmNrecognizedTextCallback |
| X | SM_RECOGNIZE_TEXT |
| SmNrecognizedWordCallback |
| X | SM_RECOGNIZE_WORD |
| SmNreleaseFocusCallback | X |
| SM_RELEASE_FOCUS |
| SmNremoveFromVocabCallback | X |
| SM_REMOVE_FROM_VOCAB_REPLY |
| SmNremovePronunciationCallback | X |
| SM_REMOVE_PRONUNCIATION_REPLY |
| SmNreportEngineErrorCallback |
| X | SM_REPORT_ENGINE_ERROR |
| SmNrequestFocusCallback | X |
| SM_REQUEST_FOCUS |
| SmNrequestMicOffCallback | X |
| SM_REQUEST_MIC_OFF_REPLY |
| SmNrequestMicOnCallback | X |
| SM_REQUEST_MIC_ON_REPLY |
| SmNrestoreSpeechDataCallback | X |
| SM_RESTORE_SPEECH_DATA_REPLY |
| SmNsaveSpeechDataCallback | X |
| SM_SAVE_SPEECH_DATA_REPLY |
| SmNsetCallback | X |
| SM_SET_REPLY |
| SmNsetDefaultCallback | X |
| SM_SET_DEFAULT_REPLY |
| SmNsetUserInfoCallback | X |
| SM_SET_USER_INFO_REPLY |
| SmNundefineVocabCallback | X |
| SM_UNDEFINE_VOCAB_REPLY |
| SmNutteranceCompletedCallback |
| X | SM_UTTERANCE_COMPLETED |
| SmNwordCorrectionCallback | X |
| SM_WORD_CORRECTION_REPLY |
The following is a list of all unsolicited callbacks available for processing messages from the speech engine. Each callback is followed by a list of the reply structure functions that can be called from within it.


What is Coronavirus?
-
Coronaviruses are a type of virus. There are many different kinds, and some cause disease. A newly identified coronavirus, SARS-CoV-2, has caused a worldwide pandemic of respiratory illness, called COVID-19.
-
COVID-19 appeared in Wuhan, a city in China, in December 2019. Early hypotheses thought it may be linked to a seafood market in Wuhan, China suggesting animal-to-person spreaad.
-
However, a growing number of patients reportedly have not had exposure to animal markets, indicating person-to-person spread is occurring.
-
The name coronavirus is derived from the Latin corona, meaning "crown" or "halo", which refers to the characteristic appearance reminiscent of a crown.
How does the new coronavirus spread?
-
As of now, researchers know that the new coronavirus is spread through droplets released into the air when an infected person coughs or sneezes.
-
The droplets generally do not travel more than a few feet, and they fall to the ground (or onto surfaces) in a few seconds — this is why social and physical distancing is effective in preventing the spread.
What are symptoms of COVID-19?
- Cough
- Fever
- Shortness of breath
- Muscle aches
- Sore throat
- Unexplained loss of taste or smell
- Diarrhea
- Headache
How do you protect yourself from this coronavirus?
-
Practice social and physical distancing: Stay at least six feet away from others in public places.
-
Health organizations recommended that people cover their mouth and nose with a tissue when coughing or sneezing (which should then be disposed of immediately), or with a sleeve if a tissue is not available.
-
The CDC recommends that people wash hands often with soap and water for at least 20 seconds, using an alcohol-based hand sanitiser with at least 60% alcohol by volume (or 120 proof) when soap and water are not readily available.
-
The WHO also advise people to avoid touching the eyes, nose, or mouth with unwashed hands.
What to do if you feel sick?
-
Stay home if you feel sick unless you are experiencing a medical emergency such as severe shortness of breath or a very high fever.
-
Call your doctor or urgent care facility and explain your symptoms over the phone.
-
If you leave your home to get medical care, wear a mask if you have respiratory symptoms.
How is COVID-19 treated?
-
As of now, there is not a specific treatment for the virus.
-
People who become sick from COVID-19 should be treated with supportive measures: those that relieve symptoms. For severe cases, there may be additional options for treatment, including research drugs and therapeutics.
-
Bruce Aylward, an assistant director-general of the WHO, has stated "there is only one drug right now that we think may have real efficacy and that's remdesivir."


{# templates/analytics/sitewide_election_metrics_table.html #}
| Election Name (ID) | visitors_ total | authenticated_ visitors_ total | voter guides | organizations followed | organizations with positions | organization public positions | individuals with positions | friends-only positions | ||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ one_row.election_name }} (one_row.google_civic_election_id) | {{ one_row.visitors_total }} | {{ one_row.authenticated_visitors_total }} | viewed: {{ one_row.voter_guides_viewed }} first-view: {{ one_row.voter_guide_entrants }} |
{{ one_row.organizations_followed }} auto: {{ one_row.organizations_autofollowed }} |
{{ one_row.organizations_with_positions }} | {{ one_row.organization_public_positions }} | total: {{ one_row.individuals_with_positions }} public: {{ one_row.individuals_with_public_positions }} friends-only: {{ one_row.individuals_with_friends_only_positions }} |
{{ one_row.friends_only_positions }} | ||||
| No election-level metrics found for the entire site. |


Download links and metadata for all documents matching your search criteria to go through them in detail.
Excel file ({{result.total | number}} results)Get data to further analyze the connections between watchlist entities. Links connect entities occuring in the same document.
This data format is suited for import into Gephi, an open source network analysis tool.
Download Graph Exchange XML (GEXF)


Clutter is a GObject based library for creating fast, visually rich, graphical user interfaces. Clutter works by manipulating a scene-graph of 2D surfaces, or 'actors', inside a 3D space. ClutterActor is the base class for such surfaces. All ClutterActors can be positioned, scaled and rotated in 3D space. In addition, other properties can be set, such as 2D clipping, children and opacity. Tranforms applied to a parent actor also apply to any children. Actors are also able to receive events. Subclasses of ClutterActor include ClutterStage, ClutterTexture, ClutterLabel, ClutterRectangle, ClutterEntry and ClutterGroup. ClutterActors are added to a parent, transformed and then made visible. ClutterStage is the top level ClutterActor - it's the representation of a window, or framebuffer. It is created automatically when Clutter is initialised. ClutterStage is a ClutterGroup, a class implementing the ClutterCointainer interface. ClutterTimelines provide the basis for Clutter's animation utilities. Multiple timelines can be synchronised using ClutterScore, and ClutterBehaviour and ClutterEffect allow for the creation of animation effects such as transitions. Clutter further contains a number of utilities, including; ClutterScript - for loading 'UI definition' files formatted in JSON, ClutterShader - a class for applying GPU shaders to actors, ClutterModel - a utility class for MVC list type implementations, and fixed point math utilities. For detailed docs, see clutter-project. | ||
|
AXIS
Contains all CLUTTER_AXIS_* constants.
DEVICE_TYPE
Contains all CLUTTER_TYPE_* constants.
EVENT
Contains all Clutter event type constants.
EVENT_FLAG
Contains all CLUTTER_EVENT_FLAG_* constants.
GRAVITY
Contains all CLUTTER_GRAVITY_* constants.
MASK
Contains all CLUTTER_*_MASK constants.
SCROLL
Contains all CLUTTER_SCROLL_* constants.
SHADER_ERROR
Contains all CLUTTER_SHADER_ERROR_* constants.
STAGE_STATE
Contains all CLUTTER_STAGE_STATE_* constants.
UNIT
Contains all CLUTTER_UNIT_* constants.
clearGlyphCache
Returns
getActorByGid(gid)
true if CLUTTER_FONT_HINTING is set.
Calls clutter_main() which starts GMainLoop.
mainLevel
Returns true if motion events are enabled.
quitMain
If
setSharedInt(firstInt, ...)
useFontHinting is false , CLUTTER_FONT_MIPMAPPING flag will be used.
|


Your order placed
Thanks for your purchase
Order ID: ${orderData.id}
Delivery Address: ${object['address']}
Total Amount: $ ${orderData.amount.toFixed(2)}


Wallet id
Alias
hic et nunc profile
Connection wallet
Direct link to black list?
HEC activity in the last days?
Has minted OBJKTs in the last days?