Function
| Static Public Summary | ||
| public |
MasterLoading(objectPattern: {"activeLoading": *}) |
|
| public |
PrivateRoute(objectPattern: {"component": *, ...rest: Object}): * |
|
| public |
PublicRoute(objectPattern: {"component": *, ...rest: Object}): * |
|
| public |
Add a normal circle |
|
| public |
addCircles(uid: string, circles: [object]): {"type": *, "payload": *} Add a list of circle |
|
| public |
addComment(data: object): {"type": *, "payload": *} Add comment |
|
| public |
addCommentList(postComments: [object]): {"type": *, "payload": *} Add comment list |
|
| public |
addFollowingUser(uid: string, cid: string, followingId: string, userCircle: object): {"type": *, "payload": *} Add following user in a circle |
|
| public |
addFriendUser(uid: string, userFriend: object): {"type": *, "payload": *} Add user to friend list |
|
| public |
Add image to image gallery |
|
| public |
addImageList(images: [object]): {"type": *, "images": *} Add image list to image gallery |
|
| public |
addImagePost(post: object): {"type": *, "payload": *} Add a post with image |
|
| public |
Add notificaition |
|
| public |
addNotifyList(userNotifies: [object]): {"type": *, "payload": *} Add notificaition list |
|
| public |
addPeopleInfo(infoList: [object]): {"type": *, "payload": *} Add people information |
|
| public |
Add a normal post |
|
| public |
Add a list of post |
|
| public |
addUserInfo(uid: string, info: object): {"type": *, "payload": *} Add user information |
|
| public |
Add a vote |
|
| public |
addVoteList(data: object): {"type": *, "payload": *} Ad a list of vote |
|
| public |
auth(email: *, pw: *, other: *): * |
|
| public |
authorizeReducer(state: object, action: object): * Authorize reducer |
|
| public |
circleReducer(state: object, action: object): * Circle reducer |
|
| public |
clearAllCircles(): {"type": *} Clea all data in circle store |
|
| public |
clearAllData(): {"type": *} |
|
| public |
clearAllData(): {"type": *} Clea all data in post store |
|
| public |
clearAllData(): {"type": *} |
|
| public |
clearAllData(): {"type": *} |
|
| public |
clearAllNotifications(): {"type": *} |
|
| public |
clearAllvotes(): {"type": *} |
|
| public |
clearSelectData(): {"type": *} |
|
| public |
closeCircleSettings(uid: *, id: *): {"type": *, "payload": *} Close open circle settings |
|
| public |
closeCommentEditor(comment: *): {"type": *, "payload": *} |
|
| public |
closeEditProfile(): {"type": *} |
|
| public |
closePostWrite(): {"type": *} |
|
| public |
commentReducer(state: object, action: object): * Comment actions |
|
| public |
dbAcceptFriendRequest(string: *, request: object): * Accept friend request |
|
| public |
dbAddCircle(circleName: string): * Add a circle |
|
| public |
dbAddComment(newComment: object, callBack: function): * Add comment to database |
|
| public |
dbAddFollowingUser(cid: string, userFollowing: object): * Add a user in a circle |
|
| public |
dbAddFriend(userFriend: object, requestId: boolean): * Add a user to friend list |
|
| public |
dbAddFriendRequest(userFriend: object): * Send friend request to a user |
|
| public |
dbAddImagePost(newPost: object, callBack: function): * Add a post with image |
|
| public |
dbAddNotify(newNotify: object): * Add notificaition to database |
|
| public |
Add a normal post |
|
| public |
Add vote to database |
|
| public |
dbCancelFriendRequest(userFriend: object): * Cancel a sent friend request |
|
| public |
dbDeleteCircle(id: string): * Delete a circle from database |
|
| public |
dbDeleteComment(id: string, postId: string): * Delete a comment from database |
|
| public |
dbDeleteFollowingUser(cid: string, followingId: string): * Delete a user from a circle |
|
| public |
dbDeleteFriend(friendId: string): * Remove a user from friend list, unfriend another user |
|
| public |
dbDeleteImage(id: string): * Delete an image from database |
|
| public |
dbDeleteNotify(id: string): * Delete a notificaition from database |
|
| public |
dbDeletePost(id: string): * Delete a post from database |
|
| public |
dbDeleteVote(id: string, postId: string): * Delete a vote from database |
|
| public |
dbDenyFriendRequest(myReqId: *, request: *): * |
|
| public |
dbDownloadImage(fileName: string): * Download image from server |
|
| public |
dbFriendRequestDenied(userFriend: object): * Process the friend request you sent once it was denied |
|
| public |
dbGetCircles(): * |
|
| public |
dbGetCirclesByUserId(uid: *): * |
|
| public |
dbGetComments(): * |
|
| public |
dbGetFriendList(): * Get all user friends from database and keep up to date in realtime |
|
| public |
dbGetNotifies(): * |
|
| public |
dbGetPeopleInfo(): * |
|
| public |
dbGetPostById(uid: string, postId: string): * Get single post from database by its id |
|
| public |
dbGetPosts(): * |
|
| public |
dbGetPostsByUserId(userId: string): * Get all user post from database by user id |
|
| public |
Get all friend requests that current user has received from database |
|
| public |
dbGetSentRequests(): * Get all friend requests that current user has sent from database |
|
| public |
dbGetUserInfo(): * |
|
| public |
dbGetUserInfoByUserId(uid: string): * Get user info from database |
|
| public |
dbGetVotes(): * |
|
| public |
Log in user in server |
|
| public |
dbLoginWithOAuth(type: string): * Login user with OAuth |
|
| public |
dbLogout(): * |
|
| public |
dbResetPassword(newPassword: string): * Reset user's password |
|
| public |
dbSaveImage(imageURL: string): * Save image URL in the server |
|
| public |
dbSeenNotify(id: string): * Make seen a notificaition from database |
|
| public |
Register user in database |
|
| public |
dbUpdateCircle(newCircle: object): * Update a circle from database |
|
| public |
dbUpdateComment(id: string, postId: string): * Update a comment from database |
|
| public |
dbUpdatePassword(newPassword: string): * Change user's password |
|
| public |
dbUpdatePost(newPost: object, callBack: func): * Update a post from database |
|
| public |
dbUpdateUserInfo(newInfo: object): * Updata user information |
|
| public |
dbUploadImage(file: file, fileName: string): * Upload image on the server |
|
| public |
defaultDataDisable(status: boolean): {"type": *} Default data loaded status will be false |
|
| public |
defaultDataEnable(): {"type": *} |
|
| public |
deleteCircle(uid: string, id: string): {"type": *, "payload": *} Delete a circle |
|
| public |
deleteComment(id: string, postId: string): {"type": *, "payload": *} Delete a comment |
|
| public |
deleteFollowingUser(uid: string, cid: string, followingId: string): {"type": *, "payload": *} Delete following user from a circle |
|
| public |
deleteFriendUser(friendId: string): {"type": *, "payload": *} Delete user from friend list |
|
| public |
deleteImage(id: string): {"type": *, "id": *} Delete an image |
|
| public |
deleteNotify(id: string): {"type": *, "payload": *} Delete a notificaition |
|
| public |
deletePost(uid: string, id: string): {"type": *, "payload": *} Delete a post |
|
| public |
deleteVote(data: object): {"type": *, "payload": *} delete a vote |
|
| public |
detectTags(content: *, character: *): * |
|
| public |
|
|
| public |
friendListReducer(state: array, action: object): * Friend actions for keeping realtime friend list |
|
| public |
getContentTags(content: *): * |
|
| public |
getFollowingUsers(circles: object): * Get the following users |
|
| public |
getUserBelongCircles(circles: object, followingId: string): * Get the circles which the specify users is in that circle |
|
| public |
globalReducer(state: object, action: object): * Global reducer |
|
| public |
hideMessage(): {"type": *} |
|
| public |
hideTopLoading(): {"type": *} |
|
| public |
imageGalleryReducer(state: *, action: *): * |
|
| public |
|
|
| public |
isAuthorized(): * |
|
| public |
loadDataGuest(): * |
|
| public |
Login user |
|
| public |
login(email: *, pw: *): * |
|
| public |
logout(): * |
|
| public |
logout(): {"type": *} Logout user |
|
| public |
notifyReducer(state: object, action: object): * Notify actions |
|
| public |
openCircleSettings(uid: *, id: *): {"type": *, "payload": *} Open circle settings |
|
| public |
openCommentEditor(comment: *): {"type": *, "payload": *} |
|
| public |
openEditProfile(): {"type": *} |
|
| public |
openPostWrite(): {"type": *} |
|
| public |
postReducer(state: object, action: object): * Post reducer |
|
| public |
progressChange(percent: string, visible: boolean): {"type": *, "payload": *} Progress change |
|
| public |
receivedFriendRequestsReducer(state: array, action: object): * Friend actions for keeping realtime received friend requests |
|
| public |
resetPassword(email: *): * |
|
| public |
saveUser(user: *, other: *): * |
|
| public |
seenNotify(id: string): {"type": *, "payload": *} Change notificaition to has seen status |
|
| public |
sendImageRequest(name: *): {"type": *, "payload": *} |
|
| public |
sentFriendRequestsReducer(state: array, action: object): * Friend actions for keeping realtime sent friend requests |
|
| public |
setHeaderTitle(text: *): {"type": *, "payload": *} |
|
| public |
setHeaderTitleOpt(opt: *, payload: *): * |
|
| public |
setImageURL(name: *, url: *): {"type": *, "payload": *} |
|
| public |
showErrorMessage(message: string): {"type": *, "payload": *} Show error message |
|
| public |
showNotificationRequest(): {"type": *} |
|
| public |
showNotificationSuccess(): {"type": *} |
|
| public |
showTopLoading(): {"type": *} |
|
| public |
Register user |
|
| public |
sortObjectsDate(objects: *): * |
|
| public |
temp(data: *): {"type": *, "payload": *} |
|
| public |
updateCircle(uid: string, circle: object): {"type": *, "payload": *} Update a circle |
|
| public |
updateComment(data: object): {"type": *, "payload": *} Update comment |
|
| public |
updateFriendList(friendList: array): {"type": *, "payload": *} Update user's friend list |
|
| public |
updatePassword(): {"type": *} Update user's password |
|
| public |
updatePost(uid: string, post: object): {"type": *, "payload": *} Update a post |
|
| public |
updateReceivedRequestList(parsedRequest: array): {"type": *, "payload": *} Update the state of friend requests received by current user |
|
| public |
updateSentRequestList(parsedRequest: array): {"type": *, "payload": *} Update the state of friend requests sent by current user |
|
| public |
updateUserInfo(uid: string, info: object): {"type": *, "payload": *} Update user information |
|
| public |
User info |
|
| public |
userReducer(state: *, action: *): * |
|
| public |
voteReducer(state: object, action: object): * Vote actions |
Static Public
public MasterLoading(objectPattern: {"activeLoading": *}) source
import MasterLoading from 'peter-test/app/components/MasterLoading.jsx'
Params:
| Name | Type | Attribute | Description |
| objectPattern | {"activeLoading": *} |
|
public PrivateRoute(objectPattern: {"component": *, ...rest: Object}): * source
import {PrivateRoute} from 'peter-test/app/api/AuthRouterAPI.jsx'
Params:
| Name | Type | Attribute | Description |
| objectPattern | {"component": *, ...rest: Object} |
|
Return:
| * |
public PublicRoute(objectPattern: {"component": *, ...rest: Object}): * source
import {PublicRoute} from 'peter-test/app/api/AuthRouterAPI.jsx'
Params:
| Name | Type | Attribute | Description |
| objectPattern | {"component": *, ...rest: Object} |
|
Return:
| * |
public addCircle(uid: string, circle: object): {"type": *, "payload": *} source
import {addCircle} from 'peter-test/app/actions/circleActions.jsx'
Add a normal circle
Return:
| {"type": *, "payload": *} |
public addCircles(uid: string, circles: [object]): {"type": *, "payload": *} source
import {addCircles} from 'peter-test/app/actions/circleActions.jsx'
Add a list of circle
Params:
| Name | Type | Attribute | Description |
| uid | string | ||
| circles | [object] |
Return:
| {"type": *, "payload": *} |
public addComment(data: object): {"type": *, "payload": *} source
import {addComment} from 'peter-test/app/actions/commentActions.jsx'
Add comment
Params:
| Name | Type | Attribute | Description |
| data | object |
Return:
| {"type": *, "payload": *} |
public addCommentList(postComments: [object]): {"type": *, "payload": *} source
import {addCommentList} from 'peter-test/app/actions/commentActions.jsx'
Add comment list
Params:
| Name | Type | Attribute | Description |
| postComments | [object] | an array of comments |
Return:
| {"type": *, "payload": *} |
public addFollowingUser(uid: string, cid: string, followingId: string, userCircle: object): {"type": *, "payload": *} source
import {addFollowingUser} from 'peter-test/app/actions/circleActions.jsx'
Add following user in a circle
Return:
| {"type": *, "payload": *} |
public addFriendUser(uid: string, userFriend: object): {"type": *, "payload": *} source
import {addFriendUser} from 'peter-test/app/actions/friendActions.jsx'
Add user to friend list
Return:
| {"type": *, "payload": *} |
public addImage(image: object): {"type": *, "image": *} source
import {addImage} from 'peter-test/app/actions/imageGalleryActions.jsx'
Add image to image gallery
Params:
| Name | Type | Attribute | Description |
| image | object |
Return:
| {"type": *, "image": *} |
public addImageList(images: [object]): {"type": *, "images": *} source
import {addImageList} from 'peter-test/app/actions/imageGalleryActions.jsx'
Add image list to image gallery
Params:
| Name | Type | Attribute | Description |
| images | [object] | is an array of images |
Return:
| {"type": *, "images": *} |
public addImagePost(post: object): {"type": *, "payload": *} source
import {addImagePost} from 'peter-test/app/actions/postActions.jsx'
Add a post with image
Params:
| Name | Type | Attribute | Description |
| post | object |
Return:
| {"type": *, "payload": *} |
public addNotify(data: object): {"type": *} source
import {addNotify} from 'peter-test/app/actions/notifyActions.jsx'
Add notificaition
Params:
| Name | Type | Attribute | Description |
| data | object |
Return:
| {"type": *} |
public addNotifyList(userNotifies: [object]): {"type": *, "payload": *} source
import {addNotifyList} from 'peter-test/app/actions/notifyActions.jsx'
Add notificaition list
Params:
| Name | Type | Attribute | Description |
| userNotifies | [object] | an array of notificaitions |
Return:
| {"type": *, "payload": *} |
public addPeopleInfo(infoList: [object]): {"type": *, "payload": *} source
import {addPeopleInfo} from 'peter-test/app/actions/userActions.jsx'
Add people information
Params:
| Name | Type | Attribute | Description |
| infoList | [object] | is the lst of information about users |
Return:
| {"type": *, "payload": *} |
public addPost(uid: string, post: object): {"type": *, "payload": *} source
import {addPost} from 'peter-test/app/actions/postActions.jsx'
Add a normal post
Return:
| {"type": *, "payload": *} |
public addPosts(uid: string, posts: [object]): {"type": *, "payload": *} source
import {addPosts} from 'peter-test/app/actions/postActions.jsx'
Add a list of post
Params:
| Name | Type | Attribute | Description |
| uid | string | ||
| posts | [object] |
Return:
| {"type": *, "payload": *} |
public addUserInfo(uid: string, info: object): {"type": *, "payload": *} source
import {addUserInfo} from 'peter-test/app/actions/userActions.jsx'
Add user information
Return:
| {"type": *, "payload": *} |
public addVote(data: object): {"type": *, "payload": *} source
import {addVote} from 'peter-test/app/actions/voteActions.jsx'
Add a vote
Params:
| Name | Type | Attribute | Description |
| data | object |
Return:
| {"type": *, "payload": *} |
public addVoteList(data: object): {"type": *, "payload": *} source
import {addVoteList} from 'peter-test/app/actions/voteActions.jsx'
Ad a list of vote
Params:
| Name | Type | Attribute | Description |
| data | object |
Return:
| {"type": *, "payload": *} |
public auth(email: *, pw: *, other: *): * source
import {auth} from 'peter-test/app/helpers/index.jsx'
Params:
| Name | Type | Attribute | Description |
| * | |||
| pw | * | ||
| other | * |
Return:
| * |
public authorizeReducer(state: object, action: object): * source
import {authorizeReducer} from 'peter-test/app/reducers/authorizeReducer.jsx'
Authorize reducer
Return:
| * |
public circleReducer(state: object, action: object): * source
import {circleReducer} from 'peter-test/app/reducers/circleReducer.jsx'
Circle reducer
Return:
| * |
public clearAllCircles(): {"type": *} source
import {clearAllCircles} from 'peter-test/app/actions/circleActions.jsx'
Clea all data in circle store
Return:
| {"type": *} |
public clearAllData(): {"type": *} source
import {clearAllData} from 'peter-test/app/actions/commentActions.jsx'
Return:
| {"type": *} |
public clearAllData(): {"type": *} source
import {clearAllData} from 'peter-test/app/actions/postActions.jsx'
Clea all data in post store
Return:
| {"type": *} |
public clearAllData(): {"type": *} source
import {clearAllData} from 'peter-test/app/actions/imageGalleryActions.jsx'
Return:
| {"type": *} |
public clearAllData(): {"type": *} source
import {clearAllData} from 'peter-test/app/actions/userActions.jsx'
Return:
| {"type": *} |
public clearAllNotifications(): {"type": *} source
import {clearAllNotifications} from 'peter-test/app/actions/notifyActions.jsx'
Return:
| {"type": *} |
public clearAllvotes(): {"type": *} source
import {clearAllvotes} from 'peter-test/app/actions/voteActions.jsx'
Return:
| {"type": *} |
public clearSelectData(): {"type": *} source
import {clearSelectData} from 'peter-test/app/actions/imageGalleryActions.jsx'
Return:
| {"type": *} |
public closeCircleSettings(uid: *, id: *): {"type": *, "payload": *} source
import {closeCircleSettings} from 'peter-test/app/actions/circleActions.jsx'
Close open circle settings
Params:
| Name | Type | Attribute | Description |
| uid | * | ||
| id | * |
Return:
| {"type": *, "payload": *} |
public closeCommentEditor(comment: *): {"type": *, "payload": *} source
import {closeCommentEditor} from 'peter-test/app/actions/commentActions.jsx'
Params:
| Name | Type | Attribute | Description |
| comment | * |
Return:
| {"type": *, "payload": *} |
public closeEditProfile(): {"type": *} source
import {closeEditProfile} from 'peter-test/app/actions/userActions.jsx'
Return:
| {"type": *} |
public closePostWrite(): {"type": *} source
import {closePostWrite} from 'peter-test/app/actions/globalActions.jsx'
Return:
| {"type": *} |
public commentReducer(state: object, action: object): * source
import {commentReducer} from 'peter-test/app/reducers/commentReducer.jsx'
Comment actions
Return:
| * |
public dbAcceptFriendRequest(string: *, request: object): * source
import {dbAcceptFriendRequest} from 'peter-test/app/actions/friendActions.jsx'
Accept friend request
Params:
| Name | Type | Attribute | Description |
| string | * | myReqId the id of the received request |
|
| request | object | the received request object |
Return:
| * |
public dbAddCircle(circleName: string): * source
import {dbAddCircle} from 'peter-test/app/actions/circleActions.jsx'
Add a circle
Params:
| Name | Type | Attribute | Description |
| circleName | string |
Return:
| * |
public dbAddComment(newComment: object, callBack: function): * source
import {dbAddComment} from 'peter-test/app/actions/commentActions.jsx'
Add comment to database
Return:
| * |
public dbAddFollowingUser(cid: string, userFollowing: object): * source
import {dbAddFollowingUser} from 'peter-test/app/actions/circleActions.jsx'
Add a user in a circle
Return:
| * |
public dbAddFriend(userFriend: object, requestId: boolean): * source
import {dbAddFriend} from 'peter-test/app/actions/friendActions.jsx'
Add a user to friend list
Return:
| * |
public dbAddFriendRequest(userFriend: object): * source
import {dbAddFriendRequest} from 'peter-test/app/actions/friendActions.jsx'
Send friend request to a user
Params:
| Name | Type | Attribute | Description |
| userFriend | object | is the user to send request to |
Return:
| * |
public dbAddImagePost(newPost: object, callBack: function): * source
import {dbAddImagePost} from 'peter-test/app/actions/postActions.jsx'
Add a post with image
Return:
| * |
public dbAddNotify(newNotify: object): * source
import {dbAddNotify} from 'peter-test/app/actions/notifyActions.jsx'
Add notificaition to database
Params:
| Name | Type | Attribute | Description |
| newNotify | object | user notificaition |
Return:
| * |
public dbAddPost(newPost: object, callBack: function): * source
import {dbAddPost} from 'peter-test/app/actions/postActions.jsx'
Add a normal post
Return:
| * |
public dbAddVote(postId: string): * source
import {dbAddVote} from 'peter-test/app/actions/voteActions.jsx'
Add vote to database
Params:
| Name | Type | Attribute | Description |
| postId | string | is the identifier of the post which user vote |
Return:
| * |
public dbCancelFriendRequest(userFriend: object): * source
import {dbCancelFriendRequest} from 'peter-test/app/actions/friendActions.jsx'
Cancel a sent friend request
Params:
| Name | Type | Attribute | Description |
| userFriend | object | is the user whom to cancel the request to |
Return:
| * |
public dbDeleteCircle(id: string): * source
import {dbDeleteCircle} from 'peter-test/app/actions/circleActions.jsx'
Delete a circle from database
Params:
| Name | Type | Attribute | Description |
| id | string | is circle identifier |
Return:
| * |
public dbDeleteComment(id: string, postId: string): * source
import {dbDeleteComment} from 'peter-test/app/actions/commentActions.jsx'
Delete a comment from database
Return:
| * |
public dbDeleteFollowingUser(cid: string, followingId: string): * source
import {dbDeleteFollowingUser} from 'peter-test/app/actions/circleActions.jsx'
Delete a user from a circle
Return:
| * |
public dbDeleteFriend(friendId: string): * source
import {dbDeleteFriend} from 'peter-test/app/actions/friendActions.jsx'
Remove a user from friend list, unfriend another user
Params:
| Name | Type | Attribute | Description |
| friendId | string | friend user identifier |
Return:
| * |
public dbDeleteImage(id: string): * source
import {dbDeleteImage} from 'peter-test/app/actions/imageGalleryActions.jsx'
Delete an image from database
Params:
| Name | Type | Attribute | Description |
| id | string | of image |
Return:
| * |
public dbDeleteNotify(id: string): * source
import {dbDeleteNotify} from 'peter-test/app/actions/notifyActions.jsx'
Delete a notificaition from database
Params:
| Name | Type | Attribute | Description |
| id | string | of notificaition |
Return:
| * |
public dbDeletePost(id: string): * source
import {dbDeletePost} from 'peter-test/app/actions/postActions.jsx'
Delete a post from database
Params:
| Name | Type | Attribute | Description |
| id | string | is post identifier |
Return:
| * |
public dbDeleteVote(id: string, postId: string): * source
import {dbDeleteVote} from 'peter-test/app/actions/voteActions.jsx'
Delete a vote from database
Return:
| * |
public dbDenyFriendRequest(myReqId: *, request: *): * source
import {dbDenyFriendRequest} from 'peter-test/app/actions/friendActions.jsx'
Params:
| Name | Type | Attribute | Description |
| myReqId | * | ||
| request | * |
Return:
| * |
public dbDownloadImage(fileName: string): * source
import {dbDownloadImage} from 'peter-test/app/actions/imageGalleryActions.jsx'
Download image from server
Params:
| Name | Type | Attribute | Description |
| fileName | string |
Return:
| * |
public dbFriendRequestDenied(userFriend: object): * source
import {dbFriendRequestDenied} from 'peter-test/app/actions/friendActions.jsx'
Process the friend request you sent once it was denied
Params:
| Name | Type | Attribute | Description |
| userFriend | object | is the user whom to cancel the request to |
Return:
| * |
public dbGetCircles(): * source
import {dbGetCircles} from 'peter-test/app/actions/circleActions.jsx'
Return:
| * |
public dbGetCirclesByUserId(uid: *): * source
import {dbGetCirclesByUserId} from 'peter-test/app/actions/circleActions.jsx'
Params:
| Name | Type | Attribute | Description |
| uid | * |
Return:
| * |
public dbGetComments(): * source
import {dbGetComments} from 'peter-test/app/actions/commentActions.jsx'
Return:
| * |
public dbGetFriendList(): * source
import {dbGetFriendList} from 'peter-test/app/actions/friendActions.jsx'
Get all user friends from database and keep up to date in realtime
Return:
| * |
public dbGetNotifies(): * source
import {dbGetNotifies} from 'peter-test/app/actions/notifyActions.jsx'
Return:
| * |
public dbGetPeopleInfo(): * source
import {dbGetPeopleInfo} from 'peter-test/app/actions/userActions.jsx'
Return:
| * |
public dbGetPostById(uid: string, postId: string): * source
import {dbGetPostById} from 'peter-test/app/actions/postActions.jsx'
Get single post from database by its id
Return:
| * |
public dbGetPosts(): * source
import {dbGetPosts} from 'peter-test/app/actions/postActions.jsx'
Return:
| * |
public dbGetPostsByUserId(userId: string): * source
import {dbGetPostsByUserId} from 'peter-test/app/actions/postActions.jsx'
Get all user post from database by user id
Params:
| Name | Type | Attribute | Description |
| userId | string | is id of user whose posts we want to get |
Return:
| * |
public dbGetReceivedRequests(): * source
import {dbGetReceivedRequests} from 'peter-test/app/actions/friendActions.jsx'
Get all friend requests that current user has received from database
Return:
| * |
public dbGetSentRequests(): * source
import {dbGetSentRequests} from 'peter-test/app/actions/friendActions.jsx'
Get all friend requests that current user has sent from database
Return:
| * |
public dbGetUserInfo(): * source
import {dbGetUserInfo} from 'peter-test/app/actions/userActions.jsx'
Return:
| * |
public dbGetUserInfoByUserId(uid: string): * source
import {dbGetUserInfoByUserId} from 'peter-test/app/actions/userActions.jsx'
Get user info from database
Params:
| Name | Type | Attribute | Description |
| uid | string |
Return:
| * |
public dbGetVotes(): * source
import {dbGetVotes} from 'peter-test/app/actions/voteActions.jsx'
Return:
| * |
public dbLogin(email: string, password: string): * source
import {dbLogin} from 'peter-test/app/actions/authorizeActions.jsx'
Log in user in server
Return:
| * |
public dbLoginWithOAuth(type: string): * source
import {dbLoginWithOAuth} from 'peter-test/app/actions/authorizeActions.jsx'
Login user with OAuth
Params:
| Name | Type | Attribute | Description |
| type | string |
Return:
| * |
public dbLogout(): * source
import {dbLogout} from 'peter-test/app/actions/authorizeActions.jsx'
Return:
| * |
public dbResetPassword(newPassword: string): * source
import {dbResetPassword} from 'peter-test/app/actions/authorizeActions.jsx'
Reset user's password
Params:
| Name | Type | Attribute | Description |
| newPassword | string |
Return:
| * |
public dbSaveImage(imageURL: string): * source
import {dbSaveImage} from 'peter-test/app/actions/imageGalleryActions.jsx'
Save image URL in the server
Params:
| Name | Type | Attribute | Description |
| imageURL | string | is the URL of image |
Return:
| * |
public dbSeenNotify(id: string): * source
import {dbSeenNotify} from 'peter-test/app/actions/notifyActions.jsx'
Make seen a notificaition from database
Params:
| Name | Type | Attribute | Description |
| id | string | of notificaition |
Return:
| * |
public dbSignup(user: object): * source
import {dbSignup} from 'peter-test/app/actions/authorizeActions.jsx'
Register user in database
Params:
| Name | Type | Attribute | Description |
| user | object |
Return:
| * |
public dbUpdateCircle(newCircle: object): * source
import {dbUpdateCircle} from 'peter-test/app/actions/circleActions.jsx'
Update a circle from database
Params:
| Name | Type | Attribute | Description |
| newCircle | object |
Return:
| * |
public dbUpdateComment(id: string, postId: string): * source
import {dbUpdateComment} from 'peter-test/app/actions/commentActions.jsx'
Update a comment from database
Return:
| * |
public dbUpdatePassword(newPassword: string): * source
import {dbUpdatePassword} from 'peter-test/app/actions/authorizeActions.jsx'
Change user's password
Params:
| Name | Type | Attribute | Description |
| newPassword | string |
Return:
| * |
public dbUpdatePost(newPost: object, callBack: func): * source
import {dbUpdatePost} from 'peter-test/app/actions/postActions.jsx'
Update a post from database
Params:
| Name | Type | Attribute | Description |
| newPost | object | ||
| callBack | func | //TODO: anti pattern should change to parent state or move state to redux |
Return:
| * |
public dbUpdateUserInfo(newInfo: object): * source
import {dbUpdateUserInfo} from 'peter-test/app/actions/userActions.jsx'
Updata user information
Params:
| Name | Type | Attribute | Description |
| newInfo | object |
Return:
| * |
public dbUploadImage(file: file, fileName: string): * source
import {dbUploadImage} from 'peter-test/app/actions/imageGalleryActions.jsx'
Upload image on the server
Params:
| Name | Type | Attribute | Description |
| file | file | ||
| fileName | string |
Return:
| * |
public defaultDataDisable(status: boolean): {"type": *} source
import {defaultDataDisable} from 'peter-test/app/actions/globalActions.jsx'
Default data loaded status will be false
Params:
| Name | Type | Attribute | Description |
| status | boolean |
Return:
| {"type": *} |
public defaultDataEnable(): {"type": *} source
import {defaultDataEnable} from 'peter-test/app/actions/globalActions.jsx'
Return:
| {"type": *} |
public deleteCircle(uid: string, id: string): {"type": *, "payload": *} source
import {deleteCircle} from 'peter-test/app/actions/circleActions.jsx'
Delete a circle
Return:
| {"type": *, "payload": *} |
public deleteComment(id: string, postId: string): {"type": *, "payload": *} source
import {deleteComment} from 'peter-test/app/actions/commentActions.jsx'
Delete a comment
Return:
| {"type": *, "payload": *} |
public deleteFollowingUser(uid: string, cid: string, followingId: string): {"type": *, "payload": *} source
import {deleteFollowingUser} from 'peter-test/app/actions/circleActions.jsx'
Delete following user from a circle
Return:
| {"type": *, "payload": *} |
public deleteFriendUser(friendId: string): {"type": *, "payload": *} source
import {deleteFriendUser} from 'peter-test/app/actions/friendActions.jsx'
Delete user from friend list
Params:
| Name | Type | Attribute | Description |
| friendId | string | friend user identifier |
Return:
| {"type": *, "payload": *} |
public deleteImage(id: string): {"type": *, "id": *} source
import {deleteImage} from 'peter-test/app/actions/imageGalleryActions.jsx'
Delete an image
Params:
| Name | Type | Attribute | Description |
| id | string | is an image identifier |
Return:
| {"type": *, "id": *} |
public deleteNotify(id: string): {"type": *, "payload": *} source
import {deleteNotify} from 'peter-test/app/actions/notifyActions.jsx'
Delete a notificaition
Params:
| Name | Type | Attribute | Description |
| id | string | of notificaition |
Return:
| {"type": *, "payload": *} |
public deletePost(uid: string, id: string): {"type": *, "payload": *} source
import {deletePost} from 'peter-test/app/actions/postActions.jsx'
Delete a post
Return:
| {"type": *, "payload": *} |
public deleteVote(data: object): {"type": *, "payload": *} source
import {deleteVote} from 'peter-test/app/actions/voteActions.jsx'
delete a vote
Params:
| Name | Type | Attribute | Description |
| data | object |
Return:
| {"type": *, "payload": *} |
public detectTags(content: *, character: *): * source
import {detectTags} from 'peter-test/app/api/PostAPI.jsx'
Params:
| Name | Type | Attribute | Description |
| content | * | ||
| character | * |
Return:
| * |
public downloadForImageGallery(): * source
import {downloadForImageGallery} from 'peter-test/app/actions/imageGalleryActions.jsx'
Return:
| * |
public friendListReducer(state: array, action: object): * source
import {friendListReducer} from 'peter-test/app/reducers/friendListReducer.jsx'
Friend actions for keeping realtime friend list
Params:
| Name | Type | Attribute | Description |
| state | array | ||
| action | object |
Return:
| * |
public getContentTags(content: *): * source
import {getContentTags} from 'peter-test/app/api/PostAPI.jsx'
Params:
| Name | Type | Attribute | Description |
| content | * |
Return:
| * |
public getFollowingUsers(circles: object): * source
import {getFollowingUsers} from 'peter-test/app/api/CircleAPI.jsx'
Get the following users
Params:
| Name | Type | Attribute | Description |
| circles | object |
Return:
| * |
public getUserBelongCircles(circles: object, followingId: string): * source
import {getUserBelongCircles} from 'peter-test/app/api/CircleAPI.jsx'
Get the circles which the specify users is in that circle
Return:
| * |
public globalReducer(state: object, action: object): * source
import {globalReducer} from 'peter-test/app/reducers/globalReducer.jsx'
Global reducer
Return:
| * |
public hideMessage(): {"type": *} source
import {hideMessage} from 'peter-test/app/actions/globalActions.jsx'
Return:
| {"type": *} |
public hideTopLoading(): {"type": *} source
import {hideTopLoading} from 'peter-test/app/actions/globalActions.jsx'
Return:
| {"type": *} |
public imageGalleryReducer(state: *, action: *): * source
import {imageGalleryReducer} from 'peter-test/app/reducers/imageGalleryReducer.jsx'
Params:
| Name | Type | Attribute | Description |
| state | * |
|
|
| action | * |
Return:
| * |
public isAuthorized(): * source
import {isAuthorized} from 'peter-test/app/api/AuthAPI.jsx'
Return:
| * |
public loadDataGuest(): * source
import {loadDataGuest} from 'peter-test/app/actions/globalActions.jsx'
Return:
| * |
public login(uid: string): {"type": *, "authed": boolean, "uid": *} source
import {login} from 'peter-test/app/actions/authorizeActions.jsx'
Login user
Params:
| Name | Type | Attribute | Description |
| uid | string |
public login(email: *, pw: *): * source
import {login} from 'peter-test/app/helpers/index.jsx'
Params:
| Name | Type | Attribute | Description |
| * | |||
| pw | * |
Return:
| * |
public logout(): {"type": *} source
import {logout} from 'peter-test/app/actions/authorizeActions.jsx'
Logout user
Return:
| {"type": *} |
public notifyReducer(state: object, action: object): * source
import {notifyReducer} from 'peter-test/app/reducers/notifyReducer.jsx'
Notify actions
Return:
| * |
public openCircleSettings(uid: *, id: *): {"type": *, "payload": *} source
import {openCircleSettings} from 'peter-test/app/actions/circleActions.jsx'
Open circle settings
Params:
| Name | Type | Attribute | Description |
| uid | * | ||
| id | * |
Return:
| {"type": *, "payload": *} |
public openCommentEditor(comment: *): {"type": *, "payload": *} source
import {openCommentEditor} from 'peter-test/app/actions/commentActions.jsx'
Params:
| Name | Type | Attribute | Description |
| comment | * |
Return:
| {"type": *, "payload": *} |
public openEditProfile(): {"type": *} source
import {openEditProfile} from 'peter-test/app/actions/userActions.jsx'
Return:
| {"type": *} |
public openPostWrite(): {"type": *} source
import {openPostWrite} from 'peter-test/app/actions/globalActions.jsx'
Return:
| {"type": *} |
public postReducer(state: object, action: object): * source
import {postReducer} from 'peter-test/app/reducers/postReducer.jsx'
Post reducer
Return:
| * |
public progressChange(percent: string, visible: boolean): {"type": *, "payload": *} source
import {progressChange} from 'peter-test/app/actions/globalActions.jsx'
Progress change
Return:
| {"type": *, "payload": *} |
public receivedFriendRequestsReducer(state: array, action: object): * source
import {receivedFriendRequestsReducer} from 'peter-test/app/reducers/receivedFriendRequestsReducer.jsx'
Friend actions for keeping realtime received friend requests
Params:
| Name | Type | Attribute | Description |
| state | array | ||
| action | object |
Return:
| * |
public resetPassword(email: *): * source
import {resetPassword} from 'peter-test/app/helpers/index.jsx'
Params:
| Name | Type | Attribute | Description |
| * |
Return:
| * |
public saveUser(user: *, other: *): * source
import {saveUser} from 'peter-test/app/helpers/index.jsx'
Params:
| Name | Type | Attribute | Description |
| user | * | ||
| other | * |
Return:
| * |
public seenNotify(id: string): {"type": *, "payload": *} source
import {seenNotify} from 'peter-test/app/actions/notifyActions.jsx'
Change notificaition to has seen status
Params:
| Name | Type | Attribute | Description |
| id | string | of notificaition |
Return:
| {"type": *, "payload": *} |
public sendImageRequest(name: *): {"type": *, "payload": *} source
import {sendImageRequest} from 'peter-test/app/actions/imageGalleryActions.jsx'
Params:
| Name | Type | Attribute | Description |
| name | * |
Return:
| {"type": *, "payload": *} |
public sentFriendRequestsReducer(state: array, action: object): * source
import {sentFriendRequestsReducer} from 'peter-test/app/reducers/sentFriendRequestsReducer.jsx'
Friend actions for keeping realtime sent friend requests
Params:
| Name | Type | Attribute | Description |
| state | array | ||
| action | object |
Return:
| * |
public setHeaderTitle(text: *): {"type": *, "payload": *} source
import {setHeaderTitle} from 'peter-test/app/actions/globalActions.jsx'
Params:
| Name | Type | Attribute | Description |
| text | * |
Return:
| {"type": *, "payload": *} |
public setHeaderTitleOpt(opt: *, payload: *): * source
import {setHeaderTitleOpt} from 'peter-test/app/actions/globalActions.jsx'
Params:
| Name | Type | Attribute | Description |
| opt | * | ||
| payload | * |
Return:
| * |
public setImageURL(name: *, url: *): {"type": *, "payload": *} source
import {setImageURL} from 'peter-test/app/actions/imageGalleryActions.jsx'
Params:
| Name | Type | Attribute | Description |
| name | * | ||
| url | * |
Return:
| {"type": *, "payload": *} |
public showErrorMessage(message: string): {"type": *, "payload": *} source
import {showErrorMessage} from 'peter-test/app/actions/globalActions.jsx'
Show error message
Params:
| Name | Type | Attribute | Description |
| message | string |
Return:
| {"type": *, "payload": *} |
public showNotificationRequest(): {"type": *} source
import {showNotificationRequest} from 'peter-test/app/actions/globalActions.jsx'
Return:
| {"type": *} |
public showNotificationSuccess(): {"type": *} source
import {showNotificationSuccess} from 'peter-test/app/actions/globalActions.jsx'
Return:
| {"type": *} |
public showTopLoading(): {"type": *} source
import {showTopLoading} from 'peter-test/app/actions/globalActions.jsx'
Return:
| {"type": *} |
public signup(user: object): {"type": *, ...user: Object} source
import {signup} from 'peter-test/app/actions/authorizeActions.jsx'
Register user
Params:
| Name | Type | Attribute | Description |
| user | object |
public sortObjectsDate(objects: *): * source
import {sortObjectsDate} from 'peter-test/app/api/PostAPI.jsx'
Params:
| Name | Type | Attribute | Description |
| objects | * |
Return:
| * |
public temp(data: *): {"type": *, "payload": *} source
import {temp} from 'peter-test/app/actions/globalActions.jsx'
Params:
| Name | Type | Attribute | Description |
| data | * |
Return:
| {"type": *, "payload": *} |
public updateCircle(uid: string, circle: object): {"type": *, "payload": *} source
import {updateCircle} from 'peter-test/app/actions/circleActions.jsx'
Update a circle
Return:
| {"type": *, "payload": *} |
public updateComment(data: object): {"type": *, "payload": *} source
import {updateComment} from 'peter-test/app/actions/commentActions.jsx'
Update comment
Params:
| Name | Type | Attribute | Description |
| data | object |
Return:
| {"type": *, "payload": *} |
public updateFriendList(friendList: array): {"type": *, "payload": *} source
import {updateFriendList} from 'peter-test/app/actions/friendActions.jsx'
Update user's friend list
Params:
| Name | Type | Attribute | Description |
| friendList | array | friend list of user |
Return:
| {"type": *, "payload": *} |
public updatePassword(): {"type": *} source
import {updatePassword} from 'peter-test/app/actions/authorizeActions.jsx'
Update user's password
Return:
| {"type": *} |
public updatePost(uid: string, post: object): {"type": *, "payload": *} source
import {updatePost} from 'peter-test/app/actions/postActions.jsx'
Update a post
Return:
| {"type": *, "payload": *} |
public updateReceivedRequestList(parsedRequest: array): {"type": *, "payload": *} source
import {updateReceivedRequestList} from 'peter-test/app/actions/friendActions.jsx'
Update the state of friend requests received by current user
Params:
| Name | Type | Attribute | Description |
| parsedRequest | array | array of friend requests received |
Return:
| {"type": *, "payload": *} |
public updateSentRequestList(parsedRequest: array): {"type": *, "payload": *} source
import {updateSentRequestList} from 'peter-test/app/actions/friendActions.jsx'
Update the state of friend requests sent by current user
Params:
| Name | Type | Attribute | Description |
| parsedRequest | array | array of friend requests sent |
Return:
| {"type": *, "payload": *} |
public updateUserInfo(uid: string, info: object): {"type": *, "payload": *} source
import {updateUserInfo} from 'peter-test/app/actions/userActions.jsx'
Update user information
Return:
| {"type": *, "payload": *} |
public userInfo(info: object): {"type": *, "info": *} source
import {userInfo} from 'peter-test/app/actions/userActions.jsx'
User info
Params:
| Name | Type | Attribute | Description |
| info | object |
Return:
| {"type": *, "info": *} |
public userReducer(state: *, action: *): * source
import {userReducer} from 'peter-test/app/reducers/userReducer.jsx'
Params:
| Name | Type | Attribute | Description |
| state | * |
|
|
| action | * |
Return:
| * |


“SFSU Software Engeneering Project CSC 648-848,
Summer 2019. For Demostration Only."
About
Post
Contact
Log In
Sign Up
All Categories
selected <% } %> >Fire
selected <% } %> >Oil spill
selected <% } %> >Waste Managment
Search
Sign Up
First Name:
*required
Last Name:
*required
Email:
*required
Password:
*required
Confirm Password:
*required
I accept the
Terms and Conditions
Cancel
Create Account


Sweep Away the Garbage
for scalable, fault-tolerant shared VM storage
Adam Litke -
<EMAIL_ADDRESS>FOSDEM 2016 - 30 January 2016
The next 40 minutes
oVirt shared storage architecture
Preventing data corruption
Recovering from failure
Examples
Local vm storage
Local vm storage
Multi-host local vm storage
Shared vm storage
oVirt shared storage
oVirt storage domain
oVirt image
oVirt volume
Storage operations
Datapath operations
A VM or host accessing volume contents
These are the most common and most important
Lots of IO
Long running
Narrow in scope
Example: VM volume access
Example: Host volume access
Metadata operations
Adding / removing / rearranging storage objects
Changing storage domain metadata
Minimal IO
Short running
Can have broad scope
Example: create volume
Example: delete image
Challenge: conflicts
Preventing conflicts
Requirement: data integrity
Goal: maximize concurrency
Interaction between storage objects is complex
Orchestration required across several domains
User actions
Hosts
Local threads
Same VM on multiple hosts
Conflicting metadata updates
Run VM during snapshot
Solution: Locking
Management level locking
Entities are locked while executing user-driven actions
Lock an image during creation
Lock a VM while taking a snapshot
Lock a host while it modifies storage
Shared storage locking
Implemented using
Sanlock
Lockspace is on shared storage
Leases grant hosts exclusive access to storage resources
Storage domain lease: needed for metadata changes
Volume lease: protects volume contents
More about sanlock
Host IDs
Every host has a unique ID
Uniqueness is enforced by SANlock
IDs must be periodically renewed
Failure to renew will surrender all resource leases
Resource leases
Represent an arbitrary resource (storage or otherwise)
Misbehaving hosts will be fenced (rebooted)
Process level locking
Implemented with a local lock manager and RWLocks
Locks grant threads either shared or exclusive access
Storage domain lock: protects metadata
Image lock: protects volume chain and metadata
Challenge: interruptions
Handling interruptions
Some steps in a task are never completed
Happen naturally or due to bugs
Power or network outage
Hardware failure
Software failure
Must be carefully mitigated to keep storage coherent
Approaches
Storage task manager with rollback capability
Storage transactions with garbage collection
Interrupted volume creation
Interrupted volume copy
Solution: Transactional Storage
Storage transactions
Garbage collection
Monitoring and resolution
Storage transactions
Storage commands must be a single transaction
A transaction is opened with a marker operation
Subsequent steps accumulate "garbage" on storage
A transaction is committed by converting the start marker
Example
Garbage collection
Runs periodically on an arbitrary host
Identifies candidates by finding markers
Acquires necessary locks for the candidate
Verifies the candidate should be collected
Cleans garbage associated with the marker
Removes the marker
Identify candidate
Acquire locks
Clean
Remove marker
Identify candidate
Acquire locks
Abort
Monitoring and resolution
Running commands raise events or can be polled
Progress
State changes
Error code and context
Command results are not persistent
Success or failure is evident by examining storage
Practical examples
Create volume
Remove volume
Clone volume
Example: Create volume
Acquire domain lease
Acquire image lock
Create volatile image directory
Create volatile metadata file
Create lease file
Create volume data file
Commit metadata file
Commit image directory
Release image lock
Release domain lease
Example: Remove volume
Existing volume
Acquire domain lease
Acquire image lock
Make image volatile
Invoke the garbage collector
Release image lock
Release domain lease
Example: Clone volume
Existing volume
Create another volume
Acquire source image lock
Acquire target image lock
Acquire source volume lease
Acquire target volume lease
Mark target volume illegal
Copy data
Progress event
Mark target volume legal
Release target volume lease
Release source volume lease
Release target image lock
Release source image lock
Completion event
Locking order
Strict rules needed to prevent deadlock
Storage leases before local locks
Big containers before smaller containers
Storage Domain ➡ Image ➡ Volume
Source volume before destination volume
Release the newest locks first
Join us!
http://www.ovirt.org
irc://irc.oftc.net/ovirt
http://lists.ovirt.org/mailman/listinfo/devel
http://lists.ovirt.org/mailman/listinfo/users
Questions?


1. Learn photography using Nikon and Canon DSLRs.
2. Do projects in portraiture, landscape, journalistic photography.
3. Complete three short-term and one semester-long project to be published on personal photography portfolio website. See syllabus here.
4. Meets twice a week:
- Mondays 6-7:30 pm
- Wednesdays 2-3:30 pm
5. There is a $40 materials fee due at the beginning of the program. Financial assistance offered. Read materials fee for more info.
5. See perks here.


- This is link 64620666-d1fa-476d-920b-b4776eb5c171
-
- This is link 5a551410-d8bf-45b2-8302-1981151fa2d0
-
-
This is link 1e9a8ded-79c8-4b4c-b4b0-626e02540b42
- This is link 483bd83d-fd7c-47d4-ab1e-03c159f26cbb This is link 493a4b92-3547-44a5-9057-062047ad6f6c
-
This is link 589db6c8-81fa-4dba-bcec-e46aa6cba648
-
-
This is link 1e9a8ded-79c8-4b4c-b4b0-626e02540b42
- This is link 7deb6ad8-55ea-4324-8fd6-b2d5bf081207
- This is link 7ff6f322-3790-4078-a3dd-bed595372a3f
- This is link c2e782b7-2cc4-41a8-910b-ffd7096ad78e This is link f4688f13-e048-4843-b020-d30f07988085
This is paragraph c422ad8f-4012-4e67-b06f-6611cc8ab06a
This is link 489207ea-5399-4860-b612-823863ce9ad9
-
- This is link 3462f7b4-00b4-4c6a-9bb4-c8d823359af5
- This is link 9c632e7e-ff47-4e41-a7ac-a85d12693fa6
-
- This is link 9843f17c-674b-4478-a74f-f1e6076e7e15
-
- This is link 9edd75fb-defd-4e19-8379-c49aa2a961f0 This is link 7a67bf0d-d045-4a2f-8e25-f33368543cdb
- This is link af3171ac-9f61-4c39-af63-6c560e24fda6
-
-


X Library Function Reference
Notes
The reference is currently being updated for X version 3.15.4 (30Dec04)
Beginning with v3.15, the main library files do not provide support for NN4. If you need NN4 support, use 'x_core_nn4.js' and 'x_event_nn4.js' instead of 'x_core.js' and 'x_event.js'.
Parameter Syntax
Parameters in square brackets are optional. Parameter names use the following data type prefixes.
b - boolean
i - signed integer
u - unsigned integer
f - floating point (real)
s - string
fn - function reference
o - object reference
The first parameter to most functions is an exception to the above. The ele argument can be an id string or an object reference (window, document, or Element).
Global Variables
xVersion - X version string
As much as possible, object-detection is used instead of browser-detection. The following variables are used. They are created when you include 'x_core.js'.
xUA - lowercase user-agent string
xIE4Up - true if browser is IE 4 or greater
xIE4 - true if browser is IE 4.x
xIE5 - true if browser is IE 5.x
xNN4 - true if browser is Netscape Navigator 4.x
xOp5or6 - true if browser is Opera 5.x or 6.x
xOp7 - true if browser is Opera 7.x
xMoz - true if browser is Mozilla, etc.
xMac - true if OS is Mac
For some browsers, the window resize and scroll events are simulated. Some of the following variables may be used.
xPCW - previous clientWidth
xPCH - previous clientHeight
xREL - resize event listener
xPSL - previous scrollLeft
xPST - previous scrollTop
xSEL - scroll event listener
FUNCTIONS
xShow(ele)
Set the element's visibility to 'visible' ('show' for NN4). Calls xVisibility().
Parameters:
ele - id string or object reference
Uses: xVisibility
File: x_core.js
xHide(ele)
Set the element's visibility to 'hidden' ('hide' for NN4). Calls xVisibility().
Parameters:
ele - id string or object reference
Uses: xVisibility
File: x_core.js
xVisibility(ele, bShow)
Return and optionally set the element's visibility.
Parameters:
ele - id string or object reference
bShow - true = show, false = hide
Uses: xGetElementById(), xDef()
File: x_core.js
xDisplay(ele, sProp)
Return and optionally set the element's display property.
Parameters:
ele - id string or object reference
sProp - 'none', 'inline', 'block', etc.
Uses: xGetElementById(), xStr()
File: x_core.js
xZIndex(ele[,uZ])
Return and optionally set the element's z-index.
Parameters:
ele - id string or object reference
uZ - unsigned integer z-index
Uses: xGetElementById(), xDef(), xNum()
File: x_core.js
xColor(ele[,sColor])
Return and optionally set the element's text color.
Parameters:
ele - id string or object reference
sColor - color string
Uses: xGetElementById(), xDef(), xStr()
File: x_core.js
xBackground(ele[,sBgColor[,sBgImage]])
Return and optionally set the element's background color and image.
Parameters:
ele - id string or object reference
sBgColor - background color string
sBgImage - background image URL string
Uses: xGetElementById(), xDef(), xStr(), xOp5or6
File: x_core.js
xMoveTo(ele,iX,iY)
Set the element's x and y coordinates.
Parameters:
ele - id string or object reference
iX - integer x coordinate
iY - integer y coordinate
Uses: xLeft(), xTop()
File: x_core.js
xLeft(ele[,iX])
Return and optionally set the element's x coordinate.
Parameters:
ele - id string or object reference
iX - integer x coordinate
Uses: xGetElementById(), xDef(), xStr(), xNum()
File: x_core.js
xTop(ele[,iY])
Return and optionally set the element's y coordinate.
Parameters:
ele - id string or object reference
iY - integer y coordinate
Uses: xGetElementById(), xDef(), xStr(), xNum()
File: x_core.js
xPageX(ele)
Return the element's absolute x coordinate.
Parameters:
ele - id string or object reference
Uses: xGetElementById(), xDef()
File: x_core.js
xPageY(ele)
Return the element's absolute y coordinate.
Parameters:
ele - id string or object reference
Uses: xGetElementById(), xDef()
File: x_core.js
xOffsetLeft(ele)
Return the element's X offset within its parent element.
Parameters:
ele - id string or object reference
Uses: xGetElementById(), xDef()
File: x_core.js
xOffsetTop(ele)
Return the element's Y offset within its parent element.
Parameters:
ele - id string or object reference
Uses: xGetElementById(), xDef()
File: x_core.js
xScrollLeft(ele)
Return the number of pixels the element (or window) has scrolled horizontally.
Parameters:
ele - id string or object reference. If undefined return document scrollLeft.
Uses: xGetElementById(), xDef(), xNum()
File: x_core.js
xScrollTop(ele)
Return the number of pixels the element (or window) has scrolled vertically.
Parameters:
ele - id string or object reference. If undefined return document scrollTop.
Uses: xGetElementById(), xDef(), xNum()
File: x_core.js
xSlideTo(ele,iX,iY,iTime)
Animated, linear motion with sinusoidal rate. Slide the element to the target position in the given time.
Parameters:
ele - id string or object reference
iX - integer x target
iY - integer y target
iTime - total time of slide in ms
Uses: xGetElementById(), xMoveTo()
File: x_slide.js
xResizeTo(ele,uW,uH)
Set the element's width and height.
Parameters:
ele - id string or object reference
uW - unsigned integer width
uH - unsigned integer height
Uses: xWidth(), xHeight()
File: x_core.js
xWidth(ele[,uW])
Return and optionally set the element's width.
Parameters:
ele - id string or object reference
uW - unsigned integer width; it is rounded to an integer
Uses: xGetElementById(), xDef(), xNum(), xStr()
File: x_core.js
xHeight(ele[,uH])
Return and optionally set the element's height.
Parameters:
ele - id string or object reference
uH - unsigned integer height; it is rounded to an integer
Uses: xGetElementById(), xDef(), xNum(), xStr()
File: x_core.js
xClip(ele[,iTop,iRight,iBottom,iLeft])
Set the element's clipping rectangle. If ele is the only argument then set clip to existing width and height. Return void.
Parameters:
ele - id string or object reference
iTop - integer y coordinate of top-left corner
iRight - integer x coordinate of right-bottom corner
iBottom - integer y coordinate of right-bottom corner
iLeft - integer x coordinate of top-left corner
Uses: xGetElementById(), xNum(), nn4:xWidth(), nn4:xHeight()
File: x_core.js
xAddEventListener(ele,sEventType,fnEventListener,bCapture)
Register an event listener on the element. For some browsers the window.onscroll and window.onresize events are simulated.
Parameters:
ele - id string or object reference
sEventType - string event type ('mousemove', 'click', 'resize', etc.)
fnEventListener - reference to the listener function
bCapture - boolean capture event flag
Uses: xGetElementById()
File: x_event.js
xRemoveEventListener(ele,sEventType,fnEventListener,bCapture)
Unregister an event listener on the element.
Parameters:
ele - id string or object reference
sEventType - string event type ('mousemove', 'click', 'resize', etc.)
fnEventListener - reference to the listener function
bCapture - boolean capture event flag
Uses: xGetElementById()
File: x_event.js
xEvent(oEvent)
Resolve browser differences for selected event properties and return an object with those properties. This is an object prototype. Create an instance with the new operator.
Parameters:
oEvent - native event object (null for IE)
The following are the current xEvent properties.
type - string, event type
target - element object, target of event
pageX - absolute X coordinate of mouse
pageY - absolute Y coordinate of mouse
offsetX - target-relative X coordinate of mouse
offsetY - target-relative Y coordinate of mouse
keyCode - unsigned integer
Uses: xDef(), xPageX(), xPageY(), nn4:xLayerFromPoint()
File: x_event.js
xStopPropagation(evt)
...
Parameters:
evt -
Uses: ...
File: x_event.js
xPreventDefault(evt)
...
Parameters:
evt -
Uses: ...
File: x_event.js
xClientWidth()
Return the inner width of the window.
Uses: xOp5or6, xDef()
File: x_core.js
xClientHeight()
Return the inner height of the window.
Uses: xOp5or6, xDef()
File: x_core.js
xGetElementsByAttribute(sTag, sAtt, sRE, fn)
Return an array of all sTag elements whose sAtt attribute matches sRE. sAtt can also be a property name but the property must be of type string.
Parameters:
sTag -
sAtt -
sRE -
fn - callback function, iterates thru the returned list
Uses: none
File: x_dom.js
xGetElementsByClassName(sClsName, oParentEle, sTagName, fn)
Returns an array of elements which are descendants of parentEle and have tagName and clsName. If parentEle is null or not present, document will be used. If tagName is null or not present, "*" will be used.
Parameters:
sClsName -
oParentEle -
sTagName -
fn - callback function, iterates thru the returned list
Uses: xGetElementsByTagName
File: x_dom.js
xGetElementsByTagName(sTagName, oParentEle)
Returns an array of elements which are descendants of parentEle and have tagName. If parentEle is null or not present, document will be used. If tagName is null or not present, "*" will be used. This even works with IE4.
Parameters:
sTagName -
oParentEle -
Uses: none
File: x_dom.js
xGetComputedStyle(oEle, sProp, bInt)
For sProp use the css property name, not the object property name. For finding width this works in Moz and Op, but in IE this only works if padding and border use pixel units in the CSS.
Parameters:
oEle - element object
sProp - css property name
bInt - if true, return value is an integer
Uses: none
File: x_dom.js
xWalkTree(oNode, fnVisit)
Perform a preorder traversal on the subtree starting at oNode and pass each Element node to fnVisit.
Parameters:
oNode - element object at which to begin traversal
fnVisit - this function will be called for each node and will be passed a reference to that node.
Uses: none
File: x_dom.js
xGetElementById(ele)
Return a reference to an Element object or null if ele is invalid.
Parameters:
ele - id string or object reference
Uses: nn4:xLayer()
File: x_core.js
xLayer(sId)
Return a reference to a Layer object or null if sId is invalid. This is only for NN4 and is called by xGetElementById().
Parameters:
sId - id string
Uses: none
File: x_core_nn4.js
xLayerFromPoint(iX,iY)
Return a reference to the topmost Layer object containing the point or null if no layer contains the point. This is only for NN4 and is called by xEvent().
Parameters:
iX - integer absolute x coordinate
iY - integer absolute y coordinate
Uses: none
File: x_event_nn4.js
xParent(ele,bNode)
Return a reference to the element's parent element, or null if not found.
Parameters:
ele - id string or object reference
bNode - pass true if you want parentNode, else you get offsetParent
Uses: xGetElementById(), xDef()
File: x_core.js
xDef(ref[,...])
Return true if all arguments are defined.
Uses: none
File: x_core.js
xNum(ref)
Return true if typeof(ref) == 'number'.
Uses: none
File: x_core.js
xStr(ref)
Return true if typeof(ref) == 'string'.
Uses: none
File: x_core.js
xEnableDrag(ele,fnDragStart,fnDrag,fnDragEnd)
Enable dragging for ele.
Parameters:
ele - id string or object reference
fnDragStart - this function will be called on mousedown on ele
fnDrag - this function will be called on each mousemove during dragging
fnDragEnd - this function will be called on mouseup on ele
Uses: xGetElementById(), xAddEventListener(), xRemoveEventListener(), xEvent(), xParent(), xMoveTo()
File: x_drag.js
xImgRollSetup(sPath,sOvrSuffix,sFileExt,sImgEleId[,...])
Image rollover setup. Can not be called before the window onload event. Pass image IDs starting with 4th argument. The only html requirement is for each IMG tag to have an ID. Assumes this image file naming convention:
out img = path + imgEleId + fileExt
over img = path + imgEleId + ovrSuffix + fileExt
Parameters:
sPath - path to image files (requires trailing slash)
sOvrSuffix - see above file name convention
sFileExt - see above file name convention (requires dot)
sImgEleId - pass all img ele IDs starting with the 4th argument
Uses: xGetElementById()
File: x_img.js
xName(ref)
Returns a string for displaying. It first tries id, then nodeName, then tagName, else returns ele.
Parameters:
ref - object reference
Uses: none
File: x_debug.js
xLoadScript(sUrl)
Load a .js file after the window.onload event.
Parameters:
sUrl - URL to the .js file
Uses: none
File: x_debug.js
xParentChain(ele,sDelim,bNode)
Returns a string for displaying. Iterates up the parent chain of ele.
Parameters:
ele - id string or object reference
sDelim - for example: '\n' or '<br>'
bNode - pass true if you want parentNode, else you get offsetParent
Uses: xGetElementById(), xName(), xParent()
File: x_debug.js
xHasPoint(ele,iLeft,iTop,iClpT,iClpR,iClpB,iClpL)
Returns true if iLeft,iTop is contained within the clipped area of ele.
Parameters:
ele - id string or object reference
iLeft -
iTop -
iClpT -
iClpR -
iClpB -
iClpL -
Uses: xNum(), xPageX(), xPageY(), xWidth(), xHeight()
File: x_core.js
xWindow(sName, uW, uH, iX, iY, loc, men, res, scr, sta, too)
Create an xWindow object for each child window the page will need. Pass a zero for width, height, left, and top and the window will have default size and position. Pass a zero or one for the boolean parameters (location field, menubar, etc.). For a simpler alternative see xWinOpen() in 'x_alt.js'.
Parameters:
sName - the same name as the 'target' attribute of the A elements
uW -
uH -
iX -
iY -
loc -
men -
res -
scr -
sta -
too -
Uses: none
File: x_win.js
xBar(sDir, sConStyle, sBarStyle)
Parameters:
sDir - direction string, one of: 'ltr', 'rtl', 'ttb', or 'btt'
sConStyle - classname for the bar container
sBarStyle - classname for the bar
Uses: xLeft(), xTop(), xNum(), xResizeTo(), xMoveTo(), xLinearScale()
File: x_bar.js
xPopup(sTmrType, uTimeout, sPosition, sStyle, sId, sUrl)
An alternative to popup windows.
Parameters:
sTmrType - 'timeout' or 'interval'
uTimeout - time in ms
sPosition - 'cen', 'e', 'se', etc.
sStyle - classname
sId - id
sUrl - popup URL
Uses: xTimer,xSlideTo,xWidth,xHeight,xClientWidth,xClientHeight
File: x_popup.js
xTimer.set(sTmrType, obj, sMethod, uTime, data)
Register an object method to receive a timeout or interval event. On timeout the event listener will receive a reference to it's xTimerObj which has methods: start, stop, and reset; and properties: elapsed and data. xTimer is a global object created when x_timer.js is included. Multiple timers can be set.
Parameters:
sTmrType - 'timeout' or 'interval'
obj - object to receive event
sMethod - string: name of one of obj's methods
uTime - time in ms
data - passed to listener at event
Uses: none
File: x_timer.js
xEvalTextarea()
Append a textarea and button to the current document. Click the button to evaluate the javascript in the textarea.
Uses: none
File: x_debug.js
xTooltipGroup(grpClassOrIdList, tipClass, origin, xOffset, yOffset, textList)
Parameters:
grpClassOrIdList - The css class name which you add to any element you want to trigger a tooltip - Or - an array of id strings.
tipClass - The css class name applied to the tooltip triggered by elements with the grpClass class name (or elements whose id is in the IdList).
origin - One of 'right', 'top', or 'mouse'. For 'right' or 'top', the tooltip is positioned to the right (or top) of the trigger element. For 'mouse' the tooltip will follow the mouse. In all three cases the following offsets are applied.
xOffset/yOffset - The tooltip is positioned relative to the above origin, offset by these amounts.
textList - If grpClassOrIdList is an array of IDs, then textList provides the tooltip text for the corresponding array index. If grpClassOrIdList is a class name then textList is not needed (tooltip text is taken from the element's TITLE attribute).
Uses: xGetElementById, xGetElementsByClassName, xAddEventListener, xPageX, xPageY, xWidth, xHeight, xMoveTo, xShow, xEvent
File: x_tip.js
xIntersection(ele1, ele2, obj)
Returns true if the two elements intersect and assigns properties to obj which describe the intersected rectangle: x, y, w, and h.
Parameters:
ele1 -
ele2 -
obj -
Uses: none
File: x_misc.js
xLinearScale(value, inMin, inMax, outMin, outMax)
...
Parameters:
value -
inMin -
inMax -
outMin -
outMax -
Uses: none
File: x_misc.js
xEllipse(ele, xRadius, yRadius, radiusInc, totalTime, startAngle, stopAngle)
Elliptical animation.
Parameters:
ele -
xRadius -
yRadius -
radiusInc -
totalTime -
startAngle -
stopAngle -
Uses: ...
File: x_anim.js
Demo:
xParaEq(ele, xExpr, yExpr, totalTime)
Parametric equation animation.
Parameters:
ele -
xExpr -
yExpr -
totalTime -
Uses: ...
File: x_anim.js
Demo:
xTableRowDisplay(bShow, sec, nRow)
Set row display.
Parameters:
bShow -
sec -
nRow -
Uses: ...
File: x_table.js
xTableCellVisibility(bShow, sec, nRow, nCol)
Set cell visibility.
Parameters:
bShow -
sec -
nRow -
nCol -
Uses: ...
File: x_table.js
xTableColDisplay(bShow, sec, nCol)
Set column display.
Parameters:
bShow -
sec -
nCol -
Uses: ...
File: x_table.js
xTableIterate(sec, fnCallback)
Iterate through all rows and cells in the section.
Parameters:
sec - ID or element reference of table, tHead, tBody, or tFoot.
fnCallback - function reference which will be called for each row and cell in section. If fnCallback returns false then iterations will stop. It will be passed the following arguments:
obj - reference to the current cell or row.
isRow - true if obj is a ref to a TR, false if obj is a ref to a TD.
row - 0-based row number relative to section.
col - 0-based column number relative to section.
data - passed to fnCallback at each call.
Uses: xGetElementById
File: x_table.js
xTableCursor(id, inh, def, hov, sel)
Mouseover highlight on rows and cells.
Parameters:
id - table id
inh - inherit style
def - default style
hov - row hover style
sel - cell selected style
Uses: xGetElementById, xTableIterate
File: x_table.js
xImgAsyncWait(fnStatus, fnInit, fnError, sErrorImg, sAbortImg, imgArray)
Asynchronously waits (and monitors the status) of newly created or static images.
Parameters:
fnStatus -
fnInit -
fnError -
sErrorImg -
sAbortImg -
imgArray -
Uses: ...
File: x_img.js
xTriStateImage(idOut, urlOver, urlDown, fnUp)
Image rollover with a third state - mousedown.
Parameters:
idOut -
urlOver -
urlDown -
fnUp -
Uses: ...
File: x_img.js
xCapitalize(str)
Capitalize the first letter of every word in str.
Parameters:
str -
Uses: none
File: x_misc.js
Demo:


Before Change
route, endpoint_name, methods=methods)
[http_proxy] = self.get_http_proxy()
await http_proxy.set_route_table.remote(
self.route_table.list_service(
include_methods=True, include_headless=False))
After Change
// based on its name.
// TODO(edoakes): we should probably just store routes and endpoints
// separately.
if route is None:
route = endpoint
// TODO(edoakes): move this to client side.
err_prefix = "Cannot create endpoint."
if route in self.routes:
if self.routes[route] == (endpoint, methods):
return


Blazing Saddles
Mel Brooks' greatest strength, I think, was his lack of discretion. When watching an early Brooks film, one gets the impression he never wrote (or directed) a joke he didn't utterly adore. Blazing Saddles, the director's finest film, is a boisterous, quasi-offensive, absurd, and very often funny parody of the western genre.
I doubt a summary of plot will do any good here. (I don't think synopses serve much function in general, to be perfectly honest.) At bottom, the continuous gags are the narrative. The script was assembled by a team of four writers, including Brooks and Richard Pryor, and there are hints throughout the picture of an incompatibility its collaborators had with one another, manifested by its unevenness.
Brooks' directorial execution often suffers from premature ejaculation; he has a propensity to spit out the punchline before we've been given the proper set-up. This is hardly of any consequence, however, because Brooks isn't looking to evoke any comedic orgasm in his audience. No sir, he treats burlesque like a chore. So we get a few chuckles instead of the big laugh.
However, all this bitching aside, I genuinely enjoy the movie. It's a romp if there ever was one, at breakneck speed. Brooks is so careless, tact being the first thing thrown from the window, that when you're not laughing at the jokes, you're snickering at the sheer audacity the director displays by staging some of these gags. Morever, there a few gems in the film that would have most likely been abandoned by the more self-conscious comedian/film-maker. At times you feel as though your "taste" is wrestling with the film's silliness, and in my case, the silliness frequently prevailed.
I liked most of the performances, particularly Gene Wilder's, who so perfectly plays the "Washed-Up-But-He's Still-Got-It" cowboy.  And Mel in full Indian garb is a sight.
The most severe flaw in Brooks' oeuvre has been his affection for the genres he parodies. Never do his films bloom into full-fledged lampoons, this due to a certain respect he has for movies he's mocking. Sure, he plays with the conventions of the western in Blazing Saddles, but his satire is more akin to innocuous poking than effective uppercuts. Blazing Saddles works because it exploits the genre's milieu as a context for manifold gags; but when his films are parodies and little more, such as Young Frankenstein and Dracula: Dead and Loving It, they seem uninspired, impotent, and most deplorable of all, unfunny.
Stephen Lang --<EMAIL_ADDRESS>Premature Thoughts on Films -- (http://users.southeast.net/~chuckd21/smj/smjindex.html)
Temporarily brought to you by:
-- Chuck Dowling --
Visit Chuck's Movie Reviews at http://users.southeast.net/~chuckd21/ Over 1,600 movies rated and/or reviewed! Movie news, film related links, and reader's reviews.
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


Below is the information required by law about the web site of D-PLACE (https://d-place.org), an electronic resource published by the Max Planck Institute for the Science of Human History (http://www.shh.mpg.de) as well as important legal points.
The following provides mandatory data concerning the provider of this website, obligations with regard to data protection, as well as other important legal references involving the websites of the Max-Planck-Gesellschaft zur Förderung der Wissenschaften e.V. (http://www.mpg.de/).
The provider of this website within the legal meaning of the term is the registered association Max Planck Society for the Advancement of Science (Max-Planck Gesellschaft zur Förderung der Wissenschaften e.V.).
The Max Planck Society is registered in the Official Register of Societies and Associations at Berlin-Charlottenburg Local Court under the register number VR 13378 B.
The Max Planck Society is legally represented by its Board of Directors, which, in turn, is represented by the President of the Society, Professor Martin Stratmann, and by Secretary General Dr. Ludwig Kronthaler.
The value added tax identification number of the Max Planck Society is DE 129517720.
The editor responsible for the information within the scope of the internet presence of the Max Planck Institute for the Science of Human History is:
Prof. Dr. Russell GrayThe Max Planck Society is a non-profit research facility, which is organized as a registered association. All of the institutes and facilities of the Max Planck Society are largely autonomous in terms of organization and research, but as a rule have no legal capacity of their own.
Visits to this website are logged. The anonymized IP address currently used by your computer, as well as further technical data pertaining to the data call is recorded.
Data is evaluated only for statistical purposes in anonymized form. No personal user profiles are created.
Session cookies are used within the scope of this Internet session for technical reasons. This data is deleted at the latest when you close your browser.
The data protection officer of the Max Planck Society is available for questions concerning the topic of data protection at<EMAIL_ADDRESS>or +49 (0) 89-2108-1317.
Your personal data will only be transmitted to government organizations and authorities in legally required cases and/or for prosecution in the event of attacks on our network infrastructure. Your personal data are not provided to third parties for any other purpose.
In accordance with Section 7 Paragraph 1 of the Tele-Media Law, the Max Planck Society shall be responsible for its own contents according to general legal provisions. The Max Planck Society makes every effort to provide timely and accurate information on this Website. Nevertheless, errors and inaccuracies cannot be completely ruled out. Therefore, the Max Planck Society does not assume any liability for the information provided being up-to-date as well as its accuracy, completeness or quality. The Max Planck Society shall not be liable for damage of a tangible or intangible nature caused directly or indirectly through the use or failure to use the information offered and/or through the use of faulty or incomplete information unless it is verifiably culpable of intent or gross negligence. The same shall apply to any software downloads available free of charge. The Max Planck Society reserves the right to modify, supplement, or delete any or all of the information offered on its Website, or to temporarily or permanently cease publication thereof without prior and separate notification.
The respective provider shall be responsible for the contents of any linked external pages. In establishing the initial link, the Max Planck Society has reviewed the respective external content in order to determine whether such link entailed possible civil or criminal responsibility. However, a constant review of linked external pages is unreasonable without concrete indication of a violation of rights. If the Max Planck Society discovers or is pointed out by others that an external offer linked to by the Max Planck Society causes civil or criminal responsibility, the Max Planck Society will immediately eliminate any link to this offer. The Max Planck Society expressly dissociates itself from such contents.


Chapter 6 The gamma distribution
6.1 The gamma distribution
In this chapter we will introduce a family of distributions known as the gamma distribution. We will see that this family contains several sub-families of distributions that arise in practical problems, including the exponential, chi-squared and Erlang distributions. The gamma distribution is also related to normal, \(t\) and \(F\) distributions.
In practice we are often interested in modelling data which is positive, such as the time to the occurrence of an event of interest. We have seen that an Exponential distribution is one possibility to model such data, but it lacks flexibility — it only has a single parameter and we have seen that all exponential pdfs have the same shape (see Example 2.6). It is natural to try to generalise the exponential to a more flexible family of distributions, and the gamma distribution is one way of achieving this.
Before we introduce the gamma distribution, we first need to introduce a function which is used in the pdf of the gamma distribution, to make sure that the pdf integrates to one.
When \(\alpha = 1\), we have \[\Gamma(1) = \int_0^\infty e^{-x} dx = 1.\]
Next, let’s prove a useful property about the Gamma function.As a consequence of Proposition 6.1 and the fact that \(\Gamma(1) = 1\), if \(\alpha\) is any positive integer then \[\Gamma(\alpha) = (\alpha - 1)!,\] so the Gamma function can be thought of as a continuous version of the factorial function.
It is also useful to know what happens to the Gamma function at half integer points, \(\Gamma(1/2)\), \(\Gamma(3/2)\) and so on. It can be shown that \[\Gamma(1/2) = \sqrt{\pi},\] and this may be used along with the recurrence relationship (Proposition 6.1) to compute any other \(\Gamma(n/2)\).
Note that the exponential distribution with rate parameter \(\beta\) is a special case of the gamma distribution, with \(\alpha = 1\).
Example 6.1 (Time until the \(k\)th event in a Poisson process) Suppose we have a Poisson process with events arriving at rate \(\beta\) per unit time, so that the number of events occurring in a time interval of length \(t\) has \(\text{Poisson}(\beta t)\) distribution. Let \(Y\) be the time until the \(k\)th event occurs. We claim that \(Y \sim \text{gamma}(k, \beta)\).
Let \(N_y\) be the number of events in the time interval \((0, y]\). Then \(N_y \sim \text{Poisson}(\beta y)\). We have \[P(Y > y) = P(N_y \leq k - 1) = \sum_{n=0}^{k-1} \frac{(\beta y)^n e^{-\beta y}}{n!},\] so \[\begin{align*} F(y) = P(Y \leq y) &= 1- P(Y > y) \\ &= 1 - \sum_{n=0}^{k-1} \frac{(\beta y)^n e^{-\beta y}}{n!} \\ &= 1 - e^{-\beta y} - \sum_{n=1}^{k-1} \frac{(\beta y)^n e^{-\beta y}}{n!}. \end{align*}\] So \[\begin{align*} f(y) &= \frac{dF}{dy} = \beta e^{-\beta y} - \sum_{n=1}^{k-1} \left\{ \frac{\beta^n y^{n-1} e^{-\beta y}}{(n-1)!} - \beta \frac{(\beta y)^n}{n!} e^{-\beta y} \right\} \\ &= \beta e^{-\beta y} - \beta e^{-\beta y} + \beta^2 y e^{-\beta y} - \beta^2 y e^{-\beta y} + \frac{\beta^3 y^2}{2!} e^{-\beta y} - \ldots + \frac{\beta (\beta y)^{k-1}}{(k-1)!} e^{-\beta y} \\ &= \frac{\beta^k}{\Gamma(k)} y^{k-1} e^{-\beta y}, \end{align*}\]which is the pdf of a \(\text{gamma}(k, \beta)\) random variable.
If \(\alpha\) is an integer, as in this example, the \(\text{gamma}(\alpha, \beta)\) distribution is also known as the Erlang distribution. The exponential distribution (with \(\alpha= 1\)) is a special case of the Erlang distribution.6.2 Properties of the gamma distribution
The following proposition tells us that the gamma distribution is always positively skewed, but the skewness decreases as \(\alpha\) increases. The gamma distribution always has larger kurtosis than the normal distribution, but the kurtosis decreases towards the kurtosis of a normal distribution (\(\gamma_2 = 3\)) as \(\alpha\) increases.
Proof. From Proposition 6.2, the mgf is \(M_Y(t) = (1 - t/\beta)^{-\alpha}\), so the cgf is \(K_Y(t) = \log M_Y(t) = -\alpha \log(1 - t/\beta)\). Differentiating, we have \[K_Y^{(1)}(t) = \frac{\alpha}{\beta\left(1 - \frac{t}{\beta}\right)} = \frac{\alpha}{\beta - t},\] so \(E(Y) = K_Y^{(1)}(0) = \alpha \beta^{-1}\).
Differentiating the cgf again, \[K_Y^{(2)}(t) = \frac{d}{dt} \left[\alpha (\beta - t)^{-1}\right] = \alpha(\beta - t)^{-2},\] so \(\mu_2 = \text{Var}(Y) = K_Y^{(2)}(0) = \alpha \beta^{-2}\).
Differentiating the cgf again, \[K_Y^{(3)}(t) = \frac{d}{dt} \left[\alpha (\beta - t)^{-2}\right] = 2 \alpha (\beta - t)^{-3},\] so the third moment about the mean is \(\mu_3 = K_Y^{(3)}(0) = 2 \alpha \beta^{-3}\). So the skewness is \[\gamma_1 = \frac{\mu_3}{\mu_2^{3/2}} = \frac{2 \alpha \beta^{-3}}{[\alpha \beta^{-2}]^{3/2}} = 2 \alpha^{-1/2}.\]
Differentiating the cgf again, \[K_Y^{(4)}(t) = \frac{d}{dt} \left[2 \alpha (\beta - t)^{-3}\right] = 6 \alpha (\beta - t)^{-4},\] so the fourth cumulant is \(\kappa_4 = 6 \alpha \beta^{-4}\). The fourth moment about the mean is \[\mu_4 = \kappa_4 + 3 \mu_2^2 = 6 \alpha \beta^{-4} + 3 \alpha^2 \beta^{-4},\] so the kurtosis is \[\gamma_2 = \frac{\mu_4}{\mu_2^2} = 3 + \frac{6 \alpha \beta^{-4}}{\alpha^2 \beta^{-4}} = 3 + 6 \alpha^{-1},\] as claimed.The gamma distribution is closed under scaling, and under summation of independent gamma distributions with a common rate parameter.
6.3 The chi-squared distribution
The chi-squared distribution is a useful special case of the gamma distribution.
We can write down the properties of the chi-squared distribution by using results we have already proved about the gamma distribution.
If \(Y \sim \chi^2_n\), we have \[E(Y) = \frac{n/2}{1/2} = n; \qquad \text{Var}(Y) = \frac{n/2}{(1/2)^2} = 2n.\]
By Proposition 6.5, if \(Y_1, \ldots, Y_n\) are independent random variables, with \(Y_i \sim \chi^2_{n_i}\) then \[\begin{equation} \sum_{i=1}^n Y_i \sim \chi^2_{\sum_{i=1}^n n_i}. \tag{6.2} \end{equation}\]The sum of independent chi-squared random variables has chi-squared distribution with degrees of freedom given by the sum of the individual degrees of freedom.
The chi-squared distribution is also related to the normal distribution.6.4 Distribution of the sample variance
Suppose \(Y_1, Y_2, \ldots, Y_n\) are independent identically distributed \(N(\mu, \sigma^2)\) random variables. We can use observations of \(y_1, y_2, \ldots, y_n\) of \(Y_1, \ldots, Y_n\) to estimate \(\mu\) and \(\sigma^2\). We can use the sample mean \[\bar y = \frac{1}{n} \sum_{i=1}^n y_i\] to estimate \(\mu\), and the sample variance \[s^2 = \frac{\sum_{i=1}^n (y_i - \bar y)^2}{n-1}\] to estimate \(\sigma^2\).
For any specific sample of observations, \(\bar y\) and \(s^2\) will take specific numerical values, but when they are defined in terms of the random variables \(Y_1 , Y_2 , \ldots, Y_n\), they too are random variables and will have distributions.
We have already seen (in Proposition 4.1) that \(\bar Y \sim N(\mu, \sigma^2/n)\). We would like to also know the distribution of the random version of the sample variance \[\begin{equation} S^2 = \frac{\sum_{i=1}^n (Y_i - \bar Y)^2}{n-1}. \tag{6.3} \end{equation}\]In order to prove this important result, we will need to use Cochran’s theorem, which we state here without proof.
Theorem 6.2 (Cochran’s Theorem) Suppose that \(U \sim \text{gamma}(\alpha_1, \beta)\) and \(W \sim \text{gamma}(\alpha_1 + \alpha_2, \beta)\). If \(V = W - U\), then any one of the following implies the other two:
- \(V \sim \text{gamma}(\alpha_2, \beta)\).
- \(V\) is independent of \(U\)
- \(V\) is non-negative.
We use Cochran’s theorem to prove Theorem 6.1:
as \(\sum_{i=1}^n (Y_i - \bar Y) = 0\). So \[\sum_{i=1}^n (Y_i - \mu)^2 = \sum_{i=1}^n (Y_i - \bar Y)^2 - n(\bar Y - \mu)^2.\] Multiplying through by \(\frac{1}{\sigma^2}\) gives \[\frac{1}{\sigma^2}\sum_{i=1}^n (Y_i - \mu)^2 = \frac{1}{\sigma^2}\sum_{i=1}^n (Y_i - \bar Y)^2 - \frac{n}{\sigma^2}(\bar Y - \mu)^2,\] so \[\frac{(n-1)S^2}{\sigma^2} = \sum_{i=1}^n \left(\frac{Y_i - \mu}{\sigma}\right)^2 - \left(\frac{\sqrt{n}(\bar Y - \mu)}{\sigma} \right)^2.\] But \((Y_i - \mu)/\sigma \sim N(0, 1)\), so \[\sum_{i=1}^n \left(\frac{Y_i - \mu}{\sigma}\right)^2 \sim \chi^2_n\] by Proposition 6.7. We have \(\sqrt{n}(\bar Y - \mu)/\sigma \sim N(0, 1)\) by Proposition 4.1, so \[\left(\frac{\sqrt{n}(\bar Y - \mu)}{\sigma} \right)^2 \sim \chi^2_1\] by Proposition 6.6.
Now we use Cochran’s Theorem (6.2), with \[\begin{align*} V &= \frac{(n-1) S^2}{\sigma^2} \\ W &= \sum_{i=1}^n \left(\frac{Y_i - \mu}{\sigma}\right)^2 \sim \chi^2_n \equiv \text{gamma}(n/2, 1/2) \\ U &= \left(\frac{\sqrt{n}(\bar Y - \mu)}{\sigma} \right)^2 \sim \chi^2_1 \equiv \text{gamma}(1/2, 1/2), \end{align*}\]so \(\alpha_1 = 1/2\) and \(\alpha_1 + \alpha_2 = n/2\), so \(\alpha_2 = (n-1)/2\). We have \(\sum_{i=1}^n (Y_i - \bar Y)^2 \geq 0\), so \(V \geq 0\), so condition (iii) in Cochran’s Theorem is met.
So by (ii) of Cochran’s Theorem, \(V = \frac{(n-1) S^2}{\sigma^2}\) is independent of \(U = \left(\frac{\sqrt{n}(\bar Y - \mu)}{\sigma} \right)^2\), and hence \(S^2\) is independent of \(\bar Y\), as claimed.
By (i) of Cochran’s Theorem, \[V = \frac{(n-1) S^2}{\sigma^2} \sim \text{gamma}(\alpha_2, 1/2) \equiv \text{gamma}((n-1)/2, 1/2) \equiv \chi^2_{n-1},\] as claimed.where we have used that the expected value of a chi-squared random variable is its degrees of freedom. So \(S^2\) is an unbiased estimator of \(\sigma^2\): a concept which we will revisit in Chapter 10.


Beta This is a test version of the layout of this page. Take the survey to help us improve it
Collection
Information, tools, training and guidance to help schools improve their financial management and efficiency.
Here you can find an overview of the schools financial efficiency support package and a guide to getting started.
A guide to approaching financial planning and information about the EFA Information Exchange – EFA’s digital platform for local authorities, academies, maintained schools and other funded providers that includes an online calendar setting out key dates in the school business cycle.
You can also read case studies on schools’ financial health and efficiency showing examples of effective financial management in schools.
These tools help you assess your current financial position, compare your school’s spend with other similar schools, and carry out a review of your budget to identify risks.
Effective financial management involves the whole school leadership team. These pages provide information to support the leadership team.
You can also read case studies on schools’ financial health and efficiency showing examples of effective financial management in schools.
This section will help you manage your school building efficiently and get the most out of your capital and maintenance expenditure.
Effective maintenance reduces the risks associated with buildings and building services, and helps to prevent the need for significant capital expenditure and disruption which can follow building failure.
School governors and academy trustees have a key role in ensuring schools manage their finances efficiently. These pages provide information and support to help governors.
These pages include advice about practical buying, effective and collaborative procurement, and tips to help schools get the most value from their budgets.
They also includes links to information from Crown Commercial Service (CCS), which works closely with DfE to develop better deals for schools.
The department has updated its procurement guidance for schools and academies . This provides advice on planning, achieving simpler and more economic routes for buying both products and services, and information on contract management.
Having access to good financial advice and support is an important part of running an effective school. Schools can take advantage of this advice and support to help them review their current financial position, identify issues and take appropriate action to address them.
We have developed the financial health checks structure to help schools to identify what support they need. We have also started to develop a directory of some of the suppliers that can provide these checks, or elements of these checks.
There’s a lot of financial management training and support available to school leaders. This page will help you find and use it. It includes links to useful sector organisations, their training courses and other resources.
You can also read case studies on schools’ financial health and efficiency , showing examples of effective financial management in schools.


If you do too much it's going to lose its effectiveness. We're trying to teach you a technique here and how to use it. You have to allow the paint to break to make it beautiful. We'll play with clouds today. You have to make these big decisions.
If you do too much it's going to lose its effectiveness. We're trying to teach you a technique here and how to use it. You have to allow the paint to break to make it beautiful. We'll play with clouds today. You have to make these big decisions.
"I promise you that if you will sincerely and persistently do the spiritual work needed to develop the crucial, spiritual skill of learning how to hear the whisperings of the Holy Ghost, you will have all the direction you will ever need in your life." - President Russell M. Nelson
If you do too much it's going to lose its effectiveness. We're trying to teach you a technique here and how to use it. You have to allow the paint to break to make it beautiful. We'll play with clouds today. You have to make these big decisions.
30SEP |
Planning Meeting
Lorem ipsum dolsit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. |
|---|---|
10NOV |
Safety Inspection
Lorem ipsum dolsit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. |
17NOV |
Tour de Temple Ride
Lorem ipsum dolsit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. |


{% extends 'projects/project_dashboard_base.html' %} {% block dashboard-onboard-extra %} {% if not request.user.gold.count and request.user.projects.count > 1 %}
Read the Docs depends on users like you to help us keep the site sustainable.
We now offer Read the Docs Gold membership to allow folks to support us. Gold members allow us to keep the site running, and improving all the time. If you find value in Read the Docs, please consider becoming a member.
Your support of Read the Docs helps make the site better each and every month.


Well, Ill start off by explaining the circumstances in wich i obtained the drug. I was over my friends house and we were all bored so we started making phone calls to find some bud. But in the process we heard one of them say he has some pills. Now of course i couldnt pass up an oppurtunity to try something new so i had him stop by.
When he arrived and showed me the pills they were gel-capsules filled with white powder. I purchased 2 pills, one for me and one for a close friend of mine. Now I was 15 at the time and I had to have an aliby for my mother so i could go and trip all night, i made one up and out we went. We took them orally at about 6PM and we were suddenly hit with this huge wave at about 6:30. The body high was the most intense high ive ever experienced to this day.
We went driving around (My friend and I were in the back seats) and stopped at the package store (but we didnt drink) and a bowl was being passed around, by this time it was about 7, the high was so intense my friend dropped the bowl and said'no way i cant hit that right now' and i was feeling the same way. But around 715 PM i started to feel sick, i had the driver pull over so i could vomit. As i was vommiting i pulled my head up to look at the setting sun, and what i saw was amazing, a spiderweb of colors from the WHOLE color spectrum, I continued to vomit until there was nothing left to vomit, i got back into the car and proceeded to goto a park.
When we arrived i got out of the car and started to dry heave a little bit. I told the driver of the car to go and get me some water because i thought i needed to keep hydrated. When the driver and her friend left to get water is when i started have crazy visual halucinations. The sky was moving extremely fast, the clouds zoomed over my head at an incredible speed and the sky was constantly changing in tints, from red, to green, to orange and so on. I layed down on the ground and couldnt get the buzzing sound out of my head, it was loud and intense. After getting the water i took a small walk and noticed lights were strobing, when i looked to see where they were coming from there was nothing.
Now it was about 8:45PM and my mother called on my friends cell phone, i picked up and had trouble talking with her, so i gave the phone to my other friend and she talked to my mom and i got the news that she was flipping out and i had to go home.  I arrived at my house, told my parents I was not feeling so well and went upstairs to my room. I was sitting on my futon with this overwhelming feeling of safeness, and the body high was still there.
At about 10:30PM my parents had gone to bed and my cat had entered my room, I hugged him and felt extremely happy to see him, as I was looking into his face his wiskers turned blood red and his face looked like a demon from hell, i shook my head but his whiskers were still changing colors, I left his side and looked out the window, they sky was still moving along with huge swirls of dark clouds. I continued to have halucinations until i finnaly got to sleep around 3 AM.

Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


{% extends 'base.html' %} {% load static %} {% block title %} Jagrati | Login {% endblock %} {% block style %} {% endblock %} {% block content %}
---OR---
To keep connected with us please login with your personal info
Enter your personal details and start journey with us


images Displayed are solely for representation purposes only, All work copyright of respective owner, otherwise © 2013-2014 REVOX.
Sign into your pages account
Create a pages account. If you have a facebook account, log into it for this process. Sign in with Facebook or Google