After installing the OpenCV toolkit and its dependencies, you can verify that its operators work correctly by running some of the sample applications that are included in the toolkit. The sample applications, which are compiled when you install the toolkit, illustrate how its operators and types can be used in Streams applications.
If you have a graphical desktop (for example, the Gnome Desktop) on your machine, then you can use Streams Studio to view the source code for the sample applications and then launch them. Or if not, you can run some of the sample applications from a Linux command prompt, as shown in 'Verify the toolkit' below.
To use the OpenV toolkit in your own applications, you need to add an SPL ’use’ statement at the beginning of your source code, and specify the directory containing the toolkit when compiling your source code, as shown in 'Use the toolkit with Streams' below.
The OpenCV toolkit requires that you set Linux environment variables to identify the directory where the FFmpeg and OpenCV libraries will be installed. You can set them by copying these lines into your ’$HOME/.bashrc’ script:
export OPENCV_INSTALL_PATH=/usr/local
export LD_LIBRARY_PATH=$OPENCV_INSTALL_PATH/lib:$LD_LIBRARY_PATH
After changing your ’$HOME/.bashrc’ script, you should log off Linux and log back in, to ensure that the new environment variables are set in all shells, including your window manager.
If you have access to a graphical desktop on your machine, then you can verify that the OpenCV toolkit is installed properly by running the sample application file.spl
. This application will open a window on the desktop and replay a short video in it:
cd .../streamsx.opencv
./samples/output/file/bin/standalone -t 3
Please note: If you access your machine’s desktop remotely, for example with X11 or VNC, network bandwidth and latency may limit the video refresh rate and introduce jitter.
If you have access to your machine via a web browser, then you can verfiy that the OpenCV toolkit is installed properly by running the sample application video_stream.spl
. This application will start an embedded web server and replay a short video on HTTP port 9001:
cd .../streamsx.opencv
./samples/output/video_stream/bin/standalone -t 3
To connect a web browser such as Mozilla Firefox or a video viewer such as the VLC media player to the embedded web server, go here:
http://your.machine.com:9001/
Please note: You may need to change your machine’s firewall settings to allow remote clients access to TCP port 9001.
If there is a camera attached to your machine (see ’Use the toolkit with cameras’ below), you can verify that the OpenCV toolkit can capture video from it by running the sample application cam.spl
:
cd .../streamsx.opencv
./samples/output/cam/bin/standalone -t 3
You can verify that the OpenCV toolkit can capture video from remote web servers by running the sample application url.spl
:
cd .../streamsx.opencv
./samples/output/url/bin/standalone -t 3
You can verify that operators can be composed and executed on separate threads by running the sample application faces_edges_cam.spl
(if there is a camera attached to your machine) or faces_edges_file.spl
(if you have access to HTTP port 9001 on your machine from a web browser or video viewer).
cd .../streamsx.opencv
./samples/output/faces_edges_cam/bin/standalone -t 3
./samples/output/faces_edges_file/bin/standalone -t 3
There are many more sample applications included in the toolkit that illustrate how the operators can be used. Each sample application is described in Sample Applications.
All of the operators and types in this toolkit are defined in the Streams namespace ’com.ibm.streamsx.opencv’. To use them in an SPL application, include this statement at the top of your SPL or SPLMM source file:
use com.ibm.streamsx.opencv::*;
If you compile your SPL applications with the sc
command, then you will need to specify the location of the toolkit with the -t
option, like this:
sc -M yournamespace::yourapplication -t .../streamsx.opencv/com.ibm.streamsx.opencv ... more options ...
If you build your SPL applications in Streams Studio, and you want to make the toolkit available to all Streams projects in your Eclipse workspace, then you can add the toolkit’s location to Studio like this:
launch Streams Studio
switch to the InfoSphere Streams perspective
go to the ’Streams Explorer’ pane
expand ’InfoSphere Streams <IP_ADDRESS>’
right-click on ’Toolkit Locations’ and select ’Add Toolkit Location ...’
click the ’Directory...’ button
navigate to the directory `.../streamsx.opencv/com.ibm.streamsx.opencv‘ and click ’OK’
Or, if you build your SPL applications in Streams Studio, and you want to import the operators’ code generation templates into your Eclipse workspace as a Streams project, then do this instead:
launch Streams Studio
switch to the InfoSphere Streams perspective
go to the ’Project Explorer’ pane
click ’New –> Import ...’ in the Eclipse menu bar
expand ’General’
select ’Existing projects into workspace ...’ and click ’Next’
select ’Select root diretory’ and click the ’Browse...’ button
navigate to the `.../streamsx.opencv‘ directory and click ’OK’
select the project `com.ibm.streamsx.opencv‘ and click ’Finish’
You can use cameras that are attached directly to your machine with the toolkit.
Linux represents cameras as devices named ‘/dev/videoX‘, where ’X’ is a positive integer. The camera number ’X’ is specified with the ’index’ parameter of the CaptureFromCAM
operator.
You can list the cameras attached to your machine with these commands:
lsusb | sort
ls -1 /dev/video*
Most video cameras can be configured to produce images in a variety of frame sizes, and at varying rates. You can display the current configuration of camera ’X’ with this command:
v4l2-ctl -d/dev/videoX --list-formats --all
The camera’s frame size and rate can be configured with the width
, height
, and fps
parameters of the `CaptureFromCAM‘ operator. You can list the frame sizes and rates that camera ’X’ supports with this command:
v4l2-ctl -d/dev/videoX --list-formats-ext
If your camera supports both the ’YUYV’ and ’MJPG’ pixel formats, use the frame sizes and rates listed under the ’MJPG’ pixel formats with the CaptureFromCAM
operator.
© Copyright 2012, 2016, International Business Machines Corporation, All Rights Reserved


Interface AccountApi
-
@Path("/_matrix/client/r0") @Consumes("application/json") @Produces("application/json") public interface AccountApi
Account registration and management.
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static class
AccountApi.RegisterType
The kind of account to register.
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
available(String username, javax.ws.rs.core.UriInfo uriInfo, javax.ws.rs.core.HttpHeaders httpHeaders, javax.ws.rs.container.AsyncResponse asyncResponse)
Checks to see if a username is available, and valid, for the server.void
deactivate(DeactivateRequest deactivateRequest, javax.ws.rs.core.UriInfo uriInfo, javax.ws.rs.core.HttpHeaders httpHeaders, javax.ws.rs.container.AsyncResponse asyncResponse, javax.ws.rs.core.SecurityContext securityContext)
Deactivate the user's account, removing all ability for the user to login again.void
deleteThreePid(Delete3PidRequest request, javax.ws.rs.core.UriInfo uriInfo, javax.ws.rs.core.HttpHeaders httpHeaders, javax.ws.rs.container.AsyncResponse asyncResponse, javax.ws.rs.core.SecurityContext securityContext)
Removes a third party identifier from the user's account.void
emailRequestToken(EmailRequestToken emailRequestToken, javax.ws.rs.core.UriInfo uriInfo, javax.ws.rs.core.HttpHeaders httpHeaders, javax.ws.rs.container.AsyncResponse asyncResponse)
Proxies the identity server API validate/email/emailRequestToken, but first checks that the given email address is not already associated with an account on this Home Server.void
getThreePid(javax.ws.rs.core.UriInfo uriInfo, javax.ws.rs.core.HttpHeaders httpHeaders, javax.ws.rs.container.AsyncResponse asyncResponse, javax.ws.rs.core.SecurityContext securityContext)
Gets a list of the third party identifiers that the homeserver has associated with the user's account.void
msisdnRequestToken(MsisdnRequestToken msisdnRequestToken, javax.ws.rs.core.UriInfo uriInfo, javax.ws.rs.core.HttpHeaders httpHeaders, javax.ws.rs.container.AsyncResponse asyncResponse)
Proxies the Identity Service API validate/msisdn/requestToken, but first checks that the given phone number is not already associated with an account on this homeserver.void
password(PasswordRequest passwordRequest, javax.ws.rs.core.UriInfo uriInfo, javax.ws.rs.core.HttpHeaders httpHeaders, javax.ws.rs.container.AsyncResponse asyncResponse, javax.ws.rs.core.SecurityContext securityContext)
Changes the password for an account on this homeserver.void
passwordEmailRequestToken(EmailRequestToken requestToken, javax.ws.rs.core.UriInfo uriInfo, javax.ws.rs.core.HttpHeaders httpHeaders, javax.ws.rs.container.AsyncResponse asyncResponse)
Proxies the identity server API validate/email/requestToken, but first checks that the given email address is associated with an account on this Home Server.void
passwordMsisdnRequestToken(MsisdnRequestToken requestToken, javax.ws.rs.core.UriInfo uriInfo, javax.ws.rs.core.HttpHeaders httpHeaders, javax.ws.rs.container.AsyncResponse asyncResponse)
Proxies the Identity Service API validate/msisdn/requestToken, but first checks that the given phone number is associated with an account on this homeserver.void
register(String kind, RegisterRequest registerRequest, javax.ws.rs.core.UriInfo uriInfo, javax.ws.rs.core.HttpHeaders httpHeaders, javax.ws.rs.container.AsyncResponse asyncResponse)
Register for an account on this homeserver.void
threePidEmailRequestToken(EmailRequestToken requestToken, javax.ws.rs.core.UriInfo uriInfo, javax.ws.rs.core.HttpHeaders httpHeaders, javax.ws.rs.container.AsyncResponse asyncResponse)
Proxies the identity server API validate/email/requestToken, but first checks that the given email address is not already associated with an account on this Home Server.void
threePidMsisdnRequestToken(MsisdnRequestToken requestToken, javax.ws.rs.core.UriInfo uriInfo, javax.ws.rs.core.HttpHeaders httpHeaders, javax.ws.rs.container.AsyncResponse asyncResponse)
Proxies the Identity Service API validate/msisdn/requestToken, but first checks that the given phone number is not already associated with an account on this homeserver.void
updateThreePid(ThreePidRequest threePidRequest, javax.ws.rs.core.UriInfo uriInfo, javax.ws.rs.core.HttpHeaders httpHeaders, javax.ws.rs.container.AsyncResponse asyncResponse, javax.ws.rs.core.SecurityContext securityContext)
Adds contact information to the user's account.void
whoami(javax.ws.rs.core.UriInfo uriInfo, javax.ws.rs.core.HttpHeaders httpHeaders, javax.ws.rs.container.AsyncResponse asyncResponse, javax.ws.rs.core.SecurityContext securityContext)
Gets information about the owner of a given access token.
-
-
-
Method Detail
-
register
@POST @Path("/register") void register(@QueryParam("kind") String kind, RegisterRequest registerRequest, @Context javax.ws.rs.core.UriInfo uriInfo, @Context javax.ws.rs.core.HttpHeaders httpHeaders, @Suspended javax.ws.rs.container.AsyncResponse asyncResponse)
Register for an account on this homeserver.
Return:LoginResponse
.Status code 200: The account has been registered.
Status code 400: Part of the request was invalid. This may include one of the following error codes:
- M_USER_IN_USE : The desired user ID is already taken.
- M_INVALID_USERNAME : The desired user ID is not a valid user name.
- M_EXCLUSIVE : The desired user ID is in the exclusive namespace claimed by an application service.
These errors may be returned at any stage of the registration process, including after authentication if the requested user ID was registered whilst the client was performing authentication.
Homeservers MUST perform the relevant checks and return these codes before performing User-Interactive Authentication, although they may also return them after authentication is completed if, for example, the requested user ID was registered whilst the client was performing authentication.
Status code 401: The homeserver requires additional authentication information.
Status code 429: This request was rate-limited.
- Parameters:
kind
- The kind of account to register. Defaults to user. One of: ["guest", "user"].registerRequest
- JSON body parameters.uriInfo
- Request Information.httpHeaders
- Http headers.asyncResponse
- Asynchronous response.
-
emailRequestToken
@POST @Path("/register/email/requestToken") void emailRequestToken(EmailRequestToken emailRequestToken, @Context javax.ws.rs.core.UriInfo uriInfo, @Context javax.ws.rs.core.HttpHeaders httpHeaders, @Suspended javax.ws.rs.container.AsyncResponse asyncResponse)
Proxies the identity server API validate/email/emailRequestToken, but first checks that the given email address is not already associated with an account on this Home Server. Note that, for consistency, this API takes JSON objects, though the Identity Server API takes x-www-form-urlencoded parameters. See the Identity Server API for further information.
Return:SessionResponse
.Status code 200: An email has been sent to the specified address. Note that this may be an email containing the validation token or it may be informing the user of an error.
Status code 400: Part of the request was invalid. This may include one of the following error codes:
- M_THREEPID_IN_USE : The email address is already registered to an account on this server. However, if the home server has the ability to send email, it is recommended that the server instead send an email to the user with instructions on how to reset their password. This prevents malicious parties from being able to determine if a given email address has an account on the Home Server in question.
- M_SERVER_NOT_TRUSTED : The id_server parameter refers to an ID server that is not trusted by this Home Server.
Status code 403: The homeserver does not permit the address to be bound.
- Parameters:
emailRequestToken
- JSON body request.uriInfo
- Request Information.httpHeaders
- Http headers.asyncResponse
- Asynchronous response.
-
msisdnRequestToken
@POST @Path("/register/msisdn/requestToken") void msisdnRequestToken(MsisdnRequestToken msisdnRequestToken, @Context javax.ws.rs.core.UriInfo uriInfo, @Context javax.ws.rs.core.HttpHeaders httpHeaders, @Suspended javax.ws.rs.container.AsyncResponse asyncResponse)
Proxies the Identity Service API validate/msisdn/requestToken, but first checks that the given phone number is not already associated with an account on this homeserver. See the Identity Service API for further information.
Return:SessionResponse
.Status code 200: An SMS message has been sent to the specified phone number. Note that this may be an SMS message containing the validation token or it may be informing the user of an error.
Status code 400: Part of the request was invalid. This may include one of the following error codes:
- M_THREEPID_IN_USE: The phone number is already registered to an account on this server. However, if the homeserver has the ability to send SMS message, it is recommended that the server instead send an SMS message to the user with instructions on how to reset their password. This prevents malicious parties from being able to determine if a given phone number has an account on the homeserver in question.
- M_SERVER_NOT_TRUSTED : The id_server parameter refers to an identity server that is not trusted by this homeserver.
Status code 403: The homeserver does not permit the address to be bound.
- Parameters:
msisdnRequestToken
- JSON body request.uriInfo
- Request Information.httpHeaders
- Http headers.asyncResponse
- Asynchronous response.
-
password
@POST @Path("/account/password") void password(PasswordRequest passwordRequest, @Context javax.ws.rs.core.UriInfo uriInfo, @Context javax.ws.rs.core.HttpHeaders httpHeaders, @Suspended javax.ws.rs.container.AsyncResponse asyncResponse, @Context javax.ws.rs.core.SecurityContext securityContext)
Changes the password for an account on this homeserver.
This API endpoint uses the User-Interactive Authentication API.
An access token should be submitted to this endpoint if the client has an active session.
The homeserver may change the flows available depending on whether a valid access token is provided.
Rate-limited: Yes.
Requires auth: Yes.
Return:EmptyResponse
.Status code 200: The password has been changed.
Status code 401: The homeserver requires additional authentication information.
Status code 429: This request was rate-limited.
- Parameters:
passwordRequest
- Password.uriInfo
- Request Information.httpHeaders
- Http headers.asyncResponse
- Asynchronous response.securityContext
- Security context.
-
passwordEmailRequestToken
@POST @Path("/account/password/email/requestToken") void passwordEmailRequestToken(EmailRequestToken requestToken, @Context javax.ws.rs.core.UriInfo uriInfo, @Context javax.ws.rs.core.HttpHeaders httpHeaders, @Suspended javax.ws.rs.container.AsyncResponse asyncResponse)
Proxies the identity server API validate/email/requestToken, but first checks that the given email address is associated with an account on this Home Server. This API should be used to request validation tokens when authenticating for the account/password endpoint. This API's parameters and response are identical to that of the HS API /register/email/requestToken except that M_THREEPID_NOT_FOUND may be returned if no account matching the given email address could be found. The server may instead send an email to the given address prompting the user to create an account. M_THREEPID_IN_USE may not be returned.
Return:SessionResponse
.Status code 200: An email was sent to the given address.
Status code 400: The referenced third party identifier is not recognised by the homeserver, or the request was invalid.
Status code 403: The homeserver does not allow the third party identifier as a contact option.
- Parameters:
requestToken
- JSON body request.uriInfo
- Request Information.httpHeaders
- Http headers.asyncResponse
- Asynchronous response.
-
passwordMsisdnRequestToken
@POST @Path("/account/password/msisdn/requestToken") void passwordMsisdnRequestToken(MsisdnRequestToken requestToken, @Context javax.ws.rs.core.UriInfo uriInfo, @Context javax.ws.rs.core.HttpHeaders httpHeaders, @Suspended javax.ws.rs.container.AsyncResponse asyncResponse)
Proxies the Identity Service API validate/msisdn/requestToken, but first checks that the given phone number is associated with an account on this homeserver. This API should be used to request validation tokens when authenticating for the account/password endpoint. This API's parameters and response are identical to that of the HS API /register/msisdn/requestToken except that M_THREEPID_NOT_FOUND may be returned if no account matching the given phone number could be found. The server may instead send an SMS message to the given address prompting the user to create an account. M_THREEPID_IN_USE may not be returned.
Return:SessionResponse
.Status code 200: An SMS message was sent to the given phone number.
Status code 400: The referenced third party identifier is not recognised by the homeserver, or the request was invalid.
Status code 403: The homeserver does not allow the third party identifier as a contact option.
- Parameters:
requestToken
- JSON body request.uriInfo
- Request Information.httpHeaders
- Http headers.asyncResponse
- Asynchronous response.
-
deactivate
@POST @Path("/account/deactivate") void deactivate(DeactivateRequest deactivateRequest, @Context javax.ws.rs.core.UriInfo uriInfo, @Context javax.ws.rs.core.HttpHeaders httpHeaders, @Suspended javax.ws.rs.container.AsyncResponse asyncResponse, @Context javax.ws.rs.core.SecurityContext securityContext)
Deactivate the user's account, removing all ability for the user to login again.
This API endpoint uses the User-Interactive Authentication API.
An access token should be submitted to this endpoint if the client has an active session.
The homeserver may change the flows available depending on whether a valid access token is provided.
Rate-limited: Yes.
Requires auth: Yes.
Return:DeactivateResponse
.Status code 200: The account has been deactivated.
Status code 401: The homeserver requires additional authentication information.
Status code 429: This request was rate-limited.
- Parameters:
deactivateRequest
- JSON body request.uriInfo
- Request Information.httpHeaders
- Http headers.asyncResponse
- Asynchronous response.securityContext
- Security context.
-
available
@GET @Path("/register/available") void available(@QueryParam("username") String username, @Context javax.ws.rs.core.UriInfo uriInfo, @Context javax.ws.rs.core.HttpHeaders httpHeaders, @Suspended javax.ws.rs.container.AsyncResponse asyncResponse)
Checks to see if a username is available, and valid, for the server.
The server should check to ensure that, at the time of the request, the username requested is available for use. This includes verifying that an application service has not claimed the username and that the username fits the server's desired requirements (for example, a server could dictate that it does not permit usernames with underscores).
Matrix clients may wish to use this API prior to attempting registration, however the clients must also be aware that using this API does not normally reserve the username. This can mean that the username becomes unavailable between checking its availability and attempting to register it.
Rate-limited: Yes.
Return:AvailableResponse
.Status code 200: The username is available.
Status code 400: Part of the request was invalid or the username is not available. This may include one of the following error codes:
- M_USER_IN_USE : The desired username is already taken.
- M_INVALID_USERNAME : The desired username is not a valid user name.
- M_EXCLUSIVE : The desired username is in the exclusive namespace claimed by an application service.
Status code 429: This request was rate-limited.
- Parameters:
username
- Required. The username to check the availability of.uriInfo
- Request Information.httpHeaders
- Http headers.asyncResponse
- Asynchronous response.
-
getThreePid
@GET @Path("/account/3pid") void getThreePid(@Context javax.ws.rs.core.UriInfo uriInfo, @Context javax.ws.rs.core.HttpHeaders httpHeaders, @Suspended javax.ws.rs.container.AsyncResponse asyncResponse, @Context javax.ws.rs.core.SecurityContext securityContext)
Gets a list of the third party identifiers that the homeserver has associated with the user's account.
This is not the same as the list of third party identifiers bound to the user's Matrix ID in Identity Servers.
Identifiers in this list may be used by the homeserver as, for example, identifiers that it will accept to reset the user's account password.
Requires auth: Yes.
Return:ThreePidResponse
.Status code 200: The lookup was successful.
- Parameters:
uriInfo
- Request Information.httpHeaders
- Http headers.asyncResponse
- Asynchronous response.securityContext
- security context.
-
updateThreePid
@POST @Path("/account/3pid") void updateThreePid(ThreePidRequest threePidRequest, @Context javax.ws.rs.core.UriInfo uriInfo, @Context javax.ws.rs.core.HttpHeaders httpHeaders, @Suspended javax.ws.rs.container.AsyncResponse asyncResponse, @Context javax.ws.rs.core.SecurityContext securityContext)
Adds contact information to the user's account.
Requires auth: Yes.
Return:EmptyResponse
.Status code 200: The addition was successful.
Status code 403: The credentials could not be verified with the identity server.
- Parameters:
threePidRequest
- New contact information.uriInfo
- Request Information.httpHeaders
- Http headers.asyncResponse
- Asynchronous response.securityContext
- Security context.
-
deleteThreePid
@POST @Path("/account/3pid/delete") void deleteThreePid(Delete3PidRequest request, @Context javax.ws.rs.core.UriInfo uriInfo, @Context javax.ws.rs.core.HttpHeaders httpHeaders, @Suspended javax.ws.rs.container.AsyncResponse asyncResponse, @Context javax.ws.rs.core.SecurityContext securityContext)
Removes a third party identifier from the user's account. This might not cause an unbind of the identifier from the identity server.
Requires auth: Yes.
Return:DeactivateResponse
.Status code 200: The homeserver has disassociated the third party identifier from the user.
- Parameters:
request
- JSON body request to delete 3pid.uriInfo
- Request Information.httpHeaders
- Http headers.asyncResponse
- Asynchronous response.securityContext
- Security context.
-
threePidEmailRequestToken
@POST @Path("/account/3pid/email/requestToken") void threePidEmailRequestToken(EmailRequestToken requestToken, @Context javax.ws.rs.core.UriInfo uriInfo, @Context javax.ws.rs.core.HttpHeaders httpHeaders, @Suspended javax.ws.rs.container.AsyncResponse asyncResponse)
Proxies the identity server API validate/email/requestToken, but first checks that the given email address is not already associated with an account on this Home Server. This API should be used to request validation tokens when adding an email address to an account. This API's parameters and response is identical to that of the HS API /register/email/requestToken endpoint.
Return:SessionResponse
.Status code 200: An email was sent to the given address.
Status code 400: The third party identifier is already in use on the homeserver, or the request was invalid.
Status code 403: The homeserver does not allow the third party identifier as a contact option.
- Parameters:
requestToken
- JSON body request.uriInfo
- Request Information.httpHeaders
- Http headers.asyncResponse
- Asynchronous response.
-
threePidMsisdnRequestToken
@POST @Path("/account/3pid/msisdn/requestToken") void threePidMsisdnRequestToken(MsisdnRequestToken requestToken, @Context javax.ws.rs.core.UriInfo uriInfo, @Context javax.ws.rs.core.HttpHeaders httpHeaders, @Suspended javax.ws.rs.container.AsyncResponse asyncResponse)
Proxies the Identity Service API validate/msisdn/requestToken, but first checks that the given phone number is not already associated with an account on this homeserver. This API should be used to request validation tokens when adding a phone number to an account. This API's parameters and response are identical to that of the /register/msisdn/requestToken endpoint.
Return:SessionResponse
.Status code 200: An SMS message was sent to the given phone number.
Status code 400: The third party identifier is already in use on the homeserver, or the request was invalid.
Status code 403: The homeserver does not allow the third party identifier as a contact option.
- Parameters:
requestToken
- JSON body request.uriInfo
- Request Information.httpHeaders
- Http headers.asyncResponse
- Asynchronous response.
-
whoami
@GET @Path("/account/whoami") void whoami(@Context javax.ws.rs.core.UriInfo uriInfo, @Context javax.ws.rs.core.HttpHeaders httpHeaders, @Suspended javax.ws.rs.container.AsyncResponse asyncResponse, @Context javax.ws.rs.core.SecurityContext securityContext)
Gets information about the owner of a given access token.
Note that, as with the rest of the Client-Server API, Application Services may masquerade as users within their namespace by giving a user_id query parameter. In this situation, the server should verify that the given user_id is registered by the appservice, and return it in the response body.
Rate-limited: Yes.
Requires auth: Yes.
Return:WhoamiResponse
.Status code 200: The token belongs to a known user.
Status code 401: The token is not recognised.
Status code 403: The appservice cannot masquerade as the user or has not registered them.
Status code 429: This request was rate-limited.
- Parameters:
uriInfo
- Request Information.httpHeaders
- Http headers.asyncResponse
- Asynchronous response.securityContext
- Security context.
-
-


Address : 99999 Uptown Avenue, Someplaceville, MN 99999
Email<EMAIL_ADDRESS>Phone : +1(999)-999-9999
🌱GIVEAWAY ALERT🌱 The winter season is usually spent cooped up indoors, so spring is the time to break those habits and...
Posted by TruGreen on Tuesday, April 27, 2021


A Singleton progress tracker, used for globally manipulating and viewing the progress of a task.
More...
|
| static size_t | AddObserver (std::function< void(const size_t &, const size_t &size_t)> &&func) |
| | Add an observer method which will be triggered when the task progress changes. More...
|
| |
| static void | RemoveObserver (const size_t &index) |
| | Remove an observer method used for when the log progress changes. More...
|
| |
| static void | SetRange (const size_t &value) |
| | Set the progress upper range. More...
|
| |
| static size_t | GetRange () |
| | Get the progress upper range. More...
|
| |
| static void | SetProgress (const size_t &amount) |
| | Set the current progress value, clamped to the upper range. More...
|
| |
| static void | IncrementProgress () |
| | Increment the progress by 1. More...
|
| |
A Singleton progress tracker, used for globally manipulating and viewing the progress of a task.
Can accept observers to listen in on when the progress changes. Hides singleton pattern from user, exposes functionality through static methods.


Image that is blocked by both consent
Image that is NOT blocked by consent
This is a placeholder
This is a fallback
This is a placeholder
This is a fallback
Please Accept to load image.
Accept
Reject
Dismiss
Please Accept to load image.
Accept
Reject
Dismiss
Post Prompt UI
Manage


The jQuery Validation Plugin provides drop-in validation for your existing forms, while making all kinds of customizations to fit your application really easy.
This project is looking for help! You can donate to the ongoing pledgie campaign and help spread the word. If you've used the plugin, or plan to use, consider a donation - any amount will help.
You can find the plan for how to spend the money on the pledgie page.
Prebuilt files can be downloaded from http://jqueryvalidation.org/
The unreleased development files can be obtained by:
grunt
to create the built files in the "dist" directoryInclude jQuery and the plugin on a page. Then select a form to validate and call the validate
method.
<form>
<input required>
</form>
<script src="jquery.js"></script>
<script src="jquery.validate.js"></script>
<script>
$("form").validate();
</script>
Alternatively include jQuery and the plugin via requirejs in your module.
define(["jquery", "jquery.validate"], function( $ ) {
$("form").validate();
});
For more information on how to setup a rules and customizations, check the documentation.
See the Contributing Guidelines for details.
IMPORTANT NOTE ABOUT EMAIL VALIDATION. As of version 1.12.0 this plugin is using the same regular expression that the HTML5 specification suggests for browsers to use. We will follow their lead and use the same check. If you think the specification is wrong, please report the issue to them. If you have different requirements, consider using a custom method.
Copyright © Jörn Zaefferer
Licensed under the MIT license.


Hafizuddin
Jaafar
PORTFOLIO
RESUME
ACTIVITIES
About Me
My name is Ahmad Hafizuddin bin Ahmad Jaafar, an Electrical Engineering graduate from the University of California, Los Angeles. My passion lies in data science, lifting, and reading.


Guardiola wants to stay at Man City, embraces another title challenge
Pep Guardiola has said there is no chance he will quit as Manchester City manager at the end of the season, even if they miss out on a third consecutive Premier League title.
REUTERS: Pep Guardiola has said there is no chance he will quit as Manchester City manager at the end of the season, even if they miss out on a third consecutive Premier League title.
City have slipped to fourth in the table and a 3-1 defeat by leaders Liverpool two weeks ago left Guardiola's team nine points off the top.
 Because we lost at Anfield or I've lost three games this season? That's an odd reason to say I'm not happy or satisfied to be here," he told reporters.
Guardiola will complete four years at City at the end of this campaign, matching his spell at Barcelona before he chose to step down.
After setting records for goals scored and points tally with City over the last two seasons, the Spanish coach said he is enjoying the challenge of trying to topple Liverpool.
"I love to be in this position," said Guardiola, who is contracted with City until the end of the 2020-21 season.
"If they (the club's hierarchy) decide the results are getting worse then they are going to take a decision, that’s normal."
Ahead of Saturday's match against Chelsea, Guardiola said the deficit means his players have no room for further slip-ups.
"You never always win in sport. It's part of normality. People say: 'It's gone, it's over' but the people, the pundits – all of them – have to remember that it's November," he added.
"Until May, we are the Champions and we want to defend that until the end."
(Reporting by Hardik Vyas in Bengaluru, editing by Ed Osmond)


What is Relational Database Design?
Stages of Relational Database Design
Define the purpose & entitites of the Relational DB.
Identify the Primary keys.
Establish Table Relationships.
join table
Apply Normalization Rules.
Normalization
: Process of optimizing the database structure so that redundancy and confusion are eliminated.Using Transactions allow us to make changes to a SQL database in a consistent and durable way, and it is considered best practice to use them regularly.
Transaction
: Single unit of work, which can contain multiple operations, performed on a database.
Implicit vs. explicit transactions
implicit
transaction.explicit
transactions will allow us to create save points and roll back to whatever point in time we choose.PostgreSQL transactional commands
BEGIN
: Initiates a transaction block. All Statements after a BEGIN command will be executed in a single transaction until COMMIT or ROLLBACK is called.COMMIT
: Commits a current transaction, all changes made by this transaction become visible to others and are guaranteed to be durable if a crash occurs.ROLLBACK
: Rolls back current transaction and removes all updates made by the transaction.BEGIN;
INSERT INTO hobbits(name,purpose)
VALUES('Frodo','Destroy the One Ring of power.');
ROLLBACK;
SAVEPOINT
: Establishes a new save point within the current transaction.BEGIN;
DELETE FROM fellowship
WHERE age > 100;
SAVEPOINT first_savepoint;
DELETE FROM fellowship
WHERE age > 80;
DELETE FROM fellowship
WHERE age >= 40;
ROLLBACK TO first_savepoint;
COMMIT;
SET TRANSACTION
: Sets the characteristics of the current transaction.When to use transactions and why
Good to use when making any updates, insertions, or deletions to a database.
Help us deal with crashes, failures, data consistency, and error handling.
Atomicity
is another feature that is a benefit of transactions.
Transaction properties: ACID
ACID
(Atomic, Consistent, Isolated, and Durable)Atomicity
: All changes to data are performed as if they are a single operation.
Consistency
: Data is in a consistent start when a transaction starts and ends.
Isolation
: Intermediate state of a transaction is invisible to othe rtransactioned, they appear to be serialized.
Durable
: After a transaction successfully completes, changes to data persists and are not undone even in system failure.
Banking transaction example
BEGIN;
UPDATE accounts SET balance = balance - 100.00
WHERE name = 'Alice';
UPDATE branches SET balance = balance - 100.00
WHERE name = (SELECT branch_name FROM accounts WHERE name = 'Alice');
UPDATE accounts SET balance = balance + 100.00
WHERE name = 'Bob';
UPDATE branches SET balance = balance + 100.00
WHERE name = (SELECT branch_name FROM accounts WHERE name = 'Bob');
COMMIT;
Joins vs. Subqueries What is a JOIN?
Inner Join
: Returns results containing rows in the left table that match rows in the right table.Left Join
: Returns a set of results containing all rows from the left table with the matching rows from the right table. If there is no match, the right side will have null values.Right Join
: Returns a set of results containing all rows from the right table with the matching rows from the left table. If there is no match, the left side will have null values.Full Outer Join
: Returns a set of results containing all rows from both the left and right tables, with matching rows from both sides where avail. If there is no match the missing side contains null values.Self-Join
: Query in which a table is joined to itslef, useful for comparing values in a column of rows within the same table.What is a subquery?
postgres=# SELECT * FROM puppies;
id | name | age_yrs | breed_id | weight_lbs | microchipped
----+----------+---------+----------+------------+--------------
1 | Cooper | 1.0 | 8 | 18 | t
2 | Indie | 0.5 | 9 | 13 | t
3 | Kota | 0.7 | 1 | 26 | f
4 | Zoe | 0.8 | 6 | 32 | t
5 | Charley | 1.5 | 2 | 25 | f
6 | Ladybird | 0.6 | 7 | 20 | t
7 | Callie | 0.9 | 4 | 16 | f
8 | Jaxson | 0.4 | 3 | 19 | t
9 | Leinni | 1.0 | 8 | 25 | t
10 | Max | 1.6 | 5 | 65 | f
(10 rows)
SELECT
puppies.name,
age_yrs,
breeds.name
FROM
puppies
INNER JOIN
breeds ON (breeds.id = puppies.breed_id)
WHERE
age_yrs > (
SELECT
AVG (age_yrs)
FROM
puppies
);
Multiple-row subquery
SELECT *
FROM friends
INNER JOIN puppies ON (puppies.puppy_id = friends.puppy_id)
WHERE
puppies.age_yrs < 0.6;
Should I use a JOIN or a subquery?
Joins are better when you want to combine rows from one or more tables based on a match condition.
Subqueries work great when you’re only returning a single value.
When returning multiple rows, you could go with either subQ’s or joins.
PostgreSQL Index
: Works similarly like an index in the back of a book, they provide special lookup tables to let us make faster database queries.
The Syntax for creating index is as follows:
CREATE INDEX index_name ON table_name (column_name);
CREATE INDEX addresses_phone_index ON addresses (phone_number);
DROP INDEX addresses_phone_index;
Types of indexes
There are several types of indexes use in Postgres: B-tree, Hash, GiST, and GIN.
Single-Column Indexes
Uses only one table column.
CREATE INDEX addresses_phone_index ON addresses (phone_number);
Multiple-Column Indexes
Uses more than one table column.
CREATE INDEX idx_addresses_city_post_code ON table_name (city_id, postal_code);
Partial Indexes
Uses subset of a table defined by a conditional expression.
CREATE INDEX addresses_phone_index ON addresses (phone_number) WHERE (city_id = 2);
When to use an index
Overall DB indexes are known to enhance performance when performing queries, however there are certain situations where it is not recommended:
Using EXPLAIN and ANALYZE keywords can give us performance data of our queries.
EXPLAIN ANALYZE SELECT *
FROM tenk1 t1, tenk2 t2
WHERE t1.unique1 < 100 AND t1.unique2 = t2.unique2;
QUERY PLAN
----------------------------------------------------------------------------------------------------------------------------------
Nested Loop (cost=2.37..553.11 rows=106 width=488) (actual time=1.392..12.700 rows=100 loops=1)
-> Bitmap Heap Scan on tenk1 t1 (cost=2.37..232.35 rows=106 width=244) (actual time=0.878..2.367 rows=100 loops=1)
Recheck Cond: (unique1 < 100)
-> Bitmap Index Scan on tenk1_unique1 (cost=0.00..2.37 rows=106 width=0) (actual time=0.546..0.546 rows=100 loops=1)
Index Cond: (unique1 < 100)
-> Index Scan using tenk2_unique2 on tenk2 t2 (cost=0.00..3.01 rows=1 width=244) (actual time=0.067..0.078 rows=1 loops=100)
Index Cond: (unique2 = t1.unique2)
Total runtime: 14.452 ms
Node-Postgres And Prepared Statements
Connecting
const { Pool } = require("pg");
const pool = new Pool({
user: "application_user",
password: "iy7qTEcZ",
});
const results = await pool.query(`
SELECT id, name, age_yrs
FROM puppies;
`);
console.log(results);
Prepared Statement
in inside an array.
await pool.query(`
INSERT INTO puppies (name, age_yrs, breed, weight_lbs, microchipped)
VALUES ($1, $2, $3, $4, $5);
`, [name, age, breedName, weight, isMicrochipped]);
const { Pool } = require("pg");
const allPuppiesSql = `
SELECT id, name, age_yrs, breed, weight_lbs, microchipped
FROM puppies;
`;
const pool = new Pool({
database: "«database name»",
});
async function selectAllPuppies() {
const results = await pool.query(allPuppiesSql);
console.log(results.rows);
pool.end();
}
const id = Number.parseInt(process.argv[2]);
selectOnePuppy(id);


SIL is a fully functional, imperative, Turing-Complete language. It presented an opportunity to consider how humans express ideas, and how both natural languages and programming are tools we use to do so. Worked on for a few years (on and off), and was provided with an excellent foundation in Computer Science. Appreciated the importance of both collaboration and foundational design principles. Worked alongside members of the recreational programming community (developers of other esoteric languages) in order to refactor the first iteration of the interpreter to avoid computationally expensive String operations.
S.I.D.E is a community project that goes hand-in-hand with SIL. Worked alongside a couple of other developers to create this piece of software that provides support to developers of not only SIL, but of other esoteric languages which because of their strange nature, lack development tools. Above is a screenshot of a classic game being developed in my personal language within the IDE.


Test the List RDF API
Request data
Accept header
VClass URI
Response data
Response code is
000
MIME type is
No type
Text is:
No text


JS Bin isn't available right now. Someone should be working on it, and you can check the current status on status.jsbin.com, but do feel free to ping @js_bin.
If you want to add details please add it to the issues page and add any additional information you can to help diagnose this atrocity.


Startup vs Established Company – how I went about choosing my first job after Master's
Although the meme illustrates my feelings exactly, I felt very fortunate to receive multiple job offers in the middle of the pandemic. This blog post elaborates one of the difficult decisions I had to make in my job search and how I went about it – choosing between a startup and a big company. In my case, it was the Machine Learning Engineer position at one of the few top tech companies and SnorkelAI.
If you have a similar decision to make, or are thinking about whether to start your career with a startup or an established company, this might help!
What I wanted from my first job
Before meditating on the details, I wanted to set my high-level priorities straight (listed in decreasing order here). These may vary for different people and for even the same person at different stages in life. There is no right or wrong here. So, if you are in a similar position then listing down your priorities is a good place to start.
-
Immigration
I am an international student and need an H-1B visa to be sponsored by the employer to continue my employment in the US.
-
Maximizing my learning experience
For my first job after master’s, my motivation is to maximize my learning experience and build transferrable skills.
-
Stability of the company
Now, in order to maximize my learning experience, it is important for me that I do not stress over losing my job or be part of a sinking ship (more importantly due to point #1).
-
Building a network
Working with great people is more important to me than the exact details of the product that the company might be selling. I wish to build a professional network of intelligent and humble people as well as be friends with people I would be spending majority of my days with.
-
Good compensation
While it is understandable that in general startups might not have the resources to pay employees at par with big companies, I did not want to compromise too much on the compensation (ref international student with loans to pay).
Who helped me make the decision
Once you have the priorities listed, you can start making a list of pros and cons. This is how I went about searching for datapoints my poor brain could not have thought of.
-
World Wide Web
A lot has been written about the age-old debate of working at a startup vs a big company. I found Paul Graham’s essays insightful and pro-startups.
-
HackerNews
I turned to not-so-recent discussions on the Orange Website to get public opinion on the topic. I went through lots of comments, since every person’s experience is different. I just wanted to ensure that I am not engulfed in either failure or survivorship bias.
-
People I know in real life
My friends from my first job at Microsoft, friends at Columbia, friends who are working in the US, friends who have worked at startups. My parents play a significant role in my life, so their opinion is of great importance to me.
-
People I know in the virtual world
I have made a few connections through LinkedIn. People who do not know me might be able to provide an unbiased viewpoint.
One thing to remember here is that you should assume that everyone speaks from their own bias, as per their own experiences. Hence, diversifying the kind of people you talk to is important.
What may help you make the decision
Listing here (I do love lists a lot) the gist of the information I gathered -
-
Consider stock options of the startup as $0 before comparing compensation of the offers.
90% of the startups tank, things go wrong all the time. I did not want to count what is essentially a bet as a part of my compensation. Typical high risk vs high reward situation. Needless to say, taxes (Seattle vs California), cost of living and benefits need to be taken into account before comparing.
-
Talking to founders of the startup is of utmost importance
These are the people who decide the future of the company, influence culture and help you grow. A startup with bad leadership is a nightmare.
I remember what Chip Huyen said in a meeting with me – “Working for a startup means you take a bet on those people”. -
How much you care about the brand of the company
It is no question that the world judges you by a brand name – these days big brands offer money, safety and interesting work. However, if you are willing to forego the brand name for a few years to improve your skills, startups might be the place for you.
I ended up choosing Snorkel. It was a very difficult decision for me, particularly because I admire the work culture at the big company. If we look at it from the perspective of Reinforcement Learning – as a question of exploration vs exploitation – I wanted to maximize exploration in the early stages of my career.
Closing Notes
A few miscellaneous points (oof, another list!) that I wanted to mention -
-
Privilege
How privileged are you? I am fortunate to have a loving family who has my back and does not depend on me for bread and butter.
-
Personal brand
If you have a strong personal brand already - you have a lifeboat, and a sinking ship does not affect you as much. I might have to work on doing that now since I haven’t established myself in the industry yet.
-
We need more women!
While I have been feeling and emphasizing this throughout my (short) career, we need more women in tech! While trying to find people to talk to, I had only a couple of women to look up to for guidance. It matters more than we would like to admit.
-
It’s only a job
I got too involved in the decision-making process, thinking as if my life depended on this decision. Don’t make my mistake, either job won’t be the end of the world!


Welcome to Za’atari, the temporary home for tens of thousands of Syrian refugees. Just over a year ago it was a stretch of barren desert. Now it’s a bustling metropolis with bakeries, hardware stores and rotisserie chicken stands.
This documentary series opens an unprecedented window into the camp, revealing the everyday dramas of delivering water, keeping the lights on and moving 200 families a day from tents into pre-fabs. In 15 fly-on-the-wall episodes, we follow frontline aid workers as they strive to support and sustain the residents of this remarkable makeshift city.
Hop the fence into the tangle of good intentions, logistical challenges and human emotions of Za’atari refugee camp.


Implements methods for identifying linear and nonlinear marker combinations that maximizes the Area Under the AUC Curve (AUC).
| Version: | 2018.1-24 |
| Depends: | R (≥ 3.1.3), kyotil |
| Suggests: | RUnit, mvtnorm |
| Published: | 2018-01-25 |
| Author: | Youyi Fong [cre], Krisztian Sebestyen [aut], Shuxin Yin [aut], Ying Huang [aut], Alexandros Karatzoglou [ctb], Alex Smola [ctb], Kurt Hornik [ctb] |
| Maintainer: | Youyi Fong <youyifong at gmail.com> |
| License: | GPL-2 |
| NeedsCompilation: | yes |
| Materials: | ChangeLog |
| CRAN checks: | aucm results |
| Reference manual: | aucm.pdf |
| Package source: | aucm_2018.1-24.tar.gz |
| Windows binaries: | r-devel: aucm_2018.1-24.zip, r-release: aucm_2018.1-24.zip, r-oldrel: aucm_2018.1-24.zip |
| OS X binaries: | r-release: aucm_2018.1-24.tgz, r-oldrel: aucm_2018.1-24.tgz |
| Old sources: | aucm archive |
| Reverse imports: | maxadjAUC, maxTPR |
Please use the canonical form https://CRAN.R-project.org/package=aucm to link to this page.


Green
Blue
Pink
Unfolding
Unfolding
Revealing
Meep Meep
Hear me roar.


We are a group of enthusiastic individuals dedicated towards building a safe environment for upcoming pre-IB students. We’ve organized the LEAP (Leaders Engaged: Achieving Potential) conference for both mentors and delegates to build connections, share advice and learn. The theme for this year’s conference is space.
LEAP is September 12, 2017. Registration begins at 7:45 AM.
We like rockets!


We are reviewing the suggestions at regular time intervals,
If your entry passes minimum criteria, we will contact you to dicuss how to
consolidate and approve your suggestion.
If the governance board deems your suggestion inappropriate, they may
grant you with a rejection letter - or your wish is silently absorbed into the cloud.
Click
User Default Parameters to get an overview of
registered parameters and requested parameters.
Click
register Field to register a new field.


Errors and Warnings¶
GalSim uses some custom Exception and Warning classes when it finds some exceptional occurrence:
GalSimError
This is the base class for all other GalSim exceptions. So you can catch this exception if you want to catch just the exceptions raised by GalSim. It is roughly analogous to a
RuntimeError
.GalSimValueError
This indicates that you provided an invalid value for an argument to a function. It includes attributes that tell you about what value you provided and sometimes about the allowed values.
GalSimKeyError
This indicates that you tried to access some dict-like object (e.g.
FitsHeader
orCatalog
) with an invalid key.GalSimIndexError
This indicates that you tried to access some list-like object (e.g.
RealGalaxyCatalog
) with an invalid index.GalSimRangeError
This indicates that you provided a value that is outside of the allowed range. It includes attributes indicating what value you provided and what the allowed range is.
GalSimBoundsError
This indicates that you used a
Position
outside of the allowedBounds
. It is basically aGalSimRangeError
, but in two dimensions. It includes attributes that tell you thePosition
and the allowedBounds
.GalSimUndefinedBoundsError
This indicates that you are trying to use an undefined
Bounds
instance in a context where it must be defined.GalSimImmutableError
This indicates that you tried to change an immutable
Image
in some way.GalSimIncompatibleValuesError
This indicates that two or more values that you provided to some function are not compatible with each other. It includes attributes telling you the two values that are incompatible.
GalSimSEDError
This indicates that you tried to use an SED in a context where it is required to be either spectral or dimensionless, and you provided the other kind.
GalSimHSMError
This indicates that the HSM algorithm raised some kind of exception.
GalSimFFTSizeError
This indicates that something you did requires a very large FFT, in particular one that is larger than the relevant
gsparams.maximum_fft_size
parameter. It includes attributes that tell you both the size that was required and how much memory it would have used, so you can decide whether you want to adjust some parameters of your simulation or to adjust the object’sGSParams
options.GalSimConfigError
This indicates that there was some kind of failure processing a configuration file.
GalSimConfigValueError
This indicates that some parameter in your configuration file is an invalid value.
GalSimNotImplementedError
This indicates that you tried to do something that is not implemented currently.
GalSimWarning
This indicates that you did something that is not necessarily an error, but we think it is likely that you didn’t do something right.
GalSimDeprecationWarning
This indicates that you are using functionality that is currently deprecated. Your code will generally continue to work until the next major upgrade, but you are encouraged to update your code to the new syntax.
-
class
galsim.
GalSimValueError
(message, value, allowed_values=None)[source]¶ Bases:
galsim.errors.GalSimError
,ValueError
A GalSim-specific exception class indicating that some user-input value is invalid.
- Attributes
value – The invalid value
allowed_values – A list of allowed values if appropriate (may be None)
-
class
galsim.
GalSimKeyError
(message, key)[source]¶ Bases:
galsim.errors.GalSimError
,KeyError
A GalSim-specific exception class indicating an attempt to access a dict-like object with an invalid key.
- Attributes
key – The invalid key
-
class
galsim.
GalSimIndexError
(message, index)[source]¶ Bases:
galsim.errors.GalSimError
,IndexError
A GalSim-specific exception class indicating an attempt to access a list-like object with an invalid index.
- Attributes
index – The invalid index
-
class
galsim.
GalSimRangeError
(message, value, min, max=None)[source]¶ Bases:
galsim.errors.GalSimError
,ValueError
A GalSim-specific exception class indicating that some user-input value is outside of the allowed range of values.
- Attributes
value – The invalid value
min – The minimum allowed value (may be None)
max – The maximum allowed value (may be None)
-
class
galsim.
GalSimBoundsError
(message, pos, bounds)[source]¶ Bases:
galsim.errors.GalSimError
,ValueError
A GalSim-specific exception class indicating that some user-input position is outside of the allowed bounds.
- Attributes
pos – The invalid position
bounds – The bounds in which it was expected to fall
-
class
galsim.
GalSimUndefinedBoundsError
[source]¶ Bases:
galsim.errors.GalSimError
A GalSim-specific exception class indicating an attempt to access the extent of a
Bounds
instance that has not yet been defined.
-
class
galsim.
GalSimImmutableError
(message, image)[source]¶ Bases:
galsim.errors.GalSimError
A GalSim-specific exception class indicating an attempt to modify an immutable image.
- Attributes
image – The image that the user attempted to modify
-
class
galsim.
GalSimIncompatibleValuesError
(message, values={}, **kwargs)[source]¶ Bases:
galsim.errors.GalSimError
,ValueError
,TypeError
A GalSim-specific exception class indicating that 2 or more user-input values are incompatible as given.
- Attributes
values – A dict of {name : value} giving the values that in combination are invalid.
-
class
galsim.
GalSimSEDError
(message, sed)[source]¶ Bases:
galsim.errors.GalSimError
,TypeError
A GalSim-specific exception class indicating an attempt to do something invalid for the kind of
SED
that is present. Typically involving a dimensionlessSED
where a spectralSED
is required (or vice versa).- Attributes
sed – The invalid
SED
-
class
galsim.
GalSimHSMError
[source]¶ Bases:
galsim.errors.GalSimError
A GalSim-specific exception class indicating some kind of failure of the HSM algorithms
-
class
galsim.
GalSimFFTSizeError
(message, size)[source]¶ Bases:
galsim.errors.GalSimError
A GalSim-specific exception class indicating that a requested FFT exceeds the relevant maximum_fft_size.
- Attributes
size – The size that was deemed too large
mem – The estimated memory that would be required (in GB) for the FFT.
-
class
galsim.
GalSimConfigError
[source]¶ Bases:
galsim.errors.GalSimError
,ValueError
A GalSim-specific exception class indicating some kind of failure processing a configuration file.
-
class
galsim.
GalSimConfigValueError
(message, value, allowed_values=None)[source]¶ Bases:
galsim.errors.GalSimValueError
,galsim.errors.GalSimConfigError
A GalSim-specific exception class indicating that a config entry has an invalid value.
- Attributes
value – The invalid value
allowed_values – A list of allowed values if appropriate (may be None)
-
class
galsim.
GalSimNotImplementedError
[source]¶ Bases:
galsim.errors.GalSimError
,NotImplementedError
A GalSim-specific exception class indicating that the feature being attempted is not currently implemented.
If this is a feature you feel you need, please open an issue about it at
Even better, feel free to offer to contribute code to implement the feature.


User Experience
Human-Computer Interaction
Design for Web & Print
Business
Spanish
Graphic Design
Social Sciences
UX Research
UX Design
Information Architecture
UX Design
UX Research
Usability Testing
UX Design
Interaction Design
Information Architecture
MS Office
Adobe CC
Sketch, Balsamiq
HTML
CSS
Bootstrap
English - Native
Spanish - Intermediate
German - Novice
Platoon Sergeant
Base Defense Supervisor
Squad Navigator
Strategic Planning
Group Instruction
Logistics Management
Army Basic Training
Advanced First Aid
Criminal Justice
I have been traveling since before I can remember. My parents instilled in me a love of exploring and experiencing the world. I have traveled to 43 US States (lived in 7 of them) and 14 countries (lived in 3 of them)! Now that I have my own family, we live for getting out and seeing everything the world has to offer!
One of the advantages of growing up and travelling during the Digital Revolution, has been the ability to use so many forms of technology in so many places. I received my first film camera when I was 5 years old and haven't stopped taking pictures since then. My main subjects are landscapes and architecture. All pictures on this site are my own.
I have always been a fan of all genres of music and have been collecting albums since I was a young child. Once I had a respectable collection, I began making mixtapes for friends and playing mixes at school events and house parties. Since then I have gone all digital and have been DJing weddings, bars, and other events for more than a decade.
Beginning with mission trips in high school, to remote, impoverished areas of Latin America, helping those less fortunate than myself is in my core. Since then I have done peacekeeping and humanitarian aid missions with the US Army, as well as worked as a mentor in a wide array of settings. One of my drives in the UX field is understanding the needs and helping those in underserved and less fortunate areas.


Sampling
Posted: 2016-05-17 , Modified: 2016-05-17
Tags: sampling
Posted: 2016-05-17 , Modified: 2016-05-17
Tags: sampling
A TOC for the sampling faction of optimization, including
From a TOC viewpoint:
See two cultures of optimization.
This is a catch-all term for any method for sampling by running a Markov chain on the state space.
Formally, running MCMC for a distribution \(\pi\) on \(\Om\) means running a Markov chain \(X_t\) on \(\Om\) with stationary distribution \(\pi\).
Suppose * \(\Om\) has a graph structure where at each vertex we can easily choose a neighbor. (Ex. for valid colorings, it is easy to tweak a valid coloring to get another one, but it is hard to simply choose a random coloring.) * We want to sample a distribution on \(\Om\), but all we know is a function \(f\) such that \(P(x) \prop f(x)\). Equivalently, we only know the ratios between probabilities.
Can we sample from \(\Om\)? Yes, using Metropolis-Hastings. We already have a way to choose a neighbor randomly. However, running this Markov chain may give the wrong stationary distribution, so we sometimes “reject” a proposed move, using what we know about the desired distribution.
Definition. Consider a Markov chain where the probability of transitioning from \(x\) to \(y\) is \(\Psi(x,y)\). The Metropolis chain corresponding to \(\Psi\) is \[P(x,y) = \begin{cases} \Psi(x,y) \ba{\fc{\pi(y)\Psi(y,x)}{\pi(x) \Psi(x,y)} \wedge 1},&\text{if } y\ne x\\ 1- \sum_{z:z\ne x} \Psi(x,z) \ba{\fc{\pi(z)\Psi(z,x)}{\pi(x)\Psi(x,z)}\wedge 1},&\text{if }y=x. \end{cases}.\] In particular, if \(\Psi\) is symmetric, then it cancels out in the ratio.
Theorem. The stationary distribution of this Metropolis chain is \(\pi\).
Proof/derivation. At \(x\), we propose to move to \(y\) with probability \(\Psi(x,y)\). For the new chain, let’s accept this move with probability \(a(x,y)\), and reject with probability \(1-a(x,y)\) and stay at the current location. Then \(P(x,y) = \Psi(x,y) a(x,y)\) for \(y\ne x\). For \(\pi\) to be stationary, we want detailed balance, \[\begin{align} \pi(x) \Psi(x,y) a(x,y) &= \pi(y) \Psi(y,x) a(y,x)\\ \fc{ a(x,y)}{a(y,x)} &= \fc{\pi(y) \Psi(y,x)}{\pi(x) \Psi(x,y)}. \end{align}\]We want \(a\) to be as large as possible for fast mixing, so choose \(a\) as defined.
Examples: coloring, optimization


As one of 4 children, most of our travels when I was a kid were throughout the US in our family's minivan. We took innumerable trips to Buffalo to see my dad's side of the family and typically a ski trip every year to New Mexico. These ski trips were where I gained an appreciation for Marty Robbins and Johnny Cash.
After graduating college, I have had the opportunity to travel outside the US. Some of my favorite trips have been to South America for skiing, multiple places in the Caribbean for SCUBA diving, and a work trip to Istanbul and Cairo. Unfortunately we could not see many sights in Cairo due to security reasons but Istanbul was one of the most remarkable cities I have ever seen. The history, culture, food, and its place as the crossroads between Europe and Asia makes it one of the most unique and fascinating places on Earth.
I recently returned from Australia for my cousin's wedding. We spent a few days in Perth for the wedding, then took a trip up to a small town on the Ningaloo Reef called Exmouth, where the bride's brother lives and owns a brewery. We spent a few days on the beach, I took a ride on a microlight glider, went SCUBA diving, and enjoyed a number of delicious cold beers brewed by my new cousin-in-law!
After jaunting around the west coast we went to Sydney for a few days to explore the Harbour City. It was an unbelievable time, my favorite activities were hiking to the top of the Sydney Harbour Bridge and touring the Sydney Opera House. Both structures are awe inspiring engineering and architectural marvels, which are a testament to the ingenuity and unlimited potential of the human spirit.
Overall it was one of the best trips I've ever been on. I am so glad I had the opportunity to make it to Australia and explore the other side of the world with friends and family. When I first stepped off our 17 hour flight to begin our trip to Australia I thought there was absolutely no way I was going to do that again. However, after spending 2 weeks in their magnificent country, I can't wait to get back & ask some Australians "how ya goin?"


mgstat_lite
G = mgstat_lite(svmodel, fnames, parameter, value)
G = mgstat_lite(svmodel, xvmodel, fnames, parameter, value)
G = mgstat_lite(svmodel, fnames, parameter, value)
|
input/ output |
variable name | dimensions | class | description |
| input | svmodel | 1x1 | cell |
Cell array with parameters of the semivariogram model. Format is: svmodel{1,1}.c0 % nugget svmodel{1,1}.c1 % c1 svmodel{1,1}.type % type of semivariogram model: 'Exp', 'Gau', or 'Sph' svmodel{1,1}.range % range svmodel{1,1}.longname % long identifier svmodel{1,1}.shortname % short identifier used in gstat.exe command file (should be one word) |
| input | fnames | 1x1 | struct |
structure array with filenames. Format is: fnames.data{1} % filename of data file fnames.pred % filename of prediction locations file fnames.cmd % filename of gstat.exe command file fnames.out % filename of file to which the output is written |
| input | parameter | 1xN | char | Char array with one of the permissible parameter names (see table below). The value of "parameter" is specified in variable "value" immediately following "parameter". Multiple parameter/value pairs can be used. See examples below. |
| input | value | depends on "parameter" | depends on "parameter" | "value" determines the value of variable "parameter" immediately preceding it. |
| output | G | NxM | numeric | Output generated by gstat.exe. |
Writes the gstat command file, runs gstat.exe with it, and reads the results back into the MATLAB workspace.
G = mgstat_lite(svmodel, xvmodel, fnames, parameter, value)
|
input/ output |
variable name | dimensions | class | description |
| input | svmodel | 2x1 | cell |
Cell array with parameters of the semivariogram models. Format is: svmodel{α,1}.c0 % nugget svmodel{α,1}.c1 % c1 svmodel{α,1}.type % type of semivariogram model: 'Exp', 'Gau', or 'Sph' svmodel{α,1}.range % range svmodel{α,1}.longname % long identifier svmodel{α,1}.shortname % short identifier used in gstat.exe command file (should be one word) (Where α is either 1 or 2) |
| input | xvmodel | 1x1 | cell |
Cell array with parameters of the cross-variogram model. Format is: xvmodel{1,1}.c0 % nugget xvmodel{1,1}.c1 % c1 xvmodel{1,1}.type % type of semivariogram model: 'Exp', 'Gau', etc. xvmodel{1,1}.range % range xvmodel{1,1}.longname % long identifier xvmodel{1,1}.shortname % short identifier used in gstat.exe command file (should be one word) |
| input | fnames | 1x1 | struct |
Structure array with filenames. Format is: fnames.data{1} % filename of data file variable 1 fnames.data{2} % filename of data file variable 2 fnames.pred % filename of prediction locations file fnames.cmd % filename of gstat.exe command file fnames.out % filename of file to which the output is written |
| input | parameter | 1xN | char |
Char array with one of the permissible parameter names (see table below). The value of "parameter" is specified in variable "value" immediately following "parameter". Multiple parameter/value pairs can be used. See examples below.
|
| input | value | depends on "parameter" | depends on "parameter" |
"value" determines the value of variable "parameter" immediately preceding it.
|
| output | G | NxM | numeric |
Output generated by gstat.exe.
|
Writes the gstat command file with the semivariograms specified in "svmodel" and the cross-variogram specified in "xvmodel", runs gstat.exe with it, and reads the results back into the MATLAB workspace.
| Parameter name | Description |
| 'avgidentical' | Averages measurements at the same location. |
| 'cmdcomments' | If 'cmdcomments' is set to 'on', some commentary lines are added to the *.cmd files to clarify the meaning of that part of the file. |
| 'dims' | Number of dimensions of location (for example, 'dims' is 2 for [x,y] data) |
| 'max' | Sets the maximum number of observations to use for a prediction (see figure). |
| 'min' | Sets the minimum number of observations to use for a prediction. If 'radius' is also specified and less than 'min' observation points are present within the search radius, a missing value is returned. |
| 'misval' | Missing value character(s) |
| 'mode' | 'mode' can be set to 'p', 'cs' or 'us' to indicate that a prediction, conditional simulation or unconditional simulation is wanted. Default is 'p'. |
| 'pop_mean' | Sets the population mean used in simple kriging and unconditional simulation |
| 'radius' | Sets the search radius within which observations are used for spatial prediction (see figure). |
| 'showcmdfile' | If 'showcmdfile' is set to 'on', the command file is shown in the MATLAB command window after it has been generated. |
| 'xblocksize' | Sets the blocksize in x-direction (to be used with block kriging) |
| 'yblocksize' | Sets the blocksize in y-direction (to be used with block kriging) |
| 'zblocksize' | Sets the blocksize in z-direction (to be used with block kriging) |
Examples of how the function can be used:
G = mgstat_lite(svmodel,fnames, 'dims', 2,'radius',200)
G = mgstat_lite(svmodel,xvmodel,fnames, 'dims', 2,'min',20,'avgidentical','on')
See also:
| contents | mGstat-lite toolbox contents |


6.21. Quantile Digest Functions
Presto implements the approx_percentile
function with the quantile digest
data structure. The underlying data structure, qdigest,
is exposed as a data type in Presto, and can be created, queried and stored
separately from approx_percentile
.
Data Structures
A quantile digest is a data sketch which stores approximate percentile
information. The presto type for this data structure is called qdigest
,
and it takes a parameter which must be one of bigint
, double
or
real
which represent the set of numbers that may be ingested by the
qdigest
. They may be merged without losing precision, and for storage
and retrieval they may be cast to/from VARBINARY
.
Functions
-
merge
(qdigest) → qdigest Merges all input
qdigest
s into a singleqdigest
.
-
value_at_quantile
(qdigest(T), quantile) → T Returns the approximate percentile values from the quantile digest given the number
quantile
between 0 and 1.
-
values_at_quantiles
(qdigest(T), quantiles) → T Returns the approximate percentile values as an array given the input quantile digest and array of values between 0 and 1 which represent the quantiles to return.
-
qdigest_agg
(x) → qdigest<[same as x]> Returns the
qdigest
which is composed of all input values ofx
.
-
qdigest_agg
(x, w) → qdigest<[same as x]> Returns the
qdigest
which is composed of all input values ofx
using the per-item weightw
.
-
qdigest_agg
(x, w, accuracy) → qdigest<[same as x]> Returns the
qdigest
which is composed of all input values ofx
using the per-item weightw
and maximum error ofaccuracy
.accuracy
must be a value greater than zero and less than one, and it must be constant for all input rows.


BettingCentreInterface
public class BettingCentre extends java.lang.Object implements BettingCentreInterface
Spectator
s place their bets on the winning horse. As they come here
to place their bets, they also come here to collect his (or hers) further gains, if such a
scenario applies on a given race.| Modifier and Type | Field | Description |
|---|---|---|
private boolean |
allWinnersAreNotOnBettingCentre |
Condition variable for noticing when Spectators (winner ones) are at the Betting Centre or not.
|
private Bet[] |
bets |
Internal structure of bets.
|
private java.util.Queue<java.lang.Integer> |
bettingQueue |
The waiting queue to contact the
Broker on its tasks. |
private boolean |
brokerDoesNotAllowToProceedToHaveIWon |
Condition variable for noticing when Spectators must wait or not, to see if they've won.
|
private boolean |
brokerHaveNotAcceptedTheBet |
Condition variable for noticing when Entities have not accepted the bets yet.
|
private int[] |
horsesAbilities |
Array with the pairs Horse/Jockey abilities
|
private int[] |
horsesOdds |
Array with the pairs Horse/Jockey odds.
|
private static BettingCentre |
instance |
The created instance of this class
|
private int |
moneyOnSafe |
Internal attribute of the Betting Centre which represents the amount of money which we have on our account, to
perform the bets from the
Spectator 's. |
private int |
numberOfHorses |
Internal knowledge of the number of horses which are competing on track.
|
private int |
numberOfSpectators |
Internal knowledge of the number of spectators which are attendind and betting on the races.
|
private GeneralInformationRepositoryStub |
repository |
The
GeneralInformationRepository instance where all this region's actions will be reported. |
private int[] |
winners |
Array of
Spectator 's identification numbers to whom the betting money should go. |
private int |
winnersArrived |
Condition variable for noticing the number of winning Spectators who arrived at this Betting Centre.
|
private boolean |
winnersMustNotReceiveTheirMoney |
Condition variable for noticing when Spectators must receive their money or not, if they have won the bet.
|
| Modifier | Constructor | Description |
|---|---|---|
private |
BettingCentre(int numberOfHorses,
int numberOfSpectators) |
Creates a Betting Centre.
|
| Modifier and Type | Method | Description |
|---|---|---|
void |
acceptTheBets() |
Changes the state of the Entities to Waiting for Bets (
WFB ) and waits till the last
placeABet(int, int, int) is done by a Spectator. |
boolean |
areThereAnyWinners(int winner) |
Verification of bet's winners.
|
private void |
evaluateOdds() |
Evaluates the odds of all the pair Horse/Jockey.
|
static BettingCentre |
getInstance() |
Get a singleton instance of a Betting Centre.
|
int |
getNumberOfHorses() |
Returns number of horses that the
BettingCentre has knowledge of. |
int |
goCollectTheGains() |
Changes the Spectator's state to Collecting the Gains (
CTG ) and lets a spectator collect all
his (or hers) gains after being placed a bet and a race had ended. |
boolean |
haveIWon(int spectatorId) |
Verification if a given Spectator identified with
spectatorId has won his (or hers) bet. |
void |
honourTheBets() |
Changes the state of the Entities to Settling Accounts (
SA ) and waits till the last
goCollectTheGains() is done by a Spectator. |
int |
placeABet(int spectator,
int bet,
int horse) |
Changes the Spectator's state to Placing a Bet (
PAB ) and lets a Spectator place a bet
onto the BettingCentre . |
void |
setAbility(int horse,
int ability) |
Sets the ability of a pair Horse/Jockey on a internal structure in order to evaluate its odds later.
|
private int |
sumOf(int[] array) |
Retrieves the sum of all elements of an array
array . |
private java.util.Queue<java.lang.Integer> bettingQueue
Broker
on its tasks. This could be used while waiting to a Spectator
place a bet, or while wainting to a Spectator
go collect his (or hers) gains. This structure is granted by a
LinkedBlockingQueue
Java class, which performs a blocking queue under the logic of a linked list.private Bet[] bets
private int[] winners
Spectator
's identification numbers to whom the betting money should go. Its length represents the
number of winners and its content is the set of Spectator
's IDs of who won the bet.private int numberOfHorses
private int numberOfSpectators
private int moneyOnSafe
Spectator
's.private int[] horsesOdds
private int[] horsesAbilities
private boolean brokerHaveNotAcceptedTheBet
placeABet(int, int, int)
method.private boolean winnersMustNotReceiveTheirMoney
goCollectTheGains()
method.private boolean allWinnersAreNotOnBettingCentre
honourTheBets()
method and it is reset on the
acceptTheBets()
method.private boolean brokerDoesNotAllowToProceedToHaveIWon
haveIWon(int)
method and it is reset on the
acceptTheBets()
method.private int winnersArrived
goCollectTheGains()
and it is reset on the
areThereAnyWinners(int)
method.private GeneralInformationRepositoryStub repository
GeneralInformationRepository
instance where all this region's actions will be reported.private static BettingCentre instance
private BettingCentre(int numberOfHorses, int numberOfSpectators)
numberOfHorses
- the number of pairs Horse/Jockeys which will compete against one another.numberOfSpectators
- the number of Spectators which will attend the events.public static BettingCentre getInstance()
public void acceptTheBets() throws java.lang.InterruptedException
WFB
) and waits till the last
placeABet(int, int, int)
is done by a Spectator.
acceptTheBets
in interface BettingCentreInterface
java.lang.InterruptedException
- if the wait() is interrupted.public void honourTheBets() throws java.lang.InterruptedException
SA
) and waits till the last
goCollectTheGains()
is done by a Spectator.
honourTheBets
in interface BettingCentreInterface
java.lang.InterruptedException
- if the wait() is interrupted.public int placeABet(int spectator, int bet, int horse) throws java.lang.InterruptedException
PAB
) and lets a Spectator
place a bet
onto the BettingCentre
.
bet
, made by a specific spectator
is done respecting a proper
horse
, which represents a pair Horse/Jockey.
placeABet
in interface BettingCentreInterface
spectator
- an identification of a Spectator
which represents a better.bet
- an amount of money represented as an integer, which the spectator
wants to bet.horse
- the identification of the pair Horse/Jockey in which the spectator
wants to bet.Broker
to place the bet.java.lang.InterruptedException
- if the wait() is interrupted.public int goCollectTheGains() throws java.lang.InterruptedException
CTG
) and lets a spectator
collect all
his (or hers) gains after being placed a bet and a race had ended.
goCollectTheGains
in interface BettingCentreInterface
spectator
, as an integer.java.lang.InterruptedException
- if the wait() is interrupted.public boolean haveIWon(int spectatorId) throws java.lang.InterruptedException
spectatorId
has won his (or hers) bet.haveIWon
in interface BettingCentreInterface
spectatorId
- identification of Spectator
who has placed a bet earlier and wants to verify if it did
win indeed or not.true
if spectator
has won his (or hers) bet; otherwise, it will return false
.java.lang.InterruptedException
public boolean areThereAnyWinners(int winner)
areThereAnyWinners
in interface BettingCentreInterface
winner
- the identification of the pair Horse/Jockey which have won the race.true
if anybody had won indeed; otherwise it will return false
.public int getNumberOfHorses()
BettingCentre
has knowledge of.getNumberOfHorses
in interface BettingCentreInterface
public void setAbility(int horse, int ability) throws UnknownHorseJockeyException
setAbility
in interface BettingCentreInterface
horse
- the identification of the pair Horse/Jockey.ability
- the ability of the pair Horse/Jockey identified with horse
.UnknownHorseJockeyException
- if the pair Horse/Jockey horse
does not exists.private void evaluateOdds() throws java.lang.InterruptedException
java.lang.InterruptedException
- if the communication channel is busy.private int sumOf(int[] array)
array
.array
- the array with the elements to sum.array
.


Configuration for running specs on a remote Selenium grid Any additional properties, such as "sauce:options" or "bstack:options", will be included in the capabilities object passed through to Selenium Webdriver.
Example
{
"url": "https://hub-cloud.browserstack.com/wd/hub",
"bstack:options": {
"browserVersion": "16",
"os": "OS X",
"osVersion": "Monterey",
"local": "true",
"localIdentifier": "tunnel ID",
"debug": "true",
"userName": "your BrowserStack username",
"accessKey": "your BrowserStack access key"
}
}
Members
url :string
URL of the remote Selenium grid
Type:
- string


{% for review in reviews %}
Username:
{{review.username}}
Started on
{{review.start_date}}
Ended on
{{review.end_date}}
Rate:
{{review.rate}}
Comment:
{{review.comment}}
{% endfor %}


 By /han≠kass’o (L VIII. -28. 8471 and 8472). The people make fire (when they have no tinderbox) using two pieces of stick (from a divided arrow). The tree used for tinder is a dry Doornboom (thorn tree) that lies dead on the ground.
Comments
1) p.8470v: |han≠kass'o experienced this himself: his maternal grandfather (Tsatsi) made fire this way when he had no tinder, 2) p.8472v: all |xam have 'European' tinderboxes according to |han≠kass'o, 3) This story is found in Book VIII-28
Contributors
|han≠kass'o (Klein Jantje) (VIII)
Date
4 June 1879 (started)
Categories
Custom and daily life, Artefact and dress
Keywords
tinder (making fire with two pieces of sticks) , tinder (and tinder-making) , tinder (called ≠kuobbo) , tinder (how people 'twirling kindle fire') , tinder (and the use of Doornboom wood) , tinder (used by the |xam) , tinder (placed in the tinderbox) , tinderbox (making fire with two pieces of sticks when there is no) , tinderbox (and tinder-making) , tinderbox (tinder is kept in) , tinderbox (the European) , tinderbox (all |xam have a European one) , fire (making with two pieces of sticks) , fire (the wood used in making) , fire (and the manner in which the |xam 'twirling kindle fire') , fire (making one using two sticks from an arrow shaft) , fire (the Driedoorn is used to make) , fire (the tinderbox which is used) , fire (and the making of tinder) , fire (making one without tinder) , European tinderbox (making fire) , European tinderbox (tinder–making) , stick (making fire with two pieces of) , stick (and the manner in which people 'twirling kindle fire') , stick (from a divided arrow shaft) , arrow (its shaft is divided into two sticks and used to make fire) , arrow (and the manner in which people 'twirling kindle fire') , wood (used to kindle fire) , wood (Driedoorn, or !nabba, used to kindle fire) , wood (dry Doornboom, or thorn tree, is used for tinder-making) , name (of the thorn–trees used to make tinder and kindling) , name (Driedoorn, or !nabba) , name (Doornboom) , name (tinder called ≠kuobbo)
Story Pages
8471-8473


Spongebob Hangman
Press any key to get started!
Wins:
Current Word:
Number of guesses remaining:
Letters already guessed:


BaltCoGo allows you to quickly report problems or request service online. Complete the form below to create your service request.
If this is an emergency, dial 911.
Thank you for submitting your report. Your tracking number is: {{ reporter.issueId }}.
You will receive an email in a few minutes with information about what happens next. You can also track your status online by entering your tracking number at http://www.baltimorecountymd.gov/followup.
We encountered a problem processing your submission. Our team has been notified and is working to resolve it.


Ezekiel 20:17
Nevertheless mine eye spared them from destroying them, neither did I make an end of them in the wilderness.


GET https://apis.wso2.com/api/am/publisher/v1.0/export/apis
This operation can be used to export information related to a particular API.
apim:api_view
| Type | Name | Description | Schema | Default |
|---|---|---|---|---|
| Query |
query required |
API search query |
String | |
| Query |
limit optional |
Maximum size of resource array to return. |
Integer |
25 |
| Query |
offset optional |
Starting point within the complete list of items qualified. |
Integer |
0 |
| HTTP Code | Description | Schema |
|---|---|---|
200 |
OK. Export Configuration returned. |
file |
404 |
Not Found. Requested API does not exist. |
Error |
406 |
Not Acceptable. The requested media type is not supported |
Error |
412 |
Precondition Failed. The request has not been performed because one of the preconditions is not met. |
Error |


| lesson 44 Speed and comfort |
| People travelling long distances frequently have to decide whether they would prefer to go by land, sea, or air. |
| Hardly anyone can positively enjoy sitting in a train for more than a few hours. |
| Train compartments soon get cramped and stuffy. |
| It is almost impossible to take your mind off the journey. |
| Reading is only a partial solution, for the monotonous rhythm of the wheels clicking on the rails soon lulls you to sleep. |
| During the day, sleep comes in snatches. |
| At night, when you really wish to go to sleep, you rarely manage to do so. |
| If you are lucky enough to get a sleeper, you spend half the night staring at the small blue light in the ceiling, |
| or fumbling to find your ticket for inspection. |
| Inevitably you arrive at your destination almost exhausted. |
| Long car journeys are even less pleasant, for it is quite impossible even to read. |
| On motorways you can, at least, travel fairly safely at high speeds, |
| but more often than not, the greater part of the journey is spent on roads with few service stations and too much traffic. |
| By comparison, ferry trips or cruises offer a great variety of civilized comforts. |
| You can stretch your legs on the spacious decks, play games, meet interesting people and enjoy good food -- always assuming, of course, that the sea is calm. |
| If it is not, and you are likely to get seasick, no form of transport could be worse. |
| Even if you travel in ideal weather, sea journeys take a long time. |
| Relatively few people are prepared to sacrifice holiday time for the pleasure of travlling by sea. |
| Aeroplanes have the reputation of being dangerous and even hardened travellers are intimidated by them. |
| They also have the disadvantage of being an expensive form of transport. |
| But nothing can match them for speed and comfort. |
| Travelling at a height of 30, 000 feet, far above the clouds, and at over 500 miles an hour is an exhilarating experience. |
| You do not have to devise ways of taking your mind off the journey, for an aeroplane gets you to your destination rapidly. |
| For a few hours, you settle back in a deep armchair to enjoy the flight. |
| The real escapist can watch a film and sip champagne on some services. |
| But even when such refinements are not available, there is plenty to keep you occupied. |
| An aeroplane offers you an unusual and breathtaking view of the world. |
| You soar effortlessly over high mountains and deep valleys. |
| You really see the shape of the land. |
| If the landscape is hidden from view, |
| you can enjoy the extraordinary sight of unbroken cloud plains that stretch out for miles before you, while the sun shines brilliantly in a clear sky. |
| The journey is so smooth that there is nothing to prevent you from reading or sleeping. |
| However you decide to spend your time, one thing is certain: you will arrive at your destination fresh and uncrumpled. |
| You will not have to spend the next few days recovering from a long and arduous journey. |


Audit Log
This is a security log of important events involving your account.
History of authentications
Signed in with standard authentication
1 day ago
Signed in with standard authentication
1 day ago
Signed in with standard authentication
2 days ago
Signed in with bitbucket authentication
15 days ago


Bulk uploads let you add large amounts of workforce data into the Adult Social Care Workforce Data Set (ASC-WDS) without the need to add that data manually.
Skills for Care recommend bulk uploads for local authorities and large private or voluntary sector employers who need to add data for a number of workplaces.
Individual workplaces can also choose to bulk upload, but our findings suggest those with fewer than 50 staff records usually add their data manually.
You can only bulk upload CSV (comma-separated values) files. Previous experience of working with CSV files is helpful, but not necessary.
Before you do your bulk upload, make sure you have unique references for each workplace and each staff record.
References are used by ASC-WDS to match staff records to a workplace.
After checking your references, download your current data into each file type you want to upload (workplace, staff and training) and update the records in those files if necessary.
You always need to upload a staff file with a workplace file, but the training file is optional.
You can download codes and guidance for each file type you need to update (workplace, staff and training).
After selecting the files you want to upload, use ASC-WDS to validate them. You'll be able to view any errors and warnings in an error report.
A bulk upload is only complete once all errors have been fixed.
Return to bulk upload