IntrospectionResponse extends ApiResponse
Response from Authlete's /api/auth/introspection API.
Authlete's /api/auth/introspection
API returns JSON which can be mapped
to this class. The resource server should retrieve the value of the
action
response parameter from the response and take the following steps
according to the value.
When the value returned from getAction()
method is
IntrospectionAction::$INTERNAL_SERVER_ERROR
, it means that the request
from the resource server was wrong or that an error occurred in Authlete.
In either case, from a viewpoint of the client application, it is an error
on the server side. Therefore, the resource server should generate a
response to the client application with the HTTP status of
500 Internal Server Error
.
In this case, getResponseContent()
method returns a string which
describes the error in the format of
RFC 6750 (OAuth 2.0 Bearer Token
Usage), so if the protected resource of the resource server wants to
return an error response to the client application in the way that
complies with RFC 6750, the string returned from getResponseContent()
method can be used as the value of the WWW-Authenticate
header. The
following is an example response which complies with RFC 6750.
HTTP/1.1 500 Internal Server Error
WWW-Authenticate: (The value returned from getResponseContent())
Cache-Control: no-store
Pragma: no-cache
When the value returned from getAction()
method is
IntrospectionAction::$BAD_REQUEST
, it means that the request from the
client application does not contain an access token (= the request from
the resource server to Authlete does not contain the token
request
parameter).
In this case, getResponseContent()
method returns a string which
describes the error in the format of
RFC 6750 (OAuth 2.0 Bearer Token
Usage), so if the protected resource of the resource server wants to
return an error response to the client application in the way that
complies with RFC 6750, the string returned from getResponseContent()
method can be used as the value of the WWW-Authenticate
header. The
following is an example response which complies with RFC 6750.
HTTP/1.1 400 Bad Request
WWW-Authenticate: (The value returned from getResponseContent())
Cache-Control: no-store
Pragma: no-cache
When the value returned from getAction()
method is
IntrospectionAction::$UNAUTHORIZED
, it means that the access token does
not exist or has expired. Or the client application associated with the
access token does not exist any longer.
In this case, getResponseContent()
method returns a string which
describes the error in the format of
RFC 6750 (OAuth 2.0 Bearer Token
Usage), so if the protected resource of the resource server wants to
return an error response to the client application in the way that
complies with RFC 6750, the string returned from getResponseContent()
method can be used as the value of the WWW-Authenticate
header. The
following is an example response which complies with RFC 6750.
HTTP/1.1 401 Unauthorized
WWW-Authenticate: (The value returned from getResponseContent())
Cache-Control: no-store
Pragma: no-cache
When the value returned from getAction()
method is
IntrospectionAction::$FORBIDDEN
, it means that the access token does
not cover the required scopes or that the subject associated with the
access token is different from the subject specified by the API call.
In this case, getResponseContent()
method returns a string which
describes the error in the format of
RFC 6750 (OAuth 2.0 Bearer Token
Usage), so if the protected resource of the resource server wants to
return an error response to the client application in the way that
complies with RFC 6750, the string returned from getResponseContent()
method can be used as the value of the WWW-Authenticate
header. The
following is an example response which complies with RFC 6750.
HTTP/1.1 403 Forbidden
WWW-Authenticate: (The value returned from getResponseContent())
Cache-Control: no-store
Pragma: no-cache
When the value returned from getAction()
method is
IntrospectionAction::$OK
, it means that the access token which the
client application presented is valid (= exists and has not expired).
The resource server is supposed to return the proteced resource to the
client application.
In this case, getResponseContent()
property returns
Bearer error=\"invalid_request\""
. This is the simplest string which
can be used as the value of the WWW-Authenticate
header to indicate
400 Bad Request
. The resource server may use this string to tell the
client application that the request was bad. But in such a case, if
possible, the resource server should generate a more informative error
message to help developers of client applications. The following is an
example error response which complies with RFC 6750.
HTTP/1.1 400 Bad Request
WWW-Authenticate: (The value returned from getResponseContent())
Cache-Control: no-store
Pragma: no-cache
Basically, getResponseContent()
method returns a string which describes
the error in the format of
RFC 6750 (OAuth 2.0 Bearer Token
Usage), so if the resource server has selected Bearer
as the token type,
the string returned from getResponseContent()
method can be used directly
as the value for the WWW-Authenticate
header. However, if the service has
selected another different token type, the resource server has to generate
error message for itself.
Table of Contents
- copyFromArray() : mixed
- Copy the content of the given array into this object.
- copyToArray() : mixed
- Copy the content of this object into the given array.
- fromArray() : static
- Convert an array into an instance of this class.
- fromJson() : static
- Convert a JSON string into an instance of this class.
- getAccessTokenResources() : array<string|int, string>
- Get the target resources of the access token.
- getAction() : IntrospectionAction
- Get the next action that the resource server should take.
- getCertificateThumbprint() : string
- Get the client certificate thumbprint used to validate the access token.
- getClientAttributes() : array<string|int, Pair>
- Get the attributes of the client that the access token has been issued to.
- getClientId() : int|string
- Get the client ID of the client application to which the access token has been issued.
- getClientIdAlias() : string
- Get the client ID alias when the authorization request or the token request for the access token was made.
- getConsentedClaims() : array<string|int, string>
- Get the claims that the user has consented for the client application to know.
- getExpiresAt() : int|string
- Get the time at which the access token will expire.
- getGrantId() : string
- Get the grant ID which the access token is tied to.
- getProperties() : array<string|int, Property>
- Get the properties associated with the access token.
- getResources() : array<string|int, string>
- Get the target resources. This represents the resources specified by the `resource` request parameters or by the `resource` property in the request object.
- getResponseContent() : string
- Get the response content which can be used as a part of the response to the client application.
- getResultCode() : string
- Get the code of the result of an Authlete API call.
- getResultMessage() : string
- Get the message of the result of an Authlete API call.
- getScopeDetails() : array<string|int, Scope>
- Get the details of the scopes.
- getScopes() : array<string|int, string>
- Get the scopes that are associated with the access token.
- getServiceAttributes() : array<string|int, Pair>
- Get the attributes of the service that the client application belongs to.
- getSubject() : string
- Get the subject (= unique identifier) of the end-user (= resource owner) who allowed the authorization server to issue the access token to the client application.
- isActive() : bool
- Get the flag which indicates whether the access token is active (= exists and has not expired).
- isClientIdAliasUsed() : bool
- Get the flag which indicates whether the client ID alias was used when the authorization request or the token request for the access token was made.
- isExistent() : bool
- Get the flag which indicates whether the access token exists or not.
- isForExternalAttachment() : bool
- Get the flag which indicates whether the access token is for an external attachment.
- isRefreshable() : bool
- Get the flag which indicates whether the access token can be refreshed using the associated refresh token.
- isSufficient() : bool
- Get the flag which indicates whether the access token covers the required scopes.
- isUsable() : bool
- Get the flag which indicates whether the access token is usable (= exists and has not expired).
- setAccessTokenResources() : IntrospectionResponse
- Set the target resources of the access token.
- setAction() : IntrospectionAction
- Set the next action that the resource server should take.
- setActive() : IntrospectionResponse
- Set the flag which indicates whether the access token is active (= exists and has not expired).
- setCertificateThumbprint() : IntrospectionResponse
- Set the client certificate thumbprint used to validate the access token.
- setClientAttributes() : IntrospectionResponse
- Set the attributes of the client that the access token has been issued to.
- setClientId() : IntrospectionAction
- Set the client ID of the client application to which the access token has been issued.
- setClientIdAlias() : IntrospectionResponse
- Set the client ID alias when the authorization request or the token request for the access token was made.
- setClientIdAliasUsed() : IntrospectionResponse
- Set the flag which indicates whether the client ID alias was used when the authorization request or the token request for the access token was made.
- setConsentedClaims() : IntrospectionResponse
- Set the claims that the user has consented for the client application to know.
- setExistent() : IntrospectionResponse
- Set the flag which indicates whether the access token exists or not.
- setExpiresAt() : mixed
- Set the time at which the access token will expire.
- setForExternalAttachment() : IntrospectionResponse
- Set the flag which indicates whether the access token is for an external attachment.
- setGrantId() : IntrospectionAction
- Set the grant ID which the access token is tied to.
- setProperties() : IntrospectionResponse
- Set the properties associated with the access token.
- setRefreshable() : IntrospectionResponse
- Set the flag which indicates whether the access token can be refreshed using the associated refresh token.
- setResources() : IntrospectionResponse
- Set the target resources. This represents the resources specified by the `resource` request parameters or by the `resource` property in the request object.
- setResponseContent() : IntrospectionResponse
- Set the response content which can be used as a part of the response to the client application.
- setResultCode() : ApiResponse
- Set the code of the result of an Authlete API call.
- setResultMessage() : ApiResponse
- Set the message of the result of an Authlete API call.
- setScopeDetails() : IntrospectionResponse
- Set the details of the scopes.
- setScopes() : IntrospectionResponse
- Set the scopes that are associated with the access token.
- setServiceAttributes() : IntrospectionResponse
- Set the attributes of the service that the client application belongs to.
- setSubject() : IntrospectionAction
- Set the subject (= unique identifier) of the end-user (= resource owner) who allowed the authorization server to issue the access token to the client application.
- setSufficient() : IntrospectionResponse
- Set the flag which indicates whether the access token covers the required scopes.
- setUsable() : IntrospectionResponse
- Set the flag which indicates whether the access token is usable (= exists and has not expired).
- toArray() : array<string|int, mixed>
- Convert this object into an array.
- toJson() : string
- Convert this object into a JSON string.
Methods
copyFromArray()
Copy the content of the given array into this object.
public
copyFromArray(array<string|int, mixed> &$array) : mixed
Parameters
- $array : array<string|int, mixed>
Return values
mixed —copyToArray()
Copy the content of this object into the given array.
public
copyToArray(array<string|int, mixed> &$array) : mixed
Parameters
- $array : array<string|int, mixed>
Return values
mixed —fromArray()
Convert an array into an instance of this class.
public
static fromArray([array<string|int, mixed> $array = null ]) : static
This static function returns a new instance of this class.
If $array
is null
, null
is returned.
Parameters
- $array : array<string|int, mixed> = null
-
An array
Return values
static —An instance of this class.
fromJson()
Convert a JSON string into an instance of this class.
public
static fromJson(string $json) : static
This static function returns a new instance of this class.
If $json
is null
or the type of $json
is not string
,
null
is returned.
Parameters
- $json : string
-
A JSON string.
Return values
static —An instance of this class.
getAccessTokenResources()
Get the target resources of the access token.
public
getAccessTokenResources() : array<string|int, string>
The target resources returned by this method may be the same as or
different from the ones returned by getResources()
method.
In some flows, the initial request and the subsequent token request
are sent to different endpoints. Example flows are the authorization
code flow, the refresh token flow, the CIBA ping mode, the CIBA poll
mode and the device flow. In these flows, not only the initial
request but also the subsequent token request can include the
resource
request parameters. The purpose of the resource
request
parameters in the token request is to narrow the range of the target
resources from the original set of target resources requested by the
preceding initial request. If narrowing down is performed, the target
resources returned by getResources()
method and the ones returned
by this method are different. This method returns the narrowed set
of target resources.
Tags
Return values
array<string|int, string> —The target resources of the access token.
getAction()
Get the next action that the resource server should take.
public
getAction() : IntrospectionAction
Return values
IntrospectionAction —The next action that the resource server should take.
getCertificateThumbprint()
Get the client certificate thumbprint used to validate the access token.
public
getCertificateThumbprint() : string
Tags
Return values
string —The certificate thumbprint, calculated as the SHA-256 hash of the DER-encoded certificate value.
getClientAttributes()
Get the attributes of the client that the access token has been issued to.
public
getClientAttributes() : array<string|int, Pair>
Tags
Return values
array<string|int, Pair> —The attributes of the client.
getClientId()
Get the client ID of the client application to which the access token has been issued.
public
getClientId() : int|string
Return values
int|string —The ID of the client application associated with the access token.
getClientIdAlias()
Get the client ID alias when the authorization request or the token request for the access token was made.
public
getClientIdAlias() : string
Note that this value may be different from the current client ID alias.
Tags
Return values
string —The client ID alias when the authorization request or the token request for the access token was made.
getConsentedClaims()
Get the claims that the user has consented for the client application to know.
public
getConsentedClaims() : array<string|int, string>
Some Authlete APIs accept a consentedClaims
request parameter (which
is available from Authlete 2.3). This consentedClaims
property holds
the value specified by the request parameter.
Tags
Return values
array<string|int, string> —The consented claims.
getExpiresAt()
Get the time at which the access token will expire.
public
getExpiresAt() : int|string
Return values
int|string —The time at which the access token will expire. The value is represented as milliseconds since the Unix epoch (1970-Jan-1).
getGrantId()
Get the grant ID which the access token is tied to.
public
getGrantId() : string
In Authlete, when an authorization request includes the grant_management_action
request parameter, a grant ID (which may be a newly-generated one or an existing
one specified by the grant_id
request parameter) is tied to the access token
which is created as a result of the authorization request.
Tags
Return values
string —The grant ID tied to the access token.
getProperties()
Get the properties associated with the access token.
public
getProperties() : array<string|int, Property>
Tags
Return values
array<string|int, Property> —Properties.
getResources()
Get the target resources. This represents the resources specified by the `resource` request parameters or by the `resource` property in the request object.
public
getResources() : array<string|int, string>
Tags
Return values
array<string|int, string> —The target resources.
getResponseContent()
Get the response content which can be used as a part of the response to the client application.
public
getResponseContent() : string
Return values
string —The response content.
getResultCode()
Get the code of the result of an Authlete API call.
public
getResultCode() : string
Return values
string —The result code.
getResultMessage()
Get the message of the result of an Authlete API call.
public
getResultMessage() : string
Return values
string —The result message.
getScopeDetails()
Get the details of the scopes.
public
getScopeDetails() : array<string|int, Scope>
The scopes property of this class is a list of scope names. The
property does not hold information about scope attributes. This
scopeDetails
property was newly created to convey information
about scope attributes.
Tags
Return values
array<string|int, Scope> —The details of the scopes.
getScopes()
Get the scopes that are associated with the access token.
public
getScopes() : array<string|int, string>
Return values
array<string|int, string> —The scopes associated with the access token.
getServiceAttributes()
Get the attributes of the service that the client application belongs to.
public
getServiceAttributes() : array<string|int, Pair>
Tags
Return values
array<string|int, Pair> —The attributes of the service.
getSubject()
Get the subject (= unique identifier) of the end-user (= resource owner) who allowed the authorization server to issue the access token to the client application.
public
getSubject() : string
Return values
string —The subject of the end-user associated with the access token.
isActive()
Get the flag which indicates whether the access token is active (= exists and has not expired).
public
isActive() : bool
This method is just an alias of isUsable()
method. The reason this
method was added is to mitigate confusion that those who are familiar
with RFC 7662 (OAuth 2.0 Token
Introspection) may have.
Return values
bool —true
if the access token is active (= exists and has not expired).
isClientIdAliasUsed()
Get the flag which indicates whether the client ID alias was used when the authorization request or the token request for the access token was made.
public
isClientIdAliasUsed() : bool
Tags
Return values
bool —true
if the client ID alias was used when the authorization
request or the token request for the access token was made.
isExistent()
Get the flag which indicates whether the access token exists or not.
public
isExistent() : bool
Return values
bool —true
if the access token exists.
isForExternalAttachment()
Get the flag which indicates whether the access token is for an external attachment.
public
isForExternalAttachment() : bool
OpenID Provider implementations can make Authlete generate access tokens
for external attachments and embed them in ID tokens and userinfo responses
by setting true
to the accessTokenForExternalAttachmentEmbedded
property
of the service. If the token presented at Authlete's /auth/introspection
API has been generated by the feature, this forExternalAttachment
property
in the response from the Authlete API becomes true
.
Tags
Return values
bool —true
if the access token is for an external attachment.
isRefreshable()
Get the flag which indicates whether the access token can be refreshed using the associated refresh token.
public
isRefreshable() : bool
Even if there exists a refresh token associated with the access token,
this property returns false
if the refresh token has already expired.
Return values
bool —true
if the access token can be refreshed using the associated
refresh token.
isSufficient()
Get the flag which indicates whether the access token covers the required scopes.
public
isSufficient() : bool
Return values
bool —true
if the access token covers the required scopes.
isUsable()
Get the flag which indicates whether the access token is usable (= exists and has not expired).
public
isUsable() : bool
Return values
bool —true
if the access token is usable (= exists and has not expired).
setAccessTokenResources()
Set the target resources of the access token.
public
setAccessTokenResources([array<string|int, string> $resources = null ]) : IntrospectionResponse
See the description of getAccessTokenResources()
method for details
about the target resources of the access token.
Parameters
- $resources : array<string|int, string> = null
-
The target resources of the access token.
Tags
Return values
IntrospectionResponse —$this
object.
setAction()
Set the next action that the resource server should take.
public
setAction([IntrospectionAction $action = null ]) : IntrospectionAction
Parameters
- $action : IntrospectionAction = null
-
The next action that the resource server should take.
Return values
IntrospectionAction —$this
object.
setActive()
Set the flag which indicates whether the access token is active (= exists and has not expired).
public
setActive(bool $active) : IntrospectionResponse
This method is just an alias of setUsable($usable)
method. The reason
this method was added is to mitigate confusion that those who are
familiar with RFC 7662 (OAuth 2.0
Token Introspection) may have.
Parameters
- $active : bool
-
true
if the access token is active (= exists and has not expired).
Return values
IntrospectionResponse —$this
object.
setCertificateThumbprint()
Set the client certificate thumbprint used to validate the access token.
public
setCertificateThumbprint(string $thumbprint) : IntrospectionResponse
Parameters
- $thumbprint : string
-
The certificate thumbprint, calculated as the SHA-256 hash of the DER-encoded certificate value.
Tags
Return values
IntrospectionResponse —$this
object.
setClientAttributes()
Set the attributes of the client that the access token has been issued to.
public
setClientAttributes([array<string|int, Pair> $attributes = null ]) : IntrospectionResponse
Parameters
- $attributes : array<string|int, Pair> = null
-
The attributes of the client.
Tags
Return values
IntrospectionResponse —$this
object.
setClientId()
Set the client ID of the client application to which the access token has been issued.
public
setClientId(int|string $clientId) : IntrospectionAction
Parameters
- $clientId : int|string
-
The ID of the client application associated with the access token.
Return values
IntrospectionAction —$this
object.
setClientIdAlias()
Set the client ID alias when the authorization request or the token request for the access token was made.
public
setClientIdAlias(string $alias) : IntrospectionResponse
Parameters
- $alias : string
-
The client ID alias.
Tags
Return values
IntrospectionResponse —$this
object.
setClientIdAliasUsed()
Set the flag which indicates whether the client ID alias was used when the authorization request or the token request for the access token was made.
public
setClientIdAliasUsed(bool $used) : IntrospectionResponse
Parameters
- $used : bool
-
true
if the client ID alias was used when the authorization request or the token request for the access token was made.
Tags
Return values
IntrospectionResponse —$this
object.
setConsentedClaims()
Set the claims that the user has consented for the client application to know.
public
setConsentedClaims([array<string|int, string> $claims = null ]) : IntrospectionResponse
Some Authlete APIs accept a consentedClaims
request parameter (which
is available from Authlete 2.3). This consentedClaims
property holds
the value specified by the request parameter.
Parameters
- $claims : array<string|int, string> = null
-
The consented claims.
Tags
Return values
IntrospectionResponse —$this
object.
setExistent()
Set the flag which indicates whether the access token exists or not.
public
setExistent(bool $existent) : IntrospectionResponse
Parameters
- $existent : bool
-
true
if the access token exists.
Return values
IntrospectionResponse —$this
object.
setExpiresAt()
Set the time at which the access token will expire.
public
setExpiresAt(int|string $expiresAt) : mixed
Parameters
- $expiresAt : int|string
-
The time at which the access token will expire. The value should be represented as milliseconds since the Unix epoch (1970-Jan-1).
Return values
mixed —setForExternalAttachment()
Set the flag which indicates whether the access token is for an external attachment.
public
setForExternalAttachment(bool $forExternalAttachment) : IntrospectionResponse
OpenID Provider implementations can make Authlete generate access tokens
for external attachments and embed them in ID tokens and userinfo responses
by setting true
to the accessTokenForExternalAttachmentEmbedded
property
of the service. If the token presented at Authlete's /auth/introspection
API has been generated by the feature, this forExternalAttachment
property
in the response from the Authlete API becomes true
.
Parameters
- $forExternalAttachment : bool
-
true
to indicate that the access token is for an external attachment.
Tags
Return values
IntrospectionResponse —$this
object.
setGrantId()
Set the grant ID which the access token is tied to.
public
setGrantId(string $grantId) : IntrospectionAction
In Authlete, when an authorization request includes the grant_management_action
request parameter, a grant ID (which may be a newly-generated one or an existing
one specified by the grant_id
request parameter) is tied to the access token
which is created as a result of the authorization request.
Parameters
- $grantId : string
-
The grant ID tied to the access token.
Tags
Return values
IntrospectionAction —$this
object.
setProperties()
Set the properties associated with the access token.
public
setProperties([array<string|int, Property> $properties = null ]) : IntrospectionResponse
Parameters
- $properties : array<string|int, Property> = null
-
Properties.
Tags
Return values
IntrospectionResponse —$this
object.
setRefreshable()
Set the flag which indicates whether the access token can be refreshed using the associated refresh token.
public
setRefreshable(bool $refreshable) : IntrospectionResponse
Parameters
- $refreshable : bool
-
true
if the access token can be refreshed using the associated refresh token.
Return values
IntrospectionResponse —$this
object.
setResources()
Set the target resources. This represents the resources specified by the `resource` request parameters or by the `resource` property in the request object.
public
setResources([array<string|int, string> $resources = null ]) : IntrospectionResponse
Parameters
- $resources : array<string|int, string> = null
-
The target resources.
Tags
Return values
IntrospectionResponse —$this
object.
setResponseContent()
Set the response content which can be used as a part of the response to the client application.
public
setResponseContent(string $responseContent) : IntrospectionResponse
Parameters
- $responseContent : string
-
The response content.
Return values
IntrospectionResponse —$this
object.
setResultCode()
Set the code of the result of an Authlete API call.
public
setResultCode(string $resultCode) : ApiResponse
Parameters
- $resultCode : string
-
The result code.
Return values
ApiResponse —$this
object.
setResultMessage()
Set the message of the result of an Authlete API call.
public
setResultMessage(string $resultMessage) : ApiResponse
Parameters
- $resultMessage : string
-
The result message.
Return values
ApiResponse —$this
object.
setScopeDetails()
Set the details of the scopes.
public
setScopeDetails([array<string|int, Scope> $scopeDetails = null ]) : IntrospectionResponse
The scopes property of this class is a list of scope names. The
property does not hold information about scope attributes. This
scopeDetails
property was newly created to convey information
about scope attributes.
Parameters
- $scopeDetails : array<string|int, Scope> = null
-
The details of the scopes.
Tags
Return values
IntrospectionResponse —$this
object.
setScopes()
Set the scopes that are associated with the access token.
public
setScopes([array<string|int, string> $scopes = null ]) : IntrospectionResponse
Parameters
- $scopes : array<string|int, string> = null
-
The scopes associated with the access token.
Return values
IntrospectionResponse —$this
object.
setServiceAttributes()
Set the attributes of the service that the client application belongs to.
public
setServiceAttributes([array<string|int, Pair> $attributes = null ]) : IntrospectionResponse
Parameters
- $attributes : array<string|int, Pair> = null
-
The attributes of the service.
Tags
Return values
IntrospectionResponse —$this
object.
setSubject()
Set the subject (= unique identifier) of the end-user (= resource owner) who allowed the authorization server to issue the access token to the client application.
public
setSubject(string $subject) : IntrospectionAction
Parameters
- $subject : string
-
The subject of the end-user associated with the access token.
Return values
IntrospectionAction —$this
object.
setSufficient()
Set the flag which indicates whether the access token covers the required scopes.
public
setSufficient(bool $sufficient) : IntrospectionResponse
Parameters
- $sufficient : bool
-
true
if the access token covers the required scopes.
Return values
IntrospectionResponse —$this
object.
setUsable()
Set the flag which indicates whether the access token is usable (= exists and has not expired).
public
setUsable(bool $usable) : IntrospectionResponse
Parameters
- $usable : bool
-
true
if the access token is usable (= exists and has not expired).
Return values
IntrospectionResponse —$this
object.
toArray()
Convert this object into an array.
public
toArray() : array<string|int, mixed>
Return values
array<string|int, mixed> —An array.
toJson()
Convert this object into a JSON string.
public
toJson(int $options) : string
Parameters
- $options : int
-
Options passed to
json_encode()
. This parameter is optional and its default value is 0.
Return values
string —A JSON string.


The company was founded by Robert Dunder and Robert Mifflin in 1949, where they supplied metal brackets. Eventually, the company started selling paper and office-supply with an emphasis on servicing small-business clients, and opened several branches across the Northeastern United States.
The company was founded by Robert Dunder and Robert Mifflin in 1949.
The company was founded by Robert Dunder and Robert Mifflin in 1949.
Dunder Mifflin has branches in Akron, Ohio; Nashua, New Hampshire; Rochester, New York; Scranton, Pennsylvania; Syracuse, New York; and Utica.
Dunder Mifflin has branches in Akron, Ohio; Nashua, New Hampshire; Rochester, New York; Scranton, Pennsylvania; Syracuse, New York; and Utica.
"Sometimes I'll start a sentence and I don't even know where it's going. I just hope I find it along the way."
"Once every hour, someone is involved in a internet scam."
"Everything I have I owe to this job…this stupid, wonderful, boring, amazing job."
"Nobody steals from Creed Bratton and gets away with it. The last person to do this disappeared. His name? Creed Bratton."


Contact Info
-
8105 Penman Springs dr, Waxhaw, North Carolina
-
(754)256-5665
-
<EMAIL_ADDRESS>-
www.parkershelton.com
Technical Skills
-
Javascript
-
C#
-
HTML
-
CSS
-
Python
-
React
-
SASS
-
Node.js
-
MYSQL
-
MongoDB
My Objectives
I’m a creative builder. Whether it's coding, designing, making music, or painting, I love taking a concept and turning it into reality. I’m a lifelong learner and love the process of discovering new concepts, ideas and ways to improve as a person and professional. I’m well versed in both Front End & Back End programming and take great pride in my abilities to learn quickly and proficiently. I would love to be a part of what you’re building.
Work History
Road to Hire - Indian Land, SC
06 - 2018 to 11 - 2018
Junior Developer
Road to Hire is a program that aims to teach young adults the skills they need in order to become a successful web developer. It lasts 4 to 5 months and it's very fast paced. They teach everything from basic html and css to React and building apis in Node.js. Not only do they teach the technical skills needed to get a job, they also teach all of the soft skills you'll need too. Below I'll list some of the things I learned during my time in Road to Hire.
- I learned so many things from the program, including taking constructive criticism, public speaking, time management, and giving feedback.
- I started with basic HTML and CSS then learning alot about semantic html and accessibility.
- After getting html and css down, we began our journey into javascript. We started with very simple tasks such as some math equations using console logs and things like that.
- We took a break from straight javascript to learn sass. We learned sass after learning javascript so we could fully grasp using variables, mixins, partials, and the more difficult concepts sass has that regular css doesn't.
- We had a midterm where we had to recreate an older version of the mymove website from a sketch file. Once we did that, we started learning React.
- We've had multiple projects but the most difficult one was building an e-commerce website. We had to create a full website selling something and pull our products from a mysql database. We had to build the api and front end to support it. Ontop of all of that, we had to do user authentication with Auth0 and have a page that only admins can see.
Walmart - Waxhaw, NC
01 - 2018 to 06 - 2018
Cashier
- I was hired as a cashier but they had me getting carts, stocking, organizing the back, train new employees, run customer service, and zoning anywhere they needed. I pride myself on being very adaptable and easy to work with.


jMuxer Demo
Sample demo node server is running on heroku free hosting
Fork
Star
If it does not play automatically, Click the `video play button` to initiate the video
Play a h264 file online


{% extends 'base/base.html' %} {% block exp_info_block %}
{% endblock %} {% block exp_block %}
The system will automatically timeout and inform you when the time for this search task is up.
Continue searching until the system times out.
When you are ready click the "next" button to continue to the next task:


closed
by None at 2020-01-02 14:44:15.labeled
by None at 2020-01-02 14:46:10.milestoned
by None at 2020-01-02 14:46:10.assigned
by None at 2020-01-02 14:46:10."Additional information that would help the approver know the reason for the trip"
milestoned
by None at 2020-01-02 14:52:16.milestoned
by None at 2020-01-02 14:54:39.labeled
by None at 2020-01-02 14:56:13.milestoned
by None at 2020-01-02 14:56:13.Jeff Said not to link directly to per piem rates
closed
by None at 2020-01-02 14:58:26.This should remain Issue
in the query, as this approach would be consistent with the one used for Coins
: https://figgy-staging.princeton.edu/?f%5Bhuman_readable_type_ssim%5D%5B%5D=Coin&q=
unassigned
by Eliot Jordan at 2020-01-02 20:20:23.assigned
by James R. Griffin III at 2020-01-02 20:20:23.head_ref_force_pushed
by Esmé Cowles at 2020-01-02 20:47:48.referenced
by None at 2020-01-02 21:24:01.merged
by None at 2020-01-02 21:24:01.closed
by None at 2020-01-02 21:24:01.head_ref_force_pushed
by James R. Griffin III at 2020-01-02 21:49:49.head_ref_force_pushed
by James R. Griffin III at 2020-01-02 20:17:28.head_ref_force_pushed
by James R. Griffin III at 2020-01-02 21:50:48.head_ref_force_pushed
by James R. Griffin III at 2020-01-02 21:54:48.closed
by None at 2020-01-02 14:47:20.Fixes #48
labeled
by Christina Chortaria at 2020-01-02 17:44:03.review_requested
by None at 2020-01-02 16:33:09.head_ref_force_pushed
by None at 2020-01-02 17:22:09.head_ref_force_pushed
by None at 2020-01-02 17:29:48.referenced
by Francis Kayiwa at 2020-01-02 19:53:52.merged
by Francis Kayiwa at 2020-01-02 19:53:52.closed
by Francis Kayiwa at 2020-01-02 19:53:52.head_ref_deleted
by Francis Kayiwa at 2020-01-02 19:53:56.head_ref_force_pushed
by Francis Kayiwa at 2020-01-02 21:29:17.referenced
by Nikitas Tampakis at 2020-01-02 21:43:43.merged
by Nikitas Tampakis at 2020-01-02 21:43:43.closed
by Nikitas Tampakis at 2020-01-02 21:43:44.closed
by Nikitas Tampakis at 2020-01-02 21:43:44.referenced
by Nikitas Tampakis at 2020-01-02 21:43:45.Another one: cicognara is using a config set called cicognara-config
, but this repo expects it to be using cicognara
.
Yeah I think the stale config set names were before we had set up the deploy scripts to update and reload the configsets. Glad it seems like we won't need to recreate the collections
I rebased this and aligned it with current configuration by looking at the production and staging cloud graphs and selecting each collection to see which config set it uses.
head_ref_force_pushed
by None at 2020-01-02 17:16:16.I deployed the changes to catalog-staging. In addition to marking the locations as open=false and requestable=true, I also changed the delivery location rules to only have Lewis Library as a delivery location to prevent the dropdown delivery list to show other libraries.
Coverage increased (+0.04%) to 87.4% when pulling 3bd2cbaffcda6f5f7d3ade697e35c9ddb044a74c on lewis-paging into cefd41be34db7a2bcd92108544d677af40b5fea7 on master.
head_ref_force_pushed
by Nikitas Tampakis at 2020-01-03 00:59:07.head_ref_force_pushed
by Nikitas Tampakis at 2020-01-03 01:14:37.


Try out our Premium Member services: Virtual Legal Assistant, Query Alert Service and an ad-free experience. Free for one month and pay only if you like it.
$~ * IN THE HIGH COURT OF DELHI AT NEW DELHI 11. + W.P.(C) 10156/2015 & CM Nos. 25028 & 28227 of 2015 VAYAM TECHNOLOGIES LTD. ..... Petitioner Through: Mr. Rajesh Jain and Mr. Virag Tiwari, Advocates. versus COMMISSIONER OF TRADE & TAXES ..... Respondent Through: Mr. Gautam Narayan, ASC with Mr. R.A. Iyer, Advocate. CORAM: JUSTICE S.MURALIDHAR JUSTICE VIBHU BAKHRU ORDER
% 26.05.2016 Dr. S. Muralidhar, J.
1. The challenge in this petition is to system generated notices dated 19th June 2015, 17th July 2015, 17th August 2015, 19th August 2015 and 7th October 2015 issued to the Petitioner by Value Added Tax Officers (VATOs) of the Department of Trade & Taxes („DT&T‟) of different Wards under Section 59 (2) of the Delhi Value Added Tax Act, 2004 (DVAT Act), uploaded on the DT&T's website.
2. During the pendency of this petition, 13 further system generated notices, each dated 16th November 2015 issued to the Petitioner were also uploaded on the website by the VATO of Ward-3.
3. The Court was informed during the hearing on 4th March 2016 by Mr. Gautam Narayan, learned Additional Standing counsel appearing for the W.P.(C) 10156/2015 Page 1 of 14 DT&T, that on 24th September 2015, the Commissioner of VAT had passed an order under Section 67 (2), 68 and 106 of the DVAT Act read with Section 9 of the Central Sales Tax Act, 1956 („CST Act‟) to the effect that the Assistant Commissioner, Ward-206 who would exercise jurisdiction as far as the Petitioner is concerned and that this had to be read with the order dated 12th November 2013 issued by the Commissioner (VAT) inter alia delegating the powers of assessment and re-assessment under Section 32 of the DVAT Act to all officers not below the rank of the Assistant VATO. The Court recorded in para 6 of its order dated 4th March 2016 as under:
"6. Mr Narayan, ASC on instruction of Mr M. K. Aggarwal, Assistant Commissioner, states that all the notices issued to the Petitioner hereinbefore i.e. the notices which have been challenged in the present petition as well as the 13 notices dated 16th November 2015 referred to in civil miscellaneous application No. 28227/2015 should be treated as withdrawn by the DT&T. It is accordingly recorded. Mr Narayan states that Mr M. K. Aggarwal will now issue a fresh notice to the Petitioner under Section 59(2) of the DVAT Act."
4. At that stage Mr. Rajesh Jain, learned counsel appearing for the Petitioner, drew the attention of the Court to one of the grounds urged in petition on which he desired the Court to give a ruling. The said ground reads as under:
"A. Because the impugned notices u/s 59(2) are required to be struck down for being issued in the absence of rules being framed under the provisions of Section 102(2) (z) of the Act. Section 102(2)(z) empowers the Government to make rules laying down the conditions subject to which the Commissioner may require any dealer or any other person to produce before him such record, books of accounts, registers and other documents and answer such queries and furnish such additional information sought by the Commissioner. In the case of Sreenath Travel Agency & Am. Vs. Lt. Governor of Delhi & Ors. reported as AIR 2004 Delhi 1, impounding of the vehicle W.P.(C) 10156/2015 Page 2 of 14 done u/s 207 of the Motor Vehicles Act, 1988 was set aside by this Hon'ble Court because no rules had been framed under the Act laying down the manner in which the vehicles would be impounded. Reliance is also placed upon the judgment of the Hon'ble Bombay High Court in the case of Garware Shipping Corporation Ltd. & P.R. Sawant Vs. J.H. Joglekar, Addl, Collector of Customs reported as 1984 (15) ELT 375. There also, confiscation of the ship carrying smuggled goods was set aside when no rules were framed by the Government for precaution required to be taken U/S 115(2) of the Customs Act, 1962 (Annexure P10). The word 'prescribed' has been defined U/S 2(y) of the Act which means prescribed by the rules made under the Act. Had the conditions been prescribed under the Rules, there would not have been much difficulty in avoiding the situation in which the matter stands landed up today."
5. Mr. Jain pointed out that no rule had been framed under Section 102 (2) (z) of the DVAT Act in regard to the exercise of the power under Section 59 (2) thereof. According to Mr. Jain, in the absence of such a Rule, a „dealer‟ registered under the DVAT Act cannot be called upon by the Commissioner or other officer mentioned in Section 59 (2) of the DVAT Act, to produce records, books of accounts etc.
6. At that stage, Mr. Narayan referred to the decision of this Court in The Commissioner, VAT v. A.K. Woollen Industries (order dated 19th February 2015 in Sales Tax Appeal No. 65 of 2014) and submitted that absence of such a rule will not preclude the exercise of the powers under Section 59 (2) of the DVAT Act. The Court then adjourned the case to enable learned counsel for the Respondent to examine the issue and for the learned counsel for the Appellant to examine whether Rules of a similar nature had been framed in the VAT statutes of other States.
7. Mr. Jain has since placed on record his written submissions enclosing the details of the statutes in other States. Mr. Jain points out that in at W.P.(C) 10156/2015 Page 3 of 14 least 10 VAT statutes, there exists a similar provision enabling the Commissioner to call for production of records subject to such conditions "as may be prescribed". In these 10 States, Rules have been framed in terms of the said provision. A tabulation of such State Acts and the corresponding Rules in the said States are set out as under:
S.No. State VAT Act Section VAT Rules Rule 1. Assam VAT Act 2003 74 (1) Assam VAT Rules 40 2005 2. Bihar VAT Act 2005 56 (1) Bihar VAT Rules 35 2005 3. Gujarat VAT Act 67 (1) Gujarat VAT Rules 48 2003 2006 (notice in form 401) 4. J&K VAT Act 2005 66 (1) J&K VAT Rules, 66 2005 5. Jharkhand VAT Act 70 (1) Jharkhand VAT 39 2005 Rules 2006 6. Maharashtra VAT Act 64 (1) Maharashtra VAT 70 2002 Rules 2005 (notice in form 603) 7. Manipur VAT Act, 64 (1) Manipur VAT Rules, 41 2004 2005 8. Odisha VAT Act 2004 73 (1) Odisha VAT Rules 75 2005 9. Tripura VAT Act 59 (1) Tripura VAT Rules 44 2004 2005 10. West Bengal VAT 66 (1) West Bengal VAT 94 Act 2003 Rules 2005
8. In the VAT statutes of 12 other States, the expression "subject to such conditions as may be prescribed" does not follow the words conferring the power to call for records. The following tabular column gives the names of the 12 statutes and the corresponding provision:
S.No. State Act Section W.P.(C) 10156/2015 Page 4 of 14 1. Uttarakhand VAT Act, 2005 42 (1) 2. UP VAT Act, 2008 45 (1) 3. Tamil Nadu VAT Act, 2006 65 (1) 4. Sikkim VAT Act, 2005 62 5. Puducherry VAT Act, 2007 55 (1) 6. Nagaland VAT Act, 2005 64 (1) (b) 7. Meghalaya VAT Act, 2003 84 (5) 8. Madhya Pradesh VAT Act, 2002 63 (1) 9. Kerala VAT Act, 2003 44 (1) 10. Karnataka VAT Act, 2003 52 (1) 11. Himachal Pradesh VAT Act, 2005 32 (1) 12. Haryana VAT Act, 2003 29 (1)
9. Mr. Jain further points out that there were other provisions of the DVAT Act, for e.g., Sections 5 (2), 6 (2), 8 (1), 9 (1) , 14 (2) , 59 (2), 68 (1) and 92 (1), which used the words „subject to such conditions as may be prescribed‟ and the DVAT Rules contains provisions in respect of each of the above provisions of the DVAT Act. However, it is only in respect of Sections 59 (2) of the DVAT Act that no rules have been framed despite Section 102 (2) (z) of the DVAT Act providing for it. Relying on the decision of the Supreme Court in Dr. Subramanian Swamy v. State of Tamil Nadu (2014) 5 SCC 75, Mr. Jain submitted that in the absence of any rules being framed thereunder, the power under Section 59 (2) of the DVAT Act cannot be exercised. He further relied on the decisions in Goa Central Cooperative Consumers v. Bhagwant Narayan Tendulkar (1998) 4 SCC 527 and W.P.(C) 10156/2015 Page 5 of 14 Telecom Employees Cooperative Housing Society Limited v. Scheduled Castes, Scheduled Tribes, Minority Communities & Backward Classes Improvement Centre ILR 1990 Kar 3320.
10. Mr. Jain submitted that there were numerous instances where the power under Section 59 (2) had been exercised by the VATOs indiscriminately, as an instrument of harassment. He illustratively referred to the following instances:
"(a) to seal premises for non-production of books of accounts;
(b) to make default notice of assessment of tax, interest and penalty, ignoring that Section 59 falls under Chapter X, whereas Section 32 and 33 for making assessments fall under Chapter VI of the Act;
(c) to illegally deny/block the refund;
(d) to block the downloading of forms under the Central Act; when no such provision exists under Rule 5 (4) of the Central Sales Tax (Delhi) Rules, 2005;
(e) to seek explanation/reason for shortfall in the deposit of tax as compared to the earlier years;
(f) to reopen the concluded assessments on multiple occasions;
(g) to mop up maximum amount of penalty by issuing multiple notices in a tax period/financial year, as each offence, if committed, would attract penalty of Rs. 50,000 under Section 86 (14) of the Act."
11. Mr. Jain also referred to Form 401 corresponding to Sections 67, 70 or 70A of the Gujarat Value Added Tax Act, 2003 which requires the applicant to produce before the Assessing Officer („AO‟) documents the description of which is given therein. Likewise he also referred to the requirement of a separate notice under Rule 75 (1) of the Gujarat VAT Rules 2006 for production of accounts etc. He also referred to Form VAT 401 issued under Rule 75 (1) of the Odisha VAT Rules 2005 and Form 603 under Rule 70 of the Maharashtra VAT Rules 2005.
W.P.(C) 10156/2015 Page 6 of 1412. Countering the above submissions Mr. Narayan referred to the decision in Orissa State (Prevention & Control of Pollution) Board v. Orient Paper Mills (2003) 10 SCC 421. According to him, the failure to frame a Rule would not invalidate the exercise of the statutory power. According to him, there were sufficient guidelines under Section 59 (2) of the DVAT Act to prevent its misuse. He submitted that apart from the fact that the decision of this Court in The Commissioner, VAT v. A.K. Woollen Industries (supra) was against the Assessee on this point, the Court in the said decision reiterated the settled legal position as explained in Gannon Dunkerley and Co. v. State of Rajasthan 1993 (88) STC 204, Sudhir Chandra Nawn v. Wealth Tax Officer, Calcutta 1968 (69) ITR 897 (SC) and Mahim Patram Pvt. Ltd. v. Union of India 2007 (6) VST 248.
13. The above submissions have been considered. Section 59 of the DVAT Act reads as under:
"59. Inspection of records (1) All records, books of accounts, registers and other documents, maintained by dealer, transporter or operator of a warehouse shall, at all reasonable times, be open inspection by the Commissioner.
(2) The Commissioner may, for the proper administration of this Act and subject to such conditions as may be prescribed, require -
(a) any dealer; or
(b) any other person, including a banking company, post office, a person who transports goods or holds goods in custody for delivery to, or on behalf of any dealer, who maintains or has in his possession any books of accounts, registers or documents relating to the business of a dealer, and, in the case of a person which is an organisation, any officer thereof; to
(i) produce before him such records, books of account, registers and other documents;W.P.(C) 10156/2015 Page 7 of 14
(ii) answer such questions; and
(iii) prepare and furnish such additional information;
relating to his activities or to the activities of any other person as the Commissioner may deem necessary.
(3) The Commissioner may require a person referred to in sub- section (2) above, to
(a) prepare and provide any documents; and
(b) verify the answer to any question;
in the manner specified by him.
(4) The Commissioner may retain, remove, take copies or extracts, or cause copies or extracts to be made of the said records, books of account, registers and documents without fee by the person in whose custody the records, books of account, registers and documents are held."
14. A plain reading of the above provision indicates that the Commissioner can exercise the powers under Section 59 (2) of the DVAT Act to call upon the dealer or any other person to produce records, books of accounts etc. for
(i) the proper administration of the DVAT Act and (ii) subject to such conditions "as may be prescribed." The expression „as may be prescribed‟ has to be interpreted as requiring Rules to be framed in the matter of inspection of production of records. In Dr. Subramanian Swamy v. State of Tamil Nadu (supra) the Supreme Court was interpreting Section 45 of the Tamil Nadu Hindu Religious and Charitable Endowments Act, 1959 („TNHRCE Act‟) which envisages the appointment of an Executive Officer („EO‟) by the Commissioner HRCE, subject to such conditions as may be prescribed. In that context, the Supreme Court observed as under:
"60. Section 2(16) CPC defines the term "prescribed" as prescribed by the rules. Further, Section 2(18) CPC defines W.P.(C) 10156/2015 Page 8 of 14 rules as rules and forms as contained in the First Schedule or made under Section 122 or Section 125 CPC. Sections 122 and 125 CPC provide for power of the High Court to make rules with respect to its own functioning and procedure. Therefore, it appears that when the legislature uses the term "prescribed", it only refers to a power that has simultaneously been provided for or is deemed to have been provided and not otherwise. Similarly, Section 2(n) of the Consumer Protection Act, 1986 defines "prescribed" as "prescribed by rules made by the State Government or as the case may be, by the Central Government under the Act".
61. Section 45 of the 1959 Act provides for appointment of an Executive Officer, subject to such conditions as may be prescribed. The term "prescribed" has not been defined under the Act. Prescribed means prescribed by rules. If the word "prescribed" has not been defined specifically, the same would mean to be prescribed in accordance with law and not otherwise. Therefore, a particular power can be exercised only if a specific enacting law or statutory rules have been framed for that purpose. (See Manohar Lal Chopra v. Seth Hiralal AIR 1962 SC 527, Hindustan Ideal Insurance Co. Ltd. v. LIC AIR 1963 SC 1083, Maharashtra SRTC v. Babu Goverdhan Regular Motor Service (1969) 2 SCC 746 and BSNL v. BPL Mobile Cellular Ltd (2008) 13 SCC 597)."
15.1 In Goa Central Cooperative Consumers v. Bhagwant Narayan Tendulkar (supra), the Supreme Court interpreted Section 45 of the Maharashtra Cooperative Societies Act, 1960 which provided that:
"45. Restrictions on other transactions with non-members - Save as is provided in this Act, the transaction of a society with persons other than members, shall be subject to such restrictions, if any, as may be prescribed."
15.2 In the above context, the Supreme Court observed as under:
"4. It appears that the transaction to come under Section 45 must be subject to such restriction as may be prescribed. Admittedly, no rule has been prescribed by which any restriction in respect of such transaction has been imposed. Therefore, Section 45 is also not attracted."W.P.(C) 10156/2015 Page 9 of 14
16.1 The third decision relied upon by Mr. Jain is Telecom Employees Cooperative Housing Society Limited (supra) where the Karnataka High Court was interpreting Section 38 of the Bangalore Development Authority Act, 1976 which stated that "subject to such restrictions, conditions and limitations as may be prescribed, the Authority shall have power to lease, sell or otherwise transfer any movable or immovable property which belongs to it, and to appropriate or apply any land vested in or acquired by it for the formation of open spaces or for building purposes or in any other manner for the purpose of any development scheme."
16.2 In that context, the Karnataka High Court observed that the power under Section 38 is unavailable "unless those restrictions, conditions and limitations are prescribed" and concluded that "when power is made available, conditional upon prescription, the phrase „subject to‟ in the context meaning only conditional upon, the exercise of power in the absence of such prescription is illegal."
17. There is a clear distinction between the wording of the provisions considered in the above decisions, and Section 59 (2) of the DVAT Act. It is not as if there are no guidelines in Section 59 (2) of the DVAT Act to indicate under what circumstances the Commissioner may require production of books of accounts, records etc. Apart from the fact that the Commissioner has to exercise the power for 'the proper administration' of the DVAT Act, he has to make assure that what is being asked to be produced, in the form of books of accounts and other documents, are "related to the activities" of either the person to whom such notice is issued or any other person as the Commissioner may deem necessary.
W.P.(C) 10156/2015 Page 10 of 14The Commissioner has to decide what document should be asked to be produced. It is another matter that there have been instances of misuse of the powers. The Court has had to step in to correct such misuse. That by itself, however, does not make the provision bad in law.
18. It also does not mean that in the absence of a Rule, the power under Section 59 (2) is incapable of being exercised. It is in this context that the language used in Section 45 of TNHRCE Act or Section 45 of the Maharashtra Cooperative Societies Act, 1960 or Section 38 of the Bangalore Development Authority Act, 1976 became relevant. In each of the above instances, the language of the provision was such that the exercise of the power was dependent on the framing of the Rules. However, Section 59 (2) of the DVAT Act is so worded that it can be given effect to even in the absence of the rules.
19.1 In the above context, the decision of the Supreme Court in Orissa State (Prevention & Control of Pollution) Board v. Orient Paper Mills (supra) is relevant. The question that arose in the said decision was whether in the absence of any Rules framed under Section 19 of the Air (Prevention and Control of Pollution) Act, 1981 („Air Act‟), the power in terms of the said provision could be exercised. Section 19 (1) of the Air Act reads as under:
"19. Power to declare air pollution control areas - (1) The State Government may, after consultation with the State Board, by notification in the Official Gazette, declare (in such manner as may be prescribed), any area or areas within the State as air pollution control area or areas for the purposes of this Act."
19.2 The Supreme Court first dealt with the expression „such manner as may be prescribed" and distinguished the said expression from the expressions „in the manner prescribed‟ or „in the prescribed manner‟ used W.P.(C) 10156/2015 Page 11 of 14 in certain other statues. It is then observed as under:
"In one of the cases decided by this Court, to be referred later in this judgment "as may be prescribed" has been held to mean "if any". It is thus clear that such expression leaves the scope for some play for the workability of the provision under the law. The meaning of the word "as" takes colour in context with which it is used and the manner of its use as prefix or suffix etc. There is no rigidity about it and it may have the meaning of a situation of being in existence during a particular time or contingent, and so on and so forth. This is to say, something to happen in a manner, if such a manner is in being or exists, if it does not, it may not happen in that manner. Therefore, the reading of the provision under consideration makes it clear that manner of declaration is to be followed "as may be prescribed" i.e., "if any" prescribed.
13. Thus, in case manner is not prescribed under the rules, there is no obligation or requirement to follow any, except whatever the provision itself provides viz., Section 19 in the instant case which is also incomplete in itself even without any manner being prescribed as indicated shortly before to read the provision omitting this part "in such manner as may be prescribed". Merely by absence of rules, the State would not be divested of its powers to notify in the Official Gazette any area declaring it to be an air pollution control area. In case, however, the rules have been framed prescribing the manner, undoubtedly, the declaration must be in accordance with such rules."
19.3 The Supreme Court reiterated in para 15 that "the power which vests in an authority would not cease to exist simply for the reason that the rules have not been framed or the manner of exercise of the power has not been prescribed. So far as Section 54 of the Act is concerned, it only enumerates the subjects on which the State Government is entitled to frame rules."
19.4 The Court in that process referred to the decision of the Constitution Bench in T. Cajee v. U. Jormanik Siem AIR 1961 SC 276 as well as decision in Surinder Singh v. Central Government (1986) 4 SCC 667. In the latter decision, the Supreme Court observed as under:
"Where a statute confers powers on an authority to do certain acts W.P.(C) 10156/2015 Page 12 of 14 or exercise power in respect of certain matters, subject to rules, the exercise of power conferred by the statute does not depend on the existence of rules under the statute expressly provides for the same. In other words framing of the rules is not condition precedent to the exercise of the power expressly and unconditionally conferred by the statute. The expression „subject to the rules‟ only means, in accordance with the rules, if any. If rules are framed, the powers so conferred on authority could be exercised in accordance with these rules. But if no rules are framed there is no valid and the authority is not precluded from exercising the power conferred by the statute.
20. Therefore, in the present case the Court is unable to accept the submission of Mr. Jain that in the absence of any rules being framed under Section 102 (2) (z) read with Section 59 (2) of the DVAT Act, the power of the Commissioner under Section 59 (2) of the DVAT Act to call upon a person to produce the books of accounts and other documents cannot be exercised.
21. In that view of the matter, the Court concurs with the view expressed by the co-ordinate Bench of this Court in The Commissioner, VAT v. A.K. Woollen Industries (supra).
22. Mr. Jain earnestly pleaded that a direction should be issued to the Respondent to frame rules in exercise of the power under Section 102 (2) (z) of the DVAT Act.
23. There are a few limitations on the scope of the powers of this Court under Article 226 of the Constitution. One such limitation is the inability to issue a mandamus to the Respondent/Executive to frame a rule in respect of any particular topic or issue and in a specific manner. That is the prerogative of the Executive.
24. However, that does not preclude the Petitioner, along with other W.P.(C) 10156/2015 Page 13 of 14 dealers, to make a representation to the Government of NCT of Delhi and in particular to the DT&T that Rules in terms of Section 102 (2) (z) read with Section 59 (2) of the DVAT Act should be framed. They can draw the attention of the GNCTD to the provisions in the ten other states which have VAT statutes. If such representation is made, the Court has no doubt that it will receive adequate and serious consideration in the hands of GNCTD and specifically, the DT&T, particularly since such a rule will serve the salutary purpose of guiding the officers in the exercise of their powers and serve to also act as a check on the possible abuse of powers.
25. No other directions are called for. The writ petition and pending applications are disposed of in the above terms.
S.MURALIDHAR, J VIBHU BAKHRU, J MAY 26, 2016 Rm W.P.(C) 10156/2015 Page 14 of 14


See what our customers have to say about us.
I think this service is absolutely fantastic. John Doe
I think this service is absolutely fantastic.


Your Grade
Note: The Great War was not a trivial matter. In addition to taking the lives of roughly 40 million people, it cast an ominous shadow over the modern world for years and decades to come. It challanged the idea that modern people had become morally superior to our ancestors, and it set the stage for another sickening atrocity of the 20th Century, World War 2. Let us mourn and remember.


|
ngettext − translate message and choose plural form |
|
ngettext [OPTION] [TEXTDOMAIN] MSGID MSGID-PLURAL COUNT |
|
The ngettext program translates a natural language message into the user’s language, by looking up the translation in a message catalog, and chooses the appropriate plural form, which depends on the number COUNT and the language of the message catalog where the translation was found. Display native language translation of a textual message whose grammatical form depends on a number. |
|
−d, −−domain=TEXTDOMAIN |
|
retrieve translated message from TEXTDOMAIN |
|
−e |
enable expansion of some escape sequences |
|||
|
−E |
(ignored for compatibility) |
|
−h, −−help |
|
display this help and exit |
|
−V, −−version |
|
display version information and exit |
|
[TEXTDOMAIN] |
|
retrieve translated message from TEXTDOMAIN |
|
MSGID MSGID-PLURAL |
|
translate MSGID (singular) / MSGID-PLURAL (plural) |
|
COUNT |
choose singular/plural form based on this value |
|
If the TEXTDOMAIN parameter is not given, the domain is determined from the environment variable TEXTDOMAIN. If the message catalog is not found in the regular directory, another location can be specified with the environment variable TEXTDOMAINDIR. Standard search directory: c:/devel/target/b87d44310420e22f628591825d528a98/share/locale |
|
Written by Ulrich Drepper. |
|
Report bugs to<EMAIL_ADDRESS>|
|
Copyright © 1995-1997, 2000-2007 Free Software
Foundation, Inc. License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html> |
|
The full documentation for ngettext is maintained as a Texinfo manual. If the info and ngettext programs are properly installed at your site, the command |
|
info ngettext |
|
should give you access to the complete manual. |


Were to begin...
The past 10 months I have been on Adderall, because of my ADHD. I receive 20mg pills each month, 30 to be exact. My mom has a safe she keeps them in, so I do not steal them, thou I cannot help myself. I usually find the key to the safe and take them. I now do not do this anymore, though I used to. This experience might sound negative, but Adderall has brought me to so many thoughts and ideas, I couldn't thank it enough.. The come down though, is quite painful. Nausea, Depression, Paranoia, Fast heart beat.. they all are the consequences that Adderall has upon me. I have done it well over 50 times (abused adderall), not to mention the one 20MG Adderall I receive every day. My name is D, and here is just one of the many journeys I was taken on.
Location -- my house
Dosage -- (x4) 20MG Adderall pills = 80MG
(T 0:00) Ingested 4 Adderall Pills.
(T 0:15) Feeling mildy concentrated, joy spreads through me.
(T 0:30) Feeling quite concentrated, happy as hell.
(T 0:45) I am now beggining to see this world as it really is. I feel like there are really things worth fighting for now. I feel relaxed, but extremely hyper at the same time. I get many ideas. Fast heartbeat
(T 1:00) Every thought I think seems to have a hidden joy behind it. I think of my friends, school, and interests. Things that I once feared or dis-liked, felt very right to me. I understood that some people are just the way they are, and life can't always be perfect.
(T 1:30) The Peak. Radical, the word that can only describe how I am feeling. The greatest happiness can only be attained by conqouring your fears, and realizing some things are how they are. My limbs feel heavy but relaxed, and my body is loving this more than I am. I am in no way hungry at all and am not the rest of my trip. I still consume a bowl of cereal, just to be safe. Thank God for the substance known as Adderall, even though I'm sweating more than Bill Clinton at the confession booth. Not to mention my speeding heart! Still I didn't think much about it.
(T 2:00) Still Peaking. Cleaned my room, finished homework, got things straightened out with a friend, that I had problems with for many years. Were now good friends to this day, but keep reading.
(T 3:00) Still feeling amazing, and continue to, for another hour.
(T 4:00) Feeling the peak still, but if the peak was 100, I was 95.
(T 5:00) Get rushes of happiness through my body, and of course great ideas, still loving this.
(T 6:00) After 6 hours into this trip, I still feel amazing. Obviously 4 Adderall Pills will do the trick.
(T 8:00) Finnally begin to feel the trip is less intense, though it's hardly noticable.
(T 9:00) I feel like you do, right before you hit the peak of Adderall. I consume a yogurt and some breadsticks, just to be safe.
(T 10:00) Coming down more, but like I said, 80MG is just amazing, and its now getting dark outside. I have had a simply wonderful day. I don't mind coming down, because this come down is great!
After Effects... I am up all night of course, having a groovy time (lol). In the morning I feel just about normal.  I ate a shitload after coming off adderall. (even though I made sure I ate the night before)I take two Tylenol PM's and some TUMS at 4PM and when evening arrives I finnaly fell asleep. I awoke the next morning refreshed and happy to be alive. 18 hours of sleep brought me back to a normal pace.
 My trip lasted over 12 hours though, and that's just of good feeling. Thank you Adderall, for all that you have gaven to me.
WRITTEN: June 21st, 2004.
EXPERIENCE: January 23rd-25th, 2004.
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.


Learn about what fun activities TwitchCon has in store for you!
See what ther cool people are coming to TwitchCon 2018!


| Class Summary | |
final class
|
BehaveWord
extends AnyRef
Class that supports shared test registration via instances referenced from the
behave field of Spec s,
FlatSpec s, and WordSpec s as well as instance of their sister traits,
FixtureSpec , FixtureFlatSpec , and FixtureWordSpec . |
trait
|
CanVerb
extends AnyRef
Provides an implicit conversion that adds
can methods to String
to support the syntax of FlatSpec , WordSpec , FixtureFlatSpec ,
and FixtureWordSpec . |
trait
|
MustVerb
extends AnyRef
Provides an implicit conversion that adds
must methods to String
to support the syntax of FlatSpec , WordSpec , FixtureFlatSpec ,
and FixtureWordSpec . |
final class
|
ResultOfAfterWordApplication
(val text : java.lang.String, val f : () => Unit) extends AnyRef
Class that supports the use of after words in
WordSpec
and FixtureWordSpec . |
abstract class
|
ResultOfStringPassedToVerb
(val verb : java.lang.String, val rest : java.lang.String) extends AnyRef
Abstract class that supports test registration in
FlatSpec
and FixtureFlatSpec . |
abstract class
|
ResultOfTaggedAsInvocation
(val verb : java.lang.String, val rest : java.lang.String, val tags : scala.List[Tag]) extends AnyRef
Supports the registration of tagged tests in shorthand form in
FlatSpec
and FixtureFlatSpec . |
trait
|
ShouldVerb
extends AnyRef
Provides an implicit conversion that adds
should methods to String
to support the syntax of FlatSpec , WordSpec , FixtureFlatSpec ,
and FixtureWordSpec . |
abstract class
|
StringVerbBlockRegistration
extends (java.lang.String, java.lang.String, () => Unit) => Unit
Class that provides a role-specific type for an implicit conversion used to support
the registration of subject descriptions in
WordSpec and FixtureWordSpec . |


The term "universal design" was first coined by the architect Ronald L. Mace in the early 1980s to describe the concept of designing products and buildings to be “usable to the greatest extent possible by everyone, regardless of their age, ability, or status in life.”
Print out this pdf or click this link to verifiy that you have completed this course


dialog.js.coffee |
|
|---|---|
Mercury DialogDialog is a base class that’s used by Palette, Select, Panel, and through Palette, the Toolbar.Expander. It’s basic function is to provide an interface element that can be opened, interacted with, and then closed. |
class @Mercury.Dialog |
|
The constructor expects a url to load, a name, and options.
Options
|
constructor: (@url, @name, @options = {}) ->
@button = @options.for
@build()
@bindEvents()
@preload() |
#buildBuilds the element and appends it to the DOM. You can provide an element to append it to in the options, otherwise it will be appended to the body. |
build: ->
@element = jQuery('<div>', {class: "mercury-dialog mercury-#{@name}-dialog loading", style: 'display:none'})
@element.appendTo(jQuery(@options.appendTo).get(0) ? 'body') |
#bindEventsBind to all the events we should handle. In this case we only stop the mousedown event, since dialogs aren’t expected to have inputs etc. Note: By stopping the mousedown event we’re limiting what’s possible in dialogs, but this is needed to keep focus from being taken away from the active region when different things are clicked on in dialogs. |
bindEvents: ->
@element.mousedown (event) -> event.stopPropagation() |
#preloadIf the options dictate that the content should be preloaded we load the view before we do anything else. This is useful if you don’t want to make the user wait the half second or however long the server may take to respond when they open various dialogs. |
preload: ->
@load() if @options.preload |
#toggleToggle the dialog based on current visibility. |
toggle: ->
if @visible then @hide() else @show() |
#resizeIn the base class resize just calls through to show, but in the implementation classes resize typically adjusts the size based on it’s contents. |
resize: ->
@show() |
#showWhen showing a dialog it’s expected that all other dialogs will close, and we fire an event for this. The dialog is then positioned and shown. The show animation of the dialog is typically dictated by the implementation class. |
show: -> |
|
Tell all other dialogs to close. |
Mercury.trigger('hide:dialogs', @)
@visible = true
if @loaded
@element.css({width: 'auto', height: 'auto'})
@position(@visible)
else
@position() |
|
Then show the element. |
@appear() |
#positionInterface method. Implemenations are expected to position the dialog themselves.
|
position: (keepVisible) -> |
#appearAnimate the element into view. After it’s done showing, we load and resize it if it’s not already loaded, so in cases where content is not preloaded we can display the dialog, fill it’s contents, and then animate the resize. |
appear: ->
@element.css({display: 'block', opacity: 0})
@element.animate {opacity: 0.95}, 200, 'easeInOutSine', =>
@load(=> @resize()) unless @loaded |
#hideHides the element and keeps track of it’s visibility. |
hide: ->
@element.hide()
@visible = false |
#loadFetches the content that will be loaded into the dialog.
|
load: (callback) ->
return unless @url
if Mercury.preloadedViews[@url] |
|
If there’s a preloadedView defined for the url being requested, load that one. |
@loadContent(Mercury.preloadedViews[@url]) |
|
And call the dialog handler if there’s one. We’ve broken the handlers out into seperate files so they can be tested more easily, but you can define your own by putting them in dialogHanders. |
Mercury.dialogHandlers[@name].call(@) if Mercury.dialogHandlers[@name]
callback() if callback
else |
|
Otherwise make an Ajax request to get the content. |
jQuery.ajax @url, {
success: (data) =>
@loadContent(data)
Mercury.dialogHandlers[@name].call(@) if Mercury.dialogHandlers[@name]
callback() if callback
error: => |
|
If the Ajax fails, we hide the dialog and alert the user about the error. |
@hide()
@button.removeClass('pressed') if @button
alert("Mercury was unable to load #{@url} for the #{@name} dialog.")
} |
#loadContentLoads content into the element, and removes the loading class.
|
loadContent: (data) ->
@loaded = true
@element.removeClass('loading')
@element.html(data) |


@*
* Copyright 2016 HM Revenue & Customs
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*@
@import uk.gov.hmrc.cataloguefrontend.RepositoryDetails
@import play.api.mvc.Call
@(cacheTimestampFormatted: String, repositories: Seq[String], pageTitle: String, activeTab : String, detailsUrl: String => Call)
@standard_layout(pageTitle, activeTab) {
@pageTitle


Class TextField
Text data entry widget
Inherited Members
Namespace: Terminal
Assembly: Terminal.dll
Syntax
public class TextField : Terminal.View
Remarks
The Entry widget provides Emacs-like editing functionality, and mouse support.
Constructors
TextField(Int32, Int32, Int32, String)
Public constructor.
Declaration
public TextField (int x, int y, int w, string s);
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | x | To be added. |
| System.Int32 | y | To be added. |
| System.Int32 | w | To be added. |
| System.String | s | To be added. |
Properties
CanFocus
Declaration
public override bool CanFocus { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Boolean | To be added. |
Color
Sets the color attribute to use (includes foreground and background).
Declaration
public Terminal.Attribute Color { get; set; }
Property Value
| Type | Description |
|---|---|
| Attribute | The color. |
CursorPosition
The current cursor position.
Declaration
public int CursorPosition { get; }
Property Value
| Type | Description |
|---|---|
| System.Int32 | To be added. |
Secret
Sets the secret property.
Declaration
public bool Secret { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Boolean | To be added. |
Remarks
This makes the text entry suitable for entering passwords.
Text
Sets or gets the text in the entry.
Declaration
public string Text { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String | To be added. |
Methods
MouseEvent(MouseEvent)
Declaration
public override bool MouseEvent (Terminal.MouseEvent ev);
Parameters
| Type | Name | Description |
|---|---|---|
| MouseEvent | ev | To be added. |
Returns
| Type | Description |
|---|---|
| System.Boolean | To be added. |
PositionCursor()
Sets the cursor position.
Declaration
public override void PositionCursor ();
ProcessKey(KeyEvent)
Declaration
public override bool ProcessKey (Terminal.KeyEvent kb);
Parameters
| Type | Name | Description |
|---|---|---|
| KeyEvent | kb | To be added. |
Returns
| Type | Description |
|---|---|
| System.Boolean | To be added. |
Redraw(Rect)
Declaration
public override void Redraw (Terminal.Rect region);
Parameters
| Type | Name | Description |
|---|---|---|
| Rect | region | To be added. |
Events
Changed
Changed event, raised when the text has clicked.
Declaration
public event EventHandler Changed;
Event Type
| Type | Description |
|---|---|
| System.EventHandler | To be added. |
Remarks
Client code can hook up to this event, it is raised when the text in the entry changes.


::: PROJECT :::
NIO Automotive - concept
::: CATEGORY :::
-
HMI Design|
-
UI Design|
-
UX Design|
-
Design Management
::: YEAR :::
2016 - 2019
::: SYNOPSIS :::
As the EV industry progresses so does the idea of next generation of interfaces and console screen experiences. An idea came of a revoluionary new screen layout that would bring something new to the market. A bigger interaction zone that would connect the driver and copassengers. When it comes to thinking in terms of the future this would be a perfect task. Leading a small team made this concept possible and the result of what could be functional one day left everybody interested in user behaviors of tomorrow.
01 :::
The empathy
The infotainment system of tomorrow needs to evolve and bring new ways of interaction to the driving experience. What is the next step? Ideally it would be a bigger interaction surface by creating a connection between driver and co passenger to use the same surface in harmony. But how would the users behave in this kind of shared experience. Do they need it?
02 :::
The definition
We try to identify the core problems of a smaller console screen surface and try to see what would make the passengers work together. We imagine a bigger screen with more information avaiable for all the passengers and certain ways of everybody being able to interact with it. Brainstorm sessions needed the box to be wide open and innovation ideas to start flooding in.
03 :::
Ideation
We start generating different ideas ideas and quickly the picture start forming of something so interesting that nobody knows how to approach it completely. Only through trial and error we push forward to the next phase of the process. Innovation leaves so much room for new ideas that it sometimes becomes difficult to set a frame where the creativity needs to stop.
04 :::
Prototype
This requires different prototype tests to see how actually users behave while using the interaction spectre and new layout dimensions that are given to them. Needles to say it leaves designers with moments of doubts how to solve certain issues.
" Remember a space walk a day, keeps the doctor away.
Hit me up with your space thoughts! "
Unknown


Your website:
Your nickname:
Autofilled - sign out to use a different nickanme
I agree storytime can see this story
I don't mind my story being published on the website


South Korea, U.S. defense chiefs reaffirm commitment to defend against North Korea
SEOUL (Reuters) - The defense chiefs of South Korea and the United States reaffirmed on Friday U.S. commitment for the defense of South Korea against North Korea and efforts to denuclearize the North, the South’s Defense Minister Jeong Kyeong-doo said.
Jeong said he and U.S. Defense Secretary Mark Esper shared the view that a cost-sharing pact for U.S. troops stationed in South Korea, which is now being negotiated, should be fair and mutually agreeable.


For our hackathon we got the assignment to try to fix a problem during this hard time caused by the Corona-Virus. During this time of quarantine, it's still important to go outside, which is difficult when we all try to stay away from each other to not pass the virus along. You have to guess where less people are at a certain time and go check, which sometimes result into you going home disappointed because there are too much people.
With this site you can see if the place you are going is crowded, but for that information we need your help. You just have to say where, when and how long you're going to a place. Don't worry, the information stays anonymous. You can also add places.
Working together, everyone can help each other find an ideal public place to visit without risk of infection.
Team:


--- layout: page title: "About" description: header-img: ---
Writing all these things down so we can remember them right.


Summer of Freedom
Index
Origin
Evolution
Darkest Hours
Beyond HK
Report
Attacks on CUHK and Siege of the PolyU
November: Police brutality at its height


Each dot is placed on the location of an Eagle Project.Click dots to view picture and information about the project.


Smart Calculator is developed by a group of experienced Java/Android programmers. If you think this tool is good, please rate it. If you have any ideas or comments on this software tool, please send email to us. Our email address is cyzsoft@gmail.com.


Stata mode // Demo code. program define excellentProgram version 15.0 local hi = `1' local bye = `2' local yes = ln(`hi') * This is a comment set obs `= _N + 1' gen neg = 1 - 1 / (1 + exp(score)) /* * Multi line comments are pretty * because they span many lines */ reg y x xi: reg y2 x i.dummy // This is another comment type di "This is a normal string with a `local' $global ${global}" di `"This is a "super string" that takes on anything"' di "string`1'two${three}" bad `"string " "' good `"string " "' // This also works at line starts adopath ++ "${lib}/code/ado/" cap adopath - SITE cap adopath - PLUS /*cap adopath - PERSONAL cap adopath - OLDPLACE*/ forval i = 1 / 4{ cap reg y x`i', robust if `i' == 2 { local c = _b[_cons] local b = _b[x`i'] local x = ln(`i') } } * Something about how mata is really a second language within Stata mata: mata mlib index end MIME types defined: text/stata, text/x-stata.


New York Times Search
Search term
Number of articles to return
1
5
10
Year to begin search
Year to end search
Search
Clear Results
Top Articles
article 1
article 1


--- layout: template1 ---
I am Chinmay Shukla, a Senior Data Scientist at PathAI. I help lead the clinical analysis for many of our liver projects. Particularly, I am focussed on understanding liver pathologies such as Nonalcoholic Steatohepatitis (NASH) and Hepatitis B. We train deep learning models to quantify pathology images and layer on fundamental statistical models to draw insights about these diseases, and the effect of particular drugs. Our work has been published in several leading liver conferences such as EASL and AASLD.
Previously, I helped build and improve recommender systems for fashion and retail clients at True Fit Corporation. I was a graduate student in the Biological and Biomedical Sciences program at Harvard Medical School. My thesis project focussed on characterizing sequence elements responsible for different functions of long non coding RNAs (lncRNAs) under the direction of Dr. Rafael Irizarry.
Outside work, I am passionate about photography, reading non-fiction, hiking and finance. This page provides information on my research projects along with my broader interests. I frequently blog my thoughts about machine learning, statistics, graduate school and life at Outside Two Standard Deviations.


Proof of Concept RF Backscatter Communication Device
Motivation
Radio frequency back scatter devices (also known as retro-reflectors) were first popularized by “the thing” back in the 1940’s. Invented by Leon Thermin (of the Theremin instrument), “the thing” was a covert listening device which functioned by modulating radio frequency signals when audio waves hit it. These devices typically consume increasingly little power (on the order of micro watts) since they only need to modulate RF signals rather than transmit them. In practice this means the device either allows ambient RF to pass through an antenna or passes a weak electrical signal through the antenna. This process only requires a single transistor and an antenna.
Sounds simple right? In theory, yes! I have found that the practice however is riddled with engineering challenges.
My goal with this blog post is to outline a device which is as simple as possible to construct and demonstrate the principles of RF backscatter communications. Hopefully this will help others get started with these techniques.
Parts List
Before we dive too deep, here is a list of the electrical components you’ll need to follow along at home:
- SKY65050 RF Transistor
- 20ish Ohm Resistor (I used a 22 Ohm)
- 1uF capacitor
- 1inch of wire (for creating the antenna)
- SOP 10 .5mm breakout board (This is optional as you could totally solder this all point-to-point with no PCB)
Additionally I’ll be utilizing the following equipment:
- Regulated Bench DC Power Supply (Anything capable of supplying +3VDC @20mA will suffice)
- Arbitrary function generator (Anything capable of producing a 0v-5v 100Khz-5MHz square wave will suffice)
- Oscilloscope (Optional but helpful for debugging)
- Two HackRF One SDRs
- Two 2.4Ghz Antennas (You can borrow some wifi antennas off of a wifi router or order some directional high gain antennas from amazon. I recommend this log periodic antenna)
Backscatter Communication Architecture
Typically backscatter sensors require a radio transmitter and a radio receiver. The transmitter sends energy towards the sensor in the form of radio waves. The sensor then modulates these radio waves and in the process some of these waves are scattered back towards the radio receiver. Fortunately for modern engineers such as ourselves, we have software defined radios which can handle both the transmitting and receiving radio tasks! For the purposes of my demonstration, I’ll be using two HackRF’s. While these SDRs aren’t quite cheap, they are at least readily available for purchase.
Circuit Schematic
As always, I’d recommend doing a quick read through of the SKY65050 data sheet. As far as data sheets go, I found this one in particular to be quite helpful and pretty straightforward to read. It’s important to note several things mentioned in this data sheet, and we can learn a lot from the provided schematic of the SKY65050 evaluation board. That being said, there is also a lot of information in this data sheet which we can safely ignore for now since we aren’t trying to actually achieve this device’s full specs of capability for RF switching. Of particular note: -If we’re thinking of this device/transistor as a switch, the analogy would liken this SKY65050 to a normally closed switch. That means, when no signal is applied to the gate of the transistor, the device allows current to flow from drain to source (and vice versa I believe?) -Typically this transistor wants to be negative biased which would require us to apply less than or equal to -3V to the gate in order to open the switch and prevent current from flowing between the drain and source -The requirement for a negative voltage gate drive signal can be eliminated with an appropriate resistor and capacitor wired in parallel with each other and connect between one of the SKY65050’s source leads and ground (this is described at the bottom of page 2 in the data sheet) -While both the data sheet and my hand drawn schematic above call for a capacitor to be placed between the gate and source of the SKY65050. The data sheet specifies that this capacitor value is supposed to be .1pF. Since .1pF is such a tiny capacitance value, I just totally omitted it and connected the gate and source directly together with a small jumper wire. (I think this capacitor is normally there for impedance matching. If we were really engineering for super high efficiency, we’d probably think harder about including it but for our purposes omitting it seems to work just fine)
Supporting Equipment
3 Volt 0.02A Power Supply
In practice, pHEMT RF switches like the one we’re using can be engineered to switch without a voltage applied to their drain. For the purposes of our demo, we’re applying 3volts with a current limit of 20mA to the drain of the SKY65050. This small voltage is utilized to make the self-biasing scheme work that the switch’s data sheet recommends. You can use any 3v power supply you like but a regulated bench supply is one less thing to debug if things aren’t going to plan.
Frequency Generator
While normally you’d want a backscatter sensor to actually sense something, for the purposes of this demonstration we’d like to utilize a known fake sensed signal to aid in our inevitable debugging efforts. This known signal will be a 5v high peak, 0v low peak square wave generated by a frequency generator. Square wave frequencies between a few KHz on up to several MHz should all work just fine. As you can see above, I’m utilizing a bench top arbitrary function generator. While you could easily also use a micro-controller’s digital output or 555 timer IC to generate a square wave with appropriate frequency and amplitude, the bench top function generator is one less thing to debug if the device isn’t behaving as expected.
Oscilloscope
While an oscilloscope is not absolutely required for this demonstration, I’d recommend utilizing a scope which can sample at the frequency (er, double the frequency because Nyquist, but you get my point) of the square wave we’re applying across the gate of the SKY65050. Again, in our case that’ll be a range between several KHz to several MHz. Most ‘scopes should be able to handle this sort of task. By utilizing a oscilloscope we can directly probe the antenna attached to the backscatter circuit. Ideally you’ll see this antenna oscillating at the same frequency of the applied square wave from the function generator.
GNU Radio Flow graph
I was able to successfully use Michael Ossmann’s CONGAFLOCK gnuradio flow graph file to get this experiment working. There were however a few notable hiccups along the way. I’m attaching the above image as a reference for how things in this flow graph should look but your setup may differ slightly based on how your versions of gnuradio, osmosdr, and python are installed. Here are a few of the hiccups I encountered and some brief notes on getting around them:
- For some reason, I was not able to successfully save the file directly from github and then have it work in gnuradio (upon trying to load these files, gnuradio would spit out a bunch of python parsing errors). I found that viewing raw, selecting all, copy and pasting into a empty file, and then saving as a .grc file resulted in a file which would successfully load into gnuradio
- Once I was able to successfully load the grc file into gnuradio, I found that gnuradio was unable to properly load several of the flow graph blocks due to my installation utilizing Py QT (versus Michael Ossmann’s using WX GUI). This was rectified by going through these blocks one by one and manually replacing them with their Py QT equivalents.
- Finally, my last hurdle was figuring out how to utilize two HackRF One’s on a single computer: The key to this relies on the hackrf_info command from the hackrf command line tools and device arguments field in the osmocon Source block utilized in the gnuradio flow graph. Here are the steps I used:
- Before running any of the gnuradio flow graph stuff, plug both HackRF SDR’s into your computer
- Pop open a terminal and run the $hackrf_info command
- Take a note with the device serial numbers (hopefully hackrf_info will list both a device 0 and device 1)
- Now open the rr-ps2.grc file from Michael Ossmann’s github and double click the osmocon Source block to pop open its propteries window
- In the device arguments field, enter: “hackrf=0”
- This will configure the gnuradio flow graph to utilize the first hackrf plugged into your system.
- You can now run this gnuradio flow graph and it will put one of your HackRF One to work as a reciever.
- To utilize your second HackRF one as a transmitter for this experiment, pop open a terminal window and run the following command: $hackrf_transfer -s 2000000 -a 0 -x 30 -c 64 -f<PHONE_NUMBER> -d [insert the serial number for the second HackRF you found with the hackrf_info command earlier]
This should hopefully give you all the tools and tips you need to recreate my work!
Demonstration Experiment
Open Questions
- According to folks who have recreated Michael Ossmann’s NSAPlayset CONGAFLOCK RF retro-reflector, the 2N7000 transistor should be able to backscatter RF. I tried to recreate their circuits to no success. While I know the 2N7000 cant actually switch at a rate of 2.482GHz, this shouldn’t matter since we are only requiring the tag to switch at 10khz - 500khz. I wonder if perhaps the 2N7000 can’t actually pass the 2.482GHz signal between drain and source while the gate is powered on?
- The SKY65050 data sheet mentions that the transistor’s gate should be attached to 0v in order to make the biasing work but in the provided schematic of the evaluation board, the source and gate are actually connected to each other via a capacitor. I think I’m misunderstanding exactly what capacitor C3 is doing between the source and gate. Do I need C3 in my circuit? Should I disconnect source and gate from each other?


Five Star Travel Vacations
Home
My Account
View Recommendations
(current)
Feedback
Logout
Book a Stay with Us
to be able to use this page.
Previous
Next


[gecode-users] Arbitrary big numbers?
Slav
slavmfm at gmail.com
Wed Aug 2 19:37:30 CEST 2017
Thank for your answer :)
If so, I cannot understand that "ECLiPSe Integers can be as large as fits
into memory, e.g.: 123 0 -27<PHONE_NUMBER>81724"
<http://gki.informatik.uni-freiburg.de/teaching/ws1415/csp/csp11.pdf>,
but Wikipedia
says <https://en.wikipedia.org/wiki/ECLiPSe> that:
ECLiPSe interfaces to external solvers, in particular the Gecode solver
library
How *just* an interface can be able to have numbers bigger than underlying
library?
2017-08-02 0:24 GMT+04:00 Christian Schulte <cschulte at kth.se>:
> Hi, unfortunately there is no support for this. We know that this is high
> on the wish list of many but… I think somebody has tried, if I recall
> correctly, though. Guido, do you have any details.
>
>
>
> Cheers
>
> Christian
>
>
>
> --
>
> Christian Schulte, www.gecode.org/~schulte
>
> Professor of Computer Science, KTH, cschulte at kth.se
>
> Expert Researcher, SICS, cschulte at sics.se
>
>
>
> *From:* users-bounces at gecode.org [mailto:users-bounces at gecode.org] *On
> Behalf Of *Slav
> *Sent:* Tuesday, August 1, 2017 20:23
> *To:* users at gecode.org
> *Subject:* [gecode-users] Arbitrary big numbers?
>
>
>
> Hello. I am modeling algorithm to hardware mapping with *Gecode*.
> Standard *Int::Limits::max* is too small because I want to target systems
> with more than 2^31 memory.
>
> Is there a way to get use of arbitrary-precision arithmetic with Gecode or
> at least 64-bits integers?
>
> I know that Gecode can be built with *MPIR* or *GMP* support, but seems
> those are just for trigonometric operations?
>
> Thanks in advance :)
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.gecode.org/pipermail/users/attachments/20170802/5aa073ac/attachment.html>
More information about the users
mailing list


JSON doesn't support strong typing. But if you set _explicitType on the objects you send, amfPHP will read that as a type.
In this example, you can send an object with _explicitType set to "UserVo1" or "UserVo2". The server only has a PHP class for UserVo1, but can handle both.