Soupify™
This is a backend server API for storing recipes and meals we coocked.
RestfulAPI for the re-branding project of Engineering-Students-Recipes Company to their new company, Soupify™. This project was creating as a group project for Web-Development-Environments course @Ben-Gurion University. For more details on the process/design please read the linked README.md file.
Authorization:
A logged-in user must update/delete his resources ONLY! Otherwise, he will receive 403 Unauthorized Error.
Base URL: {your_custom_url}/api
Validity:
All parameters sent to any API endpoint are validated according to the following criteria:
- Required vs Optional
- Numeric vs Alpha vs Alphanumeric
- Unique vs Multiple
- Min/max length of strings
- Min/max values of numbers
- Date formats
Request Headers:
All request headers must have the following fields:
Authorization: Bearer <user's auth JSON Web Token>
You can use this header token for admin access:
Pagination:
Pages and Limits are query parameters which are designed for paginate freely. Pages and Limits must be NUMERIC.
- page is the page number jump to.
- Limit is the number of items per page.
- offest calculate as (page - 1) x limit
"page": 1, 2, 3 ...
"limit": 5, 10, 15 ...
Response Format:
Responses have a specific format. We will use the User model to depict an example, but User can be any other model.
- Successful Response with an array of users:
{
"Pagination": {
"page": 1,
"per_page": 5,
"pre_page": null,
"next_page": 2,
"total": 100,
"total_pages": 20
},
"data": [
{
* user object *
}
]
}
Version: 1.2
BasePath:/serfatio/Soupify/1.0.0
Apache 2.0
http://www.apache.org/licenses/LICENSE-2.0.html
Access
[ Jump to Models ]
Table of Contents
Get current account. (getCurrentAccount)
Returns account information. The token identifies the account.
Return type
Example data
Content-Type: application/json
{
"country" : "Israel",
"role" : "Admin",
"fullName" : "Avihai Serfati",
"id" : 1,
"avatar" : "https://giantbomb1.cbsistatic.com/uploads/scale_medium/0/6087/2437349-pikachu.png",
"login" : "serfati",
"email"<EMAIL_ADDRESS>}
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the response header.
application-json
application/json
Responses
200
User was created.
user
401
Unauthorized.
ApiResponse
500
Internal Server Error.
ApiResponse
Authentication in the system. (auth)
Consumes
This API call consumes the following media types via the request header:
Request body
Return type
Example data
Content-Type: application/json
""
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the response header.
application-json
application/json
Responses
200
Success
inline_response_200
400
No login or password.
ApiResponse
401
Authentication failed. Wrong password.
ApiResponse
404
User not found.
ApiResponse
500
Internal Server Error.
ApiResponse
Up
post /authenticate/password-reset
Reset user password by Q&A. (getUserRecoveryQ)
A user get his question for restore his account.
Consumes
This API call consumes the following media types via the request header:
Request body
Return type
Example data
Content-Type: application/json
{
"question" : "What is the name of the town where you were born?"
}
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the response header.
Responses
200
Success
inline_response_200_2
500
Internal Server Error.
ApiResponse
Up
put /authenticate/password-reset
Reset user password by Q&A. (resetPassword)
A user sends his answer on question to restore his account.
Consumes
This API call consumes the following media types via the request header:
Request body
Return type
Example data
Content-Type: application/json
{
"new_password" : "Uo3HSq6"
}
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the response header.
Responses
200
Success
inline_response_200_1
500
Internal Server Error.
ApiResponse
Root directory (rootGet)
The API root directory deplaying a welcome message
Return type
String
Example data
Content-Type: application/json
""
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the response header.
Responses
200
Welcome to Soupify A.K.A
String
Upload new image to cloudinary API. (uploadNewImage)
Consumes
This API call consumes the following media types via the request header:
Form parameters
localFile (required)
Form Parameter — format: binary
Return type
Example data
Content-Type: application/json
{
"url" : "https://res.cloudinary.com/serfati/image/upload/v1591970948/soupify_zrbnbo.png"
}
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the response header.
application-json
application/json
Responses
201
File uploaded.
ImageUrl
400
The file is not in the request.
ApiResponse
500
Internal Server Error.
ApiResponse
Add a new ingredient (addIngredient)
Consumes
This API call consumes the following media types via the request header:
Request body
Return type
Example data
Content-Type: application/json
""
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the response header.
Responses
201
OK
IngredientWithId
400
Bad request
401
Unauthorized.
ApiResponse
Up
delete /ingredient/{ingredientId}
Delete an igredient (deleteIngredient)
Path parameters
ingredientId (required)
Path Parameter — Id of ingredient to be deleted format: int64
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the response header.
Responses
204
OK
401
Unauthorized.
ApiResponse
Up
get /ingredient/{ingredientId}
Get an ingredient with given id. (getIngredientById)
Path parameters
ingredientId (required)
Path Parameter — format: int64
Return type
Example data
Content-Type: application/json
""
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the response header.
Responses
200
OK
IngredientWithId
404
Object not found
Get all ingredients (listIngredients)
Query parameters
page (optional)
Query Parameter — format: int64
limit (optional)
Query Parameter — format: int64
Return type
Example data
Content-Type: application/json
[ "", "" ]
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the response header.
Responses
200
OK
Up
put /ingredient/{ingredientId}
Update an ingredient (updateIngredient)
Updates ingredient with given id
Path parameters
ingredientId (required)
Path Parameter — format: int64
Consumes
This API call consumes the following media types via the request header:
Request body
Return type
Example data
Content-Type: application/json
""
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the response header.
Responses
200
OK
IngredientWithId
401
Unauthorized.
ApiResponse
404
Ingredient not found
Up
post /metadata/{list}/{recipeId}
Add a user recipes's list iteam metadata with given id. (addMealById)
List is enum
Path parameters
recipeId (required)
Path Parameter — format: int64
list (required)
Path Parameter —
Return type
Example data
Content-Type: application/json
{
"list" : [ 667, 12, 98, 3001, 15 ]
}
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the response header.
Responses
200
OK
metadataList
401
Unauthorized.
ApiResponse
Get all users meta-data (getAllmeta)
Admin endpoint
Query parameters
page (optional)
Query Parameter — format: int64
limit (optional)
Query Parameter — format: int64
Return type
Example data
Content-Type: application/json
[ {
"meal" : [ 15, 20, 22 ],
"watched" : [ 667, 12, 98 ],
"favs" : [ 3001, 2, 115 ],
"personal" : [ 7, 10, 15, 25 ],
"id" : 12331,
"family" : [ 151, 158, 180 ]
}, {
"meal" : [ 15, 20, 22 ],
"watched" : [ 667, 12, 98 ],
"favs" : [ 3001, 2, 115 ],
"personal" : [ 7, 10, 15, 25 ],
"id" : 12331,
"family" : [ 151, 158, 180 ]
} ]
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the response header.
Responses
200
OK
401
Unauthorized.
ApiResponse
403
Forbidden. Only manager can get all.
ApiResponse
500
Internal server error
ApiResponse
Get a user recipes's list metadata. (getMealById)
Path parameters
list (required)
Path Parameter —
Return type
Example data
Content-Type: application/json
{
"list" : [ 667, 12, 98, 3001, 15 ]
}
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the response header.
Responses
200
OK
metadataList
401
Unauthorized.
ApiResponse
Get an user metadata with given id. (getMetaById)
Return user current lists.
Return type
Example data
Content-Type: application/json
{
"meal" : [ 15, 20, 22 ],
"watched" : [ 667, 12, 98 ],
"favs" : [ 3001, 2, 115 ],
"personal" : [ 7, 10, 15, 25 ],
"id" : 12331,
"family" : [ 151, 158, 180 ]
}
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the response header.
Responses
200
OK
metadata
401
Unauthorized.

Return type
Example data
Content-Type: application/json
[ {
"image" : "https://spoonacular.com/recipeImages/535835-556x370.jpg",
"instructions" : "1. cook meat \n 2. prepare salad",
"ready_in_minutes" : 25,
"vegetarian" : true,
"aggregate_likes" : 1217,
"vegan" : true,
"title" : "Spaghetti Carbonara",
"extended_ingredients" : [ {
"amount" : 2.5,
"unit" : "tablespoon",
"name" : "sugar",
"id" : 0
}, {
"amount" : 2.5,
"unit" : "tablespoon",
"name" : "sugar",
"id" : 0
} ],
"gluten_free" : false,
"serving" : 6
}, {
"image" : "https://spoonacular.com/recipeImages/535835-556x370.jpg",
"instructions" : "1. cook meat \n 2. prepare salad",
"ready_in_minutes" : 25,
"vegetarian" : true,
"aggregate_likes" : 1217,
"vegan" : true,
"title" : "Spaghetti Carbonara",
"extended_ingredients" : [ {
"amount" : 2.5,
"unit" : "tablespoon",
"name" : "sugar",
"id" : 0
}, {
"amount" : 2.5,
"unit" : "tablespoon",
"name" : "sugar",
"id" : 0
} ],
"gluten_free" : false,
"serving" : 6
} ]
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the response header.
Responses
200
OK
401
Unauthorized.
ApiResponse
Up
delete /metadata/{list}/{recipeId}
remove a user list's recipe metadata with given id. (removeMealById)
Path parameters
recipeId (required)
Path Parameter — format: int64
list (required)
Path Parameter —
Return type
Example data
Content-Type: application/json
{
"list" : [ 667, 12, 98, 3001, 15 ]
}
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the response header.
Responses
200
OK
metadataList
401
Unauthorized.
ApiResponse
Up
post /metadata/reorder
Reorder user's meal recipes. (reorderMeal)
List is enum
Consumes
This API call consumes the following media types via the request header:
Request body
Return type
Example data
Content-Type: application/json
{
"meal" : [ 15, 20, 22 ],
"watched" : [ 667, 12, 98 ],
"favs" : [ 3001, 2, 115 ],
"personal" : [ 7, 10, 15, 25 ],
"id" : 12331,
"family" : [ 151, 158, 180 ]
}
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the response header.
Responses
200
OK
metadata
401
Unauthorized.
ApiResponse
Up
post /recipe/{recipeId}/ingredients/{ingredientId}
Add an ingredient to a recipe (addIngredientToRecipe)
Add an ingredient to a given recipe
Path parameters
recipeId (required)
Path Parameter — format: int64
ingredientId (required)
Path Parameter — format: int64
Query parameters
amount (required)
Query Parameter —
unit (required)
Query Parameter —
Return type
Example data
Content-Type: application/json
{
"amount" : 2.5,
"unit" : "tablespoon",
"name" : "sugar",
"id" : 0
}
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the response header.
Responses
201
OK
IngredientInRecipe
400
Bad request
404
Object not found
Create a new recipe. (createRecipe)
Consumes
This API call consumes the following media types via the request header:
Request body
Return type
Example data
Content-Type: application/json
""
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the response header.
Responses
201
recipe was created.
RecipeWithId
400
Properties not set.
ApiResponse
401
Unauthorized.
ApiResponse
403
Forbidden. Only admin can create
ApiResponse
500
Internal Server Error.
ApiResponse
Up
delete /recipe/{recipeId}/ingredients/{ingredientId}
Remove ingredient from a recipe. (deleteIngredientFromRecipe)
Remove ingredient from a recipe.
Path parameters
recipeId (required)
Path Parameter — format: int64
ingredientId (required)
Path Parameter — format: int64
Responses
204
OK
404
Object not found
Deletes a recipe (deleteRecipe)
Admin endpoint
Path parameters
id (required)
Path Parameter — Recipe id to delete format: int64
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the response header.
Responses
204
OK
401
Unauthorized.
ApiResponse
403
Forbidden. Only admin can update
ApiResponse
404
recipe not found.
ApiResponse
500
Internal Server Error.
ApiResponse
Get a recipe by {id}. (getDishById)
Retrive a recipe from database or from spooncaular API with given id according to local parameter. local=true => DB. for now only 100-160 reicpe`s ids inserted to database.
Path parameters
id (required)
Path Parameter — recipe id.
Query parameters
local (optional)
Query Parameter — recipe id.
Return type
Example data
Content-Type: application/json
""
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the response header.
application-json
application/json
Responses
200
OK
RecipeWithId
401
Unauthorized.
404
recipe not found.
ApiResponse
500
Internal Server Error.
ApiResponse
List all recipes from database (listRecipes)
Retrive all recipes from database.
Query parameters
page (optional)
Query Parameter — format: int64
limit (optional)
Query Parameter — format: int64
Return type
Example data
Content-Type: application/json
[ "", "" ]
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the response header.
Responses
200
OK
Display 3 random recipes from Spooncaular API (recipesRandGet)
Display 3 random recipes from Spooncaular API
Return type
Example data
Content-Type: application/json
[ "", "" ]
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the response header.
Responses
200
OK
404
recipe not found.
ApiResponse
500
Internal Server Error.
ApiResponse
Search for recipes from Spooncaular API (recipesSearchGet)
Query parameters
query (required)
Query Parameter —
cuisine (optional)
Query Parameter —
diet (optional)
Query Parameter —
intolerances (optional)
Query Parameter —
number (optional)
Query Parameter — How many Recipes will be returned default: 5
instructionsRequired (optional)
Query Parameter — format: int64
offset (optional)
Query Parameter — format: int16
page (optional)
Query Parameter — format: int16
limit (optional)
Query Parameter — format: int16
sort (optional)
Query Parameter —
Return type
Example data
Content-Type: application/json
[ "", "" ]
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the response header.
Responses
200
OK
404
recipe not found.
ApiResponse
500
Internal Server Error.
ApiResponse
Update a recipe. (updateDish)
Path parameters
id (required)
Path Parameter — recipe id.
Consumes
This API call consumes the following media types via the request header:
Request body
Return type
Example data
Content-Type: application/json
{
"image" : "https://spoonacular.com/recipeImages/535835-556x370.jpg",
"instructions" : "1. cook meat \n 2. prepare salad",
"ready_in_minutes" : 25,
"vegetarian" : true,
"aggregate_likes" : 1217,
"vegan" : true,
"title" : "Spaghetti Carbonara",
"extended_ingredients" : [ {
"amount" : 2.5,
"unit" : "tablespoon",
"name" : "sugar",
"id" : 0
}, {
"amount" : 2.5,
"unit" : "tablespoon",
"name" : "sugar",
"id" : 0
} ],
"gluten_free" : false,
"serving" : 6
}
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the response header.
application-json
application/json
Responses
200
recipe was updated.
Recipe
401
Unauthorized.
ApiResponse
403
Forbidden. Only admin can update
ApiResponse
404
recipe not found.
ApiResponse
500
Internal Server Error.
ApiResponse
Up
put /recipe/{recipeId}/ingredients/{ingredientId}
Update the amount/unit of ingredient in a recipe (updateIngredientAmount)
Update the amount or unit of ingredient in a recipe
Path parameters
recipeId (required)
Path Parameter — format: int64
ingredientId (required)
Path Parameter — format: int64
Query parameters
amount (required)
Query Parameter —
unit (required)
Query Parameter —
Return type
Example data
Content-Type: application/json
{
"amount" : 2.5,
"unit" : "tablespoon",
"name" : "sugar",
"id" : 0
}
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the response header.
Responses
200
OK
IngredientInRecipe
400
Bad request
404
Object not found
Create a new user. (createUser)
Create a new user is system. Role by default - client.
Consumes
This API call consumes the following media types via the request header:
Request body
Return type
Example data
Content-Type: application/json
{
"country" : "Israel",
"role" : "Admin",
"fullName" : "Avihai Serfati",
"id" : 1,
"avatar" : "https://giantbomb1.cbsistatic.com/uploads/scale_medium/0/6087/2437349-pikachu.png",
"login" : "serfati",
"email"<EMAIL_ADDRESS>}
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the response header.
application-json
application/json
Responses
201
User was created.
user
400
Login or password not exist
ApiResponse
409
User already exist
ApiResponse
500
Internal Server Error.
ApiResponse
Get all users (getAllUsers)
This Admin endpoint is designed to get all users according to the specified query paramaters. All query parameters are optional. If no parameter is set, it returns all users according to the default values of limit and offset.
Query parameters
page (optional)
Query Parameter — format: int64
limit (optional)
Query Parameter — format: int64
Return type
Example data
Content-Type: application/json
[ {
"country" : "Israel",
"role" : "Admin",
"fullName" : "Avihai Serfati",
"id" : 1,
"avatar" : "https://giantbomb1.cbsistatic.com/uploads/scale_medium/0/6087/2437349-pikachu.png",
"login" : "serfati",
"email"<EMAIL_ADDRESS>}, {
"country" : "Israel",
"role" : "Admin",
"fullName" : "Avihai Serfati",
"id" : 1,
"avatar" : "https://giantbomb1.cbsistatic.com/uploads/scale_medium/0/6087/2437349-pikachu.png",
"login" : "serfati",
"email"<EMAIL_ADDRESS>} ]
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the response header.
application-json
application/json
Responses
200
Array of users
401
Unauthorized.
ApiResponse
403
Forbidden. Only manager can get all.
ApiResponse
500
Internal server error
ApiResponse
Get a user by {id}. (getUserById)
Path parameters
id (required)
Path Parameter — User id.
Return type
Example data
Content-Type: application/json
{
"country" : "Israel",
"role" : "Admin",
"fullName" : "Avihai Serfati",
"id" : 1,
"avatar" : "https://giantbomb1.cbsistatic.com/uploads/scale_medium/0/6087/2437349-pikachu.png",
"login" : "serfati",
"email"<EMAIL_ADDRESS>}
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the response header.
application-json
application/json
Responses
200
User was created.
user
401
Unauthorized.
ApiResponse
404
User not found by id.
ApiResponse
500
Internal Server Error.
ApiResponse
Update a user. (updateUser)
Update a user.
Path parameters
id (required)
Path Parameter — User id.
Consumes
This API call consumes the following media types via the request header:
Request body
Return type
Example data
Content-Type: application/json
{
"message" : "message"
}
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the response header.
application-json
application/json
Responses
200
User was updated.
ApiResponse
400
User with new login already exist.
ApiResponse
401
Unauthorized.
ApiResponse
403
Forbidden. Admin can update everyone, others can update themselves. Property role, isBlocked can update only admin.
ApiResponse
404
User not found.
ApiResponse
500
Internal Server Error.
ApiResponse
[ Jump to Methods ]
Table of Contents
ApiResponse
ImageUrl
Ingredient
IngredientInRecipe
IngredientWithId
Recipe
RecipeWithId
body
body_1
body_2
creditionals
cuisine
diet
inline_response_200
inline_response_200_1
inline_response_200_2
intolerance
list
metadata
metadataList
role
sorting
user
userUpdatableInfo
url (optional)
example: https://res.cloudinary.com/serfati/image/upload/v1591970948/soupify_zrbnbo.png
id
name (optional)
example: sugar
amount
example: 2.5
unit
example: tablespoon
title
example: Spaghetti Carbonara
ready_in_minutes
example: 25
aggregate_likes
example: 1217
serving
example: 6
vegetarian
example: true
vegan
example: true
gluten_free
example: false
image
example: https://spoonacular.com/recipeImages/535835-556x370.jpg
instructions
example: 1. cook meat
2. prepare salad
extended_ingredients
title
example: Spaghetti Carbonara
ready_in_minutes
example: 25
aggregate_likes
example: 1217
serving
example: 6
vegetarian
example: true
vegan
example: true
gluten_free
example: false
image
example: https://spoonacular.com/recipeImages/535835-556x370.jpg
instructions
example: 1. cook meat
2. prepare salad
extended_ingredients
id (optional)
login
String User Answer for recovery Question
example: serfati
answer
String User Answer for recovery Question
example: Dimona
login
String User Answer for recovery Question
example: serfati
login
String User login for auth or registration
example: serfati
password
example: 12345
id (optional)
example: 1
login (optional)
example: serfati
role (optional)
avatar (optional)
String User icon. You can get the icon along the path: \files{avatar}
example: https://giantbomb1.cbsistatic.com/uploads/scale_medium/0/6087/2437349-pikachu.png
fullName (optional)
example: Avihai Serfati
email (optional)
example<EMAIL_ADDRESS>country (optional)
example: Israel
token (optional)
example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwicm9sZSI6IkFkbWluIiwiaWF0IjoxNTkxMzA3MTQ2fQ
new_password (optional)
example: Uo3HSq6
question (optional)
example: What is the name of the town where you were born?
User recipes metadata lists in system.
id
example: 12331
watched (optional)
example: [667,12,98]
favs (optional)
example: [3001,2,115]
personal (optional)
example: [7,10,15,25]
meal (optional)
example: [15,20,22]
family (optional)
example: [151,158,180]
list (optional)
example: [667,12,98,3001,15]
User role in system. Define user privileges in the system.
id (optional)
example: 1
login (optional)
example: serfati
role (optional)
avatar (optional)
String User icon. You can get the icon along the path: \files{avatar}
example: https://giantbomb1.cbsistatic.com/uploads/scale_medium/0/6087/2437349-pikachu.png
fullName (optional)
example: Avihai Serfati
email (optional)
example<EMAIL_ADDRESS>country (optional)
example: Israel
login (optional)
example: serfati
password (optional)
example: 12345
role (optional)
avatar (optional)
String User avatar. format: string
example: https://giantbomb1.cbsistatic.com/uploads/scale_medium/0/6087/2437349-pikachu.png
fullName (optional)
example: Avihai Serfati
email (optional)
example<EMAIL_ADDRESS>country (optional)
example: Israel
question (optional)
String Question for the password recovery
example: What is the name of the town where you were born?
answer (optional)
String Answer for the question for recover password
example: Dimona


SheetJS Fraction Live Demo Source Code Repo Issues? Something look weird? Click here and report an issue


Improving your emotional intelligence can lead to a successful meaningful life. I used to think it's a heavy subject to discuss let alone to think this way as a habit. After reading the chapter I'm open to change my thinking and ready to embrace the posibilities. I noted down the three steps mentioned in the book as a reminder to myself:
Quite relaxing. I feel like I can control and re-organise my chain of thoughts during the two mins midfulness. The next challenge is how to make it a habit.


Vehicle Rego Detetction
Select a vehicle image
Remove image
Detect text
Image was sucessfully uploaded into bucket and processed below details


Can Captain Ironhide take non-attack damage from my cards?
Yes. For example, if you play Photon Bomb, your Captain Ironhide will be damaged.
What counts as my opponent’s cards?
Any of your opponent’s characters or battle cards (actions and upgrades) count. Basically, anything that you didn’t bring to the game.
If my opponent plays a card that moves damage counters onto Captain Ironhide from another character, will it work?
Yes. Moving damage counters isn’t the same as doing damage.
If the Weapon in my hand says “Put on Melee characters only,” can I swap it onto Captain Ironhide?
No, because Captain Ironhide isn’t a Melee character. Any “Put on … only” restrictions will apply. However, because you’re not playing the Weapon from your hand, any restrictions that apply to playing that card won’t matter.


Two friends killed in early morning crash near Lipis
by Nik Sukry RamliKUANTAN: A road trip to Kuala Lumpur ended in tragedy for three friends when two of them were killed in an accident at KM86 of the Central Spine Road (CSR) near Lipis early this morning.
The 4.45am incident saw the Perodua Viva they were in crashed into the rear of a lorry which was believed to have stopped on the emergency lane.
Lipis police chief Superintendent Azli Mohd Noor said the victims were identified as Mohd Shaiful Abdul Manaf, 42, and Wan Khairul Anwar Wan Kamarunzaman, 32.
"They were on their way to KL from Kelantan.
"The driver, 39-year old Nukman Salleh, was believed to have dozed off before crashing into the back of the lorry, laden with used clothes, that was parked on the emergency lane.
"Both Mohd Saiful, who was sitting at the front passenger seat, and Wan Khairul Anwar, who was sitting at the back, died on the spot due to head and body injuries," he said when contacted today.
Azli said the lorry driver and conductor escaped unhurt.
"The victims' bodies have been brought to Kuala Lipis Hospital for post-mortem before being released to the respective families," he said.
Initial investigations, he said, found that the road was wet and foggy due to an earlier rainfall.
The case is being investigated under Section 41(1) Road Transport Act 1987.


Shiny interfaces and graphical functions for multivariate analysis results exploration.
| Version: | 0.3.4 |
| Imports: | shiny (≥ 1.0), DT, dplyr (≥ 0.7), tidyr, ggplot2, highr, scatterD3 (≥ 0.8.2) |
| Suggests: | FactoMineR, ade4 (≥ 1.7-13), GDAtools, MASS, testthat, knitr, rmarkdown |
| Published: | 2018-09-13 |
| Author: | Julien Barnier [aut, cre] |
| Maintainer: | Julien Barnier <julien.barnier at ens-lyon.fr> |
| BugReports: | https://github.com/juba/explor/issues |
| License: | GPL (≥ 3) |
| URL: | https://github.com/juba/explor |
| NeedsCompilation: | no |
| Materials: | README NEWS |
| CRAN checks: | explor results |
| Reference manual: | explor.pdf |
| Vignettes: |
[en] Interactive MCA/PCA results exploration with explor [fr] Exploration interactive de résultats d'ACP/ACM avec 'explor' |
| Package source: | explor_0.3.4.tar.gz |
| Windows binaries: | r-devel: explor_0.3.4.zip, r-release: explor_0.3.4.zip, r-oldrel: explor_0.3.4.zip |
| OS X binaries: | r-release: explor_0.3.4.tgz, r-oldrel: explor_0.3.4.tgz |
| Old sources: | explor archive |
| Reverse depends: | R.temis |
Please use the canonical form https://CRAN.R-project.org/package=explor to link to this page.


WordPress sure is great…
- Plugins
- Themes
- WYSIWYG Editing
The Rockstars of WordPress
The Roadies of WordPress
What is a Roadie?
An individual who is responsible for setting up, tearing down, and generally maintaining the equipment for a band.
Without roadies, the rockstars can't perform at different venues.
Without an export you're content is stuck!
How Content is Stored within WordPress
The Database
- Content (Post/Page Stuff, custom fields)
- Comments
- Terms and Relationships
- Options/Widgets/Settings
The Main Folders
wp-content Holds Your Stuff!
Inside of wp-content
- Uploads holds all of your uploaded files
Media are stored in the Uploads folder
But they are referenced by Posts stored in the database.
Why might I need Export/Import?
- Changing Web Hosts
- Moving from WordPress.com to your own WordPress site
- Set-up a staging or development version of your site
- Moving from some other CMS to WordPress
Where are the Export/Import features?
Under the Tools menu.
Exporting
Getting stuff out of WordPress.
The Export Screen
A WXR File Includes
- Posts, Pages, and Custom Post Types
- Comments
- Custom Fields
- Categories, Tags, and Custom Taxonomies
- Users
A WXR File Doesn't Include
- Your Uploaded Media Files*
- Most Options/Settings
- Widgets
How can we migrate those things not included in the WXR file?
Uploaded Media Files
- Download them on import
- Copy your wp-content/uploads folder
Downloading Media Files on Import
Handy when it works but unreliable.
Copying the Uploads Folder
- FTP into your server
- Navigate to /wp-content
- Download the Uploads folder to your computer
- Might as well download the entire wp-content folder
Exporting Options/Settings
- Lots of settings aren't exported
- Some plugins offer setting import/export functionality
- Document the settings and recreate them by hand
WXR Export Can Fail
- Too much stuff!
- Export script can timeout
- Server can run out of memory
Straight Database Backup
If the WXR Export File doesn't work, you'll have to backup the database.
Importing
Getting stuff into WordPress.
“Built-in” Import Plugins
Variety of Other Import Plugins
Importing Your WXR File
- Upload the file
- Map users from the WXR file to users in your new site
- Import attachments?
- View your imported items
If you downloaded your Uploads folder…
Upload it to your new site so the media files are in place.
Migrating
From another CMS to WordPress.
See if anyone has done the heavy lifting
- Search the WordPress plugin repository for an importer
- Search Google to see if anyone has done the same type of migration
Otherwise Prepare To Roll Your Own Solution
WARNING: This is Developer Territory
A database dump of the old site might be helpful…
but you'll probably be better off scraping the site instead!
Prep Work
- What are the different pieces?
- How does the content map to WordPress?
- What custom functionality do you need?
- How will the old content redirect to the new content?
- What content can die?
Set-up A Local Environment
Write a Script to Download and Parse Pages
- simple_html_dom - Download HTML pages and parse them like jQuery.
- cURL - For downloading images or other contnet.
Tips for your Scraping Script
- Makes it modular
- Use AJAX calls to prevent your PHP script from timing out
- Store your data in a database so you can use it again later
Test, test, test!
It will take many runs to get it just right.
After You Have Scraped All of the HTML…
Post-Migration
Make a backup of the old site, preferably easily accessible.
Helpful Tools
Plugins and resources that come in handy after a migration.
Preview Your Search & Replaces
But be careful, there is no undo!
Link Monitoring Tools
To see what broke after a migration.


--- layout: default team: gr8g8r image1: egg.jpg members: - name: Jose Leon image: jose_sq.jpg title: Slideman desc: 3-sentence description here country: Costa Rica fun: He eats everything, and is always hungry - name: Guido Fileppo image: guido_sq.jpg title: Accounting guy desc: 3-sentence description here country: Italy fun: Speaks all latin languages, challenge him - name: Anette Gu image: anette_sq.jpg title: Finance girl desc: 3-sentence description here country: China fun: Speaks perfect French - name: Jonathan Martel-Gagnon image: johnathan_sq.jpg title: Engineering boy desc: 3-sentence description here country: Canada (Quebec) fun: He has the funniest swearing words in French (ask him) - name: Mehran Zaker image: mehran_sq.jpg title: Money guy desc: 3-sentence description here country: Iran fun: He was kicked out of the 16J FB group once ---
One full paragraph introduction to the team. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam viverra euismod odio, gravida pellentesque urna varius vitae. Sed dui lorem, adipiscing in adipiscing et, interdum nec metus. Mauris ultricies, justo eu convallis placerat, felis enim.
{{ member.desc }}
Country: {{ member.country }}
Fun Fact: {{ member.fun }}


Edo gets new police commissioner
by Agency ReportA new Commissioner of Police has assumed office in the Edo Command of the Nigerian Police Force.
He is Lawal Jimeta, former Commissioner, Police Mobile, Abuja.
News Agency of Nigeria (NAN), reports that Mr Jimeta officially took over from outgone CP, Mohammed DanMalam, now an Assistant Inspector-General of Police (AIG).
Mr Jimeta, in his maiden remarks on Thursday, pledged to be fair, firm, and humane in the discharge of his responsibilities in the state.
He also promised to follow the footprints of his predecessor to ensure that the state was well secured, protected and criminals eradicated from the state.
The new CP who noted that his predecessor had achieved a lot in the fight against crime and criminality in Edo further promised to uphold the human rights of all stakeholders in the state.
READ ALSO: My service year purged me of tribal stereotype – Graduating corps member
He, however, solicited the cooperation of all to ensure the safety and protection of every resident of the state.
He stressed that he would ensure that the policies of the Inspector-General of Police, Mohammed Adamu, were strictly enforced in the state by officers and men in the command.
Earlier, Mr DanMalam revealed that the Edo command had 55 Police Divisions and 10 Area Commands.
He charged the new CP to work in line with the 1999 constitution which saddled the responsibility to protect and secure the lives of citizens of the country on the force.
He expressed optimism that his successor would achieve greater success in the state, and charged him on the need for partnership with stakeholders.
Mr Jimeta is the 41st commissioner of police in the history of the command.
(NAN)


The Server Status dialogue displays the current connections to each database, the user that is connected, the process ID, the client address and start time (on PostgreSQL 8.1 and above), the current query being executed (if any), and the query start time (where appropriate) on PostgreSQL 7.4 and above on the Status tab.
The Cancel button allows cancelling the query running on a specific backend. Terminate will shutdown the backend. Attention: Both functions should be used carefully, as the interrupt the client's work ungracefully. Particularly, the terminate function might disturb the function of the complete server, force it to restart its services and thus interrupt all user connections. You should use this function only if the server is seriously injured by a backend you can't control otherwise.
The Locks tab shows the current locks outstanding in the PostgreSQL Lock Manager. This information can be useful when attempting to debug or track down deadlocks on your server. Not all information is necessarily shown for each lock. In particular, the Relation name may be shown as an OID instead of by it's name, if the relation is in a different database to that being monitored.
Note: When the pg_locks view is accessed as is the case whenever this dialgue is open, PostgreSQL's internal lock manager data structures are momentarily locked, and a copy is made for the dialogue to display. This ensures that the dialogue displays a consistent set of results, while not blocking normal lock manager operations longer than necessary. Nonetheless there could be some impact on database performance if this view is read often.
On a PostgreSQL server running version 8.1 or newer, the Transaction tab allows you to view outstanding prepared transactions. Prepared transactions are an aspect of Two Phase Commit (2PC), used in distributed transaction managers. Usually, prepared transactions are handled by the transaction manager. In case of a failure, it might be necessary to commit or rollback a transaction manually; you can use the 'Commit' or 'Rollback' buttons to do this.
The Logfile tab shows server log files, if configured in postgresql.conf (redirect_stderr or logging_collector = true, log_destination = 'stderr' and log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' on PostgreSQL or 'enterprisedb-%Y-%m-%d_%H%M%S.log' on EnterpriseDB's Advanced Server). pgAdmin will extract a time stamp from the logfile in a separate column, if the log_line_prefix is configured accordingly. We recommend using '%t:' as format, because more complicate formats might not be interpretable correctly.
The combobox allows you to select historic logfiles or the current one. If "current" is selected, pgAdmin will correctly detect logfile rotation and continue to display them.
The "Rotate" button will force the server to rotate its server logfile. This function is currently not implemented on 8.0 servers; if you think this is valuable for you please contact us.
Please note that displaying the logfile requires additional functions loaded on the server side, which are available for 8.x servers only.
To refresh the display click the Refresh button. The display will also be automatically refreshed based on the refresh interval specified. Note that you have one refresh rate per tab.
You can hide panes by clicking on their close button or by clicking on the appropiate menu item in the View menu.
You can also copy some lines on the tabs' list. Select the lines you want to copy and click on the Copy button of the toolbar.


We exchange solutions!
- seize value-added platforms
- unleash next-generation supply-chains
- architect bleeding-edge functionalities
- morph integrated applications
- mesh viral niches
- optimize dynamic partnerships
- expedite intuitive e-commerce
- generate killer partnerships
- unleash 24/365 systems
- visualize magnetic deliverables
- whiteboard B2C methodologies
- morph open-source eyeballs


Utilities for signing requests. More...
Static Public Member Functions | |
| (void) | + signRequest:endpoint:credentials: |
| (NSString *) | + signRequestV3:sts:credentials: |
| (NSString *) | + getV2StringToSign:request: |
| (NSString *) | + getV3StringToSign:nonce: |
| (NSString *) | + nonce |
| (NSString *) | + amznAuthorization:algorithm:signature: |
| (NSString *) | + HMACSign:withKey:usingAlgorithm: |
| Compute a keyed hash of some data with a specified key and algorithm. |
Utilities for signing requests.
| + (NSString * AmazonAuthUtils.)HMACSign: | (NSData *) | data | ||
| withKey: | (NSString *) | key | ||
| usingAlgorithm: | (CCHmacAlgorithm) | algorithm | ||
Compute a keyed hash of some data with a specified key and algorithm.
| data | The data to sign | |
| key | The key to sign the data with | |
| algorithm | Which HMAC algortithm to use. Currently support kCCHmacAlgSHA1 and kCCHmacAlgSHA256 . |


{% extends "base.html" %}
{% block title %}
Overview for {{ user.username }}
{% endblock title %}
{% block content %}
{% include "tictactoe/game_list_snippet.html" with header="Games waiting for you" games_list=waiting_games %}
{% include "tictactoe/game_list_snippet.html" with header="Other active games" games_list=finished_games %}
{% include "tictactoe/game_list_snippet.html" with header="Games waiting for you" games_list=other_games %}


The Ctrls are at the best position. Whether you use an external keyboard or use the embedded
keyboard of a laptop, you work in a uniform way with this keyboard layout. You don't have
to press the Ctrl key with your palm or pinky, you don't need the Space key to play a dual role.
With a software dual key setup, we can make the ; key serving as Alt when holding on, so our
hands are at the home row most of the time when typing or editing. The CapsLock may also
serve as a dual role key or map to Esc as you like.
The Tab and the [ key may serve as Win when holding on. Convenient when using tilling
window managers such as i3wm or sway which use the Win key as mode key.
My right thumb hurts after pressing a heavy Space key and bending over to press the Alt key
for nearly six months. So the heavy Space key gets smaller and is splitted into two parts in this
keyboard layout.


Are you sure you want to delete this Bookmark?
Title :Title of the selected bookmark in the previous page
URL :URL of the selected bookmark
Keywords :Keywords of the selected bookmark


Man Utd dealt triple injury blow with Marcus Rashford a doubt for Bournemouth
Marcus Rashford, Harry Maguire and Victor Lindelof could all miss Saturday's clash on the south coast
by David McDonnell, https://www.mirror.co.uk/authors/david-mcdonnell/Marcus Rashford is a doubt for Manchester United's trip to Bournemouth on Saturday, along with Harry Maguire and Victor Lindelof.
Rashford, United's match-winner in Wednesday's 2-1 Carabao Cup win at Chelsea with a spectacular 35-yard free-kick, came off late on at Stamford Bridge with a knee injury.
The England striker will be assessed by United's medical staff today, along with Maguire and Lindelof, before a decision is made on whether they can travel to Bournemouth.
Rashford is in superb form at the moment, with four goals in his last four games for United, taking his tally to eight already for the season – just five short of his best career tally.
“It's still early,” said Solskajer. “Hopefully we can get them back on the pitch tomorrow, they had some treatment yesterday, a little more treatment today, light session but I can't exactly tell you.
“Since Anthony [Martial] has come back, Marcus has blossomed.
“He's probably happier facing goal, being direct, driving at people, taking players on rather than being a target man with his back to goal.
“But Marcus wants to master all the skills, he's only just turned 22, so maybe playing as a two with Anthony, maybe as a three against Norwich or wide, like we did against Chelsea.
“There are different ways of playing and it was important he stepped up for that penalty against Chelsea.”
United are enjoying a revival, with three wins in a row on the road, with Solskjaer claiming the progress he has seen on the training pitch, despite poor results early on, is starting to pay off.
“It's hard to evaluate after just 10 league games and cup games,” said Solskjaer.
“But we've played really well at times, developed a team spirit, an identity, more intensity and aggression in the team and suffered a bit from injuries.
“But that's football, sometimes you get luck of the dice. The game on Wednesday was decided by an unbelievable strike by Marcus.
“Against Partizan we defended really well, some great last ditch defending there, and Norwich was a good game.
“The confidence is getting better, getting players back from injury helps. In football it's not every far from failure to success or other way round.
“The international break came at a great time for us.
“We prepared for the Liverpool game and when you get a decent performance and result against the league leaders, it gives you a bit more energy.
“From then on the boys were happy with the work we did, the change of system helped and the coaches have done a great job.
“Every game is a new opportunity to show what you can do and that's part of being here.
“I didn't play every game. Every game I played was a chance to show the manager I should play the next one and hopefully these boys feel like that.”


from .client import BaseClient
[docs]class NodesClient(BaseClient):
[docs] def info(self, node_id=None, metric=None, params={}, callback=None, **kwargs):
"""
The cluster nodes info API allows to retrieve one or more (or all) of
the cluster nodes information.
`<http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/cluster-nodes-info.html>`_
:arg node_id: A comma-separated list of node IDs or names to limit the
returned information; use `_local` to return information from the
node you're connecting to, leave empty to get information from all
nodes
:arg metric: A comma-separated list of metrics you wish returned. Leave
empty to return all. Choices are "settings", "os", "process",
"jvm", "thread_pool", "network", "transport", "http", "plugin"
:arg flat_settings: Return settings in flat format (default: false)
:arg human: Whether to return time and byte values in human-readable
format., default False
"""
query_params = ('flat_settings', 'human',)
params = self._filter_params(query_params, params)
url = self.mk_url(*['_nodes', node_id, metric], **params)
self.client.fetch(
self.mk_req(url, method='GET', **kwargs),
callback = callback
)
[docs] def shutdown(self, node_id=None, params={}, callback=None, **kwargs):
"""
The nodes shutdown API allows to shutdown one or more (or all) nodes in
the cluster.
`<http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/cluster-nodes-shutdown.html>`_
:arg node_id: A comma-separated list of node IDs or names to perform the
operation on; use `_local` to perform the operation on the node
you're connected to, leave empty to perform the operation on all
nodes
:arg delay: Set the delay for the operation (default: 1s)
:arg exit: Exit the JVM as well (default: true)
"""
query_params = ('delay', 'exit',)
params = self._filter_params(query_params, params)
url = self.mk_url(*['_cluster', 'nodes', node_id, '_shutdown'], **params)
self.client.fetch(
self.mk_req(url, method='POST', **kwargs),
callback = callback
)
[docs] def stats(self, node_id=None, metric=None, index_metric=None, params={}, callback=None, **kwargs):
"""
The cluster nodes stats API allows to retrieve one or more (or all) of
the cluster nodes statistics.
`<http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/cluster-nodes-stats.html>`_
:arg node_id: A comma-separated list of node IDs or names to limit the
returned information; use `_local` to return information from the
node you're connecting to, leave empty to get information from all
nodes
:arg metric: Limit the information returned to the specified metrics.
Possible options are: "_all", "breaker", "fs", "http", "indices",
"jvm", "network", "os", "process", "thread_pool", "transport"
:arg index_metric: Limit the information returned for `indices` metric
to the specific index metrics. Isn't used if `indices` (or `all`)
metric isn't specified. Possible options are: "_all", "completion",
"docs", "fielddata", "filter_cache", "flush", "get", "id_cache",
"indexing", "merge", "percolate", "refresh", "search", "segments",
"store", "warmer"
:arg completion_fields: A comma-separated list of fields for `fielddata`
and `suggest` index metric (supports wildcards)
:arg fielddata_fields: A comma-separated list of fields for `fielddata`
index metric (supports wildcards)
:arg fields: A comma-separated list of fields for `fielddata` and
`completion` index metric (supports wildcards)
:arg groups: A comma-separated list of search groups for `search` index
metric
:arg human: Whether to return time and byte values in human-readable
format., default False
:arg level: Return indices stats aggregated at node, index or shard
level, default 'node'
:arg types: A comma-separated list of document types for the `indexing`
index metric
"""
query_params = (
'completion_fields', 'fielddata_fields', 'fields', 'groups',
'human', 'level', 'types',
)
params = self._filter_params(query_params, params)
url = self.mk_url(*[
'_nodes', node_id, 'stats', metric, index_metric
],
**params
)
self.client.fetch(
self.mk_req(url, method='GET', **kwargs),
callback = callback
)
[docs] def hot_threads(self, node_id=None, params={}, callback=None, **kwargs):
"""
An API allowing to get the current hot threads on each node in the cluster.
`<http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/cluster-nodes-hot-threads.html>`_
:arg node_id: A comma-separated list of node IDs or names to limit the
returned information; use `_local` to return information from the
node you're connecting to, leave empty to get information from all
nodes
:arg type_: The type to sample (default: cpu)
:arg interval: The interval for the second sampling of threads
:arg snapshots: Number of samples of thread stacktrace (default: 10)
:arg threads: Specify the number of threads to provide information for
(default: 3)
"""
query_params = ('type_', 'interval', 'snapshots', 'threads',)
# avoid python reserved words
if params and 'type_' in params:
params['type'] = params.pop('type_')
params = self._filter_params(query_params, params)
url = self.mk_url(*['_nodes', node_id, 'hot_threads'], **params)
self.client.fetch(
self.mk_req(url, method='GET', **kwargs),
callback = callback
)


About You
Association
3
Select Plan
4
Done
Choose a plan
USD
NAIRA
FREE
#
0
50 Attendance
Maximum 47mins live stream
2 Guests
10% Free
STANDARD
#
40,000
100 Attendance
Maximum 3 hours live stream
3 Guests
2.5% Free
EXTREME
#
100,000
500 Attendance
Maximum 3 hours live stream
10 Guests
2.5% Free
Back
Pay


Drones operativity can be adjusted with the slider. In case you run
out resources (like energy) every drones that depend on it will stop
working permanently. To fix drag the sliders to the right.
Technicians are always 100% operative.
Habitable space , and Energy districts are required to build buildings. Districts can be obtained from battle. It may take a while before you're ready to engage battle, so don't waste them (don't buy batteries!).


Package
Class
Tree
Index
Help
PREV NEXT
FRAMES
NO FRAMES
All Classes
A
C
G
H
K
M
P
R
S
A
addToScreen(char)
- Method in class
MapCell
APPLICATION_HEIGHT
- Static variable in class
HackNSlashMain
APPLICATION_WIDTH
- Static variable in class
HackNSlashMain
C
Character
- Class in
<Unnamed>
Write a description of class Character here.
Character(int, HackNSlashMain)
- Constructor for class
Character
charBack
- Variable in class
Character
charFront
- Variable in class
Character
charLeft
- Variable in class
Character
charRight
- Variable in class
Character
Chest
- Class in
<Unnamed>
Write a description of class Chest here.
Chest()
- Constructor for class
Chest
Constructor for objects of class Chest
clear()
- Method in class
MapCell
G
getChar(int, int)
- Method in class
Map
getCharID()
- Method in class
Character
getCol()
- Method in class
Character
getRow()
- Method in class
Character
H
HackNSlashMain
- Class in
<Unnamed>
Write a description of class HackNSlashMain here.
HackNSlashMain()
- Constructor for class
HackNSlashMain
hideChar(int)
- Method in class
MapCell
hideItem(int)
- Method in class
MapCell
K
keyPressed(KeyEvent)
- Method in class
HackNSlashMain
M
Map
- Class in
<Unnamed>
''W''rite a description of class Map here.
Map(int)
- Constructor for class
Map
MapCell
- Class in
<Unnamed>
Write a description of class MapCell here.
MapCell(int, int, HackNSlashMain)
- Constructor for class
MapCell
Monster
- Class in
<Unnamed>
Write a description of class Monster here.
Monster()
- Constructor for class
Monster
Constructor for objects of class Monster
mousePressed(MouseEvent)
- Method in class
HackNSlashMain
mouseReleased()
- Method in class
HackNSlashMain
moveBack(int, int, int)
- Method in class
HackNSlashMain
moveForward(int, int, int)
- Method in class
HackNSlashMain
moveLeft(int, int, int)
- Method in class
HackNSlashMain
moveRight(int, int, int)
- Method in class
HackNSlashMain
P
player
- Variable in class
HackNSlashMain
R
run()
- Method in class
HackNSlashMain
S
sampleMethod(int)
- Method in class
Chest
An example of a method - replace this comment with your own
sampleMethod(int)
- Method in class
Monster
An example of a method - replace this comment with your own
sampleMethod(int)
- Method in class
Spell
An example of a method - replace this comment with your own
setcharID(int)
- Method in class
Character
setCol(int)
- Method in class
Character
setIsChar(boolean)
- Method in class
MapCell
setIsChestClosed(boolean)
- Method in class
MapCell
setIsChestOpen(boolean)
- Method in class
MapCell
setIsGoblin(boolean)
- Method in class
MapCell
setIsMummy(boolean)
- Method in class
MapCell
setIsObstacle(boolean)
- Method in class
MapCell
setIsPortal(boolean)
- Method in class
MapCell
setIsSkeleton(boolean)
- Method in class
MapCell
setIsSpider(boolean)
- Method in class
MapCell
setIsStairDown(boolean)
- Method in class
MapCell
setIsStairUp(boolean)
- Method in class
MapCell
setIsSwitch(boolean)
- Method in class
MapCell
setIsWall(boolean)
- Method in class
MapCell
setRow(int)
- Method in class
Character
showChar(int, int)
- Method in class
MapCell
showItem(int)
- Method in class
MapCell
Spell
- Class in
<Unnamed>
Write a description of class Spell here.
Spell()
- Constructor for class
Spell
Constructor for objects of class Spell
A
C
G
H
K
M
P
R
S
Package
Class
Tree
Index
Help
PREV NEXT
FRAMES
NO FRAMES
All Classes


WebGL not supported
This product uses WebGL, which your browser does not appear to support. Possible reasons:
- Your Web browser actually doesn't support WebGL.
Check this page for a list of browsers that do.
- Your video driver or operating system is not supported.
To ensure fast performance and prevent crashes, some browsers that support WebGL deactivate it for particular video driver and operating system versions. (For some browsers it is possible to override this -- you can manually turn WebGL back on by changing a setting. Do so at your own risk.)


PROJECT: Marketing Morph
Overview
Marketing Morph is a desktop marketing application. It has a GUI but most of the user interactions happen using a CLI (Command Line Interface). It is meant to be utilized by a marketing company in order to effectively organize potential targets and potential clients.
Summary of contributions
-
Major enhancement: added the ability to store and manipulate salary, occupation and relationship features for persons in the Addressbook
-
How I did it: I extended the architecture of the Person class and have connected them to the main application.
-
What it does: allows the user to record salary, occupation, and relationship attributes for persons, the user can analyze the data for the three attributes.
-
Justification: This features improves the product significantly because they provide more comprehensive information of persons in address book, and allow the user to do business analysis, such as analyze salary and occupation for markets.
-
Highlights: This enhancement affects existing commands and required the addition of many new classes and objects. Due to the dense OOP structure of Addressbook Level 4, I had to carefully trace the functionality of my additions throughout the infrastructure in order to implement the person class in the most effective way.
-
Credits: The prexisting code base was very useful for guiding my implementation of the three additional person’s attributes. It is very clear and comprehensive so I would like to thank the original contributers to this AB4. There is no other outside library applied.
-
-
Minor enhancement:
-
Show the average and median salary for persons through command
averageSalary
andmedianSalary
respectively -
Show the average and median revenue for companies through command
averageRevenue
andmedianRevenue
respectively -
Find persons with exact occupation through
findOccupation
-
Find companies with exact sector through
findSector
-
-
Code contributed: https://nus-cs2103-ay1819s2.github.io/cs2103-dashboard/#search=zhangjiayu0303
-
Other contributions:
-
Project management:
-
Worked with teammates to suggest ideas and fix bugs
-
Positively discuss with teammates and arrange group meetings
-
-
Documentation:
-
Extensive additions to the User Guide that document the functionality of the
Person
objects -
Updates to the application architecture in the Developer Guide with respect to the addition of the Person structure
-
Added manual testing instructions in the appendix of the Developer Guide
-
-
Contributions to the User Guide
|
Given below are sections I contributed to the User Guide. They showcase my ability to write documentation targeting end-users. |
Adding a company : addcpny
Adds a company to the client list
Format: addcpny
n/NAME p/NUMBER e/EMAIL a/ADDRESS s/REVENUE
o/SECTOR r/STRUCTURE [t/TAG]…
Explanation:
REVENUE
represents a company’s yearly revenue.
SECTOR
represents the type of company i.e. Food, Retail,
Bank.
STRUCTURE
distinguishes the organization of the company
i.e. Conglomerate, Local, International, Private, Public, etc.
Examples:
addcpny
n/Walmart p/98765432<EMAIL_ADDRESS>a/John
street, block 123, #01-01 s/234525223 o/Retail r/Corporation
addcpny
n/Betsy Cakes p/1234567<EMAIL_ADDRESS>a/Bob
street, block 232 s/2242023 o/Food r/LocalBusiness t/popular t/local
Show average revenue for all companies: averageRevenue
Shows average revenue for all companies in the address book
Format: averageRevenue
Show median revenue for all revenue: medianRevenue
Shows median revenue for all companies in the address book
Format: medianRevenue
Show average salary for all persons: averageSalary
Shows average salary for all persons in the address book
Format: averageSalary
Show median salary for all persons: medianSalary
Shows median salary for all persons in the address book
Format: medianSalary
Locating persons by occupation : findOccupation
Examples:
-
findOccupation teacher
ReturnsBob
andAlice
(Their occupation is teacher)
Locating companies by sector : findSector
Examples:
-
findCompany bank
ReturnsOCCC
(Its sector is bank)
Contributions to the Developer Guide
|
Given below are sections I contributed to the Developer Guide. They showcase my ability to write technical documentation and the technical depth of my contributions to the project. |
User Stories
Priorities: High (must have) - * * *
, Medium (nice to have)
- * *
, Low (unlikely to have) - *
| Priority | As a … | I want to … | So that I can… |
|---|---|---|---|
|
|
new user |
see usage instructions |
refer to instructions when I forget how to use the Marketing Morph App |
|
|
user |
add a new person or company |
keep track of potential target demographics and clients |
|
|
user |
delete a person or company |
remove entries that I no longer need |
|
|
user |
find a person or company by name |
locate details of persons without having to go through the entire list |
|
|
user |
sort persons by name |
locate a person easily |
|
|
user |
sort persons by occupation |
locate a cohort of persons easily |
|
|
user |
sort companies by sector |
locate a cohort of companies easily |
|
|
user |
create a group of clients |
to organize potential clients into a separate group |
|
|
user |
add contacts to a favorites list |
to have quick access to the most used contacts |
|
|
user |
delete contacts to a favorites list |
to have quick access to the most used contacts |
|
|
user |
update person or company data |
to change information that is no longer correct |
|
|
user |
analyze salary for all persons |
know the average and median salary for all persons |
|
|
user |
analyze revenue for all companies |
know the average and median revenue for all companies |
|
|
user |
can analyze which people can afford a product |
to effectively target potential consumers |
|
|
user |
can determine which people can shop at particular businesses |
to sell information to companies |
|
|
user |
view a persons address on a map |
visualize where they live |
|
|
user |
see number of entries in the addressbook |
to know how many entries I have |
|
|
user |
hide private contact details by default |
minimize chance of someone else seeing them by accident |
Finding a person by occupation
-
Finding a person by occupation
-
Prerequisites: The person that is searched for must exist
-
Test Case:
findOccupation Professor
Expected: May returnAlice
andBob
if both exist as persons whose occupation is professor
-
Finding a company by sector
-
Finding a company by sector
-
Prerequisites: The company that is searched for must exist
-
Test Case:
findSector Bank
Expected: May returnDSS
andOCCC
if both exist as companies whose sector is bank
-


We serve Salmon Cookies that are made into the shape of a salmon that has just a hint of fishy goodness
Operating hours are (6:00 AM to 8:00 PM for all locations)
You can visit us in our branches to enjoy your coffee-time confection
- Seattle
- Tokyo
- Dubai
- Paris
- Lima
- Openning Soon..


While I was redesigning my personal website vatweb.fr, I really didn’t want to have a server side involved just to send a basic contact form…
After a bit of Googling, I could not find anything better than Wufoo… Not optimal but it would have done the job.
However, as you might have seen, I change my blog theme too to use Pixyll jekyll theme. While I was looking inside the source code, I ended up finding Brace.io in the action
attribute of a form. Curious, I had a look and found out that Forms Brace.io allows you really easily to send a form content to your email address. Ideal for a contact form!
You can have a demo directly on this blog as it’s using it for the contact form
And here come the really easy HTML piece of code to build a Brace form:
Of course feel free to add some bootstrap classes and/or angularJS form validation :)


magneticalc.Constraint.Constraint
class documentationmagneticalc.Constraint
(View In Hierarchy)
Constraint class.
| Class Variable | Norm_ID_List | Undocumented |
| Class Variable | Comparison_ID_List | Undocumented |
| Class Variable | Norm_ID_List_Degrees | Undocumented |
| Method | __init__ | Initializes the constraint. |
| Instance Variable | permeability | Undocumented |
| Method | evaluate | Evaluate this constraint at some point. |
| Instance Variable | _is_angle | Undocumented |
| Instance Variable | _norm_id | Undocumented |
| Instance Variable | _comparison_id | Undocumented |
| Instance Variable | _min | Undocumented |
| Instance Variable | _max | Undocumented |


Bryan brothers to bow out after 2020 US Open
Bob and Mike Bryan, the greatest doubles pair in the history of tennis, have announced they will end what they describe as a "magical ride" in 2020 after one more crack at the U.S. Open.
LONDON: Bob and Mike Bryan, the greatest doubles pair in the history of tennis, have announced they will end what they describe as a "magical ride" in 2020 after one more crack at the U.S. Open.
The 41-year-old Californian twins, famous for their trademark chest-bump celebration, will bid farewell at Flushing Meadows, scene of their Grand Slam debut in 1995.
Playing almost exclusively with each other throughout their 25-year careers, the Bryans captured a professional era record 118 titles, including 16 Grand Slam titles, 39 ATP Masters 1000s and the ATP Finals title four times.
The Bryans also won Olympic gold at London 2012 and were part of the U.S. Davis Cup-winning team in 2007.
Mike claimed two more Grand Slam titles with Jack Sock in 2018 after Bob was sidelined with a hip injury.
"Mike and I chose to finish our 2019 season after the U.S. Open, even knowing there was a strong chance we'd qualify for the ATP Finals," Bob said in an ATP statement on Wednesday.
"After much discussion, we decided that it would be best to rest our minds and strengthen our bodies in preparation for 2020 which will be our final season on the ATP Tour.
"For the last 21 years, we have been so grateful for the opportunity to live out our dreams of playing professional tennis. It has truly been a magical ride."
(Reporting by Martyn Herman, editing by Ed Osmond)


My only education expereinces fall under K-12 and Undergraduate.
| Company: | Occupation Title: |
|---|---|
| Harmon Discount | Cashier |
| Hudson Pool Management | Lifeguard |
| OnewayMoving | Hauler |
I like to call myself a dabbler because i tried alot out and ended up liking it. The main things i do though:
Twitch clip:
Favorite TV show:
Favorite Song:
Favorite movie:


{% extends "base.html" %} {% block help %}
This page presents statistics on all attributes found in the parse results from both the previous and new versions of the grammar.
The table can be sorted on any column by clicking on column headers and secondary and tertiary (etc) sortings can be applied by holding shift whilst clicking on column headers.
Clicking on a attribute name will take you to the Item page with the items filtered to only include items that contain that attribute.
A 'attribute' is simply a type extracted from the label of a node from the full derivation tree produced for a parse - with the exception of lexical entries (ie leaf nodes) which have been replaced with their lexical types. The weight assigned to a attribute is an indication of the degree to which gDelta thinks the attribute is relevant to changes made to the grammar; the higher the weight the more correlated.
{% endblock %} {% block content %}Filter on attribute name:
| Attribute | Magnitude | Change | Weight | Prev items | New items | Status |
|---|---|---|---|---|---|---|
| {{ f.name }} | {{ f.change_size }} | {{ f.change }} | {{ "%.3f"|format(f.weight) }} | {{ f.prev_counts }} | {{ f.new_counts }} | {{ f.status }} |


Toggle navigation
Readers' Advisory blog
About this blog
Browse by topics
Contact
Publications
Last ballad by Wiley Cash
March 31, 2018
About the book Author: Cash, Wiley Title: The last ballad: A novel Publication: New York, NY : William Morrow, an imprint of HarperCollins Publishers, 2017. ISBN<PHONE_NUMBER>031. …
A discovery of witches by …
March 18, 2018
About the book Author: Harkness, Deborah E., 1965- Title: A discovery of witches; Series: All souls trilogy A discovery of witches (DA41609, ISBN9780670022410), 2011, read by …
The break by Katherena …
February 17, 2018
About the book Author: Vermette, Katherena, 1977- Title: The break Publication: Toronto : House of Anansi Press, 2016. ISBN<PHONE_NUMBER>117. DAISY audio format narrated by Diane …
Ursula K. Le Guin …
January 23, 2018
“Hard times are coming, when we’ll be wanting the voices of writers who can see alternatives to how we live now, can see through our fear-stricken society and its …
La fiancée américaine …
January 3, 2018
About the book Author: Dupont, Éric, 1970- Title: La fiancée américaine : roman Publication: Montréal : Marchand de feuilles, 2012. ISBN<PHONE_NUMBER>151. DAISY audio format narrated …
Seven stones to stand or …
January 1, 2018
About the book Author: Gabaldon, Diana Title: Seven stones to stand or fall: A collection of Outlander fiction. Publication: New York : Delacorte Press, 2017. ISBN<PHONE_NUMBER>601. …
« Prev
1
2
3
4
5
Next »


Json to case class with the Validation API
Let's start with a very common example. My web application is receiving a Json representation of a Contact. Of course, before transforming that Json to an instance of a class, I need to validate it. It must have a firstname, a lastname, an age, which must be an Int, etc.
Obviously the validation API provides everything I need for the Job, plus a couple of handy methods. Using scala macro, we can generate the appropriate Rules
. Typesafety is guaranteed. Age is automatically expected to be a number. Nice and easy.
There's nothing special about those macro-generated Rules
. You use them just like any other Rule
. In fact, it's exactly like if you had written the code yourself. Let's see that in action:
Customizing the validation rules
So far, we've been very happy with our generated Rules
. But of course, a real application is not that simple. You're not only expect the Json to have a certain structure and to match your types, you also need to make sure the values make sense. A Contact age
must be positive, the email
field must be a valid email, etc. Our generated Rule
won't validate all that.
Our generated Rules are not enough anymore. But how do we get from those generated Rules
to "smarter" specialized Rules ?
As always, composition must be the answer! Theoretically, I should be able to reuse a generated Rule
, and extend it with my custom validations. The compose
method should help us there.
Did it work ? Kind of, but not really. We did find that the provided Json was invalid, but we can't tell exactly where the error happened. Of course we want to give valuable feedback to our users. An error without it's location is worthless.
So what do we do then ? Turns out, we have to rewrite everything:
Even with this ceremony-less API, it's still a bit cumbersome. But there's worse, there is more code, but also potentially more errors. I could be mistyping a field name "firstname"
could become "fisrtname"
. Would the compiler help me there ? No, I would not catch the error until runtime. Not really satisfying. This problem has haunted me for a while, and after a bit of investigation, I found a nice and simple solution.
Scrapping the boilerplate
It would be really nice if it was possible to, just like in Json, give a path representing a location inside a case class instance.
For example, given an instance of Contact
use a path like (__ \ "information" \ "email")
to get the email value.
Shapeless to the rescue
Actually shapeless 2 has something a bit similar. It defines Lens
for case class. Using a Lens
, you can traverse a type hierarchy using fields indexes. As demonstrated in this example
Ok, so it looks like the beginning of a solution. Now all I have to do is to implement the same thing, but this time supporting field names. A bit (actually a LOT) of head scratching latter, I finally came up with the solution, and proposed a pull request.
The beauty of this is that it's completely typesafe. The path I'm using is checked by the compiler, and the compiler would catch any error and tell me why it failed. We do not need to rely on reflection like most Java libraries do. We have the best of both world: Typesafety without the boilerplate.
From there it's very easy to improve the Validation API. All we have to do is to keep track of the path while using a Lens
to traverse classes.
Et voila :) Typesafe, boilerplate free Json to case class transformation.


Asynchronous Data Protection - This scenario demonstrates protecting and unprotecting data asynchronously using the WinRT APIs.


My name is Christopher Prokop. Professionally, I am a Director's Postdoctoral Fellow at Los Alamos National Laboratory. My research is focused on low-energy nuclear physics, in particular measurement of neutron-capture and neutron-induced charged-particle reaction cross sections. I am also involved in a variety of mission-enabling activities such as data acquisition and analysis software development, high-performance computing, and detector design and simulation. Personally, I have a wide variety of interests and hobbies. As you may have gathered from the two photos you've seen thus far I am a car guy and I enjoy the outdoors. Additionally I enjoy carpentry, weightlifting, shooting any variety of firearm, video and board games, and I also dabble a bit with playing guitar. Presently the purpose of this website is primarily to learn HTML, CSS, bootstrap, etc.
I earned my Ph.D. in Nuclear Chemistry from Michigan State University in 2016. Prior to that I received a B.S. in Physics and in Chemistry with a minor in Mathematics from Minnesota State University, Mankato in 2011. I also completed the DOE Nuclear Chemistry Summer School at San Jose State University in 2010.
I have a variety of research experience in low-energy nuclear physics. As a graduate student I studied the nuclear structure of exotic neutron-rich nuclei and as a post-doctoral fellow I study neutron capture and neutron-induced charged particle reactions.
I have always had a love of cars and mechanical work. I have had four vehicles thus far in my life and spent a considerable amount of time maintaining and improving them. Let me show a few of the mechanical projects I have done
The only thing I enjoy more than working on my vehicles is carpentry. I love to build things. I have remodeled sections of a home, built decks, performed a variety of electrical and plumbing work, installed doors and windows, and more. Let me show you a few of the carpentry projects I have done.


Rebar.Mediator Class
Simple implementation of the mediator pattern for use with Backbone.Views
Constructor
Rebar.Mediator
()
Example:
var mediator = new Mediator({
events:{
"appwide1":{
dispatcher:app
callback:"method"
}
},
initialize:function(options){
...
},
method:function(e){
...
},
handle:function(eventName,module){
...
}
});
mediator.addView(view,"event1 event2");
view.trigger("something",view);
mediator.removeView(view);
Item Index
Methods
Methods
addView
-
view
-
eventNames
Adds module as one that the mediator should be listening for events.
Parameters:
-
view
Backbone.View -
eventNames
String
assignCallbackToDispatcher
-
eventName
-
callbackName
-
dispatcher
Assigns a callback to the passed dispatcher for the event to be fired.
Parameters:
-
eventName
String -
callbackName
String -
dispatcher
Object
destroy
()
destroys a mediator and removes all listeners.
getView
-
attribute
Returns a view that has the same value/key pairs provided
Parameters:
-
attribute
ObjectKey/Value pair to use with an UnderscoreJS _.with look up
Example:
...
mediator.getView({name:"foo"});
getViewByName
-
name
Returns a view that has the same user defined name provided
Parameters:
-
name
StringUser defined view name
Example:
...
mediator.getView({name:"foo"});
handle
-
eventName
-
module
Handler method that is called when one of the module the mediator is listening
for is fired. Should be overwritten in Mediator
instances.
Parameters:
-
eventName
Object -
module
Object
hasView
-
view
Returns boolean for whether the mediator contains a view or not.
Parameters:
-
view
Backbone.View
initialize
()
Called for any modules that extend the Mediator
prototype.
processEvents
-
events
Runs through all of the events that the mediator should be listening for.
Parameters:
-
events
Object
processViewEvents
-
events
Processes all of the viewEvents passes in through the mediator config options
Parameters:
-
events
String
removeView
-
view
Removes module from one that the mediator should be listening for.
Parameters:
-
view
Backbone.View
Properties
_views
Array
private
Stores reference to all views added to the mediator.
view
Backbone.View
Reference to a single view who we'll be mediating for.


--- layout: post status: publish published: true title: LoadTesting takes a turn with Server Virtualization author: display_name: iguy login: iguy email<EMAIL_ADDRESS>url: '' author_login: iguy author_email<EMAIL_ADDRESS>wordpress_id: 149 wordpress_url: http://itsjustanotherlayer.com/?p=149 date: !binary |- MjAwOS0wNS0xOSAwMzo1Mzo0NyAtMDUwMA== date_gmt: !binary |- MjAwOS0wNS0xOSAwMzo1Mzo0NyAtMDUwMA== categories: - Server Virtualization tags: - analysis - performance comments: - id: 40 author: Paras author_email<EMAIL_ADDRESS>author_url: '' date: !binary |- MjAwOS0wNS0yOCAyMjoyMjozMSAtMDUwMA== date_gmt: !binary |- MjAwOS0wNS0yOCAyMjoyMjozMSAtMDUwMA== content: Interesting Stuff, would be interested in knowing, what metrics were used to determince... application isn't using the 4CPU as effeciently as 2CPU. - id: 41 author: iguy author_email<EMAIL_ADDRESS>author_url: http://www.itsjustanotherlayer.com date: !binary |- MjAwOS0wNi0wMSAxOTowNzoyMyAtMDUwMA== date_gmt: !binary |- MjAwOS0wNi0wMSAxOTowNzoyMyAtMDUwMA== content: The main one is watching each individual CPU over time graph in the Guest OS and if it doesn't consistently stay "close", then you know that the applications on the box aren't threading or utilizing the extra CPUs effectively. An example would be two of the 4 CPUs go to 20% and one goes to 10% over a processing run. The last one goes to 35%. This system will likely run faster on a 2 CPU system instead of the current 4. - id: 42 author: Vikash Kumar Roy author_email<EMAIL_ADDRESS>author_url: http://vikashkumarroy.blogspot.com/ date: !binary |- MjAwOS0wNi0wMyAxMzozMToyNSAtMDUwMA== date_gmt: !binary |- MjAwOS0wNi0wMyAxMzozMToyNSAtMDUwMA== content: Most of the satiation which I came across is when you run single threaded application run on vSMP and performance degrade. It becomes very hard to make customer understand that “Please reduce CPU and performance will improve”. Their general mind set is that if we add more CPU/RAM performance increases. I usually play the same mind game to convince business or application owner to reduce CPU. Usually I approach them with intention to prove that application is not multithreaded . For that if I have to approach even software vendor I do it. - id: 43 author: Anaxander author_email<EMAIL_ADDRESS>author_url: '' date: !binary |- MjAwOS0wNi0wOSAxNjozMDozOSAtMDUwMA== date_gmt: !binary |- MjAwOS0wNi0wOSAxNjozMDozOSAtMDUwMA== content: ! 'When monitoring CPU usage, are you using the vCenter performance counters or running perfmon inside the Guest OS? I like the vCenter counters but the per-CPU usage stats are only real-time. What is your methodology for determining over-allocated memory? Memory size versus Guest Memory % used?' ---
Just recently I had an interesting conversation with one of my clients. In this internal consult with her, she comes to me and says of our VMware Solutions that there is a
"potential issue with 4 vCPUs and scheduling"
I looked at her and was a bit confused. I told her
"No.. there isn't a scheduling issue for 4 vCPUs in our environment."
The response was
"Well in our last consult effort, the solution was changing the system down to 2 vCPUs instead of using 4 vCPUs."
Ah ha. I understand now. The light bulb suddenly came on.
One of the big benefits in Server Virtualization is the idea that we can make some rather "drastic" (by legacy mentality) changes to a Machine/OS instance that you couldn't or didn't want to do in a physical system.
Also it is very easy and a lazy / simple approach for us as IT folks to just assume that since I've got two sockets quad core in a physical that the load testing that we've done is going to be the fastest application performance we can get. The reality of the situation is that unless we do some tests covering changing the hardware around we really have no idea that if I got a single core, single socket my application may run (WAY) faster. We just don't know.
If your serious about IT and doing things Right and Correct for your company and yourself, you have to be honest with what your looking at (metrics and performance) and what it really means to yourself (flexibility) and to your clients (appearance). I know I've had a fantastic ephinany and that will help me be a better IT person now.


Anthony Davis scores 50 as NBA-leading Lakers beat Timberwolves
LOS ANGELES – Anthony Davis had a season-high 50 points and the Los Angeles Lakers improved to a league-best 21-3 with a 142-125 win over the Minnesota Timberwolves on Sunday night.
Davis hit a floater with 4:39 remaining to reach 50 points for the fourth time in his career. He was 20 of 29 from the field and made all 10 of his free throws to go along with seven rebounds and six assists.
LeBron James had 32 points and 13 assists despite committing four fouls in the first half. Alex Caruso added 16 points as the Lakers won their fourth straight and improved to 10-2 at home.
Each of the Timberwolves’ starters had at least 12 points. Karl-Anthony Towns and Andrew Wiggins each had 19 points as Minnesota lost its fourth straight game.
Davis had 42 points through three quarters, one more than his previous single-game best this season, 41 points in his return to New Orleans on Nov. 27.
Heat 110, Bulls 105
In Miami, Tyler Herro scored 27 points, including a go-ahead 3-pointer with 38.2 seconds left in overtime, and Miami held off Chicago to improve to 10-0 at home this season.
Herro made three 3’s in overtime and another with 7.1 seconds left in regulation just to help the Heat get into the extra session. His last 3-pointer gave Miami a three-point lead.
Jimmy Butler scored 23 points for the Heat, going 17 for 21 from the foul line. Bam Adebayo had 21 points, 13 rebounds and six assists for Miami, which also got 18 from Kendrick Nunn.
Lauri Markkanen had 13 of his team-high 22 points in the third quarter for the Bulls, who got 18 from Zach LaVine and 16 from Kris Dunn. Markkanen missed a potentially game-tying corner 3-pointer with about 1.5 seconds left in overtime.
76ers 110, Raptors 104
In Philadelphia, Tobias Harris scored 26 points and rookie Matisse Thybulle had a career-high 20 points, including a pair of free throws with 23 seconds left, to lead Philadelphia past Toronto for its 12th straight home win.
Ben Simmons had 16 points, 11 rebounds and nine assists as the Sixers remained unbeaten at home this season.
Kyle Lowry, playing in his second game after missing 11 in a row due to a broken left thumb, scored 26 points, and OG Anunoby had 19 points and 10 rebounds for Toronto. The defending champion Raptors have lost three in a row.
Joel Embiid returned from a one-game absence due to a hip injury, finishing with 10 points and eight rebounds. Embiid was benched with 2:08 remaining after committing turnovers on three straight possessions that turned a seemingly easy victory into a tight one. He had seven of Philadelphia’s 17 turnovers.
The Raptors, who trailed by as many as 20 points in the third quarter, got as close as five before Thybulle’s two free throws with 26.3 seconds left sealed the deal.
Clippers 135, Wizards 119
In Washington, Kawhi Leonard had 34 points and 11 rebounds and Los Angeles bounced back from its worst loss of the season with a win over Washington.
Paul George scored 27 points and Montrezl Harrell had nine of his 20 in the fourth quarter for the Clippers, who improved to 4-6 away from home two games into their six-game trip.
The victory came two days after Los Angeles opened the trip with a 119-91 loss at Eastern Conference-leading Milwaukee.
Washington’s bench kept the game competitive for more than three quarters. Davis Bertans tied his season-high with 25 points, including six 3-pointers. Troy Brown Jr. scored a career-high 20 points.
Bradley Beal’s 20 points were the most by a Washington starter and came off a difficult 5-for-18 shooting night.
Wizards rookie Rui Hachimura scored 17 points, including 7-for-7 shooting from the foul line. He also recorded seven rebounds and four assists in his 37 minutes on the court.
In Other Games
Hawks 122, Hornets 107
Nets 105, Nuggets 102
Kings 110, Mavericks 106
Thunder 108, Trail Blazers 96
GET THE BEST OF THE JAPAN TIMES IN FIVE EASY PIECES WITH TAKE 5
JOIN THE CONVERSATION


SimpleXMLElement::xpath
(PHP 5 >= 5.2.0, PHP 7)
SimpleXMLElement::xpath — Runs XPath query on XML data
说明
public array SimpleXMLElement::xpath ( string $path )
The xpath method searches the SimpleXML node for children matching the XPath
path.
参数
path
An XPath path
返回值
Returns an array of SimpleXMLElement objects or FALSE in case of an error.
范例
Example #1 Xpath
text
stuff
code
XML;
$xml = new SimpleXMLElement($string);
/* Search for */
$result = $xml->xpath('/a/b/c');
while(list( , $node) = each($result)) {
echo '/a/b/c: ',$node,"\n";
}
/* Relative paths also work... */
$result = $xml->xpath('b/c');
while(list( , $node) = each($result)) {
echo 'b/c: ',$node,"\n";
}
?>
以上例程会输出：
/a/b/c: text
/a/b/c: stuff
b/c: text
b/c: stuff
Notice that the two results are equal.
参见
• SimpleXMLElement::registerXPathNamespace() - Creates a prefix/ns context
for the next XPath query
• SimpleXMLElement::getDocNamespaces() - Returns namespaces declared in
document
• SimpleXMLElement::getNamespaces() - Returns namespaces used in document
• Basic SimpleXML usage
User Contributed Notes 15 notes
===============================================================================
To run an xpath query on an XML document that has a namespace, the namespace
must be registered with SimpleXMLElement::registerXPathNamespace() before
running the query. If the XML document namespace does not include a prefix, you
must make up an arbitrary one, and then use it in your query.
Test message
XML;
$xmlDoc=new \SimpleXMLElement($strXml);
foreach($xmlDoc->getDocNamespaces() as $strPrefix => $strNamespace) {
if(strlen($strPrefix)==0) {
$strPrefix="a"; //Assign an arbitrary namespace prefix.
}
$xmlDoc->registerXPathNamespace($strPrefix,$strNamespace);
}
print($xmlDoc->xpath("//a:message")[0]); //Use the arbitrary namespace prefix
in the query.
?>
This will output:
Test message
===============================================================================
On a xml that have namespace you need to do this before your xpath request (or
empty array will be return) :
===============================================================================
If you want to find easly all records satisfying some condition in XML data
like
....
Gambardella, Matthew
XML Developer's Guide
Computer
44.95
Ralls, Kim
Midnight Rain
Fantasy
5.95
...
try example below
xpath("book/price[.>'40']/parent::*");
print_r($res);
?>
You will see response like:
Array (
[0] => SimpleXMLElement Object
(
[@attributes] => Array
(
[id] => bk101
)
[author] => Gambardella, Matthew
[title] => XML Developer's Guide
[genre] => Computer
[price] => 44.95
[publish_date] => 2000-10-01
[description] => An in-depth look at creating applications
with XML.
)
...
===============================================================================
Xpath actually knows which element is root regardless of element on which you
execute it. Example:
text
stuff
code
XML;
header('content-type: text/plain');
$xml = new SimpleXMLElement($string);
//relative to root
$b0=$xml->b[0]->xpath('//c');
while(list( , $node) = each($b0)) {
echo 'b[0]: //c: ',$node,"\n";
}
$b1=$xml->b[1]->xpath('//c');
while(list( , $node) = each($b1)) {
echo 'b[1]: //c: ',$node,"\n";
}
echo "\n";
//relative to current element
$b0=$xml->b[0]->xpath('.//c');
while(list( , $node) = each($b0)) {
echo 'b[0]: .//c: ',$node,"\n";
}
$b1=$xml->b[1]->xpath('.//c');
while(list( , $node) = each($b1)) {
echo 'b[1]: .//c: ',$node,"\n";
}
?>
Will return:
b[0]: //c: text
b[0]: //c: stuff
b[0]: //c: code
b[1]: //c: text
b[1]: //c: stuff
b[1]: //c: code
b[0]: .//c: text
b[0]: .//c: stuff
b[1]: .//c: code
===============================================================================
xpath() can also be used to select elements by their attributes. For a good
XPath reference check out: http://www.w3schools.com/xpath/xpath_syntax.asp
XML;
$xml = simplexml_load_string($string);
$result = $xml->xpath("//size[@label='Large']");
// print the first (and only) member of the array
echo $result[0]->asXml();
?>
The script would print:
===============================================================================
If you want to search multiple values from xml on the behalf or one value then
this code can be helpfull to you.
if there is:
Pakistan
+92
100
then try this one:
xpath('//RECORD') as $item) {
$row = simplexml_load_string($item->asXML());
$v = $row->xpath('//country[. ="Pakistan"]');
if($v[0]){
print $item->country;
print $item->code;
print $item->value;
}
}
?>
===============================================================================
As mentioned already xpath will fail is the default namespace 'xmlns' is used
like in:
XML;
?>
xpath cannot search through the xml without explicitly specifying a namespace.
There are 2 options :
1. rename the 'xmlns' into something else to trick xpath into believing that no
default namespace is defined.
2. register a string as the default namespace and use that string in all your
queries. Unfortunatly, an empty space will not work.
No other option currently exist until XPath2.0 becomes the default library.
===============================================================================
If you want to search multiple values from xml on the behalf or one value then
this code can be helpfull to you.
if there is:
Pakistan
+92
100
then try this one:
xpath('//RECORD') as $item) {
$v = $row->xpath('./country[. ="Pakistan"]');
if($v[0]){
print $item->country;
print $item->code;
print $item->value;
}
}
?>
===============================================================================
Note that this function does not ALWAYS return an array. It seems that if the
specified path is not found in the document, it will return false. You need to
check for the false value before using foreach, if you wish to avoid a warning
(and often to handle errors or control program flow in this situation).
===============================================================================
Having problems selecting information through xpath when there are namespaces
in the XML?
 Basically chopping off the root element.
text
stuff
code
XML;
$xml = new SimpleXMLElement($string);
/* Search for children using 2nds level relative */
$result = $xml->xpath('a/b/c');
if ($result)
foreach($result as $node) {
drupal_set_message(t('a/b/c: @node.', array('@node' => $node)));
}
else
drupal_set_message(t('a/b/c: failed.'));
/* it relative to the SimpleXMLElement Search for 2nds level relative
but where is foo */
$bar = $xml->bar;
$result = $bar->xpath('a/b/c');
foreach($result as $node) {
drupal_set_message(t('bar->a/b/c: @node.', array('@node' => $node)));
}
?>
results in :
#
# a/b/c: failed.
# bar->a/b/c: text.
# bar->a/b/c: stuff.
===============================================================================
Seems like this function cannot return the result of XPath string() [1]
function. For example if you query xpath("string(a/@b)") you will get bool
(false) although the node "a" may have the attribute "b" set to a non-empty
string.
[1] http://www.w3.org/TR/xpath#section-String-Functions
===============================================================================
The simplest way to count nodes in a XML doc:
xpath('root/yourNodeName');
$nodeCount = count($xmlNode);
echo $nodeCount;
?>
===============================================================================
xpath doesn't seem to be able to handle single quotes embedded in the query
itself. For instance, I want to find geo coordinates in an xml file based on
country name.
xml snippet:
zone>
The following code does not work:
xpath("//zone[@country='Cote d\'Ivoire']");
foreach ( $result[0]->attributes() as $key => $val ) {
print "$key: $val
\n";
}
?>
I have tried many variations on the embedded single quote (i.e. escape codes)
but with no result. W3C offers no explanation either.
In addition, there doesn't seem to be any way of embedding wildcards in the
attribute value (you can embed wildcards in the attribute name). Otherwise the
following might be a reasonable substitute in this context:
xpath("//zone[@country='Cote d*Ivoire']"); ?>
===============================================================================
Whether it returns a false or empty array for a non-existing path seems to
depend on libxml version.
I tried the following code:
';
$xml = simplexml_load_string($data);
print gettype($xml->xpath('/first/second'));
?>
On a machine with libxml 2.6.16 and PHP 5.2.8 I got back boolean. On a
different machine with libxml 2.7.3 and PHP 5.2.8/5.2.9 I got back empty array.
You can check the libxml version from command line by executing: php --ri
libxml
or simply look at phpinfo() output


Tests at Kildare plant may see boil water notice may be lifted today
by By Digital Desk staffThe results of tests from the treatment plant at the centre of a boil water notice are expected later.
It will determine if the drinking water ban affecting over 600,000 people in the greater Dublin area can be lifted.
Around 615,000 people in parts of Dublin, Kildare and Meath are now into their their eighth day of having to boil their drinking water.
Irish Water says the issue stemmed from heavy rain which led to high levels of cloudy water entered its Leixlip treatment plant.
It is the second time a boil water notice has been issued for the Kildare facility in recent months, with the previous ban being in place for three days before being lifted.
The latest samples were taken yesterday and over the weekend, while further samples will also to be collected this morning.
The final results of those are expected later this afternoon or evening.
Authorities at the HSE, EPA and Irish Water will then decide to either lift the ban or leave it in place.


Table Name: tabPayment Terms Template Detail
| Sr | Fieldname | Type | Label | Options |
|---|---|---|---|---|
| 1 | payment_term |
Link | Payment Term | Payment Term |
| 2 | description |
Small Text | Description | |
| 3 | invoice_portion |
Percent | Invoice Portion | |
| 4 | due_date_based_on |
Select | Due Date Based On |
Day(s) after invoice date Day(s) after the end of the invoice month Month(s) after the end of the invoice month |
| 5 | credit_days |
Int | Credit Days | |
| 6 | credit_months |
Int | Credit Months | |
| 7 | mode_of_payment |
Link | Mode of Payment | Mode of Payment |


No orders
Order State: {{orderService.order.state}}
Date Started: {{orderService.order.dateStarted}}
Id: {{product.product.id}}
Product Name: {{product.product.name}}
Quantity: {{product.quantity}}
Name: {{orderService.order.orderClient.client.userName}}
Email: {{orderService.order.orderClient.client.email}}
Phone Number: {{orderService.order.orderClient.client.phoneNumber}}
Street Number: {{orderService.order.orderClient.client.address.streetNumber}}
Street: {{orderService.order.orderClient.client.address.street}}
Door: {{orderService.order.orderClient.client.address.door}}
City: {{orderService.order.orderClient.client.address.city}}
Country: {{orderService.order.orderClient.client.address.country}}
Postal Code: {{orderService.order.orderClient.client.address.postalCode}}


Item 2.
Create a document called "science'' in a folder called "homework''
From KeyWord Menu, create a document space + enter or letter c, enter
At "folder name'' prompt, type "Homework'', then press enter
-
At the cue, "folder does not exist, create new?"
For yes letter y
For no letter n
At "File Name?'' prompt, write "Science'' as the file name and press enter
You will be placed in your blank document called Science.