Introduction
Welcome to the Postit v1 API! You can use our API to access Postit API endpoints, with which you can create and access user and group data in our database.
Postit API is organized around REST and uses HTTP verbs and response codes that most clients are familiar with. All requests must be formatted as Content-Type: application/json (except where noted). All responses are also formatted JSON, encoded in the UTF-8 character encoding (Content-Type: application/json; charset=utf-8). The Accept header will be ignored for all requests.
Base API Endpoint
https://postit-ray.herokuapp.com/api/v1
The API is implemented in Javascript(Nodejs). You can view code examples in the dark area to the right.
Authentication
Some endpoints (routes) in this API are protected. They require an access token (x-auth) in the request headers. You can get this token when you signup as a new user or login as existing user.
To authorize requests to protected endpoints, set the x-auth token in the request header like this::
{
"x-auth": "YOUR_AUTH_TOKEN"
}
Endpoints Summary
Base Endpoint : https://postit-ray.herokuapp.com/api/v1
The endpoints for the listed routes should be appended to the base endpoint to get the full endpoint.
User routes
| Feature | Request type | Endpoint |
|---|---|---|
| Sign up | POST | '/user/signup' |
| Sign in | POST | '/user/signin' |
| Your Profile | GET | '/user/me' |
| Get all Users | GET | '/user/all' |
| Get all User Groups | GET | '/user/me/groups' |
| Get all User Messages | GET | '/user/me/messages' |
| Change User Password | PATCH | '/user/me/password' |
| Edit User Profile | PATCH | '/user/me/edit' |
Recovery routes
| Feature | Request type | Endpoint |
|---|---|---|
| Forgot password | POST | '/forgotpassword' |
| Reset Password | POST | '/resetpassword' |
Group routes
| Feature | Request type | Endpoint |
|---|---|---|
| Create new group | POST | '/group' |
| Add User to Group | POST | '/group/:groupid/user') |
| Remove User from Group | DELETE | '/group/:groupid/user' |
| Leave Group | POST | '/group/:groupid/leave' |
| Get Group Users | GET | '/group/:groupid/users' |
| Post New Message | GET | '/group/:groupid/message', |
| Get Group Messages | GET | '/group/:groupid/messages' |
| Mark a message as read | POST | '/group/:groupid/message/:messageid/read' |
| Edit group info | PATCH | '/group/:groupid/info' |
| Delete Group | POST | '/group/:groupid/remove' |
Users
To use the API, you would have to signup as a user. Users can create groups, search other users and add them to their groups, leave groups they have beeen added to, delete groups they have created, and send messages in groups to which they belong.
Signup new user
This endpoint allows new users create accounts and access protected routes. If the request is successful, the response body would contain a message that welcomes the new user, and a user object that contains user data. This user object contains:
Request Parameters
| Parameter | Description |
|---|---|
| username | required |
| required | |
| password | required |
Response Parameters
| Parameter | Description |
|---|---|
| id | A unique API generated integer that identifies the user resource on the database. |
| username | The username used to sign up. |
| The email used to sign up | |
| about | Defaults to New to Postit . This can be changed later. |
| imageUrl | Defaults to an empty string. |
| createdAt | Time the user record was created in the database. |
| updatedAt | Last time the user record was modified. |
Sample Request:
{
"username": "daenerys"
"email"<EMAIL_ADDRESS>"password": "dracarys"
}
Sample Success Response:
{
"message": "welcome daenerys",
"user": {
"id": 5,
"username": "daenerys",
"email"<EMAIL_ADDRESS>"about": "New to Postit",
"imageUrl": "",
"createdAt": "2017-11-16T08:45:49.906Z",
"udatedAt": "2017-11-16T08:45:49.906Z",
}
}
Sample Error Responses:
- No username provided (status 400)
{
"error": "Username is required"
}
- No email provided (status 400)
{
"error": "Email is required"
}
- No password provided (status 400)
{
"error": "Password is required"
}
- Username is shorter than three characters (status 400)
{
"error": "Username cannot be shorter than 3 characters"
}
- Username is longer than twelve characters (status 400)
{
"error": "Username cannot be longer than 12 characters"
}
- Username is contains non-alphanumeric characters (status 400)
{
"error": "Only alphanumeric characters allowed"
}
- Username already exists in the database (status 409)
{
"error": "Username already taken"
}
- Email already exists in the database (status 409)
{
"error": "Email already taken"
}
Request
- Endpoint: POST:
https://postit-ray.herokuapp.com/api/v1/user/signup
- Body
(application/json)
Success Response
- Status:
201: Created
- Body
(application/json)
- Returns x-auth token in header
Error Response Codes
The possible error status codes from the signup request are:
- 400 (Bad request)
- 409 (Conflict)
- 500 (Internal server error).
See the errors section for the complete list of error codes that the api server could return, and what they mean.
Signin user
This endpoint allows existing users signin with the same credentials with which they created their accounts. The signin process returns an x-auth token in the header which identifies and authorizes the user to access other endpoints that require authentication. It returns a message welcoming the user, and a user object with the same fields as in the Signup response.
Request Parameters
| Parameter | Description |
|---|---|
| username | required |
| password | required |
Sample Request:
{
"username": "brandon"
"password": "the3eyedRaven"
}
Sample Success Response:
{
"message": "welcome back brandon",
"user": {
"id": 2,
"username": "brandon",
"email"<EMAIL_ADDRESS>"about": "I am the past and future",
"createdAt": "2017-11-16T08:45:49.906Z",
"udatedAt": "2017-11-16T08:45:49.906Z",
}
}
Sample Error Responses:
- No username provided (status 400)
{
"error": "Username is required"
}
- No password provided (status 400)
{
"error": "Password is required"
}
- Username or password is incorrect (status 401)
{
error: 'Username/Password is incorrect'
}
Request
- Endpoint: POST:
https://postit-ray.herokuapp.com/api/v1/user/signin
- Body
(application/json)
Success Response
- Status:
200: OK
- Body
(application/json)
- Returns x-auth token in header
Error Response Codes
The possible error status codes from the signin request are:
- 400 (Bad request)
- 401 (Unauthorized)
- 500 (Internal server error).
See the errors section for the complete list of error codes that the api server could return, and what they mean.
Current User
This endpoint returns the current user details. The response is pretty much the same as in Signup and Signup responses. Unlike the Signin and Signup enpoints, however, this requires authentication. Add your x-auth token to the request header.
Sample Success Response:
{
"user": {
"id": 7,
"username": "littlefinger",
"email"<EMAIL_ADDRESS>"about": "Knowledge is power",
"imageUrl": "",
"createdAt": "2017-11-16T08:45:49.906Z",
"udatedAt": "2017-11-16T08:45:49.906Z",
}
}
Sample Error Responses:
- User is not authenticated (status 401)
{
error: 'You need to signup or login first'
}
- Server encountered a database error (status 500)
{
error: 'Internal Server Error'
}
Request
- Endpoint: GET: `https://postit-ray.herokuapp.com/api/v1/user/edit
- Requires authentication
Success Response
- Status:
200: OK
- Body
(application/json)
Error Response Codes
The possible error status codes from this request are:
- 401 (Unauthorised)
- 500 (Internal server error).
See the errors section for the complete list of error codes that the api server could return, and what they mean.
Get all users
Get an array of all users. For privacy reasons, user details returned in this request is limited to the user id
, username
and about
. Requires authentication.
Sample Success Response:
{
"users": [
{
"id": 1,
"username": "testuser1",
"about": "New to Postit"
},
{
"id": 2,
"username": "testuser2",
"about": ""
},
{
"id": 5,
"username": "ray",
"about": "I am awesome"
}
]
}
Sample Error Responses:
- User is not authenticated (status 401)
{
error: 'You need to signup or login first'
}
- Server encountered a database error (status 500)
{
error: 'Internal Server Error'
}
Request
- Endpoint: GET:
https://postit-ray.herokuapp.com/api/v1/users/all
- Requires authentication
Success Response
- Status:
200: OK
- Body
(application/json)
Error Response Codes
The possible error status codes from the signup request are:
- 401 (Unauthorized)
- 500 (Internal server error).
See the errors section for the complete list of error codes that the api server could return, and what they mean.
Get all groups the current user belongs to
This endpoint returns a list of the current user's groups for successful requests. Requires authentication.
Sample Success Response:
{
"userGroups": [
{
"id": 1,
"name": "Our Super Awesome Group",
"createdBy": "ray",
"description": "",
"type": "public",
"createdAt": "2017-09-14T07:40:49.059Z",
"updatedAt": "2017-09-14T07:40:49.059Z"
},
{
"id": 2,
"name": "Lord of the Rings",
"createdBy": "bilbo",
"description": "For fans of LOTR",
"type": "public",
"createdAt": "2017-09-14T07:41:01.684Z",
"updatedAt": "2017-09-14T07:41:01.684Z"
}
]
}
Sample Error Responses:
- User is not authenticated (status 401)
{
error: 'You need to signup or login first'
}
- Server encountered a database error (status 500)
{
error: 'Internal Server Error'
}
Request
- Endpoint: GET:
https://postit-ray.herokuapp.com/api/v1/user/me/groups
- Requires authentication
Success Response
- Status:
200: OK
- Body
(application/json)
Error Response Codes
The possible error status codes from the signup request are:
- 401 (Unauthorized)
- 500 (Internal server error).
See the errors section for the complete list of error codes that the api server could return, and what they mean.
Get all messages sent by current user
All the messages that the current user has sent can be gotten with this endpoint. This requires authentication.
Response Parameters
| Parameter | Description |
|---|---|
| id | A unique API generated integer that identifies each message resource on the database. |
| content | Message content. |
| priority | Message priority, which is one of normal , urgent or critical . |
| sender | The username of the message sender |
| readby | String of usernames of users that have read the message. |
| createdAt | Time the user record was created in the database. |
| updatedAt | Last time the message record was modified. |
Sample Success Response:
{
"messages": [
{
"id": 1,
"content": "Hello folks, this is important",
"priority": "critical",
"sender": "ray",
"readBy": "sammy,tope,arya",
"createdAt": "2017-09-14T07:43:32.377Z",
"groupId": 3
},
{
"id": 2,
"content": "hmmm",
"priority": "normal",
"sender": "ray",
"readBy": "arya",
"createdAt": "2017-09-14T07:50:59.679Z",
"groupId": 3
}
]
}
Sample Error Responses:
- User is not authenticated (status 401)
{
error: 'You need to signup or login first'
}
- Server encountered a database error (status 500)
{
error: 'Internal Server Error'
}
Request
- Endpoint: GET:
api/user/me/messages
- Requires authentication
Sample Response
- Status:
200: OK
- Body
(application/json)
Error Response Codes
The possible error status codes from the signup request are:
- 401 (Unauthorized)
- 500 (Internal server error).
See the errors section for the complete list of error codes that the api server could return, and what they mean.
Edit User Profile
This endpoint makes it possible for users to edit their profile details. Details that can be changed include email
, about
and imageUrl
. Note that users cannot change their usernames.
Request Parameters
| Parameter | Description |
|---|---|
| required | |
| about | not required |
| imageUrl | not required |
Sample Success response:
{
"user": {
"id": 7,
"username": "littlefinger",
"email"<EMAIL_ADDRESS>"about": "Knowledge is power",
"imageUrl": "",
"createdAt": "2017-11-16T08:45:49.906Z",
"udatedAt": "2017-11-16T08:45:49.906Z",
}
}
Sample Error Responses:
- User is not authenticated (status 401)
{
error: 'You need to signup or login first'
}
- Server encountered a database error (status 500)
{
error: 'Internal Server Error'
}
Request
- Endpoint: POST:
https://postit-ray.herokuapp.com/api/v1/user/me
- Requires authentication
Success Response
- Status:
200: OK
- Body
(application/json)
Error Response Codes
The possible error status codes from the signup request are:
- 400 (Bad request)
- 401 (Unauthorized)
- 500 (Internal server error).
See the errors section for the complete list of error codes that the api server could return, and what they mean.
Request password reset
Existing users can request a password reset and get a reset email with a link. When clicked, the link takes the user to the react app reset page.
Reset link
The reset email contains a link that looks like http://postit-ray.herokuapp.com/resetpassword?t=AjSBlpn1tmCLiRl8i8LEUMhloM5fzYM3HJua4k4pfIF0peQBQHHtMzz8z8mn
. The query parameter t
represents the reset token that identifies the users when they go ahead to try to reset their passwords.
Sample Request
{
"email"<EMAIL_ADDRESS>}
Sample Success Response
{
"message": "An email with reset instructions has been sent to<EMAIL_ADDRESS>}
Sample Error Responses:
- Destination Email not provided (status 400)
{
error: 'Email is required'
}
- Server encountered a database error (status 500)
{
error: 'Internal Server Error'
}
Request
- Endpoint: POST:
https://postit-ray.herokuapp.com/api/v1/resetpassword
- Body
(application/json)
Success Response
- Status:
200: OK
- Body
(application/json)
- Sends recovery link to provided email if registered
Error Response Codes
The possible error status codes from the signup request are:
- 400 (Bad request)
- 500 (Internal server error).
See the errors section for the complete list of error codes that the api server could return, and what they mean.
Reset Password
Users who have already gotten a reset email, can go ahead to change their passwords, using the reset link as authentication. When making requests to this endpoint, simply copy the reset hash sent in the reset mail and attach to the t
(token) request pararmeter of this endpoint. This reset hash expires after a six hours and can only be used once.
Sample Request:
{
"password": "iChangeFaces"
}
Sample Success Response:
{
"message": "Your password has been successfully reset.",
"user": {
"id": 2,
"username": "arya",
"email"<EMAIL_ADDRESS>"about": "I am NO ONE",
"createdAt": "2017-09-08T18:26:12.944Z",
"updatedAt": "2017-09-09T22:52:30.814Z"
}
}
Sample Error Responses:
- No reset token provided (status 400)
{
error: 'Invalid reset link'
}
- New password not provided (status 400)
{
error: 'Password is required!'
}
- Reset token not associated with any user (status 401)
{
error: 'Link cannot be validated'
}
- Reset token has expired (status 401)
{
error: 'Link has expired'
}
Request
- Endpoint: POST:
https://postit-ray.herokuapp.com/api/v1/resetpassword?t=<RESET_HASH>
- Body
(application/json)
Success Response
- Status:
201: Created
- Body
(application/json)
- Returns x-auth token in header
Error Response Codes
The possible error status codes from the signup request are:
- 400 (Bad request)
- 401 (Unauthorized)
- 500 (Internal server error).
See the errors section for the complete list of error codes that the api server could return, and what they mean.
Groups
Groups are communication channels that provide a platform for sharing messages amongst members. Groups can be either public or private. Currently, there is no difference in implementation. Expect huge updates soon.
Besides the endpoint for creating new groups, other group endpoints require a groupid as a url parameter
Create new group
A registered user can create a new group with this endpoint.
Request Parameters
| Parameter | Description |
|---|---|
| name | required |
| description | not required |
| type | Groups are either public or private. This is required. |
Response Parameters
| Parameter | Description |
|---|---|
| id | A unique API generated integer that identifies the group resource on the database. |
| name | The name of the group. |
| description | Group description. Defaults to an empty string. |
| type | Group type. Defaults to Public . |
| createdBy | Username of the user that created the group. |
| createdAt | Time the group record was created in the database. |
| updatedAt | Last time the group record was modified. |
Sample Request:
{
"name": "ASOIAF",
"description": "For fans and characters of A Song of Ice and Fire",
"type": "private"
}
Sample Success Response
{
"message": "Group created",
"group": {
"id": 1,
"name": "ASOIAF",
"description": "For fans and characters of A Song of Ice and Fire",
"createdBy": "ray",
"type": "private",
"updatedAt": "2017-09-17T15:07:32.369Z",
"createdAt": "2017-09-17T15:07:32.369Z"
}
}
Sample Error Responses:
- User is not authenticated (status 401)
{
error: 'You need to signup or login first'
}
User is not a member of specified group (status 403)
{
error: 'You must belong to a group to interact with it'
}
- No group name provided (status 400)
{
error: 'Group name is required.'
}
- Group name longer than 20 characters (status 400)
{
error: 'Group name too long'
}
- Group description longer than 180 characters (status 400)
{
error: 'Group description too long'
}
- User has a group with that same name (status 409)
{
error: 'You already have a group with this name'
}
- Server encountered a database error (status 500)
{
error: 'Internal Server Error'
}
Request
- Endpoint: POST:
https://postit-ray.herokuapp.com/api/v1/group
- Body
(application/json)
- Requires Authentication
Success Response
- Status:
201: Created
- Body
(application/json)
Error Response Codes
The possible error status codes from the signup request are:
- 400 (Bad request)
- 401 (Unauthorized)
- 409 (Conflict)
- 500 (Internal server error).
See the errors section for the complete list of error codes that the api server could return, and what they mean.
Add user to group
A group user can add another user to a group, with the username. You must belong to the group to interact with it.
Sample Request:
{
"username": "jonsnow"
}
Sample Success Response:
{
"message": "jonsnow added to group"
}
Sample Error Responses:
- User is not authenticated (status 401)
{
error: 'You need to signup or login first'
}
User is not a member of specified group (status 403)
{
error: 'You must belong to a group to interact with it'
}
- No user with provided username (status 400)
{
error: 'User does not exist with that username'
}
- There is already a user with provided username in the group (status 409)
{
error: 'jonsnow already in group'
}
- Server encountered a database error (status 500)
{
error: 'Internal Server Error'
}
Request
- Endpoint: POST:
https://postit-ray.herokuapp.com/api/v1/group/:groupid/user
- Body
(application/json)
- Requires Authentication
Success Response
- Status:
201: Created
- Body
(application/json)
Error Response Codes
The possible error status codes from the signup request are:
- 400 (Bad request)
- 401 (Unauthorized)
- 409 (Conflict)
- 500 (Internal server error).
See the errors section for the complete list of error codes that the api server could return, and what they mean.
Remove user from group
A group creator can remove users from a group.
Sample Request:
{
"username": "sansa"
}
Sample Success Response:
{
"message": "sansa removed from group"
}
Sample Error Responses:
- User is not authenticated (status 401)
{
error: 'You need to signup or login first'
}
User is not a member of specified group (status 403)
{
error: 'You must belong to a group to interact with it'
}
- A user that is not the group creator tries to remove other users (status 403)
{
error: 'Only a group creator can remove members'
}
- There is no user with that username in the group (status 404)
{
error: 'No such user in specified group'
}
- Server encountered a database error (status 500)
{
error: 'Internal Server Error'
}
Request
- Endpoint: DELETE:
https://postit-ray.herokuapp.com/api/v1/group/:groupid/user
- Body
(application/json)
- Requires Authentication
- Only the group creator can make successfull requests to this endpoint
Sucess Response
- Status:
201: Created
- Body
(application/json)
Error Response Codes
The possible error status codes from the signup request are:
- 400 (Bad request)
- 401 (Unauthorized)
- 403 (Forbidden)
- 404 (Not Found)
- 500 (Internal server error).
See the errors section for the complete list of error codes that the api server could return, and what they mean.
Get users by group
This returns a list of users based on a specified group. With this endpoint, you would get back by default a list of users in a group. If you wish to get a list of users not in a group, add ?members=false
query to the url, along with optional username
, offset
and limit
parameters to further refine your search.
The user search by group feature supports pagination.
Sample Success Response
{
"group": {
"id": 1,
"name": "ASOIAF",
"createdBy": "ray",
"description": "",
"type": "public",
"createdAt": "2017-09-14T07:40:49.059Z",
"updatedAt": "2017-09-14T07:40:49.059Z"
},
"users": [
{
"id": 5,
"username": "ray",
"email"<EMAIL_ADDRESS>"about": "New to Postit",
"createdAt": "2017-09-14T07:40:30.728Z",
"updatedAt": "2017-09-14T07:40:30.728Z",
"UserGroup": {
"userId": 5,
"groupId": 1,
"createdAt": "2017-09-14T07:40:49.502Z",
"updatedAt": "2017-09-14T07:40:49.502Z"
}
},
{
"id": 8,
"username": "jonsnow",
"email"<EMAIL_ADDRESS>"about": "The watcher on the wall",
"createdAt": "2017-09-14T07:40:30.728Z",
"updatedAt": "2017-09-14T07:40:30.728Z",
"UserGroup": {
"userId": 8,
"groupId": 1,
"createdAt": "2017-09-14T07:40:49.502Z",
"updatedAt": "2017-09-14T07:40:49.502Z"
}
}
]
}
Sample Error Responses:
- User is not authenticated (status 401)
{
error: 'You need to signup or login first'
}
User is not a member of specified group (status 403)
{
error: 'You must belong to a group to interact with it'
}
- Server encountered a database error (status 500)
{
error: 'Internal Server Error'
}
Request
- Endpoint:
- Get group members: GET:
https://postit-ray.herokuapp.com/api/v1/group/:groupid/users
- Get non-members: GET:
https://postit-ray.herokuapp.com/api/v1/group/:groupid/users?members=false&username=:username&limit=:limit&offset=:offset
- Get group members: GET:
- Requires Authentication
URL parameters
| Parameter | Description |
|---|---|
| groupid | ID of the group |
Query Parameters
These are the parameters expected when searching for non-members.
| Parameter | Default | Description |
|---|---|---|
| username | "" | Search query. If empty, returns all users not in group. |
limit | | Sets the number of results to return per page. If empty, returns the whole result. offset | 0 | Sets the number of results to skip.
Success Response
- Status:
200: OK
- Body
(application/json)
Error Response Codes
The possible error status codes from the signup request are:
- 400 (Bad request)
- 401 (Unauthorized)
- 403 (Forbidden)
- 500 (Internal server error).
See the errors section for the complete list of error codes that the api server could return, and what they mean.
Send message to group
A registered user can send messages to groups they belong to.
Sample Request:
{
"content": "In the beginning were the little children of the forest",
"priority": "normal"
}
Sample Response:
{
"message": {
"id": 13,
"content": "In the beginning were the little children of the forest",
"priority": "normal",
"sender": "ray",
"readBy": "aite",
"updatedAt": "2017-09-17T15:46:01.612Z",
"createdAt": "2017-09-17T15:46:00.884Z"
}
}
Sample Error Responses:
- User is not authenticated (status 401)
{
error: 'You need to signup or login first'
}
User is not a member of specified group (status 403)
{
error: 'You must belong to a group to interact with it'
}
- No message content (status 400)
{
error: 'Message must not be empty'
}
- Incorrect priority (status 400)
{
error: 'Incorrect priority option. Choose NORMAL, URGENT or CRITICAL'
}
- Server encountered a database error (status 500)
{
error: 'Internal Server Error'
}
Request Parameters
| Parameter | Description |
|---|---|
| content | required |
| priority | Should be of normal , urgent or critical . This parameter is not required and defaults to normal if not provided. |
Response Parameters
| Parameter | Description |
|---|---|
| id | A unique API generated integer that identifies each message resource on the database. |
| content | Message content. |
| priority | Message priority, which is one of normal , urgent or critical . |
| sender | The username of the message sender |
| readby | String of usernames of users that have read the message. |
| createdAt | Time the user record was created in the database. |
| updatedAt | Last time the message record was modified. |
Request
- Endpoint: POST:
https://postit-ray.herokuapp.com/api/v1/group/:groupid/message
- Body
(application/json)
- Requires Authentication
Success Response
- Status:
200: OK
- Body
(application/json)
Error Response Codes
The possible error status codes from the signup request are:
- 401 (Unauthorized)
- 403 (Forbidden)
- 500 (Internal server error).
See the errors section for the complete list of error codes that the api server could return, and what they mean.
Get group messages
Get an array of all messages that has been sent to the group.
Sample Success Response
{
"group": {
"id": 1,
"name": "Our Super Awesome Group",
"createdBy": "ray",
"description": "",
"type": "public",
"createdAt": "2017-09-14T07:40:49.059Z",
"updatedAt": "2017-09-14T07:40:49.059Z"
},
"messages": [
{
"id": 4,
"content": "Hello folks",
"priority": "normal",
"sender": "ray",
"readBy": "ray,tom,sammy",
"createdAt": "2017-09-15T16:08:14.144Z",
"updatedAt": "2017-09-15T16:08:14.292Z",
"groupId": 1,
"userId": 5
},
{
"id": 5,
"content": "Hello ray",
"priority": "normal",
"sender": "sammy",
"readBy": "sammy,ray",
"createdAt": "2017-09-15T16:08:28.655Z",
"updatedAt": "2017-09-15T16:08:28.740Z",
"groupId": 1,
"userId": 7
}
]
}
Sample Error Responses:
- User is not authenticated (status 401)
{
error: 'You need to signup or login first'
}
User is not a member of specified group (status 403)
{
error: 'You must belong to a group to interact with it'
}
- Server encountered a database error (status 500)
{
error: 'Internal Server Error'
}
Request
- Endpoint: GET:
https://postit-ray.herokuapp.com/api/v1/group/:groupid/messages
- Body
(application/json)
- Requires Authentication
Success Response
- Status:
200: OK
- Body
(application/json)
Error Response Codes
The possible error status codes from the signup request are:
- 401 (Unauthorized)
- 403 (Forbidden)
- 500 (Internal server error).
See the errors section for the complete list of error codes that the api server could return, and what they mean.
Change group info
Edit the info for an existing group. Group name is required. If description is absent, it is set to null. If no type is specified, it is left unchanged.
Sample Request:
{
"name": "Beautiful intellect",
"description": "Love your mind"
}
Sample Success Response:
{
"message": "Group info successfully updated",
"group": {
"id": 2,
"name": "Beautiful intellect",
"createdBy": "ray",
"description": "Love your mind",
"type": "public",
"createdAt": "2017-09-14T07:41:01.684Z",
"updatedAt": "2017-09-24T15:30:18.084Z"
}
}
Sample Error Responses:
- User is not authenticated (status 401)
{
error: 'You need to signup or login first'
}
User is not a member of specified group (status 403)
{
error: 'You must belong to a group to interact with it'
}
- No group name provided (status 400)
{
error: 'Group name is required.'
}
- Group name longer than 20 characters (status 400)
{
error: 'Group name too long'
}
- Group description longer than 180 characters (status 400)
{
error: 'Group description too long'
}
- Server encountered a database error (status 500)
{
error: 'Internal Server Error'
}
Request
- Endpoint: PATCH:
https://postit-ray.herokuapp.com/api/v1/group/:groupid/info
- Body
(application/json)
- Requires Authentication
Success Response
- Status:
201: OK
- Body
(application/json)
Leave group
This endpoint allows a registered user who has been added to a group to leave it.
Sample response:
{
"message": "robb has left the group"
}
Request
- Endpoint: POST:
api/group/:groupid/leave
- Body
(application/json)
- Requires Authentication
Success Response
- Status:
201: OK
- Body
(application/json)
- Deletes the group when everyone has left
Error Response Codes
The possible error status codes from the signup request are:
- 400 (Bad request)
- 401 (Unauthorized)
- 500 (Internal server error).
See the errors section for the complete list of error codes that the api server could return, and what they mean.
Delete group
This endpoint allows a group creator delete the group
Sample Success Response:
{
"message": "Group successfully deleted"
}
Sample Error Responses:
- User is not authenticated (status 401)
{
error: 'You need to signup or login first'
}
User is not a member of specified group (status 403)
{
error: 'You must belong to a group to interact with it'
}
- A user tries to delete group they did not create (status 403)
{
error: 'You can only delete groups created by you'
}
- Server encountered a database error (status 500)
{
error: 'Internal Server Error'
}
Request
- Endpoint: POST:
https://postit-ray.herokuapp.com/api/v1/group/:groupid/remove
- Body
(application/json)
- Requires Authentication
Success Response
- Status:
201: OK
- Body
(application/json)
Error Response Codes
The possible error status codes from the signup request are:
- 400 (Bad request)
- 401 (Unauthorized)
- 500 (Internal server error).
See the errors section for the complete list of error codes that the api server could return, and what they mean.
Errors
The Postit API uses the following error codes:
| Error Code | Meaning |
|---|---|
| 400 | Bad Request -- You did not quite structure your request as you should have. |
| 401 | Unauthorized -- Your x-auth access token is invalid. |
| 403 | Forbidden -- You cannot access this routes, because you have insufficient permissions although authenticated. |
| 404 | Not Found -- The specified group or user, or even route, could not be found. |
| 500 | Internal Server Error -- We had a problem with our server. Try again later. |
Contributing
Have an excellent idea that you think would add value to the Postit API? Awesome! Contributing is totally encouraged. Simply create an issue and let us know. If you are not sure what you can do to contribute, you can check out the Issues page, and if you find something you want to work on, let us know in the comments.
We totally would love to see Pull Requests, and while we encourage it, Pull Requests should: - Contain code written in ES6 for Javascript files. - Lint and adhere to the Airbnb javascript style guide. - Pass existing tests, and tests you include for your contribution.


mal
made with
voxel.js
by
shama
click to initialize...
x0
Your browser does not support the audio element.


“What would those good old men have thought when they were laughing at and ridiculing Mr. Terry, if they had known that the little urchin who was so eagerly listening to their conversation would live to make Two Hundred Thousand metal clocks in one year, and many millions in his life.  — Chauncey Jerome, History Of The American Clock Business For The Past Sixty Years


{{Infobox prepared food | name = Pillus | image = | caption = | alternate_name = | country = Italy | region = Sardinia | creator = | course = | type = Pasta | served = | main_ingredient = | variations = | calories = | other = }} {{unreferenced|date=December 2009}} Pillus is a type of ribbon pasta noodles typical of Sardinia. Pillus is typically very thin.
{{Pasta}}
{{Italy-cuisine-stub}}


com.jme3.material
package contains classes for manipulating
jMonkeyEngine materials.
Materials are applied to {@link com.jme3.scene.Geometry geometries} in the
scene.
Each geometry has a single material which is used to render that
geometry.
Materials (also known as material instances) are extended from material definitions.
Material definitions provide the "logic" for the material. Usually a shader that will handle drawing the object, and corresponding parameters that allow configuration of the shader. Material definitions can be created through J3MD files. The J3MD file abstracts the shader and its configuration away from the user, allowing a simple interface where one can simply set a few parameters on the material to change its appearance and the way its handled.
Techniques specify a specific way of rendering a material. Typically a technique is used to implement the same material for each configuration of the system. For GPUs that do not support shaders, a "fixed function pipeline" technique could exist to take care of rendering for that configuration
See {@link com.jme3.material.RenderState}.
Creating a textured material
// Create a material instance
Material mat = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md");
// Load the texture.
Texture tex = assetManager.loadTexture("Textures/Test/Test.jpg");
// Set the parameters
mat.setTexture("ColorMap", tex);


The Mixer (explanation) |
|
| Description | In this example, the Beatnik Player's LiveConnect features are used to allow the user to interact with a file while it is playing, to essentially create a remix of the music composition. The setController and getController methods are used extensively to change the mix as the user adjusts the sliders. There is a slider for each MIDI channel, and the particular aspect of the remix that is controlled by the slider is determined by the MIDI controller that is selected, indicated by the glowing controller name at the top of the mixer. Select a file to play from the drop down list beneath the mixer.IMPORTANT: To adjust the sliders, first click and release on the slider you want to change. Then mouse up and down over the slider to change its value. You cannot click and drag the slider nob due to basic limitations in JavaScript. |
| Methods Used | getChannelMute, getChannelSolo, magicEmbed, setChannelMute, setChannelSolo, setController, getController, play |
| Skill Level | Advanced |
| Start... |


| 146 | (A) | the aghtten man was Mathewe þat mekiłł es luffede |
| 141 | (C) | ¶ The eytethe man is mathew . þat criste myche loued |
| 142 | (D) | þe eight man higħt Mathew þat micħ crist folwid |
| 140 | (E) | ¶ The eyȝte man hyȝte mathew . þat crist meche louede |
| (Ex) | ---- no text ---- | |
| 145 | (L) | þe eyȝt man was mathu þat is myche yloued |
| 139 | (P) | þe aghtyn man was Mathew þat es mych loued |
| 141 | (U) | The viij man is mathewe / that crist michul loued |
| (V) | ---- no text ---- |


|
Compute Library
18.08
|
Device backend interface. More...
#include <IDeviceBackend.h>
Public Member Functions | |
| virtual | ~IDeviceBackend ()=default |
| Virtual Destructor. More... | |
| virtual void | initialize_backend ()=0 |
| Initializes the backend. More... | |
| virtual void | setup_backend_context (GraphContext &ctx)=0 |
| Setups the given graph context. More... | |
| virtual void | release_backend_context (GraphContext &ctx)=0 |
| Release the backend specific resources associated to a given graph context. More... | |
| virtual bool | is_backend_supported ()=0 |
| Checks if an instantiated backend is actually supported. More... | |
| virtual IAllocator * | backend_allocator ()=0 |
| Gets a backend memory allocator. More... | |
| virtual std::unique_ptr< ITensorHandle > | create_tensor (const Tensor &tensor)=0 |
| Create a backend Tensor. More... | |
| virtual std::unique_ptr< ITensorHandle > | create_subtensor (ITensorHandle *parent, TensorShape shape, Coordinates coords, bool extend_parent)=0 |
| Create a backend Sub-Tensor. More... | |
| virtual std::unique_ptr< arm_compute::IFunction > | configure_node (INode &node, GraphContext &ctx)=0 |
| Configure a backend Node. More... | |
| virtual Status | validate_node (INode &node)=0 |
| Validate a node. More... | |
| virtual std::shared_ptr< arm_compute::IMemoryManager > | create_memory_manager (MemoryManagerAffinity affinity)=0 |
| Create a backend memory manager given its affinity. More... | |
Device backend interface.
Definition at line 47 of file IDeviceBackend.h.
|
virtualdefault |
Virtual Destructor.
|
pure virtual |
Gets a backend memory allocator.
Implemented in CLDeviceBackend, GCDeviceBackend, and NEDeviceBackend.
|
pure virtual |
Configure a backend Node.
| [in] | node | The node we want to configure |
| [in] | ctx | Context to use |
Implemented in CLDeviceBackend, GCDeviceBackend, and NEDeviceBackend.
|
pure virtual |
Create a backend memory manager given its affinity.
| [in] | affinity | Memory Manager affinity |
Implemented in CLDeviceBackend, GCDeviceBackend, and NEDeviceBackend.
|
pure virtual |
Create a backend Sub-Tensor.
| [in] | parent | Parent sub-tensor handle |
| [in] | shape | Shape of the sub-tensor |
| [in] | coords | Starting coordinates of the sub-tensor |
| [in] | extend_parent | Extends parent shape if true |
Implemented in CLDeviceBackend, GCDeviceBackend, and NEDeviceBackend.
|
pure virtual |
Create a backend Tensor.
| [in] | tensor | The tensor we want to create a backend tensor for |
Implemented in CLDeviceBackend, GCDeviceBackend, and NEDeviceBackend.
|
pure virtual |
Initializes the backend.
Implemented in CLDeviceBackend, GCDeviceBackend, and NEDeviceBackend.
|
pure virtual |
Checks if an instantiated backend is actually supported.
Implemented in CLDeviceBackend, GCDeviceBackend, and NEDeviceBackend.
|
pure virtual |
Release the backend specific resources associated to a given graph context.
| [in,out] | ctx | Graph context |
Implemented in CLDeviceBackend, GCDeviceBackend, and NEDeviceBackend.
|
pure virtual |
Setups the given graph context.
| [in,out] | ctx | Graph context |
Implemented in CLDeviceBackend, GCDeviceBackend, and NEDeviceBackend.
Validate a node.
| [in] | node | The node we want to validate |
Implemented in CLDeviceBackend, GCDeviceBackend, and NEDeviceBackend.


|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object java.util.TimerTask
public abstract class TimerTask
A task that can be scheduled for one-time or repeated execution by a Timer.
Timer
| Constructor Summary | |
|---|---|
protected |
TimerTask()
Creates a new timer task. |
| Method Summary | |
|---|---|
boolean |
cancel()
Cancels this timer task. |
abstract void |
run()
The action to be performed by this timer task. |
long |
scheduledExecutionTime()
Returns the scheduled execution time of the most recent actual execution of this task. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
protected TimerTask()
| Method Detail |
|---|
public abstract void run()
run
in interface Runnable
Thread.run()
public boolean cancel()
Note that calling this method from within the run method of a repeating timer task absolutely guarantees that the timer task will not run again.
This method may be called repeatedly; the second and subsequent calls have no effect.
public long scheduledExecutionTime()
This method is typically invoked from within a task's run method, to determine whether the current execution of the task is sufficiently timely to warrant performing the scheduled activity:
public void run() { if (System.currentTimeMillis() - scheduledExecutionTime() >= MAX_TARDINESS) return; // Too late; skip this execution. // Perform the task }This method is typically not used in conjunction with fixed-delay execution repeating tasks, as their scheduled execution times are allowed to drift over time, and so are not terribly significant.
Date.getTime()
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Copyright © 2004, 2010 Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.


CRL
Section: OpenSSL (1)Updated: 2000-02-08
Index Return to Main Contents
NAME
crl - CRL utilitySYNOPSIS
openssl crl [-inform PEM|DER] [-outform PEM|DER] [-text] [-in filename] [-out filename] [-noout] [-hash] [-issuer] [-lastupdate] [-nextupdate] [-CAfile file] [-CApath dir]DESCRIPTION
The crl command processes CRL files in DER or PEM format.COMMAND OPTIONS
- -inform DER|PEM
- This specifies the input format. DER format is DER encoded CRL structure. PEM (the default) is a base64 encoded version of the DER form with header and footer lines.
- -outform DER|PEM
- This specifies the output format, the options have the same meaning as the -inform option.
- -in filename
- This specifies the input filename to read from or standard input if this option is not specified.
- -out filename
- specifies the output filename to write to or standard output by default.
- -text
- print out the CRL in text form.
- -noout
- don't output the encoded version of the CRL.
- -hash
- output a hash of the issuer name. This can be use to lookup CRLs in a directory by issuer name.
- -issuer
- output the issuer name.
- -lastupdate
- output the lastUpdate field.
- -nextupdate
- output the nextUpdate field.
- -CAfile file
- verify the signature on a CRL by looking up the issuing certificate in file
- -CApath dir
- verify the signature on a CRL by looking up the issuing certificate in dir. This directory must be a standard certificate directory: that is a hash of each subject name (using x509 -hash) should be linked to each certificate.
NOTES
The PEM CRL format uses the header and footer lines:
-----BEGIN X509 CRL----- -----END X509 CRL-----
EXAMPLES
Convert a CRL file from PEM to DER:
openssl crl -in crl.pem -outform DER -out crl.der
Output the text form of a DER encoded certificate:
openssl crl -in crl.der -text -noout
BUGS
Ideally it should be possible to create a CRL using appropriate options and files too.SEE ALSO
crl2pkcs7(1), ca(1), x509(1)
Index
This document was created by man2html, using the manual pages.
Time: 05:29:02 GMT, December 24, 2015


What is Fixed Deposit ?
A fixed deposit (FD) is a type of term investment offered by several banks and NBFCs. These deposits typically offer a higher rate of interest, subject to certain terms and conditions. The amount you deposit in an FD is locked for a predetermined period which can vary between 7 days and 10 years. The interest rate for FDs is fixed at the time of opening the deposit and independent of any fluctuations in the market. Some financial institutions even allow one to break their FDs prematurely on paying a certain penalty fee. An FD calculator can be used to determine the interest and the amount that


WITNESS LIST Criminal Jurisprudence Committee February 25, 2003-2:00P HB 12 For: Noll, Chuck (Harris County District Attorneys Office) HB 243 Against: Atkins, Neal (Self) Douglass, Cathy (Texas Association of School Boards/ Texas Association of School Administrators) Perez, Noe (Self) On: Edmonds, Shannon (Texas District and County Attorneys Association) HB 284 For: Tripp, Alice (Texas State Rifle Association) HB 809 For: Battise, Kevin (Alabama/Coushatta Tribe of Texas) Garza, Timoteo (Self) Hisa, Carlos (Ysleta Del Sur Pueblo) Senclair, Arturo (Self and Ysleta Del Sur Pueblo) HB 878 For: Graham, Kathryn (Self) Loucks, Don (Self) Patterson, Jerry (Self) Perez, Noe (Self) Reilly Mica, Tara (National Rifle Association) Shepherd, James (Self) Shurtleff, Phillip (Self) Tarsikes, John (Self) Taylor, Michael (Self) Tripp, Alice (Texas State Rifle Association) Against: Lee, Donald (Texas Conference of Urban Counties) Lyons, Lt. Steve (City of Houston / Houston Police Department / Texas Municipal League) Westbrook, Lt. Max (Austin Police Department) On: Edmonds, Shannon (Texas District and County Attorneys Association) Mendez, Mark (Tarrant County Commissioners Court)


A Nucleus is a Membrane Orgenelle and is the main
Control Panel of a Cell and is the center of the
cell.It also contains the Cell's Chromosomes Both
Plant and Animal Cells have a Nucleus, but not
everything in a Cell is found in both types of Cells.
The Pores in the Cell's Nuclear Membrane allow for
transportationand/or passage of a Molecule in and
out of the Nucleus...
Equation Complete Next Page?
Back


--- layout: event title: Bicycle Brazing Workshop 1/2 datetime: 2016-03-01 (Tue) 18:00-21:00 location: Sprout, 339R Summer St, Somerville (home to SBK) description: bicycle brazing discussion and brazing demonstration ---
Prospective framebuilders or modders! Learn how to braze accessories onto steel bicycle frames!
We will have a open-ended discussion about general brazing and bicycle brazing. Topics covered: tools, materials, techniques. We will briefly demonstrate brazing with some scrap, and show off some examples of finished braze jobs we've done before.
For those interested, we will help you position, miter, and braze your braze-on accessories for installation on your steel bicycle frame. Come prepared with your braze-ons or have them delivered before session 2 of this workshop! We have a small collection of extra braze-on accessories (seat bolt bosses, canti bosses, rack eyelets, etc.) which you are free to use, but the selection is limited.
Session 2 is a continuation of this workshop.
Suggested contribution: $10


Classification
0
To get started draw a digit in the box and hit "Classify". A 1-hidden layer neural network, implemented in TensorFlow, will then give it's best guess as to what number you wrote.
The model was trained on the MNIST dataset and runs in the browser with TensorFlow.js


1 Samuel 15:35
And Samuel came no more to see Saul until the day of his death: nevertheless Samuel mourned for Saul: and the LORD repented that he had made Saul king over Israel.


{{object_type}} : {{object_name}}
Daily Summary
Generated for {{current_date}}
-
Active Patients
-
Patient Registered Today
-
Patient Discharged Today
Patients Registered By Age Group
|
Age Group
|
Count
|
{% for patients_age_group in patients_age %}
|
{{patients_age_group.title}}
|
{{patients_age_group.total_count}}
|
{% endfor %}
Patients Registered By Category
|
Category
|
Count
|
{% for patients_category in patients_categories %}
|
{{patients_category.title}}
|
{{patients_category.total_count}}
|
{% endfor %}
Shifting
-
Total
-
Up Shift
-
Down Shift
Shifting Summary
|
Status
|
Total Count
|
Emergency Count
|
{% for shifting in shifting_status %}
|
{{shifting.status}}
|
{{shifting.total_count}}
|
{{shifting.emergency_count}}
|
{% endfor %}


HTTP4e Client by Atanas Roussev
http://nextinterfaces.com
Project:
This product includes software developed by the Apache Software Foundation
https://hc.apache.org
, Eclipse Project
http://eclipse.org
and Gargoyle Software Inc
http://gargoylesoftware.com
.
Icon set by
Tango.Freedesktop.org
License:
Apache License, Version 2.0
http://www.apache.org/licenses/LICENSE-2.0
© Copyright currentYear
http://nextinterfaces.com
. All rights reserved.


SUPERCONDUCTIVITY IN METAL-SEMICONDUCTOR EUTECTIC ALLOYS
Thesis by
William L. Johnson
In Partial Fulfillment of the Requirements For the Degree of Doctor of Philosophy -
California Institute of Technology Pasadena, California 1975 (Submitted August 1974)


| Step | Status |
|---|---|
| @include.fieldError(form.errors, "apiSubscriptions") Confirm the APIs your application uses |
@if(form("apiSubscriptionsCompleted").value.contains("true")) {
Complete
} else {
To do
}
|
| @include.fieldError(form.errors, "apiSubscriptionConfigurations") Configure your API subscriptions |
@if(form("apiSubscriptionConfigurationsCompleted").value.contains("true")) {
Complete
} else {
To do
}
|
| @include.fieldError(form.errors,"contactDetails") Who to contact about your application |
@if(form("contactDetailsCompleted").value.contains("true")) {
Complete
} else {
To do
}
|
| @include.fieldError(form.errors,"teamConfirmed") Tell us your team members |
@if(form("teamConfirmedCompleted").value.contains("true")) {
Complete
} else {
To do
}
|
| @include.fieldError(form.errors,"confirmedName") Confirm the name of your software |
@if(form("confirmedNameCompleted").value.contains("true")) {
Complete
} else {
To do
}
|
| Step | Status |
|---|---|
| @include.fieldError(form.errors,"providedPolicyURL") Tell us if your application has a privacy policy |
@if(form("providedPolicyURLCompleted").value.contains("true")) {
Complete
} else {
To do
}
|
| @include.fieldError(form.errors,"providedTermsAndConditionsURL") Tell us if your application has terms and conditions |
@if(form("providedTermsAndConditionsURLCompleted").value.contains("true")) {
Complete
} else {
To do
}
|
| @include.fieldError(form.errors,"agreeTermsOfUse") Agree to our terms of use |
@if(form("termsOfUseAgreementsCompleted").value.contains("true")) {
Complete
} else {
To do
}
|


This heap uses a 'segregated free list' system: the
first list contains 16-octet blocks (including the header), the second
list contains 32-octet blocks, the third has 64-octet blo
PERSISTENT-DATA classes do not have PERSISTENT-CLASS as metaclass
because we don't want to specialize SLOT-VALUE-USING-CLASS & friends
for persistent-data instances.


Users can submit new reports, review existing reports, and comment and vote on reports or observations submitted by other users. They can track the status of problems or observations they have reported.
Field observations and mobile data collection, whether by professional monitoring staff or by volunteers in e.g. citizen science and mobile crowdsourcing projects. Field observations app is also useful as a platform for building a variety of mobile-first websites and CRUD applications.Allows users to submit problems or observations.
The application has been optimized for smartphones but is responsively designed to be used on smartphones, tablets, and desktop computers.


Siemens Q4 net jumps 18.4% to Rs 330 cr on higher sales
For the full year, its net income jumped 21.6 percent to Rs 1,087 crore on an revenue of Rs 13,323.1 crore, up 8.38 percent over the previous year.
by PTISiemens on Tuesday reported an 18.4 percent increase in consolidated net for the quarter to September at Rs 330.6 crore driven by higher revenue.
The company, which follows the October-September fiscal year, said revenue from operations increased 5.7 percent to Rs 4,018 crore during the fourth quarter.
For the full year, its net income jumped 21.6 percent to Rs 1,087 crore on an revenue of Rs 13,323.1 crore, up 8.38 percent over the previous year.
"The overall performance was very satisfactory despite a challenging market environment. Based on our visibility, we see muted capex spending in the next couple of quarters by both public and private sector companies," Siemens managing director Sunil Mathur said.
Despite the slowdown, its gas & power and digital industries businesses along with its smart infrastructure division, performed well during the year, and Mathur credited this for the initiatives taken across the verticals.
"Our digitalisation initiatives continue to gain traction across all verticals and we are experiencing increased interest by our customers for our integrated digital solutions," he added.
During the fourth quarter, the company booked new orders worth Rs 3,189 crore.
The Siemens counter closed at Rs 1,576.90, up 1.53 percent on the BSE, as against a 0.46 percent rally in the benchmark Sensex.


You can split the screen and look into the 3D scene from different camera angles at the same time. In this example, we create four views (2x2) with the same aspect ratio as the normal view, but half the size.
The packages used in this example are com.jme3.renderer.Camera
and com.jme3.renderer.ViewPort
. You can get the full sample code here:
We use the preconfigured Camera cam
and viewPort
from SimpleApplication
for the first view.
viewPort.setBackgroundColor(ColorRGBA.Blue); cam.setViewPort(.5f, 1f, 0f, 0.5f); // resize the viewPort cam.setLocation(new Vector3f(3.3212643f, 4.484704f, 4.2812433f)); cam.setRotation(new Quaternion (-0.07680723f, 0.92299235f, -0.2564353f, -0.27645364f));
Place the main camera in the scene and rotate it in its start position.
We will have a detailed look at how we use setViewPort() to position and resize the default view later.
Here is the outline for how you create the three other cams and viewPorts (.) In the code snippet, cam_n
stand for cam_2
- cam_4
, respectively, same for view_n
.
Camera cam_n = cam.clone(); cam_n.setViewPort(...); // resize the viewPort cam_n.setLocation(new Vector3f(...)); cam_n.setRotation(new Quaternion(...)); ViewPort view_n = renderManager.createMainView("View of camera #n", cam_n); view_n.setClearEnabled(true); view_n.attachScene(rootNode); view_n.setBackgroundColor(ColorRGBA.Black);
How does jme know which of the four views should appear where on the screen?
Imagine the view as a 1x1-sized box. By default, the settings is cam.setViewPort(0f, 1f, 0f, 1f);
. This means the view takes up the whole box, from 0 to 1 left to right, and from 0 to 1 bottom to top.
In the , note the following four lines:
cam.setViewPort( 0.5f, 1.0f, 0.0f, 0.5f); ... cam_2.setViewPort(0.0f, 0.5f, 0.0f, 0.5f); ... cam_3.setViewPort(0.0f, 0.5f, 0.5f, 1.0f); ... cam_4.setViewPort(0.5f, 1.0f, 0.5f, 1.0f);
These viewport parameters are, in this order, the left - right - bottom - top extend of a camera's box on the screen. Note that we have set a few values to 0.5f – this is where we resize each view to half its default height and width.
0.0 , 1.0 1.0 , 1.0 +----+----+ | | | |cam3|cam4| +---------+ | | | |cam2|cam | +----+----+ 0.0 , 0.0 1.0 , 0.0
Example: Cam3's rect extends from bottom-left (0.0 , 0.5) to top-right (0.5 , 1.0)
This layout shows 2x2 views. For a split screen you may want to lay out two views, one above the other, or one next to the other.
If you scale the views in a way so that the aspect ratio changes, the views will obviously be distorted. In these cases, create custom camera objects with the right aspect ratio (redefine the default cam).


| deleteAllVisibleCookies |
|
|
| setTimeout |
100000 |
|
| open |
/vivo/ |
|
| assertTitle |
VIVO |
|
| clickAndWait |
link=Log in |
|
| assertTitle |
Log in to VIVO |
|
| type |
loginName |
<EMAIL_ADDRESS>|
| type |
loginPassword |
Password |
| clickAndWait |
loginForm |
|
| clickAndWait |
link=Index |
|
| clickAndWait |
link=Faculty Member |
|
| assertTitle |
Faculty Member |
|
| clickAndWait |
link=Faculty, Jane |
|
| assertTitle |
Faculty, Jane |
|
| click |
//div[@id='wrapper-content']/ul/li[8] |
|
| selectWindow |
null |
|
| clickAndWait |
xpath=(//img[@alt='add'])[29] |
|
| assertTitle |
Edit |
|
| verifyTextPresent |
Create advisor relationship entry for Faculty, Jane |
|
| verifyTextPresent |
Advising Relationship Type |
|
| verifyTextPresent |
Advisee: Last name |
|
| verifyTextPresent |
First name |
|
| verifyTextPresent |
Subject Area |
|
| verifyTextPresent |
Degree Candidacy |
|
| verifyTextPresent |
Years of Participation |
|
| verifyTextPresent |
Start Year |
|
| verifyTextPresent |
End Year |
|
| clickAndWait |
link=Cancel |
|
| clickAndWait |
xpath=(//img[@alt='add'])[29] |
|
| assertTitle |
Edit |
|
| select |
id=selector |
label=Undergraduate Advising Relationship |
| clickAndWait |
css=input.submit |
|
| assertTitle |
Edit |
|
| verifyTextPresent |
You must enter a value in the Last Name field. |
|
| verifyTextPresent |
You must enter a value in the First Name field. |
|
| select |
id=selector |
label=Undergraduate Advising Relationship |
| type |
id=advisee |
Smith |
| clickAndWait |
css=input.submit |
|
| assertTitle |
Edit |
|
| verifyTextPresent |
You must enter a value in the First Name field. |
|
| select |
id=selector |
label=Undergraduate Advising Relationship |
| type |
id=advisee |
|
| type |
id=firstName |
Joe |
| clickAndWait |
css=input.submit |
|
| verifyTextPresent |
You must enter a value in the Last Name field. |
|
| select |
id=selector |
label=Undergraduate Advising Relationship |
| type |
id=advisee |
Smith |
| type |
id=firstName |
Joe |
| clickAndWait |
css=input.submit |
|
| verifyTextPresent |
undergraduate advising relationship |
|
| verifyElementPresent |
link=Smith, Joe |
|
| clickAndWait |
xpath=(//img[@alt='add'])[29] |
|
| assertTitle |
Edit |
|
| select |
id=selector |
label=Graduate Advising Relationship |
| type |
id=advisee |
Doe |
| type |
id=firstName |
John |
| type |
id=SubjectArea |
Primates |
| select |
id=degreeUri |
label=M.S. Master of Science |
| type |
id=startField-year |
2008 |
| type |
id=endField-year |
2011 |
| clickAndWait |
css=input.submit |
|
| assertTitle |
Faculty, Jane |
|
| verifyTextPresent |
undergraduate advising relationship |
|
| verifyElementPresent |
link=Smith, Joe |
|
| verifyTextPresent |
graduate advising relationship |
|
| verifyTextPresent |
Doe, John, M.S. candidate, 2008 - 2011 |
|
| verifyElementPresent |
link=Doe, John |
|
| clickAndWait |
xpath=(//img[@alt='add'])[29] |
|
| assertTitle |
Edit |
|
| select |
id=selector |
label=Faculty Mentoring Relationship |
| type |
id=advisee |
Adams |
| type |
id=firstName |
Jeff |
| type |
id=SubjectArea |
Primate Health |
| type |
id=startField-year |
2012 |
| clickAndWait |
css=input.submit |
|
| assertTitle |
Faculty, Jane |
|
| verifyTextPresent |
faculty mentoring relationship |
|
| verifyTextPresent |
Adams, Jeff, 2012 - |
|
| verifyElementPresent |
link=Adams, Jeff |
|
| verifyTextPresent |
graduate advising relationship |
|
| verifyTextPresent |
Doe, John, M.S. candidate, 2008 - 2011 |
|
| verifyElementPresent |
link=Doe, John |
|
| verifyTextPresent |
undergraduate advising relationship |
|
| verifyTextPresent |
Smith, Joe |
|
| verifyElementPresent |
link=Smith, Joe |
|
| clickAndWait |
link=Home |
|
| clickAndWait |
link=Log out |
|
| assertTitle |
VIVO |
|


Various optimizations for boolean context, for example !!a ? b : c → a ? b : c
Collapse single-use non-constant variables, side effects permitting.
Apply certain optimizations to binary nodes, e.g. !(a <= b) → a > b,
attempts to negate binary nodes, e.g. a = !b && !c && !d && !e → a=!(b||c||d||e)
etc
Apply optimizations for if-s
and conditional expressions.
Remove unreachable code
Pass true
to discard calls to console.* functions.
If you wish to drop a specific function call such as console.info
and/or retain side effects from function
arguments after dropping the function call then use pure_funcs
instead.
Remove debugger;
statements
Attempt to evaluate constant expressions
Pass true
to preserve completion values from terminal statements without return
, e.g. in bookmarklets.
hoist function declarations
Hoist properties from constant object and array literals into regular variables subject to a set of constraints.
For example: var o={p:1, q:2}; f(o.p, o.q);
is converted to f(1, 2);
. Note: hoist_props
works best with mangle enabled,
the compress option passes set to 2 or higher, and the compress option toplevel enabled.
Hoist var declarations (this is false
by default because it seems to increase the size of the output in general)
Optimizations for if/return and if/continue
Inline calls to function with simple/return statement
Disabled
Disabled
-- disabled inliningSimpleFunctions
-- inline simple functionsWithArguments
-- inline functions with argumentsWithArgumentsAndVariables
-- inline functions with arguments and variablesWithArgumentsAndVariables
join consecutive var
statements
Prevents the compressor from discarding unused function arguments. You need this for code which relies on Function.length
Pass true to prevent the compressor from discarding function names. Useful for code relying on Function.prototype.name
.
Pass true to prevent Infinity from being compressed into 1/0
, which may cause performance issues on Chrome
Optimizations for do
, while
and for
loops when we can statically determine the condition.
negate Immediately-Called Function Expressions
where the return value is discarded, to avoid the parens that the code generator would insert.
The maximum number of times to run compress. In some cases more than one pass leads to further compressed code. Keep in mind more passes will take more time.
Rewrite property access using the dot notation, for example foo["bar"]
to foo.bar
An array of names and UglifyJS will assume that those functions do not produce side effects.
DANGER: will not check if the name is redefined in scope.
An example case here, for instance var q = Math.floor(a/b)
.
If variable q is not used elsewhere, UglifyJS will drop it, but will still keep the Math.floor(a/b)
,
not knowing what it does. You can pass pure_funcs: [ 'Math.floor' ]
to let it know that this function
won't produce any side effect, in which case the whole statement would get discarded. The current
implementation adds some overhead (compression will be slower).
Allows single-use functions to be inlined as function expressions when permissible allowing further optimization. Enabled by default. Option depends on reduce_vars being enabled. Some code runs faster in the Chrome V8 engine if this option is disabled. Does not negatively impact other major browsers.
Improve optimization on variables assigned with and used as constant values.
Pass false to disable potentially dropping functions marked as "pure".
De-duplicate and remove unreachable switch
branches.
Prevent specific toplevel functions and variables from unused removal (can be array, comma-separated, RegExp or function. Implies toplevel)
Drop unreferenced functions ("funcs") and/or variables ("vars") in the top level scope (false by default, true to drop both unreferenced functions and variables)
Compress and mangle Function(args, code)
when both args and code are string literals.
Compress expressions like a <= b
assuming none of the operands can be (coerced to) NaN
.
Optimize numerical expressions like 2 * x * 3
into 6 * x
, which may give imprecise floating point results.
Optimize expressions like Array.prototype.slice.call(a)
into [].slice.call(a)
Enable substitutions of variables with RegExp
values the same way as if they are constants.
display warnings when dropping unreachable code or unused declarations etc.
Generated using TypeDoc
Replace
arguments[index]
with function parameter name whenever possible.


Search the web using Google!
Special Searches
Stanford Research
Linux Search
Help
About Google
Company Info
Google! Logos


{{if s3.debug:}} {{include "s3_include_debug.html"}} {{=s3base.s3_include_debug()}} {{else:}} {{include "s3_include_min.html"}} {{# Built by /static/scripts/tools/build.sahana.py }} {{pass}}


Chrome Text-to-Speech Debug
This app is for developers of Chrome TTS engines, to help validate that an engine is properly implementing the API. Click on a button to run a test. A lot of errors can be detected automatically, but some tests require manually listening to the speech, and it's important to listen to all tests running to identify other potential glitches.
For more diagnostic information, open the JavaScript console.


Our Story Begins...
There exists a legend in the world of programming known as the Ballmer Peak. This fabled phenomenon grants a significant "level-up" with respect to coding abilities at a particular range of blood alcohol content (BAC). Yet this territory of productivity is elusive, operating at a very narrow range of BAC values.
There's a relevant xkcd for this:
Apple uses automated schnapps IVs.
Our language is designed with this phenomenon in mind, to help facilitate programmers who wish to pursue this unicorn, by making it easy for even the most inebriated of coders to work efficiently!
Highlighted Features
- Instead of semicolons, just hit enter!
- For-each loops
- First-class functions
- Static typing, static scoping
- String interpolation
- Curly braces for closure
- All numbers are floats 🍺
Example Programs
Here are some examples, Boozie on the left, JavaScript on the right.
No printing in Boozie.... no, no, no! You belch!
burp("WAZZZZZAAAHHHHHP World!")
console.log("Hello World!");
Equivalency (`==`) is defined as JavaScript's "strict," triple-equals (`===`) equivalence. Why should programmers have to worry about the subtle differences between the interpretation of the two in the first place when, 9 times out of 10, `===` is what they mean?
(null) == (undefined)
(null) === (undefined);
For variable assignment, the types are inferred. Quick and easy! You can also perform multiple variable assignment without all the nasty brackets.
let volume = 16
let beer, fruit = "Blue Moon", "orange"
let volume = 16.0;
let [beer, fruit] = ["Blue Moon", "orange"];
Constants (with the same behavior as JavaScript) are supported with the `set` keyword, for terseness, muscle-memory convenience (all letters on one hand!), and consistency with `let`.
set cup = "Stein"
set capacity = 16.9
const CUP = "Stein";
const CAPACITY = 16.9;
Arrays are declared and assigned in the same way, with the same static type inference.
let pairsWellWithBeer = ["pizza", "burgers"]
set sixpack = [1, 2, 3, 4, 5, 6]
let pairsWellWithBeer = ["pizza", "burgers"];
const SIXPACK = [1.0, 2.0, 3.0, 4.0, 5.0, 6.0];
Similar to JavaScript and many other languages, variable names must begin with a letter, and may not be one of the list of Boozie Reserved Words, but may include any alphanumeric characters or underscore after the initial character.
let brewery = "open"
//Okay!
let 12ozBottle = 12
Syntax error
let for = false
Syntax error
let brewery = "open";
//Okay!
let 12ozBottle = 12.0;
Syntax error
let for = false;
Syntax error
Boozie supports two types of control-flow loop statements: `for`, with a similar "for-each" syntax to Python (no messy loop arithmetic rooted in C!), and `while`.
Conditional control-flow statements are of the typical form 'if-then,' followed by any number of optional `else if` clauses and only one optional `else`. No need to worry about matching (and potentially forgetting) parens, because there aren't any!
for brand in allBrands {
burp(brand)
}
for(let brand of allBrands) {
console.log(brand);
brand += 1;
};
while beer = -empty {
drink(beer)
}
while (beer = !empty) {
drink(beer);
};
Note that booleans are negated with the intuitive `-` rather than an arbitrary operator or keyword that requires multiple keystrokes. How many times have you forgotten whether the language you were using used `not` or `!` while drinking? ... Or is that just me?
if beer.volume == 0 {
beer = pour(new beer)
} else if beer.volume >= 1 {
drink(beer)
} else {
chug(beer)
}
if (beer.volume == 0) {
beer = pour(new beer);
} else if (beer.volume >= 1) {
drink(beer);
} else {
chug(beer);
};
Functions in Boozie are basically.... well exactly the same as JavaScript 2015 (ES6). Why? Because we feel that is the optimal way to define functions... especially whilst drinking!
let stir = (ingredients) => {
ingredients.mix()
}
let pour = (beer, glass) => {
beer.volume = 0
glass.volume = 16
}
let stir = (ingredients) => {
ingredients.mix();
}
let pour = (beer, glass) => {
beer.volume = 0;
glass.volume = 16.0;
};
Comments begin with a double-backslash and end with a line terminator, as in most curly-brace languages. Multi-line comments, however, are explicitly disallowed. This is both to discourage excessively verbose comments (we've all run across those rambling, multiple-paragraph comments by someone who likely spent more time describing their code in prose than he or she did writing it - which is an especially big concern after one has had a few beers) and to maintain internal consistency with the rest of our line-terminated code structure. Thanks to word wrap, if someone really wants to keep babbling, we won't explicitly stop them... but they should probably just go home, they're drunk.
// This is a comment in Boozie
// This is too
/* This is not legal
in Boozie */
Syntax error
// This is a comment
// This is too
/* This is not legal
in Boozie */
// but valid in JavaScript!
Code Style
Since we're trying to make things easier on inebriated programmers, we don't have many specific guidelines. Nevertheless, we do have a limited style guide - not only to set the tone, but also to clarify some ambiguities in our examples, and address points we find controversial in other languages.
Syntax Diagrams
Let's look at some syntax diagrams, shall we?
no references
referenced by:
referenced by:
referenced by:
referenced by:
referenced by:
referenced by:
referenced by:
ReturnStmt ::= 'return' Exp
referenced by:
no references
ConstArrayDecl ::= 'set' id '=' '[' Exp? ( ',' Exp )* ']'
no references
referenced by:
VarArrayDecl ::= 'let' id '=' '[' Exp? ( ',' Exp )* ']'
no references
referenced by:
referenced by:
Exp1 ::= Exp2 ( relationalOp Exp2 )?
referenced by:
referenced by:
referenced by:
referenced by:
referenced by:
referenced by:
referenced by:
type ::= 'float' | 'bool' | 'string'
no references
boollit ::= 'true' | 'false'
referenced by:
referenced by:
stringlit ::= '\' ' char* \'
referenced by:
no references
referenced by:
referenced by:
keyword ::= ( 'let' | 'set' | 'burp' | 'for' | 'in' | 'while' | 'if' | 'else' | 'new' | 'true' | 'false' | 'return' ) - [_A-Za-z0-9]
no references
referenced by:
no references
assignOp ::= '=' | '+=' | '*=' | '-=' | '/=' | '%='
referenced by:
relationalOp ::= '==' | '>' | '<' | '>=' | '<=' | '!='
referenced by:
addOp ::= '+' | '-'
referenced by:
mulOp ::= '*' | '/' | '%'
referenced by:


A visual guide to Portland. An experimental demonstration of interactive data visualization using the D3 library. Made in collaboration with Stormi Hoebelheinrich, Kaya Winn, Alex Lee, and Blake Womack.
A game build with JavaScript and the Phaser API about a man named Hopps who must make it through PDX while avoiding the evil TSA agents. Made in collaboration with Josh Linton, Clifford Grimmell, and Dallas Slaughter.
A website designed to help people search for a local doctor based on name, specialty, or a particular condition. Made using the Better Doctor API, the Google GeoCoding API, and the Google Maps API.
A website where users can review individual dishes for a restaurant, and get reviews on dishes from other users. Made with Java, Java Spark, PostgreSQL, and AWS. Made in collaboration with Josh Linton and Cameron Jensen.


{% extends "base.html" %} {% load static %} {% block extrastyle %} {% endblock %} {% block content%}
No portals are configured or you do not have permissions to any portal.


---
layout: default
title: Contact
slug: contact
lead: We want your feedback!
---
Please choose a communication method that better suits your needs.
- Report bugs and submit feature requests to the GitHub issues.
- Ask any questions in our Google Group. You can simply send an
email to<EMAIL_ADDRESS>- For a quick chat with developers and other Zeal users use our IRC channel:
#zealdocs
on
Freenode. Also available through Kiwi IRC
web interface. Please, take into consideration
possible time zone differences.
- For a private talk send us an email.
- And don't forget to follow @zealdocs on Twitter!


Want to provide your patrons more access to research? Integrating Open Access (especially self-archived) content into your Library Discovery System, Link resolver, website, or Interlibrary Loan system backend or form can be ways to do it. For Interlibrary Loan, see here, for websites go here, for everything else, read on!
Our friends at Unpaywall also maintain a fantastic integrations page (e.g for SFX and Primo) and they work great if you have DOIs. If you don't, or also want to make requests for content, read on.
Can't see an option for your system? Consider making one, depending on your system you might not even need to know how to code or work with your vendor to get something set-up. Otherwise, reach out and we'd be excited to lend a hand.
First, please sign up / sign in to see a customized link that helps us get in touch if things go wrong and understand how the service is being used..
You can use
https://openaccessbutton.org/?from=integration&id=followed by a DOI, URL, Title, Citation, PMID or PMC ID given by your system. For more advanced integrations try our free, documented api.
or get notified when more are added


... is awesome. I have the same keyboard at home and at work. It does everything that I want a keyboard to do. It looks fantastic. It feels fantastic. It types fantastic. And best of all, it does all of this without any drama.
I got my first Microsoft Natural Ergo 4000 after a gruesome compiler's project at school. My shoulders were hurting from the crappy chair and table combination, and my forearms were sore and numb from using the iBook keyboard.
I never used an ergo-split keyboard for an extended period of time before this. It's not that I hated them or anything, it's just I didn't really see a point to using one. After that painful 164 project, I figured that every little bit might help, so I gave the split keyboard a shot.
The keyboard came in a crummy cheap-o box with crummy software, and a crummy piece of plastic designed to be placed under the keyboard and get in your way. Take my advice and just toss all of this as soon as possible. Setup was super easy since it's just a USB keyboard. I opted away from the Microsoft Natural Ergonomic Desktop 7000 purely because wireless keyboards require too much maintenance. I don't care if battery life gets better and better. I know the one time I don't have pre-charged batteries will be the one time the batteries in the keyboard decides to die. I think the 7000 is a better deal overall if I didn't have a mouse already.
Overall impressions have been great. I never notice my keyboard these days. That's exactly how I'd like a keyboard to behave: working and unnoticeable. I had to unlearn a few bad touch-typing mistakes like 6, and 7. The other complaint I had was the lack of support for mapping the media buttons in OS X. I would've really loved to have the back/forward/scroll buttons work since they're near my thumb and index fingers. Thankfully, the back and forward buttons don't click anymore so it doesn't matter if OS X supports them or not.
I highly recommend the Microsoft Natural Ergo 4000 keyboard. In fact, I highly recommend all Microsoft keyboards and mice. They're always a good deal when it comes to comfort and features.


CFITSIO supports 2 ways to specify that a character column in a binary table contains an array of fixed-length strings. The first way, which is officially supported by the FITS Standard document, uses the TDIMn keyword. For example, if TFORMn = '60A' and TDIMn = '(12,5)' then that column will be interpreted as containing an array of 5 strings, each 12 characters long.
CFITSIO also supports a local convention for the format of the TFORMn keyword value of the form 'rAw' where 'r' is an integer specifying the total width in characters of the column, and 'w' is an integer specifying the (fixed) length of an individual unit string within the vector. For example, TFORM1 = '120A10' would indicate that the binary table column is 120 characters wide and consists of 12 10-character length strings. This convention is recognized by the CFITSIO routines that read or write strings in binary tables. The Binary Table definition document specifies that other optional characters may follow the data type code in the TFORM keyword, so this local convention is in compliance with the FITS standard although other FITS readers may not recognize this convention.
The Binary Table definition document that was approved by the IAU in 1994 contains an appendix describing an alternate convention for specifying arrays of fixed or variable length strings in a binary table character column (with the form 'rA:SSTRw/nnn)'. This appendix was not officially voted on by the IAU and hence is still provisional. CFITSIO does not currently support this proposal.


Course/Research works
Advanced_database Semantic_Web & Information Extraction Music Feature Analysis Using Supervised & Unsupervised Machine LearningEducation
MSc databases and Web-Based Systems (Distinction)2017-2018
Bachelor of Computer Engineering (First)2012-2016
Total grade of 16.61 out of 20
Diploma of Mathematics and Physics 2008-2011
GPA:18.95 out of 20
Technical skills :
Web Technologies
Programming
Tools
Databases


Packet Submission Guidelines
Last updated: February 24, 2021
Table of Contents
- Who needs to submit packets?
- Sample packet
- Packet submission checklist
- How to submit your packet
- Distribution
- Question-writing philosophy
- More guidance on writing questions
- Discounts/Penalties
- Plagiarism
Who needs to submit packets?
For ACF Winter and ACF Regionals
Any team with at least two people on it who played a mainstream, collegiate, academic quizbowl tournament prior to September 1 of the previous academic year is required to submit a packet.
For example, any team with two players who played prior to September 1, 2020, must submit a packet in order to compete in ACF tournaments in the 2021–2022 academic year.
Schools with multiple such teams must submit separate packets, and the teams cannot discuss the contents of their packets with each other.
For ACF Fall
As of 2020, ACF Fall operates on an optional packet submission model. Teams are encouraged to submit packets and receive discounts for submitting, but no team is required to submit a packet in order to play.
What counts as a “mainstream, collegiate, academic quizbowl tournament”?
All ACF tournaments, NAQT SCT (Division I or Division II), NAQT ICT, typical collegiate academic invitational tournaments, and typical open tournaments count as mainstream collegiate academic quizbowl tournaments.
Playing tournaments either as a college student or as a high school student counts for the packet submission requirement.
Novice collegiate events with strict eligiblity requirements do not count as mainstream collegiate academic tournaments in determining packet submission requirement.
Pop culture or “hybrid” tournaments, College Bowl/HCASC, and tournaments played on NAQT “Invitational Series” (IS) questions do not count.
This test is applied to each individual team, not to your school’s contingent as a whole. If you are unsure about whether you are required to write a packet, email ACF’s eligibility committee.
Sample packet
Want to know what a well-formatted packet looks like? Take a look at this sample packet.
Packet submission checklist
Victor Prieto of Penn State created a handy checklist of things to keep in mind when writing a packet to submit to an ACF tournament. Please make sure your submitted packet checks all these boxes!
How to submit your packet
Submit your packet as a .doc or .docx file. Use 10-point Times New Roman font and 1-inch margins on all sides. PDFs, .odt, .rtf, .html, .txt, or any other formats are not acceptable.
If editors cannot open your packet on the first try, they will return your packet to you and have you re-send a fixed version before it is considered submitted for fee purposes.
Name your packet using the following scheme:
<Year> <Tournament Name> – <School Name> <Team Name or Letter>
For instance, if UC Irvine’s A team is submitting a packet for 2015 ACF Regionals, it should be named:
2015 ACF Regionals – UC Irvine A
Distribution
The submitted packet and final packet distributions for ACF tournaments may be found here.
Question-writing philosophy
Difficulty
Consult individual tournament announcements for guidelines on writing questions of appropriate difficulty.
Tossups
Write tossups on easier topics. Use challenging clues for the lead-in, and then use progressively easier clues. End your tossups with a giveaway that most players in the tournament should know.
Do not write tossups that:
- Are geared towards specific players. You should write your questions for a general audience.
- Have too many difficult or easy clues. Devote appropriate amounts of space to hard, medium, and easy clues.
- Are on your pet topics or on things which are likely to go unanswered.
Bonuses
All bonuses should have 3 parts, worth 10 points each. Bonuses should have one easy part, one medium part, and one hard part. Rules of thumb:
- The easy part: 90% of the field should be able to correctly answer
- The medium part: roughly 50% of the field should be able to correctly answer
- The hard part: a person who is well-read in the subject should be able to correctly answer
If you are unsure about the difficulty of a bonus you are writing, then you should err on the easier side, or write on something else entirely.
We prohibit specific types of bonuses and levy penalties on teams that submit packets with prohibited formats. For more information, see Discounts/Penalties.
More guidance on writing questions
Please follow ACF formatting guidelines when formatting your packet.
Several past ACF editors have provided tips on how to write good questions. Please consult the following guides:
- Jerry Vinokurov’s Guide to Writing Questions is helpful for newcomers and teaches basic principles of good writing.
- Subash Maddipotti’s Tips on Question Writing provide excellent advice on what to avoid when writing questions.
- Andrew Hart’s Primer on Regular Difficulty is an excellent resource for teams writing questions for ACF Regionals (or a “regular difficulty” tournament).
In addition to the above guides, we recommend that you consult past ACF sets as models of question writing.
- For ACF Fall-level difficulty: 2017 ACF Fall, 2018 ACF Fall, and 2020 ACF Fall
- For ACF Winter-level difficulty: 2020 ACF Winter
- For ACF Regionals-level difficulty: 2010 ACF Regionals and 2019 ACF Regionals
- For ACF Nationals-level difficulty: 2017 ACF Nationals, 2018 ACF Nationals, and 2019 ACF Nationals
Discounts/Penalties
We offer discounts for packets submitted early, and levy penalties for packets submitted late. The timeline and the amounts of discounts and penalties is listed in each tournament’s announcement.
Gross deviation from packet-formatting guidelines: $50 penalty
Submission of prohibited types of questions: $25 penalty per question
Prohibited types of questions include:
- Spelling questions, i.e. questions for which the answer involves spelling a word.
- Binary matching questions, i.e. questions of the form “Given X, name Y” that do not have prose clues.
- 5-10-15 bonuses. These questions should instead be changed to 10-10-10 bonuses.
See also Penalties in the Hosting Guidelines.
Plagiarism
Plagiarism is not tolerated. There will be consequences for any instances of plagiarism.


The following information confirms your:
AUTOMATED DIAL-IN RESERVATION
Information is subject to change. If so, you will be notified by
a TeleConference Associate. Cancel reservations at least 30 minutes before
start time to avoid No Show fees.
Please review this information and contact AT&T Teleconference Services at
(800)232-1234 if there are any changes.
All Participants should use the following information to reach the conference call:
* PARTICIPANT CODE: 277217
* Toll Free Dial In Number:<PHONE_NUMBER>
FEATURES SECURED:
----------------
* Automatic Port Expansion
SPECIAL NOTES:
=============
***********
EDRM Enron Email Data Set has been produced in EML, PST and NSF format by ZL Technologies, Inc. This Data Set is licensed under a Creative Commons Attribution 3.0 United States License <http://creativecommons.org/licenses/by/3.0/us/> . To provide attribution, please cite to "ZL Technologies, Inc. (http://www.zlti.com)."
***********
California


Experiences With Stereotype Threat
I've only recently experienced stereotype threat in my previous profession as a teacher. There really aren't that many asian teachers in the U.S. with the majority teaching a foreign language. I've discussed it with colleagues in the past, with a few skeptical of my abilities in a classroom due to a perceived passivity among my culture. Quite frankly, I believe stereotype threat is racism, and personally I welcome the opportunity to show others through my actions a different perspective on my culture. I think confronting it head on in a debate is not productive, as it could come off as very confrontational, which can be perceived as a confirmation of sorts. If I do suspect someone else is feeling it, I would offer the individual a welcoming ear to vent.


Adetola is a 300 level Biomedical Engineering student of the University of Lagos. He has a lot of interests, few of which are:
I look forward to mastering web development as I strive to progress daily with your help. @DSC_Unilag
For the less fun part
For the fun part


--- layout: post title: Mobile video tips date: 2006-07-10 00:00:00 categories: digital-media mobile ---
Helen has some excellent tips on mobile content and video...


Create and train your own neurnal network :
Create a new model with the following parameters :
Number of input variables :
Number of output variables :
Last layer activation function :
Cost function :
Optimizer :
Hidden layers
| Layer | Neurons | Activation function |
|---|---|---|
Train the model using one of the following methods :
Enter the number of epochs and the batch size :
Epochs: Batch size:
Train-Test Split
Enter the percentage for the data set split :
Test data :
K-Fold Cross Validation
Enter the number of parts to which the data set will be divided :
K = parts
Model accuracy : %
Errors


You can sign the guestbook by writing an issue comment on GitHub.
maltfield says:
injection
2020-07-11T20:07:01Z
adamdrake says:
.
2020-02-09T15:19:53Z
awanisius says:
Hello nice to meet you
2020-01-29T16:13:42Z
OneLifeDesigning says:
Thanks
2020-01-10T13:52:30Z
jonpugh says:
Rad.
2019-12-11T00:00:27Z
wichopy says:
Awesome idea:)
2019-11-21T15:44:43Z
AlexandreFruchaud says:
Hello
2019-11-07T16:04:00Z
captainkuromaru says:
Hello from Scotland
and... hack the planet!
2019-11-07T13:26:09Z
victorhck says:
Have a lot of fun & Happy hacking
2019-11-06T16:04:45Z
aliglelo says:
Hello from milky way galaxy...👋
2019-11-06T04:01:54Z
joaodjtr says:
Hello from São Paulo, Brazil 🙋🏾♂
2019-11-06T03:03:58Z
mrm8488 says:
Hola desde Murcia, España.
2019-11-06T01:09:06Z
santi1976 says:
Hello from Buenos Aires, Argentina
2019-11-05T23:58:20Z
kript says:
Hello from Cambridge. Enjoy your onebag blog!
2019-11-05T22:03:09Z
zhiqwang says:
Hello from Beijing, China. It seems cool.
2019-11-05T02:40:47Z
kaezarrex says:
Hello from Raleigh, NC. I found your guestbook via your [mastodon post](https://mastodon.technology/@victoria/103080392701758123).
2019-11-04T21:20:37Z
victoriadrake says:
first comment lol
2019-11-03T12:52:17Z
maltfield says:
test
2020-07-11T20:07:56Z


Methods
Instance Public methods
json_creatable?()
Link
Returns true, if this class can be used to create an instance from a serialised JSON string. The class has to implement a class method json_create that expects a hash as first parameter, which includes the required data.
Source: show
# File req/json/lib/json/common.rb, line 351 def json_creatable? respond_to?(:json_create) end
make_inspect(m = :inspect)
Link
Source: show
# File lib/shoes/inspect.rb, line 98 def make_inspect m = :inspect alias_method :the_original_inspect, m class_eval %Q{ def inspect(hits = nil) the_original_inspect end } #def to_html(hits = nil) # #{m} + "
" + self.class.name + "
" #end end


@* * Copyright 2023 HM Revenue & Customs * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *@ @import models.NormalMode @import controllers.declaration.routes._ @import views.html.components.{ConfirmationPanel, Link} @this( main_template: MainTemplate, confirmationPanel: ConfirmationPanel, link: Link ) @(tvn: String, isAgent: Boolean, isTrustTaxable: Boolean, agentOverviewUrl: String)(implicit request: Request[_], messages: Messages) @main_template( title = s"${messages("confirmationPage.title", tvn)}" ) { @confirmationPanel( heading = messages("confirmationPage.heading"), content = messages("confirmationPage.heading2"), refNumber = tvn )
@link(controllers.print.routes.PrintMaintainDeclaredAnswersController.onPageLoad().url, "print-and-save","confirmationPage.printsave.link")
@messages("confirmationPage.paragraph1")
@messages("confirmationPage.paragraph2")
@if(isTrustTaxable) {@messages("confirmationPage.paragraph3")
} @if(isAgent: Boolean) {@messages("confirmationPage.agent.you.can") @link(agentOverviewUrl, "agent-overview", "confirmationPage.agent.link")
} }


I think that Netflix is amazing. Here are some of my favorite shows.
I try to read as often as I can. My favorite series growing up was Harry Potter, but the Pendragon series was a close second. I'm currently reading through most of the book series I read in high school.
I love going on trips with friends. Whether is the beach or the city, we always find something fun to do.
I find that playing video games is a good way to relax, here are a few of my favorites:


16: Copying files
Copying files with the cp (copy) command is very similar to moving them. Remember to always specify a source and a target location. Let's create a new file and make a copy of it:
learner@:learning_unix$ touch file1
learner@:learning_unix$ cp file1 file2
learner@:learning_unix$ ls
file1 file2
What if we wanted to copy files from a different directory to our current directory? Let's put a file in our home directory (specified by ~
remember) and copy it to the current directory (learning_unix
):
learner@:learning_unix$ touch ~/file3
learner@:learning_unix$ ls ~
file3 learning_unix example_data
learner@:learning_unix$ cp ~/file3 .
learner@:learning_unix$ ls
file1 file2 file3
This last step introduces another new concept. In Unix, the current directory can be represented by a .
(dot) character. You will mostly use this only for copying files to the current directory that you are in. Compare the following:
ls
ls .
ls ./
In this case, using the dot is somewhat pointless because ls
will already list the contents of the current directory by default. Also note how the trailing slash is optional. You can use rm
to remove the temporary files.
Finally, let's clean up this directory. Note the use of the *
wildcard, which allows us to delete all three files at once.
learner@:learning_unix$ rm file*


Dung Tran
Survey
Dashboard
2
You have 2 messages.
Jane sent you a message
3 hours ago
Lynda sent you a mail
9 hours ago
3
You have 3 mails.
Lisa sent you a mail
2min ago
Jane sent you a mail
3 hours ago
Lynda sent you a mail
9 hours ago
3
You have 3 notifications.
New tasks needs to be done
2min ago
Change your password
3 hours ago
New feature added
9 hours ago
DungTran
My Profile
My Tasks
Lock
Log Out
25
%
Growth
112
New users
4,550
Profit
262
Sales
Data
Data
Table
#
Project
Manager
Status
Progress
1
TWLT
Amery Lee
Pending
2
A16Z
Romayne Carlyn
Due
3
DARK
Marybeth Joanna
Due
4
Q300
Jonah Benny
Blocked
5
RVNG
Daly Royle
Suspended


Body Snatchers (1993) 87m
I don't know why anyone felt the need to produce another remake of 1956's classic sci-fi/horror film INVASION OF THE BODY SNATCHERS, yet here it is, and the lineup of creative talent behind it is promising. Check out this intriguing combination: writer-director Larry Cohen (screenplay credit), writer-director Stuart Gordon (story credit), and writer-director Abel Ferrara (who gets the directing chore despite being the only one of the three to show no previous interest in the genre). It sounds as if the resulting film might be a body snatcher designed by committee, but the end result is a fairly tight product.
Prior knowledge makes this difficult viewing - there's little suspense or surprise because by now we have come to know the story so well: a few people discover that their family, friends, and neighbors are gradually being 'replaced' by emotionally void duplicates and then find themselves running for their lives. Story is faithful to the original (and the Jack Finney novel) in concept only. Its two major changes are firstly that the central protagonist is a 17-year old girl (Gabrielle Anwar), and secondly that the small-town setting (changed to a big city in Philip Kaufman's 1978 version) has been overshadowed by a military base. It would seem that what we have here is some ready-to-bake commentary on army personnel sacrificing their individuality to become a gestalt of emotionless drones, bla-bla-bla, but fortunately the story avoids this route and takes the more personal touch of paralleling the invasion of the alien 'body snatchers' with the 'invasion' of a new stepmother into Anwar's home (a creepy performance by Meg Tilly). As far as Anwar is concerned, her mother has already been replaced; the alien-invader scenario that follows is the realization/externalization of her fears now brought forth for everyone else to see. Ferrara keeps the human element at the forefront of the story by shooting much of BODY SNATCHERS in closeup and midshot, letting faces and bodies fill the frame. This keeps the film real and down-to-earth until the first FX sequence, which may or may not be an improvement on previous versions depending on your point of view. One of the more frustrating elements of the 1956 film for me as a young, first-time viewer, was the total lack of explanation concerning the body-transfer from seed pod to human copy. Ferrara/Cohen/Gordon present a simple, workable explanation - although it may be argued that it is scarier *not* to know anything of the process, and it was this lack of information that contributed to the nightmarish quality of the original.
I don't think the FX are as big a problem as the decision to have Anwar narrating the story in flashback from frame one, however. Automatically we are assured that her character will be still be around by the end of the story, which robs BODY SNATCHERS of a pivotal element of suspense. I can't believe a writer as seasoned as Cohen would have let so obvious a slipup get by him. But then again, I find it surprising to see Abel Ferrara packaging a film so uncharacteristic of his usual down-in-the-dirt urban dramas. Has anyone checked their backyards for seed pods lately?
<EMAIL_ADDRESS>The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Map Device with Asset
Provisioning
Select Device Type
*
Select Device Type
RFID Card
Bluetooth Beacon
Select Gateway
*
Select Gateway
{{proDevice.name}}
Beacon Name
RRFID Name
Device Name
No special character are allowed.
Beacon Serial No
RRFID Serial No
Device Serial No
Select Asset
Select Asset
{{asset.name}}
Scan
Loading...
Save
Time over please try again!
{{msg}}
Device list
Asset Name
Device Type
Device Serial No.
Device Name


When you have locks within your applicative code... you will have deadlock. Period. The only question you may ask is "when?" Same thing with API allowing you to wait without indicating any kind of timeout (e.g. TPL). Too bad... and too easy to shoot yourself in the foot...
But how to protect your code from race conditions without using lock?!? Easy answer: let Michonne help you.
What's Michonne?
"No lock... no deadlock!" Michonne is a library that allows you to erradicate deadlocks within your applicative code by providing you composable behaviors for tasks/lambdas execution (i.e. dispatcher, sequencer, balking dispatcher, etc), in replacement of locks and raw TPL primitives that will lead you to deadlocks.
Related resources
- Posts serie about the Sequencer pattern Posts written by the father of this lib (Cyrille DUPUYDAUBY) where he explains the origin and the caracteristics of the sequencer pattern.
- Basses latences, hauts debits... A french talk made at DEVOXX FR 2014, where Cyrille and I talked about reactive programming, and explained the sequencer pattern, the notion of conflation etc.


menu
oxygen package
documentation
oxygen package
brightness_4
oxygen
Awesome package.
Libraries
oxygen
oxygen package
documentation
oxygen
package
Libraries
oxygen


---
layout: post
title: 5/22
date: '2013-05-22T22:07:00.001-06:00'
author: Jacob .
tags:
modified_time: '2013-05-22T22:07:28.250-06:00'
blogger_id: tag:blogger.com,1999:blog-6400085873105072120.post-5103478436562991357
blogger_orig_url: http://www.svlark.com/2013/05/522.html
---
I'm really struggling with what to say to the blog lately. The purpose of this exercise for me is to be accountable for taking concrete steps toward our goal each day. I realize that at this point I am primarily reporting on the day-to-day experiences of selling a house and teaching my kids. These are steps we are taking in support of of our goal, but they don't really seem to constitute concrete progress toward getting a boat and casting off. I intend to renew focus on those concrete steps, in addition to forging ahead on reducing our burn rate and educating our kids. Stay tuned for lots of exciting stuff.