Class HS.Controller.StateMachine
StateMachine is used for controlling the states of widgets and determining the outcome of events based on these states
Defined in: controller.js.
| Constructor Attributes | Constructor Name and Description |
|---|---|
|
Manages the App and Modules States and the callbacks associated with them easier to manage
and also furthers the abstraction of the application as a whole.
|
| Field Attributes | Field Name and Description |
|---|---|
|
Describes the current state of the application.
|
|
| Method Attributes | Method Name and Description |
|---|---|
| <static> |
HS.Controller.StateMachine.changeState(module, newState, data)
Changes the state of the module as well as triggers the state change callbacks for the 2 states involved
|
| <static> |
HS.Controller.StateMachine.createState(module, state, cb1, cb2)
This creates a state for a specified module.
|
| <static> |
HS.Controller.StateMachine.deleteModule(module)
deletes the module and all related data in it JS object.
|
| <static> |
HS.Controller.StateMachine.getSecondState(module)
Get a secondary state for modules, if it exists, to allow for more advanced state management
|
| <static> |
HS.Controller.StateMachine.getState(module)
gets the state of the module name passed in the first argument
|
| <static> |
HS.Controller.StateMachine.registerModule(module, states, currState)
This registers a modules with the statemachine.
|
| <static> |
HS.Controller.StateMachine.setSecondState(module, newState, data)
Sets the secondary state for the modules specified, with a newState and data for the callbacks initialized
|
Class Detail
HS.Controller.StateMachine()
Manages the App and Modules States and the callbacks associated with them easier to manage
and also furthers the abstraction of the application as a whole.
- Requires:
- Class
- HS.Classes.State
- HS.Classes.ActionStack
Field Detail
{String}
appState
Describes the current state of the application. Very general state.
{HS.Classes.ActionStack}
escapeStack
{Object}
modules
Method Detail
<static>
{Void}
HS.Controller.StateMachine.changeState(module, newState, data)
Changes the state of the module as well as triggers the state change callbacks for the 2 states involved
- Parameters:
- {String} module
- The module that will be changing its state
- {String} newState
- The new state that the module will be using - Must be in states array from registerModule
- {Object} data
- The module data
- Returns:
- {Void}
<static>
{Boolean}
HS.Controller.StateMachine.createState(module, state, cb1, cb2)
This creates a state for a specified module.
- Parameters:
- {String} module
- - The module that will be changing its state
- {String} state
- - The name of the state the module is in
- {Function} cb1
- - Callback for when the state starts
- {Function} cb2
- - Callback for when the state stops
- Returns:
- {Boolean} Success
<static>
{Void}
HS.Controller.StateMachine.deleteModule(module)
deletes the module and all related data in it JS object.
- Parameters:
- {String} module
- the name of the module that will be deleted
- Returns:
- {Void}
<static>
{String|Boolean}
HS.Controller.StateMachine.getSecondState(module)
Get a secondary state for modules, if it exists, to allow for more advanced state management
- Parameters:
- {String} module
- The state will come from this module if it is available
- Returns:
- {String|Boolean} returns the secondary state of the module
<static>
{String}
HS.Controller.StateMachine.getState(module)
gets the state of the module name passed in the first argument
- Parameters:
- {String} module
- The module that will be changing its state
- Returns:
- {String} returns the modules current state.
<static>
{Boolean}
HS.Controller.StateMachine.registerModule(module, states, currState)
This registers a modules with the statemachine. The statemachine begins keeping track of the
modules state and executes the callbacks associated with the changes it sees.
- Parameters:
- {String} module
- - The name of the module being registered into the system
- {Object[]} states
- - All the possible states - Array of Strings
- {String} currState
- - Current state of the module by name
- Returns:
- {Boolean} Success
<static>
{Void|Boolean}
HS.Controller.StateMachine.setSecondState(module, newState, data)
Sets the secondary state for the modules specified, with a newState and data for the callbacks initialized
- Parameters:
- {String} module
- The name of the module that will have it's secondary state changed.
- {String} newState
- This is the name of state that the
- {Object|String|Number|Array} data
- This is the name of stat
- Returns:
- {Void|Boolean} returns false incase data is missing.


My name is ahmad Im 23 years old , I finished my bechlors degree in 2021 field computer science i have many skills and joined many seminars and volanutry work to develop my personal , recently I learnt german inorder to speak multiple languages,i worked in a factory opearting machines in 2019 , my goal is to complete my studies and finish a master degree as well learning other skills that i like.
list of movies i watched


Enter your information and watch the configuration be generated automatically
hint: hover over labels to get more information about individual optionsdownloadcopy


Id: 236
Name: Mr. Beauregard
Status: Dead
Species: Alien
Type: Parasite
Gender: Male
OriginName: unknown
OriginUrl:
LocationName: Earth (Replacement Dimension)
LocationUrl: https://rickandmortyapi.com/api/location/20
Image: https://rickandmortyapi.com/api/character/avatar/236.jpeg
Episode: ['https://rickandmortyapi.com/api/episode/15']
Url: https://rickandmortyapi.com/api/character/236
Created: 2017-12-30T17:28:28.409Z


T-shirt with half sleeves
T-shirt with half sleeves
T-shirt with half sleeves
T-shirt with half sleeves
T-shirt with half sleeves
T-shirt with half sleeves
T-shirt with half sleeves
T-shirt with half sleeves
T-shirt with half sleeves
T-shirt with half sleeves
T-shirt with half sleeves


An augmented reality project that takes artworks created by other artists that were hung in the OCAD building, and augments them with 3D animated models viewable through a phone. This project explored the possibilities of AR in enhancing the viewing experience of artwork.
The 3D models, created in 3DS Max, were made based upon the original artworks themselves mixed with my own interpretation of the piece.
The augmented reality side of the project was done using the Unity game engine paired with the Vuforia SDK. The artworks were used as the AR image target, both because of their unique and complex design suitable for being the target, as well as for the ease in the positioning of the 3D models. With that in mind, for permanently stationary objects like museum art, a separate target could be placed off to the side for better viewing purposes.


Class: Aws::WAFV2::Types::RateBasedStatementCustomKey
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
|
Class Chain:
self,
Struct
|
|
|
Instance Chain:
self,
::Aws::Structure ,
Struct
|
|
| Inherits: |
Struct
|
| Defined in: | gems/aws-sdk-wafv2/lib/aws-sdk-wafv2/types.rb |
Overview
Specifies a single custom aggregate key for a rate-base rule.
Constant Summary
Instance Attribute Summary
-
#cookie ⇒ Types::RateLimitCookie
rw
Use the value of a cookie in the request as an aggregate key.
-
#forwarded_ip ⇒ Types::RateLimitForwardedIP
rw
Use the first IP address in an HTTP header as an aggregate key.
-
#header ⇒ Types::RateLimitHeader
rw
Use the value of a header in the request as an aggregate key.
-
#http_method ⇒ Types::RateLimitHTTPMethod
rw
Use the request's HTTP method as an aggregate key.
-
#ip ⇒ Types::RateLimitIP
rw
Use the request's originating IP address as an aggregate key.
-
#label_namespace ⇒ Types::RateLimitLabelNamespace
rw
Use the specified label namespace as an aggregate key.
-
#query_argument ⇒ Types::RateLimitQueryArgument
rw
Use the specified query argument as an aggregate key.
-
#query_string ⇒ Types::RateLimitQueryString
rw
Use the request's query string as an aggregate key.
-
#uri_path ⇒ Types::RateLimitUriPath
rw
Use the request's URI path as an aggregate key.
Instance Method Summary
::Aws::Structure
- Included
| #to_hash | Alias for Structure#to_h. |
Instance Attribute Details
#cookie ⇒ Types::RateLimitCookie (rw)
Use the value of a cookie in the request as an aggregate key. Each distinct value in the cookie contributes to the aggregation instance. If you use a single cookie as your custom key, then each value fully defines an aggregation instance.
# File 'gems/aws-sdk-wafv2/lib/aws-sdk-wafv2/types.rb', line 6168
class RateBasedStatementCustomKey < Struct.new( :header, :, :query_argument, :query_string, :http_method, :forwarded_ip, :ip, :label_namespace, :uri_path) SENSITIVE = [] include Aws::Structure end
#forwarded_ip ⇒ Types::RateLimitForwardedIP (rw)
Use the first IP address in an HTTP header as an aggregate key. Each distinct forwarded IP address contributes to the aggregation instance.
When you specify an IP or forwarded IP in the custom key settings,
you must also specify at least one other key to use. You can
aggregate on only the forwarded IP address by specifying
FORWARDED_IP
in your rate-based statement's AggregateKeyType
.
With this option, you must specify the header to use in the
rate-based rule's ForwardedIPConfig
property.
# File 'gems/aws-sdk-wafv2/lib/aws-sdk-wafv2/types.rb', line 6168
class RateBasedStatementCustomKey < Struct.new( :header, :, :query_argument, :query_string, :http_method, :forwarded_ip, :ip, :label_namespace, :uri_path) SENSITIVE = [] include Aws::Structure end
#header ⇒ Types::RateLimitHeader (rw)
Use the value of a header in the request as an aggregate key. Each distinct value in the header contributes to the aggregation instance. If you use a single header as your custom key, then each value fully defines an aggregation instance.
# File 'gems/aws-sdk-wafv2/lib/aws-sdk-wafv2/types.rb', line 6168
class RateBasedStatementCustomKey < Struct.new( :header, :, :query_argument, :query_string, :http_method, :forwarded_ip, :ip, :label_namespace, :uri_path) SENSITIVE = [] include Aws::Structure end
#http_method ⇒ Types::RateLimitHTTPMethod (rw)
Use the request's HTTP method as an aggregate key. Each distinct HTTP method contributes to the aggregation instance. If you use just the HTTP method as your custom key, then each method fully defines an aggregation instance.
# File 'gems/aws-sdk-wafv2/lib/aws-sdk-wafv2/types.rb', line 6168
class RateBasedStatementCustomKey < Struct.new( :header, :, :query_argument, :query_string, :http_method, :forwarded_ip, :ip, :label_namespace, :uri_path) SENSITIVE = [] include Aws::Structure end
#ip ⇒ Types::RateLimitIP (rw)
Use the request's originating IP address as an aggregate key. Each distinct IP address contributes to the aggregation instance.
When you specify an IP or forwarded IP in the custom key settings,
you must also specify at least one other key to use. You can
aggregate on only the IP address by specifying IP
in your
rate-based statement's AggregateKeyType
.
# File 'gems/aws-sdk-wafv2/lib/aws-sdk-wafv2/types.rb', line 6168
class RateBasedStatementCustomKey < Struct.new( :header, :, :query_argument, :query_string, :http_method, :forwarded_ip, :ip, :label_namespace, :uri_path) SENSITIVE = [] include Aws::Structure end
#label_namespace ⇒ Types::RateLimitLabelNamespace (rw)
Use the specified label namespace as an aggregate key. Each distinct fully qualified label name that has the specified label namespace contributes to the aggregation instance. If you use just one label namespace as your custom key, then each label name fully defines an aggregation instance.
This uses only labels that have been added to the request by rules that are evaluated before this rate-based rule in the web ACL.
For information about label namespaces and names, see Label syntax and naming requirements in the WAF Developer Guide.
# File 'gems/aws-sdk-wafv2/lib/aws-sdk-wafv2/types.rb', line 6168
class RateBasedStatementCustomKey < Struct.new( :header, :, :query_argument, :query_string, :http_method, :forwarded_ip, :ip, :label_namespace, :uri_path) SENSITIVE = [] include Aws::Structure end
#query_argument ⇒ Types::RateLimitQueryArgument (rw)
Use the specified query argument as an aggregate key. Each distinct value for the named query argument contributes to the aggregation instance. If you use a single query argument as your custom key, then each value fully defines an aggregation instance.
# File 'gems/aws-sdk-wafv2/lib/aws-sdk-wafv2/types.rb', line 6168
class RateBasedStatementCustomKey < Struct.new( :header, :, :query_argument, :query_string, :http_method, :forwarded_ip, :ip, :label_namespace, :uri_path) SENSITIVE = [] include Aws::Structure end
#query_string ⇒ Types::RateLimitQueryString (rw)
Use the request's query string as an aggregate key. Each distinct string contributes to the aggregation instance. If you use just the query string as your custom key, then each string fully defines an aggregation instance.
# File 'gems/aws-sdk-wafv2/lib/aws-sdk-wafv2/types.rb', line 6168
class RateBasedStatementCustomKey < Struct.new( :header, :, :query_argument, :query_string, :http_method, :forwarded_ip, :ip, :label_namespace, :uri_path) SENSITIVE = [] include Aws::Structure end
#uri_path ⇒ Types::RateLimitUriPath (rw)
Use the request's URI path as an aggregate key. Each distinct URI path contributes to the aggregation instance. If you use just the URI path as your custom key, then each URI path fully defines an aggregation instance.
# File 'gems/aws-sdk-wafv2/lib/aws-sdk-wafv2/types.rb', line 6168
class RateBasedStatementCustomKey < Struct.new( :header, :, :query_argument, :query_string, :http_method, :forwarded_ip, :ip, :label_namespace, :uri_path) SENSITIVE = [] include Aws::Structure end


D-Street Buzz: Metal stocks shine led by JSPL, SAIL; Bharti Infratel, Infosys drag
Nifty Metal jumped 2 percent led by Jindal Steel & Power and SAIL which spiked over 6 percent followed by Tata Steel, Vedanta, JSW Steel, Hindustan Copper, NALCO and Hindalco Industries.
by Sandip DasThe Indian benchmark indices continues trading in the red with Sensex down 195.63 points or 0.48 percent at 40379.54, and the Nifty shed 51.20 points and is trading at 11917.20.
Nifty IT shed 2 percent dragged by Infosys, Tech Mahindra, TCS, Hexaware Tech, HCL Tech, NIIT Tech, Wipro and Tata Elxsi.
Bank Nifty shed half a percent, the top losers being Kotak Mahindra Bank, HDFC Bank, Axis Bank and State Bank of India. However, RBL Bank spiked over 7 percent.
Nifty Metal jumped 2 percent led by Jindal Steel & Power and SAIL which spiked over 6 percent followed by Tata Steel, Vedanta, JSW Steel, Hindustan Copper, NALCO and Hindalco Industries.
Nifty Energy gained half a percent led by NTPC, ONGC, Power Grid, HPCL, GAIL India and Reliance Industries.
The top gainers from Nifty index are Zee Entertainment, Tata Steel, Eicher Motors, JSW Steel and Vedanta.
The top losers included Bharti Infratel, Infosys, Asian Paints, Tata Consultancy Services and UPL.
The most active stocks included Reliance Industries, Zee Entertainment, Infosys, Indiabulls Housing Finance and State Bank of India.
About 1135 shares have advanced, 1263 shares declined, and 152 shares are unchanged.
Disclosure : Reliance Industries Ltd. is the sole beneficiary of Independent Media Trust which controls Network18 Media & Investments Ltd.


It appears that you somehow gave me an invalid search query or something went horribly wrong, please try again with a different query.
If you'd like to know what kind of queries are valid,
read here.
{{search_error}}
{% endif %}
{% if search_query and not search_results %}


Super Maja Salvador
by Manila Standard ShowbizJollibee officially launched award-winning actress, singer, dancer, Maja Salvador
as the newest celebrity endorser of their all-star offering, the Jollibee Super Meals.
Maja, a multi-talented star and self-professed loyal Jollibee fan since her childhood, was a suitable choice for the Philippines’ leading fast-food company. She reveals that she and her family have always loved having her favorite meals during both special occasions and craving moments. She loves combining different Jollibee favorites and especially when she’s super hungry.
Jollibee Global Brand CMO, concurrent JFC Philippines Country Marketing and Jollibee Philippines Marketing Head, Francis Flores
shares, “Maja is a true superstar with so many wonderful talents and a great showbiz personality. Much like our Jollibee Super Meals, she is definitely a lot of great things in one package.”
“With the Super Meals, nandoon lahat,” Maja quips. “Pag sobrang hirap ng scenes ko sa mga teleserye, sasabihin ko talaga, ‘I deserve to eat my favorite meals!’ Lahat kakainin ko, may
combinations, Chickenjoy, Burger Steak and Spaghetti” she shares.
Salvador’s first Jollibee Super Meals TV commercial was released last Oct. 16. The ad showcases her showbiz prowess in acting, singing, dancing, and how having all these skills have made her a true Filipino crowd favorite for so many years.


A simple page put together using HTML & CSS as an assignment for the Web Development lecture of the CS50's Understanding Technology edx's course. I said a simple page.
This is CS50's introduction to technology for students who don’t (yet!) consider themselves computer persons.
You are expected to:
This page is expected to:
This way you don't necessarily have to log into your edx's account to access the content of the course.
It can be useful if you forget your edx password, or if you're not in a safe internet connection or if you want to watch the lecture on your cellphone but you don't have the edx app on it.


Laravel Socialite
Introduction
In addition to typical, form based authentication, Laravel also provides a simple, convenient way to authenticate with OAuth providers using Laravel Socialite. Socialite currently supports authentication with Facebook, Twitter, LinkedIn, Google, GitHub, GitLab, and Bitbucket.
{tip} Adapters for other platforms are listed at the community driven Socialite Providers website.
Installation
To get started with Socialite, use the Composer package manager to add the package to your project's dependencies:
composer require laravel/socialite
Upgrading Socialite
When upgrading to a new major version of Socialite, it's important that you carefully review the upgrade guide.
Configuration
Before using Socialite, you will need to add credentials for the OAuth providers your application utilizes. These credentials should be placed in your application's config/services.php
configuration file, and should use the key facebook
, twitter
, linkedin
, google
, github
, gitlab
, or bitbucket
, depending on the providers your application requires:
'github' => [
'client_id' => env('GITHUB_CLIENT_ID'),
'client_secret' => env('GITHUB_CLIENT_SECRET'),
'redirect' => 'http://example.com/callback-url',
],
{tip} If the
redirect
option contains a relative path, it will automatically be resolved to a fully qualified URL.
Authentication
Routing
To authenticate users using an OAuth provider, you will need two routes: one for redirecting the user to the OAuth provider, and another for receiving the callback from the provider after authentication. The example controller below demonstrates the implementation of both routes:
use Laravel\Socialite\Facades\Socialite;
Route::get('/auth/redirect', function () {
return Socialite::driver('github')->redirect();
});
Route::get('/auth/callback', function () {
$user = Socialite::driver('github')->user();
// $user->token
});
The redirect
method provided by the Socialite
facade takes care of redirecting the user to the OAuth provider, while the user
method will read the incoming request and retrieve the user's information from the provider after they are authenticated.
Optional Parameters
A number of OAuth providers support optional parameters in the redirect request. To include any optional parameters in the request, call the with
method with an associative array:
use Laravel\Socialite\Facades\Socialite;
return Socialite::driver('google')
->with(['hd' => 'example.com'])
->redirect();
{note} When using the
with
method, be careful not to pass any reserved keywords such asstate
orresponse_type
.
Access Scopes
Before redirecting the user, you may also add additional "scopes" to the authentication request using the scopes
method. This method will merge all existing scopes with the scopes that you supply:
use Laravel\Socialite\Facades\Socialite;
return Socialite::driver('github')
->scopes(['read:user', 'public_repo'])
->redirect();
You can overwrite all existing scopes on the authentication request using the setScopes
method:
return Socialite::driver('github')
->setScopes(['read:user', 'public_repo'])
->redirect();
Retrieving User Details
After the user is redirected back to your authentication callback route, you may retrieve the user's details using Socialite's user
method. The user object returned by the user
method provides a variety of properties and methods you may use to store information about the user in your own database. Different properties and methods may be available depending on whether the OAuth provider you are authenticating with supports OAuth 1.0 or OAuth 2.0:
Route::get('/auth/callback', function () {
$user = Socialite::driver('github')->user();
// OAuth 2.0 providers...
$token = $user->token;
$refreshToken = $user->refreshToken;
$expiresIn = $user->expiresIn;
// OAuth 1.0 providers...
$token = $user->token;
$tokenSecret = $user->tokenSecret;
// All providers...
$user->getId();
$user->getNickname();
$user->getName();
$user->getEmail();
$user->getAvatar();
});
Retrieving User Details From A Token (OAuth2)
If you already have a valid access token for a user, you can retrieve their details using Socialite's userFromToken
method:
use Laravel\Socialite\Facades\Socialite;
$user = Socialite::driver('github')->userFromToken($token);
Retrieving User Details From A Token And Secret (OAuth1)
If you already have a valid token and secret for a user, you can retrieve their details using Socialite's userFromTokenAndSecret
method:
use Laravel\Socialite\Facades\Socialite;
$user = Socialite::driver('twitter')->userFromTokenAndSecret($token, $secret);
Stateless Authentication
The stateless
method may be used to disable session state verification. This is useful when adding social authentication to an API:
use Laravel\Socialite\Facades\Socialite;
return Socialite::driver('google')->stateless()->user();
{note} Stateless authentication is not available for the Twitter driver, which uses OAuth 1.0 for authentication.


This crate uses multiple features so choose the docs that have the specific feature you were looking for.


{% extends "layout/base.html" %} {% block content %}
email: {{ client.email }}
** {{ client.name }}'s projects **:
{% for project in projects%}
{% if project.status == 'Completed' %}
Projects that are COMPLETED:
{{ project.title }}:
{{ project.status }}
{{ project.status }}
{{ project.status }}
{{ project.status }}